Переглянути джерело

fix: fixed a number of builds and tried to address some typing issues as best we can

benduran 4 тижнів тому
батько
коміт
66fa8077db

+ 89 - 89
packages/component-library/package.json

@@ -86,30 +86,6 @@
   },
   "packageManager": "pnpm@10.19.0",
   "exports": {
-    "./compose-providers": {
-      "import": "./dist/compose-providers.js",
-      "types": "./dist/compose-providers.d.ts"
-    },
-    "./omit-keys": {
-      "import": "./dist/omit-keys.js",
-      "types": "./dist/omit-keys.d.ts"
-    },
-    "./overlay-visible-context": {
-      "import": "./dist/overlay-visible-context.js",
-      "types": "./dist/overlay-visible-context.d.ts"
-    },
-    "./social-links": {
-      "import": "./dist/social-links.js",
-      "types": "./dist/social-links.d.ts"
-    },
-    "./use-prefetch": {
-      "import": "./dist/use-prefetch.js",
-      "types": "./dist/use-prefetch.d.ts"
-    },
-    "./Badge": {
-      "import": "./dist/Badge/index.js",
-      "types": "./dist/Badge/index.d.ts"
-    },
     "./AppShell/amplitude": {
       "import": "./dist/AppShell/amplitude.js",
       "types": "./dist/AppShell/amplitude.d.ts"
@@ -146,14 +122,26 @@
       "import": "./dist/AppShell/tabs.js",
       "types": "./dist/AppShell/tabs.d.ts"
     },
-    "./CopyButton": {
-      "import": "./dist/CopyButton/index.js",
-      "types": "./dist/CopyButton/index.d.ts"
+    "./Badge": {
+      "import": "./dist/Badge/index.js",
+      "types": "./dist/Badge/index.d.ts"
+    },
+    "./Breadcrumbs": {
+      "import": "./dist/Breadcrumbs/index.js",
+      "types": "./dist/Breadcrumbs/index.d.ts"
+    },
+    "./Button": {
+      "import": "./dist/Button/index.js",
+      "types": "./dist/Button/index.d.ts"
     },
     "./Card": {
       "import": "./dist/Card/index.js",
       "types": "./dist/Card/index.d.ts"
     },
+    "./CopyButton": {
+      "import": "./dist/CopyButton/index.js",
+      "types": "./dist/CopyButton/index.d.ts"
+    },
     "./CrossfadeTabPanels": {
       "import": "./dist/CrossfadeTabPanels/index.js",
       "types": "./dist/CrossfadeTabPanels/index.d.ts"
@@ -162,14 +150,6 @@
       "import": "./dist/DropdownCaretDown/index.js",
       "types": "./dist/DropdownCaretDown/index.d.ts"
     },
-    "./Button": {
-      "import": "./dist/Button/index.js",
-      "types": "./dist/Button/index.d.ts"
-    },
-    "./Breadcrumbs": {
-      "import": "./dist/Breadcrumbs/index.js",
-      "types": "./dist/Breadcrumbs/index.d.ts"
-    },
     "./EntityList": {
       "import": "./dist/EntityList/index.js",
       "types": "./dist/EntityList/index.d.ts"
@@ -178,10 +158,6 @@
       "import": "./dist/ErrorPage/index.js",
       "types": "./dist/ErrorPage/index.d.ts"
     },
-    "./InfoBox": {
-      "import": "./dist/InfoBox/index.js",
-      "types": "./dist/InfoBox/index.d.ts"
-    },
     "./Footer": {
       "import": "./dist/Footer/index.js",
       "types": "./dist/Footer/index.d.ts"
@@ -194,6 +170,10 @@
       "import": "./dist/Header/theme-switch.js",
       "types": "./dist/Header/theme-switch.d.ts"
     },
+    "./InfoBox": {
+      "import": "./dist/InfoBox/index.js",
+      "types": "./dist/InfoBox/index.d.ts"
+    },
     "./Link": {
       "import": "./dist/Link/index.js",
       "types": "./dist/Link/index.d.ts"
@@ -234,25 +214,25 @@
       "import": "./dist/SearchInput/index.js",
       "types": "./dist/SearchInput/index.d.ts"
     },
+    "./Select": {
+      "import": "./dist/Select/index.js",
+      "types": "./dist/Select/index.d.ts"
+    },
+    "./SingleToggleGroup": {
+      "import": "./dist/SingleToggleGroup/index.js",
+      "types": "./dist/SingleToggleGroup/index.d.ts"
+    },
     "./Skeleton": {
       "import": "./dist/Skeleton/index.js",
       "types": "./dist/Skeleton/index.d.ts"
     },
-    "./StatCard": {
-      "import": "./dist/StatCard/index.js",
-      "types": "./dist/StatCard/index.d.ts"
-    },
     "./Spinner": {
       "import": "./dist/Spinner/index.js",
       "types": "./dist/Spinner/index.d.ts"
     },
-    "./Select": {
-      "import": "./dist/Select/index.js",
-      "types": "./dist/Select/index.d.ts"
-    },
-    "./SingleToggleGroup": {
-      "import": "./dist/SingleToggleGroup/index.js",
-      "types": "./dist/SingleToggleGroup/index.d.ts"
+    "./StatCard": {
+      "import": "./dist/StatCard/index.js",
+      "types": "./dist/StatCard/index.d.ts"
     },
     "./Status": {
       "import": "./dist/Status/index.js",
@@ -274,14 +254,6 @@
       "import": "./dist/Table/index.js",
       "types": "./dist/Table/index.d.ts"
     },
-    "./Term": {
-      "import": "./dist/Term/index.js",
-      "types": "./dist/Term/index.d.ts"
-    },
-    "./Virtualizer": {
-      "import": "./dist/Virtualizer/index.js",
-      "types": "./dist/Virtualizer/index.d.ts"
-    },
     "./TableGrid/dummy-row-data": {
       "import": "./dist/TableGrid/dummy-row-data.js",
       "types": "./dist/TableGrid/dummy-row-data.d.ts"
@@ -294,25 +266,29 @@
       "import": "./dist/TableGrid/table-grid-props.js",
       "types": "./dist/TableGrid/table-grid-props.d.ts"
     },
-    "./useData": {
-      "import": "./dist/useData/index.js",
-      "types": "./dist/useData/index.d.ts"
+    "./Term": {
+      "import": "./dist/Term/index.js",
+      "types": "./dist/Term/index.d.ts"
     },
-    "./useDrawer": {
-      "import": "./dist/useDrawer/index.js",
-      "types": "./dist/useDrawer/index.d.ts"
+    "./Virtualizer": {
+      "import": "./dist/Virtualizer/index.js",
+      "types": "./dist/Virtualizer/index.d.ts"
     },
-    "./useAlert": {
-      "import": "./dist/useAlert/index.js",
-      "types": "./dist/useAlert/index.d.ts"
+    "./compose-providers": {
+      "import": "./dist/compose-providers.js",
+      "types": "./dist/compose-providers.d.ts"
     },
-    "./useLogger": {
-      "import": "./dist/useLogger/index.js",
-      "types": "./dist/useLogger/index.d.ts"
+    "./omit-keys": {
+      "import": "./dist/omit-keys.js",
+      "types": "./dist/omit-keys.d.ts"
     },
-    "./useQueryParamsPagination": {
-      "import": "./dist/useQueryParamsPagination/index.js",
-      "types": "./dist/useQueryParamsPagination/index.d.ts"
+    "./overlay-visible-context": {
+      "import": "./dist/overlay-visible-context.js",
+      "types": "./dist/overlay-visible-context.d.ts"
+    },
+    "./social-links": {
+      "import": "./dist/social-links.js",
+      "types": "./dist/social-links.d.ts"
     },
     "./unstyled/Breadcrumbs": {
       "import": "./dist/unstyled/Breadcrumbs/index.js",
@@ -330,22 +306,22 @@
       "import": "./dist/unstyled/GridList/index.js",
       "types": "./dist/unstyled/GridList/index.d.ts"
     },
-    "./unstyled/Link": {
-      "import": "./dist/unstyled/Link/index.js",
-      "types": "./dist/unstyled/Link/index.d.ts"
-    },
     "./unstyled/Label": {
       "import": "./dist/unstyled/Label/index.js",
       "types": "./dist/unstyled/Label/index.d.ts"
     },
-    "./unstyled/Meter": {
-      "import": "./dist/unstyled/Meter/index.js",
-      "types": "./dist/unstyled/Meter/index.d.ts"
+    "./unstyled/Link": {
+      "import": "./dist/unstyled/Link/index.js",
+      "types": "./dist/unstyled/Link/index.d.ts"
     },
     "./unstyled/ListBox": {
       "import": "./dist/unstyled/ListBox/index.js",
       "types": "./dist/unstyled/ListBox/index.d.ts"
     },
+    "./unstyled/Meter": {
+      "import": "./dist/unstyled/Meter/index.js",
+      "types": "./dist/unstyled/Meter/index.d.ts"
+    },
     "./unstyled/Popover": {
       "import": "./dist/unstyled/Popover/index.js",
       "types": "./dist/unstyled/Popover/index.d.ts"
@@ -354,29 +330,53 @@
       "import": "./dist/unstyled/SearchField/index.js",
       "types": "./dist/unstyled/SearchField/index.d.ts"
     },
+    "./unstyled/Select": {
+      "import": "./dist/unstyled/Select/index.js",
+      "types": "./dist/unstyled/Select/index.d.ts"
+    },
     "./unstyled/Switch": {
       "import": "./dist/unstyled/Switch/index.js",
       "types": "./dist/unstyled/Switch/index.d.ts"
     },
-    "./unstyled/Select": {
-      "import": "./dist/unstyled/Select/index.js",
-      "types": "./dist/unstyled/Select/index.d.ts"
+    "./unstyled/Table": {
+      "import": "./dist/unstyled/Table/index.js",
+      "types": "./dist/unstyled/Table/index.d.ts"
     },
     "./unstyled/Tabs": {
       "import": "./dist/unstyled/Tabs/index.js",
       "types": "./dist/unstyled/Tabs/index.d.ts"
     },
+    "./unstyled/TextField": {
+      "import": "./dist/unstyled/TextField/index.js",
+      "types": "./dist/unstyled/TextField/index.d.ts"
+    },
     "./unstyled/Toolbar": {
       "import": "./dist/unstyled/Toolbar/index.js",
       "types": "./dist/unstyled/Toolbar/index.d.ts"
     },
-    "./unstyled/TextField": {
-      "import": "./dist/unstyled/TextField/index.js",
-      "types": "./dist/unstyled/TextField/index.d.ts"
+    "./use-prefetch": {
+      "import": "./dist/use-prefetch.js",
+      "types": "./dist/use-prefetch.d.ts"
     },
-    "./unstyled/Table": {
-      "import": "./dist/unstyled/Table/index.js",
-      "types": "./dist/unstyled/Table/index.d.ts"
+    "./useAlert": {
+      "import": "./dist/useAlert/index.js",
+      "types": "./dist/useAlert/index.d.ts"
+    },
+    "./useData": {
+      "import": "./dist/useData/index.js",
+      "types": "./dist/useData/index.d.ts"
+    },
+    "./useDrawer": {
+      "import": "./dist/useDrawer/index.js",
+      "types": "./dist/useDrawer/index.d.ts"
+    },
+    "./useLogger": {
+      "import": "./dist/useLogger/index.js",
+      "types": "./dist/useLogger/index.d.ts"
+    },
+    "./useQueryParamsPagination": {
+      "import": "./dist/useQueryParamsPagination/index.js",
+      "types": "./dist/useQueryParamsPagination/index.d.ts"
     },
     "./package.json": "./package.json"
   }

+ 15 - 289
pnpm-lock.yaml

@@ -2931,9 +2931,9 @@ importers:
         specifier: 'catalog:'
         version: 2.38.2(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.1.8)
     devDependencies:
-      '@cprussin/eslint-config':
+      '@cprussin/tsconfig':
         specifier: 'catalog:'
-        version: 4.0.2(@testing-library/dom@10.4.0)(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.23.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.23.0(jiti@2.6.1))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3)))(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3))(turbo@2.5.8)(typescript@5.9.3)
+        version: 3.1.2(typescript@5.9.3)
       '@pythnetwork/pyth-sdk-solidity':
         specifier: workspace:*
         version: link:../solidity
@@ -3054,6 +3054,9 @@ importers:
         specifier: ^1.90.0
         version: 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
     devDependencies:
+      '@cprussin/tsconfig':
+        specifier: 'catalog:'
+        version: 3.1.2(typescript@5.9.3)
       '@pythnetwork/hermes-client':
         specifier: workspace:*
         version: link:../../../../../apps/hermes/client/js
@@ -3254,7 +3257,7 @@ importers:
     dependencies:
       '@mysten/sui':
         specifier: ^1.3.0
-        version: 1.26.1(typescript@5.8.2)
+        version: 1.26.1(typescript@5.9.3)
       '@pythnetwork/hermes-client':
         specifier: workspace:*
         version: link:../../../../apps/hermes/client/js
@@ -3262,6 +3265,9 @@ importers:
         specifier: ^6.0.3
         version: 6.0.3
     devDependencies:
+      '@cprussin/tsconfig':
+        specifier: 'catalog:'
+        version: 3.1.2(typescript@5.9.3)
       '@truffle/hdwallet-provider':
         specifier: ^2.1.5
         version: 2.1.15(@babel/core@7.27.1)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -3282,25 +3288,25 @@ importers:
         version: 17.0.33
       '@typescript-eslint/eslint-plugin':
         specifier: ^6.0.0
-        version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.2))(eslint@8.56.0)(typescript@5.8.2)
+        version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.9.3))(eslint@8.56.0)(typescript@5.9.3)
       '@typescript-eslint/parser':
         specifier: ^6.0.0
-        version: 6.21.0(eslint@8.56.0)(typescript@5.8.2)
+        version: 6.21.0(eslint@8.56.0)(typescript@5.9.3)
       eslint:
         specifier: ^8.14.0
         version: 8.56.0
       jest:
         specifier: ^29.4.1
-        version: 29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2))
+        version: 29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3))
       prettier:
         specifier: 'catalog:'
         version: 3.5.3
       ts-jest:
         specifier: ^29.0.5
