@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.
- package/dist/browser/AbstractModule.d.cts +4 -11
- package/dist/browser/AbstractModule.d.cts.map +1 -1
- package/dist/browser/AbstractModule.d.mts +4 -11
- package/dist/browser/AbstractModule.d.mts.map +1 -1
- package/dist/browser/AbstractModule.d.ts +4 -11
- package/dist/browser/AbstractModule.d.ts.map +1 -1
- package/dist/browser/AbstractModuleInstance.d.cts +13 -3
- package/dist/browser/AbstractModuleInstance.d.cts.map +1 -1
- package/dist/browser/AbstractModuleInstance.d.mts +13 -3
- package/dist/browser/AbstractModuleInstance.d.mts.map +1 -1
- package/dist/browser/AbstractModuleInstance.d.ts +13 -3
- package/dist/browser/AbstractModuleInstance.d.ts.map +1 -1
- package/dist/browser/ResolveHelper.d.cts +6 -1
- package/dist/browser/ResolveHelper.d.cts.map +1 -1
- package/dist/browser/ResolveHelper.d.mts +6 -1
- package/dist/browser/ResolveHelper.d.mts.map +1 -1
- package/dist/browser/ResolveHelper.d.ts +6 -1
- package/dist/browser/ResolveHelper.d.ts.map +1 -1
- package/dist/browser/index.cjs +174 -146
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +141 -113
- package/dist/browser/index.js.map +1 -1
- package/dist/node/AbstractModule.d.cts +4 -11
- package/dist/node/AbstractModule.d.cts.map +1 -1
- package/dist/node/AbstractModule.d.mts +4 -11
- package/dist/node/AbstractModule.d.mts.map +1 -1
- package/dist/node/AbstractModule.d.ts +4 -11
- package/dist/node/AbstractModule.d.ts.map +1 -1
- package/dist/node/AbstractModuleInstance.d.cts +13 -3
- package/dist/node/AbstractModuleInstance.d.cts.map +1 -1
- package/dist/node/AbstractModuleInstance.d.mts +13 -3
- package/dist/node/AbstractModuleInstance.d.mts.map +1 -1
- package/dist/node/AbstractModuleInstance.d.ts +13 -3
- package/dist/node/AbstractModuleInstance.d.ts.map +1 -1
- package/dist/node/ResolveHelper.d.cts +6 -1
- package/dist/node/ResolveHelper.d.cts.map +1 -1
- package/dist/node/ResolveHelper.d.mts +6 -1
- package/dist/node/ResolveHelper.d.mts.map +1 -1
- package/dist/node/ResolveHelper.d.ts +6 -1
- package/dist/node/ResolveHelper.d.ts.map +1 -1
- package/dist/node/index.cjs +175 -147
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +142 -114
- package/dist/node/index.js.map +1 -1
- package/package.json +18 -19
- package/src/AbstractModule.ts +11 -50
- package/src/AbstractModuleInstance.ts +69 -4
- package/src/ResolveHelper.ts +37 -12
package/dist/node/index.cjs
CHANGED
|
@@ -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
|
|
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
|
-
[
|
|
331
|
-
[
|
|
332
|
-
[
|
|
333
|
-
[
|
|
334
|
-
[
|
|
335
|
-
[
|
|
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
|
-
[
|
|
340
|
-
[
|
|
341
|
-
[
|
|
342
|
-
[
|
|
343
|
-
[
|
|
344
|
-
[
|
|
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
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
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,
|
|
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
|
|
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
|
|
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.
|
|
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:
|
|
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(
|
|
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
|
|
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:
|
|
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:
|
|
758
|
+
schema: import_module_model.AddressPreviousHashSchema
|
|
849
759
|
} : {
|
|
850
760
|
address,
|
|
851
|
-
schema:
|
|
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
|
|
776
|
+
case import_module_model.ModuleManifestQuerySchema: {
|
|
867
777
|
resultPayloads.push(await this.manifestHandler(queryPayload.maxDepth));
|
|
868
778
|
break;
|
|
869
779
|
}
|
|
870
|
-
case
|
|
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
|
|
785
|
+
case import_module_model.ModuleDescribeQuerySchema: {
|
|
876
786
|
resultPayloads.push(await this.describeHandler());
|
|
877
787
|
break;
|
|
878
788
|
}
|
|
879
|
-
case
|
|
789
|
+
case import_module_model.ModuleAddressQuerySchema: {
|
|
880
790
|
resultPayloads.push(...await this.moduleAddressHandler());
|
|
881
791
|
break;
|
|
882
792
|
}
|
|
883
|
-
case
|
|
793
|
+
case import_module_model.ModuleStateQuerySchema: {
|
|
884
794
|
resultPayloads.push(...await this.stateHandler());
|
|
885
795
|
break;
|
|
886
796
|
}
|
|
887
|
-
case
|
|
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,
|
|
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.
|
|
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;
|