@xyo-network/node 2.64.6 → 2.64.8
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.js +19 -9
- package/dist/cjs/AbstractNode.js.map +1 -1
- package/dist/cjs/MemoryNode.js +8 -34
- package/dist/cjs/MemoryNode.js.map +1 -1
- package/dist/docs.json +9081 -3738
- package/dist/esm/AbstractNode.js +19 -4
- package/dist/esm/AbstractNode.js.map +1 -1
- package/dist/esm/MemoryNode.js +9 -32
- package/dist/esm/MemoryNode.js.map +1 -1
- package/dist/types/AbstractNode.d.ts +4 -3
- package/dist/types/AbstractNode.d.ts.map +1 -1
- package/dist/types/MemoryNode.d.ts +1 -2
- package/dist/types/MemoryNode.d.ts.map +1 -1
- package/package.json +11 -13
- package/src/AbstractNode.ts +25 -7
- package/src/MemoryNode.ts +12 -39
package/dist/esm/AbstractNode.js
CHANGED
|
@@ -2,6 +2,7 @@ import { assertEx } from '@xylabs/assert';
|
|
|
2
2
|
import { Account } from '@xyo-network/account';
|
|
3
3
|
import { AddressSchema } from '@xyo-network/address-payload-plugin';
|
|
4
4
|
import { handleErrorAsync } from '@xyo-network/error';
|
|
5
|
+
import { NodeManifestPayloadSchema } from '@xyo-network/manifest-model';
|
|
5
6
|
import { AbstractModule, CompositeModuleResolver, duplicateModules, ModuleErrorBuilder, QueryBoundWitnessWrapper, } from '@xyo-network/module';
|
|
6
7
|
import { NodeAttachedQuerySchema, NodeAttachQuerySchema, NodeConfigSchema, NodeDetachQuerySchema, NodeRegisteredQuerySchema, } from '@xyo-network/node-model';
|
|
7
8
|
import { PayloadBuilder } from '@xyo-network/payload-builder';
|
|
@@ -38,7 +39,7 @@ export class AbstractNode extends AbstractModule {
|
|
|
38
39
|
return [...(await super.discover()), ...childModAddresses];
|
|
39
40
|
}
|
|
40
41
|
async manifest() {
|
|
41
|
-
const manifest = { ...(await super.manifest()) };
|
|
42
|
+
const manifest = { ...(await super.manifest()), schema: NodeManifestPayloadSchema };
|
|
42
43
|
const notThisModule = (module) => module.address !== this.address;
|
|
43
44
|
const toManifest = (module) => module.manifest();
|
|
44
45
|
const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest));
|
|
@@ -62,6 +63,23 @@ export class AbstractNode extends AbstractModule {
|
|
|
62
63
|
registeredModules() {
|
|
63
64
|
throw new Error('Method not implemented.');
|
|
64
65
|
}
|
|
66
|
+
async resolvePrivate(nameOrAddressOrFilter) {
|
|
67
|
+
switch (typeof nameOrAddressOrFilter) {
|
|
68
|
+
case 'string': {
|
|
69
|
+
const byAddress = Account.isAddress(nameOrAddressOrFilter)
|
|
70
|
+
? (await this.privateResolver.resolve({ address: [nameOrAddressOrFilter] })).pop() ??
|
|
71
|
+
(await this.resolve({ address: [nameOrAddressOrFilter] })).pop()
|
|
72
|
+
: undefined;
|
|
73
|
+
return (byAddress ??
|
|
74
|
+
(await this.privateResolver.resolve({ name: [nameOrAddressOrFilter] })).pop() ??
|
|
75
|
+
(await this.resolve({ name: [nameOrAddressOrFilter] })).pop());
|
|
76
|
+
}
|
|
77
|
+
default: {
|
|
78
|
+
const filter = nameOrAddressOrFilter;
|
|
79
|
+
return [...(await this.privateResolver.resolve(filter)), ...(await this.resolve(filter))].filter(duplicateModules);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
65
83
|
unregister(_module) {
|
|
66
84
|
throw new Error('Method not implemented.');
|
|
67
85
|
}
|
|
@@ -122,8 +140,5 @@ export class AbstractNode extends AbstractModule {
|
|
|
122
140
|
}
|
|
123
141
|
return (await this.bindQueryResult(queryPayload, resultPayloads, [queryAccount], errorPayloads))[0];
|
|
124
142
|
}
|
|
125
|
-
async resolve(filter) {
|
|
126
|
-
return [...(await this.privateResolver.resolve(filter)), ...(await super.resolve(filter))].filter(duplicateModules);
|
|
127
|
-
}
|
|
128
143
|
}
|
|
129
144
|
//# sourceMappingURL=AbstractNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAkB,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/MemoryNode.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
|
-
import {
|
|
3
|
-
import { fulfilled, rejected } from '@xylabs/promise';
|
|
4
|
-
import { duplicateModules, ModuleWrapper } from '@xyo-network/module';
|
|
5
|
-
import { NodeConfigSchema } from '@xyo-network/node-model';
|
|
6
|
-
import { NodeWrapper } from '@xyo-network/node-wrapper';
|
|
2
|
+
import { isNodeModule, NodeConfigSchema } from '@xyo-network/node-model';
|
|
7
3
|
import compact from 'lodash/compact';
|
|
8
4
|
import { AbstractNode } from './AbstractNode';
|
|
9
5
|
export class MemoryNode extends AbstractNode {
|
|
@@ -39,22 +35,6 @@ export class MemoryNode extends AbstractNode {
|
|
|
39
35
|
await this.emit('moduleUnregistered', args);
|
|
40
36
|
return this;
|
|
41
37
|
}
|
|
42
|
-
async resolve(filter) {
|
|
43
|
-
const internal = this.privateResolver.resolve(filter);
|
|
44
|
-
const up = this.upResolver?.resolve(filter) || [];
|
|
45
|
-
const down = this.downResolver?.resolve(filter) || [];
|
|
46
|
-
const resolved = await Promise.allSettled([internal, up, down]);
|
|
47
|
-
const errors = resolved.filter(rejected).map((r) => Error(r.reason));
|
|
48
|
-
if (errors.length) {
|
|
49
|
-
this.logger?.error(`Resolve Errors: ${JSON.stringify(errors, null, 2)}`);
|
|
50
|
-
}
|
|
51
|
-
return resolved
|
|
52
|
-
.filter(fulfilled)
|
|
53
|
-
.map((r) => r.value)
|
|
54
|
-
.flat()
|
|
55
|
-
.filter(exists)
|
|
56
|
-
.filter(duplicateModules);
|
|
57
|
-
}
|
|
58
38
|
async attachUsingAddress(address, external) {
|
|
59
39
|
const existingModule = (await this.resolve({ address: [address] })).pop();
|
|
60
40
|
assertEx(!existingModule, `Module [${existingModule?.config.name ?? existingModule?.address}] already attached at address [${address}]`);
|
|
@@ -62,11 +42,10 @@ export class MemoryNode extends AbstractNode {
|
|
|
62
42
|
if (!module) {
|
|
63
43
|
return;
|
|
64
44
|
}
|
|
65
|
-
const wrapper = ModuleWrapper.wrap(module);
|
|
66
45
|
const notifiedAddresses = [];
|
|
67
46
|
const getModulesToNotifyAbout = async (node) => {
|
|
68
47
|
//send attach events for all existing attached modules
|
|
69
|
-
const childModules = await node.resolve();
|
|
48
|
+
const childModules = await node.downResolver.resolve();
|
|
70
49
|
return compact(childModules.map((child) => {
|
|
71
50
|
//don't report self
|
|
72
51
|
if (node.address === child.address) {
|
|
@@ -80,7 +59,7 @@ export class MemoryNode extends AbstractNode {
|
|
|
80
59
|
return child;
|
|
81
60
|
}));
|
|
82
61
|
};
|
|
83
|
-
const notificationList = await getModulesToNotifyAbout(
|
|
62
|
+
const notificationList = await getModulesToNotifyAbout(module);
|
|
84
63
|
this.privateResolver.addResolver(module.downResolver);
|
|
85
64
|
//give it inside access
|
|
86
65
|
module.upResolver.addResolver?.(this.privateResolver);
|
|
@@ -92,13 +71,12 @@ export class MemoryNode extends AbstractNode {
|
|
|
92
71
|
}
|
|
93
72
|
const args = { module, name: module.config.name };
|
|
94
73
|
await this.emit('moduleAttached', args);
|
|
95
|
-
if (
|
|
74
|
+
if (isNodeModule(module)) {
|
|
96
75
|
if (external) {
|
|
97
|
-
const wrappedAsNode = NodeWrapper.wrap(module);
|
|
98
76
|
const attachedListener = async (args) => await this.emit('moduleAttached', args);
|
|
99
77
|
const detachedListener = async (args) => await this.emit('moduleDetached', args);
|
|
100
|
-
|
|
101
|
-
|
|
78
|
+
module.on('moduleAttached', attachedListener);
|
|
79
|
+
module.on('moduleDetached', detachedListener);
|
|
102
80
|
}
|
|
103
81
|
}
|
|
104
82
|
const notifyOfExistingModules = async (childModules) => {
|
|
@@ -131,12 +109,11 @@ export class MemoryNode extends AbstractNode {
|
|
|
131
109
|
const args = { module, name: module.config.name };
|
|
132
110
|
await this.emit('moduleDetached', args);
|
|
133
111
|
//notify of all sub node children detach
|
|
134
|
-
const wrapper = ModuleWrapper.tryWrap(module);
|
|
135
112
|
const notifiedAddresses = [];
|
|
136
|
-
if (
|
|
113
|
+
if (isNodeModule(module)) {
|
|
137
114
|
const notifyOfExistingModules = async (node) => {
|
|
138
115
|
//send attach events for all existing attached modules
|
|
139
|
-
const childModules = await node.resolve();
|
|
116
|
+
const childModules = await node.downResolver.resolve();
|
|
140
117
|
await Promise.all(childModules.map(async (child) => {
|
|
141
118
|
//don't report self
|
|
142
119
|
if (node.address === child.address) {
|
|
@@ -150,7 +127,7 @@ export class MemoryNode extends AbstractNode {
|
|
|
150
127
|
await this.emit('moduleDetached', { module: child });
|
|
151
128
|
}));
|
|
152
129
|
};
|
|
153
|
-
await notifyOfExistingModules(
|
|
130
|
+
await notifyOfExistingModules(module);
|
|
154
131
|
}
|
|
155
132
|
return address;
|
|
156
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NodeManifestPayload } from '@xyo-network/manifest-model';
|
|
2
2
|
import { AbstractModule, CompositeModuleResolver, Module, ModuleConfig, ModuleFilter, ModuleQueryResult, QueryBoundWitness } from '@xyo-network/module';
|
|
3
3
|
import { NodeModule, NodeModuleEventData, NodeModuleParams, NodeQueryBase } from '@xyo-network/node-model';
|
|
4
4
|
import { Payload } from '@xyo-network/payload-model';
|
|
@@ -14,13 +14,14 @@ export declare abstract class AbstractNode<TParams extends NodeModuleParams = No
|
|
|
14
14
|
attached(): Promise<string[]>;
|
|
15
15
|
attachedModules(): Promise<Module[]>;
|
|
16
16
|
discover(): Promise<Payload[]>;
|
|
17
|
-
manifest(): Promise<
|
|
17
|
+
manifest(): Promise<NodeManifestPayload>;
|
|
18
18
|
register(_module: Module): Promisable<this>;
|
|
19
19
|
registered(): Promisable<string[]>;
|
|
20
20
|
registeredModules(): Promisable<Module[]>;
|
|
21
|
+
resolvePrivate<TModule extends Module = Module>(filter?: ModuleFilter): Promise<TModule[]>;
|
|
22
|
+
resolvePrivate<TModule extends Module = Module>(nameOrAddress: string): Promise<TModule | undefined>;
|
|
21
23
|
unregister(_module: Module): Promisable<this>;
|
|
22
24
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
|
|
23
|
-
protected resolve<TModule extends Module = Module>(filter?: ModuleFilter): Promise<TModule[]>;
|
|
24
25
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<string | undefined>;
|
|
25
26
|
abstract detach(nameOrAddress: string): Promisable<string | undefined>;
|
|
26
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAA6B,MAAM,6BAA6B,CAAA;AAC5F,OAAO,EACL,cAAc,EACd,uBAAuB,EAEvB,MAAM,EACN,YAAY,EAGZ,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EAElB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAKL,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAEhB,aAAa,EAEd,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,8BAAsB,YAAY,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CAClJ,SAAQ,cAAc,CAAC,OAAO,EAAE,UAAU,CAC1C,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvE,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOnF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAS9B,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAqBvD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAI3C,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAIlC,iBAAiB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAInC,cAAc,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1F,cAAc,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAqB1G,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;cAIpB,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,iBAAiB,CAAC;IA2D7B,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;CACvE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyConfigSchema, Module
|
|
1
|
+
import { AnyConfigSchema, Module } from '@xyo-network/module';
|
|
2
2
|
import { NodeConfig, NodeModule, NodeModuleEventData, NodeModuleParams } from '@xyo-network/node-model';
|
|
3
3
|
import { AbstractNode } from './AbstractNode';
|
|
4
4
|
export type MemoryNodeParams = NodeModuleParams<AnyConfigSchema<NodeConfig>>;
|
|
@@ -11,7 +11,6 @@ export declare class MemoryNode<TParams extends MemoryNodeParams = MemoryNodePar
|
|
|
11
11
|
registered(): string[];
|
|
12
12
|
registeredModules(): Module[];
|
|
13
13
|
unregister(module: Module): Promise<this>;
|
|
14
|
-
protected resolve<TModule extends Module = Module>(filter?: ModuleFilter): Promise<TModule[]>;
|
|
15
14
|
private attachUsingAddress;
|
|
16
15
|
private attachUsingName;
|
|
17
16
|
private detachUsingAddress;
|
|
@@ -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":"AACA,OAAO,EAAE,eAAe,EAAiB,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAgB,UAAU,EAAoB,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAGvI,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;AAE5E,qBAAa,UAAU,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACvI,SAAQ,YAAY,CAAC,OAAO,EAAE,UAAU,CACxC,YAAW,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC;IAE1C,OAAgB,aAAa,8BAAqB;IAElD,OAAO,CAAC,mBAAmB,CAA6B;IAEzC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;IAIhD,MAAM,CAAC,aAAa,EAAE,MAAM;IAI5B,QAAQ,CAAC,MAAM,EAAE,MAAM;IAQ7B,UAAU;IAMV,iBAAiB;IAMX,UAAU,CAAC,MAAM,EAAE,MAAM;YAQ1B,kBAAkB;YA8ElB,eAAe;YAOf,kBAAkB;YAgDlB,eAAe;IAQ7B,OAAO,CAAC,qBAAqB;CAM9B"}
|
package/package.json
CHANGED
|
@@ -11,18 +11,16 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.9.3",
|
|
14
|
-
"@
|
|
15
|
-
"@
|
|
16
|
-
"@xyo-network/
|
|
17
|
-
"@xyo-network/
|
|
18
|
-
"@xyo-network/
|
|
19
|
-
"@xyo-network/
|
|
20
|
-
"@xyo-network/
|
|
21
|
-
"@xyo-network/
|
|
22
|
-
"@xyo-network/
|
|
23
|
-
"@xyo-network/
|
|
24
|
-
"@xyo-network/payload-model": "^2.64.6",
|
|
25
|
-
"@xyo-network/promise": "^2.64.6",
|
|
14
|
+
"@xyo-network/account": "^2.64.8",
|
|
15
|
+
"@xyo-network/address-payload-plugin": "^2.64.8",
|
|
16
|
+
"@xyo-network/error": "^2.64.8",
|
|
17
|
+
"@xyo-network/manifest-model": "^2.64.8",
|
|
18
|
+
"@xyo-network/module": "^2.64.8",
|
|
19
|
+
"@xyo-network/node-model": "^2.64.8",
|
|
20
|
+
"@xyo-network/node-wrapper": "^2.64.8",
|
|
21
|
+
"@xyo-network/payload-builder": "^2.64.8",
|
|
22
|
+
"@xyo-network/payload-model": "^2.64.8",
|
|
23
|
+
"@xyo-network/promise": "^2.64.8",
|
|
26
24
|
"lodash": "^4.17.21"
|
|
27
25
|
},
|
|
28
26
|
"devDependencies": {
|
|
@@ -64,5 +62,5 @@
|
|
|
64
62
|
},
|
|
65
63
|
"sideEffects": false,
|
|
66
64
|
"types": "dist/types/index.d.ts",
|
|
67
|
-
"version": "2.64.
|
|
65
|
+
"version": "2.64.8"
|
|
68
66
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { assertEx } from '@xylabs/assert'
|
|
|
2
2
|
import { Account } from '@xyo-network/account'
|
|
3
3
|
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
4
4
|
import { handleErrorAsync } from '@xyo-network/error'
|
|
5
|
-
import {
|
|
5
|
+
import { NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'
|
|
6
6
|
import {
|
|
7
7
|
AbstractModule,
|
|
8
8
|
CompositeModuleResolver,
|
|
@@ -80,8 +80,8 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
|
|
|
80
80
|
return [...(await super.discover()), ...childModAddresses]
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
override async manifest(): Promise<
|
|
84
|
-
const manifest:
|
|
83
|
+
override async manifest(): Promise<NodeManifestPayload> {
|
|
84
|
+
const manifest: NodeManifestPayload = { ...(await super.manifest()), schema: NodeManifestPayloadSchema }
|
|
85
85
|
|
|
86
86
|
const notThisModule = (module: Module) => module.address !== this.address
|
|
87
87
|
const toManifest = (module: Module) => module.manifest()
|
|
@@ -113,6 +113,28 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
|
|
|
113
113
|
throw new Error('Method not implemented.')
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
+
async resolvePrivate<TModule extends Module = Module>(filter?: ModuleFilter): Promise<TModule[]>
|
|
117
|
+
async resolvePrivate<TModule extends Module = Module>(nameOrAddress: string): Promise<TModule | undefined>
|
|
118
|
+
async resolvePrivate<TModule extends Module = Module>(nameOrAddressOrFilter?: ModuleFilter | string): Promise<TModule | TModule[] | undefined> {
|
|
119
|
+
switch (typeof nameOrAddressOrFilter) {
|
|
120
|
+
case 'string': {
|
|
121
|
+
const byAddress = Account.isAddress(nameOrAddressOrFilter)
|
|
122
|
+
? (await this.privateResolver.resolve<TModule>({ address: [nameOrAddressOrFilter] })).pop() ??
|
|
123
|
+
(await this.resolve<TModule>({ address: [nameOrAddressOrFilter] })).pop()
|
|
124
|
+
: undefined
|
|
125
|
+
return (
|
|
126
|
+
byAddress ??
|
|
127
|
+
(await this.privateResolver.resolve<TModule>({ name: [nameOrAddressOrFilter] })).pop() ??
|
|
128
|
+
(await this.resolve<TModule>({ name: [nameOrAddressOrFilter] })).pop()
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
default: {
|
|
132
|
+
const filter: ModuleFilter | undefined = nameOrAddressOrFilter
|
|
133
|
+
return [...(await this.privateResolver.resolve<TModule>(filter)), ...(await this.resolve<TModule>(filter))].filter(duplicateModules)
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
116
138
|
unregister(_module: Module): Promisable<this> {
|
|
117
139
|
throw new Error('Method not implemented.')
|
|
118
140
|
}
|
|
@@ -180,10 +202,6 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
|
|
|
180
202
|
return (await this.bindQueryResult(queryPayload, resultPayloads, [queryAccount], errorPayloads))[0]
|
|
181
203
|
}
|
|
182
204
|
|
|
183
|
-
protected override async resolve<TModule extends Module = Module>(filter?: ModuleFilter): Promise<TModule[]> {
|
|
184
|
-
return [...(await this.privateResolver.resolve<TModule>(filter)), ...(await super.resolve<TModule>(filter))].filter(duplicateModules)
|
|
185
|
-
}
|
|
186
|
-
|
|
187
205
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<string | undefined>
|
|
188
206
|
abstract detach(nameOrAddress: string): Promisable<string | undefined>
|
|
189
207
|
}
|
package/src/MemoryNode.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { AnyConfigSchema, duplicateModules, EventListener, Module, ModuleFilter, ModuleWrapper } from '@xyo-network/module'
|
|
5
|
-
import { NodeConfig, NodeConfigSchema, NodeModule, NodeModuleEventData, NodeModuleParams } from '@xyo-network/node-model'
|
|
6
|
-
import { NodeWrapper } from '@xyo-network/node-wrapper'
|
|
2
|
+
import { AnyConfigSchema, EventListener, Module } from '@xyo-network/module'
|
|
3
|
+
import { isNodeModule, NodeConfig, NodeConfigSchema, NodeModule, NodeModuleEventData, NodeModuleParams } from '@xyo-network/node-model'
|
|
7
4
|
import compact from 'lodash/compact'
|
|
8
5
|
|
|
9
6
|
import { AbstractNode } from './AbstractNode'
|
|
@@ -54,26 +51,6 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
54
51
|
return this
|
|
55
52
|
}
|
|
56
53
|
|
|
57
|
-
protected override async resolve<TModule extends Module = Module>(filter?: ModuleFilter): Promise<TModule[]> {
|
|
58
|
-
const internal: Promise<TModule[]> = this.privateResolver.resolve<TModule>(filter)
|
|
59
|
-
const up: Promise<TModule[]> = this.upResolver?.resolve<TModule>(filter) || []
|
|
60
|
-
const down: Promise<TModule[]> = this.downResolver?.resolve<TModule>(filter) || []
|
|
61
|
-
const resolved = await Promise.allSettled([internal, up, down])
|
|
62
|
-
|
|
63
|
-
const errors = resolved.filter(rejected).map((r) => Error(r.reason))
|
|
64
|
-
|
|
65
|
-
if (errors.length) {
|
|
66
|
-
this.logger?.error(`Resolve Errors: ${JSON.stringify(errors, null, 2)}`)
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return resolved
|
|
70
|
-
.filter(fulfilled)
|
|
71
|
-
.map((r) => r.value)
|
|
72
|
-
.flat()
|
|
73
|
-
.filter(exists)
|
|
74
|
-
.filter(duplicateModules)
|
|
75
|
-
}
|
|
76
|
-
|
|
77
54
|
private async attachUsingAddress(address: string, external?: boolean) {
|
|
78
55
|
const existingModule = (await this.resolve({ address: [address] })).pop()
|
|
79
56
|
assertEx(!existingModule, `Module [${existingModule?.config.name ?? existingModule?.address}] already attached at address [${address}]`)
|
|
@@ -83,12 +60,11 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
83
60
|
return
|
|
84
61
|
}
|
|
85
62
|
|
|
86
|
-
const wrapper = ModuleWrapper.wrap(module)
|
|
87
63
|
const notifiedAddresses: string[] = []
|
|
88
64
|
|
|
89
|
-
const getModulesToNotifyAbout = async (node:
|
|
65
|
+
const getModulesToNotifyAbout = async (node: Module) => {
|
|
90
66
|
//send attach events for all existing attached modules
|
|
91
|
-
const childModules = await node.resolve()
|
|
67
|
+
const childModules = await node.downResolver.resolve()
|
|
92
68
|
return compact(
|
|
93
69
|
childModules.map((child) => {
|
|
94
70
|
//don't report self
|
|
@@ -108,7 +84,7 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
108
84
|
)
|
|
109
85
|
}
|
|
110
86
|
|
|
111
|
-
const notificationList = await getModulesToNotifyAbout(
|
|
87
|
+
const notificationList = await getModulesToNotifyAbout(module)
|
|
112
88
|
|
|
113
89
|
this.privateResolver.addResolver(module.downResolver)
|
|
114
90
|
|
|
@@ -126,18 +102,16 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
126
102
|
const args = { module, name: module.config.name }
|
|
127
103
|
await this.emit('moduleAttached', args)
|
|
128
104
|
|
|
129
|
-
if (
|
|
105
|
+
if (isNodeModule(module)) {
|
|
130
106
|
if (external) {
|
|
131
|
-
const wrappedAsNode = NodeWrapper.wrap(module as NodeModule)
|
|
132
|
-
|
|
133
107
|
const attachedListener: EventListener<TEventData['moduleAttached']> = async (args: TEventData['moduleAttached']) =>
|
|
134
108
|
await this.emit('moduleAttached', args)
|
|
135
109
|
|
|
136
110
|
const detachedListener: EventListener<TEventData['moduleDetached']> = async (args: TEventData['moduleDetached']) =>
|
|
137
111
|
await this.emit('moduleDetached', args)
|
|
138
112
|
|
|
139
|
-
|
|
140
|
-
|
|
113
|
+
module.on('moduleAttached', attachedListener)
|
|
114
|
+
module.on('moduleDetached', detachedListener)
|
|
141
115
|
}
|
|
142
116
|
}
|
|
143
117
|
|
|
@@ -184,12 +158,11 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
184
158
|
await this.emit('moduleDetached', args)
|
|
185
159
|
|
|
186
160
|
//notify of all sub node children detach
|
|
187
|
-
const wrapper = ModuleWrapper.tryWrap(module as NodeModule)
|
|
188
161
|
const notifiedAddresses: string[] = []
|
|
189
|
-
if (
|
|
190
|
-
const notifyOfExistingModules = async (node:
|
|
162
|
+
if (isNodeModule(module)) {
|
|
163
|
+
const notifyOfExistingModules = async (node: NodeModule) => {
|
|
191
164
|
//send attach events for all existing attached modules
|
|
192
|
-
const childModules = await node.resolve()
|
|
165
|
+
const childModules = await node.downResolver.resolve()
|
|
193
166
|
await Promise.all(
|
|
194
167
|
childModules.map(async (child) => {
|
|
195
168
|
//don't report self
|
|
@@ -206,7 +179,7 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
206
179
|
}),
|
|
207
180
|
)
|
|
208
181
|
}
|
|
209
|
-
await notifyOfExistingModules(
|
|
182
|
+
await notifyOfExistingModules(module)
|
|
210
183
|
}
|
|
211
184
|
return address
|
|
212
185
|
}
|