@fhevm/sdk 1.1.0-alpha.5 → 1.1.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. package/_cjs/core/_version.js +1 -1
  2. package/_cjs/core/actions/base/index.js +1 -17
  3. package/_cjs/core/actions/base/index.js.map +1 -1
  4. package/_cjs/core/actions/base/signDecryptionPermit.js +0 -3
  5. package/_cjs/core/actions/base/signDecryptionPermit.js.map +1 -1
  6. package/_cjs/core/actions/chain/index.js +1 -13
  7. package/_cjs/core/actions/chain/index.js.map +1 -1
  8. package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  9. package/_cjs/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
  10. package/_cjs/core/actions/decrypt/canDecryptValue.js.map +1 -1
  11. package/_cjs/core/actions/decrypt/canDecryptValues.js.map +1 -1
  12. package/_cjs/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
  13. package/_cjs/core/actions/decrypt/decryptValue.js +1 -0
  14. package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
  15. package/_cjs/core/actions/decrypt/decryptValues.js +2 -0
  16. package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
  17. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
  18. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  19. package/_cjs/core/actions/decrypt/index.js +1 -3
  20. package/_cjs/core/actions/decrypt/index.js.map +1 -1
  21. package/_cjs/core/actions/host/index.js +1 -9
  22. package/_cjs/core/actions/host/index.js.map +1 -1
  23. package/_cjs/core/base/bytes.js +2 -1
  24. package/_cjs/core/base/bytes.js.map +1 -1
  25. package/_cjs/core/base/cachedFetch.js +2 -1
  26. package/_cjs/core/base/cachedFetch.js.map +1 -1
  27. package/_cjs/core/base/environment.js +122 -0
  28. package/_cjs/core/base/environment.js.map +1 -0
  29. package/_cjs/core/base/errors/Sha256VerificationError.js +15 -0
  30. package/_cjs/core/base/errors/Sha256VerificationError.js.map +1 -0
  31. package/_cjs/core/base/inflate.js +282 -0
  32. package/_cjs/core/base/inflate.js.map +1 -0
  33. package/_cjs/core/base/isomorphicFs.js +24 -0
  34. package/_cjs/core/base/isomorphicFs.js.map +1 -0
  35. package/_cjs/core/base/isomorphicWorker.js +42 -111
  36. package/_cjs/core/base/isomorphicWorker.js.map +1 -1
  37. package/_cjs/core/base/uint.js +7 -0
  38. package/_cjs/core/base/uint.js.map +1 -1
  39. package/_cjs/core/base/wasm.js +15 -55
  40. package/_cjs/core/base/wasm.js.map +1 -1
  41. package/_cjs/core/clients/decorators/base.js +1 -1
  42. package/_cjs/core/clients/decorators/base.js.map +1 -1
  43. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +4 -1
  44. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  45. package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +1 -1
  46. package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
  47. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +1 -1
  48. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
  49. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +1 -1
  50. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  51. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +1 -1
  52. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  53. package/_cjs/core/kms/PublicDecryptionProof-p.js +4 -4
  54. package/_cjs/core/kms/SignedDecryptionPermit-p.js +33 -199
  55. package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  56. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js +217 -0
  57. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
  58. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js +184 -0
  59. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
  60. package/_cjs/core/kms/TransportKeyPair-p.js +0 -4
  61. package/_cjs/core/kms/TransportKeyPair-p.js.map +1 -1
  62. package/_cjs/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +9 -9
  63. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  64. package/_cjs/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +18 -14
  65. package/_cjs/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
  66. package/_cjs/core/kms/decryptValuesFromPairs.js +18 -2
  67. package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
  68. package/_cjs/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +18 -8
  69. package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
  70. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js +95 -0
  71. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
  72. package/_cjs/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +8 -8
  73. package/_cjs/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
  74. package/_cjs/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +8 -8
  75. package/_cjs/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
  76. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
  77. package/_cjs/core/kms/publicDecrypt.js +2 -2
  78. package/_cjs/core/kms/utils.js +0 -19
  79. package/_cjs/core/kms/utils.js.map +1 -1
  80. package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js +1 -1
  81. package/_cjs/core/modules/decrypt/module/api-p.js +5 -5
  82. package/_cjs/core/modules/decrypt/module/init-p.js +124 -40
  83. package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
  84. package/_cjs/core/modules/encrypt/module/init-p.js +153 -49
  85. package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
  86. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js +3 -3
  87. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  88. package/_cjs/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
  89. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
  90. package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  91. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js +11 -45
  92. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  93. package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js +52 -0
  94. package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
  95. package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js +54 -0
  96. package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
  97. package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
  98. package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
  99. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +5 -2
  100. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
  101. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
  102. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
  103. package/_cjs/core/modules/relayer/module/index.js +2 -2
  104. package/_cjs/core/modules/relayer/module/index.js.map +1 -1
  105. package/_cjs/core/runtime/HyperWasmSolver-p.js +5 -10
  106. package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -1
  107. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  108. package/_cjs/core/runtime/initFhevmRuntime-p.js +1 -1
  109. package/_cjs/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
  110. package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  111. package/_cjs/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
  112. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
  113. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +30 -0
  114. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
  115. package/_cjs/wasm/tfhe/TfheApi.d.ts +12 -12
  116. package/_cjs/wasm/tfhe/loadTfheLib.js +11 -11
  117. package/_cjs/wasm/tfhe/loadTfheLib.js.map +2 -2
  118. package/_cjs/wasm/tfhe/v1.5.3/startWorkers.js +26 -9
  119. package/_cjs/wasm/tfhe/v1.5.3/startWorkers.js.map +2 -2
  120. package/_cjs/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  121. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +28 -11
  122. package/_cjs/wasm/tfhe/v1.6.2/startWorkers.js.map +7 -0
  123. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  124. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  125. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
  126. package/_cjs/wasm/tfhe/v1.6.2/tfhe.js.map +7 -0
  127. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  128. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +35 -0
  129. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js.map +7 -0
  130. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  131. package/_cjs/wasm/wasmBaseUrl.js +8 -19
  132. package/_cjs/wasm/wasmBaseUrl.js.map +2 -2
  133. package/_esm/core/_version.js +1 -1
  134. package/_esm/core/actions/base/index.js +0 -8
  135. package/_esm/core/actions/base/index.js.map +1 -1
  136. package/_esm/core/actions/base/signDecryptionPermit.js +0 -6
  137. package/_esm/core/actions/base/signDecryptionPermit.js.map +1 -1
  138. package/_esm/core/actions/chain/index.js +0 -6
  139. package/_esm/core/actions/chain/index.js.map +1 -1
  140. package/_esm/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  141. package/_esm/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
  142. package/_esm/core/actions/decrypt/canDecryptValue.js +40 -0
  143. package/_esm/core/actions/decrypt/canDecryptValue.js.map +1 -1
  144. package/_esm/core/actions/decrypt/canDecryptValues.js +1 -0
  145. package/_esm/core/actions/decrypt/canDecryptValues.js.map +1 -1
  146. package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js +1 -0
  147. package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
  148. package/_esm/core/actions/decrypt/decryptValue.js +1 -0
  149. package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
  150. package/_esm/core/actions/decrypt/decryptValues.js +2 -0
  151. package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
  152. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
  153. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  154. package/_esm/core/actions/decrypt/index.js +0 -1
  155. package/_esm/core/actions/decrypt/index.js.map +1 -1
  156. package/_esm/core/actions/host/index.js +0 -4
  157. package/_esm/core/actions/host/index.js.map +1 -1
  158. package/_esm/core/base/bytes.js +2 -1
  159. package/_esm/core/base/bytes.js.map +1 -1
  160. package/_esm/core/base/cachedFetch.js +1 -0
  161. package/_esm/core/base/cachedFetch.js.map +1 -1
  162. package/_esm/core/base/environment.js +164 -0
  163. package/_esm/core/base/environment.js.map +1 -0
  164. package/_esm/core/base/errors/Sha256VerificationError.js +11 -0
  165. package/_esm/core/base/errors/Sha256VerificationError.js.map +1 -0
  166. package/_esm/core/base/inflate.js +337 -0
  167. package/_esm/core/base/inflate.js.map +1 -0
  168. package/_esm/core/base/isomorphicFs.js +21 -0
  169. package/_esm/core/base/isomorphicFs.js.map +1 -0
  170. package/_esm/core/base/isomorphicWorker.js +92 -85
  171. package/_esm/core/base/isomorphicWorker.js.map +1 -1
  172. package/_esm/core/base/uint.js +7 -0
  173. package/_esm/core/base/uint.js.map +1 -1
  174. package/_esm/core/base/wasm.js +25 -31
  175. package/_esm/core/base/wasm.js.map +1 -1
  176. package/_esm/core/clients/decorators/base.js +2 -4
  177. package/_esm/core/clients/decorators/base.js.map +1 -1
  178. package/_esm/core/coprocessor/coprocessorEip712Types.js +2 -2
  179. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +5 -2
  180. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  181. package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +2 -2
  182. package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
  183. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +2 -2
  184. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
  185. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +2 -2
  186. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  187. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +2 -2
  188. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  189. package/_esm/core/kms/PublicDecryptionProof-p.js +4 -4
  190. package/_esm/core/kms/SignedDecryptionPermit-p.js +48 -245
  191. package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  192. package/_esm/core/kms/SignedDecryptionPermitV1-p.js +258 -0
  193. package/_esm/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
  194. package/_esm/core/kms/SignedDecryptionPermitV2-p.js +204 -0
  195. package/_esm/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
  196. package/_esm/core/kms/TransportKeyPair-p.js +0 -4
  197. package/_esm/core/kms/TransportKeyPair-p.js.map +1 -1
  198. package/_esm/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +8 -8
  199. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  200. package/_esm/core/kms/createKmsPublicDecryptEip712.js +1 -1
  201. package/_esm/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +18 -14
  202. package/_esm/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
  203. package/_esm/core/kms/decryptValuesFromPairs.js +18 -2
  204. package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
  205. package/_esm/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +23 -13
  206. package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
  207. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js +119 -0
  208. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
  209. package/_esm/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +9 -8
  210. package/_esm/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
  211. package/_esm/core/kms/kmsPublicDecryptEip712Types.js +1 -1
  212. package/_esm/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +9 -8
  213. package/_esm/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
  214. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +2 -1
  215. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
  216. package/_esm/core/kms/publicDecrypt.js +2 -2
  217. package/_esm/core/kms/utils.js +0 -18
  218. package/_esm/core/kms/utils.js.map +1 -1
  219. package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js +2 -2
  220. package/_esm/core/modules/decrypt/module/api-p.js +6 -6
  221. package/_esm/core/modules/decrypt/module/init-p.js +110 -55
  222. package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
  223. package/_esm/core/modules/encrypt/module/init-p.js +306 -57
  224. package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
  225. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js +3 -3
  226. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  227. package/_esm/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
  228. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
  229. package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  230. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js +11 -46
  231. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  232. package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js +53 -0
  233. package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
  234. package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js +56 -0
  235. package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
  236. package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
  237. package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
  238. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +6 -3
  239. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
  240. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
  241. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
  242. package/_esm/core/modules/relayer/module/index.js +1 -1
  243. package/_esm/core/modules/relayer/module/index.js.map +1 -1
  244. package/_esm/core/runtime/HyperWasmSolver-p.js +5 -10
  245. package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -1
  246. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  247. package/_esm/core/runtime/initFhevmRuntime-p.js +1 -1
  248. package/_esm/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
  249. package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  250. package/_esm/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
  251. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
  252. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +27 -0
  253. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
  254. package/_esm/wasm/tfhe/TfheApi.d.ts +12 -12
  255. package/_esm/wasm/tfhe/loadTfheLib.js +11 -11
  256. package/_esm/wasm/tfhe/v1.5.3/startWorkers.js +41 -20
  257. package/_esm/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  258. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +46 -25
  259. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  260. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  261. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
  262. package/_esm/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  263. package/_esm/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +7 -0
  264. package/_esm/wasm/wasmBaseUrl.js +17 -54
  265. package/_types/core/actions/base/index.d.ts +0 -8
  266. package/_types/core/actions/base/index.d.ts.map +1 -1
  267. package/_types/core/actions/base/signDecryptionPermit.d.ts +4 -5
  268. package/_types/core/actions/base/signDecryptionPermit.d.ts.map +1 -1
  269. package/_types/core/actions/chain/index.d.ts +1 -7
  270. package/_types/core/actions/chain/index.d.ts.map +1 -1
  271. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +1 -0
  272. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  273. package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts +3 -2
  274. package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts.map +1 -1
  275. package/_types/core/actions/decrypt/canDecryptValue.d.ts +3 -4
  276. package/_types/core/actions/decrypt/canDecryptValue.d.ts.map +1 -1
  277. package/_types/core/actions/decrypt/canDecryptValues.d.ts +3 -4
  278. package/_types/core/actions/decrypt/canDecryptValues.d.ts.map +1 -1
  279. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts +3 -4
  280. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts.map +1 -1
  281. package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
  282. package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
  283. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
  284. package/_types/core/actions/decrypt/index.d.ts +0 -1
  285. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  286. package/_types/core/actions/host/index.d.ts +0 -4
  287. package/_types/core/actions/host/index.d.ts.map +1 -1
  288. package/_types/core/base/bytes.d.ts.map +1 -1
  289. package/_types/core/base/cachedFetch.d.ts +1 -0
  290. package/_types/core/base/cachedFetch.d.ts.map +1 -1
  291. package/_types/core/base/environment.d.ts +92 -0
  292. package/_types/core/base/environment.d.ts.map +1 -0
  293. package/_types/core/base/errors/Sha256VerificationError.d.ts +14 -0
  294. package/_types/core/base/errors/Sha256VerificationError.d.ts.map +1 -0
  295. package/_types/core/base/inflate.d.ts +25 -0
  296. package/_types/core/base/inflate.d.ts.map +1 -0
  297. package/_types/core/base/isomorphicFs.d.ts +2 -0
  298. package/_types/core/base/isomorphicFs.d.ts.map +1 -0
  299. package/_types/core/base/isomorphicWorker.d.ts +27 -43
  300. package/_types/core/base/isomorphicWorker.d.ts.map +1 -1
  301. package/_types/core/base/uint.d.ts +2 -1
  302. package/_types/core/base/uint.d.ts.map +1 -1
  303. package/_types/core/base/wasm.d.ts +0 -8
  304. package/_types/core/base/wasm.d.ts.map +1 -1
  305. package/_types/core/clients/decorators/base.d.ts +12 -23
  306. package/_types/core/clients/decorators/base.d.ts.map +1 -1
  307. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts +2 -2
  308. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts.map +1 -1
  309. package/_types/core/kms/PublicDecryptionProof-p.d.ts +1 -1
  310. package/_types/core/kms/SignedDecryptionPermit-p.d.ts +15 -29
  311. package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
  312. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts +7 -0
  313. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts.map +1 -0
  314. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts +7 -0
  315. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts.map +1 -0
  316. package/_types/core/kms/TransportKeyPair-p.d.ts.map +1 -1
  317. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts +15 -0
  318. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
  319. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts +26 -0
  320. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts.map +1 -0
  321. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +1 -1
  322. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -1
  323. package/_types/core/kms/decryptValuesFromPairs.d.ts +4 -11
  324. package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
  325. package/_types/core/kms/{fetchKmsSigncryptedShares-p.d.ts → fetchKmsSigncryptedSharesV1-p.d.ts} +10 -12
  326. package/_types/core/kms/fetchKmsSigncryptedSharesV1-p.d.ts.map +1 -0
  327. package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts +28 -0
  328. package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts.map +1 -0
  329. package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts +3 -0
  330. package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts.map +1 -0
  331. package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts +3 -0
  332. package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts.map +1 -0
  333. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -1
  334. package/_types/core/kms/utils.d.ts +0 -4
  335. package/_types/core/kms/utils.d.ts.map +1 -1
  336. package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts +1 -1
  337. package/_types/core/modules/decrypt/module/init-p.d.ts.map +1 -1
  338. package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
  339. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts +2 -2
  340. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts.map +1 -1
  341. package/_types/core/modules/relayer/module/{fetchDelegatedUserDecrypt.d.ts → fetchDelegatedUserDecryptV1.d.ts} +1 -1
  342. package/_types/core/modules/relayer/module/fetchDelegatedUserDecryptV1.d.ts.map +1 -0
  343. package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts.map +1 -1
  344. package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts +3 -0
  345. package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts.map +1 -0
  346. package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts +3 -0
  347. package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts.map +1 -0
  348. package/_types/core/modules/relayer/module/guards/RelayerResponseFailed.d.ts.map +1 -1
  349. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts +1 -1
  350. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts.map +1 -1
  351. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError503.d.ts.map +1 -1
  352. package/_types/core/modules/relayer/types.d.ts +18 -5
  353. package/_types/core/modules/relayer/types.d.ts.map +1 -1
  354. package/_types/core/types/kms.d.ts +18 -19
  355. package/_types/core/types/kms.d.ts.map +1 -1
  356. package/_types/core/types/logger.d.ts +3 -3
  357. package/_types/core/types/logger.d.ts.map +1 -1
  358. package/_types/core/types/record-p.d.ts +2 -1
  359. package/_types/core/types/record-p.d.ts.map +1 -1
  360. package/_types/core/types/relayer-p.d.ts +27 -5
  361. package/_types/core/types/relayer-p.d.ts.map +1 -1
  362. package/_types/core/types/signedDecryptionPermit.d.ts +37 -26
  363. package/_types/core/types/signedDecryptionPermit.d.ts.map +1 -1
  364. package/_types/core/types/wasmAssets.d.ts.map +1 -1
  365. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts +14 -0
  366. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
  367. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts +14 -0
  368. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts.map +1 -0
  369. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts +14 -0
  370. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts.map +1 -0
  371. package/_types/core/utils-p/runtime/recoverSigners.d.ts +2 -2
  372. package/_types/wasm/tfhe/TfheApi.d.ts +12 -12
  373. package/_types/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  374. package/_types/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  375. package/core/_version.ts +1 -1
  376. package/core/actions/base/index.ts +0 -42
  377. package/core/actions/base/signDecryptionPermit.ts +3 -31
  378. package/core/actions/chain/index.ts +0 -28
  379. package/core/actions/chain/parseSignedDecryptionPermit.ts +1 -0
  380. package/core/actions/chain/serializeSignedDecryptionPermit.ts +3 -2
  381. package/core/actions/decrypt/canDecryptValue.ts +2 -16
  382. package/core/actions/decrypt/canDecryptValues.ts +2 -16
  383. package/core/actions/decrypt/canDecryptValuesFromPairs.ts +2 -16
  384. package/core/actions/decrypt/decryptValue.ts +2 -1
  385. package/core/actions/decrypt/decryptValues.ts +3 -1
  386. package/core/actions/decrypt/decryptValuesFromPairs.ts +3 -1
  387. package/core/actions/decrypt/index.ts +0 -6
  388. package/core/actions/host/index.ts +0 -20
  389. package/core/base/bytes.ts +2 -1
  390. package/core/base/cachedFetch.ts +1 -0
  391. package/core/base/environment.ts +210 -0
  392. package/core/base/errors/Sha256VerificationError.ts +22 -0
  393. package/core/base/inflate.ts +373 -0
  394. package/core/base/isomorphicFs.ts +23 -0
  395. package/core/base/isomorphicWorker.ts +96 -123
  396. package/core/base/uint.ts +18 -1
  397. package/core/base/wasm.ts +28 -35
  398. package/core/clients/decorators/base.ts +13 -37
  399. package/core/coprocessor/coprocessorEip712Types.ts +2 -2
  400. package/core/host-contracts/canDecryptValuesFromPairs.ts +7 -7
  401. package/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.ts +2 -2
  402. package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +2 -2
  403. package/core/host-contracts/getCurrentKmsContextId-p.ts +2 -2
  404. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +2 -2
  405. package/core/kms/PublicDecryptionProof-p.ts +5 -5
  406. package/core/kms/SignedDecryptionPermit-p.ts +67 -357
  407. package/core/kms/SignedDecryptionPermitV1-p.ts +350 -0
  408. package/core/kms/SignedDecryptionPermitV2-p.ts +292 -0
  409. package/core/kms/TransportKeyPair-p.ts +0 -5
  410. package/core/kms/{createKmsDelegatedUserDecryptEip712.ts → createKmsDelegatedUserDecryptEip712V1.ts} +16 -16
  411. package/core/kms/createKmsPublicDecryptEip712.ts +1 -1
  412. package/core/kms/{createKmsUserDecryptEip712.ts → createKmsUserDecryptEip712V1.ts} +31 -22
  413. package/core/kms/createKmsUserDecryptEip712V2.ts +1 -1
  414. package/core/kms/decryptValuesFromPairs.ts +34 -22
  415. package/core/kms/{fetchKmsSigncryptedShares-p.ts → fetchKmsSigncryptedSharesV1-p.ts} +35 -30
  416. package/core/kms/fetchKmsSigncryptedSharesV2-p.ts +176 -0
  417. package/core/kms/{kmsDelegatedUserDecryptEip712Types.ts → kmsDelegatedUserDecryptEip712V1Types.ts} +9 -8
  418. package/core/kms/kmsPublicDecryptEip712Types.ts +1 -1
  419. package/core/kms/{kmsUserDecryptEip712Types.ts → kmsUserDecryptEip712V1Types.ts} +9 -8
  420. package/core/kms/kmsUserDecryptEip712V2Types.ts +2 -1
  421. package/core/kms/publicDecrypt.ts +2 -2
  422. package/core/kms/utils.ts +0 -32
  423. package/core/kms/verifyKmsPublicDecryptEip712-p.ts +3 -3
  424. package/core/modules/decrypt/module/api-p.ts +8 -8
  425. package/core/modules/decrypt/module/init-p.ts +149 -60
  426. package/core/modules/encrypt/module/init-p.ts +377 -67
  427. package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +3 -3
  428. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +2 -2
  429. package/core/modules/relayer/module/fetchPublicDecrypt.ts +1 -1
  430. package/core/modules/relayer/module/fetchUserDecrypt.ts +20 -56
  431. package/core/modules/relayer/module/fetchUserDecryptV1.ts +69 -0
  432. package/core/modules/relayer/module/fetchUserDecryptV2.ts +71 -0
  433. package/core/modules/relayer/module/guards/RelayerResponseFailed.ts +10 -2
  434. package/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.ts +6 -3
  435. package/core/modules/relayer/module/guards/api-errors/RelayerApiError503.ts +2 -0
  436. package/core/modules/relayer/module/index.ts +1 -1
  437. package/core/modules/relayer/types.ts +24 -5
  438. package/core/runtime/HyperWasmSolver-p.ts +5 -9
  439. package/core/runtime/initFhevmEncryptRuntime-p.ts +1 -1
  440. package/core/runtime/initFhevmRuntime-p.ts +1 -1
  441. package/core/types/kms.ts +40 -28
  442. package/core/types/logger.ts +3 -3
  443. package/core/types/record-p.ts +2 -1
  444. package/core/types/relayer-p.ts +48 -5
  445. package/core/types/signedDecryptionPermit.ts +47 -26
  446. package/core/types/wasmAssets.ts +58 -0
  447. package/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.ts → verifyKmsDelegatedUserDecryptEip712V1.ts} +9 -9
  448. package/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.ts → verifyKmsUserDecryptEip712V1.ts} +9 -9
  449. package/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.ts +43 -0
  450. package/core/utils-p/runtime/recoverSigners.ts +2 -2
  451. package/package.json +1 -1
  452. package/wasm/tfhe/TfheApi.d.ts +12 -12
  453. package/wasm/tfhe/loadTfheLib.js +11 -11
  454. package/wasm/tfhe/v1.5.3/startWorkers.js +41 -20
  455. package/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  456. package/wasm/tfhe/v1.6.0-dev/startWorkers.js +41 -20
  457. package/wasm/tfhe/v1.6.0-dev/tfhe.d.ts +3 -0
  458. package/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +46 -25
  459. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  460. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  461. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
  462. package/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  463. package/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +7 -0
  464. package/wasm/wasmBaseUrl.js +17 -54
  465. package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -10
  466. package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
  467. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js +0 -19
  468. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
  469. package/_cjs/core/actions/base/fetchVerifiedInputProof.js +0 -11
  470. package/_cjs/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
  471. package/_cjs/core/actions/base/readKmsSignersContext.js +0 -11
  472. package/_cjs/core/actions/base/readKmsSignersContext.js.map +0 -1
  473. package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -31
  474. package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
  475. package/_cjs/core/actions/base/verifyInputProof.js +0 -24
  476. package/_cjs/core/actions/base/verifyInputProof.js.map +0 -1
  477. package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -17
  478. package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
  479. package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js +0 -11
  480. package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
  481. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -17
  482. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  483. package/_cjs/core/actions/chain/createKmsEip712Domain.js +0 -11
  484. package/_cjs/core/actions/chain/createKmsEip712Domain.js.map +0 -1
  485. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js +0 -16
  486. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
  487. package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -8
  488. package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  489. package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -8
  490. package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
  491. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -13
  492. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
  493. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  494. package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +0 -1
  495. package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
  496. package/_cjs/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
  497. package/_cjs/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
  498. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
  499. package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  500. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
  501. package/_cjs/wasm/tfhe/v1.6.1/startWorkers.js.map +0 -7
  502. package/_cjs/wasm/tfhe/v1.6.1/tfhe.js.map +0 -7
  503. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  504. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -35
  505. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js.map +0 -7
  506. package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -7
  507. package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
  508. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js +0 -17
  509. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
  510. package/_esm/core/actions/base/fetchVerifiedInputProof.js +0 -8
  511. package/_esm/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
  512. package/_esm/core/actions/base/readKmsSignersContext.js +0 -10
  513. package/_esm/core/actions/base/readKmsSignersContext.js.map +0 -1
  514. package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -35
  515. package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
  516. package/_esm/core/actions/base/verifyInputProof.js +0 -22
  517. package/_esm/core/actions/base/verifyInputProof.js.map +0 -1
  518. package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -14
  519. package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
  520. package/_esm/core/actions/chain/createCoprocessorEip712Domain.js +0 -8
  521. package/_esm/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
  522. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -15
  523. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  524. package/_esm/core/actions/chain/createKmsEip712Domain.js +0 -8
  525. package/_esm/core/actions/chain/createKmsEip712Domain.js.map +0 -1
  526. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js +0 -14
  527. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
  528. package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -5
  529. package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  530. package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -5
  531. package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
  532. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -11
  533. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
  534. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  535. package/_esm/core/kms/createKmsUserDecryptEip712.js.map +0 -1
  536. package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
  537. package/_esm/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
  538. package/_esm/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
  539. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
  540. package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  541. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
  542. package/_esm/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  543. package/_esm/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -7
  544. package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts +0 -14
  545. package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts.map +0 -1
  546. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts +0 -41
  547. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +0 -1
  548. package/_types/core/actions/base/fetchVerifiedInputProof.d.ts +0 -14
  549. package/_types/core/actions/base/fetchVerifiedInputProof.d.ts.map +0 -1
  550. package/_types/core/actions/base/readKmsSignersContext.d.ts +0 -6
  551. package/_types/core/actions/base/readKmsSignersContext.d.ts.map +0 -1
  552. package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts +0 -14
  553. package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts.map +0 -1
  554. package/_types/core/actions/base/verifyInputProof.d.ts +0 -14
  555. package/_types/core/actions/base/verifyInputProof.d.ts.map +0 -1
  556. package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts +0 -11
  557. package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts.map +0 -1
  558. package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts +0 -7
  559. package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts.map +0 -1
  560. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
  561. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  562. package/_types/core/actions/chain/createKmsEip712Domain.d.ts +0 -7
  563. package/_types/core/actions/chain/createKmsEip712Domain.d.ts.map +0 -1
  564. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts +0 -14
  565. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts.map +0 -1
  566. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -7
  567. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  568. package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts +0 -7
  569. package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts.map +0 -1
  570. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts +0 -13
  571. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +0 -1
  572. package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
  573. package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  574. package/_types/core/kms/createKmsUserDecryptEip712.d.ts +0 -26
  575. package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +0 -1
  576. package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +0 -1
  577. package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts +0 -3
  578. package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts.map +0 -1
  579. package/_types/core/kms/kmsUserDecryptEip712Types.d.ts +0 -3
  580. package/_types/core/kms/kmsUserDecryptEip712Types.d.ts.map +0 -1
  581. package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts.map +0 -1
  582. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -14
  583. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  584. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts +0 -14
  585. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts.map +0 -1
  586. package/core/actions/base/createVerifiedInputProofFromRawBytes.ts +0 -24
  587. package/core/actions/base/fetchKmsSigncryptedShares.ts +0 -83
  588. package/core/actions/base/fetchVerifiedInputProof.ts +0 -25
  589. package/core/actions/base/readKmsSignersContext.ts +0 -20
  590. package/core/actions/base/verifyHandlesCoprocessorSignatures.ts +0 -60
  591. package/core/actions/base/verifyInputProof.ts +0 -45
  592. package/core/actions/base/verifyZkProofCoprocessorSignatures.ts +0 -32
  593. package/core/actions/chain/createCoprocessorEip712Domain.ts +0 -16
  594. package/core/actions/chain/createKmsDelegatedUserDecryptEip712.ts +0 -36
  595. package/core/actions/chain/createKmsEip712Domain.ts +0 -16
  596. package/core/actions/chain/createKmsUserDecryptEip712.ts +0 -34
  597. package/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.ts +0 -16
  598. package/core/actions/chain/verifyKmsUserDecryptEip712.ts +0 -16
  599. package/core/actions/decrypt/decryptKmsSigncryptedShares.ts +0 -34
  600. package/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  601. package/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -7
  602. /package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  603. /package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  604. /package/_types/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  605. /package/core/modules/relayer/module/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +0 -0
  606. /package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
