@xyo-network/module-model 2.42.16

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 (139) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +81 -0
  3. package/dist/cjs/Config.d.ts +14 -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/ModuleDescription.d.ts +6 -0
  8. package/dist/cjs/ModuleDescription.d.ts.map +1 -0
  9. package/dist/cjs/ModuleDescription.js +3 -0
  10. package/dist/cjs/ModuleDescription.js.map +1 -0
  11. package/dist/cjs/ModuleFilter.d.ts +7 -0
  12. package/dist/cjs/ModuleFilter.d.ts.map +1 -0
  13. package/dist/cjs/ModuleFilter.js +3 -0
  14. package/dist/cjs/ModuleFilter.js.map +1 -0
  15. package/dist/cjs/ModuleQueryResult.d.ts +4 -0
  16. package/dist/cjs/ModuleQueryResult.d.ts.map +1 -0
  17. package/dist/cjs/ModuleQueryResult.js +3 -0
  18. package/dist/cjs/ModuleQueryResult.js.map +1 -0
  19. package/dist/cjs/PartialConfig.d.ts +5 -0
  20. package/dist/cjs/PartialConfig.d.ts.map +1 -0
  21. package/dist/cjs/PartialConfig.js +3 -0
  22. package/dist/cjs/PartialConfig.js.map +1 -0
  23. package/dist/cjs/Queries/Discover.d.ts +7 -0
  24. package/dist/cjs/Queries/Discover.d.ts.map +1 -0
  25. package/dist/cjs/Queries/Discover.js +5 -0
  26. package/dist/cjs/Queries/Discover.js.map +1 -0
  27. package/dist/cjs/Queries/Subscribe.d.ts +17 -0
  28. package/dist/cjs/Queries/Subscribe.d.ts.map +1 -0
  29. package/dist/cjs/Queries/Subscribe.js +5 -0
  30. package/dist/cjs/Queries/Subscribe.js.map +1 -0
  31. package/dist/cjs/Queries/index.d.ts +8 -0
  32. package/dist/cjs/Queries/index.d.ts.map +1 -0
  33. package/dist/cjs/Queries/index.js +6 -0
  34. package/dist/cjs/Queries/index.js.map +1 -0
  35. package/dist/cjs/Query/Payload.d.ts +13 -0
  36. package/dist/cjs/Query/Payload.d.ts.map +1 -0
  37. package/dist/cjs/Query/Payload.js +3 -0
  38. package/dist/cjs/Query/Payload.js.map +1 -0
  39. package/dist/cjs/Query/XyoQueryBoundWitness.d.ts +9 -0
  40. package/dist/cjs/Query/XyoQueryBoundWitness.d.ts.map +1 -0
  41. package/dist/cjs/Query/XyoQueryBoundWitness.js +5 -0
  42. package/dist/cjs/Query/XyoQueryBoundWitness.js.map +1 -0
  43. package/dist/cjs/Query/index.d.ts +3 -0
  44. package/dist/cjs/Query/index.d.ts.map +1 -0
  45. package/dist/cjs/Query/index.js +6 -0
  46. package/dist/cjs/Query/index.js.map +1 -0
  47. package/dist/cjs/index.d.ts +9 -0
  48. package/dist/cjs/index.d.ts.map +1 -0
  49. package/dist/cjs/index.js +12 -0
  50. package/dist/cjs/index.js.map +1 -0
  51. package/dist/cjs/model/Module.d.ts +14 -0
  52. package/dist/cjs/model/Module.d.ts.map +1 -0
  53. package/dist/cjs/model/Module.js +3 -0
  54. package/dist/cjs/model/Module.js.map +1 -0
  55. package/dist/cjs/model/ModuleResolver.d.ts +9 -0
  56. package/dist/cjs/model/ModuleResolver.d.ts.map +1 -0
  57. package/dist/cjs/model/ModuleResolver.js +3 -0
  58. package/dist/cjs/model/ModuleResolver.js.map +1 -0
  59. package/dist/cjs/model/index.d.ts +3 -0
  60. package/dist/cjs/model/index.d.ts.map +1 -0
  61. package/dist/cjs/model/index.js +6 -0
  62. package/dist/cjs/model/index.js.map +1 -0
  63. package/dist/docs.json +2631 -0
  64. package/dist/esm/Config.d.ts +14 -0
  65. package/dist/esm/Config.d.ts.map +1 -0
  66. package/dist/esm/Config.js +2 -0
  67. package/dist/esm/Config.js.map +1 -0
  68. package/dist/esm/ModuleDescription.d.ts +6 -0
  69. package/dist/esm/ModuleDescription.d.ts.map +1 -0
  70. package/dist/esm/ModuleDescription.js +2 -0
  71. package/dist/esm/ModuleDescription.js.map +1 -0
  72. package/dist/esm/ModuleFilter.d.ts +7 -0
  73. package/dist/esm/ModuleFilter.d.ts.map +1 -0
  74. package/dist/esm/ModuleFilter.js +2 -0
  75. package/dist/esm/ModuleFilter.js.map +1 -0
  76. package/dist/esm/ModuleQueryResult.d.ts +4 -0
  77. package/dist/esm/ModuleQueryResult.d.ts.map +1 -0
  78. package/dist/esm/ModuleQueryResult.js +2 -0
  79. package/dist/esm/ModuleQueryResult.js.map +1 -0
  80. package/dist/esm/PartialConfig.d.ts +5 -0
  81. package/dist/esm/PartialConfig.d.ts.map +1 -0
  82. package/dist/esm/PartialConfig.js +2 -0
  83. package/dist/esm/PartialConfig.js.map +1 -0
  84. package/dist/esm/Queries/Discover.d.ts +7 -0
  85. package/dist/esm/Queries/Discover.d.ts.map +1 -0
  86. package/dist/esm/Queries/Discover.js +2 -0
  87. package/dist/esm/Queries/Discover.js.map +1 -0
  88. package/dist/esm/Queries/Subscribe.d.ts +17 -0
  89. package/dist/esm/Queries/Subscribe.d.ts.map +1 -0
  90. package/dist/esm/Queries/Subscribe.js +2 -0
  91. package/dist/esm/Queries/Subscribe.js.map +1 -0
  92. package/dist/esm/Queries/index.d.ts +8 -0
  93. package/dist/esm/Queries/index.d.ts.map +1 -0
  94. package/dist/esm/Queries/index.js +3 -0
  95. package/dist/esm/Queries/index.js.map +1 -0
  96. package/dist/esm/Query/Payload.d.ts +13 -0
  97. package/dist/esm/Query/Payload.d.ts.map +1 -0
  98. package/dist/esm/Query/Payload.js +2 -0
  99. package/dist/esm/Query/Payload.js.map +1 -0
  100. package/dist/esm/Query/XyoQueryBoundWitness.d.ts +9 -0
  101. package/dist/esm/Query/XyoQueryBoundWitness.d.ts.map +1 -0
  102. package/dist/esm/Query/XyoQueryBoundWitness.js +2 -0
  103. package/dist/esm/Query/XyoQueryBoundWitness.js.map +1 -0
  104. package/dist/esm/Query/index.d.ts +3 -0
  105. package/dist/esm/Query/index.d.ts.map +1 -0
  106. package/dist/esm/Query/index.js +3 -0
  107. package/dist/esm/Query/index.js.map +1 -0
  108. package/dist/esm/index.d.ts +9 -0
  109. package/dist/esm/index.d.ts.map +1 -0
  110. package/dist/esm/index.js +9 -0
  111. package/dist/esm/index.js.map +1 -0
  112. package/dist/esm/model/Module.d.ts +14 -0
  113. package/dist/esm/model/Module.d.ts.map +1 -0
  114. package/dist/esm/model/Module.js +2 -0
  115. package/dist/esm/model/Module.js.map +1 -0
  116. package/dist/esm/model/ModuleResolver.d.ts +9 -0
  117. package/dist/esm/model/ModuleResolver.d.ts.map +1 -0
  118. package/dist/esm/model/ModuleResolver.js +2 -0
  119. package/dist/esm/model/ModuleResolver.js.map +1 -0
  120. package/dist/esm/model/index.d.ts +3 -0
  121. package/dist/esm/model/index.d.ts.map +1 -0
  122. package/dist/esm/model/index.js +3 -0
  123. package/dist/esm/model/index.js.map +1 -0
  124. package/package.json +55 -0
  125. package/src/Config.ts +22 -0
  126. package/src/ModuleDescription.ts +5 -0
  127. package/src/ModuleFilter.ts +6 -0
  128. package/src/ModuleQueryResult.ts +4 -0
  129. package/src/PartialConfig.ts +5 -0
  130. package/src/Queries/Discover.ts +8 -0
  131. package/src/Queries/Subscribe.ts +20 -0
  132. package/src/Queries/index.ts +10 -0
  133. package/src/Query/Payload.ts +17 -0
  134. package/src/Query/XyoQueryBoundWitness.ts +10 -0
  135. package/src/Query/index.ts +2 -0
  136. package/src/index.ts +8 -0
  137. package/src/model/Module.ts +15 -0
  138. package/src/model/ModuleResolver.ts +10 -0
  139. package/src/model/index.ts +2 -0
