@xyo-network/node 2.33.4 → 2.33.6

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 (94) hide show
  1. package/dist/cjs/MemoryNode.d.ts +4 -4
  2. package/dist/cjs/MemoryNode.d.ts.map +1 -1
  3. package/dist/cjs/MemoryNode.js +1 -4
  4. package/dist/cjs/MemoryNode.js.map +1 -1
  5. package/dist/cjs/Node.d.ts +0 -4
  6. package/dist/cjs/Node.d.ts.map +1 -1
  7. package/dist/cjs/NodeModule.d.ts +12 -0
  8. package/dist/cjs/NodeModule.d.ts.map +1 -0
  9. package/dist/cjs/NodeModule.js +3 -0
  10. package/dist/cjs/NodeModule.js.map +1 -0
  11. package/dist/cjs/Queries/Registered.d.ts +7 -0
  12. package/dist/cjs/Queries/Registered.d.ts.map +1 -0
  13. package/dist/cjs/Queries/Registered.js +5 -0
  14. package/dist/cjs/Queries/Registered.js.map +1 -0
  15. package/dist/cjs/Queries/index.d.ts +5 -5
  16. package/dist/cjs/Queries/index.d.ts.map +1 -1
  17. package/dist/cjs/Queries/index.js +1 -1
  18. package/dist/cjs/Queries/index.js.map +1 -1
  19. package/dist/cjs/XyoNode.d.ts +7 -8
  20. package/dist/cjs/XyoNode.d.ts.map +1 -1
  21. package/dist/cjs/XyoNode.js +2 -2
  22. package/dist/cjs/XyoNode.js.map +1 -1
  23. package/dist/cjs/XyoNodeWrapper.d.ts +7 -3
  24. package/dist/cjs/XyoNodeWrapper.d.ts.map +1 -1
  25. package/dist/cjs/XyoNodeWrapper.js +19 -1
  26. package/dist/cjs/XyoNodeWrapper.js.map +1 -1
  27. package/dist/cjs/cli/index.js +18 -7
  28. package/dist/cjs/cli/index.js.map +1 -1
  29. package/dist/cjs/cli/terminal.d.ts +2 -1
  30. package/dist/cjs/cli/terminal.d.ts.map +1 -1
  31. package/dist/cjs/cli/terminal.js +12 -4
  32. package/dist/cjs/cli/terminal.js.map +1 -1
  33. package/dist/cjs/index.d.ts +1 -0
  34. package/dist/cjs/index.d.ts.map +1 -1
  35. package/dist/cjs/index.js +1 -0
  36. package/dist/cjs/index.js.map +1 -1
  37. package/dist/docs.json +9684 -7440
  38. package/dist/esm/MemoryNode.d.ts +4 -4
  39. package/dist/esm/MemoryNode.d.ts.map +1 -1
  40. package/dist/esm/MemoryNode.js +1 -4
  41. package/dist/esm/MemoryNode.js.map +1 -1
  42. package/dist/esm/Node.d.ts +0 -4
  43. package/dist/esm/Node.d.ts.map +1 -1
  44. package/dist/esm/NodeModule.d.ts +12 -0
  45. package/dist/esm/NodeModule.d.ts.map +1 -0
  46. package/dist/esm/NodeModule.js +2 -0
  47. package/dist/esm/NodeModule.js.map +1 -0
  48. package/dist/esm/Queries/Registered.d.ts +7 -0
  49. package/dist/esm/Queries/Registered.d.ts.map +1 -0
  50. package/dist/esm/Queries/Registered.js +2 -0
  51. package/dist/esm/Queries/Registered.js.map +1 -0
  52. package/dist/esm/Queries/index.d.ts +5 -5
  53. package/dist/esm/Queries/index.d.ts.map +1 -1
  54. package/dist/esm/Queries/index.js +1 -1
  55. package/dist/esm/Queries/index.js.map +1 -1
  56. package/dist/esm/XyoNode.d.ts +7 -8
  57. package/dist/esm/XyoNode.d.ts.map +1 -1
  58. package/dist/esm/XyoNode.js +3 -3
  59. package/dist/esm/XyoNode.js.map +1 -1
  60. package/dist/esm/XyoNodeWrapper.d.ts +7 -3
  61. package/dist/esm/XyoNodeWrapper.d.ts.map +1 -1
  62. package/dist/esm/XyoNodeWrapper.js +16 -2
  63. package/dist/esm/XyoNodeWrapper.js.map +1 -1
  64. package/dist/esm/cli/index.js +17 -6
  65. package/dist/esm/cli/index.js.map +1 -1
  66. package/dist/esm/cli/terminal.d.ts +2 -1
  67. package/dist/esm/cli/terminal.d.ts.map +1 -1
  68. package/dist/esm/cli/terminal.js +12 -4
  69. package/dist/esm/cli/terminal.js.map +1 -1
  70. package/dist/esm/index.d.ts +1 -0
  71. package/dist/esm/index.d.ts.map +1 -1
  72. package/dist/esm/index.js +1 -0
  73. package/dist/esm/index.js.map +1 -1
  74. package/package.json +6 -6
  75. package/src/MemoryNode.spec.ts +4 -3
  76. package/src/MemoryNode.ts +4 -7
  77. package/src/Node.ts +0 -6
  78. package/src/NodeModule.ts +15 -0
  79. package/src/Queries/Registered.ts +8 -0
  80. package/src/Queries/index.ts +7 -5
  81. package/src/XyoNode.ts +15 -11
  82. package/src/XyoNodeWrapper.ts +22 -6
  83. package/src/cli/index.ts +18 -6
  84. package/src/cli/terminal.ts +15 -4
  85. package/src/index.ts +1 -0
  86. package/dist/cjs/Queries/Available.d.ts +0 -7
  87. package/dist/cjs/Queries/Available.d.ts.map +0 -1
  88. package/dist/cjs/Queries/Available.js +0 -5
  89. package/dist/cjs/Queries/Available.js.map +0 -1
  90. package/dist/esm/Queries/Available.d.ts +0 -7
  91. package/dist/esm/Queries/Available.d.ts.map +0 -1
  92. package/dist/esm/Queries/Available.js +0 -2
  93. package/dist/esm/Queries/Available.js.map +0 -1
  94. package/src/Queries/Available.ts +0 -8
