@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"}
@@ -35,6 +35,8 @@ export class XyoNode extends XyoModule {
35
35
  this.registered();
36
36
  break;
37
37
  }
38
+ default:
39
+ return super.query(query);
38
40
  }
39
41
  return this.bindPayloads(payloads, queryAccount);
40
42
  }
@@ -1 +1 @@
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
+ {"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;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"}
@@ -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"}
@@ -1,32 +1,106 @@
1
+ import { readFileSync } from 'fs';
1
2
  import path from 'path';
2
3
  import { terminal } from 'terminal-kit';
3
- import xyo_logo_black from './xyo_logo_black.png';
4
- const commands = ['exit', 'plugin'];
4
+ function terminate() {
5
+ terminal.grabInput(false);
6
+ terminal.clear();
7
+ terminal.green('\n\nXYO Node Shutdown - Bye\n\n');
8
+ setTimeout(function () {
9
+ process.exit();
10
+ }, 100);
11
+ }
12
+ const readFileDeep = (names) => {
13
+ let depth = 0;
14
+ let result;
15
+ let filename;
16
+ let resolvedPath;
17
+ while (depth < 10 && result === undefined) {
18
+ names.forEach((name) => {
19
+ if (result === undefined) {
20
+ filename = name;
21
+ for (let i = 0; i < depth; i++) {
22
+ filename = `../${filename}`;
23
+ }
24
+ resolvedPath = path.resolve(filename);
25
+ try {
26
+ result = readFileSync(resolvedPath, { encoding: 'utf8' });
27
+ }
28
+ catch (ex) {
29
+ const error = ex;
30
+ if (error.code !== 'ENOENT') {
31
+ terminal.red(`${JSON.stringify(error)}\n`);
32
+ }
33
+ }
34
+ }
35
+ });
36
+ depth++;
37
+ }
38
+ return [result, resolvedPath];
39
+ };
5
40
  const getCommand = () => {
6
- return new Promise((resolve, reject) => {
7
- terminal.inputField({ autoComplete: commands, autoCompleteMenu: true }, (error, input) => {
8
- terminal('\n');
41
+ return new Promise((resolve) => {
42
+ terminal.once('key', (name) => {
43
+ if (name === 'ESCAPE') {
44
+ resolve(true);
45
+ }
46
+ if (name === 'CTRL_C') {
47
+ resolve(false);
48
+ }
49
+ });
50
+ const items = [
51
+ 'Register Plugin',
52
+ 'Unregister Plugin',
53
+ 'List Registered Plugins',
54
+ 'Attach Plugin',
55
+ 'Detatch Plugin',
56
+ 'List Attached Plugins',
57
+ 'Show Config',
58
+ 'Status',
59
+ 'Exit',
60
+ ].map((item, index) => {
61
+ return {
62
+ slug: item.toLowerCase().replaceAll(' ', '-'),
63
+ text: `${index + 1}. ${item}`,
64
+ };
65
+ });
66
+ //terminal.clear()
67
+ terminal.green('\nXYO Node Running\n');
68
+ terminal.singleColumnMenu(items.map((item) => item.text), async (error, response) => {
9
69
  if (error) {
10
- reject(error);
70
+ terminal.red(`Error: ${error}`);
11
71
  }
12
- else {
13
- resolve(input);
72
+ switch (items[response.selectedIndex].slug) {
73
+ case 'exit':
74
+ resolve(false);
75
+ break;
76
+ case 'register-plugin':
77
+ terminal.yellow('Register Plugin');
78
+ break;
79
+ case 'show-config': {
80
+ const [config, path] = readFileDeep(['xyo-config.json', 'xyo-config.js']);
81
+ let configObj;
82
+ terminal.yellow(`\nConfig found at: ${path}\n`);
83
+ if (config) {
84
+ if (path?.endsWith('.json')) {
85
+ configObj = JSON.parse(config);
86
+ }
87
+ else if (path?.endsWith('.cjs') || path?.endsWith('.js')) {
88
+ configObj = (await import(path));
89
+ }
90
+ }
91
+ terminal(JSON.stringify(configObj ?? {}));
92
+ break;
93
+ }
14
94
  }
95
+ resolve(true);
15
96
  });
16
97
  });
17
98
  };
18
99
  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
100
  let running = true;
24
101
  while (running) {
25
- const command = await getCommand();
26
- if (command === 'exit') {
27
- running = false;
28
- }
102
+ running = await getCommand();
29
103
  }
30
- process.exit(0);
104
+ terminate();
31
105
  };
32
106
  //# sourceMappingURL=terminal.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -12,11 +12,11 @@
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.6.7",
14
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",
15
+ "@xyo-network/account": "^2.33.0-rc.11",
16
+ "@xyo-network/archivist": "^2.33.0-rc.11",
17
+ "@xyo-network/module": "^2.33.0-rc.11",
18
+ "@xyo-network/payload": "^2.33.0-rc.11",
19
+ "@xyo-network/promise": "^2.33.0-rc.11",
20
20
  "lodash": "^4.17.21",
21
21
  "terminal-kit": "^2.11.4",
22
22
  "tslib": "^2.4.0",
@@ -67,6 +67,6 @@
67
67
  "xyo-ts": "ts-node src/cli/index.ts"
68
68
  },
69
69
  "types": "dist/esm/index.d.ts",
70
- "version": "2.33.0-rc.1",
70
+ "version": "2.33.0-rc.11",
71
71
  "stableVersion": "2.32.1"
72
72
  }
package/src/XyoNode.ts CHANGED
@@ -11,7 +11,7 @@ export abstract class XyoNode<
11
11
  TQueryResult extends XyoPayload = XyoPayload,
12
12
  TModule extends XyoModule = XyoModule,
13
13
  >
14
- extends XyoModule<TConfig, TQuery, TQueryResult>
14
+ extends XyoModule<TQuery, TQueryResult, TConfig>
15
15
  implements NodeModule<TQuery, TQueryResult>
16
16
  {
17
17
  /** Query Functions - Start */
@@ -54,6 +54,8 @@ export abstract class XyoNode<
54
54
  this.registered()
55
55
  break
56
56
  }
57
+ default:
58
+ return super.query(query)
57
59
  }
58
60
  return this.bindPayloads(payloads, queryAccount)
59
61
  }