-        version: 29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2)))(typescript@5.8.2)
+        version: 29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3)))(typescript@5.9.3)
       typescript:
-        specifier: ^5.3.3
-        version: 5.8.2
+        specifier: 'catalog:'
+        version: 5.9.3
       web3:
         specifier: ^1.8.2
         version: 1.10.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -22529,12 +22535,6 @@ snapshots:
     optionalDependencies:
       graphql: 16.10.0
 
-  '@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.8.2)':
-    dependencies:
-      '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.8.2)
-      graphql: 16.10.0
-      typescript: 5.8.2
-
   '@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.9.3)':
     dependencies:
       '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.9.3)
@@ -27172,13 +27172,6 @@ snapshots:
 
   '@glideapps/ts-necessities@2.4.0': {}
 
-  '@gql.tada/cli-utils@1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.8.2))(graphql@16.10.0)(typescript@5.8.2)':
-    dependencies:
-      '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.8.2)
-      '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.8.2)
-      graphql: 16.10.0
-      typescript: 5.8.2
-
   '@gql.tada/cli-utils@1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.9.3))(graphql@16.10.0)(typescript@5.9.3)':
     dependencies:
       '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.9.3)
@@ -27186,12 +27179,6 @@ snapshots:
       graphql: 16.10.0
       typescript: 5.9.3
 
