@xyo-network/node 2.32.0 → 2.33.0-rc.1

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.
Files changed (57) hide show
  1. package/dist/cjs/MemoryNode.d.ts +6 -3
  2. package/dist/cjs/MemoryNode.d.ts.map +1 -1
  3. package/dist/cjs/MemoryNode.js +30 -10
  4. package/dist/cjs/MemoryNode.js.map +1 -1
  5. package/dist/cjs/Node.d.ts +2 -2
  6. package/dist/cjs/Node.d.ts.map +1 -1
  7. package/dist/cjs/XyoNode.d.ts +7 -4
  8. package/dist/cjs/XyoNode.d.ts.map +1 -1
  9. package/dist/cjs/XyoNode.js +11 -3
  10. package/dist/cjs/XyoNode.js.map +1 -1
  11. package/dist/cjs/XyoNodeWrapper.d.ts +1 -1
  12. package/dist/cjs/XyoNodeWrapper.d.ts.map +1 -1
  13. package/dist/cjs/XyoNodeWrapper.js +1 -1
  14. package/dist/cjs/XyoNodeWrapper.js.map +1 -1
  15. package/dist/cjs/cli/index.d.ts +2 -0
  16. package/dist/cjs/cli/index.d.ts.map +1 -0
  17. package/dist/cjs/cli/index.js +56 -0
  18. package/dist/cjs/cli/index.js.map +1 -0
  19. package/dist/cjs/cli/terminal.d.ts +2 -0
  20. package/dist/cjs/cli/terminal.d.ts.map +1 -0
  21. package/dist/cjs/cli/terminal.js +37 -0
  22. package/dist/cjs/cli/terminal.js.map +1 -0
  23. package/dist/cjs/cli/xyo_logo_black.png +0 -0
  24. package/dist/docs.json +1833 -1128
  25. package/dist/esm/MemoryNode.d.ts +6 -3
  26. package/dist/esm/MemoryNode.d.ts.map +1 -1
  27. package/dist/esm/MemoryNode.js +29 -10
  28. package/dist/esm/MemoryNode.js.map +1 -1
  29. package/dist/esm/Node.d.ts +2 -2
  30. package/dist/esm/Node.d.ts.map +1 -1
  31. package/dist/esm/XyoNode.d.ts +7 -4
  32. package/dist/esm/XyoNode.d.ts.map +1 -1
  33. package/dist/esm/XyoNode.js +11 -3
  34. package/dist/esm/XyoNode.js.map +1 -1
  35. package/dist/esm/XyoNodeWrapper.d.ts +1 -1
  36. package/dist/esm/XyoNodeWrapper.d.ts.map +1 -1
  37. package/dist/esm/XyoNodeWrapper.js +1 -1
  38. package/dist/esm/XyoNodeWrapper.js.map +1 -1
  39. package/dist/esm/cli/index.d.ts +2 -0
  40. package/dist/esm/cli/index.d.ts.map +1 -0
  41. package/dist/esm/cli/index.js +53 -0
  42. package/dist/esm/cli/index.js.map +1 -0
  43. package/dist/esm/cli/terminal.d.ts +2 -0
  44. package/dist/esm/cli/terminal.d.ts.map +1 -0
  45. package/dist/esm/cli/terminal.js +32 -0
  46. package/dist/esm/cli/terminal.js.map +1 -0
  47. package/dist/esm/cli/xyo_logo_black.png +0 -0
  48. package/package.json +23 -5
  49. package/src/MemoryNode.spec.ts +3 -8
  50. package/src/MemoryNode.ts +32 -10
  51. package/src/Node.ts +2 -2
  52. package/src/XyoNode.ts +15 -6
  53. package/src/XyoNodeWrapper.ts +1 -1
  54. package/src/cli/index.ts +69 -0
  55. package/src/cli/terminal.ts +36 -0
  56. package/src/cli/types/images.d.ts +5 -0
  57. package/src/cli/xyo_logo_black.png +0 -0
@@ -3,11 +3,14 @@ import { XyoPayload } from '@xyo-network/payload';
3
3
  import { XyoNodeQuery } from './Queries';
4
4
  import { XyoNode } from './XyoNode';
