@dynamic-labs-wallet/browser 1.0.28 → 1.0.29

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
@@ -2760,7 +2760,7 @@ class DynamicWalletClient {
2760
2760
  };
2761
2761
  }
2762
2762
  }
2763
- async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete }) {
2763
+ async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete }) {
2764
2764
  // Initialize keygen, create room, and create the wallet account on the server
2765
2765
  const data = await this.apiClient.createWalletAccount({
2766
2766
  chainName,
@@ -2768,6 +2768,7 @@ class DynamicWalletClient {
2768
2768
  dynamicRequestId,
2769
2769
  thresholdSignatureScheme,
2770
2770
  bitcoinConfig,
2771
+ businessAccountId,
2771
2772
  onError,
2772
2773
  onCeremonyComplete
2773
2774
  });
@@ -2992,7 +2993,7 @@ class DynamicWalletClient {
2992
2993
  shouldRetry: (error)=>!isNonRetryableCeremonyError(error)
2993
2994
  });
2994
2995
  }
2995
- async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, onCeremonyComplete, traceContext, password, signedSessionId }) {
2996
+ async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onCeremonyComplete, traceContext, password, signedSessionId }) {
2996
2997
  const dynamicRequestId = uuid.v4();
2997
2998
  try {
2998
2999
  this.assertPasswordRequired(password);
@@ -3022,6 +3023,7 @@ class DynamicWalletClient {
3022
3023
  dynamicRequestId,
3023
3024
  thresholdSignatureScheme,
3024
3025
  bitcoinConfig,
3026
+ businessAccountId,
3025
3027
  onCeremonyComplete
3026
3028
  });
3027
3029
  this.logger.info('[DynamicWaasWalletClient] Server key generation initialized', _extends({
@@ -3052,6 +3054,7 @@ class DynamicWalletClient {
3052
3054
  dynamicRequestId,
3053
3055
  thresholdSignatureScheme,
3054
3056
  bitcoinConfig,
3057
+ businessAccountId,
3055
3058
  onCeremonyComplete
3056
3059
  })
3057
3060
  });
@@ -3729,7 +3732,7 @@ class DynamicWalletClient {
3729
3732
  // would race ceremony_complete and the atomic swap could target the stale
3730
3733
  // row. refresh's API call returns on room_created (not the local MPC
3731
3734
  // result), so the gate await sits between the local MPC and the backup.
3732
- const ceremonyGate = this.createCeremonyTerminalGate((_accountAddress, _walletId, shareSetId, shareSetType)=>{
3735
+ const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
3733
3736
  this.logger.info('[WaasRefresh] ceremony_complete received', {
3734
3737
  context: {
3735
3738
  walletId: wallet.walletId,
@@ -3949,6 +3952,227 @@ class DynamicWalletClient {
3949
3952
  googleDriveTokenSource
3950
3953
  }));
3951
3954
  }
3955
+ /** Reshare into a new 2/2 share set for the target signer; seed it to CKS
3956
+ * on their behalf via a single-use grant. Does not touch the caller's set. */ async reshareToNewSignerShareSet({ chainName, accountAddress, businessAccountId, signerType = 'endUser', targetSignerIdentity, password = undefined, signedSessionId }) {
3957
+ var _backup_keyShareIds;
3958
+ const dynamicRequestId = uuid.v4();
3959
+ const ceremonyStartTime = Date.now();
3960
+ // Log identifier shape only — value may be email/phone.
3961
+ const logContext = {
3962
+ dynamicRequestId,
3963
+ businessAccountId,
3964
+ chainName,
3965
+ accountAddress,
3966
+ signerType,
3967
+ identityMode: targetSignerIdentity.userId ? 'userId' : 'identifier',
3968
+ identifierType: targetSignerIdentity.identifierType
3969
+ };
3970
+ this.logger.info('[BusinessAccountAddSigner] start reshareToNewSignerShareSet', {
3971
+ context: logContext
3972
+ });
3973
+ const wallet = await this.getWallet({
3974
+ accountAddress,
3975
+ walletOperation: core.WalletOperation.REACH_ALL_PARTIES,
3976
+ password,
3977
+ signedSessionId
3978
+ });
3979
+ const walletId = wallet.walletId;
3980
+ const currentScheme = this.getWalletFromMap(accountAddress).thresholdSignatureScheme;
3981
+ const bitcoinConfig = this.getBitcoinConfigForChain(chainName, accountAddress);
3982
+ // Same-parties reshare — only the caller's share participates.
3983
+ const [existingClientShare] = await this.ensureClientShare(accountAddress);
3984
+ const existingClientKeygenId = await this.getExportId({
3985
+ chainName,
3986
+ clientKeyShare: existingClientShare,
3987
+ bitcoinConfig
3988
+ });
3989
+ // Gate matches internalRefresh/Reshare — SSE error rejects awaitTerminal.
3990
+ let newShareSetId;
3991
+ let resolvedTargetUserId;
3992
+ let clientKeyshareBackupGrant;
3993
+ const ceremonyGate = this.createCeremonyTerminalGate((payload)=>{
3994
+ newShareSetId = payload.shareSetId;
3995
+ resolvedTargetUserId = payload.targetUserId;
3996
+ clientKeyshareBackupGrant = payload.clientKeyshareBackupGrant;
3997
+ this.logger.info('[BusinessAccountAddSigner] ceremony_complete received', {
3998
+ context: _extends({}, logContext, {
3999
+ walletId,
4000
+ newShareSetId: payload.shareSetId,
4001
+ shareSetType: payload.shareSetType,
4002
+ hasTargetUserId: !!payload.targetUserId,
4003
+ hasClientKeyshareBackupGrant: !!payload.clientKeyshareBackupGrant
4004
+ })
4005
+ });
4006
+ });
4007
+ const data = await this.apiClient.addBusinessAccountSignerCeremony({
4008
+ businessAccountId,
4009
+ walletId,
4010
+ clientKeygenIds: [
4011
+ existingClientKeygenId
4012
+ ],
4013
+ oldThresholdSignatureScheme: currentScheme,
4014
+ signerType,
4015
+ userId: targetSignerIdentity.userId,
4016
+ identifier: targetSignerIdentity.identifier,
4017
+ identifierType: targetSignerIdentity.identifierType,
4018
+ dynamicRequestId,
4019
+ onError: ceremonyGate.onError,
4020
+ onCeremonyComplete: ceremonyGate.onCeremonyComplete
4021
+ });
4022
+ const { roomId, serverKeygenIds, newServerKeygenIds = [] } = data;
4023
+ const newMpcConfig = core.MPC_CONFIG[core.ThresholdSignatureScheme.TWO_OF_TWO];
4024
+ const allPartyKeygenIds = [
4025
+ existingClientKeygenId,
4026
+ ...serverKeygenIds,
4027
+ ...newServerKeygenIds
4028
+ ];
4029
+ const mpcSigner = getMPCSigner({
4030
+ chainName,
4031
+ baseRelayUrl: this.baseMPCRelayApiUrl,
4032
+ bitcoinConfig
4033
+ });
4034
+ const newSignerClientShare = await mpcSigner.reshareRemainingParty(roomId, newMpcConfig.threshold, existingClientShare, allPartyKeygenIds);
4035
+ try {
4036
+ await ceremonyGate.awaitTerminal();
4037
+ } catch (streamError) {
4038
+ this.logger.error('[BusinessAccountAddSigner] ceremony stream error', {
4039
+ context: _extends({}, logContext, {
4040
+ walletId,
4041
+ roomId,
4042
+ error: streamError instanceof Error ? streamError.message : String(streamError),
4043
+ failure_reason: 'ceremony_stream_error'
4044
+ })
4045
+ });
4046
+ throw streamError;
4047
+ }
4048
+ if (!newShareSetId) {
4049
+ this.logger.error('[BusinessAccountAddSigner] ceremony_complete missing shareSetId', {
4050
+ context: _extends({}, logContext, {
4051
+ walletId,
4052
+ roomId,
4053
+ failure_reason: 'ceremony_complete_missing_share_set_id'
4054
+ })
4055
+ });
4056
+ throw new Error('addSigner reshare did not return a shareSetId');
4057
+ }
4058
+ // Target has no password yet — encryptKeyShare falls back to the env-default key.
4059
+ const encrypted = await this.encryptKeyShare({
4060
+ keyShare: newSignerClientShare
4061
+ });
4062
+ // Server contract: targetUserId is always set on successful ceremony_complete.
4063
+ if (!resolvedTargetUserId) {
4064
+ this.logger.error('[BusinessAccountAddSigner] no target userId resolved for on-behalf backup', {
4065
+ context: _extends({}, logContext, {
4066
+ walletId,
4067
+ newShareSetId,
4068
+ failure_reason: 'no_target_user_id_resolved'
4069
+ })
4070
+ });
4071
+ throw new Error('addSigner ceremony did not resolve a target userId for the on-behalf backup');
4072
+ }
4073
+ const targetUserId = resolvedTargetUserId;
4074
+ this.logger.info('[BusinessAccountAddSigner] backupOnBehalfOfAddedSigner -> client-keyshare-service', {
4075
+ context: _extends({}, logContext, {
4076
+ walletId,
4077
+ newShareSetId,
4078
+ hasClientKeyshareBackupGrant: !!clientKeyshareBackupGrant
4079
+ })
4080
+ });
4081
+ // Grant is primary auth; signedSession is belt-and-suspenders. Refresh-on-400
4082
+ // handles nonce reuse; transient 429/5xx retry via alsoRetry. 401/403 = grant
4083
+ // rejected (single-use, not replayable) → caller must re-run addSigner.
4084
+ let backup;
4085
+ try {
4086
+ let resolvedSignedSessionId = signedSessionId;
4087
+ backup = await retryPromise(()=>this.apiClient.backupOnBehalfOfAddedSigner({
4088
+ walletId,
4089
+ targetUserId,
4090
+ encryptedAccountCredentials: [
4091
+ encrypted
4092
+ ],
4093
+ passwordEncrypted: false,
4094
+ encryptionVersion: ENCRYPTION_VERSION_CURRENT,
4095
+ clientKeyshareBackupGrant,
4096
+ signedSessionId: resolvedSignedSessionId,
4097
+ dynamicRequestId
4098
+ }), {
4099
+ operationName: 'backupOnBehalfOfAddedSigner',
4100
+ shouldRetry: this.signedSession.refreshShouldRetry({
4101
+ onRefreshed: (id)=>{
4102
+ resolvedSignedSessionId = id;
4103
+ },
4104
+ operationName: 'backupOnBehalfOfAddedSigner',
4105
+ logContext: _extends({}, logContext, {
4106
+ walletId,
4107
+ dynamicRequestId
4108
+ }),
4109
+ alsoRetry: (status)=>status === undefined || status === 429 || status !== undefined && status >= 500
4110
+ })
4111
+ });
4112
+ } catch (err) {
4113
+ var _err_response;
4114
+ const status = err == null ? void 0 : (_err_response = err.response) == null ? void 0 : _err_response.status;
4115
+ if (clientKeyshareBackupGrant && (status === 401 || status === 403)) {
4116
+ this.logger.error('[BusinessAccountAddSigner] client_keyshare_backup_grant_exhausted', {
4117
+ context: _extends({}, logContext, {
4118
+ walletId,
4119
+ newShareSetId,
4120
+ status,
4121
+ failure_reason: 'grant_exhausted'
4122
+ })
4123
+ });
4124
+ }
4125
+ throw err;
4126
+ }
4127
+ const externalKeyShareId = (_backup_keyShareIds = backup.keyShareIds) == null ? void 0 : _backup_keyShareIds[0];
4128
+ if (!externalKeyShareId) {
4129
+ this.logger.error('[BusinessAccountAddSigner] on-behalf backup returned no keyShareId', {
4130
+ context: _extends({}, logContext, {
4131
+ walletId,
4132
+ newShareSetId,
4133
+ failure_reason: 'cks_write_no_keyshare_id'
4134
+ })
4135
+ });
4136
+ throw new Error('on-behalf backup did not return a keyShareId');
4137
+ }
4138
+ this.logger.info('[BusinessAccountAddSigner] on-behalf backup stored', {
4139
+ context: _extends({}, logContext, {
4140
+ walletId,
4141
+ newShareSetId,
4142
+ externalKeyShareId
4143
+ })
4144
+ });
4145
+ // Activate the share-set ↔ keyShareId mapping on redcoast.
4146
+ await retryPromise(()=>this.apiClient.markKeySharesAsBackedUp({
4147
+ walletId,
4148
+ shareSetId: newShareSetId,
4149
+ locations: [
4150
+ {
4151
+ location: core.BackupLocation.DYNAMIC,
4152
+ externalKeyShareId
4153
+ }
4154
+ ],
4155
+ dynamicRequestId,
4156
+ businessAccountId
4157
+ }), {
4158
+ operationName: 'addSigner.markKeySharesAsBackedUp',
4159
+ shouldRetry: (error)=>{
4160
+ const status = getHttpStatus(error);
4161
+ return status === undefined || status === 429 || status !== undefined && status >= 500;
4162
+ }
4163
+ });
4164
+ this.logger.info('[BusinessAccountAddSigner] done — share set activated', {
4165
+ context: _extends({}, logContext, {
4166
+ walletId,
4167
+ newShareSetId,
4168
+ externalKeyShareId,
4169
+ ceremony_duration_ms: Date.now() - ceremonyStartTime
4170
+ })
4171
+ });
4172
+ return {
4173
+ shareSetId: newShareSetId
4174
+ };
4175
+ }
3952
4176
  // Surfaces server-side bugs in the ceremony_complete payload without
3953
4177
  // breaking the operation. The two cases:
3954
4178
  //
@@ -4002,7 +4226,10 @@ class DynamicWalletClient {
4002
4226
  // The reject handle is wired synchronously (Promise executors run inline)
4003
4227
  // before the API call starts, so an immediate onError can never be dropped.
4004
4228
  // The lost branch's rejection is swallowed so it never surfaces as unhandled.
4005
- createCeremonyTerminalGate(onCeremonyComplete) {
4229
+ /**
4230
+ * Ceremony-complete payload — typed object so addSigner-only fields are
4231
+ * namespaced and `clientKeyshareBackupGrant` never sits in a positional slot.
4232
+ */ createCeremonyTerminalGate(onCeremonyComplete) {
4006
4233
  let resolveComplete;
4007
4234
  const completePromise = new Promise((resolve)=>{
4008
4235
  resolveComplete = resolve;
@@ -4016,9 +4243,19 @@ class DynamicWalletClient {
4016
4243
  let fired = false;
4017
4244
  return {
4018
4245
  onError: rejectOnError,
4019
- onCeremonyComplete: (accountAddress, walletId, shareSetId, shareSetType)=>{
4246
+ // Positional shape preserved at the wire boundary — eventStream/utils
4247
+ // invokes this with positional args. Translates to the typed object
4248
+ // for the caller-supplied cb.
4249
+ onCeremonyComplete: (accountAddress, walletId, shareSetId, shareSetType, targetUserId, clientKeyshareBackupGrant)=>{
4020
4250
  fired = true;
4021
- onCeremonyComplete == null ? void 0 : onCeremonyComplete(accountAddress, walletId, shareSetId, shareSetType);
4251
+ onCeremonyComplete == null ? void 0 : onCeremonyComplete({
4252
+ accountAddress,
4253
+ walletId,
4254
+ shareSetId,
4255
+ shareSetType,
4256
+ targetUserId,
4257
+ clientKeyshareBackupGrant
4258
+ });
4022
4259
  resolveComplete();
4023
4260
  },
4024
4261
  awaitTerminal: ()=>Promise.race([
@@ -4266,7 +4503,7 @@ class DynamicWalletClient {
4266
4503
  // walletMap.shareSetId rotation lands before storeEncryptedBackupByWallet
4267
4504
  // reads it; without it, backup would race ceremony_complete and the atomic
4268
4505
  // swap could target the stale row.
4269
- const ceremonyGate = this.createCeremonyTerminalGate((_accountAddress, _walletId, shareSetId, shareSetType)=>{
4506
+ const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
4270
4507
  this.logger.info('[WaasReshare] ceremony_complete received', {
4271
4508
  context: {
4272
4509
  walletId: wallet.walletId,
@@ -4988,21 +5225,10 @@ class DynamicWalletClient {
4988
5225
  accountAddress,
4989
5226
  shareCount: expectedShares.length
4990
5227
  });
4991
- // The preceding `/backup` upload consumed the caller's signed-session nonce, so
4992
- // the verify fetch needs a freshly-minted one — only possible over the reverse
4993
- // channel. Without one, skip the check (with a warning) rather than abort an
4994
- // otherwise-successful backup.
4995
- if (!this.getSignedSessionIdCallback) {
4996
- this.logger.warn('[keyshare-recovery-verify] skipped: no reverse channel to mint a fresh nonce for the verify fetch', {
4997
- walletId,
4998
- accountAddress
4999
- });
5000
- return;
5001
- }
5002
5228
  let data;
5003
5229
  try {
5004
- // Fresh session (the backup consumed the caller's), inside the try so a flaky
5005
- // reverse channel is treated as transient below, not a backup-abort.
5230
+ // Mint a fresh session (the backup consumed the caller's). A missing reverse
5231
+ // channel is skipped below; any other failure rethrows.
5006
5232
  const verifySignedSessionId = await this.signedSession.resolve();
5007
5233
  data = await this.recoverEncryptedSharesWithNonceRetry({
5008
5234
  walletId,
@@ -5015,13 +5241,18 @@ class DynamicWalletClient {
5015
5241
  context: 'verify-backup-recoverable'
5016
5242
  });
5017
5243
  } catch (error) {
5018
- // Mint or fetch failed (transient) not proof the backup is bad; rethrow as-is.
5019
- this.logger.warn('[keyshare-recovery-verify] could not run verify fetch, rethrowing', {
5244
+ // Only a missing reverse channel (no callback, or the host registered no
5245
+ // getSignedSessionId handler) is a benign "can't run" — skip without aborting a
5246
+ // successful backup. Anything else (fetch / transient) is rethrown.
5247
+ const message = error instanceof Error && error.message || '';
5248
+ const noReverseChannel = !this.getSignedSessionIdCallback || message.includes('No handlers were registered') || message.includes('no callback is configured');
5249
+ if (!noReverseChannel) throw error;
5250
+ this.logger.warn('[keyshare-recovery-verify] no reverse channel for verify nonce, skipping', {
5020
5251
  walletId,
5021
5252
  accountAddress,
5022
5253
  errorName: error instanceof Error ? error.name : undefined
5023
5254
  });
5024
- throw error;
5255
+ return;
5025
5256
  }
5026
5257
  try {
5027
5258
  var _data_keyShares;
@@ -5412,7 +5643,7 @@ class DynamicWalletClient {
5412
5643
  }
5413
5644
  return location;
5414
5645
  }
5415
- async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
5646
+ async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
5416
5647
  const dynamicRequestId = uuid.v4();
5417
5648
  // Get wallet data early for logging context (also used in catch block)
5418
5649
  const walletData = this.getWalletFromMap(accountAddress);
@@ -5630,7 +5861,8 @@ class DynamicWalletClient {
5630
5861
  shareSetId: targetShareSetId,
5631
5862
  locations,
5632
5863
  dynamicRequestId,
5633
- passwordUpdateBatchId
5864
+ passwordUpdateBatchId,
5865
+ businessAccountId
5634
5866
  }), {
5635
5867
  operationName: BACKUP_OPERATION.MarkBackedUp,
5636
5868
  shouldRetry: (error)=>{
@@ -5821,7 +6053,7 @@ class DynamicWalletClient {
5821
6053
  * @param params.signedSessionId - Optional signed session ID for authentication
5822
6054
  * @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
5823
6055
  * @returns Promise with backup metadata including share locations and IDs
5824
- */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
6056
+ */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
5825
6057
  var _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
5826
6058
  const hasProvidedShares = clientKeyShares !== undefined;
5827
6059
  const keySharesToBackup = clientKeyShares != null ? clientKeyShares : await this.getClientKeySharesFromStorage({
@@ -5895,7 +6127,8 @@ class DynamicWalletClient {
5895
6127
  preserveDelegatedLocation,
5896
6128
  passwordUpdateBatchId,
5897
6129
  googleDriveAccessToken,
5898
- googleDriveTokenSource
6130
+ googleDriveTokenSource,
6131
+ businessAccountId
5899
6132
  });
5900
6133
  var _backupData_locationsWithKeyShares_map, _backupData_locationsWithKeyShares_map1;
5901
6134
  return _extends({}, backupData, {
@@ -7693,6 +7926,12 @@ class DynamicWalletClient {
7693
7926
  logger: this.logger,
7694
7927
  onUnauthorized: internalOptions == null ? void 0 : internalOptions.onUnauthorized
7695
7928
  });
7929
+ // `reshare` left unbound until the signer-reshare flavor (reshare into a new
7930
+ // signer's pending share set) exists; addSigner is stubbed until then.
7931
+ this.businessAccounts = new core.BusinessAccountClient({
7932
+ apiClient: this.apiClient,
7933
+ logger: this.logger
7934
+ });
7696
7935
  this.debug = Boolean(debug);
7697
7936
  this.featureFlags = featureFlags || {};
7698
7937
  // setup storage for walletMap metadata (used regardless of secureStorage)
@@ -7719,11 +7958,15 @@ class DynamicWalletClient {
7719
7958
  durationMs: Date.now() - forwardMPCConnectStartedAt
7720
7959
  });
7721
7960
  }).catch((error)=>{
7722
- this.logger.error('Error connecting to ForwardMPC enclave optimistically', {
7961
+ const errorInfo = core.classifyForwardMpcError(error);
7962
+ // A rate-limited upgrade falls back to relay → warn, not error, so the
7963
+ // recovered case doesn't pollute error triage.
7964
+ const level = errorInfo.errorType === 'RATE_LIMITED' ? 'warn' : 'error';
7965
+ this.logger[level]('Error connecting to ForwardMPC enclave optimistically', _extends({}, errorInfo, {
7723
7966
  error,
7724
7967
  environmentId: this.environmentId,
7725
7968
  durationMs: Date.now() - forwardMPCConnectStartedAt
7726
- });
7969
+ }));
7727
7970
  });
7728
7971
  }
7729
7972
  }
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, getReshareConfig, getRequiredExternalKeyShareId, verifiedCredentialNameToChainEnum, AuthMode, NoopLogger, DynamicApiClient, 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, FEATURE_FLAGS, ThresholdSignatureScheme, getClientThreshold, MPC_CONFIG, classifyForwardMpcError, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, 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';
@@ -2761,7 +2761,7 @@ class DynamicWalletClient {
2761
2761
  };
2762
2762
  }
2763
2763
  }
2764
- async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete }) {
2764
+ async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete }) {
2765
2765
  // Initialize keygen, create room, and create the wallet account on the server
2766
2766
  const data = await this.apiClient.createWalletAccount({
2767
2767
  chainName,
@@ -2769,6 +2769,7 @@ class DynamicWalletClient {
2769
2769
  dynamicRequestId,
2770
2770
  thresholdSignatureScheme,
2771
2771
  bitcoinConfig,
2772
+ businessAccountId,
2772
2773
  onError,
2773
2774
  onCeremonyComplete
2774
2775
  });
@@ -2993,7 +2994,7 @@ class DynamicWalletClient {
2993
2994
  shouldRetry: (error)=>!isNonRetryableCeremonyError(error)
2994
2995
  });
2995
2996
  }
2996
- async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, onCeremonyComplete, traceContext, password, signedSessionId }) {
2997
+ async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onCeremonyComplete, traceContext, password, signedSessionId }) {
2997
2998
  const dynamicRequestId = v4();
2998
2999
  try {
2999
3000
  this.assertPasswordRequired(password);
@@ -3023,6 +3024,7 @@ class DynamicWalletClient {
3023
3024
  dynamicRequestId,
3024
3025
  thresholdSignatureScheme,
3025
3026
  bitcoinConfig,
3027
+ businessAccountId,
3026
3028
  onCeremonyComplete
3027
3029
  });
3028
3030
  this.logger.info('[DynamicWaasWalletClient] Server key generation initialized', _extends({
@@ -3053,6 +3055,7 @@ class DynamicWalletClient {
3053
3055
  dynamicRequestId,
3054
3056
  thresholdSignatureScheme,
3055
3057
  bitcoinConfig,
3058
+ businessAccountId,
3056
3059
  onCeremonyComplete
3057
3060
  })
3058
3061
  });
@@ -3730,7 +3733,7 @@ class DynamicWalletClient {
3730
3733
  // would race ceremony_complete and the atomic swap could target the stale
3731
3734
  // row. refresh's API call returns on room_created (not the local MPC
3732
3735
  // result), so the gate await sits between the local MPC and the backup.
3733
- const ceremonyGate = this.createCeremonyTerminalGate((_accountAddress, _walletId, shareSetId, shareSetType)=>{
3736
+ const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
3734
3737
  this.logger.info('[WaasRefresh] ceremony_complete received', {
3735
3738
  context: {
3736
3739
  walletId: wallet.walletId,
@@ -3950,6 +3953,227 @@ class DynamicWalletClient {
3950
3953
  googleDriveTokenSource
3951
3954
  }));
3952
3955
  }
3956
+ /** Reshare into a new 2/2 share set for the target signer; seed it to CKS
3957
+ * on their behalf via a single-use grant. Does not touch the caller's set. */ async reshareToNewSignerShareSet({ chainName, accountAddress, businessAccountId, signerType = 'endUser', targetSignerIdentity, password = undefined, signedSessionId }) {
3958
+ var _backup_keyShareIds;
3959
+ const dynamicRequestId = v4();
3960
+ const ceremonyStartTime = Date.now();
3961
+ // Log identifier shape only — value may be email/phone.
3962
+ const logContext = {
3963
+ dynamicRequestId,
3964
+ businessAccountId,
3965
+ chainName,
3966
+ accountAddress,
3967
+ signerType,
3968
+ identityMode: targetSignerIdentity.userId ? 'userId' : 'identifier',
3969
+ identifierType: targetSignerIdentity.identifierType
3970
+ };
3971
+ this.logger.info('[BusinessAccountAddSigner] start reshareToNewSignerShareSet', {
3972
+ context: logContext
3973
+ });
3974
+ const wallet = await this.getWallet({
3975
+ accountAddress,
3976
+ walletOperation: WalletOperation.REACH_ALL_PARTIES,
3977
+ password,
3978
+ signedSessionId
3979
+ });
3980
+ const walletId = wallet.walletId;
3981
+ const currentScheme = this.getWalletFromMap(accountAddress).thresholdSignatureScheme;
3982
+ const bitcoinConfig = this.getBitcoinConfigForChain(chainName, accountAddress);
3983
+ // Same-parties reshare — only the caller's share participates.
3984
+ const [existingClientShare] = await this.ensureClientShare(accountAddress);
3985
+ const existingClientKeygenId = await this.getExportId({
3986
+ chainName,
3987
+ clientKeyShare: existingClientShare,
3988
+ bitcoinConfig
3989
+ });
3990
+ // Gate matches internalRefresh/Reshare — SSE error rejects awaitTerminal.
3991
+ let newShareSetId;
3992
+ let resolvedTargetUserId;
3993
+ let clientKeyshareBackupGrant;
3994
+ const ceremonyGate = this.createCeremonyTerminalGate((payload)=>{
3995
+ newShareSetId = payload.shareSetId;
3996
+ resolvedTargetUserId = payload.targetUserId;
3997
+ clientKeyshareBackupGrant = payload.clientKeyshareBackupGrant;
3998
+ this.logger.info('[BusinessAccountAddSigner] ceremony_complete received', {
3999
+ context: _extends({}, logContext, {
4000
+ walletId,
4001
+ newShareSetId: payload.shareSetId,
4002
+ shareSetType: payload.shareSetType,
4003
+ hasTargetUserId: !!payload.targetUserId,
4004
+ hasClientKeyshareBackupGrant: !!payload.clientKeyshareBackupGrant
4005
+ })
4006
+ });
4007
+ });
4008
+ const data = await this.apiClient.addBusinessAccountSignerCeremony({
4009
+ businessAccountId,
4010
+ walletId,
4011
+ clientKeygenIds: [
4012
+ existingClientKeygenId
4013
+ ],
4014
+ oldThresholdSignatureScheme: currentScheme,
4015
+ signerType,
4016
+ userId: targetSignerIdentity.userId,
4017
+ identifier: targetSignerIdentity.identifier,
4018
+ identifierType: targetSignerIdentity.identifierType,
4019
+ dynamicRequestId,
4020
+ onError: ceremonyGate.onError,
4021
+ onCeremonyComplete: ceremonyGate.onCeremonyComplete
4022
+ });
4023
+ const { roomId, serverKeygenIds, newServerKeygenIds = [] } = data;
4024
+ const newMpcConfig = MPC_CONFIG[ThresholdSignatureScheme.TWO_OF_TWO];
4025
+ const allPartyKeygenIds = [
4026
+ existingClientKeygenId,
4027
+ ...serverKeygenIds,
4028
+ ...newServerKeygenIds
4029
+ ];
4030
+ const mpcSigner = getMPCSigner({
4031
+ chainName,
4032
+ baseRelayUrl: this.baseMPCRelayApiUrl,
4033
+ bitcoinConfig
4034
+ });
4035
+ const newSignerClientShare = await mpcSigner.reshareRemainingParty(roomId, newMpcConfig.threshold, existingClientShare, allPartyKeygenIds);
4036
+ try {
4037
+ await ceremonyGate.awaitTerminal();
4038
+ } catch (streamError) {
4039
+ this.logger.error('[BusinessAccountAddSigner] ceremony stream error', {
4040
+ context: _extends({}, logContext, {
4041
+ walletId,
4042
+ roomId,
4043
+ error: streamError instanceof Error ? streamError.message : String(streamError),
4044
+ failure_reason: 'ceremony_stream_error'
4045
+ })
4046
+ });
4047
+ throw streamError;
4048
+ }
4049
+ if (!newShareSetId) {
4050
+ this.logger.error('[BusinessAccountAddSigner] ceremony_complete missing shareSetId', {
4051
+ context: _extends({}, logContext, {
4052
+ walletId,
4053
+ roomId,
4054
+ failure_reason: 'ceremony_complete_missing_share_set_id'
4055
+ })
4056
+ });
4057
+ throw new Error('addSigner reshare did not return a shareSetId');
4058
+ }
4059
+ // Target has no password yet — encryptKeyShare falls back to the env-default key.
4060
+ const encrypted = await this.encryptKeyShare({
4061
+ keyShare: newSignerClientShare
4062
+ });
4063
+ // Server contract: targetUserId is always set on successful ceremony_complete.
4064
+ if (!resolvedTargetUserId) {
4065
+ this.logger.error('[BusinessAccountAddSigner] no target userId resolved for on-behalf backup', {
4066
+ context: _extends({}, logContext, {
4067
+ walletId,
4068
+ newShareSetId,
4069
+ failure_reason: 'no_target_user_id_resolved'
4070
+ })
4071
+ });
4072
+ throw new Error('addSigner ceremony did not resolve a target userId for the on-behalf backup');
4073
+ }
4074
+ const targetUserId = resolvedTargetUserId;
4075
+ this.logger.info('[BusinessAccountAddSigner] backupOnBehalfOfAddedSigner -> client-keyshare-service', {
4076
+ context: _extends({}, logContext, {
4077
+ walletId,
4078
+ newShareSetId,
4079
+ hasClientKeyshareBackupGrant: !!clientKeyshareBackupGrant
4080
+ })
4081
+ });
4082
+ // Grant is primary auth; signedSession is belt-and-suspenders. Refresh-on-400
4083
+ // handles nonce reuse; transient 429/5xx retry via alsoRetry. 401/403 = grant
4084
+ // rejected (single-use, not replayable) → caller must re-run addSigner.
4085
+ let backup;
4086
+ try {
4087
+ let resolvedSignedSessionId = signedSessionId;
4088
+ backup = await retryPromise(()=>this.apiClient.backupOnBehalfOfAddedSigner({
4089
+ walletId,
4090
+ targetUserId,
4091
+ encryptedAccountCredentials: [
4092
+ encrypted
4093
+ ],
4094
+ passwordEncrypted: false,
4095
+ encryptionVersion: ENCRYPTION_VERSION_CURRENT,
4096
+ clientKeyshareBackupGrant,
4097
+ signedSessionId: resolvedSignedSessionId,
4098
+ dynamicRequestId
4099
+ }), {
4100
+ operationName: 'backupOnBehalfOfAddedSigner',
4101
+ shouldRetry: this.signedSession.refreshShouldRetry({
4102
+ onRefreshed: (id)=>{
4103
+ resolvedSignedSessionId = id;
4104
+ },
4105
+ operationName: 'backupOnBehalfOfAddedSigner',
4106
+ logContext: _extends({}, logContext, {
4107
+ walletId,
4108
+ dynamicRequestId
4109
+ }),
4110
+ alsoRetry: (status)=>status === undefined || status === 429 || status !== undefined && status >= 500
4111
+ })
4112
+ });
4113
+ } catch (err) {
4114
+ var _err_response;
4115
+ const status = err == null ? void 0 : (_err_response = err.response) == null ? void 0 : _err_response.status;
4116
+ if (clientKeyshareBackupGrant && (status === 401 || status === 403)) {
4117
+ this.logger.error('[BusinessAccountAddSigner] client_keyshare_backup_grant_exhausted', {
4118
+ context: _extends({}, logContext, {
4119
+ walletId,
4120
+ newShareSetId,
4121
+ status,
4122
+ failure_reason: 'grant_exhausted'
4123
+ })
4124
+ });
4125
+ }
4126
+ throw err;
4127
+ }
4128
+ const externalKeyShareId = (_backup_keyShareIds = backup.keyShareIds) == null ? void 0 : _backup_keyShareIds[0];
4129
+ if (!externalKeyShareId) {
4130
+ this.logger.error('[BusinessAccountAddSigner] on-behalf backup returned no keyShareId', {
4131
+ context: _extends({}, logContext, {
4132
+ walletId,
4133
+ newShareSetId,
4134
+ failure_reason: 'cks_write_no_keyshare_id'
4135
+ })
4136
+ });
4137
+ throw new Error('on-behalf backup did not return a keyShareId');
4138
+ }
4139
+ this.logger.info('[BusinessAccountAddSigner] on-behalf backup stored', {
4140
+ context: _extends({}, logContext, {
4141
+ walletId,
4142
+ newShareSetId,
4143
+ externalKeyShareId
4144
+ })
4145
+ });
4146
+ // Activate the share-set ↔ keyShareId mapping on redcoast.
4147
+ await retryPromise(()=>this.apiClient.markKeySharesAsBackedUp({
4148
+ walletId,
4149
+ shareSetId: newShareSetId,
4150
+ locations: [
4151
+ {
4152
+ location: BackupLocation.DYNAMIC,
4153
+ externalKeyShareId
4154
+ }
4155
+ ],
4156
+ dynamicRequestId,
4157
+ businessAccountId
4158
+ }), {
4159
+ operationName: 'addSigner.markKeySharesAsBackedUp',
4160
+ shouldRetry: (error)=>{
4161
+ const status = getHttpStatus(error);
4162
+ return status === undefined || status === 429 || status !== undefined && status >= 500;
4163
+ }
4164
+ });
4165
+ this.logger.info('[BusinessAccountAddSigner] done — share set activated', {
4166
+ context: _extends({}, logContext, {
4167
+ walletId,
4168
+ newShareSetId,
4169
+ externalKeyShareId,
4170
+ ceremony_duration_ms: Date.now() - ceremonyStartTime
4171
+ })
4172
+ });
4173
+ return {
4174
+ shareSetId: newShareSetId
4175
+ };
4176
+ }
3953
4177
  // Surfaces server-side bugs in the ceremony_complete payload without
3954
4178
  // breaking the operation. The two cases:
3955
4179
  //
@@ -4003,7 +4227,10 @@ class DynamicWalletClient {
4003
4227
  // The reject handle is wired synchronously (Promise executors run inline)
4004
4228
  // before the API call starts, so an immediate onError can never be dropped.
4005
4229
  // The lost branch's rejection is swallowed so it never surfaces as unhandled.
4006
- createCeremonyTerminalGate(onCeremonyComplete) {
4230
+ /**
4231
+ * Ceremony-complete payload — typed object so addSigner-only fields are
4232
+ * namespaced and `clientKeyshareBackupGrant` never sits in a positional slot.
4233
+ */ createCeremonyTerminalGate(onCeremonyComplete) {
4007
4234
  let resolveComplete;
4008
4235
  const completePromise = new Promise((resolve)=>{
4009
4236
  resolveComplete = resolve;
@@ -4017,9 +4244,19 @@ class DynamicWalletClient {
4017
4244
  let fired = false;
4018
4245
  return {
4019
4246
  onError: rejectOnError,
4020
- onCeremonyComplete: (accountAddress, walletId, shareSetId, shareSetType)=>{
4247
+ // Positional shape preserved at the wire boundary — eventStream/utils
4248
+ // invokes this with positional args. Translates to the typed object
4249
+ // for the caller-supplied cb.
4250
+ onCeremonyComplete: (accountAddress, walletId, shareSetId, shareSetType, targetUserId, clientKeyshareBackupGrant)=>{
4021
4251
  fired = true;
4022
- onCeremonyComplete == null ? void 0 : onCeremonyComplete(accountAddress, walletId, shareSetId, shareSetType);
4252
+ onCeremonyComplete == null ? void 0 : onCeremonyComplete({
4253
+ accountAddress,
4254
+ walletId,
4255
+ shareSetId,
4256
+ shareSetType,
4257
+ targetUserId,
4258
+ clientKeyshareBackupGrant
4259
+ });
4023
4260
  resolveComplete();
4024
4261
  },
4025
4262
  awaitTerminal: ()=>Promise.race([
@@ -4267,7 +4504,7 @@ class DynamicWalletClient {
4267
4504
  // walletMap.shareSetId rotation lands before storeEncryptedBackupByWallet
4268
4505
  // reads it; without it, backup would race ceremony_complete and the atomic
4269
4506
  // swap could target the stale row.
4270
- const ceremonyGate = this.createCeremonyTerminalGate((_accountAddress, _walletId, shareSetId, shareSetType)=>{
4507
+ const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
4271
4508
  this.logger.info('[WaasReshare] ceremony_complete received', {
4272
4509
  context: {
4273
4510
  walletId: wallet.walletId,
@@ -4989,21 +5226,10 @@ class DynamicWalletClient {
4989
5226
  accountAddress,
4990
5227
  shareCount: expectedShares.length
4991
5228
  });
4992
- // The preceding `/backup` upload consumed the caller's signed-session nonce, so
4993
- // the verify fetch needs a freshly-minted one — only possible over the reverse
4994
- // channel. Without one, skip the check (with a warning) rather than abort an
4995
- // otherwise-successful backup.
4996
- if (!this.getSignedSessionIdCallback) {
4997
- this.logger.warn('[keyshare-recovery-verify] skipped: no reverse channel to mint a fresh nonce for the verify fetch', {
4998
- walletId,
4999
- accountAddress
5000
- });
5001
- return;
5002
- }
5003
5229
  let data;
5004
5230
  try {
5005
- // Fresh session (the backup consumed the caller's), inside the try so a flaky
5006
- // reverse channel is treated as transient below, not a backup-abort.
5231
+ // Mint a fresh session (the backup consumed the caller's). A missing reverse
5232
+ // channel is skipped below; any other failure rethrows.
5007
5233
  const verifySignedSessionId = await this.signedSession.resolve();
5008
5234
  data = await this.recoverEncryptedSharesWithNonceRetry({
5009
5235
  walletId,
@@ -5016,13 +5242,18 @@ class DynamicWalletClient {
5016
5242
  context: 'verify-backup-recoverable'
5017
5243
  });
5018
5244
  } catch (error) {
5019
- // Mint or fetch failed (transient) not proof the backup is bad; rethrow as-is.
5020
- this.logger.warn('[keyshare-recovery-verify] could not run verify fetch, rethrowing', {
5245
+ // Only a missing reverse channel (no callback, or the host registered no
5246
+ // getSignedSessionId handler) is a benign "can't run" — skip without aborting a
5247
+ // successful backup. Anything else (fetch / transient) is rethrown.
5248
+ const message = error instanceof Error && error.message || '';
5249
+ const noReverseChannel = !this.getSignedSessionIdCallback || message.includes('No handlers were registered') || message.includes('no callback is configured');
5250
+ if (!noReverseChannel) throw error;
5251
+ this.logger.warn('[keyshare-recovery-verify] no reverse channel for verify nonce, skipping', {
5021
5252
  walletId,
5022
5253
  accountAddress,
5023
5254
  errorName: error instanceof Error ? error.name : undefined
5024
5255
  });
5025
- throw error;
5256
+ return;
5026
5257
  }
5027
5258
  try {
5028
5259
  var _data_keyShares;
@@ -5413,7 +5644,7 @@ class DynamicWalletClient {
5413
5644
  }
5414
5645
  return location;
5415
5646
  }
5416
- async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
5647
+ async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
5417
5648
  const dynamicRequestId = v4();
5418
5649
  // Get wallet data early for logging context (also used in catch block)
5419
5650
  const walletData = this.getWalletFromMap(accountAddress);
@@ -5631,7 +5862,8 @@ class DynamicWalletClient {
5631
5862
  shareSetId: targetShareSetId,
5632
5863
  locations,
5633
5864
  dynamicRequestId,
5634
- passwordUpdateBatchId
5865
+ passwordUpdateBatchId,
5866
+ businessAccountId
5635
5867
  }), {
5636
5868
  operationName: BACKUP_OPERATION.MarkBackedUp,
5637
5869
  shouldRetry: (error)=>{
@@ -5822,7 +6054,7 @@ class DynamicWalletClient {
5822
6054
  * @param params.signedSessionId - Optional signed session ID for authentication
5823
6055
  * @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
5824
6056
  * @returns Promise with backup metadata including share locations and IDs
5825
- */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
6057
+ */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
5826
6058
  var _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
5827
6059
  const hasProvidedShares = clientKeyShares !== undefined;
5828
6060
  const keySharesToBackup = clientKeyShares != null ? clientKeyShares : await this.getClientKeySharesFromStorage({
@@ -5896,7 +6128,8 @@ class DynamicWalletClient {
5896
6128
  preserveDelegatedLocation,
5897
6129
  passwordUpdateBatchId,
5898
6130
  googleDriveAccessToken,
5899
- googleDriveTokenSource
6131
+ googleDriveTokenSource,
6132
+ businessAccountId
5900
6133
  });
5901
6134
  var _backupData_locationsWithKeyShares_map, _backupData_locationsWithKeyShares_map1;
5902
6135
  return _extends({}, backupData, {
@@ -7694,6 +7927,12 @@ class DynamicWalletClient {
7694
7927
  logger: this.logger,
7695
7928
  onUnauthorized: internalOptions == null ? void 0 : internalOptions.onUnauthorized
7696
7929
  });
7930
+ // `reshare` left unbound until the signer-reshare flavor (reshare into a new
7931
+ // signer's pending share set) exists; addSigner is stubbed until then.
7932
+ this.businessAccounts = new BusinessAccountClient({
7933
+ apiClient: this.apiClient,
7934
+ logger: this.logger
7935
+ });
7697
7936
  this.debug = Boolean(debug);
7698
7937
  this.featureFlags = featureFlags || {};
7699
7938
  // setup storage for walletMap metadata (used regardless of secureStorage)
@@ -7720,11 +7959,15 @@ class DynamicWalletClient {
7720
7959
  durationMs: Date.now() - forwardMPCConnectStartedAt
7721
7960
  });
7722
7961
  }).catch((error)=>{
7723
- this.logger.error('Error connecting to ForwardMPC enclave optimistically', {
7962
+ const errorInfo = classifyForwardMpcError(error);
7963
+ // A rate-limited upgrade falls back to relay → warn, not error, so the
7964
+ // recovered case doesn't pollute error triage.
7965
+ const level = errorInfo.errorType === 'RATE_LIMITED' ? 'warn' : 'error';
7966
+ this.logger[level]('Error connecting to ForwardMPC enclave optimistically', _extends({}, errorInfo, {
7724
7967
  error,
7725
7968
  environmentId: this.environmentId,
7726
7969
  durationMs: Date.now() - forwardMPCConnectStartedAt
7727
- });
7970
+ }));
7728
7971
  });
7729
7972
  }
7730
7973
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/browser",
3
- "version": "1.0.28",
3
+ "version": "1.0.29",
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.28",
8
- "@dynamic-labs-wallet/forward-mpc-client": "0.11.0",
9
- "@dynamic-labs-wallet/primitives": "1.0.28",
7
+ "@dynamic-labs-wallet/core": "1.0.29",
8
+ "@dynamic-labs-wallet/forward-mpc-client": "0.12.0",
9
+ "@dynamic-labs-wallet/primitives": "1.0.29",
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
@@ -1,5 +1,5 @@
1
1
  import { EcdsaSignature, MessageHash, type EcdsaPublicKey } from '#internal/web';
2
- import { AuthMode, BackupLocation, DynamicApiClient, ThresholdSignatureScheme, WalletOperation, type BackupLocationWithExternalKeyShareId, type BitcoinConfig, type DynamicWalletClientProps, type FeatureFlags, type GetWalletResponse, type ILogger, type InitializeResult, type KeyShareBackupInfo, type SecureStorageAdapter, type ShareSet, type ShareSetType, type TraceContext, type WalletRecoveryState, type CreateWaasSDKContainer } from '@dynamic-labs-wallet/core';
2
+ import { AuthMode, BackupLocation, DynamicApiClient, BusinessAccountClient, type TargetSignerIdentity, type BusinessAccountSignerType, ThresholdSignatureScheme, WalletOperation, type BackupLocationWithExternalKeyShareId, type BitcoinConfig, type DynamicWalletClientProps, type FeatureFlags, type GetWalletResponse, type ILogger, type InitializeResult, type KeyShareBackupInfo, type SecureStorageAdapter, type ShareSet, type ShareSetType, type TraceContext, type WalletRecoveryState, type CreateWaasSDKContainer } from '@dynamic-labs-wallet/core';
3
3
  import { RoomTypeEnum, type SignMessageContext } from '@dynamic-labs/sdk-api-core';
4
4
  import type { DerivationInputFingerprint } from './backup/encryption/types.js';
5
5
  import type { ClientInitKeygenResult, ClientKeyShare, MPCSigner } from './mpc/types.js';
@@ -35,6 +35,8 @@ export declare class DynamicWalletClient {
35
35
  protected initializePromise: Promise<InitializeResult> | null;
36
36
  protected logger: ILogger;
37
37
  protected apiClient: DynamicApiClient;
38
+ /** Business-account orchestration (create/list/get + member/signer ops). */
39
+ readonly businessAccounts: BusinessAccountClient;
38
40
  protected walletMap: Record<string, WalletProperties>;
39
41
  protected storage: SupportedStorage;
40
42
  protected memoryStorage: {
@@ -131,12 +133,13 @@ export declare class DynamicWalletClient {
131
133
  * Client initialization logic
132
134
  */
133
135
  protected _initialize(traceContext?: TraceContext): Promise<InitializeResult>;
134
- serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, }: {
136
+ serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete, }: {
135
137
  chainName: string;
136
138
  clientKeygenIds: string[];
137
139
  dynamicRequestId: string;
138
140
  thresholdSignatureScheme: ThresholdSignatureScheme;
139
141
  bitcoinConfig?: BitcoinConfig;
142
+ businessAccountId?: string;
140
143
  onError?: (error: Error) => void;
141
144
  onCeremonyComplete?: (accountAddress: string, walletId: string, shareSetId?: string) => void;
142
145
  }): Promise<import("@dynamic-labs-wallet/core").KeygenCompleteResponse>;
@@ -209,6 +212,7 @@ export declare class DynamicWalletClient {
209
212
  chainName: string;
210
213
  thresholdSignatureScheme: ThresholdSignatureScheme;
211
214
  bitcoinConfig?: BitcoinConfig;
215
+ businessAccountId?: string;
212
216
  onError?: (error: Error) => void;
213
217
  onCeremonyComplete?: (accountAddress: string, walletId: string) => void;
214
218
  traceContext?: TraceContext;
@@ -380,7 +384,24 @@ export declare class DynamicWalletClient {
380
384
  googleDriveAccessToken?: string;
381
385
  googleDriveTokenSource?: 'external' | 'stored_oauth';
382
386
  }): Promise<void>;
387
+ /** Reshare into a new 2/2 share set for the target signer; seed it to CKS
388
+ * on their behalf via a single-use grant. Does not touch the caller's set. */
389
+ reshareToNewSignerShareSet({ chainName, accountAddress, businessAccountId, signerType, targetSignerIdentity, password, signedSessionId, }: {
390
+ chainName: string;
391
+ accountAddress: string;
392
+ businessAccountId: string;
393
+ signerType?: BusinessAccountSignerType;
394
+ targetSignerIdentity: TargetSignerIdentity;
395
+ password?: string;
396
+ signedSessionId: string;
397
+ }): Promise<{
398
+ shareSetId: string;
399
+ }>;
383
400
  private logOnMalformedCeremonyPayload;
401
+ /**
402
+ * Ceremony-complete payload — typed object so addSigner-only fields are
403
+ * namespaced and `clientKeyshareBackupGrant` never sits in a positional slot.
404
+ */
384
405
  private createCeremonyTerminalGate;
385
406
  private runBackupWithRotationRollback;
386
407
  private rotateRootUserShareSetIdIfChanged;
@@ -536,7 +557,7 @@ export declare class DynamicWalletClient {
536
557
  private backupToCloudProvider;
537
558
  private publishDelegatedShare;
538
559
  private createPreservedDelegatedLocation;
539
- backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, }: {
560
+ backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, }: {
540
561
  accountAddress: string;
541
562
  password?: string;
542
563
  signedSessionId?: string;
@@ -545,6 +566,7 @@ export declare class DynamicWalletClient {
545
566
  passwordUpdateBatchId?: string;
546
567
  googleDriveAccessToken?: string;
547
568
  googleDriveTokenSource?: 'external' | 'stored_oauth';
569
+ businessAccountId?: string;
548
570
  }): Promise<{
549
571
  message: string;
550
572
  walletId: string;
@@ -588,7 +610,7 @@ export declare class DynamicWalletClient {
588
610
  * @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
589
611
  * @returns Promise with backup metadata including share locations and IDs
590
612
  */
591
- storeEncryptedBackupByWallet({ accountAddress, clientKeyShares, password, signedSessionId, cloudProviders, delegatedKeyshare, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, }: {
613
+ storeEncryptedBackupByWallet({ accountAddress, clientKeyShares, password, signedSessionId, cloudProviders, delegatedKeyshare, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, }: {
592
614
  accountAddress: string;
593
615
  clientKeyShares?: ClientKeyShare[];
594
616
  password?: string;
@@ -598,6 +620,7 @@ export declare class DynamicWalletClient {
598
620
  passwordUpdateBatchId?: string;
599
621
  googleDriveAccessToken?: string;
600
622
  googleDriveTokenSource?: 'external' | 'stored_oauth';
623
+ businessAccountId?: string;
601
624
  }): Promise<{
602
625
  keyShareIds: string[];
603
626
  keygenIds: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
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,EAUf,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,EAE5B,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAInF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAiC/E,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;AAgCpB,KAAK,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IACjD,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,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,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,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAGnD,EACE,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,QAA0B,EAC1B,SAAqB,EACrB,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,8BAA8B,EAC9B,YAAY,EACZ,MAAM,GACP,EAAE,wBAAwB,EAC3B,eAAe,CAAC,EAAE,kCAAkC;IAqGtD;;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,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,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;IAsBK,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,0EAA0E;IAC1E,OAAO,CAAC,oBAAoB;IAItB,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,KAAK,IAAI,CAAC;QACxE,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;IA2IxB,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;IAiDlC,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;IAgHxC;;;;;;OAMG;YACW,0BAA0B;IAoDlC,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;IAuMpB,0BAA0B,CAAC,EAC/B,cAAc,EACd,SAAS,EACT,QAAoB,EACpB,eAAe,EACf,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,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B;IAcD;;;;;;;;;OASG;IACH,OAAO,CAAC,gCAAgC;IAsDxC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;YAclB,kCAAkC;YAwLlC,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,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,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;IAoBD;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;YA2Xf,0BAA0B;IAwElC,iBAAiB,CAAC,EACtB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAyCK,gBAAgB,CAAC,EACrB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAyDD,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;;;cA8Ee,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;YA0DY,yBAAyB;IAmEvC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB;IA8H9B;;;;;;;;;;;;OAYG;YACW,2BAA2B;IA4FnC,eAAe,CAAC,EACpB,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,cAAc,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,yGAAyG;QACzG,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,0BAA0B,KAAK,IAAI,CAAC;KACvF;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;YAYjB,sBAAsB;YAuEtB,0BAA0B;IAqCxC;;;;;;;OAOG;YACW,4BAA4B;YAY5B,qBAAqB;YAoDrB,qBAAqB;IA4DnC,OAAO,CAAC,gCAAgC;IAsBlC,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,yBAAiC,EACjC,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,GAClB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,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;KAC5B;;;;;;;;8BAznIS,CAAC;;;YAy+IG,yBAAyB;IAiGvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,cAAmB,EACnB,iBAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,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;QACzB,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;KAC5B;;;;;;;;;;8BA/nJS,CAAC;;;YA+tJG,mBAAmB;IAcjC,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,2BAA2B;IAqB7B,cAAc,CAAC,EACnB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,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,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IAkDK,WAAW,CAAC,EAChB,cAAc,EACd,WAAW,EACX,eAAe,EACf,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IAyCK,eAAe,CAAC,EACpB,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,yGAAyG;QACzG,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,0BAA0B,KAAK,IAAI,CAAC;KACvF,GAAG,OAAO,CAAC,cAAc,CAAC;IAwC3B;;;;;;;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;IA6F9C,cAAc;IAmCpB;;;;OAIG;YACW,8BAA8B;IA8D5C;;;;;;;;;;;OAWG;IACG,4BAA4B,CAAC,EACjC,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;IA4CjB;;;;;;;;OAQG;YACW,0BAA0B;IAyCxC;;;;;;;;;OASG;IACG,uBAAuB,CAAC,EAC5B,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;IASjB;;;;;;;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;IA2L7B;;;;;;;;;;;;;;;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;IAI7C,UAAU;IAoFhB;;;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;IA0DpH,eAAe,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAQ3F"}