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

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.
@@ -3,7 +3,7 @@ import { XyoModule, XyoModuleConfig } from '@xyo-network/module';
3
3
  import { XyoPayload } from '@xyo-network/payload';
4
4
  import { NodeModule } from './Node';
5
5
  import { XyoNodeQuery } from './Queries';
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> {
6
+ export declare abstract class XyoNode<TConfig extends XyoModuleConfig = XyoModuleConfig, TQuery extends XyoNodeQuery = XyoNodeQuery, TQueryResult extends XyoPayload = XyoPayload, TModule extends XyoModule = XyoModule> extends XyoModule<TQuery, TQueryResult, TConfig> implements NodeModule<TQuery, TQueryResult> {
7
7
  /** Query Functions - Start */
8
8
  abstract attach(_address: string): void;
9
9
  abstract detatch(_address: string): void;
@@ -13,7 +13,7 @@ export declare abstract class XyoNode<TConfig extends XyoModuleConfig = XyoModul
13
13
  availableModules(): XyoModule[];
14
14
  attachedModules(): XyoModule[];
15
15
  /** Query Functions - End */
16
- query(query: TQuery): import("@xyo-network/promise").PromiseEx<import("@xyo-network/module").XyoModuleQueryResult<TQueryResult>, XyoAccount>;
16
+ query(query: TQuery): Promise<import("@xyo-network/module").XyoModuleQueryResult<TQueryResult>> | import("@xyo-network/promise").PromiseEx<import("@xyo-network/module").XyoModuleQueryResult<TQueryResult>, XyoAccount>;
17
17
  register(_module: TModule): void;
18
18
  abstract get(_address: string): TModule | undefined;
19
19
  }
@@ -1 +1 @@
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
+ {"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,MAAM,EAAE,YAAY,EAAE,OAAO,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;IA0BnB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIhC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;CACpD"}
@@ -38,6 +38,8 @@ class XyoNode extends module_1.XyoModule {
38
38
  this.registered();
39
39
  break;
40
40
  }
41
+ default:
42
+ return super.query(query);
41
43
  }
42
44
  return this.bindPayloads(payloads, queryAccount);
43
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":";;;AAAA,kDAAiD;AACjD,gDAAgE;AAIhE,uCAAsJ;AAEtJ,MAAsB,OAMpB,SAAQ,kBAAwC;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,oBAAU,EAAE,CAAA;QACrC,MAAM,QAAQ,GAA4B,EAAE,CAAA;QAC5C,QAAQ,KAAK,CAAC,MAAM,EAAE;YACpB,KAAK,kCAAwB,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAK;aACN;YACD,KAAK,mCAAyB,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC3B,MAAK;aACN;YACD,KAAK,oCAA0B,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAA;gBACf,MAAK;aACN;YACD,KAAK,qCAA2B,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;AA1DD,0BA0DC"}
1
+ {"version":3,"file":"XyoNode.js","sourceRoot":"","sources":["../../src/XyoNode.ts"],"names":[],"mappings":";;;AAAA,kDAAiD;AACjD,gDAAgE;AAIhE,uCAAsJ;AAEtJ,MAAsB,OAMpB,SAAQ,kBAAwC;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,oBAAU,EAAE,CAAA;QACrC,MAAM,QAAQ,GAA4B,EAAE,CAAA;QAC5C,QAAQ,KAAK,CAAC,MAAM,EAAE;YACpB,KAAK,kCAAwB,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAK;aACN;YACD,KAAK,mCAAyB,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC3B,MAAK;aACN;YACD,KAAK,oCAA0B,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAA;gBACf,MAAK;aACN;YACD,KAAK,qCAA2B,CAAC,CAAC;gBAChC,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,MAAK;aACN;YACD;gBACE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SAC5B;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;AA5DD,0BA4DC"}
@@ -1,2 +1,2 @@
1
- export declare const startTerminal: () => Promise<never>;
1
+ export declare const startTerminal: () => Promise<void>;
2
2
  //# sourceMappingURL=terminal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,aAAa,sBAezB,CAAA"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"AAwGA,eAAO,MAAM,aAAa,qBAOzB,CAAA"}
@@ -2,36 +2,110 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.startTerminal = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const fs_1 = require("fs");
5
6
  const path_1 = tslib_1.__importDefault(require("path"));
6
7
  const terminal_kit_1 = require("terminal-kit");
