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

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 +17 -17
  46. package/src/AbstractModule.ts +11 -50
  47. package/src/AbstractModuleInstance.ts +69 -4
  48. package/src/ResolveHelper.ts +37 -12
@@ -222,74 +222,6 @@ var _SupportedQueryValidator = class _SupportedQueryValidator {
222
222
  __name(_SupportedQueryValidator, "SupportedQueryValidator");
223
223
  var SupportedQueryValidator = _SupportedQueryValidator;
224
224
 
225
- // src/ResolveHelper.ts
226
- import { duplicateModules } from "@xyo-network/module-model";
227
- var _ResolveHelper = class _ResolveHelper {
228
- static async resolve(config, idOrFilter = "*", { required = "log", ...options } = {}) {
229
- const { dead = false, upResolver, downResolver } = config;
230
- const childOptions = {
231
- ...options,
232
- required: false
233
- };
234
- const direction = (options == null ? void 0 : options.direction) ?? "all";
235
- const up = direction === "up" || direction === "all";
236
- const down = direction === "down" || direction === "all";
237
- let result;
238
- if (idOrFilter === "*") {
239
- if (dead) {
240
- return [];
241
- }
242
- return [
243
- ...down ? await downResolver.resolve("*", childOptions) : [],
244
- ...up ? await upResolver.resolve("*", childOptions) : []
245
- ].filter(duplicateModules);
246
- } else {
247
- switch (typeof idOrFilter) {
248
- case "string": {
249
- if (dead) {
250
- return void 0;
251
- }
252
- result = (down ? await downResolver.resolve(idOrFilter, childOptions) : void 0) ?? (up ? await upResolver.resolve(idOrFilter, childOptions) : void 0);
253
- break;
254
- }
255
- default: {
256
- if (dead) {
257
- return [];
258
- }
259
- const filter = idOrFilter;
260
- result = [
261
- ...down ? await downResolver.resolve(filter, childOptions) : [],
262
- ...up ? await upResolver.resolve(filter, childOptions) : []
263
- ].filter(duplicateModules);
264
- break;
265
- }
266
- }
267
- }
268
- this.validateRequiredResolve(required, result, idOrFilter);
269
- return result;
270
- }
271
- static validateRequiredResolve(required, result, idOrFilter, logger) {
272
- if (required && (result === void 0 || Array.isArray(result) && result.length > 0)) {
273
- switch (required) {
274
- case "warn": {
275
- logger == null ? void 0 : logger.warn("resolve failed", idOrFilter);
276
- break;
277
- }
278
- case "log": {
279
- logger == null ? void 0 : logger.log("resolve failed", idOrFilter);
280
- break;
281
- }
282
- default: {
283
- logger == null ? void 0 : logger.error("resolve failed", idOrFilter);
284
- break;
285
- }
286
- }
287
- }
288
- }
289
- };
290
- __name(_ResolveHelper, "ResolveHelper");
291
- var ResolveHelper = _ResolveHelper;
292
-
293
225
  // src/AbstractModule.ts
294
226
  var _AbstractModule = class _AbstractModule extends BaseEmitter {
295
227
  downResolver = new CompositeModuleResolver();
@@ -341,6 +273,9 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
341
273
  var _a;
342
274
  return !!((_a = this.config.security) == null ? void 0 : _a.allowAnonymous);
343
275
  }
276
+ get archiving() {
277
+ return this.config.archiving;
278
+ }
344
279
  get config() {
345
280
  return this.params.config;
346
281
  }
@@ -540,31 +475,6 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
540
475
  ];
541
476
  return validators.every((validator) => validator(query, payloads));
542
477
  }
543
- async resolve(idOrFilter = "*", options = {}) {
544
- switch (typeof idOrFilter) {
545
- case "string": {
546
- return await ResolveHelper.resolve({
547
- dead: this.dead,
548
- downResolver: this.downResolver,
549
- upResolver: this.upResolver
550
- }, idOrFilter, options);
551
- }
552
- case "object": {
553
- return await ResolveHelper.resolve({
554
- dead: this.dead,
555
- downResolver: this.downResolver,
556
- upResolver: this.upResolver
557
- }, idOrFilter, options);
558
- }
559
- default: {
560
- return await ResolveHelper.resolve({
561
- dead: this.dead,
562
- downResolver: this.downResolver,
563
- upResolver: this.upResolver
564
- }, idOrFilter, options);
565
- }
566
- }
567
- }
568
478
  start(_timeout) {
569
479
  this._startPromise = this._startPromise ?? this.startHandler();
570
480
  const result = this._startPromise;
@@ -681,7 +591,7 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
681
591
  await Promise.all(payloads.map((payload) => PayloadBuilder2.build(payload))),
682
592
  await Promise.all((_a = errors ?? []) == null ? void 0 : _a.map((error) => PayloadBuilder2.build(error)))
683
593
  ];
684
- if (this.config.archiving) {
594
+ if (this.archiving) {
685
595
  await this.storeToArchivists(result.flat());
686
596
  }
687
597
  return result;
@@ -757,11 +667,11 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
757
667
  }