-  '@gql.tada/internal@1.0.8(graphql@16.10.0)(typescript@5.8.2)':
-    dependencies:
-      '@0no-co/graphql.web': 1.1.2(graphql@16.10.0)
-      graphql: 16.10.0
-      typescript: 5.8.2
-
   '@gql.tada/internal@1.0.8(graphql@16.10.0)(typescript@5.9.3)':
     dependencies:
       '@0no-co/graphql.web': 1.1.2(graphql@16.10.0)
@@ -27946,41 +27933,6 @@ snapshots:
       jest-util: 29.7.0
       slash: 3.0.0
 
-  '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2))':
-    dependencies:
-      '@jest/console': 29.7.0
-      '@jest/reporters': 29.7.0
-      '@jest/test-result': 29.7.0
-      '@jest/transform': 29.7.0
-      '@jest/types': 29.6.3
-      '@types/node': 18.19.86
-      ansi-escapes: 4.3.2
-      chalk: 4.1.2
-      ci-info: 3.9.0
-      exit: 0.1.2
-      graceful-fs: 4.2.11
-      jest-changed-files: 29.7.0
-      jest-config: 29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2))
-      jest-haste-map: 29.7.0
-      jest-message-util: 29.7.0
-      jest-regex-util: 29.6.3
-      jest-resolve: 29.7.0
-      jest-resolve-dependencies: 29.7.0
-      jest-runner: 29.7.0
-      jest-runtime: 29.7.0
-      jest-snapshot: 29.7.0
-      jest-util: 29.7.0
-      jest-validate: 29.7.0
-      jest-watcher: 29.7.0
-      micromatch: 4.0.8
-      pretty-format: 29.7.0
-      slash: 3.0.0
-      strip-ansi: 6.0.1
-    transitivePeerDependencies:
-      - babel-plugin-macros
-      - supports-color
-      - ts-node
-
   '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3))':
     dependencies:
       '@jest/console': 29.7.0
@@ -29079,24 +29031,6 @@ snapshots:
       - bufferutil
       - utf-8-validate
 
-  '@mysten/sui@1.26.1(typescript@5.8.2)':
-    dependencies:
-      '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0)
-      '@mysten/bcs': 1.6.0
-      '@noble/curves': 1.9.6
-      '@noble/hashes': 1.8.0
-      '@scure/base': 1.2.6
-      '@scure/bip32': 1.7.0
-      '@scure/bip39': 1.6.0
-      gql.tada: 1.8.10(graphql@16.10.0)(typescript@5.8.2)
-      graphql: 16.10.0
-      poseidon-lite: 0.2.1
-      valibot: 0.36.0
-    transitivePeerDependencies:
-      - '@gql.tada/svelte-support'
-      - '@gql.tada/vue-support'
-      - typescript
-
   '@mysten/sui@1.26.1(typescript@5.9.3)':
     dependencies:
       '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0)
