diff --git a/package-lock.json b/package-lock.json index c7dfee9..40fc690 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3538,6 +3538,26 @@ } } }, + "node_modules/@rollup/plugin-wasm": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-wasm/-/plugin-wasm-6.2.2.tgz", + "integrity": "sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/pluginutils": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.4.tgz", @@ -19988,7 +20008,10 @@ }, "packages/tss-lib": { "name": "@toruslabs/tss-lib", - "version": "2.0.0" + "version": "2.0.0", + "devDependencies": { + "@rollup/plugin-wasm": "^6.2.2" + } } }, "dependencies": { @@ -22463,6 +22486,15 @@ "resolve": "^1.22.1" } }, + "@rollup/plugin-wasm": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-wasm/-/plugin-wasm-6.2.2.tgz", + "integrity": "sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.2" + } + }, "@rollup/pluginutils": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.4.tgz", @@ -22710,7 +22742,10 @@ } }, "@toruslabs/tss-lib": { - "version": "file:packages/tss-lib" + "version": "file:packages/tss-lib", + "requires": { + "@rollup/plugin-wasm": "^6.2.2" + } }, "@tufjs/canonical-json": { "version": "1.0.0", diff --git a/packages/tss-lib/dkls.d.ts b/packages/tss-lib/dkls.d.ts index 3ca778b..3104791 100644 --- a/packages/tss-lib/dkls.d.ts +++ b/packages/tss-lib/dkls.d.ts @@ -196,3 +196,5 @@ export function initSync(module: SyncInitInput): InitOutput; * @returns {Promise} */ export default function init (module_or_path?: InitInput | Promise): Promise; + +export declare const initWasm: () => Promise; \ No newline at end of file diff --git a/packages/tss-lib/index.js b/packages/tss-lib/index.js new file mode 100644 index 0000000..e1ba553 --- /dev/null +++ b/packages/tss-lib/index.js @@ -0,0 +1,6 @@ +import tsslib from "./browser"; +import wasmData from "./wasm/client.wasm"; +export * from "./browser"; +export const initWasm = async () => { + await tsslib(wasmData); +}; diff --git a/packages/tss-lib/package.json b/packages/tss-lib/package.json index fdf3334..6186587 100644 --- a/packages/tss-lib/package.json +++ b/packages/tss-lib/package.json @@ -2,8 +2,8 @@ "name": "@toruslabs/tss-lib", "version": "2.0.0", "files": [ - "wasm", "browser.js", + "index.js", "dkls.d.ts", "dkls_bg.wasm.d.ts", "dist" @@ -22,5 +22,8 @@ "publishConfig": { "access": "public" }, - "gitHead": "a0acd762809f00707e6051ef300a5d6791e52bf8" + "gitHead": "a0acd762809f00707e6051ef300a5d6791e52bf8", + "devDependencies": { + "@rollup/plugin-wasm": "^6.2.2" + } } diff --git a/packages/tss-lib/rollup.config.mjs b/packages/tss-lib/rollup.config.mjs index 59b3459..8145304 100644 --- a/packages/tss-lib/rollup.config.mjs +++ b/packages/tss-lib/rollup.config.mjs @@ -1,3 +1,6 @@ +import { wasm } from "@rollup/plugin-wasm"; + export default { - input: "./browser.js", + input: "./index.js", + plugins: [wasm()], }; diff --git a/packages/tss-lib/webpack.config.js b/packages/tss-lib/webpack.config.js index d6f6019..ffc9b3c 100644 --- a/packages/tss-lib/webpack.config.js +++ b/packages/tss-lib/webpack.config.js @@ -1,3 +1,12 @@ exports.baseConfig = { - entry: "./browser.js", + entry: "./index.js", + module: { + rules: [ + { + // Pack Wasm inline. + test: /\.wasm$/, + type: "asset/inline", + }, + ], + }, };