5
5
  export declare class XyoMemoryNode<TConfig extends XyoModuleConfig = XyoModuleConfig, TQuery extends XyoNodeQuery = XyoNodeQuery, TQueryResult extends XyoPayload = XyoPayload, TModule extends XyoModule = XyoModule> extends XyoNode<TConfig, TQuery, TQueryResult, TModule> {
6
- private registeredModules;
7
- private attachedModules;
6
+ private registeredModuleMap;
7
+ private attachedModuleMap;
8
8
  queries(): TQuery['schema'][];
9
9
  attached(): string[];
10
- available(): string[];
10
+ registered(): string[];
11
+ attachedModules(): TModule[];
12
+ availableModules(): TModule[];
13
+ resolve(address: string): TModule | null;
11
14
  register(module: TModule): void;
12
15
  attach(address: string): void;
13
16
  detatch(address: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAA4B,YAAY,EAAE,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,qBAAa,aAAa,CACxB,OAAO,SAAS,eAAe,GAAG,eAAe,EACjD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,YAAY,SAAS,UAAU,GAAG,UAAU,EAC5C,OAAO,SAAS,SAAS,GAAG,SAAS,CACrC,SAAQ,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC;IACvD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,eAAe,CAA6B;IAEpC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;IAIpC,QAAQ;IAMR,SAAS;IAMT,QAAQ,CAAC,MAAM,EAAE,OAAO;IAIxB,MAAM,CAAC,OAAO,EAAE,MAAM;IAKtB,OAAO,CAAC,OAAO,EAAE,MAAM;IAIvB,GAAG,CAAC,OAAO,EAAE,MAAM;CAG7B"}
1
+ {"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAA4B,YAAY,EAAE,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,qBAAa,aAAa,CACxB,OAAO,SAAS,eAAe,GAAG,eAAe,EACjD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,YAAY,SAAS,UAAU,GAAG,UAAU,EAC5C,OAAO,SAAS,SAAS,GAAG,SAAS,CACrC,SAAQ,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC;IACvD,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,iBAAiB,CAA6B;IAEtC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;IAIpC,QAAQ;IAMR,UAAU;IAMV,eAAe;IAMf,gBAAgB;IAMhB,OAAO,CAAC,OAAO,EAAE,MAAM;IASvB,QAAQ,CAAC,MAAM,EAAE,OAAO;IAIxB,MAAM,CAAC,OAAO,EAAE,MAAM;IAKtB,OAAO,CAAC,OAAO,EAAE,MAAM;IAIvB,GAAG,CAAC,OAAO,EAAE,MAAM;CAG7B"}
@@ -1,34 +1,53 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
+ import { XyoArchivistGetQuerySchema } from '@xyo-network/archivist';
2
3
  import { XyoNodeAttachQuerySchema } from './Queries';
3
4
  import { XyoNode } from './XyoNode';
4
5
  export class XyoMemoryNode extends XyoNode {
5
- registeredModules = new Map();
6
- attachedModules = new Map();
6
+ registeredModuleMap = new Map();
7
+ attachedModuleMap = new Map();
7
8
  queries() {
8
9
  return [XyoNodeAttachQuerySchema];
9
10
  }
10
11
  attached() {
11
- return Array.from(this.attachedModules.keys()).map(([key]) => {
12
+ return Array.from(this.attachedModuleMap.keys()).map((key) => {
12
13
  return key;
13
14
  });
14
15
  }
15
- available() {
16
- return Array.from(this.registeredModules.keys()).map(([key]) => {
16
+ registered() {
17
+ return Array.from(this.registeredModuleMap.keys()).map((key) => {
17
18
  return key;
18
19
  });
19
20
  }
21
+ attachedModules() {
22
+ return Array.from(this.attachedModuleMap.values()).map((value) => {
23
+ return value;
24
+ });
25
+ }
26
+ availableModules() {
27
+ return Array.from(this.registeredModuleMap.values()).map((value) => {
28
+ return value;
29
+ });
30
+ }
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;
38
+ }
20
39
  register(module) {
21
- this.registeredModules.set(module.address, module);
40
+ this.registeredModuleMap.set(module.address, module);
22
41
  }
23
42
  attach(address) {
24
- const module = assertEx(this.registeredModules.get(address), 'No module found at that address');
25
- this.attachedModules.set(address, module);
43
+ const module = assertEx(this.registeredModuleMap.get(address), 'No module found at that address');
44
+ this.attachedModuleMap.set(address, module);
26
45
  }
27
46
  detatch(address) {
28
- this.attachedModules.delete(address);
47
+ this.attachedModuleMap.delete(address);
29
48
  }
30
49
  get(address) {
31
- return this.attachedModules.get(address);
50
+ return this.attachedModuleMap.get(address);
32
51
  }
33
52
  }
34
53
  //# sourceMappingURL=MemoryNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,OAAO,EAAE,wBAAwB,EAAgB,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,OAAO,aAKX,SAAQ,OAA+C;IAC/C,iBAAiB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC9C,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEpC,OAAO;QACrB,OAAO,CAAC,wBAAwB,CAAC,CAAA;IACnC,CAAC;IAEQ,QAAQ;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;YAC3D,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEQ,SAAS;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;YAC7D,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEQ,QAAQ,CAAC,MAAe;QAC/B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACpD,CAAC;IAEQ,MAAM,CAAC,OAAe;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,iCAAiC,CAAC,CAAA;QAC/F,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEQ,OAAO,CAAC,OAAe;QAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAEQ,GAAG,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;CACF"}
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,EAAgB,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,OAAO,aAKX,SAAQ,OAA+C;IAC/C,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAChD,iBAAiB,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEtC,OAAO;QACrB,OAAO,CAAC,wBAAwB,CAAC,CAAA;IACnC,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,gBAAgB;QACvB,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,OAAO,CAAC,OAAe;QAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAEQ,GAAG,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;CACF"}
@@ -1,10 +1,10 @@
1
1
  import { Module, XyoQuery } from '@xyo-network/module';
2
2
  import { XyoPayload } from '@xyo-network/payload';
3
- import { Promisable } from '@xyo-network/promisable';
3
+ import { Promisable } from '@xyo-network/promise';
4
4
  export interface Node {
5
5
  attach(address: string): void;
6
6
  detatch(address: string): void;
7
- available(): Promisable<string[]>;
7
+ registered(): Promisable<string[]>;
8
8
  attached(): Promisable<string[]>;
9
9
  }
10
10
  export interface NodeModule<TQuery extends XyoQuery = XyoQuery, TQueryResult extends XyoPayload = XyoPayload> extends Node, Module<TQuery, TQueryResult> {
@@ -1 +1 @@
1
- {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../src/Node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,SAAS,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IACjC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,UAAU,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAAE,YAAY,SAAS,UAAU,GAAG,UAAU,CAC1G,SAAQ,IAAI,EACV,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;CAAG"}
1
+ {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../src/Node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IAClC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,UAAU,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAAE,YAAY,SAAS,UAAU,GAAG,UAAU,CAC1G,SAAQ,IAAI,EACV,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;CAAG"}
@@ -1,16 +1,19 @@
1
- import { XyoModule, XyoModuleConfig, XyoModuleQueryResult } from '@xyo-network/module';
1
+ import { XyoAccount } from '@xyo-network/account';
2
+ import { XyoModule, XyoModuleConfig } from '@xyo-network/module';
2
3
  import { XyoPayload } from '@xyo-network/payload';
3
- import { Promisable } from '@xyo-network/promisable';
4
4
  import { NodeModule } from './Node';
5
5
  import { XyoNodeQuery } from './Queries';
6
6
  export declare abstract class XyoNode<TConfig extends XyoModuleConfig = XyoModuleConfig, TQuery extends XyoNodeQuery = XyoNodeQuery, TQueryResult extends XyoPayload = XyoPayload, TModule extends XyoModule = XyoModule> extends XyoModule<TConfig, TQuery, TQueryResult> implements NodeModule<TQuery, TQueryResult> {
7
7
  /** Query Functions - Start */
8
8
  abstract attach(_address: string): void;
9
9
  abstract detatch(_address: string): void;
10
- available(): string[];
10
+ abstract resolve(_address: string): XyoModule | null;
11
+ registered(): string[];
11
12
  attached(): string[];
13
+ availableModules(): XyoModule[];
14
+ attachedModules(): XyoModule[];
12
15
  /** Query Functions - End */
13
- query(query: TQuery): Promisable<XyoModuleQueryResult<TQueryResult>>;
16
+ query(query: TQuery): import("@xyo-network/promise").PromiseEx<import("@xyo-network/module").XyoModuleQueryResult<TQueryResult>, XyoAccount>;
14
17
  register(_module: TModule): void;
15
18
  abstract get(_address: string): TModule | undefined;
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XyoNode.d.ts","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgH,YAAY,EAAE,MAAM,WAAW,CAAA;AAEtJ,8BAAsB,OAAO,CACzB,OAAO,SAAS,eAAe,GAAG,eAAe,EACjD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,YAAY,SAAS,UAAU,GAAG,UAAU,EAC5C,OAAO,SAAS,SAAS,GAAG,SAAS,CAEvC,SAAQ,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAC/C,YAAW,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC;IAE3C,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACvC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAExC,SAAS,IAAI,MAAM,EAAE;IAGrB,QAAQ,IAAI,MAAM,EAAE;IAGpB,4BAA4B;IAE5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAuBpE,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIhC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;CACpD"}
1
+ {"version":3,"file":"XyoNode.d.ts","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgH,YAAY,EAAE,MAAM,WAAW,CAAA;AAEtJ,8BAAsB,OAAO,CACzB,OAAO,SAAS,eAAe,GAAG,eAAe,EACjD,MAAM,SAAS,YAAY,GAAG,YAAY,EAC1C,YAAY,SAAS,UAAU,GAAG,UAAU,EAC5C,OAAO,SAAS,SAAS,GAAG,SAAS,CAEvC,SAAQ,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAC/C,YAAW,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC;IAE3C,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACvC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACxC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAEpD,UAAU,IAAI,MAAM,EAAE;IAGtB,QAAQ,IAAI,MAAM,EAAE;IAIpB,gBAAgB,IAAI,SAAS,EAAE;IAG/B,eAAe,IAAI,SAAS,EAAE;IAG9B,4BAA4B;IAE5B,KAAK,CAAC,KAAK,EAAE,MAAM;IAwBnB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIhC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;CACpD"}
@@ -1,14 +1,22 @@
1
+ import { XyoAccount } from '@xyo-network/account';
1
2
  import { XyoModule } from '@xyo-network/module';
2
3
  import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeAvailableQuerySchema, XyoNodeDetatchQuerySchema } from './Queries';
3
4
  export class XyoNode extends XyoModule {
4
- available() {
5
+ registered() {
5
6
  throw new Error('Method not implemented.');
6
7
  }
7
8
  attached() {
8
9
  throw new Error('Method not implemented.');
9
10
  }
11
+ availableModules() {
12
+ throw new Error('Method not implemented.');
13
+ }
14
+ attachedModules() {
15
+ throw new Error('Method not implemented.');
16
+ }
10
17
  /** Query Functions - End */
11
18
  query(query) {
19
+ const queryAccount = new XyoAccount();
12
20
  const payloads = [];
13
21
  switch (query.schema) {
14
22
  case XyoNodeAttachQuerySchema: {
@@ -24,11 +32,11 @@ export class XyoNode extends XyoModule {
24
32
  break;
25
33
  }
26
34
  case XyoNodeAvailableQuerySchema: {
27
- this.available();
35
+ this.registered();
28
36
  break;
29
37
  }
30
38
  }
31
- return [this.bindPayloads(payloads), payloads];
39
+ return this.bindPayloads(payloads, queryAccount);
32
40
  }
33
41
  register(_module) {
34
42
  throw new Error('Method not implemented.');
@@ -1 +1 @@
1
- {"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyC,MAAM,qBAAqB,CAAA;AAKtF,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,yBAAyB,EAAgB,MAAM,WAAW,CAAA;AAEtJ,MAAM,OAAgB,OAMpB,SAAQ,SAAwC;IAOhD,SAAS;QACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,QAAQ;QACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,4BAA4B;IAE5B,KAAK,CAAC,KAAa;QACjB,MAAM,QAAQ,GAA4B,EAAE,CAAA;QAC5C,QAAQ,KAAK,CAAC,MAAM,EAAE;YACpB,KAAK,wBAAwB,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAK;aACN;YACD,KAAK,yBAAyB,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC3B,MAAK;aACN;YACD,KAAK,0BAA0B,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAA;gBACf,MAAK;aACN;YACD,KAAK,2BAA2B,CAAC,CAAC;gBAChC,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,MAAK;aACN;SACF;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAA;IAChD,CAAC;IAED,QAAQ,CAAC,OAAgB;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;CAGF"}
1
+ {"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAA;AAIhE,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,yBAAyB,EAAgB,MAAM,WAAW,CAAA;AAEtJ,MAAM,OAAgB,OAMpB,SAAQ,SAAwC;IAQhD,UAAU;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,QAAQ;QACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,eAAe;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,4BAA4B;IAE5B,KAAK,CAAC,KAAa;QACjB,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAA;QACrC,MAAM,QAAQ,GAA4B,EAAE,CAAA;QAC5C,QAAQ,KAAK,CAAC,MAAM,EAAE;YACpB,KAAK,wBAAwB,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAK;aACN;YACD,KAAK,yBAAyB,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC3B,MAAK;aACN;YACD,KAAK,0BAA0B,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAA;gBACf,MAAK;aACN;YACD,KAAK,2BAA2B,CAAC,CAAC;gBAChC,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,MAAK;aACN;SACF;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAClD,CAAC;IAED,QAAQ,CAAC,OAAgB;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;CAGF"}
@@ -1,7 +1,7 @@
1
1
  import { XyoModuleWrapper } from '@xyo-network/module';
2
2
  import { Node } from './Node';
3
3
  export declare class XyoNodeWrapper extends XyoModuleWrapper implements Node {
4
- available(): Promise<string[]>;
4
+ registered(): Promise<string[]>;
5
5
  attached(): Promise<string[]>;
6
6
  attach(address: string): Promise<void>;
7
7
  detatch(address: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"XyoNodeWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAY7B,qBAAa,cAAe,SAAQ,gBAAiB,YAAW,IAAI;IAC5D,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI9B,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK9C"}
1
+ {"version":3,"file":"XyoNodeWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAY7B,qBAAa,cAAe,SAAQ,gBAAiB,YAAW,IAAI;IAC5D,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/B,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK9C"}
@@ -2,7 +2,7 @@ import { XyoModuleWrapper } from '@xyo-network/module';
2
2
  import compact from 'lodash/compact';
3
3
  import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeAvailableQuerySchema, XyoNodeDetatchQuerySchema, } from './Queries';
4
4
  export class XyoNodeWrapper extends XyoModuleWrapper {
5
- async available() {
5
+ async registered() {
6
6
  const query = { schema: XyoNodeAvailableQuerySchema };
7
7
  return compact((await this.module.query(query))[1].map((payload) => payload?.schema));
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XyoNodeWrapper.js","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAEL,0BAA0B,EAE1B,wBAAwB,EAExB,2BAA2B,EAE3B,yBAAyB,GAC1B,MAAM,WAAW,CAAA;AAElB,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD,KAAK,CAAC,SAAS;QACb,MAAM,KAAK,GAA0B,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAA;QAC5E,OAAO,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IACvF,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,MAAM,KAAK,GAAyB,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAA;QAC1E,OAAO,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IACvF,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,KAAK,GAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAA;QAC/E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAM;IACR,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,MAAM,KAAK,GAAwB,EAAE,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAA;QACjF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAM;IACR,CAAC;CACF"}
1
+ {"version":3,"file":"XyoNodeWrapper.js","sourceRoot":"","sources":["../../src/XyoNodeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAEL,0BAA0B,EAE1B,wBAAwB,EAExB,2BAA2B,EAE3B,yBAAyB,GAC1B,MAAM,WAAW,CAAA;AAElB,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD,KAAK,CAAC,UAAU;QACd,MAAM,KAAK,GAA0B,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAA;QAC5E,OAAO,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IACvF,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,MAAM,KAAK,GAAyB,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAA;QAC1E,OAAO,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IACvF,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,KAAK,GAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAA;QAC/E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAM;IACR,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,MAAM,KAAK,GAAwB,EAAE,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAA;QACjF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAM;IACR,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ import { forget } from '@xylabs/forget';
2
+ import yargs from 'yargs';
3
+ // eslint-disable-next-line import/no-internal-modules
4
+ import { hideBin } from 'yargs/helpers';
5
+ import { XyoMemoryNode } from '../MemoryNode';
6
+ import { startTerminal } from './terminal';
7
+ const parseOptions = () => {
8
+ return yargs(hideBin(process.argv))
9
+ .option('verbose', {
10
+ alias: 'v',
11
+ default: false,
12
+ description: 'Run with verbose logging',
13
+ type: 'boolean',
14
+ })
15
+ .option('module', {
16
+ alias: 'm',
17
+ description: 'Modules to load',
18
+ type: 'string',
19
+ });
20
+ };
21
+ const loadModule = async (pkg, name, resolver) => {
22
+ const loadedPkg = await import(pkg);
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ const ModuleConstructor = name ? loadedPkg[name] : loadedPkg;
25
+ return new ModuleConstructor(undefined, undefined, resolver);
26
+ };
27
+ const xyo = () => {
28
+ return parseOptions().command('node', 'Start an XYO Node', (yargs) => {
29
+ return yargs;
30
+ }, async (yargs) => {
31
+ console.log(`yargs: ${JSON.stringify(yargs, null, 2)}`);
32
+ const { verbose, module } = yargs;
33
+ const modules = Array.isArray(module) ? module : [module];
34
+ if (verbose)
35
+ console.info('Starting Node');
36
+ const node = new XyoMemoryNode();
37
+ const resolver = (address) => {
38
+ console.log(`Resolving: ${address}`);
39
+ return node.resolve(address);
40
+ };
41
+ await Promise.all(modules.map(async (module) => {
42
+ const [pkg, name] = module.split('.');
43
+ const instance = await loadModule(pkg, name, resolver);
44
+ console.log(`Arg: ${instance.address}`);
45
+ node.register(instance);
46
+ node.attach(instance.address);
47
+ console.log(`Module Loaded: ${instance.address}`);
48
+ }));
49
+ }).argv;
50
+ };
51
+ void xyo();
52
+ forget(startTerminal());
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const startTerminal: () => Promise<never>;
2
+ //# sourceMappingURL=terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,aAAa,sBAezB,CAAA"}
@@ -0,0 +1,32 @@
1
+ import path from 'path';
2
+ import { terminal } from 'terminal-kit';
3
+ import xyo_logo_black from './xyo_logo_black.png';
4
+ const commands = ['exit', 'plugin'];
5
+ const getCommand = () => {
6
+ return new Promise((resolve, reject) => {
7
+ terminal.inputField({ autoComplete: commands, autoCompleteMenu: true }, (error, input) => {
8
+ terminal('\n');
9
+ if (error) {
10
+ reject(error);
11
+ }
12
+ else {
13
+ resolve(input);
14
+ }
15
+ });
16
+ });
17
+ };
18
+ export const startTerminal = async () => {
19
+ const imagePath = path.resolve(__dirname, xyo_logo_black);
20
+ await terminal.drawImage(imagePath);
21
+ terminal.green('XYO Node Started\n\n');
22
+ terminal.green("Type 'exit' to exit\n\n");
23
+ let running = true;
24
+ while (running) {
25
+ const command = await getCommand();
26
+ if (command === 'exit') {
27
+ running = false;
28
+ }
29
+ }
30
+ process.exit(0);
31
+ };
32
+ //# sourceMappingURL=terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,cAAc,MAAM,sBAAsB,CAAA;AAEjD,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAEnC,MAAM,UAAU,GAAG,GAAgC,EAAE;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvF,QAAQ,CAAC,IAAI,CAAC,CAAA;YACd,IAAI,KAAK,EAAE;gBACT,MAAM,CAAC,KAAK,CAAC,CAAA;aACd;iBAAM;gBACL,OAAO,CAAC,KAAK,CAAC,CAAA;aACf;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IACzD,MAAM,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACtC,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAEzC,IAAI,OAAO,GAAG,IAAI,CAAA;IAElB,OAAO,OAAO,EAAE;QACd,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAA;QAClC,IAAI,OAAO,KAAK,MAAM,EAAE;YACtB,OAAO,GAAG,KAAK,CAAA;SAChB;KACF;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAA"}
Binary file
package/package.json CHANGED
@@ -11,11 +11,25 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.6.7",
14
- "@xyo-network/module": "^2.32.0",
15
- "@xyo-network/payload": "^2.32.0",
16
- "@xyo-network/promisable": "^2.32.0",
14
+ "@xylabs/forget": "^2.6.7",
15
+ "@xyo-network/account": "^2.33.0-rc.1",
16
+ "@xyo-network/archivist": "^2.33.0-rc.1",
17
+ "@xyo-network/module": "^2.33.0-rc.1",
18
+ "@xyo-network/payload": "^2.33.0-rc.1",
19
+ "@xyo-network/promise": "^2.33.0-rc.1",
17
20
  "lodash": "^4.17.21",
18
- "tslib": "^2.4.0"
21
+ "terminal-kit": "^2.11.4",
22
+ "tslib": "^2.4.0",
23
+ "yargs": "^17.5.1"
24
+ },
25
+ "bin": {
26
+ "xyo": "dist/cjs/cli/index.js"
27
+ },
28
+ "devDependencies": {
29
+ "@types/node": "^18.7.17",
30
+ "@types/terminal-kit": "^2.5.0",
31
+ "ts-node": "^10.9.1",
32
+ "typescript": "^4.8.3"
19
33
  },
20
34
  "description": "Primary SDK for using XYO Protocol 2.0",
21
35
  "browser": "dist/esm/index.js",
@@ -49,6 +63,10 @@
49
63
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
50
64
  },
51
65
  "sideEffects": false,
66
+ "scripts": {
67
+ "xyo-ts": "ts-node src/cli/index.ts"
68
+ },
52
69
  "types": "dist/esm/index.d.ts",
53
- "version": "2.32.0"
70
+ "version": "2.33.0-rc.1",
71
+ "stableVersion": "2.32.1"
54
72
  }
@@ -1,10 +1,4 @@
1
- import {
2
- XyoArchivistAllQuery,
3
- XyoArchivistAllQuerySchema,
4
- XyoArchivistInsertQuery,
5
- XyoArchivistInsertQuerySchema,
6
- XyoMemoryArchivist,
7
- } from '@xyo-network/archivist'
1
+ import { XyoArchivistAllQuery, XyoArchivistAllQuerySchema, XyoArchivistInsertQuery, XyoArchivistInsertQuerySchema } from '@xyo-network/archivist'
8
2
  import { XyoArchivistPayloadDiviner, XyoDivinerDivineQuery, XyoDivinerDivineQuerySchema, XyoHuriPayload, XyoHuriSchema } from '@xyo-network/diviner'
9
3
  import { XyoModule } from '@xyo-network/module'
10
4
  import { XyoPayloadBuilder, XyoPayloadSchema, XyoPayloadWrapper } from '@xyo-network/sdk'
@@ -12,6 +6,7 @@ import { XyoPayloadBuilder, XyoPayloadSchema, XyoPayloadWrapper } from '@xyo-net
12
6
  import { XyoMemoryNode } from './MemoryNode'
13
7
 
14
8
  test('Create Node', async () => {
9
+ const XyoMemoryArchivist = (await import('@xyo-network/archivist')).XyoMemoryArchivist
15
10
  const node = new XyoMemoryNode()
16
11
  const archivist = new XyoMemoryArchivist()
17
12
  const diviner: XyoModule = new XyoArchivistPayloadDiviner({}, archivist)
@@ -19,7 +14,7 @@ test('Create Node', async () => {
19
14
  node.attach(archivist.address)
20
15
  node.register(diviner)
21
16
  node.attach(diviner.address)
22
- expect(node.available().length).toBe(2)
17
+ expect(node.registered().length).toBe(2)
23
18
  expect(node.attached().length).toBe(2)
24
19
  const foundArchivist = node.get(archivist.address)
25
20
  expect(foundArchivist).toBeDefined()
package/src/MemoryNode.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
+ import { XyoArchivistGetQuerySchema } from '@xyo-network/archivist'
2
3
  import { XyoModule, XyoModuleConfig } from '@xyo-network/module'
3
4
  import { XyoPayload } from '@xyo-network/payload'
4
5
 
@@ -11,39 +12,60 @@ export class XyoMemoryNode<
11
12
  TQueryResult extends XyoPayload = XyoPayload,
12
13
  TModule extends XyoModule = XyoModule,
13
14
  > extends XyoNode<TConfig, TQuery, TQueryResult, TModule> {
14
- private registeredModules = new Map<string, TModule>()
15
- private attachedModules = new Map<string, TModule>()
15
+ private registeredModuleMap = new Map<string, TModule>()
16
+ private attachedModuleMap = new Map<string, TModule>()
16
17
 
17
18
  public override queries(): TQuery['schema'][] {
18
19
  return [XyoNodeAttachQuerySchema]
19
20
  }
20
21
 
21
22
  override attached() {
22
- return Array.from(this.attachedModules.keys()).map(([key]) => {
23
+ return Array.from(this.attachedModuleMap.keys()).map((key) => {
23
24
  return key
24
25
  })
25
26
  }
26
27
 
27
- override available() {
28
- return Array.from(this.registeredModules.keys()).map(([key]) => {
28
+ override registered() {
29
+ return Array.from(this.registeredModuleMap.keys()).map((key) => {
29
30
  return key
30
31
  })
31
32
  }
32
33
 
34
+ override attachedModules() {
35
+ return Array.from(this.attachedModuleMap.values()).map((value) => {
36
+ return value
37
+ })
38
+ }
39
+
40
+ override availableModules() {
41
+ return Array.from(this.registeredModuleMap.values()).map((value) => {
42
+ return value
43
+ })
44
+ }
45
+
46
+ override resolve(address: string) {
47
+ console.log(`Resolving in MemoryNode: ${address}`)
48
+ if (address === 'archivist') {
49
+ console.log(`attachedModules: ${JSON.stringify(this.attachedModules(), null, 2)}`)
50
+ return this.attachedModules().find((module) => module.queryable(XyoArchivistGetQuerySchema)) ?? null
51
+ }
52
+ return this.attachedModuleMap?.get(address) ?? null
53
+ }
54
+
33
55
  override register(module: TModule) {
34
- this.registeredModules.set(module.address, module)
56
+ this.registeredModuleMap.set(module.address, module)
35
57
  }
36
58
 
37
59
  override attach(address: string) {
38
- const module = assertEx(this.registeredModules.get(address), 'No module found at that address')
39
- this.attachedModules.set(address, module)
60
+ const module = assertEx(this.registeredModuleMap.get(address), 'No module found at that address')
61
+ this.attachedModuleMap.set(address, module)
40
62
  }
41
63
 
42
64
  override detatch(address: string) {
43
- this.attachedModules.delete(address)
65
+ this.attachedModuleMap.delete(address)
44
66
  }
45
67
 
46
68
  override get(address: string) {
47
- return this.attachedModules.get(address)
69
+ return this.attachedModuleMap.get(address)
48
70
  }
49
71
  }
package/src/Node.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { Module, XyoQuery } from '@xyo-network/module'
2
2
  import { XyoPayload } from '@xyo-network/payload'
3
- import { Promisable } from '@xyo-network/promisable'
3
+ import { Promisable } from '@xyo-network/promise'
4
4
 
5
5
  export interface Node {
6
6
  attach(address: string): void
7
7
  detatch(address: string): void
8
- available(): Promisable<string[]>
8
+ registered(): Promisable<string[]>
9
9
  attached(): Promisable<string[]>
10
10
  }
11
11
 
package/src/XyoNode.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { XyoModule, XyoModuleConfig, XyoModuleQueryResult } from '@xyo-network/module'
1
+ import { XyoAccount } from '@xyo-network/account'
2
+ import { XyoModule, XyoModuleConfig } from '@xyo-network/module'
2
3
  import { XyoPayload } from '@xyo-network/payload'
3
- import { Promisable } from '@xyo-network/promisable'
4
4
 
5
5
  import { NodeModule } from './Node'
6
6
  import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeAvailableQuerySchema, XyoNodeDetatchQuerySchema, XyoNodeQuery } from './Queries'
@@ -17,16 +17,25 @@ export abstract class XyoNode<
17
17
  /** Query Functions - Start */
18
18
  abstract attach(_address: string): void
19
19
  abstract detatch(_address: string): void
20
+ abstract resolve(_address: string): XyoModule | null
20
21
 
21
- available(): string[] {
22
+ registered(): string[] {
22
23
  throw new Error('Method not implemented.')
23
24
  }
24
25
  attached(): string[] {
25
26
  throw new Error('Method not implemented.')
26
27
  }
28
+
29
+ availableModules(): XyoModule[] {
30
+ throw new Error('Method not implemented.')
31
+ }
32
+ attachedModules(): XyoModule[] {
33
+ throw new Error('Method not implemented.')
34
+ }
27
35
  /** Query Functions - End */
28
36
 
29
- query(query: TQuery): Promisable<XyoModuleQueryResult<TQueryResult>> {
37
+ query(query: TQuery) {
38
+ const queryAccount = new XyoAccount()
30
39
  const payloads: (TQueryResult | null)[] = []
31
40
  switch (query.schema) {
32
41
  case XyoNodeAttachQuerySchema: {
@@ -42,11 +51,11 @@ export abstract class XyoNode<
42
51
  break
43
52
  }
44
53
  case XyoNodeAvailableQuerySchema: {
45
- this.available()
54
+ this.registered()
46
55
  break
47
56
  }
48
57
  }
49
- return [this.bindPayloads(payloads), payloads]
58
+ return this.bindPayloads(payloads, queryAccount)
50
59
  }
51
60
 
52
61
  register(_module: TModule): void {
@@ -14,7 +14,7 @@ import {
14
14
  } from './Queries'
15
15
 
16
16
  export class XyoNodeWrapper extends XyoModuleWrapper implements Node {
17
- async available(): Promise<string[]> {
17
+ async registered(): Promise<string[]> {
18
18
  const query: XyoNodeAvailableQuery = { schema: XyoNodeAvailableQuerySchema }
19
19
  return compact((await this.module.query(query))[1].map((payload) => payload?.schema))
20
20
  }