758
668
  }
759
669
  }
760
- async manifestHandler(_depth, _ignoreAddresses) {
670
+ async manifestHandler(maxDepth = 1, _ignoreAddresses = []) {
761
671
  const name = this.config.name ?? "Anonymous";
762
672
  const children = await this.downResolver.resolve("*", {
763
673
  direction: "down",
764
- maxDepth: 1
674
+ maxDepth
765
675
  });
766
676
  const childAddressToName = {};
767
677
  for (const child of children) {
@@ -863,14 +773,6 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
863
773
  }
864
774
  return resultPayloads;
865
775
  }
866
- async resolveArchivingArchivists() {
867
- var _a;
868
- const archivists = (_a = this.config.archiving) == null ? void 0 : _a.archivists;
869
- if (!archivists)
870
- return [];
871
- const resolved = await Promise.all(archivists.map((archivist) => this.resolve(archivist)));
872
- return compact(resolved.map((mod) => asArchivistInstance(mod)));
873
- }
874
776
  async startHandler() {
875
777
  this.validateConfig();
876
778
  await this.initializeQueryAccounts();
@@ -888,13 +790,6 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
888
790
  this._started = void 0;
889
791
  return true;
890
792
  }
891
- async storeToArchivists(payloads) {
892
- const archivists = await this.resolveArchivingArchivists();
893
- return (await Promise.all(archivists.map((archivist) => {
894
- var _a;
895
- return (_a = archivist.insert) == null ? void 0 : _a.call(archivist, payloads);
896
- }))).map(([bw]) => bw);
897
- }
898
793
  subscribeHandler() {
899
794
  return;
900
795
  }
@@ -937,13 +832,107 @@ var _AbstractModule = class _AbstractModule extends BaseEmitter {
937
832
  __name(_AbstractModule, "AbstractModule");
938
833
  __publicField(_AbstractModule, "allowRandomAccount", true);
939
834
  __publicField(_AbstractModule, "configSchemas");
940
- __publicField(_AbstractModule, "defaultLogger", new ConsoleLogger(LogLevel.log));
835
+ __publicField(_AbstractModule, "defaultLogger", new ConsoleLogger(LogLevel.warn));
941
836
  __publicField(_AbstractModule, "enableLazyLoad", false);
942
837
  __publicField(_AbstractModule, "privateConstructorKey", Date.now().toString());
943
838
  var AbstractModule = _AbstractModule;
944
839
 
945
840
  // src/AbstractModuleInstance.ts
946
841
  import { assertEx as assertEx3 } from "@xylabs/assert";
842
+ import { compact as compact2 } from "@xylabs/lodash";
843
+ import { asArchivistInstance as asArchivistInstance2 } from "@xyo-network/archivist-model";
844
+
845
+ // src/ResolveHelper.ts
846
+ import { IdLogger as IdLogger2 } from "@xylabs/logger";
847
+ import { toJsonString } from "@xylabs/object";
848
+ import { duplicateModules } from "@xyo-network/module-model";
849
+ var _ResolveHelper = class _ResolveHelper {
850
+ static async resolve(config, idOrFilter = "*", { visibility, maxDepth = 5, required = "log", ...options } = {}) {
851
+ const { module, logger = this.defaultLogger, dead = false, upResolver, downResolver } = config;
852
+ const log = logger ? new IdLogger2(logger, () => `ResolveHelper [${module.id}][${idOrFilter}][${visibility}]`) : void 0;
853
+ const childOptions = {
854
+ ...options,
855
+ direction: "down",
856
+ maxDepth: maxDepth - 1,
857
+ required: false,
858
+ visibility
859
+ };
860
+ const direction = (options == null ? void 0 : options.direction) ?? "all";
861
+ const up = direction === "up" || direction === "all";
862
+ const down = direction === "down" || direction === "all";
863
+ let result;
864
+ log == null ? void 0 : log.debug("start", idOrFilter, maxDepth);
865
+ if (idOrFilter === "*") {
866
+ if (dead) {
867
+ log == null ? void 0 : log.warn("failed [dead]", idOrFilter);
868
+ return [];
869
+ }
870
+ const modules = [
871
+ ...down ? await downResolver.resolve("*", childOptions) : [],
872
+ ...up ? await upResolver.resolve("*", childOptions) : []
873
+ ].filter(duplicateModules).filter((module2) => module2.address !== config.address);
874
+ if (modules.length > 0) {
875
+ log == null ? void 0 : log.log("modules [count]", modules.length);
876
+ log == null ? void 0 : log.debug("modules", toJsonString(modules, 4));
877
+ }
878
+ if (maxDepth === 0) {
879
+ return modules;
880
+ }
881
+ const childModules = (await Promise.all(modules.map(async (module2) => await module2.resolve("*", childOptions)))).flat().filter(duplicateModules);
882
+ return [
883
+ module,
884
+ ...modules,
885
+ ...childModules
886
+ ].filter(duplicateModules);
887
+ } else {
888
+ switch (typeof idOrFilter) {
889
+ case "string": {
890
+ if (dead) {
891
+ return void 0;
892
+ }
893
+ result = (down ? await downResolver.resolve(idOrFilter, childOptions) : void 0) ?? (up ? await upResolver.resolve(idOrFilter, childOptions) : void 0);
894
+ break;
895
+ }
896
+ default: {
897
+ if (dead) {
898
+ return [];
899
+ }
900
+ const filter = idOrFilter;
901
+ result = [
902
+ ...down ? await downResolver.resolve(filter, childOptions) : [],
903
+ ...up ? await upResolver.resolve(filter, childOptions) : []
904
+ ].filter(duplicateModules);
905
+ break;
906
+ }
907
+ }
908
+ }
909
+ this.validateRequiredResolve(required, result, idOrFilter, logger);
910
+ return result;
911
+ }
912
+ static validateRequiredResolve(required, result, idOrFilter, logger = this.defaultLogger) {
913
+ const log = logger ? new IdLogger2(logger, () => `validateRequiredResolve [${idOrFilter}][${result}]`) : void 0;
914
+ if (required && (result === void 0 || Array.isArray(result) && result.length > 0)) {
915
+ switch (required) {
916
+ case "warn": {
917
+ log == null ? void 0 : log.warn("resolve failed", idOrFilter);
918
+ break;
919
+ }
920
+ case "log": {
921
+ log == null ? void 0 : log.log("resolve failed", idOrFilter);
922
+ break;
923
+ }
924
+ default: {
925
+ throw new Error(`resolve failed [${idOrFilter}]`);
926
+ }
927
+ }
928
+ }
929
+ }
930
+ };
931
+ __name(_ResolveHelper, "ResolveHelper");
932
+ __publicField(_ResolveHelper, "defaultLogger");
933
+ var ResolveHelper = _ResolveHelper;
934
+
935
+ // src/AbstractModuleInstance.ts
947
936
  var _AbstractModuleInstance = class _AbstractModuleInstance extends AbstractModule {
948
937
  constructor(privateConstructorKey, params, account) {
949
938
  assertEx3(AbstractModule.privateConstructorKey === privateConstructorKey, () => "Use create function instead of constructor");
@@ -960,10 +949,10 @@ var _AbstractModuleInstance = class _AbstractModuleInstance extends AbstractModu
960
949
  return await this.describeHandler();
961
950
  });
962
951
  }
963
- discover() {
952
+ discover(maxDepth = 5) {
964
953
  this._checkDead();
965
954
  return this.busy(async () => {
966
- return await this.discoverHandler();
955
+ return await this.discoverHandler(maxDepth);
967
956
  });
968
957
  }
969
958
  manifest(maxDepth, ignoreAddresses) {
@@ -978,6 +967,30 @@ var _AbstractModuleInstance = class _AbstractModuleInstance extends AbstractModu
978
967
  return await this.moduleAddressHandler();
979
968
  });
980
969
  }
