@xyo-network/node 2.33.15 → 2.34.0

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 (84) hide show
  1. package/dist/cjs/MemoryNode.d.ts +1 -1
  2. package/dist/cjs/MemoryNode.d.ts.map +1 -1
  3. package/dist/cjs/MemoryNode.js +2 -2
  4. package/dist/cjs/MemoryNode.js.map +1 -1
  5. package/dist/cjs/Node.d.ts +1 -1
  6. package/dist/cjs/Node.d.ts.map +1 -1
  7. package/dist/cjs/Queries/Detach.d.ts +8 -0
  8. package/dist/cjs/Queries/Detach.d.ts.map +1 -0
  9. package/dist/cjs/Queries/Detach.js +5 -0
  10. package/dist/cjs/Queries/Detach.js.map +1 -0
  11. package/dist/cjs/Queries/index.d.ts +3 -3
  12. package/dist/cjs/Queries/index.d.ts.map +1 -1
  13. package/dist/cjs/Queries/index.js +1 -1
  14. package/dist/cjs/Queries/index.js.map +1 -1
  15. package/dist/cjs/XyoNode.d.ts +3 -2
  16. package/dist/cjs/XyoNode.d.ts.map +1 -1
  17. package/dist/cjs/XyoNode.js +6 -4
  18. package/dist/cjs/XyoNode.js.map +1 -1
  19. package/dist/cjs/XyoNodeWrapper.d.ts +1 -1
  20. package/dist/cjs/XyoNodeWrapper.d.ts.map +1 -1
  21. package/dist/cjs/XyoNodeWrapper.js +10 -6
  22. package/dist/cjs/XyoNodeWrapper.js.map +1 -1
  23. package/dist/docs.json +2701 -722
  24. package/dist/esm/MemoryNode.d.ts +1 -1
  25. package/dist/esm/MemoryNode.d.ts.map +1 -1
  26. package/dist/esm/MemoryNode.js +3 -3
  27. package/dist/esm/MemoryNode.js.map +1 -1
  28. package/dist/esm/Node.d.ts +1 -1
  29. package/dist/esm/Node.d.ts.map +1 -1
  30. package/dist/esm/Queries/Detach.d.ts +8 -0
  31. package/dist/esm/Queries/Detach.d.ts.map +1 -0
  32. package/dist/esm/Queries/Detach.js +2 -0
  33. package/dist/esm/Queries/Detach.js.map +1 -0
  34. package/dist/esm/Queries/index.d.ts +3 -3
  35. package/dist/esm/Queries/index.d.ts.map +1 -1
  36. package/dist/esm/Queries/index.js +1 -1
  37. package/dist/esm/Queries/index.js.map +1 -1
  38. package/dist/esm/XyoNode.d.ts +3 -2
  39. package/dist/esm/XyoNode.d.ts.map +1 -1
  40. package/dist/esm/XyoNode.js +7 -5
  41. package/dist/esm/XyoNode.js.map +1 -1
  42. package/dist/esm/XyoNodeWrapper.d.ts +1 -1
  43. package/dist/esm/XyoNodeWrapper.d.ts.map +1 -1
  44. package/dist/esm/XyoNodeWrapper.js +11 -7
  45. package/dist/esm/XyoNodeWrapper.js.map +1 -1
  46. package/package.json +8 -21
  47. package/src/MemoryNode.spec.ts +7 -4
  48. package/src/MemoryNode.ts +3 -3
  49. package/src/Node.ts +1 -1
  50. package/src/Queries/Detach.ts +9 -0
  51. package/src/Queries/index.ts +3 -3
  52. package/src/XyoNode.ts +10 -12
  53. package/src/XyoNodeWrapper.ts +12 -8
  54. package/dist/cjs/Queries/Detatch.d.ts +0 -8
  55. package/dist/cjs/Queries/Detatch.d.ts.map +0 -1
  56. package/dist/cjs/Queries/Detatch.js +0 -5
  57. package/dist/cjs/Queries/Detatch.js.map +0 -1
  58. package/dist/cjs/cli/index.d.ts +0 -2
  59. package/dist/cjs/cli/index.d.ts.map +0 -1
  60. package/dist/cjs/cli/index.js +0 -67
  61. package/dist/cjs/cli/index.js.map +0 -1
  62. package/dist/cjs/cli/terminal.d.ts +0 -3
  63. package/dist/cjs/cli/terminal.d.ts.map +0 -1
  64. package/dist/cjs/cli/terminal.js +0 -119
  65. package/dist/cjs/cli/terminal.js.map +0 -1
  66. package/dist/cjs/cli/xyo_logo_full_white.png +0 -0
  67. package/dist/esm/Queries/Detatch.d.ts +0 -8
  68. package/dist/esm/Queries/Detatch.d.ts.map +0 -1
  69. package/dist/esm/Queries/Detatch.js +0 -2
  70. package/dist/esm/Queries/Detatch.js.map +0 -1
  71. package/dist/esm/cli/index.d.ts +0 -2
  72. package/dist/esm/cli/index.d.ts.map +0 -1
  73. package/dist/esm/cli/index.js +0 -64
  74. package/dist/esm/cli/index.js.map +0 -1
  75. package/dist/esm/cli/terminal.d.ts +0 -3
  76. package/dist/esm/cli/terminal.d.ts.map +0 -1
  77. package/dist/esm/cli/terminal.js +0 -114
  78. package/dist/esm/cli/terminal.js.map +0 -1
  79. package/dist/esm/cli/xyo_logo_full_white.png +0 -0
  80. package/src/Queries/Detatch.ts +0 -9
  81. package/src/cli/index.ts +0 -81
  82. package/src/cli/terminal.ts +0 -123
  83. package/src/cli/types/images.d.ts +0 -5
  84. package/src/cli/xyo_logo_full_white.png +0 -0
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const archivist_1 = require("@xyo-network/archivist");
5
- const yargs_1 = tslib_1.__importDefault(require("yargs"));
6
- // eslint-disable-next-line import/no-internal-modules
7
- const helpers_1 = require("yargs/helpers");
8
- const MemoryNode_1 = require("../MemoryNode");
9
- const terminal_1 = require("./terminal");
10
- const parseOptions = () => {
11
- return (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
12
- .option('verbose', {
13
- alias: 'v',
14
- default: false,
15
- description: 'Run with verbose logging',
16
- type: 'boolean',
17
- })
18
- .option('module', {
19
- alias: 'm',
20
- description: 'Modules to load',
21
- type: 'string',
22
- });
23
- };
24
- const loadModule = (pkg, name, resolver) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
25
- const loadedPkg = yield Promise.resolve().then(() => tslib_1.__importStar(require(pkg)));
26
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- const ModuleConstructor = name ? loadedPkg[name] : loadedPkg;
28
- return new ModuleConstructor(undefined, undefined, resolver);
29
- });
30
- const xyo = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
31
- const node = new MemoryNode_1.MemoryNode();
32
- node.register(new archivist_1.XyoMemoryArchivist());
33
- yield parseOptions().command('node', 'Start an XYO Node', (yargs) => {
34
- return yargs;
35
- }, (yargs) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
36
- console.log(`yargs: ${JSON.stringify(yargs, null, 2)}`);
37
- const { verbose, module } = yargs;
38
- const modules = Array.isArray(module) ? module : [module];
39
- if (verbose)
40
- console.info('Starting Node');
41
- node.register(new archivist_1.XyoMemoryArchivist());
42
- const resolver = (address) => {
43
- console.log(`Resolving: ${address}`);
44
- return node.resolve(address);
45
- };
46
- yield Promise.all(modules.map((module) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
47
- const [pkg, name] = module.split('.');
48
- const instance = yield loadModule(pkg, name, resolver);
49
- console.log(`Arg: ${instance.address}`);
50
- node.register(instance);
51
- node.attach(instance.address);
52
- console.log(`Module Loaded: ${instance.address}`);
53
- })));
54
- })).argv;
55
- return node;
56
- });
57
- const start = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
58
- yield (0, terminal_1.startTerminal)(yield xyo());
59
- });
60
- start()
61
- .then(() => {
62
- console.log('Finishing,...');
63
- })
64
- .catch(() => {
65
- console.log('Excepting,...');
66
- });
67
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { MemoryNode } from '../MemoryNode';
2
- export declare const startTerminal: (node: MemoryNode) => Promise<void>;
3
- //# sourceMappingURL=terminal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AA8G1C,eAAO,MAAM,aAAa,SAAgB,UAAU,kBAOnD,CAAA"}
@@ -1,119 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.startTerminal = void 0;
4
- const tslib_1 = require("tslib");
5
- const fs_1 = require("fs");
6
- const path_1 = tslib_1.__importDefault(require("path"));
7
- const terminal_kit_1 = require("terminal-kit");
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
- };
44
- const getCommand = (node) => {
45
- return new Promise((resolve) => {
46
- terminal_kit_1.terminal.once('key', (name) => {
47
- if (name === 'ESCAPE') {
48
- resolve(true);
49
- }
50
- if (name === 'CTRL_C') {
51
- resolve(false);
52
- }
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 'list-registered-plugins': {
81
- terminal_kit_1.terminal.yellow('\nList Registered Plugins\n');
82
- const registered = yield (node === null || node === void 0 ? void 0 : node.registered());
83
- registered.forEach((module) => {
84
- (0, terminal_kit_1.terminal)(`0x${module}`);
85
- });
86
- break;
87
- }
88
- case 'register-plugin':
89
- terminal_kit_1.terminal.yellow('\nRegister Plugin\n');
90
- break;
91
- case 'show-config': {
92
- const [config, path] = readFileDeep(['xyo-config.json', 'xyo-config.js']);
93
- let configObj;
94
- terminal_kit_1.terminal.yellow(`\nConfig found at: ${path}\n`);
95
- if (config) {
96
- if (path === null || path === void 0 ? void 0 : path.endsWith('.json')) {
97
- configObj = JSON.parse(config);
98
- }
99
- else if ((path === null || path === void 0 ? void 0 : path.endsWith('.cjs')) || (path === null || path === void 0 ? void 0 : path.endsWith('.js'))) {
100
- configObj = (yield Promise.resolve().then(() => tslib_1.__importStar(require(path))));
101
- }
102
- }
103
- (0, terminal_kit_1.terminal)(JSON.stringify(configObj !== null && configObj !== void 0 ? configObj : {}));
104
- break;
105
- }
106
- }
107
- resolve(true);
108
- }));
109
- });
110
- };
111
- const startTerminal = (node) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
112
- let running = true;
113
- while (running) {
114
- running = yield getCommand(node);
115
- }
116
- terminate();
117
- });
118
- exports.startTerminal = startTerminal;
119
- //# sourceMappingURL=terminal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":";;;;AACA,2BAAiC;AACjC,wDAAuB;AACvB,+CAAuC;AAKvC,SAAS,SAAS;IAChB,uBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACzB,uBAAQ,CAAC,KAAK,EAAE,CAAA;IAChB,uBAAQ,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACjD,UAAU,CAAC;QACT,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC,EAAE,GAAG,CAAC,CAAA;AACT,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,KAAe,EAAE,EAAE;IACvC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,MAA0B,CAAA;IAC9B,IAAI,QAAQ,CAAA;IACZ,IAAI,YAAY,CAAA;IAChB,OAAO,KAAK,GAAG,EAAE,IAAI,MAAM,KAAK,SAAS,EAAE;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,QAAQ,GAAG,IAAI,CAAA;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;oBAC9B,QAAQ,GAAG,MAAM,QAAQ,EAAE,CAAA;iBAC5B;gBACD,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACrC,IAAI;oBACF,MAAM,GAAG,IAAA,iBAAY,EAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;iBAC1D;gBAAC,OAAO,EAAE,EAAE;oBACX,MAAM,KAAK,GAAG,EAA2B,CAAA;oBACzC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAC3B,uBAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;qBAC3C;iBACF;aACF;QACH,CAAC,CAAC,CAAA;QACF,KAAK,EAAE,CAAA;KACR;IACD,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAC/B,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,IAAU,EAAoB,EAAE;IAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,uBAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;YACpC,IAAI,IAAI,KAAK,QAAQ,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC,CAAA;aACd;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE;gBACrB,OAAO,CAAC,KAAK,CAAC,CAAA;aACf;QACH,CAAC,CAAC,CAAA;QACF,MAAM,KAAK,GAAG;YACZ,iBAAiB;YACjB,mBAAmB;YACnB,yBAAyB;YACzB,eAAe;YACf,gBAAgB;YAChB,uBAAuB;YACvB,aAAa;YACb,QAAQ;YACR,MAAM;SACP,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpB,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;gBAC7C,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;aAC9B,CAAA;QACH,CAAC,CAAC,CAAA;QACF,kBAAkB;QAClB,uBAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACtC,uBAAQ,CAAC,gBAAgB,CACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9B,CAAO,KAAK,EAAE,QAAQ,EAAE,EAAE;YACxB,IAAI,KAAK,EAAE;gBACT,uBAAQ,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC,CAAA;aAChC;YACD,QAAQ,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE;gBAC1C,KAAK,MAAM;oBACT,OAAO,CAAC,KAAK,CAAC,CAAA;oBACd,MAAK;gBACP,KAAK,yBAAyB,CAAC,CAAC;oBAC9B,uBAAQ,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAA;oBAC9C,MAAM,UAAU,GAAG,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAE,CAAA,CAAA;oBAC3C,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC5B,IAAA,uBAAQ,EAAC,KAAK,MAAM,EAAE,CAAC,CAAA;oBACzB,CAAC,CAAC,CAAA;oBACF,MAAK;iBACN;gBACD,KAAK,iBAAiB;oBACpB,uBAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;oBACtC,MAAK;gBACP,KAAK,aAAa,CAAC,CAAC;oBAClB,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAA;oBACzE,IAAI,SAAsC,CAAA;oBAC1C,uBAAQ,CAAC,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAA;oBAC/C,IAAI,MAAM,EAAE;wBACV,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;4BAC3B,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAoB,CAAA;yBAClD;6BAAM,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,MAAM,CAAC,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAE;4BAC1D,SAAS,GAAG,CAAC,gEAAa,IAAI,GAAC,CAAoB,CAAA;yBACpD;qBACF;oBACD,IAAA,uBAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC,CAAC,CAAA;oBACzC,MAAK;iBACN;aACF;YACD,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAA,CACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAEM,MAAM,aAAa,GAAG,CAAO,IAAgB,EAAE,EAAE;IACtD,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,OAAO,OAAO,EAAE;QACd,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;KACjC;IAED,SAAS,EAAE,CAAA;AACb,CAAC,CAAA,CAAA;AAPY,QAAA,aAAa,iBAOzB"}
@@ -1,8 +0,0 @@
1
- import { XyoQuery } from '@xyo-network/module';
2
- export declare type XyoNodeDetatchQuerySchema = 'network.xyo.query.node.detatch';
3
- export declare const XyoNodeDetatchQuerySchema: XyoNodeDetatchQuerySchema;
4
- export declare type XyoNodeDetatchQuery = XyoQuery<{
5
- schema: XyoNodeDetatchQuerySchema;
6
- address: string;
7
- }>;
8
- //# sourceMappingURL=Detatch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Detatch.d.ts","sourceRoot":"","sources":["../../../src/Queries/Detatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,oBAAY,yBAAyB,GAAG,gCAAgC,CAAA;AACxE,eAAO,MAAM,yBAAyB,EAAE,yBAA4D,CAAA;AAEpG,oBAAY,mBAAmB,GAAG,QAAQ,CAAC;IACzC,MAAM,EAAE,yBAAyB,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;CAChB,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export const XyoNodeDetatchQuerySchema = 'network.xyo.query.node.detatch';
2
- //# sourceMappingURL=Detatch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Detatch.js","sourceRoot":"","sources":["../../../src/Queries/Detatch.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,yBAAyB,GAA8B,gCAAgC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -1,64 +0,0 @@
1
- import { XyoMemoryArchivist } from '@xyo-network/archivist';
2
- import yargs from 'yargs';
3
- // eslint-disable-next-line import/no-internal-modules
4
- import { hideBin } from 'yargs/helpers';
5
- import { MemoryNode } 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 = async () => {
28
- const node = new MemoryNode();
29
- node.register(new XyoMemoryArchivist());
30
- await parseOptions().command('node', 'Start an XYO Node', (yargs) => {
31
- return yargs;
32
- }, async (yargs) => {
33
- console.log(`yargs: ${JSON.stringify(yargs, null, 2)}`);
34
- const { verbose, module } = yargs;
35
- const modules = Array.isArray(module) ? module : [module];
36
- if (verbose)
37
- console.info('Starting Node');
38
- node.register(new XyoMemoryArchivist());
39
- const resolver = (address) => {
40
- console.log(`Resolving: ${address}`);
41
- return node.resolve(address);
42
- };
43
- await Promise.all(modules.map(async (module) => {
44
- const [pkg, name] = module.split('.');
45
- const instance = await loadModule(pkg, name, resolver);
46
- console.log(`Arg: ${instance.address}`);
47
- node.register(instance);
48
- node.attach(instance.address);
49
- console.log(`Module Loaded: ${instance.address}`);
50
- }));
51
- }).argv;
52
- return node;
53
- };
54
- const start = async () => {
55
- await startTerminal(await xyo());
56
- };
57
- start()
58
- .then(() => {
59
- console.log('Finishing,...');
60
- })
61
- .catch(() => {
62
- console.log('Excepting,...');
63
- });
64
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { MemoryNode } from '../MemoryNode';
2
- export declare const startTerminal: (node: MemoryNode) => Promise<void>;
3
- //# sourceMappingURL=terminal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AA8G1C,eAAO,MAAM,aAAa,SAAgB,UAAU,kBAOnD,CAAA"}
@@ -1,114 +0,0 @@
1
- import { readFileSync } from 'fs';
2
- import path from 'path';
3
- import { terminal } from 'terminal-kit';
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
- };
40
- const getCommand = (node) => {
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) => {
69
- if (error) {
70
- terminal.red(`Error: ${error}`);
71
- }
72
- switch (items[response.selectedIndex].slug) {
73
- case 'exit':
74
- resolve(false);
75
- break;
76
- case 'list-registered-plugins': {
77
- terminal.yellow('\nList Registered Plugins\n');
78
- const registered = await node?.registered();
79
- registered.forEach((module) => {
80
- terminal(`0x${module}`);
81
- });
82
- break;
83
- }
84
- case 'register-plugin':
85
- terminal.yellow('\nRegister Plugin\n');
86
- break;
87
- case 'show-config': {
88
- const [config, path] = readFileDeep(['xyo-config.json', 'xyo-config.js']);
89
- let configObj;
90
- terminal.yellow(`\nConfig found at: ${path}\n`);
91
- if (config) {
92
- if (path?.endsWith('.json')) {
93
- configObj = JSON.parse(config);
94
- }
95
- else if (path?.endsWith('.cjs') || path?.endsWith('.js')) {
96
- configObj = (await import(path));
97
- }
98
- }
99
- terminal(JSON.stringify(configObj ?? {}));
100
- break;
101
- }
102
- }
103
- resolve(true);
104
- });
105
- });
106
- };
107
- export const startTerminal = async (node) => {
108
- let running = true;
109
- while (running) {
110
- running = await getCommand(node);
111
- }
112
- terminate();
113
- };
114
- //# sourceMappingURL=terminal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/cli/terminal.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { XyoQuery } from '@xyo-network/module'
2
-
3
- export type XyoNodeDetatchQuerySchema = 'network.xyo.query.node.detatch'
4
- export const XyoNodeDetatchQuerySchema: XyoNodeDetatchQuerySchema = 'network.xyo.query.node.detatch'
5
-
6
- export type XyoNodeDetatchQuery = XyoQuery<{
7
- schema: XyoNodeDetatchQuerySchema
8
- address: string
9
- }>
package/src/cli/index.ts DELETED
@@ -1,81 +0,0 @@
1
- import { XyoMemoryArchivist } from '@xyo-network/archivist'
2
- import { XyoModule, XyoModuleResolverFunc } from '@xyo-network/module'
3
- import yargs from 'yargs'
4
- // eslint-disable-next-line import/no-internal-modules
5
- import { hideBin } from 'yargs/helpers'
6
-
7
- import { MemoryNode } from '../MemoryNode'
8
- import { startTerminal } from './terminal'
9
-
10
- const parseOptions = () => {
11
- return yargs(hideBin(process.argv))
12
- .option('verbose', {
13
- alias: 'v',
14
- default: false,
15
- description: 'Run with verbose logging',
16
- type: 'boolean',
17
- })
18
- .option('module', {
19
- alias: 'm',
20
-
21
- description: 'Modules to load',
22
- type: 'string',
23
- })
24
- }
25
-
26
- const loadModule = async (pkg: string, name?: string, resolver?: XyoModuleResolverFunc): Promise<XyoModule> => {
27
- const loadedPkg = await import(pkg)
28
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
- const ModuleConstructor: any = name ? loadedPkg[name] : loadedPkg
30
- return new ModuleConstructor(undefined, undefined, resolver)
31
- }
32
-
33
- const xyo = async () => {
34
- const node = new MemoryNode()
35
- node.register(new XyoMemoryArchivist())
36
- await parseOptions().command(
37
- 'node',
38
- 'Start an XYO Node',
39
- (yargs) => {
40
- return yargs
41
- },
42
- async (yargs) => {
43
- console.log(`yargs: ${JSON.stringify(yargs, null, 2)}`)
44
- const { verbose, module } = yargs
45
- const modules = Array.isArray(module) ? module : [module]
46
- if (verbose) console.info('Starting Node')
47
-
48
- node.register(new XyoMemoryArchivist())
49
-
50
- const resolver: XyoModuleResolverFunc = (address: string) => {
51
- console.log(`Resolving: ${address}`)
52
- return node.resolve(address)
53
- }
54
-
55
- await Promise.all(
56
- modules.map(async (module) => {
57
- const [pkg, name] = module.split('.')
58
- const instance = await loadModule(pkg, name, resolver)
59
- console.log(`Arg: ${instance.address}`)
60
- node.register(instance)
61
- node.attach(instance.address)
62
-
63
- console.log(`Module Loaded: ${instance.address}`)
64
- }),
65
- )
66
- },
67
- ).argv
68
- return node
69
- }
70
-
71
- const start = async () => {
72
- await startTerminal(await xyo())
73
- }
74
-
75
- start()
76
- .then(() => {
77
- console.log('Finishing,...')
78
- })
79
- .catch(() => {
80
- console.log('Excepting,...')
81
- })
@@ -1,123 +0,0 @@
1
- import { XyoModuleConfig } from '@xyo-network/module'
2
- import { readFileSync } from 'fs'
3
- import path from 'path'
4
- import { terminal } from 'terminal-kit'
5
-
6
- import { MemoryNode } from '../MemoryNode'
7
- import { Node } from '../Node'
8
-
9
- function terminate() {
10
- terminal.grabInput(false)
11
- terminal.clear()
12
- terminal.green('\n\nXYO Node Shutdown - Bye\n\n')
13
- setTimeout(function () {
14
- process.exit()
15
- }, 100)
16
- }
17
-
18
- const readFileDeep = (names: string[]) => {
19
- let depth = 0
20
- let result: string | undefined
21
- let filename
22
- let resolvedPath
23
- while (depth < 10 && result === undefined) {
24
- names.forEach((name) => {
25
- if (result === undefined) {
26
- filename = name
27
- for (let i = 0; i < depth; i++) {
28
- filename = `../${filename}`
29
- }
30
- resolvedPath = path.resolve(filename)
31
- try {
32
- result = readFileSync(resolvedPath, { encoding: 'utf8' })
33
- } catch (ex) {
34
- const error = ex as NodeJS.ErrnoException
35
- if (error.code !== 'ENOENT') {
36
- terminal.red(`${JSON.stringify(error)}\n`)
37
- }
38
- }
39
- }
40
- })
41
- depth++
42
- }
43
- return [result, resolvedPath]
44
- }
45
-
46
- const getCommand = (node: Node): Promise<boolean> => {
47
- return new Promise((resolve) => {
48
- terminal.once('key', (name: string) => {
49
- if (name === 'ESCAPE') {
50
- resolve(true)
51
- }
52
- if (name === 'CTRL_C') {
53
- resolve(false)
54
- }
55
- })
56
- const items = [
57
- 'Register Plugin',
58
- 'Unregister Plugin',
59
- 'List Registered Plugins',
60
- 'Attach Plugin',
61
- 'Detatch Plugin',
62
- 'List Attached Plugins',
63
- 'Show Config',
64
- 'Status',
65
- 'Exit',
66
- ].map((item, index) => {
67
- return {
68
- slug: item.toLowerCase().replaceAll(' ', '-'),
69
- text: `${index + 1}. ${item}`,
70
- }
71
- })
72
- //terminal.clear()
73
- terminal.green('\nXYO Node Running\n')
74
- terminal.singleColumnMenu(
75
- items.map((item) => item.text),
76
- async (error, response) => {
77
- if (error) {
78
- terminal.red(`Error: ${error}`)
79
- }
80
- switch (items[response.selectedIndex].slug) {
81
- case 'exit':
82
- resolve(false)
83
- break
84
- case 'list-registered-plugins': {
85
- terminal.yellow('\nList Registered Plugins\n')
86
- const registered = await node?.registered()
87
- registered.forEach((module) => {
88
- terminal(`0x${module}`)
89
- })
90
- break
91
- }
92
- case 'register-plugin':
93
- terminal.yellow('\nRegister Plugin\n')
94
- break
95
- case 'show-config': {
96
- const [config, path] = readFileDeep(['xyo-config.json', 'xyo-config.js'])
97
- let configObj: XyoModuleConfig | undefined
98
- terminal.yellow(`\nConfig found at: ${path}\n`)
99
- if (config) {
100
- if (path?.endsWith('.json')) {
101
- configObj = JSON.parse(config) as XyoModuleConfig
102
- } else if (path?.endsWith('.cjs') || path?.endsWith('.js')) {
103
- configObj = (await import(path)) as XyoModuleConfig
104
- }
105
- }
106
- terminal(JSON.stringify(configObj ?? {}))
107
- break
108
- }
109
- }
110
- resolve(true)
111
- },
112
- )
113
- })
114
- }
115
-
116
- export const startTerminal = async (node: MemoryNode) => {
117
- let running = true
118
- while (running) {
119
- running = await getCommand(node)
120
- }
121
-
122
- terminate()
123
- }