@@ -36437,26 +36371,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.2))(eslint@8.56.0)(typescript@5.8.2)':
-    dependencies:
-      '@eslint-community/regexpp': 4.12.1
-      '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.8.2)
-      '@typescript-eslint/scope-manager': 6.21.0
-      '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.8.2)
-      '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.8.2)
-      '@typescript-eslint/visitor-keys': 6.21.0
-      debug: 4.4.0
-      eslint: 8.56.0
-      graphemer: 1.4.0
-      ignore: 5.3.2
-      natural-compare: 1.4.0
-      semver: 7.7.1
-      ts-api-utils: 1.4.3(typescript@5.8.2)
-    optionalDependencies:
-      typescript: 5.8.2
-    transitivePeerDependencies:
-      - supports-color
-
   '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.9.3))(eslint@8.56.0)(typescript@5.9.3)':
     dependencies:
       '@eslint-community/regexpp': 4.12.1
@@ -36562,19 +36476,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.8.2)':
-    dependencies:
-      '@typescript-eslint/scope-manager': 6.21.0
-      '@typescript-eslint/types': 6.21.0
-      '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.2)
-      '@typescript-eslint/visitor-keys': 6.21.0
-      debug: 4.4.0
-      eslint: 8.56.0
-    optionalDependencies:
-      typescript: 5.8.2
-    transitivePeerDependencies:
-      - supports-color
-
   '@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.9.3)':
     dependencies:
       '@typescript-eslint/scope-manager': 6.21.0
@@ -36670,18 +36571,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.8.2)':
-    dependencies:
-      '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.2)
-      '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.8.2)
-      debug: 4.4.0
-      eslint: 8.56.0
-      ts-api-utils: 1.4.3(typescript@5.8.2)
-    optionalDependencies:
-      typescript: 5.8.2
-    transitivePeerDependencies:
-      - supports-color
-
   '@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.9.3)':
     dependencies:
       '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3)
@@ -36751,21 +36640,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/typescript-estree@6.21.0(typescript@5.8.2)':
-    dependencies:
-      '@typescript-eslint/types': 6.21.0
-      '@typescript-eslint/visitor-keys': 6.21.0
-      debug: 4.4.0
-      globby: 11.1.0
-      is-glob: 4.0.3
-      minimatch: 9.0.3
-      semver: 7.7.2
-      ts-api-utils: 1.4.3(typescript@5.8.2)
-    optionalDependencies:
-      typescript: 5.8.2
-    transitivePeerDependencies:
-      - supports-color
-
   '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)':
     dependencies:
       '@typescript-eslint/types': 6.21.0
@@ -36825,20 +36699,6 @@ snapshots:
       - supports-color
       - typescript
 
-  '@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.8.2)':
-    dependencies:
-      '@eslint-community/eslint-utils': 4.5.1(eslint@8.56.0)
-      '@types/json-schema': 7.0.15
-      '@types/semver': 7.7.0
-      '@typescript-eslint/scope-manager': 6.21.0
-      '@typescript-eslint/types': 6.21.0
-      '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.2)
-      eslint: 8.56.0
-      semver: 7.7.1
-    transitivePeerDependencies:
-      - supports-color
-      - typescript
-
   '@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.9.3)':
     dependencies:
       '@eslint-community/eslint-utils': 4.5.1(eslint@8.56.0)
@@ -39973,21 +39833,6 @@ snapshots:
       jest-worker: 28.1.3
       throat: 6.0.2
 
-  create-jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2)):
-    dependencies:
-      '@jest/types': 29.6.3
-      chalk: 4.1.2
-      exit: 0.1.2
-      graceful-fs: 4.2.11
-      jest-config: 29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2))
-      jest-util: 29.7.0
-      prompts: 2.4.2
-    transitivePeerDependencies:
-      - '@types/node'
-      - babel-plugin-macros
-      - supports-color
-      - ts-node
-
   create-jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3)):
     dependencies:
       '@jest/types': 29.6.3
@@ -43305,18 +43150,6 @@ snapshots:
       p-cancelable: 3.0.0
       responselike: 3.0.0
 
-  gql.tada@1.8.10(graphql@16.10.0)(typescript@5.8.2):
-    dependencies:
-      '@0no-co/graphql.web': 1.1.2(graphql@16.10.0)
-      '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.8.2)
-      '@gql.tada/cli-utils': 1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.8.2))(graphql@16.10.0)(typescript@5.8.2)
-      '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.8.2)
-      typescript: 5.8.2
-    transitivePeerDependencies:
-      - '@gql.tada/svelte-support'
-      - '@gql.tada/vue-support'
-      - graphql
-
   gql.tada@1.8.10(graphql@16.10.0)(typescript@5.9.3):
     dependencies:
       '@0no-co/graphql.web': 1.1.2(graphql@16.10.0)
@@ -44447,25 +44280,6 @@ snapshots:
       - babel-plugin-macros
       - supports-color
 
-  jest-cli@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2)):
-    dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2))
-      '@jest/test-result': 29.7.0
-      '@jest/types': 29.6.3
-      chalk: 4.1.2
-      create-jest: 29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2))
-      exit: 0.1.2
-      import-local: 3.2.0
-      jest-config: 29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2))
-      jest-util: 29.7.0
-      jest-validate: 29.7.0
-      yargs: 17.7.2
-    transitivePeerDependencies:
-      - '@types/node'
-      - babel-plugin-macros
-      - supports-color
-      - ts-node
-
   jest-cli@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3)):
     dependencies:
       '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3))
@@ -44542,37 +44356,6 @@ snapshots:
       - supports-color
       - ts-node
 
-  jest-config@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2)):
-    dependencies:
-      '@babel/core': 7.27.1
-      '@jest/test-sequencer': 29.7.0
-      '@jest/types': 29.6.3
-      babel-jest: 29.7.0(@babel/core@7.27.1)
-      chalk: 4.1.2
-      ci-info: 3.9.0
-      deepmerge: 4.3.1
-      glob: 7.2.3
-      graceful-fs: 4.2.11
-      jest-circus: 29.7.0
-      jest-environment-node: 29.7.0
-      jest-get-type: 29.6.3
-      jest-regex-util: 29.6.3
-      jest-resolve: 29.7.0
-      jest-runner: 29.7.0
-      jest-util: 29.7.0
-      jest-validate: 29.7.0
-      micromatch: 4.0.8
-      parse-json: 5.2.0
-      pretty-format: 29.7.0
-      slash: 3.0.0
-      strip-json-comments: 3.1.1
-    optionalDependencies:
-      '@types/node': 18.19.86
-      ts-node: 10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2)
-    transitivePeerDependencies:
-      - babel-plugin-macros
-      - supports-color
-
   jest-config@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3)):
     dependencies:
       '@babel/core': 7.27.1
