@1sat/wallet 0.0.92 → 0.0.94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/factory.d.ts CHANGED
@@ -117,18 +117,6 @@ export interface WalletCoreResult {
117
117
  model: 'sat/kb';
118
118
  value: number;
119
119
  };
120
- /**
121
- * Resolves once initial backup-remote registration has settled (each
122
- * configured backup URL has either succeeded or errored). Resolves
123
- * immediately when no backups are configured.
124
- *
125
- * Callers that initiate concurrent storage operations (notably an
126
- * automatic `monitor.runOnce()` on boot) should await this to avoid
127
- * racing against `WalletStorageManager.addWalletStorageProvider`, which
128
- * briefly flips `_isAvailable=false` on each registration and causes
129
- * concurrent `getActive()` calls to throw `WERR_INVALID_OPERATION`.
130
- */
131
- backupsSettled: Promise<void>;
132
120
  }
133
121
  export declare function createWalletCore(config: WalletCoreConfig, localStorage: WalletStorageProvider | undefined, toolbox: {
134
122
  Services: any;
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
package/dist/factory.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { OneSatServices } from '@1sat/client';
2
2
  import { KeyDeriver } from '@bsv/sdk';
3
- import { BackupRegistration } from './backupRegistration';
4
3
  import { parsePrivateKey } from './parsePrivateKey';
5
4
  import { installStorageClientPaymentAutoRetry, installStoragePaymentAutoRetry, } from './storagePaymentAutoRetry';
6
5
  export const DEFAULT_FEE_MODEL = { model: 'sat/kb', value: 100 };
@@ -41,66 +40,79 @@ export async function createWalletCore(config, localStorage, toolbox) {
41
40
  remoteClients.push(client);
42
41
  return client;
43
42
  };
44
- // `intendedActiveKey` is the store the factory considers canonical for
45
- // this wallet. Set after the initial active store lands, updated by
46
- // `setActiveStorage` later. Used by `reconcileActive` to resolve the
47
- // conflict-active state that arises when a newly-added backup's user
48
- // row defaults `activeStorage` to its own key.
43
+ // `intendedActiveKey` is the store config names as active for this
44
+ // wallet. Set as the stores register, updated by `setActiveStorage`
45
+ // later. Every (re)assertion of it goes straight through
46
+ // `storage.setActive`: a no-op when the stores already agree, and
47
+ // wallet-toolbox's merge-and-flip when they don't a divergent store's
48
+ // data is copied into the chosen active BEFORE the pointer settles.
49
49
  let intendedActiveKey;
50
+ /**
51
+ * Sync the active store to one registered backup, isolated: a failure
52
+ * is logged and never propagates — one bad backup must not affect the
53
+ * wallet or the other backups. A billed remote writer that answers 507
54
+ * is topped up out-of-band and re-synced by the payment auto-retry
55
+ * layer installed at connection, so no payment ever runs under the
56
+ * storage lock.
57
+ */
58
+ const syncBackup = async (writer, name) => {
59
+ try {
60
+ const w = writer;
61
+ if (w.getSettings?.()?.storageIdentityKey === storage.getActiveStore())
62
+ return;
63
+ await storage.syncToWriter(await storage.getAuth(), writer);
64
+ }
65
+ catch (e) {
66
+ console.warn(`[wallet-core] backup sync failed for ${name}:`, e);
67
+ }
68
+ };
69
+ /** Sync the active store to every registered backup, each isolated. */
70
+ const syncBackups = async () => {
71
+ if (!storage.isActiveEnabled)
72
+ return;
73
+ if (localStorage)
74
+ await syncBackup(localStorage, 'local');
75
+ for (const client of remoteClients) {
76
+ await syncBackup(client, client.endpointUrl ?? 'remote');
77
+ }
78
+ };
79
+ // Register every store, name the intended active from config, then
80
+ // settle. Local registers as it is — its user row is the record of what
81
+ // this wallet last believed, and when it carries data the remote never
82
+ // received, that row is what drives the merge in `setActive`. A backup
83
+ // that fails to connect is logged and skipped for the session (it's a
84
+ // backup — its absence is degradation, not failure); it reconnects on
85
+ // the next boot. Only the active store failing is fatal.
86
+ if (localStorage) {
87
+ await storage.addWalletStorageProvider(localStorage);
88
+ intendedActiveKey = (await localStorage.makeAvailable()).storageIdentityKey;
89
+ }
50
90
  if (config.activeRemote) {
51
- // Remote-primary: connect remote first, set active, then add local as backup
52
91
  const activeClient = await connectRemote(config.activeRemote);
53
- const settings = activeClient.getSettings();
54
- if (settings?.storageIdentityKey) {
55
- intendedActiveKey = settings.storageIdentityKey;
56
- await storage.setActive(intendedActiveKey);
92
+ intendedActiveKey =
93
+ activeClient.getSettings()?.storageIdentityKey ?? intendedActiveKey;
94
+ }
95
+ for (const url of config.backups ?? []) {
96
+ try {
97
+ await connectRemote(url);
57
98
  }
58
- if (localStorage) {
59
- await localStorage.makeAvailable();
60
- const { user } = await localStorage.findOrInsertUser(identityPubKey);
61
- await localStorage.setActive({ identityKey: identityPubKey, userId: user.userId }, settings.storageIdentityKey);
62
- await storage.addWalletStorageProvider(localStorage);
99
+ catch (e) {
100
+ console.warn(`[wallet-core] backup unreachable, skipped: ${url}`, e);
63
101
  }
64
102
  }
65
- else if (localStorage) {
66
- // Local-primary: no remote, local is the active store
67
- await storage.addWalletStorageProvider(localStorage);
68
- intendedActiveKey = (await localStorage.makeAvailable()).storageIdentityKey;
103
+ // Settle or refresh — never both. When any store's user row disagrees
104
+ // with config, `setActive` merges the divergent store's data into the
105
+ // chosen active and propagates the settled state to every store — the
106
+ // sync IS the settling. When all rows already agree, `setActive` would
107
+ // no-op, so instead refresh every backup from the active store —
108
+ // fire-and-forget, backup freshness never blocks or fails boot.
109
+ if (storage.getActiveStore() === intendedActiveKey &&
110
+ storage.isActiveEnabled) {
111
+ void syncBackups();
69
112
  }
70
- /**
71
- * Re-assert the intended active store when adding a provider has put the
72
- * manager into a conflict-active state. A fresh user row on a newly-
73
- * connected backup defaults `activeStorage` to that backup's own key,
74
- * which `WalletStorageManager` treats as a conflict against our chosen
75
- * active. `storage.setActive` resolves via wallet-toolbox's merge-and-
76
- * flip dance — record-level data is additive (no loss), only pointers
77
- * and reconcilable status fields change.
78
- */
79
- const reconcileActive = async () => {
80
- if (!intendedActiveKey)
81
- return;
82
- if (storage.isActiveEnabled)
83
- return;
113
+ else {
84
114
  await storage.setActive(intendedActiveKey);
85
- };
86
- // Backup remotes register asynchronously so boot doesn't block on a
87
- // down or slow backup. Each URL gets one attempt; no in-process retry.
88
- // Long-lived processes recover via the periodic BackupSync monitor
89
- // task; transient processes (CLI invocations, service worker wakes)
90
- // retry on the next process boot.
91
- const backupRegistration = config.backups && config.backups.length > 0
92
- ? new BackupRegistration({
93
- urls: config.backups,
94
- register: async (url) => {
95
- await connectRemote(url);
96
- await reconcileActive();
97
- },
98
- onError: (url, err) => {
99
- console.warn(`[wallet-core] backup registration failed for ${url}:`, err);
100
- },
101
- })
102
- : undefined;
103
- backupRegistration?.start();
115
+ }
104
116
  // Install 507 auto-retry on billable methods. Only meaningful when an
105
117
  // active remote is (or may later become) in play; the hook bails early
106
118
  // when local is active.
@@ -144,25 +156,15 @@ export async function createWalletCore(config, localStorage, toolbox) {
144
156
  unprovenAttemptsLimitMain: 144,
145
157
  });
146
158
  monitor.addDefaultTasks();
147
- // Periodic backup sync task. Fires only when local is the active store;
148
- // with a remote active, pushing local-to-remote on a schedule would be
149
- // unnecessary (remote is canonical) and the auto-retry payment path can
150
- // deadlock against the manager's locks if it fires inside a scheduled
151
- // backup task. Interval defaults to 5 min.
159
+ // Periodic automatic backup sync. Unlike the explicit updateBackups()
160
+ // (loud, all-or-nothing by design), the automatic path isolates each
161
+ // backup so one failing store never starves the rest. Billing 507s
162
+ // are settled out-of-band by the payment auto-retry layer, never
163
+ // under the storage lock. Interval defaults to 5 min.
152
164
  const backupSyncIntervalMs = config.backupSyncIntervalMs ?? 5 * 60 * 1000;
153
165
  if (backupSyncIntervalMs > 0) {
154
166
  monitor.addTask(buildBackupSyncTask(monitor, backupSyncIntervalMs, storage, {
155
- unregisteredBackupUrls: () => {
156
- const configured = config.backups ?? [];
157
- if (configured.length === 0)
158
- return [];
159
- const registered = new Set(remoteClients.map((c) => c.endpointUrl));
160
- return configured.filter((url) => !registered.has(url));
161
- },
162
- registerBackup: async (url) => {
163
- await connectRemote(url);
164
- await reconcileActive();
165
- },
167
+ syncBackups,
166
168
  }));
167
169
  }
168
170
  if (config.onTransactionBroadcasted) {
@@ -279,11 +281,10 @@ export async function createWalletCore(config, localStorage, toolbox) {
279
281
  if (existing)
280
282
  return;
281
283
  await connectRemote(url);
282
- await reconcileActive();
284
+ await storage.setActive(intendedActiveKey);
283
285
  };
284
286
  // 7. Destroy
285
287
  const destroy = async () => {
286
- backupRegistration?.stop();
287
288
  if (monitor) {
288
289
  try {
289
290
  monitor.stopTasks();
@@ -307,24 +308,18 @@ export async function createWalletCore(config, localStorage, toolbox) {
307
308
  addRemote,
308
309
  getActiveStorage: () => storage.getActive(),
309
310
  feeModel,
310
- backupsSettled: backupRegistration
311
- ? backupRegistration.whenSettled()
312
- : Promise.resolve(),
313
311
  };
314
312
  }
315
313
  /**
316
- * Builds a plain-object Monitor task that drives ongoing backup
317
- * reconciliation. On each tick (when local is the active store):
318
- * 1. Re-attempt registration for any configured URLs not yet registered
319
- * (recovers from initial handshake failures).
320
- * 2. Call `storage.updateBackups()` to push pending state to all
321
- * successfully-registered backups.
314
+ * Builds a plain-object Monitor task that periodically syncs the active
315
+ * store to every registered backup, one at a time, each isolated so one
316
+ * failing backup doesn't block the rest. Billed remote writers that
317
+ * answer 507 are handled out-of-band by the payment auto-retry layer —
318
+ * no payment runs under the storage lock.
322
319
  *
323
320
  * Shape-compatible with `WalletMonitorTask` so the factory doesn't import
324
321
  * the abstract class from whichever wallet-toolbox variant the caller
325
- * uses. Only fires when local is the active store — with a remote active,
326
- * pushing local-to-remote on a schedule is unnecessary and the auto-retry
327
- * payment path can deadlock against the manager's locks.
322
+ * uses.
328
323
  */
329
324
  function buildBackupSyncTask(monitor, triggerMsecs, storage, options) {
330
325
  return {
@@ -337,38 +332,15 @@ function buildBackupSyncTask(monitor, triggerMsecs, storage, options) {
337
332
  if (nowMsecsSinceEpoch - this.lastRunMsecsSinceEpoch < triggerMsecs) {
338
333
  return { run: false };
339
334
  }
340
- const hasRegistered = storage.getBackupStores().length > 0;
341
- const hasUnregistered = options.unregisteredBackupUrls().length > 0;
342
- if (!hasRegistered && !hasUnregistered)
343
- return { run: false };
344
- try {
345
- const active = storage.getActive();
346
- if (!active?.isStorageProvider?.())
347
- return { run: false };
348
- }
349
- catch {
335
+ if (storage.getBackupStores().length === 0)
350
336
  return { run: false };
351
- }
352
337
  return { run: true };
353
338
  },
354
339
  async runTask() {
355
- const unregistered = options.unregisteredBackupUrls();
356
340
  const messages = [];
357
- if (unregistered.length > 0) {
358
- const results = await Promise.allSettled(unregistered.map((url) => options.registerBackup(url)));
359
- for (let i = 0; i < results.length; i++) {
360
- const r = results[i];
361
- if (r.status === 'rejected') {
362
- console.warn(`[BackupSync] registration retry failed for ${unregistered[i]}:`, r.reason);
363
- }
364
- }
365
- const recovered = results.filter((r) => r.status === 'fulfilled').length;
366
- if (recovered > 0)
367
- messages.push(`registered ${recovered}`);
368
- }
369
341
  if (storage.getBackupStores().length > 0) {
370
342
  try {
371
- await storage.updateBackups();
343
+ await options.syncBackups();
372
344
  messages.push('sync complete');
373
345
  }
374
346
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export { ChromeCWI, CWI_EVENT_NAMES, CWIEventName, EventCWI, createChromeCWI, cr
9
9
  export { parsePrivateKey } from './parsePrivateKey';
10
10
  export { createWalletCore, DEFAULT_FEE_MODEL, DEFAULT_CONNECTION_TIMEOUT, type Chain, type TaskStateStore, type WalletCoreConfig, type WalletCoreResult, } from './factory';
11
11
  export { installStoragePaymentAutoRetry, StoragePaymentError, type AutoRetryConfig, type StoragePaymentHook, type StoragePaymentRequiredInfo, } from './storagePaymentAutoRetry';
12
+ export { buildReviewInvalidTask, nominateInvalidReqs, type NominatedReq, type NominateInvalidResult, type ReviewInvalidTaskOptions, } from './reviewInvalidTask';
12
13
  export { filterGroupedByMissing, InMemoryPermissionStore, isExpired, LocalWalletPermissionsManager, normalizeOriginator, permissionKeyFromRequest, permissionKeysFromGroup, permissionKeyToString, } from './permissions';
13
14
  export type { IPermissionStore, ListGrantsFilter, LocalWalletPermissionsManagerOptions, PermissionKey, PermissionType, StoredGrant, } from './permissions';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,YAAY,EACX,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,UAAU,GACV,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAGzD,OAAO,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,GACT,MAAM,cAAc,CAAA;AAGrB,OAAO,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,GAAG,GACR,MAAM,YAAY,CAAA;AAGnB,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,KAAK,iBAAiB,GACtB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,GAAG,EACH,UAAU,EACV,KAAK,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,QAAQ,GACb,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,SAAS,EACT,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,GACjB,MAAM,OAAO,CAAA;AAMd,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACrB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACN,8BAA8B,EAC9B,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,GAC/B,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EACN,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,GACrB,MAAM,eAAe,CAAA;AACtB,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,oCAAoC,EACpC,aAAa,EACb,cAAc,EACd,WAAW,GACX,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,YAAY,EACX,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,UAAU,GACV,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAGzD,OAAO,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,GACT,MAAM,cAAc,CAAA;AAGrB,OAAO,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,GAAG,GACR,MAAM,YAAY,CAAA;AAGnB,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,KAAK,iBAAiB,GACtB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,GAAG,EACH,UAAU,EACV,KAAK,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,QAAQ,GACb,MAAM,UAAU,CAAA;AAGjB,OAAO,EACN,SAAS,EACT,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,GACjB,MAAM,OAAO,CAAA;AAMd,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACrB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACN,8BAA8B,EAC9B,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,GAC/B,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EACN,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC7B,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACN,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,GACrB,MAAM,eAAe,CAAA;AACtB,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,oCAAoC,EACpC,aAAa,EACb,cAAc,EACd,WAAW,GACX,MAAM,eAAe,CAAA"}
package/dist/index.js CHANGED
@@ -20,6 +20,8 @@ export { parsePrivateKey } from './parsePrivateKey';
20
20
  export { createWalletCore, DEFAULT_FEE_MODEL, DEFAULT_CONNECTION_TIMEOUT, } from './factory';
21
21
  // 507 auto-retry
22
22
  export { installStoragePaymentAutoRetry, StoragePaymentError, } from './storagePaymentAutoRetry';
23
+ // Invalid-req recovery nomination for TaskUnFail
24
+ export { buildReviewInvalidTask, nominateInvalidReqs, } from './reviewInvalidTask';
23
25
  // Permissions — local-storage-backed WalletPermissionsManager
24
26
  export { filterGroupedByMissing, InMemoryPermissionStore, isExpired, LocalWalletPermissionsManager, normalizeOriginator, permissionKeyFromRequest, permissionKeysFromGroup, permissionKeyToString, } from './permissions';
25
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAU7C,UAAU;AACV,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,cAAc;AACd,OAAO,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,GACT,MAAM,cAAc,CAAA;AAErB,WAAW;AACX,OAAO,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,GAYZ,MAAM,YAAY,CAAA;AAEnB,eAAe;AACf,OAAO,EACN,cAAc,EACd,iBAAiB,GAEjB,MAAM,gBAAgB,CAAA;AAEvB,SAAS;AACT,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,GAAG,EACH,UAAU,EACV,KAAK,GAKL,MAAM,UAAU,CAAA;AAEjB,+BAA+B;AAC/B,OAAO,EACN,SAAS,EACT,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,GAWd,MAAM,OAAO,CAAA;AAEd,8EAA8E;AAC9E,sDAAsD;AAEtD,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,eAAe;AACf,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAK1B,MAAM,WAAW,CAAA;AAElB,iBAAiB;AACjB,OAAO,EACN,8BAA8B,EAC9B,mBAAmB,GAInB,MAAM,2BAA2B,CAAA;AAElC,8DAA8D;AAC9D,OAAO,EACN,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,GACrB,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAU7C,UAAU;AACV,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,cAAc;AACd,OAAO,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,GACT,MAAM,cAAc,CAAA;AAErB,WAAW;AACX,OAAO,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,GAYZ,MAAM,YAAY,CAAA;AAEnB,eAAe;AACf,OAAO,EACN,cAAc,EACd,iBAAiB,GAEjB,MAAM,gBAAgB,CAAA;AAEvB,SAAS;AACT,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,GAAG,EACH,UAAU,EACV,KAAK,GAKL,MAAM,UAAU,CAAA;AAEjB,+BAA+B;AAC/B,OAAO,EACN,SAAS,EACT,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,GAWd,MAAM,OAAO,CAAA;AAEd,8EAA8E;AAC9E,sDAAsD;AAEtD,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,eAAe;AACf,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAK1B,MAAM,WAAW,CAAA;AAElB,iBAAiB;AACjB,OAAO,EACN,8BAA8B,EAC9B,mBAAmB,GAInB,MAAM,2BAA2B,CAAA;AAElC,iDAAiD;AACjD,OAAO,EACN,sBAAsB,EACtB,mBAAmB,GAInB,MAAM,qBAAqB,CAAA;AAE5B,8DAA8D;AAC9D,OAAO,EACN,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,GACrB,MAAM,eAAe,CAAA"}
@@ -0,0 +1,48 @@
1
+ export interface NominatedReq {
2
+ provenTxReqId: number;
3
+ txid: string;
4
+ }
5
+ export interface NominateInvalidResult {
6
+ nominated: NominatedReq[];
7
+ }
8
+ /**
9
+ * Nominate `invalid` proven_tx_reqs for recovery by setting them to
10
+ * `unfail`. Nomination only — wallet-toolbox's scheduled `TaskUnFail`
11
+ * verifies each against the chain, restores the ones that actually mined
12
+ * (transaction back to completed, inputs re-marked spent, outputs
13
+ * activated), and returns the rest to `invalid`.
14
+ *
15
+ * Exists because `invalid` is otherwise terminal: a transaction that the
16
+ * network later mines — a wrongly classified rejection, or a proof that
17
+ * arrived after the give-up limit — stays `failed` forever and its
18
+ * released inputs get re-spent against confirmed history.
19
+ *
20
+ * `windowMsecs` limits nomination to reqs created within the window;
21
+ * omit it to nominate every invalid req (one-time cleanup). The window
22
+ * keys on `created_at`, which is immutable — `updated_at` would never
23
+ * age anything out, because TaskUnFail's bounce back to `invalid`
24
+ * refreshes it every cycle.
25
+ *
26
+ * `storage` accepts either a `WalletStorageManager` or a raw
27
+ * `StorageProvider` — both expose `findProvenTxReqs`; the update goes
28
+ * through `runAsStorageProvider` when present, directly otherwise.
29
+ */
30
+ export declare function nominateInvalidReqs(storage: any, windowMsecs?: number): Promise<NominateInvalidResult>;
31
+ export interface ReviewInvalidTaskOptions {
32
+ /** How often the task runs. Default 1 hour. */
33
+ triggerMsecs?: number;
34
+ /** Only reqs created within this window are nominated. Omit for all. */
35
+ windowMsecs?: number;
36
+ }
37
+ /**
38
+ * Builds a plain-object Monitor task around `nominateInvalidReqs` for
39
+ * deployments that want a standing audit. Deliberately wired nowhere by
40
+ * default: automatic healing hides upstream failures (a misclassifying
41
+ * broadcast path would self-repair invisibly instead of surfacing).
42
+ * Prefer the CLI (`1sat storage unfail`) for occasional deliberate runs.
43
+ *
44
+ * Shape-compatible with `WalletMonitorTask` so callers don't import the
45
+ * abstract class from whichever wallet-toolbox variant they use.
46
+ */
47
+ export declare function buildReviewInvalidTask(monitor: any, storage: any, options?: ReviewInvalidTaskOptions): any;
48
+ //# sourceMappingURL=reviewInvalidTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewInvalidTask.d.ts","sourceRoot":"","sources":["../src/reviewInvalidTask.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,qBAAqB;IACrC,SAAS,EAAE,YAAY,EAAE,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,GAAG,EACZ,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,CAAC,CAgChC;AAED,MAAM,WAAW,wBAAwB;IACxC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,OAAO,GAAE,wBAA6B,GACpC,GAAG,CAsBL"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Nominate `invalid` proven_tx_reqs for recovery by setting them to
3
+ * `unfail`. Nomination only — wallet-toolbox's scheduled `TaskUnFail`
4
+ * verifies each against the chain, restores the ones that actually mined
5
+ * (transaction back to completed, inputs re-marked spent, outputs
6
+ * activated), and returns the rest to `invalid`.
7
+ *
8
+ * Exists because `invalid` is otherwise terminal: a transaction that the
9
+ * network later mines — a wrongly classified rejection, or a proof that
10
+ * arrived after the give-up limit — stays `failed` forever and its
11
+ * released inputs get re-spent against confirmed history.
12
+ *
13
+ * `windowMsecs` limits nomination to reqs created within the window;
14
+ * omit it to nominate every invalid req (one-time cleanup). The window
15
+ * keys on `created_at`, which is immutable — `updated_at` would never
16
+ * age anything out, because TaskUnFail's bounce back to `invalid`
17
+ * refreshes it every cycle.
18
+ *
19
+ * `storage` accepts either a `WalletStorageManager` or a raw
20
+ * `StorageProvider` — both expose `findProvenTxReqs`; the update goes
21
+ * through `runAsStorageProvider` when present, directly otherwise.
22
+ */
23
+ export async function nominateInvalidReqs(storage, windowMsecs) {
24
+ const cutoff = windowMsecs === undefined
25
+ ? undefined
26
+ : new Date(Date.now() - windowMsecs);
27
+ const nominated = [];
28
+ const limit = 100;
29
+ let offset = 0;
30
+ for (;;) {
31
+ const reqs = await storage.findProvenTxReqs({
32
+ partial: { status: 'invalid' },
33
+ paged: { limit, offset },
34
+ });
35
+ for (const req of reqs) {
36
+ if (!cutoff || new Date(req.created_at) >= cutoff) {
37
+ nominated.push({ provenTxReqId: req.provenTxReqId, txid: req.txid });
38
+ }
39
+ }
40
+ if (reqs.length < limit)
41
+ break;
42
+ offset += limit;
43
+ }
44
+ if (nominated.length > 0) {
45
+ const ids = nominated.map((n) => n.provenTxReqId);
46
+ if (typeof storage.runAsStorageProvider === 'function') {
47
+ await storage.runAsStorageProvider(async (sp) => {
48
+ await sp.updateProvenTxReq(ids, { status: 'unfail' });
49
+ });
50
+ }
51
+ else {
52
+ await storage.updateProvenTxReq(ids, { status: 'unfail' });
53
+ }
54
+ }
55
+ return { nominated };
56
+ }
57
+ /**
58
+ * Builds a plain-object Monitor task around `nominateInvalidReqs` for
59
+ * deployments that want a standing audit. Deliberately wired nowhere by
60
+ * default: automatic healing hides upstream failures (a misclassifying
61
+ * broadcast path would self-repair invisibly instead of surfacing).
62
+ * Prefer the CLI (`1sat storage unfail`) for occasional deliberate runs.
63
+ *
64
+ * Shape-compatible with `WalletMonitorTask` so callers don't import the
65
+ * abstract class from whichever wallet-toolbox variant they use.
66
+ */
67
+ export function buildReviewInvalidTask(monitor, storage, options = {}) {
68
+ const triggerMsecs = options.triggerMsecs ?? 60 * 60 * 1000;
69
+ return {
70
+ monitor,
71
+ storage: monitor.storage,
72
+ name: 'ReviewInvalid',
73
+ lastRunMsecsSinceEpoch: 0,
74
+ async asyncSetup() { },
75
+ trigger(nowMsecsSinceEpoch) {
76
+ return {
77
+ run: nowMsecsSinceEpoch - this.lastRunMsecsSinceEpoch >= triggerMsecs,
78
+ };
79
+ },
80
+ async runTask() {
81
+ const { nominated } = await nominateInvalidReqs(storage, options.windowMsecs);
82
+ if (nominated.length === 0)
83
+ return 'no invalid reqs nominated';
84
+ return `nominated ${nominated.length} invalid reqs for unfail review`;
85
+ },
86
+ };
87
+ }
88
+ //# sourceMappingURL=reviewInvalidTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewInvalidTask.js","sourceRoot":"","sources":["../src/reviewInvalidTask.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,OAAY,EACZ,WAAoB;IAEpB,MAAM,MAAM,GACX,WAAW,KAAK,SAAS;QACxB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,CAAA;IACtC,MAAM,SAAS,GAAmB,EAAE,CAAA;IACpC,MAAM,KAAK,GAAG,GAAG,CAAA;IACjB,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,SAAS,CAAC;QACT,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC;YAC3C,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;YAC9B,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SACxB,CAAC,CAAA;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;gBACnD,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YACrE,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK;YAAE,MAAK;QAC9B,MAAM,IAAI,KAAK,CAAA;IAChB,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;QACjD,IAAI,OAAO,OAAO,CAAC,oBAAoB,KAAK,UAAU,EAAE,CAAC;YACxD,MAAM,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAE,EAAO,EAAE,EAAE;gBACpD,MAAM,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YACtD,CAAC,CAAC,CAAA;QACH,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC3D,CAAC;IACF,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,CAAA;AACrB,CAAC;AASD;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACrC,OAAY,EACZ,OAAY,EACZ,UAAoC,EAAE;IAEtC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC3D,OAAO;QACN,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,eAAe;QACrB,sBAAsB,EAAE,CAAC;QACzB,KAAK,CAAC,UAAU,KAAI,CAAC;QACrB,OAAO,CAAC,kBAA0B;YACjC,OAAO;gBACN,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,IAAI,YAAY;aACrE,CAAA;QACF,CAAC;QACD,KAAK,CAAC,OAAO;YACZ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,CAC9C,OAAO,EACP,OAAO,CAAC,WAAW,CACnB,CAAA;YACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,2BAA2B,CAAA;YAC9D,OAAO,aAAa,SAAS,CAAC,MAAM,iCAAiC,CAAA;QACtE,CAAC;KACD,CAAA;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/wallet",
3
- "version": "0.0.92",
3
+ "version": "0.0.94",
4
4
  "description": "BRC-100 wallet engine for 1Sat Ordinals SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,39 +0,0 @@
1
- export interface BackupRegistrationOptions {
2
- urls: string[];
3
- register: (url: string) => Promise<void>;
4
- onError?: (url: string, err: unknown) => void;
5
- }
6
- /**
7
- * Fires one async registration attempt per backup URL out of band from
8
- * factory boot. No retry: in long-lived processes the periodic
9
- * `BackupSync` monitor task handles ongoing reconciliation; in transient
10
- * processes (CLI invocations, service worker wakes) the next wake provides
11
- * the retry cadence. Repeated retry inside a single process duplicates
12
- * those existing mechanisms.
13
- *
14
- * `stop()` aborts the work if the wallet is destroyed before in-flight
15
- * registrations complete (the in-flight promise is allowed to settle but
16
- * its result is ignored).
17
- */
18
- export declare class BackupRegistration {
19
- private readonly opts;
20
- private stopped;
21
- private inFlight;
22
- constructor(opts: BackupRegistrationOptions);
23
- start(): void;
24
- stop(): void;
25
- /**
26
- * Resolves once every configured backup URL has either successfully
27
- * registered or errored (errors are surfaced via `onError`, not by
28
- * rejecting this promise). Resolves immediately if `start()` was never
29
- * called or no URLs were configured. Safe to call before or after
30
- * `start()`.
31
- *
32
- * Use this to coordinate with concurrent storage consumers (e.g. the
33
- * monitor's initial run) so they don't race against the
34
- * `WalletStorageManager.addWalletStorageProvider` flip.
35
- */
36
- whenSettled(): Promise<void>;
37
- private attempt;
38
- }
39
- //# sourceMappingURL=backupRegistration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backupRegistration.d.ts","sourceRoot":"","sources":["../src/backupRegistration.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CAC7C;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAIlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAsB;gBAET,IAAI,EAAE,yBAAyB;IAE5D,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAIZ;;;;;;;;;;OAUG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC,OAAO,CAAC,OAAO;CASf"}
@@ -1,55 +0,0 @@
1
- /**
2
- * Fires one async registration attempt per backup URL out of band from
3
- * factory boot. No retry: in long-lived processes the periodic
4
- * `BackupSync` monitor task handles ongoing reconciliation; in transient
5
- * processes (CLI invocations, service worker wakes) the next wake provides
6
- * the retry cadence. Repeated retry inside a single process duplicates
7
- * those existing mechanisms.
8
- *
9
- * `stop()` aborts the work if the wallet is destroyed before in-flight
10
- * registrations complete (the in-flight promise is allowed to settle but
11
- * its result is ignored).
12
- */
13
- export class BackupRegistration {
14
- opts;
15
- stopped = false;
16
- inFlight = [];
17
- constructor(opts) {
18
- this.opts = opts;
19
- }
20
- start() {
21
- for (const url of this.opts.urls)
22
- this.inFlight.push(this.attempt(url));
23
- }
24
- stop() {
25
- this.stopped = true;
26
- }
27
- /**
28
- * Resolves once every configured backup URL has either successfully
29
- * registered or errored (errors are surfaced via `onError`, not by
30
- * rejecting this promise). Resolves immediately if `start()` was never
31
- * called or no URLs were configured. Safe to call before or after
32
- * `start()`.
33
- *
34
- * Use this to coordinate with concurrent storage consumers (e.g. the
35
- * monitor's initial run) so they don't race against the
36
- * `WalletStorageManager.addWalletStorageProvider` flip.
37
- */
38
- async whenSettled() {
39
- if (this.inFlight.length === 0)
40
- return;
41
- await Promise.allSettled(this.inFlight);
42
- }
43
- attempt(url) {
44
- return (async () => {
45
- try {
46
- await this.opts.register(url);
47
- }
48
- catch (err) {
49
- if (!this.stopped && this.opts.onError)
50
- this.opts.onError(url, err);
51
- }
52
- })();
53
- }
54
- }
55
- //# sourceMappingURL=backupRegistration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backupRegistration.js","sourceRoot":"","sources":["../src/backupRegistration.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAkB;IAID;IAHrB,OAAO,GAAG,KAAK,CAAA;IACf,QAAQ,GAAoB,EAAE,CAAA;IAEtC,YAA6B,IAA+B;QAA/B,SAAI,GAAJ,IAAI,CAA2B;IAAG,CAAC;IAEhE,KAAK;QACJ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACxE,CAAC;IAED,IAAI;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACpB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,WAAW;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACtC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAEO,OAAO,CAAC,GAAW;QAC1B,OAAO,CAAC,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YACpE,CAAC;QACF,CAAC,CAAC,EAAE,CAAA;IACL,CAAC;CACD"}