@dynamic-labs-wallet/browser 1.0.52 → 1.0.53

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/index.cjs CHANGED
@@ -1316,6 +1316,19 @@ const downloadStringAsFile = ({ filename, content, mimeType = 'application/json'
1316
1316
  }
1317
1317
  return error.code === 'STALE_CLIENT_SHARES';
1318
1318
  };
1319
+ /**
1320
+ * Detects the server's 409 ROOM_ID_ALREADY_USED rejection. The client
1321
+ * may cache pre-created roomIds locally; if a cached roomId becomes
1322
+ * stale (e.g. localStorage restoration after an iframe reload, or a
1323
+ * write failure in a restricted storage context), the server rejects
1324
+ * the claim with this code. The SDK retries without the stale roomId
1325
+ * so the server creates a fresh room.
1326
+ */ const isRoomIdAlreadyUsedError = (error)=>{
1327
+ if (!error || typeof error !== 'object') {
1328
+ return false;
1329
+ }
1330
+ return error.code === 'ROOM_ID_ALREADY_USED';
1331
+ };
1319
1332
  /**
1320
1333
  * Determines whether a reshare operation should reuse the wallet's existing backup locations.
1321
1334
  *
@@ -1825,6 +1838,45 @@ const initializeCloudKit = async (config, signInButtonId, onSignInRequired, onSi
1825
1838
  logger.info('[DynamicWaasWalletClient] Google Drive backup completed successfully', logContext);
1826
1839
  };
1827
1840
 
1841
+ // The poll loop also surfaces errors that carry a status without being an
1842
+ // AxiosError instance (e.g. wrapped/normalized HTTP errors), so fall back to
1843
+ // the same duck-typed read it uses for its transient/terminal decision.
1844
+ const readHttpStatus = (error)=>{
1845
+ var _error_response;
1846
+ var _getHttpStatus, _ref;
1847
+ return (_ref = (_getHttpStatus = getHttpStatus(error)) != null ? _getHttpStatus : error == null ? void 0 : (_error_response = error.response) == null ? void 0 : _error_response.status) != null ? _ref : error == null ? void 0 : error.status;
1848
+ };
1849
+ // Shared structured-logging helpers for the HTTP-transport (HTTPS) WaaS create
1850
+ // ceremony, so the browser SDK emits dashboard-queryable fields (transport,
1851
+ // error taxonomy, durations) that join to the redcoast worker's ceremony logs.
1852
+ // Mirrors redcoast's waas-https/observability.ts (PR #10347): same `transport`,
1853
+ // `errorKind`, `durationMs` field names so client and server logs line up.
1854
+ const WAAS_HTTPS_TRANSPORT = 'http';
1855
+ const POLL_TIMEOUT_MESSAGE = 'Timed out waiting for wallet creation ceremony to complete';
1856
+ // Maps an error to a stable taxonomy so the dashboard can break down create
1857
+ // failures without parsing free text. Order matters: most specific first.
1858
+ const classifyWaasErrorKind = (error)=>{
1859
+ if (error instanceof WalletNotActiveError) return 'wallet_not_active';
1860
+ const message = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase();
1861
+ if (message.includes(POLL_TIMEOUT_MESSAGE.toLowerCase())) return 'poll_timeout';
1862
+ if (message.includes('timeout') || message.includes('timed out')) return 'mpc_timeout';
1863
+ return 'unknown';
1864
+ };
1865
+ // Classifies a single transient poll failure for the retry log. A poll that
1866
+ // fails with a transient HTTP status (5xx / 429 / no response) is exhausted
1867
+ // only if the deadline passes; per-attempt we just tag the kind.
1868
+ const classifyTransientPollError = (error)=>{
1869
+ const status = readHttpStatus(error);
1870
+ if (status === 429 || status !== undefined && status >= 500) return 'transient_exhausted';
1871
+ return classifyWaasErrorKind(error);
1872
+ };
1873
+ // Builds a structured log payload tagged with the HTTPS transport, dropping
1874
+ // undefined/null fields so log lines stay clean and consistently shaped.
1875
+ // `idempotencyKey` is the cross-repo join key — always pass it.
1876
+ const buildHttpCeremonyMeta = (fields)=>_extends({
1877
+ transport: WAAS_HTTPS_TRANSPORT
1878
+ }, Object.fromEntries(Object.entries(fields).filter(([, value])=>value !== undefined && value !== null)));
1879
+
1828
1880
  /**
1829
1881
  * Returns true for errors that represent expected user-facing conditions
1830
1882
  * (e.g. wrong password). These are logged at `info` instead of `error`
@@ -2626,6 +2678,25 @@ const KNOWN_SHARE_SET_TYPES = new Set([
2626
2678
  return ((_backupInfo_backups_BackupLocation_DYNAMIC = backupInfo == null ? void 0 : (_backupInfo_backups = backupInfo.backups) == null ? void 0 : _backupInfo_backups[core.BackupLocation.DYNAMIC]) != null ? _backupInfo_backups_BackupLocation_DYNAMIC : []).map((backup)=>backup.keygenId).filter((keygenId)=>typeof keygenId === 'string' && keygenId.length > 0);
2627
2679
  };
2628
2680
  class DynamicWalletClient {
2681
+ connectForwardMPC() {
2682
+ const forwardMPCConnectStartedAt = Date.now();
2683
+ this.apiClient.forwardMPCClient.connect().then(()=>{
2684
+ this.logger.info('Optimistically Connected to ForwardMPC enclave', {
2685
+ environmentId: this.environmentId,
2686
+ durationMs: Date.now() - forwardMPCConnectStartedAt
2687
+ });
2688
+ }).catch((error)=>{
2689
+ const errorInfo = core.classifyForwardMpcError(error);
2690
+ // A rate-limited upgrade falls back to relay → warn, not error, so the
2691
+ // recovered case doesn't pollute error triage.
2692
+ const level = errorInfo.errorType === 'RATE_LIMITED' ? 'warn' : 'error';
2693
+ this.logger[level]('Error connecting to ForwardMPC enclave optimistically', _extends({}, errorInfo, {
2694
+ error,
2695
+ environmentId: this.environmentId,
2696
+ durationMs: Date.now() - forwardMPCConnectStartedAt
2697
+ }));
2698
+ });
2699
+ }
2629
2700
  /**
2630
2701
  * Check if wallet has heavy operations in progress
2631
2702
  */ static isHeavyOpInProgress(accountAddress) {
@@ -2653,6 +2724,7 @@ class DynamicWalletClient {
2653
2724
  DynamicWalletClient.rooms = {};
2654
2725
  DynamicWalletClient.roomsInitializing = {};
2655
2726
  DynamicWalletClient.roomsGeneration += 1;
2727
+ DynamicWalletClient.roomsPersistDirty = false;
2656
2728
  }
2657
2729
  /**
2658
2730
  * Reset static state for testing purposes.
@@ -2732,7 +2804,7 @@ class DynamicWalletClient {
2732
2804
  return;
2733
2805
  }
2734
2806
  // Decode the payload (second part)
2735
- const base64Payload = parts[1].replace(/-/g, '+').replace(/_/g, '/');
2807
+ const base64Payload = parts[1].replaceAll('-', '+').replaceAll('_', '/');
2736
2808
  const jsonPayload = decodeURIComponent(Buffer.from(base64Payload, 'base64').toString('utf-8'));
2737
2809
  const payload = JSON.parse(jsonPayload);
2738
2810
  if (!payload || typeof payload !== 'object') {
@@ -2802,6 +2874,16 @@ class DynamicWalletClient {
2802
2874
  const useHttpTransport = this.featureFlags[core.FEATURE_FLAGS.ENABLE_HTTP_WAAS_TRANSPORT] === true && !!idempotencyKey;
2803
2875
  let data;
2804
2876
  if (useHttpTransport) {
2877
+ this.logger.info('[DynamicWaasWalletClient] http create requested', buildHttpCeremonyMeta(_extends({
2878
+ outcome: 'started',
2879
+ operation: 'create',
2880
+ chain: chainName,
2881
+ idempotencyKey,
2882
+ dynamicRequestId,
2883
+ environmentId: this.environmentId,
2884
+ userId: this.userId,
2885
+ key: 'keyGen'
2886
+ }, this.getTraceContext(traceContext))));
2805
2887
  data = await this.apiClient.requestWalletCreationJson({
2806
2888
  chainName,
2807
2889
  clientKeygenIds,
@@ -2850,8 +2932,11 @@ class DynamicWalletClient {
2850
2932
  */ async pollHttpCeremonyCompletion({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, idempotencyKey, traceContext }) {
2851
2933
  const POLL_INTERVAL_MS = 1000;
2852
2934
  const POLL_TIMEOUT_MS = 30000;
2853
- const deadline = Date.now() + POLL_TIMEOUT_MS;
2935
+ const startedAt = Date.now();
2936
+ const deadline = startedAt + POLL_TIMEOUT_MS;
2937
+ let attempt = 0;
2854
2938
  while(Date.now() < deadline){
2939
+ attempt += 1;
2855
2940
  try {
2856
2941
  const data = await this.apiClient.requestWalletCreationJson({
2857
2942
  chainName,
@@ -2868,6 +2953,17 @@ class DynamicWalletClient {
2868
2953
  poll: true
2869
2954
  });
2870
2955
  if (data.walletId && data.accountAddress) {
2956
+ this.logger.info('[DynamicWaasWalletClient] http create completed', buildHttpCeremonyMeta(_extends({
2957
+ outcome: 'completed',
2958
+ chain: chainName,
2959
+ idempotencyKey,
2960
+ dynamicRequestId,
2961
+ durationMs: Date.now() - startedAt,
2962
+ attempt,
2963
+ walletId: data.walletId,
2964
+ walletActive: true,
2965
+ key: 'keyGen'
2966
+ }, this.getTraceContext(traceContext))));
2871
2967
  return {
2872
2968
  accountAddress: data.accountAddress,
2873
2969
  walletId: data.walletId,
@@ -2885,15 +2981,30 @@ class DynamicWalletClient {
2885
2981
  throw error;
2886
2982
  }
2887
2983
  // Transient failures (502, timeout) should not abort the entire keygen —
2888
- // just retry the cheap poll until the deadline.
2889
- this.logger.debug('[pollHttpCeremonyCompletion] transient poll error, retrying', {
2890
- error: error.message,
2984
+ // just retry the cheap poll until the deadline. Logged at info (not debug)
2985
+ // so the dashboard can chart per-attempt poll retries.
2986
+ this.logger.info('[DynamicWaasWalletClient] http create poll transient error, retrying', buildHttpCeremonyMeta(_extends({
2987
+ chain: chainName,
2988
+ idempotencyKey,
2891
2989
  dynamicRequestId,
2892
- chainName
2893
- });
2990
+ attempt,
2991
+ errorKind: classifyTransientPollError(error),
2992
+ error: error.message,
2993
+ key: 'keyGen'
2994
+ }, this.getTraceContext(traceContext))));
2894
2995
  }
2895
2996
  await new Promise((resolve)=>setTimeout(resolve, POLL_INTERVAL_MS));
2896
2997
  }
2998
+ this.logger.warn('[DynamicWaasWalletClient] http create failed', buildHttpCeremonyMeta(_extends({
2999
+ outcome: 'failed',
3000
+ chain: chainName,
3001
+ idempotencyKey,
3002
+ dynamicRequestId,
3003
+ errorKind: 'poll_timeout',
3004
+ durationMs: Date.now() - startedAt,
3005
+ attempt,
3006
+ key: 'keyGen'
3007
+ }, this.getTraceContext(traceContext))));
2897
3008
  throw new Error('Timed out waiting for wallet creation ceremony to complete');
2898
3009
  }
2899
3010
  async clientInitializeKeyGen({ chainName, thresholdSignatureScheme, bitcoinConfig }) {
@@ -3075,13 +3186,12 @@ class DynamicWalletClient {
3075
3186
  ...serverKeygenIds,
3076
3187
  ...otherClientKeygenIds
3077
3188
  ];
3078
- if (!(mpcSigner instanceof web.ExportableEd25519)) {
3079
- return mpcSigner.keygen(roomId, mpcConfig.numberOfParties, mpcConfig.threshold, currentInit, allOtherKeygenIds);
3080
- } else {
3189
+ if (mpcSigner instanceof web.ExportableEd25519) {
3081
3190
  // One party joins the keygen room using acting as the sampler: (wallet-service)
3082
3191
  // The remaining parties join the key sampling ceremony using: (browser)
3083
3192
  return mpcSigner.receiveKey(roomId, mpcConfig.numberOfParties, mpcConfig.threshold, currentInit, allOtherKeygenIds);
3084
3193
  }
3194
+ return mpcSigner.keygen(roomId, mpcConfig.numberOfParties, mpcConfig.threshold, currentInit, allOtherKeygenIds);
3085
3195
  }));
3086
3196
  // only need one client keygen result to derive the public key
3087
3197
  const [clientKeygenResult] = clientKeygenResults;
@@ -3238,6 +3348,14 @@ class DynamicWalletClient {
3238
3348
  // failure — log it at warn so it doesn't flood error dashboards. All
3239
3349
  // other keygen failures stay at error.
3240
3350
  const isExpectedRejection = error instanceof Error && error.message === ERROR_MULTIPLE_WALLETS_PER_CHAIN;
3351
+ // On the HTTP transport, tag the failure with the cross-repo join keys and
3352
+ // a stable errorKind so it lines up with the redcoast worker ceremony logs.
3353
+ const usedHttpTransport = this.featureFlags[core.FEATURE_FLAGS.ENABLE_HTTP_WAAS_TRANSPORT] === true && !!idempotencyKey;
3354
+ const httpFailureContext = usedHttpTransport ? buildHttpCeremonyMeta({
3355
+ outcome: 'failed',
3356
+ idempotencyKey,
3357
+ errorKind: classifyWaasErrorKind(error)
3358
+ }) : {};
3241
3359
  logError({
3242
3360
  message: 'Error in keyGen',
3243
3361
  error: error,
@@ -3246,7 +3364,7 @@ class DynamicWalletClient {
3246
3364
  chainName,
3247
3365
  thresholdSignatureScheme,
3248
3366
  dynamicRequestId
3249
- }, this.getTraceContext(traceContext))
3367
+ }, httpFailureContext, this.getTraceContext(traceContext))
3250
3368
  });
3251
3369
  throw error;
3252
3370
  }