@@ -45063,18 +44846,6 @@ snapshots:
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
-  jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2)):
-    dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2))
-      '@jest/types': 29.6.3
-      import-local: 3.2.0
-      jest-cli: 29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2))
-    transitivePeerDependencies:
-      - '@types/node'
-      - babel-plugin-macros
-      - supports-color
-      - ts-node
-
   jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3)):
     dependencies:
       '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3))
@@ -50609,10 +50380,6 @@ snapshots:
 
   trough@2.2.0: {}
 
-  ts-api-utils@1.4.3(typescript@5.8.2):
-    dependencies:
-      typescript: 5.8.2
-
   ts-api-utils@1.4.3(typescript@5.9.3):
     dependencies:
       typescript: 5.9.3
@@ -50671,26 +50438,6 @@ snapshots:
       babel-jest: 29.7.0(@babel/core@7.27.1)
       esbuild: 0.25.9
 
-  ts-jest@29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2)))(typescript@5.8.2):
-    dependencies:
-      bs-logger: 0.2.6
-      ejs: 3.1.10
-      fast-json-stable-stringify: 2.1.0
-      jest: 29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2))
-      jest-util: 29.7.0
-      json5: 2.2.3
-      lodash.memoize: 4.1.2
-      make-error: 1.3.6
-      semver: 7.7.1
-      type-fest: 4.39.0
-      typescript: 5.8.2
-      yargs-parser: 21.1.1
-    optionalDependencies:
-      '@babel/core': 7.27.1
-      '@jest/transform': 29.7.0
-      '@jest/types': 29.6.3
-      babel-jest: 29.7.0(@babel/core@7.27.1)
-
   ts-jest@29.3.1(@babel/core@7.27.1)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.1))(jest@29.7.0(@types/node@18.19.86)(ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3)))(typescript@5.9.3):
     dependencies:
       bs-logger: 0.2.6
@@ -50822,27 +50569,6 @@ snapshots:
     optionalDependencies:
       '@swc/core': 1.13.2
 
-  ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.8.2):
-    dependencies:
-      '@cspotcode/source-map-support': 0.8.1
-      '@tsconfig/node10': 1.0.11
-      '@tsconfig/node12': 1.0.11
-      '@tsconfig/node14': 1.0.3
-      '@tsconfig/node16': 1.0.4
-      '@types/node': 18.19.86
-      acorn: 8.14.1
-      acorn-walk: 8.3.4
-      arg: 4.1.3
-      create-require: 1.1.1
-      diff: 4.0.2
-      make-error: 1.3.6
-      typescript: 5.8.2
-      v8-compile-cache-lib: 3.0.1
-      yn: 3.1.1
-    optionalDependencies:
-      '@swc/core': 1.13.2
-    optional: true
-
   ts-node@10.9.2(@swc/core@1.13.2)(@types/node@18.19.86)(typescript@5.9.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1

+ 39 - 10
target_chains/ethereum/sdk/js/package.json

@@ -6,8 +6,8 @@
   "author": {
     "name": "Pyth Data Association"
   },
-  "main": "./dist/cjs/index.js",
-  "types": "./dist/esm/index.d.mts",
+  "main": "./cjs/index.js",
+  "types": "./cjs/index.d.ts",
   "files": [
     "lib/**/*",
     "dist/**/*"
@@ -36,7 +36,7 @@
   ],
   "license": "Apache-2.0",
   "devDependencies": {
-    "@cprussin/eslint-config": "catalog:",
+    "@cprussin/tsconfig": "catalog:",
     "@pythnetwork/pyth-sdk-solidity": "workspace:*",
     "@truffle/hdwallet-provider": "^2.1.5",
     "@types/ethereum-protocol": "^1.0.2",
@@ -59,14 +59,43 @@
     "pnpm": ">=10.19.0"
   },
   "packageManager": "pnpm@10.19.0",
-  "module": "./dist/esm/index.mjs",
+  "module": "./esm/index.js",
   "exports": {
-    ".": "./src/index.ts",
-    "./filler": "./src/filler.ts",
-    "./multicall3-bundler": "./src/multicall3-bundler.ts",
-    "./pyth-abi": "./src/pyth-abi.ts",
-    "./tracer/debug-trace-call": "./src/tracer/debug-trace-call.ts",
-    "./tracer/trace-call-many": "./src/tracer/trace-call-many.ts",
+    "./filler": {
+      "import": "./dist/esm/filler.js",
+      "types": "./dist/esm/filler.d.ts",
+      "require": "./dist/cjs/filler.js"
+    },
+    ".": {
+      "import": "./dist/esm/index.js",
+      "types": "./dist/esm/index.d.ts",
+      "require": "./dist/cjs/index.js"
+    },
+    "./multicall3-bundler": {
+      "import": "./dist/esm/multicall3-bundler.js",
+      "types": "./dist/esm/multicall3-bundler.d.ts",
+      "require": "./dist/cjs/multicall3-bundler.js"
+    },
+    "./pyth-abi": {
+      "import": "./dist/esm/pyth-abi.js",
+      "types": "./dist/esm/pyth-abi.d.ts",
+      "require": "./dist/cjs/pyth-abi.js"
+    },
+    "./tracer/debug-trace-call": {
+      "import": "./dist/esm/tracer/debug-trace-call.js",
+      "types": "./dist/esm/tracer/debug-trace-call.d.ts",
+      "require": "./dist/cjs/tracer/debug-trace-call.js"
+    },
+    "./tracer/trace-call-many": {
+      "import": "./dist/esm/tracer/trace-call-many.js",
+      "types": "./dist/esm/tracer/trace-call-many.d.ts",
+      "require": "./dist/cjs/tracer/trace-call-many.js"
+    },
+    "./types": {
+      "import": "./dist/esm/types.js",
+      "types": "./dist/esm/types.d.ts",
+      "require": "./dist/cjs/types.js"
+    },
     "./package.json": "./package.json"
   }
 }

+ 18 - 15
target_chains/ethereum/sdk/js/src/filler.ts

