@1sat/wallet-server 0.0.42 → 0.0.44

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/index.d.ts CHANGED
@@ -7,8 +7,6 @@ export type { WalletServerConfig, WalletServerHandle, } from './createWalletServ
7
7
  export { WalletServerClient } from './client';
8
8
  export { topUpStorage } from './topUp';
9
9
  export type { TopUpResult } from './topUp';
10
- export { createWalletMonitor } from './createWalletMonitor';
11
- export type { WalletMonitorConfig, WalletMonitorHandle, } from './createWalletMonitor';
12
10
  export { BILLABLE_METHODS, dispatch, isBillableMethod } from './dispatch';
13
11
  export type { DispatchContext, DispatchInput } from './dispatch';
14
12
  export * from './resolvers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EACX,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACzE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhE,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAE1B,YAAY,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,GAC1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,YAAY,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC1B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,sBAAsB,GAC3B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAChE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,GAC5B,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACX,0BAA0B,EAC1B,YAAY,EACZ,kBAAkB,GAClB,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACzE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhE,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAE1B,YAAY,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,GAC1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,YAAY,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC1B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,sBAAsB,GAC3B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAChE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,GAC5B,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACX,0BAA0B,EAC1B,YAAY,EACZ,kBAAkB,GAClB,MAAM,gCAAgC,CAAA"}
package/dist/index.js CHANGED
@@ -3,7 +3,6 @@ export { createBearerServer } from './createBearerServer';
3
3
  export { createWalletServer } from './createWalletServer';
4
4
  export { WalletServerClient } from './client';
5
5
  export { topUpStorage } from './topUp';
6
- export { createWalletMonitor } from './createWalletMonitor';
7
6
  export { BILLABLE_METHODS, dispatch, isBillableMethod } from './dispatch';
8
7
  export * from './resolvers';
9
8
  export * from './accounts';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAM3D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGzE,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAiB1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAMrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAO/D,OAAO,EACN,kBAAkB,GAGlB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,aAAa,GAIb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,GAC5B,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGzE,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAiB1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAMrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAO/D,OAAO,EACN,kBAAkB,GAGlB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,aAAa,GAIb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,GAC5B,MAAM,gCAAgC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/wallet-server",
3
- "version": "0.0.42",
3
+ "version": "0.0.44",
4
4
  "description": "BRC-100 wallet storage RPC server for 1Sat Ordinals SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -31,10 +31,10 @@
31
31
  ],
32
32
  "license": "MIT",
33
33
  "dependencies": {
34
- "@1sat/client": "0.0.48",
35
- "@1sat/templates": "0.0.29",
34
+ "@1sat/client": "0.0.49",
35
+ "@1sat/templates": "0.0.30",
36
36
  "@1sat/types": "0.0.39",
37
- "@1sat/wallet": "0.0.100",
37
+ "@1sat/wallet": "0.0.102",
38
38
  "@bopen-io/messagebox-server": "^1.3.2",
39
39
  "@bsv/auth-express-middleware": "npm:@bopen-io/auth-express-middleware@2.1.3",
40
40
  "evlog": "^2.13.0",
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@bsv/sdk": "^2.1.9",
46
- "@bsv/wallet-toolbox": "2.4.3",
46
+ "@bsv/wallet-toolbox": "2.4.4",
47
47
  "knex": "^3.1.0",
48
48
  "@bsv/paymail": "^2.4.0"
49
49
  },
@@ -54,7 +54,7 @@
54
54
  },
