@xyo-network/module-instance-payload-plugin 2.35.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.
Files changed (60) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +81 -0
  3. package/dist/cjs/Payload.d.ts +11 -0
  4. package/dist/cjs/Payload.d.ts.map +1 -0
  5. package/dist/cjs/Payload.js +3 -0
  6. package/dist/cjs/Payload.js.map +1 -0
  7. package/dist/cjs/Plugin.d.ts +32 -0
  8. package/dist/cjs/Plugin.d.ts.map +1 -0
  9. package/dist/cjs/Plugin.js +16 -0
  10. package/dist/cjs/Plugin.js.map +1 -0
  11. package/dist/cjs/Schema.d.ts +3 -0
  12. package/dist/cjs/Schema.d.ts.map +1 -0
  13. package/dist/cjs/Schema.js +5 -0
  14. package/dist/cjs/Schema.js.map +1 -0
  15. package/dist/cjs/Template.d.ts +3 -0
  16. package/dist/cjs/Template.d.ts.map +1 -0
  17. package/dist/cjs/Template.js +13 -0
  18. package/dist/cjs/Template.js.map +1 -0
  19. package/dist/cjs/Witness.d.ts +23 -0
  20. package/dist/cjs/Witness.d.ts.map +1 -0
  21. package/dist/cjs/Witness.js +26 -0
  22. package/dist/cjs/Witness.js.map +1 -0
  23. package/dist/cjs/index.d.ts +8 -0
  24. package/dist/cjs/index.d.ts.map +1 -0
  25. package/dist/cjs/index.js +13 -0
  26. package/dist/cjs/index.js.map +1 -0
  27. package/dist/docs.json +5673 -0
  28. package/dist/esm/Payload.d.ts +11 -0
  29. package/dist/esm/Payload.d.ts.map +1 -0
  30. package/dist/esm/Payload.js +2 -0
  31. package/dist/esm/Payload.js.map +1 -0
  32. package/dist/esm/Plugin.d.ts +32 -0
  33. package/dist/esm/Plugin.d.ts.map +1 -0
  34. package/dist/esm/Plugin.js +16 -0
  35. package/dist/esm/Plugin.js.map +1 -0
  36. package/dist/esm/Schema.d.ts +3 -0
  37. package/dist/esm/Schema.d.ts.map +1 -0
  38. package/dist/esm/Schema.js +2 -0
  39. package/dist/esm/Schema.js.map +1 -0
  40. package/dist/esm/Template.d.ts +3 -0
  41. package/dist/esm/Template.d.ts.map +1 -0
  42. package/dist/esm/Template.js +9 -0
  43. package/dist/esm/Template.js.map +1 -0
  44. package/dist/esm/Witness.d.ts +23 -0
  45. package/dist/esm/Witness.d.ts.map +1 -0
  46. package/dist/esm/Witness.js +14 -0
  47. package/dist/esm/Witness.js.map +1 -0
  48. package/dist/esm/index.d.ts +8 -0
  49. package/dist/esm/index.d.ts.map +1 -0
  50. package/dist/esm/index.js +9 -0
  51. package/dist/esm/index.js.map +1 -0
  52. package/package.json +58 -0
  53. package/src/Payload.ts +13 -0
  54. package/src/Plugin.spec.ts +18 -0
  55. package/src/Plugin.ts +19 -0
  56. package/src/Schema.ts +2 -0
  57. package/src/Template.ts +10 -0
  58. package/src/Witness.spec.ts +16 -0
  59. package/src/Witness.ts +29 -0
  60. package/src/index.ts +11 -0
