@fhevm/sdk 1.1.0-alpha.5 → 1.1.0-alpha.6
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.
- package/_cjs/core/_version.js +1 -1
- package/_cjs/core/base/bytes.js +2 -1
- package/_cjs/core/base/bytes.js.map +1 -1
- package/_cjs/core/base/environment.js +122 -0
- package/_cjs/core/base/environment.js.map +1 -0
- package/_cjs/core/base/errors/Sha256VerificationError.js +15 -0
- package/_cjs/core/base/errors/Sha256VerificationError.js.map +1 -0
- package/_cjs/core/base/inflate.js +282 -0
- package/_cjs/core/base/inflate.js.map +1 -0
- package/_cjs/core/base/isomorphicFs.js +24 -0
- package/_cjs/core/base/isomorphicFs.js.map +1 -0
- package/_cjs/core/base/isomorphicWorker.js +42 -111
- package/_cjs/core/base/isomorphicWorker.js.map +1 -1
- package/_cjs/core/base/wasm.js +15 -55
- package/_cjs/core/base/wasm.js.map +1 -1
- package/_cjs/core/kms/TransportKeyPair-p.js +0 -4
- package/_cjs/core/kms/TransportKeyPair-p.js.map +1 -1
- package/_cjs/core/kms/createKmsUserDecryptEip712.js +5 -1
- package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +1 -1
- package/_cjs/core/modules/decrypt/module/init-p.js +124 -39
- package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
- package/_cjs/core/modules/encrypt/module/init-p.js +148 -45
- package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
- package/_cjs/core/runtime/HyperWasmSolver-p.js +4 -4
- package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
- package/_cjs/core/runtime/initFhevmRuntime-p.js +1 -1
- package/_cjs/wasm/tfhe/TfheApi.d.ts +12 -12
- package/_cjs/wasm/tfhe/loadTfheLib.js +11 -11
- package/_cjs/wasm/tfhe/loadTfheLib.js.map +2 -2
- package/_cjs/wasm/tfhe/v1.5.3/startWorkers.js +26 -9
- package/_cjs/wasm/tfhe/v1.5.3/startWorkers.js.map +2 -2
- package/_cjs/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
- package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +28 -11
- package/_cjs/wasm/tfhe/v1.6.2/startWorkers.js.map +7 -0
- package/{_esm/wasm/tfhe/v1.6.1 → _cjs/wasm/tfhe/v1.6.2}/tfhe-worker.mjs +40 -40
- package/{_esm/wasm/tfhe/v1.6.1 → _cjs/wasm/tfhe/v1.6.2}/tfhe.d.ts +88 -85
- package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
- package/_cjs/wasm/tfhe/v1.6.2/tfhe.js.map +7 -0
- package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
- package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +35 -0
- package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js.map +7 -0
- package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
- package/_cjs/wasm/wasmBaseUrl.js +8 -19
- package/_cjs/wasm/wasmBaseUrl.js.map +2 -2
- package/_esm/core/_version.js +1 -1
- package/_esm/core/base/bytes.js +2 -1
- package/_esm/core/base/bytes.js.map +1 -1
- package/_esm/core/base/environment.js +164 -0
- package/_esm/core/base/environment.js.map +1 -0
- package/_esm/core/base/errors/Sha256VerificationError.js +11 -0
- package/_esm/core/base/errors/Sha256VerificationError.js.map +1 -0
- package/_esm/core/base/inflate.js +337 -0
- package/_esm/core/base/inflate.js.map +1 -0
- package/_esm/core/base/isomorphicFs.js +21 -0
- package/_esm/core/base/isomorphicFs.js.map +1 -0
- package/_esm/core/base/isomorphicWorker.js +92 -85
- package/_esm/core/base/isomorphicWorker.js.map +1 -1
- package/_esm/core/base/wasm.js +25 -31
- package/_esm/core/base/wasm.js.map +1 -1
- package/_esm/core/kms/TransportKeyPair-p.js +0 -4
- package/_esm/core/kms/TransportKeyPair-p.js.map +1 -1
- package/_esm/core/kms/createKmsUserDecryptEip712.js +5 -1
- package/_esm/core/kms/createKmsUserDecryptEip712.js.map +1 -1
- package/_esm/core/modules/decrypt/module/init-p.js +109 -54
- package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
- package/_esm/core/modules/encrypt/module/init-p.js +300 -53
- package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
- package/_esm/core/runtime/HyperWasmSolver-p.js +4 -4
- package/_esm/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
- package/_esm/core/runtime/initFhevmRuntime-p.js +1 -1
- package/_esm/wasm/tfhe/TfheApi.d.ts +12 -12
- package/_esm/wasm/tfhe/loadTfheLib.js +11 -11
- package/_esm/wasm/tfhe/v1.5.3/startWorkers.js +41 -20
- package/_esm/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
- package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +46 -25
- package/{_cjs/wasm/tfhe/v1.6.1 → _esm/wasm/tfhe/v1.6.2}/tfhe-worker.mjs +40 -40
- package/{_types/wasm/tfhe/v1.6.1 → _esm/wasm/tfhe/v1.6.2}/tfhe.d.ts +88 -85
- package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
- package/_esm/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
- package/_esm/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +7 -0
- package/_esm/wasm/wasmBaseUrl.js +17 -54
- package/_types/core/base/bytes.d.ts.map +1 -1
- package/_types/core/base/environment.d.ts +92 -0
- package/_types/core/base/environment.d.ts.map +1 -0
- package/_types/core/base/errors/Sha256VerificationError.d.ts +14 -0
- package/_types/core/base/errors/Sha256VerificationError.d.ts.map +1 -0
- package/_types/core/base/inflate.d.ts +25 -0
- package/_types/core/base/inflate.d.ts.map +1 -0
- package/_types/core/base/isomorphicFs.d.ts +2 -0
- package/_types/core/base/isomorphicFs.d.ts.map +1 -0
- package/_types/core/base/isomorphicWorker.d.ts +27 -43
- package/_types/core/base/isomorphicWorker.d.ts.map +1 -1
- package/_types/core/base/wasm.d.ts +0 -8
- package/_types/core/base/wasm.d.ts.map +1 -1
- package/_types/core/kms/TransportKeyPair-p.d.ts.map +1 -1
- package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +1 -1
- package/_types/core/modules/decrypt/module/init-p.d.ts.map +1 -1
- package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
- package/_types/core/types/wasmAssets.d.ts.map +1 -1
- package/_types/wasm/tfhe/TfheApi.d.ts +12 -12
- package/_types/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
- package/{wasm/tfhe/v1.6.1 → _types/wasm/tfhe/v1.6.2}/tfhe.d.ts +88 -85
- package/core/_version.ts +1 -1
- package/core/base/bytes.ts +2 -1
- package/core/base/environment.ts +210 -0
- package/core/base/errors/Sha256VerificationError.ts +22 -0
- package/core/base/inflate.ts +373 -0
- package/core/base/isomorphicFs.ts +23 -0
- package/core/base/isomorphicWorker.ts +96 -123
- package/core/base/wasm.ts +28 -35
- package/core/kms/TransportKeyPair-p.ts +0 -5
- package/core/kms/createKmsUserDecryptEip712.ts +8 -1
- package/core/modules/decrypt/module/init-p.ts +148 -59
- package/core/modules/encrypt/module/init-p.ts +368 -63
- package/core/runtime/HyperWasmSolver-p.ts +4 -4
- package/core/runtime/initFhevmEncryptRuntime-p.ts +1 -1
- package/core/runtime/initFhevmRuntime-p.ts +1 -1
- package/core/types/wasmAssets.ts +58 -0
- package/package.json +1 -1
- package/wasm/tfhe/TfheApi.d.ts +12 -12
- package/wasm/tfhe/loadTfheLib.js +11 -11
- package/wasm/tfhe/v1.5.3/startWorkers.js +41 -20
- package/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
- package/wasm/tfhe/v1.6.0-dev/startWorkers.js +41 -20
- package/wasm/tfhe/v1.6.0-dev/tfhe.d.ts +3 -0
- package/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +46 -25
- package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
- package/{_cjs/wasm/tfhe/v1.6.1 → wasm/tfhe/v1.6.2}/tfhe.d.ts +88 -85
- package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
- package/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
- package/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +7 -0
- package/wasm/wasmBaseUrl.js +17 -54
- package/_cjs/wasm/tfhe/v1.6.1/startWorkers.js.map +0 -7
- package/_cjs/wasm/tfhe/v1.6.1/tfhe.js.map +0 -7
- package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
- package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -35
- package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js.map +0 -7
- package/_esm/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
- package/_esm/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -7
- package/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
- package/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -7
- /package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
- /package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
- /package/_types/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
- /package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
package/wasm/tfhe/TfheApi.d.ts
CHANGED
|
@@ -15,32 +15,32 @@ export type {
|
|
|
15
15
|
ProvenCompactCiphertextList,
|
|
16
16
|
TfheCompactPublicKey,
|
|
17
17
|
ZkComputeLoad,
|
|
18
|
-
} from './v1.6.
|
|
18
|
+
} from './v1.6.2/tfhe.js';
|
|
19
19
|
|
|
20
20
|
/** The subset you actually use - the runtime contract callers depend on. */
|
|
21
21
|
export interface TfheLibApi {
|
|
22
|
-
initAsync: typeof import('./v1.6.
|
|
22
|
+
initAsync: typeof import('./v1.6.2/tfhe.js').initAsync;
|
|
23
23
|
|
|
24
24
|
// --- Free functions used by encrypt/init-p.ts -----------------------------
|
|
25
|
-
init_panic_hook: typeof import('./v1.6.
|
|
26
|
-
initThreadPool: typeof import('./v1.6.
|
|
27
|
-
setWorkerUrlConfig: typeof import('./v1.6.
|
|
28
|
-
getWasmInfo: typeof import('./v1.6.
|
|
25
|
+
init_panic_hook: typeof import('./v1.6.2/tfhe.js').init_panic_hook;
|
|
26
|
+
initThreadPool: typeof import('./v1.6.2/tfhe.js').initThreadPool;
|
|
27
|
+
setWorkerUrlConfig: typeof import('./v1.6.2/tfhe.js').setWorkerUrlConfig;
|
|
28
|
+
getWasmInfo: typeof import('./v1.6.2/tfhe.js').getWasmInfo;
|
|
29
29
|
|
|
30
30
|
// --- Class constructors used as values in encrypt/api-p.ts ----------------
|
|
31
31
|
// These are imported as runtime values: instanceof checks, static methods
|
|
32
32
|
// (safe_deserialize), factory calls (CompactCiphertextList.builder()).
|
|
33
|
-
CompactCiphertextList: typeof import('./v1.6.
|
|
34
|
-
CompactPkeCrs: typeof import('./v1.6.
|
|
35
|
-
ProvenCompactCiphertextList: typeof import('./v1.6.
|
|
36
|
-
TfheCompactPublicKey: typeof import('./v1.6.
|
|
33
|
+
CompactCiphertextList: typeof import('./v1.6.2/tfhe.js').CompactCiphertextList;
|
|
34
|
+
CompactPkeCrs: typeof import('./v1.6.2/tfhe.js').CompactPkeCrs;
|
|
35
|
+
ProvenCompactCiphertextList: typeof import('./v1.6.2/tfhe.js').ProvenCompactCiphertextList;
|
|
36
|
+
TfheCompactPublicKey: typeof import('./v1.6.2/tfhe.js').TfheCompactPublicKey;
|
|
37
37
|
|
|
38
38
|
// --- Enum used as a value (e.g. ZkComputeLoad.Verify) ---------------------
|
|
39
|
-
ZkComputeLoad: typeof import('./v1.6.
|
|
39
|
+
ZkComputeLoad: typeof import('./v1.6.2/tfhe.js').ZkComputeLoad;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
// Default version
|
|
43
|
-
export type TfheVersion = '1.5.3' | '1.6.
|
|
43
|
+
export type TfheVersion = '1.5.3' | '1.6.2';
|
|
44
44
|
|
|
45
45
|
export type TfheWasmBase64 = {
|
|
46
46
|
readonly tfheWasmBase64: string;
|
package/wasm/tfhe/loadTfheLib.js
CHANGED
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
|
|
9
9
|
////////////////////////////////////////////////////////////////////////////////
|
|
10
10
|
|
|
11
|
-
export const TFHE_VERSIONS = Object.freeze(['1.5.3', '1.6.
|
|
12
|
-
export const DEFAULT_TFHE_VERSION = '1.6.
|
|
11
|
+
export const TFHE_VERSIONS = Object.freeze(['1.5.3', '1.6.2']);
|
|
12
|
+
export const DEFAULT_TFHE_VERSION = '1.6.2';
|
|
13
13
|
|
|
14
14
|
const _loaders = {
|
|
15
15
|
'1.5.3': () => import('./v1.5.3/tfhe.js'),
|
|
16
|
-
'1.6.
|
|
16
|
+
'1.6.2': () => import('./v1.6.2/tfhe.js'),
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
////////////////////////////////////////////////////////////////////////////////
|
|
20
20
|
|
|
21
21
|
const _wasmBase64Loaders = {
|
|
22
22
|
'1.5.3': () => import('./v1.5.3/tfhe_bg.wasm.base64.js'),
|
|
23
|
-
'1.6.
|
|
23
|
+
'1.6.2': () => import('./v1.6.2/tfhe_bg.wasm.base64.js'),
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -38,16 +38,16 @@ const _assets = Object.freeze({
|
|
|
38
38
|
sha256: '3f93fe86a8dfa6e25ae5fcfe28d19833219cba8f45f81c6dd05c2f3cc5323c52',
|
|
39
39
|
}),
|
|
40
40
|
}),
|
|
41
|
-
'1.6.
|
|
41
|
+
'1.6.2': Object.freeze({
|
|
42
42
|
wasm: Object.freeze({
|
|
43
|
-
filename: 'tfhe_bg.v1.6.
|
|
44
|
-
localRelativePath: './v1.6.
|
|
45
|
-
sha256: '
|
|
43
|
+
filename: 'tfhe_bg.v1.6.2.wasm',
|
|
44
|
+
localRelativePath: './v1.6.2/tfhe_bg.wasm',
|
|
45
|
+
sha256: 'ecd1841ad42226629c1a665ba784e073f2e780137f7986b00088c9227acb9760',
|
|
46
46
|
}),
|
|
47
47
|
worker: Object.freeze({
|
|
48
|
-
filename: 'tfhe-worker.v1.6.
|
|
49
|
-
localRelativePath: './v1.6.
|
|
50
|
-
sha256: '
|
|
48
|
+
filename: 'tfhe-worker.v1.6.2.mjs',
|
|
49
|
+
localRelativePath: './v1.6.2/tfhe-worker.mjs',
|
|
50
|
+
sha256: '2c648dd89132bb63d37e8b47c6fe1f53b06abb1389faeb9b3f671eea9a0db5dd',
|
|
51
51
|
}),
|
|
52
52
|
}),
|
|
53
53
|
});
|
|
@@ -57,17 +57,13 @@
|
|
|
57
57
|
*/
|
|
58
58
|
|
|
59
59
|
////////////////////////////////////////////////////////////////////////////////
|
|
60
|
-
//
|
|
60
|
+
// Load modes
|
|
61
61
|
////////////////////////////////////////////////////////////////////////////////
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
typeof addEventListener === 'function' &&
|
|
68
|
-
typeof removeEventListener === 'function'
|
|
69
|
-
);
|
|
70
|
-
}
|
|
63
|
+
// Environment detection (browser vs Node) is NOT done here: the SDK resolves it
|
|
64
|
+
// once on the main thread (via environment.ts isBrowserLike, robust to bundler
|
|
65
|
+
// `process` shims) and injects it through setWorkerUrlConfig({ isBrowserLike }).
|
|
66
|
+
// See `_isBrowserLike` below.
|
|
71
67
|
|
|
72
68
|
const __wasmAssetLoadModes = ['embedded-base64', 'verified-blob', 'precheck-direct-url', 'trusted-direct-url', 'auto'];
|
|
73
69
|
|
|
@@ -89,7 +85,7 @@ function __bytesToHex(bytes) {
|
|
|
89
85
|
* @returns {Promise<string>} Lowercase hexadecimal SHA-256 digest without a `0x` prefix.
|
|
90
86
|
*/
|
|
91
87
|
async function __sha256(bytes) {
|
|
92
|
-
if (
|
|
88
|
+
if (_isBrowserLike) {
|
|
93
89
|
if (typeof crypto === 'undefined' || !crypto.subtle || typeof crypto.subtle.digest !== 'function') {
|
|
94
90
|
throw new Error('Web Crypto SHA-256 digest is not available');
|
|
95
91
|
}
|
|
@@ -100,7 +96,9 @@ async function __sha256(bytes) {
|
|
|
100
96
|
|
|
101
97
|
const nodeModuleName = 'crypto';
|
|
102
98
|
const nodeModuleId = `node:${nodeModuleName}`;
|
|
103
|
-
const { createHash } = await import(
|
|
99
|
+
const { createHash } = await import(
|
|
100
|
+
/* @vite-ignore */ /* webpackIgnore: true */ /* turbopackIgnore: true */ nodeModuleId
|
|
101
|
+
);
|
|
104
102
|
return createHash('sha256').update(new Uint8Array(bytes)).digest('hex');
|
|
105
103
|
}
|
|
106
104
|
|
|
@@ -152,13 +150,17 @@ async function __fetchAndVerifyWorkerUrlBytes(url, expectedSha256) {
|
|
|
152
150
|
* @returns {Promise<ArrayBuffer | Uint8Array>} Raw worker script bytes.
|
|
153
151
|
*/
|
|
154
152
|
async function __readWorkerUrlBytes(url) {
|
|
155
|
-
if (!
|
|
153
|
+
if (!_isBrowserLike && url.protocol === 'file:') {
|
|
156
154
|
const fsModuleName = 'fs/promises';
|
|
157
155
|
const fsModuleId = `node:${fsModuleName}`;
|
|
158
156
|
const urlModuleName = 'url';
|
|
159
157
|
const urlModuleId = `node:${urlModuleName}`;
|
|
160
|
-
const { readFile } = await import(
|
|
161
|
-
|
|
158
|
+
const { readFile } = await import(
|
|
159
|
+
/* @vite-ignore */ /* webpackIgnore: true */ /* turbopackIgnore: true */ fsModuleId
|
|
160
|
+
);
|
|
161
|
+
const { fileURLToPath } = await import(
|
|
162
|
+
/* @vite-ignore */ /* webpackIgnore: true */ /* turbopackIgnore: true */ urlModuleId
|
|
163
|
+
);
|
|
162
164
|
return await readFile(fileURLToPath(url));
|
|
163
165
|
}
|
|
164
166
|
|
|
@@ -203,7 +205,7 @@ async function __newBrowserWorkerFromBlob(blob) {
|
|
|
203
205
|
* @returns {Promise<Worker>} Created worker.
|
|
204
206
|
*/
|
|
205
207
|
async function __newIsomorphicWorkerFromUrl(url) {
|
|
206
|
-
if (
|
|
208
|
+
if (_isBrowserLike) {
|
|
207
209
|
return new Worker(url, {
|
|
208
210
|
type: 'module',
|
|
209
211
|
name: 'wasm_bindgen_worker',
|
|
@@ -212,14 +214,18 @@ async function __newIsomorphicWorkerFromUrl(url) {
|
|
|
212
214
|
|
|
213
215
|
const nodeModuleName = 'worker_threads';
|
|
214
216
|
const nodeModuleId = `node:${nodeModuleName}`;
|
|
215
|
-
const { Worker: NodeWorker } = await import(
|
|
217
|
+
const { Worker: NodeWorker } = await import(
|
|
218
|
+
/* @vite-ignore */ /* webpackIgnore: true */ /* turbopackIgnore: true */ nodeModuleId
|
|
219
|
+
);
|
|
216
220
|
return new NodeWorker(url);
|
|
217
221
|
}
|
|
218
222
|
|
|
219
223
|
async function __newNodeWorkerFromJsCode(jsCode) {
|
|
220
224
|
const nodeModuleName = 'worker_threads';
|
|
221
225
|
const nodeModuleId = `node:${nodeModuleName}`;
|
|
222
|
-
const { Worker: NodeWorker } = await import(
|
|
226
|
+
const { Worker: NodeWorker } = await import(
|
|
227
|
+
/* @vite-ignore */ /* webpackIgnore: true */ /* turbopackIgnore: true */ nodeModuleId
|
|
228
|
+
);
|
|
223
229
|
return { worker: new NodeWorker(jsCode, { eval: true }), blobUrl: undefined };
|
|
224
230
|
}
|
|
225
231
|
|
|
@@ -232,7 +238,7 @@ async function __newNodeWorkerFromJsCode(jsCode) {
|
|
|
232
238
|
* @returns {Promise<{ worker: Worker, blobUrl: string | undefined }>} Created worker and optional Blob URL to revoke.
|
|
233
239
|
*/
|
|
234
240
|
async function __newIsomorphicWorkerFromVerifiedJsCodeBytes(verifiedJsCodeBytes) {
|
|
235
|
-
if (
|
|
241
|
+
if (_isBrowserLike) {
|
|
236
242
|
return await __newBrowserWorkerFromBlob(
|
|
237
243
|
new Blob([verifiedJsCodeBytes], {
|
|
238
244
|
type: 'application/javascript',
|
|
@@ -251,7 +257,7 @@ async function __newIsomorphicWorkerFromVerifiedJsCodeBytes(verifiedJsCodeBytes)
|
|
|
251
257
|
* @returns {Promise<{ worker: Worker, blobUrl: string | undefined }>} Created worker and optional Blob URL to revoke.
|
|
252
258
|
*/
|
|
253
259
|
async function __newWorkerFromJsCodeBase64(jsCodeBase64) {
|
|
254
|
-
if (
|
|
260
|
+
if (_isBrowserLike) {
|
|
255
261
|
const blob = new Blob([atob(jsCodeBase64)], {
|
|
256
262
|
type: 'application/javascript',
|
|
257
263
|
});
|
|
@@ -338,6 +344,9 @@ let _terminating;
|
|
|
338
344
|
let _configSet = false;
|
|
339
345
|
let _workerUrl = undefined;
|
|
340
346
|
let _wasmAssetLoadMode = 'auto';
|
|
347
|
+
// Injected by the SDK (the main thread) via setWorkerUrlConfig — the single
|
|
348
|
+
// source of truth for browser-vs-Node, replacing local detection.
|
|
349
|
+
let _isBrowserLike = undefined;
|
|
341
350
|
const _workerUrlSha256 = "3f93fe86a8dfa6e25ae5fcfe28d19833219cba8f45f81c6dd05c2f3cc5323c52";
|
|
342
351
|
let _verifiedWorkerUrlBytesPromise = undefined;
|
|
343
352
|
let _logger = undefined;
|
|
@@ -381,7 +390,18 @@ function setWorkerUrlConfig(parameters = {}) {
|
|
|
381
390
|
throw new TypeError('setWorkerUrlConfig parameters must be an object');
|
|
382
391
|
}
|
|
383
392
|
|
|
384
|
-
const {
|
|
393
|
+
const {
|
|
394
|
+
workerUrl = undefined,
|
|
395
|
+
wasmAssetLoadMode = 'auto',
|
|
396
|
+
logger = undefined,
|
|
397
|
+
isBrowserLike = undefined,
|
|
398
|
+
} = parameters;
|
|
399
|
+
|
|
400
|
+
// Check `isBrowserLike` (required: the SDK injects the resolved runtime kind;
|
|
401
|
+
// the worker bootstrap never detects it itself).
|
|
402
|
+
if (typeof isBrowserLike !== 'boolean') {
|
|
403
|
+
throw new TypeError('setWorkerUrlConfig: isBrowserLike (boolean) is required');
|
|
404
|
+
}
|
|
385
405
|
|
|
386
406
|
// Check `wasmAssetLoadMode`
|
|
387
407
|
if (!__isWasmAssetLoadMode(wasmAssetLoadMode)) {
|
|
@@ -409,6 +429,7 @@ function setWorkerUrlConfig(parameters = {}) {
|
|
|
409
429
|
|
|
410
430
|
_wasmAssetLoadMode = wasmAssetLoadMode;
|
|
411
431
|
_logger = logger;
|
|
432
|
+
_isBrowserLike = isBrowserLike;
|
|
412
433
|
_configSet = true;
|
|
413
434
|
}
|
|
414
435
|
|
|
@@ -5078,6 +5078,9 @@ export type WasmAssetLoadMode =
|
|
|
5078
5078
|
export function setWorkerUrlConfig(parameters?: {
|
|
5079
5079
|
readonly workerUrl?: URL | undefined;
|
|
5080
5080
|
readonly wasmAssetLoadMode?: WasmAssetLoadMode | undefined;
|
|
5081
|
+
// Required: the SDK injects the resolved runtime kind (browser vs Node); the
|
|
5082
|
+
// worker bootstrap no longer detects it itself.
|
|
5083
|
+
readonly isBrowserLike: boolean;
|
|
5081
5084
|
readonly logger?:
|
|
5082
5085
|
| {
|
|
5083
5086
|
debug: (message: string) => void;
|
|
@@ -57,17 +57,13 @@
|
|
|
57
57
|
*/
|
|
58
58
|
|
|
59
59
|
////////////////////////////////////////////////////////////////////////////////
|
|
60
|
-
//
|
|
60
|
+
// Load modes
|
|
61
61
|
////////////////////////////////////////////////////////////////////////////////
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
typeof addEventListener === 'function' &&
|
|
68
|
-
typeof removeEventListener === 'function'
|
|
69
|
-
);
|
|
70
|
-
}
|
|
63
|
+
// Environment detection (browser vs Node) is NOT done here: the SDK resolves it
|
|
64
|
+
// once on the main thread (via environment.ts isBrowserLike, robust to bundler
|
|
65
|
+
// `process` shims) and injects it through setWorkerUrlConfig({ isBrowserLike }).
|
|
66
|
+
// See `_isBrowserLike` below.
|
|
71
67
|
|
|
72
68
|
const __wasmAssetLoadModes = ['embedded-base64', 'verified-blob', 'precheck-direct-url', 'trusted-direct-url', 'auto'];
|
|
73
69
|
|
|
@@ -89,7 +85,7 @@ function __bytesToHex(bytes) {
|
|
|
89
85
|
* @returns {Promise<string>} Lowercase hexadecimal SHA-256 digest without a `0x` prefix.
|
|
90
86
|
*/
|
|
91
87
|
async function __sha256(bytes) {
|
|
92
|
-
if (
|
|
88
|
+
if (_isBrowserLike) {
|
|
93
89
|
if (typeof crypto === 'undefined' || !crypto.subtle || typeof crypto.subtle.digest !== 'function') {
|
|
94
90
|
throw new Error('Web Crypto SHA-256 digest is not available');
|
|
95
91
|
}
|
|
@@ -100,7 +96,9 @@ async function __sha256(bytes) {
|
|
|
100
96
|
|
|
101
97
|
const nodeModuleName = 'crypto';
|
|
102
98
|
const nodeModuleId = `node:${nodeModuleName}`;
|
|
103
|
-
const { createHash } = await import(
|
|
99
|
+
const { createHash } = await import(
|
|
100
|
+
/* @vite-ignore */ /* webpackIgnore: true */ /* turbopackIgnore: true */ nodeModuleId
|
|
101
|
+
);
|
|
104
102
|
return createHash('sha256').update(new Uint8Array(bytes)).digest('hex');
|
|
105
103
|
}
|
|
106
104
|
|
|
@@ -152,13 +150,17 @@ async function __fetchAndVerifyWorkerUrlBytes(url, expectedSha256) {
|
|
|
152
150
|
* @returns {Promise<ArrayBuffer | Uint8Array>} Raw worker script bytes.
|
|
153
151
|
*/
|
|
154
152
|
async function __readWorkerUrlBytes(url) {
|
|
155
|
-
if (!
|
|
153
|
+
if (!_isBrowserLike && url.protocol === 'file:') {
|
|
156
154
|
const fsModuleName = 'fs/promises';
|
|
157
155
|
const fsModuleId = `node:${fsModuleName}`;
|
|
158
156
|
const urlModuleName = 'url';
|
|
159
157
|
const urlModuleId = `node:${urlModuleName}`;
|
|
160
|
-
const { readFile } = await import(
|
|
161
|
-
|
|
158
|
+
const { readFile } = await import(
|
|
159
|
+
/* @vite-ignore */ /* webpackIgnore: true */ /* turbopackIgnore: true */ fsModuleId
|
|
160
|
+
);
|
|
161
|
+
const { fileURLToPath } = await import(
|
|
162
|
+
/* @vite-ignore */ /* webpackIgnore: true */ /* turbopackIgnore: true */ urlModuleId
|
|
163
|
+
);
|
|
162
164
|
return await readFile(fileURLToPath(url));
|
|
163
165
|
}
|
|
164
166
|
|
|
@@ -203,7 +205,7 @@ async function __newBrowserWorkerFromBlob(blob) {
|
|
|
203
205
|
* @returns {Promise<Worker>} Created worker.
|
|
204
206
|
*/
|
|
205
207
|
async function __newIsomorphicWorkerFromUrl(url) {
|
|
206
|
-
if (
|
|
208
|
+
if (_isBrowserLike) {
|
|
207
209
|
return new Worker(url, {
|
|
208
210
|
type: 'module',
|
|
209
211
|
name: 'wasm_bindgen_worker',
|
|
@@ -212,14 +214,18 @@ async function __newIsomorphicWorkerFromUrl(url) {
|
|
|
212
214
|
|
|
213
215
|
const nodeModuleName = 'worker_threads';
|
|
214
216
|
const nodeModuleId = `node:${nodeModuleName}`;
|
|
215
|
-
const { Worker: NodeWorker } = await import(
|
|
217
|
+
const { Worker: NodeWorker } = await import(
|
|
218
|
+
/* @vite-ignore */ /* webpackIgnore: true */ /* turbopackIgnore: true */ nodeModuleId
|
|
219
|
+
);
|
|
216
220
|
return new NodeWorker(url);
|
|
217
221
|
}
|
|
218
222
|
|
|
219
223
|
async function __newNodeWorkerFromJsCode(jsCode) {
|
|
220
224
|
const nodeModuleName = 'worker_threads';
|
|
221
225
|
const nodeModuleId = `node:${nodeModuleName}`;
|
|
222
|
-
const { Worker: NodeWorker } = await import(
|
|
226
|
+
const { Worker: NodeWorker } = await import(
|
|
227
|
+
/* @vite-ignore */ /* webpackIgnore: true */ /* turbopackIgnore: true */ nodeModuleId
|
|
228
|
+
);
|
|
223
229
|
return { worker: new NodeWorker(jsCode, { eval: true }), blobUrl: undefined };
|
|
224
230
|
}
|
|
225
231
|
|
|
@@ -232,7 +238,7 @@ async function __newNodeWorkerFromJsCode(jsCode) {
|
|
|
232
238
|
* @returns {Promise<{ worker: Worker, blobUrl: string | undefined }>} Created worker and optional Blob URL to revoke.
|
|
233
239
|
*/
|
|
234
240
|
async function __newIsomorphicWorkerFromVerifiedJsCodeBytes(verifiedJsCodeBytes) {
|
|
235
|
-
if (
|
|
241
|
+
if (_isBrowserLike) {
|
|
236
242
|
return await __newBrowserWorkerFromBlob(
|
|
237
243
|
new Blob([verifiedJsCodeBytes], {
|
|
238
244
|
type: 'application/javascript',
|
|
@@ -251,7 +257,7 @@ async function __newIsomorphicWorkerFromVerifiedJsCodeBytes(verifiedJsCodeBytes)
|
|
|
251
257
|
* @returns {Promise<{ worker: Worker, blobUrl: string | undefined }>} Created worker and optional Blob URL to revoke.
|
|
252
258
|
*/
|
|
253
259
|
async function __newWorkerFromJsCodeBase64(jsCodeBase64) {
|
|
254
|
-
if (
|
|
260
|
+
if (_isBrowserLike) {
|
|
255
261
|
const blob = new Blob([atob(jsCodeBase64)], {
|
|
256
262
|
type: 'application/javascript',
|
|
257
263
|
});
|
|
@@ -338,6 +344,9 @@ let _terminating;
|
|
|
338
344
|
let _configSet = false;
|
|
339
345
|
let _workerUrl = undefined;
|
|
340
346
|
let _wasmAssetLoadMode = 'auto';
|
|
347
|
+
// Injected by the SDK (the main thread) via setWorkerUrlConfig — the single
|
|
348
|
+
// source of truth for browser-vs-Node, replacing local detection.
|
|
349
|
+
let _isBrowserLike = undefined;
|
|
341
350
|
const _workerUrlSha256 = "2c2ef02437e5b7a41f4c5c1defa0a24dcfae737037a59a145a972bb4191571b8";
|
|
342
351
|
let _verifiedWorkerUrlBytesPromise = undefined;
|
|
343
352
|
let _logger = undefined;
|
|
@@ -381,7 +390,18 @@ function setWorkerUrlConfig(parameters = {}) {
|
|
|
381
390
|
throw new TypeError('setWorkerUrlConfig parameters must be an object');
|
|
382
391
|
}
|
|
383
392
|
|
|
384
|
-
const {
|
|
393
|
+
const {
|
|
394
|
+
workerUrl = undefined,
|
|
395
|
+
wasmAssetLoadMode = 'auto',
|
|
396
|
+
logger = undefined,
|
|
397
|
+
isBrowserLike = undefined,
|
|
398
|
+
} = parameters;
|
|
399
|
+
|
|
400
|
+
// Check `isBrowserLike` (required: the SDK injects the resolved runtime kind;
|
|
401
|
+
// the worker bootstrap never detects it itself).
|
|
402
|
+
if (typeof isBrowserLike !== 'boolean') {
|
|
403
|
+
throw new TypeError('setWorkerUrlConfig: isBrowserLike (boolean) is required');
|
|
404
|
+
}
|
|
385
405
|
|
|
386
406
|
// Check `wasmAssetLoadMode`
|
|
387
407
|
if (!__isWasmAssetLoadMode(wasmAssetLoadMode)) {
|
|
@@ -409,6 +429,7 @@ function setWorkerUrlConfig(parameters = {}) {
|
|
|
409
429
|
|
|
410
430
|
_wasmAssetLoadMode = wasmAssetLoadMode;
|
|
411
431
|
_logger = logger;
|
|
432
|
+
_isBrowserLike = isBrowserLike;
|
|
412
433
|
_configSet = true;
|
|
413
434
|
}
|
|
414
435
|
|
|
@@ -355,6 +355,9 @@ export type WasmAssetLoadMode =
|
|
|
355
355
|
export function setWorkerUrlConfig(parameters?: {
|
|
356
356
|
readonly workerUrl?: URL | undefined;
|
|
357
357
|
readonly wasmAssetLoadMode?: WasmAssetLoadMode | undefined;
|
|
358
|
+
// Required: the SDK injects the resolved runtime kind (browser vs Node); the
|
|
359
|
+
// worker bootstrap no longer detects it itself.
|
|
360
|
+
readonly isBrowserLike: boolean;
|
|
358
361
|
readonly logger?:
|
|
359
362
|
| {
|
|
360
363
|
debug: (message: string) => void;
|