@xyo-network/module-abstract 2.93.0-rc.1 → 2.93.0

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.
Files changed (48) hide show
  1. package/dist/browser/AbstractModule.d.cts +4 -11
  2. package/dist/browser/AbstractModule.d.cts.map +1 -1
  3. package/dist/browser/AbstractModule.d.mts +4 -11
  4. package/dist/browser/AbstractModule.d.mts.map +1 -1
  5. package/dist/browser/AbstractModule.d.ts +4 -11
  6. package/dist/browser/AbstractModule.d.ts.map +1 -1
  7. package/dist/browser/AbstractModuleInstance.d.cts +13 -3
  8. package/dist/browser/AbstractModuleInstance.d.cts.map +1 -1
  9. package/dist/browser/AbstractModuleInstance.d.mts +13 -3
  10. package/dist/browser/AbstractModuleInstance.d.mts.map +1 -1
  11. package/dist/browser/AbstractModuleInstance.d.ts +13 -3
  12. package/dist/browser/AbstractModuleInstance.d.ts.map +1 -1
  13. package/dist/browser/ResolveHelper.d.cts +6 -1
  14. package/dist/browser/ResolveHelper.d.cts.map +1 -1
  15. package/dist/browser/ResolveHelper.d.mts +6 -1
  16. package/dist/browser/ResolveHelper.d.mts.map +1 -1
  17. package/dist/browser/ResolveHelper.d.ts +6 -1
  18. package/dist/browser/ResolveHelper.d.ts.map +1 -1
  19. package/dist/browser/index.cjs +174 -146
  20. package/dist/browser/index.cjs.map +1 -1
  21. package/dist/browser/index.js +141 -113
  22. package/dist/browser/index.js.map +1 -1
  23. package/dist/node/AbstractModule.d.cts +4 -11
  24. package/dist/node/AbstractModule.d.cts.map +1 -1
  25. package/dist/node/AbstractModule.d.mts +4 -11
  26. package/dist/node/AbstractModule.d.mts.map +1 -1
  27. package/dist/node/AbstractModule.d.ts +4 -11
  28. package/dist/node/AbstractModule.d.ts.map +1 -1
  29. package/dist/node/AbstractModuleInstance.d.cts +13 -3
  30. package/dist/node/AbstractModuleInstance.d.cts.map +1 -1
  31. package/dist/node/AbstractModuleInstance.d.mts +13 -3
  32. package/dist/node/AbstractModuleInstance.d.mts.map +1 -1
  33. package/dist/node/AbstractModuleInstance.d.ts +13 -3
  34. package/dist/node/AbstractModuleInstance.d.ts.map +1 -1
  35. package/dist/node/ResolveHelper.d.cts +6 -1
  36. package/dist/node/ResolveHelper.d.cts.map +1 -1
  37. package/dist/node/ResolveHelper.d.mts +6 -1
  38. package/dist/node/ResolveHelper.d.mts.map +1 -1
  39. package/dist/node/ResolveHelper.d.ts +6 -1
  40. package/dist/node/ResolveHelper.d.ts.map +1 -1
  41. package/dist/node/index.cjs +175 -147
  42. package/dist/node/index.cjs.map +1 -1
  43. package/dist/node/index.js +142 -114
  44. package/dist/node/index.js.map +1 -1
  45. package/package.json +18 -19
  46. package/src/AbstractModule.ts +11 -50
  47. package/src/AbstractModuleInstance.ts +69 -4
  48. package/src/ResolveHelper.ts +37 -12
@@ -52,7 +52,7 @@ var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
52
52
  var import_boundwitness_wrapper3 = require("@xyo-network/boundwitness-wrapper");
53
53
  var import_config_payload_plugin = require("@xyo-network/config-payload-plugin");
54
54
  var import_manifest_model = require("@xyo-network/manifest-model");
55
- var import_module_model2 = require("@xyo-network/module-model");
55
+ var import_module_model = require("@xyo-network/module-model");
56
56
  var import_module_resolver = require("@xyo-network/module-resolver");
