@xyo-network/node 2.42.8 → 2.42.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AbstractNode.d.ts +3 -2
- package/dist/cjs/AbstractNode.d.ts.map +1 -1
- package/dist/cjs/AbstractNode.js +14 -3
- package/dist/cjs/AbstractNode.js.map +1 -1
- package/dist/cjs/MemoryNode.d.ts +3 -2
- package/dist/cjs/MemoryNode.d.ts.map +1 -1
- package/dist/cjs/MemoryNode.js +2 -1
- package/dist/cjs/MemoryNode.js.map +1 -1
- package/dist/cjs/NodeWrapper.d.ts +8 -11
- package/dist/cjs/NodeWrapper.d.ts.map +1 -1
- package/dist/cjs/NodeWrapper.js +16 -27
- package/dist/cjs/NodeWrapper.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +6689 -2714
- package/dist/esm/AbstractNode.d.ts +3 -2
- package/dist/esm/AbstractNode.d.ts.map +1 -1
- package/dist/esm/AbstractNode.js +14 -3
- package/dist/esm/AbstractNode.js.map +1 -1
- package/dist/esm/MemoryNode.d.ts +3 -2
- package/dist/esm/MemoryNode.d.ts.map +1 -1
- package/dist/esm/MemoryNode.js +2 -1
- package/dist/esm/MemoryNode.js.map +1 -1
- package/dist/esm/NodeWrapper.d.ts +8 -11
- package/dist/esm/NodeWrapper.d.ts.map +1 -1
- package/dist/esm/NodeWrapper.js +16 -26
- package/dist/esm/NodeWrapper.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +9 -7
- package/src/AbstractNode.ts +15 -6
- package/src/MemoryNode.spec.ts +2 -2
- package/src/MemoryNode.ts +4 -7
- package/src/NodeWrapper.ts +20 -30
- package/src/index.ts +1 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { AbstractModule, ModuleDescription, ModuleFilter, ModuleParams, ModuleQueryResult, SimpleModuleResolver, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
1
|
+
import { AbstractModule, Module, ModuleDescription, ModuleFilter, ModuleParams, ModuleQueryResult, SimpleModuleResolver, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
2
2
|
import { XyoPayload } from '@xyo-network/payload';
|
|
3
3
|
import { Promisable } from '@xyo-network/promise';
|
|
4
4
|
import { NodeConfig } from './Config';
|
|
5
5
|
import { NodeModule } from './NodeModule';
|
|
6
|
-
export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
6
|
+
export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module> extends AbstractModule<TConfig> implements NodeModule {
|
|
7
|
+
static configSchema: "network.xyo.node.config";
|
|
7
8
|
isModuleResolver: boolean;
|
|
8
9
|
protected internalResolver: SimpleModuleResolver<TModule>;
|
|
9
10
|
private _archivist?;
|
|
@@ -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,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAEjB,oBAAoB,EAEpB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,8BAAsB,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CACzG,SAAQ,cAAc,CAAC,OAAO,CAC9B,YAAW,UAAU;IAErB,MAAM,CAAC,YAAY,4BAAmB;IAC/B,gBAAgB,UAAO;IAE9B,SAAS,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACzD,OAAO,CAAC,UAAU,CAAC,CAAQ;IAE3B,SAAS,aAAa,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC;WAK/E,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzF,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI5B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAMxC,OAAO;IAIR,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2C1I,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIhC,UAAU,IAAI,MAAM,EAAE;IAItB,iBAAiB,IAAI,OAAO,EAAE;IAIf,KAAK;IAKpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IACtC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IACtC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IAC9D,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;CAClE;AAED,2CAA2C;AAC3C,8BAAsB,OAAO,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,YAAY,CAC1I,OAAO,EACP,OAAO,CACR;CAAG"}
|
package/dist/esm/AbstractNode.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { Account } from '@xyo-network/account';
|
|
3
|
+
import { AddressSchema } from '@xyo-network/address-payload-plugin';
|
|
3
4
|
import { AbstractModule, QueryBoundWitnessWrapper, SimpleModuleResolver, XyoErrorBuilder, } from '@xyo-network/module';
|
|
5
|
+
import { XyoPayloadBuilder } from '@xyo-network/payload';
|
|
6
|
+
import { NodeConfigSchema } from './Config';
|
|
4
7
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeRegisteredQuerySchema } from './Queries';
|
|
5
8
|
export class AbstractNode extends AbstractModule {
|
|
9
|
+
static configSchema = NodeConfigSchema;
|
|
6
10
|
isModuleResolver = true;
|
|
7
11
|
internalResolver;
|
|
8
12
|
_archivist;
|
|
@@ -44,12 +48,19 @@ export class AbstractNode extends AbstractModule {
|
|
|
44
48
|
break;
|
|
45
49
|
}
|
|
46
50
|
case XyoNodeAttachedQuerySchema: {
|
|
47
|
-
await this.attached();
|
|
51
|
+
const addresses = await this.attached();
|
|
52
|
+
for (const address of addresses) {
|
|
53
|
+
const payload = new XyoPayloadBuilder({ schema: AddressSchema }).fields({ address }).build();
|
|
54
|
+
resultPayloads.push(payload);
|
|
55
|
+
}
|
|
48
56
|
break;
|
|
49
57
|
}
|
|
50
58
|
case XyoNodeRegisteredQuerySchema: {
|
|
51
|
-
|
|
52
|
-
|
|
59
|
+
const addresses = this.registered();
|
|
60
|
+
for (const address of addresses) {
|
|
61
|
+
const payload = new XyoPayloadBuilder({ schema: AddressSchema }).fields({ address }).build();
|
|
62
|
+
resultPayloads.push(payload);
|
|
63
|
+
}
|
|
53
64
|
break;
|
|
54
65
|
}
|
|
55
66
|
default:
|
|
@@ -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,EACL,cAAc,EAMd,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,GAEhB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/MemoryNode.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Module, ModuleFilter, ModuleParams } from '@xyo-network/module';
|
|
2
2
|
import { AbstractNode } from './AbstractNode';
|
|
3
3
|
import { NodeConfig } from './Config';
|
|
4
|
-
export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
4
|
+
export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module> extends AbstractNode<TConfig, TModule> {
|
|
5
|
+
static configSchema: "network.xyo.node.config";
|
|
5
6
|
private registeredModuleMap;
|
|
6
7
|
static create(params?: ModuleParams<NodeConfig>): Promise<MemoryNode>;
|
|
7
8
|
attach(address: string, name?: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AAEvD,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;IACtI,MAAM,CAAC,YAAY,4BAAmB;IACtC,OAAO,CAAC,mBAAmB,CAA6B;WAElC,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAI3E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAKrC,MAAM,CAAC,OAAO,EAAE,MAAM;IAItB,QAAQ,CAAC,MAAM,EAAE,OAAO;IAIxB,UAAU;IAMV,iBAAiB;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIlD,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI3D,UAAU,CAAC,MAAM,EAAE,OAAO;CAGpC"}
|
package/dist/esm/MemoryNode.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { AbstractNode } from './AbstractNode';
|
|
3
|
+
import { NodeConfigSchema } from './Config';
|
|
3
4
|
export class MemoryNode extends AbstractNode {
|
|
5
|
+
static configSchema = NodeConfigSchema;
|
|
4
6
|
registeredModuleMap = new Map();
|
|
5
7
|
static async create(params) {
|
|
6
8
|
return (await super.create(params));
|
|
@@ -13,7 +15,6 @@ export class MemoryNode extends AbstractNode {
|
|
|
13
15
|
this.internalResolver.remove(address);
|
|
14
16
|
}
|
|
15
17
|
register(module) {
|
|
16
|
-
module.resolver = this.internalResolver;
|
|
17
18
|
this.registeredModuleMap.set(module.address, module);
|
|
18
19
|
}
|
|
19
20
|
registered() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAc,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEvD,MAAM,OAAO,UAAqF,SAAQ,YAA8B;IACtI,MAAM,CAAC,YAAY,GAAG,gBAAgB,CAAA;IAC9B,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAExD,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAAiC;QAC5D,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAe,CAAA;IACnD,CAAC;IAEQ,MAAM,CAAC,OAAe,EAAE,IAAa;QAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,iCAAiC,CAAC,CAAA;QACjG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAEQ,MAAM,CAAC,OAAe;QAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAEQ,QAAQ,CAAC,MAAe;QAC/B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACtD,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,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACtG,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAC,MAAqB;QAC7C,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IAC5G,CAAC;IAEQ,UAAU,CAAC,MAAe;QACjC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC"}
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
import { ArchivistWrapper } from '@xyo-network/archivist';
|
|
2
2
|
import { AbstractModule, Module, ModuleFilter, ModuleWrapper } from '@xyo-network/module';
|
|
3
3
|
import { Promisable } from '@xyo-network/promise';
|
|
4
|
+
import { AbstractNode } from './AbstractNode';
|
|
4
5
|
import { NodeModule } from './NodeModule';
|
|
5
|
-
export declare class NodeWrapper extends ModuleWrapper implements NodeModule {
|
|
6
|
+
export declare class NodeWrapper<TModule extends AbstractNode = AbstractNode> extends ModuleWrapper<TModule> implements NodeModule {
|
|
6
7
|
isModuleResolver: boolean;
|
|
7
8
|
private _archivist?;
|
|
8
9
|
get archivist(): ArchivistWrapper;
|
|
9
10
|
attach(address: string, name?: string): Promise<void>;
|
|
10
11
|
attached(): Promise<string[]>;
|
|
11
|
-
attachedModules(): Promise<
|
|
12
|
+
attachedModules(): Promise<Module[]>;
|
|
12
13
|
detach(address: string): Promise<void>;
|
|
13
|
-
|
|
14
|
-
register(_module: Module): void;
|
|
14
|
+
register(mod: AbstractModule): void;
|
|
15
15
|
registered(): Promise<string[]>;
|
|
16
|
-
registeredModules(): Promise<
|
|
17
|
-
resolve(
|
|
18
|
-
tryResolve(
|
|
19
|
-
unregister(
|
|
20
|
-
}
|
|
21
|
-
/** @deprecated use NodeWrapper instead */
|
|
22
|
-
export declare class XyoNodeWrapper extends NodeWrapper {
|
|
16
|
+
registeredModules(): Promise<Module[]>;
|
|
17
|
+
resolve(filter: ModuleFilter): Promisable<Module[]>;
|
|
18
|
+
tryResolve(filter: ModuleFilter): Promisable<Module[]>;
|
|
19
|
+
unregister(mod: AbstractModule): void;
|
|
23
20
|
}
|
|
24
21
|
//# sourceMappingURL=NodeWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeWrapper.d.ts","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeWrapper.d.ts","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEzF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAYzC,qBAAa,WAAW,CAAC,OAAO,SAAS,YAAY,GAAG,YAAY,CAAE,SAAQ,aAAa,CAAC,OAAO,CAAE,YAAW,UAAU;IACjH,gBAAgB,UAAO;IAE9B,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,IAAW,SAAS,qBAGnB;IAEK,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM7B,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C,QAAQ,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAI7B,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM/B,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI5C,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;IAInD,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;IAItD,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;CAGtC"}
|
package/dist/esm/NodeWrapper.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { AddressSchema } from '@xyo-network/address-payload-plugin';
|
|
1
2
|
import { ArchivistWrapper } from '@xyo-network/archivist';
|
|
2
3
|
import { ModuleWrapper } from '@xyo-network/module';
|
|
3
|
-
import { PayloadWrapper } from '@xyo-network/payload';
|
|
4
|
+
import { isXyoPayloadOfSchemaType, PayloadWrapper } from '@xyo-network/payload';
|
|
4
5
|
import compact from 'lodash/compact';
|
|
5
6
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeRegisteredQuerySchema, } from './Queries';
|
|
6
7
|
export class NodeWrapper extends ModuleWrapper {
|
|
@@ -12,16 +13,12 @@ export class NodeWrapper extends ModuleWrapper {
|
|
|
12
13
|
}
|
|
13
14
|
async attach(address, name) {
|
|
14
15
|
const queryPayload = PayloadWrapper.parse({ address, name, schema: XyoNodeAttachQuerySchema });
|
|
15
|
-
|
|
16
|
-
const result = await this.module.query(query[0], query[1]);
|
|
17
|
-
this.throwErrors(query, result);
|
|
16
|
+
await this.sendQuery(queryPayload);
|
|
18
17
|
}
|
|
19
18
|
async attached() {
|
|
20
19
|
const queryPayload = PayloadWrapper.parse({ schema: XyoNodeAttachedQuerySchema });
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
this.throwErrors(query, result);
|
|
24
|
-
return compact(result[1].map((payload) => payload?.schema));
|
|
20
|
+
const payloads = (await this.sendQuery(queryPayload)).filter(isXyoPayloadOfSchemaType(AddressSchema));
|
|
21
|
+
return payloads.map((p) => p.address);
|
|
25
22
|
}
|
|
26
23
|
async attachedModules() {
|
|
27
24
|
const addresses = await this.attached();
|
|
@@ -31,32 +28,25 @@ export class NodeWrapper extends ModuleWrapper {
|
|
|
31
28
|
const queryPayload = PayloadWrapper.parse({ address, schema: XyoNodeDetachQuerySchema });
|
|
32
29
|
await this.sendQuery(queryPayload);
|
|
33
30
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
register(_module) {
|
|
38
|
-
throw Error('Not implemented');
|
|
31
|
+
register(mod) {
|
|
32
|
+
return this.module.register(mod);
|
|
39
33
|
}
|
|
40
34
|
async registered() {
|
|
41
35
|
const queryPayload = PayloadWrapper.parse({ schema: XyoNodeRegisteredQuerySchema });
|
|
42
|
-
const
|
|
43
|
-
return
|
|
36
|
+
const payloads = (await this.sendQuery(queryPayload)).filter(isXyoPayloadOfSchemaType(AddressSchema));
|
|
37
|
+
return payloads.map((p) => p.address);
|
|
44
38
|
}
|
|
45
39
|
async registeredModules() {
|
|
46
|
-
|
|
47
|
-
return compact(await this.resolve({ address: addresses }));
|
|
40
|
+
return await this.module.registeredModules();
|
|
48
41
|
}
|
|
49
|
-
resolve(
|
|
50
|
-
|
|
42
|
+
resolve(filter) {
|
|
43
|
+
return this.module.resolve(filter);
|
|
51
44
|
}
|
|
52
|
-
tryResolve(
|
|
53
|
-
|
|
45
|
+
tryResolve(filter) {
|
|
46
|
+
return this.module.tryResolve(filter);
|
|
54
47
|
}
|
|
55
|
-
unregister(
|
|
56
|
-
|
|
48
|
+
unregister(mod) {
|
|
49
|
+
return this.module.unregister(mod);
|
|
57
50
|
}
|
|
58
51
|
}
|
|
59
|
-
/** @deprecated use NodeWrapper instead */
|
|
60
|
-
export class XyoNodeWrapper extends NodeWrapper {
|
|
61
|
-
}
|
|
62
52
|
//# sourceMappingURL=NodeWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeWrapper.js","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAwC,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"NodeWrapper.js","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
|
package/package.json
CHANGED
|
@@ -10,16 +10,18 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^2.6.
|
|
14
|
-
"@xyo-network/account": "^2.42.
|
|
15
|
-
"@xyo-network/
|
|
16
|
-
"@xyo-network/
|
|
17
|
-
"@xyo-network/
|
|
18
|
-
"@xyo-network/
|
|
13
|
+
"@xylabs/assert": "^2.6.11",
|
|
14
|
+
"@xyo-network/account": "^2.42.10",
|
|
15
|
+
"@xyo-network/address-payload-plugin": "^2.42.10",
|
|
16
|
+
"@xyo-network/archivist": "^2.42.10",
|
|
17
|
+
"@xyo-network/module": "^2.42.10",
|
|
18
|
+
"@xyo-network/payload": "^2.42.10",
|
|
19
|
+
"@xyo-network/promise": "^2.42.10",
|
|
19
20
|
"lodash": "^4.17.21",
|
|
20
21
|
"tslib": "^2.4.1"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
24
|
+
"@xylabs/ts-scripts-yarn3": "^2.9.0",
|
|
23
25
|
"axios": "~1.2.1",
|
|
24
26
|
"pako": "^2.1.0"
|
|
25
27
|
},
|
|
@@ -60,5 +62,5 @@
|
|
|
60
62
|
},
|
|
61
63
|
"sideEffects": false,
|
|
62
64
|
"types": "dist/esm/index.d.ts",
|
|
63
|
-
"version": "2.42.
|
|
65
|
+
"version": "2.42.10"
|
|
64
66
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { Account } from '@xyo-network/account'
|
|
3
|
+
import { AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
3
4
|
import {
|
|
4
5
|
AbstractModule,
|
|
5
6
|
Module,
|
|
@@ -12,17 +13,18 @@ import {
|
|
|
12
13
|
XyoErrorBuilder,
|
|
13
14
|
XyoQueryBoundWitness,
|
|
14
15
|
} from '@xyo-network/module'
|
|
15
|
-
import { XyoPayload } from '@xyo-network/payload'
|
|
16
|
+
import { XyoPayload, XyoPayloadBuilder } from '@xyo-network/payload'
|
|
16
17
|
import { Promisable } from '@xyo-network/promise'
|
|
17
18
|
|
|
18
|
-
import { NodeConfig } from './Config'
|
|
19
|
+
import { NodeConfig, NodeConfigSchema } from './Config'
|
|
19
20
|
import { NodeModule } from './NodeModule'
|
|
20
21
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeQuery, XyoNodeRegisteredQuerySchema } from './Queries'
|
|
21
22
|
|
|
22
|
-
export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
23
|
+
export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module>
|
|
23
24
|
extends AbstractModule<TConfig>
|
|
24
25
|
implements NodeModule
|
|
25
26
|
{
|
|
27
|
+
static configSchema = NodeConfigSchema
|
|
26
28
|
public isModuleResolver = true
|
|
27
29
|
|
|
28
30
|
protected internalResolver: SimpleModuleResolver<TModule>
|
|
@@ -73,12 +75,19 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig, TMod
|
|
|
73
75
|
break
|
|
74
76
|
}
|
|
75
77
|
case XyoNodeAttachedQuerySchema: {
|
|
76
|
-
await this.attached()
|
|
78
|
+
const addresses = await this.attached()
|
|
79
|
+
for (const address of addresses) {
|
|
80
|
+
const payload = new XyoPayloadBuilder({ schema: AddressSchema }).fields({ address }).build()
|
|
81
|
+
resultPayloads.push(payload)
|
|
82
|
+
}
|
|
77
83
|
break
|
|
78
84
|
}
|
|
79
85
|
case XyoNodeRegisteredQuerySchema: {
|
|
80
|
-
|
|
81
|
-
|
|
86
|
+
const addresses = this.registered()
|
|
87
|
+
for (const address of addresses) {
|
|
88
|
+
const payload = new XyoPayloadBuilder({ schema: AddressSchema }).fields({ address }).build()
|
|
89
|
+
resultPayloads.push(payload)
|
|
90
|
+
}
|
|
82
91
|
break
|
|
83
92
|
}
|
|
84
93
|
default:
|
package/src/MemoryNode.spec.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
XyoHuriPayload,
|
|
9
9
|
XyoHuriSchema,
|
|
10
10
|
} from '@xyo-network/diviner'
|
|
11
|
-
import { AbstractModule,
|
|
11
|
+
import { AbstractModule, ModuleDescription, SimpleModuleResolver } from '@xyo-network/module'
|
|
12
12
|
import { Account, PayloadWrapper, XyoPayload, XyoPayloadBuilder, XyoPayloadSchema } from '@xyo-network/protocol'
|
|
13
13
|
|
|
14
14
|
import { NodeConfigSchema } from './Config'
|
|
@@ -32,7 +32,7 @@ describe('MemoryNode', () => {
|
|
|
32
32
|
const archivist = await XyoMemoryArchivist.create()
|
|
33
33
|
const diviner: AbstractModule = await ArchivistPayloadDiviner.create({
|
|
34
34
|
config: { archivist: archivist.address, schema: XyoArchivistPayloadDivinerConfigSchema },
|
|
35
|
-
resolver: new
|
|
35
|
+
resolver: new SimpleModuleResolver().add(archivist),
|
|
36
36
|
})
|
|
37
37
|
await node.register(archivist)
|
|
38
38
|
node.attach(archivist.address)
|
package/src/MemoryNode.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import {
|
|
2
|
+
import { Module, ModuleFilter, ModuleParams } from '@xyo-network/module'
|
|
3
3
|
|
|
4
4
|
import { AbstractNode } from './AbstractNode'
|
|
5
|
-
import { NodeConfig } from './Config'
|
|
5
|
+
import { NodeConfig, NodeConfigSchema } from './Config'
|
|
6
6
|
|
|
7
|
-
export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
8
|
-
|
|
9
|
-
TModule
|
|
10
|
-
> {
|
|
7
|
+
export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module> extends AbstractNode<TConfig, TModule> {
|
|
8
|
+
static configSchema = NodeConfigSchema
|
|
11
9
|
private registeredModuleMap = new Map<string, TModule>()
|
|
12
10
|
|
|
13
11
|
static override async create(params?: ModuleParams<NodeConfig>): Promise<MemoryNode> {
|
|
@@ -24,7 +22,6 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
override register(module: TModule) {
|
|
27
|
-
module.resolver = this.internalResolver
|
|
28
25
|
this.registeredModuleMap.set(module.address, module)
|
|
29
26
|
}
|
|
30
27
|
|
package/src/NodeWrapper.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
1
2
|
import { ArchivistWrapper } from '@xyo-network/archivist'
|
|
2
3
|
import { AbstractModule, Module, ModuleFilter, ModuleWrapper } from '@xyo-network/module'
|
|
3
|
-
import { PayloadWrapper } from '@xyo-network/payload'
|
|
4
|
+
import { isXyoPayloadOfSchemaType, PayloadWrapper } from '@xyo-network/payload'
|
|
4
5
|
import { Promisable } from '@xyo-network/promise'
|
|
5
6
|
import compact from 'lodash/compact'
|
|
6
7
|
|
|
8
|
+
import { AbstractNode } from './AbstractNode'
|
|
7
9
|
import { NodeModule } from './NodeModule'
|
|
8
10
|
import {
|
|
9
11
|
XyoNodeAttachedQuery,
|
|
@@ -16,7 +18,7 @@ import {
|
|
|
16
18
|
XyoNodeRegisteredQuerySchema,
|
|
17
19
|
} from './Queries'
|
|
18
20
|
|
|
19
|
-
export class NodeWrapper extends ModuleWrapper implements NodeModule {
|
|
21
|
+
export class NodeWrapper<TModule extends AbstractNode = AbstractNode> extends ModuleWrapper<TModule> implements NodeModule {
|
|
20
22
|
public isModuleResolver = true
|
|
21
23
|
|
|
22
24
|
private _archivist?: ArchivistWrapper
|
|
@@ -28,20 +30,16 @@ export class NodeWrapper extends ModuleWrapper implements NodeModule {
|
|
|
28
30
|
|
|
29
31
|
async attach(address: string, name?: string): Promise<void> {
|
|
30
32
|
const queryPayload = PayloadWrapper.parse<XyoNodeAttachQuery>({ address, name, schema: XyoNodeAttachQuerySchema })
|
|
31
|
-
|
|
32
|
-
const result = await this.module.query(query[0], query[1])
|
|
33
|
-
this.throwErrors(query, result)
|
|
33
|
+
await this.sendQuery(queryPayload)
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
async attached(): Promise<string[]> {
|
|
37
37
|
const queryPayload = PayloadWrapper.parse<XyoNodeAttachedQuery>({ schema: XyoNodeAttachedQuerySchema })
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
this.throwErrors(query, result)
|
|
41
|
-
return compact(result[1].map((payload) => payload?.schema))
|
|
38
|
+
const payloads: AddressPayload[] = (await this.sendQuery(queryPayload)).filter(isXyoPayloadOfSchemaType<AddressPayload>(AddressSchema))
|
|
39
|
+
return payloads.map((p) => p.address)
|
|
42
40
|
}
|
|
43
41
|
|
|
44
|
-
async attachedModules(): Promise<
|
|
42
|
+
async attachedModules(): Promise<Module[]> {
|
|
45
43
|
const addresses = await this.attached()
|
|
46
44
|
return compact(await this.resolve({ address: addresses }))
|
|
47
45
|
}
|
|
@@ -51,37 +49,29 @@ export class NodeWrapper extends ModuleWrapper implements NodeModule {
|
|
|
51
49
|
await this.sendQuery(queryPayload)
|
|
52
50
|
}
|
|
53
51
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
register(_module: Module): void {
|
|
59
|
-
throw Error('Not implemented')
|
|
52
|
+
register(mod: AbstractModule): void {
|
|
53
|
+
return this.module.register(mod)
|
|
60
54
|
}
|
|
61
55
|
|
|
62
56
|
async registered(): Promise<string[]> {
|
|
63
57
|
const queryPayload = PayloadWrapper.parse<XyoNodeRegisteredQuery>({ schema: XyoNodeRegisteredQuerySchema })
|
|
64
|
-
const
|
|
65
|
-
return
|
|
58
|
+
const payloads: AddressPayload[] = (await this.sendQuery(queryPayload)).filter(isXyoPayloadOfSchemaType<AddressPayload>(AddressSchema))
|
|
59
|
+
return payloads.map((p) => p.address)
|
|
66
60
|
}
|
|
67
61
|
|
|
68
|
-
async registeredModules(): Promise<
|
|
69
|
-
|
|
70
|
-
return compact(await this.resolve({ address: addresses }))
|
|
62
|
+
async registeredModules(): Promise<Module[]> {
|
|
63
|
+
return await this.module.registeredModules()
|
|
71
64
|
}
|
|
72
65
|
|
|
73
|
-
resolve(
|
|
74
|
-
|
|
66
|
+
resolve(filter: ModuleFilter): Promisable<Module[]> {
|
|
67
|
+
return this.module.resolve(filter)
|
|
75
68
|
}
|
|
76
69
|
|
|
77
|
-
tryResolve(
|
|
78
|
-
|
|
70
|
+
tryResolve(filter: ModuleFilter): Promisable<Module[]> {
|
|
71
|
+
return this.module.tryResolve(filter)
|
|
79
72
|
}
|
|
80
73
|
|
|
81
|
-
unregister(
|
|
82
|
-
|
|
74
|
+
unregister(mod: AbstractModule): void {
|
|
75
|
+
return this.module.unregister(mod)
|
|
83
76
|
}
|
|
84
77
|
}
|
|
85
|
-
|
|
86
|
-
/** @deprecated use NodeWrapper instead */
|
|
87
|
-
export class XyoNodeWrapper extends NodeWrapper {}
|