@@ -0,0 +1,14 @@
1
+ import { EmptyObject } from '@xyo-network/core';
2
+ import { XyoPayload } from '@xyo-network/payload-model';
3
+ export type AbstractModuleConfigSchema = 'network.xyo.module.config';
4
+ export declare const AbstractModuleConfigSchema: AbstractModuleConfigSchema;
5
+ export type AddressString = string;
6
+ export type SchemaString = string;
7
+ export type AbstractModuleConfigBase<T extends EmptyObject = EmptyObject> = XyoPayload<{
8
+ security?: {
9
+ allowed?: Record<SchemaString, AddressString[][]>;
10
+ disallowed?: Record<SchemaString, AddressString[]>;
11
+ };
12
+ } & T>;
13
+ export type AbstractModuleConfig<TConfig extends XyoPayload = XyoPayload> = AbstractModuleConfigBase<TConfig>;
14
+ //# 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,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,MAAM,MAAM,0BAA0B,GAAG,2BAA2B,CAAA;AACpE,eAAO,MAAM,0BAA0B,EAAE,0BAAwD,CAAA;AAEjG,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAClC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,UAAU,CACpF;IAEE,QAAQ,CAAC,EAAE;QAET,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;QAEjD,UAAU,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,CAAA;KACnD,CAAA;CACF,GAAG,CAAC,CACN,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const AbstractModuleConfigSchema = 'network.xyo.module.config';
2
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,0BAA0B,GAA+B,2BAA2B,CAAA"}
@@ -0,0 +1,6 @@
1
+ export interface ModuleDescription {
2
+ address: string;
3
+ children?: ModuleDescription[];
4
+ queries: string[];
5
+ }
6
+ //# sourceMappingURL=ModuleDescription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleDescription.d.ts","sourceRoot":"","sources":["../../src/ModuleDescription.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ModuleDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleDescription.js","sourceRoot":"","sources":["../../src/ModuleDescription.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export interface ModuleFilter {
2
+ address?: string[];
3
+ config?: string[];
4
+ name?: string[];
5
+ query?: string[][];
6
+ }
7
+ //# sourceMappingURL=ModuleFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleFilter.d.ts","sourceRoot":"","sources":["../../src/ModuleFilter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ModuleFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleFilter.js","sourceRoot":"","sources":["../../src/ModuleFilter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness-model';
2
+ import { XyoPayload } from '@xyo-network/payload-model';
3
+ export type ModuleQueryResult<T extends XyoPayload = XyoPayload> = [XyoBoundWitness, T[]];
4
+ //# sourceMappingURL=ModuleQueryResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleQueryResult.d.ts","sourceRoot":"","sources":["../../src/ModuleQueryResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ModuleQueryResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleQueryResult.js","sourceRoot":"","sources":["../../src/ModuleQueryResult.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { AbstractModuleConfig } from './Config';
2
+ export type PartialModuleConfig<T extends AbstractModuleConfig> = Omit<T, 'schema'> & {
3
+ schema?: T['schema'];
4
+ };
5
+ //# sourceMappingURL=PartialConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartialConfig.d.ts","sourceRoot":"","sources":["../../src/PartialConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/C,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,oBAAoB,IAAI,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;IACpF,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;CACrB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PartialConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartialConfig.js","sourceRoot":"","sources":["../../src/PartialConfig.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { XyoQuery } from '../Query';
2
+ export type AbstractModuleDiscoverQuerySchema = 'network.xyo.query.module.discover';
3
+ export declare const AbstractModuleDiscoverQuerySchema: AbstractModuleDiscoverQuerySchema;
4
+ export type AbstractModuleDiscoverQuery = XyoQuery<{
5
+ schema: AbstractModuleDiscoverQuerySchema;
6
+ }>;
7
+ //# sourceMappingURL=Discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Discover.d.ts","sourceRoot":"","sources":["../../../src/Queries/Discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,iCAAiC,GAAG,mCAAmC,CAAA;AACnF,eAAO,MAAM,iCAAiC,EAAE,iCAAuE,CAAA;AAEvH,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC;IACjD,MAAM,EAAE,iCAAiC,CAAA;CAC1C,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const AbstractModuleDiscoverQuerySchema = 'network.xyo.query.module.discover';
2
+ //# sourceMappingURL=Discover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Discover.js","sourceRoot":"","sources":["../../../src/Queries/Discover.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,iCAAiC,GAAsC,mCAAmC,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { XyoQuery } from '../Query';
2
+ export type AbstractModuleSubscribeQuerySchema = 'network.xyo.query.module.subscribe';
3
+ export declare const AbstractModuleSubscribeQuerySchema: AbstractModuleSubscribeQuerySchema;
4
+ export interface AbstractModuleSubscribeFilter {
5
+ /** @field if specified, at least one of the schemas must be present in the boundwtness to generate a notification */
6
+ schema?: string[];
7
+ }
8
+ export type AbstractModuleSubscribeQuery = XyoQuery<{
9
+ /** @field The address that will receive notifications */
10
+ address: string;
11
+ /** @field A subscribe with a null for filter is an unsubscribe */
12
+ filter?: AbstractModuleSubscribeFilter | null;
13
+ /** @field The maximum events queued per send [may increase frequency] */
14
+ maxQueue?: number;
15
+ schema: AbstractModuleSubscribeQuerySchema;
16
+ }>;
17
+ //# sourceMappingURL=Subscribe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Subscribe.d.ts","sourceRoot":"","sources":["../../../src/Queries/Subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,MAAM,kCAAkC,GAAG,oCAAoC,CAAA;AACrF,eAAO,MAAM,kCAAkC,EAAE,kCAAyE,CAAA;AAE1H,MAAM,WAAW,6BAA6B;IAC5C,qHAAqH;IACrH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAGD,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC;IAClD,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,6BAA6B,GAAG,IAAI,CAAA;IAC7C,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,kCAAkC,CAAA;CAC3C,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const AbstractModuleSubscribeQuerySchema = 'network.xyo.query.module.subscribe';
2
+ //# sourceMappingURL=Subscribe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Subscribe.js","sourceRoot":"","sources":["../../../src/Queries/Subscribe.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,kCAAkC,GAAuC,oCAAoC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { XyoQuery } from '../Query';
2
+ import { AbstractModuleDiscoverQuery } from './Discover';
3
+ import { AbstractModuleSubscribeQuery } from './Subscribe';
4
+ export * from './Discover';
5
+ export * from './Subscribe';
6
+ export type AbstractModuleQueryBase = AbstractModuleSubscribeQuery | AbstractModuleDiscoverQuery;
7
+ export type AbstractModuleQuery<T extends XyoQuery | void = void> = T extends XyoQuery ? AbstractModuleQueryBase | T : AbstractModuleQueryBase;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAE1D,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAE3B,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,GAAG,2BAA2B,CAAA;AAEhG,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,QAAQ,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,QAAQ,GAAG,uBAAuB,GAAG,CAAC,GAAG,uBAAuB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './Discover';
2
+ export * from './Subscribe';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { XyoPayload } from '@xyo-network/payload-model';
2
+ export interface XyoQueryFields {
3
+ /** @field The addresses of the intended handlers */
4
+ address?: string | [string];
5
+ /** @field The maximum XYO that can be spent executing the query */
6
+ budget?: number;
7
+ /** @field The frequency on which this query can be rerun */
8
+ maxFrequency?: 'once' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year';
9
+ /** @field The starting point for the bidding on the query */
10
+ minBid?: number;
11
+ }
12
+ export type XyoQuery<T extends XyoPayload | void = void> = T extends XyoPayload ? XyoPayload<T & XyoQueryFields> : XyoPayload<XyoQueryFields>;
13
+ //# sourceMappingURL=Payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../../src/Query/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAA;IAE3B,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAExF,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,UAAU,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,cAAc,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/Query/Payload.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness-model';
2
+ export type XyoQueryBoundWitnessSchema = 'network.xyo.boundwitness.query';
3
+ export declare const XyoQueryBoundWitnessSchema: XyoQueryBoundWitnessSchema;
4
+ export type XyoQueryBoundWitness = XyoBoundWitness<{
5
+ query: string;
6
+ resultSet?: string;
7
+ schema: XyoQueryBoundWitnessSchema;
8
+ }>;
9
+ //# sourceMappingURL=XyoQueryBoundWitness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoQueryBoundWitness.d.ts","sourceRoot":"","sources":["../../../src/Query/XyoQueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEjE,MAAM,MAAM,0BAA0B,GAAG,gCAAgC,CAAA;AACzE,eAAO,MAAM,0BAA0B,EAAE,0BAA6D,CAAA;AAEtG,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAAC;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,0BAA0B,CAAA;CACnC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const XyoQueryBoundWitnessSchema = 'network.xyo.boundwitness.query';
2
+ //# sourceMappingURL=XyoQueryBoundWitness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoQueryBoundWitness.js","sourceRoot":"","sources":["../../../src/Query/XyoQueryBoundWitness.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,0BAA0B,GAA+B,gCAAgC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './Payload';
2
+ export * from './XyoQueryBoundWitness';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Query/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './Payload';
2
+ export * from './XyoQueryBoundWitness';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Query/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,9 @@
1
+ export * from './Config';
2
+ export * from './model';
3
+ export * from './ModuleDescription';
4
+ export * from './ModuleFilter';
5
+ export * from './ModuleQueryResult';
6
+ export * from './PartialConfig';
7
+ export * from './Queries';
8
+ export * from './Query';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,9 @@
1
+ export * from './Config';
2
+ export * from './model';
3
+ export * from './ModuleDescription';
4
+ export * from './ModuleFilter';
5
+ export * from './ModuleQueryResult';
6
+ export * from './PartialConfig';
7
+ export * from './Queries';
8
+ export * from './Query';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { XyoPayload } from '@xyo-network/payload-model';
2
+ import { Promisable } from '@xyo-network/promise';
3
+ import { ModuleDescription } from '../ModuleDescription';
4
+ import { ModuleQueryResult } from '../ModuleQueryResult';
5
+ import { XyoQueryBoundWitness } from '../Query';
6
+ export interface Module<TConfig extends XyoPayload = XyoPayload> {
7
+ address: string;
8
+ config: TConfig;
9
+ description: () => Promisable<ModuleDescription>;
10
+ queries: () => string[];
11
+ query: <T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]) => Promisable<ModuleQueryResult>;
12
+ queryable: (schema: string, addresses?: string[]) => boolean;
13
+ }
14
+ //# sourceMappingURL=Module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../../src/model/Module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/C,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,MAAM,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAChD,OAAO,EAAE,MAAM,MAAM,EAAE,CAAA;IACvB,KAAK,EAAE,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAClI,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAA;CAC7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Module.js","sourceRoot":"","sources":["../../../src/model/Module.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { Promisable } from '@xyo-network/promise';
2
+ import { ModuleFilter } from '../ModuleFilter';
3
+ import { Module } from './Module';
4
+ export interface ModuleResolver<TModule extends Module = Module> {
5
+ isModuleResolver: boolean;
6
+ resolve(filter?: ModuleFilter): Promisable<TModule[]>;
7
+ tryResolve(filter?: ModuleFilter): Promisable<TModule[]>;
8
+ }
9
+ //# sourceMappingURL=ModuleResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleResolver.d.ts","sourceRoot":"","sources":["../../../src/model/ModuleResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAC7D,gBAAgB,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;IACrD,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;CACzD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ModuleResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleResolver.js","sourceRoot":"","sources":["../../../src/model/ModuleResolver.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './Module';
2
+ export * from './ModuleResolver';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './Module';
2
+ export * from './ModuleResolver';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@xyo-network/module-model",
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/boundwitness-model": "^2.42.16",
14
+ "@xyo-network/core": "^2.42.16",
15
+ "@xyo-network/payload-model": "^2.42.15",
16
+ "@xyo-network/promise": "^2.42.16"
17
+ },
18
+ "devDependencies": {
19
+ "@xylabs/ts-scripts-yarn3": "^2.10.25"
20
+ },
21
+ "description": "Primary SDK for using XYO Protocol 2.0",
22
+ "browser": "dist/esm/index.js",
23
+ "docs": "dist/docs.json",
24
+ "exports": {
25
+ ".": {
26
+ "node": {
27
+ "import": "./dist/esm/index.js",
28
+ "require": "./dist/cjs/index.js"
29
+ },
30
+ "browser": {
31
+ "import": "./dist/esm/index.js",
32
+ "require": "./dist/cjs/index.js"
33
+ },
34
+ "default": "./dist/esm/index.js"
35
+ },
36
+ "./dist/docs.json": {
37
+ "default": "./dist/docs.json"
38
+ },
39
+ "./package.json": "./package.json"
40
+ },
41
+ "main": "dist/cjs/index.js",
42
+ "module": "dist/esm/index.js",
43
+ "homepage": "https://xyo.network",
44
+ "license": "LGPL-3.0-only",
45
+ "publishConfig": {
46
+ "access": "public"
47
+ },
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
51
+ },
52
+ "sideEffects": false,
53
+ "types": "dist/esm/index.d.ts",
54
+ "version": "2.42.16"
55
+ }
package/src/Config.ts ADDED
@@ -0,0 +1,22 @@
1
+ import { EmptyObject } from '@xyo-network/core'
2
+ import { XyoPayload } from '@xyo-network/payload-model'
3
+
4
+ export type AbstractModuleConfigSchema = 'network.xyo.module.config'
5
+ export const AbstractModuleConfigSchema: AbstractModuleConfigSchema = 'network.xyo.module.config'
6
+
7
+ export type AddressString = string
8
+ export type SchemaString = string
9
+
10
+ export type AbstractModuleConfigBase<T extends EmptyObject = EmptyObject> = XyoPayload<
11
+ {
12
+ //if both allowed and disallowed is specified, then disallowed takes priority
13
+ security?: {
14
+ //if schema in record, then only these address sets can access query
15
+ allowed?: Record<SchemaString, AddressString[][]>
16
+ //if schema in record, then anyone except these addresses can access query
17
+ disallowed?: Record<SchemaString, AddressString[]>
18
+ }
19
+ } & T
20
+ >
21
+
22
+ export type AbstractModuleConfig<TConfig extends XyoPayload = XyoPayload> = AbstractModuleConfigBase<TConfig>
@@ -0,0 +1,5 @@
1
+ export interface ModuleDescription {
2
+ address: string
3
+ children?: ModuleDescription[]
4
+ queries: string[]
5
+ }
@@ -0,0 +1,6 @@
1
+ export interface ModuleFilter {
2
+ address?: string[]
3
+ config?: string[]
4
+ name?: string[]
5
+ query?: string[][]
6
+ }
@@ -0,0 +1,4 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
2
+ import { XyoPayload } from '@xyo-network/payload-model'
3
+
4
+ export type ModuleQueryResult<T extends XyoPayload = XyoPayload> = [XyoBoundWitness, T[]]
@@ -0,0 +1,5 @@
1
+ import { AbstractModuleConfig } from './Config'
2
+
3
+ export type PartialModuleConfig<T extends AbstractModuleConfig> = Omit<T, 'schema'> & {
4
+ schema?: T['schema']
5
+ }
@@ -0,0 +1,8 @@
1
+ import { XyoQuery } from '../Query'
2
+
3
+ export type AbstractModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'
4
+ export const AbstractModuleDiscoverQuerySchema: AbstractModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'
5
+
6
+ export type AbstractModuleDiscoverQuery = XyoQuery<{
7
+ schema: AbstractModuleDiscoverQuerySchema
8
+ }>
@@ -0,0 +1,20 @@
1
+ import { XyoQuery } from '../Query'
2
+
3
+ export type AbstractModuleSubscribeQuerySchema = 'network.xyo.query.module.subscribe'
4
+ export const AbstractModuleSubscribeQuerySchema: AbstractModuleSubscribeQuerySchema = 'network.xyo.query.module.subscribe'
5
+
6
+ export interface AbstractModuleSubscribeFilter {
7
+ /** @field if specified, at least one of the schemas must be present in the boundwtness to generate a notification */
8
+ schema?: string[]
9
+ }
10
+
11
+ //requests notification when a boundwitness is added to the modules chain that meets the filter criteria
12
+ export type AbstractModuleSubscribeQuery = XyoQuery<{
13
+ /** @field The address that will receive notifications */
14
+ address: string
15
+ /** @field A subscribe with a null for filter is an unsubscribe */
16
+ filter?: AbstractModuleSubscribeFilter | null
17
+ /** @field The maximum events queued per send [may increase frequency] */
18
+ maxQueue?: number
19
+ schema: AbstractModuleSubscribeQuerySchema
20
+ }>
@@ -0,0 +1,10 @@
1
+ import { XyoQuery } from '../Query'
2
+ import { AbstractModuleDiscoverQuery } from './Discover'
3
+ import { AbstractModuleSubscribeQuery } from './Subscribe'
4
+
5
+ export * from './Discover'
6
+ export * from './Subscribe'
7
+
8
+ export type AbstractModuleQueryBase = AbstractModuleSubscribeQuery | AbstractModuleDiscoverQuery
9
+
10
+ export type AbstractModuleQuery<T extends XyoQuery | void = void> = T extends XyoQuery ? AbstractModuleQueryBase | T : AbstractModuleQueryBase
@@ -0,0 +1,17 @@
1
+ import { XyoPayload } from '@xyo-network/payload-model'
2
+
3
+ export interface XyoQueryFields {
4
+ /** @field The addresses of the intended handlers */
5
+ address?: string | [string]
6
+
7
+ /** @field The maximum XYO that can be spent executing the query */
8
+ budget?: number
9
+
10
+ /** @field The frequency on which this query can be rerun */
11
+ maxFrequency?: 'once' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year'
12
+
13
+ /** @field The starting point for the bidding on the query */
14
+ minBid?: number
15
+ }
16
+
17
+ export type XyoQuery<T extends XyoPayload | void = void> = T extends XyoPayload ? XyoPayload<T & XyoQueryFields> : XyoPayload<XyoQueryFields>
@@ -0,0 +1,10 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
2
+
3
+ export type XyoQueryBoundWitnessSchema = 'network.xyo.boundwitness.query'
4
+ export const XyoQueryBoundWitnessSchema: XyoQueryBoundWitnessSchema = 'network.xyo.boundwitness.query'
5
+
6
+ export type XyoQueryBoundWitness = XyoBoundWitness<{
7
+ query: string
8
+ resultSet?: string
9
+ schema: XyoQueryBoundWitnessSchema
10
+ }>
@@ -0,0 +1,2 @@
1
+ export * from './Payload'
2
+ export * from './XyoQueryBoundWitness'
package/src/index.ts ADDED
@@ -0,0 +1,8 @@
1
+ export * from './Config'
2
+ export * from './model'
3
+ export * from './ModuleDescription'
4
+ export * from './ModuleFilter'
5
+ export * from './ModuleQueryResult'
6
+ export * from './PartialConfig'
7
+ export * from './Queries'
8
+ export * from './Query'
@@ -0,0 +1,15 @@
1
+ import { XyoPayload } from '@xyo-network/payload-model'
2
+ import { Promisable } from '@xyo-network/promise'
3
+
4
+ import { ModuleDescription } from '../ModuleDescription'
5
+ import { ModuleQueryResult } from '../ModuleQueryResult'
6
+ import { XyoQueryBoundWitness } from '../Query'
7
+
8
+ export interface Module<TConfig extends XyoPayload = XyoPayload> {
9
+ address: string
10
+ config: TConfig
11
+ description: () => Promisable<ModuleDescription>
12
+ queries: () => string[]
13
+ query: <T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]) => Promisable<ModuleQueryResult>
14
+ queryable: (schema: string, addresses?: string[]) => boolean
15
+ }
@@ -0,0 +1,10 @@
1
+ import { Promisable } from '@xyo-network/promise'
2
+
3
+ import { ModuleFilter } from '../ModuleFilter'
4
+ import { Module } from './Module'
5
+
6
+ export interface ModuleResolver<TModule extends Module = Module> {
7
+ isModuleResolver: boolean
8
+ resolve(filter?: ModuleFilter): Promisable<TModule[]>
9
+ tryResolve(filter?: ModuleFilter): Promisable<TModule[]>
10
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Module'
2
+ export * from './ModuleResolver'