@xyo-network/node 2.37.6 → 2.38.0-rc.2
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/MemoryNode.d.ts +1 -1
- package/dist/cjs/MemoryNode.d.ts.map +1 -1
- package/dist/cjs/MemoryNode.js +10 -8
- package/dist/cjs/MemoryNode.js.map +1 -1
- package/dist/cjs/NodeModule.d.ts +1 -1
- package/dist/cjs/NodeModule.d.ts.map +1 -1
- package/dist/cjs/XyoNode.d.ts +4 -12
- package/dist/cjs/XyoNode.d.ts.map +1 -1
- package/dist/cjs/XyoNode.js +43 -32
- package/dist/cjs/XyoNode.js.map +1 -1
- package/dist/cjs/XyoNodeWrapper.d.ts +2 -1
- package/dist/cjs/XyoNodeWrapper.d.ts.map +1 -1
- package/dist/cjs/XyoNodeWrapper.js +3 -3
- package/dist/cjs/XyoNodeWrapper.js.map +1 -1
- package/dist/docs.json +3995 -2911
- package/dist/esm/MemoryNode.d.ts +1 -1
- package/dist/esm/MemoryNode.d.ts.map +1 -1
- package/dist/esm/MemoryNode.js +9 -7
- package/dist/esm/MemoryNode.js.map +1 -1
- package/dist/esm/NodeModule.d.ts +1 -1
- package/dist/esm/NodeModule.d.ts.map +1 -1
- package/dist/esm/XyoNode.d.ts +4 -12
- package/dist/esm/XyoNode.d.ts.map +1 -1
- package/dist/esm/XyoNode.js +12 -9
- package/dist/esm/XyoNode.js.map +1 -1
- package/dist/esm/XyoNodeWrapper.d.ts +2 -1
- package/dist/esm/XyoNodeWrapper.d.ts.map +1 -1
- package/dist/esm/XyoNodeWrapper.js +3 -3
- package/dist/esm/XyoNodeWrapper.js.map +1 -1
- package/package.json +8 -8
- package/src/MemoryNode.spec.ts +20 -8
- package/src/MemoryNode.ts +9 -7
- package/src/NodeModule.ts +1 -1
- package/src/XyoNode.ts +17 -14
- package/src/XyoNodeWrapper.ts +5 -4
package/dist/esm/MemoryNode.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule
|
|
|
9
9
|
registered(): string[];
|
|
10
10
|
attachedModules(): TModule[];
|
|
11
11
|
registeredModules(): TModule[];
|
|
12
|
-
resolve(
|
|
12
|
+
resolve(addresses: string[]): (TModule | null)[];
|
|
13
13
|
register(module: TModule): void;
|
|
14
14
|
attach(address: string): void;
|
|
15
15
|
detach(address: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACvI,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,iBAAiB,CAA6B;IAEtC,OAAO,IAAI,MAAM,EAAE;IAI1B,QAAQ;IAMR,UAAU;IAMV,eAAe;IAMf,iBAAiB;IAMjB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACvI,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,iBAAiB,CAA6B;IAEtC,OAAO,IAAI,MAAM,EAAE;IAI1B,QAAQ;IAMR,UAAU;IAMV,eAAe;IAMf,iBAAiB;IAMjB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE;IAWhD,QAAQ,CAAC,MAAM,EAAE,OAAO;IAIxB,MAAM,CAAC,OAAO,EAAE,MAAM;IAKtB,MAAM,CAAC,OAAO,EAAE,MAAM;CAGhC"}
|
package/dist/esm/MemoryNode.js
CHANGED
|
@@ -28,13 +28,15 @@ export class MemoryNode extends XyoNode {
|
|
|
28
28
|
return value;
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
resolve(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
resolve(addresses) {
|
|
32
|
+
return addresses.map((address) => {
|
|
33
|
+
console.log(`Resolving in MemoryNode: ${address}`);
|
|
34
|
+
if (address === 'archivist') {
|
|
35
|
+
console.log(`attachedModules: ${JSON.stringify(this.attachedModules(), null, 2)}`);
|
|
36
|
+
return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null;
|
|
37
|
+
}
|
|
38
|
+
return this.attachedModuleMap?.get(address) ?? null;
|
|
39
|
+
});
|
|
38
40
|
}
|
|
39
41
|
register(module) {
|
|
40
42
|
this.registeredModuleMap.set(module.address, module);
|
|
@@ -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,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAInE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,OAAO,UAA2F,SAAQ,OAAyB;IAC/H,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAChD,iBAAiB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEtC,OAAO;QACrB,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACjF,CAAC;IAEQ,QAAQ;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3D,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,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,eAAe;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/D,OAAO,KAAK,CAAA;QACd,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,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAInE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,OAAO,UAA2F,SAAQ,OAAyB;IAC/H,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAChD,iBAAiB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEtC,OAAO;QACrB,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACjF,CAAC;IAEQ,QAAQ;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3D,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,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,eAAe;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/D,OAAO,KAAK,CAAA;QACd,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,OAAO,CAAC,SAAmB;QAClC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAA;YAClD,IAAI,OAAO,KAAK,WAAW,EAAE;gBAC3B,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;gBAClF,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,IAAI,IAAI,CAAA;aACrG;YACD,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;QACrD,CAAC,CAAC,CAAA;IACJ,CAAC;IAEQ,QAAQ,CAAC,MAAe;QAC/B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;IAEQ,MAAM,CAAC,OAAe;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,iCAAiC,CAAC,CAAA;QACjG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC7C,CAAC;IAEQ,MAAM,CAAC,OAAe;QAC7B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;CACF"}
|
package/dist/esm/NodeModule.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { Node } from './Node';
|
|
|
4
4
|
export interface NodeModule<TModule extends Module = Module> extends Node, Module {
|
|
5
5
|
registeredModules(): PromisableArray<TModule>;
|
|
6
6
|
attachedModules(): PromisableArray<TModule>;
|
|
7
|
-
resolve(address: string): Promisable<TModule | null>;
|
|
7
|
+
resolve(address: string[]): Promisable<(TModule | null)[]>;
|
|
8
8
|
register(module: TModule): Promisable<void>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=NodeModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeModule.d.ts","sourceRoot":"","sources":["../../src/NodeModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAElE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,MAAM,WAAW,UAAU,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,IAAI,EAAE,MAAM;IAC/E,iBAAiB,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC7C,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"NodeModule.d.ts","sourceRoot":"","sources":["../../src/NodeModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAElE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,MAAM,WAAW,UAAU,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,IAAI,EAAE,MAAM;IAC/E,iBAAiB,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC7C,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1D,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CAC5C"}
|
package/dist/esm/XyoNode.d.ts
CHANGED
|
@@ -1,30 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ModuleQueryResult, XyoModule, XyoModuleResolverFunc, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
1
|
+
import { Module, ModuleQueryResult, XyoModule, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
3
2
|
import { XyoPayload } from '@xyo-network/payload';
|
|
4
3
|
import { NodeConfig } from './Config';
|
|
5
4
|
import { NodeModule } from './NodeModule';
|
|
6
5
|
export declare abstract class XyoNode<TConfig extends NodeConfig = NodeConfig, TModule extends XyoModule = XyoModule> extends XyoModule<TConfig> implements NodeModule {
|
|
7
|
-
constructor(config?: TConfig, account?: XyoAccount, resolver?: XyoModuleResolverFunc);
|
|
8
6
|
private storeInstanceData;
|
|
9
7
|
/** Query Functions - Start */
|
|
10
8
|
abstract attach(_address: string): void;
|
|
11
9
|
abstract detach(_address: string): void;
|
|
12
|
-
abstract resolve(_address: string): TModule | null;
|
|
10
|
+
abstract resolve(_address: string[]): (TModule | null)[];
|
|
13
11
|
private _archivist?;
|
|
14
|
-
get archivist():
|
|
15
|
-
security?: {
|
|
16
|
-
allowed?: Record<string, string[][]> | undefined;
|
|
17
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
18
|
-
} | undefined;
|
|
19
|
-
} & {
|
|
20
|
-
schema: string;
|
|
21
|
-
}>;
|
|
12
|
+
get archivist(): Module;
|
|
22
13
|
registered(): string[];
|
|
23
14
|
attached(): string[];
|
|
24
15
|
registeredModules(): TModule[];
|
|
25
16
|
attachedModules(): TModule[];
|
|
26
17
|
/** Query Functions - End */
|
|
27
18
|
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
|
|
19
|
+
start(): Promise<this>;
|
|
28
20
|
register(_module: TModule): void;
|
|
29
21
|
}
|
|
30
22
|
//# sourceMappingURL=XyoNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoNode.d.ts","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"XyoNode.d.ts","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAA4B,SAAS,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1H,OAAO,EAAE,UAAU,EAAe,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,8BAAsB,OAAO,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,CAC1G,SAAQ,SAAS,CAAC,OAAO,CACzB,YAAW,UAAU;YAEP,iBAAiB;IAM/B,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACvC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACvC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE;IAExD,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,IAAW,SAAS,IAAI,MAAM,CAQ7B;IAED,UAAU,IAAI,MAAM,EAAE;IAGtB,QAAQ,IAAI,MAAM,EAAE;IAIpB,iBAAiB,IAAI,OAAO,EAAE;IAG9B,eAAe,IAAI,OAAO,EAAE;IAG5B,4BAA4B;IAEb,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8B3H,KAAK;IAMpB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGjC"}
|
package/dist/esm/XyoNode.js
CHANGED
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
|
-
import { forget } from '@xylabs/forget';
|
|
3
2
|
import { XyoAccount } from '@xyo-network/account';
|
|
4
3
|
import { XyoArchivistWrapper, XyoMemoryArchivist } from '@xyo-network/archivist';
|
|
5
4
|
import { QueryBoundWitnessWrapper, XyoModule } from '@xyo-network/module';
|
|
6
5
|
import { XyoModuleInstanceSchema } from '@xyo-network/module-instance-payload-plugin';
|
|
7
6
|
import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeRegisteredQuerySchema } from './Queries';
|
|
8
7
|
export class XyoNode extends XyoModule {
|
|
9
|
-
constructor(config, account, resolver) {
|
|
10
|
-
super(config, account, resolver);
|
|
11
|
-
forget(this.storeInstanceData());
|
|
12
|
-
}
|
|
13
8
|
async storeInstanceData() {
|
|
14
9
|
const payload = { address: this.address, queries: this.queries, schema: XyoModuleInstanceSchema };
|
|
15
10
|
const [bw] = await this.bindResult([payload]);
|
|
16
|
-
await new XyoArchivistWrapper(this.archivist).insert([bw, payload]);
|
|
11
|
+
await new XyoArchivistWrapper({ module: this.archivist }).insert([bw, payload]);
|
|
17
12
|
}
|
|
18
13
|
_archivist;
|
|
19
14
|
get archivist() {
|
|
20
15
|
if (!this._archivist) {
|
|
21
|
-
this._archivist =
|
|
16
|
+
this._archivist =
|
|
17
|
+
this._archivist ??
|
|
18
|
+
(this.config?.archivist ? this.resolver?.fromAddress([this.config?.archivist]).shift() : undefined) ??
|
|
19
|
+
new XyoMemoryArchivist();
|
|
22
20
|
}
|
|
23
21
|
return this._archivist;
|
|
24
22
|
}
|
|
@@ -35,7 +33,7 @@ export class XyoNode extends XyoModule {
|
|
|
35
33
|
throw new Error('Method not implemented.');
|
|
36
34
|
}
|
|
37
35
|
/** Query Functions - End */
|
|
38
|
-
query(query, payloads) {
|
|
36
|
+
async query(query, payloads) {
|
|
39
37
|
const wrapper = QueryBoundWitnessWrapper.parseQuery(query);
|
|
40
38
|
const typedQuery = wrapper.query.payload;
|
|
41
39
|
assertEx(this.queryable(typedQuery.schema, wrapper.addresses));
|
|
@@ -59,10 +57,15 @@ export class XyoNode extends XyoModule {
|
|
|
59
57
|
break;
|
|
60
58
|
}
|
|
61
59
|
default:
|
|
62
|
-
return super.query(query, payloads);
|
|
60
|
+
return await super.query(query, payloads);
|
|
63
61
|
}
|
|
64
62
|
return this.bindResult(resultPayloads, queryAccount);
|
|
65
63
|
}
|
|
64
|
+
async start() {
|
|
65
|
+
await super.start();
|
|
66
|
+
await this.storeInstanceData();
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
66
69
|
register(_module) {
|
|
67
70
|
throw new Error('Method not implemented.');
|
|
68
71
|
}
|
package/dist/esm/XyoNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { XyoArchivistWrapper } from '@xyo-network/archivist';
|
|
2
2
|
import { Module, XyoModule, XyoModuleWrapper } from '@xyo-network/module';
|
|
3
|
+
import { Promisable } from '@xyo-network/promise';
|
|
3
4
|
import { NodeModule } from './NodeModule';
|
|
4
5
|
export declare class XyoNodeWrapper extends XyoModuleWrapper implements NodeModule {
|
|
5
6
|
private _archivist?;
|
|
@@ -11,6 +12,6 @@ export declare class XyoNodeWrapper extends XyoModuleWrapper implements NodeModu
|
|
|
11
12
|
detach(address: string): Promise<void>;
|
|
12
13
|
registeredModules(): Promise<XyoModule[]>;
|
|
13
14
|
attachedModules(): Promise<XyoModule[]>;
|
|
14
|
-
resolve(_address: string): XyoModule | null
|
|
15
|
+
resolve(_address: string[]): Promisable<(XyoModule | null)[]>;
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=XyoNodeWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoNodeWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoNodeWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAYzC,qBAAa,cAAe,SAAQ,gBAAiB,YAAW,UAAU;IACxE,OAAO,CAAC,UAAU,CAAC,CAAqB;IACxC,IAAW,SAAS,wBAGnB;IAED,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAGzB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAK/B,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAK7B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtC,iBAAiB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIzC,eAAe,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAK7C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;CAG9D"}
|
|
@@ -6,7 +6,7 @@ import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeDetachQuer
|
|
|
6
6
|
export class XyoNodeWrapper extends XyoModuleWrapper {
|
|
7
7
|
_archivist;
|
|
8
8
|
get archivist() {
|
|
9
|
-
this._archivist = this._archivist ?? new XyoArchivistWrapper(this.module);
|
|
9
|
+
this._archivist = this._archivist ?? new XyoArchivistWrapper({ module: this.module });
|
|
10
10
|
return this._archivist;
|
|
11
11
|
}
|
|
12
12
|
register(_module) {
|
|
@@ -36,11 +36,11 @@ export class XyoNodeWrapper extends XyoModuleWrapper {
|
|
|
36
36
|
}
|
|
37
37
|
async registeredModules() {
|
|
38
38
|
const addresses = await this.registered();
|
|
39
|
-
return compact(await
|
|
39
|
+
return compact(await this.resolve(addresses));
|
|
40
40
|
}
|
|
41
41
|
async attachedModules() {
|
|
42
42
|
const addresses = await this.attached();
|
|
43
|
-
return compact(await
|
|
43
|
+
return compact(await this.resolve(addresses));
|
|
44
44
|
}
|
|
45
45
|
resolve(_address) {
|
|
46
46
|
throw Error('Not implemented');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoNodeWrapper.js","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAqB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoNodeWrapper.js","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,13 +11,12 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.6.9",
|
|
14
|
-
"@
|
|
15
|
-
"@xyo-network/
|
|
16
|
-
"@xyo-network/
|
|
17
|
-
"@xyo-network/module": "^2.
|
|
18
|
-
"@xyo-network/
|
|
19
|
-
"@xyo-network/
|
|
20
|
-
"@xyo-network/promise": "^2.37.6",
|
|
14
|
+
"@xyo-network/account": "^2.38.0-rc.2",
|
|
15
|
+
"@xyo-network/archivist": "^2.38.0-rc.2",
|
|
16
|
+
"@xyo-network/module": "^2.38.0-rc.2",
|
|
17
|
+
"@xyo-network/module-instance-payload-plugin": "^2.38.0-rc.2",
|
|
18
|
+
"@xyo-network/payload": "^2.38.0-rc.2",
|
|
19
|
+
"@xyo-network/promise": "^2.38.0-rc.2",
|
|
21
20
|
"lodash": "^4.17.21",
|
|
22
21
|
"tslib": "^2.4.0"
|
|
23
22
|
},
|
|
@@ -58,5 +57,6 @@
|
|
|
58
57
|
},
|
|
59
58
|
"sideEffects": false,
|
|
60
59
|
"types": "dist/esm/index.d.ts",
|
|
61
|
-
"version": "2.
|
|
60
|
+
"version": "2.38.0-rc.2",
|
|
61
|
+
"stableVersion": "2.37.6"
|
|
62
62
|
}
|
package/src/MemoryNode.spec.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
/* eslint-disable max-statements */
|
|
2
2
|
import { XyoArchivistWrapper } from '@xyo-network/archivist'
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import {
|
|
4
|
+
DivinerModule,
|
|
5
|
+
XyoArchivistPayloadDiviner,
|
|
6
|
+
XyoArchivistPayloadDivinerConfigSchema,
|
|
7
|
+
XyoDivinerWrapper,
|
|
8
|
+
XyoHuriPayload,
|
|
9
|
+
XyoHuriSchema,
|
|
10
|
+
} from '@xyo-network/diviner'
|
|
11
|
+
import { XyoModule, XyoModuleResolver } from '@xyo-network/module'
|
|
5
12
|
import { PayloadWrapper, XyoPayload, XyoPayloadBuilder, XyoPayloadSchema } from '@xyo-network/sdk'
|
|
6
13
|
|
|
7
14
|
import { MemoryNode } from './MemoryNode'
|
|
@@ -11,21 +18,26 @@ test('Create Node', async () => {
|
|
|
11
18
|
const XyoMemoryArchivist = (await import('@xyo-network/archivist')).XyoMemoryArchivist
|
|
12
19
|
const node: NodeModule = new MemoryNode()
|
|
13
20
|
const archivist = new XyoMemoryArchivist()
|
|
14
|
-
|
|
21
|
+
await archivist.start()
|
|
22
|
+
const diviner: XyoModule = new XyoArchivistPayloadDiviner({
|
|
23
|
+
config: { archivist: archivist.address, schema: XyoArchivistPayloadDivinerConfigSchema },
|
|
24
|
+
resolver: new XyoModuleResolver().add(archivist),
|
|
25
|
+
})
|
|
26
|
+
await diviner.start()
|
|
15
27
|
await node.register(archivist)
|
|
16
28
|
node.attach(archivist.address)
|
|
17
29
|
await node.register(diviner)
|
|
18
30
|
node.attach(diviner.address)
|
|
19
31
|
expect((await node.registered()).length).toBe(2)
|
|
20
32
|
expect((await node.attached()).length).toBe(2)
|
|
21
|
-
const foundArchivist = await node.resolve(archivist.address)
|
|
33
|
+
const foundArchivist = (await node.resolve([archivist.address])).shift()
|
|
22
34
|
expect(foundArchivist).toBeDefined()
|
|
23
35
|
expect(foundArchivist?.address).toBe(archivist.address)
|
|
24
36
|
const testPayload = new XyoPayloadBuilder<XyoPayload<{ schema: XyoPayloadSchema; test: boolean }>>({ schema: XyoPayloadSchema })
|
|
25
37
|
.fields({ test: true })
|
|
26
38
|
.build()
|
|
27
39
|
|
|
28
|
-
const foundArchivistWrapper = foundArchivist ? new XyoArchivistWrapper(foundArchivist) : undefined
|
|
40
|
+
const foundArchivistWrapper = foundArchivist ? new XyoArchivistWrapper({ module: foundArchivist }) : undefined
|
|
29
41
|
await foundArchivistWrapper?.insert([testPayload])
|
|
30
42
|
|
|
31
43
|
/*const subscribeQuery: XyoModuleSubscribeQuery = { payloads: [testPayload], schema: XyoModuleSubscribeQuerySchema }
|
|
@@ -37,11 +49,11 @@ test('Create Node', async () => {
|
|
|
37
49
|
if (payloads && payloads[0]) {
|
|
38
50
|
const huri = new PayloadWrapper(payloads[0]).hash
|
|
39
51
|
const huriPayload: XyoHuriPayload = { huri: [huri], schema: XyoHuriSchema }
|
|
40
|
-
const
|
|
41
|
-
const foundDiviner =
|
|
52
|
+
const module = (await node.resolve([diviner.address])).shift() as DivinerModule
|
|
53
|
+
const foundDiviner = module ? new XyoDivinerWrapper({ module }) : null
|
|
42
54
|
expect(foundDiviner).toBeDefined()
|
|
43
55
|
if (foundDiviner) {
|
|
44
|
-
const foundDivinerWrapper = new XyoDivinerWrapper(foundDiviner)
|
|
56
|
+
const foundDivinerWrapper = new XyoDivinerWrapper({ module: foundDiviner })
|
|
45
57
|
const payloads = await foundDivinerWrapper.divine([huriPayload])
|
|
46
58
|
console.log(`payloads: ${JSON.stringify(payloads, null, 2)}`)
|
|
47
59
|
expect(payloads?.length).toBe(1)
|
package/src/MemoryNode.ts
CHANGED
|
@@ -38,13 +38,15 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
|
38
38
|
})
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
override resolve(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
override resolve(addresses: string[]): (TModule | null)[] {
|
|
42
|
+
return addresses.map((address) => {
|
|
43
|
+
console.log(`Resolving in MemoryNode: ${address}`)
|
|
44
|
+
if (address === 'archivist') {
|
|
45
|
+
console.log(`attachedModules: ${JSON.stringify(this.attachedModules(), null, 2)}`)
|
|
46
|
+
return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null
|
|
47
|
+
}
|
|
48
|
+
return this.attachedModuleMap?.get(address) ?? null
|
|
49
|
+
})
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
override register(module: TModule) {
|
package/src/NodeModule.ts
CHANGED
|
@@ -6,6 +6,6 @@ import { Node } from './Node'
|
|
|
6
6
|
export interface NodeModule<TModule extends Module = Module> extends Node, Module {
|
|
7
7
|
registeredModules(): PromisableArray<TModule>
|
|
8
8
|
attachedModules(): PromisableArray<TModule>
|
|
9
|
-
resolve(address: string): Promisable<TModule | null>
|
|
9
|
+
resolve(address: string[]): Promisable<(TModule | null)[]>
|
|
10
10
|
register(module: TModule): Promisable<void>
|
|
11
11
|
}
|
package/src/XyoNode.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import { forget } from '@xylabs/forget'
|
|
3
2
|
import { XyoAccount } from '@xyo-network/account'
|
|
4
3
|
import { XyoArchivistWrapper, XyoMemoryArchivist } from '@xyo-network/archivist'
|
|
5
|
-
import { ModuleQueryResult, QueryBoundWitnessWrapper, XyoModule,
|
|
4
|
+
import { Module, ModuleQueryResult, QueryBoundWitnessWrapper, XyoModule, XyoQueryBoundWitness } from '@xyo-network/module'
|
|
6
5
|
import { XyoModuleInstanceSchema } from '@xyo-network/module-instance-payload-plugin'
|
|
7
6
|
import { XyoPayload, XyoPayloads } from '@xyo-network/payload'
|
|
8
7
|
|
|
@@ -13,26 +12,24 @@ export abstract class XyoNode<TConfig extends NodeConfig = NodeConfig, TModule e
|
|
|
13
12
|
extends XyoModule<TConfig>
|
|
14
13
|
implements NodeModule
|
|
15
14
|
{
|
|
16
|
-
constructor(config?: TConfig, account?: XyoAccount, resolver?: XyoModuleResolverFunc) {
|
|
17
|
-
super(config, account, resolver)
|
|
18
|
-
forget(this.storeInstanceData())
|
|
19
|
-
}
|
|
20
|
-
|
|
21
15
|
private async storeInstanceData() {
|
|
22
16
|
const payload = { address: this.address, queries: this.queries, schema: XyoModuleInstanceSchema }
|
|
23
17
|
const [bw] = await this.bindResult([payload])
|
|
24
|
-
await new XyoArchivistWrapper(this.archivist).insert([bw, payload])
|
|
18
|
+
await new XyoArchivistWrapper({ module: this.archivist }).insert([bw, payload])
|
|
25
19
|
}
|
|
26
20
|
|
|
27
21
|
/** Query Functions - Start */
|
|
28
22
|
abstract attach(_address: string): void
|
|
29
23
|
abstract detach(_address: string): void
|
|
30
|
-
abstract resolve(_address: string): TModule | null
|
|
24
|
+
abstract resolve(_address: string[]): (TModule | null)[]
|
|
31
25
|
|
|
32
|
-
private _archivist?:
|
|
33
|
-
public get archivist() {
|
|
26
|
+
private _archivist?: Module
|
|
27
|
+
public get archivist(): Module {
|
|
34
28
|
if (!this._archivist) {
|
|
35
|
-
this._archivist =
|
|
29
|
+
this._archivist =
|
|
30
|
+
this._archivist ??
|
|
31
|
+
(this.config?.archivist ? this.resolver?.fromAddress([this.config?.archivist]).shift() : undefined) ??
|
|
32
|
+
new XyoMemoryArchivist()
|
|
36
33
|
}
|
|
37
34
|
return this._archivist
|
|
38
35
|
}
|
|
@@ -52,7 +49,7 @@ export abstract class XyoNode<TConfig extends NodeConfig = NodeConfig, TModule e
|
|
|
52
49
|
}
|
|
53
50
|
/** Query Functions - End */
|
|
54
51
|
|
|
55
|
-
override query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult> {
|
|
52
|
+
override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult> {
|
|
56
53
|
const wrapper = QueryBoundWitnessWrapper.parseQuery<XyoNodeQuery>(query)
|
|
57
54
|
const typedQuery = wrapper.query.payload
|
|
58
55
|
assertEx(this.queryable(typedQuery.schema, wrapper.addresses))
|
|
@@ -77,11 +74,17 @@ export abstract class XyoNode<TConfig extends NodeConfig = NodeConfig, TModule e
|
|
|
77
74
|
break
|
|
78
75
|
}
|
|
79
76
|
default:
|
|
80
|
-
return super.query(query, payloads)
|
|
77
|
+
return await super.query(query, payloads)
|
|
81
78
|
}
|
|
82
79
|
return this.bindResult(resultPayloads, queryAccount)
|
|
83
80
|
}
|
|
84
81
|
|
|
82
|
+
override async start() {
|
|
83
|
+
await super.start()
|
|
84
|
+
await this.storeInstanceData()
|
|
85
|
+
return this
|
|
86
|
+
}
|
|
87
|
+
|
|
85
88
|
register(_module: TModule): void {
|
|
86
89
|
throw new Error('Method not implemented.')
|
|
87
90
|
}
|
package/src/XyoNodeWrapper.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { XyoArchivistWrapper } from '@xyo-network/archivist'
|
|
2
2
|
import { Module, XyoModule, XyoModuleWrapper } from '@xyo-network/module'
|
|
3
3
|
import { PayloadWrapper } from '@xyo-network/payload'
|
|
4
|
+
import { Promisable } from '@xyo-network/promise'
|
|
4
5
|
import compact from 'lodash/compact'
|
|
5
6
|
|
|
6
7
|
import { NodeModule } from './NodeModule'
|
|
@@ -18,7 +19,7 @@ import {
|
|
|
18
19
|
export class XyoNodeWrapper extends XyoModuleWrapper implements NodeModule {
|
|
19
20
|
private _archivist?: XyoArchivistWrapper
|
|
20
21
|
public get archivist() {
|
|
21
|
-
this._archivist = this._archivist ?? new XyoArchivistWrapper(this.module)
|
|
22
|
+
this._archivist = this._archivist ?? new XyoArchivistWrapper({ module: this.module })
|
|
22
23
|
return this._archivist
|
|
23
24
|
}
|
|
24
25
|
|
|
@@ -50,14 +51,14 @@ export class XyoNodeWrapper extends XyoModuleWrapper implements NodeModule {
|
|
|
50
51
|
|
|
51
52
|
async registeredModules(): Promise<XyoModule[]> {
|
|
52
53
|
const addresses = await this.registered()
|
|
53
|
-
return compact(await
|
|
54
|
+
return compact(await this.resolve(addresses))
|
|
54
55
|
}
|
|
55
56
|
async attachedModules(): Promise<XyoModule[]> {
|
|
56
57
|
const addresses = await this.attached()
|
|
57
|
-
return compact(await
|
|
58
|
+
return compact(await this.resolve(addresses))
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
resolve(_address: string): XyoModule | null {
|
|
61
|
+
resolve(_address: string[]): Promisable<(XyoModule | null)[]> {
|
|
61
62
|
throw Error('Not implemented')
|
|
62
63
|
}
|
|
63
64
|
}
|