57
57
  var import_payload_builder2 = require("@xyo-network/payload-builder");
58
58
  var import_query_payload_plugin = require("@xyo-network/query-payload-plugin");
@@ -253,95 +253,27 @@ var _SupportedQueryValidator = class _SupportedQueryValidator {
253
253
  __name(_SupportedQueryValidator, "SupportedQueryValidator");
254
254
  var SupportedQueryValidator = _SupportedQueryValidator;
255
255
 
256
- // src/ResolveHelper.ts
257
- var import_module_model = require("@xyo-network/module-model");
258
- var _ResolveHelper = class _ResolveHelper {
259
- static async resolve(config, idOrFilter = "*", { required = "log", ...options } = {}) {
260
- const { dead = false, upResolver, downResolver } = config;
261
- const childOptions = {
262
- ...options,
263
- required: false
264
- };
265
- const direction = (options == null ? void 0 : options.direction) ?? "all";
266
- const up = direction === "up" || direction === "all";
267
- const down = direction === "down" || direction === "all";
268
- let result;
269
- if (idOrFilter === "*") {
270
- if (dead) {
271
- return [];
272
- }
273
- return [
274
- ...down ? await downResolver.resolve("*", childOptions) : [],
275
- ...up ? await upResolver.resolve("*", childOptions) : []
276
- ].filter(import_module_model.duplicateModules);
277
- } else {
278
- switch (typeof idOrFilter) {
279
- case "string": {
280
- if (dead) {
281
- return void 0;
282
- }
283
- result = (down ? await downResolver.resolve(idOrFilter, childOptions) : void 0) ?? (up ? await upResolver.resolve(idOrFilter, childOptions) : void 0);
284
- break;
285
- }
286
- default: {
287
- if (dead) {
288
- return [];
289
- }
290
- const filter = idOrFilter;
291
- result = [
292
- ...down ? await downResolver.resolve(filter, childOptions) : [],
293
- ...up ? await upResolver.resolve(filter, childOptions) : []
294
- ].filter(import_module_model.duplicateModules);
295
- break;
296
- }
297
- }
298
- }
299
- this.validateRequiredResolve(required, result, idOrFilter);
300
- return result;
301
- }
302
- static validateRequiredResolve(required, result, idOrFilter, logger) {
303
- if (required && (result === void 0 || Array.isArray(result) && result.length > 0)) {
304
- switch (required) {
305
- case "warn": {
306
- logger == null ? void 0 : logger.warn("resolve failed", idOrFilter);
307
- break;
308
- }
309
- case "log": {
310
- logger == null ? void 0 : logger.log("resolve failed", idOrFilter);
311
- break;
312
- }
313
- default: {
314
- logger == null ? void 0 : logger.error("resolve failed", idOrFilter);
315
- break;
316
- }
317
- }
318
- }
319
- }
320
- };
321
- __name(_ResolveHelper, "ResolveHelper");
322
- var ResolveHelper = _ResolveHelper;
323
-
324
256
  // src/AbstractModule.ts
325
257
  var _AbstractModule = class _AbstractModule extends BaseEmitter {
326
258
  downResolver = new import_module_resolver.CompositeModuleResolver();
327
259
  upResolver = new import_module_resolver.CompositeModuleResolver();
328
260
  _account = void 0;
329
261
  _baseModuleQueryAccountPaths = {
330
- [import_module_model2.ModuleAddressQuerySchema]: "1",
331
- [import_module_model2.ModuleDescribeQuerySchema]: "4",
332
- [import_module_model2.ModuleDiscoverQuerySchema]: "2",
333
- [import_module_model2.ModuleManifestQuerySchema]: "5",
334
- [import_module_model2.ModuleStateQuerySchema]: "6",
335
- [import_module_model2.ModuleSubscribeQuerySchema]: "3"
262
+ [import_module_model.ModuleAddressQuerySchema]: "1",
263
+ [import_module_model.ModuleDescribeQuerySchema]: "4",
264
+ [import_module_model.ModuleDiscoverQuerySchema]: "2",
265
+ [import_module_model.ModuleManifestQuerySchema]: "5",
266
+ [import_module_model.ModuleStateQuerySchema]: "6",
267
+ [import_module_model.ModuleSubscribeQuerySchema]: "3"
336
268
  };
337
269
  _lastError;
338
270
  _queryAccounts = {
339
- [import_module_model2.ModuleAddressQuerySchema]: void 0,
340
- [import_module_model2.ModuleDescribeQuerySchema]: void 0,
341
- [import_module_model2.ModuleDiscoverQuerySchema]: void 0,
342
- [import_module_model2.ModuleManifestQuerySchema]: void 0,
343
- [import_module_model2.ModuleStateQuerySchema]: void 0,
344
- [import_module_model2.ModuleSubscribeQuerySchema]: void 0
271
+ [import_module_model.ModuleAddressQuerySchema]: void 0,
272
+ [import_module_model.ModuleDescribeQuerySchema]: void 0,
273
+ [import_module_model.ModuleDiscoverQuerySchema]: void 0,
274
+ [import_module_model.ModuleManifestQuerySchema]: void 0,
275
+ [import_module_model.ModuleStateQuerySchema]: void 0,
276
+ [import_module_model.ModuleSubscribeQuerySchema]: void 0
345
277
  };
346
278
  _startPromise = void 0;
347
279
  _started = void 0;
@@ -372,6 +304,9 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
372
304
  var _a;
373
305
  return !!((_a = this.config.security) == null ? void 0 : _a.allowAnonymous);
374
306
  }
307
+ get archiving() {
308
+ return this.config.archiving;
309
+ }
375
310
  get config() {
376
311
  return this.params.config;
377
312
  }
@@ -386,12 +321,12 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
386
321
  }
