@xyo-network/node 2.65.4 → 2.65.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.js +68 -12
- package/dist/cjs/AbstractNode.js.map +1 -1
- package/dist/cjs/MemoryNode.js +19 -5
- package/dist/cjs/MemoryNode.js.map +1 -1
- package/dist/docs.json +4992 -4214
- package/dist/esm/AbstractNode.js +57 -15
- package/dist/esm/AbstractNode.js.map +1 -1
- package/dist/esm/MemoryNode.js +17 -3
- package/dist/esm/MemoryNode.js.map +1 -1
- package/dist/types/AbstractNode.d.ts +5 -3
- package/dist/types/AbstractNode.d.ts.map +1 -1
- package/dist/types/MemoryNode.d.ts +1 -0
- package/dist/types/MemoryNode.d.ts.map +1 -1
- package/package.json +15 -15
- package/src/AbstractNode.ts +81 -19
- package/src/MemoryNode.ts +18 -5
package/dist/esm/AbstractNode.js
CHANGED
|
@@ -6,7 +6,7 @@ import { handleErrorAsync } from '@xyo-network/error';
|
|
|
6
6
|
import { NodeManifestPayloadSchema } from '@xyo-network/manifest-model';
|
|
7
7
|
import { ModuleWrapper } from '@xyo-network/module';
|
|
8
8
|
import { AbstractIndirectModule, CompositeModuleResolver, ModuleErrorBuilder } from '@xyo-network/module-abstract';
|
|
9
|
-
import { duplicateModules, isDirectModule } from '@xyo-network/module-model';
|
|
9
|
+
import { duplicateModules, isDirectModule, } from '@xyo-network/module-model';
|
|
10
10
|
import { NodeAttachedQuerySchema, NodeAttachQuerySchema, NodeConfigSchema, NodeDetachQuerySchema, NodeRegisteredQuerySchema, } from '@xyo-network/node-model';
|
|
11
11
|
import { PayloadBuilder } from '@xyo-network/payload-builder';
|
|
12
12
|
export class AbstractNode extends AbstractIndirectModule {
|
|
@@ -34,7 +34,7 @@ export class AbstractNode extends AbstractIndirectModule {
|
|
|
34
34
|
return (await this.attachedModules()).map((module) => module.address);
|
|
35
35
|
}
|
|
36
36
|
async attachedModules() {
|
|
37
|
-
return await (this.
|
|
37
|
+
return (await (this.downResolver.resolve() ?? [])).filter((module) => module.address !== this.address);
|
|
38
38
|
}
|
|
39
39
|
register(_module) {
|
|
40
40
|
throw new Error('Method not implemented.');
|
|
@@ -45,20 +45,33 @@ export class AbstractNode extends AbstractIndirectModule {
|
|
|
45
45
|
registeredModules() {
|
|
46
46
|
throw new Error('Method not implemented.');
|
|
47
47
|
}
|
|
48
|
-
async
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
48
|
+
async resolve(nameOrAddressOrFilter, options) {
|
|
49
|
+
//checking type of nameOrAddressOrFilter before calling other functions since TS seems
|
|
50
|
+
//to need help here narrowing before the call
|
|
51
|
+
if (typeof nameOrAddressOrFilter === 'string') {
|
|
52
|
+
switch (options?.visibility) {
|
|
53
|
+
case 'private': {
|
|
54
|
+
return await this.resolvePrivate(nameOrAddressOrFilter);
|
|
55
|
+
}
|
|
56
|
+
case 'all': {
|
|
57
|
+
return await this.resolveAll(nameOrAddressOrFilter);
|
|
58
|
+
}
|
|
59
|
+
default: {
|
|
60
|
+
return await super.resolve(nameOrAddressOrFilter, options);
|
|
61
|
+
}
|
|
58
62
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
switch (options?.visibility) {
|
|
66
|
+
case 'all': {
|
|
67
|
+
return await this.resolveAll(nameOrAddressOrFilter);
|
|
68
|
+
}
|
|
69
|
+
case 'private': {
|
|
70
|
+
return await this.resolvePrivate(nameOrAddressOrFilter);
|
|
71
|
+
}
|
|
72
|
+
default: {
|
|
73
|
+
return await super.resolve(nameOrAddressOrFilter, options);
|
|
74
|
+
}
|
|
62
75
|
}
|
|
63
76
|
}
|
|
64
77
|
}
|
|
@@ -74,12 +87,16 @@ export class AbstractNode extends AbstractIndirectModule {
|
|
|
74
87
|
const manifest = { ...(await super.manifestHandler()), schema: NodeManifestPayloadSchema };
|
|
75
88
|
const notThisModule = (module) => module.address !== this.address;
|
|
76
89
|
const toManifest = (module) => (isDirectModule(module) ? module.manifest() : ModuleWrapper.wrap(module, this.account).manifest());
|
|
90
|
+
const privateModulesList = await this.privateResolver.resolve();
|
|
77
91
|
const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest));
|
|
92
|
+
console.log(`manifestHandler:privateModules:${privateModulesList.length}`);
|
|
78
93
|
if (privateModules.length > 0) {
|
|
79
94
|
manifest.modules = manifest.modules ?? {};
|
|
80
95
|
manifest.modules.private = privateModules;
|
|
81
96
|
}
|
|
97
|
+
const publicModulesList = await this.downResolver.resolve();
|
|
82
98
|
const publicModules = await Promise.all((await this.downResolver.resolve()).filter(notThisModule).map(toManifest));
|
|
99
|
+
console.log(`manifestHandler:publicModules:${publicModulesList.length}`);
|
|
83
100
|
if (publicModules.length > 0) {
|
|
84
101
|
manifest.modules = manifest.modules ?? {};
|
|
85
102
|
manifest.modules.public = publicModules;
|
|
@@ -143,5 +160,30 @@ export class AbstractNode extends AbstractIndirectModule {
|
|
|
143
160
|
}
|
|
144
161
|
return (await this.bindQueryResult(queryPayload, resultPayloads, [queryAccount], errorPayloads))[0];
|
|
145
162
|
}
|
|
163
|
+
async resolveAll(nameOrAddressOrFilter, options) {
|
|
164
|
+
switch (typeof nameOrAddressOrFilter) {
|
|
165
|
+
case 'string': {
|
|
166
|
+
return (await this.resolvePrivate(nameOrAddressOrFilter, options)) ?? (await super.resolve(nameOrAddressOrFilter, options));
|
|
167
|
+
}
|
|
168
|
+
default: {
|
|
169
|
+
return [
|
|
170
|
+
...(await this.resolvePrivate(nameOrAddressOrFilter, options)),
|
|
171
|
+
...(await super.resolve(nameOrAddressOrFilter, options)),
|
|
172
|
+
].filter(duplicateModules);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
async resolvePrivate(nameOrAddressOrFilter, options) {
|
|
177
|
+
const direction = options?.direction ?? 'all';
|
|
178
|
+
const down = direction === 'down' || direction === 'all';
|
|
179
|
+
switch (typeof nameOrAddressOrFilter) {
|
|
180
|
+
case 'string': {
|
|
181
|
+
return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined;
|
|
182
|
+
}
|
|
183
|
+
default: {
|
|
184
|
+
return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
146
188
|
}
|
|
147
189
|
//# 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,EAAqB,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAuB,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAClH,OAAO,
|
|
1
|
+
{"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/MemoryNode.js
CHANGED
|
@@ -6,24 +6,31 @@ export class MemoryNode extends AbstractNode {
|
|
|
6
6
|
static configSchemas = [NodeConfigSchema];
|
|
7
7
|
registeredModuleMap = {};
|
|
8
8
|
async attach(nameOrAddress, external) {
|
|
9
|
+
await this.started('throw');
|
|
9
10
|
return (await this.attachUsingAddress(nameOrAddress, external)) ?? (await this.attachUsingName(nameOrAddress, external));
|
|
10
11
|
}
|
|
11
12
|
async describe() {
|
|
13
|
+
await this.started('throw');
|
|
12
14
|
return await super.describeHandler();
|
|
13
15
|
}
|
|
14
16
|
async detach(nameOrAddress) {
|
|
17
|
+
await this.started('throw');
|
|
15
18
|
return (await this.detachUsingAddress(nameOrAddress)) ?? (await this.detachUsingName(nameOrAddress));
|
|
16
19
|
}
|
|
17
20
|
async discover() {
|
|
21
|
+
await this.started('throw');
|
|
18
22
|
return await super.discoverHandler();
|
|
19
23
|
}
|
|
20
24
|
async manifest() {
|
|
25
|
+
await this.started('throw');
|
|
21
26
|
return await super.manifestHandler();
|
|
22
27
|
}
|
|
23
28
|
async moduleAddress() {
|
|
29
|
+
await this.started('throw');
|
|
24
30
|
return await super.moduleAddressHandler();
|
|
25
31
|
}
|
|
26
32
|
async register(module) {
|
|
33
|
+
await this.started('throw');
|
|
27
34
|
assertEx(!this.registeredModuleMap[module.address], `Module already registered at that address[${module.address}]`);
|
|
28
35
|
this.registeredModuleMap[module.address] = module;
|
|
29
36
|
const args = { module, name: module.config.name };
|
|
@@ -43,12 +50,16 @@ export class MemoryNode extends AbstractNode {
|
|
|
43
50
|
return super.subscribeHandler();
|
|
44
51
|
}
|
|
45
52
|
async unregister(module) {
|
|
53
|
+
await this.started('throw');
|
|
46
54
|
await this.detach(module.address);
|
|
47
55
|
delete this.registeredModuleMap[module.address];
|
|
48
56
|
const args = { module, name: module.config.name };
|
|
49
57
|
await this.emit('moduleUnregistered', args);
|
|
50
58
|
return this;
|
|
51
59
|
}
|
|
60
|
+
startHandler() {
|
|
61
|
+
return super.startHandler();
|
|
62
|
+
}
|
|
52
63
|
async attachUsingAddress(address, external) {
|
|
53
64
|
const existingModule = (await this.resolve({ address: [address] })).pop();
|
|
54
65
|
assertEx(!existingModule, `Module [${existingModule?.config.name ?? existingModule?.address}] already attached at address [${address}]`);
|
|
@@ -74,15 +85,19 @@ export class MemoryNode extends AbstractNode {
|
|
|
74
85
|
}));
|
|
75
86
|
};
|
|
76
87
|
const notificationList = await getModulesToNotifyAbout(module);
|
|
77
|
-
|
|
78
|
-
//give it inside access
|
|
88
|
+
//give it private access
|
|
79
89
|
module.upResolver.addResolver?.(this.privateResolver);
|
|
90
|
+
//give it public access
|
|
91
|
+
module.upResolver.addResolver?.(this.downResolver);
|
|
80
92
|
//give it outside access
|
|
81
93
|
module.upResolver.addResolver?.(this.upResolver);
|
|
82
94
|
if (external) {
|
|
83
95
|
//expose it externally
|
|
84
96
|
this.downResolver.addResolver(module.downResolver);
|
|
85
97
|
}
|
|
98
|
+
else {
|
|
99
|
+
this.privateResolver.addResolver(module.downResolver);
|
|
100
|
+
}
|
|
86
101
|
const args = { module, name: module.config.name };
|
|
87
102
|
await this.emit('moduleAttached', args);
|
|
88
103
|
if (isNodeModule(module)) {
|
|
@@ -113,7 +128,6 @@ export class MemoryNode extends AbstractNode {
|
|
|
113
128
|
if (!module) {
|
|
114
129
|
return;
|
|
115
130
|
}
|
|
116
|
-
this.privateResolver.removeResolver(module.downResolver);
|
|
117
131
|
//remove inside access
|
|
118
132
|
module.upResolver?.removeResolver?.(this.privateResolver);
|
|
119
133
|
//remove outside access
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-builder';
|
|
2
2
|
import { NodeManifestPayload } from '@xyo-network/manifest-model';
|
|
3
3
|
import { AbstractIndirectModule, CompositeModuleResolver } from '@xyo-network/module-abstract';
|
|
4
|
-
import { Module, ModuleConfig, ModuleFilter, ModuleQueryResult } from '@xyo-network/module-model';
|
|
4
|
+
import { Module, ModuleConfig, ModuleFilter, ModuleFilterOptions, ModuleQueryResult } from '@xyo-network/module-model';
|
|
5
5
|
import { IndirectNodeModule, NodeModuleEventData, NodeModuleParams, NodeQueryBase } from '@xyo-network/node-model';
|
|
6
6
|
import { Payload } from '@xyo-network/payload-model';
|
|
7
7
|
import { Promisable } from '@xyo-network/promise';
|
|
@@ -18,12 +18,14 @@ export declare abstract class AbstractNode<TParams extends NodeModuleParams = No
|
|
|
18
18
|
register(_module: Module): Promisable<void>;
|
|
19
19
|
registered(): Promisable<string[]>;
|
|
20
20
|
registeredModules(): Promisable<Module[]>;
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
resolve<TModule extends Module = Module>(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<TModule[]>;
|
|
22
|
+
resolve<TModule extends Module = Module>(nameOrAddress: string, options?: ModuleFilterOptions): Promise<TModule | undefined>;
|
|
23
23
|
unregister(_module: Module): Promisable<this>;
|
|
24
24
|
protected discoverHandler(): Promise<Payload[]>;
|
|
25
25
|
protected manifestHandler(): Promise<NodeManifestPayload>;
|
|
26
26
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
|
|
27
|
+
private resolveAll;
|
|
28
|
+
private resolvePrivate;
|
|
27
29
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<string | undefined>;
|
|
28
30
|
abstract detach(nameOrAddress: string): Promisable<string | undefined>;
|
|
29
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAA;AAE/F,OAAO,EAAE,mBAAmB,EAA6B,MAAM,6BAA6B,CAAA;AAE5F,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAsB,MAAM,8BAA8B,CAAA;AAClH,OAAO,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAA;AAE/F,OAAO,EAAE,mBAAmB,EAA6B,MAAM,6BAA6B,CAAA;AAE5F,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAsB,MAAM,8BAA8B,CAAA;AAClH,OAAO,EAGL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,kBAAkB,EAKlB,mBAAmB,EACnB,gBAAgB,EAEhB,aAAa,EAEd,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAe,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,8BAAsB,YAAY,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CAClJ,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAE/E,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;IAI1C,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;IAI1B,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAClH,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAkC3I,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;cAIpB,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;cASrC,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;cAyB/C,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;YA2Df,UAAU;YAmBV,cAAc;IAkB5B,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"}
|
|
@@ -19,6 +19,7 @@ export declare class MemoryNode<TParams extends MemoryNodeParams = MemoryNodePar
|
|
|
19
19
|
registeredModules(): Module[];
|
|
20
20
|
subscribe(_queryAccount?: AccountInstance): void;
|
|
21
21
|
unregister(module: Module): Promise<this>;
|
|
22
|
+
protected startHandler(): Promise<boolean>;
|
|
22
23
|
private attachUsingAddress;
|
|
23
24
|
private attachUsingName;
|
|
24
25
|
private detachUsingAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAiB,MAAM,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAClI,OAAO,EACL,gBAAgB,EAEhB,UAAU,EAGV,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,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,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEhD,OAAgB,aAAa,8BAAqB;IAElD,OAAO,CAAC,mBAAmB,CAA6B;IAEzC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAiB,MAAM,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAClI,OAAO,EACL,gBAAgB,EAEhB,UAAU,EAGV,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,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,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEhD,OAAgB,aAAa,8BAAqB;IAElD,OAAO,CAAC,mBAAmB,CAA6B;IAEzC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;IAKzD,QAAQ,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAKpC,MAAM,CAAC,aAAa,EAAE,MAAM;IAKrC,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAK9B,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAKxC,aAAa,IAAI,OAAO,CAAC,0BAA0B,EAAE,CAAC;IAK7C,QAAQ,CAAC,MAAM,EAAE,MAAM;IAQ7B,UAAU;IAMV,iBAAiB;IAM1B,SAAS,CAAC,aAAa,CAAC,EAAE,eAAe;IAI1B,UAAU,CAAC,MAAM,EAAE,MAAM;cASrB,YAAY;YAIjB,kBAAkB;YAiFlB,eAAe;YAOf,kBAAkB;YA8ClB,eAAe;IAQ7B,OAAO,CAAC,qBAAqB;CAM9B"}
|
package/package.json
CHANGED
|
@@ -11,20 +11,20 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.9.3",
|
|
14
|
-
"@xyo-network/account": "^2.65.
|
|
15
|
-
"@xyo-network/account-model": "^2.65.
|
|
16
|
-
"@xyo-network/address-payload-plugin": "^2.65.
|
|
17
|
-
"@xyo-network/boundwitness-builder": "^2.65.
|
|
18
|
-
"@xyo-network/error": "^2.65.
|
|
19
|
-
"@xyo-network/manifest-model": "^2.65.
|
|
20
|
-
"@xyo-network/module": "^2.65.
|
|
21
|
-
"@xyo-network/module-abstract": "^2.65.
|
|
22
|
-
"@xyo-network/module-model": "^2.65.
|
|
23
|
-
"@xyo-network/node-model": "^2.65.
|
|
24
|
-
"@xyo-network/node-wrapper": "^2.65.
|
|
25
|
-
"@xyo-network/payload-builder": "^2.65.
|
|
26
|
-
"@xyo-network/payload-model": "^2.65.
|
|
27
|
-
"@xyo-network/promise": "^2.65.
|
|
14
|
+
"@xyo-network/account": "^2.65.6",
|
|
15
|
+
"@xyo-network/account-model": "^2.65.6",
|
|
16
|
+
"@xyo-network/address-payload-plugin": "^2.65.6",
|
|
17
|
+
"@xyo-network/boundwitness-builder": "^2.65.6",
|
|
18
|
+
"@xyo-network/error": "^2.65.6",
|
|
19
|
+
"@xyo-network/manifest-model": "^2.65.6",
|
|
20
|
+
"@xyo-network/module": "^2.65.6",
|
|
21
|
+
"@xyo-network/module-abstract": "^2.65.6",
|
|
22
|
+
"@xyo-network/module-model": "^2.65.6",
|
|
23
|
+
"@xyo-network/node-model": "^2.65.6",
|
|
24
|
+
"@xyo-network/node-wrapper": "^2.65.6",
|
|
25
|
+
"@xyo-network/payload-builder": "^2.65.6",
|
|
26
|
+
"@xyo-network/payload-model": "^2.65.6",
|
|
27
|
+
"@xyo-network/promise": "^2.65.6",
|
|
28
28
|
"lodash": "^4.17.21"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
},
|
|
67
67
|
"sideEffects": false,
|
|
68
68
|
"types": "dist/types/index.d.ts",
|
|
69
|
-
"version": "2.65.
|
|
69
|
+
"version": "2.65.6"
|
|
70
70
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -6,7 +6,15 @@ import { handleErrorAsync } from '@xyo-network/error'
|
|
|
6
6
|
import { NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'
|
|
7
7
|
import { ModuleWrapper } from '@xyo-network/module'
|
|
8
8
|
import { AbstractIndirectModule, CompositeModuleResolver, ModuleErrorBuilder } from '@xyo-network/module-abstract'
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
duplicateModules,
|
|
11
|
+
isDirectModule,
|
|
12
|
+
Module,
|
|
13
|
+
ModuleConfig,
|
|
14
|
+
ModuleFilter,
|
|
15
|
+
ModuleFilterOptions,
|
|
16
|
+
ModuleQueryResult,
|
|
17
|
+
} from '@xyo-network/module-model'
|
|
10
18
|
import {
|
|
11
19
|
IndirectNodeModule,
|
|
12
20
|
NodeAttachedQuerySchema,
|
|
@@ -59,7 +67,7 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
|
|
|
59
67
|
}
|
|
60
68
|
|
|
61
69
|
async attachedModules(): Promise<Module[]> {
|
|
62
|
-
return await (this.
|
|
70
|
+
return (await (this.downResolver.resolve() ?? [])).filter((module) => module.address !== this.address)
|
|
63
71
|
}
|
|
64
72
|
|
|
65
73
|
register(_module: Module): Promisable<void> {
|
|
@@ -74,24 +82,37 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
|
|
|
74
82
|
throw new Error('Method not implemented.')
|
|
75
83
|
}
|
|
76
84
|
|
|
77
|
-
async
|
|
78
|
-
async
|
|
79
|
-
async
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
override async resolve<TModule extends Module = Module>(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<TModule[]>
|
|
86
|
+
override async resolve<TModule extends Module = Module>(nameOrAddress: string, options?: ModuleFilterOptions): Promise<TModule | undefined>
|
|
87
|
+
override async resolve<TModule extends Module = Module>(
|
|
88
|
+
nameOrAddressOrFilter?: ModuleFilter | string,
|
|
89
|
+
options?: ModuleFilterOptions,
|
|
90
|
+
): Promise<TModule | TModule[] | undefined> {
|
|
91
|
+
//checking type of nameOrAddressOrFilter before calling other functions since TS seems
|
|
92
|
+
//to need help here narrowing before the call
|
|
93
|
+
if (typeof nameOrAddressOrFilter === 'string') {
|
|
94
|
+
switch (options?.visibility) {
|
|
95
|
+
case 'private': {
|
|
96
|
+
return await this.resolvePrivate<TModule>(nameOrAddressOrFilter)
|
|
97
|
+
}
|
|
98
|
+
case 'all': {
|
|
99
|
+
return await this.resolveAll<TModule>(nameOrAddressOrFilter)
|
|
100
|
+
}
|
|
101
|
+
default: {
|
|
102
|
+
return await super.resolve<TModule>(nameOrAddressOrFilter, options)
|
|
103
|
+
}
|
|
91
104
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
105
|
+
} else {
|
|
106
|
+
switch (options?.visibility) {
|
|
107
|
+
case 'all': {
|
|
108
|
+
return await this.resolveAll<TModule>(nameOrAddressOrFilter)
|
|
109
|
+
}
|
|
110
|
+
case 'private': {
|
|
111
|
+
return await this.resolvePrivate<TModule>(nameOrAddressOrFilter)
|
|
112
|
+
}
|
|
113
|
+
default: {
|
|
114
|
+
return await super.resolve<TModule>(nameOrAddressOrFilter, options)
|
|
115
|
+
}
|
|
95
116
|
}
|
|
96
117
|
}
|
|
97
118
|
}
|
|
@@ -115,13 +136,17 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
|
|
|
115
136
|
const notThisModule = (module: Module) => module.address !== this.address
|
|
116
137
|
const toManifest = (module: Module) => (isDirectModule(module) ? module.manifest() : ModuleWrapper.wrap(module, this.account).manifest())
|
|
117
138
|
|
|
139
|
+
const privateModulesList = await this.privateResolver.resolve()
|
|
118
140
|
const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))
|
|
141
|
+
console.log(`manifestHandler:privateModules:${privateModulesList.length}`)
|
|
119
142
|
if (privateModules.length > 0) {
|
|
120
143
|
manifest.modules = manifest.modules ?? {}
|
|
121
144
|
manifest.modules.private = privateModules
|
|
122
145
|
}
|
|
123
146
|
|
|
147
|
+
const publicModulesList = await this.downResolver.resolve()
|
|
124
148
|
const publicModules = await Promise.all((await this.downResolver.resolve()).filter(notThisModule).map(toManifest))
|
|
149
|
+
console.log(`manifestHandler:publicModules:${publicModulesList.length}`)
|
|
125
150
|
if (publicModules.length > 0) {
|
|
126
151
|
manifest.modules = manifest.modules ?? {}
|
|
127
152
|
manifest.modules.public = publicModules
|
|
@@ -193,6 +218,43 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
|
|
|
193
218
|
return (await this.bindQueryResult(queryPayload, resultPayloads, [queryAccount], errorPayloads))[0]
|
|
194
219
|
}
|
|
195
220
|
|
|
221
|
+
private async resolveAll<TModule extends Module = Module>(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<TModule[]>
|
|
222
|
+
private async resolveAll<TModule extends Module = Module>(nameOrAddress: string, options?: ModuleFilterOptions): Promise<TModule | undefined>
|
|
223
|
+
private async resolveAll<TModule extends Module = Module>(
|
|
224
|
+
nameOrAddressOrFilter?: ModuleFilter | string,
|
|
225
|
+
options?: ModuleFilterOptions,
|
|
226
|
+
): Promise<TModule | TModule[] | undefined> {
|
|
227
|
+
switch (typeof nameOrAddressOrFilter) {
|
|
228
|
+
case 'string': {
|
|
229
|
+
return (await this.resolvePrivate<TModule>(nameOrAddressOrFilter, options)) ?? (await super.resolve<TModule>(nameOrAddressOrFilter, options))
|
|
230
|
+
}
|
|
231
|
+
default: {
|
|
232
|
+
return [
|
|
233
|
+
...(await this.resolvePrivate<TModule>(nameOrAddressOrFilter, options)),
|
|
234
|
+
...(await super.resolve<TModule>(nameOrAddressOrFilter, options)),
|
|
235
|
+
].filter(duplicateModules)
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
private async resolvePrivate<TModule extends Module = Module>(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<TModule[]>
|
|
241
|
+
private async resolvePrivate<TModule extends Module = Module>(nameOrAddress: string, options?: ModuleFilterOptions): Promise<TModule | undefined>
|
|
242
|
+
private async resolvePrivate<TModule extends Module = Module>(
|
|
243
|
+
nameOrAddressOrFilter?: ModuleFilter | string,
|
|
244
|
+
options?: ModuleFilterOptions,
|
|
245
|
+
): Promise<TModule | TModule[] | undefined> {
|
|
246
|
+
const direction = options?.direction ?? 'all'
|
|
247
|
+
const down = direction === 'down' || direction === 'all'
|
|
248
|
+
switch (typeof nameOrAddressOrFilter) {
|
|
249
|
+
case 'string': {
|
|
250
|
+
return down ? await this.privateResolver.resolve<TModule>(nameOrAddressOrFilter) : undefined
|
|
251
|
+
}
|
|
252
|
+
default: {
|
|
253
|
+
return down ? await this.privateResolver.resolve<TModule>(nameOrAddressOrFilter) : undefined
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
196
258
|
abstract attach(nameOrAddress: string, external?: boolean): Promisable<string | undefined>
|
|
197
259
|
abstract detach(nameOrAddress: string): Promisable<string | undefined>
|
|
198
260
|
}
|
package/src/MemoryNode.ts
CHANGED
|
@@ -27,30 +27,37 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
27
27
|
private registeredModuleMap: Record<string, Module> = {}
|
|
28
28
|
|
|
29
29
|
override async attach(nameOrAddress: string, external?: boolean) {
|
|
30
|
+
await this.started('throw')
|
|
30
31
|
return (await this.attachUsingAddress(nameOrAddress, external)) ?? (await this.attachUsingName(nameOrAddress, external))
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
async describe(): Promise<ModuleDescriptionPayload> {
|
|
35
|
+
await this.started('throw')
|
|
34
36
|
return await super.describeHandler()
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
override async detach(nameOrAddress: string) {
|
|
40
|
+
await this.started('throw')
|
|
38
41
|
return (await this.detachUsingAddress(nameOrAddress)) ?? (await this.detachUsingName(nameOrAddress))
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
async discover(): Promise<Payload[]> {
|
|
45
|
+
await this.started('throw')
|
|
42
46
|
return await super.discoverHandler()
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
async manifest(): Promise<NodeManifestPayload> {
|
|
50
|
+
await this.started('throw')
|
|
46
51
|
return await super.manifestHandler()
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
async moduleAddress(): Promise<AddressPreviousHashPayload[]> {
|
|
55
|
+
await this.started('throw')
|
|
50
56
|
return await super.moduleAddressHandler()
|
|
51
57
|
}
|
|
52
58
|
|
|
53
59
|
override async register(module: Module) {
|
|
60
|
+
await this.started('throw')
|
|
54
61
|
assertEx(!this.registeredModuleMap[module.address], `Module already registered at that address[${module.address}]`)
|
|
55
62
|
this.registeredModuleMap[module.address] = module
|
|
56
63
|
const args = { module, name: module.config.name }
|
|
@@ -74,6 +81,7 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
74
81
|
}
|
|
75
82
|
|
|
76
83
|
override async unregister(module: Module) {
|
|
84
|
+
await this.started('throw')
|
|
77
85
|
await this.detach(module.address)
|
|
78
86
|
delete this.registeredModuleMap[module.address]
|
|
79
87
|
const args = { module, name: module.config.name }
|
|
@@ -81,6 +89,10 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
81
89
|
return this
|
|
82
90
|
}
|
|
83
91
|
|
|
92
|
+
protected override startHandler() {
|
|
93
|
+
return super.startHandler()
|
|
94
|
+
}
|
|
95
|
+
|
|
84
96
|
private async attachUsingAddress(address: string, external?: boolean) {
|
|
85
97
|
const existingModule = (await this.resolve({ address: [address] })).pop()
|
|
86
98
|
assertEx(!existingModule, `Module [${existingModule?.config.name ?? existingModule?.address}] already attached at address [${address}]`)
|
|
@@ -116,17 +128,20 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
116
128
|
|
|
117
129
|
const notificationList = await getModulesToNotifyAbout(module)
|
|
118
130
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
//give it inside access
|
|
131
|
+
//give it private access
|
|
122
132
|
module.upResolver.addResolver?.(this.privateResolver)
|
|
123
133
|
|
|
134
|
+
//give it public access
|
|
135
|
+
module.upResolver.addResolver?.(this.downResolver)
|
|
136
|
+
|
|
124
137
|
//give it outside access
|
|
125
138
|
module.upResolver.addResolver?.(this.upResolver)
|
|
126
139
|
|
|
127
140
|
if (external) {
|
|
128
141
|
//expose it externally
|
|
129
142
|
this.downResolver.addResolver(module.downResolver)
|
|
143
|
+
} else {
|
|
144
|
+
this.privateResolver.addResolver(module.downResolver)
|
|
130
145
|
}
|
|
131
146
|
|
|
132
147
|
const args = { module, name: module.config.name }
|
|
@@ -173,8 +188,6 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
|
|
|
173
188
|
return
|
|
174
189
|
}
|
|
175
190
|
|
|
176
|
-
this.privateResolver.removeResolver(module.downResolver)
|
|
177
|
-
|
|
178
191
|
//remove inside access
|
|
179
192
|
module.upResolver?.removeResolver?.(this.privateResolver)
|
|
180
193
|
|