55
55
  "devDependencies": {
56
56
  "@bsv/sdk": "^2.1.9",
57
- "@bsv/wallet-toolbox": "2.4.3",
57
+ "@bsv/wallet-toolbox": "2.4.4",
58
58
  "@types/bun": "^1.3.10",
59
59
  "@types/express": "^4.17.21",
60
60
  "knex": "^3.1.0",
@@ -1,29 +0,0 @@
1
- import { type sdk as walletSdk } from '@bsv/wallet-toolbox';
2
- import type { ChaintracksClientApi } from '@bsv/wallet-toolbox/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js';
3
- import { type Knex } from 'knex';
4
- type FeeModel = walletSdk.StorageFeeModel;
5
- export interface WalletMonitorConfig {
6
- chain: 'main' | 'test';
7
- knex: Knex.Config;
8
- /** 1sat-stack base URL used for default OneSatServices. Ignored when `services` is supplied. */
9
- onesatURL?: string;
10
- /** Override chain services. Defaults to OneSatServices(chain, onesatURL). */
11
- services?: walletSdk.WalletServices;
12
- /** Chaintracks client. Defaults to the one provided by OneSatServices. */
13
- chaintracks?: ChaintracksClientApi;
14
- /** StorageKnex fee model. Defaults to { model: 'sat/kb', value: 1 }. */
15
- feeModel?: FeeModel;
16
- }
17
- export interface WalletMonitorHandle {
18
- start(): Promise<void>;
19
- stop(): Promise<void>;
20
- get running(): boolean;
21
- }
22
- /**
23
- * Builds and runs a wallet-toolbox Monitor daemon wired to OneSatServices by default.
24
- *
25
- * Intended entry point for `1sat serve monitor` and the monitor portion of `1sat serve`.
26
- */
27
- export declare function createWalletMonitor(config: WalletMonitorConfig): WalletMonitorHandle;
28
- export {};
29
- //# sourceMappingURL=createWalletMonitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createWalletMonitor.d.ts","sourceRoot":"","sources":["../src/createWalletMonitor.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,GAAG,IAAI,SAAS,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2FAA2F,CAAA;AAErI,OAAO,EAAE,KAAK,IAAI,EAAoB,MAAM,MAAM,CAAA;AAElD,KAAK,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAA;AAEzC,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAA;IACjB,gGAAgG;IAChG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,SAAS,CAAC,cAAc,CAAA;IACnC,0EAA0E;IAC1E,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,IAAI,OAAO,IAAI,OAAO,CAAA;CACtB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,mBAAmB,GACzB,mBAAmB,CA0HrB"}
@@ -1,115 +0,0 @@
1
- import { OneSatServices } from '@1sat/client';
2
- import { Monitor, StorageKnex, WalletStorageManager, } from '@bsv/wallet-toolbox';
3
- import { createLogger } from 'evlog';
4
- import { knex as makeKnex } from 'knex';
5
- /**
6
- * Builds and runs a wallet-toolbox Monitor daemon wired to OneSatServices by default.
7
- *
8
- * Intended entry point for `1sat serve monitor` and the monitor portion of `1sat serve`.
9
- */
10
- export function createWalletMonitor(config) {
11
- let knex;
12
- let storage;
13
- let monitor;
14
- let tasksPromise;
15
- let started = false;
16
- return {
17
- get running() {
18
- return started;
19
- },
20
- async start() {
21
- if (started)
22
- return;
23
- started = true;
24
- const startLog = createLogger({ context: 'monitor' });
25
- startLog.set({ event: 'monitor_starting', chain: config.chain });
26
- try {
27
- knex = makeKnex(config.knex);
28
- storage = new StorageKnex({
29
- chain: config.chain,
30
- knex,
31
- feeModel: config.feeModel ?? { model: 'sat/kb', value: 1 },
32
- commissionSatoshis: 0,
33
- commissionPubKeyHex: undefined,
34
- });
35
- await storage.makeAvailable();
36
- const settings = await storage.getSettings();
37
- const manager = new WalletStorageManager(settings.storageIdentityKey, storage);
38
- await manager.makeAvailable();
39
- const services = config.services ??
40
- new OneSatServices(config.chain, config.onesatURL);
41
- manager.setServices(services);
42
- const chaintracks = config.chaintracks ??
43
- services
44
- .chaintracks;
45
- if (!chaintracks) {
46
- throw new Error('createWalletMonitor: services does not expose `chaintracks`; pass `chaintracks` explicitly.');
47
- }
48
- monitor = new Monitor({
49
- chain: config.chain,
50
- services,
51
- storage: manager,
52
- chaintracks,
53
- msecsWaitPerMerkleProofServiceReq: 500,
54
- taskRunWaitMsecs: 5000,
55
- abandonedMsecs: 5 * 60 * 1000,
56
- unprovenAttemptsLimitTest: 10,
57
- unprovenAttemptsLimitMain: 144,
58
- // Required by MonitorOptions. 0 means rebroadcast without limit;
59
- // a positive cap marks the req invalid once reached, which strands
60
- // transactions whose proof only arrives after the cap.
61
- maxRebroadcastAttempts: 0,
62
- });
63
- if (monitor._tasks.length === 0)
64
- monitor.addMultiUserTasks();
65
- tasksPromise = monitor.startTasks();
66
- startLog.set({
67
- event: 'monitor_started',
68
- taskCount: monitor._tasks.length,
69
- storageIdentityKey: settings.storageIdentityKey,
70
- });
71
- startLog.emit();
72
- }
73
- catch (err) {
74
- started = false;
75
- startLog.set({ event: 'monitor_start_failed' });
76
- startLog.error(err);
77
- throw err;
78
- }
79
- },
80
- async stop() {
81
- if (!started)
82
- return;
83
- started = false;
84
- const stopLog = createLogger({ context: 'monitor' });
85
- stopLog.set({ event: 'monitor_stopping' });
86
- if (monitor)
87
- monitor.stopTasks();
88
- if (tasksPromise) {
89
- try {
90
- await tasksPromise;
91
- }
92
- catch {
93
- // task promise rejects on shutdown in some configurations; ignore
94
- }
95
- }
96
- try {
97
- await monitor?.destroy();
98
- }
99
- catch {
100
- // destroy unsubscribes chaintracks listeners; failures here aren't fatal
101
- }
102
- if (storage)
103
- await storage.destroy();
104
- if (knex)
105
- await knex.destroy();
106
- monitor = undefined;
107
- tasksPromise = undefined;
108
- storage = undefined;
109
- knex = undefined;
110
- stopLog.set({ event: 'monitor_stopped' });
111
- stopLog.emit();
112
- },
113
- };
114
- }
115
- //# sourceMappingURL=createWalletMonitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createWalletMonitor.js","sourceRoot":"","sources":["../src/createWalletMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EACN,OAAO,EACP,WAAW,EACX,oBAAoB,GAEpB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACpC,OAAO,EAAa,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAA;AAuBlD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAClC,MAA2B;IAE3B,IAAI,IAAsB,CAAA;IAC1B,IAAI,OAAgC,CAAA;IACpC,IAAI,OAA4B,CAAA;IAChC,IAAI,YAAuC,CAAA;IAC3C,IAAI,OAAO,GAAG,KAAK,CAAA;IAEnB,OAAO;QACN,IAAI,OAAO;YACV,OAAO,OAAO,CAAA;QACf,CAAC;QAED,KAAK,CAAC,KAAK;YACV,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YAEd,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;YACrD,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;YAEhE,IAAI,CAAC;gBACJ,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAE5B,OAAO,GAAG,IAAI,WAAW,CAAC;oBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI;oBACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC1D,kBAAkB,EAAE,CAAC;oBACrB,mBAAmB,EAAE,SAAS;iBAC9B,CAAC,CAAA;gBACF,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;gBAE7B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAA;gBAC5C,MAAM,OAAO,GAAG,IAAI,oBAAoB,CACvC,QAAQ,CAAC,kBAAkB,EAC3B,OAAO,CACP,CAAA;gBACD,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;gBAE7B,MAAM,QAAQ,GACb,MAAM,CAAC,QAAQ;oBACd,IAAI,cAAc,CAClB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,CACwB,CAAA;gBAC1C,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;gBAE7B,MAAM,WAAW,GAChB,MAAM,CAAC,WAAW;oBACjB,QAA8D;yBAC7D,WAAW,CAAA;gBACd,IAAI,CAAC,WAAW,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CACd,6FAA6F,CAC7F,CAAA;gBACF,CAAC;gBAED,OAAO,GAAG,IAAI,OAAO,CAAC;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,QAAQ;oBACR,OAAO,EAAE,OAAO;oBAChB,WAAW;oBACX,iCAAiC,EAAE,GAAG;oBACtC,gBAAgB,EAAE,IAAI;oBACtB,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;oBAC7B,yBAAyB,EAAE,EAAE;oBAC7B,yBAAyB,EAAE,GAAG;oBAC9B,iEAAiE;oBACjE,mEAAmE;oBACnE,uDAAuD;oBACvD,sBAAsB,EAAE,CAAC;iBACzB,CAAC,CAAA;gBAEF,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,CAAC,iBAAiB,EAAE,CAAA;gBAE5D,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,CAAA;gBAEnC,QAAQ,CAAC,GAAG,CAAC;oBACZ,KAAK,EAAE,iBAAiB;oBACxB,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;oBAChC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;iBAC/C,CAAC,CAAA;gBACF,QAAQ,CAAC,IAAI,EAAE,CAAA;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,GAAG,KAAK,CAAA;gBACf,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAA;gBAC/C,QAAQ,CAAC,KAAK,CAAC,GAAY,CAAC,CAAA;gBAC5B,MAAM,GAAG,CAAA;YACV,CAAC;QACF,CAAC;QAED,KAAK,CAAC,IAAI;YACT,IAAI,CAAC,OAAO;gBAAE,OAAM;YACpB,OAAO,GAAG,KAAK,CAAA;YAEf,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;YACpD,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAE1C,IAAI,OAAO;gBAAE,OAAO,CAAC,SAAS,EAAE,CAAA;YAChC,IAAI,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACJ,MAAM,YAAY,CAAA;gBACnB,CAAC;gBAAC,MAAM,CAAC;oBACR,kEAAkE;gBACnE,CAAC;YACF,CAAC;YACD,IAAI,CAAC;gBACJ,MAAM,OAAO,EAAE,OAAO,EAAE,CAAA;YACzB,CAAC;YAAC,MAAM,CAAC;gBACR,yEAAyE;YAC1E,CAAC;YACD,IAAI,OAAO;gBAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;YACpC,IAAI,IAAI;gBAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YAE9B,OAAO,GAAG,SAAS,CAAA;YACnB,YAAY,GAAG,SAAS,CAAA;YACxB,OAAO,GAAG,SAAS,CAAA;YACnB,IAAI,GAAG,SAAS,CAAA;YAEhB,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAA;YACzC,OAAO,CAAC,IAAI,EAAE,CAAA;QACf,CAAC;KACD,CAAA;AACF,CAAC"}