@@ -0,0 +1,373 @@
1
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
+ // Vendored, dependency-free DEFLATE / gzip / zlib inflater.
3
+ //
4
+ // Why this exists: the SDK embeds its WASM as gzip-compressed base64 and normally
5
+ // inflates it with the platform `DecompressionStream`. Some runtimes have no usable
6
+ // `DecompressionStream` — older browsers (Firefox <113, Safari <16.4) and the
7
+ // Next.js Edge Runtime (which exposes a global stub that throws on construction, see
8
+ // `supportsDecompressionStream` in environment.ts). For those, callers fall back to
9
+ // this pure-JS inflater, which runs in any JS runtime with no platform API and no
10
+ // third-party dependency.
11
+ //
12
+ // The DEFLATE decoder is a TypeScript reimplementation of the public-domain "tinf"
13
+ // inflate (Joergen Ibsen), itself derived from Mark Adler's zlib "puff" reference.
14
+ // It supports all RFC 1951 block types (stored, fixed-Huffman, dynamic-Huffman) and
15
+ // adds the RFC 1952 (gzip) and RFC 1950 (zlib) container framings. Per-call state is
16
+ // allocated fresh (no shared mutable globals); only the immutable static tables are
17
+ // shared. Decompression happens once per WASM load, so allocation cost is irrelevant.
18
+
19
+ type Tree = {
20
+ /** Number of codes of each bit length (index = length, 0..15). */
21
+ readonly counts: Uint16Array;
22
+ /** Code -> symbol translation table, grouped by code length. */
23
+ readonly symbols: Uint16Array;
24
+ };
25
+
26
+ type InflateState = {
27
+ readonly source: Uint8Array;
28
+ pos: number; // next byte to read from source
29
+ tag: number; // bit buffer (LSB-first)
30
+ bitcount: number; // valid bits currently in `tag`
31
+ dest: Uint8Array<ArrayBuffer>; // output buffer (grown on demand)
32
+ destLen: number; // bytes written to `dest`
33
+ };
34
+
35
+ function newTree(maxSymbols: number): Tree {
36
+ return { counts: new Uint16Array(16), symbols: new Uint16Array(maxSymbols) };
37
+ }
38
+
39
+ // ---- Immutable static tables (built once at module load) --------------------
40
+
41
+ // Length codes 257..285: extra-bit counts and base lengths (index = symbol - 257).
42
+ const LENGTH_BITS = new Uint8Array(30);
43
+ const LENGTH_BASE = new Uint16Array(30);
44
+ // Distance codes 0..29: extra-bit counts and base distances.
45
+ const DIST_BITS = new Uint8Array(30);
46
+ const DIST_BASE = new Uint16Array(30);
47
+ // Order in which code-length-code lengths are stored (RFC 1951 §3.2.7).
48
+ const CLC_ORDER = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
49
+ const FIXED_LTREE = newTree(288);
50
+ const FIXED_DTREE = newTree(30);
51
+
52
+ function buildBitsBase(bits: Uint8Array, base: Uint16Array, delta: number, first: number): void {
53
+ for (let i = 0; i < delta; i++) {
54
+ bits[i] = 0;
55
+ }
56
+ for (let i = 0; i < 30 - delta; i++) {
57
+ bits[i + delta] = Math.floor(i / delta);
58
+ }
59
+ let sum = first;
60
+ for (let i = 0; i < 30; i++) {
61
+ base[i] = sum;
62
+ sum += 1 << bits[i]!;
63
+ }
64
+ }
65
+
66
+ function buildFixedTrees(lt: Tree, dt: Tree): void {
67
+ for (let i = 0; i < 7; i++) {
68
+ lt.counts[i] = 0;
69
+ }
70
+ lt.counts[7] = 24;
71
+ lt.counts[8] = 152;
72
+ lt.counts[9] = 112;
73
+ for (let i = 0; i < 24; i++) {
74
+ lt.symbols[i] = 256 + i;
75
+ }
76
+ for (let i = 0; i < 144; i++) {
77
+ lt.symbols[24 + i] = i;
78
+ }
79
+ for (let i = 0; i < 8; i++) {
80
+ lt.symbols[24 + 144 + i] = 280 + i;
81
+ }
82
+ for (let i = 0; i < 112; i++) {
83
+ lt.symbols[24 + 144 + 8 + i] = 144 + i;
84
+ }
85
+ for (let i = 0; i < 5; i++) {
86
+ dt.counts[i] = 0;
87
+ }
88
+ dt.counts[5] = 32;
89
+ for (let i = 0; i < 32; i++) {
90
+ dt.symbols[i] = i;
91
+ }
92
+ }
93
+
94
+ buildBitsBase(LENGTH_BITS, LENGTH_BASE, 4, 3);
95
+ buildBitsBase(DIST_BITS, DIST_BASE, 2, 1);
96
+ // Length code 285 has no extra bits and a fixed length of 258 (the generic formula
97
+ // above would assign it extra bits; override it).
98
+ LENGTH_BITS[28] = 0;
99
+ LENGTH_BASE[28] = 258;
100
+ buildFixedTrees(FIXED_LTREE, FIXED_DTREE);
101
+
102
+ // ---- Bit reader -------------------------------------------------------------
103
+
104
+ function readBits(d: InflateState, num: number, base: number): number {
105
+ if (num === 0) {
106
+ return base;
107
+ }
108
+ while (d.bitcount < 24) {
109
+ d.tag |= d.source[d.pos++]! << d.bitcount;
110
+ d.bitcount += 8;
111
+ }
112
+ const val = d.tag & (0xffff >>> (16 - num));
113
+ d.tag >>>= num;
114
+ d.bitcount -= num;
115
+ return val + base;
116
+ }
117
+
118
+ function decodeSymbol(d: InflateState, t: Tree): number {
119
+ while (d.bitcount < 24) {
120
+ d.tag |= d.source[d.pos++]! << d.bitcount;
121
+ d.bitcount += 8;
122
+ }
123
+ let sum = 0;
124
+ let cur = 0;
125
+ let len = 0;
126
+ let tag = d.tag;
127
+ // Walk the canonical-Huffman code one bit at a time until the running code
128
+ // value falls within the range of codes of the current length.
129
+ do {
130
+ cur = 2 * cur + (tag & 1);
131
+ tag >>>= 1;
132
+ len++;
133
+ sum += t.counts[len]!;
134
+ cur -= t.counts[len]!;
135
+ } while (cur >= 0);
136
+ d.tag = tag;
137
+ d.bitcount -= len;
138
+ return t.symbols[sum + cur]!;
139
+ }
140
+
141
+ // ---- Tree / block decoding --------------------------------------------------
142
+
143
+ function buildTree(t: Tree, lengths: Uint8Array, off: number, num: number): void {
144
+ for (let i = 0; i < 16; i++) {
145
+ t.counts[i] = 0;
146
+ }
147
+ for (let i = 0; i < num; i++) {
148
+ const codeLen = lengths[off + i]!;
149
+ t.counts[codeLen] = t.counts[codeLen]! + 1;
150
+ }
151
+ t.counts[0] = 0;
152
+ const offsets = new Uint16Array(16);
153
+ let sum = 0;
154
+ for (let i = 0; i < 16; i++) {
155
+ offsets[i] = sum;
156
+ sum += t.counts[i]!;
157
+ }
158
+ for (let i = 0; i < num; i++) {
159
+ const codeLen = lengths[off + i]!;
160
+ if (codeLen !== 0) {
161
+ const slot = offsets[codeLen]!;
162
+ t.symbols[slot] = i;
163
+ offsets[codeLen] = slot + 1;
164
+ }
165
+ }
166
+ }
167
+
168
+ function decodeTrees(d: InflateState, lt: Tree, dt: Tree): void {
169
+ const codeTree = newTree(19);
170
+ const lengths = new Uint8Array(288 + 32);
171
+
172
+ const hlit = readBits(d, 5, 257);
173
+ const hdist = readBits(d, 5, 1);
174
+ const hclen = readBits(d, 4, 4);
175
+
176
+ for (let i = 0; i < hclen; i++) {
177
+ lengths[CLC_ORDER[i]!] = readBits(d, 3, 0);
178
+ }
179
+ buildTree(codeTree, lengths, 0, 19);
180
+
181
+ let num = 0;
182
+ while (num < hlit + hdist) {
183
+ const sym = decodeSymbol(d, codeTree);
184
+ if (sym === 16) {
185
+ // Repeat previous code length 3..6 times.
186
+ const prev = lengths[num - 1]!;
187
+ for (let length = readBits(d, 2, 3); length > 0; length--) {
188
+ lengths[num++] = prev;
189
+ }
190
+ } else if (sym === 17) {
191
+ // Repeat zero 3..10 times.
192
+ for (let length = readBits(d, 3, 3); length > 0; length--) {
193
+ lengths[num++] = 0;
194
+ }
195
+ } else if (sym === 18) {
196
+ // Repeat zero 11..138 times.
197
+ for (let length = readBits(d, 7, 11); length > 0; length--) {
198
+ lengths[num++] = 0;
199
+ }
200
+ } else {
201
+ lengths[num++] = sym;
202
+ }
203
+ }
204
+
205
+ buildTree(lt, lengths, 0, hlit);
206
+ buildTree(dt, lengths, hlit, hdist);
207
+ }
208
+
209
+ function ensureCapacity(d: InflateState, extra: number): void {
210
+ const needed = d.destLen + extra;
211
+ if (needed <= d.dest.length) {
212
+ return;
213
+ }
214
+ let newLen = d.dest.length * 2;
215
+ while (newLen < needed) {
216
+ newLen *= 2;
217
+ }
218
+ const bigger = new Uint8Array(newLen);
219
+ bigger.set(d.dest);
220
+ d.dest = bigger;
221
+ }
222
+
223
+ function inflateBlock(d: InflateState, lt: Tree, dt: Tree): void {
224
+ for (;;) {
225
+ let sym = decodeSymbol(d, lt);
226
+ if (sym === 256) {
227
+ return; // end of block
228
+ }
229
+ if (sym < 256) {
230
+ ensureCapacity(d, 1);
231
+ d.dest[d.destLen++] = sym;
232
+ } else {
233
+ sym -= 257;
234
+ const length = readBits(d, LENGTH_BITS[sym]!, LENGTH_BASE[sym]!);
235
+ const distSym = decodeSymbol(d, dt);
236
+ const dist = readBits(d, DIST_BITS[distSym]!, DIST_BASE[distSym]!);
237
+ const start = d.destLen - dist;
238
+ ensureCapacity(d, length);
239
+ // LZ77 back-reference: copy byte-by-byte (ranges may overlap, e.g. run-length).
240
+ for (let i = 0; i < length; i++) {
241
+ d.dest[d.destLen++] = d.dest[start + i]!;
242
+ }
243
+ }
244
+ }
245
+ }
246
+
247
+ function inflateStoredBlock(d: InflateState): void {
248
+ // Stored blocks are byte-aligned: push whole bytes back into the source so the
249
+ // LEN/NLEN fields are read from byte boundaries.
250
+ while (d.bitcount > 8) {
251
+ d.pos--;
252
+ d.bitcount -= 8;
253
+ }
254
+ const length = (d.source[d.pos + 1]! << 8) | d.source[d.pos]!;
255
+ const invLength = (d.source[d.pos + 3]! << 8) | d.source[d.pos + 2]!;
256
+ if (length !== (~invLength & 0xffff) >>> 0) {
257
+ throw new Error('inflate: invalid stored block length');
258
+ }
259
+ d.pos += 4;
260
+ ensureCapacity(d, length);
261
+ for (let i = length; i > 0; i--) {
262
+ d.dest[d.destLen++] = d.source[d.pos++]!;
263
+ }
264
+ d.tag = 0;
265
+ d.bitcount = 0;
266
+ }
267
+
268
+ /**
269
+ * Inflates a raw DEFLATE (RFC 1951) byte stream — no gzip/zlib container.
270
+ *
271
+ * @param source - raw DEFLATE bytes.
272
+ * @param sizeHint - expected uncompressed size, if known (e.g. gzip ISIZE). Used to
273
+ * pre-size the output buffer and avoid reallocation; correctness does not depend on
274
+ * it (the buffer grows as needed).
275
+ */
276
+ export function inflateRaw(source: Uint8Array, sizeHint?: number): Uint8Array<ArrayBuffer> {
277
+ const initialSize = sizeHint !== undefined && sizeHint > 0 ? sizeHint : Math.max(source.length * 4, 1024);
278
+ const d: InflateState = {
279
+ source,
280
+ pos: 0,
281
+ tag: 0,
282
+ bitcount: 0,
283
+ dest: new Uint8Array(initialSize),
284
+ destLen: 0,
285
+ };
286
+
287
+ for (;;) {
288
+ const bfinal = readBits(d, 1, 0);
289
+ const btype = readBits(d, 2, 0);
290
+ if (btype === 0) {
291
+ inflateStoredBlock(d);
292
+ } else if (btype === 1) {
293
+ inflateBlock(d, FIXED_LTREE, FIXED_DTREE);
294
+ } else if (btype === 2) {
295
+ const lt = newTree(288);
296
+ const dt = newTree(32);
297
+ decodeTrees(d, lt, dt);
298
+ inflateBlock(d, lt, dt);
299
+ } else {
300
+ throw new Error('inflate: invalid block type');
301
+ }
302
+ if (bfinal !== 0) {
303
+ break;
304
+ }
305
+ }
306
+
307
+ return d.dest.subarray(0, d.destLen);
308
+ }
309
+
310
+ /**
311
+ * Decompresses a gzip (RFC 1952) stream: validates the magic + method, skips the
312
+ * optional header fields, inflates the DEFLATE body, and pre-sizes the output from
313
+ * the trailer's ISIZE (uncompressed size mod 2^32).
314
+ */
315
+ export function gunzip(source: Uint8Array): Uint8Array<ArrayBuffer> {
316
+ if (source.length < 18 || source[0] !== 0x1f || source[1] !== 0x8b) {
317
+ throw new Error('gunzip: not a gzip stream');
318
+ }
319
+ if (source[2] !== 8) {
320
+ throw new Error(`gunzip: unsupported compression method ${String(source[2])}`);
321
+ }
322
+ const flg = source[3]!;
323
+ let pos = 10; // fixed gzip header size
324
+ if ((flg & 0x04) !== 0) {
325
+ // FEXTRA: 2-byte length + payload
326
+ pos += 2 + ((source[pos]! | (source[pos + 1]! << 8)) >>> 0);
327
+ }
328
+ if ((flg & 0x08) !== 0) {
329
+ // FNAME: NUL-terminated
330
+ while (source[pos] !== 0) {
331
+ pos++;
332
+ }
333
+ pos++;
334
+ }
335
+ if ((flg & 0x10) !== 0) {
336
+ // FCOMMENT: NUL-terminated
337
+ while (source[pos] !== 0) {
338
+ pos++;
339
+ }
340
+ pos++;
341
+ }
342
+ if ((flg & 0x02) !== 0) {
343
+ // FHCRC: 2-byte header CRC
344
+ pos += 2;
345
+ }
346
+
347
+ const n = source.length;
348
+ const isize = (source[n - 4]! | (source[n - 3]! << 8) | (source[n - 2]! << 16) | (source[n - 1]! << 24)) >>> 0;
349
+ return inflateRaw(source.subarray(pos), isize);
350
+ }
351
+
352
+ /**
353
+ * Pure-JS equivalent of `DecompressionStream` for the formats the SDK emits.
354
+ * Use as the fallback when `supportsDecompressionStream()` is false.
355
+ *
356
+ * - `gzip` — RFC 1952 (magic + header + DEFLATE + CRC/ISIZE trailer).
357
+ * - `deflate` — RFC 1950 zlib (2-byte header + DEFLATE + Adler-32 trailer).
358
+ * - `deflate-raw` — RFC 1951 raw DEFLATE.
359
+ */
360
+ export function inflateDecompress(
361
+ source: Uint8Array,
362
+ format: 'gzip' | 'deflate' | 'deflate-raw',
363
+ ): Uint8Array<ArrayBuffer> {
364
+ if (format === 'gzip') {
365
+ return gunzip(source);
366
+ }
367
+ if (format === 'deflate-raw') {
368
+ return inflateRaw(source);
369
+ }
370
+ // 'deflate' (zlib): skip the 2-byte CMF/FLG header; inflate stops at the final
371
+ // block, so the 4-byte Adler-32 trailer is simply never read.
372
+ return inflateRaw(source.subarray(2));
373
+ }
@@ -0,0 +1,23 @@
1
+ import { getNodeFs, getNodeUrl, isNodeLike } from './environment.js';
2
+
3
+ export async function isomorphicFileUrlExists(url: URL | undefined): Promise<boolean> {
4
+ if (url?.protocol !== 'file:') {
5
+ return false;
6
+ }
7
+
8
+ if (!isNodeLike()) {
9
+ return false;
10
+ }
11
+
12
+ const [fs, urlMod] = await Promise.all([getNodeFs(), getNodeUrl()]);
13
+ if (!fs || !urlMod) {
14
+ return false;
15
+ }
16
+
17
+ try {
18
+ await fs.access(urlMod.fileURLToPath(url));
19
+ return true;
20
+ } catch {
21
+ return false;
22
+ }
23
+ }
@@ -1,72 +1,95 @@
1
- interface NodeMessagePort {
2
- on(event: 'error', listener: (error: Error) => void): void;
3
- on(event: 'exit', listener: (code: number) => void): void;
4
- on(event: string, listener: (data: MessageData) => void): void;
5
- off(event: string, listener: (data: MessageData) => void): void;
6
- postMessage(value: unknown): void;
7
- terminate(): Promise<number>;
8
- }
9
-
10
- interface BrowserMessagePort {
11
- addEventListener(event: string, listener: (event: MessageEvent<MessageData>) => void): void;
12
- removeEventListener(event: string, listener: (event: MessageEvent<MessageData>) => void): void;
13
- postMessage(value: unknown): void;
14
- terminate(): void;
15
- }
1
+ import type { MessageData, NodeMessagePort } from './environment.js';
2
+ import { getNodeWorker, supportsWebWorkerApi } from './environment.js';
16
3
 