@@ -2,23 +2,25 @@ import { XyoModuleQuery, XyoModuleQuerySchema, XyoQuery } from '@xyo-network/mod
2
2
 
3
3
  import { XyoNodeAttachQuery, XyoNodeAttachQuerySchema } from './Attach'
4
4
  import { XyoNodeAttachedQuery, XyoNodeAttachedQuerySchema } from './Attached'
5
- import { XyoNodeAvailableQuery, XyoNodeAvailableQuerySchema } from './Available'
6
5
  import { XyoNodeDetatchQuery, XyoNodeDetatchQuerySchema } from './Detatch'
6
+ import { XyoNodeRegisteredQuery, XyoNodeRegisteredQuerySchema } from './Registered'
7
7
 
8
8
  export * from './Attach'
9
9
  export * from './Attached'
10
- export * from './Available'
11
10
  export * from './Detatch'
11
+ export * from './Registered'
12
12
 
13
13
  type XyoNodeQuerySchemaBase =
14
14
  | XyoNodeAttachQuerySchema
15
15
  | XyoNodeDetatchQuerySchema
16
16
  | XyoNodeAttachedQuerySchema
17
- | XyoNodeAvailableQuerySchema
17
+ | XyoNodeRegisteredQuerySchema
18
18
  | XyoModuleQuerySchema
19
19
 
20
20
  export type XyoNodeQuerySchema<T extends string | void = void> = T extends string ? XyoNodeQuerySchemaBase | T : XyoNodeQuerySchemaBase
21
21
 
22
- type XyoNodeQueryBase = XyoNodeAttachQuery | XyoNodeDetatchQuery | XyoNodeAttachedQuery | XyoNodeAvailableQuery | XyoModuleQuery
22
+ type XyoNodeQueryBase<T extends XyoQuery | void = void> = T extends XyoQuery
23
+ ? XyoModuleQuery<XyoNodeAttachQuery | XyoNodeDetatchQuery | XyoNodeAttachedQuery | XyoNodeRegisteredQuery | T>
24
+ : XyoModuleQuery<XyoNodeAttachQuery | XyoNodeDetatchQuery | XyoNodeAttachedQuery | XyoNodeRegisteredQuery>
23
25
 
