@xyo-network/node 2.43.4 → 2.43.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AbstractNode.d.ts +25 -1
- package/dist/cjs/AbstractNode.d.ts.map +1 -1
- package/dist/cjs/AbstractNode.js +43 -1
- package/dist/cjs/AbstractNode.js.map +1 -1
- package/dist/cjs/MemoryNode.d.ts +4 -1
- package/dist/cjs/MemoryNode.d.ts.map +1 -1
- package/dist/cjs/MemoryNode.js +35 -4
- package/dist/cjs/MemoryNode.js.map +1 -1
- package/dist/docs.json +2889 -1561
- package/dist/esm/AbstractNode.d.ts +25 -1
- package/dist/esm/AbstractNode.d.ts.map +1 -1
- package/dist/esm/AbstractNode.js +39 -1
- package/dist/esm/AbstractNode.js.map +1 -1
- package/dist/esm/MemoryNode.d.ts +4 -1
- package/dist/esm/MemoryNode.d.ts.map +1 -1
- package/dist/esm/MemoryNode.js +34 -4
- package/dist/esm/MemoryNode.js.map +1 -1
- package/package.json +12 -10
- package/src/AbstractNode.ts +48 -1
- package/src/MemoryNode.spec.ts +62 -2
- package/src/MemoryNode.ts +38 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Account } from '@xyo-network/account';
|
|
2
|
-
import { AbstractModule, Module, ModuleDescription, ModuleFilter, ModuleParams, ModuleQueryResult, ModuleRepository, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
2
|
+
import { AbstractModule, Module, ModuleConstructable, ModuleDescription, ModuleFilter, ModuleParams, ModuleQueryResult, ModuleRepository, ModuleWrapper, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
3
3
|
import { XyoPayload } from '@xyo-network/payload-model';
|
|
4
4
|
import { Promisable } from '@xyo-network/promise';
|
|
5
5
|
import { NodeConfig } from './Config';
|
|
@@ -22,7 +22,31 @@ export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConf
|
|
|
22
22
|
register(_module: TModule): Promisable<void>;
|
|
23
23
|
registered(): Promisable<string[]>;
|
|
24
24
|
registeredModules(): Promisable<TModule[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Resolves the supplied filter into wrapped modules
|
|
27
|
+
* @example <caption>Example using ArchivistWrapper</caption>
|
|
28
|
+
* const filter = { address: [address] }
|
|
29
|
+
* const mods: ArchivistWrapper[] = await node.resolveWrapped(ArchivistWrapper, filter)
|
|
30
|
+
* @param wrapper The ModuleWrapper class (ArchivistWrapper,
|
|
31
|
+
* DivinerWrapper, etc.)
|
|
32
|
+
* @param filter The ModuleFilter
|
|
33
|
+
* @returns An array of ModuleWrapper instances corresponding to
|
|
34
|
+
* the underlying modules matching the supplied filter
|
|
35
|
+
*/
|
|
36
|
+
resolveWrapped<T extends ModuleWrapper<TModule> = ModuleWrapper<TModule>>(wrapper: ModuleConstructable<TModule, T>, filter?: ModuleFilter): Promise<T[]>;
|
|
25
37
|
start(): Promise<this>;
|
|
38
|
+
/**
|
|
39
|
+
* Tries to resolve the supplied filter into wrapped modules
|
|
40
|
+
* @example <caption>Example using ArchivistWrapper</caption>
|
|
41
|
+
* const filter = { address: [address] }
|
|
42
|
+
* const mods: ArchivistWrapper[] = await node.tryResolveWrapped(ArchivistWrapper, filter)
|
|
43
|
+
* @param wrapper The ModuleWrapper class (ArchivistWrapper,
|
|
44
|
+
* DivinerWrapper, etc.)
|
|
45
|
+
* @param filter The ModuleFilter
|
|
46
|
+
* @returns An array of ModuleWrapper instances corresponding to
|
|
47
|
+
* the underlying modules matching the supplied filter
|
|
48
|
+
*/
|
|
49
|
+
tryResolveWrapped<T extends ModuleWrapper<TModule> = ModuleWrapper<TModule>>(wrapper: ModuleConstructable<TModule, T>, filter?: ModuleFilter): Promise<T[]>;
|
|
26
50
|
unregister(_module: TModule): Promisable<void>;
|
|
27
51
|
abstract attach(address: string): Promisable<void>;
|
|
28
52
|
abstract detach(address: string): Promisable<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/AbstractNode.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.XyoNode = exports.AbstractNode = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const assert_1 = require("@xylabs/assert");
|
|
6
|
+
const exists_1 = require("@xylabs/exists");
|
|
6
7
|
const account_1 = require("@xyo-network/account");
|
|
7
8
|
const address_payload_plugin_1 = require("@xyo-network/address-payload-plugin");
|
|
8
9
|
const module_1 = require("@xyo-network/module");
|
|
@@ -71,7 +72,7 @@ class AbstractNode extends module_1.AbstractModule {
|
|
|
71
72
|
// const [bw, payloads] = result
|
|
72
73
|
// return [bw, ...payloads]
|
|
73
74
|
// })
|
|
74
|
-
// .
|
|
75
|
+
// .flat()
|
|
75
76
|
// return [...parent, ...children]
|
|
76
77
|
return parent;
|
|
77
78
|
});
|
|
@@ -135,6 +136,22 @@ class AbstractNode extends module_1.AbstractModule {
|
|
|
135
136
|
registeredModules() {
|
|
136
137
|
throw new Error('Method not implemented.');
|
|
137
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Resolves the supplied filter into wrapped modules
|
|
141
|
+
* @example <caption>Example using ArchivistWrapper</caption>
|
|
142
|
+
* const filter = { address: [address] }
|
|
143
|
+
* const mods: ArchivistWrapper[] = await node.resolveWrapped(ArchivistWrapper, filter)
|
|
144
|
+
* @param wrapper The ModuleWrapper class (ArchivistWrapper,
|
|
145
|
+
* DivinerWrapper, etc.)
|
|
146
|
+
* @param filter The ModuleFilter
|
|
147
|
+
* @returns An array of ModuleWrapper instances corresponding to
|
|
148
|
+
* the underlying modules matching the supplied filter
|
|
149
|
+
*/
|
|
150
|
+
resolveWrapped(wrapper, filter) {
|
|
151
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
152
|
+
return (yield this.resolve(filter)).map((mod) => new wrapper(mod));
|
|
153
|
+
});
|
|
154
|
+
}
|
|
138
155
|
start() {
|
|
139
156
|
const _super = Object.create(null, {
|
|
140
157
|
start: { get: () => super.start }
|
|
@@ -144,6 +161,31 @@ class AbstractNode extends module_1.AbstractModule {
|
|
|
144
161
|
return this;
|
|
145
162
|
});
|
|
146
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Tries to resolve the supplied filter into wrapped modules
|
|
166
|
+
* @example <caption>Example using ArchivistWrapper</caption>
|
|
167
|
+
* const filter = { address: [address] }
|
|
168
|
+
* const mods: ArchivistWrapper[] = await node.tryResolveWrapped(ArchivistWrapper, filter)
|
|
169
|
+
* @param wrapper The ModuleWrapper class (ArchivistWrapper,
|
|
170
|
+
* DivinerWrapper, etc.)
|
|
171
|
+
* @param filter The ModuleFilter
|
|
172
|
+
* @returns An array of ModuleWrapper instances corresponding to
|
|
173
|
+
* the underlying modules matching the supplied filter
|
|
174
|
+
*/
|
|
175
|
+
tryResolveWrapped(wrapper, filter) {
|
|
176
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
177
|
+
return (yield this.tryResolve(filter))
|
|
178
|
+
.map((mod) => {
|
|
179
|
+
try {
|
|
180
|
+
return new wrapper(mod);
|
|
181
|
+
}
|
|
182
|
+
catch (_err) {
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
})
|
|
186
|
+
.filter(exists_1.exists);
|
|
187
|
+
});
|
|
188
|
+
}
|
|
147
189
|
unregister(_module) {
|
|
148
190
|
throw new Error('Method not implemented.');
|
|
149
191
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,kDAA8C;AAC9C,gFAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/MemoryNode.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Module, ModuleFilter } from '@xyo-network/module';
|
|
2
2
|
import { AbstractNode, AbstractNodeParams } from './AbstractNode';
|
|
3
3
|
import { NodeConfig } from './Config';
|
|
4
|
+
export interface MemoryNodeParams<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module> extends AbstractNodeParams<TConfig, TModule> {
|
|
5
|
+
autoAttachExternallyResolved?: boolean;
|
|
6
|
+
}
|
|
4
7
|
export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module> extends AbstractNode<TConfig, TModule> {
|
|
5
8
|
static configSchema: "network.xyo.node.config";
|
|
6
9
|
private registeredModuleMap;
|
|
7
|
-
static create(params?: Partial<
|
|
10
|
+
static create(params?: Partial<MemoryNodeParams>): Promise<MemoryNode>;
|
|
8
11
|
attach(address: string, name?: string): void;
|
|
9
12
|
detach(address: string): void;
|
|
10
13
|
register(module: TModule): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+C,MAAM,EAAE,YAAY,EAAkB,MAAM,qBAAqB,CAAA;AAEvH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AAEvD,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CACxG,SAAQ,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC;IAC5C,4BAA4B,CAAC,EAAE,OAAO,CAAA;CACvC;AAED,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;IACtI,MAAM,CAAC,YAAY,4BAAmB;IACtC,OAAO,CAAC,mBAAmB,CAA6B;WAElC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAwB5E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAKrC,MAAM,CAAC,OAAO,EAAE,MAAM;IAItB,QAAQ,CAAC,MAAM,EAAE,OAAO;IAIxB,UAAU;IAMV,iBAAiB;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOlD,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAY3D,UAAU,CAAC,MAAM,EAAE,OAAO;CAGpC"}
|
package/dist/cjs/MemoryNode.js
CHANGED
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MemoryNode = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const assert_1 = require("@xylabs/assert");
|
|
6
|
+
const exists_1 = require("@xylabs/exists");
|
|
7
|
+
const promise_1 = require("@xylabs/promise");
|
|
8
|
+
const module_1 = require("@xyo-network/module");
|
|
6
9
|
const AbstractNode_1 = require("./AbstractNode");
|
|
7
10
|
const Config_1 = require("./Config");
|
|
8
11
|
class MemoryNode extends AbstractNode_1.AbstractNode {
|
|
@@ -15,7 +18,30 @@ class MemoryNode extends AbstractNode_1.AbstractNode {
|
|
|
15
18
|
create: { get: () => super.create }
|
|
16
19
|
});
|
|
17
20
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
-
|
|
21
|
+
const instance = (yield _super.create.call(this, params));
|
|
22
|
+
if ((params === null || params === void 0 ? void 0 : params.resolver) && (params === null || params === void 0 ? void 0 : params.autoAttachExternallyResolved)) {
|
|
23
|
+
const resolver = (0, module_1.mixinResolverEventEmitter)(params === null || params === void 0 ? void 0 : params.resolver);
|
|
24
|
+
resolver.on('moduleResolved', (args) => {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
const { module, filter } = args;
|
|
27
|
+
try {
|
|
28
|
+
instance.register(module);
|
|
29
|
+
if ((_a = filter === null || filter === void 0 ? void 0 : filter.name) === null || _a === void 0 ? void 0 : _a.length) {
|
|
30
|
+
filter.name.map((name) => {
|
|
31
|
+
instance.attach(module.address, name);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
instance.attach(module.address);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
(_b = params.logger) === null || _b === void 0 ? void 0 : _b.error(`Error attaching externally resolved module: 0x${module.address}`);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
instance.resolver = resolver;
|
|
43
|
+
}
|
|
44
|
+
return instance;
|
|
19
45
|
});
|
|
20
46
|
}
|
|
21
47
|
attach(address, name) {
|
|
@@ -44,7 +70,7 @@ class MemoryNode extends AbstractNode_1.AbstractNode {
|
|
|
44
70
|
const internal = this.internalResolver.resolve(filter);
|
|
45
71
|
const external = ((_a = this.resolver) === null || _a === void 0 ? void 0 : _a.resolve(filter)) || [];
|
|
46
72
|
const resolved = yield Promise.all([internal, external]);
|
|
47
|
-
return resolved.
|
|
73
|
+
return resolved.flat().filter(exists_1.exists).filter(module_1.duplicateModules);
|
|
48
74
|
});
|
|
49
75
|
}
|
|
50
76
|
tryResolve(filter) {
|
|
@@ -52,8 +78,13 @@ class MemoryNode extends AbstractNode_1.AbstractNode {
|
|
|
52
78
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
53
79
|
const internal = this.internalResolver.tryResolve(filter);
|
|
54
80
|
const external = ((_a = this.resolver) === null || _a === void 0 ? void 0 : _a.tryResolve(filter)) || [];
|
|
55
|
-
const resolved = yield Promise.
|
|
56
|
-
return resolved
|
|
81
|
+
const resolved = yield Promise.allSettled([internal, external]);
|
|
82
|
+
return resolved
|
|
83
|
+
.filter(promise_1.fulfilled)
|
|
84
|
+
.map((r) => r.value)
|
|
85
|
+
.flat()
|
|
86
|
+
.filter(exists_1.exists)
|
|
87
|
+
.filter(module_1.duplicateModules);
|
|
57
88
|
});
|
|
58
89
|
}
|
|
59
90
|
unregister(module) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;
|
|
1
|
+
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
|