387
322
  get queries() {
388
323
  return [
389
- import_module_model2.ModuleDiscoverQuerySchema,
390
- import_module_model2.ModuleAddressQuerySchema,
391
- import_module_model2.ModuleSubscribeQuerySchema,
392
- import_module_model2.ModuleDescribeQuerySchema,
393
- import_module_model2.ModuleManifestQuerySchema,
394
- import_module_model2.ModuleStateQuerySchema
324
+ import_module_model.ModuleDiscoverQuerySchema,
325
+ import_module_model.ModuleAddressQuerySchema,
326
+ import_module_model.ModuleSubscribeQuerySchema,
327
+ import_module_model.ModuleDescribeQuerySchema,
328
+ import_module_model.ModuleManifestQuerySchema,
329
+ import_module_model.ModuleStateQuerySchema
395
330
  ];
396
331
  }
397
332
  get queryAccountPaths() {
@@ -439,7 +374,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
439
374
  if (!this.configSchemas || this.configSchemas.length === 0) {
440
375
  throw new Error(`Missing configSchema [${(_a = params == null ? void 0 : params.config) == null ? void 0 : _a.schema}][${this.name}]`);
441
376
  }
442
- (0, import_assert2.assertEx)(((_b = params == null ? void 0 : params.config) == null ? void 0 : _b.name) === void 0 || (0, import_module_model2.isModuleName)(params.config.name), () => {
377
+ (0, import_assert2.assertEx)(((_b = params == null ? void 0 : params.config) == null ? void 0 : _b.name) === void 0 || (0, import_module_model.isModuleName)(params.config.name), () => {
443
378
  var _a2;
444
379
  return `Invalid module name: ${(_a2 = params == null ? void 0 : params.config) == null ? void 0 : _a2.name}`;
445
380
  });
@@ -472,7 +407,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
472
407
  return await determineAccount(params, this.allowRandomAccount);
473
408
  }
474
409
  static factory(params) {
475
- return import_module_model2.ModuleFactory.withParams(this, params);
410
+ return import_module_model.ModuleFactory.withParams(this, params);
476
411
  }
477
412
  _getRootFunction(funcName) {
478
413
  let anyThis = this;
@@ -571,31 +506,6 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
571
506
  ];
572
507
  return validators.every((validator) => validator(query, payloads));
573
508
  }
574
- async resolve(idOrFilter = "*", options = {}) {
575
- switch (typeof idOrFilter) {
576
- case "string": {
577
- return await ResolveHelper.resolve({
578
- dead: this.dead,
579
- downResolver: this.downResolver,
580
- upResolver: this.upResolver
581
- }, idOrFilter, options);
582
- }
583
- case "object": {
584
- return await ResolveHelper.resolve({
585
- dead: this.dead,
586
- downResolver: this.downResolver,
587
- upResolver: this.upResolver
588
- }, idOrFilter, options);
589
- }
590
- default: {
591
- return await ResolveHelper.resolve({
592
- dead: this.dead,
593
- downResolver: this.downResolver,
594
- upResolver: this.upResolver
595
- }, idOrFilter, options);
596
- }
597
- }
598
- }
599
509
  start(_timeout) {
600
510
  this._startPromise = this._startPromise ?? this.startHandler();
601
511
  const result = this._startPromise;
@@ -661,7 +571,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
661
571
  }
662
572
  _checkDead() {
663
573
  if (this.dead) {
664
- throw new import_module_model2.DeadModuleError(this.id, this._lastError);
574
+ throw new import_module_model.DeadModuleError(this.id, this._lastError);
665
575
  }
666
576
  }
667
577
  _noOverride(functionName) {
@@ -712,7 +622,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
712
622
  await Promise.all(payloads.map((payload) => import_payload_builder2.PayloadBuilder.build(payload))),
713
623
  await Promise.all((_a = errors ?? []) == null ? void 0 : _a.map((error) => import_payload_builder2.PayloadBuilder.build(error)))
714
624
  ];
715
- if (this.config.archiving) {
625
+ if (this.archiving) {
716
626
  await this.storeToArchivists(result.flat());
717
627
  }
718
628
  return result;
@@ -722,7 +632,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
722
632
  const description = {
723
633
  address: this.address,
724
634
  queries: this.queries,
725
- schema: import_module_model2.ModuleDescriptionSchema
635
+ schema: import_module_model.ModuleDescriptionSchema
726
636
  };
727
637
  if ((_a = this.config) == null ? void 0 : _a.name) {
728
638
  description.name = this.config.name;
@@ -788,11 +698,11 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
788
698
  }
789
699
  }
790
700
  }
