@getpara/web-sdk 0.1.0

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 (38) hide show
  1. package/dist/LocalStorage.d.ts +10 -0
  2. package/dist/LocalStorage.js +34 -0
  3. package/dist/ParaWeb.d.ts +5 -0
  4. package/dist/ParaWeb.js +7 -0
  5. package/dist/SessionStorage.d.ts +14 -0
  6. package/dist/SessionStorage.js +38 -0
  7. package/dist/WebUtils.d.ts +47 -0
  8. package/dist/WebUtils.js +113 -0
  9. package/dist/cryptography/scripts/prime.worker.min.js +2 -0
  10. package/dist/cryptography/webAuth.d.ts +12 -0
  11. package/dist/cryptography/webAuth.js +167 -0
  12. package/dist/errors.d.ts +4 -0
  13. package/dist/errors.js +7 -0
  14. package/dist/index.d.ts +9 -0
  15. package/dist/index.js +9 -0
  16. package/dist/utils/emailUtils.d.ts +1 -0
  17. package/dist/utils/emailUtils.js +5 -0
  18. package/dist/utils/formattingUtils.d.ts +11 -0
  19. package/dist/utils/formattingUtils.js +28 -0
  20. package/dist/utils/isMobile.d.ts +10 -0
  21. package/dist/utils/isMobile.js +39 -0
  22. package/dist/utils/truncateEthAddress.d.ts +1 -0
  23. package/dist/utils/truncateEthAddress.js +8 -0
  24. package/dist/wallet/keygen.d.ts +26 -0
  25. package/dist/wallet/keygen.js +185 -0
  26. package/dist/wallet/privateKey.d.ts +2 -0
  27. package/dist/wallet/privateKey.js +33 -0
  28. package/dist/wallet/signing.d.ts +5 -0
  29. package/dist/wallet/signing.js +100 -0
  30. package/dist/wasm/wasm_exec.d.ts +0 -0
  31. package/dist/wasm/wasm_exec.js +513 -0
  32. package/dist/workers/walletUtils.d.ts +28 -0
  33. package/dist/workers/walletUtils.js +244 -0
  34. package/dist/workers/worker.d.ts +19 -0
  35. package/dist/workers/worker.js +128 -0
  36. package/dist/workers/workerWrapper.d.ts +6 -0
  37. package/dist/workers/workerWrapper.js +50 -0
  38. package/package.json +39 -0
