@xyo-network/module-model 2.90.23 → 2.91.1

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 (293) hide show
  1. package/dist/browser/Config.d.cts +4 -4
  2. package/dist/browser/Config.d.cts.map +1 -1
  3. package/dist/browser/Config.d.mts +4 -4
  4. package/dist/browser/Config.d.mts.map +1 -1
  5. package/dist/browser/Config.d.ts +4 -4
  6. package/dist/browser/Config.d.ts.map +1 -1
  7. package/dist/browser/CreatableModule/LabeledCreatableModuleFactory.d.cts +4 -4
  8. package/dist/browser/CreatableModule/LabeledCreatableModuleFactory.d.mts +4 -4
  9. package/dist/browser/CreatableModule/LabeledCreatableModuleFactory.d.ts +4 -4
  10. package/dist/browser/EventsModels/ModuleEventArgs.d.cts.map +1 -1
  11. package/dist/browser/EventsModels/ModuleEventArgs.d.mts.map +1 -1
  12. package/dist/browser/EventsModels/ModuleEventArgs.d.ts.map +1 -1
  13. package/dist/browser/ModuleDescription.d.cts +4 -2
  14. package/dist/browser/ModuleDescription.d.cts.map +1 -1
  15. package/dist/browser/ModuleDescription.d.mts +4 -2
  16. package/dist/browser/ModuleDescription.d.mts.map +1 -1
  17. package/dist/browser/ModuleDescription.d.ts +4 -2
  18. package/dist/browser/ModuleDescription.d.ts.map +1 -1
  19. package/dist/browser/Queries/ModuleAddress/Payload.d.cts +2 -1
  20. package/dist/browser/Queries/ModuleAddress/Payload.d.cts.map +1 -1
  21. package/dist/browser/Queries/ModuleAddress/Payload.d.mts +2 -1
  22. package/dist/browser/Queries/ModuleAddress/Payload.d.mts.map +1 -1
  23. package/dist/browser/Queries/ModuleAddress/Payload.d.ts +2 -1
  24. package/dist/browser/Queries/ModuleAddress/Payload.d.ts.map +1 -1
  25. package/dist/browser/Queries/State.d.cts +5 -0
  26. package/dist/browser/Queries/State.d.cts.map +1 -0
  27. package/dist/browser/Queries/State.d.mts +5 -0
  28. package/dist/browser/Queries/State.d.mts.map +1 -0
  29. package/dist/browser/Queries/State.d.ts +5 -0
  30. package/dist/browser/Queries/State.d.ts.map +1 -0
  31. package/dist/browser/Queries/Subscribe.d.cts +2 -1
  32. package/dist/browser/Queries/Subscribe.d.cts.map +1 -1
  33. package/dist/browser/Queries/Subscribe.d.mts +2 -1
  34. package/dist/browser/Queries/Subscribe.d.mts.map +1 -1
  35. package/dist/browser/Queries/Subscribe.d.ts +2 -1
  36. package/dist/browser/Queries/Subscribe.d.ts.map +1 -1
  37. package/dist/browser/Queries/index.d.cts +3 -3
  38. package/dist/browser/Queries/index.d.cts.map +1 -1
  39. package/dist/browser/Queries/index.d.mts +3 -3
  40. package/dist/browser/Queries/index.d.mts.map +1 -1
  41. package/dist/browser/Queries/index.d.ts +3 -3
  42. package/dist/browser/Queries/index.d.ts.map +1 -1
  43. package/dist/browser/index.cjs +85 -5
  44. package/dist/browser/index.cjs.map +1 -1
  45. package/dist/browser/index.js +85 -5
  46. package/dist/browser/index.js.map +1 -1
  47. package/dist/browser/instance/Instance.d.cts +15 -0
  48. package/dist/browser/instance/Instance.d.cts.map +1 -0
  49. package/dist/browser/instance/Instance.d.mts +15 -0
  50. package/dist/browser/instance/Instance.d.mts.map +1 -0
  51. package/dist/browser/instance/Instance.d.ts +15 -0
  52. package/dist/browser/instance/Instance.d.ts.map +1 -0
  53. package/dist/browser/instance/ModuleFilter.d.cts +133 -0
  54. package/dist/browser/instance/ModuleFilter.d.cts.map +1 -0
  55. package/dist/browser/instance/ModuleFilter.d.mts +133 -0
  56. package/dist/browser/instance/ModuleFilter.d.mts.map +1 -0
  57. package/dist/browser/instance/ModuleFilter.d.ts +133 -0
  58. package/dist/browser/instance/ModuleFilter.d.ts.map +1 -0
  59. package/dist/browser/instance/ModuleIdentifier.d.cts +42 -0
  60. package/dist/browser/instance/ModuleIdentifier.d.cts.map +1 -0
  61. package/dist/browser/instance/ModuleIdentifier.d.mts +42 -0
  62. package/dist/browser/instance/ModuleIdentifier.d.mts.map +1 -0
  63. package/dist/browser/instance/ModuleIdentifier.d.ts +42 -0
  64. package/dist/browser/instance/ModuleIdentifier.d.ts.map +1 -0
  65. package/dist/browser/instance/ModuleRepository.d.cts +8 -7
  66. package/dist/browser/instance/ModuleRepository.d.cts.map +1 -1
  67. package/dist/browser/instance/ModuleRepository.d.mts +8 -7
  68. package/dist/browser/instance/ModuleRepository.d.mts.map +1 -1
  69. package/dist/browser/instance/ModuleRepository.d.ts +8 -7
  70. package/dist/browser/instance/ModuleRepository.d.ts.map +1 -1
  71. package/dist/browser/instance/ModuleResolver.d.cts +50 -0
  72. package/dist/browser/instance/ModuleResolver.d.cts.map +1 -0
  73. package/dist/browser/instance/ModuleResolver.d.mts +50 -0
  74. package/dist/browser/instance/ModuleResolver.d.mts.map +1 -0
  75. package/dist/browser/instance/ModuleResolver.d.ts +50 -0
  76. package/dist/browser/instance/ModuleResolver.d.ts.map +1 -0
  77. package/dist/browser/instance/ObjectFilter.d.cts +26 -0
  78. package/dist/browser/instance/ObjectFilter.d.cts.map +1 -0
  79. package/dist/browser/instance/ObjectFilter.d.mts +26 -0
  80. package/dist/browser/instance/ObjectFilter.d.mts.map +1 -0
  81. package/dist/browser/instance/ObjectFilter.d.ts +26 -0
  82. package/dist/browser/instance/ObjectFilter.d.ts.map +1 -0
  83. package/dist/browser/instance/ObjectResolver.d.cts +15 -0
  84. package/dist/browser/instance/ObjectResolver.d.cts.map +1 -0
  85. package/dist/browser/instance/ObjectResolver.d.mts +15 -0
  86. package/dist/browser/instance/ObjectResolver.d.mts.map +1 -0
  87. package/dist/browser/instance/ObjectResolver.d.ts +15 -0
  88. package/dist/browser/instance/ObjectResolver.d.ts.map +1 -0
  89. package/dist/browser/instance/asModuleInstance.d.cts +10 -10
  90. package/dist/browser/instance/asModuleInstance.d.mts +10 -10
  91. package/dist/browser/instance/asModuleInstance.d.ts +10 -10
  92. package/dist/browser/instance/index.d.cts +6 -1
  93. package/dist/browser/instance/index.d.cts.map +1 -1
  94. package/dist/browser/instance/index.d.mts +6 -1
  95. package/dist/browser/instance/index.d.mts.map +1 -1
  96. package/dist/browser/instance/index.d.ts +6 -1
  97. package/dist/browser/instance/index.d.ts.map +1 -1
  98. package/dist/browser/instance/isModuleInstance.d.cts +1 -1
  99. package/dist/browser/instance/isModuleInstance.d.cts.map +1 -1
  100. package/dist/browser/instance/isModuleInstance.d.mts +1 -1
  101. package/dist/browser/instance/isModuleInstance.d.mts.map +1 -1
  102. package/dist/browser/instance/isModuleInstance.d.ts +1 -1
  103. package/dist/browser/instance/isModuleInstance.d.ts.map +1 -1
  104. package/dist/browser/lib/duplicateModules.d.cts +4 -4
  105. package/dist/browser/lib/duplicateModules.d.mts +4 -4
  106. package/dist/browser/lib/duplicateModules.d.ts +4 -4
  107. package/dist/browser/module/ModuleFields.d.cts +2 -1
  108. package/dist/browser/module/ModuleFields.d.cts.map +1 -1
  109. package/dist/browser/module/ModuleFields.d.mts +2 -1
  110. package/dist/browser/module/ModuleFields.d.mts.map +1 -1
  111. package/dist/browser/module/ModuleFields.d.ts +2 -1
  112. package/dist/browser/module/ModuleFields.d.ts.map +1 -1
  113. package/dist/browser/module/ModuleQueryFunctions.d.cts +1 -0
  114. package/dist/browser/module/ModuleQueryFunctions.d.cts.map +1 -1
  115. package/dist/browser/module/ModuleQueryFunctions.d.mts +1 -0
  116. package/dist/browser/module/ModuleQueryFunctions.d.mts.map +1 -1
  117. package/dist/browser/module/ModuleQueryFunctions.d.ts +1 -0
  118. package/dist/browser/module/ModuleQueryFunctions.d.ts.map +1 -1
  119. package/dist/browser/module/asModule.d.cts +8 -8
  120. package/dist/browser/module/asModule.d.mts +8 -8
  121. package/dist/browser/module/asModule.d.ts +8 -8
  122. package/dist/browser/module/asModuleObject.d.cts +8 -8
  123. package/dist/browser/module/asModuleObject.d.mts +8 -8
  124. package/dist/browser/module/asModuleObject.d.ts +8 -8
  125. package/dist/browser/module/isModuleObject.d.cts +4 -4
  126. package/dist/browser/module/isModuleObject.d.mts +4 -4
  127. package/dist/browser/module/isModuleObject.d.ts +4 -4
  128. package/dist/browser/withModule.d.cts +8 -8
  129. package/dist/browser/withModule.d.mts +8 -8
  130. package/dist/browser/withModule.d.ts +8 -8
  131. package/dist/node/Config.d.cts +4 -4
  132. package/dist/node/Config.d.cts.map +1 -1
  133. package/dist/node/Config.d.mts +4 -4
  134. package/dist/node/Config.d.mts.map +1 -1
  135. package/dist/node/Config.d.ts +4 -4
  136. package/dist/node/Config.d.ts.map +1 -1
  137. package/dist/node/CreatableModule/LabeledCreatableModuleFactory.d.cts +4 -4
  138. package/dist/node/CreatableModule/LabeledCreatableModuleFactory.d.mts +4 -4
  139. package/dist/node/CreatableModule/LabeledCreatableModuleFactory.d.ts +4 -4
  140. package/dist/node/EventsModels/ModuleEventArgs.d.cts.map +1 -1
  141. package/dist/node/EventsModels/ModuleEventArgs.d.mts.map +1 -1
  142. package/dist/node/EventsModels/ModuleEventArgs.d.ts.map +1 -1
  143. package/dist/node/ModuleDescription.d.cts +4 -2
  144. package/dist/node/ModuleDescription.d.cts.map +1 -1
  145. package/dist/node/ModuleDescription.d.mts +4 -2
  146. package/dist/node/ModuleDescription.d.mts.map +1 -1
  147. package/dist/node/ModuleDescription.d.ts +4 -2
  148. package/dist/node/ModuleDescription.d.ts.map +1 -1
  149. package/dist/node/Queries/ModuleAddress/Payload.d.cts +2 -1
  150. package/dist/node/Queries/ModuleAddress/Payload.d.cts.map +1 -1
  151. package/dist/node/Queries/ModuleAddress/Payload.d.mts +2 -1
  152. package/dist/node/Queries/ModuleAddress/Payload.d.mts.map +1 -1
  153. package/dist/node/Queries/ModuleAddress/Payload.d.ts +2 -1
  154. package/dist/node/Queries/ModuleAddress/Payload.d.ts.map +1 -1
  155. package/dist/node/Queries/State.d.cts +5 -0
  156. package/dist/node/Queries/State.d.cts.map +1 -0
  157. package/dist/node/Queries/State.d.mts +5 -0
  158. package/dist/node/Queries/State.d.mts.map +1 -0
  159. package/dist/node/Queries/State.d.ts +5 -0
  160. package/dist/node/Queries/State.d.ts.map +1 -0
  161. package/dist/node/Queries/Subscribe.d.cts +2 -1
  162. package/dist/node/Queries/Subscribe.d.cts.map +1 -1
  163. package/dist/node/Queries/Subscribe.d.mts +2 -1
  164. package/dist/node/Queries/Subscribe.d.mts.map +1 -1
  165. package/dist/node/Queries/Subscribe.d.ts +2 -1
  166. package/dist/node/Queries/Subscribe.d.ts.map +1 -1
  167. package/dist/node/Queries/index.d.cts +3 -3
  168. package/dist/node/Queries/index.d.cts.map +1 -1
  169. package/dist/node/Queries/index.d.mts +3 -3
  170. package/dist/node/Queries/index.d.mts.map +1 -1
  171. package/dist/node/Queries/index.d.ts +3 -3
  172. package/dist/node/Queries/index.d.ts.map +1 -1
  173. package/dist/node/index.cjs +98 -5
  174. package/dist/node/index.cjs.map +1 -1
  175. package/dist/node/index.js +85 -5
  176. package/dist/node/index.js.map +1 -1
  177. package/dist/node/instance/Instance.d.cts +15 -0
  178. package/dist/node/instance/Instance.d.cts.map +1 -0
  179. package/dist/node/instance/Instance.d.mts +15 -0
  180. package/dist/node/instance/Instance.d.mts.map +1 -0
  181. package/dist/node/instance/Instance.d.ts +15 -0
  182. package/dist/node/instance/Instance.d.ts.map +1 -0
  183. package/dist/node/instance/ModuleFilter.d.cts +133 -0
  184. package/dist/node/instance/ModuleFilter.d.cts.map +1 -0
  185. package/dist/node/instance/ModuleFilter.d.mts +133 -0
  186. package/dist/node/instance/ModuleFilter.d.mts.map +1 -0
  187. package/dist/node/instance/ModuleFilter.d.ts +133 -0
  188. package/dist/node/instance/ModuleFilter.d.ts.map +1 -0
  189. package/dist/node/instance/ModuleIdentifier.d.cts +42 -0
  190. package/dist/node/instance/ModuleIdentifier.d.cts.map +1 -0
  191. package/dist/node/instance/ModuleIdentifier.d.mts +42 -0
  192. package/dist/node/instance/ModuleIdentifier.d.mts.map +1 -0
  193. package/dist/node/instance/ModuleIdentifier.d.ts +42 -0
  194. package/dist/node/instance/ModuleIdentifier.d.ts.map +1 -0
  195. package/dist/node/instance/ModuleRepository.d.cts +8 -7
  196. package/dist/node/instance/ModuleRepository.d.cts.map +1 -1
  197. package/dist/node/instance/ModuleRepository.d.mts +8 -7
  198. package/dist/node/instance/ModuleRepository.d.mts.map +1 -1
  199. package/dist/node/instance/ModuleRepository.d.ts +8 -7
  200. package/dist/node/instance/ModuleRepository.d.ts.map +1 -1
  201. package/dist/node/instance/ModuleResolver.d.cts +50 -0
  202. package/dist/node/instance/ModuleResolver.d.cts.map +1 -0
  203. package/dist/node/instance/ModuleResolver.d.mts +50 -0
  204. package/dist/node/instance/ModuleResolver.d.mts.map +1 -0
  205. package/dist/node/instance/ModuleResolver.d.ts +50 -0
  206. package/dist/node/instance/ModuleResolver.d.ts.map +1 -0
  207. package/dist/node/instance/ObjectFilter.d.cts +26 -0
  208. package/dist/node/instance/ObjectFilter.d.cts.map +1 -0
  209. package/dist/node/instance/ObjectFilter.d.mts +26 -0
  210. package/dist/node/instance/ObjectFilter.d.mts.map +1 -0
  211. package/dist/node/instance/ObjectFilter.d.ts +26 -0
  212. package/dist/node/instance/ObjectFilter.d.ts.map +1 -0
  213. package/dist/node/instance/ObjectResolver.d.cts +15 -0
  214. package/dist/node/instance/ObjectResolver.d.cts.map +1 -0
  215. package/dist/node/instance/ObjectResolver.d.mts +15 -0
  216. package/dist/node/instance/ObjectResolver.d.mts.map +1 -0
  217. package/dist/node/instance/ObjectResolver.d.ts +15 -0
  218. package/dist/node/instance/ObjectResolver.d.ts.map +1 -0
  219. package/dist/node/instance/asModuleInstance.d.cts +10 -10
  220. package/dist/node/instance/asModuleInstance.d.mts +10 -10
  221. package/dist/node/instance/asModuleInstance.d.ts +10 -10
  222. package/dist/node/instance/index.d.cts +6 -1
  223. package/dist/node/instance/index.d.cts.map +1 -1
  224. package/dist/node/instance/index.d.mts +6 -1
  225. package/dist/node/instance/index.d.mts.map +1 -1
  226. package/dist/node/instance/index.d.ts +6 -1
  227. package/dist/node/instance/index.d.ts.map +1 -1
  228. package/dist/node/instance/isModuleInstance.d.cts +1 -1
  229. package/dist/node/instance/isModuleInstance.d.cts.map +1 -1
  230. package/dist/node/instance/isModuleInstance.d.mts +1 -1
  231. package/dist/node/instance/isModuleInstance.d.mts.map +1 -1
  232. package/dist/node/instance/isModuleInstance.d.ts +1 -1
  233. package/dist/node/instance/isModuleInstance.d.ts.map +1 -1
  234. package/dist/node/lib/duplicateModules.d.cts +4 -4
  235. package/dist/node/lib/duplicateModules.d.mts +4 -4
  236. package/dist/node/lib/duplicateModules.d.ts +4 -4
  237. package/dist/node/module/ModuleFields.d.cts +2 -1
  238. package/dist/node/module/ModuleFields.d.cts.map +1 -1
  239. package/dist/node/module/ModuleFields.d.mts +2 -1
  240. package/dist/node/module/ModuleFields.d.mts.map +1 -1
  241. package/dist/node/module/ModuleFields.d.ts +2 -1
  242. package/dist/node/module/ModuleFields.d.ts.map +1 -1
  243. package/dist/node/module/ModuleQueryFunctions.d.cts +1 -0
  244. package/dist/node/module/ModuleQueryFunctions.d.cts.map +1 -1
  245. package/dist/node/module/ModuleQueryFunctions.d.mts +1 -0
  246. package/dist/node/module/ModuleQueryFunctions.d.mts.map +1 -1
  247. package/dist/node/module/ModuleQueryFunctions.d.ts +1 -0
  248. package/dist/node/module/ModuleQueryFunctions.d.ts.map +1 -1
  249. package/dist/node/module/asModule.d.cts +8 -8
  250. package/dist/node/module/asModule.d.mts +8 -8
  251. package/dist/node/module/asModule.d.ts +8 -8
  252. package/dist/node/module/asModuleObject.d.cts +8 -8
  253. package/dist/node/module/asModuleObject.d.mts +8 -8
  254. package/dist/node/module/asModuleObject.d.ts +8 -8
  255. package/dist/node/module/isModuleObject.d.cts +4 -4
  256. package/dist/node/module/isModuleObject.d.mts +4 -4
  257. package/dist/node/module/isModuleObject.d.ts +4 -4
  258. package/dist/node/withModule.d.cts +8 -8
  259. package/dist/node/withModule.d.mts +8 -8
  260. package/dist/node/withModule.d.ts +8 -8
  261. package/package.json +16 -16
  262. package/src/Config.ts +4 -4
  263. package/src/CreatableModule/ModuleFactoryLocator.ts +2 -2
  264. package/src/EventsModels/ModuleEventArgs.ts +3 -2
  265. package/src/ModuleDescription.ts +5 -2
  266. package/src/Queries/ModuleAddress/Payload.ts +2 -1
  267. package/src/Queries/State.ts +6 -0
  268. package/src/Queries/Subscribe.ts +2 -1
  269. package/src/Queries/index.ts +9 -5
  270. package/src/instance/Instance.ts +26 -0
  271. package/src/instance/ModuleFilter.ts +30 -0
  272. package/src/instance/ModuleIdentifier.ts +65 -0
  273. package/src/instance/ModuleRepository.ts +9 -7
  274. package/src/instance/ModuleResolver.ts +11 -0
  275. package/src/instance/ObjectFilter.ts +41 -0
  276. package/src/instance/ObjectResolver.ts +23 -0
  277. package/src/instance/index.ts +6 -1
  278. package/src/instance/isModuleInstance.ts +1 -1
  279. package/src/module/ModuleFields.ts +2 -1
  280. package/src/module/ModuleQueryFunctions.ts +1 -0
  281. package/dist/browser/instance/ModuleInstance.d.cts +0 -42
  282. package/dist/browser/instance/ModuleInstance.d.cts.map +0 -1
  283. package/dist/browser/instance/ModuleInstance.d.mts +0 -42
  284. package/dist/browser/instance/ModuleInstance.d.mts.map +0 -1
  285. package/dist/browser/instance/ModuleInstance.d.ts +0 -42
  286. package/dist/browser/instance/ModuleInstance.d.ts.map +0 -1
  287. package/dist/node/instance/ModuleInstance.d.cts +0 -42
  288. package/dist/node/instance/ModuleInstance.d.cts.map +0 -1
  289. package/dist/node/instance/ModuleInstance.d.mts +0 -42
  290. package/dist/node/instance/ModuleInstance.d.mts.map +0 -1
  291. package/dist/node/instance/ModuleInstance.d.ts +0 -42
  292. package/dist/node/instance/ModuleInstance.d.ts.map +0 -1
  293. package/src/instance/ModuleInstance.ts +0 -73