@@ -1,36 +1,112 @@
1
+ import { XyoModuleConfig } from '@xyo-network/module'
2
+ import { readFileSync } from 'fs'
1
3
  import path from 'path'
2
4
  import { terminal } from 'terminal-kit'
3
5
 
4
- import xyo_logo_black from './xyo_logo_black.png'
6
+ function terminate() {
7
+ terminal.grabInput(false)
8
+ terminal.clear()
9
+ terminal.green('\n\nXYO Node Shutdown - Bye\n\n')
10
+ setTimeout(function () {
11
+ process.exit()
12
+ }, 100)
13
+ }
5
14
 
6
- const commands = ['exit', 'plugin']
15
+ const readFileDeep = (names: string[]) => {
16
+ let depth = 0
17
+ let result: string | undefined
18
+ let filename
19
+ let resolvedPath
20
+ while (depth < 10 && result === undefined) {
21
+ names.forEach((name) => {
22
+ if (result === undefined) {
23
+ filename = name
24
+ for (let i = 0; i < depth; i++) {
25
+ filename = `../${filename}`
26
+ }
27
+ resolvedPath = path.resolve(filename)
28
+ try {
29
+ result = readFileSync(resolvedPath, { encoding: 'utf8' })
30
+ } catch (ex) {
31
+ const error = ex as NodeJS.ErrnoException
32
+ if (error.code !== 'ENOENT') {
33
+ terminal.red(`${JSON.stringify(error)}\n`)
34
+ }
35
+ }
36
+ }
37
+ })
38
+ depth++
39
+ }
40
+ return [result, resolvedPath]
41
+ }
7
42
 
8
- const getCommand = (): Promise<string | undefined> => {
9
- return new Promise((resolve, reject) => {
10
- terminal.inputField({ autoComplete: commands, autoCompleteMenu: true }, (error, input) => {
11
- terminal('\n')
12
- if (error) {
13
- reject(error)
14
- } else {
15
- resolve(input)
43
+ const getCommand = (): Promise<boolean> => {
44
+ return new Promise((resolve) => {
45
+ terminal.once('key', (name: string) => {
46
+ if (name === 'ESCAPE') {
47
+ resolve(true)
48
+ }
49
+ if (name === 'CTRL_C') {
50
+ resolve(false)
16
51
  }
17
52
  })
53
+ const items = [
54
+ 'Register Plugin',
55
+ 'Unregister Plugin',
56
+ 'List Registered Plugins',
57
+ 'Attach Plugin',
58
+ 'Detatch Plugin',
59
+ 'List Attached Plugins',
60
+ 'Show Config',
61
+ 'Status',
62
+ 'Exit',
63
+ ].map((item, index) => {
64
+ return {
65
+ slug: item.toLowerCase().replaceAll(' ', '-'),
66
+ text: `${index + 1}. ${item}`,
67
+ }
68
+ })
69
+ //terminal.clear()
70
+ terminal.green('\nXYO Node Running\n')
71
+ terminal.singleColumnMenu(
72
+ items.map((item) => item.text),
73
+ async (error, response) => {
74
+ if (error) {
75
+ terminal.red(`Error: ${error}`)
76
+ }
77
+ switch (items[response.selectedIndex].slug) {
78
+ case 'exit':
79
+ resolve(false)
80
+ break
81
+ case 'register-plugin':
82
+ terminal.yellow('Register Plugin')
83
+ break
84
+ case 'show-config': {
85
+ const [config, path] = readFileDeep(['xyo-config.json', 'xyo-config.js'])
86
+ let configObj: XyoModuleConfig | undefined
87
+ terminal.yellow(`\nConfig found at: ${path}\n`)
88
+ if (config) {
89
+ if (path?.endsWith('.json')) {
90
+ configObj = JSON.parse(config) as XyoModuleConfig
91
+ } else if (path?.endsWith('.cjs') || path?.endsWith('.js')) {
92
+ configObj = (await import(path)) as XyoModuleConfig
93
+ }
94
+ }
95
+ terminal(JSON.stringify(configObj ?? {}))
96
+ break
97
+ }
98
+ }
99
+ resolve(true)
100
+ },
101
+ )
18
102
  })
19
103
  }
20
104
 
21
105
  export const startTerminal = async () => {
22
- const imagePath = path.resolve(__dirname, xyo_logo_black)
23
- await terminal.drawImage(imagePath)
24
- terminal.green('XYO Node Started\n\n')
25
- terminal.green("Type 'exit' to exit\n\n")
26
-
27
106
  let running = true
28
-
29
107
  while (running) {
30
- const command = await getCommand()
31
- if (command === 'exit') {
32
- running = false
33
- }
108
+ running = await getCommand()
34
109
  }
35
- process.exit(0)
110
+
111
+ terminate()
36
112
  }
Binary file
package/xyo-config.js ADDED
@@ -0,0 +1,4 @@
1
+ // eslint-disable-next-line no-undef
2
+ module.exports = {
3
+ version: 1,
4
+ }
Binary file
Binary file
Binary file