@xyo-network/node 2.45.0 → 2.46.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 +6 -17
- package/dist/cjs/AbstractNode.js.map +1 -1
- package/dist/cjs/MemoryNode.js +3 -3
- package/dist/cjs/MemoryNode.js.map +1 -1
- package/dist/cjs/NodeWrapper.js +14 -0
- package/dist/cjs/NodeWrapper.js.map +1 -1
- package/dist/docs.json +14215 -10022
- package/dist/esm/AbstractNode.js +7 -13
- package/dist/esm/AbstractNode.js.map +1 -1
- package/dist/esm/MemoryNode.js +1 -1
- package/dist/esm/MemoryNode.js.map +1 -1
- package/dist/esm/NodeWrapper.js +8 -0
- package/dist/esm/NodeWrapper.js.map +1 -1
- package/dist/types/AbstractNode.d.ts +15 -9
- package/dist/types/AbstractNode.d.ts.map +1 -1
- package/dist/types/Config.d.ts +2 -2
- package/dist/types/Config.d.ts.map +1 -1
- package/dist/types/MemoryNode.d.ts +1 -1
- package/dist/types/MemoryNode.d.ts.map +1 -1
- package/dist/types/NodeWrapper.d.ts +2 -1
- package/dist/types/NodeWrapper.d.ts.map +1 -1
- package/dist/types/Queries/index.d.ts +2 -2
- package/dist/types/Queries/index.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/AbstractNode.ts +11 -18
- package/src/Config.ts +2 -2
- package/src/MemoryNode.ts +2 -2
- package/src/NodeWrapper.ts +13 -2
- package/src/Queries/index.ts +2 -2
- package/src/spec/MemoryNode.spec.ts +74 -47
- package/src/spec/__snapshots__/MemoryNode.spec.ts.snap +14 -16
package/dist/esm/AbstractNode.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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,
|
|
4
|
+
import { AbstractModule, CompositeModuleResolver, QueryBoundWitnessWrapper, XyoErrorBuilder, } from '@xyo-network/module';
|
|
5
5
|
import { XyoPayloadBuilder } from '@xyo-network/payload-builder';
|
|
6
6
|
import { NodeConfigSchema } from './Config';
|
|
7
7
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeRegisteredQuerySchema } from './Queries';
|
|
@@ -15,6 +15,9 @@ export class AbstractNode extends AbstractModule {
|
|
|
15
15
|
get isModuleResolver() {
|
|
16
16
|
return true;
|
|
17
17
|
}
|
|
18
|
+
get queries() {
|
|
19
|
+
return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeAttachedQuerySchema, XyoNodeRegisteredQuerySchema, ...super.queries];
|
|
20
|
+
}
|
|
18
21
|
static async create(params) {
|
|
19
22
|
return (await super.create(params));
|
|
20
23
|
}
|
|
@@ -27,19 +30,10 @@ export class AbstractNode extends AbstractModule {
|
|
|
27
30
|
async attachedModules() {
|
|
28
31
|
return await (this.internalResolver.resolve() ?? []);
|
|
29
32
|
}
|
|
30
|
-
async
|
|
31
|
-
const
|
|
32
|
-
const children = await Promise.all((await this.attachedModules()).map((mod) => mod.description()));
|
|
33
|
-
return { ...desc, children };
|
|
34
|
-
}
|
|
35
|
-
async discover(_queryAccount) {
|
|
36
|
-
const parent = await super.discover(_queryAccount);
|
|
37
|
-
const childMods = (await this.attachedModules()).map((mod) => new ModuleWrapper(mod));
|
|
33
|
+
async discover() {
|
|
34
|
+
const childMods = await this.attachedModules();
|
|
38
35
|
const childModAddresses = childMods.map((mod) => new XyoPayloadBuilder({ schema: AddressSchema }).fields({ address: mod.address }).build());
|
|
39
|
-
return [...
|
|
40
|
-
}
|
|
41
|
-
queries() {
|
|
42
|
-
return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeAttachedQuerySchema, XyoNodeRegisteredQuerySchema, ...super.queries()];
|
|
36
|
+
return [...(await super.discover()), ...childModAddresses];
|
|
43
37
|
}
|
|
44
38
|
async query(query, payloads, queryConfig) {
|
|
45
39
|
const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/MemoryNode.js
CHANGED
|
@@ -36,7 +36,7 @@ export class MemoryNode extends AbstractNode {
|
|
|
36
36
|
}
|
|
37
37
|
async attach(address, external) {
|
|
38
38
|
const existingModule = (await this.resolve({ address: [address] })).pop();
|
|
39
|
-
assertEx(!existingModule, `Module [${existingModule?.config.name}] already attached at address [${address}]`);
|
|
39
|
+
assertEx(!existingModule, `Module [${existingModule?.config.name ?? existingModule?.address}] already attached at address [${address}]`);
|
|
40
40
|
const module = assertEx(this.registeredModuleMap.get(address), 'No module registered at that address');
|
|
41
41
|
this.internalResolver.addResolver(module.resolver);
|
|
42
42
|
//give it inside access
|
|
@@ -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,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAkB,gBAAgB,EAAuC,MAAM,qBAAqB,CAAA;AAE3G,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAc,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAgBvD,MAAM,OAAO,UACX,SAAQ,YAAqB;IAG7B,MAAM,CAAC,YAAY,GAAG,gBAAgB,CAAA;IACrB,4BAA4B,GAA6C,EAAE,CAAA;IAC3E,4BAA4B,GAA6C,EAAE,CAAA;IACpF,mBAAmB,GAAG,IAAI,GAAG,EAA0B,CAAA;IAC9C,6BAA6B,GAAoD,EAAE,CAAA;IAEpG,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAAkC;QAC7D,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAe,CAAA;QAE3D,mDAAmD;QAEnD;;;;;;;;;;;;;;;;;;WAkBG;QACH,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,QAAkB;QACvD,MAAM,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;QACzE,QAAQ,CAAC,CAAC,cAAc,EAAE,WAAW,cAAc,EAAE,MAAM,CAAC,IAAI,kCAAkC,OAAO,GAAG,CAAC,CAAA;
|
|
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,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAkB,gBAAgB,EAAuC,MAAM,qBAAqB,CAAA;AAE3G,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAc,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAgBvD,MAAM,OAAO,UACX,SAAQ,YAAqB;IAG7B,MAAM,CAAC,YAAY,GAAG,gBAAgB,CAAA;IACrB,4BAA4B,GAA6C,EAAE,CAAA;IAC3E,4BAA4B,GAA6C,EAAE,CAAA;IACpF,mBAAmB,GAAG,IAAI,GAAG,EAA0B,CAAA;IAC9C,6BAA6B,GAAoD,EAAE,CAAA;IAEpG,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAAkC;QAC7D,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAe,CAAA;QAE3D,mDAAmD;QAEnD;;;;;;;;;;;;;;;;;;WAkBG;QACH,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,QAAkB;QACvD,MAAM,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;QACzE,QAAQ,CAAC,CAAC,cAAc,EAAE,WAAW,cAAc,EAAE,MAAM,CAAC,IAAI,IAAI,cAAc,EAAE,OAAO,kCAAkC,OAAO,GAAG,CAAC,CAAA;QACxI,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,sCAAsC,CAAC,CAAA;QAEtG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAElD,uBAAuB;QACvB,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAExD,wBAAwB;QACxB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;SACvD;QAED,IAAI,QAAQ,EAAE;YACZ,sBAAsB;YACtB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;SAC3C;QAED,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACjD,IAAI,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IACtE,CAAC;IAEQ,MAAM,CAAC,OAAe;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,iCAAiC,CAAC,CAAA;QAEjG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAErD,uBAAuB;QACvB,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAEzD,sBAAsB;QACtB,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAE3D,0BAA0B;QAC1B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAE7C,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACjD,IAAI,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IACtE,CAAC;IAID,EAAE,CAAgC,KAAQ,EAAE,QAAoC;QAC9E,QAAQ,KAAK,EAAE;YACb,KAAK,gBAAgB;gBACnB,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,QAAkD,CAAC,CAAA;gBAC3F,MAAK;YACP,KAAK,uBAAuB;gBAC1B,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC,QAAyD,CAAC,CAAA;gBACnG,MAAK;SACR;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEQ,QAAQ,CAAC,MAAsB;QACtC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,6CAA6C,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;QACvH,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACpD,OAAO,IAAI,CAAA;IACb,CAAC;IAEQ,UAAU;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7D,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEQ,iBAAiB;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACjE,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC;IAEQ,KAAK,CAAC,OAAO,CAAC,MAAqB;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAClD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;QACtE,OAAO,QAAQ;aACZ,MAAM,CAAC,SAAS,CAAC;aACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACnB,IAAI,EAAE;aACN,MAAM,CAAC,MAAM,CAAC;aACd,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAC7B,CAAC;IAEQ,UAAU,CAAC,MAAc;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACb,CAAC"}
|
package/dist/esm/NodeWrapper.js
CHANGED
|
@@ -28,6 +28,14 @@ export class NodeWrapper extends ModuleWrapper {
|
|
|
28
28
|
const payloads = (await this.sendQuery(queryPayload)).filter(isXyoPayloadOfSchemaType(AddressSchema));
|
|
29
29
|
return payloads.map((p) => p.address);
|
|
30
30
|
}
|
|
31
|
+
async describe() {
|
|
32
|
+
const childModules = (await this.module?.resolve())?.filter((childModule) => childModule.address !== this.address) ?? [];
|
|
33
|
+
const children = await Promise.all(childModules?.map((child) => {
|
|
34
|
+
const wrapper = ModuleWrapper.wrap(child);
|
|
35
|
+
return wrapper.describe();
|
|
36
|
+
}));
|
|
37
|
+
return { ...(await super.describe()), children };
|
|
38
|
+
}
|
|
31
39
|
async detach(address) {
|
|
32
40
|
const queryPayload = PayloadWrapper.parse({ address, schema: XyoNodeDetachQuerySchema });
|
|
33
41
|
await this.sendQuery(queryPayload);
|
|
@@ -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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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AbstractModule, AbstractModuleConfig, CompositeModuleResolver, Module, ModuleConstructable, ModuleDescription, ModuleFilter, ModuleParams, ModuleQueryResult, ModuleWrapper, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
1
|
+
import { AbstractModule, CompositeModuleResolver, Module, ModuleConfig, ModuleConstructable, ModuleFilter, ModuleParams, ModuleQueryResult, ModuleWrapper, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
3
2
|
import { XyoPayload } from '@xyo-network/payload-model';
|
|
4
3
|
import { Promisable } from '@xyo-network/promise';
|
|
5
4
|
import { NodeConfig } from './Config';
|
|
@@ -7,24 +6,31 @@ import { NodeModule } from './Node';
|
|
|
7
6
|
export interface AbstractNodeParams<TConfig extends NodeConfig = NodeConfig> extends ModuleParams<TConfig> {
|
|
8
7
|
internalResolver?: CompositeModuleResolver;
|
|
9
8
|
}
|
|
10
|
-
export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> extends AbstractModule<TConfig> implements NodeModule<
|
|
9
|
+
export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> extends AbstractModule<TConfig> implements NodeModule<Module> {
|
|
11
10
|
static readonly configSchema: "network.xyo.node.config";
|
|
12
|
-
protected internalResolver: CompositeModuleResolver
|
|
11
|
+
protected internalResolver: CompositeModuleResolver<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
12
|
+
name?: string | undefined;
|
|
13
|
+
security?: {
|
|
14
|
+
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
15
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
16
|
+
} | undefined;
|
|
17
|
+
} & {
|
|
18
|
+
schema: string;
|
|
19
|
+
}>>;
|
|
13
20
|
private readonly isNode;
|
|
14
21
|
protected constructor(params: AbstractNodeParams<TConfig>);
|
|
15
22
|
get isModuleResolver(): boolean;
|
|
23
|
+
get queries(): string[];
|
|
16
24
|
static create(params?: Partial<AbstractNodeParams>): Promise<AbstractNode>;
|
|
17
25
|
static isNode(module: unknown): boolean;
|
|
18
26
|
attached(): Promise<string[]>;
|
|
19
27
|
attachedModules(): Promise<Module[]>;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
queries(): string[];
|
|
23
|
-
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends AbstractModuleConfig = AbstractModuleConfig>(query: T, payloads?: XyoPayload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
|
|
28
|
+
discover(): Promise<XyoPayload[]>;
|
|
29
|
+
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: XyoPayload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
|
|
24
30
|
register(_module: AbstractModule): Promisable<this>;
|
|
25
31
|
registered(): Promisable<string[]>;
|
|
26
32
|
registeredModules(): Promisable<Module[]>;
|
|
27
|
-
resolve(filter?: ModuleFilter): Promise<
|
|
33
|
+
resolve(filter?: ModuleFilter): Promise<Module[]>;
|
|
28
34
|
/**
|
|
29
35
|
* Resolves the supplied filter into wrapped modules
|
|
30
36
|
* @example <caption>Example using ArchivistWrapper</caption>
|
|
@@ -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":"AAGA,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EAGb,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAKnC,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,YAAY,CAAC,OAAO,CAAC;IACxG,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;CAC3C;AAED,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAE,YAAW,UAAU,CAAC,MAAM,CAAC;IACvI,MAAM,CAAC,QAAQ,CAAC,YAAY,4BAAmB;IAE/C,SAAS,CAAC,gBAAgB;;;;;;;;QAAgC;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,SAAS,aAAa,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAIzD,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAoB,OAAO,IAAI,MAAM,EAAE,CAEtC;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzF,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,UAAU,EAAE,CAAC;IASjC,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EACrH,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,UAAU,EAAE,EACvB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,iBAAiB,CAAC;IA0C7B,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;IAInD,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAIlC,iBAAiB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAI1B,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhE;;;;;;;;;;OAUG;IACG,cAAc,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAC1E,OAAO,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,EACvC,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,EAAE,CAAC;IAIA,KAAK;IAKpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAI7C,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;IACtE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;CACnD;AAED,2CAA2C;AAC3C,8BAAsB,OAAO,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,YAAY,CAAC,OAAO,CAAC;CAAG"}
|
package/dist/types/Config.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ModuleConfig } from '@xyo-network/module';
|
|
2
2
|
import { XyoPayload } from '@xyo-network/payload-model';
|
|
3
3
|
export type NodeConfigSchema = 'network.xyo.node.config';
|
|
4
4
|
export declare const NodeConfigSchema: NodeConfigSchema;
|
|
5
|
-
export type NodeConfig<TConfig extends XyoPayload = XyoPayload> =
|
|
5
|
+
export type NodeConfig<TConfig extends XyoPayload = XyoPayload> = ModuleConfig<{
|
|
6
6
|
archivist?: string;
|
|
7
7
|
} & TConfig>;
|
|
8
8
|
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,CAAA;AACxD,eAAO,MAAM,gBAAgB,EAAE,gBAA4C,CAAA;AAE3E,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,YAAY,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,CAAA"}
|
|
@@ -25,7 +25,7 @@ export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig> extends
|
|
|
25
25
|
} & {
|
|
26
26
|
schema: string;
|
|
27
27
|
}>[];
|
|
28
|
-
resolve(filter?: ModuleFilter): Promise<
|
|
28
|
+
resolve(filter?: ModuleFilter): Promise<Module[]>;
|
|
29
29
|
unregister(module: Module): this;
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=MemoryNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAmC,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE3G,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AACvD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAE1B,8BAA8B,EAC9B,2BAA2B,EAC5B,MAAM,UAAU,CAAA;AAOjB,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAEnG,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAC7D,SAAQ,YAAY,CAAC,OAAO,CAC5B,YAAW,0BAA0B,EAAE,2BAA2B;IAElE,MAAM,CAAC,YAAY,4BAAmB;IACtC,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA+C;IAC5F,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA+C;IAC5F,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAsD;WAE9E,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IA2BtE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;IAwBhD,MAAM,CAAC,OAAO,EAAE,MAAM;IAkB/B,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI;IACpF,EAAE,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,8BAA8B,KAAK,IAAI,GAAG,IAAI;IAazF,QAAQ,CAAC,MAAM,EAAE,cAAc;IAM/B,UAAU;IAMV,iBAAiB;;;;;;;;;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAmC,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE3G,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AACvD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAE1B,8BAA8B,EAC9B,2BAA2B,EAC5B,MAAM,UAAU,CAAA;AAOjB,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAEnG,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAC7D,SAAQ,YAAY,CAAC,OAAO,CAC5B,YAAW,0BAA0B,EAAE,2BAA2B;IAElE,MAAM,CAAC,YAAY,4BAAmB;IACtC,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA+C;IAC5F,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA+C;IAC5F,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAsD;WAE9E,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IA2BtE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;IAwBhD,MAAM,CAAC,OAAO,EAAE,MAAM;IAkB/B,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI;IACpF,EAAE,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,8BAA8B,KAAK,IAAI,GAAG,IAAI;IAazF,QAAQ,CAAC,MAAM,EAAE,cAAc;IAM/B,UAAU;IAMV,iBAAiB;;;;;;;;;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAavD,UAAU,CAAC,MAAM,EAAE,MAAM;CAKnC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
|
|
2
|
-
import { Module, ModuleFilter, ModuleWrapper } from '@xyo-network/module';
|
|
2
|
+
import { Module, ModuleDescription, ModuleFilter, ModuleWrapper } from '@xyo-network/module';
|
|
3
3
|
import { Promisable } from '@xyo-network/promise';
|
|
4
4
|
import { Node, NodeModule } from './Node';
|
|
5
5
|
export declare class NodeWrapper<TModule extends NodeModule = NodeModule> extends ModuleWrapper<TModule> implements Node, NodeModule {
|
|
@@ -11,6 +11,7 @@ export declare class NodeWrapper<TModule extends NodeModule = NodeModule> extend
|
|
|
11
11
|
static wrap(module: Module): NodeWrapper;
|
|
12
12
|
attach(address: string, external?: boolean): Promise<void>;
|
|
13
13
|
attached(): Promise<string[]>;
|
|
14
|
+
describe(): Promise<ModuleDescription>;
|
|
14
15
|
detach(address: string): Promise<void>;
|
|
15
16
|
registered(): Promise<string[]>;
|
|
16
17
|
resolve(filter?: ModuleFilter): Promisable<Module[]>;
|
|
@@ -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,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;
|
|
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,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAG5F,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAYzC,qBAAa,WAAW,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,aAAa,CAAC,OAAO,CAAE,YAAW,IAAI,EAAE,UAAU;IAC1H,MAAM,CAAC,eAAe,WAA+D;IAE9E,gBAAgB,UAAO;IAE9B,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,IAAW,SAAS,qBAGnB;IAED,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIvD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAIlC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMpB,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAW/C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM5B,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;CAG9D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ModuleQuery, XyoQuery } from '@xyo-network/module-model';
|
|
2
2
|
import { XyoNodeAttachQuery } from './Attach';
|
|
3
3
|
import { XyoNodeAttachedQuery } from './Attached';
|
|
4
4
|
import { XyoNodeDetachQuery } from './Detach';
|
|
@@ -8,5 +8,5 @@ export * from './Attached';
|
|
|
8
8
|
export * from './Detach';
|
|
9
9
|
export * from './Registered';
|
|
10
10
|
export type XyoNodeQueryBase = XyoNodeAttachQuery | XyoNodeDetachQuery | XyoNodeAttachedQuery | XyoNodeRegisteredQuery;
|
|
11
|
-
export type XyoNodeQuery<T extends XyoQuery | void = void> =
|
|
11
|
+
export type XyoNodeQuery<T extends XyoQuery | void = void> = ModuleQuery<T extends XyoQuery ? XyoNodeQueryBase | T : XyoNodeQueryBase>;
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAErD,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAE5B,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,sBAAsB,CAAA;AAEtH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,IAAI,GAAG,IAAI,IAAI,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,gBAAgB,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
"@xylabs/assert": "^2.7.1",
|
|
14
14
|
"@xylabs/exists": "^2.7.1",
|
|
15
15
|
"@xylabs/promise": "^2.7.1",
|
|
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.46.0",
|
|
17
|
+
"@xyo-network/address-payload-plugin": "^2.46.0",
|
|
18
|
+
"@xyo-network/archivist-wrapper": "^2.46.0",
|
|
19
|
+
"@xyo-network/module": "^2.46.0",
|
|
20
|
+
"@xyo-network/module-model": "^2.46.0",
|
|
21
|
+
"@xyo-network/payload-builder": "^2.46.0",
|
|
22
|
+
"@xyo-network/payload-model": "^2.46.0",
|
|
23
|
+
"@xyo-network/payload-wrapper": "^2.46.0",
|
|
24
|
+
"@xyo-network/promise": "^2.46.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@xylabs/ts-scripts-yarn3": "^2.14.15",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
},
|
|
62
62
|
"sideEffects": false,
|
|
63
63
|
"types": "dist/types/index.d.ts",
|
|
64
|
-
"version": "2.
|
|
64
|
+
"version": "2.46.0"
|
|
65
65
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -3,11 +3,10 @@ import { Account } from '@xyo-network/account'
|
|
|
3
3
|
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
4
4
|
import {
|
|
5
5
|
AbstractModule,
|
|
6
|
-
AbstractModuleConfig,
|
|
7
6
|
CompositeModuleResolver,
|
|
8
7
|
Module,
|
|
8
|
+
ModuleConfig,
|
|
9
9
|
ModuleConstructable,
|
|
10
|
-
ModuleDescription,
|
|
11
10
|
ModuleFilter,
|
|
12
11
|
ModuleParams,
|
|
13
12
|
ModuleQueryResult,
|
|
@@ -30,7 +29,7 @@ export interface AbstractNodeParams<TConfig extends NodeConfig = NodeConfig> ext
|
|
|
30
29
|
internalResolver?: CompositeModuleResolver
|
|
31
30
|
}
|
|
32
31
|
|
|
33
|
-
export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> extends AbstractModule<TConfig> implements NodeModule<
|
|
32
|
+
export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> extends AbstractModule<TConfig> implements NodeModule<Module> {
|
|
34
33
|
static readonly configSchema = NodeConfigSchema
|
|
35
34
|
|
|
36
35
|
protected internalResolver = new CompositeModuleResolver()
|
|
@@ -45,6 +44,10 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> exte
|
|
|
45
44
|
return true
|
|
46
45
|
}
|
|
47
46
|
|
|
47
|
+
public override get queries(): string[] {
|
|
48
|
+
return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeAttachedQuerySchema, XyoNodeRegisteredQuerySchema, ...super.queries]
|
|
49
|
+
}
|
|
50
|
+
|
|
48
51
|
static override async create(params?: Partial<AbstractNodeParams>): Promise<AbstractNode> {
|
|
49
52
|
return (await super.create(params)) as AbstractNode
|
|
50
53
|
}
|
|
@@ -61,26 +64,16 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> exte
|
|
|
61
64
|
return await (this.internalResolver.resolve() ?? [])
|
|
62
65
|
}
|
|
63
66
|
|
|
64
|
-
override async
|
|
65
|
-
const
|
|
66
|
-
const children = await Promise.all((await this.attachedModules()).map((mod) => mod.description()))
|
|
67
|
-
return { ...desc, children }
|
|
68
|
-
}
|
|
69
|
-
override async discover(_queryAccount?: Account | undefined): Promise<XyoPayload[]> {
|
|
70
|
-
const parent = await super.discover(_queryAccount)
|
|
71
|
-
const childMods = (await this.attachedModules()).map((mod) => new ModuleWrapper(mod))
|
|
67
|
+
override async discover(): Promise<XyoPayload[]> {
|
|
68
|
+
const childMods = await this.attachedModules()
|
|
72
69
|
const childModAddresses = childMods.map((mod) =>
|
|
73
70
|
new XyoPayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build(),
|
|
74
71
|
)
|
|
75
72
|
|
|
76
|
-
return [...
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
public override queries() {
|
|
80
|
-
return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeAttachedQuerySchema, XyoNodeRegisteredQuerySchema, ...super.queries()]
|
|
73
|
+
return [...(await super.discover()), ...childModAddresses]
|
|
81
74
|
}
|
|
82
75
|
|
|
83
|
-
override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends
|
|
76
|
+
override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(
|
|
84
77
|
query: T,
|
|
85
78
|
payloads?: XyoPayload[],
|
|
86
79
|
queryConfig?: TConfig,
|
|
@@ -138,7 +131,7 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig> exte
|
|
|
138
131
|
throw new Error('Method not implemented.')
|
|
139
132
|
}
|
|
140
133
|
|
|
141
|
-
override async resolve(filter?: ModuleFilter): Promise<
|
|
134
|
+
override async resolve(filter?: ModuleFilter): Promise<Module[]> {
|
|
142
135
|
return (await this.internalResolver.resolve(filter)) ?? super.resolve(filter) ?? []
|
|
143
136
|
}
|
|
144
137
|
|
package/src/Config.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ModuleConfig } from '@xyo-network/module'
|
|
2
2
|
import { XyoPayload } from '@xyo-network/payload-model'
|
|
3
3
|
|
|
4
4
|
export type NodeConfigSchema = 'network.xyo.node.config'
|
|
5
5
|
export const NodeConfigSchema: NodeConfigSchema = 'network.xyo.node.config'
|
|
6
6
|
|
|
7
|
-
export type NodeConfig<TConfig extends XyoPayload = XyoPayload> =
|
|
7
|
+
export type NodeConfig<TConfig extends XyoPayload = XyoPayload> = ModuleConfig<{ archivist?: string } & TConfig>
|
package/src/MemoryNode.ts
CHANGED
|
@@ -59,7 +59,7 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig>
|
|
|
59
59
|
|
|
60
60
|
override async attach(address: string, external?: boolean) {
|
|
61
61
|
const existingModule = (await this.resolve({ address: [address] })).pop()
|
|
62
|
-
assertEx(!existingModule, `Module [${existingModule?.config.name}] already attached at address [${address}]`)
|
|
62
|
+
assertEx(!existingModule, `Module [${existingModule?.config.name ?? existingModule?.address}] already attached at address [${address}]`)
|
|
63
63
|
const module = assertEx(this.registeredModuleMap.get(address), 'No module registered at that address')
|
|
64
64
|
|
|
65
65
|
this.internalResolver.addResolver(module.resolver)
|
|
@@ -131,7 +131,7 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig>
|
|
|
131
131
|
})
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
override async resolve(filter?: ModuleFilter): Promise<
|
|
134
|
+
override async resolve(filter?: ModuleFilter): Promise<Module[]> {
|
|
135
135
|
const internal = this.internalResolver.resolve(filter)
|
|
136
136
|
const external = this.parentResolver?.resolve(filter) || []
|
|
137
137
|
const local = this.resolver?.resolve(filter) || []
|
package/src/NodeWrapper.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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, ModuleFilter, ModuleWrapper } from '@xyo-network/module'
|
|
4
|
+
import { Module, ModuleDescription, ModuleFilter, ModuleWrapper } from '@xyo-network/module'
|
|
5
5
|
import { isXyoPayloadOfSchemaType } from '@xyo-network/payload-model'
|
|
6
6
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
7
7
|
import { Promisable } from '@xyo-network/promise'
|
|
@@ -49,6 +49,17 @@ export class NodeWrapper<TModule extends NodeModule = NodeModule> extends Module
|
|
|
49
49
|
return payloads.map((p) => p.address)
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
override async describe(): Promise<ModuleDescription> {
|
|
53
|
+
const childModules = (await this.module?.resolve())?.filter((childModule) => childModule.address !== this.address) ?? []
|
|
54
|
+
const children: ModuleDescription[] = await Promise.all(
|
|
55
|
+
childModules?.map((child) => {
|
|
56
|
+
const wrapper = ModuleWrapper.wrap(child)
|
|
57
|
+
return wrapper.describe()
|
|
58
|
+
}),
|
|
59
|
+
)
|
|
60
|
+
return { ...(await super.describe()), children }
|
|
61
|
+
}
|
|
62
|
+
|
|
52
63
|
async detach(address: string): Promise<void> {
|
|
53
64
|
const queryPayload = PayloadWrapper.parse<XyoNodeDetachQuery>({ address, schema: XyoNodeDetachQuerySchema })
|
|
54
65
|
await this.sendQuery(queryPayload)
|
|
@@ -60,7 +71,7 @@ export class NodeWrapper<TModule extends NodeModule = NodeModule> extends Module
|
|
|
60
71
|
return payloads.map((p) => p.address)
|
|
61
72
|
}
|
|
62
73
|
|
|
63
|
-
resolve(filter?: ModuleFilter): Promisable<Module[]> {
|
|
74
|
+
override resolve(filter?: ModuleFilter): Promisable<Module[]> {
|
|
64
75
|
return this.module.resolve(filter)
|
|
65
76
|
}
|
|
66
77
|
}
|
package/src/Queries/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ModuleQuery, XyoQuery } from '@xyo-network/module-model'
|
|
2
2
|
|
|
3
3
|
import { XyoNodeAttachQuery } from './Attach'
|
|
4
4
|
import { XyoNodeAttachedQuery } from './Attached'
|
|
@@ -12,4 +12,4 @@ export * from './Registered'
|
|
|
12
12
|
|
|
13
13
|
export type XyoNodeQueryBase = XyoNodeAttachQuery | XyoNodeDetachQuery | XyoNodeAttachedQuery | XyoNodeRegisteredQuery
|
|
14
14
|
|
|
15
|
-
export type XyoNodeQuery<T extends XyoQuery | void = void> =
|
|
15
|
+
export type XyoNodeQuery<T extends XyoQuery | void = void> = ModuleQuery<T extends XyoQuery ? XyoNodeQueryBase | T : XyoNodeQueryBase>
|