@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
@@ -0,0 +1,69 @@
1
+ import { forget } from '@xylabs/forget'
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 { XyoMemoryNode } 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 = () => {
34
+ return parseOptions().command(
35
+ 'node',
36
+ 'Start an XYO Node',
37
+ (yargs) => {
38
+ return yargs
39
+ },
40
+ async (yargs) => {
41
+ console.log(`yargs: ${JSON.stringify(yargs, null, 2)}`)
42
+ const { verbose, module } = yargs
43
+ const modules = Array.isArray(module) ? module : [module]
44
+ if (verbose) console.info('Starting Node')
45
+
46
+ const node = new XyoMemoryNode()
47
+
48
+ const resolver: XyoModuleResolverFunc = (address: string) => {
49
+ console.log(`Resolving: ${address}`)
50
+ return node.resolve(address)
51
+ }
52
+
53
+ await Promise.all(
54
+ modules.map(async (module) => {
55
+ const [pkg, name] = module.split('.')
56
+ const instance = await loadModule(pkg, name, resolver)
57
+ console.log(`Arg: ${instance.address}`)
58
+ node.register(instance)
59
+ node.attach(instance.address)
60
+
61
+ console.log(`Module Loaded: ${instance.address}`)
62
+ }),
63
+ )
64
+ },
65
+ ).argv
66
+ }
67
+
68
+ void xyo()
69
+ forget(startTerminal())
@@ -0,0 +1,36 @@
1
+ import path from 'path'
2
+ import { terminal } from 'terminal-kit'
3
+
4
+ import xyo_logo_black from './xyo_logo_black.png'
5
+
6
+ const commands = ['exit', 'plugin']
7
+
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)
16
+ }
17
+ })
18
+ })
19
+ }
20
+
21
+ 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
+ let running = true
28
+
29
+ while (running) {
30
+ const command = await getCommand()
31
+ if (command === 'exit') {
32
+ running = false
33
+ }
34
+ }
35
+ process.exit(0)
36
+ }
@@ -0,0 +1,5 @@
1
+ declare module '*.png'
2
+ declare module '*.jpg'
3
+ declare module '*.svg'
4
+ declare module '*.gif'
5
+ declare module '*.webp'
Binary file