@dynamic-labs-sdk/client 0.17.1 → 0.17.3
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/dist/{InvalidParamError-3-1rSNtf.esm.js → InvalidParamError-C8bqZx25.esm.js} +59 -130
- package/dist/InvalidParamError-C8bqZx25.esm.js.map +1 -0
- package/dist/{InvalidParamError-zIxsXkiH.cjs.js → InvalidParamError-DvFYOkxL.cjs.js} +65 -187
- package/dist/InvalidParamError-DvFYOkxL.cjs.js.map +1 -0
- package/dist/{NotWaasWalletAccountError-DVIcEgHJ.esm.js → NotWaasWalletAccountError-C-_6uyUM.esm.js} +3 -3
- package/dist/{NotWaasWalletAccountError-DVIcEgHJ.esm.js.map → NotWaasWalletAccountError-C-_6uyUM.esm.js.map} +1 -1
- package/dist/{NotWaasWalletAccountError-B_Wl6sTh.cjs.js → NotWaasWalletAccountError-CHSFUjd9.cjs.js} +3 -3
- package/dist/{NotWaasWalletAccountError-B_Wl6sTh.cjs.js.map → NotWaasWalletAccountError-CHSFUjd9.cjs.js.map} +1 -1
- package/dist/client/core/createCore/createCore.d.ts.map +1 -1
- package/dist/client/core/types/DynamicCore.d.ts +20 -0
- package/dist/client/core/types/DynamicCore.d.ts.map +1 -1
- package/dist/client/core/types/DynamicCoreConfig.d.ts +1 -1
- package/dist/client/core/types/DynamicCoreConfig.d.ts.map +1 -1
- package/dist/client/types/DynamicClientConfig.d.ts +5 -0
- package/dist/client/types/DynamicClientConfig.d.ts.map +1 -1
- package/dist/core.cjs.js +24 -11
- package/dist/core.cjs.js.map +1 -1
- package/dist/core.esm.js +16 -6
- package/dist/core.esm.js.map +1 -1
- package/dist/exports/core.d.ts +10 -0
- package/dist/exports/core.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-BJR1GciB.cjs.js → getNetworkProviderFromNetworkId-DK9fnM_Y.cjs.js} +432 -69
- package/dist/getNetworkProviderFromNetworkId-DK9fnM_Y.cjs.js.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-C7jp--76.esm.js → getNetworkProviderFromNetworkId-n7VUDpn0.esm.js} +374 -68
- package/dist/getNetworkProviderFromNetworkId-n7VUDpn0.esm.js.map +1 -0
- package/dist/{getSignedSessionId-DVpOgsL9.cjs.js → getSignedSessionId-B2-EYPik.cjs.js} +7 -17
- package/dist/getSignedSessionId-B2-EYPik.cjs.js.map +1 -0
- package/dist/{getSignedSessionId-Alfz9eul.esm.js → getSignedSessionId-CM3X3R5t.esm.js} +7 -17
- package/dist/getSignedSessionId-CM3X3R5t.esm.js.map +1 -0
- package/dist/{getVerifiedCredentialForWalletAccount-DLtDL1Gl.esm.js → getVerifiedCredentialForWalletAccount-Cs7AcMKQ.esm.js} +2 -2
- package/dist/{getVerifiedCredentialForWalletAccount-DLtDL1Gl.esm.js.map → getVerifiedCredentialForWalletAccount-Cs7AcMKQ.esm.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-D25Vyxub.cjs.js → getVerifiedCredentialForWalletAccount-CyLnpS2G.cjs.js} +3 -2
- package/dist/{getVerifiedCredentialForWalletAccount-D25Vyxub.cjs.js.map → getVerifiedCredentialForWalletAccount-CyLnpS2G.cjs.js.map} +1 -1
- package/dist/index.cjs.js +182 -79
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +174 -71
- package/dist/index.esm.js.map +1 -1
- package/dist/{isMfaRequiredForAction-CYYU8V1B.cjs.js → isMfaRequiredForAction-BrRKwK_i.cjs.js} +2 -2
- package/dist/{isMfaRequiredForAction-CYYU8V1B.cjs.js.map → isMfaRequiredForAction-BrRKwK_i.cjs.js.map} +1 -1
- package/dist/{isMfaRequiredForAction-CPTFDCJp.esm.js → isMfaRequiredForAction-CM26tbT2.esm.js} +2 -2
- package/dist/{isMfaRequiredForAction-CPTFDCJp.esm.js.map → isMfaRequiredForAction-CM26tbT2.esm.js.map} +1 -1
- package/dist/modules/apiClient/apiClient.types.d.ts +7 -0
- package/dist/modules/apiClient/apiClient.types.d.ts.map +1 -1
- package/dist/modules/apiClient/constants.d.ts +2 -0
- package/dist/modules/apiClient/constants.d.ts.map +1 -1
- package/dist/modules/apiClient/createApiClient.d.ts.map +1 -1
- package/dist/modules/auth/getElevatedAccessToken/getElevatedAccessToken.d.ts +15 -8
- package/dist/modules/auth/getElevatedAccessToken/getElevatedAccessToken.d.ts.map +1 -1
- package/dist/modules/auth/logout/logout.d.ts.map +1 -1
- package/dist/modules/auth/passkeys/deletePasskey/deletePasskey.d.ts.map +1 -1
- package/dist/modules/auth/passkeys/serverRegisterPasskey/serverRegisterPasskey.d.ts.map +1 -1
- package/dist/modules/deviceRegistration/getDeviceSigner/getDeviceSigner.d.ts.map +1 -1
- package/dist/modules/initializeClient/initializeClient.d.ts.map +1 -1
- package/dist/modules/keychainMigration/migrateSessionKeyToKeychain/KeyMigrationError.d.ts +5 -0
- package/dist/modules/keychainMigration/migrateSessionKeyToKeychain/KeyMigrationError.d.ts.map +1 -0
- package/dist/modules/keychainMigration/migrateSessionKeyToKeychain/migrateSessionKeyToKeychain.d.ts +24 -0
- package/dist/modules/keychainMigration/migrateSessionKeyToKeychain/migrateSessionKeyToKeychain.d.ts.map +1 -0
- package/dist/modules/mfa/deleteMfaDevice/deleteMfaDevice.d.ts +6 -4
- package/dist/modules/mfa/deleteMfaDevice/deleteMfaDevice.d.ts.map +1 -1
- package/dist/modules/mfa/registerTotpMfaDevice/registerTotpMfaDevice.d.ts.map +1 -1
- package/dist/modules/sessionKeys/generateNonceSignature/generateNonceSignature.d.ts.map +1 -1
- package/dist/modules/sessionKeys/generateSessionKeys/generateSessionKeys.d.ts.map +1 -1
- package/dist/modules/sessionKeys/generateSessionSignature/generateSessionSignature.d.ts.map +1 -1
- package/dist/modules/sessionKeys/getSessionKeys/getSessionKeys.d.ts.map +1 -1
- package/dist/modules/sessionKeys/sessionKeys.types.d.ts +0 -2
- package/dist/modules/sessionKeys/sessionKeys.types.d.ts.map +1 -1
- package/dist/services/instrumentation/constants.d.ts +17 -0
- package/dist/services/instrumentation/constants.d.ts.map +1 -0
- package/dist/services/instrumentation/createInstrumentation/createInstrumentation.d.ts +18 -0
- package/dist/services/instrumentation/createInstrumentation/createInstrumentation.d.ts.map +1 -0
- package/dist/services/instrumentation/createInstrumentation/index.d.ts +2 -0
- package/dist/services/instrumentation/createInstrumentation/index.d.ts.map +1 -0
- package/dist/services/instrumentation/instrumentation.types.d.ts +44 -0
- package/dist/services/instrumentation/instrumentation.types.d.ts.map +1 -0
- package/dist/services/instrumentation/scrubParameters/index.d.ts +2 -0
- package/dist/services/instrumentation/scrubParameters/index.d.ts.map +1 -0
- package/dist/services/instrumentation/scrubParameters/scrubParameters.d.ts +8 -0
- package/dist/services/instrumentation/scrubParameters/scrubParameters.d.ts.map +1 -0
- package/dist/services/keychain/createIndexedDBKeychainService/KeyNotFoundError.d.ts +5 -0
- package/dist/services/keychain/createIndexedDBKeychainService/KeyNotFoundError.d.ts.map +1 -0
- package/dist/services/keychain/createIndexedDBKeychainService/createIndexedDBKeychainService.d.ts +7 -0
- package/dist/services/keychain/createIndexedDBKeychainService/createIndexedDBKeychainService.d.ts.map +1 -0
- package/dist/services/keychain/createIndexedDBKeychainService/createIndexedDBKeychainService.types.d.ts +6 -0
- package/dist/services/keychain/createIndexedDBKeychainService/createIndexedDBKeychainService.types.d.ts.map +1 -0
- package/dist/services/keychain/createIndexedDBKeychainService/index.d.ts +2 -0
- package/dist/services/keychain/createIndexedDBKeychainService/index.d.ts.map +1 -0
- package/dist/services/keychain/createIndexedDBKeychainService/utils/constants.d.ts +2 -0
- package/dist/services/keychain/createIndexedDBKeychainService/utils/constants.d.ts.map +1 -0
- package/dist/services/keychain/createIndexedDBKeychainService/utils/deleteIndexedDBItem.d.ts +2 -0
- package/dist/services/keychain/createIndexedDBKeychainService/utils/deleteIndexedDBItem.d.ts.map +1 -0
- package/dist/services/keychain/createIndexedDBKeychainService/utils/getIndexedDBItem.d.ts +3 -0
- package/dist/services/keychain/createIndexedDBKeychainService/utils/getIndexedDBItem.d.ts.map +1 -0
- package/dist/services/keychain/createIndexedDBKeychainService/utils/openDatabase.d.ts +2 -0
- package/dist/services/keychain/createIndexedDBKeychainService/utils/openDatabase.d.ts.map +1 -0
- package/dist/services/keychain/createIndexedDBKeychainService/utils/setIndexedDBItem.d.ts +3 -0
- package/dist/services/keychain/createIndexedDBKeychainService/utils/setIndexedDBItem.d.ts.map +1 -0
- package/dist/services/keychain/errors/KeychainNotConfiguredError.d.ts +5 -0
- package/dist/services/keychain/errors/KeychainNotConfiguredError.d.ts.map +1 -0
- package/dist/services/keychain/index.d.ts +3 -0
- package/dist/services/keychain/index.d.ts.map +1 -0
- package/dist/services/keychain/keychain.types.d.ts +9 -0
- package/dist/services/keychain/keychain.types.d.ts.map +1 -0
- package/dist/services/realtime/createRealtimeService/createRealtimeService.d.ts +11 -0
- package/dist/services/realtime/createRealtimeService/createRealtimeService.d.ts.map +1 -0
- package/dist/services/realtime/createRealtimeService/index.d.ts +2 -0
- package/dist/services/realtime/createRealtimeService/index.d.ts.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/waas.cjs.js +4 -3
- package/dist/waas.cjs.js.map +1 -1
- package/dist/waas.esm.js +3 -3
- package/dist/waasCore.cjs.js +4 -3
- package/dist/waasCore.cjs.js.map +1 -1
- package/dist/waasCore.esm.js +3 -3
- package/package.json +2 -2
- package/dist/InvalidParamError-3-1rSNtf.esm.js.map +0 -1
- package/dist/InvalidParamError-zIxsXkiH.cjs.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-BJR1GciB.cjs.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-C7jp--76.esm.js.map +0 -1
- package/dist/getSignedSessionId-Alfz9eul.esm.js.map +0 -1
- package/dist/getSignedSessionId-DVpOgsL9.cjs.js.map +0 -1
|
@@ -1,11 +1,87 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region rolldown:runtime
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
11
|
+
key = keys[i];
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except) {
|
|
13
|
+
__defProp(to, key, {
|
|
14
|
+
get: ((k) => from[k]).bind(null, key),
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
23
|
+
value: mod,
|
|
24
|
+
enumerable: true
|
|
25
|
+
}) : target, mod));
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
const require_InvalidParamError = require('./InvalidParamError-DvFYOkxL.cjs.js');
|
|
29
|
+
const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-CyLnpS2G.cjs.js');
|
|
3
30
|
let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
|
|
4
31
|
let zod_mini = require("zod/mini");
|
|
5
|
-
zod_mini =
|
|
32
|
+
zod_mini = __toESM(zod_mini);
|
|
33
|
+
let buffer = require("buffer");
|
|
6
34
|
let eventemitter3 = require("eventemitter3");
|
|
7
|
-
eventemitter3 =
|
|
35
|
+
eventemitter3 = __toESM(eventemitter3);
|
|
36
|
+
|
|
37
|
+
//#region src/utils/isEqualShallow/isEqualShallow.ts
|
|
38
|
+
/**
|
|
39
|
+
* Shallow compare two objects.
|
|
40
|
+
*
|
|
41
|
+
* Source: https://github.com/pmndrs/zustand/blob/main/src/vanilla/shallow.ts
|
|
42
|
+
*/
|
|
43
|
+
const isEqualShallow = (objA, objB) => {
|
|
44
|
+
if (Object.is(objA, objB)) return true;
|
|
45
|
+
if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) return objA === objB;
|
|
46
|
+
if (objA instanceof Map && objB instanceof Map) {
|
|
47
|
+
if (objA.size !== objB.size) return false;
|
|
48
|
+
for (const [key, value] of objA) if (!Object.is(value, objB.get(key))) return false;
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
if (objA instanceof Set && objB instanceof Set) {
|
|
52
|
+
if (objA.size !== objB.size) return false;
|
|
53
|
+
for (const value of objA) if (!objB.has(value)) return false;
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
const keysA = Object.keys(objA);
|
|
57
|
+
if (keysA.length !== Object.keys(objB).length) return false;
|
|
58
|
+
for (const keyA of keysA) if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) return false;
|
|
59
|
+
if (objA.constructor !== objB.constructor) return false;
|
|
60
|
+
return true;
|
|
61
|
+
};
|
|
8
62
|
|
|
63
|
+
//#endregion
|
|
64
|
+
//#region src/utils/observable/subscribeWithSelector/subscribeWithSelector.ts
|
|
65
|
+
/**
|
|
66
|
+
* Allows subscribing to a slice of the state.
|
|
67
|
+
* The slice is a computation of the states.
|
|
68
|
+
*
|
|
69
|
+
* The callback will only be called when the slice has changed.
|
|
70
|
+
* Change is determined by shallow comparison.
|
|
71
|
+
*
|
|
72
|
+
* Returns a function to unsubscribe the callback.
|
|
73
|
+
*/
|
|
74
|
+
const subscribeWithSelector = (observable, selector) => (callback) => {
|
|
75
|
+
let lastSlice = selector(observable.get());
|
|
76
|
+
return observable.subscribe((value) => {
|
|
77
|
+
const nextSlice = selector(value);
|
|
78
|
+
if (isEqualShallow(nextSlice, lastSlice)) return;
|
|
79
|
+
lastSlice = nextSlice;
|
|
80
|
+
callback(nextSlice);
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
//#endregion
|
|
9
85
|
//#region src/services/storage/createLocalStorageAdapter/createLocalStorageAdapter.ts
|
|
10
86
|
/**
|
|
11
87
|
* Creates a localStorage adapter
|
|
@@ -106,79 +182,23 @@ const createStorage = ({ prefix = "", storageAdapter }) => {
|
|
|
106
182
|
};
|
|
107
183
|
|
|
108
184
|
//#endregion
|
|
109
|
-
//#region src/
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
*
|
|
113
|
-
* Source: https://github.com/pmndrs/zustand/blob/main/src/vanilla/shallow.ts
|
|
114
|
-
*/
|
|
115
|
-
const isEqualShallow = (objA, objB) => {
|
|
116
|
-
if (Object.is(objA, objB)) return true;
|
|
117
|
-
if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) return objA === objB;
|
|
118
|
-
if (objA instanceof Map && objB instanceof Map) {
|
|
119
|
-
if (objA.size !== objB.size) return false;
|
|
120
|
-
for (const [key, value] of objA) if (!Object.is(value, objB.get(key))) return false;
|
|
121
|
-
return true;
|
|
122
|
-
}
|
|
123
|
-
if (objA instanceof Set && objB instanceof Set) {
|
|
124
|
-
if (objA.size !== objB.size) return false;
|
|
125
|
-
for (const value of objA) if (!objB.has(value)) return false;
|
|
126
|
-
return true;
|
|
127
|
-
}
|
|
128
|
-
const keysA = Object.keys(objA);
|
|
129
|
-
if (keysA.length !== Object.keys(objB).length) return false;
|
|
130
|
-
for (const keyA of keysA) if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) return false;
|
|
131
|
-
if (objA.constructor !== objB.constructor) return false;
|
|
132
|
-
return true;
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
//#endregion
|
|
136
|
-
//#region src/utils/observable/subscribeWithSelector/subscribeWithSelector.ts
|
|
137
|
-
/**
|
|
138
|
-
* Allows subscribing to a slice of the state.
|
|
139
|
-
* The slice is a computation of the states.
|
|
140
|
-
*
|
|
141
|
-
* The callback will only be called when the slice has changed.
|
|
142
|
-
* Change is determined by shallow comparison.
|
|
143
|
-
*
|
|
144
|
-
* Returns a function to unsubscribe the callback.
|
|
145
|
-
*/
|
|
146
|
-
const subscribeWithSelector = (observable, selector) => (callback) => {
|
|
147
|
-
let lastSlice = selector(observable.get());
|
|
148
|
-
return observable.subscribe((value) => {
|
|
149
|
-
const nextSlice = selector(value);
|
|
150
|
-
if (isEqualShallow(nextSlice, lastSlice)) return;
|
|
151
|
-
lastSlice = nextSlice;
|
|
152
|
-
callback(nextSlice);
|
|
153
|
-
});
|
|
185
|
+
//#region src/services/storage/createStorageKeySchema/createStorageKeySchema.ts
|
|
186
|
+
const createStorageKeySchema = (params) => {
|
|
187
|
+
return params;
|
|
154
188
|
};
|
|
155
189
|
|
|
156
190
|
//#endregion
|
|
157
191
|
//#region src/modules/sessionKeys/generateSessionKeys/generateSessionKeys.ts
|
|
158
192
|
const generateSessionKeys = async (client) => {
|
|
159
|
-
const { private: privateKey, public: publicKey, privateJwk: privateKeyJwk } = await require_InvalidParamError.p256Keygen();
|
|
160
193
|
const core = require_InvalidParamError.getCore(client);
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
publicKey,
|
|
165
|
-
registered: false
|
|
166
|
-
});
|
|
167
|
-
const encodedSessionKeys = require_InvalidParamError.getBuffer().from(stringifiedSessionKeys).toString("base64");
|
|
168
|
-
core.state.set({ sessionKeys: encodedSessionKeys });
|
|
169
|
-
return {
|
|
170
|
-
privateKey,
|
|
171
|
-
privateKeyJwk,
|
|
172
|
-
publicKey
|
|
173
|
-
};
|
|
194
|
+
const publicKey = await core.keychain.generateKey("session");
|
|
195
|
+
core.state.set({ sessionKeys: publicKey });
|
|
196
|
+
return { publicKey };
|
|
174
197
|
};
|
|
175
198
|
|
|
176
199
|
//#endregion
|
|
177
|
-
//#region src/
|
|
178
|
-
const
|
|
179
|
-
const INITIALIZE_STORAGE_SYNC_TRACKER_KEY = "initialize-storage-sync";
|
|
180
|
-
const FETCH_PROJECT_SETTINGS_TRACKER_KEY = "fetch-project-settings";
|
|
181
|
-
const GENERATE_SESSION_KEYS_TRACKER_KEY = "generate-session-keys";
|
|
200
|
+
//#region src/utils/getBuffer/getBuffer.ts
|
|
201
|
+
const getBuffer = () => typeof Buffer !== "undefined" ? Buffer : buffer.Buffer;
|
|
182
202
|
|
|
183
203
|
//#endregion
|
|
184
204
|
//#region src/utils/isServerSideRendering/isServerSideRendering.ts
|
|
@@ -187,6 +207,13 @@ const GENERATE_SESSION_KEYS_TRACKER_KEY = "generate-session-keys";
|
|
|
187
207
|
*/
|
|
188
208
|
const isServerSideRendering = () => typeof window === "undefined";
|
|
189
209
|
|
|
210
|
+
//#endregion
|
|
211
|
+
//#region src/modules/initializeClient/consts.ts
|
|
212
|
+
const REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY = "refresh-user-state-from-cookie";
|
|
213
|
+
const INITIALIZE_STORAGE_SYNC_TRACKER_KEY = "initialize-storage-sync";
|
|
214
|
+
const FETCH_PROJECT_SETTINGS_TRACKER_KEY = "fetch-project-settings";
|
|
215
|
+
const GENERATE_SESSION_KEYS_TRACKER_KEY = "generate-session-keys";
|
|
216
|
+
|
|
190
217
|
//#endregion
|
|
191
218
|
//#region src/utils/deferredPromise/createDeferredPromise.ts
|
|
192
219
|
const createDeferredPromise = () => {
|
|
@@ -311,6 +338,312 @@ const createLogger = (options = {}) => {
|
|
|
311
338
|
};
|
|
312
339
|
};
|
|
313
340
|
|
|
341
|
+
//#endregion
|
|
342
|
+
//#region src/utils/bufferToHex/bufferToHex.ts
|
|
343
|
+
/**
|
|
344
|
+
* Converts an ArrayBuffer or Uint8Array to a hex-encoded string
|
|
345
|
+
*/
|
|
346
|
+
const bufferToHex = (buffer$1) => [...buffer$1 instanceof Uint8Array ? buffer$1 : new Uint8Array(buffer$1)].map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
347
|
+
|
|
348
|
+
//#endregion
|
|
349
|
+
//#region src/utils/compressRawPublicKey/compressRawPublicKey.ts
|
|
350
|
+
/**
|
|
351
|
+
* Accepts a public key array buffer, and returns a buffer with the compressed version of the public key
|
|
352
|
+
*/
|
|
353
|
+
const compressRawPublicKey = (rawPublicKey) => {
|
|
354
|
+
const rawPublicKeyBytes = new Uint8Array(rawPublicKey);
|
|
355
|
+
const len = rawPublicKeyBytes.byteLength;
|
|
356
|
+
const compressedBytes = rawPublicKeyBytes.slice(0, 1 + len >>> 1);
|
|
357
|
+
compressedBytes[0] = 2 | rawPublicKeyBytes[len - 1] & 1;
|
|
358
|
+
return compressedBytes.buffer;
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
//#endregion
|
|
362
|
+
//#region src/services/keychain/createIndexedDBKeychainService/KeyNotFoundError.ts
|
|
363
|
+
var KeyNotFoundError = class extends require_InvalidParamError.BaseError {
|
|
364
|
+
constructor(keyName) {
|
|
365
|
+
super({
|
|
366
|
+
cause: null,
|
|
367
|
+
code: "key_not_found",
|
|
368
|
+
docsUrl: null,
|
|
369
|
+
name: "KeyNotFoundError",
|
|
370
|
+
shortMessage: `Key "${keyName}" not found in keychain`
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
};
|
|
374
|
+
|
|
375
|
+
//#endregion
|
|
376
|
+
//#region src/services/keychain/createIndexedDBKeychainService/utils/constants.ts
|
|
377
|
+
const STORE_NAME = "keys";
|
|
378
|
+
|
|
379
|
+
//#endregion
|
|
380
|
+
//#region src/services/keychain/createIndexedDBKeychainService/utils/deleteIndexedDBItem.ts
|
|
381
|
+
const deleteIndexedDBItem = (db, keyName) => new Promise((resolve, reject) => {
|
|
382
|
+
const request = db.transaction(STORE_NAME, "readwrite").objectStore(STORE_NAME).delete(keyName);
|
|
383
|
+
request.onsuccess = () => resolve();
|
|
384
|
+
request.onerror = () => reject(request.error);
|
|
385
|
+
});
|
|
386
|
+
|
|
387
|
+
//#endregion
|
|
388
|
+
//#region src/services/keychain/createIndexedDBKeychainService/utils/getIndexedDBItem.ts
|
|
389
|
+
const getIndexedDBItem = (db, keyName) => new Promise((resolve, reject) => {
|
|
390
|
+
const request = db.transaction(STORE_NAME, "readonly").objectStore(STORE_NAME).get(keyName);
|
|
391
|
+
request.onsuccess = () => resolve(request.result);
|
|
392
|
+
request.onerror = () => reject(request.error);
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
//#endregion
|
|
396
|
+
//#region src/services/keychain/createIndexedDBKeychainService/utils/openDatabase.ts
|
|
397
|
+
const openDatabase = (dbName) => new Promise((resolve, reject) => {
|
|
398
|
+
const request = indexedDB.open(dbName, 1);
|
|
399
|
+
request.onupgradeneeded = () => {
|
|
400
|
+
const db = request.result;
|
|
401
|
+
if (!db.objectStoreNames.contains(STORE_NAME)) db.createObjectStore(STORE_NAME, { keyPath: "keyName" });
|
|
402
|
+
};
|
|
403
|
+
request.onsuccess = () => resolve(request.result);
|
|
404
|
+
request.onerror = () => reject(request.error);
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
//#endregion
|
|
408
|
+
//#region src/services/keychain/createIndexedDBKeychainService/utils/setIndexedDBItem.ts
|
|
409
|
+
const setIndexedDBItem = (db, entry) => new Promise((resolve, reject) => {
|
|
410
|
+
const request = db.transaction(STORE_NAME, "readwrite").objectStore(STORE_NAME).put(entry);
|
|
411
|
+
request.onsuccess = () => resolve();
|
|
412
|
+
request.onerror = () => reject(request.error);
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
//#endregion
|
|
416
|
+
//#region src/services/keychain/createIndexedDBKeychainService/createIndexedDBKeychainService.ts
|
|
417
|
+
const DEFAULT_DB_NAME = "dynamic_keychain";
|
|
418
|
+
const createIndexedDBKeychainService = (params) => {
|
|
419
|
+
const dbName = params?.dbName ?? DEFAULT_DB_NAME;
|
|
420
|
+
let dbPromise;
|
|
421
|
+
const getDb = () => {
|
|
422
|
+
dbPromise ??= openDatabase(dbName);
|
|
423
|
+
return dbPromise;
|
|
424
|
+
};
|
|
425
|
+
const generateKey = async (keyName) => {
|
|
426
|
+
const keyPair = await crypto.subtle.generateKey({
|
|
427
|
+
name: "ECDSA",
|
|
428
|
+
namedCurve: "P-256"
|
|
429
|
+
}, false, ["sign"]);
|
|
430
|
+
const publicKeyHex = bufferToHex(compressRawPublicKey(await crypto.subtle.exportKey("raw", keyPair.publicKey)));
|
|
431
|
+
await setIndexedDBItem(await getDb(), {
|
|
432
|
+
keyName,
|
|
433
|
+
privateKey: keyPair.privateKey,
|
|
434
|
+
publicKeyHex
|
|
435
|
+
});
|
|
436
|
+
return publicKeyHex;
|
|
437
|
+
};
|
|
438
|
+
const importKey = async (keyName, jwk) => {
|
|
439
|
+
const privateKey = await crypto.subtle.importKey("jwk", jwk, {
|
|
440
|
+
name: "ECDSA",
|
|
441
|
+
namedCurve: "P-256"
|
|
442
|
+
}, false, ["sign"]);
|
|
443
|
+
const publicJwk = {
|
|
444
|
+
crv: jwk.crv,
|
|
445
|
+
kty: jwk.kty,
|
|
446
|
+
x: jwk.x,
|
|
447
|
+
y: jwk.y
|
|
448
|
+
};
|
|
449
|
+
const publicCryptoKey = await crypto.subtle.importKey("jwk", publicJwk, {
|
|
450
|
+
name: "ECDSA",
|
|
451
|
+
namedCurve: "P-256"
|
|
452
|
+
}, true, ["verify"]);
|
|
453
|
+
const publicKeyHex = bufferToHex(compressRawPublicKey(await crypto.subtle.exportKey("raw", publicCryptoKey)));
|
|
454
|
+
await setIndexedDBItem(await getDb(), {
|
|
455
|
+
keyName,
|
|
456
|
+
privateKey,
|
|
457
|
+
publicKeyHex
|
|
458
|
+
});
|
|
459
|
+
return publicKeyHex;
|
|
460
|
+
};
|
|
461
|
+
const getPublicKey = async (keyName) => {
|
|
462
|
+
return (await getIndexedDBItem(await getDb(), keyName))?.publicKeyHex ?? null;
|
|
463
|
+
};
|
|
464
|
+
const sign = async (keyName, message) => {
|
|
465
|
+
const entry = await getIndexedDBItem(await getDb(), keyName);
|
|
466
|
+
if (!entry) throw new KeyNotFoundError(keyName);
|
|
467
|
+
const data = new TextEncoder().encode(message);
|
|
468
|
+
return bufferToHex(await crypto.subtle.sign({
|
|
469
|
+
hash: { name: "SHA-256" },
|
|
470
|
+
name: "ECDSA"
|
|
471
|
+
}, entry.privateKey, data));
|
|
472
|
+
};
|
|
473
|
+
const hasKey = async (keyName) => {
|
|
474
|
+
return await getIndexedDBItem(await getDb(), keyName) !== void 0;
|
|
475
|
+
};
|
|
476
|
+
const removeKey = async (keyName) => {
|
|
477
|
+
await deleteIndexedDBItem(await getDb(), keyName);
|
|
478
|
+
};
|
|
479
|
+
return {
|
|
480
|
+
generateKey,
|
|
481
|
+
getPublicKey,
|
|
482
|
+
hasKey,
|
|
483
|
+
importKey,
|
|
484
|
+
removeKey,
|
|
485
|
+
sign
|
|
486
|
+
};
|
|
487
|
+
};
|
|
488
|
+
|
|
489
|
+
//#endregion
|
|
490
|
+
//#region src/errors/InvalidRealtimePublishError.ts
|
|
491
|
+
var InvalidRealtimePublishError = class extends require_InvalidParamError.BaseError {
|
|
492
|
+
constructor({ channel }) {
|
|
493
|
+
super({
|
|
494
|
+
cause: null,
|
|
495
|
+
code: "invalid_realtime_publish",
|
|
496
|
+
docsUrl: null,
|
|
497
|
+
metaMessages: [`channel: ${channel}`],
|
|
498
|
+
name: "InvalidRealtimePublishError",
|
|
499
|
+
shortMessage: "Tried to publish data that does not match the channel schema"
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
};
|
|
503
|
+
|
|
504
|
+
//#endregion
|
|
505
|
+
//#region src/errors/RealtimeNotConnectedError.ts
|
|
506
|
+
var RealtimeNotConnectedError = class extends require_InvalidParamError.BaseError {
|
|
507
|
+
constructor() {
|
|
508
|
+
super({
|
|
509
|
+
cause: null,
|
|
510
|
+
code: "realtime_not_connected_error",
|
|
511
|
+
docsUrl: null,
|
|
512
|
+
name: "RealtimeNotConnectedError",
|
|
513
|
+
shortMessage: "Realtime service is not connected. Call connect() before subscribing or publishing."
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
//#endregion
|
|
519
|
+
//#region src/services/realtime/createRealtimeService/createRealtimeService.ts
|
|
520
|
+
const ABLY_STATE_TO_REALTIME_STATE = {
|
|
521
|
+
closed: "closed",
|
|
522
|
+
closing: "closing",
|
|
523
|
+
connected: "connected",
|
|
524
|
+
connecting: "connecting",
|
|
525
|
+
disconnected: "disconnected",
|
|
526
|
+
failed: "failed",
|
|
527
|
+
initialized: "idle",
|
|
528
|
+
suspended: "suspended"
|
|
529
|
+
};
|
|
530
|
+
const mapAblyState = (ablyState) => ABLY_STATE_TO_REALTIME_STATE[ablyState] ?? "idle";
|
|
531
|
+
/**
|
|
532
|
+
* Creates a realtime pub/sub service backed by Ably.
|
|
533
|
+
*
|
|
534
|
+
* The service starts idle. Call `connect({ client })` to establish
|
|
535
|
+
* a connection, passing the DynamicClient explicitly.
|
|
536
|
+
*
|
|
537
|
+
* SSR environments receive a no-op implementation.
|
|
538
|
+
*/
|
|
539
|
+
const createRealtimeService = () => {
|
|
540
|
+
if (isServerSideRendering()) return {
|
|
541
|
+
connect: () => Promise.resolve(),
|
|
542
|
+
disconnect: () => {},
|
|
543
|
+
getConnectionState: () => "idle",
|
|
544
|
+
off: () => {},
|
|
545
|
+
on: () => {},
|
|
546
|
+
publish: () => Promise.resolve(),
|
|
547
|
+
subscribe: () => Promise.resolve(),
|
|
548
|
+
unsubscribe: () => {}
|
|
549
|
+
};
|
|
550
|
+
const eventEmitter = new eventemitter3.default();
|
|
551
|
+
const channels = /* @__PURE__ */ new Map();
|
|
552
|
+
const handlerMap = /* @__PURE__ */ new WeakMap();
|
|
553
|
+
let ablyClient;
|
|
554
|
+
let connectionState = "idle";
|
|
555
|
+
let isConnecting = false;
|
|
556
|
+
const setConnectionState = (state) => {
|
|
557
|
+
connectionState = state;
|
|
558
|
+
eventEmitter.emit("connectionStateChange", state);
|
|
559
|
+
};
|
|
560
|
+
const getOrCreateChannel = (channelName) => {
|
|
561
|
+
const existing = channels.get(channelName);
|
|
562
|
+
if (existing) return existing;
|
|
563
|
+
if (!ablyClient) throw new RealtimeNotConnectedError();
|
|
564
|
+
const channel = ablyClient.channels.get(channelName);
|
|
565
|
+
channels.set(channelName, channel);
|
|
566
|
+
return channel;
|
|
567
|
+
};
|
|
568
|
+
const connect = async ({ client }) => {
|
|
569
|
+
if (isConnecting) return;
|
|
570
|
+
isConnecting = true;
|
|
571
|
+
try {
|
|
572
|
+
const core = require_InvalidParamError.getCore(client);
|
|
573
|
+
if (ablyClient) {
|
|
574
|
+
ablyClient.close();
|
|
575
|
+
channels.clear();
|
|
576
|
+
}
|
|
577
|
+
const { BaseRealtime: AblyBaseRealtime, FetchRequest, WebSocketTransport } = await import("ably/modular");
|
|
578
|
+
ablyClient = new AblyBaseRealtime({
|
|
579
|
+
authCallback: (_tokenParams, callback) => {
|
|
580
|
+
require_InvalidParamError.createApiClient({}, client).getRealtimeAuthToken({ environmentId: core.environmentId }).then((response) => {
|
|
581
|
+
callback(null, response.token);
|
|
582
|
+
}).catch((err) => {
|
|
583
|
+
callback(err instanceof Error ? err.message : String(err), null);
|
|
584
|
+
});
|
|
585
|
+
},
|
|
586
|
+
autoConnect: false,
|
|
587
|
+
plugins: {
|
|
588
|
+
FetchRequest,
|
|
589
|
+
WebSocketTransport
|
|
590
|
+
}
|
|
591
|
+
});
|
|
592
|
+
ablyClient.connection.on((stateChange) => {
|
|
593
|
+
setConnectionState(mapAblyState(stateChange.current));
|
|
594
|
+
});
|
|
595
|
+
ablyClient.connect();
|
|
596
|
+
} finally {
|
|
597
|
+
isConnecting = false;
|
|
598
|
+
}
|
|
599
|
+
};
|
|
600
|
+
const disconnect = () => {
|
|
601
|
+
if (!ablyClient) return;
|
|
602
|
+
for (const channel of channels.values()) channel.detach().catch(() => {});
|
|
603
|
+
channels.clear();
|
|
604
|
+
ablyClient.close();
|
|
605
|
+
ablyClient = void 0;
|
|
606
|
+
};
|
|
607
|
+
const subscribe = async ({ channelSchema, callback }) => {
|
|
608
|
+
const channel = getOrCreateChannel(channelSchema.channel);
|
|
609
|
+
const handler = (message) => {
|
|
610
|
+
const parsed = channelSchema.schema.safeParse(message.data);
|
|
611
|
+
if (!parsed.success) return;
|
|
612
|
+
callback({ data: parsed.data });
|
|
613
|
+
};
|
|
614
|
+
handlerMap.set(callback, handler);
|
|
615
|
+
await channel.subscribe(handler);
|
|
616
|
+
};
|
|
617
|
+
const unsubscribe = ({ channelSchema, callback }) => {
|
|
618
|
+
const channel = channels.get(channelSchema.channel);
|
|
619
|
+
if (!channel) return;
|
|
620
|
+
const handler = handlerMap.get(callback);
|
|
621
|
+
if (handler) {
|
|
622
|
+
channel.unsubscribe(handler);
|
|
623
|
+
handlerMap.delete(callback);
|
|
624
|
+
}
|
|
625
|
+
};
|
|
626
|
+
const publish = async ({ channelSchema, data }) => {
|
|
627
|
+
const parsed = channelSchema.schema.safeParse(data);
|
|
628
|
+
if (!parsed.success) throw new InvalidRealtimePublishError({ channel: channelSchema.channel });
|
|
629
|
+
await getOrCreateChannel(channelSchema.channel).publish("message", parsed.data);
|
|
630
|
+
};
|
|
631
|
+
return {
|
|
632
|
+
connect,
|
|
633
|
+
disconnect,
|
|
634
|
+
getConnectionState: () => connectionState,
|
|
635
|
+
off: (event, callback) => {
|
|
636
|
+
eventEmitter.off(event, callback);
|
|
637
|
+
},
|
|
638
|
+
on: (event, callback) => {
|
|
639
|
+
eventEmitter.on(event, callback);
|
|
640
|
+
},
|
|
641
|
+
publish,
|
|
642
|
+
subscribe,
|
|
643
|
+
unsubscribe
|
|
644
|
+
};
|
|
645
|
+
};
|
|
646
|
+
|
|
314
647
|
//#endregion
|
|
315
648
|
//#region src/errors/NoNetworkProvidersError.ts
|
|
316
649
|
var NoNetworkProvidersError = class extends require_InvalidParamError.BaseError {
|
|
@@ -700,6 +1033,12 @@ Object.defineProperty(exports, 'WalletAlreadyLinkedToAnotherUserError', {
|
|
|
700
1033
|
return WalletAlreadyLinkedToAnotherUserError;
|
|
701
1034
|
}
|
|
702
1035
|
});
|
|
1036
|
+
Object.defineProperty(exports, '__toESM', {
|
|
1037
|
+
enumerable: true,
|
|
1038
|
+
get: function () {
|
|
1039
|
+
return __toESM;
|
|
1040
|
+
}
|
|
1041
|
+
});
|
|
703
1042
|
Object.defineProperty(exports, 'consumeCaptchaToken', {
|
|
704
1043
|
enumerable: true,
|
|
705
1044
|
get: function () {
|
|
@@ -718,6 +1057,12 @@ Object.defineProperty(exports, 'createDeferredPromise', {
|
|
|
718
1057
|
return createDeferredPromise;
|
|
719
1058
|
}
|
|
720
1059
|
});
|
|
1060
|
+
Object.defineProperty(exports, 'createIndexedDBKeychainService', {
|
|
1061
|
+
enumerable: true,
|
|
1062
|
+
get: function () {
|
|
1063
|
+
return createIndexedDBKeychainService;
|
|
1064
|
+
}
|
|
1065
|
+
});
|
|
721
1066
|
Object.defineProperty(exports, 'createLocalStorageAdapter', {
|
|
722
1067
|
enumerable: true,
|
|
723
1068
|
get: function () {
|
|
@@ -730,6 +1075,12 @@ Object.defineProperty(exports, 'createLogger', {
|
|
|
730
1075
|
return createLogger;
|
|
731
1076
|
}
|
|
732
1077
|
});
|
|
1078
|
+
Object.defineProperty(exports, 'createRealtimeService', {
|
|
1079
|
+
enumerable: true,
|
|
1080
|
+
get: function () {
|
|
1081
|
+
return createRealtimeService;
|
|
1082
|
+
}
|
|
1083
|
+
});
|
|
733
1084
|
Object.defineProperty(exports, 'createSignInMessageStatement', {
|
|
734
1085
|
enumerable: true,
|
|
735
1086
|
get: function () {
|
|
@@ -742,6 +1093,12 @@ Object.defineProperty(exports, 'createStorage', {
|
|
|
742
1093
|
return createStorage;
|
|
743
1094
|
}
|
|
744
1095
|
});
|
|
1096
|
+
Object.defineProperty(exports, 'createStorageKeySchema', {
|
|
1097
|
+
enumerable: true,
|
|
1098
|
+
get: function () {
|
|
1099
|
+
return createStorageKeySchema;
|
|
1100
|
+
}
|
|
1101
|
+
});
|
|
745
1102
|
Object.defineProperty(exports, 'createVisit', {
|
|
746
1103
|
enumerable: true,
|
|
747
1104
|
get: function () {
|
|
@@ -760,6 +1117,12 @@ Object.defineProperty(exports, 'generateSessionKeys', {
|
|
|
760
1117
|
return generateSessionKeys;
|
|
761
1118
|
}
|
|
762
1119
|
});
|
|
1120
|
+
Object.defineProperty(exports, 'getBuffer', {
|
|
1121
|
+
enumerable: true,
|
|
1122
|
+
get: function () {
|
|
1123
|
+
return getBuffer;
|
|
1124
|
+
}
|
|
1125
|
+
});
|
|
763
1126
|
Object.defineProperty(exports, 'getNetworkProviderBuilderRegistry', {
|
|
764
1127
|
enumerable: true,
|
|
765
1128
|
get: function () {
|
|
@@ -844,4 +1207,4 @@ Object.defineProperty(exports, 'verifyMessageSignatureOwnership', {
|
|
|
844
1207
|
return verifyMessageSignatureOwnership;
|
|
845
1208
|
}
|
|
846
1209
|
});
|
|
847
|
-
//# sourceMappingURL=getNetworkProviderFromNetworkId-
|
|
1210
|
+
//# sourceMappingURL=getNetworkProviderFromNetworkId-DK9fnM_Y.cjs.js.map
|