@xyo-network/node-system-info-payload-plugin 2.27.0-rc.5

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 (69) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +81 -0
  3. package/dist/cjs/Config.d.ts +10 -0
  4. package/dist/cjs/Config.d.ts.map +1 -0
  5. package/dist/cjs/Config.js +5 -0
  6. package/dist/cjs/Config.js.map +1 -0
  7. package/dist/cjs/Payload.d.ts +7 -0
  8. package/dist/cjs/Payload.d.ts.map +1 -0
  9. package/dist/cjs/Payload.js +3 -0
  10. package/dist/cjs/Payload.js.map +1 -0
  11. package/dist/cjs/Plugin.d.ts +6 -0
  12. package/dist/cjs/Plugin.d.ts.map +1 -0
  13. package/dist/cjs/Plugin.js +16 -0
  14. package/dist/cjs/Plugin.js.map +1 -0
  15. package/dist/cjs/Schema.d.ts +3 -0
  16. package/dist/cjs/Schema.d.ts.map +1 -0
  17. package/dist/cjs/Schema.js +5 -0
  18. package/dist/cjs/Schema.js.map +1 -0
  19. package/dist/cjs/Template.d.ts +19 -0
  20. package/dist/cjs/Template.d.ts.map +1 -0
  21. package/dist/cjs/Template.js +27 -0
  22. package/dist/cjs/Template.js.map +1 -0
  23. package/dist/cjs/Witness.d.ts +7 -0
  24. package/dist/cjs/Witness.d.ts.map +1 -0
  25. package/dist/cjs/Witness.js +21 -0
  26. package/dist/cjs/Witness.js.map +1 -0
  27. package/dist/cjs/index.d.ts +8 -0
  28. package/dist/cjs/index.d.ts.map +1 -0
  29. package/dist/cjs/index.js +13 -0
  30. package/dist/cjs/index.js.map +1 -0
  31. package/dist/docs.json +1910 -0
  32. package/dist/esm/Config.d.ts +10 -0
  33. package/dist/esm/Config.d.ts.map +1 -0
  34. package/dist/esm/Config.js +2 -0
  35. package/dist/esm/Config.js.map +1 -0
  36. package/dist/esm/Payload.d.ts +7 -0
  37. package/dist/esm/Payload.d.ts.map +1 -0
  38. package/dist/esm/Payload.js +2 -0
  39. package/dist/esm/Payload.js.map +1 -0
  40. package/dist/esm/Plugin.d.ts +6 -0
  41. package/dist/esm/Plugin.d.ts.map +1 -0
  42. package/dist/esm/Plugin.js +12 -0
  43. package/dist/esm/Plugin.js.map +1 -0
  44. package/dist/esm/Schema.d.ts +3 -0
  45. package/dist/esm/Schema.d.ts.map +1 -0
  46. package/dist/esm/Schema.js +2 -0
  47. package/dist/esm/Schema.js.map +1 -0
  48. package/dist/esm/Template.d.ts +19 -0
  49. package/dist/esm/Template.d.ts.map +1 -0
  50. package/dist/esm/Template.js +23 -0
  51. package/dist/esm/Template.js.map +1 -0
  52. package/dist/esm/Witness.d.ts +7 -0
  53. package/dist/esm/Witness.d.ts.map +1 -0
  54. package/dist/esm/Witness.js +10 -0
  55. package/dist/esm/Witness.js.map +1 -0
  56. package/dist/esm/index.d.ts +8 -0
  57. package/dist/esm/index.d.ts.map +1 -0
  58. package/dist/esm/index.js +9 -0
  59. package/dist/esm/index.js.map +1 -0
  60. package/package.json +59 -0
  61. package/src/Config.ts +15 -0
  62. package/src/Payload.ts +8 -0
  63. package/src/Plugin.spec.ts +11 -0
  64. package/src/Plugin.ts +20 -0
  65. package/src/Schema.ts +2 -0
  66. package/src/Template.ts +26 -0
  67. package/src/Witness.spec.ts +17 -0
  68. package/src/Witness.ts +16 -0
  69. package/src/index.ts +11 -0
