@xyo-network/module-abstract 2.65.5 → 2.65.6

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.
@@ -1,3 +1,4 @@
1
+ /* eslint-disable max-lines */
1
2
  import { assertEx } from '@xylabs/assert';
2
3
  import { exists } from '@xylabs/exists';
3
4
  import { HDWallet } from '@xyo-network/account';
@@ -5,9 +6,9 @@ import { AddressSchema } from '@xyo-network/address-payload-plugin';
5
6
  import { IndirectArchivistWrapper } from '@xyo-network/archivist-wrapper';
6
7
  import { BoundWitnessBuilder, QueryBoundWitnessBuilder, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder';
7
8
  import { ConfigSchema } from '@xyo-network/config-payload-plugin';
8
- import { handleErrorAsync } from '@xyo-network/error';
9
+ import { handleError, handleErrorAsync } from '@xyo-network/error';
9
10
  import { ModuleManifestPayloadSchema } from '@xyo-network/manifest-model';
10
- import { AddressPreviousHashSchema, duplicateModules, ModuleAddressQuerySchema, ModuleDescribeQuerySchema, ModuleDescriptionSchema, ModuleDiscoverQuerySchema, ModuleFactory, ModuleSubscribeQuerySchema, serializableField, } from '@xyo-network/module-model';
11
+ import { AddressPreviousHashSchema, duplicateModules, ModuleAddressQuerySchema, ModuleDescribeQuerySchema, ModuleDescriptionSchema, ModuleDiscoverQuerySchema, ModuleFactory, ModuleManifestQuerySchema, ModuleSubscribeQuerySchema, serializableField, } from '@xyo-network/module-model';
11
12
  import { PayloadBuilder } from '@xyo-network/payload-builder';
12
13
  import { PromiseEx } from '@xyo-network/promise';
13
14
  import { QuerySchema } from '@xyo-network/query-payload-plugin';
@@ -29,15 +30,18 @@ export class AbstractIndirectModule extends BaseEmitter {
29
30
  [ModuleAddressQuerySchema]: '1',
30
31
  [ModuleDescribeQuerySchema]: '4',
31
32
  [ModuleDiscoverQuerySchema]: '2',
33
+ [ModuleManifestQuerySchema]: '5',
32
34
  [ModuleSubscribeQuerySchema]: '3',
33
35
  };
34
36
  _queryAccounts = {
35
37
  [ModuleAddressQuerySchema]: undefined,
36
38
  [ModuleDescribeQuerySchema]: undefined,
37
39
  [ModuleDiscoverQuerySchema]: undefined,
40
+ [ModuleManifestQuerySchema]: undefined,
38
41
  [ModuleSubscribeQuerySchema]: undefined,
39
42
  };
40
- _started = false;
43
+ _started = undefined;
44
+ _starting = undefined;
41
45
  moduleConfigQueryValidator;
42
46
  supportedQueryValidator;
43
47
  _busyCount = 0;
@@ -139,7 +143,7 @@ export class AbstractIndirectModule extends BaseEmitter {
139
143
  }
140
144
  async query(query, payloads, queryConfig) {
141
145
  return await this.busy(async () => {
142
- this.started('throw');
146
+ await this.started('throw');
143
147
  const result = await this.queryHandler(assertEx(QueryBoundWitnessWrapper.unwrap(query)), payloads, queryConfig);
144
148
  const args = { module: this, payloads, query, result };
145
149
  await this.emit('moduleQueried', args);
@@ -155,41 +159,74 @@ export class AbstractIndirectModule extends BaseEmitter {
155
159
  const validators = [this.supportedQueryValidator, configValidator];
156
160
  return validators.every((validator) => validator(query, payloads));
157
161
  }
158
- async resolve(nameOrAddressOrFilter) {
162
+ async resolve(nameOrAddressOrFilter, options) {
163
+ const direction = options?.direction ?? 'all';
164
+ const up = direction === 'up' || direction === 'all';
165
+ const down = direction === 'down' || direction === 'all';
159
166
  switch (typeof nameOrAddressOrFilter) {
160
167
  case 'string': {
161
- return (await this.downResolver.resolve(nameOrAddressOrFilter)) ?? (await this.upResolver.resolve(nameOrAddressOrFilter));
168
+ return ((down ? await this.downResolver.resolve(nameOrAddressOrFilter) : undefined) ??
169
+ (up ? await this.upResolver.resolve(nameOrAddressOrFilter) : undefined));
162
170
  }
163
171
  default: {
164
172
  const filter = nameOrAddressOrFilter;
165
- return [...(await this.downResolver.resolve(filter)), ...(await this.upResolver.resolve(filter))].filter(duplicateModules);
173
+ return [
174
+ ...(down ? await this.downResolver.resolve(filter) : []),
175
+ ...(up ? await this.upResolver.resolve(filter) : []),
176
+ ].filter(duplicateModules);
166
177
  }
167
178
  }
168
179
  }
169
- async start(_timeout) {
170
- this.validateConfig();
171
- await this.initializeQueryAccounts();
172
- this._started = true;
180
+ start(_timeout) {
181
+ //using promise as mutex
182
+ this._starting = this._starting ?? this.startHandler();
183
+ return this._starting;
173
184
  }
174
- started(notStartedAction) {
185
+ async started(notStartedAction = 'log', tryStart = true) {
186
+ if (this._started === true) {
187
+ return true;
188
+ }
175
189
  if (!this._started) {
176
- switch (notStartedAction) {
177
- case 'throw':
178
- throw Error(`Module not Started [${this.address}]`);
179
- case 'warn':
180
- this.logger?.warn('Module not started');
181
- break;
182
- case 'error':
183
- this.logger?.error('Module not started');
184
- break;
185
- case 'none':
186
- break;
187
- case 'log':
188
- default:
189
- this.logger?.log('Module not started');
190
- }
190
+ //using promise as mutex
191
+ this._started = (async () => {
192
+ if (tryStart) {
193
+ try {
194
+ await this.start();
195
+ return true;
196
+ }
197
+ catch (ex) {
198
+ handleError(ex, (error) => {
199
+ this.logger?.warn(`Autostart of Module Failed: ${error.message})`);
200
+ this._started = undefined;
201
+ });
202
+ }
203
+ }
204
+ switch (notStartedAction) {
205
+ case 'throw':
206
+ throw Error(`Module not Started [${this.address}]`);
207
+ case 'warn':
208
+ this.logger?.warn('Module not started');
209
+ break;
210
+ case 'error':
211
+ this.logger?.error('Module not started');
212
+ break;
213
+ case 'none':
214
+ break;
215
+ case 'log':
216
+ default: {
217
+ this.logger?.log('Module not started');
218
+ break;
219
+ }
220
+ }
221
+ return false;
222
+ })();
191
223
  }
192
- return this._started;
224
+ return await this._started;
225
+ }
226
+ async stop(_timeout) {
227
+ return await this.busy(async () => {
228
+ return await this.stopHandler();
229
+ });
193
230
  }
194
231
  bindHashes(hashes, schema, account) {
195
232
  const promise = new PromiseEx((resolve) => {
@@ -275,7 +312,7 @@ export class AbstractIndirectModule extends BaseEmitter {
275
312
  }
276
313
  }
277
314
  manifestHandler() {
278
- const name = assertEx(this.config.name, 'Calling manifest on un-named module is not supported');
315
+ const name = this.config.name ?? 'Anonymous';
279
316
  return { config: { name, ...this.config }, schema: ModuleManifestPayloadSchema };
280
317
  }
281
318
  moduleAddressHandler() {
@@ -302,7 +339,7 @@ export class AbstractIndirectModule extends BaseEmitter {
302
339
  return [moduleAccount, moduleAccountPreviousHash, ...queryAccounts].flat();
303
340
  }
304
341
  async queryHandler(query, payloads, queryConfig) {
305
- this.started('throw');
342
+ await this.started('throw');
306
343
  const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
307
344
  if (!this.allowAnonymous) {
308
345
  if (query.addresses.length === 0) {
@@ -316,6 +353,10 @@ export class AbstractIndirectModule extends BaseEmitter {
316
353
  const queryAccount = this.ephemeralQueryAccountEnabled ? await HDWallet.random() : undefined;
317
354
  try {
318
355
  switch (queryPayload.schema) {
356
+ case ModuleManifestQuerySchema: {
357
+ resultPayloads.push(await this.manifestHandler());
358
+ break;
359
+ }
319
360
  case ModuleDiscoverQuerySchema: {
320
361
  resultPayloads.push(...(await this.discoverHandler()));
321
362
  break;
@@ -349,9 +390,15 @@ export class AbstractIndirectModule extends BaseEmitter {
349
390
  return (await this.bindQueryResult(queryPayload, resultPayloads, queryAccount ? [queryAccount] : [], errorPayloads))[0];
350
391
  }
351
392
  readArchivist = () => this.getArchivist('read');
352
- stop(_timeout) {
353
- this._started = false;
354
- return this;
393
+ async startHandler() {
394
+ this.validateConfig();
395
+ await this.initializeQueryAccounts();
396
+ this._started = true;
397
+ return true;
398
+ }
399
+ stopHandler(_timeout) {
400
+ this._started = undefined;
401
+ return true;
355
402
  }
356
403
  subscribeHandler(_queryAccount) {
357
404
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractIndirectModule.js","sourceRoot":"","sources":["../../src/AbstractIndirectModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractIndirectModule.js","sourceRoot":"","sources":["../../src/AbstractIndirectModule.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,OAAO,EAAkB,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAEnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAqB,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAE9I,OAAO,EAAiB,YAAY,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAyB,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAChG,OAAO,EAGL,yBAAyB,EAGzB,gBAAgB,EAGhB,wBAAwB,EAGxB,yBAAyB,EAEzB,uBAAuB,EACvB,yBAAyB,EAEzB,aAAa,EAGb,yBAAyB,EAMzB,0BAA0B,EAE1B,iBAAiB,GAElB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAc,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAgB,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC7E,OAAO,EAAmB,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,EAAE,0BAA0B,EAAa,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AACjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD,oHAAoH;AACpH,MAAM,OAAgB,sBACpB,SAAQ,WAAgC;IAGxC,MAAM,CAAC,aAAa,CAAU;IAC9B,MAAM,CAAC,UAAU,GAAG,KAAK,CAAA;IAEf,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;IAErD,YAAY,GAAG,IAAI,uBAAuB,EAAE,CAAA;IAC5C,UAAU,GAAG,IAAI,uBAAuB,EAAE,CAAA;IAEzC,QAAQ,GAAgC,SAAS,CAAA;IACxC,4BAA4B,GAA8C;QAC3F,CAAC,wBAAwB,CAAC,EAAE,GAAG;QAC/B,CAAC,yBAAyB,CAAC,EAAE,GAAG;QAChC,CAAC,yBAAyB,CAAC,EAAE,GAAG;QAChC,CAAC,yBAAyB,CAAC,EAAE,GAAG;QAChC,CAAC,0BAA0B,CAAC,EAAE,GAAG;KAClC,CAAA;IACkB,cAAc,GAAmE;QAClG,CAAC,wBAAwB,CAAC,EAAE,SAAS;QACrC,CAAC,yBAAyB,CAAC,EAAE,SAAS;QACtC,CAAC,yBAAyB,CAAC,EAAE,SAAS;QACtC,CAAC,yBAAyB,CAAC,EAAE,SAAS;QACtC,CAAC,0BAA0B,CAAC,EAAE,SAAS;KACxC,CAAA;IACS,QAAQ,GAAwC,SAAS,CAAA;IACzD,SAAS,GAAwC,SAAS,CAAA;IACjD,0BAA0B,CAAW;IACrC,uBAAuB,CAAW;IAE7C,UAAU,GAAG,CAAC,CAAA;IAEtB,YAAY,qBAA6B,EAAE,MAAe;QACxD,QAAQ,CAAC,sBAAsB,CAAC,qBAAqB,KAAK,qBAAqB,EAAE,4CAA4C,CAAC,CAAA;QAC9H,0DAA0D;QAC1D,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,EAAa,CAAA;QAC9C,KAAK,CAAC,aAAa,CAAC,CAAA;QAEpB,IAAI,CAAC,uBAAuB,GAAG,IAAI,uBAAuB,CAAC,IAAsB,CAAC,CAAC,SAAS,CAAA;QAC5F,IAAI,CAAC,0BAA0B,GAAG,IAAI,0BAA0B,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,SAAS,CAAA;IACnG,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA;IAC7B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAA;IAC/C,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;IAC3B,CAAC;IAED,IAAI,4BAA4B;QAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAA;IACnD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,yBAAyB,EAAE,wBAAwB,EAAE,0BAA0B,CAAC,CAAA;IAC1F,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,EAAE,GAAG,IAAI,CAAC,4BAA4B,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC7E,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,MAAM,CAAiE,MAA0B;QAC5G,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1D,MAAM,KAAK,CAAC,yBAAyB,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;SAC9E;QACD,MAAM,MAAM,GAAW,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,YAAY,CAAA;QAClE,MAAM,cAAc,GAAa,IAAI,CAAC,aAAa,CAAA;QAEnD,QAAQ,CACN,cAAc,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAC7E,+BAA+B,MAAM,eAAe,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CACtF,CAAA;QACD,MAAM,aAAa,GAAgC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;QAChF,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QAC1E,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,aAAa,EAAuB,CAAA;QAC/E,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAA;QACvF,MAAM,SAAS,CAAC,WAAW,EAAE,EAAE,CAAA;QAC/B,MAAM,SAAS,CAAC,KAAK,EAAE,EAAE,CAAA;QACzB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,OAAO,CAAiE,MAA0B;QACvG,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,OAAyB;QACrC,IAAI,sBAAsB,CAAC,UAAU,EAAE;YACrC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;gBACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;gBACnB,MAAM,IAAI,GAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;aACpC;YACD,IAAI,CAAC,UAAU,EAAE,CAAA;YACjB,IAAI;gBACF,OAAO,MAAM,OAAO,EAAE,CAAA;aACvB;oBAAS;gBACR,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;oBACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;oBACnB,MAAM,IAAI,GAAwB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;oBAC/D,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;iBACpC;aACF;SACF;aAAM;YACL,OAAO,OAAO,EAAE,CAAA;SACjB;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,sBAAsB,CAAC,aAAa,CAAA;YAC/E,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAgD,CAAA;YACvE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,MAA+C,CAAA;YAC9F,IAAI,MAAM,EAAE;gBACV,OAAO,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAA;aAC1I;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACxG,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,8EAA8E,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;YAC/H,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;SACrD;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAsB,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAA;IAClC,CAAC;IAED,KAAK,CAAC,KAAK,CACT,KAAQ,EACR,QAAoB,EACpB,WAAqB;QAErB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;YAE/G,MAAM,IAAI,GAA2B,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;YAC9E,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;YAEtC,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,CACP,KAAQ,EACR,QAAoB,EACpB,WAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAA;QACvC,MAAM,eAAe,GAAG,WAAW;YACjC,CAAC,CAAC,IAAI,0BAA0B,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS;YACvF,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAA;QACnC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAA;QAElE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IACpE,CAAC;IAID,KAAK,CAAC,OAAO,CACX,qBAA6C,EAC7C,OAA6B;QAE7B,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAA;QAC7C,MAAM,EAAE,GAAG,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAA;QACpD,MAAM,IAAI,GAAG,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,KAAK,CAAA;QACxD,QAAQ,OAAO,qBAAqB,EAAE;YACpC,KAAK,QAAQ,CAAC,CAAC;gBACb,OAAO,CACL,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAU,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACpF,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CACjF,CAAA;aACF;YACD,OAAO,CAAC,CAAC;gBACP,MAAM,MAAM,GAA6B,qBAAqB,CAAA;gBAC9D,OAAO;oBACL,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAU,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9D,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;aAC3B;SACF;IACH,CAAC;IAED,KAAK,CAAC,QAAiB;QACrB,wBAAwB;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA;QACtD,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,mBAAgE,KAAK,EAAE,QAAQ,GAAG,IAAI;QAClG,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC1B,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,wBAAwB;YACxB,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC1B,IAAI,QAAQ,EAAE;oBACZ,IAAI;wBACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;wBAClB,OAAO,IAAI,CAAA;qBACZ;oBAAC,OAAO,EAAE,EAAE;wBACX,WAAW,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;4BACxB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,+BAA+B,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;4BAClE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;wBAC3B,CAAC,CAAC,CAAA;qBACH;iBACF;gBACD,QAAQ,gBAAgB,EAAE;oBACxB,KAAK,OAAO;wBACV,MAAM,KAAK,CAAC,uBAAuB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;oBACrD,KAAK,MAAM;wBACT,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;wBACvC,MAAK;oBACP,KAAK,OAAO;wBACV,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAA;wBACxC,MAAK;oBACP,KAAK,MAAM;wBACT,MAAK;oBACP,KAAK,KAAK,CAAC;oBACX,OAAO,CAAC,CAAC;wBACP,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAA;wBACtC,MAAK;qBACN;iBACF;gBACD,OAAO,KAAK,CAAA;YACd,CAAC,CAAC,EAAE,CAAA;SACL;QACD,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAiB;QAC1B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IAES,UAAU,CAAC,MAAgB,EAAE,MAAsB,EAAE,OAAyB;QACtF,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC/D,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;YACjB,OAAO,MAAM,CAAA;QACf,CAAC,EAAE,OAAO,CAAC,CAAA;QACX,OAAO,OAAO,CAAA;IAChB,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,MAAgB,EAAE,MAAsB,EAAE,OAAyB;QACpG,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtF,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAChF,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QAChE,OAAO,MAAM,CAAA;IACf,CAAC;IAES,SAAS,CACjB,KAAQ,EACR,QAAoB,EACpB,OAAyB;QAEzB,MAAM,OAAO,GAAG,IAAI,SAAS,CAA6D,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1G,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;YACrE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;YACjB,OAAO,MAAM,CAAA;QACf,CAAC,EAAE,OAAO,CAAC,CAAA;QACX,OAAO,OAAO,CAAA;IAChB,CAAC;IAES,KAAK,CAAC,iBAAiB,CAC/B,KAAQ,EACR,QAAoB,EACpB,OAAyB;QAEzB,MAAM,OAAO,GAAG,IAAI,wBAAwB,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpG,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;QAC3E,OAAO,MAAM,CAAA;IACf,CAAC;IAES,KAAK,CAAC,eAAe,CAC7B,KAAQ,EACR,QAAmB,EACnB,sBAAyC,EAAE,EAC3C,MAAsB;QAEtB,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC3E,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAmC,CAAC,CAAA;QACzF,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC5F,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAsB,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,CAAA;QACtF,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC5B,CAAC;IAES,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAEnD,KAAK,CAAC,eAAe;QAC7B,MAAM,WAAW,GAA6B;YAC5C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,uBAAuB;SAChC,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACpB,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;SACpC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QAE7C,WAAW,CAAC,QAAQ,GAAG,OAAO,CAC5B,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACxB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAE,OAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;YAClG,OAAO,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;QACtD,CAAC,CAAC,IAAI,EAAE,CACT,CAAA;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAES,eAAe;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,MAAM,OAAO,GAAG,IAAI,cAAc,CAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QAC/I,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACzC,OAAO,IAAI,cAAc,CAAe,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QAC5F,CAAC,CAAC,CAAA;QACF,MAAM,YAAY,GAAkB;YAClC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,YAAY;SACrB,CAAA;QACD,OAAO,OAAO,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAA;IAC7D,CAAC;IAES,KAAK,CAAC,uBAAuB;QACrC,sCAAsC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAClE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,CAAA;QAC5C,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAA;QACjI,mDAAmD;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAA8B,CAAA;QAClD,IAAI,MAAM,EAAE,UAAU,EAAE;YACtB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE;oBACrE,MAAM,KAAK,GAAG,GAAgC,CAAA;oBAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;oBACtD,IAAI,gBAAgB,EAAE;wBACpB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,CAAA;qBACzE;iBACF;aACF;SACF;IACH,CAAC;IAES,eAAe;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAA;QAC5C,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAA;IAClF,CAAC;IAES,oBAAoB;QAC5B,wDAAwD;QACxD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;aACrD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE;YACpD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACzB,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;YAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;YACzC,OAAO;gBACL,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE;gBACxC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,yBAAyB,EAAE;aAC7D,CAAA;QACH,CAAC,CAAC,CAAA;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAA;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;QAC1G,MAAM,yBAAyB,GAAG,YAAY;YAC5C,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,yBAAyB,EAAE;YAC9D,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAA;QAClD,OAAO,CAAC,aAAa,EAAE,yBAAyB,EAAE,GAAG,aAAa,CAAC,CAAC,IAAI,EAAE,CAAA;IAC5E,CAAC;IAES,KAAK,CAAC,YAAY,CAC1B,KAAQ,EACR,QAAoB,EACpB,WAAqB;QAErB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC3B,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAc,KAAK,EAAE,QAAQ,CAAC,CAAA;QACjF,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,OAAO,CAAC,IAAI,CAAC,sDAAsD,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;aAC3G;SACF;QACD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;QAC7C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;QACtD,MAAM,cAAc,GAAc,EAAE,CAAA;QACpC,MAAM,aAAa,GAAkB,EAAE,CAAA;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5F,IAAI;YACF,QAAQ,YAAY,CAAC,MAAM,EAAE;gBAC3B,KAAK,yBAAyB,CAAC,CAAC;oBAC9B,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;oBACjD,MAAK;iBACN;gBACD,KAAK,yBAAyB,CAAC,CAAC;oBAC9B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;oBACtD,MAAK;iBACN;gBACD,KAAK,yBAAyB,CAAC,CAAC;oBAC9B,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;oBACjD,MAAK;iBACN;gBACD,KAAK,wBAAwB,CAAC,CAAC;oBAC7B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;oBAC3D,MAAK;iBACN;gBACD,KAAK,0BAA0B,CAAC,CAAC;oBAC/B,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;oBACnC,MAAK;iBACN;gBACD;oBACE,OAAO,CAAC,KAAK,CAAC,sBAAuB,YAAwB,CAAC,MAAM,GAAG,CAAC,CAAA;aAC3E;SACF;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACzC,aAAa,CAAC,IAAI,CAChB,IAAI,kBAAkB,EAAE;qBACrB,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;qBACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;qBACrC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;qBACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;qBACtB,KAAK,EAAE,CACX,CAAA;YACH,CAAC,CAAC,CAAA;SACH;QACD,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzH,CAAC;IAES,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAE/C,KAAK,CAAC,YAAY;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAA;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAES,WAAW,CAAC,QAAiB;QACrC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAES,gBAAgB,CAAC,aAA+B;QACxD,OAAM;IACR,CAAC;IAES,cAAc,CAAC,MAAgB,EAAE,UAAoB,EAAE;QAC/D,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAChF,QAAQ,OAAO,KAAK,EAAE;gBACpB,KAAK,UAAU;oBACb,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kDAAkD,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAA;oBACjG,OAAO,KAAK,CAAA;gBACd,KAAK,QAAQ,CAAC,CAAC;oBACb,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACxB,OAAO,CACL,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;4BAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAA;wBAC/D,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAClB,CAAA;qBACF;oBAED,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;wBAC7B,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uEAAuE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAA;wBACtH,OAAO,KAAK,CAAA;qBACb;oBACD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;iBAC7E;gBACD;oBACE,OAAO,KAAK,CAAA;aACf;QACH,CAAC,EAAE,IAAI,CAAC,CAAA;IACV,CAAC;IAES,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IAEnD,KAAK,CAAC,YAAY,CAAC,IAAqC;QAC9D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,OAAO,SAAS,CAAA;QAC5C,MAAM,MAAM,GACV,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,YAAY,MAAM;YAClF,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,SAAoB;YACnC,CAAC,CAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,IAAI,CAAY,CAAA;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACtD,OAAO,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACrF,CAAC"}
@@ -3,7 +3,7 @@ import { ArchivistInstance } from '@xyo-network/archivist-model';
3
3
  import { QueryBoundWitness } from '@xyo-network/boundwitness-builder';
4
4
  import { BoundWitness } from '@xyo-network/boundwitness-model';
5
5
  import { ModuleManifestPayload } from '@xyo-network/manifest-model';
6
- import { AddressPreviousHashPayload, CreatableModule, CreatableModuleFactory, IndirectModule, ModuleConfig, ModuleDescriptionPayload, ModuleEventData, ModuleFilter, ModuleParams, ModuleQueryBase, ModuleQueryResult, SchemaString } from '@xyo-network/module-model';
6
+ import { AddressPreviousHashPayload, CreatableModule, CreatableModuleFactory, IndirectModule, ModuleConfig, ModuleDescriptionPayload, ModuleEventData, ModuleFilter, ModuleFilterOptions, ModuleParams, ModuleQueryBase, ModuleQueryResult, SchemaString } from '@xyo-network/module-model';
7
7
  import { ModuleError, Payload, Query } from '@xyo-network/payload-model';
8
8
  import { PayloadWrapper } from '@xyo-network/payload-wrapper';
9
9
  import { Promisable, PromiseEx } from '@xyo-network/promise';
@@ -20,7 +20,8 @@ export declare abstract class AbstractIndirectModule<TParams extends ModuleParam
20
20
  protected _account: AccountInstance | undefined;
21
21
  protected readonly _baseModuleQueryAccountPaths: Record<ModuleQueryBase['schema'], string>;
22
22
  protected readonly _queryAccounts: Record<ModuleQueryBase['schema'], AccountInstance | undefined>;
23
- protected _started: boolean;
23
+ protected _started: Promise<boolean> | true | undefined;
24
+ protected _starting: Promise<boolean> | true | undefined;
24
25
  protected readonly moduleConfigQueryValidator: Queryable;
25
26
  protected readonly supportedQueryValidator: Queryable;
26
27
  private _busyCount;
@@ -42,10 +43,11 @@ export declare abstract class AbstractIndirectModule<TParams extends ModuleParam
42
43
  previousHash(): Promisable<string | undefined>;
43
44
  query<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
44
45
  queryable<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): boolean;
45
- resolve<TModule extends IndirectModule = IndirectModule>(filter?: ModuleFilter): Promise<TModule[]>;
46
- resolve<TModule extends IndirectModule = IndirectModule>(nameOrAddress: string): Promise<TModule | undefined>;
47
- start(_timeout?: number): Promise<void>;
48
- started(notStartedAction?: 'error' | 'throw' | 'warn' | 'log' | 'none'): boolean;
46
+ resolve<TModule extends IndirectModule = IndirectModule>(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<TModule[]>;
47
+ resolve<TModule extends IndirectModule = IndirectModule>(nameOrAddress: string, options?: ModuleFilterOptions): Promise<TModule | undefined>;
48
+ start(_timeout?: number): Promise<boolean> | boolean;
49
+ started(notStartedAction?: 'error' | 'throw' | 'warn' | 'log' | 'none', tryStart?: boolean): Promise<boolean>;
50
+ stop(_timeout?: number): Promise<boolean>;
49
51
  protected bindHashes(hashes: string[], schema: SchemaString[], account?: AccountInstance): PromiseEx<unknown, AccountInstance>;
50
52
  protected bindHashesInternal(hashes: string[], schema: SchemaString[], account?: AccountInstance): Promise<BoundWitness>;
51
53
  protected bindQuery<T extends Query | PayloadWrapper<Query>>(query: T, payloads?: Payload[], account?: AccountInstance): PromiseEx<[QueryBoundWitness, Payload[], Payload[]], AccountInstance>;
@@ -59,7 +61,8 @@ export declare abstract class AbstractIndirectModule<TParams extends ModuleParam
59
61
  protected moduleAddressHandler(): Promisable<AddressPreviousHashPayload[]>;
60
62
  protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
61
63
  protected readArchivist: () => Promise<ArchivistInstance | undefined>;
62
- protected stop(_timeout?: number): Promisable<this>;
64
+ protected startHandler(): Promise<boolean>;
65
+ protected stopHandler(_timeout?: number): Promisable<boolean>;
63
66
  protected subscribeHandler(_queryAccount?: AccountInstance): void;
64
67
  protected validateConfig(config?: unknown, parents?: string[]): boolean;
65
68
  protected writeArchivist: () => Promise<ArchivistInstance | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractIndirectModule.d.ts","sourceRoot":"","sources":["../../src/AbstractIndirectModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractIndirectModule.d.ts","sourceRoot":"","sources":["../../src/AbstractIndirectModule.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -12,30 +12,30 @@
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.9.3",
14
14
  "@xylabs/exists": "^2.9.3",
15
- "@xyo-network/account": "^2.65.5",
16
- "@xyo-network/account-model": "^2.65.5",
17
- "@xyo-network/address-payload-plugin": "^2.65.5",
18
- "@xyo-network/archivist-model": "^2.65.5",
19
- "@xyo-network/archivist-wrapper": "^2.65.5",
20
- "@xyo-network/boundwitness-builder": "^2.65.5",
21
- "@xyo-network/boundwitness-model": "^2.65.5",
22
- "@xyo-network/config-payload-plugin": "^2.65.5",
23
- "@xyo-network/core": "^2.65.5",
24
- "@xyo-network/error": "^2.65.5",
25
- "@xyo-network/manifest-model": "^2.65.5",
26
- "@xyo-network/module-events": "^2.65.5",
27
- "@xyo-network/module-model": "^2.65.5",
28
- "@xyo-network/payload-builder": "^2.65.5",
29
- "@xyo-network/payload-model": "^2.65.5",
30
- "@xyo-network/payload-wrapper": "^2.65.5",
31
- "@xyo-network/promise": "^2.65.5",
32
- "@xyo-network/query-payload-plugin": "^2.65.5",
33
- "@xyo-network/shared": "^2.65.5",
15
+ "@xyo-network/account": "^2.65.6",
16
+ "@xyo-network/account-model": "^2.65.6",
17
+ "@xyo-network/address-payload-plugin": "^2.65.6",
18
+ "@xyo-network/archivist-model": "^2.65.6",
19
+ "@xyo-network/archivist-wrapper": "^2.65.6",
20
+ "@xyo-network/boundwitness-builder": "^2.65.6",
21
+ "@xyo-network/boundwitness-model": "^2.65.6",
22
+ "@xyo-network/config-payload-plugin": "^2.65.6",
23
+ "@xyo-network/core": "^2.65.6",
24
+ "@xyo-network/error": "^2.65.6",
25
+ "@xyo-network/manifest-model": "^2.65.6",
26
+ "@xyo-network/module-events": "^2.65.6",
27
+ "@xyo-network/module-model": "^2.65.6",
28
+ "@xyo-network/payload-builder": "^2.65.6",
29
+ "@xyo-network/payload-model": "^2.65.6",
30
+ "@xyo-network/payload-wrapper": "^2.65.6",
31
+ "@xyo-network/promise": "^2.65.6",
32
+ "@xyo-network/query-payload-plugin": "^2.65.6",
33
+ "@xyo-network/shared": "^2.65.6",
34
34
  "lodash": "^4.17.21"
35
35
  },
36
36
  "devDependencies": {
37
- "@xylabs/ts-scripts-yarn3": "^2.18.10",
38
- "@xylabs/tsconfig": "^2.18.10",
37
+ "@xylabs/ts-scripts-yarn3": "^2.18.11",
38
+ "@xylabs/tsconfig": "^2.18.11",
39
39
  "jest": "^29.6.1",
40
40
  "jest-mock-extended": "^3.0.4",
41
41
  "typescript": "^5.1.6"
@@ -73,5 +73,5 @@
73
73
  },
74
74
  "sideEffects": false,
75
75
  "types": "dist/types/index.d.ts",
76
- "version": "2.65.5"
76
+ "version": "2.65.6"
77
77
  }
@@ -1,3 +1,4 @@
1
+ /* eslint-disable max-lines */
1
2
  import { assertEx } from '@xylabs/assert'
2
3
  import { exists } from '@xylabs/exists'
3
4
  import { HDWallet } from '@xyo-network/account'
@@ -8,7 +9,7 @@ import { IndirectArchivistWrapper } from '@xyo-network/archivist-wrapper'
8
9
  import { BoundWitnessBuilder, QueryBoundWitness, QueryBoundWitnessBuilder, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'
9
10
  import { BoundWitness } from '@xyo-network/boundwitness-model'
10
11
  import { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'
11
- import { handleErrorAsync } from '@xyo-network/error'
12
+ import { handleError, handleErrorAsync } from '@xyo-network/error'
12
13
  import { ModuleManifestPayload, ModuleManifestPayloadSchema } from '@xyo-network/manifest-model'
13
14
  import {
14
15
  AccountModuleParams,
@@ -29,6 +30,8 @@ import {
29
30
  ModuleEventData,
30
31
  ModuleFactory,
31
32
  ModuleFilter,
33
+ ModuleFilterOptions,
34
+ ModuleManifestQuerySchema,
32
35
  ModuleParams,
33
36
  ModuleQueriedEventArgs,
34
37
  ModuleQuery,
@@ -44,7 +47,7 @@ import { ModuleError, Payload, Query } from '@xyo-network/payload-model'
44
47
  import { PayloadWrapper } from '@xyo-network/payload-wrapper'
45
48
  import { Promisable, PromiseEx } from '@xyo-network/promise'
46
49
  import { QueryPayload, QuerySchema } from '@xyo-network/query-payload-plugin'
47
- import { IdLogger } from '@xyo-network/shared'
50
+ import { getFunctionName, IdLogger } from '@xyo-network/shared'
48
51
  import compact from 'lodash/compact'
49
52
 
50
53
  import { BaseEmitter } from './BaseEmitter'
@@ -53,7 +56,6 @@ import { ModuleConfigQueryValidator, Queryable, SupportedQueryValidator } from '
53
56
  import { CompositeModuleResolver } from './Resolver'
54
57
 
55
58
  /** @description Abstract class for modules that allow access only through querying and not through direct calls */
56
-
57
59
  export abstract class AbstractIndirectModule<TParams extends ModuleParams = ModuleParams, TEventData extends ModuleEventData = ModuleEventData>
58
60
  extends BaseEmitter<TParams, TEventData>
59
61
  implements IndirectModule<TParams, TEventData>, IndirectModule
@@ -71,15 +73,18 @@ export abstract class AbstractIndirectModule<TParams extends ModuleParams = Modu
71
73
  [ModuleAddressQuerySchema]: '1',
72
74
  [ModuleDescribeQuerySchema]: '4',
73
75
  [ModuleDiscoverQuerySchema]: '2',
76
+ [ModuleManifestQuerySchema]: '5',
74
77
  [ModuleSubscribeQuerySchema]: '3',
75
78
  }
76
79
  protected readonly _queryAccounts: Record<ModuleQueryBase['schema'], AccountInstance | undefined> = {
77
80
  [ModuleAddressQuerySchema]: undefined,
78
81
  [ModuleDescribeQuerySchema]: undefined,
79
82
  [ModuleDiscoverQuerySchema]: undefined,
83
+ [ModuleManifestQuerySchema]: undefined,
80
84
  [ModuleSubscribeQuerySchema]: undefined,
81
85
  }
82
- protected _started = false
86
+ protected _started: Promise<boolean> | true | undefined = undefined
87
+ protected _starting: Promise<boolean> | true | undefined = undefined
83
88
  protected readonly moduleConfigQueryValidator: Queryable
84
89
  protected readonly supportedQueryValidator: Queryable
85
90
 
@@ -206,7 +211,7 @@ export abstract class AbstractIndirectModule<TParams extends ModuleParams = Modu
206
211
  queryConfig?: TConfig,
207
212
  ): Promise<ModuleQueryResult> {
208
213
  return await this.busy(async () => {
209
- this.started('throw')
214
+ await this.started('throw')
210
215
  const result = await this.queryHandler(assertEx(QueryBoundWitnessWrapper.unwrap(query)), payloads, queryConfig)
211
216
 
212
217
  const args: ModuleQueriedEventArgs = { module: this, payloads, query, result }
@@ -230,47 +235,83 @@ export abstract class AbstractIndirectModule<TParams extends ModuleParams = Modu
230
235
  return validators.every((validator) => validator(query, payloads))
231
236
  }
232
237
 
233
- async resolve<TModule extends IndirectModule = IndirectModule>(filter?: ModuleFilter): Promise<TModule[]>
234
- async resolve<TModule extends IndirectModule = IndirectModule>(nameOrAddress: string): Promise<TModule | undefined>
238
+ async resolve<TModule extends IndirectModule = IndirectModule>(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<TModule[]>
239
+ async resolve<TModule extends IndirectModule = IndirectModule>(nameOrAddress: string, options?: ModuleFilterOptions): Promise<TModule | undefined>
235
240
  async resolve<TModule extends IndirectModule = IndirectModule>(
236
241
  nameOrAddressOrFilter?: ModuleFilter | string,
242
+ options?: ModuleFilterOptions,
237
243
  ): Promise<TModule | TModule[] | undefined> {
244
+ const direction = options?.direction ?? 'all'
245
+ const up = direction === 'up' || direction === 'all'
246
+ const down = direction === 'down' || direction === 'all'
238
247
  switch (typeof nameOrAddressOrFilter) {
239
248
  case 'string': {
240
- return (await this.downResolver.resolve<TModule>(nameOrAddressOrFilter)) ?? (await this.upResolver.resolve<TModule>(nameOrAddressOrFilter))
249
+ return (
250
+ (down ? await this.downResolver.resolve<TModule>(nameOrAddressOrFilter) : undefined) ??
251
+ (up ? await this.upResolver.resolve<TModule>(nameOrAddressOrFilter) : undefined)
252
+ )
241
253
  }
242
254
  default: {
243
255
  const filter: ModuleFilter | undefined = nameOrAddressOrFilter
244
- return [...(await this.downResolver.resolve<TModule>(filter)), ...(await this.upResolver.resolve<TModule>(filter))].filter(duplicateModules)
256
+ return [
257
+ ...(down ? await this.downResolver.resolve<TModule>(filter) : []),
258
+ ...(up ? await this.upResolver.resolve<TModule>(filter) : []),
259
+ ].filter(duplicateModules)
245
260
  }
246
261
  }
247
262
  }
248
263
 
249
- async start(_timeout?: number): Promise<void> {
250
- this.validateConfig()
251
- await this.initializeQueryAccounts()
252
- this._started = true
264
+ start(_timeout?: number): Promise<boolean> | boolean {
265
+ //using promise as mutex
266
+ this._starting = this._starting ?? this.startHandler()
267
+ return this._starting
253
268
  }
254
269
 
255
- started(notStartedAction?: 'error' | 'throw' | 'warn' | 'log' | 'none') {
270
+ async started(notStartedAction: 'error' | 'throw' | 'warn' | 'log' | 'none' = 'log', tryStart = true): Promise<boolean> {
271
+ if (this._started === true) {
272
+ return true
273
+ }
256
274
  if (!this._started) {
257
- switch (notStartedAction) {
258
- case 'throw':
259
- throw Error(`Module not Started [${this.address}]`)
260
- case 'warn':
261
- this.logger?.warn('Module not started')
262
- break
263
- case 'error':
264
- this.logger?.error('Module not started')
265
- break
266
- case 'none':
267
- break
268
- case 'log':
269
- default:
270
- this.logger?.log('Module not started')
271
- }
275
+ //using promise as mutex
276
+ this._started = (async () => {
277
+ if (tryStart) {
278
+ try {
279
+ await this.start()
280
+ return true
281
+ } catch (ex) {
282
+ handleError(ex, (error) => {
283
+ this.logger?.warn(`Autostart of Module Failed: ${error.message})`)
284
+ this._started = undefined
285
+ })
286
+ }
287
+ }
288
+ switch (notStartedAction) {
289
+ case 'throw':
290
+ throw Error(`Module not Started [${this.address}]`)
291
+ case 'warn':
292
+ this.logger?.warn('Module not started')
293
+ break
294
+ case 'error':
295
+ this.logger?.error('Module not started')
296
+ break
297
+ case 'none':
298
+ break
299
+ case 'log':
300
+ default: {
301
+ this.logger?.log('Module not started')
302
+ break
303
+ }
304
+ }
305
+ return false
306
+ })()
272
307
  }
273
- return this._started
308
+ return await this._started
309
+ }
310
+
311
+ async stop(_timeout?: number): Promise<boolean> {
312
+ return await this.busy(async () => {
313
+ return await this.stopHandler()
314
+ })
274
315
  }
275
316
 
276
317
  protected bindHashes(hashes: string[], schema: SchemaString[], account?: AccountInstance) {
@@ -384,7 +425,7 @@ export abstract class AbstractIndirectModule<TParams extends ModuleParams = Modu
384
425
  }
385
426
 
386
427
  protected manifestHandler(): Promisable<ModuleManifestPayload> {
387
- const name = assertEx(this.config.name, 'Calling manifest on un-named module is not supported')
428
+ const name = this.config.name ?? 'Anonymous'
388
429
  return { config: { name, ...this.config }, schema: ModuleManifestPayloadSchema }
389
430
  }
390
431
 
@@ -417,7 +458,7 @@ export abstract class AbstractIndirectModule<TParams extends ModuleParams = Modu
417
458
  payloads?: Payload[],
418
459
  queryConfig?: TConfig,
419
460
  ): Promise<ModuleQueryResult> {
420
- this.started('throw')
461
+ await this.started('throw')
421
462
  const wrapper = QueryBoundWitnessWrapper.parseQuery<ModuleQuery>(query, payloads)
422
463
  if (!this.allowAnonymous) {
423
464
  if (query.addresses.length === 0) {
@@ -431,6 +472,10 @@ export abstract class AbstractIndirectModule<TParams extends ModuleParams = Modu
431
472
  const queryAccount = this.ephemeralQueryAccountEnabled ? await HDWallet.random() : undefined
432
473
  try {
433
474
  switch (queryPayload.schema) {
475
+ case ModuleManifestQuerySchema: {
476
+ resultPayloads.push(await this.manifestHandler())
477
+ break
478
+ }
434
479
  case ModuleDiscoverQuerySchema: {
435
480
  resultPayloads.push(...(await this.discoverHandler()))
436
481
  break
@@ -467,9 +512,16 @@ export abstract class AbstractIndirectModule<TParams extends ModuleParams = Modu
467
512
 
468
513
  protected readArchivist = () => this.getArchivist('read')
469
514
 
470
- protected stop(_timeout?: number): Promisable<this> {
471
- this._started = false
472
- return this
515
+ protected async startHandler(): Promise<boolean> {
516
+ this.validateConfig()
517
+ await this.initializeQueryAccounts()
518
+ this._started = true
519
+ return true
520
+ }
521
+
522
+ protected stopHandler(_timeout?: number): Promisable<boolean> {
523
+ this._started = undefined
524
+ return true
473
525
  }
474
526
 
475
527
  protected subscribeHandler(_queryAccount?: AccountInstance) {