@dynamic-labs-sdk/client 0.14.0 → 0.16.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 (147) hide show
  1. package/dist/{InvalidParamError-DQn49mNB.esm.js → InvalidParamError-Cty-xWsw.esm.js} +268 -10
  2. package/dist/InvalidParamError-Cty-xWsw.esm.js.map +1 -0
  3. package/dist/{InvalidParamError-DVzrk97b.cjs.js → InvalidParamError-DO9X0rAe.cjs.js} +360 -9
  4. package/dist/InvalidParamError-DO9X0rAe.cjs.js.map +1 -0
  5. package/dist/{NotWaasWalletAccountError-IxbdRVGy.cjs.js → NotWaasWalletAccountError-Bj3-tWL3.cjs.js} +3 -3
  6. package/dist/{NotWaasWalletAccountError-IxbdRVGy.cjs.js.map → NotWaasWalletAccountError-Bj3-tWL3.cjs.js.map} +1 -1
  7. package/dist/{NotWaasWalletAccountError-D0BXVuKy.esm.js → NotWaasWalletAccountError-x0HlFCot.esm.js} +3 -3
  8. package/dist/{NotWaasWalletAccountError-D0BXVuKy.esm.js.map → NotWaasWalletAccountError-x0HlFCot.esm.js.map} +1 -1
  9. package/dist/client/core/createCore/getInitialState.d.ts.map +1 -1
  10. package/dist/core.cjs.js +34 -65
  11. package/dist/core.cjs.js.map +1 -1
  12. package/dist/core.esm.js +24 -60
  13. package/dist/core.esm.js.map +1 -1
  14. package/dist/errors/DeeplinkConnectAndVerifyUnsupportedError.d.ts +9 -0
  15. package/dist/errors/DeeplinkConnectAndVerifyUnsupportedError.d.ts.map +1 -0
  16. package/dist/errors/UnauthorizedError.d.ts +5 -0
  17. package/dist/errors/UnauthorizedError.d.ts.map +1 -0
  18. package/dist/exports/core.d.ts +11 -1
  19. package/dist/exports/core.d.ts.map +1 -1
  20. package/dist/exports/index.d.ts +13 -2
  21. package/dist/exports/index.d.ts.map +1 -1
  22. package/dist/{getNetworkProviderFromNetworkId-z8WEapnj.cjs.js → getNetworkProviderFromNetworkId-B2NiAPL7.cjs.js} +66 -148
  23. package/dist/getNetworkProviderFromNetworkId-B2NiAPL7.cjs.js.map +1 -0
  24. package/dist/{getNetworkProviderFromNetworkId-DMMnYrfG.esm.js → getNetworkProviderFromNetworkId-DKM-ec3L.esm.js} +59 -96
  25. package/dist/getNetworkProviderFromNetworkId-DKM-ec3L.esm.js.map +1 -0
  26. package/dist/{getSignedSessionId-BdGOv_TA.cjs.js → getSignedSessionId-BQb75faX.cjs.js} +5 -24
  27. package/dist/getSignedSessionId-BQb75faX.cjs.js.map +1 -0
  28. package/dist/{getSignedSessionId-BKKO2mqj.esm.js → getSignedSessionId-DczIbYxd.esm.js} +4 -17
  29. package/dist/getSignedSessionId-DczIbYxd.esm.js.map +1 -0
  30. package/dist/{getVerifiedCredentialForWalletAccount-Ck7DNGPJ.cjs.js → getVerifiedCredentialForWalletAccount-CTL5-19B.cjs.js} +2 -3
  31. package/dist/{getVerifiedCredentialForWalletAccount-Ck7DNGPJ.cjs.js.map → getVerifiedCredentialForWalletAccount-CTL5-19B.cjs.js.map} +1 -1
  32. package/dist/{getVerifiedCredentialForWalletAccount-DQ7g6O7y.esm.js → getVerifiedCredentialForWalletAccount-CpUomVzT.esm.js} +2 -2
  33. package/dist/{getVerifiedCredentialForWalletAccount-DQ7g6O7y.esm.js.map → getVerifiedCredentialForWalletAccount-CpUomVzT.esm.js.map} +1 -1
  34. package/dist/index.cjs.js +333 -87
  35. package/dist/index.cjs.js.map +1 -1
  36. package/dist/index.esm.js +315 -78
  37. package/dist/index.esm.js.map +1 -1
  38. package/dist/{isMfaRequiredForAction-BINs954q.cjs.js → isMfaRequiredForAction-DyrKyoVd.cjs.js} +2 -15
  39. package/dist/isMfaRequiredForAction-DyrKyoVd.cjs.js.map +1 -0
  40. package/dist/{isMfaRequiredForAction-MvVGc7k3.esm.js → isMfaRequiredForAction-Hi4dCidj.esm.js} +3 -10
  41. package/dist/isMfaRequiredForAction-Hi4dCidj.esm.js.map +1 -0
  42. package/dist/modules/apiClient/createApiClient.d.ts.map +1 -1
  43. package/dist/modules/apiClient/utils/deviceSignatureHeadersMiddleware/createDeviceSignatureHeadersMiddleware.d.ts +4 -0
  44. package/dist/modules/apiClient/utils/deviceSignatureHeadersMiddleware/createDeviceSignatureHeadersMiddleware.d.ts.map +1 -0
  45. package/dist/modules/apiClient/utils/deviceSignatureHeadersMiddleware/index.d.ts +2 -0
  46. package/dist/modules/apiClient/utils/deviceSignatureHeadersMiddleware/index.d.ts.map +1 -0
  47. package/dist/modules/apiClient/utils/unauthorizedMiddleware/createUnauthorizedMiddleware.d.ts +3 -0
  48. package/dist/modules/apiClient/utils/unauthorizedMiddleware/createUnauthorizedMiddleware.d.ts.map +1 -0
  49. package/dist/modules/checkout/attachCheckoutTransactionSource/attachCheckoutTransactionSource.d.ts +3 -1
  50. package/dist/modules/checkout/attachCheckoutTransactionSource/attachCheckoutTransactionSource.d.ts.map +1 -1
  51. package/dist/modules/checkout/createCheckoutTransaction/createCheckoutTransaction.d.ts +1 -1
  52. package/dist/modules/checkout/createCheckoutTransaction/createCheckoutTransaction.d.ts.map +1 -1
  53. package/dist/modules/checkout/getCheckoutTransactionQuote/getCheckoutTransactionQuote.d.ts +1 -2
  54. package/dist/modules/checkout/getCheckoutTransactionQuote/getCheckoutTransactionQuote.d.ts.map +1 -1
  55. package/dist/modules/checkout/getCheckouts/getCheckouts.d.ts +4 -0
  56. package/dist/modules/checkout/getCheckouts/getCheckouts.d.ts.map +1 -0
  57. package/dist/modules/checkout/getCheckouts/index.d.ts +2 -0
  58. package/dist/modules/checkout/getCheckouts/index.d.ts.map +1 -0
  59. package/dist/modules/checkout/submitCheckoutTransaction/index.d.ts +3 -0
  60. package/dist/modules/checkout/submitCheckoutTransaction/index.d.ts.map +1 -0
  61. package/dist/modules/checkout/submitCheckoutTransaction/submitCheckoutTransaction.d.ts +22 -0
  62. package/dist/modules/checkout/submitCheckoutTransaction/submitCheckoutTransaction.d.ts.map +1 -0
  63. package/dist/modules/deviceRegistration/getDeviceSigner/getDeviceSigner.d.ts.map +1 -1
  64. package/dist/modules/deviceRegistration/getDeviceSigner/{getOrCreateUserDeviceSigningKeys/getOrCreateUserDeviceSigningKeys.d.ts → getOrCreateEnvironmentDeviceSigningKeys/getOrCreateEnvironmentDeviceSigningKeys.d.ts} +2 -2
  65. package/dist/modules/deviceRegistration/getDeviceSigner/getOrCreateEnvironmentDeviceSigningKeys/getOrCreateEnvironmentDeviceSigningKeys.d.ts.map +1 -0
  66. package/dist/modules/deviceRegistration/getDeviceSigner/getOrCreateEnvironmentDeviceSigningKeys/index.d.ts +2 -0
  67. package/dist/modules/deviceRegistration/getDeviceSigner/getOrCreateEnvironmentDeviceSigningKeys/index.d.ts.map +1 -0
  68. package/dist/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/getHeadersForNonceSignedByDeviceSigners.d.ts +3 -0
  69. package/dist/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/getHeadersForNonceSignedByDeviceSigners.d.ts.map +1 -0
  70. package/dist/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/index.d.ts +2 -0
  71. package/dist/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/index.d.ts.map +1 -0
  72. package/dist/modules/deviceRegistration/getRegisteredDevices/getRegisteredDevices.d.ts +3 -0
  73. package/dist/modules/deviceRegistration/getRegisteredDevices/getRegisteredDevices.d.ts.map +1 -0
  74. package/dist/modules/deviceRegistration/getRegisteredDevices/index.d.ts +2 -0
  75. package/dist/modules/deviceRegistration/getRegisteredDevices/index.d.ts.map +1 -0
  76. package/dist/modules/deviceRegistration/revokeAllRegisteredDevices/index.d.ts +2 -0
  77. package/dist/modules/deviceRegistration/revokeAllRegisteredDevices/index.d.ts.map +1 -0
  78. package/dist/modules/deviceRegistration/revokeAllRegisteredDevices/revokeAllRegisteredDevices.d.ts +2 -0
  79. package/dist/modules/deviceRegistration/revokeAllRegisteredDevices/revokeAllRegisteredDevices.d.ts.map +1 -0
  80. package/dist/modules/deviceRegistration/revokeRegisteredDevice/index.d.ts +2 -0
  81. package/dist/modules/deviceRegistration/revokeRegisteredDevice/index.d.ts.map +1 -0
  82. package/dist/modules/deviceRegistration/revokeRegisteredDevice/revokeRegisteredDevice.d.ts +6 -0
  83. package/dist/modules/deviceRegistration/revokeRegisteredDevice/revokeRegisteredDevice.d.ts.map +1 -0
  84. package/dist/modules/initializeClient/initializeClient.d.ts.map +1 -1
  85. package/dist/modules/storageSync/hydrateStateWithStorage/hydrateStateWithStorage.d.ts.map +1 -1
  86. package/dist/modules/storageSync/schema.d.ts +2 -0
  87. package/dist/modules/storageSync/schema.d.ts.map +1 -1
  88. package/dist/modules/storageSync/syncStateWithStorage/syncStateWithStorage.d.ts.map +1 -1
  89. package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
  90. package/dist/modules/waas/waas.types.d.ts +1 -0
  91. package/dist/modules/waas/waas.types.d.ts.map +1 -1
  92. package/dist/modules/wallets/connectAndVerifyWithWalletProvider/connectAndVerifyWithWalletProvider.d.ts +10 -0
  93. package/dist/modules/wallets/connectAndVerifyWithWalletProvider/connectAndVerifyWithWalletProvider.d.ts.map +1 -1
  94. package/dist/modules/wallets/transferAmount/index.d.ts +2 -0
  95. package/dist/modules/wallets/transferAmount/index.d.ts.map +1 -0
  96. package/dist/modules/wallets/transferAmount/transferAmount.d.ts +19 -0
  97. package/dist/modules/wallets/transferAmount/transferAmount.d.ts.map +1 -0
  98. package/dist/modules/wallets/walletProvider/index.d.ts +1 -1
  99. package/dist/modules/wallets/walletProvider/index.d.ts.map +1 -1
  100. package/dist/modules/wallets/walletProvider/isDeeplinkWalletProvider/index.d.ts +2 -0
  101. package/dist/modules/wallets/walletProvider/isDeeplinkWalletProvider/index.d.ts.map +1 -0
  102. package/dist/modules/wallets/walletProvider/isDeeplinkWalletProvider/isDeeplinkWalletProvider.d.ts +10 -0
  103. package/dist/modules/wallets/walletProvider/isDeeplinkWalletProvider/isDeeplinkWalletProvider.d.ts.map +1 -0
  104. package/dist/modules/wallets/walletProvider/walletProvider.types.d.ts +17 -0
  105. package/dist/modules/wallets/walletProvider/walletProvider.types.d.ts.map +1 -1
  106. package/dist/services/openDeeplink/createWebDeeplinkOpener/createWebDeeplinkOpener.d.ts +11 -1
  107. package/dist/services/openDeeplink/createWebDeeplinkOpener/createWebDeeplinkOpener.d.ts.map +1 -1
  108. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  109. package/dist/utils/getNonce/constants.d.ts +3 -0
  110. package/dist/utils/getNonce/constants.d.ts.map +1 -0
  111. package/dist/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.d.ts +13 -0
  112. package/dist/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.d.ts.map +1 -0
  113. package/dist/utils/getNonce/fetchAndStoreNonces/index.d.ts +2 -0
  114. package/dist/utils/getNonce/fetchAndStoreNonces/index.d.ts.map +1 -0
  115. package/dist/utils/getNonce/getNonce.d.ts +7 -0
  116. package/dist/utils/getNonce/getNonce.d.ts.map +1 -1
  117. package/dist/utils/getNonce/prefetchNoncesIfNeeded/prefetchNoncesIfNeeded.d.ts +3 -0
  118. package/dist/utils/getNonce/prefetchNoncesIfNeeded/prefetchNoncesIfNeeded.d.ts.map +1 -0
  119. package/dist/utils/getNonce/state.d.ts +15 -0
  120. package/dist/utils/getNonce/state.d.ts.map +1 -0
  121. package/dist/utils/parseAmountToSmallestUnit/index.d.ts +2 -0
  122. package/dist/utils/parseAmountToSmallestUnit/index.d.ts.map +1 -0
  123. package/dist/utils/parseAmountToSmallestUnit/parseAmountToSmallestUnit.d.ts +22 -0
  124. package/dist/utils/parseAmountToSmallestUnit/parseAmountToSmallestUnit.d.ts.map +1 -0
  125. package/dist/utils/parseUserAgent/index.d.ts +2 -0
  126. package/dist/utils/parseUserAgent/index.d.ts.map +1 -0
  127. package/dist/utils/parseUserAgent/parseUserAgent.d.ts +10 -0
  128. package/dist/utils/parseUserAgent/parseUserAgent.d.ts.map +1 -0
  129. package/dist/utils/randomString/randomString.d.ts +6 -1
  130. package/dist/utils/randomString/randomString.d.ts.map +1 -1
  131. package/dist/waas.cjs.js +3 -4
  132. package/dist/waas.cjs.js.map +1 -1
  133. package/dist/waas.esm.js +3 -3
  134. package/dist/waasCore.cjs.js +5 -5
  135. package/dist/waasCore.cjs.js.map +1 -1
  136. package/dist/waasCore.esm.js +5 -4
  137. package/dist/waasCore.esm.js.map +1 -1
  138. package/package.json +4 -3
  139. package/dist/InvalidParamError-DQn49mNB.esm.js.map +0 -1
  140. package/dist/InvalidParamError-DVzrk97b.cjs.js.map +0 -1
  141. package/dist/getNetworkProviderFromNetworkId-DMMnYrfG.esm.js.map +0 -1
  142. package/dist/getNetworkProviderFromNetworkId-z8WEapnj.cjs.js.map +0 -1
  143. package/dist/getSignedSessionId-BKKO2mqj.esm.js.map +0 -1
  144. package/dist/getSignedSessionId-BdGOv_TA.cjs.js.map +0 -1
  145. package/dist/isMfaRequiredForAction-BINs954q.cjs.js.map +0 -1
  146. package/dist/isMfaRequiredForAction-MvVGc7k3.esm.js.map +0 -1
  147. package/dist/modules/deviceRegistration/getDeviceSigner/getOrCreateUserDeviceSigningKeys/getOrCreateUserDeviceSigningKeys.d.ts.map +0 -1
