@xyo-network/module-model 2.66.9 → 2.67.0-rc.2

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 (207) hide show
  1. package/dist/cjs/CreatableModule.js.map +1 -1
  2. package/dist/cjs/ModuleFactory.js.map +1 -1
  3. package/dist/cjs/index.js +2 -5
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/instance/ModuleFilter.js.map +1 -0
  6. package/dist/cjs/instance/ModuleInstance.js +3 -0
  7. package/dist/cjs/instance/ModuleInstance.js.map +1 -0
  8. package/dist/cjs/instance/ModuleRepository.js.map +1 -0
  9. package/dist/cjs/instance/ModuleResolver.js +3 -0
  10. package/dist/cjs/instance/ModuleResolver.js.map +1 -0
  11. package/dist/cjs/instance/ResolveFunctions.js +3 -0
  12. package/dist/cjs/instance/ResolveFunctions.js.map +1 -0
  13. package/dist/cjs/instance/identity/IsInstanceFactory.js +8 -0
  14. package/dist/cjs/instance/identity/IsInstanceFactory.js.map +1 -0
  15. package/dist/cjs/instance/identity/asModuleInstance.js +7 -0
  16. package/dist/cjs/instance/identity/asModuleInstance.js.map +1 -0
  17. package/dist/cjs/instance/identity/index.js +7 -0
  18. package/dist/cjs/instance/identity/index.js.map +1 -0
  19. package/dist/cjs/instance/identity/isModuleInstance.js +15 -0
  20. package/dist/cjs/instance/identity/isModuleInstance.js.map +1 -0
  21. package/dist/cjs/instance/index.js +10 -0
  22. package/dist/cjs/instance/index.js.map +1 -0
  23. package/dist/{esm → cjs/module}/Module.js.map +1 -1
  24. package/dist/cjs/module/ModuleEvents.js +3 -0
  25. package/dist/cjs/module/ModuleEvents.js.map +1 -0
  26. package/dist/cjs/module/ModuleFields.js +3 -0
  27. package/dist/cjs/module/ModuleFields.js.map +1 -0
  28. package/dist/cjs/module/identity/IsModuleFactory.js +20 -0
  29. package/dist/cjs/module/identity/IsModuleFactory.js.map +1 -0
  30. package/dist/cjs/module/identity/ModuleQueryFunctions.js +3 -0
  31. package/dist/cjs/module/identity/ModuleQueryFunctions.js.map +1 -0
  32. package/dist/cjs/module/identity/asModule.js +7 -0
  33. package/dist/cjs/module/identity/asModule.js.map +1 -0
  34. package/dist/cjs/module/identity/asModuleObject.js +7 -0
  35. package/dist/cjs/module/identity/asModuleObject.js.map +1 -0
  36. package/dist/cjs/module/identity/index.js +10 -0
  37. package/dist/cjs/module/identity/index.js.map +1 -0
  38. package/dist/cjs/module/identity/isModule.js +18 -0
  39. package/dist/cjs/module/identity/isModule.js.map +1 -0
  40. package/dist/cjs/module/identity/isModuleObject.js +15 -0
  41. package/dist/cjs/module/identity/isModuleObject.js.map +1 -0
  42. package/dist/cjs/module/index.js +8 -0
  43. package/dist/cjs/module/index.js.map +1 -0
  44. package/dist/cjs/withModule.js +4 -3
  45. package/dist/cjs/withModule.js.map +1 -1
  46. package/dist/esm/CreatableModule.js.map +1 -1
  47. package/dist/esm/ModuleFactory.js.map +1 -1
  48. package/dist/esm/index.js +2 -5
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/instance/ModuleFilter.js.map +1 -0
  51. package/dist/esm/instance/ModuleInstance.js +2 -0
  52. package/dist/esm/instance/ModuleInstance.js.map +1 -0
  53. package/dist/esm/instance/ModuleRepository.js.map +1 -0
  54. package/dist/esm/instance/ModuleResolver.js +2 -0
  55. package/dist/esm/instance/ModuleResolver.js.map +1 -0
  56. package/dist/esm/instance/ResolveFunctions.js +2 -0
  57. package/dist/esm/instance/ResolveFunctions.js.map +1 -0
  58. package/dist/esm/instance/identity/IsInstanceFactory.js +4 -0
  59. package/dist/esm/instance/identity/IsInstanceFactory.js.map +1 -0
  60. package/dist/esm/instance/identity/asModuleInstance.js +4 -0
  61. package/dist/esm/instance/identity/asModuleInstance.js.map +1 -0
  62. package/dist/esm/instance/identity/index.js +4 -0
  63. package/dist/esm/instance/identity/index.js.map +1 -0
  64. package/dist/esm/instance/identity/isModuleInstance.js +12 -0
  65. package/dist/esm/instance/identity/isModuleInstance.js.map +1 -0
  66. package/dist/esm/instance/index.js +7 -0
  67. package/dist/esm/instance/index.js.map +1 -0
  68. package/dist/{cjs → esm/module}/Module.js.map +1 -1
  69. package/dist/esm/module/ModuleEvents.js +2 -0
  70. package/dist/esm/module/ModuleEvents.js.map +1 -0
  71. package/dist/esm/module/ModuleFields.js +2 -0
  72. package/dist/esm/module/ModuleFields.js.map +1 -0
  73. package/dist/esm/module/identity/IsModuleFactory.js +15 -0
  74. package/dist/esm/module/identity/IsModuleFactory.js.map +1 -0
  75. package/dist/esm/module/identity/ModuleQueryFunctions.js +2 -0
  76. package/dist/esm/module/identity/ModuleQueryFunctions.js.map +1 -0
  77. package/dist/esm/module/identity/asModule.js +4 -0
  78. package/dist/esm/module/identity/asModule.js.map +1 -0
  79. package/dist/esm/module/identity/asModuleObject.js +4 -0
  80. package/dist/esm/module/identity/asModuleObject.js.map +1 -0
  81. package/dist/esm/module/identity/index.js +7 -0
  82. package/dist/esm/module/identity/index.js.map +1 -0
  83. package/dist/esm/module/identity/isModule.js +15 -0
  84. package/dist/esm/module/identity/isModule.js.map +1 -0
  85. package/dist/esm/module/identity/isModuleObject.js +12 -0
  86. package/dist/esm/module/identity/isModuleObject.js.map +1 -0
  87. package/dist/esm/module/index.js +5 -0
  88. package/dist/esm/module/index.js.map +1 -0
  89. package/dist/esm/withModule.js +2 -1
  90. package/dist/esm/withModule.js.map +1 -1
  91. package/dist/types/CreatableModule.d.ts +10 -9
  92. package/dist/types/CreatableModule.d.ts.map +1 -1
  93. package/dist/types/Events/ModuleBusy.d.ts +1 -1
  94. package/dist/types/Events/ModuleError.d.ts +1 -1
  95. package/dist/types/Events/ModuleQueried.d.ts +1 -1
  96. package/dist/types/ModuleFactory.d.ts +14 -8
  97. package/dist/types/ModuleFactory.d.ts.map +1 -1
  98. package/dist/types/ModuleParams.d.ts +5 -9
  99. package/dist/types/ModuleParams.d.ts.map +1 -1
  100. package/dist/types/index.d.ts +2 -5
  101. package/dist/types/index.d.ts.map +1 -1
  102. package/dist/types/{ModuleFilter.d.ts → instance/ModuleFilter.d.ts} +2 -2
  103. package/dist/types/instance/ModuleFilter.d.ts.map +1 -0
  104. package/dist/types/instance/ModuleInstance.d.ts +10 -0
  105. package/dist/types/instance/ModuleInstance.d.ts.map +1 -0
  106. package/dist/types/{ModuleRepository.d.ts → instance/ModuleRepository.d.ts} +2 -1
  107. package/dist/types/instance/ModuleRepository.d.ts.map +1 -0
  108. package/dist/types/instance/ModuleResolver.d.ts +7 -0
  109. package/dist/types/instance/ModuleResolver.d.ts.map +1 -0
  110. package/dist/types/instance/ResolveFunctions.d.ts +9 -0
  111. package/dist/types/instance/ResolveFunctions.d.ts.map +1 -0
  112. package/dist/types/instance/identity/IsInstanceFactory.d.ts +6 -0
  113. package/dist/types/instance/identity/IsInstanceFactory.d.ts.map +1 -0
  114. package/dist/types/instance/identity/asModuleInstance.d.ts +5 -0
  115. package/dist/types/instance/identity/asModuleInstance.d.ts.map +1 -0
  116. package/dist/types/instance/identity/index.d.ts +4 -0
  117. package/dist/types/instance/identity/index.d.ts.map +1 -0
  118. package/dist/types/instance/identity/isModuleInstance.d.ts +5 -0
  119. package/dist/types/instance/identity/isModuleInstance.d.ts.map +1 -0
  120. package/dist/types/instance/index.d.ts +7 -0
  121. package/dist/types/instance/index.d.ts.map +1 -0
  122. package/dist/types/lib/duplicateModules.d.ts +1 -1
  123. package/dist/types/module/Module.d.ts +7 -0
  124. package/dist/types/module/Module.d.ts.map +1 -0
  125. package/dist/types/module/ModuleEvents.d.ts +11 -0
  126. package/dist/types/module/ModuleEvents.d.ts.map +1 -0
  127. package/dist/types/module/ModuleFields.d.ts +18 -0
  128. package/dist/types/module/ModuleFields.d.ts.map +1 -0
  129. package/dist/types/module/identity/IsModuleFactory.d.ts +7 -0
  130. package/dist/types/module/identity/IsModuleFactory.d.ts.map +1 -0
  131. package/dist/types/module/identity/ModuleQueryFunctions.d.ts +12 -0
  132. package/dist/types/module/identity/ModuleQueryFunctions.d.ts.map +1 -0
  133. package/dist/types/module/identity/asModule.d.ts +5 -0
  134. package/dist/types/module/identity/asModule.d.ts.map +1 -0
  135. package/dist/types/module/identity/asModuleObject.d.ts +5 -0
  136. package/dist/types/module/identity/asModuleObject.d.ts.map +1 -0
  137. package/dist/types/module/identity/index.d.ts +7 -0
  138. package/dist/types/module/identity/index.d.ts.map +1 -0
  139. package/dist/types/module/identity/isModule.d.ts +5 -0
  140. package/dist/types/module/identity/isModule.d.ts.map +1 -0
  141. package/dist/types/module/identity/isModuleObject.d.ts +5 -0
  142. package/dist/types/module/identity/isModuleObject.d.ts.map +1 -0
  143. package/dist/types/module/index.d.ts +5 -0
  144. package/dist/types/module/index.d.ts.map +1 -0
  145. package/dist/types/withModule.d.ts +4 -4
  146. package/dist/types/withModule.d.ts.map +1 -1
  147. package/package.json +16 -14
  148. package/src/CreatableModule.ts +10 -9
  149. package/src/Events/ModuleBusy.ts +1 -1
  150. package/src/Events/ModuleError.ts +1 -1
  151. package/src/Events/ModuleQueried.ts +1 -1
  152. package/src/ModuleFactory.ts +11 -8
  153. package/src/ModuleParams.ts +9 -35
  154. package/src/index.ts +2 -5
  155. package/src/{ModuleFilter.ts → instance/ModuleFilter.ts} +2 -2
  156. package/src/instance/ModuleInstance.ts +19 -0
  157. package/src/{ModuleRepository.ts → instance/ModuleRepository.ts} +2 -1
  158. package/src/instance/ModuleResolver.ts +7 -0
  159. package/src/instance/ResolveFunctions.ts +13 -0
  160. package/src/instance/identity/IsInstanceFactory.ts +7 -0
  161. package/src/instance/identity/asModuleInstance.ts +5 -0
  162. package/src/instance/identity/index.ts +3 -0
  163. package/src/instance/identity/isModuleInstance.ts +16 -0
  164. package/src/instance/index.ts +6 -0
  165. package/src/lib/duplicateModules.ts +1 -1
  166. package/src/module/Module.ts +11 -0
  167. package/src/module/ModuleEvents.ts +14 -0
  168. package/src/module/ModuleFields.ts +31 -0
  169. package/src/module/identity/IsModuleFactory.ts +22 -0
  170. package/src/module/identity/ModuleQueryFunctions.ts +13 -0
  171. package/src/module/identity/asModule.ts +5 -0
  172. package/src/module/identity/asModuleObject.ts +5 -0
  173. package/src/module/identity/index.ts +6 -0
  174. package/src/module/identity/isModule.ts +20 -0
  175. package/src/module/identity/isModuleObject.ts +16 -0
  176. package/src/module/index.ts +4 -0
  177. package/src/withModule.ts +5 -2
  178. package/dist/cjs/ModuleFilter.js.map +0 -1
  179. package/dist/cjs/ModuleRepository.js.map +0 -1
  180. package/dist/cjs/asModule.js +0 -28
  181. package/dist/cjs/asModule.js.map +0 -1
  182. package/dist/cjs/isModule.js +0 -55
  183. package/dist/cjs/isModule.js.map +0 -1
  184. package/dist/docs.json +0 -26606
  185. package/dist/esm/ModuleFilter.js.map +0 -1
  186. package/dist/esm/ModuleRepository.js.map +0 -1
  187. package/dist/esm/asModule.js +0 -25
  188. package/dist/esm/asModule.js.map +0 -1
  189. package/dist/esm/isModule.js +0 -49
  190. package/dist/esm/isModule.js.map +0 -1
  191. package/dist/types/Module.d.ts +0 -53
  192. package/dist/types/Module.d.ts.map +0 -1
  193. package/dist/types/ModuleFilter.d.ts.map +0 -1
  194. package/dist/types/ModuleRepository.d.ts.map +0 -1
  195. package/dist/types/asModule.d.ts +0 -16
  196. package/dist/types/asModule.d.ts.map +0 -1
  197. package/dist/types/isModule.d.ts +0 -15
  198. package/dist/types/isModule.d.ts.map +0 -1
  199. package/src/Module.ts +0 -95
  200. package/src/asModule.ts +0 -39
  201. package/src/isModule.ts +0 -68
  202. /package/dist/cjs/{ModuleFilter.js → instance/ModuleFilter.js} +0 -0
  203. /package/dist/cjs/{ModuleRepository.js → instance/ModuleRepository.js} +0 -0
  204. /package/dist/cjs/{Module.js → module/Module.js} +0 -0
  205. /package/dist/esm/{ModuleFilter.js → instance/ModuleFilter.js} +0 -0
  206. /package/dist/esm/{ModuleRepository.js → instance/ModuleRepository.js} +0 -0
  207. /package/dist/esm/{Module.js → module/Module.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleFilter.js","sourceRoot":"","sources":["../../src/ModuleFilter.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleRepository.js","sourceRoot":"","sources":["../../src/ModuleRepository.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- import { assertEx } from '@xylabs/assert';
2
- import { isModule, isModuleInstance } from './isModule';
3
- export const AsFactory = {
4
- create: (typeCheck) => {
5
- function func(
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- module, assert) {
8
- const result = typeCheck(module) ? module : undefined;
9
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
- const noUndefined = (assert) => {
11
- return !!assert;
12
- };
13
- if (noUndefined(assert)) {
14
- return assertEx(result, typeof assert === 'function' ? assert() : assert);
15
- }
16
- else {
17
- return result;
18
- }
19
- }
20
- return func;
21
- },
22
- };
23
- export const asModule = AsFactory.create(isModule);
24
- export const asModuleInstance = AsFactory.create(isModuleInstance);
25
- //# sourceMappingURL=asModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"asModule.js","sourceRoot":"","sources":["../../src/asModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAqB,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE1E,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,CAAyB,SAAqC,EAAE,EAAE;QAUxE,SAAS,IAAI;QACX,8DAA8D;QAC9D,MAAW,EACX,MAAgC;YAEhC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;YAErD,8DAA8D;YAC9D,MAAM,WAAW,GAAG,CAAC,MAAW,EAAqB,EAAE;gBACrD,OAAO,CAAC,CAAC,MAAM,CAAA;YACjB,CAAC,CAAA;YAED,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;gBACvB,OAAO,QAAQ,CAAC,MAAM,EAAE,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;aAC1E;iBAAM;gBACL,OAAO,MAAM,CAAA;aACd;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA"}
@@ -1,49 +0,0 @@
1
- export const isType = (value, expectedType) => {
2
- if (expectedType === 'array') {
3
- return Array.isArray(value);
4
- }
5
- else if (expectedType === 'payload') {
6
- return typeof value === 'object' && typeof value.schema === 'string';
7
- }
8
- else {
9
- return typeof value === expectedType;
10
- }
11
- };
12
- export const IsInstanceFactory = {
13
- create: (shape, additionalCheck) => {
14
- return (module, log = false) => {
15
- return (!!module &&
16
- (additionalCheck?.(module) ?? true) &&
17
- Object.entries(shape ?? {}).reduce((prev, [key, type]) => {
18
- const result = isType(module[key], type);
19
- if (!result && log) {
20
- console.warn(`isType Failed: ${key}: ${type}`);
21
- }
22
- return prev && result;
23
- }, true));
24
- };
25
- },
26
- };
27
- export const IsModuleFactory = {
28
- create: (expectedQueries, additionalCheck) => {
29
- return (module) => {
30
- return (isModule(module) &&
31
- (additionalCheck?.(module) ?? true) &&
32
- (expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true));
33
- };
34
- },
35
- };
36
- export const isModule = IsInstanceFactory.create({
37
- address: 'string',
38
- config: 'object',
39
- params: 'object',
40
- queries: 'array',
41
- query: 'function',
42
- queryable: 'function',
43
- });
44
- export const isModuleInstance = IsInstanceFactory.create({
45
- describe: 'function',
46
- discover: 'function',
47
- manifest: 'function',
48
- }, isModule);
49
- //# sourceMappingURL=isModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isModule.js","sourceRoot":"","sources":["../../src/isModule.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAU,EAAE,YAAuB,EAAE,EAAE;IAC5D,IAAI,YAAY,KAAK,OAAO,EAAE;QAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;KAC5B;SAAM,IAAI,YAAY,KAAK,SAAS,EAAE;QACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAA;KACrE;SAAM;QACL,OAAO,OAAO,KAAK,KAAK,YAAY,CAAA;KACrC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,CAA4B,KAAyB,EAAE,eAA0C,EAAwB,EAAE;QACjI,OAAO,CAAC,MAAW,EAAE,GAAG,GAAG,KAAK,EAAe,EAAE;YAC/C,OAAO,CACL,CAAC,CAAC,MAAM;gBACR,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;gBACnC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;oBACvD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;oBACxC,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;wBAClB,OAAO,CAAC,IAAI,CAAC,kBAAkB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAA;qBAC/C;oBACD,OAAO,IAAI,IAAI,MAAM,CAAA;gBACvB,CAAC,EAAE,IAAI,CAAC,CACT,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,CAA4B,eAA0B,EAAE,eAA0C,EAAsB,EAAE;QAChI,OAAO,CAAC,MAAW,EAAe,EAAE;YAClC,OAAO,CACL,QAAQ,CAAC,MAAM,CAAC;gBAChB,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;gBACnC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CACjG,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAA4B,iBAAiB,CAAC,MAAM,CAAS;IAChF,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,UAAU;IACjB,SAAS,EAAE,UAAU;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAsC,iBAAiB,CAAC,MAAM,CACzF;IACE,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;CACrB,EACD,QAAQ,CACT,CAAA"}
@@ -1,53 +0,0 @@
1
- import { AccountInstance } from '@xyo-network/account-model';
2
- import { QueryBoundWitness } from '@xyo-network/boundwitness-builder';
3
- import { ModuleManifestPayload } from '@xyo-network/manifest-model';
4
- import { EventArgs, EventFunctions } from '@xyo-network/module-events';
5
- import { Payload } from '@xyo-network/payload-model';
6
- import { Promisable } from '@xyo-network/promise';
7
- import { AnyConfigSchema, ModuleConfig } from './Config';
8
- import { ModuleBusyEventData, ModuleErrorEventData, ModuleQueriedEventData } from './Events';
9
- import { ModuleDescription } from './ModuleDescription';
10
- import { ModuleFilter, ModuleFilterOptions } from './ModuleFilter';
11
- import { ModuleParams } from './ModuleParams';
12
- import { ModuleQueryResult } from './ModuleQueryResult';
13
- import { AddressPreviousHashPayload } from './Queries';
14
- export interface ResolveFunctions {
15
- resolve<TModuleInstance extends ModuleInstance>(filter?: ModuleFilter, options?: ModuleFilterOptions<TModuleInstance>): Promisable<TModuleInstance[]>;
16
- resolve<TModuleInstance extends ModuleInstance>(nameOrAddress: string, options?: ModuleFilterOptions<TModuleInstance>): Promisable<TModuleInstance | undefined>;
17
- resolve<TModuleInstance extends ModuleInstance>(nameOrAddressOrFilter?: ModuleFilter | string, options?: ModuleFilterOptions<TModuleInstance>): Promisable<TModuleInstance | TModuleInstance[] | undefined>;
18
- }
19
- export interface ModuleResolver extends ResolveFunctions {
20
- addResolver: (resolver: ModuleResolver) => this;
21
- isModuleResolver: boolean;
22
- removeResolver: (resolver: ModuleResolver) => this;
23
- }
24
- export type ModuleEventArgs<TModule extends Module = Module, TArgs extends EventArgs | undefined = undefined> = TArgs extends EventArgs ? {
25
- module: TModule;
26
- } & TArgs : {
27
- module: TModule;
28
- };
29
- export interface ModuleEventData extends ModuleQueriedEventData, ModuleBusyEventData, ModuleErrorEventData {
30
- }
31
- export type ModuleQueryFunctions = {
32
- describe: () => Promise<ModuleDescription>;
33
- discover: () => Promisable<Payload[]>;
34
- manifest: () => Promisable<ModuleManifestPayload>;
35
- moduleAddress: () => Promisable<AddressPreviousHashPayload[]>;
36
- };
37
- export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>> = {
38
- address: string;
39
- config: TParams['config'];
40
- readonly downResolver: Omit<ModuleResolver, 'resolve'>;
41
- loadAccount?: () => Promisable<AccountInstance>;
42
- params: TParams;
43
- previousHash: () => Promisable<string | undefined>;
44
- queries: string[];
45
- query: <T extends QueryBoundWitness = QueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConf) => Promisable<ModuleQueryResult>;
46
- queryable: <T extends QueryBoundWitness = QueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConf) => Promisable<boolean>;
47
- start?: () => Promisable<boolean>;
48
- stop?: () => Promisable<boolean>;
49
- readonly upResolver: Omit<ModuleResolver, 'resolve'>;
50
- };
51
- export type Module<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>, TEventData extends ModuleEventData = ModuleEventData> = ModuleFields<TParams> & EventFunctions<TEventData> & ResolveFunctions;
52
- export type ModuleInstance<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>, TEventData extends ModuleEventData = ModuleEventData> = Module<TParams, TEventData> & ModuleQueryFunctions;
53
- //# sourceMappingURL=Module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleFilter.d.ts","sourceRoot":"","sources":["../../src/ModuleFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,WAAW,mBAAmB,CAAC,SAAS,SAAS,cAAc,GAAG,cAAc;IACpF,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,CAAA;IACjC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACvC,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAA;CAC1C;AAED,MAAM,WAAW,mBAAmB,CAAC,SAAS,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,mBAAmB,CAAC,SAAS,CAAC;IAC5H,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB,CAAC,SAAS,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,mBAAmB,CAAC,SAAS,CAAC;IACzH,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,mBAAmB,CAAC,SAAS,CAAC;IAC1H,KAAK,EAAE,MAAM,EAAE,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,GACxE,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,GACzC,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAA;AAC5C,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,cAAc,GAAG,cAAc,IACtE,mBAAmB,CAAC,SAAS,CAAC,GAC9B,mBAAmB,CAAC,SAAS,CAAC,GAC9B,gBAAgB,CAAC,SAAS,CAAC,GAC3B,iBAAiB,CAAC,SAAS,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleRepository.d.ts","sourceRoot":"","sources":["../../src/ModuleRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC3B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IAEpC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;CACzC"}
@@ -1,16 +0,0 @@
1
- import { InstanceTypeCheck } from './isModule';
2
- export declare const AsFactory: {
3
- create: <TModule extends object>(typeCheck: InstanceTypeCheck<TModule>) => {
4
- (module: any): TModule | undefined;
5
- (module: any, assert: string | (() => string)): TModule;
6
- };
7
- };
8
- export declare const asModule: {
9
- (module: any): import("./Module").Module | undefined;
10
- (module: any, assert: string | (() => string)): import("./Module").Module;
11
- };
12
- export declare const asModuleInstance: {
13
- (module: any): import("./Module").ModuleInstance | undefined;
14
- (module: any, assert: string | (() => string)): import("./Module").ModuleInstance;
15
- };
16
- //# sourceMappingURL=asModule.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"asModule.d.ts","sourceRoot":"","sources":["../../src/asModule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,YAAY,CAAA;AAE1E,eAAO,MAAM,SAAS;;iBAIR,GAAG;iBAIH,GAAG,UACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;;CAsBpC,CAAA;AAED,eAAO,MAAM,QAAQ;aA7BP,GAAG;aAIH,GAAG,0BACa,MAAM;CAwBc,CAAA;AAClD,eAAO,MAAM,gBAAgB;aA9Bf,GAAG;aAIH,GAAG,0BACa,MAAM;CAyB8B,CAAA"}
@@ -1,15 +0,0 @@
1
- import { Module, ModuleInstance } from './Module';
2
- export type InstanceTypeCheck<T extends object = object> = (module: any) => module is T;
3
- export type ModuleTypeCheck<T extends Module = Module> = InstanceTypeCheck<T>;
4
- export type FieldType = 'string' | 'number' | 'object' | 'symbol' | 'symbol' | 'undefined' | 'null' | 'array' | 'function' | 'payload';
5
- export type InstanceTypeShape = Record<string | number | symbol, FieldType>;
6
- export declare const isType: (value: any, expectedType: FieldType) => boolean;
7
- export declare const IsInstanceFactory: {
8
- create: <T extends object = object>(shape?: InstanceTypeShape, additionalCheck?: ((module: any) => boolean) | undefined) => InstanceTypeCheck<T>;
9
- };
10
- export declare const IsModuleFactory: {
11
- create: <T extends Module = Module>(expectedQueries?: string[], additionalCheck?: ((module: any) => boolean) | undefined) => ModuleTypeCheck<T>;
12
- };
13
- export declare const isModule: ModuleTypeCheck<Module>;
14
- export declare const isModuleInstance: InstanceTypeCheck<ModuleInstance>;
15
- //# sourceMappingURL=isModule.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isModule.d.ts","sourceRoot":"","sources":["../../src/isModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,MAAM,IAAI,CAAC,CAAA;AAEvF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAE7E,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAA;AAEtI,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,SAAS,CAAC,CAAA;AAE3E,eAAO,MAAM,MAAM,UAAW,GAAG,gBAAgB,SAAS,YAQzD,CAAA;AAED,eAAO,MAAM,iBAAiB;gDACgB,iBAAiB,8BAA6B,GAAG,KAAK,OAAO;CAe1G,CAAA;AAED,eAAO,MAAM,eAAe;0DAC4B,MAAM,EAAE,8BAA6B,GAAG,KAAK,OAAO;CAS3G,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,MAAM,CAO3C,CAAA;AAEF,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,cAAc,CAO9D,CAAA"}
package/src/Module.ts DELETED
@@ -1,95 +0,0 @@
1
- import { AccountInstance } from '@xyo-network/account-model'
2
- import { QueryBoundWitness } from '@xyo-network/boundwitness-builder'
3
- import { ModuleManifestPayload } from '@xyo-network/manifest-model'
4
- import { EventArgs, EventFunctions } from '@xyo-network/module-events'
5
- import { Payload } from '@xyo-network/payload-model'
6
- import { Promisable } from '@xyo-network/promise'
7
-
8
- import { AnyConfigSchema, ModuleConfig } from './Config'
9
- import { ModuleBusyEventData, ModuleErrorEventData, ModuleQueriedEventData } from './Events'
10
- import { ModuleDescription } from './ModuleDescription'
11
- import { ModuleFilter, ModuleFilterOptions } from './ModuleFilter'
12
- import { ModuleParams } from './ModuleParams'
13
- import { ModuleQueryResult } from './ModuleQueryResult'
14
- import { AddressPreviousHashPayload } from './Queries'
15
-
16
- export interface ResolveFunctions {
17
- resolve<TModuleInstance extends ModuleInstance>(
18
- filter?: ModuleFilter,
19
- options?: ModuleFilterOptions<TModuleInstance>,
20
- ): Promisable<TModuleInstance[]>
21
- resolve<TModuleInstance extends ModuleInstance>(
22
- nameOrAddress: string,
23
- options?: ModuleFilterOptions<TModuleInstance>,
24
- ): Promisable<TModuleInstance | undefined>
25
- resolve<TModuleInstance extends ModuleInstance>(
26
- nameOrAddressOrFilter?: ModuleFilter | string,
27
- options?: ModuleFilterOptions<TModuleInstance>,
28
- ): Promisable<TModuleInstance | TModuleInstance[] | undefined>
29
- }
30
-
31
- export interface ModuleResolver extends ResolveFunctions {
32
- addResolver: (resolver: ModuleResolver) => this
33
- isModuleResolver: boolean
34
- removeResolver: (resolver: ModuleResolver) => this
35
- }
36
-
37
- export type ModuleEventArgs<TModule extends Module = Module, TArgs extends EventArgs | undefined = undefined> = TArgs extends EventArgs
38
- ? {
39
- module: TModule
40
- } & TArgs
41
- : {
42
- module: TModule
43
- }
44
-
45
- export interface ModuleEventData extends ModuleQueriedEventData, ModuleBusyEventData, ModuleErrorEventData {}
46
-
47
- export type ModuleQueryFunctions = {
48
- describe: () => Promise<ModuleDescription>
49
- discover: () => Promisable<Payload[]>
50
- manifest: () => Promisable<ModuleManifestPayload>
51
- moduleAddress: () => Promisable<AddressPreviousHashPayload[]>
52
- }
53
-
54
- export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>> = {
55
- address: string
56
- config: TParams['config']
57
-
58
- /* The resolver is a 'down' resolver. It can resolve the module or any children (if it is a node for example), that are in the module*/
59
- readonly downResolver: Omit<ModuleResolver, 'resolve'>
60
-
61
- loadAccount?: () => Promisable<AccountInstance>
62
-
63
- params: TParams
64
-
65
- previousHash: () => Promisable<string | undefined>
66
-
67
- queries: string[]
68
- query: <T extends QueryBoundWitness = QueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(
69
- query: T,
70
- payloads?: Payload[],
71
- queryConfig?: TConf,
72
- ) => Promisable<ModuleQueryResult>
73
- queryable: <T extends QueryBoundWitness = QueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(
74
- query: T,
75
- payloads?: Payload[],
76
- queryConfig?: TConf,
77
- ) => Promisable<boolean>
78
-
79
- start?: () => Promisable<boolean>
80
- stop?: () => Promisable<boolean>
81
-
82
- /* The resolver is a 'up' resolver. It can resolve the parent or any children of the parent*/
83
- /* This is set by a NodeModule when attaching to the module */
84
- readonly upResolver: Omit<ModuleResolver, 'resolve'>
85
- }
86
-
87
- export type Module<
88
- TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
89
- TEventData extends ModuleEventData = ModuleEventData,
90
- > = ModuleFields<TParams> & EventFunctions<TEventData> & ResolveFunctions
91
-
92
- export type ModuleInstance<
93
- TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
94
- TEventData extends ModuleEventData = ModuleEventData,
95
- > = Module<TParams, TEventData> & ModuleQueryFunctions
package/src/asModule.ts DELETED
@@ -1,39 +0,0 @@
1
- import { assertEx } from '@xylabs/assert'
2
-
3
- import { InstanceTypeCheck, isModule, isModuleInstance } from './isModule'
4
-
5
- export const AsFactory = {
6
- create: <TModule extends object>(typeCheck: InstanceTypeCheck<TModule>) => {
7
- function func(
8
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
- module: any,
10
- ): TModule | undefined
11
- function func(
12
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- module: any,
14
- assert: string | (() => string),
15
- ): TModule
16
- function func(
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
- module: any,
19
- assert?: string | (() => string),
20
- ): TModule | undefined {
21
- const result = typeCheck(module) ? module : undefined
22
-
23
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
- const noUndefined = (assert: any): assert is TModule => {
25
- return !!assert
26
- }
27
-
28
- if (noUndefined(assert)) {
29
- return assertEx(result, typeof assert === 'function' ? assert() : assert)
30
- } else {
31
- return result
32
- }
33
- }
34
- return func
35
- },
36
- }
37
-
38
- export const asModule = AsFactory.create(isModule)
39
- export const asModuleInstance = AsFactory.create(isModuleInstance)
package/src/isModule.ts DELETED
@@ -1,68 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Module, ModuleInstance } from './Module'
3
-
4
- export type InstanceTypeCheck<T extends object = object> = (module: any) => module is T
5
-
6
- export type ModuleTypeCheck<T extends Module = Module> = InstanceTypeCheck<T>
7
-
8
- export type FieldType = 'string' | 'number' | 'object' | 'symbol' | 'symbol' | 'undefined' | 'null' | 'array' | 'function' | 'payload'
9
-
10
- export type InstanceTypeShape = Record<string | number | symbol, FieldType>
11
-
12
- export const isType = (value: any, expectedType: FieldType) => {
13
- if (expectedType === 'array') {
14
- return Array.isArray(value)
15
- } else if (expectedType === 'payload') {
16
- return typeof value === 'object' && typeof value.schema === 'string'
17
- } else {
18
- return typeof value === expectedType
19
- }
20
- }
21
-
22
- export const IsInstanceFactory = {
23
- create: <T extends object = object>(shape?: InstanceTypeShape, additionalCheck?: (module: any) => boolean): InstanceTypeCheck<T> => {
24
- return (module: any, log = false): module is T => {
25
- return (
26
- !!module &&
27
- (additionalCheck?.(module) ?? true) &&
28
- Object.entries(shape ?? {}).reduce((prev, [key, type]) => {
29
- const result = isType(module[key], type)
30
- if (!result && log) {
31
- console.warn(`isType Failed: ${key}: ${type}`)
32
- }
33
- return prev && result
34
- }, true)
35
- )
36
- }
37
- },
38
- }
39
-
40
- export const IsModuleFactory = {
41
- create: <T extends Module = Module>(expectedQueries?: string[], additionalCheck?: (module: any) => boolean): ModuleTypeCheck<T> => {
42
- return (module: any): module is T => {
43
- return (
44
- isModule(module) &&
45
- (additionalCheck?.(module) ?? true) &&
46
- (expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true)
47
- )
48
- }
49
- },
50
- }
51
-
52
- export const isModule: ModuleTypeCheck<Module> = IsInstanceFactory.create<Module>({
53
- address: 'string',
54
- config: 'object',
55
- params: 'object',
56
- queries: 'array',
57
- query: 'function',
58
- queryable: 'function',
59
- })
60
-
61
- export const isModuleInstance: InstanceTypeCheck<ModuleInstance> = IsInstanceFactory.create<ModuleInstance>(
62
- {
63
- describe: 'function',
64
- discover: 'function',
65
- manifest: 'function',
66
- },
67
- isModule,
68
- )
File without changes
File without changes