@@ -0,0 +1,11 @@
1
+ import { XyoPayload } from '@xyo-network/payload';
2
+ import { XyoModuleInstanceSchema } from './Schema';
3
+ export interface XyoModuleInstanceQueryConfig {
4
+ cost?: string;
5
+ }
6
+ export declare type XyoModuleInstancePayload = XyoPayload<{
7
+ schema: XyoModuleInstanceSchema;
8
+ address: string;
9
+ queries?: Record<string, XyoModuleInstanceQueryConfig>;
10
+ }>;
11
+ //# 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,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAElD,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,oBAAY,wBAAwB,GAAG,UAAU,CAAC;IAChD,MAAM,EAAE,uBAAuB,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAA;CACvD,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,32 @@
1
+ export declare const XyoModuleInstancePayloadPlugin: () => import("@xyo-network/payload-plugin").XyoPayloadPlugin<import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
2
+ schema: "network.xyo.module.instance";
3
+ address: string;
4
+ queries?: Record<string, import("./Payload").XyoModuleInstanceQueryConfig> | undefined;
5
+ }, import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
6
+ security?: {
7
+ allowed?: Record<string, string[][]> | undefined;
8
+ disallowed?: Record<string, string[]> | undefined;
9
+ } | undefined;
10
+ } & {
11
+ schema: "network.xyo.module.instance.config";
12
+ module?: import("@xyo-network/module").XyoModule<import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
13
+ security?: {
14
+ allowed?: Record<string, string[][]> | undefined;
15
+ disallowed?: Record<string, string[]> | undefined;
16
+ } | undefined;
17
+ } & {
18
+ schema: string;
19
+ }> | undefined;
20
+ } & {
21
+ targetSchema: "network.xyo.module.instance";
22
+ }, import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
23
+ security?: {
24
+ allowed?: Record<string, string[][]> | undefined;
25
+ disallowed?: Record<string, string[]> | undefined;
26
+ } | undefined;
27
+ } & {
28
+ schema: "network.xyo.module.instance";
29
+ address: string;
30
+ queries?: Record<string, import("./Payload").XyoModuleInstanceQueryConfig> | undefined;
31
+ }>;
32
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWvC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { createXyoPayloadPlugin } from '@xyo-network/payload-plugin';
2
+ import { XyoModuleInstanceSchema } from './Schema';
3
+ import { XyoModuleInstancePayloadTemplate } from './Template';
4
+ import { XyoModuleInstanceWitness, XyoModuleInstanceWitnessConfigSchema } from './Witness';
5
+ export const XyoModuleInstancePayloadPlugin = () => createXyoPayloadPlugin({
6
+ schema: XyoModuleInstanceSchema,
7
+ template: XyoModuleInstancePayloadTemplate,
8
+ witness: (config) => {
9
+ return new XyoModuleInstanceWitness({
10
+ ...config,
11
+ schema: XyoModuleInstanceWitnessConfigSchema,
12
+ targetSchema: XyoModuleInstanceSchema,
13
+ });
14
+ },
15
+ });
16
+ //# sourceMappingURL=Plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAGpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAkC,oCAAoC,EAAE,MAAM,WAAW,CAAA;AAE1H,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,EAAE,CACjD,sBAAsB,CAA2D;IAC/E,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,gCAAgC;IAC1C,OAAO,EAAE,CAAC,MAAM,EAA4B,EAAE;QAC5C,OAAO,IAAI,wBAAwB,CAAC;YAClC,GAAG,MAAM;YACT,MAAM,EAAE,oCAAoC;YAC5C,YAAY,EAAE,uBAAuB;SACtC,CAAC,CAAA;IACJ,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare type XyoModuleInstanceSchema = 'network.xyo.module.instance';
2
+ export declare const XyoModuleInstanceSchema: XyoModuleInstanceSchema;
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,uBAAuB,GAAG,6BAA6B,CAAA;AACnE,eAAO,MAAM,uBAAuB,EAAE,uBAAuD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const XyoModuleInstanceSchema = 'network.xyo.module.instance';
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,uBAAuB,GAA4B,6BAA6B,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { XyoModuleInstancePayload } from './Payload';
2
+ export declare const XyoModuleInstancePayloadTemplate: () => Partial<XyoModuleInstancePayload>;
3
+ //# 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,eAAO,MAAM,gCAAgC,QAAO,QAAQ,wBAAwB,CAMnF,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { XyoModuleInstanceSchema } from './Schema';
2
+ export const XyoModuleInstancePayloadTemplate = () => {
3
+ return {
4
+ address: undefined,
5
+ queries: undefined,
6
+ schema: XyoModuleInstanceSchema,
7
+ };
8
+ };
9
+ //# sourceMappingURL=Template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.js","sourceRoot":"","sources":["../../src/Template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAElD,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAsC,EAAE;IACtF,OAAO;QACL,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,uBAAuB;KAChC,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { XyoModule } from '@xyo-network/module';
2
+ import { XyoWitness, XyoWitnessConfig } from '@xyo-network/witness';
3
+ import { XyoModuleInstancePayload } from './Payload';
4
+ import { XyoModuleInstanceSchema } from './Schema';
5
+ export declare type XyoModuleInstanceWitnessConfigSchema = 'network.xyo.module.instance.config';
6
+ export declare const XyoModuleInstanceWitnessConfigSchema: XyoModuleInstanceWitnessConfigSchema;
7
+ export declare type XyoModuleInstanceWitnessConfig = XyoWitnessConfig<XyoModuleInstancePayload, {
8
+ schema: XyoModuleInstanceWitnessConfigSchema;
9
+ module?: XyoModule;
10
+ }>;
11
+ export declare class XyoModuleInstanceWitness extends XyoWitness<XyoModuleInstancePayload, XyoModuleInstanceWitnessConfig> {
12
+ protected get module(): XyoModule<import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
13
+ security?: {
14
+ allowed?: Record<string, string[][]> | undefined;
15
+ disallowed?: Record<string, string[]> | undefined;
16
+ } | undefined;
17
+ } & {
18
+ schema: string;
19
+ }> | undefined;
20
+ observe(fields?: Partial<XyoModuleInstancePayload>): Promise<XyoModuleInstancePayload>;
21
+ static schema: XyoModuleInstanceSchema;
22
+ }
23
+ //# 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,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAElD,oBAAY,oCAAoC,GAAG,oCAAoC,CAAA;AACvF,eAAO,MAAM,oCAAoC,EAAE,oCAA2E,CAAA;AAE9H,oBAAY,8BAA8B,GAAG,gBAAgB,CAC3D,wBAAwB,EACxB;IACE,MAAM,EAAE,oCAAoC,CAAA;IAC5C,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB,CACF,CAAA;AAED,qBAAa,wBAAyB,SAAQ,UAAU,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;IAChH,SAAS,KAAK,MAAM;;;;;;;mBAEnB;IAEc,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAIrG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAA0B;CACjE"}
@@ -0,0 +1,14 @@
1
+ import { XyoWitness } from '@xyo-network/witness';
2
+ import merge from 'lodash/merge';
3
+ import { XyoModuleInstanceSchema } from './Schema';
4
+ export const XyoModuleInstanceWitnessConfigSchema = 'network.xyo.module.instance.config';
5
+ export class XyoModuleInstanceWitness extends XyoWitness {
6
+ get module() {
7
+ return this.config?.module;
8
+ }
9
+ async observe(fields) {
10
+ return await super.observe(merge({ queries: this.module?.queries }, fields));
11
+ }
12
+ static schema = XyoModuleInstanceSchema;
13
+ }
14
+ //# sourceMappingURL=Witness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAA;AACnE,OAAO,KAAK,MAAM,cAAc,CAAA;AAGhC,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAGlD,MAAM,CAAC,MAAM,oCAAoC,GAAyC,oCAAoC,CAAA;AAU9H,MAAM,OAAO,wBAAyB,SAAQ,UAAoE;IAChH,IAAc,MAAM;QAClB,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAA;IAC5B,CAAC;IAEQ,KAAK,CAAC,OAAO,CAAC,MAA0C;QAC/D,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,MAAM,CAAC,MAAM,GAA4B,uBAAuB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { XyoModuleInstancePayloadPlugin } from './Plugin';
2
+ export * from './Payload';
3
+ export * from './Schema';
4
+ export * from './Template';
5
+ export * from './Witness';
6
+ export { XyoModuleInstancePayloadPlugin };
7
+ export default XyoModuleInstancePayloadPlugin;
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 { XyoModuleInstancePayloadPlugin } from './Plugin';
2
+ export * from './Payload';
3
+ export * from './Schema';
4
+ export * from './Template';
5
+ export * from './Witness';
6
+ export { XyoModuleInstancePayloadPlugin };
7
+ // eslint-disable-next-line import/no-default-export
8
+ export default XyoModuleInstancePayloadPlugin;
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,58 @@
1
+ {
2
+ "name": "@xyo-network/module-instance-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
+ "@xyo-network/module": "^2.36.11",
14
+ "@xyo-network/payload": "^2.36.11",
15
+ "@xyo-network/payload-plugin": "^2.36.11",
16
+ "@xyo-network/witness": "^2.36.11",
17
+ "lodash": "^4.17.21",
18
+ "tslib": "^2.4.0"
19
+ },
20
+ "peerDependencies": {
21
+ "axios": "^0.27.2",
22
+ "pako": "^2.0.4"
23
+ },
24
+ "description": "Contains the information about a module instance",
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.35.11"
58
+ }
package/src/Payload.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { XyoPayload } from '@xyo-network/payload'
2
+
3
+ import { XyoModuleInstanceSchema } from './Schema'
4
+
5
+ export interface XyoModuleInstanceQueryConfig {
6
+ cost?: string
7
+ }
8
+
9
+ export type XyoModuleInstancePayload = XyoPayload<{
10
+ schema: XyoModuleInstanceSchema
11
+ address: string
12
+ queries?: Record<string, XyoModuleInstanceQueryConfig>
13
+ }>
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
5
+ import { XyoPayloadPluginResolver } from '@xyo-network/payload-plugin'
6
+
7
+ import { XyoModuleInstancePayloadPlugin } from './Plugin'
8
+ import { XyoModuleInstanceSchema } from './Schema'
9
+
10
+ describe('XyoModuleInstancePayloadPlugin', () => {
11
+ test('Add to Resolver', () => {
12
+ const resolver = new XyoPayloadPluginResolver().register(XyoModuleInstancePayloadPlugin(), {
13
+ witness: {},
14
+ })
15
+ expect(resolver.resolve({ schema: XyoModuleInstanceSchema })).toBeObject()
16
+ expect(resolver.witness(XyoModuleInstanceSchema)).toBeObject()
17
+ })
18
+ })
package/src/Plugin.ts ADDED
@@ -0,0 +1,19 @@
1
+ import { createXyoPayloadPlugin } from '@xyo-network/payload-plugin'
2
+
3
+ import { XyoModuleInstancePayload } from './Payload'
4
+ import { XyoModuleInstanceSchema } from './Schema'
5
+ import { XyoModuleInstancePayloadTemplate } from './Template'
6
+ import { XyoModuleInstanceWitness, XyoModuleInstanceWitnessConfig, XyoModuleInstanceWitnessConfigSchema } from './Witness'
7
+
8
+ export const XyoModuleInstancePayloadPlugin = () =>
9
+ createXyoPayloadPlugin<XyoModuleInstancePayload, XyoModuleInstanceWitnessConfig>({
10
+ schema: XyoModuleInstanceSchema,
11
+ template: XyoModuleInstancePayloadTemplate,
12
+ witness: (config): XyoModuleInstanceWitness => {
13
+ return new XyoModuleInstanceWitness({
14
+ ...config,
15
+ schema: XyoModuleInstanceWitnessConfigSchema,
16
+ targetSchema: XyoModuleInstanceSchema,
17
+ })
18
+ },
19
+ })
package/src/Schema.ts ADDED
@@ -0,0 +1,2 @@
1
+ export type XyoModuleInstanceSchema = 'network.xyo.module.instance'
2
+ export const XyoModuleInstanceSchema: XyoModuleInstanceSchema = 'network.xyo.module.instance'
@@ -0,0 +1,10 @@
1
+ import { XyoModuleInstancePayload } from './Payload'
2
+ import { XyoModuleInstanceSchema } from './Schema'
3
+
4
+ export const XyoModuleInstancePayloadTemplate = (): Partial<XyoModuleInstancePayload> => {
5
+ return {
6
+ address: undefined,
7
+ queries: undefined,
8
+ schema: XyoModuleInstanceSchema,
9
+ }
10
+ }
@@ -0,0 +1,16 @@
1
+ import { XyoMemoryArchivist } from '@xyo-network/archivist'
2
+
3
+ import { XyoModuleInstanceSchema } from './Schema'
4
+ import { XyoModuleInstanceWitness, XyoModuleInstanceWitnessConfigSchema } from './Witness'
5
+
6
+ describe('XyoElevationWitness', () => {
7
+ test('Witnessing', async () => {
8
+ const module = new XyoMemoryArchivist()
9
+ const witness = new XyoModuleInstanceWitness({ module, schema: XyoModuleInstanceWitnessConfigSchema, targetSchema: XyoModuleInstanceSchema })
10
+ const result = await witness.observe()
11
+
12
+ console.log(`Module: ${JSON.stringify(result, null, 2)}`)
13
+
14
+ expect(result.queries?.length).toBe(2)
15
+ })
16
+ })
package/src/Witness.ts ADDED
@@ -0,0 +1,29 @@
1
+ import { XyoModule } from '@xyo-network/module'
2
+ import { XyoWitness, XyoWitnessConfig } from '@xyo-network/witness'
3
+ import merge from 'lodash/merge'
4
+
5
+ import { XyoModuleInstancePayload } from './Payload'
6
+ import { XyoModuleInstanceSchema } from './Schema'
7
+
8
+ export type XyoModuleInstanceWitnessConfigSchema = 'network.xyo.module.instance.config'
9
+ export const XyoModuleInstanceWitnessConfigSchema: XyoModuleInstanceWitnessConfigSchema = 'network.xyo.module.instance.config'
10
+
11
+ export type XyoModuleInstanceWitnessConfig = XyoWitnessConfig<
12
+ XyoModuleInstancePayload,
13
+ {
14
+ schema: XyoModuleInstanceWitnessConfigSchema
15
+ module?: XyoModule
16
+ }
17
+ >
18
+
19
+ export class XyoModuleInstanceWitness extends XyoWitness<XyoModuleInstancePayload, XyoModuleInstanceWitnessConfig> {
20
+ protected get module() {
21
+ return this.config?.module
22
+ }
23
+
24
+ override async observe(fields?: Partial<XyoModuleInstancePayload>): Promise<XyoModuleInstancePayload> {
25
+ return await super.observe(merge({ queries: this.module?.queries }, fields))
26
+ }
27
+
28
+ static schema: XyoModuleInstanceSchema = XyoModuleInstanceSchema
29
+ }
package/src/index.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { XyoModuleInstancePayloadPlugin } from './Plugin'
2
+
3
+ export * from './Payload'
4
+ export * from './Schema'
5
+ export * from './Template'
6
+ export * from './Witness'
7
+
8
+ export { XyoModuleInstancePayloadPlugin }
9
+
10
+ // eslint-disable-next-line import/no-default-export
11
+ export default XyoModuleInstancePayloadPlugin