@xyo-network/node 2.37.6 → 2.38.0-rc.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.
@@ -1,15 +1,16 @@
1
- import { XyoModule } from '@xyo-network/module';
1
+ import { XyoModule, XyoModuleParams } from '@xyo-network/module';
2
2
  import { NodeConfig } from './Config';
3
3
  import { XyoNode } from './XyoNode';
4
4
  export declare class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends XyoModule = XyoModule> extends XyoNode<TConfig, TModule> {
5
5
  private registeredModuleMap;
6
6
  private attachedModuleMap;
7
+ static create(params?: XyoModuleParams): Promise<MemoryNode>;
7
8
  queries(): string[];
8
9
  attached(): string[];
9
10
  registered(): string[];
10
11
  attachedModules(): TModule[];
11
12
  registeredModules(): TModule[];
12
- resolve(address: string): TModule | null;
13
+ resolve(addresses: string[]): (TModule | null)[];
13
14
  register(module: TModule): void;
14
15
  attach(address: string): void;
15
16
  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,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IASxC,QAAQ,CAAC,MAAM,EAAE,OAAO;IAIxB,MAAM,CAAC,OAAO,EAAE,MAAM;IAKtB,MAAM,CAAC,OAAO,EAAE,MAAM;CAGhC"}
1
+ {"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEhE,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;WAEhC,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAM3D,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"}
@@ -5,6 +5,11 @@ import { XyoNode } from './XyoNode';
5
5
  export class MemoryNode extends XyoNode {
6
6
  registeredModuleMap = new Map();
7
7
  attachedModuleMap = new Map();
8
+ static async create(params) {
9
+ const module = new MemoryNode(params);
10
+ await module.start();
11
+ return module;
12
+ }
8
13
  queries() {
9
14
  return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, ...super.queries()];
10
15
  }
@@ -28,13 +33,15 @@ export class MemoryNode extends XyoNode {
28
33
  return value;
29
34
  });
30
35
  }
31
- resolve(address) {
32
- console.log(`Resolving in MemoryNode: ${address}`);
33
- if (address === 'archivist') {
34
- console.log(`attachedModules: ${JSON.stringify(this.attachedModules(), null, 2)}`);
35
- return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null;
36
- }
37
- return this.attachedModuleMap?.get(address) ?? null;
36
+ resolve(addresses) {
37
+ return addresses.map((address) => {
38
+ console.log(`Resolving in MemoryNode: ${address}`);
39
+ if (address === 'archivist') {
40
+ console.log(`attachedModules: ${JSON.stringify(this.attachedModules(), null, 2)}`);
41
+ return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null;
42
+ }
43
+ return this.attachedModuleMap?.get(address) ?? null;
44
+ });
38
45
  }
39
46
  register(module) {
40
47
  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,OAAe;QAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAA;QAClD,IAAI,OAAO,KAAK,WAAW,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;YAClF,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,IAAI,IAAI,CAAA;SACrG;QACD,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;IACrD,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"}
1
+ {"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
@@ -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;IACpD,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CAC5C"}
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"}
@@ -1,30 +1,22 @@
1
- import { XyoAccount } from '@xyo-network/account';
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(): XyoModule<import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
15
- security?: {
16
- allowed?: Record<string, string[][]> | undefined;
17
- disallowed?: Record<string, string[]> | undefined;
18
- } | undefined;
19
- } & {
20
- schema: string;
21
- }>;
12
+ getArchivist(): Promise<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":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAA4B,SAAS,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAEzI,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;gBAET,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,qBAAqB;YAKtE,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,GAAG,OAAO,GAAG,IAAI;IAElD,OAAO,CAAC,UAAU,CAAC,CAAW;IAC9B,IAAW,SAAS;;;;;;;OAKnB;IAED,UAAU,IAAI,MAAM,EAAE;IAGtB,QAAQ,IAAI,MAAM,EAAE;IAIpB,iBAAiB,IAAI,OAAO,EAAE;IAG9B,eAAe,IAAI,OAAO,EAAE;IAG5B,4BAA4B;IAEnB,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8BpI,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGjC"}
1
+ {"version":3,"file":"XyoNode.d.ts","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAA6C,SAAS,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE3I,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;IACd,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAU5C,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;IAmC3H,KAAK;IAMpB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGjC"}
@@ -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
- import { QueryBoundWitnessWrapper, XyoModule } from '@xyo-network/module';
4
+ import { QueryBoundWitnessWrapper, XyoErrorBuilder, 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(await this.getArchivist()).insert([bw, payload]);
17
12
  }
18
13
  _archivist;
19
- get archivist() {
14
+ async getArchivist() {
20
15
  if (!this._archivist) {
21
- this._archivist = this._archivist ?? (this.config?.archivist ? this.resolver?.(this.config?.archivist) : undefined) ?? new XyoMemoryArchivist();
16
+ this._archivist =
17
+ this._archivist ??
18
+ (this.config?.archivist ? this.resolver?.fromAddress([this.config?.archivist]).shift() : undefined) ??
19
+ (await XyoMemoryArchivist.create());
22
20
  }
23
21
  return this._archivist;
24
22
  }
@@ -35,34 +33,45 @@ 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));
42
40
  const queryAccount = new XyoAccount();