24
- export type XyoNodeQuery<T extends XyoQuery | void = void> = T extends XyoQuery ? XyoNodeQueryBase | T : XyoNodeQueryBase
26
+ export type XyoNodeQuery<T extends XyoQuery | void = void> = T extends XyoQuery ? XyoNodeQueryBase<T> : XyoNodeQueryBase
package/src/XyoNode.ts CHANGED
@@ -1,10 +1,16 @@
1
1
  import { XyoAccount } from '@xyo-network/account'
2
- import { XyoModule, XyoModuleResolverFunc } from '@xyo-network/module'
2
+ import { XyoModule, XyoModuleQueryResult, XyoModuleResolverFunc } from '@xyo-network/module'
3
3
  import { XyoPayload } from '@xyo-network/payload'
4
4
 
5
5
  import { NodeConfig } from './Config'
6
- import { NodeModule } from './Node'
7
- import { XyoNodeAttachedQuerySchema, XyoNodeAttachQuerySchema, XyoNodeAvailableQuerySchema, XyoNodeDetatchQuerySchema, XyoNodeQuery } from './Queries'
6
+ import { NodeModule } from './NodeModule'
7
+ import {
8
+ XyoNodeAttachedQuerySchema,
9
+ XyoNodeAttachQuerySchema,
10
+ XyoNodeDetatchQuerySchema,
11
+ XyoNodeQuery,
12
+ XyoNodeRegisteredQuerySchema,
13
+ } from './Queries'
8
14
  export abstract class XyoNode<
9
15
  TConfig extends NodeConfig = NodeConfig,
10
16
  TQuery extends XyoNodeQuery = XyoNodeQuery,
@@ -12,7 +18,7 @@ export abstract class XyoNode<
12
18
  TModule extends XyoModule = XyoModule,
13
19
  >
14
20
  extends XyoModule<TQuery, TQueryResult, TConfig>
