@xyo-network/node 2.48.0 → 2.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AbstractNode.js +10 -11
- package/dist/cjs/AbstractNode.js.map +1 -1
- package/dist/cjs/MemoryNode.js +21 -23
- package/dist/cjs/MemoryNode.js.map +1 -1
- package/dist/cjs/NodeWrapper.js +0 -6
- package/dist/cjs/NodeWrapper.js.map +1 -1
- package/dist/docs.json +7958 -7351
- package/dist/esm/AbstractNode.js +6 -6
- package/dist/esm/AbstractNode.js.map +1 -1
- package/dist/esm/MemoryNode.js +21 -23
- package/dist/esm/MemoryNode.js.map +1 -1
- package/dist/esm/NodeWrapper.js +0 -6
- package/dist/esm/NodeWrapper.js.map +1 -1
- package/dist/types/AbstractNode.d.ts +8 -9
- 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/dist/types/NodeWrapper.d.ts +1 -13
- package/dist/types/NodeWrapper.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/AbstractNode.ts +9 -13
- package/src/MemoryNode.ts +22 -24
- package/src/NodeWrapper.ts +1 -10
package/dist/esm/AbstractNode.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { Account } from '@xyo-network/account';
|
|
3
3
|
import { AddressSchema } from '@xyo-network/address-payload-plugin';
|
|
4
|
-
import { AbstractModule, CompositeModuleResolver, ModuleQueriedEvent, QueryBoundWitnessWrapper, XyoErrorBuilder, } from '@xyo-network/module';
|
|
4
|
+
import { AbstractModule, CompositeModuleResolver, duplicateModules, ModuleQueriedEvent, QueryBoundWitnessWrapper, XyoErrorBuilder, } from '@xyo-network/module';
|
|
5
5
|
import { XyoPayloadBuilder } from '@xyo-network/payload-builder';
|
|
6
6
|
import { NodeConfigSchema } from './Config';
|
|
7
7
|
import { ModuleAttachedEvent, ModuleDetachedEvent, ModuleRegisteredEvent, } from './Events';
|
|
8
8
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeRegisteredQuerySchema } from './Queries';
|
|
9
9
|
export class AbstractNode extends AbstractModule {
|
|
10
10
|
static configSchema = NodeConfigSchema;
|
|
11
|
-
internalResolver = new CompositeModuleResolver();
|
|
12
11
|
moduleAttachedEventListeners = [];
|
|
13
12
|
moduleDetachedEventListeners = [];
|
|
14
13
|
moduleQueriedEventListeners = [];
|
|
15
14
|
moduleRegisteredEventListeners = [];
|
|
15
|
+
privateResolver = new CompositeModuleResolver();
|
|
16
16
|
isNode = true;
|
|
17
17
|
constructor(params) {
|
|
18
18
|
super(params);
|
|
@@ -33,7 +33,7 @@ export class AbstractNode extends AbstractModule {
|
|
|
33
33
|
return (await this.attachedModules()).map((module) => module.address);
|
|
34
34
|
}
|
|
35
35
|
async attachedModules() {
|
|
36
|
-
return await (this.
|
|
36
|
+
return await (this.privateResolver.resolve() ?? []);
|
|
37
37
|
}
|
|
38
38
|
async discover() {
|
|
39
39
|
const childMods = await this.attachedModules();
|
|
@@ -108,9 +108,6 @@ export class AbstractNode extends AbstractModule {
|
|
|
108
108
|
registeredModules() {
|
|
109
109
|
throw new Error('Method not implemented.');
|
|
110
110
|
}
|
|
111
|
-
async resolve(filter) {
|
|
112
|
-
return (await this.internalResolver.resolve(filter)) ?? super.resolve(filter) ?? [];
|
|
113
|
-
}
|
|
114
111
|
/**
|
|
115
112
|
* Resolves the supplied filter into wrapped modules
|
|
116
113
|
* @example <caption>Example using ArchivistWrapper</caption>
|
|
@@ -132,6 +129,9 @@ export class AbstractNode extends AbstractModule {
|
|
|
132
129
|
unregister(_module) {
|
|
133
130
|
throw new Error('Method not implemented.');
|
|
134
131
|
}
|
|
132
|
+
async resolve(filter) {
|
|
133
|
+
return [...(await this.privateResolver.resolve(filter)), ...(await super.resolve(filter))].filter(duplicateModules);
|
|
134
|
+
}
|
|
135
135
|
}
|
|
136
136
|
/** @deprecated use AbstractNode instead */
|
|
137
137
|
export class XyoNode extends AbstractNode {
|
|
@@ -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,EACL,cAAc,EACd,uBAAuB,
|
|
1
|
+
{"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/MemoryNode.js
CHANGED
|
@@ -6,60 +6,58 @@ import { AbstractNode } from './AbstractNode';
|
|
|
6
6
|
import { NodeConfigSchema } from './Config';
|
|
7
7
|
export class MemoryNode extends AbstractNode {
|
|
8
8
|
static configSchema = NodeConfigSchema;
|
|
9
|
-
registeredModuleMap =
|
|
9
|
+
registeredModuleMap = {};
|
|
10
10
|
static async create(params) {
|
|
11
11
|
return (await super.create(params));
|
|
12
12
|
}
|
|
13
13
|
async attach(address, external) {
|
|
14
14
|
const existingModule = (await this.resolve({ address: [address] })).pop();
|
|
15
15
|
assertEx(!existingModule, `Module [${existingModule?.config.name ?? existingModule?.address}] already attached at address [${address}]`);
|
|
16
|
-
const module = assertEx(this.registeredModuleMap
|
|
17
|
-
this.
|
|
16
|
+
const module = assertEx(this.registeredModuleMap[address], 'No module registered at that address');
|
|
17
|
+
this.privateResolver.addResolver(module.downResolver);
|
|
18
18
|
//give it inside access
|
|
19
|
-
module.
|
|
19
|
+
module.upResolver.addResolver?.(this.privateResolver);
|
|
20
20
|
//give it outside access
|
|
21
|
-
|
|
22
|
-
module.parentResolver?.addResolver?.(this.parentResolver);
|
|
23
|
-
}
|
|
21
|
+
module.upResolver.addResolver?.(this.upResolver);
|
|
24
22
|
if (external) {
|
|
25
23
|
//expose it externally
|
|
26
|
-
this.
|
|
24
|
+
this.downResolver.addResolver(module.downResolver);
|
|
27
25
|
}
|
|
28
26
|
const args = { module, name: module.config.name };
|
|
29
27
|
this.moduleAttachedEventListeners?.map((listener) => listener(args));
|
|
30
28
|
}
|
|
31
29
|
detach(address) {
|
|
32
|
-
const module = assertEx(this.registeredModuleMap
|
|
33
|
-
this.
|
|
34
|
-
//remove outside access
|
|
35
|
-
module.parentResolver?.removeResolver?.(this.parentResolver);
|
|
30
|
+
const module = assertEx(this.registeredModuleMap[address], 'No module found at that address');
|
|
31
|
+
this.privateResolver.removeResolver(module.downResolver);
|
|
36
32
|
//remove inside access
|
|
37
|
-
module.
|
|
33
|
+
module.upResolver?.removeResolver?.(this.privateResolver);
|
|
34
|
+
//remove outside access
|
|
35
|
+
module.upResolver?.removeResolver?.(this.upResolver);
|
|
38
36
|
//remove external exposure
|
|
39
|
-
this.
|
|
37
|
+
this.downResolver.removeResolver(module.downResolver);
|
|
40
38
|
const args = { module, name: module.config.name };
|
|
41
39
|
this.moduleDetachedEventListeners?.map((listener) => listener(args));
|
|
42
40
|
}
|
|
43
41
|
register(module) {
|
|
44
|
-
assertEx(!this.registeredModuleMap
|
|
45
|
-
this.registeredModuleMap
|
|
42
|
+
assertEx(!this.registeredModuleMap[module.address], `Module already registered at that address[${module.address}]`);
|
|
43
|
+
this.registeredModuleMap[module.address] = module;
|
|
46
44
|
return this;
|
|
47
45
|
}
|
|
48
46
|
registered() {
|
|
49
|
-
return
|
|
47
|
+
return Object.keys(this.registeredModuleMap).map((key) => {
|
|
50
48
|
return key;
|
|
51
49
|
});
|
|
52
50
|
}
|
|
53
51
|
registeredModules() {
|
|
54
|
-
return
|
|
52
|
+
return Object.values(this.registeredModuleMap).map((value) => {
|
|
55
53
|
return value;
|
|
56
54
|
});
|
|
57
55
|
}
|
|
58
56
|
async resolve(filter) {
|
|
59
|
-
const internal = this.
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
const resolved = await Promise.allSettled([internal,
|
|
57
|
+
const internal = this.privateResolver.resolve(filter);
|
|
58
|
+
const up = this.upResolver?.resolve(filter) || [];
|
|
59
|
+
const down = this.downResolver?.resolve(filter) || [];
|
|
60
|
+
const resolved = await Promise.allSettled([internal, up, down]);
|
|
63
61
|
const errors = resolved.filter(rejected).map((r) => Error(r.reason));
|
|
64
62
|
if (errors.length) {
|
|
65
63
|
this.logger?.error(`Resolve Errors: ${JSON.stringify(errors, null, 2)}`);
|
|
@@ -73,7 +71,7 @@ export class MemoryNode extends AbstractNode {
|
|
|
73
71
|
}
|
|
74
72
|
unregister(module) {
|
|
75
73
|
this.detach(module.address);
|
|
76
|
-
this.registeredModuleMap
|
|
74
|
+
delete this.registeredModuleMap[module.address];
|
|
77
75
|
return this;
|
|
78
76
|
}
|
|
79
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAwB,MAAM,qBAAqB,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAc,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAIvD,MAAM,OAAO,UAAoD,SAAQ,YAAqB;IAC5F,MAAM,CAAU,YAAY,GAAG,gBAAgB,CAAA;IAEvC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/NodeWrapper.js
CHANGED
|
@@ -12,9 +12,6 @@ export class NodeWrapper extends ModuleWrapper {
|
|
|
12
12
|
this._archivist = this._archivist ?? new ArchivistWrapper(this.module);
|
|
13
13
|
return this._archivist;
|
|
14
14
|
}
|
|
15
|
-
get parentResolver() {
|
|
16
|
-
return this.module.parentResolver;
|
|
17
|
-
}
|
|
18
15
|
static tryWrap(module) {
|
|
19
16
|
const missingRequiredQueries = this.missingRequiredQueries(module);
|
|
20
17
|
if (missingRequiredQueries.length > 0) {
|
|
@@ -45,8 +42,5 @@ export class NodeWrapper extends ModuleWrapper {
|
|
|
45
42
|
const payloads = (await this.sendQuery(queryPayload)).filter(isXyoPayloadOfSchemaType(AddressSchema));
|
|
46
43
|
return payloads.map((p) => p.address);
|
|
47
44
|
}
|
|
48
|
-
resolve(filter) {
|
|
49
|
-
return this.module.resolve(filter);
|
|
50
|
-
}
|
|
51
45
|
}
|
|
52
46
|
//# sourceMappingURL=NodeWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeWrapper.js","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAkB,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"NodeWrapper.js","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,25 +4,24 @@ import { Promisable } from '@xyo-network/promise';
|
|
|
4
4
|
import { NodeConfig } from './Config';
|
|
5
5
|
import { ModuleAttachedEvent, ModuleAttachedEventArgs, ModuleAttachedEventEmitter, ModuleDetachedEvent, ModuleDetachedEventArgs, ModuleDetachedEventEmitter, ModuleRegisteredEvent, ModuleRegisteredEventArgs, ModuleRegisteredEventEmitter } from './Events';
|
|
6
6
|
import { NodeModule } from './Node';
|
|
7
|
-
export type AbstractNodeParams<TConfig extends NodeConfig = NodeConfig> = ModuleParams<TConfig
|
|
8
|
-
internalResolver?: CompositeModuleResolver;
|
|
9
|
-
}>;
|
|
7
|
+
export type AbstractNodeParams<TConfig extends NodeConfig = NodeConfig> = ModuleParams<TConfig>;
|
|
10
8
|
export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> extends AbstractModule<TConfig> implements NodeModule, ModuleAttachedEventEmitter, ModuleDetachedEventEmitter, ModuleRegisteredEventEmitter, ModuleQueriedEventEmitter {
|
|
11
9
|
static readonly configSchema: "network.xyo.node.config";
|
|
12
|
-
protected readonly
|
|
10
|
+
protected readonly moduleAttachedEventListeners: EventListener<ModuleAttachedEventArgs>[];
|
|
11
|
+
protected readonly moduleDetachedEventListeners: EventListener<ModuleDetachedEventArgs>[];
|
|
12
|
+
protected readonly moduleQueriedEventListeners: EventListener<ModuleQueriedEventArgs>[];
|
|
13
|
+
protected readonly moduleRegisteredEventListeners: EventListener<ModuleRegisteredEventArgs>[];
|
|
14
|
+
protected readonly privateResolver: CompositeModuleResolver<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
13
15
|
name?: string | undefined;
|
|
14
16
|
security?: {
|
|
15
17
|
allowAnonymous?: boolean | undefined;
|
|
16
18
|
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
17
19
|
disallowed?: Record<string, string[]> | undefined;
|
|
18
20
|
} | undefined;
|
|
21
|
+
storeQueries?: boolean | undefined;
|
|
19
22
|
} & {
|
|
20
23
|
schema: string;
|
|
21
24
|
}>>;
|
|
22
|
-
protected readonly moduleAttachedEventListeners: EventListener<ModuleAttachedEventArgs>[];
|
|
23
|
-
protected readonly moduleDetachedEventListeners: EventListener<ModuleDetachedEventArgs>[];
|
|
24
|
-
protected readonly moduleQueriedEventListeners: EventListener<ModuleQueriedEventArgs>[];
|
|
25
|
-
protected readonly moduleRegisteredEventListeners: EventListener<ModuleRegisteredEventArgs>[];
|
|
26
25
|
private readonly isNode;
|
|
27
26
|
protected constructor(params: AbstractNodeParams<TConfig>);
|
|
28
27
|
get isModuleResolver(): boolean;
|
|
@@ -40,7 +39,6 @@ export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConf
|
|
|
40
39
|
register(_module: Module): Promisable<this>;
|
|
41
40
|
registered(): Promisable<string[]>;
|
|
42
41
|
registeredModules(): Promisable<Module[]>;
|
|
43
|
-
resolve(filter?: ModuleFilter): Promise<Module[]>;
|
|
44
42
|
/**
|
|
45
43
|
* Resolves the supplied filter into wrapped modules
|
|
46
44
|
* @example <caption>Example using ArchivistWrapper</caption>
|
|
@@ -55,6 +53,7 @@ export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConf
|
|
|
55
53
|
resolveWrapped<T extends ModuleWrapper<Module> = ModuleWrapper<Module>>(wrapper: ModuleConstructable<Module, T>, filter?: ModuleFilter): Promise<T[]>;
|
|
56
54
|
start(): Promise<this>;
|
|
57
55
|
unregister(_module: Module): Promisable<this>;
|
|
56
|
+
protected resolve(filter?: ModuleFilter): Promise<Module[]>;
|
|
58
57
|
abstract attach(address: string, external?: boolean): Promisable<void>;
|
|
59
58
|
abstract detach(address: string): Promisable<void>;
|
|
60
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,uBAAuB,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig> extends
|
|
|
17
17
|
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
18
18
|
disallowed?: Record<string, string[]> | undefined;
|
|
19
19
|
} | undefined;
|
|
20
|
+
storeQueries?: boolean | undefined;
|
|
20
21
|
} & {
|
|
21
22
|
schema: string;
|
|
22
23
|
}>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AAEvD,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAEnG,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,YAAY,CAAC,OAAO,CAAC;IAC5F,OAAgB,YAAY,4BAAmB;IAE/C,OAAO,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AAEvD,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAEnG,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,YAAY,CAAC,OAAO,CAAC;IAC5F,OAAgB,YAAY,4BAAmB;IAE/C,OAAO,CAAC,mBAAmB,CAA6B;WAElC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAItE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;IAsBhD,MAAM,CAAC,OAAO,EAAE,MAAM;IAkBtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAMvB,UAAU;IAMV,iBAAiB;;;;;;;;;;;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBvD,UAAU,CAAC,MAAM,EAAE,MAAM;CAKnC"}
|
|
@@ -1,27 +1,15 @@
|
|
|
1
1
|
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
|
|
2
|
-
import { Module,
|
|
3
|
-
import { Promisable } from '@xyo-network/promise';
|
|
2
|
+
import { Module, ModuleWrapper } from '@xyo-network/module';
|
|
4
3
|
import { NodeModule } from './Node';
|
|
5
4
|
export declare class NodeWrapper<TModule extends NodeModule = NodeModule> extends ModuleWrapper<TModule> implements NodeModule {
|
|
6
5
|
static requiredQueries: string[];
|
|
7
6
|
private _archivist?;
|
|
8
7
|
get archivist(): ArchivistWrapper;
|
|
9
|
-
get parentResolver(): import("@xyo-network/module").ModuleResolver<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
10
|
-
name?: string | undefined;
|
|
11
|
-
security?: {
|
|
12
|
-
allowAnonymous?: boolean | undefined;
|
|
13
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
14
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
15
|
-
} | undefined;
|
|
16
|
-
} & {
|
|
17
|
-
schema: string;
|
|
18
|
-
}>> | undefined;
|
|
19
8
|
static tryWrap(module: Module): NodeWrapper | undefined;
|
|
20
9
|
static wrap(module: Module): NodeWrapper;
|
|
21
10
|
attach(address: string, external?: boolean): Promise<void>;
|
|
22
11
|
attached(): Promise<string[]>;
|
|
23
12
|
detach(address: string): Promise<void>;
|
|
24
13
|
registered(): Promise<string[]>;
|
|
25
|
-
resolve(filter?: ModuleFilter): Promisable<Module[]>;
|
|
26
14
|
}
|
|
27
15
|
//# sourceMappingURL=NodeWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeWrapper.d.ts","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"NodeWrapper.d.ts","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAI3D,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAYnC,qBAAa,WAAW,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,aAAa,CAAC,OAAO,CAAE,YAAW,UAAU;IACpH,OAAgB,eAAe,WAA+D;IAE9F,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,IAAI,SAAS,qBAGZ;WAEe,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;WAShD,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAI3C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM7B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAKtC"}
|
package/package.json
CHANGED
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
"@xylabs/assert": "^2.7.4",
|
|
14
14
|
"@xylabs/exists": "^2.7.4",
|
|
15
15
|
"@xylabs/promise": "^2.7.4",
|
|
16
|
-
"@xyo-network/account": "^2.
|
|
17
|
-
"@xyo-network/address-payload-plugin": "^2.
|
|
18
|
-
"@xyo-network/archivist-wrapper": "^2.
|
|
19
|
-
"@xyo-network/module": "^2.
|
|
20
|
-
"@xyo-network/module-model": "^2.
|
|
21
|
-
"@xyo-network/payload-builder": "^2.
|
|
22
|
-
"@xyo-network/payload-model": "^2.
|
|
23
|
-
"@xyo-network/payload-wrapper": "^2.
|
|
24
|
-
"@xyo-network/promise": "^2.
|
|
16
|
+
"@xyo-network/account": "^2.49.0",
|
|
17
|
+
"@xyo-network/address-payload-plugin": "^2.49.0",
|
|
18
|
+
"@xyo-network/archivist-wrapper": "^2.49.0",
|
|
19
|
+
"@xyo-network/module": "^2.49.0",
|
|
20
|
+
"@xyo-network/module-model": "^2.49.0",
|
|
21
|
+
"@xyo-network/payload-builder": "^2.49.0",
|
|
22
|
+
"@xyo-network/payload-model": "^2.49.0",
|
|
23
|
+
"@xyo-network/payload-wrapper": "^2.49.0",
|
|
24
|
+
"@xyo-network/promise": "^2.49.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@xylabs/ts-scripts-yarn3": "^2.15.0",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
},
|
|
62
62
|
"sideEffects": false,
|
|
63
63
|
"types": "dist/types/index.d.ts",
|
|
64
|
-
"version": "2.
|
|
64
|
+
"version": "2.49.0"
|
|
65
65
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plug
|
|
|
4
4
|
import {
|
|
5
5
|
AbstractModule,
|
|
6
6
|
CompositeModuleResolver,
|
|
7
|
+
duplicateModules,
|
|
7
8
|
EventListener,
|
|
8
9
|
Module,
|
|
9
10
|
ModuleConfig,
|
|
@@ -38,12 +39,7 @@ import {
|
|
|
38
39
|
import { NodeModule } from './Node'
|
|
39
40
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeQuery, XyoNodeRegisteredQuerySchema } from './Queries'
|
|
40
41
|
|
|
41
|
-
export type AbstractNodeParams<TConfig extends NodeConfig = NodeConfig> = ModuleParams<
|
|
42
|
-
TConfig,
|
|
43
|
-
{
|
|
44
|
-
internalResolver?: CompositeModuleResolver
|
|
45
|
-
}
|
|
46
|
-
>
|
|
42
|
+
export type AbstractNodeParams<TConfig extends NodeConfig = NodeConfig> = ModuleParams<TConfig>
|
|
47
43
|
|
|
48
44
|
export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig>
|
|
49
45
|
extends AbstractModule<TConfig>
|
|
@@ -51,13 +47,13 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig>
|
|
|
51
47
|
{
|
|
52
48
|
static override readonly configSchema = NodeConfigSchema
|
|
53
49
|
|
|
54
|
-
protected readonly internalResolver = new CompositeModuleResolver()
|
|
55
|
-
|
|
56
50
|
protected readonly moduleAttachedEventListeners: EventListener<ModuleAttachedEventArgs>[] = []
|
|
57
51
|
protected readonly moduleDetachedEventListeners: EventListener<ModuleDetachedEventArgs>[] = []
|
|
58
52
|
protected readonly moduleQueriedEventListeners: EventListener<ModuleQueriedEventArgs>[] = []
|
|
59
53
|
protected readonly moduleRegisteredEventListeners: EventListener<ModuleRegisteredEventArgs>[] = []
|
|
60
54
|
|
|
55
|
+
protected readonly privateResolver = new CompositeModuleResolver()
|
|
56
|
+
|
|
61
57
|
private readonly isNode = true
|
|
62
58
|
|
|
63
59
|
protected constructor(params: AbstractNodeParams<TConfig>) {
|
|
@@ -85,7 +81,7 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig>
|
|
|
85
81
|
}
|
|
86
82
|
|
|
87
83
|
async attachedModules(): Promise<Module[]> {
|
|
88
|
-
return await (this.
|
|
84
|
+
return await (this.privateResolver.resolve() ?? [])
|
|
89
85
|
}
|
|
90
86
|
|
|
91
87
|
override async discover(): Promise<XyoPayload[]> {
|
|
@@ -180,10 +176,6 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig>
|
|
|
180
176
|
throw new Error('Method not implemented.')
|
|
181
177
|
}
|
|
182
178
|
|
|
183
|
-
override async resolve(filter?: ModuleFilter): Promise<Module[]> {
|
|
184
|
-
return (await this.internalResolver.resolve(filter)) ?? super.resolve(filter) ?? []
|
|
185
|
-
}
|
|
186
|
-
|
|
187
179
|
/**
|
|
188
180
|
* Resolves the supplied filter into wrapped modules
|
|
189
181
|
* @example <caption>Example using ArchivistWrapper</caption>
|
|
@@ -211,6 +203,10 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig>
|
|
|
211
203
|
throw new Error('Method not implemented.')
|
|
212
204
|
}
|
|
213
205
|
|
|
206
|
+
protected override async resolve(filter?: ModuleFilter): Promise<Module[]> {
|
|
207
|
+
return [...(await this.privateResolver.resolve(filter)), ...(await super.resolve(filter))].filter(duplicateModules)
|
|
208
|
+
}
|
|
209
|
+
|
|
214
210
|
abstract attach(address: string, external?: boolean): Promisable<void>
|
|
215
211
|
abstract detach(address: string): Promisable<void>
|
|
216
212
|
}
|
package/src/MemoryNode.ts
CHANGED
|
@@ -11,7 +11,7 @@ export type MemoryNodeParams<TConfig extends NodeConfig = NodeConfig> = Abstract
|
|
|
11
11
|
export class MemoryNode<TConfig extends NodeConfig = NodeConfig> extends AbstractNode<TConfig> {
|
|
12
12
|
static override configSchema = NodeConfigSchema
|
|
13
13
|
|
|
14
|
-
private registeredModuleMap
|
|
14
|
+
private registeredModuleMap: Record<string, Module> = {}
|
|
15
15
|
|
|
16
16
|
static override async create(params?: Partial<MemoryNodeParams>): Promise<MemoryNode> {
|
|
17
17
|
return (await super.create(params)) as MemoryNode
|
|
@@ -20,21 +20,19 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig> extends Abstrac
|
|
|
20
20
|
override async attach(address: string, external?: boolean) {
|
|
21
21
|
const existingModule = (await this.resolve({ address: [address] })).pop()
|
|
22
22
|
assertEx(!existingModule, `Module [${existingModule?.config.name ?? existingModule?.address}] already attached at address [${address}]`)
|
|
23
|
-
const module = assertEx(this.registeredModuleMap
|
|
23
|
+
const module = assertEx(this.registeredModuleMap[address], 'No module registered at that address')
|
|
24
24
|
|
|
25
|
-
this.
|
|
25
|
+
this.privateResolver.addResolver(module.downResolver)
|
|
26
26
|
|
|
27
27
|
//give it inside access
|
|
28
|
-
module.
|
|
28
|
+
module.upResolver.addResolver?.(this.privateResolver)
|
|
29
29
|
|
|
30
30
|
//give it outside access
|
|
31
|
-
|
|
32
|
-
module.parentResolver?.addResolver?.(this.parentResolver)
|
|
33
|
-
}
|
|
31
|
+
module.upResolver.addResolver?.(this.upResolver)
|
|
34
32
|
|
|
35
33
|
if (external) {
|
|
36
34
|
//expose it externally
|
|
37
|
-
this.
|
|
35
|
+
this.downResolver.addResolver(module.downResolver)
|
|
38
36
|
}
|
|
39
37
|
|
|
40
38
|
const args = { module, name: module.config.name }
|
|
@@ -42,46 +40,46 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig> extends Abstrac
|
|
|
42
40
|
}
|
|
43
41
|
|
|
44
42
|
override detach(address: string) {
|
|
45
|
-
const module = assertEx(this.registeredModuleMap
|
|
46
|
-
|
|
47
|
-
this.internalResolver.removeResolver(module.resolver)
|
|
43
|
+
const module = assertEx(this.registeredModuleMap[address], 'No module found at that address')
|
|
48
44
|
|
|
49
|
-
|
|
50
|
-
module.parentResolver?.removeResolver?.(this.parentResolver)
|
|
45
|
+
this.privateResolver.removeResolver(module.downResolver)
|
|
51
46
|
|
|
52
47
|
//remove inside access
|
|
53
|
-
module.
|
|
48
|
+
module.upResolver?.removeResolver?.(this.privateResolver)
|
|
49
|
+
|
|
50
|
+
//remove outside access
|
|
51
|
+
module.upResolver?.removeResolver?.(this.upResolver)
|
|
54
52
|
|
|
55
53
|
//remove external exposure
|
|
56
|
-
this.
|
|
54
|
+
this.downResolver.removeResolver(module.downResolver)
|
|
57
55
|
|
|
58
56
|
const args = { module, name: module.config.name }
|
|
59
57
|
this.moduleDetachedEventListeners?.map((listener) => listener(args))
|
|
60
58
|
}
|
|
61
59
|
|
|
62
60
|
override register(module: Module) {
|
|
63
|
-
assertEx(!this.registeredModuleMap
|
|
64
|
-
this.registeredModuleMap
|
|
61
|
+
assertEx(!this.registeredModuleMap[module.address], `Module already registered at that address[${module.address}]`)
|
|
62
|
+
this.registeredModuleMap[module.address] = module
|
|
65
63
|
return this
|
|
66
64
|
}
|
|
67
65
|
|
|
68
66
|
override registered() {
|
|
69
|
-
return
|
|
67
|
+
return Object.keys(this.registeredModuleMap).map((key) => {
|
|
70
68
|
return key
|
|
71
69
|
})
|
|
72
70
|
}
|
|
73
71
|
|
|
74
72
|
override registeredModules() {
|
|
75
|
-
return
|
|
73
|
+
return Object.values(this.registeredModuleMap).map((value) => {
|
|
76
74
|
return value
|
|
77
75
|
})
|
|
78
76
|
}
|
|
79
77
|
|
|
80
78
|
override async resolve(filter?: ModuleFilter): Promise<Module[]> {
|
|
81
|
-
const internal: Promise<Module[]> = this.
|
|
82
|
-
const
|
|
83
|
-
const
|
|
84
|
-
const resolved = await Promise.allSettled([internal,
|
|
79
|
+
const internal: Promise<Module[]> = this.privateResolver.resolve(filter)
|
|
80
|
+
const up: Promise<Module[]> = this.upResolver?.resolve(filter) || []
|
|
81
|
+
const down: Promise<Module[]> = this.downResolver?.resolve(filter) || []
|
|
82
|
+
const resolved = await Promise.allSettled([internal, up, down])
|
|
85
83
|
|
|
86
84
|
const errors = resolved.filter(rejected).map((r) => Error(r.reason))
|
|
87
85
|
|
|
@@ -99,7 +97,7 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig> extends Abstrac
|
|
|
99
97
|
|
|
100
98
|
override unregister(module: Module) {
|
|
101
99
|
this.detach(module.address)
|
|
102
|
-
this.registeredModuleMap
|
|
100
|
+
delete this.registeredModuleMap[module.address]
|
|
103
101
|
return this
|
|
104
102
|
}
|
|
105
103
|
}
|
package/src/NodeWrapper.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
3
3
|
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper'
|
|
4
|
-
import { Module,
|
|
4
|
+
import { Module, ModuleWrapper } from '@xyo-network/module'
|
|
5
5
|
import { isXyoPayloadOfSchemaType } from '@xyo-network/payload-model'
|
|
6
6
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
7
|
-
import { Promisable } from '@xyo-network/promise'
|
|
8
7
|
|
|
9
8
|
import { NodeModule } from './Node'
|
|
10
9
|
import {
|
|
@@ -28,10 +27,6 @@ export class NodeWrapper<TModule extends NodeModule = NodeModule> extends Module
|
|
|
28
27
|
return this._archivist
|
|
29
28
|
}
|
|
30
29
|
|
|
31
|
-
get parentResolver() {
|
|
32
|
-
return this.module.parentResolver
|
|
33
|
-
}
|
|
34
|
-
|
|
35
30
|
static override tryWrap(module: Module): NodeWrapper | undefined {
|
|
36
31
|
const missingRequiredQueries = this.missingRequiredQueries(module)
|
|
37
32
|
if (missingRequiredQueries.length > 0) {
|
|
@@ -66,8 +61,4 @@ export class NodeWrapper<TModule extends NodeModule = NodeModule> extends Module
|
|
|
66
61
|
const payloads: AddressPayload[] = (await this.sendQuery(queryPayload)).filter(isXyoPayloadOfSchemaType<AddressPayload>(AddressSchema))
|
|
67
62
|
return payloads.map((p) => p.address)
|
|
68
63
|
}
|
|
69
|
-
|
|
70
|
-
override resolve(filter?: ModuleFilter): Promisable<Module[]> {
|
|
71
|
-
return this.module.resolve(filter)
|
|
72
|
-
}
|
|
73
64
|
}
|