43
41
  const resultPayloads = [];
44
- switch (typedQuery.schema) {
45
- case XyoNodeAttachQuerySchema: {
46
- this.attach(typedQuery.address);
47
- break;
48
- }
49
- case XyoNodeDetachQuerySchema: {
50
- this.detach(typedQuery.address);
51
- break;
52
- }
53
- case XyoNodeAttachedQuerySchema: {
54
- this.attached();
55
- break;
42
+ try {
43
+ switch (typedQuery.schema) {
44
+ case XyoNodeAttachQuerySchema: {
45
+ this.attach(typedQuery.address);
46
+ break;
47
+ }
48
+ case XyoNodeDetachQuerySchema: {
49
+ this.detach(typedQuery.address);
50
+ break;
51
+ }
52
+ case XyoNodeAttachedQuerySchema: {
53
+ this.attached();
54
+ break;
55
+ }
56
+ case XyoNodeRegisteredQuerySchema: {
57
+ this.registered();
58
+ break;
59
+ }
60
+ default:
61
+ return await super.query(query, payloads);
56
62
  }
57
- case XyoNodeRegisteredQuerySchema: {
58
- this.registered();
59
- break;
60
- }
61
- default:
62
- return super.query(query, payloads);
63
+ }
64
+ catch (ex) {
65
+ const error = ex;
66
+ resultPayloads.push(new XyoErrorBuilder(wrapper.hash, error.message).build());
63
67
  }
64
68
  return this.bindResult(resultPayloads, queryAccount);
65
69
  }
70
+ async start() {
71
+ await super.start();
72
+ await this.storeInstanceData();
73
+ return this;
74
+ }
66
75
  register(_module) {
67
76
  throw new Error('Method not implemented.');
68
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"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"}
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;AAIzE,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,GAAG,SAAS,GAAG,IAAI;CAG5C"}
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"}
@@ -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 Promise.all(addresses.map((address) => this.resolve(address))));
39
+ return compact(await this.resolve(addresses));
40
40
  }
41
41
  async attachedModules() {
42
42
  const addresses = await this.attached();
43
- return compact(await Promise.all(addresses.map((address) => this.resolve(address))));
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":"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"}
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
- "@xylabs/forget": "^2.6.9",
15
- "@xyo-network/account": "^2.37.6",
16
- "@xyo-network/archivist": "^2.37.6",
17
- "@xyo-network/module": "^2.37.6",
18
- "@xyo-network/module-instance-payload-plugin": "^2.37.6",
19
- "@xyo-network/payload": "^2.37.6",
20
- "@xyo-network/promise": "^2.37.6",
14
+ "@xyo-network/account": "^2.38.0-rc.10",
15
+ "@xyo-network/archivist": "^2.38.0-rc.10",
16
+ "@xyo-network/module": "^2.38.0-rc.10",
17
+ "@xyo-network/module-instance-payload-plugin": "^2.38.0-rc.10",
18
+ "@xyo-network/payload": "^2.38.0-rc.10",
19
+ "@xyo-network/promise": "^2.38.0-rc.10",
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.37.6"
60
+ "version": "2.38.0-rc.10",
61
+ "stableVersion": "2.37.6"
62
62
  }