7
- const xyo_logo_black_png_1 = tslib_1.__importDefault(require("./xyo_logo_black.png"));
8
- const commands = ['exit', 'plugin'];
8
+ function terminate() {
9
+ terminal_kit_1.terminal.grabInput(false);
10
+ terminal_kit_1.terminal.clear();
11
+ terminal_kit_1.terminal.green('\n\nXYO Node Shutdown - Bye\n\n');
12
+ setTimeout(function () {
13
+ process.exit();
14
+ }, 100);
15
+ }
16
+ const readFileDeep = (names) => {
17
+ let depth = 0;
18
+ let result;
19
+ let filename;
20
+ let resolvedPath;
21
+ while (depth < 10 && result === undefined) {
22
+ names.forEach((name) => {
23
+ if (result === undefined) {
24
+ filename = name;
25
+ for (let i = 0; i < depth; i++) {
26
+ filename = `../${filename}`;
27
+ }
28
+ resolvedPath = path_1.default.resolve(filename);
29
+ try {
30
+ result = (0, fs_1.readFileSync)(resolvedPath, { encoding: 'utf8' });
31
+ }
32
+ catch (ex) {
33
+ const error = ex;
34
+ if (error.code !== 'ENOENT') {
35
+ terminal_kit_1.terminal.red(`${JSON.stringify(error)}\n`);
36
+ }
37
+ }
38
+ }
39
+ });
40
+ depth++;
41
+ }
42
+ return [result, resolvedPath];
43
+ };
9
44
  const getCommand = () => {
10
- return new Promise((resolve, reject) => {
11
- terminal_kit_1.terminal.inputField({ autoComplete: commands, autoCompleteMenu: true }, (error, input) => {
12
- (0, terminal_kit_1.terminal)('\n');
13
- if (error) {
14
- reject(error);
45
+ return new Promise((resolve) => {
46
+ terminal_kit_1.terminal.once('key', (name) => {
47
+ if (name === 'ESCAPE') {
48
+ resolve(true);
15
49
  }
16
- else {
17
- resolve(input);
50
+ if (name === 'CTRL_C') {
51
+ resolve(false);
18
52
  }
19
53
  });
54
+ const items = [
55
+ 'Register Plugin',
56
+ 'Unregister Plugin',
57
+ 'List Registered Plugins',
58
+ 'Attach Plugin',
59
+ 'Detatch Plugin',
60
+ 'List Attached Plugins',
61
+ 'Show Config',
62
+ 'Status',
63
+ 'Exit',
64
+ ].map((item, index) => {
65
+ return {
66
+ slug: item.toLowerCase().replaceAll(' ', '-'),
67
+ text: `${index + 1}. ${item}`,
68
+ };
69
+ });
70
+ //terminal.clear()
71
+ terminal_kit_1.terminal.green('\nXYO Node Running\n');
72
+ terminal_kit_1.terminal.singleColumnMenu(items.map((item) => item.text), (error, response) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
73
+ if (error) {
74
+ terminal_kit_1.terminal.red(`Error: ${error}`);
75
+ }
76
+ switch (items[response.selectedIndex].slug) {
77
+ case 'exit':
78
+ resolve(false);
79
+ break;
80
+ case 'register-plugin':
81
+ terminal_kit_1.terminal.yellow('Register Plugin');
82
+ break;
83
+ case 'show-config': {
84
+ const [config, path] = readFileDeep(['xyo-config.json', 'xyo-config.js']);
85
+ let configObj;
86
+ terminal_kit_1.terminal.yellow(`\nConfig found at: ${path}\n`);
87
+ if (config) {
88
+ if (path === null || path === void 0 ? void 0 : path.endsWith('.json')) {
89
+ configObj = JSON.parse(config);
90
+ }
91
+ else if ((path === null || path === void 0 ? void 0 : path.endsWith('.cjs')) || (path === null || path === void 0 ? void 0 : path.endsWith('.js'))) {
92
+ configObj = (yield Promise.resolve().then(() => tslib_1.__importStar(require(path))));
93
+ }
94
+ }
95
+ (0, terminal_kit_1.terminal)(JSON.stringify(configObj !== null && configObj !== void 0 ? configObj : {}));
96
+ break;
97
+ }
98
+ }
99
+ resolve(true);
100
+ }));
20
101
  });
21
102
  };
22
103
  const startTerminal = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
23
- const imagePath = path_1.default.resolve(__dirname, xyo_logo_black_png_1.default);
24
- yield terminal_kit_1.terminal.drawImage(imagePath);
25
- terminal_kit_1.terminal.green('XYO Node Started\n\n');
26
- terminal_kit_1.terminal.green("Type 'exit' to exit\n\n");
27
104
  let running = true;
28
105
  while (running) {
29
- const command = yield getCommand();
30
- if (command === 'exit') {
31
- running = false;
32
- }
106
+ running = yield getCommand();
33
107
  }
34
- process.exit(0);
108
+ terminate();
35
109
  });
36
110
  exports.startTerminal = startTerminal;
37
111
  //# sourceMappingURL=terminal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":";;;;AAAA,wDAAuB;AACvB,+CAAuC;AAEvC,sFAAiD;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,uBAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvF,IAAA,uBAAQ,EAAC,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;AAEM,MAAM,aAAa,GAAG,GAAS,EAAE;IACtC,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,4BAAc,CAAC,CAAA;IACzD,MAAM,uBAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACnC,uBAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACtC,uBAAQ,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,CAAA;AAfY,QAAA,aAAa,iBAezB"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"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"}