@xyo-network/module-model 3.6.9 → 3.6.11
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/neutral/Config/Config.d.ts +2 -2
- package/dist/neutral/Config/Config.d.ts.map +1 -1
- package/dist/neutral/Queries/Manifest.d.ts +2 -2
- package/dist/neutral/Queries/Manifest.d.ts.map +1 -1
- package/dist/neutral/Queries/ModuleAddress/Query.d.ts +2 -2
- package/dist/neutral/Queries/ModuleAddress/Query.d.ts.map +1 -1
- package/dist/neutral/Queries/Subscribe.d.ts +2 -2
- package/dist/neutral/Queries/Subscribe.d.ts.map +1 -1
- package/dist/neutral/index.mjs +140 -236
- package/dist/neutral/index.mjs.map +1 -1
- package/package.json +17 -17
- package/src/Config/Config.ts +2 -2
- package/src/Queries/Manifest.ts +2 -2
- package/src/Queries/ModuleAddress/Query.ts +2 -2
- package/src/Queries/Subscribe.ts +2 -2
- package/src/ResolveHelper/ResolveHelper.ts +1 -1
- package/src/ResolveHelper/resolveAddressToInstance.ts +1 -1
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/Config/Config.ts
|
|
5
2
|
var ModuleConfigSchema = "network.xyo.module.config";
|
|
6
3
|
|
|
@@ -10,16 +7,14 @@ function creatableModule() {
|
|
|
10
7
|
constructor;
|
|
11
8
|
};
|
|
12
9
|
}
|
|
13
|
-
__name(creatableModule, "creatableModule");
|
|
14
10
|
function creatableModuleFactory() {
|
|
15
11
|
return (constructor) => {
|
|
16
12
|
constructor;
|
|
17
13
|
};
|
|
18
14
|
}
|
|
19
|
-
__name(creatableModuleFactory, "creatableModuleFactory");
|
|
20
15
|
|
|
21
16
|
// src/CreatableModule/CreatableModuleRegistry.ts
|
|
22
|
-
var buildModuleFactory =
|
|
17
|
+
var buildModuleFactory = (mod, labels) => {
|
|
23
18
|
const factory5 = {
|
|
24
19
|
// Destructure instance properties
|
|
25
20
|
...mod,
|
|
@@ -28,23 +23,18 @@ var buildModuleFactory = /* @__PURE__ */ __name((mod, labels) => {
|
|
|
28
23
|
create: mod.create.bind(mod),
|
|
29
24
|
defaultConfigSchema: mod.defaultConfigSchema,
|
|
30
25
|
// Merge module & supplied labels
|
|
31
|
-
labels: {
|
|
32
|
-
...mod.labels,
|
|
33
|
-
...labels
|
|
34
|
-
}
|
|
26
|
+
labels: { ...mod.labels, ...labels }
|
|
35
27
|
};
|
|
36
28
|
return factory5;
|
|
37
|
-
}
|
|
38
|
-
var registerCreatableModuleFactory =
|
|
39
|
-
const primarySchemas = primary !== true && primary ? Array.isArray(primary) ? primary : [
|
|
40
|
-
primary
|
|
41
|
-
] : [];
|
|
29
|
+
};
|
|
30
|
+
var registerCreatableModuleFactory = (registry, factory5, labels, primary = false) => {
|
|
31
|
+
const primarySchemas = primary !== true && primary ? Array.isArray(primary) ? primary : [primary] : [];
|
|
42
32
|
for (const primarySchema of primarySchemas) {
|
|
43
33
|
if (!factory5.configSchemas.includes(primarySchema)) {
|
|
44
34
|
console.warn(`Primary schema ${primary} not found in factory configSchemas`);
|
|
45
35
|
}
|
|
46
36
|
}
|
|
47
|
-
const isPrimaryForSchema =
|
|
37
|
+
const isPrimaryForSchema = (schema) => {
|
|
48
38
|
switch (typeof primary) {
|
|
49
39
|
case "boolean": {
|
|
50
40
|
return primary;
|
|
@@ -59,58 +49,43 @@ var registerCreatableModuleFactory = /* @__PURE__ */ __name((registry, factory5,
|
|
|
59
49
|
}
|
|
60
50
|
}
|
|
61
51
|
throw new Error(`Invalid primary value: ${primary}`);
|
|
62
|
-
}
|
|
52
|
+
};
|
|
63
53
|
const factoryClone = buildModuleFactory(factory5, labels);
|
|
64
|
-
registry[factory5.defaultConfigSchema] = [
|
|
65
|
-
factoryClone,
|
|
66
|
-
...registry[factoryClone.defaultConfigSchema] ?? []
|
|
67
|
-
];
|
|
54
|
+
registry[factory5.defaultConfigSchema] = [factoryClone, ...registry[factoryClone.defaultConfigSchema] ?? []];
|
|
68
55
|
for (const schema of factoryClone.configSchemas) {
|
|
69
|
-
registry[schema] = isPrimaryForSchema(schema) ? [
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
...registry[schema] ?? [],
|
|
74
|
-
factoryClone
|
|
75
|
-
];
|
|
76
|
-
}
|
|
77
|
-
}, "registerCreatableModuleFactory");
|
|
78
|
-
var registerCreatableModuleFactories = /* @__PURE__ */ __name((factories, registry = {}, primary = false) => {
|
|
56
|
+
registry[schema] = isPrimaryForSchema(schema) ? [factoryClone, ...registry[schema] ?? []] : [...registry[schema] ?? [], factoryClone];
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var registerCreatableModuleFactories = (factories, registry = {}, primary = false) => {
|
|
79
60
|
for (const factory5 of factories) {
|
|
80
61
|
registerCreatableModuleFactory(registry, factory5, void 0, primary);
|
|
81
62
|
}
|
|
82
63
|
return registry;
|
|
83
|
-
}
|
|
84
|
-
var assignCreatableModuleRegistry =
|
|
85
|
-
for (const source of sources)
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
...existingFactories,
|
|
90
|
-
|
|
91
|
-
] : factories;
|
|
64
|
+
};
|
|
65
|
+
var assignCreatableModuleRegistry = (target = {}, ...sources) => {
|
|
66
|
+
for (const source of sources)
|
|
67
|
+
for (const [schema, factories] of Object.entries(source)) {
|
|
68
|
+
if (factories) {
|
|
69
|
+
const existingFactories = target[schema];
|
|
70
|
+
target[schema] = existingFactories ? target[schema] = [...existingFactories, ...factories] : factories;
|
|
71
|
+
}
|
|
92
72
|
}
|
|
93
|
-
}
|
|
94
73
|
return target;
|
|
95
|
-
}
|
|
74
|
+
};
|
|
96
75
|
|
|
97
76
|
// src/CreatableModule/LabeledCreatableModuleFactory.ts
|
|
98
|
-
var hasLabels =
|
|
77
|
+
var hasLabels = (factory5) => {
|
|
99
78
|
return factory5.labels !== void 0;
|
|
100
|
-
}
|
|
79
|
+
};
|
|
101
80
|
function labeledCreatableModuleFactory() {
|
|
102
81
|
return (constructor) => {
|
|
103
82
|
constructor;
|
|
104
83
|
};
|
|
105
84
|
}
|
|
106
|
-
__name(labeledCreatableModuleFactory, "labeledCreatableModuleFactory");
|
|
107
85
|
|
|
108
86
|
// src/CreatableModule/ModuleFactory.ts
|
|
109
87
|
import { assertEx } from "@xylabs/assert";
|
|
110
88
|
var ModuleFactory = class _ModuleFactory {
|
|
111
|
-
static {
|
|
112
|
-
__name(this, "ModuleFactory");
|
|
113
|
-
}
|
|
114
89
|
configSchemas;
|
|
115
90
|
creatableModule;
|
|
116
91
|
defaultConfigSchema;
|
|
@@ -161,12 +136,9 @@ var ModuleFactory = class _ModuleFactory {
|
|
|
161
136
|
|
|
162
137
|
// src/DetailsError.ts
|
|
163
138
|
var ModuleDetailsError = class extends Error {
|
|
164
|
-
static {
|
|
165
|
-
__name(this, "ModuleDetailsError");
|
|
166
|
-
}
|
|
167
|
-
details;
|
|
168
139
|
constructor(message, details) {
|
|
169
|
-
super(message)
|
|
140
|
+
super(message);
|
|
141
|
+
this.details = details;
|
|
170
142
|
this.name = "ModuleError";
|
|
171
143
|
}
|
|
172
144
|
};
|
|
@@ -210,9 +182,6 @@ var asModuleObject = AsObjectFactory.create(isModuleObject);
|
|
|
210
182
|
|
|
211
183
|
// src/module/IsModuleFactory.ts
|
|
212
184
|
var IsModuleFactory = class {
|
|
213
|
-
static {
|
|
214
|
-
__name(this, "IsModuleFactory");
|
|
215
|
-
}
|
|
216
185
|
create(expectedQueries, additionalChecks) {
|
|
217
186
|
return (obj, config) => {
|
|
218
187
|
const mod = asModuleObject(obj);
|
|
@@ -222,13 +191,9 @@ var IsModuleFactory = class {
|
|
|
222
191
|
};
|
|
223
192
|
|
|
224
193
|
// src/module/isModule.ts
|
|
225
|
-
var requiredModuleQueries = [
|
|
226
|
-
ModuleStateQuerySchema
|
|
227
|
-
];
|
|
194
|
+
var requiredModuleQueries = [ModuleStateQuerySchema];
|
|
228
195
|
var factory2 = new IsModuleFactory();
|
|
229
|
-
var isModule = factory2.create(requiredModuleQueries, [
|
|
230
|
-
isModuleObject
|
|
231
|
-
]);
|
|
196
|
+
var isModule = factory2.create(requiredModuleQueries, [isModuleObject]);
|
|
232
197
|
|
|
233
198
|
// src/module/asModule.ts
|
|
234
199
|
var asModule = AsObjectFactory2.create(isModule);
|
|
@@ -239,9 +204,7 @@ var requiredModuleInstanceFunctions = {
|
|
|
239
204
|
state: "function"
|
|
240
205
|
};
|
|
241
206
|
var factory3 = new IsObjectFactory2();
|
|
242
|
-
var isModuleInstance = factory3.create(requiredModuleInstanceFunctions, [
|
|
243
|
-
isModule
|
|
244
|
-
]);
|
|
207
|
+
var isModuleInstance = factory3.create(requiredModuleInstanceFunctions, [isModule]);
|
|
245
208
|
|
|
246
209
|
// src/instance/asModuleInstance.ts
|
|
247
210
|
var asModuleInstance = AsObjectFactory3.create(isModuleInstance);
|
|
@@ -266,34 +229,25 @@ var asAttachableModuleInstance = AsObjectFactory4.create(isAttachableModuleInsta
|
|
|
266
229
|
// src/instance/attachable/AttachableInstance.ts
|
|
267
230
|
import { IsObjectFactory as IsObjectFactory4 } from "@xylabs/object";
|
|
268
231
|
var IsAttachableModuleInstanceFactory = class extends IsObjectFactory4 {
|
|
269
|
-
static {
|
|
270
|
-
__name(this, "IsAttachableModuleInstanceFactory");
|
|
271
|
-
}
|
|
272
232
|
};
|
|
273
233
|
|
|
274
234
|
// src/instance/Instance.ts
|
|
275
235
|
import { IsObjectFactory as IsObjectFactory5, toJsonString } from "@xylabs/object";
|
|
276
236
|
var DeadModuleError = class _DeadModuleError extends Error {
|
|
277
|
-
static {
|
|
278
|
-
__name(this, "DeadModuleError");
|
|
279
|
-
}
|
|
280
|
-
id;
|
|
281
|
-
error;
|
|
282
237
|
constructor(id, error, msg = "Dead Module Error") {
|
|
283
|
-
super(`${msg} [${id}]: ${error?.message ?? toJsonString(error)}`)
|
|
238
|
+
super(`${msg} [${id}]: ${error?.message ?? toJsonString(error)}`);
|
|
239
|
+
this.id = id;
|
|
240
|
+
this.error = error;
|
|
284
241
|
Object.setPrototypeOf(this, _DeadModuleError.prototype);
|
|
285
242
|
}
|
|
286
243
|
};
|
|
287
244
|
var IsInstanceFactory = class extends IsObjectFactory5 {
|
|
288
|
-
static {
|
|
289
|
-
__name(this, "IsInstanceFactory");
|
|
290
|
-
}
|
|
291
245
|
};
|
|
292
246
|
|
|
293
247
|
// src/instance/ObjectFilter.ts
|
|
294
|
-
var isAddressObjectFilter =
|
|
295
|
-
var isNameObjectFilter =
|
|
296
|
-
var isQueryObjectFilter =
|
|
248
|
+
var isAddressObjectFilter = (value) => value.address !== void 0;
|
|
249
|
+
var isNameObjectFilter = (value) => value.name !== void 0;
|
|
250
|
+
var isQueryObjectFilter = (value) => value.query !== void 0;
|
|
297
251
|
|
|
298
252
|
// src/instance/ModuleFilter.ts
|
|
299
253
|
var isAddressModuleFilter = isAddressObjectFilter;
|
|
@@ -301,9 +255,9 @@ var isNameModuleFilter = isNameObjectFilter;
|
|
|
301
255
|
var isQueryModuleFilter = isQueryObjectFilter;
|
|
302
256
|
|
|
303
257
|
// src/instance/ObjectResolver.ts
|
|
304
|
-
var isObjectResolver =
|
|
258
|
+
var isObjectResolver = (value) => {
|
|
305
259
|
return typeof value.resolve === "function";
|
|
306
|
-
}
|
|
260
|
+
};
|
|
307
261
|
var ObjectResolverPriority = {
|
|
308
262
|
Disabled: -1,
|
|
309
263
|
VeryLow: 0,
|
|
@@ -317,26 +271,24 @@ var ObjectResolverPriority = {
|
|
|
317
271
|
var isModuleResolver = isObjectResolver;
|
|
318
272
|
|
|
319
273
|
// src/Labels/Labels.ts
|
|
320
|
-
var hasAllLabels =
|
|
274
|
+
var hasAllLabels = (source, required) => {
|
|
321
275
|
if (!required) return true;
|
|
322
276
|
return Object.entries(required).every(([key, value]) => {
|
|
323
277
|
return source?.hasOwnProperty(key) && source?.[key] === value;
|
|
324
278
|
});
|
|
325
|
-
}
|
|
279
|
+
};
|
|
326
280
|
|
|
327
281
|
// src/Labels/standard/View.ts
|
|
328
282
|
var ModuleLimitationLabelName = "network.xyo.module.limitation";
|
|
329
|
-
var ModuleLimitationViewLabel = {
|
|
330
|
-
ModuleLimitationLabelName: "view"
|
|
331
|
-
};
|
|
283
|
+
var ModuleLimitationViewLabel = { ModuleLimitationLabelName: "view" };
|
|
332
284
|
|
|
333
285
|
// src/lib/duplicateModules.ts
|
|
334
|
-
var duplicateModules =
|
|
286
|
+
var duplicateModules = (value, index, array) => {
|
|
335
287
|
return array.findIndex((v) => v.address === value.address) === index;
|
|
336
|
-
}
|
|
288
|
+
};
|
|
337
289
|
|
|
338
290
|
// src/lib/serializable.ts
|
|
339
|
-
var isSerializable =
|
|
291
|
+
var isSerializable = (value, maxDepth = 10) => {
|
|
340
292
|
if (maxDepth <= 0) {
|
|
341
293
|
return false;
|
|
342
294
|
}
|
|
@@ -358,7 +310,7 @@ var isSerializable = /* @__PURE__ */ __name((value, maxDepth = 10) => {
|
|
|
358
310
|
}
|
|
359
311
|
}
|
|
360
312
|
return false;
|
|
361
|
-
}
|
|
313
|
+
};
|
|
362
314
|
|
|
363
315
|
// src/ModuleIdentifier.ts
|
|
364
316
|
import { isAddress } from "@xylabs/hex";
|
|
@@ -394,18 +346,18 @@ var DisallowedModuleIdentifierCharacters = {
|
|
|
394
346
|
"}": true,
|
|
395
347
|
"~": true
|
|
396
348
|
};
|
|
397
|
-
var ReservedModuleIdentifierCharacters = new Set(
|
|
398
|
-
|
|
349
|
+
var ReservedModuleIdentifierCharacters = new Set(
|
|
350
|
+
Object.keys(DisallowedModuleIdentifierCharacters)
|
|
351
|
+
);
|
|
352
|
+
var isModuleName = (value) => {
|
|
399
353
|
return typeof value === "string" && !isAddress(value) && !includesReservedModuleIdentifierCharacter(value);
|
|
400
|
-
}
|
|
401
|
-
var includesReservedModuleIdentifierCharacter =
|
|
402
|
-
return typeof value === "string" && [
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
}, "includesReservedModuleIdentifierCharacter");
|
|
406
|
-
var isModuleIdentifierPart = /* @__PURE__ */ __name((value) => {
|
|
354
|
+
};
|
|
355
|
+
var includesReservedModuleIdentifierCharacter = (value) => {
|
|
356
|
+
return typeof value === "string" && [...value].some((char) => ReservedModuleIdentifierCharacters.has(char));
|
|
357
|
+
};
|
|
358
|
+
var isModuleIdentifierPart = (value) => {
|
|
407
359
|
return isModuleName(value) || isAddress(value);
|
|
408
|
-
}
|
|
360
|
+
};
|
|
409
361
|
|
|
410
362
|
// src/Payload/Address.ts
|
|
411
363
|
var AddressSchema = "network.xyo.address";
|
|
@@ -421,26 +373,23 @@ var ModuleDescriptionSchema = "network.xyo.module.description";
|
|
|
421
373
|
import { AsObjectFactory as AsObjectFactory5 } from "@xylabs/object";
|
|
422
374
|
import { isPayloadOfSchemaType, isPayloadOfSchemaTypeWithSources } from "@xyo-network/payload-model";
|
|
423
375
|
var ModuleStateSchema = "network.xyo.module.state";
|
|
424
|
-
var isModuleState =
|
|
376
|
+
var isModuleState = (payload) => {
|
|
425
377
|
return isPayloadOfSchemaType(ModuleStateSchema)(payload);
|
|
426
|
-
}
|
|
427
|
-
var isModuleStateWithSources =
|
|
378
|
+
};
|
|
379
|
+
var isModuleStateWithSources = (payload) => {
|
|
428
380
|
return isPayloadOfSchemaTypeWithSources(ModuleStateSchema)(payload);
|
|
429
|
-
}
|
|
381
|
+
};
|
|
430
382
|
var asModuleState = AsObjectFactory5.create(isModuleState);
|
|
431
383
|
|
|
432
384
|
// src/ResolveHelper/resolveAddressToInstance.ts
|
|
433
|
-
var resolveAddressToInstanceDown =
|
|
385
|
+
var resolveAddressToInstanceDown = async (root, address, includePrivate = void 0, ignore = []) => {
|
|
434
386
|
if (root.address === address) {
|
|
435
387
|
return root;
|
|
436
388
|
}
|
|
437
389
|
const cache = root.addressCache?.("up", !!includePrivate);
|
|
438
390
|
const privateChildren = (includePrivate ? await root.privateChildren?.() : []) ?? [];
|
|
439
391
|
const publicChildren = await root.publicChildren?.() ?? [];
|
|
440
|
-
const children = [
|
|
441
|
-
...privateChildren,
|
|
442
|
-
...publicChildren
|
|
443
|
-
];
|
|
392
|
+
const children = [...privateChildren, ...publicChildren];
|
|
444
393
|
for (const child of children) {
|
|
445
394
|
const found = await resolveAddressToInstanceDown(child, address, includePrivate, ignore);
|
|
446
395
|
if (found) {
|
|
@@ -449,8 +398,8 @@ var resolveAddressToInstanceDown = /* @__PURE__ */ __name(async (root, address,
|
|
|
449
398
|
}
|
|
450
399
|
}
|
|
451
400
|
cache?.set(address, null);
|
|
452
|
-
}
|
|
453
|
-
var resolveAddressToInstanceSiblings =
|
|
401
|
+
};
|
|
402
|
+
var resolveAddressToInstanceSiblings = async (root, address, includePrivate = void 0, ignore = []) => {
|
|
454
403
|
const siblings = await root.siblings?.() ?? [];
|
|
455
404
|
for (const sibling of siblings) {
|
|
456
405
|
const found = await resolveAddressToInstanceDown(sibling, address, includePrivate, ignore);
|
|
@@ -458,8 +407,8 @@ var resolveAddressToInstanceSiblings = /* @__PURE__ */ __name(async (root, addre
|
|
|
458
407
|
return found;
|
|
459
408
|
}
|
|
460
409
|
}
|
|
461
|
-
}
|
|
462
|
-
var resolveAddressToInstanceUp =
|
|
410
|
+
};
|
|
411
|
+
var resolveAddressToInstanceUp = async (root, address, includePrivate = void 0, ignore = []) => {
|
|
463
412
|
const cache = root.addressCache?.("up", includePrivate ?? true);
|
|
464
413
|
const parents = await root.parents?.() ?? [];
|
|
465
414
|
for (const parent of parents) {
|
|
@@ -470,14 +419,14 @@ var resolveAddressToInstanceUp = /* @__PURE__ */ __name(async (root, address, in
|
|
|
470
419
|
}
|
|
471
420
|
}
|
|
472
421
|
cache?.set(address, null);
|
|
473
|
-
}
|
|
474
|
-
var resolveAddressToInstanceAll =
|
|
422
|
+
};
|
|
423
|
+
var resolveAddressToInstanceAll = async (root, address, includePrivate = void 0, ignore = []) => {
|
|
475
424
|
const cache = root.addressCache?.("all", !!includePrivate);
|
|
476
425
|
const result = await resolveAddressToInstanceDown(root, address, includePrivate ?? false, ignore) ?? await resolveAddressToInstanceUp(root, address, includePrivate ?? true, ignore);
|
|
477
426
|
cache?.set(address, result ? new WeakRef(result) : null);
|
|
478
427
|
return result;
|
|
479
|
-
}
|
|
480
|
-
var resolveAddressToInstance =
|
|
428
|
+
};
|
|
429
|
+
var resolveAddressToInstance = async (root, address, includePrivate = void 0, ignore = [], direction = "all") => {
|
|
481
430
|
switch (direction) {
|
|
482
431
|
case "all": {
|
|
483
432
|
return await resolveAddressToInstanceAll(root, address, includePrivate, ignore);
|
|
@@ -489,67 +438,40 @@ var resolveAddressToInstance = /* @__PURE__ */ __name(async (root, address, incl
|
|
|
489
438
|
return await resolveAddressToInstanceDown(root, address, includePrivate ?? false, ignore);
|
|
490
439
|
}
|
|
491
440
|
}
|
|
492
|
-
}
|
|
441
|
+
};
|
|
493
442
|
|
|
494
443
|
// src/ResolveHelper/resolveAll.ts
|
|
495
|
-
var resolveAllUp =
|
|
444
|
+
var resolveAllUp = async (root, maxDepth = 10, exclude = []) => {
|
|
496
445
|
if (maxDepth === 0) {
|
|
497
|
-
return [
|
|
498
|
-
root
|
|
499
|
-
].filter((mod) => !exclude.includes(mod.address));
|
|
446
|
+
return [root].filter((mod) => !exclude.includes(mod.address));
|
|
500
447
|
}
|
|
501
448
|
const parents = (await root.parents()).filter((mod) => !exclude.includes(mod.address));
|
|
502
449
|
return (maxDepth > 1 ? [
|
|
503
|
-
...(await Promise.all(parents.map(async (mod) => await resolveAllUp(mod, maxDepth - 1, [
|
|
504
|
-
|
|
505
|
-
root.address
|
|
506
|
-
])))).flat(),
|
|
507
|
-
...(await Promise.all(parents.map(async (mod) => await resolveAllDown(mod, maxDepth - 1, [
|
|
508
|
-
...exclude,
|
|
509
|
-
root.address
|
|
510
|
-
], true)))).flat(),
|
|
511
|
-
...parents,
|
|
512
|
-
root
|
|
513
|
-
] : [
|
|
450
|
+
...(await Promise.all(parents.map(async (mod) => await resolveAllUp(mod, maxDepth - 1, [...exclude, root.address])))).flat(),
|
|
451
|
+
...(await Promise.all(parents.map(async (mod) => await resolveAllDown(mod, maxDepth - 1, [...exclude, root.address], true)))).flat(),
|
|
514
452
|
...parents,
|
|
515
453
|
root
|
|
516
|
-
]).filter((mod) => !exclude.includes(mod.address)).filter(duplicateModules);
|
|
517
|
-
}
|
|
518
|
-
var resolveAllDown =
|
|
454
|
+
] : [...parents, root]).filter((mod) => !exclude.includes(mod.address)).filter(duplicateModules);
|
|
455
|
+
};
|
|
456
|
+
var resolveAllDown = async (root, maxDepth = 10, exclude = [], includePrivate = false) => {
|
|
519
457
|
if (maxDepth === 0) {
|
|
520
|
-
return [
|
|
521
|
-
root
|
|
522
|
-
];
|
|
458
|
+
return [root];
|
|
523
459
|
}
|
|
524
460
|
const children = (await root.publicChildren()).filter((mod) => !exclude.includes(mod.address));
|
|
525
461
|
const privateChildren = includePrivate ? (await root.privateChildren()).filter((mod) => !exclude.includes(mod.address)) : [];
|
|
526
462
|
return (maxDepth > 1 ? [
|
|
527
463
|
...children,
|
|
528
|
-
...(await Promise.all(children.map((child) => resolveAllDown(child, maxDepth - 1, [
|
|
529
|
-
|
|
530
|
-
root.address
|
|
531
|
-
])))).flat(),
|
|
532
|
-
...(await Promise.all(privateChildren.map((child) => resolveAllDown(child, maxDepth - 1, [
|
|
533
|
-
...exclude,
|
|
534
|
-
root.address
|
|
535
|
-
])))).flat(),
|
|
464
|
+
...(await Promise.all(children.map((child) => resolveAllDown(child, maxDepth - 1, [...exclude, root.address])))).flat(),
|
|
465
|
+
...(await Promise.all(privateChildren.map((child) => resolveAllDown(child, maxDepth - 1, [...exclude, root.address])))).flat(),
|
|
536
466
|
root
|
|
537
|
-
] : [
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
]).filter((mod) => !exclude.includes(mod.address)).filter(duplicateModules);
|
|
541
|
-
}, "resolveAllDown");
|
|
542
|
-
var resolveAll = /* @__PURE__ */ __name(async (root, maxDepth = 10, exclude = []) => {
|
|
467
|
+
] : [...children, root]).filter((mod) => !exclude.includes(mod.address)).filter(duplicateModules);
|
|
468
|
+
};
|
|
469
|
+
var resolveAll = async (root, maxDepth = 10, exclude = []) => {
|
|
543
470
|
if (maxDepth === 0) {
|
|
544
|
-
return [
|
|
545
|
-
root
|
|
546
|
-
];
|
|
471
|
+
return [root];
|
|
547
472
|
}
|
|
548
|
-
return [
|
|
549
|
-
|
|
550
|
-
...await resolveAllDown(root, maxDepth, exclude)
|
|
551
|
-
].filter(duplicateModules);
|
|
552
|
-
}, "resolveAll");
|
|
473
|
+
return [...await resolveAllUp(root, maxDepth, exclude), ...await resolveAllDown(root, maxDepth, exclude)].filter(duplicateModules);
|
|
474
|
+
};
|
|
553
475
|
|
|
554
476
|
// src/ResolveHelper/ResolveHelper.ts
|
|
555
477
|
import { assertEx as assertEx4 } from "@xylabs/assert";
|
|
@@ -560,9 +482,6 @@ import { toJsonString as toJsonString2 } from "@xylabs/object";
|
|
|
560
482
|
|
|
561
483
|
// src/ResolveHelper/ResolveHelperStatic.ts
|
|
562
484
|
var ResolveHelperStatic = class {
|
|
563
|
-
static {
|
|
564
|
-
__name(this, "ResolveHelperStatic");
|
|
565
|
-
}
|
|
566
485
|
static defaultLogger;
|
|
567
486
|
static transformers = [];
|
|
568
487
|
};
|
|
@@ -572,23 +491,20 @@ import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
|
572
491
|
import { asAddress } from "@xylabs/hex";
|
|
573
492
|
|
|
574
493
|
// src/ResolveHelper/resolveLocalNameToInstance.ts
|
|
575
|
-
var resolveLocalNameToInstanceUp =
|
|
494
|
+
var resolveLocalNameToInstanceUp = async (root, modName) => {
|
|
576
495
|
const parents = await root.parents?.() ?? [];
|
|
577
496
|
return parents.find((parent) => parent.config.name === modName);
|
|
578
|
-
}
|
|
579
|
-
var resolveLocalNameToInstanceDown =
|
|
497
|
+
};
|
|
498
|
+
var resolveLocalNameToInstanceDown = async (root, modName, includePrivate = void 0) => {
|
|
580
499
|
const privateChildren = (includePrivate ? await root.privateChildren?.() : []) ?? [];
|
|
581
500
|
const publicChildren = await root.publicChildren?.() ?? [];
|
|
582
|
-
const children = [
|
|
583
|
-
...privateChildren,
|
|
584
|
-
...publicChildren
|
|
585
|
-
];
|
|
501
|
+
const children = [...privateChildren, ...publicChildren];
|
|
586
502
|
return children.find((child) => child.config.name === modName);
|
|
587
|
-
}
|
|
588
|
-
var resolveLocalNameToInstanceAll =
|
|
503
|
+
};
|
|
504
|
+
var resolveLocalNameToInstanceAll = async (root, modName, includePrivate = false) => {
|
|
589
505
|
return await resolveLocalNameToInstanceDown(root, modName, includePrivate) ?? await resolveLocalNameToInstanceUp(root, modName);
|
|
590
|
-
}
|
|
591
|
-
var resolveLocalNameToInstance =
|
|
506
|
+
};
|
|
507
|
+
var resolveLocalNameToInstance = async (root, modName, includePrivate = false, direction = "all") => {
|
|
592
508
|
switch (direction) {
|
|
593
509
|
case "all": {
|
|
594
510
|
return await resolveLocalNameToInstanceAll(root, modName, includePrivate);
|
|
@@ -600,35 +516,38 @@ var resolveLocalNameToInstance = /* @__PURE__ */ __name(async (root, modName, in
|
|
|
600
516
|
return await resolveLocalNameToInstanceDown(root, modName, includePrivate);
|
|
601
517
|
}
|
|
602
518
|
}
|
|
603
|
-
}
|
|
519
|
+
};
|
|
604
520
|
|
|
605
521
|
// src/ResolveHelper/resolveLocalNameToAddress.ts
|
|
606
|
-
var resolveLocalNameToAddressUp =
|
|
522
|
+
var resolveLocalNameToAddressUp = async (root, modName) => {
|
|
607
523
|
return (await resolveLocalNameToInstanceUp(root, modName))?.address;
|
|
608
|
-
}
|
|
609
|
-
var resolveLocalNameToAddressDown =
|
|
524
|
+
};
|
|
525
|
+
var resolveLocalNameToAddressDown = async (root, modName, includePrivate = void 0) => {
|
|
610
526
|
return (await resolveLocalNameToInstanceDown(root, modName, includePrivate))?.address;
|
|
611
|
-
}
|
|
612
|
-
var resolveLocalNameToAddressAll =
|
|
527
|
+
};
|
|
528
|
+
var resolveLocalNameToAddressAll = async (root, modName, includePrivate = void 0) => {
|
|
613
529
|
return (await resolveLocalNameToInstanceAll(root, modName, includePrivate))?.address;
|
|
614
|
-
}
|
|
615
|
-
var resolveLocalNameToAddress =
|
|
530
|
+
};
|
|
531
|
+
var resolveLocalNameToAddress = async (root, modName, includePrivate = void 0, direction = "all") => {
|
|
616
532
|
return (await resolveLocalNameToInstance(root, modName, includePrivate, direction))?.address;
|
|
617
|
-
}
|
|
533
|
+
};
|
|
618
534
|
|
|
619
535
|
// src/ResolveHelper/transformModuleIdentifier.ts
|
|
620
|
-
var transformModuleIdentifier =
|
|
536
|
+
var transformModuleIdentifier = async (id, transformers) => {
|
|
621
537
|
let result = id;
|
|
622
538
|
for (const transformer of transformers) {
|
|
623
539
|
result = await transformer.transform(id);
|
|
624
540
|
}
|
|
625
541
|
return result;
|
|
626
|
-
}
|
|
542
|
+
};
|
|
627
543
|
|
|
628
544
|
// src/ResolveHelper/resolvePathToInstance.ts
|
|
629
|
-
var resolvePathToInstance =
|
|
545
|
+
var resolvePathToInstance = async (root, path, includePrivate = void 0, transformers = ResolveHelperStatic.transformers) => {
|
|
630
546
|
const parts = path.split(MODULE_PATH_SEPARATOR);
|
|
631
|
-
const first = await transformModuleIdentifier(
|
|
547
|
+
const first = await transformModuleIdentifier(
|
|
548
|
+
assertEx2(parts.shift(), () => `First part is invalid [${path}]`),
|
|
549
|
+
transformers
|
|
550
|
+
);
|
|
632
551
|
if (!first) {
|
|
633
552
|
return void 0;
|
|
634
553
|
}
|
|
@@ -640,39 +559,44 @@ var resolvePathToInstance = /* @__PURE__ */ __name(async (root, path, includePri
|
|
|
640
559
|
}
|
|
641
560
|
return firstModule;
|
|
642
561
|
}
|
|
643
|
-
}
|
|
562
|
+
};
|
|
644
563
|
|
|
645
564
|
// src/ResolveHelper/resolvePathToAddress.ts
|
|
646
|
-
var resolvePathToAddress =
|
|
565
|
+
var resolvePathToAddress = async (root, path, includePrivate = void 0, transformers = ResolveHelperStatic.transformers) => {
|
|
647
566
|
return (await resolvePathToInstance(root, path, includePrivate, transformers))?.address;
|
|
648
|
-
}
|
|
567
|
+
};
|
|
649
568
|
|
|
650
569
|
// src/ResolveHelper/traceModuleIdentifier.ts
|
|
651
570
|
import { assertEx as assertEx3 } from "@xylabs/assert";
|
|
652
|
-
var traceModuleIdentifier =
|
|
571
|
+
var traceModuleIdentifier = async (resolver, path) => {
|
|
653
572
|
const parts = path.split(":");
|
|
654
573
|
const first = parts.shift();
|
|
655
|
-
const firstModule = asModuleInstance(
|
|
656
|
-
maxDepth: 1
|
|
657
|
-
|
|
574
|
+
const firstModule = asModuleInstance(
|
|
575
|
+
assertEx3(await resolver.resolve(first, { maxDepth: 1 }), () => `Failed to resolve [${first}]`),
|
|
576
|
+
() => `Resolved invalid module instance [${first}]`
|
|
577
|
+
);
|
|
658
578
|
if (firstModule) {
|
|
659
|
-
return parts.length > 0 ? [
|
|
660
|
-
firstModule.address,
|
|
661
|
-
...await traceModuleIdentifier(firstModule, parts.join(":"))
|
|
662
|
-
] : [
|
|
663
|
-
firstModule.address
|
|
664
|
-
];
|
|
579
|
+
return parts.length > 0 ? [firstModule.address, ...await traceModuleIdentifier(firstModule, parts.join(":"))] : [firstModule.address];
|
|
665
580
|
}
|
|
666
581
|
return [];
|
|
667
|
-
}
|
|
582
|
+
};
|
|
668
583
|
|
|
669
584
|
// src/ResolveHelper/ResolveHelper.ts
|
|
670
585
|
var ResolveHelper = class _ResolveHelper extends ResolveHelperStatic {
|
|
671
|
-
static {
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
586
|
+
static async resolve(config, idOrFilter = "*", {
|
|
587
|
+
maxDepth = 3,
|
|
588
|
+
required = "log",
|
|
589
|
+
...options
|
|
590
|
+
} = {}) {
|
|
591
|
+
const {
|
|
592
|
+
transformers,
|
|
593
|
+
mod,
|
|
594
|
+
logger = this.defaultLogger,
|
|
595
|
+
dead = false,
|
|
596
|
+
upResolver,
|
|
597
|
+
downResolver,
|
|
598
|
+
privateResolver
|
|
599
|
+
} = config;
|
|
676
600
|
const log = logger ? new IdLogger(logger, () => `ResolveHelper [${mod.id}][${idOrFilter}]`) : void 0;
|
|
677
601
|
const downLocalOptions = {
|
|
678
602
|
...options,
|
|
@@ -680,10 +604,7 @@ var ResolveHelper = class _ResolveHelper extends ResolveHelperStatic {
|
|
|
680
604
|
maxDepth,
|
|
681
605
|
required: false
|
|
682
606
|
};
|
|
683
|
-
const upLocalOptions = {
|
|
684
|
-
...downLocalOptions,
|
|
685
|
-
direction: "up"
|
|
686
|
-
};
|
|
607
|
+
const upLocalOptions = { ...downLocalOptions, direction: "up" };
|
|
687
608
|
const childOptions = {
|
|
688
609
|
...options,
|
|
689
610
|
maxDepth: maxDepth - 1,
|
|
@@ -711,11 +632,7 @@ var ResolveHelper = class _ResolveHelper extends ResolveHelperStatic {
|
|
|
711
632
|
return modules;
|
|
712
633
|
}
|
|
713
634
|
const childModules = (await Promise.all(modules.map(async (mod2) => await mod2.resolve("*", childOptions)))).flat().filter(duplicateModules);
|
|
714
|
-
return [
|
|
715
|
-
...modules,
|
|
716
|
-
...childModules,
|
|
717
|
-
mod
|
|
718
|
-
].filter(duplicateModules);
|
|
635
|
+
return [...modules, ...childModules, mod].filter(duplicateModules);
|
|
719
636
|
} else {
|
|
720
637
|
switch (typeof idOrFilter) {
|
|
721
638
|
case "string": {
|
|
@@ -725,18 +642,9 @@ var ResolveHelper = class _ResolveHelper extends ResolveHelperStatic {
|
|
|
725
642
|
const id = await resolvePathToAddress(mod, idOrFilter, false, transformers) ?? idOrFilter;
|
|
726
643
|
if (id) {
|
|
727
644
|
const resolvers = [
|
|
728
|
-
[
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
],
|
|
732
|
-
[
|
|
733
|
-
up ? upResolver : void 0,
|
|
734
|
-
upLocalOptions
|
|
735
|
-
],
|
|
736
|
-
[
|
|
737
|
-
up ? privateResolver : void 0,
|
|
738
|
-
upLocalOptions
|
|
739
|
-
]
|
|
645
|
+
[downResolver, downLocalOptions],
|
|
646
|
+
[up ? upResolver : void 0, upLocalOptions],
|
|
647
|
+
[up ? privateResolver : void 0, upLocalOptions]
|
|
740
648
|
].filter(([resolver]) => exists(resolver));
|
|
741
649
|
for (const resolver of resolvers) {
|
|
742
650
|
const [resolverInstance] = resolver;
|
|
@@ -768,11 +676,7 @@ var ResolveHelper = class _ResolveHelper extends ResolveHelperStatic {
|
|
|
768
676
|
const parts = path.split(":");
|
|
769
677
|
const first = parts.shift();
|
|
770
678
|
const firstIsAddress = isAddress2(first);
|
|
771
|
-
const resolvedModule = await resolver.resolve(first, {
|
|
772
|
-
maxDepth: firstIsAddress ? 10 : 1
|
|
773
|
-
}) ?? (first ? await resolver.resolvePrivate(first, {
|
|
774
|
-
maxDepth: firstIsAddress ? 10 : 1
|
|
775
|
-
}) : void 0);
|
|
679
|
+
const resolvedModule = await resolver.resolve(first, { maxDepth: firstIsAddress ? 10 : 1 }) ?? (first ? await resolver.resolvePrivate(first, { maxDepth: firstIsAddress ? 10 : 1 }) : void 0);
|
|
776
680
|
const finalModule = required ? assertEx4(resolvedModule, () => `Failed to resolve [${first}] [${firstIsAddress}]`) : resolvedModule;
|
|
777
681
|
const firstModule = asModuleInstance(finalModule, () => `Resolved invalid module instance [${first}]`);
|
|
778
682
|
if (firstModule) {
|
|
@@ -808,11 +712,11 @@ var ResolveHelper = class _ResolveHelper extends ResolveHelperStatic {
|
|
|
808
712
|
|
|
809
713
|
// src/withModule.ts
|
|
810
714
|
var WithFactory = {
|
|
811
|
-
create:
|
|
715
|
+
create: (typeCheck) => {
|
|
812
716
|
return (mod, closure) => {
|
|
813
717
|
return typeCheck(mod) ? closure(mod) : void 0;
|
|
814
718
|
};
|
|
815
|
-
}
|
|
719
|
+
}
|
|
816
720
|
};
|
|
817
721
|
var withModule = WithFactory.create(isModule);
|
|
818
722
|
var withModuleInstance = WithFactory.create(isModuleInstance);
|