@@ -0,0 +1,244 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { getBaseMPCNetworkUrl, WalletScheme, WalletType } from '@getpara/core-sdk';
11
+ const configCGGMPBase = (serverUrl, walletId, id) => `{"ServerUrl":"${serverUrl}", "WalletId": "${walletId}", "Id":"${id}", "Ids":["USER","CAPSULE"], "Threshold":1}`;
12
+ const configDKLSBase = (walletId, id, disableWebSockets) => `{"walletId": "${walletId}", "id":"${id}", "otherId":"CAPSULE", "isReceiver": false, "disableWebSockets": ${disableWebSockets}}`;
13
+ function keygenRequest(ctx, userId, walletId, protocolId) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ const { data } = yield ctx.mpcComputationClient.post('/wallets', {
16
+ userId,
17
+ walletId,
18
+ protocolId,
19
+ });
20
+ return data;
21
+ });
22
+ }
23
+ function signMessageRequest(ctx, userId, walletId, protocolId, message, signer) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const { data } = yield ctx.mpcComputationClient.post(`/wallets/${walletId}/messages/sign`, {
26
+ userId,
27
+ protocolId,
28
+ message,
29
+ signer,
30
+ });
31
+ return data;
32
+ });
33
+ }
34
+ function sendTransactionRequest(ctx, userId, walletId, protocolId, transaction, signer, chainId) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ const { data } = yield ctx.mpcComputationClient.post(`/wallets/${walletId}/transactions/send`, {
37
+ userId,
38
+ protocolId,
39
+ transaction,
40
+ signer,
41
+ chainId,
42
+ });
43
+ return data;
44
+ });
45
+ }
46
+ export function ed25519Keygen(ctx, userId) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ const { walletId, protocolId } = yield ctx.client.createWallet(userId, {
49
+ scheme: WalletScheme.ED25519,
50
+ type: WalletType.SOLANA,
51
+ });
52
+ const serverUrl = getBaseMPCNetworkUrl(ctx.env, !ctx.disableWebSockets);
53
+ const newSigner = (yield new Promise((resolve, reject) => global.ed25519CreateAccount(serverUrl, walletId, protocolId, (err, result) => {
54
+ if (err) {
55
+ reject(err);
56
+ }
57
+ resolve(result);
58
+ })));
59
+ return { signer: newSigner, walletId };
60
+ });
61
+ }
62
+ export function ed25519PreKeygen(ctx, pregenIdentifier, pregenIdentifierType) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const { walletId, protocolId } = yield ctx.client.createWalletPreGen({
65
+ pregenIdentifier,
66
+ pregenIdentifierType,
67
+ scheme: WalletScheme.ED25519,
68
+ type: WalletType.SOLANA,
69
+ });
70
+ const serverUrl = getBaseMPCNetworkUrl(ctx.env, !ctx.disableWebSockets);
71
+ const newSigner = (yield new Promise((resolve, reject) => global.ed25519CreateAccount(serverUrl, walletId, protocolId, (err, result) => {
72
+ if (err) {
73
+ reject(err);
74
+ }
75
+ resolve(result);
76
+ })));
77
+ return { signer: newSigner, walletId };
78
+ });
79
+ }
80
+ export function ed25519Sign(ctx, share, userId, walletId, base64Bytes) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ const { protocolId } = yield ctx.client.preSignMessage(userId, walletId, base64Bytes, WalletScheme.ED25519);
83
+ const base64Sig = (yield new Promise((resolve, reject) => global.ed25519Sign(share, protocolId, base64Bytes, (err, result) => {
84
+ if (err) {
85
+ reject(err);
86
+ }
87
+ resolve(result);
88
+ })));
89
+ return { signature: base64Sig };
90
+ });
91
+ }
92
+ export function keygen(ctx, userId, type, secretKey) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const { walletId, protocolId } = yield ctx.client.createWallet(userId, {
95
+ useTwoSigners: true,
96
+ scheme: ctx.useDKLS ? WalletScheme.DKLS : WalletScheme.CGGMP,
97
+ type,
98
+ cosmosPrefix: type === WalletType.COSMOS ? ctx.cosmosPrefix : undefined,
99
+ });
100
+ if (ctx.offloadMPCComputationURL && !ctx.useDKLS) {
101
+ return {
102
+ signer: (yield keygenRequest(ctx, userId, walletId, protocolId)).signer,
103
+ walletId,
104
+ };
105
+ }
106
+ const serverUrl = getBaseMPCNetworkUrl(ctx.env, !ctx.disableWebSockets);
107
+ const signerConfigUser = ctx.useDKLS
108
+ ? configDKLSBase(walletId, 'USER', ctx.disableWebSockets)
109
+ : configCGGMPBase(serverUrl, walletId, 'USER');
110
+ const createAccountFn = ctx.useDKLS ? global.dklsCreateAccount : global.createAccountV2;
111
+ const newSigner = (yield new Promise((resolve, reject) => createAccountFn(signerConfigUser, serverUrl, protocolId, secretKey, () => { }, // no-op for deprecated callback to update progress percentage
112
+ (err, result) => {
113
+ if (err) {
114
+ reject(err);
115
+ }
116
+ resolve(result);
117
+ })));
118
+ return { signer: newSigner, walletId };
119
+ });
120
+ }
121
+ export function preKeygen(ctx, _partnerId, pregenIdentifier, pregenIdentifierType, type, secretKey) {
122
+ return __awaiter(this, void 0, void 0, function* () {
123
+ const { walletId, protocolId } = yield ctx.client.createWalletPreGen({
124
+ pregenIdentifier,
125
+ pregenIdentifierType,
126
+ type,
127
+ cosmosPrefix: type === WalletType.COSMOS ? ctx.cosmosPrefix : undefined,
128
+ });
129
+ const serverUrl = getBaseMPCNetworkUrl(ctx.env, !ctx.disableWebSockets);
130
+ const signerConfigUser = configDKLSBase(walletId, 'USER', ctx.disableWebSockets);
131
+ const newSigner = (yield new Promise((resolve, reject) => global.dklsCreateAccount(signerConfigUser, serverUrl, protocolId, secretKey, () => { }, // no-op for deprecated callback to update progress percentage
132
+ (err, result) => {
133
+ if (err) {
134
+ reject(err);
135
+ }
136
+ resolve(result);
137
+ })));
138
+ return { signer: newSigner, walletId };
139
+ });
140
+ }
141
+ export function signMessage(ctx, share, walletId, userId, message, cosmosSignDoc) {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ const { protocolId, pendingTransactionId } = yield ctx.client.preSignMessage(userId, walletId, message, null, cosmosSignDoc);
144
+ if (pendingTransactionId) {
145
+ return { pendingTransactionId };
146
+ }
147
+ if (ctx.offloadMPCComputationURL && !ctx.useDKLS) {
148
+ return signMessageRequest(ctx, userId, walletId, protocolId, message, share);
149
+ }
150
+ const serverUrl = getBaseMPCNetworkUrl(ctx.env, !ctx.disableWebSockets);
151
+ const signMessageFn = ctx.useDKLS ? global.dklsSignMessage : global.signMessage;
152
+ const parsedShare = JSON.parse(share);
153
+ if (!parsedShare.disableWebSockets !== !ctx.disableWebSockets) {
154
+ parsedShare.disableWebSockets = ctx.disableWebSockets;
155
+ }
156
+ share = JSON.stringify(parsedShare);
157
+ return new Promise((resolve, reject) => signMessageFn(share, serverUrl, message, protocolId, (err, result) => {
158
+ if (err) {
159
+ reject(err);
160
+ }
161
+ resolve({ signature: result });
162
+ }));
163
+ });
164
+ }
165
+ export function signTransaction(ctx, share, walletId, userId, tx, chainId) {
166
+ return __awaiter(this, void 0, void 0, function* () {
167
+ const { data: { protocolId, pendingTransactionId }, } = yield ctx.client.signTransaction(userId, walletId, { transaction: tx, chainId });
168
+ if (pendingTransactionId) {
169
+ return { pendingTransactionId };
170
+ }
171
+ if (ctx.offloadMPCComputationURL && !ctx.useDKLS) {
172
+ return sendTransactionRequest(ctx, userId, walletId, protocolId, tx, share, chainId);
173
+ }
174
+ const serverUrl = getBaseMPCNetworkUrl(ctx.env, !ctx.disableWebSockets);
175
+ const signTransactionFn = ctx.useDKLS ? global.dklsSendTransaction : global.sendTransaction;
176
+ const parsedShare = JSON.parse(share);
177
+ if (!parsedShare.disableWebSockets !== !ctx.disableWebSockets) {
178
+ parsedShare.disableWebSockets = ctx.disableWebSockets;
179
+ }
180
+ share = JSON.stringify(parsedShare);
181
+ return new Promise((resolve, reject) => signTransactionFn(share, serverUrl, tx, chainId, protocolId, (err, result) => {
182
+ if (err) {
183
+ reject(err);
184
+ }
185
+ resolve({ signature: result });
186
+ }));
187
+ });
188
+ }
189
+ export function sendTransaction(ctx, share, walletId, userId, tx, chainId) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ const { data: { protocolId, pendingTransactionId }, } = yield ctx.client.sendTransaction(userId, walletId, { transaction: tx, chainId });
192
+ if (pendingTransactionId) {
193
+ return { pendingTransactionId };
194
+ }
195
+ if (ctx.offloadMPCComputationURL && !ctx.useDKLS) {
196
+ return sendTransactionRequest(ctx, userId, walletId, protocolId, tx, share, chainId);
197
+ }
198
+ const serverUrl = getBaseMPCNetworkUrl(ctx.env, !ctx.disableWebSockets);
199
+ const sendTransactionFn = ctx.useDKLS ? global.dklsSendTransaction : global.sendTransaction;
200
+ const parsedShare = JSON.parse(share);
201
+ if (!parsedShare.disableWebSockets !== !ctx.disableWebSockets) {
202
+ parsedShare.disableWebSockets = ctx.disableWebSockets;
203
+ }
204
+ share = JSON.stringify(parsedShare);
205
+ return new Promise((resolve, reject) => sendTransactionFn(share, serverUrl, tx, chainId, protocolId, (err, result) => {
206
+ if (err) {
207
+ reject(err);
208
+ }
209
+ resolve({ signature: result });
210
+ }));
211
+ });
212
+ }
213
+ export function refresh(ctx, share, walletId, userId, oldPartnerId, newPartnerId, keyShareProtocolId) {
214
+ return __awaiter(this, void 0, void 0, function* () {
215
+ const { data: { protocolId }, } = yield ctx.client.refreshKeys(userId, walletId, oldPartnerId, newPartnerId, keyShareProtocolId);
216
+ const serverUrl = getBaseMPCNetworkUrl(ctx.env, !ctx.disableWebSockets);
217
+ const refreshFn = ctx.useDKLS ? global.dklsRefresh : global.refresh;
218
+ const parsedShare = JSON.parse(share);
219
+ if (!parsedShare.disableWebSockets !== !ctx.disableWebSockets) {
220
+ parsedShare.disableWebSockets = ctx.disableWebSockets;
221
+ }
222
+ share = JSON.stringify(parsedShare);
223
+ return new Promise((resolve, reject) => refreshFn(share, serverUrl, protocolId, (err, result) => {
224
+ if (err) {
225
+ reject(err);
226
+ }
227
+ resolve({ protocolId, signer: result });
228
+ }));
229
+ });
230
+ }
231
+ export function getPrivateKey(ctx, share, walletId, userId) {
232
+ return __awaiter(this, void 0, void 0, function* () {
233
+ const paraShare = yield ctx.client.getParaShare(userId, walletId);
234
+ if (!paraShare) {
235
+ return '';
236
+ }
237
+ return new Promise((resolve, reject) => global.getPrivateKey(share, paraShare, (err, result) => {
238
+ if (err) {
239
+ reject(err);
240
+ }
241
+ resolve(result);
242
+ }));
243
+ });
244
+ }
@@ -0,0 +1,19 @@
1
+ import '../wasm/wasm_exec.js';
2
+ import { Environment } from '@getpara/core-sdk';
3
+ export interface Message {
4
+ env: Environment;
5
+ apiKey?: string;
6
+ cosmosPrefix?: string;
7
+ offloadMPCComputationURL?: string;
8
+ disableWorkers?: boolean;
9
+ functionType: string;
10
+ params: Record<string, any>;
11
+ sessionCookie?: string;
12
+ useDKLS?: boolean;
13
+ disableWebSockets?: boolean;
14
+ wasmOverride?: ArrayBuffer;
15
+ returnObject?: boolean;
16
+ }
17
+ export declare function handleMessage(e: {
18
+ data: Message;
19
+ }, postMessage: (message: any) => void, useFetchAdapter?: boolean): Promise<boolean>;
@@ -0,0 +1,128 @@
1
+ // ANY CHANGES TO THIS FILE REQUIRE A REBUILD OF THE WORKER
2
+ // FILE IN THE PORTAL!
3
+ // run `yarn build` to rebuild the worker file
4
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
+ return new (P || (P = Promise))(function (resolve, reject) {
7
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
11
+ });
12
+ };
13
+ import '../wasm/wasm_exec.js';
14
+ import * as walletUtils from './walletUtils.js';
15
+ import { getPortalBaseURL, initClient, mpcComputationClient, paraVersion, WalletType, } from '@getpara/core-sdk';
16
+ function loadWasm(ctx, wasmOverride) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ // @ts-ignore
19
+ const goWasm = new self.Go();
20
+ let wasmArrayBuffer = wasmOverride;
21
+ if (!wasmArrayBuffer) {
22
+ if (process.env.DISABLE_WASM_FETCH === 'true') {
23
+ throw new Error('fetching wasm file is disabled');
24
+ }
25
+ const fetchedWasm = yield fetch(`${getPortalBaseURL(ctx)}/static/js/main.wasm`, { mode: 'cors' });
26
+ wasmArrayBuffer = yield fetchedWasm.arrayBuffer();
27
+ }
28
+ const newRes = yield WebAssembly.instantiate(wasmArrayBuffer, goWasm.importObject);
29
+ goWasm.run(newRes.instance);
30
+ });
31
+ }
32
+ function executeMessage(ctx, message) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const { functionType, params, returnObject } = message;
35
+ switch (functionType) {
36
+ case 'KEYGEN': {
37
+ const { userId, secretKey, type = WalletType.EVM } = params;
38
+ const keygenRes = yield walletUtils.keygen(ctx, userId, type, secretKey);
39
+ return keygenRes;
40
+ }
41
+ case 'SIGN_TRANSACTION': {
42
+ const { share, walletId, userId, tx, chainId } = params;
43
+ return walletUtils.signTransaction(ctx, share, walletId, userId, tx, chainId);
44
+ }
45
+ case 'SEND_TRANSACTION': {
46
+ const { share, walletId, userId, tx, chainId } = params;
47
+ return walletUtils.sendTransaction(ctx, share, walletId, userId, tx, chainId);
48
+ }
49
+ case 'SIGN_MESSAGE': {
50
+ const { share, walletId, userId, message, cosmosSignDoc } = params;
51
+ return walletUtils.signMessage(ctx, share, walletId, userId, message, cosmosSignDoc);
52
+ }
53
+ case 'REFRESH': {
54
+ const { share, walletId, userId, oldPartnerId, newPartnerId, keyShareProtocolId } = params;
55
+ const { protocolId, signer } = yield walletUtils.refresh(ctx, share, walletId, userId, oldPartnerId, newPartnerId, keyShareProtocolId);
56
+ return returnObject ? { protocolId, signer } : signer;
57
+ }
58
+ case 'PREKEYGEN': {
59
+ const { email, partnerId, secretKey, type = WalletType.EVM } = params;
60
+ let { pregenIdentifier, pregenIdentifierType } = params;
61
+ if (email !== 'null' && email !== 'undefined' && email !== '' && email != null) {
62
+ pregenIdentifier = email;
63
+ pregenIdentifierType = 'EMAIL';
64
+ }
65
+ const keygenRes = yield walletUtils.preKeygen(ctx, partnerId, pregenIdentifier, pregenIdentifierType, type, secretKey);
66
+ return keygenRes;
67
+ }
68
+ case 'GET_PRIVATE_KEY': {
69
+ const { share, walletId, userId } = params;
70
+ return yield walletUtils.getPrivateKey(ctx, share, walletId, userId);
71
+ }
72
+ case 'ED25519_KEYGEN': {
73
+ const { userId } = params;
74
+ return walletUtils.ed25519Keygen(ctx, userId);
75
+ }
76
+ case 'ED25519_SIGN': {
77
+ const { share, walletId, userId, base64Bytes } = params;
78
+ return walletUtils.ed25519Sign(ctx, share, userId, walletId, base64Bytes);
79
+ }
80
+ case 'ED25519_PREKEYGEN': {
81
+ const { email } = params;
82
+ let { pregenIdentifier, pregenIdentifierType } = params;
83
+ if (email !== 'null' && email !== 'undefined' && email !== '' && email != null) {
84
+ pregenIdentifier = email;
85
+ pregenIdentifierType = 'EMAIL';
86
+ }
87
+ return walletUtils.ed25519PreKeygen(ctx, pregenIdentifier, pregenIdentifierType);
88
+ }
89
+ default: {
90
+ throw new Error(`functionType: ${functionType} not supported`);
91
+ }
92
+ }
93
+ });
94
+ }
95
+ export function handleMessage(e, postMessage, useFetchAdapter) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ const { env, apiKey, cosmosPrefix = 'cosmos', offloadMPCComputationURL, disableWorkers, sessionCookie, useDKLS, disableWebSockets, wasmOverride, } = e.data;
98
+ if (!env) {
99
+ // this means a message we didn't send was received and we want to ignore it
100
+ return true;
101
+ }
102
+ const ctx = {
103
+ env,
104
+ apiKey,
105
+ cosmosPrefix,
106
+ client: initClient({
107
+ env,
108
+ version: paraVersion,
109
+ apiKey,
110
+ useFetchAdapter,
111
+ retrieveSessionCookie: () => sessionCookie,
112
+ }),
113
+ offloadMPCComputationURL: offloadMPCComputationURL,
114
+ mpcComputationClient: offloadMPCComputationURL
115
+ ? mpcComputationClient.initClient(offloadMPCComputationURL, !!disableWorkers)
116
+ : undefined,
117
+ useDKLS,
118
+ disableWebSockets: !!disableWebSockets,
119
+ wasmOverride,
120
+ };
121
+ if (!ctx.offloadMPCComputationURL || ctx.useDKLS) {
122
+ yield loadWasm(ctx, wasmOverride);
123
+ }
124
+ const result = yield executeMessage(ctx, e.data);
125
+ postMessage(result);
126
+ return false;
127
+ });
128
+ }
@@ -0,0 +1,6 @@
1
+ import { Ctx } from '@getpara/core-sdk';
2
+ export interface SyncWorker {
3
+ postMessage: (message: any) => void;
4
+ terminate: () => void;
5
+ }
6
+ export declare function setupWorker(ctx: Ctx, resFunction: (arg: any) => void): Promise<Worker | SyncWorker>;
@@ -0,0 +1,50 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { getPortalBaseURL } from '@getpara/core-sdk';
11
+ import { handleMessage } from './worker.js';
12
+ export function setupWorker(ctx, resFunction) {
13
+ return __awaiter(this, void 0, void 0, function* () {
14
+ const onmessage = event => {
15
+ if (event.data.functionType === 'CUSTOM') {
16
+ // safe to remove this block once this code is live in prod!
17
+ return;
18
+ }
19
+ resFunction(event.data);
20
+ };
21
+ if (ctx.disableWorkers) {
22
+ const syncWorker = {
23
+ postMessage: function (message) {
24
+ (function () {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ yield handleMessage({ data: message }, data => onmessage({ data }), ctx.disableWorkers);
27
+ });
28
+ })();
29
+ },
30
+ terminate: () => {
31
+ return;
32
+ },
33
+ };
34
+ return syncWorker;
35
+ }
36
+ let worker;
37
+ if (ctx.useLocalFiles) {
38
+ // worker = new Worker(new URL('./worker.js', import.meta.url));
39
+ throw new Error('useLocalFiles only supported locally');
40
+ }
41
+ else {
42
+ const workerRes = yield fetch(`${getPortalBaseURL(ctx)}/static/js/mpcWorker-bundle.js`);
43
+ const workerBlob = new Blob([yield workerRes.text()], { type: 'application/javascript' });
44
+ const workerScriptURL = URL.createObjectURL(workerBlob);
45
+ worker = new Worker(workerScriptURL);
46
+ }
47
+ worker.onmessage = onmessage;
48
+ return worker;
49
+ });
50
+ }
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@getpara/web-sdk",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "sideEffects": [
8
+ "wasm_exec.js"
9
+ ],
10
+ "dependencies": {
11
+ "@getpara/core-sdk": "0.1.0",
12
+ "@getpara/user-management-client": "0.1.0",
13
+ "assert": "^2.1.0",
14
+ "base64url": "3.0.1",
15
+ "buffer": "6.0.3",
16
+ "cbor-web": "8.1.0",
17
+ "node-forge": "1.3.1",
18
+ "ua-parser-js": "1.0.39"
19
+ },
20
+ "scripts": {
21
+ "build": "rm -rf dist && tsc && yarn post-build",
22
+ "post-build": "./scripts/post-build.sh",
23
+ "test": "vitest run --coverage"
24
+ },
25
+ "devDependencies": {
26
+ "@types/node-forge": "1.3.1",
27
+ "@types/ua-parser-js": "0.7.39",
28
+ "crypto-browserify": "3.12.0",
29
+ "stream-browserify": "3.0.0",
30
+ "typescript": "5.1.6",
31
+ "webpack": "5.76.3",
32
+ "webpack-cli": "5.0.1"
33
+ },
34
+ "files": [
35
+ "dist",
36
+ "package.json"
37
+ ],
38
+ "gitHead": "625aaa94001a5461dcde8d6775c3b73f3862c76c"
39
+ }