15
- implements NodeModule<TQuery, TQueryResult>
21
+ implements NodeModule<TQuery, TQueryResult, TModule>
16
22
  {
17
23
  constructor(config?: TConfig, account?: XyoAccount, resolver?: XyoModuleResolverFunc) {
18
24
  super(config, account, resolver)
@@ -21,7 +27,7 @@ export abstract class XyoNode<
21
27
  /** Query Functions - Start */
22
28
  abstract attach(_address: string): void
23
29
  abstract detatch(_address: string): void
24
- abstract resolve(_address: string): XyoModule | null
30
+ abstract resolve(_address: string): TModule | null
25
31
 
26
32
  registered(): string[] {
27
33
  throw new Error('Method not implemented.')
@@ -30,15 +36,15 @@ export abstract class XyoNode<
30
36
  throw new Error('Method not implemented.')
31
37
  }
32
38
 
33
- availableModules(): XyoModule[] {
39
+ registeredModules(): TModule[] {
34
40
  throw new Error('Method not implemented.')
35
41
  }
36
- attachedModules(): XyoModule[] {
42
+ attachedModules(): TModule[] {
37
43
  throw new Error('Method not implemented.')
38
44
  }
39
45
  /** Query Functions - End */
40
46
 
41
- query(query: TQuery) {
47
+ override query(query: TQuery): Promise<XyoModuleQueryResult<TQueryResult>> {
42
48
  const queryAccount = new XyoAccount()
43
49
  const payloads: (TQueryResult | null)[] = []
44
50
  switch (query.schema) {
@@ -54,7 +60,7 @@ export abstract class XyoNode<
54
60
  this.attached()
55
61
  break
56
62
  }
57
- case XyoNodeAvailableQuerySchema: {
63
+ case XyoNodeRegisteredQuerySchema: {
58
64
  this.registered()
59
65
  break
60
66
  }
@@ -67,6 +73,4 @@ export abstract class XyoNode<
67
73
  register(_module: TModule): void {
68
74
  throw new Error('Method not implemented.')
69
75
  }
70
-
71
- abstract get(_address: string): TModule | undefined
72
76
  }
@@ -1,21 +1,24 @@
1
- import { XyoModuleWrapper } from '@xyo-network/module'
1
+ import { Module, XyoModule, XyoModuleWrapper } from '@xyo-network/module'
2
2
  import compact from 'lodash/compact'
3
3
 
4
- import { Node } from './Node'
4
+ import { NodeModule } from './NodeModule'
5
5
  import {
6
6
  XyoNodeAttachedQuery,
7
7
  XyoNodeAttachedQuerySchema,
8
8
  XyoNodeAttachQuery,
9
9
  XyoNodeAttachQuerySchema,
10
- XyoNodeAvailableQuery,
11
- XyoNodeAvailableQuerySchema,
12
10
  XyoNodeDetatchQuery,
13
11
  XyoNodeDetatchQuerySchema,
12
+ XyoNodeRegisteredQuery,
13
+ XyoNodeRegisteredQuerySchema,
14
14
  } from './Queries'
15
15
 
16
- export class XyoNodeWrapper extends XyoModuleWrapper implements Node {
16
+ export class XyoNodeWrapper extends XyoModuleWrapper implements NodeModule {
17
+ register(_module: Module): void {
18
+ throw Error('Not implemented')
19
+ }
17
20
  async registered(): Promise<string[]> {
18
- const query: XyoNodeAvailableQuery = { schema: XyoNodeAvailableQuerySchema }
21
+ const query: XyoNodeRegisteredQuery = { schema: XyoNodeRegisteredQuerySchema }
19
22
  return compact((await this.module.query(query))[1].map((payload) => payload?.schema))
20
23
  }
21
24
  async attached(): Promise<string[]> {
@@ -32,4 +35,17 @@ export class XyoNodeWrapper extends XyoModuleWrapper implements Node {
32
35
  await this.module.query(query)
33
36
  return
34
37
  }
38
+
39
+ async registeredModules(): Promise<XyoModule[]> {
40
+ const addresses = await this.registered()
41
+ return compact(await Promise.all(addresses.map((address) => this.resolve(address))))
42
+ }
43
+ async attachedModules(): Promise<XyoModule[]> {
44
+ const addresses = await this.attached()
45
+ return compact(await Promise.all(addresses.map((address) => this.resolve(address))))
46
+ }
47
+
48
+ resolve(_address: string): XyoModule | null {
49
+ throw Error('Not implemented')
50
+ }
35
51
  }
package/src/cli/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { forget } from '@xylabs/forget'
1
+ import { XyoMemoryArchivist } from '@xyo-network/archivist'
2
2
  import { XyoModule, XyoModuleResolverFunc } from '@xyo-network/module'
3
3
  import yargs from 'yargs'
4
4
  // eslint-disable-next-line import/no-internal-modules
@@ -30,8 +30,10 @@ const loadModule = async (pkg: string, name?: string, resolver?: XyoModuleResolv
30
30
  return new ModuleConstructor(undefined, undefined, resolver)
31
31
  }
32
32
 
33
- const xyo = () => {
34
- return parseOptions().command(
33
+ const xyo = async () => {
34
+ const node = new MemoryNode()
35
+ node.register(new XyoMemoryArchivist())
36
+ await parseOptions().command(
35
37
  'node',
36
38
  'Start an XYO Node',
37
39
  (yargs) => {
@@ -43,7 +45,7 @@ const xyo = () => {
43
45
  const modules = Array.isArray(module) ? module : [module]
44
46
  if (verbose) console.info('Starting Node')
45
47
 
46
- const node = new MemoryNode()
48
+ node.register(new XyoMemoryArchivist())
47
49
 
48
50
  const resolver: XyoModuleResolverFunc = (address: string) => {
49
51
  console.log(`Resolving: ${address}`)
@@ -63,7 +65,17 @@ const xyo = () => {
63
65
  )
64
66
  },
65
67
  ).argv
68
+ return node
66
69
  }
67
70
 
68
- void xyo()
69
- forget(startTerminal())
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
+ })
@@ -3,6 +3,9 @@ import { readFileSync } from 'fs'
3
3
  import path from 'path'
4
4
  import { terminal } from 'terminal-kit'
5
5
 
6
+ import { MemoryNode } from '../MemoryNode'
7
+ import { Node } from '../Node'
8
+
6
9
  function terminate() {
7
10
  terminal.grabInput(false)
8
11
  terminal.clear()
@@ -40,7 +43,7 @@ const readFileDeep = (names: string[]) => {
40
43
  return [result, resolvedPath]
41
44
  }
42
45
 
43
- const getCommand = (): Promise<boolean> => {
46
+ const getCommand = (node: Node): Promise<boolean> => {
44
47
  return new Promise((resolve) => {
45
48
  terminal.once('key', (name: string) => {
46
49
  if (name === 'ESCAPE') {
@@ -78,8 +81,16 @@ const getCommand = (): Promise<boolean> => {
78
81
  case 'exit':
79
82
  resolve(false)
80
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
+ }
81
92
  case 'register-plugin':
82
- terminal.yellow('Register Plugin')
93
+ terminal.yellow('\nRegister Plugin\n')
83
94
  break
84
95
  case 'show-config': {
85
96
  const [config, path] = readFileDeep(['xyo-config.json', 'xyo-config.js'])
@@ -102,10 +113,10 @@ const getCommand = (): Promise<boolean> => {
102
113
  })
103
114
  }
104
115
 
105
- export const startTerminal = async () => {
116
+ export const startTerminal = async (node: MemoryNode) => {
106
117
  let running = true
107
118
  while (running) {
108
- running = await getCommand()
119
+ running = await getCommand(node)
109
120
  }
110
121
 
111
122
  terminate()
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './Config'
2
2
  export * from './MemoryNode'
3
3
  export * from './Node'
4
+ export * from './NodeModule'
4
5
  export * from './PartialConfig'
5
6
  export * from './XyoNode'
@@ -1,7 +0,0 @@
1
- import { XyoQuery } from '@xyo-network/module';
2
- export declare type XyoNodeAvailableQuerySchema = 'network.xyo.query.node.available';
3
- export declare const XyoNodeAvailableQuerySchema: XyoNodeAvailableQuerySchema;
4
- export declare type XyoNodeAvailableQuery = XyoQuery<{
5
- schema: XyoNodeAvailableQuerySchema;
6
- }>;
7
- //# sourceMappingURL=Available.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Available.d.ts","sourceRoot":"","sources":["../../../src/Queries/Available.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,oBAAY,2BAA2B,GAAG,kCAAkC,CAAA;AAC5E,eAAO,MAAM,2BAA2B,EAAE,2BAAgE,CAAA;AAE1G,oBAAY,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,MAAM,EAAE,2BAA2B,CAAA;CACpC,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XyoNodeAvailableQuerySchema = void 0;
4
- exports.XyoNodeAvailableQuerySchema = 'network.xyo.query.node.available';
5
- //# sourceMappingURL=Available.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Available.js","sourceRoot":"","sources":["../../../src/Queries/Available.ts"],"names":[],"mappings":";;;AAGa,QAAA,2BAA2B,GAAgC,kCAAkC,CAAA"}
@@ -1,7 +0,0 @@
1
- import { XyoQuery } from '@xyo-network/module';
2
- export declare type XyoNodeAvailableQuerySchema = 'network.xyo.query.node.available';
3
- export declare const XyoNodeAvailableQuerySchema: XyoNodeAvailableQuerySchema;
4
- export declare type XyoNodeAvailableQuery = XyoQuery<{
5
- schema: XyoNodeAvailableQuerySchema;
6
- }>;
7
- //# sourceMappingURL=Available.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Available.d.ts","sourceRoot":"","sources":["../../../src/Queries/Available.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,oBAAY,2BAA2B,GAAG,kCAAkC,CAAA;AAC5E,eAAO,MAAM,2BAA2B,EAAE,2BAAgE,CAAA;AAE1G,oBAAY,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,MAAM,EAAE,2BAA2B,CAAA;CACpC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export const XyoNodeAvailableQuerySchema = 'network.xyo.query.node.available';
2
- //# sourceMappingURL=Available.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Available.js","sourceRoot":"","sources":["../../../src/Queries/Available.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,2BAA2B,GAAgC,kCAAkC,CAAA"}
@@ -1,8 +0,0 @@
1
- import { XyoQuery } from '@xyo-network/module'
2
-
3
- export type XyoNodeAvailableQuerySchema = 'network.xyo.query.node.available'
4
- export const XyoNodeAvailableQuerySchema: XyoNodeAvailableQuerySchema = 'network.xyo.query.node.available'
5
-
6
- export type XyoNodeAvailableQuery = XyoQuery<{
7
- schema: XyoNodeAvailableQuerySchema
8
- }>