791
- async manifestHandler(_depth, _ignoreAddresses) {
701
+ async manifestHandler(maxDepth = 1, _ignoreAddresses = []) {
792
702
  const name = this.config.name ?? "Anonymous";
793
703
  const children = await this.downResolver.resolve("*", {
794
704
  direction: "down",
795
- maxDepth: 1
705
+ maxDepth
796
706
  });
797
707
  const childAddressToName = {};
798
708
  for (const child of children) {
@@ -827,7 +737,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
827
737
  {
828
738
  address: address2,
829
739
  previousHash: previousHash2,
830
- schema: import_module_model2.AddressPreviousHashSchema
740
+ schema: import_module_model.AddressPreviousHashSchema
831
741
  }
832
742
  ];
833
743
  });
@@ -845,10 +755,10 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
845
755
  const moduleAccountPreviousHash = previousHash ? {
846
756
  address,
847
757
  previousHash,
848
- schema: import_module_model2.AddressPreviousHashSchema
758
+ schema: import_module_model.AddressPreviousHashSchema
849
759
  } : {
850
760
  address,
851
- schema: import_module_model2.AddressPreviousHashSchema
761
+ schema: import_module_model.AddressPreviousHashSchema
852
762
  };
853
763
  return [
854
764
  moduleAccount,
@@ -863,28 +773,28 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
863
773
  (0, import_assert2.assertEx)(await this.queryable(query, payloads, queryConfig));
864
774
  const resultPayloads = [];
865
775
  switch (queryPayload.schema) {
866
- case import_module_model2.ModuleManifestQuerySchema: {
776
+ case import_module_model.ModuleManifestQuerySchema: {
867
777
  resultPayloads.push(await this.manifestHandler(queryPayload.maxDepth));
868
778
  break;
869
779
  }
870
- case import_module_model2.ModuleDiscoverQuerySchema: {
780
+ case import_module_model.ModuleDiscoverQuerySchema: {
871
781
  const { maxDepth } = queryPayload;
872
782
  resultPayloads.push(...await this.discoverHandler(maxDepth));
873
783
  break;
874
784
  }
875
- case import_module_model2.ModuleDescribeQuerySchema: {
785
+ case import_module_model.ModuleDescribeQuerySchema: {
876
786
  resultPayloads.push(await this.describeHandler());
877
787
  break;
878
788
  }
879
- case import_module_model2.ModuleAddressQuerySchema: {
789
+ case import_module_model.ModuleAddressQuerySchema: {
880
790
  resultPayloads.push(...await this.moduleAddressHandler());
881
791
  break;
882
792
  }
883
- case import_module_model2.ModuleStateQuerySchema: {
793
+ case import_module_model.ModuleStateQuerySchema: {
884
794
  resultPayloads.push(...await this.stateHandler());
885
795
  break;
886
796
  }
887
- case import_module_model2.ModuleSubscribeQuerySchema: {
797
+ case import_module_model.ModuleSubscribeQuerySchema: {
888
798
  this.subscribeHandler();
889
799
  break;
890
800
  }
@@ -894,14 +804,6 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
894
804
  }
895
805
  return resultPayloads;
896
806
  }
897
- async resolveArchivingArchivists() {
898
- var _a;
899
- const archivists = (_a = this.config.archiving) == null ? void 0 : _a.archivists;
900
- if (!archivists)
901
- return [];
902
- const resolved = await Promise.all(archivists.map((archivist) => this.resolve(archivist)));
903
- return (0, import_lodash.compact)(resolved.map((mod) => (0, import_archivist_model.asArchivistInstance)(mod)));
904
- }
905
807
  async startHandler() {
906
808
  this.validateConfig();
907
809
  await this.initializeQueryAccounts();
@@ -919,13 +821,6 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
919
821
  this._started = void 0;
920
822
  return true;
921
823
  }
922
- async storeToArchivists(payloads) {
923
- const archivists = await this.resolveArchivingArchivists();
924
- return (await Promise.all(archivists.map((archivist) => {
925
- var _a;
926
- return (_a = archivist.insert) == null ? void 0 : _a.call(archivist, payloads);
927
- }))).map(([bw]) => bw);
928
- }
929
824
  subscribeHandler() {
930
825
  return;
931
826
  }
@@ -949,7 +844,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
949
844
  }, true) && valid
950
845
  );
951
846
  }
952
- if (!(0, import_module_model2.serializableField)(value)) {
847
+ if (!(0, import_module_model.serializableField)(value)) {
953
848
  (_b = this.logger) == null ? void 0 : _b.warn(`Fields that are not serializable to JSON are not allowed in config [${parents == null ? void 0 : parents.join(".")}.${key}]`);
954
849
  return false;
955
850
  }
@@ -968,13 +863,107 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
968
863
  __name(_AbstractModule, "AbstractModule");
969
864
  __publicField(_AbstractModule, "allowRandomAccount", true);
970
865
  __publicField(_AbstractModule, "configSchemas");
971
- __publicField(_AbstractModule, "defaultLogger", new import_logger.ConsoleLogger(import_logger.LogLevel.log));
866
+ __publicField(_AbstractModule, "defaultLogger", new import_logger.ConsoleLogger(import_logger.LogLevel.warn));
972
867
  __publicField(_AbstractModule, "enableLazyLoad", false);
973
868
  __publicField(_AbstractModule, "privateConstructorKey", Date.now().toString());
974
869
  var AbstractModule = _AbstractModule;
975
870
 
976
871
  // src/AbstractModuleInstance.ts
977
872
  var import_assert3 = require("@xylabs/assert");
873
+ var import_lodash2 = require("@xylabs/lodash");
874
+ var import_archivist_model2 = require("@xyo-network/archivist-model");
875
+
876
+ // src/ResolveHelper.ts
877
+ var import_logger2 = require("@xylabs/logger");
878
+ var import_object3 = require("@xylabs/object");
879
+ var import_module_model2 = require("@xyo-network/module-model");
880
+ var _ResolveHelper = class _ResolveHelper {
881
+ static async resolve(config, idOrFilter = "*", { visibility, maxDepth = 5, required = "log", ...options } = {}) {
882
+ const { module: module2, logger = this.defaultLogger, dead = false, upResolver, downResolver } = config;
883
+ const log = logger ? new import_logger2.IdLogger(logger, () => `ResolveHelper [${module2.id}][${idOrFilter}][${visibility}]`) : void 0;
884
+ const childOptions = {
885
+ ...options,
886
+ direction: "down",
887
+ maxDepth: maxDepth - 1,
888
+ required: false,
889
+ visibility
890
+ };
891
+ const direction = (options == null ? void 0 : options.direction) ?? "all";
892
+ const up = direction === "up" || direction === "all";
893
+ const down = direction === "down" || direction === "all";
894
+ let result;
895
+ log == null ? void 0 : log.debug("start", idOrFilter, maxDepth);
896
+ if (idOrFilter === "*") {
897
+ if (dead) {
898
+ log == null ? void 0 : log.warn("failed [dead]", idOrFilter);
899
+ return [];
900
+ }
901
+ const modules = [
902
+ ...down ? await downResolver.resolve("*", childOptions) : [],
903
+ ...up ? await upResolver.resolve("*", childOptions) : []
904
+ ].filter(import_module_model2.duplicateModules).filter((module3) => module3.address !== config.address);
905
+ if (modules.length > 0) {
906
+ log == null ? void 0 : log.log("modules [count]", modules.length);
907
+ log == null ? void 0 : log.debug("modules", (0, import_object3.toJsonString)(modules, 4));
908
+ }
909
+ if (maxDepth === 0) {
910
+ return modules;
911
+ }
912
+ const childModules = (await Promise.all(modules.map(async (module3) => await module3.resolve("*", childOptions)))).flat().filter(import_module_model2.duplicateModules);
913
+ return [
914
+ module2,
915
+ ...modules,
916
+ ...childModules
917
+ ].filter(import_module_model2.duplicateModules);
918
+ } else {
919
+ switch (typeof idOrFilter) {
920
+ case "string": {
921
+ if (dead) {
922
+ return void 0;
923
+ }
924
+ result = (down ? await downResolver.resolve(idOrFilter, childOptions) : void 0) ?? (up ? await upResolver.resolve(idOrFilter, childOptions) : void 0);
925
+ break;
926
+ }
927
+ default: {
928
+ if (dead) {
929
+ return [];
930
+ }
931
+ const filter = idOrFilter;
932
+ result = [
933
+ ...down ? await downResolver.resolve(filter, childOptions) : [],
934
+ ...up ? await upResolver.resolve(filter, childOptions) : []
935
+ ].filter(import_module_model2.duplicateModules);
936
+ break;
937
+ }
938
+ }
939
+ }
940
+ this.validateRequiredResolve(required, result, idOrFilter, logger);
941
+ return result;
942
+ }
943
+ static validateRequiredResolve(required, result, idOrFilter, logger = this.defaultLogger) {
944
+ const log = logger ? new import_logger2.IdLogger(logger, () => `validateRequiredResolve [${idOrFilter}][${result}]`) : void 0;
945
+ if (required && (result === void 0 || Array.isArray(result) && result.length > 0)) {
946
+ switch (required) {
947
+ case "warn": {
948
+ log == null ? void 0 : log.warn("resolve failed", idOrFilter);
949
+ break;
950
+ }
951
+ case "log": {
952
+ log == null ? void 0 : log.log("resolve failed", idOrFilter);
953
+ break;
954
+ }
955
+ default: {
956
+ throw new Error(`resolve failed [${idOrFilter}]`);
957
+ }
958
+ }
959
+ }
960
+ }
961
+ };
962
+ __name(_ResolveHelper, "ResolveHelper");
963
+ __publicField(_ResolveHelper, "defaultLogger");
964
+ var ResolveHelper = _ResolveHelper;
965
+
966
+ // src/AbstractModuleInstance.ts
978
967
  var _AbstractModuleInstance = class _AbstractModuleInstance extends AbstractModule {
979
968
  constructor(privateConstructorKey, params, account) {
980
969
  (0, import_assert3.assertEx)(AbstractModule.privateConstructorKey === privateConstructorKey, () => "Use create function instead of constructor");
@@ -991,10 +980,10 @@ var _AbstractModuleInstance = class _AbstractModuleInstance extends AbstractModu
991
980
  return await this.describeHandler();
992
981
  });
993
982
  }
994
- discover() {
983
+ discover(maxDepth = 5) {
995
984
  this._checkDead();
996
985
  return this.busy(async () => {
997
- return await this.discoverHandler();
986
+ return await this.discoverHandler(maxDepth);
998
987
  });
999
988
  }
1000
989
  manifest(maxDepth, ignoreAddresses) {
@@ -1009,6 +998,30 @@ var _AbstractModuleInstance = class _AbstractModuleInstance extends AbstractModu
1009
998
  return await this.moduleAddressHandler();
1010
999
  });
1011
1000
  }
1001
+ async resolve(idOrFilter = "*", options = {}) {
1002
+ const config = {
1003
+ address: this.address,
1004
+ dead: this.dead,
1005
+ downResolver: this.downResolver,
1006
+ logger: this.logger,
1007
+ module: this,
1008
+ upResolver: this.upResolver
1009
+ };
1010
+ if (idOrFilter === "*") {
1011
+ return await ResolveHelper.resolve(config, idOrFilter, options);
1012
+ }
1013
+ switch (typeof idOrFilter) {
1014
+ case "string": {
1015
+ return await ResolveHelper.resolve(config, idOrFilter, options);
1016
+ }
1017
+ case "object": {
1018
+ return await ResolveHelper.resolve(config, idOrFilter, options);
1019
+ }
1020
+ default: {
1021
+ return await ResolveHelper.resolve(config, idOrFilter, options);
1022
+ }
1023
+ }
1024
+ }
1012
1025
  state() {
1013
1026
  this._checkDead();
1014
1027
  return this.busy(async () => {
@@ -1019,6 +1032,21 @@ var _AbstractModuleInstance = class _AbstractModuleInstance extends AbstractModu
1019
1032
  this._checkDead();
1020
1033
  return this.subscribeHandler();
1021
1034
  }
1035
+ async resolveArchivingArchivists() {
1036
+ var _a;
1037
+ const archivists = (_a = this.config.archiving) == null ? void 0 : _a.archivists;
1038
+ if (!archivists)
1039
+ return [];
1040
+ const resolved = await Promise.all(archivists.map((archivist) => this.resolve(archivist)));
1041
+ return (0, import_lodash2.compact)(resolved.map((mod) => (0, import_archivist_model2.asArchivistInstance)(mod)));
1042
+ }
1043
+ async storeToArchivists(payloads) {
1044
+ const archivists = await this.resolveArchivingArchivists();
1045
+ return (await Promise.all(archivists.map((archivist) => {
1046
+ var _a;
1047
+ return (_a = archivist.insert) == null ? void 0 : _a.call(archivist, payloads);
1048
+ }))).map(([bw]) => bw);
1049
+ }
1022
1050
  };
1023
1051
  __name(_AbstractModuleInstance, "AbstractModuleInstance");
1024
1052
  var AbstractModuleInstance = _AbstractModuleInstance;