@xyo-network/module-abstract 2.65.4 → 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":"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"}
@@ -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,25 +12,25 @@
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.9.3",
14
14
  "@xylabs/exists": "^2.9.3",
15
- "@xyo-network/account": "^2.65.4",
16
- "@xyo-network/account-model": "^2.65.4",
17
- "@xyo-network/address-payload-plugin": "^2.65.4",
18
- "@xyo-network/archivist-model": "^2.65.4",
19
- "@xyo-network/archivist-wrapper": "^2.65.4",
20
- "@xyo-network/boundwitness-builder": "^2.65.4",
21
- "@xyo-network/boundwitness-model": "^2.65.4",
22
- "@xyo-network/config-payload-plugin": "^2.65.4",
23
- "@xyo-network/core": "^2.65.4",
24
- "@xyo-network/error": "^2.65.4",
25
- "@xyo-network/manifest-model": "^2.65.4",
26
- "@xyo-network/module-events": "^2.65.4",
27
- "@xyo-network/module-model": "^2.65.4",
28
- "@xyo-network/payload-builder": "^2.65.4",
29
- "@xyo-network/payload-model": "^2.65.4",
30
- "@xyo-network/payload-wrapper": "^2.65.4",
31
- "@xyo-network/promise": "^2.65.4",
32
- "@xyo-network/query-payload-plugin": "^2.65.4",
33
- "@xyo-network/shared": "^2.65.4",
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": {
@@ -73,5 +73,5 @@
73
73
  },
74
74
  "sideEffects": false,
75
75
  "types": "dist/types/index.d.ts",
76
- "version": "2.65.4"
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) {