@@ -1,11 +1,11 @@
 import { HermesClient } from "@pythnetwork/hermes-client";
 import {
-  Address,
-  PublicClient,
+  type Address,
+  type PublicClient,
   encodeFunctionData,
-  Hex,
-  Transport,
-  Chain,
+  type Hex,
+  type Transport,
+  type Chain,
 } from "viem";
 
 import { IPythAbi } from "./pyth-abi";
@@ -17,19 +17,20 @@ import {
   extractPythPriceFeedsFromTraceCallMany,
   traceCallManyAction,
 } from "./tracer/trace-call-many";
+import type { Nullish } from "./types";
 
 /**
  * Represents a call request to be executed on the blockchain
  */
 export type CallRequest = {
   /** The address making the call (optional) */
-  from?: Address;
+  from?: Nullish<Address>;
   /** The target contract address */
-  to: Address;
+  to: Nullish<Address>;
   /** The encoded function call data (optional) */
-  data?: Hex;
+  data?: Nullish<Hex>;
   /** The amount of ETH to send with the call (optional) */
-  value?: bigint;
+  value?: Nullish<bigint>;
 };
 
 /**
@@ -40,15 +41,15 @@ export type CallRequest = {
  * @param updateData - Array of hex-encoded update data
  * @returns Promise resolving to the update fee in wei
  */