@@ -0,0 +1,10 @@
1
+ import { XyoWitnessConfig } from '@xyo-network/witness';
2
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema';
3
+ export declare type XyoNodeSystemInfoWitnessConfigSchema = 'network.xyo.system.info.witness.node.config';
4
+ export declare const XyoNodeSystemInfoWitnessConfigSchema: XyoNodeSystemInfoWitnessConfigSchema;
5
+ export declare type XyoNodeSystemInfoWitnessConfig = XyoWitnessConfig<XyoNodeSystemInfoPayloadSchema, {
6
+ schema: XyoNodeSystemInfoWitnessConfigSchema;
7
+ nodeValues?: Record<string, string>;
8
+ targetSchema: XyoNodeSystemInfoPayloadSchema;
9
+ }>;
10
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAA;AAEzD,oBAAY,oCAAoC,GAAG,6CAA6C,CAAA;AAChG,eAAO,MAAM,oCAAoC,EAAE,oCAAoF,CAAA;AAEvI,oBAAY,8BAA8B,GAAG,gBAAgB,CAC3D,8BAA8B,EAC9B;IACE,MAAM,EAAE,oCAAoC,CAAA;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,YAAY,EAAE,8BAA8B,CAAA;CAC7C,CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const XyoNodeSystemInfoWitnessConfigSchema = 'network.xyo.system.info.witness.node.config';
2
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,oCAAoC,GAAyC,6CAA6C,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { XyoPayload } from '@xyo-network/payload';
2
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema';
3
+ export declare type XyoNodeSystemInfoPayload = XyoPayload<{
4
+ schema: XyoNodeSystemInfoPayloadSchema;
5
+ systeminfo?: Record<string, unknown>;
6
+ }>;
7
+ //# sourceMappingURL=Payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAA;AAEzD,oBAAY,wBAAwB,GAAG,UAAU,CAAC;IAChD,MAAM,EAAE,8BAA8B,CAAA;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Payload.js","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { XyoPayloadPluginFunc } from '@xyo-network/payload-plugin';
2
+ import { XyoNodeSystemInfoWitnessConfigSchema } from './Config';
3
+ import { XyoNodeSystemInfoPayload } from './Payload';
4
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema';
5
+ export declare const XyoNodeSystemInfoPayloadPlugin: XyoPayloadPluginFunc<XyoNodeSystemInfoPayloadSchema, XyoNodeSystemInfoPayload, XyoNodeSystemInfoWitnessConfigSchema>;
6
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAE1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAA;AAGzD,eAAO,MAAM,8BAA8B,EAAE,oBAAoB,CAC/D,8BAA8B,EAC9B,wBAAwB,EACxB,oCAAoC,CAQlC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { assertEx } from '@xylabs/assert';
2
+ import { createXyoPayloadPlugin } from '@xyo-network/payload-plugin';
3
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema';
4
+ import { XyoNodeSystemInfoWitness } from './Witness';
5
+ export const XyoNodeSystemInfoPayloadPlugin = (config) => createXyoPayloadPlugin({
6
+ auto: true,
7
+ schema: XyoNodeSystemInfoPayloadSchema,
8
+ witness: () => {
9
+ return new XyoNodeSystemInfoWitness(assertEx(config?.witness, 'Missing config'));
10
+ },
11
+ });
12
+ //# sourceMappingURL=Plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAwB,MAAM,6BAA6B,CAAA;AAI1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAA;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEpD,MAAM,CAAC,MAAM,8BAA8B,GAIvC,CAAC,MAAO,EAAE,EAAE,CACd,sBAAsB,CAAC;IACrB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,8BAA8B;IACtC,OAAO,EAAE,GAA6B,EAAE;QACtC,OAAO,IAAI,wBAAwB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAClF,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare type XyoNodeSystemInfoPayloadSchema = 'network.xyo.system.info.node';
2
+ export declare const XyoNodeSystemInfoPayloadSchema: XyoNodeSystemInfoPayloadSchema;
3
+ //# sourceMappingURL=Schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAAA,oBAAY,8BAA8B,GAAG,8BAA8B,CAAA;AAC3E,eAAO,MAAM,8BAA8B,EAAE,8BAA+D,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const XyoNodeSystemInfoPayloadSchema = 'network.xyo.system.info.node';
2
+ //# sourceMappingURL=Schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,8BAA8B,GAAmC,8BAA8B,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { XyoNodeSystemInfoPayload } from './Payload';
2
+ declare const defaultSystemInfoConfig: () => {
3
+ audio: string;
4
+ battery: string;
5
+ bluetooth: string;
6
+ cpu: string;
7
+ diskLayout: string;
8
+ graphics: string;
9
+ mem: string;
10
+ networkInterfaces: string;
11
+ osInfo: string;
12
+ printer: string;
13
+ system: string;
14
+ usb: string;
15
+ wifiInterfaces: string;
16
+ };
17
+ declare const systemInfoNodeWitnessTemplate: () => XyoNodeSystemInfoPayload;
18
+ export { defaultSystemInfoConfig, systemInfoNodeWitnessTemplate };
19
+ //# sourceMappingURL=Template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../../src/Template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAGpD,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;CAgB5B,CAAA;AAED,QAAA,MAAM,6BAA6B,QAAO,wBAExC,CAAA;AAEF,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema';
2
+ const defaultSystemInfoConfig = () => {
3
+ return {
4
+ audio: '*',
5
+ battery: '*',
6
+ bluetooth: '*',
7
+ cpu: '*',
8
+ diskLayout: '*',
9
+ graphics: '*',
10
+ mem: '*',
11
+ networkInterfaces: '*',
12
+ osInfo: '*',
13
+ printer: '*',
14
+ system: '*',
15
+ usb: '*',
16
+ wifiInterfaces: '*',
17
+ };
18
+ };
19
+ const systemInfoNodeWitnessTemplate = () => ({
20
+ schema: XyoNodeSystemInfoPayloadSchema,
21
+ });
22
+ export { defaultSystemInfoConfig, systemInfoNodeWitnessTemplate };
23
+ //# sourceMappingURL=Template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.js","sourceRoot":"","sources":["../../src/Template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAA;AAEzD,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,OAAO;QACL,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,GAAG;QACd,GAAG,EAAE,GAAG;QACR,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,GAAG,EAAE,GAAG;QACR,iBAAiB,EAAE,GAAG;QACtB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,GAAG;QACR,cAAc,EAAE,GAAG;KACpB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,6BAA6B,GAAG,GAA6B,EAAE,CAAC,CAAC;IACrE,MAAM,EAAE,8BAA8B;CACvC,CAAC,CAAA;AAEF,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { XyoWitness } from '@xyo-network/witness';
2
+ import { XyoNodeSystemInfoWitnessConfig } from './Config';
3
+ import { XyoNodeSystemInfoPayload } from './Payload';
4
+ export declare class XyoNodeSystemInfoWitness<TPayload extends XyoNodeSystemInfoPayload = XyoNodeSystemInfoPayload, TConfig extends XyoNodeSystemInfoWitnessConfig = XyoNodeSystemInfoWitnessConfig> extends XyoWitness<TPayload, TConfig> {
5
+ observe(fields?: Partial<TPayload>): Promise<TPayload>;
6
+ }
7
+ //# sourceMappingURL=Witness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAA;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAGpD,qBAAa,wBAAwB,CACnC,QAAQ,SAAS,wBAAwB,GAAG,wBAAwB,EACpE,OAAO,SAAS,8BAA8B,GAAG,8BAA8B,CAC/E,SAAQ,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;CAIlD"}
@@ -0,0 +1,10 @@
1
+ import { XyoWitness } from '@xyo-network/witness';
2
+ import { get } from 'systeminformation';
3
+ import { defaultSystemInfoConfig } from './Template';
4
+ export class XyoNodeSystemInfoWitness extends XyoWitness {
5
+ async observe(fields) {
6
+ const node = await get(this.config?.nodeValues ?? defaultSystemInfoConfig());
7
+ return await super.observe({ ...node, ...fields });
8
+ }
9
+ }
10
+ //# sourceMappingURL=Witness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAIvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD,MAAM,OAAO,wBAGX,SAAQ,UAA6B;IAC5B,KAAK,CAAC,OAAO,CAAC,MAA0B;QAC/C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,uBAAuB,EAAE,CAAC,CAAA;QAC5E,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IACpD,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { XyoNodeSystemInfoPayloadPlugin } from './Plugin';
2
+ export * from './Payload';
3
+ export * from './Schema';
4
+ export * from './Template';
5
+ export * from './Witness';
6
+ export { XyoNodeSystemInfoPayloadPlugin };
7
+ export default XyoNodeSystemInfoPayloadPlugin;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAA;AAEzD,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,8BAA8B,EAAE,CAAA;AAGzC,eAAe,8BAA8B,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { XyoNodeSystemInfoPayloadPlugin } from './Plugin';
2
+ export * from './Payload';
3
+ export * from './Schema';
4
+ export * from './Template';
5
+ export * from './Witness';
6
+ export { XyoNodeSystemInfoPayloadPlugin };
7
+ // eslint-disable-next-line import/no-default-export
8
+ export default XyoNodeSystemInfoPayloadPlugin;
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAA;AAEzD,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,8BAA8B,EAAE,CAAA;AAEzC,oDAAoD;AACpD,eAAe,8BAA8B,CAAA"}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@xyo-network/node-system-info-payload-plugin",
3
+ "author": {
4
+ "email": "support@xyo.network",
5
+ "name": "XYO Development Team",
6
+ "url": "https://xyo.network"
7
+ },
8
+ "bugs": {
9
+ "email": "support@xyo.network",
10
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
+ },
12
+ "dependencies": {
13
+ "@xylabs/assert": "^2.6.7",
14
+ "@xyo-network/account": "^2.27.0-rc.5",
15
+ "@xyo-network/payload": "^2.27.0-rc.5",
16
+ "@xyo-network/payload-plugin": "^2.27.0-rc.5",
17
+ "@xyo-network/witness": "^2.27.0-rc.5",
18
+ "systeminformation": "^5.12.6",
19
+ "tslib": "^2.4.0"
20
+ },
21
+ "devDependencies": {
22
+ "@xylabs/tsconfig": "^2.5.123"
23
+ },
24
+ "description": "Primary SDK for using XYO Protocol 2.0",
25
+ "browser": "dist/esm/index.js",
26
+ "docs": "dist/docs.json",
27
+ "exports": {
28
+ ".": {
29
+ "node": {
30
+ "import": "./dist/esm/index.js",
31
+ "require": "./dist/cjs/index.js"
32
+ },
33
+ "browser": {
34
+ "import": "./dist/esm/index.js",
35
+ "require": "./dist/cjs/index.js"
36
+ },
37
+ "default": "./dist/esm/index.js"
38
+ },
39
+ "./dist/docs.json": {
40
+ "default": "./dist/docs.json"
41
+ },
42
+ "./package.json": "./package.json"
43
+ },
44
+ "main": "dist/cjs/index.js",
45
+ "module": "dist/esm/index.js",
46
+ "homepage": "https://xyo.network",
47
+ "license": "LGPL-3.0-only",
48
+ "publishConfig": {
49
+ "access": "public"
50
+ },
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
54
+ },
55
+ "sideEffects": false,
56
+ "types": "dist/esm/index.d.ts",
57
+ "version": "2.27.0-rc.5",
58
+ "stableVersion": "2.26.19"
59
+ }
package/src/Config.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { XyoWitnessConfig } from '@xyo-network/witness'
2
+
3
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema'
4
+
5
+ export type XyoNodeSystemInfoWitnessConfigSchema = 'network.xyo.system.info.witness.node.config'
6
+ export const XyoNodeSystemInfoWitnessConfigSchema: XyoNodeSystemInfoWitnessConfigSchema = 'network.xyo.system.info.witness.node.config'
7
+
8
+ export type XyoNodeSystemInfoWitnessConfig = XyoWitnessConfig<
9
+ XyoNodeSystemInfoPayloadSchema,
10
+ {
11
+ schema: XyoNodeSystemInfoWitnessConfigSchema
12
+ nodeValues?: Record<string, string>
13
+ targetSchema: XyoNodeSystemInfoPayloadSchema
14
+ }
15
+ >
package/src/Payload.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { XyoPayload } from '@xyo-network/payload'
2
+
3
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema'
4
+
5
+ export type XyoNodeSystemInfoPayload = XyoPayload<{
6
+ schema: XyoNodeSystemInfoPayloadSchema
7
+ systeminfo?: Record<string, unknown>
8
+ }>
@@ -0,0 +1,11 @@
1
+ import { XyoPayloadPluginResolver } from '@xyo-network/payload-plugin'
2
+
3
+ import { XyoNodeSystemInfoPayloadPlugin } from './Plugin'
4
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema'
5
+
6
+ describe('XyoBowserSystemInfoPayloadPlugin', () => {
7
+ test('Add to Resolver', () => {
8
+ const resolver = new XyoPayloadPluginResolver().register(XyoNodeSystemInfoPayloadPlugin())
9
+ expect(resolver.resolve({ schema: XyoNodeSystemInfoPayloadSchema })).toBeDefined()
10
+ })
11
+ })
package/src/Plugin.ts ADDED
@@ -0,0 +1,20 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+ import { createXyoPayloadPlugin, XyoPayloadPluginFunc } from '@xyo-network/payload-plugin'
3
+
4
+ import { XyoNodeSystemInfoWitnessConfigSchema } from './Config'
5
+ import { XyoNodeSystemInfoPayload } from './Payload'
6
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema'
7
+ import { XyoNodeSystemInfoWitness } from './Witness'
8
+
9
+ export const XyoNodeSystemInfoPayloadPlugin: XyoPayloadPluginFunc<
10
+ XyoNodeSystemInfoPayloadSchema,
11
+ XyoNodeSystemInfoPayload,
12
+ XyoNodeSystemInfoWitnessConfigSchema
13
+ > = (config?) =>
14
+ createXyoPayloadPlugin({
15
+ auto: true,
16
+ schema: XyoNodeSystemInfoPayloadSchema,
17
+ witness: (): XyoNodeSystemInfoWitness => {
18
+ return new XyoNodeSystemInfoWitness(assertEx(config?.witness, 'Missing config'))
19
+ },
20
+ })
package/src/Schema.ts ADDED
@@ -0,0 +1,2 @@
1
+ export type XyoNodeSystemInfoPayloadSchema = 'network.xyo.system.info.node'
2
+ export const XyoNodeSystemInfoPayloadSchema: XyoNodeSystemInfoPayloadSchema = 'network.xyo.system.info.node'
@@ -0,0 +1,26 @@
1
+ import { XyoNodeSystemInfoPayload } from './Payload'
2
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema'
3
+
4
+ const defaultSystemInfoConfig = () => {
5
+ return {
6
+ audio: '*',
7
+ battery: '*',
8
+ bluetooth: '*',
9
+ cpu: '*',
10
+ diskLayout: '*',
11
+ graphics: '*',
12
+ mem: '*',
13
+ networkInterfaces: '*',
14
+ osInfo: '*',
15
+ printer: '*',
16
+ system: '*',
17
+ usb: '*',
18
+ wifiInterfaces: '*',
19
+ }
20
+ }
21
+
22
+ const systemInfoNodeWitnessTemplate = (): XyoNodeSystemInfoPayload => ({
23
+ schema: XyoNodeSystemInfoPayloadSchema,
24
+ })
25
+
26
+ export { defaultSystemInfoConfig, systemInfoNodeWitnessTemplate }
@@ -0,0 +1,17 @@
1
+ import { XyoAccount } from '@xyo-network/account'
2
+
3
+ import { XyoNodeSystemInfoWitnessConfigSchema } from './Config'
4
+ import { XyoNodeSystemInfoPayloadSchema } from './Schema'
5
+ import { XyoNodeSystemInfoWitness } from './Witness'
6
+
7
+ describe('XyoSystemInfoWitness', () => {
8
+ test('observe', async () => {
9
+ const witness = new XyoNodeSystemInfoWitness({
10
+ account: new XyoAccount(),
11
+ schema: XyoNodeSystemInfoWitnessConfigSchema,
12
+ targetSchema: XyoNodeSystemInfoPayloadSchema,
13
+ })
14
+ const observation = await witness.observe()
15
+ expect(observation.schema).toBe('network.xyo.system.info.node')
16
+ }, 60000)
17
+ })
package/src/Witness.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { XyoWitness } from '@xyo-network/witness'
2
+ import { get } from 'systeminformation'
3
+
4
+ import { XyoNodeSystemInfoWitnessConfig } from './Config'
5
+ import { XyoNodeSystemInfoPayload } from './Payload'
6
+ import { defaultSystemInfoConfig } from './Template'
7
+
8
+ export class XyoNodeSystemInfoWitness<
9
+ TPayload extends XyoNodeSystemInfoPayload = XyoNodeSystemInfoPayload,
10
+ TConfig extends XyoNodeSystemInfoWitnessConfig = XyoNodeSystemInfoWitnessConfig,
11
+ > extends XyoWitness<TPayload, TConfig> {
12
+ override async observe(fields?: Partial<TPayload>) {
13
+ const node = await get(this.config?.nodeValues ?? defaultSystemInfoConfig())
14
+ return await super.observe({ ...node, ...fields })
15
+ }
16
+ }
package/src/index.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { XyoNodeSystemInfoPayloadPlugin } from './Plugin'
2
+
3
+ export * from './Payload'
4
+ export * from './Schema'
5
+ export * from './Template'
6
+ export * from './Witness'
7
+
8
+ export { XyoNodeSystemInfoPayloadPlugin }
9
+
10
+ // eslint-disable-next-line import/no-default-export
11
+ export default XyoNodeSystemInfoPayloadPlugin