@@ -1,15 +1,44 @@
1
- const require_getNetworkProviderFromNetworkId = require('./getNetworkProviderFromNetworkId-z8WEapnj.cjs.js');
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
2
28
  let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
3
29
  let buffer = require("buffer");
30
+ let zod_mini = require("zod/mini");
31
+ zod_mini = __toESM(zod_mini);
4
32
 
5
33
  //#region package.json
6
34
  var name = "@dynamic-labs-sdk/client";
7
- var version = "0.14.0";
35
+ var version = "0.16.0";
8
36
  var dependencies = {
9
37
  "@dynamic-labs-sdk/assert-package-version": "workspace:*",
10
38
  "@dynamic-labs-wallet/browser-wallet-client": "0.0.286",
11
- "@dynamic-labs/sdk-api-core": "0.0.881",
39
+ "@dynamic-labs/sdk-api-core": "0.0.895",
12
40
  "@simplewebauthn/browser": "13.1.0",
41
+ "ably": "2.17.1",
13
42
  "buffer": "6.0.3",
14
43
  "eventemitter3": "5.0.1",
15
44
  "zod": "4.0.5"
@@ -113,6 +142,11 @@ const setDefaultClient = (client) => {
113
142
  numOfInitializedClients++;
114
143
  };
115
144
 
145
+ //#endregion
146
+ //#region src/utils/getNonce/constants.ts
147
+ const NONCE_POOL_EXPIRATION_TIME = 6e4 * 60 * 24;
148
+ const NONCE_POOL_SIZE = 5;
149
+
116
150
  //#endregion
117
151
  //#region src/modules/apiClient/constants.ts
118
152
  const DYNAMIC_API_VERSION_HEADER = "x-dyn-api-version";
@@ -125,10 +159,12 @@ const CLIENT_SDK_NAME = "ClientSDK";
125
159
 
126
160
  //#endregion
127
161
  //#region src/utils/randomString/randomString.ts
128
- const randomString = (length) => {
129
- const CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
162
+ const DEFAULT_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
163
+ const randomString = ({ chars = DEFAULT_CHARS, length }) => {
164
+ const bytes = new Uint8Array(length);
165
+ crypto.getRandomValues(bytes);
130
166
  let result = "";
131
- for (let i = length; i > 0; --i) result += CHARS[Math.floor(Math.random() * 64)];
167
+ for (let i = 0; i < length; i++) result += chars[bytes[i] % chars.length];
132
168
  return result;
133
169
  };
134
170
 
@@ -356,6 +392,226 @@ const createConvertToApiErrorMiddleware = ({ errorMappers = [] }) => ({ post: as
356
392
  return context.response;
357
393
  } });
358
394
 
395
+ //#endregion
396
+ //#region src/utils/getNonce/getNonce.ts
397
+ /**
398
+ * Returns a nonce for wallet ownership verification.
399
+ *
400
+ * Pops the first nonce from the prefetched pool. When the pool is running low
401
+ * (≤1 remaining after pop) a background refetch is triggered. If the pool is
402
+ * empty, nonces are fetched on-demand before returning.
403
+ */
404
+ const getNonce = async (client) => {
405
+ const core = getCore(client);
406
+ const pool = core.state.get().prefetchedNonces;
407
+ if (pool.length > 0) {
408
+ const [nonce, ...remaining] = pool;
409
+ core.state.set({ prefetchedNonces: remaining });
410
+ if (remaining.length <= 1) fetchAndStoreNonces(client);
411
+ return nonce;
412
+ }
413
+ await fetchAndStoreNonces(client);
414
+ return getNonce(client);
415
+ };
416
+
417
+ //#endregion
418
+ //#region src/utils/bufferToHex/bufferToHex.ts
419
+ /**
420
+ * Converts an ArrayBuffer or Uint8Array to a hex-encoded string
421
+ */
422
+ const bufferToHex = (buffer$1) => [...buffer$1 instanceof Uint8Array ? buffer$1 : new Uint8Array(buffer$1)].map((x) => x.toString(16).padStart(2, "0")).join("");
423
+
424
+ //#endregion
425
+ //#region src/utils/p256Sign/p256Sign.ts
426
+ const p256Sign = async ({ privateKeyJwk, message }) => {
427
+ const privateKey = await crypto.subtle.importKey("jwk", privateKeyJwk, {
428
+ name: "ECDSA",
429
+ namedCurve: "P-256"
430
+ }, false, ["sign"]);
431
+ return bufferToHex(await crypto.subtle.sign({
432
+ hash: "SHA-256",
433
+ name: "ECDSA"
434
+ }, privateKey, new TextEncoder().encode(message)));
435
+ };
436
+
437
+ //#endregion
438
+ //#region src/services/storage/createStorageKeySchema/createStorageKeySchema.ts
439
+ const createStorageKeySchema = (params) => {
440
+ return params;
441
+ };
442
+
443
+ //#endregion
444
+ //#region src/utils/base64UrlDecode/base64UrlDecode.ts
445
+ /**
446
+ * Takes a base64url-encoded string (e.g. "nMueRPiAm51YXEjRtka8S_8Ura3HaqbmqDqMJCZmvkM")
447
+ * and return the corresponding bytes, as an array buffer.
448
+ */
449
+ const base64UrlDecode = (s) => {
450
+ s = s?.replace(/-/g, "+").replace(/_/g, "/") || "";
451
+ return Uint8Array.from(atob(s), (c) => c.charCodeAt(0));
452
+ };
453
+
454
+ //#endregion
455
+ //#region src/utils/compressRawPublicKey/compressRawPublicKey.ts
456
+ /**
457
+ * Accepts a public key array buffer, and returns a buffer with the compressed version of the public key
458
+ */
459
+ const compressRawPublicKey = (rawPublicKey) => {
460
+ const rawPublicKeyBytes = new Uint8Array(rawPublicKey);
461
+ const len = rawPublicKeyBytes.byteLength;
462
+ const compressedBytes = rawPublicKeyBytes.slice(0, 1 + len >>> 1);
463
+ compressedBytes[0] = 2 | rawPublicKeyBytes[len - 1] & 1;
464
+ return compressedBytes.buffer;
465
+ };
466
+
467
+ //#endregion
468
+ //#region src/utils/p256Keygen/p256Keygen.ts
469
+ const p256Keygen = async () => {
470
+ const p256Keypair = await crypto.subtle.generateKey({
471
+ name: "ECDSA",
472
+ namedCurve: "P-256"
473
+ }, true, ["sign", "verify"]);
474
+ const rawPublicKey = await crypto.subtle.exportKey("raw", p256Keypair.publicKey);
475
+ const privateKeyJwk = await crypto.subtle.exportKey("jwk", p256Keypair.privateKey);
476
+ const compressedPublicKeyBuffer = compressRawPublicKey(rawPublicKey);
477
+ return {
478
+ private: bufferToHex(base64UrlDecode(privateKeyJwk.d)),
479
+ privateJwk: privateKeyJwk,
480
+ public: bufferToHex(compressedPublicKeyBuffer)
481
+ };
482
+ };
483
+
484
+ //#endregion
485
+ //#region src/modules/deviceRegistration/getDeviceSigner/deviceSigningKeys.schema.ts
486
+ const deviceSigningKeysSchema = zod_mini.object({
487
+ privateJwk: zod_mini.custom(),
488
+ privateKey: zod_mini.string(),
489
+ publicKey: zod_mini.string()
490
+ });
491
+
492
+ //#endregion
493
+ //#region src/modules/deviceRegistration/getDeviceSigner/getOrCreateEnvironmentDeviceSigningKeys/getOrCreateEnvironmentDeviceSigningKeys.ts
494
+ /**
495
+ * On web we want to auto create the device signing keys for each user.
496
+ * And the user device signing keys should never be deleted.
497
+ */
498
+ const getOrCreateEnvironmentDeviceSigningKeys = async (client) => {
499
+ const { storage, environmentId } = getCore(client);
500
+ assertDefined(environmentId, "Environment ID is required");
501
+ const environmentDeviceSigningKeysStorageKeySchema = createStorageKeySchema({
502
+ key: `user_device_signing_keys_${environmentId}`,
503
+ schema: deviceSigningKeysSchema
504
+ });
505
+ const deviceSigningKeys = await storage.getItem(environmentDeviceSigningKeysStorageKeySchema);
506
+ if (deviceSigningKeys) return deviceSigningKeys;
507
+ const { public: publicKey, private: privateKey, privateJwk } = await p256Keygen();
508
+ await storage.setItem(environmentDeviceSigningKeysStorageKeySchema, {
509
+ privateJwk,
510
+ privateKey,
511
+ publicKey
512
+ });
513
+ return {
514
+ privateJwk,
515
+ privateKey,
516
+ publicKey
517
+ };
518
+ };
519
+
520
+ //#endregion
521
+ //#region src/modules/deviceRegistration/getDeviceSigner/getDeviceSigner.ts
522
+ const getDeviceSigner = async (client) => {
523
+ const { deviceSigner } = getCore(client);
524
+ /**
525
+ * If the device signer is available, it should handle the device signing
526
+ * This is used for mobile devices with secure enclave.
527
+ */
528
+ if (deviceSigner) return deviceSigner;
529
+ /**
530
+ * For web devices we want to auto create one PK per user id.
531
+ */
532
+ const environmentDeviceSigningKeys = await getOrCreateEnvironmentDeviceSigningKeys(client);
533
+ return {
534
+ getPublicKey: async () => environmentDeviceSigningKeys.publicKey,
535
+ sign: (payload) => p256Sign({
536
+ message: payload,
537
+ privateKeyJwk: environmentDeviceSigningKeys.privateJwk
538
+ })
539
+ };
540
+ };
541
+
542
+ //#endregion
543
+ //#region src/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/getHeadersForNonceSignedByDeviceSigners.ts
544
+ const getHeadersForNonceSignedByDeviceSigners = async (client) => {
545
+ const { projectSettings } = client;
546
+ assertDefined(projectSettings, "Project settings not found");
547
+ /**
548
+ * For cookie based environments, the device registration is handled
549
+ * by settings the cookie in the browser.
550
+ * Then we dont need to provide the headers
551
+ */
552
+ if (isCookieEnabled(client)) return {};
553
+ const deviceSigner = await getDeviceSigner(client);
554
+ const nonce = await getNonce(client);
555
+ const signedNonce = await deviceSigner.sign(nonce);
556
+ const publicKey = await deviceSigner.getPublicKey();
557
+ return {
558
+ "x-dynamic-device-nonce": nonce,
559
+ "x-dynamic-device-publickey": publicKey,
560
+ "x-dynamic-device-signed-nonce": signedNonce
561
+ };
562
+ };
563
+
564
+ //#endregion
565
+ //#region src/modules/apiClient/utils/deviceSignatureHeadersMiddleware/createDeviceSignatureHeadersMiddleware.ts
566
+ const createDeviceSignatureHeadersMiddleware = (client) => {
567
+ return { pre: async (context) => {
568
+ /**
569
+ * The signed nonce is not required for cookie based environments.
570
+ */
571
+ if ((0, _dynamic_labs_sdk_api_core.isDeviceNonceSignatureRequiredForUrl)(context.url) && !isCookieEnabled(client)) {
572
+ const deviceSignerHeaders = await getHeadersForNonceSignedByDeviceSigners(client);
573
+ return {
574
+ init: {
575
+ ...context.init,
576
+ headers: {
577
+ ...context.init.headers,
578
+ ...deviceSignerHeaders
579
+ }
580
+ },
581
+ url: context.url
582
+ };
583
+ }
584
+ } };
585
+ };
586
+
587
+ //#endregion
588
+ //#region src/errors/UnauthorizedError.ts
589
+ var UnauthorizedError = class extends BaseError {
590
+ constructor({ cause }) {
591
+ super({
592
+ cause,
593
+ code: "unauthorized_error",
594
+ docsUrl: null,
595
+ name: "UnauthorizedError",
596
+ shortMessage: "Unauthorized"
597
+ });
598
+ }
599
+ };
600
+
601
+ //#endregion
602
+ //#region src/modules/apiClient/utils/unauthorizedMiddleware/createUnauthorizedMiddleware.ts
603
+ const createUnauthorizedMiddleware = () => ({ post: async (context) => {
604
+ if (context.response.status === 401) {
605
+ let cause = null;
606
+ try {
607
+ const errorBody = await context.response.clone().json();
608
+ if (errorBody && "error" in errorBody && typeof errorBody.error === "string") cause = new Error(errorBody.error);
609
+ } catch {}
610
+ throw new UnauthorizedError({ cause });
611
+ }
612
+ return context.response;
613
+ } });
614
+
359
615
  //#endregion
360
616
  //#region src/modules/apiClient/createApiClient.ts
361
617
  /**
@@ -371,7 +627,7 @@ const createApiClient = (options = {}, client) => {
371
627
  headers: {
372
628
  "Content-Type": "application/json",
373
629
  [DYNAMIC_API_VERSION_HEADER]: `API/${DYNAMIC_SDK_API_VERSION}`,
374
- [DYNAMIC_REQUEST_ID_HEADER]: randomString(50),
630
+ [DYNAMIC_REQUEST_ID_HEADER]: randomString({ length: 50 }),
375
631
  [DYNAMIC_SDK_VERSION_HEADER]: `${CLIENT_SDK_NAME}/${version}`,
376
632
  ...core.getApiHeaders(),
377
633
  ...options.headers
@@ -386,10 +642,39 @@ const createApiClient = (options = {}, client) => {
386
642
  return new _dynamic_labs_sdk_api_core.SDKApi(new _dynamic_labs_sdk_api_core.Configuration({
387
643
  ...settings,
388
644
  fetchApi: core.fetch,
389
- middleware: [createConvertToApiErrorMiddleware({ errorMappers: [...options.errorMappers || [], clientErrorMapper] })]
645
+ middleware: [
646
+ createDeviceSignatureHeadersMiddleware(client),
647
+ createConvertToApiErrorMiddleware({ errorMappers: [...options.errorMappers || [], clientErrorMapper] }),
648
+ createUnauthorizedMiddleware()
649
+ ]
390
650
  }));
391
651
  };
392
652
 
653
+ //#endregion
654
+ //#region src/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.ts
655
+ /**
656
+ * Fetches a batch of nonces from the API.
657
+ *
658
+ * Prefetching is critical for iOS deep link wallet providers (e.g. Phantom
659
+ * redirect). On iOS, a network request (like fetching a nonce) between a user
660
+ * action and a deeplink call will break the gesture chain, causing iOS to
661
+ * silently ignore the deeplink. By prefetching nonces ahead of time,
662
+ * `getNonce` can return synchronously from cache and the deeplink fires
663
+ * without an interrupting network round-trip.
664
+ */
665
+ const fetchAndStoreNonces = async (client) => {
666
+ const core = getCore(client);
667
+ const { environmentId } = core;
668
+ const { nonces } = await createApiClient({}, client).getNonces({
669
+ count: NONCE_POOL_SIZE,
670
+ environmentId
671
+ });
672
+ core.state.set({
673
+ prefetchedNonces: nonces,
674
+ prefetchedNoncesExpiration: Date.now() + NONCE_POOL_EXPIRATION_TIME
675
+ });
676
+ };
677
+
393
678
  //#endregion
394
679
  //#region src/modules/wallets/constants.ts
395
680
  const CHAINS_INFO_MAP = {
@@ -599,6 +884,12 @@ Object.defineProperty(exports, 'MfaRateLimitedError', {
599
884
  return MfaRateLimitedError;
600
885
  }
601
886
  });
887
+ Object.defineProperty(exports, 'NONCE_POOL_SIZE', {
888
+ enumerable: true,
889
+ get: function () {
890
+ return NONCE_POOL_SIZE;
891
+ }
892
+ });
602
893
  Object.defineProperty(exports, 'SDK_API_CORE_VERSION', {
603
894
  enumerable: true,
604
895
  get: function () {
@@ -611,12 +902,24 @@ Object.defineProperty(exports, 'SandboxMaximumThresholdReachedError', {
611
902
  return SandboxMaximumThresholdReachedError;
612
903
  }
613
904
  });
905
+ Object.defineProperty(exports, 'UnauthorizedError', {
906
+ enumerable: true,
907
+ get: function () {
908
+ return UnauthorizedError;
909
+ }
910
+ });
614
911
  Object.defineProperty(exports, 'ValueMustBeDefinedError', {
615
912
  enumerable: true,
616
913
  get: function () {
617
914
  return ValueMustBeDefinedError;
618
915
  }
619
916
  });
917
+ Object.defineProperty(exports, '__toESM', {
918
+ enumerable: true,
919
+ get: function () {
920
+ return __toESM;
921
+ }
922
+ });
620
923
  Object.defineProperty(exports, 'assertDefined', {
621
924
  enumerable: true,
622
925
  get: function () {
@@ -629,6 +932,24 @@ Object.defineProperty(exports, 'createApiClient', {
629
932
  return createApiClient;
630
933
  }
631
934
  });
935
+ Object.defineProperty(exports, 'createDeviceSignatureHeadersMiddleware', {
936
+ enumerable: true,
937
+ get: function () {
938
+ return createDeviceSignatureHeadersMiddleware;
939
+ }
940
+ });
941
+ Object.defineProperty(exports, 'createStorageKeySchema', {
942
+ enumerable: true,
943
+ get: function () {
944
+ return createStorageKeySchema;
945
+ }
946
+ });
947
+ Object.defineProperty(exports, 'fetchAndStoreNonces', {
948
+ enumerable: true,
949
+ get: function () {
950
+ return fetchAndStoreNonces;
951
+ }
952
+ });
632
953
  Object.defineProperty(exports, 'getBuffer', {
633
954
  enumerable: true,
634
955
  get: function () {
@@ -653,6 +974,24 @@ Object.defineProperty(exports, 'getDefaultClient', {
653
974
  return getDefaultClient;
654
975
  }
655
976
  });
977
+ Object.defineProperty(exports, 'getDeviceSigner', {
978
+ enumerable: true,
979
+ get: function () {
980
+ return getDeviceSigner;
981
+ }
982
+ });
983
+ Object.defineProperty(exports, 'getHeadersForNonceSignedByDeviceSigners', {
984
+ enumerable: true,
985
+ get: function () {
986
+ return getHeadersForNonceSignedByDeviceSigners;
987
+ }
988
+ });
989
+ Object.defineProperty(exports, 'getNonce', {
990
+ enumerable: true,
991
+ get: function () {
992
+ return getNonce;
993
+ }
994
+ });
656
995
  Object.defineProperty(exports, 'getSessionKeys', {
657
996
  enumerable: true,
658
997
  get: function () {
@@ -671,6 +1010,18 @@ Object.defineProperty(exports, 'name', {
671
1010
  return name;
672
1011
  }
673
1012
  });
1013
+ Object.defineProperty(exports, 'p256Keygen', {
1014
+ enumerable: true,
1015
+ get: function () {
1016
+ return p256Keygen;
1017
+ }
1018
+ });
1019
+ Object.defineProperty(exports, 'p256Sign', {
1020
+ enumerable: true,
1021
+ get: function () {
1022
+ return p256Sign;
1023
+ }
1024
+ });
674
1025
  Object.defineProperty(exports, 'randomString', {
675
1026
  enumerable: true,
676
1027
  get: function () {
@@ -689,4 +1040,4 @@ Object.defineProperty(exports, 'version', {
689
1040
  return version;
690
1041
  }
691
1042
  });
692
- //# sourceMappingURL=InvalidParamError-DVzrk97b.cjs.js.map
1043
+ //# sourceMappingURL=InvalidParamError-DO9X0rAe.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidParamError-DO9X0rAe.cjs.js","names":["defaultClient: DynamicClient | null","AuthStorageEnum","BufferPolyfill","clientErrorMapper: ErrorMapper","errorToThrow: Error","buffer","z","cause: Error | null","settings: ISettings","SDKApi","Configuration","CHAINS_INFO_MAP: Record<Chain, ChainInfo>","chain"],"sources":["../package.json","../src/client/core/getCore/getCore.ts","../src/errors/base/BaseError.ts","../src/errors/ClientNotFoundError.ts","../src/client/defaultClient/defaultClient.ts","../src/utils/getNonce/constants.ts","../src/modules/apiClient/constants.ts","../src/utils/randomString/randomString.ts","../src/errors/ValueMustBeDefinedError.ts","../src/utils/assertDefined/assertDefined.ts","../src/modules/projectSettings/isCookieEnabled/isCookieEnabled.ts","../src/utils/getBuffer/getBuffer.ts","../src/modules/sessionKeys/getSessionKeys/getSessionKeys.ts","../src/errors/APIError/APIError.ts","../src/errors/InvalidExternalAuthError.ts","../src/errors/LinkCredentialError.ts","../src/errors/MfaInvalidOtpError.ts","../src/errors/MfaRateLimitedError.ts","../src/errors/SandboxMaximumThresholdReachedError.ts","../src/modules/apiClient/utils/clientErrorMapper/clientErrorMapper.ts","../src/modules/apiClient/utils/convertToApiErrorMiddleware/convertToApiErrorMiddleware.ts","../src/utils/getNonce/getNonce.ts","../src/utils/bufferToHex/bufferToHex.ts","../src/utils/p256Sign/p256Sign.ts","../src/services/storage/createStorageKeySchema/createStorageKeySchema.ts","../src/utils/base64UrlDecode/base64UrlDecode.ts","../src/utils/compressRawPublicKey/compressRawPublicKey.ts","../src/utils/p256Keygen/p256Keygen.ts","../src/modules/deviceRegistration/getDeviceSigner/deviceSigningKeys.schema.ts","../src/modules/deviceRegistration/getDeviceSigner/getOrCreateEnvironmentDeviceSigningKeys/getOrCreateEnvironmentDeviceSigningKeys.ts","../src/modules/deviceRegistration/getDeviceSigner/getDeviceSigner.ts","../src/modules/deviceRegistration/getHeadersForNonceSignedByDeviceSigners/getHeadersForNonceSignedByDeviceSigners.ts","../src/modules/apiClient/utils/deviceSignatureHeadersMiddleware/createDeviceSignatureHeadersMiddleware.ts","../src/errors/UnauthorizedError.ts","../src/modules/apiClient/utils/unauthorizedMiddleware/createUnauthorizedMiddleware.ts","../src/modules/apiClient/createApiClient.ts","../src/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.ts","../src/modules/wallets/constants.ts","../src/utils/getChainFromVerifiedCredentialChain/getChainFromVerifiedCredentialChain.ts","../src/constants.ts","../src/modules/waas/constants.ts","../src/errors/InvalidParamError.ts"],"sourcesContent":["","import type { DynamicClient } from '../../types';\nimport type { DynamicCore } from '../types';\n\nexport const getCore = (client: DynamicClient): DynamicCore => {\n // @ts-expect-error - this was hidden from the public API\n return client.__core;\n};\n","import { version } from '../../../package.json';\n\nexport type BaseErrorParameters = {\n /** The underlying error that caused this error, if any */\n cause: Error | null;\n /** The error unique code */\n code: string;\n /** Additional detailed information about the error */\n details?: string;\n /** URL to relevant documentation for this error */\n docsUrl: string | null;\n /** Array of additional contextual messages to be displayed */\n metaMessages?: string[];\n /** Custom name for the error. Defaults to 'BaseError' if not provided */\n name: string;\n /** A brief, human-readable description of the error */\n shortMessage: string;\n};\n\nconst getDetails = ({ details, cause }: BaseErrorParameters) => {\n if (cause instanceof BaseError) {\n return cause.details;\n }\n\n if (cause?.message) {\n return cause.message;\n }\n\n return details;\n};\n\n/**\n * Formats the error message with all available information\n */\nconst formatMessage = ({\n shortMessage,\n details,\n docsUrl,\n metaMessages,\n}: BaseErrorParameters) => {\n return [\n '[Dynamic JS SDK]',\n shortMessage,\n '',\n ...(metaMessages ? [...metaMessages, ''] : []),\n ...(docsUrl ? [`Docs: ${docsUrl}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: ${version}`,\n `Timestamp: ${new Date().toISOString()}`,\n ].join('\\n');\n};\n\n/**\n * Base error class that provides structured error handling with detailed information\n */\nexport abstract class BaseError extends Error {\n /** The error unique code */\n code: string;\n details: string | undefined;\n private readonly formattedMessage: string | undefined;\n override name = 'BaseError';\n override cause: BaseError | Error | undefined;\n\n constructor(args: BaseErrorParameters) {\n const details = getDetails(args);\n const formattedMessage = formatMessage({ ...args, details });\n super(\n args.shortMessage ?? formattedMessage,\n args.cause ? { cause: args.cause } : undefined\n );\n\n this.formattedMessage = formattedMessage;\n this.details = details;\n this.name = args.name ?? this.name;\n this.cause = args.cause ?? this.cause;\n this.code = args.code;\n }\n\n /**\n * Walks the cause chain of the error and returns the root error\n */\n walk(): Error | undefined {\n const cause = this.cause;\n\n if (cause instanceof BaseError) {\n return cause.walk();\n }\n\n return cause;\n }\n\n override toString() {\n return this.formattedMessage;\n }\n}\n","import { BaseError } from './base';\n\nexport class ClientNotFoundError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'client_not_found_error',\n docsUrl: null,\n name: 'ClientNotFoundError',\n shortMessage:\n 'No Dynamic client has been created yet. Make sure you have called createDynamicClient() first.',\n });\n }\n}\n","import { ClientNotFoundError } from '../../errors/ClientNotFoundError';\nimport { getCore } from '../core/getCore';\nimport type { DynamicClient } from '../types';\n\nlet defaultClient: DynamicClient | null = null;\nlet numOfInitializedClients = 0;\n\n/**\n * Returns the DynamicClient instance that was initialized with createDynamicClient.\n *\n * If more than one instance of DynamicClient was initialized, you should not use this function.\n * Instead, you should pass the client instance you stored to the function that needs it.\n */\nexport const getDefaultClient = (): DynamicClient => {\n if (!defaultClient) {\n throw new ClientNotFoundError();\n }\n\n if (numOfInitializedClients > 1) {\n const core = getCore(defaultClient);\n core.logger.debug(\n 'Multiple instances of DynamicClient found. If you are only using one client (recommended), make sure you are not calling ' +\n '\"createDynamicClient\" multiple times. If you are using multiple clients, make sure you are passing which client to use as ' +\n 'the last param of all Dynamic functions.'\n );\n }\n\n return defaultClient;\n};\n\nexport const setDefaultClient = (client: DynamicClient) => {\n defaultClient = client;\n numOfInitializedClients++;\n};\n","export const NONCE_POOL_EXPIRATION_TIME = 60000 * 60 * 24;\n\nexport const NONCE_POOL_SIZE = 5;\n","import { dependencies } from '../../../package.json';\n\nexport const DYNAMIC_API_VERSION_HEADER = 'x-dyn-api-version';\n\nexport const DYNAMIC_REQUEST_ID_HEADER = 'x-dyn-request-id';\n\nexport const DYNAMIC_SDK_VERSION_HEADER = 'x-dyn-version';\n\nexport const MFA_TOKEN_HEADER = 'x-mfa-auth-token';\n\nexport const SESSION_PUBLIC_KEY_HEADER = 'x-dyn-session-public-key';\n\nexport const DYNAMIC_SDK_API_VERSION =\n dependencies['@dynamic-labs/sdk-api-core'];\n\nexport const CLIENT_SDK_NAME = 'ClientSDK';\n","const DEFAULT_CHARS =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\ntype RandomStringParams = {\n chars?: string;\n length: number;\n};\n\nexport const randomString = ({ chars = DEFAULT_CHARS, length }: RandomStringParams) => {\n const bytes = new Uint8Array(length);\n crypto.getRandomValues(bytes);\n\n let result = '';\n for (let i = 0; i < length; i++) {\n result += chars[bytes[i] % chars.length];\n }\n return result;\n};\n","import { BaseError } from './base';\n\nexport class ValueMustBeDefinedError extends BaseError {\n constructor(message: string) {\n super({\n cause: null,\n code: 'value_must_be_defined_error',\n docsUrl: null,\n name: 'ValueMustBeDefined',\n shortMessage: message,\n });\n }\n}\n","/* eslint-disable func-style -- javascript requires this to be a function */\n\nimport { ValueMustBeDefinedError } from './../../errors/ValueMustBeDefinedError';\n\n/**\n * Asserts that a value is not null or undefined, throwing an error if it is.\n * This function acts as a type guard, narrowing the type to exclude null and undefined.\n *\n * @template T - The type of the value being checked\n * @param value - The value to check for null or undefined\n * @param message - The error message to throw if the value is null or undefined\n * @throws Throws an error with the provided message if value is null or undefined\n * @example\n * ```typescript\n * const maybeString: string | null = getValue();\n * assertDefined(maybeString, 'String value is required');\n * // maybeString is now typed as string (null is excluded)\n * ```\n */\nexport function assertDefined<T>(\n value: T,\n message: string\n): asserts value is Exclude<NonNullable<T>, void> {\n if (value === null || value === undefined) {\n throw new ValueMustBeDefinedError(message);\n }\n}\n","import { AuthStorageEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type { DynamicClient } from '../../../client/types';\nimport { assertDefined } from '../../../utils/assertDefined';\n\n/**\n * Returns true if the client is using Dynamic cookies or a BYO JWT cookie.\n */\nexport const isCookieEnabled = (client: DynamicClient): boolean => {\n assertDefined(client.projectSettings, 'Project settings are not defined');\n\n const securitySettings = client.projectSettings.security;\n\n if (!securitySettings) return false;\n\n // client uses Dynamic cookies\n const dynamicCookiesEnabled = (securitySettings.auth?.storage || []).includes(\n AuthStorageEnum.Cookie\n );\n\n // BYO JWT client puts their non-Dynamic JWT in a cookie\n const byoJwtCookieEnabled = Boolean(\n securitySettings.externalAuth?.cookieName\n );\n\n // should return true for both of these scenarios\n // because we also need to do `credentials: true` in api.ts when\n // a byo jwt client sets their named cookie for their jwt and\n // needs to send it to our backend\n return dynamicCookiesEnabled || byoJwtCookieEnabled;\n};\n","/* eslint-disable no-restricted-globals */\nimport { Buffer as BufferPolyfill } from 'buffer';\n\nexport const getBuffer = () =>\n typeof Buffer !== 'undefined' ? Buffer : BufferPolyfill;\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { getBuffer } from '../../../utils/getBuffer';\nimport type { SessionKeys } from '../sessionKeys.types';\n\nexport const getSessionKeys = (client: DynamicClient) => {\n const core = getCore(client);\n\n const encodedKeys = core.state.get().sessionKeys;\n\n if (!encodedKeys) {\n return undefined;\n }\n\n try {\n const decodedKeys: SessionKeys = JSON.parse(\n getBuffer().from(encodedKeys, 'base64').toString()\n );\n\n return decodedKeys;\n } catch (error) {\n core.logger.error('Error decoding session keys', error);\n return undefined;\n }\n};\n","import { BaseError } from '../base';\n\nexport class APIError extends BaseError {\n status: number;\n\n constructor(message: string, code: string, status: number) {\n super({\n cause: null,\n code,\n docsUrl: null,\n name: 'APIError',\n shortMessage: message,\n });\n\n this.status = status;\n }\n\n static async fromResponse(response: Response) {\n try {\n const errorBody = await response.clone().json();\n\n if (\n errorBody &&\n 'error' in errorBody &&\n typeof errorBody.error === 'string'\n ) {\n const errorCode =\n 'code' in errorBody && typeof errorBody.code === 'string'\n ? errorBody.code\n : 'unknown_error';\n\n return new APIError(errorBody.error, errorCode, response.status);\n }\n\n return null;\n } catch {\n return null;\n }\n }\n}\n","import { BaseError, type BaseErrorParameters } from './base';\n\nexport class InvalidExternalAuthError extends BaseError {\n constructor({ cause }: Pick<BaseErrorParameters, 'cause'>) {\n super({\n cause,\n code: 'invalid_external_auth_error',\n docsUrl:\n 'https://www.dynamic.xyz/docs/external-auth/third-party-auth-overview',\n name: 'InvalidExternalAuthError',\n shortMessage: 'Error authenticating with external JWT',\n });\n }\n}\n","import { BaseError, type BaseErrorParameters } from './base';\n\nexport class LinkCredentialError extends BaseError {\n constructor({ cause }: Pick<BaseErrorParameters, 'cause'>) {\n super({\n cause,\n code: 'link_credential_error',\n docsUrl: null,\n name: 'LinkCredentialError',\n shortMessage:\n 'The credential you are trying to link is associated with another account and cannot be reassigned.',\n });\n }\n}\n","import { BaseError, type BaseErrorParameters } from './base';\n\nexport class MfaInvalidOtpError extends BaseError {\n constructor({ cause }: Pick<BaseErrorParameters, 'cause'>) {\n super({\n cause,\n code: 'mfa_invalid_otp_error',\n docsUrl: null,\n name: 'MfaInvalidOtpError',\n shortMessage: 'Invalid OTP',\n });\n }\n}\n","import { BaseError, type BaseErrorParameters } from './base';\n\nexport class MfaRateLimitedError extends BaseError {\n constructor({ cause }: Pick<BaseErrorParameters, 'cause'>) {\n super({\n cause,\n code: 'mfa_rate_limited_error',\n docsUrl: null,\n name: 'MfaRateLimitedError',\n shortMessage: 'Rate limited',\n });\n }\n}\n","import { BaseError, type BaseErrorParameters } from './base';\n\nexport class SandboxMaximumThresholdReachedError extends BaseError {\n constructor({ cause }: Pick<BaseErrorParameters, 'cause'>) {\n super({\n cause,\n code: 'sandbox_maximum_threshold_reached_error',\n docsUrl:\n 'https://www.dynamic.xyz/docs/developer-dashboard/sandbox-vs-live#sandbox-vs-live',\n name: 'SandboxMaximumThresholdReachedError',\n shortMessage:\n 'Your sandbox environment has reached the maximum MAU. Please use a live environment for production traffic.',\n });\n }\n}\n","import { APIError } from '../../../../errors/APIError';\nimport { InvalidExternalAuthError } from '../../../../errors/InvalidExternalAuthError';\nimport { LinkCredentialError } from '../../../../errors/LinkCredentialError';\nimport { MfaInvalidOtpError } from '../../../../errors/MfaInvalidOtpError';\nimport { MfaRateLimitedError } from '../../../../errors/MfaRateLimitedError';\nimport { SandboxMaximumThresholdReachedError } from '../../../../errors/SandboxMaximumThresholdReachedError';\nimport type { ErrorMapper } from '../../apiClient.types';\n\n/**\n * Default error mapper for the client that handles common API error codes.\n *\n * This mapper transforms specific API error codes into more specific error types:\n * - `mfa_invalid_code` → `MfaInvalidOtpError`\n * - `mfa_rate_limited` → `MfaRateLimitedError`\n *\n * @param error - The error to be mapped\n * @returns A transformed error if the error code matches a known pattern, or null if no transformation is needed\n *\n * @example\n * ```typescript\n * // This will be automatically applied to all API errors\n * const apiClient = createApiClient({}, client);\n *\n * // The clientErrorMapper will automatically convert mfa_invalid_code errors\n * // to MfaInvalidOtpError instances\n * ```\n */\nexport const clientErrorMapper: ErrorMapper = (error) => {\n if (error instanceof APIError) {\n if (error.code === 'mfa_invalid_code') {\n return new MfaInvalidOtpError({ cause: error });\n }\n\n if (error.code === 'mfa_rate_limited') {\n return new MfaRateLimitedError({ cause: error });\n }\n\n if (error.code === 'invalid_external_auth') {\n return new InvalidExternalAuthError({ cause: error });\n }\n\n if (error.code === 'sandbox_maximum_threshold_reached') {\n return new SandboxMaximumThresholdReachedError({ cause: error });\n }\n\n if (\n error.code === 'merge_accounts_invalid' ||\n error.code === 'reassign_wallet_error'\n ) {\n return new LinkCredentialError({ cause: error });\n }\n }\n\n return null;\n};\n","import type { Middleware, ResponseContext } from '@dynamic-labs/sdk-api-core';\n\nimport { APIError } from '../../../../errors/APIError';\nimport type { ErrorMapper } from '../../apiClient.types';\n\ntype CreateConvertToApiErrorMiddlewareOptions = {\n errorMappers?: ErrorMapper[];\n};\n\n/**\n * Creates middleware that converts HTTP error responses to APIError instances\n * and optionally applies custom error mappers to transform them into specific error types.\n *\n * @param options.errorMappers - Array of error mappers to apply to API errors\n * @returns A middleware function that handles error conversion and mapping\n */\nexport const createConvertToApiErrorMiddleware = ({\n errorMappers = [],\n}: CreateConvertToApiErrorMiddlewareOptions): Middleware => ({\n post: async (context: ResponseContext) => {\n if (context.response.status >= 400) {\n const apiError = await APIError.fromResponse(context.response);\n\n if (apiError) {\n let errorToThrow: Error = apiError;\n\n for (const mapper of errorMappers) {\n const newError = mapper(apiError);\n\n if (newError) {\n errorToThrow = newError;\n break;\n }\n }\n\n throw errorToThrow;\n }\n }\n\n return context.response;\n },\n});\n","import { getCore } from '../../client/core/getCore';\nimport type { DynamicClient } from '../../client/types';\nimport { fetchAndStoreNonces } from './fetchAndStoreNonces/fetchAndStoreNonces';\n\n/**\n * Returns a nonce for wallet ownership verification.\n *\n * Pops the first nonce from the prefetched pool. When the pool is running low\n * (≤1 remaining after pop) a background refetch is triggered. If the pool is\n * empty, nonces are fetched on-demand before returning.\n */\nexport const getNonce = async (\n client: DynamicClient\n): Promise<string> => {\n const core = getCore(client);\n const pool = core.state.get().prefetchedNonces;\n\n if (pool.length > 0) {\n const [nonce, ...remaining] = pool;\n\n core.state.set({ prefetchedNonces: remaining });\n\n if (remaining.length <= 1) {\n void fetchAndStoreNonces(client);\n }\n\n return nonce;\n }\n\n await fetchAndStoreNonces(client);\n\n return getNonce(client);\n};\n","/**\n * Converts an ArrayBuffer or Uint8Array to a hex-encoded string\n */\nexport const bufferToHex = (buffer: ArrayBufferLike | Uint8Array) =>\n [...(buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer))]\n .map((x) => x.toString(16).padStart(2, '0'))\n .join('');\n","import { bufferToHex } from '../bufferToHex';\n\ntype P256SignParams = {\n message: string;\n privateKeyJwk: JsonWebKey;\n};\n\nexport const p256Sign = async ({ privateKeyJwk, message }: P256SignParams) => {\n const privateKey = await crypto.subtle.importKey(\n 'jwk',\n privateKeyJwk,\n {\n name: 'ECDSA',\n namedCurve: 'P-256',\n },\n false,\n ['sign']\n );\n\n const signature = await crypto.subtle.sign(\n {\n hash: 'SHA-256',\n name: 'ECDSA',\n },\n privateKey,\n new TextEncoder().encode(message)\n );\n\n return bufferToHex(signature);\n};\n","import type * as z from 'zod/mini';\n\nimport type { StorageKeySchema } from '../storage.types';\n\nexport const createStorageKeySchema = <T>(params: {\n key: string;\n schema: z.ZodMiniType<T>;\n}): StorageKeySchema<T> => {\n return params;\n};\n","/**\n * Takes a base64url-encoded string (e.g. \"nMueRPiAm51YXEjRtka8S_8Ura3HaqbmqDqMJCZmvkM\")\n * and return the corresponding bytes, as an array buffer.\n */\nexport const base64UrlDecode = (s?: string) => {\n // Go from base64url encoding to base64 encoding\n s = s?.replace(/-/g, '+').replace(/_/g, '/') || '';\n // use `atob` to decode base64\n return Uint8Array.from(atob(s), (c) => c.charCodeAt(0));\n};\n","/**\n * Accepts a public key array buffer, and returns a buffer with the compressed version of the public key\n */\nexport const compressRawPublicKey = (rawPublicKey: ArrayBuffer) => {\n const rawPublicKeyBytes = new Uint8Array(rawPublicKey);\n const len = rawPublicKeyBytes.byteLength;\n\n // Drop the y coordinate\n const compressedBytes = rawPublicKeyBytes.slice(0, (1 + len) >>> 1);\n\n // Encode the parity of `y` in first bit\n compressedBytes[0] = 0x2 | (rawPublicKeyBytes[len - 1] & 0x01);\n return compressedBytes.buffer;\n};\n","import { base64UrlDecode } from '../base64UrlDecode';\nimport { bufferToHex } from '../bufferToHex';\nimport { compressRawPublicKey } from '../compressRawPublicKey';\n\nexport const p256Keygen = async () => {\n // Create a new P-256 keypair\n const p256Keypair = await crypto.subtle.generateKey(\n {\n name: 'ECDSA',\n namedCurve: 'P-256',\n },\n true,\n ['sign', 'verify']\n );\n\n // Export the raw public key. By default this will export in uncompressed format\n const rawPublicKey = await crypto.subtle.exportKey(\n 'raw',\n p256Keypair.publicKey\n );\n\n // We need to export with JWK format because exporting EC private keys with \"raw\" isn't supported\n const privateKeyJwk = await crypto.subtle.exportKey(\n 'jwk',\n p256Keypair.privateKey\n );\n\n const compressedPublicKeyBuffer = compressRawPublicKey(rawPublicKey);\n\n const privateKeyBuffer = base64UrlDecode(privateKeyJwk.d);\n\n return {\n private: bufferToHex(privateKeyBuffer),\n privateJwk: privateKeyJwk,\n public: bufferToHex(compressedPublicKeyBuffer),\n };\n};\n","import * as z from 'zod/mini';\n\nexport const deviceSigningKeysSchema = z.object({\n privateJwk: z.custom<JsonWebKey>(),\n privateKey: z.string(),\n publicKey: z.string(),\n});\n","import type * as z from 'zod/mini';\n\nimport { getCore } from '../../../../client/core/getCore';\nimport type { DynamicClient } from '../../../../client/types';\nimport { createStorageKeySchema } from '../../../../services/storage';\nimport { assertDefined } from '../../../../utils/assertDefined';\nimport { p256Keygen } from '../../../../utils/p256Keygen';\nimport { deviceSigningKeysSchema } from '../deviceSigningKeys.schema';\n\n/**\n * On web we want to auto create the device signing keys for each user.\n * And the user device signing keys should never be deleted.\n */\nexport const getOrCreateEnvironmentDeviceSigningKeys = async (\n client: DynamicClient\n): Promise<z.infer<typeof deviceSigningKeysSchema>> => {\n const { storage, environmentId } = getCore(client);\n\n assertDefined(environmentId, 'Environment ID is required');\n\n const environmentDeviceSigningKeysStorageKeySchema = createStorageKeySchema({\n key: `user_device_signing_keys_${environmentId}`,\n schema: deviceSigningKeysSchema,\n });\n\n const deviceSigningKeys = await storage.getItem(\n environmentDeviceSigningKeysStorageKeySchema\n );\n\n if (deviceSigningKeys) {\n return deviceSigningKeys;\n }\n\n const {\n public: publicKey,\n private: privateKey,\n privateJwk,\n } = await p256Keygen();\n\n await storage.setItem(environmentDeviceSigningKeysStorageKeySchema, {\n privateJwk,\n privateKey,\n publicKey,\n });\n\n return {\n privateJwk,\n privateKey,\n publicKey,\n };\n};\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport type { DeviceSigner } from '../../../services/deviceSigner';\nimport { p256Sign } from '../../../utils/p256Sign';\nimport { getOrCreateEnvironmentDeviceSigningKeys } from './getOrCreateEnvironmentDeviceSigningKeys';\n\nexport const getDeviceSigner = async (\n client: DynamicClient\n): Promise<DeviceSigner> => {\n const { deviceSigner } = getCore(client);\n\n /**\n * If the device signer is available, it should handle the device signing\n * This is used for mobile devices with secure enclave.\n */\n if (deviceSigner) {\n return deviceSigner;\n }\n\n /**\n * For web devices we want to auto create one PK per user id.\n */\n const environmentDeviceSigningKeys =\n await getOrCreateEnvironmentDeviceSigningKeys(client);\n\n return {\n getPublicKey: async () => environmentDeviceSigningKeys.publicKey,\n sign: (payload: string) =>\n p256Sign({\n message: payload,\n privateKeyJwk: environmentDeviceSigningKeys.privateJwk,\n }),\n };\n};\n","import type { DynamicClient } from '../../../client/types';\nimport { assertDefined } from '../../../utils/assertDefined';\nimport { getNonce } from '../../../utils/getNonce';\nimport { isCookieEnabled } from '../../projectSettings/isCookieEnabled';\nimport { getDeviceSigner } from '../getDeviceSigner';\n\nexport const getHeadersForNonceSignedByDeviceSigners = async (\n client: DynamicClient\n): Promise<Record<string, string>> => {\n const { projectSettings } = client;\n\n assertDefined(projectSettings, 'Project settings not found');\n\n /**\n * For cookie based environments, the device registration is handled\n * by settings the cookie in the browser.\n * Then we dont need to provide the headers\n */\n if (isCookieEnabled(client)) {\n return {};\n }\n\n const deviceSigner = await getDeviceSigner(client);\n\n const nonce = await getNonce(client);\n\n const signedNonce = await deviceSigner.sign(nonce);\n const publicKey = await deviceSigner.getPublicKey();\n\n return {\n 'x-dynamic-device-nonce': nonce,\n 'x-dynamic-device-publickey': publicKey,\n 'x-dynamic-device-signed-nonce': signedNonce,\n };\n};\n","import type { Middleware } from '@dynamic-labs/sdk-api-core';\nimport { isDeviceNonceSignatureRequiredForUrl } from '@dynamic-labs/sdk-api-core';\n\nimport type { DynamicClient } from '../../../../client/types';\nimport { getHeadersForNonceSignedByDeviceSigners } from '../../../deviceRegistration/getHeadersForNonceSignedByDeviceSigners';\nimport { isCookieEnabled } from '../../../projectSettings/isCookieEnabled';\n\nexport const createDeviceSignatureHeadersMiddleware = (\n client: DynamicClient\n): Middleware => {\n return {\n pre: async (context) => {\n /**\n * The signed nonce is not required for cookie based environments.\n */\n if (\n isDeviceNonceSignatureRequiredForUrl(context.url) &&\n !isCookieEnabled(client)\n ) {\n const deviceSignerHeaders = await getHeadersForNonceSignedByDeviceSigners(\n client\n );\n\n return {\n init: {\n ...context.init,\n headers: {\n ...context.init.headers,\n ...deviceSignerHeaders,\n },\n },\n url: context.url,\n };\n }\n\n return;\n },\n };\n};\n","import { BaseError, type BaseErrorParameters } from './base';\n\nexport class UnauthorizedError extends BaseError {\n constructor({ cause }: Pick<BaseErrorParameters, 'cause'>) {\n super({\n cause,\n code: 'unauthorized_error',\n docsUrl: null,\n name: 'UnauthorizedError',\n shortMessage: 'Unauthorized',\n });\n }\n}\n","import type { Middleware, ResponseContext } from '@dynamic-labs/sdk-api-core';\n\nimport { UnauthorizedError } from '../../../../errors/UnauthorizedError';\n\nexport const createUnauthorizedMiddleware = (): Middleware => ({\n post: async (context: ResponseContext) => {\n if (context.response.status === 401) {\n let cause: Error | null = null;\n\n try {\n const errorBody = await context.response.clone().json();\n\n if (\n errorBody &&\n 'error' in errorBody &&\n typeof errorBody.error === 'string'\n ) {\n // eslint-disable-next-line no-restricted-syntax\n cause = new Error(errorBody.error);\n }\n } catch {\n // Response body isn't valid JSON — proceed without a cause\n }\n\n throw new UnauthorizedError({ cause });\n }\n\n return context.response;\n },\n});\n","import { Configuration, SDKApi } from '@dynamic-labs/sdk-api-core';\n\nimport { version } from '../../../package.json';\nimport { getCore } from '../../client/core/getCore';\nimport type { DynamicClient } from '../../client/types';\nimport { randomString } from '../../utils/randomString';\nimport { isCookieEnabled } from '../projectSettings/isCookieEnabled';\nimport { getSessionKeys } from '../sessionKeys/getSessionKeys';\nimport type { CreateApiClientOptions } from './apiClient.types';\nimport {\n CLIENT_SDK_NAME,\n DYNAMIC_API_VERSION_HEADER,\n DYNAMIC_REQUEST_ID_HEADER,\n DYNAMIC_SDK_API_VERSION,\n DYNAMIC_SDK_VERSION_HEADER,\n MFA_TOKEN_HEADER,\n SESSION_PUBLIC_KEY_HEADER,\n} from './constants';\nimport { clientErrorMapper } from './utils/clientErrorMapper';\nimport { createConvertToApiErrorMiddleware } from './utils/convertToApiErrorMiddleware/convertToApiErrorMiddleware';\nimport { createDeviceSignatureHeadersMiddleware } from './utils/deviceSignatureHeadersMiddleware';\nimport { createUnauthorizedMiddleware } from './utils/unauthorizedMiddleware/createUnauthorizedMiddleware';\n\ntype ISettings = {\n basePath: string;\n credentials?: 'include';\n headers: {\n Authorization?: string;\n 'Content-Type': string;\n [DYNAMIC_API_VERSION_HEADER]: string;\n [DYNAMIC_REQUEST_ID_HEADER]: string;\n [DYNAMIC_SDK_VERSION_HEADER]: string;\n [MFA_TOKEN_HEADER]?: string;\n [SESSION_PUBLIC_KEY_HEADER]?: string;\n };\n};\n\n/**\n * Returns a new instance of the SDK API client.\n *\n * This is not meant for storing, as it is very light we can create it whenever needed.\n */\nexport const createApiClient = (\n options: CreateApiClientOptions = {},\n client: DynamicClient\n) => {\n const core = getCore(client);\n const coreState = core.state.get();\n\n const settings: ISettings = {\n basePath: core.apiBaseUrl,\n headers: {\n 'Content-Type': 'application/json',\n [DYNAMIC_API_VERSION_HEADER]: `API/${DYNAMIC_SDK_API_VERSION}`,\n [DYNAMIC_REQUEST_ID_HEADER]: randomString({ length: 50 }),\n [DYNAMIC_SDK_VERSION_HEADER]: `${CLIENT_SDK_NAME}/${version}`,\n ...core.getApiHeaders(),\n ...options.headers,\n },\n };\n\n if (client.token) {\n settings.headers.Authorization = `Bearer ${client.token}`;\n }\n\n if (client.projectSettings && isCookieEnabled(client)) {\n settings.credentials = 'include';\n }\n\n if (options.includeMfaToken && coreState.mfaToken) {\n settings.headers[MFA_TOKEN_HEADER] = coreState.mfaToken;\n }\n\n const sessionPublicKey = getSessionKeys(client)?.publicKey;\n\n // This check is required to avoid overriding the session public key header\n // that is set by any of our other SDKs using the Dynamic Client SDK.\n const isSessionPublicKeyHeaderPresent =\n settings.headers[SESSION_PUBLIC_KEY_HEADER] !== undefined;\n\n if (sessionPublicKey && !isSessionPublicKeyHeaderPresent) {\n settings.headers[SESSION_PUBLIC_KEY_HEADER] = sessionPublicKey;\n }\n\n return new SDKApi(\n new Configuration({\n ...settings,\n fetchApi: core.fetch,\n middleware: [\n createDeviceSignatureHeadersMiddleware(client),\n createConvertToApiErrorMiddleware({\n errorMappers: [...(options.errorMappers || []), clientErrorMapper],\n }),\n createUnauthorizedMiddleware(),\n ],\n })\n );\n};\n","import { getCore } from '../../../client/core/getCore';\nimport type { DynamicClient } from '../../../client/types';\nimport { createApiClient } from '../../../modules/apiClient';\nimport { NONCE_POOL_EXPIRATION_TIME, NONCE_POOL_SIZE } from '../constants';\n\n/**\n * Fetches a batch of nonces from the API.\n *\n * Prefetching is critical for iOS deep link wallet providers (e.g. Phantom\n * redirect). On iOS, a network request (like fetching a nonce) between a user\n * action and a deeplink call will break the gesture chain, causing iOS to\n * silently ignore the deeplink. By prefetching nonces ahead of time,\n * `getNonce` can return synchronously from cache and the deeplink fires\n * without an interrupting network round-trip.\n */\nexport const fetchAndStoreNonces = async (\n client: DynamicClient\n): Promise<void> => {\n const core = getCore(client);\n\n const { environmentId } = core;\n\n const apiClient = createApiClient({}, client);\n\n const { nonces } = await apiClient.getNonces({\n count: NONCE_POOL_SIZE,\n environmentId,\n });\n\n core.state.set({\n prefetchedNonces: nonces,\n prefetchedNoncesExpiration: Date.now() + NONCE_POOL_EXPIRATION_TIME,\n });\n};\n","import type { Chain } from '../chain';\n\ntype ChainInfo = {\n apiChainName: string;\n blockchainName: string;\n verifiedCredentialChainName: string;\n waasChainNameOverride?: string;\n};\n\nexport const CHAINS_INFO_MAP: Record<Chain, ChainInfo> = {\n ALEO: {\n apiChainName: 'aleo',\n blockchainName: 'Aleo',\n verifiedCredentialChainName: 'aleo',\n },\n ALGO: {\n apiChainName: 'algo',\n blockchainName: 'Algorand',\n verifiedCredentialChainName: 'algorand',\n },\n APTOS: {\n apiChainName: 'aptos',\n blockchainName: 'Aptos',\n verifiedCredentialChainName: 'aptos',\n },\n BTC: {\n apiChainName: 'bitcoin',\n blockchainName: 'Bitcoin',\n verifiedCredentialChainName: 'bip122',\n },\n COSMOS: {\n apiChainName: 'cosmos',\n blockchainName: 'Cosmos',\n verifiedCredentialChainName: 'cosmos',\n },\n ECLIPSE: {\n apiChainName: 'eclipse',\n blockchainName: 'Eclipse',\n verifiedCredentialChainName: 'eclipse',\n },\n EVM: {\n apiChainName: 'evm',\n // eslint-disable-next-line custom-rules/ban-ethereum-eth-terms\n blockchainName: 'Ethereum',\n verifiedCredentialChainName: 'eip155',\n },\n FLOW: {\n apiChainName: 'flow',\n blockchainName: 'Flow',\n verifiedCredentialChainName: 'flow',\n },\n SOL: {\n apiChainName: 'solana',\n blockchainName: 'Solana',\n verifiedCredentialChainName: 'solana',\n waasChainNameOverride: 'SVM',\n },\n SPARK: {\n apiChainName: 'spark',\n blockchainName: 'Spark',\n verifiedCredentialChainName: 'spark',\n },\n STARK: {\n apiChainName: 'starknet',\n blockchainName: 'Starknet',\n verifiedCredentialChainName: 'starknet',\n },\n STELLAR: {\n apiChainName: 'stellar',\n blockchainName: 'Stellar',\n verifiedCredentialChainName: 'stellar',\n },\n SUI: {\n apiChainName: 'sui',\n blockchainName: 'Sui',\n verifiedCredentialChainName: 'sui',\n },\n TON: {\n apiChainName: 'ton',\n blockchainName: 'TON',\n verifiedCredentialChainName: 'ton',\n },\n TRON: {\n apiChainName: 'tron',\n blockchainName: 'Tron',\n verifiedCredentialChainName: 'tron',\n },\n};\n","import type { Chain } from '../../modules/chain';\nimport { CHAINS_INFO_MAP } from '../../modules/wallets/constants';\nimport { assertDefined } from '../assertDefined';\n\nexport const getChainFromVerifiedCredentialChain = (\n verifiedCredentialChain: string\n): Chain => {\n const chains = Object.keys(CHAINS_INFO_MAP) as Chain[];\n\n const chain = chains.find(\n (chain) =>\n CHAINS_INFO_MAP[chain].verifiedCredentialChainName ===\n verifiedCredentialChain\n );\n\n assertDefined(chain, `Unknown chain: ${verifiedCredentialChain}`);\n\n return chain;\n};\n","import { dependencies } from '../package.json';\n\nexport const SDK_API_CORE_VERSION = dependencies['@dynamic-labs/sdk-api-core'];\n\nexport const DYNAMIC_ICONIC_SPRITE_URL =\n 'https://iconic.dynamic-static-assets.com/icons/sprite.svg';\n","import { DYNAMIC_ICONIC_SPRITE_URL } from '../../constants';\n\nexport const DEFAULT_WAAS_BASE_API_URL = 'https://app.dynamicauth.com';\nexport const DEFAULT_WAAS_BASE_MPC_RELAY_API_URL =\n 'https://relay.dynamicauth.com';\n\nexport const DYNAMIC_WAAS_METADATA = {\n displayName: 'Dynamic WaaS',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#dynamicwaas`,\n normalizedWalletName: 'dynamicwaas',\n};\n","import { BaseError } from './base';\n\nexport class InvalidParamError extends BaseError {\n constructor(message: string) {\n super({\n cause: null,\n code: 'invalid_param_error',\n docsUrl: null,\n name: 'InvalidParamError',\n shortMessage: message,\n });\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- const require_InvalidParamError = require('./InvalidParamError-DVzrk97b.cjs.js');
2
- const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-Ck7DNGPJ.cjs.js');
1
+ const require_InvalidParamError = require('./InvalidParamError-DO9X0rAe.cjs.js');
2
+ const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-CTL5-19B.cjs.js');
3
3
 
4
4
  //#region src/modules/user/refreshAuth/refreshAuth.ts
5
5
  /**
@@ -45,4 +45,4 @@ Object.defineProperty(exports, 'refreshAuth', {
45
45
  return refreshAuth;
46
46
  }
47
47
  });
48
- //# sourceMappingURL=NotWaasWalletAccountError-IxbdRVGy.cjs.js.map
48
+ //# sourceMappingURL=NotWaasWalletAccountError-Bj3-tWL3.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotWaasWalletAccountError-IxbdRVGy.cjs.js","names":["getDefaultClient","getCore","createApiClient","BaseError"],"sources":["../src/modules/user/refreshAuth/refreshAuth.ts","../src/errors/NotWaasWalletAccountError.ts"],"sourcesContent":["import type { VerifyResponse } from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport { createApiClient } from '../../apiClient';\nimport { updateAuthFromVerifyResponse } from '../../auth/updateAuthFromVerifyResponse';\n\n/**\n * Refreshes the current user's data from the server.\n *\n * This function fetches the latest user information and token from the backend\n * updating the local user and token states with any changes.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the verify response.\n */\nexport const refreshAuth = async (\n client = getDefaultClient()\n): Promise<VerifyResponse> => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const response = await apiClient.refreshAuth({\n environmentId: core.environmentId,\n });\n\n updateAuthFromVerifyResponse({ response }, client);\n\n return response;\n};\n","import { BaseError } from './base';\n\ntype NotWaasWalletAccountErrorParams = {\n walletAddress: string;\n};\n\nexport class NotWaasWalletAccountError extends BaseError {\n constructor({ walletAddress }: NotWaasWalletAccountErrorParams) {\n super({\n cause: null,\n code: 'not_waas_wallet_account_error',\n docsUrl: null,\n name: 'NotWaasWalletAccountError',\n shortMessage: `Wallet account ${walletAddress} is not a Dynamic WaaS wallet account`,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAgBA,MAAa,cAAc,OACzB,SAASA,4CAAkB,KACC;CAC5B,MAAM,OAAOC,kCAAQ,OAAO;CAG5B,MAAM,WAAW,MAFCC,0CAAgB,EAAE,EAAE,OAAO,CAEZ,YAAY,EAC3C,eAAe,KAAK,eACrB,CAAC;AAEF,4EAA6B,EAAE,UAAU,EAAE,OAAO;AAElD,QAAO;;;;;ACtBT,IAAa,4BAAb,cAA+CC,oCAAU;CACvD,YAAY,EAAE,iBAAkD;AAC9D,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc,kBAAkB,cAAc;GAC/C,CAAC"}
1
+ {"version":3,"file":"NotWaasWalletAccountError-Bj3-tWL3.cjs.js","names":["getDefaultClient","getCore","createApiClient","BaseError"],"sources":["../src/modules/user/refreshAuth/refreshAuth.ts","../src/errors/NotWaasWalletAccountError.ts"],"sourcesContent":["import type { VerifyResponse } from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport { createApiClient } from '../../apiClient';\nimport { updateAuthFromVerifyResponse } from '../../auth/updateAuthFromVerifyResponse';\n\n/**\n * Refreshes the current user's data from the server.\n *\n * This function fetches the latest user information and token from the backend\n * updating the local user and token states with any changes.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the verify response.\n */\nexport const refreshAuth = async (\n client = getDefaultClient()\n): Promise<VerifyResponse> => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const response = await apiClient.refreshAuth({\n environmentId: core.environmentId,\n });\n\n updateAuthFromVerifyResponse({ response }, client);\n\n return response;\n};\n","import { BaseError } from './base';\n\ntype NotWaasWalletAccountErrorParams = {\n walletAddress: string;\n};\n\nexport class NotWaasWalletAccountError extends BaseError {\n constructor({ walletAddress }: NotWaasWalletAccountErrorParams) {\n super({\n cause: null,\n code: 'not_waas_wallet_account_error',\n docsUrl: null,\n name: 'NotWaasWalletAccountError',\n shortMessage: `Wallet account ${walletAddress} is not a Dynamic WaaS wallet account`,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAgBA,MAAa,cAAc,OACzB,SAASA,4CAAkB,KACC;CAC5B,MAAM,OAAOC,kCAAQ,OAAO;CAG5B,MAAM,WAAW,MAFCC,0CAAgB,EAAE,EAAE,OAAO,CAEZ,YAAY,EAC3C,eAAe,KAAK,eACrB,CAAC;AAEF,4EAA6B,EAAE,UAAU,EAAE,OAAO;AAElD,QAAO;;;;;ACtBT,IAAa,4BAAb,cAA+CC,oCAAU;CACvD,YAAY,EAAE,iBAAkD;AAC9D,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc,kBAAkB,cAAc;GAC/C,CAAC"}
@@ -1,5 +1,5 @@
1
- import { D as BaseError, O as getCore, l as createApiClient, w as getDefaultClient } from "./InvalidParamError-DQn49mNB.esm.js";
2
- import { r as updateAuthFromVerifyResponse } from "./getVerifiedCredentialForWalletAccount-DQ7g6O7y.esm.js";
1
+ import { L as BaseError, P as getDefaultClient, R as getCore, u as createApiClient } from "./InvalidParamError-Cty-xWsw.esm.js";
2
+ import { r as updateAuthFromVerifyResponse } from "./getVerifiedCredentialForWalletAccount-CpUomVzT.esm.js";
3
3
 
4
4
  //#region src/modules/user/refreshAuth/refreshAuth.ts
5
5
  /**
@@ -34,4 +34,4 @@ var NotWaasWalletAccountError = class extends BaseError {
34
34
 
35
35
  //#endregion
36
36
  export { refreshAuth as n, NotWaasWalletAccountError as t };
37
- //# sourceMappingURL=NotWaasWalletAccountError-D0BXVuKy.esm.js.map
37
+ //# sourceMappingURL=NotWaasWalletAccountError-x0HlFCot.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotWaasWalletAccountError-D0BXVuKy.esm.js","names":[],"sources":["../src/modules/user/refreshAuth/refreshAuth.ts","../src/errors/NotWaasWalletAccountError.ts"],"sourcesContent":["import type { VerifyResponse } from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport { createApiClient } from '../../apiClient';\nimport { updateAuthFromVerifyResponse } from '../../auth/updateAuthFromVerifyResponse';\n\n/**\n * Refreshes the current user's data from the server.\n *\n * This function fetches the latest user information and token from the backend\n * updating the local user and token states with any changes.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the verify response.\n */\nexport const refreshAuth = async (\n client = getDefaultClient()\n): Promise<VerifyResponse> => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const response = await apiClient.refreshAuth({\n environmentId: core.environmentId,\n });\n\n updateAuthFromVerifyResponse({ response }, client);\n\n return response;\n};\n","import { BaseError } from './base';\n\ntype NotWaasWalletAccountErrorParams = {\n walletAddress: string;\n};\n\nexport class NotWaasWalletAccountError extends BaseError {\n constructor({ walletAddress }: NotWaasWalletAccountErrorParams) {\n super({\n cause: null,\n code: 'not_waas_wallet_account_error',\n docsUrl: null,\n name: 'NotWaasWalletAccountError',\n shortMessage: `Wallet account ${walletAddress} is not a Dynamic WaaS wallet account`,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAgBA,MAAa,cAAc,OACzB,SAAS,kBAAkB,KACC;CAC5B,MAAM,OAAO,QAAQ,OAAO;CAG5B,MAAM,WAAW,MAFC,gBAAgB,EAAE,EAAE,OAAO,CAEZ,YAAY,EAC3C,eAAe,KAAK,eACrB,CAAC;AAEF,8BAA6B,EAAE,UAAU,EAAE,OAAO;AAElD,QAAO;;;;;ACtBT,IAAa,4BAAb,cAA+C,UAAU;CACvD,YAAY,EAAE,iBAAkD;AAC9D,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc,kBAAkB,cAAc;GAC/C,CAAC"}
1
+ {"version":3,"file":"NotWaasWalletAccountError-x0HlFCot.esm.js","names":[],"sources":["../src/modules/user/refreshAuth/refreshAuth.ts","../src/errors/NotWaasWalletAccountError.ts"],"sourcesContent":["import type { VerifyResponse } from '@dynamic-labs/sdk-api-core';\n\nimport { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport { createApiClient } from '../../apiClient';\nimport { updateAuthFromVerifyResponse } from '../../auth/updateAuthFromVerifyResponse';\n\n/**\n * Refreshes the current user's data from the server.\n *\n * This function fetches the latest user information and token from the backend\n * updating the local user and token states with any changes.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the verify response.\n */\nexport const refreshAuth = async (\n client = getDefaultClient()\n): Promise<VerifyResponse> => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const response = await apiClient.refreshAuth({\n environmentId: core.environmentId,\n });\n\n updateAuthFromVerifyResponse({ response }, client);\n\n return response;\n};\n","import { BaseError } from './base';\n\ntype NotWaasWalletAccountErrorParams = {\n walletAddress: string;\n};\n\nexport class NotWaasWalletAccountError extends BaseError {\n constructor({ walletAddress }: NotWaasWalletAccountErrorParams) {\n super({\n cause: null,\n code: 'not_waas_wallet_account_error',\n docsUrl: null,\n name: 'NotWaasWalletAccountError',\n shortMessage: `Wallet account ${walletAddress} is not a Dynamic WaaS wallet account`,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAgBA,MAAa,cAAc,OACzB,SAAS,kBAAkB,KACC;CAC5B,MAAM,OAAO,QAAQ,OAAO;CAG5B,MAAM,WAAW,MAFC,gBAAgB,EAAE,EAAE,OAAO,CAEZ,YAAY,EAC3C,eAAe,KAAK,eACrB,CAAC;AAEF,8BAA6B,EAAE,UAAU,EAAE,OAAO;AAElD,QAAO;;;;;ACtBT,IAAa,4BAAb,cAA+C,UAAU;CACvD,YAAY,EAAE,iBAAkD;AAC9D,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc,kBAAkB,cAAc;GAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getInitialState.d.ts","sourceRoot":"","sources":["../../../../src/client/core/createCore/getInitialState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,gBAajC,CAAC"}
1
+ {"version":3,"file":"getInitialState.d.ts","sourceRoot":"","sources":["../../../../src/client/core/createCore/getInitialState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,gBAejC,CAAC"}