-export async function getUpdateFee<
+export function getUpdateFee<
   transport extends Transport,
   chain extends Chain | undefined,
 >(
   client: PublicClient<transport, chain>,
   pythContractAddress: Address,
   updateData: Hex[],
-): Promise<bigint> {
-  return await client.readContract({
+) {
+  return client.readContract({
     address: pythContractAddress,
     abi: IPythAbi,
     functionName: "getUpdateFee",
@@ -164,13 +165,13 @@ export async function fillPythUpdate<
       break;
     } else {
       requiredPriceFeeds = requiredPriceFeeds.union(priceFeeds);
-      pythUpdate = await getPythUpdate(
+      pythUpdate = (await getPythUpdate(
         client,
         hermesClient,
         requiredPriceFeeds,
         pythContractAddress,
         call,
-      );
+      )) as typeof pythUpdate;
     }
   }
 
@@ -219,13 +220,14 @@ const getPriceFeeds = async <
   pythContractAddress: Address,
   call: CallRequest,
   config: Config,
-  pythUpdate: PythUpdate | undefined,
+  pythUpdate: Nullish<PythUpdate>,
 ) => {
   switch (config.method) {
     case "debug_traceCall": {
       return extractPythPriceFeedsFromDebugTraceCall(
         await client
           .extend(debugTraceCallAction)
+          // @ts-expect-error - the typings here are very wonky and need revisiting in a future release
           .debugTraceCall(pythUpdate ? config.bundler(pythUpdate, call) : call),
         pythContractAddress,
       );
@@ -234,6 +236,7 @@ const getPriceFeeds = async <
       return extractPythPriceFeedsFromTraceCallMany(
         await client
           .extend(traceCallManyAction)
+          // @ts-expect-error - the typings here are very wonky and need revisiting in a future release
           .traceCallMany(pythUpdate ? [pythUpdate.call, call] : [call]),
         pythContractAddress,
       );

+ 3 - 3
target_chains/ethereum/sdk/js/src/multicall3-bundler.ts

@@ -1,6 +1,6 @@
 import { encodeFunctionData } from "viem";
 
-import { CallRequest, PythUpdate } from "./filler";
+import { type CallRequest, type PythUpdate } from "./filler";
 
 // Multicall3 contract address (deployed on most chains)
 export const MULTICALL3_ADDRESS = "0xcA11bde05977b3631167028862bE2a173976CA11";
@@ -51,13 +51,13 @@ export function multicall3Bundler(
     args: [
       [
         {
-          target: pythUpdate.call.to,
+          target: pythUpdate.call.to!,
           allowFailure: false,
           value: pythUpdate.call.value ?? 0n,
           callData: pythUpdate.call.data ?? "0x",
         },
         {
-          target: call.to,
+          target: call.to!,
           allowFailure: false,
           value: call.value ?? 0n,
           callData: call.data ?? "0x",

+ 4 - 4
target_chains/ethereum/sdk/js/src/pyth-abi.ts

@@ -544,7 +544,7 @@ export const IPythAbi = [
     stateMutability: "payable",
     type: "function",
   },
-] as const;
+];
 
 export const IPythEventsAbi = [
   {
@@ -578,7 +578,7 @@ export const IPythEventsAbi = [
     name: "PriceFeedUpdate",
     type: "event",
   },
-] as const;
+];
 
 export const PythErrorsAbi = [
   {
@@ -651,10 +651,10 @@ export const PythErrorsAbi = [
     name: "StalePrice",
     type: "error",
   },
-] as const;
+];
 
 export const PythAbi = [
   ...IPythAbi,
   ...IPythEventsAbi,
   ...PythErrorsAbi,
-] as const;
+];

+ 21 - 17
target_chains/ethereum/sdk/js/src/tracer/debug-trace-call.ts

@@ -1,17 +1,18 @@
 import {
-  Address,
-  BlockTag,
-  CallParameters,
-  Client,
+  type Address,
+  type BlockTag,
+  type CallParameters,
+  type Client,
   decodeFunctionData,
-  ExactPartial,
+  type ExactPartial,
   formatTransactionRequest,
-  Hex,
+  type Hex,
   isAddressEqual,
-  RpcTransactionRequest,
+  type RpcTransactionRequest,
 } from "viem";
 
 import { IPythAbi } from "../pyth-abi";
+import { type Nullish } from "../types";
 
 /**
  * Extract Pyth price feed IDs from a transaction call trace.
@@ -30,7 +31,7 @@ export function extractPythPriceFeedsFromDebugTraceCall(
         data: trace.input,
       });
 
-      let priceFeedId: Hex | undefined;
+      let priceFeedId: Nullish<Hex>;
       switch (decoded.functionName) {
         case "getPrice":
         case "getPriceNoOlderThan":
@@ -38,14 +39,17 @@ export function extractPythPriceFeedsFromDebugTraceCall(
         case "getEmaPrice":
         case "getEmaPriceNoOlderThan":
         case "getEmaPriceUnsafe": {
-          priceFeedId = decoded.args[0];
+          const pfid = decoded.args?.[0]
+          if (pfid !== null && pfid !== undefined) {
+            priceFeedId = pfid as typeof priceFeedId;
+          }
           break;
         }
         default: {
           break;
         }
       }
-      if (priceFeedId !== undefined) {
+      if (priceFeedId !== null && priceFeedId !== undefined) {
         result.add(priceFeedId);
       }
     } catch (error: unknown) {
@@ -63,9 +67,9 @@ export function extractPythPriceFeedsFromDebugTraceCall(
   }
   return new Set([
     ...result,
-    ...trace.calls.flatMap((call) => [
+    ...(trace.calls?.flatMap((call) => [
       ...extractPythPriceFeedsFromDebugTraceCall(call, pythContractAddress),
-    ]),
+    ]) ?? []),
   ]);
 }
 
@@ -107,11 +111,11 @@ export type RpcCallTrace = {
   to: Address;
   input: Hex;
   output: Hex;
-  error?: string;
-  revertReason?: string;
-  calls?: RpcCallTrace[];
-  logs?: RpcLogTrace[];
-  value?: Hex;
+  error?: Nullish<string>;
+  revertReason?: Nullish<string>;
+  calls?: Nullish<RpcCallTrace[]>;
+  logs?: Nullish<RpcLogTrace[]>;
+  value?: Nullish<Hex>;
   type: RpcCallType;
 };
 

+ 14 - 10
target_chains/ethereum/sdk/js/src/tracer/trace-call-many.ts

@@ -1,17 +1,18 @@
 import {
-  Address,
-  BlockTag,
+  type Address,
+  type BlockTag,
   decodeFunctionData,
-  RpcTransactionRequest,
-  ExactPartial,
-  Hex,
-  Client,
+  type RpcTransactionRequest,
+  type ExactPartial,
+  type Hex,
+  type Client,
   formatTransactionRequest,
-  CallParameters,
+  type CallParameters,
   isAddressEqual,
 } from "viem";
 
 import { IPythAbi } from "../pyth-abi";
+import { type Nullish } from "../types";
 
 /**
  * Extract Pyth price feed IDs from a transaction call trace.
@@ -32,7 +33,7 @@ export function extractPythPriceFeedsFromTraceCallMany(
             data: trace.action.input,
           });
 
-          let priceFeedId: `0x${string}` | undefined;
+          let priceFeedId: Nullish<`0x${string}`>;
           switch (decoded.functionName) {
             case "getPrice":
             case "getPriceNoOlderThan":
@@ -40,14 +41,17 @@ export function extractPythPriceFeedsFromTraceCallMany(
             case "getEmaPrice":
             case "getEmaPriceNoOlderThan":
             case "getEmaPriceUnsafe": {
-              priceFeedId = decoded.args[0];
+              const pfid = decoded.args?.[0];
+              if (pfid !== null && pfid !== undefined) {
+                priceFeedId = pfid as typeof priceFeedId;
+              }
               break;
             }
             default: {
               break;
             }
           }
-          if (priceFeedId !== undefined) {
+          if (priceFeedId) {
             result.add(priceFeedId);
           }
         } catch {

+ 1 - 0
target_chains/ethereum/sdk/js/src/types.ts

@@ -0,0 +1 @@
+export type Nullish<T> = T | null | undefined;

+ 10 - 0
target_chains/ethereum/sdk/js/tsconfig.build.json

@@ -0,0 +1,10 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "declaration": true,
+    "incremental": false,
+    "noEmit": false,
+    "verbatimModuleSyntax": false,
+  },
+  "exclude": ["dist", "node_modules"]
+}

+ 2 - 12
target_chains/ethereum/sdk/js/tsconfig.json

@@ -1,15 +1,5 @@
 {
-  "extends": "../../../../tsconfig.base.json",
-  "compilerOptions": {
-    "target": "esnext",
-    "module": "commonjs",
-    "declaration": true,
-    "rootDir": "src/",
-    "outDir": "./lib",
-    "strict": true,
-    "esModuleInterop": true,
-    "resolveJsonModule": true
-  },
+  "extends": "@cprussin/tsconfig/nextjs.json",
   "include": ["src"],
-  "exclude": ["node_modules", "**/__tests__/*"]
+  "exclude": ["dist", "node_modules"]
 }

+ 1 - 0
target_chains/solana/sdk/js/pyth_solana_receiver/package.json

@@ -33,6 +33,7 @@
   ],
   "license": "Apache-2.0",
   "devDependencies": {
+    "@cprussin/tsconfig": "catalog:",
     "@pythnetwork/hermes-client": "workspace:*",
     "@types/jest": "^29.4.0",
     "@types/node": "catalog:",

+ 10 - 0
target_chains/solana/sdk/js/pyth_solana_receiver/tsconfig.build.json

@@ -0,0 +1,10 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "declaration": true,
+    "incremental": false,
+    "noEmit": false,
+    "verbatimModuleSyntax": false,
+  },
+  "exclude": ["dist", "node_modules"]
+}

+ 3 - 7
target_chains/solana/sdk/js/pyth_solana_receiver/tsconfig.json

@@ -1,9 +1,5 @@
 {
-  "extends": "../../../../../tsconfig.base.json",
-  "include": ["src/**/*.ts", "src/**/*.json"],
-  "exclude": ["node_modules", "**/__tests__/*"],
-  "compilerOptions": {
-    "rootDir": "src/",
-    "outDir": "./lib"
-  }
+  "extends": "@cprussin/tsconfig/nextjs.json",
+  "include": ["src"],
+  "exclude": ["dist", "node_modules"]
 }

+ 25 - 8
target_chains/sui/sdk/js/package.json

@@ -6,8 +6,8 @@
   "author": {
     "name": "Pyth Data Association"
   },
-  "main": "./dist/cjs/index.js",
-  "types": "./dist/esm/index.d.mts",
+  "main": "./cjs/index.js",
+  "types": "./cjs/index.d.ts",
   "files": [
     "lib/**/*",
     "dist/**/*"
@@ -38,6 +38,7 @@
   ],
   "license": "Apache-2.0",
   "devDependencies": {
+    "@cprussin/tsconfig": "catalog:",
     "@truffle/hdwallet-provider": "^2.1.5",
     "@types/ethereum-protocol": "^1.0.2",
     "@types/jest": "^29.4.0",
@@ -50,7 +51,7 @@
     "jest": "^29.4.1",
     "prettier": "catalog:",
     "ts-jest": "^29.0.5",
-    "typescript": "^5.3.3",
+    "typescript": "catalog:",
     "web3": "^1.8.2",
     "yargs": "^17.0.20"
   },
@@ -64,12 +65,28 @@
     "pnpm": ">=10.19.0"
   },
   "packageManager": "pnpm@10.19.0",
-  "module": "./dist/esm/index.mjs",
+  "module": "./esm/index.js",
   "exports": {
-    ".": "./src/index.ts",
-    "./client": "./src/client.ts",
-    "./examples/SuiRelay": "./src/examples/SuiRelay.ts",
-    "./SuiPriceServiceConnection": "./src/SuiPriceServiceConnection.ts",
+    "./SuiPriceServiceConnection": {
+      "import": "./dist/esm/SuiPriceServiceConnection.js",
+      "types": "./dist/esm/SuiPriceServiceConnection.d.ts",
+      "require": "./dist/cjs/SuiPriceServiceConnection.js"
+    },
+    "./client": {
+      "import": "./dist/esm/client.js",
+      "types": "./dist/esm/client.d.ts",
+      "require": "./dist/cjs/client.js"
+    },
+    "./examples/SuiRelay": {
+      "import": "./dist/esm/examples/SuiRelay.js",
+      "types": "./dist/esm/examples/SuiRelay.d.ts",
+      "require": "./dist/cjs/examples/SuiRelay.js"
+    },
+    ".": {
+      "import": "./dist/esm/index.js",
+      "types": "./dist/esm/index.d.ts",
+      "require": "./dist/cjs/index.js"
+    },
     "./package.json": "./package.json"
   }
 }

+ 2 - 2
target_chains/sui/sdk/js/src/SuiPriceServiceConnection.ts

@@ -1,7 +1,7 @@
 import {
   HermesClient,
-  HexString,
-  PriceUpdate,
+  type HexString,
+  type PriceUpdate,
 } from "@pythnetwork/hermes-client";
 import { Buffer } from "buffer";
 

+ 8 - 8
target_chains/sui/sdk/js/src/client.ts

@@ -2,7 +2,7 @@ import { SuiClient } from "@mysten/sui/client";
 import { SUI_CLOCK_OBJECT_ID } from "@mysten/sui/utils";
 import { Transaction } from "@mysten/sui/transactions";
 import { bcs } from "@mysten/sui/bcs";
-import { HexString } from "@pythnetwork/hermes-client";
+import { type HexString } from "@pythnetwork/hermes-client";
 import { Buffer } from "buffer";
 
 const MAX_ARGUMENT_SIZE = 16 * 1024;
@@ -118,7 +118,7 @@ export class SuiPythClient {
         "SDK does not support sending multiple accumulator messages in a single transaction",
       );
     }
-    const vaa = this.extractVaaBytesFromAccumulatorMessage(updates[0]);
+    const vaa = this.extractVaaBytesFromAccumulatorMessage(updates[0]!);
     const verifiedVaas = await this.verifyVaas([vaa], tx);
     const [priceUpdatesHotPotato] = tx.moveCall({
       target: `${packageId}::pyth::create_authenticated_price_infos_using_accumulator`,
@@ -127,16 +127,16 @@ export class SuiPythClient {
         tx.pure(
           bcs
             .vector(bcs.U8)
-            .serialize(Array.from(updates[0]), {
+            .serialize(Array.from(updates[0]!), {
               maxSize: MAX_ARGUMENT_SIZE,
             })
             .toBytes(),
         ),
-        verifiedVaas[0],
+        verifiedVaas[0]!,
         tx.object(SUI_CLOCK_OBJECT_ID),
       ],
     });
-    return priceUpdatesHotPotato;
+    return priceUpdatesHotPotato!;
   }
 
   async executePriceFeedUpdates(
@@ -245,7 +245,7 @@ export class SuiPythClient {
         "SDK does not support sending multiple accumulator messages in a single transaction",
       );
     }
-    const vaa = this.extractVaaBytesFromAccumulatorMessage(updates[0]);
+    const vaa = this.extractVaaBytesFromAccumulatorMessage(updates[0]!);
     const verifiedVaas = await this.verifyVaas([vaa], tx);
     tx.moveCall({
       target: `${packageId}::pyth::create_price_feeds_using_accumulator`,
@@ -254,12 +254,12 @@ export class SuiPythClient {
         tx.pure(
           bcs
             .vector(bcs.U8)
-            .serialize(Array.from(updates[0]), {
+            .serialize(Array.from(updates[0]!), {
               maxSize: MAX_ARGUMENT_SIZE,
             })
             .toBytes(),
         ),
-        verifiedVaas[0],
+        verifiedVaas[0]!,
         tx.object(SUI_CLOCK_OBJECT_ID),
       ],
     });

+ 1 - 1
target_chains/sui/sdk/js/src/index.ts

@@ -1,7 +1,7 @@
 export { SuiPriceServiceConnection } from "./SuiPriceServiceConnection";
 export { SuiPythClient } from "./client";
 
-export {
+export type {
   AssetType,
   BinaryPriceUpdate,
   DurationInMs,

+ 10 - 0
target_chains/sui/sdk/js/tsconfig.build.json

@@ -0,0 +1,10 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "declaration": true,
+    "incremental": false,
+    "noEmit": false,
+    "verbatimModuleSyntax": false,
+  },
+  "exclude": ["dist", "node_modules"]
+}

+ 2 - 11
target_chains/sui/sdk/js/tsconfig.json

@@ -1,14 +1,5 @@
 {
-  "extends": "../../../../tsconfig.base.json",
-  "compilerOptions": {
-    "target": "esnext",
-    "module": "commonjs",
-    "declaration": true,
-    "outDir": "./lib",
-    "rootDir": "src/",
-    "strict": true,
-    "esModuleInterop": true
-  },
+  "extends": "@cprussin/tsconfig/nextjs.json",
   "include": ["src"],
-  "exclude": ["node_modules", "**/__tests__/*"]
+  "exclude": ["dist", "node_modules"]
 }