17
- export type IsomorphicMessagePort = NodeMessagePort | BrowserMessagePort;
18
-
19
- interface MessageData {
20
- type: string;
21
- [key: string]: unknown;
4
+ export async function supportsNodeWorkerApi(): Promise<boolean> {
5
+ return (await getNodeWorker()) !== undefined;
22
6
  }
23
7
 
24
- type NodeWorkerConstructor = new (code: string | URL, options?: Record<string, unknown>) => NodeMessagePort;
8
+ export type WorkerApi = 'web' | 'node';
25
9
 
26
- function isNodePort(target: IsomorphicMessagePort): target is NodeMessagePort {
27
- return typeof (target as NodeMessagePort).on === 'function';
28
- }
29
-
30
- export function isBrowserLike(): boolean {
31
- return (
32
- // @ts-expect-error - Bun is a runtime global only under Bun
33
- typeof Bun === 'undefined' &&
34
- // eslint-disable-next-line no-restricted-globals
35
- typeof process === 'undefined' &&
36
- typeof addEventListener === 'function' &&
37
- typeof removeEventListener === 'function'
38
- );
39
- }
10
+ let _resolvedWorkerApi: Promise<WorkerApi> | undefined;
40
11
 
41
12
  /**
42
- * This function is called from inside a worker to get the messaging target
43
- * It's the communication channel between a worker thread and its parent (main) thread.
13
+ * Resolves which worker backend the SDK will use, preferring the Web Worker
14
+ * API whenever it is available. Memoized the answer can't change within a
15
+ * process lifetime.
16
+ *
17
+ * - Web is preferred because it works in every browser context, including the
18
+ * sandboxed Electron renderer (where `node:worker_threads` is unavailable
19
+ * even though `process.versions.node` is set).
20
+ * - Node is the fallback for runtimes with no Web Worker global (Node, jsdom).
21
+ *
22
+ * Runtime support matrix:
23
+ *
24
+ * | Runtime | Web API | Node API | Selected |
25
+ * | ----------------------------- | :-----: | :------: | :------: |
26
+ * | Browser (window / web worker) | yes | no | web |
27
+ * | Sandboxed Electron renderer | yes | no | web |
28
+ * | Node.js | no | yes | node |
29
+ * | jsdom (Vitest) | no | yes | node |
30
+ * | Deno | yes | yes | web |
31
+ * | Bun | yes | yes | node * |
32
+ *
33
+ * * Bun supports both backends, but is forced to `node`: it has first-class
34
+ * `worker_threads` support and we keep it on the Node path for parity with
35
+ * plain Node.
36
+ *
37
+ * Note: this reports the *intended* API based on API availability, not a
38
+ * guarantee of success — Web Worker creation can still fail at the call site
39
+ * (e.g. CSP blocking `worker-src blob:`). The creation site must surface that.
44
40
  */
45
- export async function getIsomorphicTarget(): Promise<IsomorphicMessagePort> {
46
- if (isBrowserLike()) return self as unknown as BrowserMessagePort;
47
- const nodeWorkerModuleName = 'worker_threads';
48
- const nodeWorkerModuleId = `node:${nodeWorkerModuleName}`;
49
- const { parentPort: nodeParentPort } = (await import(/* @vite-ignore */ nodeWorkerModuleId)) as {
50
- parentPort: NodeMessagePort | null;
51
- };
52
- if (!nodeParentPort) {
53
- throw new Error('Not running inside a worker thread');
54
- }
55
- return nodeParentPort;
56
- }
41
+ export function resolveWorkerApi(): Promise<WorkerApi> {
42
+ _resolvedWorkerApi ??= (async () => {
43
+ try {
44
+ // @ts-expect-error - Bun is a runtime global only under Bun
45
+ const isBun = typeof Bun !== 'undefined';
57
46
 
58
- export async function createIsomorphicWorker(url: string): Promise<Worker | NodeMessagePort> {
59
- if (isBrowserLike()) {
60
- return createBrowserLikeWorker(url);
61
- }
62
- return createNodeLikeWorker(url);
47
+ // Preference order is runtime-specific:
48
+ // - Bun has first-class worker_threads, so prefer Node for parity with
49
+ // plain Node, falling back to Web only if it's somehow unavailable.
50
+ // - Everywhere else, prefer the Web Worker API (browsers, the sandboxed
51
+ // Electron renderer, Deno), falling back to Node (Node.js, jsdom).
52
+ //
53
+ // Probes stay short-circuited on purpose: on the non-Bun path the
54
+ // synchronous Web check runs first so a browser never triggers the
55
+ // `node:worker_threads` dynamic import (the "sync win"). Each probe runs
56
+ // at most once per call.
57
+ if (isBun) {
58
+ if (await supportsNodeWorkerApi()) {
59
+ return 'node';
60
+ }
61
+ if (supportsWebWorkerApi()) {
62
+ return 'web';
63
+ }
64
+ } else {
65
+ if (supportsWebWorkerApi()) {
66
+ return 'web';
67
+ }
68
+ if (await supportsNodeWorkerApi()) {
69
+ return 'node';
70
+ }
71
+ }
72
+
73
+ throw new Error('No worker backend available (neither Web Worker nor node:worker_threads).');
74
+ } catch (e) {
75
+ // Never cache a rejected resolution — otherwise a single (possibly
76
+ // transient) failure would poison every future call. The underlying
77
+ // probes are themselves memoized, so retrying stays cheap.
78
+ _resolvedWorkerApi = undefined;
79
+ throw e;
80
+ }
81
+ })();
82
+ return _resolvedWorkerApi;
63
83
  }
64
84
 
65
85
  /*
66
86
  TODO: add support for TrustedScriptURL if needed
67
87
  */
68
- export async function createIsomorphicWorkerFromCode(jsCode: string): Promise<Worker | NodeMessagePort> {
69
- if (isBrowserLike()) {
88
+ async function createIsomorphicWorkerFromCode(jsCode: string): Promise<Worker | NodeMessagePort> {
89
+ const workerApi = await resolveWorkerApi();
90
+
91
+ //if (isBrowserLike()) {
92
+ if (workerApi === 'web') {
70
93
  const blob = new Blob([jsCode], { type: 'application/javascript' });
71
94
  const blobUrl = URL.createObjectURL(blob);
72
95
  try {
@@ -76,11 +99,15 @@ export async function createIsomorphicWorkerFromCode(jsCode: string): Promise<Wo
76
99
  URL.revokeObjectURL(blobUrl);
77
100
  }
78
101
  }
79
- const nodeWorkerModuleName = 'worker_threads';
80
- const nodeWorkerModuleId = `node:${nodeWorkerModuleName}`;
81
- const { Worker: NodeWorker } = (await import(/* @vite-ignore */ nodeWorkerModuleId)) as {
82
- Worker: NodeWorkerConstructor;
83
- };
102
+
103
+ // workerApi === 'node'. Both 'node' paths in resolveWorkerApi pre-probe via
104
+ // supportsNodeWorkerApi, so this is already confirmed (and memoized) the
105
+ // guard is here to narrow the `| undefined` type and to stay correct if that
106
+ // invariant ever changes.
107
+ const NodeWorker = await getNodeWorker();
108
+ if (!NodeWorker) {
109
+ throw new Error('No worker backend available (node:worker_threads unavailable).');
110
+ }
84
111
  return new NodeWorker(jsCode, { eval: true });
85
112
  }
86
113
 
@@ -102,11 +129,9 @@ export async function createIsomorphicWorkerFromCode(jsCode: string): Promise<Wo
102
129
  * @param input - Value sent to the worker via postMessage (must be structured-cloneable).
103
130
  * @param timeoutMs - Max execution time before the worker is killed. Default: 30s.
104
131
  */
105
- export async function runCodeInIsomorphicWorker<T>(
106
- code: string,
107
- input: unknown,
108
- timeoutMs: number = 30_000,
109
- ): Promise<T> {
132
+ async function runCodeInIsomorphicWorker<T>(code: string, input: unknown, timeoutMs: number = 30_000): Promise<T> {
133
+ const workerApi = await resolveWorkerApi();
134
+
110
135
  const browserCode = `
111
136
  self.onmessage = async ({ data }) => {
112
137
  try {
@@ -130,7 +155,8 @@ export async function runCodeInIsomorphicWorker<T>(
130
155
  });
131
156
  `;
132
157
 
133
- const workerCode = isBrowserLike() ? browserCode : nodeCode;
158
+ //const workerCode = isBrowserLike() ? browserCode : nodeCode;
159
+ const workerCode = workerApi === 'web' ? browserCode : nodeCode;
134
160
  const worker = await createIsomorphicWorkerFromCode(workerCode);
135
161
 
136
162
  return new Promise<T>((resolve, reject) => {
@@ -225,7 +251,9 @@ export async function runCodeInIsomorphicWorker<T>(
225
251
  * - Experimental permission model restricts worker creation.
226
252
  * @see https://nodejs.org/api/permissions.html
227
253
  *
228
- * When this returns `false`, fall back to URL-based workers via `createIsomorphicWorker()`.
254
+ * When this returns `false`, blob/eval-based workers are unavailable in this
255
+ * environment (e.g. blocked by CSP `worker-src`/`script-src`, or Node's
256
+ * code-generation restrictions), and code cannot be run in an isomorphic worker.
229
257
  */
230
258
  let _blobWorkerSupportedPromise: Promise<boolean> | undefined;
231
259
  export function isBlobWorkerSupported(): Promise<boolean> {
@@ -236,58 +264,3 @@ export function isBlobWorkerSupported(): Promise<boolean> {
236
264
  );
237
265
  return _blobWorkerSupportedPromise;
238
266
  }
239
-
240
- function createBrowserLikeWorker(url: string): Worker {
241
- return new Worker(url, {
242
- type: 'module',
243
- name: 'wasm_bindgen_worker',
244
- });
245
- }
246
-
247
- async function createNodeLikeWorker(url: string): Promise<NodeMessagePort> {
248
- const nodeWorkerModuleName = 'worker_threads';
249
- const nodeWorkerModuleId = `node:${nodeWorkerModuleName}`;
250
- const { Worker: NodeWorker } = (await import(/* @vite-ignore */ nodeWorkerModuleId)) as {
251
- Worker: NodeWorkerConstructor;
252
- };
253
- // Node's Worker doesn't support data: or blob: URLs.
254
- // For data: URLs, extract the code and use eval mode.
255
- if (url.startsWith('data:')) {
256
- const base64 = url.split(',')[1];
257
- if (base64 === undefined) {
258
- throw new Error('Invalid data url');
259
- }
260
-
261
- const nodeBufferModuleName = 'buffer';
262
- const nodeBufferModuleId = `node:${nodeBufferModuleName}`;
263
- const { Buffer: NodeBuffer } = (await import(/* @vite-ignore */ nodeBufferModuleId)) as {
264
- Buffer: {
265
- from(str: string, encoding: string): { toString(enc: string): string };
266
- };
267
- };
268
- //const res = await fetch("data:application/octet-stream;base64," + data);
269
- const code = NodeBuffer.from(base64, 'base64').toString('utf-8');
270
- return new NodeWorker(code, { eval: true });
271
- }
272
- return new NodeWorker(url);
273
- }
274
-
275
- export function waitForMsgType(target: IsomorphicMessagePort, type: string): Promise<MessageData> {
276
- return new Promise((resolve) => {
277
- if (isNodePort(target)) {
278
- // Node: EventEmitter, data passed directly
279
- target.on('message', function onMsg(data: MessageData) {
280
- if (data.type !== type) return;
281
- target.off('message', onMsg);
282
- resolve(data);
283
- });
284
- } else {
285
- // Browser: DOM events, data wrapped in MessageEvent
286
- target.addEventListener('message', function onMsg({ data }: MessageEvent<MessageData>) {
287
- if (data.type !== type) return;
288
- target.removeEventListener('message', onMsg);
289
- resolve(data);
290
- });
291
- }
292
- });
293
- }