970
+ async resolve(idOrFilter = "*", options = {}) {
971
+ const config = {
972
+ address: this.address,
973
+ dead: this.dead,
974
+ downResolver: this.downResolver,
975
+ logger: this.logger,
976
+ module: this,
977
+ upResolver: this.upResolver
978
+ };
979
+ if (idOrFilter === "*") {
980
+ return await ResolveHelper.resolve(config, idOrFilter, options);
981
+ }
982
+ switch (typeof idOrFilter) {
983
+ case "string": {
984
+ return await ResolveHelper.resolve(config, idOrFilter, options);
985
+ }
986
+ case "object": {
987
+ return await ResolveHelper.resolve(config, idOrFilter, options);
988
+ }
989
+ default: {
990
+ return await ResolveHelper.resolve(config, idOrFilter, options);
991
+ }
992
+ }
993
+ }
981
994
  state() {
982
995
  this._checkDead();
983
996
  return this.busy(async () => {
@@ -988,6 +1001,21 @@ var _AbstractModuleInstance = class _AbstractModuleInstance extends AbstractModu
988
1001
  this._checkDead();
989
1002
  return this.subscribeHandler();
990
1003
  }
1004
+ async resolveArchivingArchivists() {
1005
+ var _a;
1006
+ const archivists = (_a = this.config.archiving) == null ? void 0 : _a.archivists;
1007
+ if (!archivists)
1008
+ return [];
1009
+ const resolved = await Promise.all(archivists.map((archivist) => this.resolve(archivist)));
1010
+ return compact2(resolved.map((mod) => asArchivistInstance2(mod)));
1011
+ }
1012
+ async storeToArchivists(payloads) {
1013
+ const archivists = await this.resolveArchivingArchivists();
1014
+ return (await Promise.all(archivists.map((archivist) => {
1015
+ var _a;
1016
+ return (_a = archivist.insert) == null ? void 0 : _a.call(archivist, payloads);
1017
+ }))).map(([bw]) => bw);
1018
+ }
991
1019
  };
992
1020
  __name(_AbstractModuleInstance, "AbstractModuleInstance");
993
1021
  var AbstractModuleInstance = _AbstractModuleInstance;