@xyo-network/node 2.43.6 → 2.43.8
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 +2 -2
- package/dist/cjs/AbstractNode.d.ts.map +1 -1
- package/dist/cjs/AbstractNode.js +2 -2
- package/dist/cjs/AbstractNode.js.map +1 -1
- package/dist/cjs/MemoryNode.d.ts +14 -2
- package/dist/cjs/MemoryNode.d.ts.map +1 -1
- package/dist/cjs/MemoryNode.js +15 -0
- package/dist/cjs/MemoryNode.js.map +1 -1
- package/dist/cjs/NodeWrapper.d.ts +10 -0
- package/dist/cjs/NodeWrapper.d.ts.map +1 -1
- package/dist/docs.json +18337 -9043
- package/dist/esm/AbstractNode.d.ts +2 -2
- package/dist/esm/AbstractNode.d.ts.map +1 -1
- package/dist/esm/AbstractNode.js +2 -2
- package/dist/esm/AbstractNode.js.map +1 -1
- package/dist/esm/MemoryNode.d.ts +14 -2
- package/dist/esm/MemoryNode.d.ts.map +1 -1
- package/dist/esm/MemoryNode.js +13 -0
- package/dist/esm/MemoryNode.js.map +1 -1
- package/dist/esm/NodeWrapper.d.ts +10 -0
- package/dist/esm/NodeWrapper.d.ts.map +1 -1
- package/package.json +11 -11
- package/src/AbstractNode.ts +7 -3
- package/src/MemoryNode.spec.ts +15 -0
- package/src/MemoryNode.ts +32 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Account } from '@xyo-network/account';
|
|
2
|
-
import { AbstractModule, Module, ModuleConstructable, ModuleDescription, ModuleFilter, ModuleParams, ModuleQueryResult, ModuleRepository, ModuleWrapper, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
2
|
+
import { AbstractModule, AbstractModuleConfig, Module, ModuleConstructable, ModuleDescription, ModuleFilter, ModuleParams, ModuleQueryResult, ModuleRepository, ModuleWrapper, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
3
3
|
import { XyoPayload } from '@xyo-network/payload-model';
|
|
4
4
|
import { Promisable } from '@xyo-network/promise';
|
|
5
5
|
import { NodeConfig } from './Config';
|
|
@@ -18,7 +18,7 @@ export declare abstract class AbstractNode<TConfig extends NodeConfig = NodeConf
|
|
|
18
18
|
description(): Promise<ModuleDescription>;
|
|
19
19
|
discover(_queryAccount?: Account | undefined): Promise<XyoPayload[]>;
|
|
20
20
|
queries(): string[];
|
|
21
|
-
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
|
|
21
|
+
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends AbstractModuleConfig = AbstractModuleConfig>(query: T, payloads?: XyoPayload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
|
|
22
22
|
register(_module: TModule): Promisable<void>;
|
|
23
23
|
registered(): Promisable<string[]>;
|
|
24
24
|
registeredModules(): Promisable<TModule[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,OAAO,EACL,cAAc,EACd,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EAIb,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,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,YAAY,CAAC,OAAO,CAAC;IACzI,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CAC7C;AAED,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,QAAQ,CAAC,YAAY,4BAAmB;IAE/C,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAErD,SAAS,aAAa,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC;IAKlE,IAAI,gBAAgB,IAAI,OAAO,CAE9B;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAInF,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI5B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAyBnE,OAAO;IAIR,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/AbstractNode.js
CHANGED
|
@@ -57,10 +57,10 @@ export class AbstractNode extends AbstractModule {
|
|
|
57
57
|
queries() {
|
|
58
58
|
return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeAttachedQuerySchema, XyoNodeRegisteredQuerySchema, ...super.queries()];
|
|
59
59
|
}
|
|
60
|
-
async query(query, payloads) {
|
|
60
|
+
async query(query, payloads, queryConfig) {
|
|
61
61
|
const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
|
|
62
62
|
const typedQuery = wrapper.query.payload;
|
|
63
|
-
assertEx(this.queryable(
|
|
63
|
+
assertEx(this.queryable(query, payloads, queryConfig));
|
|
64
64
|
const queryAccount = new Account();
|
|
65
65
|
const resultPayloads = [];
|
|
66
66
|
try {
|
|
@@ -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,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnE,OAAO,EACL,cAAc,
|
|
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,15 +1,27 @@
|
|
|
1
|
-
import { Module, ModuleFilter } from '@xyo-network/module';
|
|
1
|
+
import { Module, ModuleFilter, ModuleResolver } from '@xyo-network/module';
|
|
2
2
|
import { AbstractNode, AbstractNodeParams } from './AbstractNode';
|
|
3
3
|
import { NodeConfig } from './Config';
|
|
4
4
|
export interface MemoryNodeParams<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module> extends AbstractNodeParams<TConfig, TModule> {
|
|
5
5
|
autoAttachExternallyResolved?: boolean;
|
|
6
6
|
}
|
|
7
|
-
export
|
|
7
|
+
export type ListenerFunction<T> = (args: T) => void;
|
|
8
|
+
export interface ModuleEventEmitter<TEvent extends string, TEventArgs> {
|
|
9
|
+
on(event: TEvent, listener: ListenerFunction<TEventArgs>): this;
|
|
10
|
+
}
|
|
11
|
+
export interface ModuleResolverChangedEventArgs {
|
|
12
|
+
resolver?: ModuleResolver;
|
|
13
|
+
}
|
|
14
|
+
export type ResolverChangedEventEmitter = ModuleEventEmitter<'moduleResolverChanged', ModuleResolverChangedEventArgs>;
|
|
15
|
+
export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module> extends AbstractNode<TConfig, TModule> implements ResolverChangedEventEmitter {
|
|
8
16
|
static configSchema: "network.xyo.node.config";
|
|
9
17
|
private registeredModuleMap;
|
|
18
|
+
private readonly resolverChangedEventListeners;
|
|
19
|
+
get resolver(): ModuleResolver | undefined;
|
|
20
|
+
set resolver(resolver: ModuleResolver | undefined);
|
|
10
21
|
static create(params?: Partial<MemoryNodeParams>): Promise<MemoryNode>;
|
|
11
22
|
attach(address: string, name?: string): void;
|
|
12
23
|
detach(address: string): void;
|
|
24
|
+
on(event: 'moduleResolverChanged', listener: (args: ModuleResolverChangedEventArgs) => void): this;
|
|
13
25
|
register(module: TModule): void;
|
|
14
26
|
registered(): string[];
|
|
15
27
|
registeredModules(): TModule[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+C,MAAM,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+C,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEvH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAA;AAEvD,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CACxG,SAAQ,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC;IAC5C,4BAA4B,CAAC,EAAE,OAAO,CAAA;CACvC;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;AAEnD,MAAM,WAAW,kBAAkB,CAAC,MAAM,SAAS,MAAM,EAAE,UAAU;IACnE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;CAChE;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B;AAED,MAAM,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,uBAAuB,EAAE,8BAA8B,CAAC,CAAA;AAErH,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CAC9F,SAAQ,YAAY,CAAC,OAAO,EAAE,OAAO,CACrC,YAAW,2BAA2B;IAEtC,MAAM,CAAC,YAAY,4BAAmB;IACtC,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAyD;IAEvG,IAAa,QAAQ,IAIW,cAAc,GAAG,SAAS,CAFzD;IAED,IAAa,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,EAIzD;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAwB5E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAKrC,MAAM,CAAC,OAAO,EAAE,MAAM;IAI/B,EAAE,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,8BAA8B,KAAK,IAAI,GAAG,IAAI;IAKzF,QAAQ,CAAC,MAAM,EAAE,OAAO;IAIxB,UAAU;IAMV,iBAAiB;IAMX,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOlD,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAY3D,UAAU,CAAC,MAAM,EAAE,OAAO;CAGpC"}
|
package/dist/esm/MemoryNode.js
CHANGED
|
@@ -7,6 +7,15 @@ import { NodeConfigSchema } from './Config';
|
|
|
7
7
|
export class MemoryNode extends AbstractNode {
|
|
8
8
|
static configSchema = NodeConfigSchema;
|
|
9
9
|
registeredModuleMap = new Map();
|
|
10
|
+
resolverChangedEventListeners = [];
|
|
11
|
+
get resolver() {
|
|
12
|
+
return this._resolver;
|
|
13
|
+
}
|
|
14
|
+
set resolver(resolver) {
|
|
15
|
+
this._resolver = resolver;
|
|
16
|
+
const args = { resolver };
|
|
17
|
+
this.resolverChangedEventListeners?.map((listener) => listener(args));
|
|
18
|
+
}
|
|
10
19
|
static async create(params) {
|
|
11
20
|
const instance = (await super.create(params));
|
|
12
21
|
if (params?.resolver && params?.autoAttachExternallyResolved) {
|
|
@@ -39,6 +48,10 @@ export class MemoryNode extends AbstractNode {
|
|
|
39
48
|
detach(address) {
|
|
40
49
|
this.internalResolver.remove(address);
|
|
41
50
|
}
|
|
51
|
+
on(event, listener) {
|
|
52
|
+
this.resolverChangedEventListeners?.push(listener);
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
42
55
|
register(module) {
|
|
43
56
|
this.registeredModuleMap.set(module.address, module);
|
|
44
57
|
}
|
|
@@ -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,EAAE,gBAAgB,EAAE,yBAAyB,EAAwC,MAAM,qBAAqB,CAAA;AAEvH,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAc,gBAAgB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,19 @@ export declare class NodeWrapper<TModule extends NodeModule = NodeModule> extend
|
|
|
10
10
|
detach(address: string): Promise<void>;
|
|
11
11
|
registered(): Promise<string[]>;
|
|
12
12
|
resolve(filter?: ModuleFilter): import("@xyo-network/promise").Promisable<import("@xyo-network/module").Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
13
|
+
security?: {
|
|
14
|
+
allowed?: Record<string, string[][]> | undefined;
|
|
15
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
16
|
+
} | undefined;
|
|
17
|
+
} & {
|
|
13
18
|
schema: string;
|
|
14
19
|
}>[], never>;
|
|
15
20
|
tryResolve(filter?: ModuleFilter): import("@xyo-network/promise").Promisable<import("@xyo-network/module").Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
21
|
+
security?: {
|
|
22
|
+
allowed?: Record<string, string[][]> | undefined;
|
|
23
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
24
|
+
} | undefined;
|
|
25
|
+
} & {
|
|
16
26
|
schema: string;
|
|
17
27
|
}>[], never>;
|
|
18
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeWrapper.d.ts","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAIjE,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;IACnH,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,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMrC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY
|
|
1
|
+
{"version":3,"file":"NodeWrapper.d.ts","sourceRoot":"","sources":["../../src/NodeWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAIjE,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;IACnH,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,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMrC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY;;;;;;;;IAG7B,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY;;;;;;;;CAGjC"}
|
package/package.json
CHANGED
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
"@xylabs/assert": "^2.6.15",
|
|
14
14
|
"@xylabs/exists": "^2.6.15",
|
|
15
15
|
"@xylabs/promise": "^2.6.15",
|
|
16
|
-
"@xyo-network/account": "^2.43.
|
|
17
|
-
"@xyo-network/address-payload-plugin": "^2.43.
|
|
18
|
-
"@xyo-network/archivist-wrapper": "^2.43.
|
|
19
|
-
"@xyo-network/module": "^2.43.
|
|
20
|
-
"@xyo-network/module-model": "^2.43.
|
|
21
|
-
"@xyo-network/payload-builder": "^2.43.
|
|
22
|
-
"@xyo-network/payload-model": "^2.43.
|
|
23
|
-
"@xyo-network/payload-wrapper": "^2.43.
|
|
24
|
-
"@xyo-network/promise": "^2.43.
|
|
16
|
+
"@xyo-network/account": "^2.43.8",
|
|
17
|
+
"@xyo-network/address-payload-plugin": "^2.43.8",
|
|
18
|
+
"@xyo-network/archivist-wrapper": "^2.43.8",
|
|
19
|
+
"@xyo-network/module": "^2.43.8",
|
|
20
|
+
"@xyo-network/module-model": "^2.43.8",
|
|
21
|
+
"@xyo-network/payload-builder": "^2.43.8",
|
|
22
|
+
"@xyo-network/payload-model": "^2.43.8",
|
|
23
|
+
"@xyo-network/payload-wrapper": "^2.43.8",
|
|
24
|
+
"@xyo-network/promise": "^2.43.8"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@xylabs/ts-scripts-yarn3": "^2.12.
|
|
27
|
+
"@xylabs/ts-scripts-yarn3": "^2.12.3"
|
|
28
28
|
},
|
|
29
29
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
30
30
|
"browser": "dist/esm/index.js",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
},
|
|
60
60
|
"sideEffects": false,
|
|
61
61
|
"types": "dist/esm/index.d.ts",
|
|
62
|
-
"version": "2.43.
|
|
62
|
+
"version": "2.43.8"
|
|
63
63
|
}
|
package/src/AbstractNode.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { Account } from '@xyo-network/account'
|
|
|
4
4
|
import { AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
5
5
|
import {
|
|
6
6
|
AbstractModule,
|
|
7
|
+
AbstractModuleConfig,
|
|
7
8
|
Module,
|
|
8
9
|
ModuleConstructable,
|
|
9
10
|
ModuleDescription,
|
|
@@ -94,11 +95,14 @@ export abstract class AbstractNode<TConfig extends NodeConfig = NodeConfig, TMod
|
|
|
94
95
|
return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, XyoNodeAttachedQuerySchema, XyoNodeRegisteredQuerySchema, ...super.queries()]
|
|
95
96
|
}
|
|
96
97
|
|
|
97
|
-
override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness
|
|
98
|
+
override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends AbstractModuleConfig = AbstractModuleConfig>(
|
|
99
|
+
query: T,
|
|
100
|
+
payloads?: XyoPayload[],
|
|
101
|
+
queryConfig?: TConfig,
|
|
102
|
+
): Promise<ModuleQueryResult> {
|
|
98
103
|
const wrapper = QueryBoundWitnessWrapper.parseQuery<XyoNodeQuery>(query, payloads)
|
|
99
104
|
const typedQuery = wrapper.query.payload
|
|
100
|
-
assertEx(this.queryable(
|
|
101
|
-
|
|
105
|
+
assertEx(this.queryable(query, payloads, queryConfig))
|
|
102
106
|
const queryAccount = new Account()
|
|
103
107
|
const resultPayloads: XyoPayload[] = []
|
|
104
108
|
try {
|
package/src/MemoryNode.spec.ts
CHANGED
|
@@ -368,6 +368,21 @@ describe('MemoryNode', () => {
|
|
|
368
368
|
})
|
|
369
369
|
})
|
|
370
370
|
})
|
|
371
|
+
describe('on', () => {
|
|
372
|
+
describe('moduleResolverChanged', () => {
|
|
373
|
+
it('emits event', (done) => {
|
|
374
|
+
const resolver = new SimpleModuleResolver()
|
|
375
|
+
node.on('moduleResolverChanged', (args) => {
|
|
376
|
+
expect(args).toBeObject()
|
|
377
|
+
expect(args.resolver).toBe(resolver)
|
|
378
|
+
done()
|
|
379
|
+
})
|
|
380
|
+
expect(node.resolver).toBeUndefined()
|
|
381
|
+
node.resolver = resolver
|
|
382
|
+
expect(node.resolver).toBe(resolver)
|
|
383
|
+
})
|
|
384
|
+
})
|
|
385
|
+
})
|
|
371
386
|
})
|
|
372
387
|
|
|
373
388
|
const prettyPrintDescription = (description: ModuleDescription) => {
|
package/src/MemoryNode.ts
CHANGED
|
@@ -11,9 +11,35 @@ export interface MemoryNodeParams<TConfig extends NodeConfig = NodeConfig, TModu
|
|
|
11
11
|
autoAttachExternallyResolved?: boolean
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export
|
|
14
|
+
export type ListenerFunction<T> = (args: T) => void
|
|
15
|
+
|
|
16
|
+
export interface ModuleEventEmitter<TEvent extends string, TEventArgs> {
|
|
17
|
+
on(event: TEvent, listener: ListenerFunction<TEventArgs>): this
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface ModuleResolverChangedEventArgs {
|
|
21
|
+
resolver?: ModuleResolver
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type ResolverChangedEventEmitter = ModuleEventEmitter<'moduleResolverChanged', ModuleResolverChangedEventArgs>
|
|
25
|
+
|
|
26
|
+
export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends Module = Module>
|
|
27
|
+
extends AbstractNode<TConfig, TModule>
|
|
28
|
+
implements ResolverChangedEventEmitter
|
|
29
|
+
{
|
|
15
30
|
static configSchema = NodeConfigSchema
|
|
16
31
|
private registeredModuleMap = new Map<string, TModule>()
|
|
32
|
+
private readonly resolverChangedEventListeners: ListenerFunction<ModuleResolverChangedEventArgs>[] = []
|
|
33
|
+
|
|
34
|
+
override get resolver() {
|
|
35
|
+
return this._resolver
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
override set resolver(resolver: ModuleResolver | undefined) {
|
|
39
|
+
this._resolver = resolver
|
|
40
|
+
const args = { resolver }
|
|
41
|
+
this.resolverChangedEventListeners?.map((listener) => listener(args))
|
|
42
|
+
}
|
|
17
43
|
|
|
18
44
|
static override async create(params?: Partial<MemoryNodeParams>): Promise<MemoryNode> {
|
|
19
45
|
const instance = (await super.create(params)) as MemoryNode
|
|
@@ -48,6 +74,11 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
|
|
|
48
74
|
this.internalResolver.remove(address)
|
|
49
75
|
}
|
|
50
76
|
|
|
77
|
+
on(event: 'moduleResolverChanged', listener: (args: ModuleResolverChangedEventArgs) => void): this {
|
|
78
|
+
this.resolverChangedEventListeners?.push(listener)
|
|
79
|
+
return this
|
|
80
|
+
}
|
|
81
|
+
|
|
51
82
|
override register(module: TModule) {
|
|
52
83
|
this.registeredModuleMap.set(module.address, module)
|
|
53
84
|
}
|