@@ -1,7 +1,15 @@
1
1
  /* eslint-disable max-statements */
2
2
  import { XyoArchivistWrapper } from '@xyo-network/archivist'
3
- import { DivinerModule, XyoArchivistPayloadDiviner, XyoDivinerWrapper, XyoHuriPayload, XyoHuriSchema } from '@xyo-network/diviner'
4
- import { XyoModule } from '@xyo-network/module'
3
+ import {
4
+ DivinerModule,
5
+ XyoArchivistPayloadDiviner,
6
+ XyoArchivistPayloadDivinerConfigSchema,
7
+ XyoDivinerConfig,
8
+ XyoDivinerWrapper,
9
+ XyoHuriPayload,
10
+ XyoHuriSchema,
11
+ } from '@xyo-network/diviner'
12
+ import { XyoModule, XyoModuleResolver } from '@xyo-network/module'
5
13
  import { PayloadWrapper, XyoPayload, XyoPayloadBuilder, XyoPayloadSchema } from '@xyo-network/sdk'
6
14
 
7
15
  import { MemoryNode } from './MemoryNode'
@@ -9,16 +17,19 @@ import { NodeModule } from './NodeModule'
9
17
 
10
18
  test('Create Node', async () => {
11
19
  const XyoMemoryArchivist = (await import('@xyo-network/archivist')).XyoMemoryArchivist
12
- const node: NodeModule = new MemoryNode()
13
- const archivist = new XyoMemoryArchivist()
14
- const diviner: XyoModule = new XyoArchivistPayloadDiviner({}, archivist)
20
+ const node: NodeModule = await MemoryNode.create()
21
+ const archivist = await XyoMemoryArchivist.create()
22
+ const diviner: XyoModule = await XyoArchivistPayloadDiviner.create({
23
+ config: { archivist: archivist.address, schema: XyoArchivistPayloadDivinerConfigSchema } as XyoDivinerConfig,
24
+ resolver: new XyoModuleResolver().add(archivist),
25
+ })
15
26
  await node.register(archivist)
16
27
  node.attach(archivist.address)
17
28
  await node.register(diviner)
18
29
  node.attach(diviner.address)
19
30
  expect((await node.registered()).length).toBe(2)
20
31
  expect((await node.attached()).length).toBe(2)
21
- const foundArchivist = await node.resolve(archivist.address)
32
+ const foundArchivist = (await node.resolve([archivist.address])).shift()
22
33
  expect(foundArchivist).toBeDefined()
23
34
  expect(foundArchivist?.address).toBe(archivist.address)
24
35
  const testPayload = new XyoPayloadBuilder<XyoPayload<{ schema: XyoPayloadSchema; test: boolean }>>({ schema: XyoPayloadSchema })
@@ -37,8 +48,8 @@ test('Create Node', async () => {
37
48
  if (payloads && payloads[0]) {
38
49
  const huri = new PayloadWrapper(payloads[0]).hash
39
50
  const huriPayload: XyoHuriPayload = { huri: [huri], schema: XyoHuriSchema }
40
- const divinerModule = node.resolve(diviner.address) as DivinerModule
41
- const foundDiviner = divinerModule ? new XyoDivinerWrapper(divinerModule) : null
51
+ const module = (await node.resolve([diviner.address])).shift() as DivinerModule
52
+ const foundDiviner = module ? new XyoDivinerWrapper(module) : null
42
53
  expect(foundDiviner).toBeDefined()
43
54
  if (foundDiviner) {
44
55
  const foundDivinerWrapper = new XyoDivinerWrapper(foundDiviner)
package/src/MemoryNode.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { XyoArchivistGetQuerySchema } from '@xyo-network/archivist'
3
- import { XyoModule } from '@xyo-network/module'
3
+ import { XyoModule, XyoModuleParams } from '@xyo-network/module'
4
4
 
5
5
  import { NodeConfig } from './Config'
6
6
  import { XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema } from './Queries'
@@ -10,6 +10,12 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
10
10
  private registeredModuleMap = new Map<string, TModule>()
11
11
  private attachedModuleMap = new Map<string, TModule>()
12
12
 
13
+ static override async create(params?: XyoModuleParams): Promise<MemoryNode> {
14
+ const module = new MemoryNode(params as XyoModuleParams<NodeConfig>)
15
+ await module.start()
16
+ return module
17
+ }
18
+
13
19
  public override queries(): string[] {
14
20
  return [XyoNodeAttachQuerySchema, XyoNodeDetachQuerySchema, ...super.queries()]
15
21
  }
@@ -38,13 +44,15 @@ export class MemoryNode<TConfig extends NodeConfig = NodeConfig, TModule extends
38
44
  })
39
45
  }
40
46
 
41
- override resolve(address: string): TModule | null {
42
- console.log(`Resolving in MemoryNode: ${address}`)
43
- if (address === 'archivist') {
44
- console.log(`attachedModules: ${JSON.stringify(this.attachedModules(), null, 2)}`)
45
- return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null
46
- }
47
- return this.attachedModuleMap?.get(address) ?? null
47
+ override resolve(addresses: string[]): (TModule | null)[] {
48
+ return addresses.map((address) => {
49
+ console.log(`Resolving in MemoryNode: ${address}`)
50
+ if (address === 'archivist') {
51
+ console.log(`attachedModules: ${JSON.stringify(this.attachedModules(), null, 2)}`)
52
+ return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null
53
+ }
54
+ return this.attachedModuleMap?.get(address) ?? null
55
+ })
48
56
  }
49
57
 
50
58
  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, XyoModuleResolverFunc, XyoQueryBoundWitness } from '@xyo-network/module'
4
+ import { Module, ModuleQueryResult, QueryBoundWitnessWrapper, XyoErrorBuilder, 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(await this.getArchivist()).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?: XyoModule
33
- public get archivist() {
26
+ private _archivist?: Module
27
+ public async getArchivist(): Promise<Module> {
34
28
  if (!this._archivist) {
35
- this._archivist = this._archivist ?? (this.config?.archivist ? this.resolver?.(this.config?.archivist) : undefined) ?? new XyoMemoryArchivist()
29
+ this._archivist =
30
+ this._archivist ??
31
+ (this.config?.archivist ? this.resolver?.fromAddress([this.config?.archivist]).shift() : undefined) ??
32
+ (await XyoMemoryArchivist.create())
36
33
  }
37
34
  return this._archivist
38
35
  }
@@ -52,36 +49,47 @@ 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))
59
56
 
60
57
  const queryAccount = new XyoAccount()
61
58
  const resultPayloads: XyoPayloads = []
62
- switch (typedQuery.schema) {
63
- case XyoNodeAttachQuerySchema: {
64
- this.attach(typedQuery.address)
65
- break
66
- }
67
- case XyoNodeDetachQuerySchema: {
68
- this.detach(typedQuery.address)
69
- break
70
- }
71
- case XyoNodeAttachedQuerySchema: {
72
- this.attached()
73
- break
59
+ try {
60
+ switch (typedQuery.schema) {
61
+ case XyoNodeAttachQuerySchema: {
62
+ this.attach(typedQuery.address)
63
+ break
64
+ }
65
+ case XyoNodeDetachQuerySchema: {
66
+ this.detach(typedQuery.address)
67
+ break
68
+ }
69
+ case XyoNodeAttachedQuerySchema: {
70
+ this.attached()
71
+ break
72
+ }
73
+ case XyoNodeRegisteredQuerySchema: {
74
+ this.registered()
75
+ break
76
+ }
77
+ default:
78
+ return await super.query(query, payloads)
74
79
  }
75
- case XyoNodeRegisteredQuerySchema: {
76
- this.registered()
77
- break
78
- }
79
- default:
80
- return super.query(query, payloads)
80
+ } catch (ex) {
81
+ const error = ex as Error
82
+ resultPayloads.push(new XyoErrorBuilder(wrapper.hash, error.message).build())
81
83
  }
82
84
  return this.bindResult(resultPayloads, queryAccount)
83
85
  }
84
86
 
87
+ override async start() {
88
+ await super.start()
89
+ await this.storeInstanceData()
90
+ return this
91
+ }
92
+
85
93
  register(_module: TModule): void {
86
94
  throw new Error('Method not implemented.')
87
95
  }
@@ -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'
@@ -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 Promise.all(addresses.map((address) => this.resolve(address))))
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 Promise.all(addresses.map((address) => this.resolve(address))))
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
  }