@@ -15,8 +15,8 @@ export declare const withModule: <R>(module: any, closure: (module: import("./mo
15
15
  schema: "network.xyo.module.config";
16
16
  readonly security?: {
17
17
  readonly allowAnonymous?: boolean | undefined;
18
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
19
- readonly disallowed?: Record<string, string[]> | undefined;
18
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
19
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
20
20
  } | undefined;
21
21
  readonly sign?: boolean | undefined;
22
22
  readonly storeQueries?: boolean | undefined;
@@ -32,8 +32,8 @@ export declare const withModule: <R>(module: any, closure: (module: import("./mo
32
32
  schema: "network.xyo.module.config";
33
33
  readonly security?: {
34
34
  readonly allowAnonymous?: boolean | undefined;
35
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
36
- readonly disallowed?: Record<string, string[]> | undefined;
35
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
36
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
37
37
  } | undefined;
38
38
  readonly sign?: boolean | undefined;
39
39
  readonly storeQueries?: boolean | undefined;
@@ -56,8 +56,8 @@ export declare const withModuleInstance: <R>(module: any, closure: (module: impo
56
56
  schema: "network.xyo.module.config";
57
57
  readonly security?: {
58
58
  readonly allowAnonymous?: boolean | undefined;
59
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
60
- readonly disallowed?: Record<string, string[]> | undefined;
59
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
60
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
61
61
  } | undefined;
62
62
  readonly sign?: boolean | undefined;
63
63
  readonly storeQueries?: boolean | undefined;
@@ -73,8 +73,8 @@ export declare const withModuleInstance: <R>(module: any, closure: (module: impo
73
73
  schema: "network.xyo.module.config";
74
74
  readonly security?: {
75
75
  readonly allowAnonymous?: boolean | undefined;
76
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
77
- readonly disallowed?: Record<string, string[]> | undefined;
76
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
77
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
78
78
  } | undefined;
79
79
  readonly sign?: boolean | undefined;
80
80
  readonly storeQueries?: boolean | undefined;
@@ -15,8 +15,8 @@ export declare const withModule: <R>(module: any, closure: (module: import("./mo
15
15
  schema: "network.xyo.module.config";
16
16
  readonly security?: {
17
17
  readonly allowAnonymous?: boolean | undefined;
18
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
19
- readonly disallowed?: Record<string, string[]> | undefined;
18
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
19
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
20
20
  } | undefined;
21
21
  readonly sign?: boolean | undefined;
22
22
  readonly storeQueries?: boolean | undefined;
@@ -32,8 +32,8 @@ export declare const withModule: <R>(module: any, closure: (module: import("./mo
32
32
  schema: "network.xyo.module.config";
33
33
  readonly security?: {
34
34
  readonly allowAnonymous?: boolean | undefined;
35
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
36
- readonly disallowed?: Record<string, string[]> | undefined;
35
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
36
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
37
37
  } | undefined;
38
38
  readonly sign?: boolean | undefined;
39
39
  readonly storeQueries?: boolean | undefined;
@@ -56,8 +56,8 @@ export declare const withModuleInstance: <R>(module: any, closure: (module: impo
56
56
  schema: "network.xyo.module.config";
57
57
  readonly security?: {
58
58
  readonly allowAnonymous?: boolean | undefined;
59
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
60
- readonly disallowed?: Record<string, string[]> | undefined;
59
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
60
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
61
61
  } | undefined;
62
62
  readonly sign?: boolean | undefined;
63
63
  readonly storeQueries?: boolean | undefined;
@@ -73,8 +73,8 @@ export declare const withModuleInstance: <R>(module: any, closure: (module: impo
73
73
  schema: "network.xyo.module.config";
74
74
  readonly security?: {
75
75
  readonly allowAnonymous?: boolean | undefined;
76
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
77
- readonly disallowed?: Record<string, string[]> | undefined;
76
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
77
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
78
78
  } | undefined;
79
79
  readonly sign?: boolean | undefined;
80
80
  readonly storeQueries?: boolean | undefined;
@@ -15,8 +15,8 @@ export declare const withModule: <R>(module: any, closure: (module: import("./mo
15
15
  schema: "network.xyo.module.config";
16
16
  readonly security?: {
17
17
  readonly allowAnonymous?: boolean | undefined;
18
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
19
- readonly disallowed?: Record<string, string[]> | undefined;
18
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
19
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
20
20
  } | undefined;
21
21
  readonly sign?: boolean | undefined;
22
22
  readonly storeQueries?: boolean | undefined;
@@ -32,8 +32,8 @@ export declare const withModule: <R>(module: any, closure: (module: import("./mo
32
32
  schema: "network.xyo.module.config";
33
33
  readonly security?: {
34
34
  readonly allowAnonymous?: boolean | undefined;
35
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
36
- readonly disallowed?: Record<string, string[]> | undefined;
35
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
36
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
37
37
  } | undefined;
38
38
  readonly sign?: boolean | undefined;
39
39
  readonly storeQueries?: boolean | undefined;
@@ -56,8 +56,8 @@ export declare const withModuleInstance: <R>(module: any, closure: (module: impo
56
56
  schema: "network.xyo.module.config";
57
57
  readonly security?: {
58
58
  readonly allowAnonymous?: boolean | undefined;
59
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
60
- readonly disallowed?: Record<string, string[]> | undefined;
59
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
60
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
61
61
  } | undefined;
62
62
  readonly sign?: boolean | undefined;
63
63
  readonly storeQueries?: boolean | undefined;
@@ -73,8 +73,8 @@ export declare const withModuleInstance: <R>(module: any, closure: (module: impo
73
73
  schema: "network.xyo.module.config";
74
74
  readonly security?: {
75
75
  readonly allowAnonymous?: boolean | undefined;
76
- readonly allowed?: Record<string, (string | import("./Config").CosigningAddressSet)[]> | undefined;
77
- readonly disallowed?: Record<string, string[]> | undefined;
76
+ readonly allowed?: Record<string, (Lowercase<string> | import("./Config").CosigningAddressSet)[]> | undefined;
77
+ readonly disallowed?: Record<string, Lowercase<string>[]> | undefined;
78
78
  } | undefined;
79
79
  readonly sign?: boolean | undefined;
80
80
  readonly storeQueries?: boolean | undefined;
package/package.json CHANGED
@@ -10,23 +10,23 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^2.14.3",
14
- "@xylabs/hex": "^2.14.3",
15
- "@xylabs/lodash": "^2.14.3",
16
- "@xylabs/logger": "^2.14.3",
17
- "@xylabs/object": "^2.89.3",
18
- "@xylabs/promise": "^2.14.3",
19
- "@xylabs/retry": "^2.14.3",
20
- "@xyo-network/account-model": "~2.90.23",
21
- "@xyo-network/address-payload-plugin": "~2.90.23",
22
- "@xyo-network/boundwitness-model": "~2.90.23",
23
- "@xyo-network/manifest-model": "~2.90.23",
24
- "@xyo-network/module-events": "~2.90.23",
25
- "@xyo-network/payload-model": "~2.90.23"
13
+ "@xylabs/assert": "^3.0.2",
14
+ "@xylabs/hex": "^3.0.2",
15
+ "@xylabs/lodash": "^3.0.2",
16
+ "@xylabs/logger": "^3.0.2",
17
+ "@xylabs/object": "^3.0.2",
18
+ "@xylabs/promise": "^3.0.2",
19
+ "@xylabs/retry": "^3.0.2",
20
+ "@xyo-network/account-model": "~2.91.1",
21
+ "@xyo-network/address-payload-plugin": "~2.91.1",
22
+ "@xyo-network/boundwitness-model": "~2.91.1",
23
+ "@xyo-network/manifest-model": "~2.91.1",
24
+ "@xyo-network/module-events": "~2.91.1",
25
+ "@xyo-network/payload-model": "~2.91.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@xylabs/ts-scripts-yarn3": "^3.2.42",
29
- "@xylabs/tsconfig": "^3.2.42",
28
+ "@xylabs/ts-scripts-yarn3": "^3.4.1",
29
+ "@xylabs/tsconfig": "^3.4.1",
30
30
  "typescript": "^5.3.3"
31
31
  },
32
32
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -68,6 +68,6 @@
68
68
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
69
69
  },
70
70
  "sideEffects": false,
71
- "version": "2.90.23",
71
+ "version": "2.91.1",
72
72
  "type": "module"
73
73
  }
package/src/Config.ts CHANGED
@@ -3,6 +3,7 @@ import { EmptyObject, WithAdditional } from '@xylabs/object'
3
3
  import { RetryConfig } from '@xylabs/retry'
4
4
  import { Payload, Schema } from '@xyo-network/payload-model'
5
5
 
6
+ import { ModuleIdentifier, ModuleName } from './instance'
6
7
  import { Labels } from './Labels'
7
8
 
8
9
  export type ModuleConfigSchema = 'network.xyo.module.config'
@@ -10,12 +11,11 @@ export const ModuleConfigSchema: ModuleConfigSchema = 'network.xyo.module.config
10
11
 
11
12
  export type CosigningAddressSet = string[]
12
13
  export type SchemaString = string
13
- export type ModuleName = string
14
14
  export type NameOrAddress = Address | ModuleName
15
15
 
16
16
  export interface ArchivingModuleConfig {
17
17
  readonly archiving?: {
18
- readonly archivists?: NameOrAddress[]
18
+ readonly archivists?: ModuleIdentifier[]
19
19
  }
20
20
  }
21
21
 
@@ -23,7 +23,7 @@ export type ModuleConfig<TConfig extends EmptyObject | Payload | void = void, TS
23
23
  WithAdditional<
24
24
  {
25
25
  /** @field The name/address of the Archivist to use for this module */
26
- readonly archivist?: NameOrAddress
26
+ readonly archivist?: ModuleIdentifier
27
27
 
28
28
  /**
29
29
  * @field The labels used for this module. If a label is specified, then the
@@ -33,7 +33,7 @@ export type ModuleConfig<TConfig extends EmptyObject | Payload | void = void, TS
33
33
  readonly labels?: Labels
34
34
 
35
35
  /** @field Friendly name of module (not collision resistent). Can be used to resolve module when registered/attached to Node. */
36
- readonly name?: string
36
+ readonly name?: ModuleName
37
37
 
38
38
  /** @field paging settings for queries */
39
39
  readonly paging?: Record<string, { size?: number }>
@@ -75,8 +75,8 @@ export class ModuleFactoryLocator {
75
75
  */
76
76
  tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined {
77
77
  // If labels were provided
78
- return labels
79
- ? // Find the first factory that has labels and has all the labels provided
78
+ return labels ?
79
+ // Find the first factory that has labels and has all the labels provided
80
80
  this._registry[schema]?.filter(hasLabels).find((factory) => hasAllLabels(factory?.labels, labels))
81
81
  : // Otherwise, return the first factory
82
82
  this._registry[schema]?.[0]
@@ -1,7 +1,8 @@
1
1
  import { EventArgs } from '@xyo-network/module-events'
2
2
 
3
- export type ModuleEventArgs<TModule extends object = object, TArgs extends EventArgs | undefined = undefined> = TArgs extends EventArgs
4
- ? {
3
+ export type ModuleEventArgs<TModule extends object = object, TArgs extends EventArgs | undefined = undefined> =
4
+ TArgs extends EventArgs ?
5
+ {
5
6
  module: TModule
6
7
  } & TArgs
7
8
  : {
@@ -1,6 +1,9 @@
1
+ import { Address } from '@xylabs/hex'
2
+
3
+ import { ModuleName } from './instance'
1
4
  export interface ModuleDescription {
2
- address: string
5
+ address: Address
3
6
  children?: string[]
4
- name?: string
7
+ name?: ModuleName
5
8
  queries: string[]
6
9
  }
@@ -1,3 +1,4 @@
1
+ import { Address } from '@xylabs/hex'
1
2
  import { AddressSchema } from '@xyo-network/address-payload-plugin'
2
3
  import { Payload } from '@xyo-network/payload-model'
3
4
 
@@ -5,7 +6,7 @@ export const AddressPreviousHashSchema = `${AddressSchema}.hash.previous`
5
6
  export type AddressPreviousHashSchema = typeof AddressPreviousHashSchema
6
7
 
7
8
  export type AddressPreviousHashPayload = Payload<{
8
- address: string
9
+ address: Address
9
10
  previousHash?: string
10
11
  schema: AddressPreviousHashSchema
11
12
  }>
@@ -0,0 +1,6 @@
1
+ import { Query } from '@xyo-network/payload-model'
2
+
3
+ export const ModuleStateQuerySchema = 'network.xyo.query.module.state'
4
+ export type ModuleStateQuerySchema = typeof ModuleStateQuerySchema
5
+
6
+ export type ModuleStateQuery = Query<void, ModuleStateQuerySchema>
@@ -1,3 +1,4 @@
1
+ import { Address } from '@xylabs/hex'
1
2
  import { Query } from '@xyo-network/payload-model'
2
3
 
3
4
  export type ModuleSubscribeQuerySchema = 'network.xyo.query.module.subscribe'
@@ -11,7 +12,7 @@ export interface ModuleSubscribeFilter {
11
12
  //requests notification when a boundwitness is added to the modules chain that meets the filter criteria
12
13
  export type ModuleSubscribeQuery = Query<{
13
14
  /** @field The address that will receive notifications */
14
- address: string
15
+ address: Address
15
16
  /** @field A subscribe with a null for filter is an unsubscribe */
16
17
  filter?: ModuleSubscribeFilter | null
17
18
  /** @field The maximum events queued per send [may increase frequency] */
@@ -1,17 +1,21 @@
1
- import { Query } from '@xyo-network/payload-model'
2
-
3
1
  import { ModuleDescribeQuery } from './Describe'
4
2
  import { ModuleDiscoverQuery } from './Discover'
5
3
  import { ModuleManifestQuery } from './Manifest'
6
4
  import { ModuleAddressQuery } from './ModuleAddress'
5
+ import { ModuleStateQuery } from './State'
7
6
  import { ModuleSubscribeQuery } from './Subscribe'
8
7
 
9
8
  export * from './Describe'
10
9
  export * from './Discover'
11
10
  export * from './Manifest'
12
11
  export * from './ModuleAddress'
12
+ export * from './State'
13
13
  export * from './Subscribe'
14
14
 
15
- export type ModuleQueryBase = ModuleDiscoverQuery | ModuleAddressQuery | ModuleSubscribeQuery | ModuleDescribeQuery | ModuleManifestQuery
16
-
17
- export type ModuleQuery<T extends Query | void = void> = T extends Query ? ModuleQueryBase | T : ModuleQueryBase
15
+ export type ModuleQueries =
16
+ | ModuleDiscoverQuery
17
+ | ModuleAddressQuery
18
+ | ModuleSubscribeQuery
19
+ | ModuleDescribeQuery
20
+ | ModuleManifestQuery
21
+ | ModuleStateQuery
@@ -0,0 +1,26 @@
1
+ import { IsObjectFactory, TypeCheck } from '@xylabs/object'
2
+
3
+ import { ModuleEventData } from '../EventsModels'
4
+ import { Module, ModuleQueryFunctions } from '../module'
5
+ import { ModuleParams } from '../ModuleParams'
6
+ import { ObjectResolver, ObjectResolverInstance } from './ObjectResolver'
7
+
8
+ export type ModulePipeLine = Lowercase<'one-to-one' | 'one-to-many' | 'many-to-one' | 'many-to-many'>
9
+
10
+ export interface ModuleInstance<TParams extends ModuleParams = ModuleParams, TEventData extends ModuleEventData = ModuleEventData>
11
+ extends Module<TParams, TEventData>,
12
+ ObjectResolver<ModuleInstance>,
13
+ ModuleQueryFunctions {
14
+ /* 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*/
15
+ readonly downResolver: Omit<ObjectResolverInstance<ModuleInstance>, 'resolve'>
16
+
17
+ readonly pipeline?: ModulePipeLine
18
+
19
+ /* The resolver is a 'up' resolver. It can resolve the parent or any children of the parent*/
20
+ /* This is set by a NodeModule when attaching to the module */
21
+ readonly upResolver: Omit<ObjectResolverInstance<ModuleInstance>, 'resolve'>
22
+ }
23
+
24
+ export type InstanceTypeCheck<T extends ModuleInstance = ModuleInstance> = TypeCheck<T>
25
+
26
+ export class IsInstanceFactory<T extends ModuleInstance = ModuleInstance> extends IsObjectFactory<T> {}
@@ -0,0 +1,30 @@
1
+ import { ModuleInstance } from './Instance'
2
+ import {
3
+ AddressObjectFilter,
4
+ AnyObjectFilter,
5
+ isAddressObjectFilter,
6
+ isNameObjectFilter,
7
+ isQueryObjectFilter,
8
+ NameObjectFilter,
9
+ ObjectFilter,
10
+ ObjectFilterOptions,
11
+ QueryObjectFilter,
12
+ } from './ObjectFilter'
13
+
14
+ export interface ModuleFilterOptions<T extends ModuleInstance = ModuleInstance> extends ObjectFilterOptions<T> {}
15
+
16
+ export const isAddressModuleFilter = isAddressObjectFilter<ModuleInstance>
17
+
18
+ export const isNameModuleFilter = isNameObjectFilter<ModuleInstance>
19
+
20
+ export const isQueryModuleFilter = isQueryObjectFilter<ModuleInstance>
21
+
22
+ export type AnyModuleFilter<T extends ModuleInstance = ModuleInstance> = AnyObjectFilter<T>
23
+
24
+ export type AddressModuleFilter<T extends ModuleInstance = ModuleInstance> = AddressObjectFilter<T>
25
+
26
+ export type NameModuleFilter<T extends ModuleInstance = ModuleInstance> = NameObjectFilter<T>
27
+
28
+ export type QueryModuleFilter<T extends ModuleInstance = ModuleInstance> = QueryObjectFilter<T>
29
+
30
+ export type ModuleFilter<T extends ModuleInstance = ModuleInstance> = ObjectFilter<T>
@@ -0,0 +1,65 @@
1
+ import { Address, isAddress } from '@xylabs/hex'
2
+
3
+ export const DisallowedModuleIdentifierCharacters = {
4
+ ' ': true,
5
+ '!': true,
6
+ '"': true,
7
+ '#': true,
8
+ $: true,
9
+ '%': true,
10
+ '&': true,
11
+ "'": true,
12
+ '(': true,
13
+ ')': true,
14
+ '*': true,
15
+ ',': true,
16
+ '.': true,
17
+ '/': true,
18
+ ':': true,
19
+ ';': true,
20
+ '<': true,
21
+ '=': true,
22
+ '>': true,
23
+ '?': true,
24
+ '@': true,
25
+ '[': true,
26
+ ']': true,
27
+ '^': true,
28
+ _: true,
29
+ '{': true,
30
+ '|': true,
31
+ '}': true,
32
+ '~': true,
33
+ }
34
+ export type ReservedModuleIdentifierCharacter = keyof typeof DisallowedModuleIdentifierCharacters
35
+ export const ReservedModuleIdentifierCharacters = new Set<ReservedModuleIdentifierCharacter>(
36
+ Object.keys(DisallowedModuleIdentifierCharacters) as ReservedModuleIdentifierCharacter[],
37
+ )
38
+
39
+ //using Exclude to make this type not allowed to take a naked string
40
+ export type ModuleName = Exclude<string, 'reserved-module-name-56487634'>
41
+
42
+ export type ModuleIdentifier =
43
+ | ColonPair<ModuleIdentifierPart>
44
+ | ColonPair<ColonPair<ModuleIdentifierPart>>
45
+ | ColonPair<ColonPair<ColonPair<ModuleIdentifierPart>>>
46
+ | ColonPair<ColonPair<ColonPair<ColonPair<ModuleIdentifierPart>>>>
47
+ | ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ModuleIdentifierPart>>>>>
48
+ | ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ModuleIdentifierPart>>>>>>
49
+ | ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ModuleIdentifierPart>>>>>>>
50
+
51
+ export type ColonPair<T extends string> = `${T}:${T}` | T
52
+
53
+ export type ModuleIdentifierPart = Address | ModuleName
54
+
55
+ export const isModuleName = (value: unknown): value is ModuleName => {
56
+ return typeof value === 'string' && !isAddress(value) && !includesReservedModuleIdentifierCharacter(value)
57
+ }
58
+
59
+ export const includesReservedModuleIdentifierCharacter = (value: unknown): boolean => {
60
+ return typeof value === 'string' && [...value].some((char) => ReservedModuleIdentifierCharacters.has(char as ReservedModuleIdentifierCharacter))
61
+ }
62
+
63
+ export const isModuleIdentifierPart = (value: unknown): value is ModuleIdentifierPart => {
64
+ return isModuleName(value) || isAddress(value)
65
+ }
@@ -1,10 +1,12 @@
1
- import { Module } from '../module'
2
- import { ModuleResolverInstance } from './ModuleInstance'
1
+ import { Address } from '@xylabs/hex'
3
2
 
4
- export interface ModuleRepository extends ModuleResolverInstance {
5
- add(module: Module): this
6
- add(module: Module[]): this
7
- add(module: Module | Module[]): this
3
+ import { ModuleInstance } from './Instance'
4
+ import { ModuleResolverInstance } from './ModuleResolver'
8
5
 
9
- remove(address: string | string[]): this
6
+ export interface ModuleRepository<T extends ModuleInstance = ModuleInstance> extends ModuleResolverInstance<T> {
7
+ add(module: T): this
8
+ add(module: T[]): this
9
+ add(module: T | T[]): this
10
+
11
+ remove(address: Address | string[]): this
10
12
  }
@@ -0,0 +1,11 @@
1
+ import { ModuleInstance } from './Instance'
2
+ import { isObjectResolver, ObjectResolver } from './ObjectResolver'
3
+
4
+ export const isModuleResolver = isObjectResolver<ModuleInstance>
5
+
6
+ export interface ModuleResolver<TResult extends ModuleInstance = ModuleInstance> extends ObjectResolver<TResult> {}
7
+
8
+ export interface ModuleResolverInstance<TResult extends ModuleInstance = ModuleInstance> extends ModuleResolver<TResult> {
9
+ addResolver: (resolver: ModuleResolverInstance<TResult>) => this
10
+ removeResolver: (resolver: ModuleResolverInstance<TResult>) => this
11
+ }
@@ -0,0 +1,41 @@
1
+ import { Address } from '@xylabs/hex'
2
+ import { AnyObject, EmptyObject, TypeCheck } from '@xylabs/object'
3
+
4
+ import { ModuleName } from './ModuleIdentifier'
5
+
6
+ export type Direction = 'up' | 'down' | 'all'
7
+ export type Visibility = 'public' | 'private' | 'all'
8
+
9
+ export interface ObjectFilterOptions<T extends EmptyObject = AnyObject> {
10
+ direction?: Direction
11
+ identity?: TypeCheck<T>
12
+ maxDepth?: number
13
+ visibility?: Visibility
14
+ }
15
+
16
+ export interface AddressObjectFilter<T extends EmptyObject = AnyObject> extends ObjectFilterOptions<T> {
17
+ address: Address[]
18
+ }
19
+
20
+ export const isAddressObjectFilter = <T extends EmptyObject = AnyObject>(value: unknown): value is AddressObjectFilter<T> =>
21
+ (value as AddressObjectFilter<T>).address !== undefined
22
+
23
+ export interface NameObjectFilter<T extends EmptyObject = AnyObject> extends ObjectFilterOptions<T> {
24
+ name: ModuleName[]
25
+ }
26
+
27
+ export const isNameObjectFilter = <T extends EmptyObject = AnyObject>(value: unknown): value is NameObjectFilter<T> =>
28
+ (value as NameObjectFilter<T>).name !== undefined
29
+
30
+ export interface QueryObjectFilter<T extends EmptyObject = AnyObject> extends ObjectFilterOptions<T> {
31
+ query: string[][]
32
+ }
33
+
34
+ export const isQueryObjectFilter = <T extends EmptyObject = AnyObject>(value: unknown): value is QueryObjectFilter<T> =>
35
+ (value as QueryObjectFilter<T>).query !== undefined
36
+
37
+ export type AnyObjectFilter<T extends EmptyObject = AnyObject> = Partial<AddressObjectFilter<T>> &
38
+ Partial<NameObjectFilter<T>> &
39
+ Partial<QueryObjectFilter<T>>
40
+
41
+ export type ObjectFilter<T extends EmptyObject> = ObjectFilterOptions<T> | AddressObjectFilter<T> | NameObjectFilter<T> | QueryObjectFilter<T>
@@ -0,0 +1,23 @@
1
+ import { AnyObject, EmptyObject } from '@xylabs/object'
2
+ import { Promisable } from '@xylabs/promise'
3
+
4
+ import { ModuleIdentifier } from './ModuleIdentifier'
5
+ import { ObjectFilter, ObjectFilterOptions } from './ObjectFilter'
6
+
7
+ export const isObjectResolver = <T extends EmptyObject = AnyObject>(value?: unknown): value is ObjectResolver<T> => {
8
+ return typeof (value as Partial<ObjectResolver<T>>).resolve === 'function'
9
+ }
10
+
11
+ export interface ObjectResolver<TResult extends EmptyObject> {
12
+ resolve<T extends TResult = TResult>(filter?: ObjectFilter<T>, options?: ObjectFilterOptions<T>): Promisable<T[]>
13
+ resolve<T extends TResult = TResult>(nameOrAddress: ModuleIdentifier, options?: ObjectFilterOptions<T>): Promisable<T | undefined>
14
+ resolve<T extends TResult = TResult>(
15
+ nameOrAddressOrFilter?: ObjectFilter<T> | ModuleIdentifier,
16
+ options?: ObjectFilterOptions<T>,
17
+ ): Promisable<T | T[] | undefined>
18
+ }
19
+
20
+ export interface ObjectResolverInstance<TResult extends EmptyObject> extends ObjectResolver<TResult> {
21
+ addResolver: (resolver: ObjectResolverInstance<TResult>) => this
22
+ removeResolver: (resolver: ObjectResolverInstance<TResult>) => this
23
+ }
@@ -1,4 +1,9 @@
1
1
  export * from './asModuleInstance'
2
+ export * from './Instance'
2
3
  export * from './isModuleInstance'
3
- export * from './ModuleInstance'
4
+ export * from './ModuleFilter'
5
+ export * from './ModuleIdentifier'
4
6
  export * from './ModuleRepository'
7
+ export * from './ModuleResolver'
8
+ export * from './ObjectFilter'
9
+ export * from './ObjectResolver'
@@ -1,7 +1,7 @@
1
1
  import { IsObjectFactory, ObjectTypeShape, TypeCheck } from '@xylabs/object'
2
2
 
3
3
  import { isModule } from '../module'
4
- import { ModuleInstance } from './ModuleInstance'
4
+ import { ModuleInstance } from './Instance'
5
5
 
6
6
  export const requiredModuleInstanceFunctions: ObjectTypeShape = {
7
7
  describe: 'function',
@@ -1,3 +1,4 @@
1
+ import { Address } from '@xylabs/hex'
1
2
  import { Promisable } from '@xylabs/promise'
2
3
  import { QueryBoundWitness } from '@xyo-network/boundwitness-model'
3
4
  import { Payload } from '@xyo-network/payload-model'
@@ -7,7 +8,7 @@ import { ModuleParams } from '../ModuleParams'
7
8
  import { ModuleQueryResult } from '../ModuleQueryResult'
8
9
 
9
10
  export type ModuleFields<TParams extends ModuleParams = ModuleParams> = {
10
- address: string
11
+ address: Address
11
12
  config: TParams['config']
12
13
 
13
14
  /** The name (if specified) or address of the module */
@@ -10,4 +10,5 @@ export type ModuleQueryFunctions = {
10
10
  discover: () => Promisable<Payload[]>
11
11
  manifest: (maxDepth?: number, ignoreAddresses?: string[]) => Promisable<ModuleManifestPayload>
12
12
  moduleAddress: () => Promisable<AddressPreviousHashPayload[]>
13
+ state: () => Promisable<Payload[]>
13
14
  }
@@ -1,42 +0,0 @@
1
- import { IsObjectFactory, TypeCheck } from '@xylabs/object';
2
- import { Promisable } from '@xylabs/promise';
3
- import { ModuleEventData } from '../EventsModels';
4
- import { Module, ModuleQueryFunctions } from '../module';
5
- import { ModuleParams } from '../ModuleParams';
6
- export type ModulePipeLine = 'one-to-one' | 'one-to-many' | 'many-to-one' | 'many-to-many';
7
- export declare const isModuleResolver: (value?: unknown) => value is ModuleResolver;
8
- export interface ModuleResolver {
9
- resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promisable<T[]>;
10
- resolve<T extends ModuleInstance = ModuleInstance>(nameOrAddress: string, options?: ModuleFilterOptions<T>): Promisable<T | undefined>;
11
- resolve<T extends ModuleInstance = ModuleInstance>(nameOrAddressOrFilter?: ModuleFilter<T> | string, options?: ModuleFilterOptions<T>): Promisable<T | T[] | undefined>;
12
- }
13
- export interface ModuleResolverInstance extends ModuleResolver {
14
- addResolver: (resolver: ModuleResolverInstance) => this;
15
- removeResolver: (resolver: ModuleResolverInstance) => this;
16
- }
17
- export interface ModuleInstance<TParams extends ModuleParams = ModuleParams, TEventData extends ModuleEventData = ModuleEventData> extends Module<TParams, TEventData>, ModuleResolver, ModuleQueryFunctions {
18
- readonly downResolver: Omit<ModuleResolverInstance, 'resolve'>;
19
- readonly pipeline?: ModulePipeLine;
20
- readonly upResolver: Omit<ModuleResolverInstance, 'resolve'>;
21
- }
22
- export type InstanceTypeCheck<T extends ModuleInstance = ModuleInstance> = TypeCheck<T>;
23
- export declare class IsInstanceFactory<T extends ModuleInstance = ModuleInstance> extends IsObjectFactory<T> {
24
- }
25
- export interface ModuleFilterOptions<T extends ModuleInstance = ModuleInstance> {
26
- direction?: 'up' | 'down' | 'all';
27
- identity?: InstanceTypeCheck<T>;
28
- maxDepth?: number;
29
- visibility?: 'public' | 'private' | 'all';
30
- }
31
- export interface AddressModuleFilter<T extends ModuleInstance = ModuleInstance> extends ModuleFilterOptions<T> {
32
- address: string[];
33
- }
34
- export interface NameModuleFilter<T extends ModuleInstance = ModuleInstance> extends ModuleFilterOptions<T> {
35
- name: string[];
36
- }
37
- export interface QueryModuleFilter<T extends ModuleInstance = ModuleInstance> extends ModuleFilterOptions<T> {
38
- query: string[][];
39
- }
40
- export type AnyModuleFilter<T extends ModuleInstance = ModuleInstance> = Partial<AddressModuleFilter<T>> & Partial<NameModuleFilter<T>> & Partial<QueryModuleFilter<T>>;
41
- export type ModuleFilter<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions<T> | AddressModuleFilter<T> | NameModuleFilter<T> | QueryModuleFilter<T>;
42
- //# sourceMappingURL=ModuleInstance.d.ts.map