@@ -3733,7 +3851,25 @@ class DynamicWalletClient {
3733
3851
  bitcoinConfig
3734
3852
  }));
3735
3853
  }
3736
- async internalSign({ accountAddress, message, chainName, password = undefined, isFormatted = false, signedSessionId, mfaToken, elevatedAccessToken, context, onError, traceContext, bitcoinConfig, staleShareRetry = false }) {
3854
+ async getCachedRoomForSign(wallet, accountAddress, chainName, traceContext) {
3855
+ if (this.featureFlags[core.FEATURE_FLAGS.ENABLE_ROOM_CACHE_FLAG] !== true) {
3856
+ return undefined;
3857
+ }
3858
+ const room = await this.getRoom(sdkApiCore.RoomTypeEnum.Threshold, wallet.thresholdSignatureScheme);
3859
+ const roomId = room == null ? void 0 : room.roomId;
3860
+ if (roomId) {
3861
+ this.logger.info('[DynamicWaasWalletClient] Using cached room', _extends({
3862
+ key: 'sign',
3863
+ operation: 'cachedRoomFound',
3864
+ accountAddress,
3865
+ chainName,
3866
+ walletId: wallet.walletId,
3867
+ roomId
3868
+ }, this.getTraceContext(traceContext)));
3869
+ }
3870
+ return roomId;
3871
+ }
3872
+ async internalSign({ accountAddress, message, chainName, password = undefined, isFormatted = false, signedSessionId, mfaToken, elevatedAccessToken, context, onError, traceContext, bitcoinConfig, staleShareRetry = false, roomIdRetry = false }) {
3737
3873
  const dynamicRequestId = uuid.v4();
3738
3874
  try {
3739
3875
  await this.verifyPassword({
@@ -3750,21 +3886,7 @@ class DynamicWalletClient {
3750
3886
  const derivationPath = wallet.derivationPath && wallet.derivationPath != '' ? new Uint32Array(Object.values(JSON.parse(wallet.derivationPath))) : undefined;
3751
3887
  // Ensure client key shares exist before hitting the API
3752
3888
  const clientKeyShares = await this.ensureClientShare(accountAddress);
3753
- let roomId;
3754
- if (this.featureFlags[core.FEATURE_FLAGS.ENABLE_ROOM_CACHE_FLAG] === true) {
3755
- const room = await this.getRoom(sdkApiCore.RoomTypeEnum.Threshold, wallet.thresholdSignatureScheme);
3756
- roomId = room == null ? void 0 : room.roomId;
3757
- if (roomId) {
3758
- this.logger.info('[DynamicWaasWalletClient] Using cached room', _extends({
3759
- key: 'sign',
3760
- operation: 'cachedRoomFound',
3761
- accountAddress,
3762
- chainName,
3763
- walletId: wallet.walletId,
3764
- roomId
3765
- }, this.getTraceContext(traceContext)));
3766
- }
3767
- }
3889
+ let roomId = roomIdRetry ? undefined : await this.getCachedRoomForSign(wallet, accountAddress, chainName, traceContext);
3768
3890
  // Create a rejection handler that will be wired up synchronously below.
3769
3891
  // Promise executors run synchronously, so rejectOnSSEError is guaranteed
3770
3892
  // to be assigned before serverSign is called.
@@ -3787,6 +3909,15 @@ class DynamicWalletClient {
3787
3909
  });
3788
3910
  // eslint-disable-next-line @typescript-eslint/no-empty-function
3789
3911
  staleSharesPromise.catch(()=>{});
3912
+ // Same pattern for 409 ROOM_ID_ALREADY_USED: the client sent a stale
3913
+ // cached roomId that was already claimed. Route through a dedicated
3914
+ // channel so the outer catch can retry without the cached room.
3915
+ let rejectOnRoomIdAlreadyUsed;
3916
+ const roomIdAlreadyUsedPromise = new Promise((_, reject)=>{
3917
+ rejectOnRoomIdAlreadyUsed = reject;
3918
+ });
3919
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
3920
+ roomIdAlreadyUsedPromise.catch(()=>{});
3790
3921
  // Perform the server sign
3791
3922
  const serverSignPromise = this.serverSign({
3792
3923
  walletId: wallet.walletId,
@@ -3805,6 +3936,11 @@ class DynamicWalletClient {
3805
3936
  rejectOnStaleShares(error);
3806
3937
  return;
3807
3938
  }
3939
+ // Stale cached roomId — retry transparently without the cache.
3940
+ if (isRoomIdAlreadyUsedError(error)) {
3941
+ rejectOnRoomIdAlreadyUsed(error);
3942
+ return;
3943
+ }
3808
3944
  onError == null ? void 0 : onError(error);
3809
3945
  rejectOnSSEError(error);
3810
3946
  },
@@ -3906,13 +4042,13 @@ class DynamicWalletClient {
3906
4042
  signature = await Promise.race([
3907
4043
  clientSignPromise,
3908
4044
  sseErrorPromise,
3909
- staleSharesPromise
4045
+ staleSharesPromise,
4046
+ roomIdAlreadyUsedPromise
3910
4047
  ]);
3911
4048
  } catch (signError) {
3912
- // The 409 stale-shares preflight is handled exclusively by the outer
3913
- // catch (heal + transparent retry) — skip the generic heal here so the
3914
- // ground-truth check runs once, right before the retry decision.
3915
- if (isStaleClientSharesError(signError)) {
4049
+ // Stale-shares and room-already-used are both handled exclusively by
4050
+ // the outer catch (heal+retry / room retry) — skip generic heal here.
4051
+ if (isStaleClientSharesError(signError) || isRoomIdAlreadyUsedError(signError)) {
3916
4052
  throw signError;
3917
4053
  }
3918
4054
  // Heal before rethrowing so the caller's retry succeeds. Run the
@@ -3989,7 +4125,34 @@ class DynamicWalletClient {
3989
4125
  onError,
3990
4126
  traceContext,
3991
4127
  bitcoinConfig,
3992
- staleShareRetry: true
4128
+ staleShareRetry: true,
4129
+ roomIdRetry
4130
+ });
4131
+ }
4132
+ // 409 ROOM_ID_ALREADY_USED: the cached roomId was already claimed by
4133
+ // a previous ceremony. Retry once without the room cache so the server
4134
+ // creates a fresh room.
4135
+ if (!roomIdRetry && isRoomIdAlreadyUsedError(error)) {
4136
+ this.logger.info('[RoomCache] retrying sign without cached room after 409 ROOM_ID_ALREADY_USED', _extends({
4137
+ accountAddress,
4138
+ chainName,
4139
+ dynamicRequestId
4140
+ }, this.getTraceContext(traceContext)));
4141
+ return await this.internalSign({
4142
+ accountAddress,
4143
+ message,
4144
+ chainName,
4145
+ password,
4146
+ isFormatted,
4147
+ signedSessionId,
4148
+ mfaToken,
4149
+ elevatedAccessToken,
4150
+ context,
4151
+ onError,
4152
+ traceContext,
4153
+ bitcoinConfig,
4154
+ staleShareRetry,
4155
+ roomIdRetry: true
3993
4156
  });
3994
4157
  }
3995
4158
  logError({
@@ -8422,6 +8585,11 @@ class DynamicWalletClient {
8422
8585
  if (hasExistingRooms) {
8423
8586
  return DynamicWalletClient.rooms;
8424
8587
  }
8588
+ // A previous persistRooms() write failed, meaning localStorage may contain
8589
+ // rooms that were already consumed in memory. Don't restore stale data.
8590
+ if (DynamicWalletClient.roomsPersistDirty) {
8591
+ return DynamicWalletClient.rooms;
8592
+ }
8425
8593
  const roomData = await this.storage.getItem(`${this.storageKey}-rooms`);
8426
8594
  if (!roomData) {
8427
8595
  return {};
@@ -8459,7 +8627,13 @@ class DynamicWalletClient {
8459
8627
  */ persistRooms() {
8460
8628
  DynamicWalletClient.roomsPersistChain = DynamicWalletClient.roomsPersistChain.catch(()=>{
8461
8629
  // Recover from previous write failure so the chain stays alive
8462
- }).then(()=>this.storage.setItem(`${this.storageKey}-rooms`, JSON.stringify(DynamicWalletClient.rooms)));
8630
+ }).then(()=>this.storage.setItem(`${this.storageKey}-rooms`, JSON.stringify(DynamicWalletClient.rooms))).then(()=>{
8631
+ DynamicWalletClient.roomsPersistDirty = false;
8632
+ }).catch(()=>{
8633
+ // Storage write failed (e.g. restricted iframe context). Flag as
8634
+ // dirty so restoreRooms() won't resurrect stale localStorage data.
8635
+ DynamicWalletClient.roomsPersistDirty = true;
8636
+ });
8463
8637
  return DynamicWalletClient.roomsPersistChain;
8464
8638
  }
8465
8639
  getNumberOfParties(roomType, thresholdSignatureScheme) {
@@ -8611,29 +8785,17 @@ class DynamicWalletClient {
8611
8785
  }
8612
8786
  this.forwardMPCEnabled = this.featureFlags && this.featureFlags[core.FEATURE_FLAGS.ENABLE_FORWARD_MPC_CLIENT_FLAG] === true;
8613
8787
  if (this.forwardMPCEnabled) {
8614
- const forwardMPCConnectStartedAt = Date.now();
8615
- this.apiClient.forwardMPCClient.connect().then(()=>{
8616
- this.logger.info('Optimistically Connected to ForwardMPC enclave', {
8617
- environmentId: this.environmentId,
8618
- durationMs: Date.now() - forwardMPCConnectStartedAt
8619
- });
8620
- }).catch((error)=>{
8621
- const errorInfo = core.classifyForwardMpcError(error);
8622
- // A rate-limited upgrade falls back to relay → warn, not error, so the
8623
- // recovered case doesn't pollute error triage.
8624
- const level = errorInfo.errorType === 'RATE_LIMITED' ? 'warn' : 'error';
8625
- this.logger[level]('Error connecting to ForwardMPC enclave optimistically', _extends({}, errorInfo, {
8626
- error,
8627
- environmentId: this.environmentId,
8628
- durationMs: Date.now() - forwardMPCConnectStartedAt
8629
- }));
8630
- });
8788
+ this.connectForwardMPC();
8631
8789
  }
8632
8790
  }
8633
8791
  }
8634
8792
  DynamicWalletClient.rooms = {};
8635
8793
  DynamicWalletClient.roomsInitializing = {};
8636
8794
  DynamicWalletClient.roomsPersistChain = Promise.resolve();
8795
+ // Set when a persistRooms write fails (e.g. storage-restricted iframe
8796
+ // context). When true, restoreRooms() trusts in-memory state over
8797
+ // potentially-stale localStorage to prevent resurrecting consumed rooms.
8798
+ DynamicWalletClient.roomsPersistDirty = false;
8637
8799
  // Bumped by clearRoomPool() so an in-flight createRooms() that started before
8638
8800
  // a user switch can detect the clear and refuse to write the previous user's
8639
8801
  // rooms back into the new user's storage (TOCTOU on the create→merge gap).
@@ -8766,6 +8928,7 @@ exports.isICloudAuthenticated = isICloudAuthenticated;
8766
8928
  exports.isNonRetryableCeremonyError = isNonRetryableCeremonyError;
8767
8929
  exports.isPublicKeyMismatchError = isPublicKeyMismatchError;
8768
8930
  exports.isRecoverQueueOperation = isRecoverQueueOperation;
8931
+ exports.isRoomIdAlreadyUsedError = isRoomIdAlreadyUsedError;
8769
8932
  exports.isSignQueueOperation = isSignQueueOperation;
8770
8933
  exports.isStaleClientSharesError = isStaleClientSharesError;
8771
8934
  exports.listICloudBackups = listICloudBackups;
package/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { BitcoinAddressType, MPC_RELAY_PROD_API_URL, getMPCChainConfig, BackupLocation, ENCRYPTED_SHARES_STORAGE_SUFFIX, Logger, WalletApiError, handleAxiosError, WalletOperation, parseNamespacedVersion, WalletReadyState, FEATURE_FLAGS, ThresholdSignatureScheme, getClientThreshold, MPC_CONFIG, classifyForwardMpcError, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, serializeError, getReshareConfig, getRequiredExternalKeyShareId, verifiedCredentialNameToChainEnum, AuthMode, NoopLogger, DynamicApiClient, BusinessAccountClient, getEnvironmentFromUrl, IFRAME_DOMAIN_MAP } from '@dynamic-labs-wallet/core';
1
+ import { BitcoinAddressType, MPC_RELAY_PROD_API_URL, getMPCChainConfig, BackupLocation, ENCRYPTED_SHARES_STORAGE_SUFFIX, Logger, WalletApiError, handleAxiosError, WalletOperation, parseNamespacedVersion, WalletReadyState, classifyForwardMpcError, FEATURE_FLAGS, ThresholdSignatureScheme, getClientThreshold, MPC_CONFIG, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, serializeError, getReshareConfig, getRequiredExternalKeyShareId, verifiedCredentialNameToChainEnum, AuthMode, NoopLogger, DynamicApiClient, BusinessAccountClient, getEnvironmentFromUrl, IFRAME_DOMAIN_MAP } from '@dynamic-labs-wallet/core';
2
2
  export * from '@dynamic-labs-wallet/core';
3
3
  export { Logger } from '@dynamic-labs-wallet/core';
4
4
  import { EdBls12377, BIP340, ExportableEd25519, Ecdsa, MessageHash, EcdsaSignature, EcdsaKeygenResult, ExportableEd25519KeygenResult, BIP340KeygenResult } from '#internal/web';
@@ -1317,6 +1317,19 @@ const downloadStringAsFile = ({ filename, content, mimeType = 'application/json'
1317
1317
  }
1318
1318
  return error.code === 'STALE_CLIENT_SHARES';
1319
1319
  };
1320
+ /**
1321
+ * Detects the server's 409 ROOM_ID_ALREADY_USED rejection. The client
1322
+ * may cache pre-created roomIds locally; if a cached roomId becomes
1323
+ * stale (e.g. localStorage restoration after an iframe reload, or a
1324
+ * write failure in a restricted storage context), the server rejects
1325
+ * the claim with this code. The SDK retries without the stale roomId
1326
+ * so the server creates a fresh room.
1327
+ */ const isRoomIdAlreadyUsedError = (error)=>{
1328
+ if (!error || typeof error !== 'object') {
1329
+ return false;
1330
+ }
1331
+ return error.code === 'ROOM_ID_ALREADY_USED';
1332
+ };
1320
1333
  /**
1321
1334
  * Determines whether a reshare operation should reuse the wallet's existing backup locations.
1322
1335
  *
@@ -1826,6 +1839,45 @@ const initializeCloudKit = async (config, signInButtonId, onSignInRequired, onSi
1826
1839
  logger.info('[DynamicWaasWalletClient] Google Drive backup completed successfully', logContext);
1827
1840
  };
1828
1841
 
1842
+ // The poll loop also surfaces errors that carry a status without being an
1843
+ // AxiosError instance (e.g. wrapped/normalized HTTP errors), so fall back to
1844
+ // the same duck-typed read it uses for its transient/terminal decision.
1845
+ const readHttpStatus = (error)=>{
1846
+ var _error_response;
1847
+ var _getHttpStatus, _ref;
1848
+ return (_ref = (_getHttpStatus = getHttpStatus(error)) != null ? _getHttpStatus : error == null ? void 0 : (_error_response = error.response) == null ? void 0 : _error_response.status) != null ? _ref : error == null ? void 0 : error.status;
1849
+ };
1850
+ // Shared structured-logging helpers for the HTTP-transport (HTTPS) WaaS create
1851
+ // ceremony, so the browser SDK emits dashboard-queryable fields (transport,
1852
+ // error taxonomy, durations) that join to the redcoast worker's ceremony logs.
1853
+ // Mirrors redcoast's waas-https/observability.ts (PR #10347): same `transport`,
1854
+ // `errorKind`, `durationMs` field names so client and server logs line up.
1855
+ const WAAS_HTTPS_TRANSPORT = 'http';
1856
+ const POLL_TIMEOUT_MESSAGE = 'Timed out waiting for wallet creation ceremony to complete';
1857
+ // Maps an error to a stable taxonomy so the dashboard can break down create
1858
+ // failures without parsing free text. Order matters: most specific first.
1859
+ const classifyWaasErrorKind = (error)=>{
1860
+ if (error instanceof WalletNotActiveError) return 'wallet_not_active';
1861
+ const message = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase();
1862
+ if (message.includes(POLL_TIMEOUT_MESSAGE.toLowerCase())) return 'poll_timeout';
1863
+ if (message.includes('timeout') || message.includes('timed out')) return 'mpc_timeout';
1864
+ return 'unknown';
1865
+ };
1866
+ // Classifies a single transient poll failure for the retry log. A poll that
1867
+ // fails with a transient HTTP status (5xx / 429 / no response) is exhausted
1868
+ // only if the deadline passes; per-attempt we just tag the kind.
1869
+ const classifyTransientPollError = (error)=>{
1870
+ const status = readHttpStatus(error);
1871
+ if (status === 429 || status !== undefined && status >= 500) return 'transient_exhausted';
1872
+ return classifyWaasErrorKind(error);
1873
+ };
1874
+ // Builds a structured log payload tagged with the HTTPS transport, dropping
1875
+ // undefined/null fields so log lines stay clean and consistently shaped.
1876
+ // `idempotencyKey` is the cross-repo join key — always pass it.
1877
+ const buildHttpCeremonyMeta = (fields)=>_extends({
1878
+ transport: WAAS_HTTPS_TRANSPORT
1879
+ }, Object.fromEntries(Object.entries(fields).filter(([, value])=>value !== undefined && value !== null)));
1880
+
1829
1881
  /**
1830
1882
  * Returns true for errors that represent expected user-facing conditions
1831
1883
  * (e.g. wrong password). These are logged at `info` instead of `error`
@@ -2627,6 +2679,25 @@ const KNOWN_SHARE_SET_TYPES = new Set([
2627
2679
  return ((_backupInfo_backups_BackupLocation_DYNAMIC = backupInfo == null ? void 0 : (_backupInfo_backups = backupInfo.backups) == null ? void 0 : _backupInfo_backups[BackupLocation.DYNAMIC]) != null ? _backupInfo_backups_BackupLocation_DYNAMIC : []).map((backup)=>backup.keygenId).filter((keygenId)=>typeof keygenId === 'string' && keygenId.length > 0);
2628
2680
  };
2629
2681
  class DynamicWalletClient {
2682
+ connectForwardMPC() {
2683
+ const forwardMPCConnectStartedAt = Date.now();
2684
+ this.apiClient.forwardMPCClient.connect().then(()=>{
2685
+ this.logger.info('Optimistically Connected to ForwardMPC enclave', {
2686
+ environmentId: this.environmentId,
2687
+ durationMs: Date.now() - forwardMPCConnectStartedAt
2688
+ });
2689
+ }).catch((error)=>{
2690
+ const errorInfo = classifyForwardMpcError(error);
2691
+ // A rate-limited upgrade falls back to relay → warn, not error, so the
2692
+ // recovered case doesn't pollute error triage.
2693
+ const level = errorInfo.errorType === 'RATE_LIMITED' ? 'warn' : 'error';
2694
+ this.logger[level]('Error connecting to ForwardMPC enclave optimistically', _extends({}, errorInfo, {
2695
+ error,
2696
+ environmentId: this.environmentId,
2697
+ durationMs: Date.now() - forwardMPCConnectStartedAt
2698
+ }));
2699
+ });
2700
+ }
2630
2701
  /**
2631
2702
  * Check if wallet has heavy operations in progress
2632
2703
  */ static isHeavyOpInProgress(accountAddress) {
@@ -2654,6 +2725,7 @@ class DynamicWalletClient {
2654
2725
  DynamicWalletClient.rooms = {};
2655
2726
  DynamicWalletClient.roomsInitializing = {};
2656
2727
  DynamicWalletClient.roomsGeneration += 1;
2728
+ DynamicWalletClient.roomsPersistDirty = false;
2657
2729
  }
2658
2730
  /**
2659
2731
  * Reset static state for testing purposes.
@@ -2733,7 +2805,7 @@ class DynamicWalletClient {
2733
2805
  return;
2734
2806
  }
2735
2807
  // Decode the payload (second part)
2736
- const base64Payload = parts[1].replace(/-/g, '+').replace(/_/g, '/');
2808
+ const base64Payload = parts[1].replaceAll('-', '+').replaceAll('_', '/');
2737
2809
  const jsonPayload = decodeURIComponent(Buffer.from(base64Payload, 'base64').toString('utf-8'));
2738
2810
  const payload = JSON.parse(jsonPayload);
2739
2811
  if (!payload || typeof payload !== 'object') {
@@ -2803,6 +2875,16 @@ class DynamicWalletClient {
2803
2875
  const useHttpTransport = this.featureFlags[FEATURE_FLAGS.ENABLE_HTTP_WAAS_TRANSPORT] === true && !!idempotencyKey;
2804
2876
  let data;
2805
2877
  if (useHttpTransport) {
2878
+ this.logger.info('[DynamicWaasWalletClient] http create requested', buildHttpCeremonyMeta(_extends({
2879
+ outcome: 'started',
2880
+ operation: 'create',
2881
+ chain: chainName,
2882
+ idempotencyKey,
2883
+ dynamicRequestId,
2884
+ environmentId: this.environmentId,
2885
+ userId: this.userId,
2886
+ key: 'keyGen'
2887
+ }, this.getTraceContext(traceContext))));
2806
2888
  data = await this.apiClient.requestWalletCreationJson({
2807
2889
  chainName,
2808
2890
  clientKeygenIds,
@@ -2851,8 +2933,11 @@ class DynamicWalletClient {
2851
2933
  */ async pollHttpCeremonyCompletion({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, idempotencyKey, traceContext }) {
2852
2934
  const POLL_INTERVAL_MS = 1000;
2853
2935
  const POLL_TIMEOUT_MS = 30000;
2854
- const deadline = Date.now() + POLL_TIMEOUT_MS;
2936
+ const startedAt = Date.now();
2937
+ const deadline = startedAt + POLL_TIMEOUT_MS;
2938
+ let attempt = 0;
2855
2939
  while(Date.now() < deadline){
2940
+ attempt += 1;
2856
2941
  try {
2857
2942
  const data = await this.apiClient.requestWalletCreationJson({
2858
2943
  chainName,
@@ -2869,6 +2954,17 @@ class DynamicWalletClient {
2869
2954
  poll: true
2870
2955
  });
2871
2956
  if (data.walletId && data.accountAddress) {
2957
+ this.logger.info('[DynamicWaasWalletClient] http create completed', buildHttpCeremonyMeta(_extends({
2958
+ outcome: 'completed',
2959
+ chain: chainName,
2960
+ idempotencyKey,
2961
+ dynamicRequestId,
2962
+ durationMs: Date.now() - startedAt,
2963
+ attempt,
2964
+ walletId: data.walletId,
2965
+ walletActive: true,
2966
+ key: 'keyGen'
2967
+ }, this.getTraceContext(traceContext))));
2872
2968
  return {
2873
2969
  accountAddress: data.accountAddress,
2874
2970
  walletId: data.walletId,
@@ -2886,15 +2982,30 @@ class DynamicWalletClient {
2886
2982
  throw error;
2887
2983
  }
2888
2984
  // Transient failures (502, timeout) should not abort the entire keygen —
2889
- // just retry the cheap poll until the deadline.
2890
- this.logger.debug('[pollHttpCeremonyCompletion] transient poll error, retrying', {
2891
- error: error.message,
2985
+ // just retry the cheap poll until the deadline. Logged at info (not debug)
2986
+ // so the dashboard can chart per-attempt poll retries.
2987
+ this.logger.info('[DynamicWaasWalletClient] http create poll transient error, retrying', buildHttpCeremonyMeta(_extends({
2988
+ chain: chainName,
2989
+ idempotencyKey,
2892
2990
  dynamicRequestId,
2893
- chainName
2894
- });
2991
+ attempt,
2992
+ errorKind: classifyTransientPollError(error),
2993
+ error: error.message,
2994
+ key: 'keyGen'
2995
+ }, this.getTraceContext(traceContext))));
2895
2996
  }
2896
2997
  await new Promise((resolve)=>setTimeout(resolve, POLL_INTERVAL_MS));
2897
2998
  }
2999
+ this.logger.warn('[DynamicWaasWalletClient] http create failed', buildHttpCeremonyMeta(_extends({
3000
+ outcome: 'failed',
3001
+ chain: chainName,
3002
+ idempotencyKey,
3003
+ dynamicRequestId,
3004
+ errorKind: 'poll_timeout',
3005
+ durationMs: Date.now() - startedAt,
3006
+ attempt,
3007
+ key: 'keyGen'
3008
+ }, this.getTraceContext(traceContext))));
2898
3009
  throw new Error('Timed out waiting for wallet creation ceremony to complete');
2899
3010
  }
2900
3011
  async clientInitializeKeyGen({ chainName, thresholdSignatureScheme, bitcoinConfig }) {
@@ -3076,13 +3187,12 @@ class DynamicWalletClient {
3076
3187
  ...serverKeygenIds,
3077
3188
  ...otherClientKeygenIds
3078
3189
  ];
3079
- if (!(mpcSigner instanceof ExportableEd25519)) {
3080
- return mpcSigner.keygen(roomId, mpcConfig.numberOfParties, mpcConfig.threshold, currentInit, allOtherKeygenIds);
3081
- } else {
3190
+ if (mpcSigner instanceof ExportableEd25519) {
3082
3191
  // One party joins the keygen room using acting as the sampler: (wallet-service)
3083
3192
  // The remaining parties join the key sampling ceremony using: (browser)
3084
3193
  return mpcSigner.receiveKey(roomId, mpcConfig.numberOfParties, mpcConfig.threshold, currentInit, allOtherKeygenIds);
3085
3194
  }
3195
+ return mpcSigner.keygen(roomId, mpcConfig.numberOfParties, mpcConfig.threshold, currentInit, allOtherKeygenIds);
3086
3196
  }));
3087
3197
  // only need one client keygen result to derive the public key
3088
3198
  const [clientKeygenResult] = clientKeygenResults;
@@ -3239,6 +3349,14 @@ class DynamicWalletClient {
3239
3349
  // failure — log it at warn so it doesn't flood error dashboards. All
3240
3350
  // other keygen failures stay at error.
3241
3351
  const isExpectedRejection = error instanceof Error && error.message === ERROR_MULTIPLE_WALLETS_PER_CHAIN;
3352
+ // On the HTTP transport, tag the failure with the cross-repo join keys and
3353
+ // a stable errorKind so it lines up with the redcoast worker ceremony logs.
3354
+ const usedHttpTransport = this.featureFlags[FEATURE_FLAGS.ENABLE_HTTP_WAAS_TRANSPORT] === true && !!idempotencyKey;
3355
+ const httpFailureContext = usedHttpTransport ? buildHttpCeremonyMeta({
3356
+ outcome: 'failed',
3357
+ idempotencyKey,
3358
+ errorKind: classifyWaasErrorKind(error)
3359
+ }) : {};
3242
3360
  logError({
3243
3361
  message: 'Error in keyGen',
3244
3362
  error: error,
@@ -3247,7 +3365,7 @@ class DynamicWalletClient {
3247
3365
  chainName,
3248
3366
  thresholdSignatureScheme,
3249
3367
  dynamicRequestId
3250
- }, this.getTraceContext(traceContext))
3368
+ }, httpFailureContext, this.getTraceContext(traceContext))
3251
3369
  });
3252
3370
  throw error;
3253
3371
  }
@@ -3734,7 +3852,25 @@ class DynamicWalletClient {
3734
3852
  bitcoinConfig
3735
3853
  }));
3736
3854
  }
3737
- async internalSign({ accountAddress, message, chainName, password = undefined, isFormatted = false, signedSessionId, mfaToken, elevatedAccessToken, context, onError, traceContext, bitcoinConfig, staleShareRetry = false }) {
3855
+ async getCachedRoomForSign(wallet, accountAddress, chainName, traceContext) {
3856
+ if (this.featureFlags[FEATURE_FLAGS.ENABLE_ROOM_CACHE_FLAG] !== true) {
3857
+ return undefined;
3858
+ }
3859
+ const room = await this.getRoom(RoomTypeEnum.Threshold, wallet.thresholdSignatureScheme);
3860
+ const roomId = room == null ? void 0 : room.roomId;
3861
+ if (roomId) {
3862
+ this.logger.info('[DynamicWaasWalletClient] Using cached room', _extends({
3863
+ key: 'sign',
3864
+ operation: 'cachedRoomFound',
3865
+ accountAddress,
3866
+ chainName,
3867
+ walletId: wallet.walletId,
3868
+ roomId
3869
+ }, this.getTraceContext(traceContext)));
3870
+ }
3871
+ return roomId;
3872
+ }
3873
+ async internalSign({ accountAddress, message, chainName, password = undefined, isFormatted = false, signedSessionId, mfaToken, elevatedAccessToken, context, onError, traceContext, bitcoinConfig, staleShareRetry = false, roomIdRetry = false }) {
3738
3874
  const dynamicRequestId = v4();
3739
3875
  try {
3740
3876
  await this.verifyPassword({
@@ -3751,21 +3887,7 @@ class DynamicWalletClient {
3751
3887
  const derivationPath = wallet.derivationPath && wallet.derivationPath != '' ? new Uint32Array(Object.values(JSON.parse(wallet.derivationPath))) : undefined;
3752
3888
  // Ensure client key shares exist before hitting the API
3753
3889
  const clientKeyShares = await this.ensureClientShare(accountAddress);
3754
- let roomId;
3755
- if (this.featureFlags[FEATURE_FLAGS.ENABLE_ROOM_CACHE_FLAG] === true) {
3756
- const room = await this.getRoom(RoomTypeEnum.Threshold, wallet.thresholdSignatureScheme);
3757
- roomId = room == null ? void 0 : room.roomId;
3758
- if (roomId) {
3759
- this.logger.info('[DynamicWaasWalletClient] Using cached room', _extends({
3760
- key: 'sign',
3761
- operation: 'cachedRoomFound',
3762
- accountAddress,
3763
- chainName,
3764
- walletId: wallet.walletId,
3765
- roomId
3766
- }, this.getTraceContext(traceContext)));
3767
- }
3768
- }
3890
+ let roomId = roomIdRetry ? undefined : await this.getCachedRoomForSign(wallet, accountAddress, chainName, traceContext);
3769
3891
  // Create a rejection handler that will be wired up synchronously below.
3770
3892
  // Promise executors run synchronously, so rejectOnSSEError is guaranteed
3771
3893
  // to be assigned before serverSign is called.
@@ -3788,6 +3910,15 @@ class DynamicWalletClient {
3788
3910
  });
3789
3911
  // eslint-disable-next-line @typescript-eslint/no-empty-function
3790
3912
  staleSharesPromise.catch(()=>{});
3913
+ // Same pattern for 409 ROOM_ID_ALREADY_USED: the client sent a stale
3914
+ // cached roomId that was already claimed. Route through a dedicated
3915
+ // channel so the outer catch can retry without the cached room.
3916
+ let rejectOnRoomIdAlreadyUsed;
3917
+ const roomIdAlreadyUsedPromise = new Promise((_, reject)=>{
3918
+ rejectOnRoomIdAlreadyUsed = reject;
3919
+ });
3920
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
3921
+ roomIdAlreadyUsedPromise.catch(()=>{});
3791
3922
  // Perform the server sign
3792
3923
  const serverSignPromise = this.serverSign({
3793
3924
  walletId: wallet.walletId,
@@ -3806,6 +3937,11 @@ class DynamicWalletClient {
3806
3937
  rejectOnStaleShares(error);
3807
3938
  return;
3808
3939
  }
3940
+ // Stale cached roomId — retry transparently without the cache.
3941
+ if (isRoomIdAlreadyUsedError(error)) {
3942
+ rejectOnRoomIdAlreadyUsed(error);
3943
+ return;
3944
+ }
3809
3945
  onError == null ? void 0 : onError(error);
3810
3946
  rejectOnSSEError(error);
3811
3947
  },
@@ -3907,13 +4043,13 @@ class DynamicWalletClient {
3907
4043
  signature = await Promise.race([
3908
4044
  clientSignPromise,
3909
4045
  sseErrorPromise,
3910
- staleSharesPromise
4046
+ staleSharesPromise,
4047
+ roomIdAlreadyUsedPromise
3911
4048
  ]);
3912
4049
  } catch (signError) {
3913
- // The 409 stale-shares preflight is handled exclusively by the outer
3914
- // catch (heal + transparent retry) — skip the generic heal here so the
3915
- // ground-truth check runs once, right before the retry decision.
3916
- if (isStaleClientSharesError(signError)) {
4050
+ // Stale-shares and room-already-used are both handled exclusively by
4051
+ // the outer catch (heal+retry / room retry) — skip generic heal here.
4052
+ if (isStaleClientSharesError(signError) || isRoomIdAlreadyUsedError(signError)) {
3917
4053
  throw signError;
3918
4054
  }
3919
4055
  // Heal before rethrowing so the caller's retry succeeds. Run the
@@ -3990,7 +4126,34 @@ class DynamicWalletClient {
3990
4126
  onError,
3991
4127
  traceContext,
3992
4128
  bitcoinConfig,
3993
- staleShareRetry: true
4129
+ staleShareRetry: true,
4130
+ roomIdRetry
4131
+ });
4132
+ }
4133
+ // 409 ROOM_ID_ALREADY_USED: the cached roomId was already claimed by
4134
+ // a previous ceremony. Retry once without the room cache so the server
4135
+ // creates a fresh room.
4136
+ if (!roomIdRetry && isRoomIdAlreadyUsedError(error)) {
4137
+ this.logger.info('[RoomCache] retrying sign without cached room after 409 ROOM_ID_ALREADY_USED', _extends({
4138
+ accountAddress,
4139
+ chainName,
4140
+ dynamicRequestId
4141
+ }, this.getTraceContext(traceContext)));
4142
+ return await this.internalSign({
4143
+ accountAddress,
4144
+ message,
4145
+ chainName,
4146
+ password,
4147
+ isFormatted,
4148
+ signedSessionId,
4149
+ mfaToken,
4150
+ elevatedAccessToken,
4151
+ context,
4152
+ onError,
4153
+ traceContext,
4154
+ bitcoinConfig,
4155
+ staleShareRetry,
4156
+ roomIdRetry: true
3994
4157
  });
3995
4158
  }
3996
4159
  logError({
@@ -8423,6 +8586,11 @@ class DynamicWalletClient {
8423
8586
  if (hasExistingRooms) {
8424
8587
  return DynamicWalletClient.rooms;
8425
8588
  }
8589
+ // A previous persistRooms() write failed, meaning localStorage may contain
8590
+ // rooms that were already consumed in memory. Don't restore stale data.
8591
+ if (DynamicWalletClient.roomsPersistDirty) {
8592
+ return DynamicWalletClient.rooms;
8593
+ }
8426
8594
  const roomData = await this.storage.getItem(`${this.storageKey}-rooms`);
8427
8595
  if (!roomData) {
8428
8596
  return {};
@@ -8460,7 +8628,13 @@ class DynamicWalletClient {
8460
8628
  */ persistRooms() {
8461
8629
  DynamicWalletClient.roomsPersistChain = DynamicWalletClient.roomsPersistChain.catch(()=>{
8462
8630
  // Recover from previous write failure so the chain stays alive
8463
- }).then(()=>this.storage.setItem(`${this.storageKey}-rooms`, JSON.stringify(DynamicWalletClient.rooms)));
8631
+ }).then(()=>this.storage.setItem(`${this.storageKey}-rooms`, JSON.stringify(DynamicWalletClient.rooms))).then(()=>{
8632
+ DynamicWalletClient.roomsPersistDirty = false;
8633
+ }).catch(()=>{
8634
+ // Storage write failed (e.g. restricted iframe context). Flag as
8635
+ // dirty so restoreRooms() won't resurrect stale localStorage data.
8636
+ DynamicWalletClient.roomsPersistDirty = true;
8637
+ });
8464
8638
  return DynamicWalletClient.roomsPersistChain;
8465
8639
  }
8466
8640
  getNumberOfParties(roomType, thresholdSignatureScheme) {
@@ -8612,32 +8786,20 @@ class DynamicWalletClient {
8612
8786
  }
8613
8787
  this.forwardMPCEnabled = this.featureFlags && this.featureFlags[FEATURE_FLAGS.ENABLE_FORWARD_MPC_CLIENT_FLAG] === true;
8614
8788
  if (this.forwardMPCEnabled) {
8615
- const forwardMPCConnectStartedAt = Date.now();
8616
- this.apiClient.forwardMPCClient.connect().then(()=>{
8617
- this.logger.info('Optimistically Connected to ForwardMPC enclave', {
8618
- environmentId: this.environmentId,
8619
- durationMs: Date.now() - forwardMPCConnectStartedAt
8620
- });
8621
- }).catch((error)=>{
8622
- const errorInfo = classifyForwardMpcError(error);
8623
- // A rate-limited upgrade falls back to relay → warn, not error, so the
8624
- // recovered case doesn't pollute error triage.
8625
- const level = errorInfo.errorType === 'RATE_LIMITED' ? 'warn' : 'error';
8626
- this.logger[level]('Error connecting to ForwardMPC enclave optimistically', _extends({}, errorInfo, {
8627
- error,
8628
- environmentId: this.environmentId,
8629
- durationMs: Date.now() - forwardMPCConnectStartedAt
8630
- }));
8631
- });
8789
+ this.connectForwardMPC();
8632
8790
  }
8633
8791
  }
8634
8792
  }
8635
8793
  DynamicWalletClient.rooms = {};
8636
8794
  DynamicWalletClient.roomsInitializing = {};
8637
8795
  DynamicWalletClient.roomsPersistChain = Promise.resolve();
8796
+ // Set when a persistRooms write fails (e.g. storage-restricted iframe
8797
+ // context). When true, restoreRooms() trusts in-memory state over
8798
+ // potentially-stale localStorage to prevent resurrecting consumed rooms.
8799
+ DynamicWalletClient.roomsPersistDirty = false;
8638
8800
  // Bumped by clearRoomPool() so an in-flight createRooms() that started before
8639
8801
  // a user switch can detect the clear and refuse to write the previous user's
8640
8802
  // rooms back into the new user's storage (TOCTOU on the create→merge gap).
8641
8803
  DynamicWalletClient.roomsGeneration = 0;
8642
8804
 
8643
- export { BACKUP_FILENAME, CLIENT_KEYSHARE_EXPORT_FILENAME_PREFIX, DynamicWalletClient, ENVIRONMENT_SETTINGS_STORAGE_KEY, ERROR_ACCOUNT_ADDRESS_REQUIRED, ERROR_CREATE_WALLET_ACCOUNT, ERROR_EXPORT_PRIVATE_KEY, ERROR_IMPORT_PRIVATE_KEY, ERROR_INCORRECT_PASSWORD, ERROR_KEYGEN_FAILED, ERROR_MULTIPLE_WALLETS_PER_CHAIN, ERROR_NO_KEY_SHARES_BACKED_UP, ERROR_PASSWORD_MISMATCH, ERROR_PASSWORD_REQUIRED, ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET, ERROR_PUBLIC_KEY_MISMATCH, ERROR_REFRESH_NOT_SUPPORTED_FOR_TWO_OF_THREE, ERROR_SIGN_MESSAGE, ERROR_SIGN_TYPED_DATA, ERROR_VERIFY_MESSAGE_SIGNATURE, ERROR_VERIFY_TRANSACTION_SIGNATURE, HEAVY_QUEUE_OPERATIONS, OperationSource, RECOVER_QUEUE_OPERATIONS, ROOM_CACHE_COUNT, ROOM_EXPIRATION_TIME, SIGNED_SESSION_ID_MIN_VERSION, SIGNED_SESSION_ID_MIN_VERSION_BY_NAMESPACE, SIGN_QUEUE_OPERATIONS, STORAGE_KEY, StaleLocalSharesError, WalletBusyError, WalletNotReadyError, cancelICloudAuth, createAddCloudProviderToExistingDelegationDistribution, createBackupData, createCloudProviderDistribution, createDelegationOnlyDistribution, createDelegationWithCloudProviderDistribution, createDynamicOnlyDistribution, deleteICloudBackup, downloadStringAsFile, extractPubkey, formatEvmMessage, formatMessage, formatTronMessage, getActiveCloudProviders, getBitcoinAddressTypeFromDerivationPath, getClientKeyShareBackupInfo, getClientKeyShareExportFileName, getDelegatedShareSet, getGoogleOAuthAccountId, getHttpStatus, getICloudBackup, getMPCSignatureScheme, getMPCSigner, hasCloudProviderBackup, hasDelegatedBackup, hasEncryptedSharesCached, initializeCloudKit, isBrowser, isHeavyQueueOperation, isHexString, isICloudAuthenticated, isNonRetryableCeremonyError, isPublicKeyMismatchError, isRecoverQueueOperation, isSignQueueOperation, isStaleClientSharesError, listICloudBackups, markCeremonyErrorNonRetryable, readEnvironmentSettings, retryPromise, shouldReshareToSameBackups, timeoutPromise };
8805
+ export { BACKUP_FILENAME, CLIENT_KEYSHARE_EXPORT_FILENAME_PREFIX, DynamicWalletClient, ENVIRONMENT_SETTINGS_STORAGE_KEY, ERROR_ACCOUNT_ADDRESS_REQUIRED, ERROR_CREATE_WALLET_ACCOUNT, ERROR_EXPORT_PRIVATE_KEY, ERROR_IMPORT_PRIVATE_KEY, ERROR_INCORRECT_PASSWORD, ERROR_KEYGEN_FAILED, ERROR_MULTIPLE_WALLETS_PER_CHAIN, ERROR_NO_KEY_SHARES_BACKED_UP, ERROR_PASSWORD_MISMATCH, ERROR_PASSWORD_REQUIRED, ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET, ERROR_PUBLIC_KEY_MISMATCH, ERROR_REFRESH_NOT_SUPPORTED_FOR_TWO_OF_THREE, ERROR_SIGN_MESSAGE, ERROR_SIGN_TYPED_DATA, ERROR_VERIFY_MESSAGE_SIGNATURE, ERROR_VERIFY_TRANSACTION_SIGNATURE, HEAVY_QUEUE_OPERATIONS, OperationSource, RECOVER_QUEUE_OPERATIONS, ROOM_CACHE_COUNT, ROOM_EXPIRATION_TIME, SIGNED_SESSION_ID_MIN_VERSION, SIGNED_SESSION_ID_MIN_VERSION_BY_NAMESPACE, SIGN_QUEUE_OPERATIONS, STORAGE_KEY, StaleLocalSharesError, WalletBusyError, WalletNotReadyError, cancelICloudAuth, createAddCloudProviderToExistingDelegationDistribution, createBackupData, createCloudProviderDistribution, createDelegationOnlyDistribution, createDelegationWithCloudProviderDistribution, createDynamicOnlyDistribution, deleteICloudBackup, downloadStringAsFile, extractPubkey, formatEvmMessage, formatMessage, formatTronMessage, getActiveCloudProviders, getBitcoinAddressTypeFromDerivationPath, getClientKeyShareBackupInfo, getClientKeyShareExportFileName, getDelegatedShareSet, getGoogleOAuthAccountId, getHttpStatus, getICloudBackup, getMPCSignatureScheme, getMPCSigner, hasCloudProviderBackup, hasDelegatedBackup, hasEncryptedSharesCached, initializeCloudKit, isBrowser, isHeavyQueueOperation, isHexString, isICloudAuthenticated, isNonRetryableCeremonyError, isPublicKeyMismatchError, isRecoverQueueOperation, isRoomIdAlreadyUsedError, isSignQueueOperation, isStaleClientSharesError, listICloudBackups, markCeremonyErrorNonRetryable, readEnvironmentSettings, retryPromise, shouldReshareToSameBackups, timeoutPromise };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/browser",
3
- "version": "1.0.52",
3
+ "version": "1.0.53",
4
4
  "license": "Licensed under the Dynamic Labs, Inc. Terms Of Service (https://www.dynamic.xyz/terms-conditions)",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/core": "1.0.52",
8
- "@dynamic-labs-wallet/forward-mpc-client": "1.0.0",
9
- "@dynamic-labs-wallet/primitives": "1.0.52",
7
+ "@dynamic-labs-wallet/core": "1.0.53",
8
+ "@dynamic-labs-wallet/forward-mpc-client": "1.0.1",
9
+ "@dynamic-labs-wallet/primitives": "1.0.53",
10
10
  "@dynamic-labs/sdk-api-core": "^0.0.984",
11
11
  "argon2id": "1.0.1",
12
12
  "axios": "1.16.0",
package/src/client.d.ts CHANGED
@@ -5,6 +5,7 @@ import { EncryptionVersion } from './backup/encryption/constants.js';
5
5
  import type { ClientInitKeygenResult, ClientKeyShare, MPCSigner } from './mpc/types.js';
6
6
  import { type SupportedStorage } from './services/localStorage.js';
7
7
  import { OperationSource, type Room, type ShareDistribution, type WalletProperties } from './types.js';
8
+ type RawPublicKey = EcdsaPublicKey | Uint8Array | string | undefined;
8
9
  type MessageToSign = string | Uint8Array | MessageHash;
9
10
  /**
10
11
  * Internal options for DynamicWalletClient constructor.
@@ -68,6 +69,7 @@ export declare class DynamicWalletClient {
68
69
  protected static rooms: Record<number, Room[]>;
69
70
  protected static roomsInitializing: Record<number, boolean>;
70
71
  private static roomsPersistChain;
72
+ private static roomsPersistDirty;
71
73
  private static roomsGeneration;
72
74
  /**
73
75
  * Internal secure storage adapter for mobile TEE-backed storage.
@@ -90,6 +92,7 @@ export declare class DynamicWalletClient {
90
92
  /** Owns signed-session resolution, version-gating, and nonce-refresh retries. */
91
93
  private readonly signedSession;
92
94
  constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, argon2idRebackupTargets, authMode, authToken, backupServiceAuthToken, sdkVersion, forwardMPCClient, baseClientKeysharesRelayApiUrl, iCloudConfig, logger, }: DynamicWalletClientProps, internalOptions?: DynamicWalletClientInternalOptions);
95
+ private connectForwardMPC;
93
96
  /**
94
97
  * Check if wallet has heavy operations in progress
95
98
  */
@@ -185,7 +188,7 @@ export declare class DynamicWalletClient {
185
188
  keyShare: ClientKeyShare;
186
189
  derivationPath: Uint32Array | undefined;
187
190
  bitcoinConfig?: BitcoinConfig;
188
- }): Promise<EcdsaPublicKey | Uint8Array | string | undefined>;
191
+ }): Promise<RawPublicKey>;
189
192
  /**
190
193
  * Drop-in replacement for clientKeygen that routes to forwardMPC keygen or receiveKey as appropriate,
191
194
  * using identical params and matching clientKeygen toggling logic based on the chain.
@@ -211,7 +214,7 @@ export declare class DynamicWalletClient {
211
214
  dynamicRequestId?: string;
212
215
  traceContext?: TraceContext;
213
216
  }): Promise<{
214
- rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
217
+ rawPublicKey: RawPublicKey;
215
218
  clientKeygenResults: ClientKeyShare[];
216
219
  operationSource: OperationSource;
217
220
  }>;
@@ -236,7 +239,7 @@ export declare class DynamicWalletClient {
236
239
  serverKeygenIds: string[];
237
240
  }>;
238
241
  }): Promise<{
239
- rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
242
+ rawPublicKey: RawPublicKey;
240
243
  clientKeygenResults: ClientKeyShare[];
241
244
  operationSource: OperationSource;
242
245
  }>;
@@ -251,7 +254,7 @@ export declare class DynamicWalletClient {
251
254
  password?: string;
252
255
  signedSessionId: string;
253
256
  }): Promise<{
254
- rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
257
+ rawPublicKey: RawPublicKey;
255
258
  clientKeyShares: ClientKeyShare[];
256
259
  }>;
257
260
  private runKeyGenAttempt;
@@ -268,7 +271,7 @@ export declare class DynamicWalletClient {
268
271
  password?: string;
269
272
  signedSessionId: string;
270
273
  }): Promise<{
271
- rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
274
+ rawPublicKey: RawPublicKey;
272
275
  clientKeyShares: ClientKeyShare[];
273
276
  }>;
274
277
  private runImportRawPrivateKeyAttempt;
@@ -357,6 +360,7 @@ export declare class DynamicWalletClient {
357
360
  traceContext?: TraceContext;
358
361
  bitcoinConfig?: BitcoinConfig;
359
362
  }): Promise<Uint8Array | EcdsaSignature>;
363
+ private getCachedRoomForSign;
360
364
  private internalSign;
361
365
  refreshWalletAccountShares({ accountAddress, chainName, password, signedSessionId, sessionPublicKey, mfaToken, elevatedAccessToken, traceContext, }: {
362
366
  accountAddress: string;
@@ -496,7 +500,7 @@ export declare class DynamicWalletClient {
496
500
  derivationPath?: string;
497
501
  }): Promise<{
498
502
  derivedPrivateKey: string | undefined;
499
- rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
503
+ rawPublicKey: RawPublicKey;
500
504
  }>;
501
505
  /**
502
506
  * Post-backup recoverability check (feature-flagged). Fetches the just-stored
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EAGd,WAAW,EACX,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAO9B,wBAAwB,EACxB,eAAe,EASf,KAAK,sBAAsB,EAE3B,KAAK,oCAAoC,EAEzC,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAExB,KAAK,sBAAsB,EAG5B,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAA2B,MAAM,4BAA4B,CAAC;AAC5G,OAAO,EAA8B,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAkCjG,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAiBxF,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EASL,eAAe,EACf,KAAK,IAAI,EACT,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAiCpB,KAAK,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAYvD;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IACjD,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,qBAAa,mBAAmB;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IAEtB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IACjD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAa;IAEpD,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAQ;IACrE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACtC,4EAA4E;IAC5E,SAAgB,gBAAgB,EAAE,qBAAqB,CAAC;IACxD,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAM;IAC3D,SAAS,CAAC,OAAO,EAAG,gBAAgB,CAAC;IACrC,SAAS,CAAC,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IACjE,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAClD,SAAS,CAAC,iBAAiB,UAAS;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAM;IACzC,6FAA6F;IAC7F,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,CAAM;IAC1E,sGAAsG;IACtG,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAqB;IACtE,yDAAyD;IACzD,OAAO,CAAC,wBAAwB,CAAS;IACzC,8GAA8G;IAC9G,OAAO,CAAC,eAAe,CAA6B;IACpD,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAClD,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAM;IACpD,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACjE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoC;IAIpE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAK;IAEnC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAuB;IAEtD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAwB;IAEpE;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAoC;IAEjF,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAGnD,EACE,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,uBAAuB,EACvB,QAA0B,EAC1B,SAAqB,EACrB,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,8BAA8B,EAC9B,YAAY,EACZ,MAAM,GACP,EAAE,wBAAwB,EAC3B,eAAe,CAAC,EAAE,kCAAkC;IA+GtD;;OAEG;WACW,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAIlE;;OAEG;WACW,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAI3D;;OAEG;WACW,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAInE;;;;;;;;OAQG;WACW,aAAa,IAAI,IAAI;IAMnC;;;;OAIG;WACW,gBAAgB,IAAI,IAAI;IAKtC;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIhF;;;;OAIG;cACa,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuBjH;;;OAGG;IACH,SAAS,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAQpF,WAAW,IAAI,QAAQ;IAI9B;;;OAGG;IACU,sBAAsB;IAInC;;;;OAIG;IACH,2CAA2C;IAC3C,OAAO,CAAC,uBAAuB;IAIzB,iBAAiB,CAAC,SAAS,EAAE,MAAM;IA8CnC,UAAU,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYxE;;OAEG;cACa,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyB7E,sBAAsB,CAAC,EAC3B,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,OAAO,EACP,kBAAkB,GACnB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;KAC9F;IAqDD;;;;;;;;OAQG;YACW,0BAA0B;IAsElC,sBAAsB,CAAC,EAC3B,SAAS,EACT,wBAAwB,EACxB,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAmB/B,eAAe,CAAC,EACpB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IAiB7D;;;;;;;;;;;;;;OAcG;IACG,sBAAsB,CAAC,EAC3B,SAAS,EACT,MAAM,EACN,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;QAClD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,mBAAmB,EAAE,cAAc,EAAE,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;KAClC,CAAC;IAwEF,sFAAsF;IACtF,OAAO,CAAC,oBAAoB;IAKtB,YAAY,CAAC,EACjB,SAAS,EACT,MAAM,EAAE,aAAa,EACrB,eAAe,EAAE,sBAAsB,EACvC,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;QAClD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B;;;;WAIG;QACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KAC5E,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,mBAAmB,EAAE,cAAc,EAAE,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;KAClC,CAAC;IA0HI,MAAM,CAAC,IAAI,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7F,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;YAkBY,gBAAgB;IAkLxB,mBAAmB,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxE,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,4DAA4D;QAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;YAeY,6BAA6B;IAqJrC,UAAU,CAAC,EACf,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,MAAM,EACN,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IA2BD,OAAO,CAAC,2BAA2B;IAsCnC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,0BAA0B;IAO5B,oBAAoB,CAAC,EACzB,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,gBAAgB,EAAE,aAAa,CAAC;QAChC,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;IAsDlC,UAAU,CAAC,EACf,SAAS,EACT,OAAO,EACP,MAAM,EAAE,aAAa,EACrB,QAAQ,EACR,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B;;;;;WAKG;QACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KACrC,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;IA+GxC;;;;;;OAMG;YACW,eAAe;IA0C7B;;;;;;;OAOG;YACW,0BAA0B;IAwHxC;;;;;OAKG;YACW,uBAAuB;IAyB/B,IAAI,CAAC,EACT,cAAc,EACd,OAAO,EACP,SAAS,EACT,QAAoB,EACpB,WAAmB,EACnB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,OAAO,EACP,YAAY,EACZ,aAAa,GACd,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;YAmB1B,YAAY;IAiUpB,0BAA0B,CAAC,EAC/B,cAAc,EACd,SAAS,EACT,QAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B;IAeD;;;;;;;;;OASG;IACH,OAAO,CAAC,gCAAgC;IAsDxC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;YAclB,kCAAkC;YAsOlC,mBAAmB;IAQ3B,WAAW,CAAC,EAChB,SAAS,EACT,cAAc,EACd,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,cAAc,CAAC;QAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IA2BD;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,EACpB,SAAS,EACT,MAAM,EACN,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,gBAAgB,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,4BAA4B,CAAC,EAAE,OAAO,CAAC;KACxC,GAAG,OAAO,CAAC;QACV,0BAA0B,EAAE,sBAAsB,EAAE,CAAC;QACrD,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,uBAAuB,EAAE,cAAc,EAAE,CAAC;KAC3C,CAAC;IAgDI,OAAO,CAAC,EACZ,SAAS,EACT,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAmB,EACnB,4BAAoC,EACpC,QAAQ,EACR,mBAAmB,EACnB,gBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,GACvB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;QAClC,4BAA4B,CAAC,EAAE,OAAO,CAAC;QACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;KACtD;IAqBD;mFAC+E;IACzE,0BAA0B,CAAC,EAC/B,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,UAAmD,EACnD,oBAAoB,EACpB,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,yBAAyB,CAAC;QACvC,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA+NnC,OAAO,CAAC,6BAA6B;IA8CrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;YAiFpB,6BAA6B;IA4C3C,OAAO,CAAC,iCAAiC;IAyEzC,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,oCAAoC;YAkC9B,eAAe;YAibf,0BAA0B;IA2ElC,iBAAiB,CAAC,EACtB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IA0CK,gBAAgB,CAAC,EACrB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IA0DD,OAAO,CAAC,kBAAkB;IAgBpB,SAAS,CAAC,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,QAAoB,EACpB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,GAAG,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;YAiB5B,iBAAiB;cA8Jf,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;cAsBrE,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,cAAc,EACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM;cA0BH,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAgBzG,gBAAgB,CAAC,EACrB,SAAS,EACT,SAAS,EACT,cAAc,GACf,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,cAAc,EAAE,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;KAChE,CAAC;IAuDF;;;;;;;;;;;OAWG;YACW,2BAA2B;IA4FnC,eAAe,CAAC,EACpB,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,EAAE;QACD,QAAQ,EAAE,cAAc,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,oFAAoF;QACpF,OAAO,CAAC,EAAE,iBAAiB,CAAC;KAC7B;IAaD;;OAEG;YACW,kCAAkC;IAsChD;;;OAGG;IACG,6BAA6B,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiC9G;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,wBAAwB,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,SAAS,EACT,wBAAwB,EACxB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,eAAoB,GACrB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC3C,GAAG,IAAI;IAwBR;;;OAGG;IACH;;OAEG;IACH,OAAO,CAAC,mBAAmB;YAgBb,gCAAgC;IAe9C;;;;;;;OAOG;IACG,2BAA2B,CAAC,EAChC,cAAc,EACd,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BjB;;;;;;;OAOG;YACW,iBAAiB;YAoBjB,sBAAsB;YAqFtB,0BAA0B;IAqCxC;;;;;;;OAOG;YACW,4BAA4B;YAY5B,qBAAqB;YA0DrB,qBAAqB;IA4DnC,OAAO,CAAC,gCAAgC;IAsBlC,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,yBAAiC,EACjC,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QAGzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,iBAAiB,CAAC;QAChC,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;QACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gGAAgG;QAChG,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC;;;;;;;;;8BAhmJqB,CAAC;;;YAq8JT,yBAAyB;IAyFvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAmB,EACnB,iBAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;QAClC,iBAAiB,CAAC,EAAE,cAAc,CAAC;QACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;QACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gGAAgG;QAChG,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC;;;;;;;;;;;8BAzlKqB,CAAC;;;IAyrKvB,OAAO,CAAC,mBAAmB;YAUb,qBAAqB;IAcnC,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,2BAA2B;IAqB7B,cAAc,CAAC,EACnB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IAmDK,WAAW,CAAC,EAChB,cAAc,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IA0CK,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAuC/G;;;;;;;OAOG;IACH;;;;OAIG;YACW,sCAAsC;IAgEpD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,sBAAsB;cAMd,uCAAuC,CAAC,EACtD,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCjB;;;;OAIG;cACa,iCAAiC,CAAC,EAChD,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BjB;;;;;OAKG;YACW,8BAA8B;YAmC9B,2BAA2B;IAKzC;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EACd,wBAAwB,EACxB,wBAAwB,EACxB,eAAe,EACf,UAAsB,GACvB,EAAE;QACD,wBAAwB,EAAE,kBAAkB,CAAC;QAC7C,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,eAAe,EAAE,eAAe,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG;QACF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,kBAAkB,EAAE,MAAM,CAAC;KAC5B;IA2CK,8BAA8B,CAAC,EACnC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,eAAe,EACf,UAAsB,EACtB,oBAA2B,EAC3B,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,eAAe,CAAC;QACjC,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAc7B;;;;;OAKG;YACW,oCAAoC;YAoCpC,sCAAsC;IAiG9C,cAAc;IAmCpB;;;;;OAKG;YACW,8BAA8B;IA+E5C;;;;;OAKG;YACW,6BAA6B;IA6D3C;;;;;OAKG;YACW,wBAAwB;IAwBtC;;;;;OAKG;YACW,iCAAiC;IAkC/C;;;;;;;;;;;OAWG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CjB;;;;;;;;OAQG;YACW,0BAA0B;IAyCxC;;;;;;;;;OASG;IACG,uBAAuB,CAAC,EAC5B,cAAc,EACd,QAAQ,EACR,eAAe,EACf,gBAAgB,GACjB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjB;;;;;;;OAOG;YACW,qBAAqB;IA8BnC;;;;;;;;;;;;OAYG;YACW,4BAA4B;IAsD1C;;;;;;OAMG;YACW,uBAAuB;IAkC/B,oCAAoC,CAAC,EACzC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IAyGX,qBAAqB,CAAC,EAC1B,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAmCK,kBAAkB,CAAC,EACvB,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAYD;;;;;OAKG;YACW,iBAAiB;IAsD/B;;;;OAIG;IACG,cAAc,CAAC,EACnB,cAAc,EACd,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAwBK,mBAAmB,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3F;;OAEG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAAiD,GAClD,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpB;;OAEG;IACG,uCAAuC,CAAC,EAC5C,cAAc,EACd,eAAiD,GAClD,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;YAsBN,+BAA+B;IASvC,iCAAiC,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAwBtG,0BAA0B;IAYlC,SAAS,CAAC,EACd,cAAc,EACd,eAA8C,EAC9C,UAAsB,EACtB,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8L7B;;;;;;;;;;;;;;;OAeG;IACG,sBAAsB,CAAC,EAC3B,cAAc,EACd,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4ChC;;;;;OAKG;YACW,4BAA4B;IAiD1C;;;;;;;;OAQG;IACG,YAAY,CAAC,EACjB,cAAc,EACd,QAAQ,EACR,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmI7B;;OAEG;YACW,2BAA2B;IA8BnC,aAAa,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAInD;;;;OAIG;IACG,2BAA2B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAKnD,UAAU;IA6FhB;;;;;;;;;;;;;;;;;;;;;OAqBG;YACW,wBAAwB;IA8EtC;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM;IAQzB,WAAW,CAAC,EAChB,QAAQ,EACR,wBAAwB,EACxB,SAAa,GACd,EAAE;QACD,QAAQ,EAAE,YAAY,CAAC;QACvB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IAsEK,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAiC/C,QAAQ,CACZ,QAAQ,CAAC,EAAE,YAAY,EACvB,wBAAwB,CAAC,EAAE,wBAAwB,GAClD,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAQrC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;IAKrD;;;;OAIG;IACH,OAAO,CAAC,YAAY;IASpB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,MAAM;IAKhG,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IA8DpH,eAAe,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAQ3F"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EAGd,WAAW,EACX,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAO9B,wBAAwB,EACxB,eAAe,EASf,KAAK,sBAAsB,EAE3B,KAAK,oCAAoC,EAEzC,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAExB,KAAK,sBAAsB,EAG5B,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAA2B,MAAM,4BAA4B,CAAC;AAC5G,OAAO,EAA8B,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAmCjG,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAiBxF,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EASL,eAAe,EACf,KAAK,IAAI,EACT,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAqBpB,KAAK,YAAY,GAAG,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAerE,KAAK,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAYvD;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IACjD,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,qBAAa,mBAAmB;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IAEtB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IACjD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAa;IAEpD,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAQ;IACrE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACtC,4EAA4E;IAC5E,SAAgB,gBAAgB,EAAE,qBAAqB,CAAC;IACxD,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAM;IAC3D,SAAS,CAAC,OAAO,EAAG,gBAAgB,CAAC;IACrC,SAAS,CAAC,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IACjE,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAClD,SAAS,CAAC,iBAAiB,UAAS;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAM;IACzC,6FAA6F;IAC7F,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,CAAM;IAC1E,sGAAsG;IACtG,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAqB;IACtE,yDAAyD;IACzD,OAAO,CAAC,wBAAwB,CAAS;IACzC,8GAA8G;IAC9G,OAAO,CAAC,eAAe,CAA6B;IACpD,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAClD,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAM;IACpD,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACjE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoC;IAIpE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAS;IAIzC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAK;IAEnC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAuB;IAEtD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAwB;IAEpE;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAoC;IAEjF,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAGnD,EACE,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,uBAAuB,EACvB,QAA0B,EAC1B,SAAqB,EACrB,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,8BAA8B,EAC9B,YAAY,EACZ,MAAM,GACP,EAAE,wBAAwB,EAC3B,eAAe,CAAC,EAAE,kCAAkC;IA2FtD,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;WACW,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAIlE;;OAEG;WACW,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAI3D;;OAEG;WACW,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAInE;;;;;;;;OAQG;WACW,aAAa,IAAI,IAAI;IAOnC;;;;OAIG;WACW,gBAAgB,IAAI,IAAI;IAKtC;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIhF;;;;OAIG;cACa,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuBjH;;;OAGG;IACH,SAAS,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAQpF,WAAW,IAAI,QAAQ;IAI9B;;;OAGG;IACU,sBAAsB;IAInC;;;;OAIG;IACH,2CAA2C;IAC3C,OAAO,CAAC,uBAAuB;IAIzB,iBAAiB,CAAC,SAAS,EAAE,MAAM;IA8CnC,UAAU,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYxE;;OAEG;cACa,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyB7E,sBAAsB,CAAC,EAC3B,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,OAAO,EACP,kBAAkB,GACnB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;KAC9F;IAmED;;;;;;;;OAQG;YACW,0BAA0B;IA+GlC,sBAAsB,CAAC,EAC3B,SAAS,EACT,wBAAwB,EACxB,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAmB/B,eAAe,CAAC,EACpB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBzB;;;;;;;;;;;;;;OAcG;IACG,sBAAsB,CAAC,EAC3B,SAAS,EACT,MAAM,EACN,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;QAClD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,YAAY,CAAC;QAC3B,mBAAmB,EAAE,cAAc,EAAE,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;KAClC,CAAC;IAwEF,sFAAsF;IACtF,OAAO,CAAC,oBAAoB;IAKtB,YAAY,CAAC,EACjB,SAAS,EACT,MAAM,EAAE,aAAa,EACrB,eAAe,EAAE,sBAAsB,EACvC,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;QAClD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B;;;;WAIG;QACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KAC5E,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,YAAY,CAAC;QAC3B,mBAAmB,EAAE,cAAc,EAAE,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;KAClC,CAAC;IAmHI,MAAM,CAAC,IAAI,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7F,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,YAAY,CAAC;QAC3B,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;YAkBY,gBAAgB;IA0LxB,mBAAmB,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxE,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,4DAA4D;QAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,YAAY,CAAC;QAC3B,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;YAeY,6BAA6B;IAqJrC,UAAU,CAAC,EACf,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,MAAM,EACN,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IA2BD,OAAO,CAAC,2BAA2B;IAsCnC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,0BAA0B;IAO5B,oBAAoB,CAAC,EACzB,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,gBAAgB,EAAE,aAAa,CAAC;QAChC,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;IAsDlC,UAAU,CAAC,EACf,SAAS,EACT,OAAO,EACP,MAAM,EAAE,aAAa,EACrB,QAAQ,EACR,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B;;;;;WAKG;QACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KACrC,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;IA+GxC;;;;;;OAMG;YACW,eAAe;IA0C7B;;;;;;;OAOG;YACW,0BAA0B;IAwHxC;;;;;OAKG;YACW,uBAAuB;IAyB/B,IAAI,CAAC,EACT,cAAc,EACd,OAAO,EACP,SAAS,EACT,QAAoB,EACpB,WAAmB,EACnB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,OAAO,EACP,YAAY,EACZ,aAAa,GACd,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;YAmB1B,oBAAoB;YAyBpB,YAAY;IAuWpB,0BAA0B,CAAC,EAC/B,cAAc,EACd,SAAS,EACT,QAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B;IAeD;;;;;;;;;OASG;IACH,OAAO,CAAC,gCAAgC;IAsDxC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;YAclB,kCAAkC;YAsOlC,mBAAmB;IAQ3B,WAAW,CAAC,EAChB,SAAS,EACT,cAAc,EACd,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,cAAc,CAAC;QAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IA2BD;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,EACpB,SAAS,EACT,MAAM,EACN,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,gBAAgB,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,4BAA4B,CAAC,EAAE,OAAO,CAAC;KACxC,GAAG,OAAO,CAAC;QACV,0BAA0B,EAAE,sBAAsB,EAAE,CAAC;QACrD,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,uBAAuB,EAAE,cAAc,EAAE,CAAC;KAC3C,CAAC;IAgDI,OAAO,CAAC,EACZ,SAAS,EACT,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAmB,EACnB,4BAAoC,EACpC,QAAQ,EACR,mBAAmB,EACnB,gBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,GACvB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;QAClC,4BAA4B,CAAC,EAAE,OAAO,CAAC;QACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;KACtD;IAqBD;mFAC+E;IACzE,0BAA0B,CAAC,EAC/B,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,UAAmD,EACnD,oBAAoB,EACpB,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,yBAAyB,CAAC;QACvC,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA+NnC,OAAO,CAAC,6BAA6B;IA8CrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;YAiFpB,6BAA6B;IA4C3C,OAAO,CAAC,iCAAiC;IAyEzC,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,oCAAoC;YAkC9B,eAAe;YAibf,0BAA0B;IA2ElC,iBAAiB,CAAC,EACtB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IA0CK,gBAAgB,CAAC,EACrB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IA0DD,OAAO,CAAC,kBAAkB;IAgBpB,SAAS,CAAC,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,QAAoB,EACpB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,GAAG,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;YAiB5B,iBAAiB;cA8Jf,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;cAsBrE,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,cAAc,EACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM;cA0BH,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAgBzG,gBAAgB,CAAC,EACrB,SAAS,EACT,SAAS,EACT,cAAc,GACf,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,cAAc,EAAE,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,YAAY,EAAE,YAAY,CAAC;KAC5B,CAAC;IAuDF;;;;;;;;;;;OAWG;YACW,2BAA2B;IA4FnC,eAAe,CAAC,EACpB,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,EAAE;QACD,QAAQ,EAAE,cAAc,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,oFAAoF;QACpF,OAAO,CAAC,EAAE,iBAAiB,CAAC;KAC7B;IAaD;;OAEG;YACW,kCAAkC;IAsChD;;;OAGG;IACG,6BAA6B,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiC9G;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,wBAAwB,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,SAAS,EACT,wBAAwB,EACxB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,eAAoB,GACrB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC3C,GAAG,IAAI;IAwBR;;;OAGG;IACH;;OAEG;IACH,OAAO,CAAC,mBAAmB;YAgBb,gCAAgC;IAe9C;;;;;;;OAOG;IACG,2BAA2B,CAAC,EAChC,cAAc,EACd,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BjB;;;;;;;OAOG;YACW,iBAAiB;YAoBjB,sBAAsB;YAqFtB,0BAA0B;IAqCxC;;;;;;;OAOG;YACW,4BAA4B;YAY5B,qBAAqB;YA0DrB,qBAAqB;IA4DnC,OAAO,CAAC,gCAAgC;IAsBlC,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,yBAAiC,EACjC,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QAGzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,iBAAiB,CAAC;QAChC,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;QACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gGAAgG;QAChG,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC;;;;;;;;;8BAjuJuB,CAAC;;;YAskKX,yBAAyB;IAyFvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAmB,EACnB,iBAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;QAClC,iBAAiB,CAAC,EAAE,cAAc,CAAC;QACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;QACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gGAAgG;QAChG,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC;;;;;;;;;;;8BA1tKuB,CAAC;;;IA0zKzB,OAAO,CAAC,mBAAmB;YAUb,qBAAqB;IAcnC,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,2BAA2B;IAqB7B,cAAc,CAAC,EACnB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IAmDK,WAAW,CAAC,EAChB,cAAc,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IA0CK,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAuC/G;;;;;;;OAOG;IACH;;;;OAIG;YACW,sCAAsC;IAgEpD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,sBAAsB;cAMd,uCAAuC,CAAC,EACtD,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCjB;;;;OAIG;cACa,iCAAiC,CAAC,EAChD,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BjB;;;;;OAKG;YACW,8BAA8B;YAmC9B,2BAA2B;IAKzC;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EACd,wBAAwB,EACxB,wBAAwB,EACxB,eAAe,EACf,UAAsB,GACvB,EAAE;QACD,wBAAwB,EAAE,kBAAkB,CAAC;QAC7C,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,eAAe,EAAE,eAAe,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG;QACF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,kBAAkB,EAAE,MAAM,CAAC;KAC5B;IA2CK,8BAA8B,CAAC,EACnC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,eAAe,EACf,UAAsB,EACtB,oBAA2B,EAC3B,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,eAAe,CAAC;QACjC,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAc7B;;;;;OAKG;YACW,oCAAoC;YAoCpC,sCAAsC;IAiG9C,cAAc;IAmCpB;;;;;OAKG;YACW,8BAA8B;IA+E5C;;;;;OAKG;YACW,6BAA6B;IA6D3C;;;;;OAKG;YACW,wBAAwB;IAwBtC;;;;;OAKG;YACW,iCAAiC;IAkC/C;;;;;;;;;;;OAWG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CjB;;;;;;;;OAQG;YACW,0BAA0B;IAyCxC;;;;;;;;;OASG;IACG,uBAAuB,CAAC,EAC5B,cAAc,EACd,QAAQ,EACR,eAAe,EACf,gBAAgB,GACjB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjB;;;;;;;OAOG;YACW,qBAAqB;IA8BnC;;;;;;;;;;;;OAYG;YACW,4BAA4B;IAsD1C;;;;;;OAMG;YACW,uBAAuB;IAkC/B,oCAAoC,CAAC,EACzC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IAyGX,qBAAqB,CAAC,EAC1B,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAmCK,kBAAkB,CAAC,EACvB,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAYD;;;;;OAKG;YACW,iBAAiB;IAsD/B;;;;OAIG;IACG,cAAc,CAAC,EACnB,cAAc,EACd,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAwBK,mBAAmB,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3F;;OAEG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAAiD,GAClD,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpB;;OAEG;IACG,uCAAuC,CAAC,EAC5C,cAAc,EACd,eAAiD,GAClD,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;YAsBN,+BAA+B;IASvC,iCAAiC,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAwBtG,0BAA0B;IAYlC,SAAS,CAAC,EACd,cAAc,EACd,eAA8C,EAC9C,UAAsB,EACtB,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8L7B;;;;;;;;;;;;;;;OAeG;IACG,sBAAsB,CAAC,EAC3B,cAAc,EACd,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4ChC;;;;;OAKG;YACW,4BAA4B;IAiD1C;;;;;;;;OAQG;IACG,YAAY,CAAC,EACjB,cAAc,EACd,QAAQ,EACR,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmI7B;;OAEG;YACW,2BAA2B;IA8BnC,aAAa,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAInD;;;;OAIG;IACG,2BAA2B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAKnD,UAAU;IA6FhB;;;;;;;;;;;;;;;;;;;;;OAqBG;YACW,wBAAwB;IA8EtC;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM;IAQzB,WAAW,CAAC,EAChB,QAAQ,EACR,wBAAwB,EACxB,SAAa,GACd,EAAE;QACD,QAAQ,EAAE,YAAY,CAAC;QACvB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IAsEK,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAuC/C,QAAQ,CACZ,QAAQ,CAAC,EAAE,YAAY,EACvB,wBAAwB,CAAC,EAAE,wBAAwB,GAClD,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAQrC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;IAKrD;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAiBpB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,MAAM;IAKhG,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IA8DpH,eAAe,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAQ3F"}
@@ -0,0 +1,6 @@
1
+ export declare const WAAS_HTTPS_TRANSPORT = "http";
2
+ export type WaasErrorKind = 'mpc_timeout' | 'poll_timeout' | 'transient_exhausted' | 'wallet_not_active' | 'unknown';
3
+ export declare const classifyWaasErrorKind: (error: unknown) => WaasErrorKind;
4
+ export declare const classifyTransientPollError: (error: unknown) => WaasErrorKind;
5
+ export declare const buildHttpCeremonyMeta: (fields: Record<string, unknown>) => Record<string, unknown>;
6
+ //# sourceMappingURL=observability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../packages/src/observability.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAMrH,eAAO,MAAM,qBAAqB,UAAW,OAAO,KAAG,aAOtD,CAAC;AAKF,eAAO,MAAM,0BAA0B,UAAW,OAAO,KAAG,aAI3D,CAAC;AAKF,eAAO,MAAM,qBAAqB,WAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAG5F,CAAC"}
package/src/utils.d.ts CHANGED
@@ -123,6 +123,15 @@ export declare const isPublicKeyMismatchError: (error: unknown) => boolean;
123
123
  * object (see createErrorFromEventData), so `code` is available here.
124
124
  */
125
125
  export declare const isStaleClientSharesError: (error: unknown) => boolean;
126
+ /**
127
+ * Detects the server's 409 ROOM_ID_ALREADY_USED rejection. The client
128
+ * may cache pre-created roomIds locally; if a cached roomId becomes
129
+ * stale (e.g. localStorage restoration after an iframe reload, or a
130
+ * write failure in a restricted storage context), the server rejects
131
+ * the claim with this code. The SDK retries without the stale roomId
132
+ * so the server creates a fresh room.
133
+ */
134
+ export declare const isRoomIdAlreadyUsedError: (error: unknown) => boolean;
126
135
  /**
127
136
  * Determines whether a reshare operation should reuse the wallet's existing backup locations.
128
137
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,cAAc,EAId,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAkBhD,eAAO,MAAM,SAAS,eAAsC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,aAAa,WAAY,GAAG,KAAG,UAAU,GAAG,cAsBxD,CAAC;AAEF,eAAO,MAAM,+BAA+B,iEAIzC;IACD,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,WAGA,CAAC;AAEF,eAAO,MAAM,2BAA2B,YAAa;IACnD,gBAAgB,EAAE,oBAAoB,CAAC;CACxC,KAAG,kBAoCH,CAAC;AAEF,eAAO,MAAM,cAAc,2BAAyC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,qBAI1G,CAAC;AAMF,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E;AA8CD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,EAAE,WAAe,EAAE,aAAmB,EAAE,aAA2B,EAAE,UAAe,EAAE,WAAW,EAAE,GAAE,WAAgB,GACpH,OAAO,CAAC,CAAC,CAAC,CA0DZ;AAED;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,UAAW,OAAO,KAAG,OAc5D,CAAC;AAwCF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,IAI9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAAa,MAAM,GAAG,UAAU,gBAO5D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,YAAa,MAAM,GAAG,UAAU,gBAA8B,CAAC;AAE7F,eAAO,MAAM,WAAW,QAAS,MAAM,YAKtC,CAAC;AA8BF,eAAO,MAAM,aAAa,cAAe,MAAM,WAAW,MAAM,GAAG,UAAU,KAAG,MAAM,GAAG,UAAU,GAAG,WAoBrG,CAAC;AAEF,eAAO,MAAM,uBAAuB,wBAAyB,qBAAqB,EAAE,KAAG,MAAM,GAAG,SAM/F,CAAC;AAEF,eAAO,MAAM,gBAAgB,mFAK1B;IACD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;;;;;;;;;;;CAaA,CAAC;AAEF,eAAO,MAAM,oBAAoB,qCAI9B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,SAQA,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,6CAIlC;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,OAAO,EAAE;QAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC/E,KAAG,OAAO,CAAC,OAAO,CAOlB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,UAAW,OAAO,KAAG,OAKzD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,UAAW,OAAO,KAAG,OAKzD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,UAAW,OAAO,KAAG,OAKzD,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,0BAA0B,gHAKpC;IACD,2BAA2B,EAAE,wBAAwB,CAAC;IACtD,2BAA2B,EAAE,wBAAwB,CAAC;IACtD,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC,KAAG,OAKH,CAAC"}