@xyo-network/sdk 7.4.1 → 8.0.0

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 (353) hide show
  1. package/dist/neutral/api-location-diviner.mjs +1 -1
  2. package/dist/neutral/api-location-diviner.mjs.map +2 -2
  3. package/dist/neutral/archivist-abstract.mjs +34 -28
  4. package/dist/neutral/archivist-abstract.mjs.map +2 -2
  5. package/dist/neutral/archivist-generic.mjs +5 -3
  6. package/dist/neutral/archivist-generic.mjs.map +2 -2
  7. package/dist/neutral/archivist-memory.mjs +6 -5
  8. package/dist/neutral/archivist-memory.mjs.map +2 -2
  9. package/dist/neutral/archivist-model.mjs +14 -7
  10. package/dist/neutral/archivist-model.mjs.map +2 -2
  11. package/dist/neutral/archivist-view.mjs +5 -3
  12. package/dist/neutral/archivist-view.mjs.map +2 -2
  13. package/dist/neutral/archivist-wrapper.mjs +22 -4
  14. package/dist/neutral/archivist-wrapper.mjs.map +2 -2
  15. package/dist/neutral/boundwitness-loader.mjs +13 -7
  16. package/dist/neutral/boundwitness-loader.mjs.map +2 -2
  17. package/dist/neutral/bridge-abstract.mjs +43 -29
  18. package/dist/neutral/bridge-abstract.mjs.map +2 -2
  19. package/dist/neutral/bridge-http.mjs +23 -20
  20. package/dist/neutral/bridge-http.mjs.map +2 -2
  21. package/dist/neutral/bridge-model.mjs +4 -2
  22. package/dist/neutral/bridge-model.mjs.map +2 -2
  23. package/dist/neutral/bridge-wrapper.mjs +22 -5
  24. package/dist/neutral/bridge-wrapper.mjs.map +2 -2
  25. package/dist/neutral/bridge.mjs.map +2 -2
  26. package/dist/neutral/diviner-abstract.mjs +4 -3
  27. package/dist/neutral/diviner-abstract.mjs.map +2 -2
  28. package/dist/neutral/diviner-boundwitness.memory.mjs +4 -5
  29. package/dist/neutral/diviner-boundwitness.memory.mjs.map +2 -2
  30. package/dist/neutral/diviner-boundwitness.mjs +4 -5
  31. package/dist/neutral/diviner-boundwitness.mjs.map +2 -2
  32. package/dist/neutral/diviner-model.mjs +4 -2
  33. package/dist/neutral/diviner-model.mjs.map +2 -2
  34. package/dist/neutral/diviner-payload-generic.mjs +13 -16
  35. package/dist/neutral/diviner-payload-generic.mjs.map +2 -2
  36. package/dist/neutral/diviner-wrapper.mjs +22 -4
  37. package/dist/neutral/diviner-wrapper.mjs.map +2 -2
  38. package/dist/neutral/manifest-wrapper.mjs +4 -2
  39. package/dist/neutral/manifest-wrapper.mjs.map +2 -2
  40. package/dist/neutral/module-abstract.mjs +100 -106
  41. package/dist/neutral/module-abstract.mjs.map +3 -3
  42. package/dist/neutral/module-factory-locator.mjs +4 -2
  43. package/dist/neutral/module-factory-locator.mjs.map +2 -2
  44. package/dist/neutral/module-model.mjs +18 -1
  45. package/dist/neutral/module-model.mjs.map +2 -2
  46. package/dist/neutral/module-resolver.mjs +88 -81
  47. package/dist/neutral/module-resolver.mjs.map +3 -3
  48. package/dist/neutral/module-wrapper.mjs +18 -10
  49. package/dist/neutral/module-wrapper.mjs.map +2 -2
  50. package/dist/neutral/modules/api-location-diviner/LocationDiviner/LocationDivinerApi.d.ts +5 -3
  51. package/dist/neutral/modules/api-location-diviner/LocationDiviner/LocationDivinerApi.d.ts.map +1 -1
  52. package/dist/neutral/modules/api-location-diviner/LocationDiviner/Queries/LocationQueryCreationRequest.d.ts +7 -3
  53. package/dist/neutral/modules/api-location-diviner/LocationDiviner/Queries/LocationQueryCreationRequest.d.ts.map +1 -1
  54. package/dist/neutral/modules/api-location-diviner/RemoteDivinerConfig.d.ts +1 -2
  55. package/dist/neutral/modules/api-location-diviner/RemoteDivinerConfig.d.ts.map +1 -1
  56. package/dist/neutral/modules/archivist-abstract/AbstractArchivist.d.ts.map +1 -1
  57. package/dist/neutral/modules/archivist-abstract/payloadAdmission.d.ts.map +1 -1
  58. package/dist/neutral/modules/archivist-generic/Archivist.d.ts.map +1 -1
  59. package/dist/neutral/modules/archivist-memory/MemoryDriver.d.ts.map +1 -1
  60. package/dist/neutral/modules/archivist-model/lib/getBoundWitness.d.ts.map +1 -1
  61. package/dist/neutral/modules/archivist-model/lib/hydrateBoundWitness.d.ts.map +1 -1
  62. package/dist/neutral/modules/archivist-model/typeChecks.d.ts.map +1 -1
  63. package/dist/neutral/modules/archivist-view/ViewArchivist.d.ts.map +1 -1
  64. package/dist/neutral/modules/archivist-wrapper/ArchivistWrapper.d.ts.map +1 -1
  65. package/dist/neutral/modules/boundwitness-loader/Loader.d.ts.map +1 -1
  66. package/dist/neutral/modules/bridge/index.d.ts +3 -0
  67. package/dist/neutral/modules/bridge/index.d.ts.map +1 -1
  68. package/dist/neutral/modules/bridge/model.d.ts +1 -0
  69. package/dist/neutral/modules/bridge/model.d.ts.map +1 -1
  70. package/dist/neutral/modules/bridge/wrapper.d.ts +1 -0
  71. package/dist/neutral/modules/bridge/wrapper.d.ts.map +1 -1
  72. package/dist/neutral/modules/bridge-abstract/AbstractBridge.d.ts +1 -0
  73. package/dist/neutral/modules/bridge-abstract/AbstractBridge.d.ts.map +1 -1
  74. package/dist/neutral/modules/bridge-abstract/AbstractBridgeModuleResolver.d.ts +2 -0
  75. package/dist/neutral/modules/bridge-abstract/AbstractBridgeModuleResolver.d.ts.map +1 -1
  76. package/dist/neutral/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.d.ts +2 -0
  77. package/dist/neutral/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.d.ts.map +1 -1
  78. package/dist/neutral/modules/bridge-abstract/AbstractModuleProxy/ModuleProxyResolver.d.ts +2 -0
  79. package/dist/neutral/modules/bridge-abstract/AbstractModuleProxy/ModuleProxyResolver.d.ts.map +1 -1
  80. package/dist/neutral/modules/bridge-abstract/index.d.ts +4 -0
  81. package/dist/neutral/modules/bridge-abstract/index.d.ts.map +1 -1
  82. package/dist/neutral/modules/bridge-abstract/wrapModuleWithType.d.ts +1 -0
  83. package/dist/neutral/modules/bridge-abstract/wrapModuleWithType.d.ts.map +1 -1
  84. package/dist/neutral/modules/bridge-http/HttpBridge.d.ts +2 -0
  85. package/dist/neutral/modules/bridge-http/HttpBridge.d.ts.map +1 -1
  86. package/dist/neutral/modules/bridge-http/HttpBridgeConfig.d.ts +8 -0
  87. package/dist/neutral/modules/bridge-http/HttpBridgeConfig.d.ts.map +1 -1
  88. package/dist/neutral/modules/bridge-http/HttpBridgeModuleResolver.d.ts +4 -2
  89. package/dist/neutral/modules/bridge-http/HttpBridgeModuleResolver.d.ts.map +1 -1
  90. package/dist/neutral/modules/bridge-http/ModuleProxy/ModuleProxy.d.ts +3 -0
  91. package/dist/neutral/modules/bridge-http/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  92. package/dist/neutral/modules/bridge-http/ModuleProxy/index.d.ts +1 -0
  93. package/dist/neutral/modules/bridge-http/ModuleProxy/index.d.ts.map +1 -1
  94. package/dist/neutral/modules/bridge-http/index.d.ts +2 -0
  95. package/dist/neutral/modules/bridge-http/index.d.ts.map +1 -1
  96. package/dist/neutral/modules/bridge-model/Config.d.ts +10 -0
  97. package/dist/neutral/modules/bridge-model/Config.d.ts.map +1 -1
  98. package/dist/neutral/modules/bridge-model/EventData.d.ts +1 -0
  99. package/dist/neutral/modules/bridge-model/EventData.d.ts.map +1 -1
  100. package/dist/neutral/modules/bridge-model/Events/Exposed.d.ts +2 -0
  101. package/dist/neutral/modules/bridge-model/Events/Exposed.d.ts.map +1 -1
  102. package/dist/neutral/modules/bridge-model/Events/QueryFulfillFinished.d.ts +2 -0
  103. package/dist/neutral/modules/bridge-model/Events/QueryFulfillFinished.d.ts.map +1 -1
  104. package/dist/neutral/modules/bridge-model/Events/QueryFulfillStarted.d.ts +2 -0
  105. package/dist/neutral/modules/bridge-model/Events/QueryFulfillStarted.d.ts.map +1 -1
  106. package/dist/neutral/modules/bridge-model/Events/QuerySendFinished.d.ts +2 -0
  107. package/dist/neutral/modules/bridge-model/Events/QuerySendFinished.d.ts.map +1 -1
  108. package/dist/neutral/modules/bridge-model/Events/QuerySendStarted.d.ts +2 -0
  109. package/dist/neutral/modules/bridge-model/Events/QuerySendStarted.d.ts.map +1 -1
  110. package/dist/neutral/modules/bridge-model/Events/Unexposed.d.ts +2 -0
  111. package/dist/neutral/modules/bridge-model/Events/Unexposed.d.ts.map +1 -1
  112. package/dist/neutral/modules/bridge-model/Instance.d.ts +1 -0
  113. package/dist/neutral/modules/bridge-model/Instance.d.ts.map +1 -1
  114. package/dist/neutral/modules/bridge-model/Module.d.ts +1 -0
  115. package/dist/neutral/modules/bridge-model/Module.d.ts.map +1 -1
  116. package/dist/neutral/modules/bridge-model/Params.d.ts +1 -0
  117. package/dist/neutral/modules/bridge-model/Params.d.ts.map +1 -1
  118. package/dist/neutral/modules/bridge-model/Queries/Connect.d.ts +7 -0
  119. package/dist/neutral/modules/bridge-model/Queries/Connect.d.ts.map +1 -1
  120. package/dist/neutral/modules/bridge-model/Queries/Disconnect.d.ts +7 -0
  121. package/dist/neutral/modules/bridge-model/Queries/Disconnect.d.ts.map +1 -1
  122. package/dist/neutral/modules/bridge-model/Queries/Expose.d.ts +15 -0
  123. package/dist/neutral/modules/bridge-model/Queries/Expose.d.ts.map +1 -1
  124. package/dist/neutral/modules/bridge-model/Queries/Unexpose.d.ts +8 -0
  125. package/dist/neutral/modules/bridge-model/Queries/Unexpose.d.ts.map +1 -1
  126. package/dist/neutral/modules/bridge-model/Queries/index.d.ts +2 -0
  127. package/dist/neutral/modules/bridge-model/Queries/index.d.ts.map +1 -1
  128. package/dist/neutral/modules/bridge-model/QueryFunctions.d.ts +1 -0
  129. package/dist/neutral/modules/bridge-model/QueryFunctions.d.ts.map +1 -1
  130. package/dist/neutral/modules/bridge-model/RawQueryFunctions.d.ts +1 -0
  131. package/dist/neutral/modules/bridge-model/RawQueryFunctions.d.ts.map +1 -1
  132. package/dist/neutral/modules/bridge-model/attachable/AttachableInstance.d.ts +3 -0
  133. package/dist/neutral/modules/bridge-model/attachable/AttachableInstance.d.ts.map +1 -1
  134. package/dist/neutral/modules/bridge-model/attachable/asAttachableInstance.d.ts +1 -0
  135. package/dist/neutral/modules/bridge-model/attachable/asAttachableInstance.d.ts.map +1 -1
  136. package/dist/neutral/modules/bridge-model/attachable/isAttachableInstance.d.ts +2 -0
  137. package/dist/neutral/modules/bridge-model/attachable/isAttachableInstance.d.ts.map +1 -1
  138. package/dist/neutral/modules/bridge-model/index.d.ts +1 -0
  139. package/dist/neutral/modules/bridge-model/index.d.ts.map +1 -1
  140. package/dist/neutral/modules/bridge-model/typeChecks.d.ts +12 -2
  141. package/dist/neutral/modules/bridge-model/typeChecks.d.ts.map +1 -1
  142. package/dist/neutral/modules/bridge-wrapper/BridgeWrapper.d.ts +1 -0
  143. package/dist/neutral/modules/bridge-wrapper/BridgeWrapper.d.ts.map +1 -1
  144. package/dist/neutral/modules/bridge-wrapper/index.d.ts +1 -0
  145. package/dist/neutral/modules/bridge-wrapper/index.d.ts.map +1 -1
  146. package/dist/neutral/modules/diviner-abstract/AbstractDiviner.d.ts.map +1 -1
  147. package/dist/neutral/modules/diviner-boundwitness/MemoryBoundWitnessDiviner.d.ts.map +1 -1
  148. package/dist/neutral/modules/diviner-model/typeChecks.d.ts.map +1 -1
  149. package/dist/neutral/modules/diviner-payload-generic/Diviner.d.ts.map +1 -1
  150. package/dist/neutral/modules/diviner-wrapper/DivinerWrapper.d.ts.map +1 -1
  151. package/dist/neutral/modules/manifest-wrapper/Wrapper.d.ts.map +1 -1
  152. package/dist/neutral/modules/manifest-wrapper/WrapperEx.d.ts.map +1 -1
  153. package/dist/neutral/modules/module-abstract/AbstractModule.d.ts +1 -4
  154. package/dist/neutral/modules/module-abstract/AbstractModule.d.ts.map +1 -1
  155. package/dist/neutral/modules/module-abstract/AbstractModuleInstance.d.ts.map +1 -1
  156. package/dist/neutral/modules/module-abstract/Error.d.ts +1 -4
  157. package/dist/neutral/modules/module-abstract/Error.d.ts.map +1 -1
  158. package/dist/neutral/modules/module-abstract/QueryValidator/ModuleConfigQueryValidator.d.ts.map +1 -1
  159. package/dist/neutral/modules/module-factory-locator/ModuleFactoryLocator.d.ts.map +1 -1
  160. package/dist/neutral/modules/module-factory-locator/standardCreatableFactories.d.ts.map +1 -1
  161. package/dist/neutral/modules/module-model/QueryableModule/IsQueryableModuleFactory.d.ts.map +1 -1
  162. package/dist/neutral/modules/module-resolver/CompositeModuleResolver.d.ts.map +1 -1
  163. package/dist/neutral/modules/module-resolver/ResolveHelper/ResolveHelper.d.ts.map +1 -1
  164. package/dist/neutral/modules/module-resolver/ResolveHelper/resolveAll.d.ts.map +1 -1
  165. package/dist/neutral/modules/module-resolver/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -1
  166. package/dist/neutral/modules/module-resolver/ResolveHelper/resolvePathToAddress.d.ts.map +1 -1
  167. package/dist/neutral/modules/module-resolver/SimpleModuleResolver.d.ts.map +1 -1
  168. package/dist/neutral/modules/module-wrapper/ModuleWrapper.d.ts +7 -1
  169. package/dist/neutral/modules/module-wrapper/ModuleWrapper.d.ts.map +1 -1
  170. package/dist/neutral/modules/modules/index.d.ts +1 -0
  171. package/dist/neutral/modules/modules/index.d.ts.map +1 -1
  172. package/dist/neutral/modules/node-abstract/AbstractNode.d.ts.map +1 -1
  173. package/dist/neutral/modules/node-memory/MemoryNode.d.ts.map +1 -1
  174. package/dist/neutral/modules/node-memory/NodeHelper/attachToExistingNode.d.ts.map +1 -1
  175. package/dist/neutral/modules/node-memory/NodeHelper/flatAttachToExistingNode.d.ts.map +1 -1
  176. package/dist/neutral/modules/node-model/typeChecks.d.ts.map +1 -1
  177. package/dist/neutral/modules/node-view/ViewNode.d.ts.map +1 -1
  178. package/dist/neutral/modules/node-wrapper/NodeWrapper.d.ts.map +1 -1
  179. package/dist/neutral/modules/payloadset-plugin/Resolver.d.ts.map +1 -1
  180. package/dist/neutral/modules/sentinel-abstract/AbstractSentinel.d.ts.map +1 -1
  181. package/dist/neutral/modules/sentinel-memory/MemorySentinel.d.ts.map +1 -1
  182. package/dist/neutral/modules/sentinel-memory/SentinelRunner.d.ts.map +1 -1
  183. package/dist/neutral/modules/sentinel-model/typeChecks.d.ts.map +1 -1
  184. package/dist/neutral/modules/sentinel-wrapper/Wrapper.d.ts.map +1 -1
  185. package/dist/neutral/modules/witness-abstract/AbstractWitness.d.ts.map +1 -1
  186. package/dist/neutral/modules/witness-model/typeChecks.d.ts.map +1 -1
  187. package/dist/neutral/modules/witness-wrapper/WitnessWrapper.d.ts.map +1 -1
  188. package/dist/neutral/modules.mjs.map +2 -2
  189. package/dist/neutral/node-abstract.mjs +22 -10
  190. package/dist/neutral/node-abstract.mjs.map +2 -2
  191. package/dist/neutral/node-memory.mjs +14 -13
  192. package/dist/neutral/node-memory.mjs.map +2 -2
  193. package/dist/neutral/node-model.mjs +2 -1
  194. package/dist/neutral/node-model.mjs.map +2 -2
  195. package/dist/neutral/node-view.mjs +13 -11
  196. package/dist/neutral/node-view.mjs.map +2 -2
  197. package/dist/neutral/node-wrapper.mjs +35 -11
  198. package/dist/neutral/node-wrapper.mjs.map +2 -2
  199. package/dist/neutral/payloadset-plugin.mjs +11 -10
  200. package/dist/neutral/payloadset-plugin.mjs.map +2 -2
  201. package/dist/neutral/sentinel-abstract.mjs +7 -6
  202. package/dist/neutral/sentinel-abstract.mjs.map +2 -2
  203. package/dist/neutral/sentinel-memory.mjs +28 -22
  204. package/dist/neutral/sentinel-memory.mjs.map +2 -2
  205. package/dist/neutral/sentinel-model.mjs +4 -2
  206. package/dist/neutral/sentinel-model.mjs.map +2 -2
  207. package/dist/neutral/sentinel-wrapper.mjs +22 -4
  208. package/dist/neutral/sentinel-wrapper.mjs.map +2 -2
  209. package/dist/neutral/witness-abstract.mjs +4 -3
  210. package/dist/neutral/witness-abstract.mjs.map +2 -2
  211. package/dist/neutral/witness-model.mjs +4 -2
  212. package/dist/neutral/witness-model.mjs.map +2 -2
  213. package/dist/neutral/witness-wrapper.mjs +22 -4
  214. package/dist/neutral/witness-wrapper.mjs.map +2 -2
  215. package/dist/node/modules/api-location-diviner/LocationDiviner/LocationDivinerApi.d.ts +5 -3
  216. package/dist/node/modules/api-location-diviner/LocationDiviner/LocationDivinerApi.d.ts.map +1 -1
  217. package/dist/node/modules/api-location-diviner/LocationDiviner/Queries/LocationQueryCreationRequest.d.ts +7 -3
  218. package/dist/node/modules/api-location-diviner/LocationDiviner/Queries/LocationQueryCreationRequest.d.ts.map +1 -1
  219. package/dist/node/modules/api-location-diviner/RemoteDivinerConfig.d.ts +1 -2
  220. package/dist/node/modules/api-location-diviner/RemoteDivinerConfig.d.ts.map +1 -1
  221. package/dist/node/modules/archivist-abstract/AbstractArchivist.d.ts.map +1 -1
  222. package/dist/node/modules/archivist-abstract/payloadAdmission.d.ts.map +1 -1
  223. package/dist/node/modules/archivist-generic/Archivist.d.ts.map +1 -1
  224. package/dist/node/modules/archivist-memory/MemoryDriver.d.ts.map +1 -1
  225. package/dist/node/modules/archivist-model/lib/getBoundWitness.d.ts.map +1 -1
  226. package/dist/node/modules/archivist-model/lib/hydrateBoundWitness.d.ts.map +1 -1
  227. package/dist/node/modules/archivist-model/typeChecks.d.ts.map +1 -1
  228. package/dist/node/modules/archivist-view/ViewArchivist.d.ts.map +1 -1
  229. package/dist/node/modules/archivist-wrapper/ArchivistWrapper.d.ts.map +1 -1
  230. package/dist/node/modules/boundwitness-loader/Loader.d.ts.map +1 -1
  231. package/dist/node/modules/bridge/index.d.ts +3 -0
  232. package/dist/node/modules/bridge/index.d.ts.map +1 -1
  233. package/dist/node/modules/bridge/model.d.ts +1 -0
  234. package/dist/node/modules/bridge/model.d.ts.map +1 -1
  235. package/dist/node/modules/bridge/wrapper.d.ts +1 -0
  236. package/dist/node/modules/bridge/wrapper.d.ts.map +1 -1
  237. package/dist/node/modules/bridge-abstract/AbstractBridge.d.ts +1 -0
  238. package/dist/node/modules/bridge-abstract/AbstractBridge.d.ts.map +1 -1
  239. package/dist/node/modules/bridge-abstract/AbstractBridgeModuleResolver.d.ts +2 -0
  240. package/dist/node/modules/bridge-abstract/AbstractBridgeModuleResolver.d.ts.map +1 -1
  241. package/dist/node/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.d.ts +2 -0
  242. package/dist/node/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.d.ts.map +1 -1
  243. package/dist/node/modules/bridge-abstract/AbstractModuleProxy/ModuleProxyResolver.d.ts +2 -0
  244. package/dist/node/modules/bridge-abstract/AbstractModuleProxy/ModuleProxyResolver.d.ts.map +1 -1
  245. package/dist/node/modules/bridge-abstract/index.d.ts +4 -0
  246. package/dist/node/modules/bridge-abstract/index.d.ts.map +1 -1
  247. package/dist/node/modules/bridge-abstract/wrapModuleWithType.d.ts +1 -0
  248. package/dist/node/modules/bridge-abstract/wrapModuleWithType.d.ts.map +1 -1
  249. package/dist/node/modules/bridge-http/HttpBridge.d.ts +2 -0
  250. package/dist/node/modules/bridge-http/HttpBridge.d.ts.map +1 -1
  251. package/dist/node/modules/bridge-http/HttpBridgeConfig.d.ts +8 -0
  252. package/dist/node/modules/bridge-http/HttpBridgeConfig.d.ts.map +1 -1
  253. package/dist/node/modules/bridge-http/HttpBridgeModuleResolver.d.ts +4 -2
  254. package/dist/node/modules/bridge-http/HttpBridgeModuleResolver.d.ts.map +1 -1
  255. package/dist/node/modules/bridge-http/ModuleProxy/ModuleProxy.d.ts +3 -0
  256. package/dist/node/modules/bridge-http/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  257. package/dist/node/modules/bridge-http/ModuleProxy/index.d.ts +1 -0
  258. package/dist/node/modules/bridge-http/ModuleProxy/index.d.ts.map +1 -1
  259. package/dist/node/modules/bridge-http/index.d.ts +2 -0
  260. package/dist/node/modules/bridge-http/index.d.ts.map +1 -1
  261. package/dist/node/modules/bridge-model/Config.d.ts +10 -0
  262. package/dist/node/modules/bridge-model/Config.d.ts.map +1 -1
  263. package/dist/node/modules/bridge-model/EventData.d.ts +1 -0
  264. package/dist/node/modules/bridge-model/EventData.d.ts.map +1 -1
  265. package/dist/node/modules/bridge-model/Events/Exposed.d.ts +2 -0
  266. package/dist/node/modules/bridge-model/Events/Exposed.d.ts.map +1 -1
  267. package/dist/node/modules/bridge-model/Events/QueryFulfillFinished.d.ts +2 -0
  268. package/dist/node/modules/bridge-model/Events/QueryFulfillFinished.d.ts.map +1 -1
  269. package/dist/node/modules/bridge-model/Events/QueryFulfillStarted.d.ts +2 -0
  270. package/dist/node/modules/bridge-model/Events/QueryFulfillStarted.d.ts.map +1 -1
  271. package/dist/node/modules/bridge-model/Events/QuerySendFinished.d.ts +2 -0
  272. package/dist/node/modules/bridge-model/Events/QuerySendFinished.d.ts.map +1 -1
  273. package/dist/node/modules/bridge-model/Events/QuerySendStarted.d.ts +2 -0
  274. package/dist/node/modules/bridge-model/Events/QuerySendStarted.d.ts.map +1 -1
  275. package/dist/node/modules/bridge-model/Events/Unexposed.d.ts +2 -0
  276. package/dist/node/modules/bridge-model/Events/Unexposed.d.ts.map +1 -1
  277. package/dist/node/modules/bridge-model/Instance.d.ts +1 -0
  278. package/dist/node/modules/bridge-model/Instance.d.ts.map +1 -1
  279. package/dist/node/modules/bridge-model/Module.d.ts +1 -0
  280. package/dist/node/modules/bridge-model/Module.d.ts.map +1 -1
  281. package/dist/node/modules/bridge-model/Params.d.ts +1 -0
  282. package/dist/node/modules/bridge-model/Params.d.ts.map +1 -1
  283. package/dist/node/modules/bridge-model/Queries/Connect.d.ts +7 -0
  284. package/dist/node/modules/bridge-model/Queries/Connect.d.ts.map +1 -1
  285. package/dist/node/modules/bridge-model/Queries/Disconnect.d.ts +7 -0
  286. package/dist/node/modules/bridge-model/Queries/Disconnect.d.ts.map +1 -1
  287. package/dist/node/modules/bridge-model/Queries/Expose.d.ts +15 -0
  288. package/dist/node/modules/bridge-model/Queries/Expose.d.ts.map +1 -1
  289. package/dist/node/modules/bridge-model/Queries/Unexpose.d.ts +8 -0
  290. package/dist/node/modules/bridge-model/Queries/Unexpose.d.ts.map +1 -1
  291. package/dist/node/modules/bridge-model/Queries/index.d.ts +2 -0
  292. package/dist/node/modules/bridge-model/Queries/index.d.ts.map +1 -1
  293. package/dist/node/modules/bridge-model/QueryFunctions.d.ts +1 -0
  294. package/dist/node/modules/bridge-model/QueryFunctions.d.ts.map +1 -1
  295. package/dist/node/modules/bridge-model/RawQueryFunctions.d.ts +1 -0
  296. package/dist/node/modules/bridge-model/RawQueryFunctions.d.ts.map +1 -1
  297. package/dist/node/modules/bridge-model/attachable/AttachableInstance.d.ts +3 -0
  298. package/dist/node/modules/bridge-model/attachable/AttachableInstance.d.ts.map +1 -1
  299. package/dist/node/modules/bridge-model/attachable/asAttachableInstance.d.ts +1 -0
  300. package/dist/node/modules/bridge-model/attachable/asAttachableInstance.d.ts.map +1 -1
  301. package/dist/node/modules/bridge-model/attachable/isAttachableInstance.d.ts +2 -0
  302. package/dist/node/modules/bridge-model/attachable/isAttachableInstance.d.ts.map +1 -1
  303. package/dist/node/modules/bridge-model/index.d.ts +1 -0
  304. package/dist/node/modules/bridge-model/index.d.ts.map +1 -1
  305. package/dist/node/modules/bridge-model/typeChecks.d.ts +12 -2
  306. package/dist/node/modules/bridge-model/typeChecks.d.ts.map +1 -1
  307. package/dist/node/modules/bridge-wrapper/BridgeWrapper.d.ts +1 -0
  308. package/dist/node/modules/bridge-wrapper/BridgeWrapper.d.ts.map +1 -1
  309. package/dist/node/modules/bridge-wrapper/index.d.ts +1 -0
  310. package/dist/node/modules/bridge-wrapper/index.d.ts.map +1 -1
  311. package/dist/node/modules/diviner-abstract/AbstractDiviner.d.ts.map +1 -1
  312. package/dist/node/modules/diviner-boundwitness/MemoryBoundWitnessDiviner.d.ts.map +1 -1
  313. package/dist/node/modules/diviner-model/typeChecks.d.ts.map +1 -1
  314. package/dist/node/modules/diviner-payload-generic/Diviner.d.ts.map +1 -1
  315. package/dist/node/modules/diviner-wrapper/DivinerWrapper.d.ts.map +1 -1
  316. package/dist/node/modules/manifest-wrapper/Wrapper.d.ts.map +1 -1
  317. package/dist/node/modules/manifest-wrapper/WrapperEx.d.ts.map +1 -1
  318. package/dist/node/modules/module-abstract/AbstractModule.d.ts +1 -4
  319. package/dist/node/modules/module-abstract/AbstractModule.d.ts.map +1 -1
  320. package/dist/node/modules/module-abstract/AbstractModuleInstance.d.ts.map +1 -1
  321. package/dist/node/modules/module-abstract/Error.d.ts +1 -4
  322. package/dist/node/modules/module-abstract/Error.d.ts.map +1 -1
  323. package/dist/node/modules/module-abstract/QueryValidator/ModuleConfigQueryValidator.d.ts.map +1 -1
  324. package/dist/node/modules/module-factory-locator/ModuleFactoryLocator.d.ts.map +1 -1
  325. package/dist/node/modules/module-factory-locator/standardCreatableFactories.d.ts.map +1 -1
  326. package/dist/node/modules/module-model/QueryableModule/IsQueryableModuleFactory.d.ts.map +1 -1
  327. package/dist/node/modules/module-resolver/CompositeModuleResolver.d.ts.map +1 -1
  328. package/dist/node/modules/module-resolver/ResolveHelper/ResolveHelper.d.ts.map +1 -1
  329. package/dist/node/modules/module-resolver/ResolveHelper/resolveAll.d.ts.map +1 -1
  330. package/dist/node/modules/module-resolver/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -1
  331. package/dist/node/modules/module-resolver/ResolveHelper/resolvePathToAddress.d.ts.map +1 -1
  332. package/dist/node/modules/module-resolver/SimpleModuleResolver.d.ts.map +1 -1
  333. package/dist/node/modules/module-wrapper/ModuleWrapper.d.ts +7 -1
  334. package/dist/node/modules/module-wrapper/ModuleWrapper.d.ts.map +1 -1
  335. package/dist/node/modules/modules/index.d.ts +1 -0
  336. package/dist/node/modules/modules/index.d.ts.map +1 -1
  337. package/dist/node/modules/node-abstract/AbstractNode.d.ts.map +1 -1
  338. package/dist/node/modules/node-memory/MemoryNode.d.ts.map +1 -1
  339. package/dist/node/modules/node-memory/NodeHelper/attachToExistingNode.d.ts.map +1 -1
  340. package/dist/node/modules/node-memory/NodeHelper/flatAttachToExistingNode.d.ts.map +1 -1
  341. package/dist/node/modules/node-model/typeChecks.d.ts.map +1 -1
  342. package/dist/node/modules/node-view/ViewNode.d.ts.map +1 -1
  343. package/dist/node/modules/node-wrapper/NodeWrapper.d.ts.map +1 -1
  344. package/dist/node/modules/payloadset-plugin/Resolver.d.ts.map +1 -1
  345. package/dist/node/modules/sentinel-abstract/AbstractSentinel.d.ts.map +1 -1
  346. package/dist/node/modules/sentinel-memory/MemorySentinel.d.ts.map +1 -1
  347. package/dist/node/modules/sentinel-memory/SentinelRunner.d.ts.map +1 -1
  348. package/dist/node/modules/sentinel-model/typeChecks.d.ts.map +1 -1
  349. package/dist/node/modules/sentinel-wrapper/Wrapper.d.ts.map +1 -1
  350. package/dist/node/modules/witness-abstract/AbstractWitness.d.ts.map +1 -1
  351. package/dist/node/modules/witness-model/typeChecks.d.ts.map +1 -1
  352. package/dist/node/modules/witness-wrapper/WitnessWrapper.d.ts.map +1 -1
  353. package/package.json +13 -13
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/node-abstract/AbstractNode.ts", "../../src/modules/node-abstract/NodeHelper/attachedPrivateModules.ts", "../../src/modules/node-abstract/NodeHelper/attachedPublicModules.ts", "../../src/modules/node-abstract/NodeHelper/index.ts"],
4
- "sourcesContent": ["import type { Promisable } from '@ariestools/sdk'\nimport { assertEx } from '@ariestools/sdk'\nimport type {\n AccountInstance, ModuleManifestPayload, NodeManifestPayload, Payload, QueryBoundWitness, Schema, XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport {\n NodeManifestPayloadSchema, PayloadBuilder, QueryBoundWitnessWrapper,\n} from '@xyo-network/sdk-protocol'\n\nimport { AbstractModuleInstance } from '#module-abstract'\nimport type {\n AddressPayload,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n QueryableModule,\n} from '#module-model'\nimport { AddressSchema } from '#module-model'\nimport type {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n NodeAttachedQuery,\n NodeAttachQuery,\n NodeCertifyQuery,\n NodeDetachQuery,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n} from '#node-model'\nimport {\n ChildCertificationSchema,\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeRegisteredQuerySchema,\n} from '#node-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n QueryableModule<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n static isNode(mod: unknown): boolean {\n return (mod as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<XyoAddress | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = {\n external, id, schema: NodeAttachQuerySchema,\n }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<XyoAddress[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<XyoAddress[]> {\n return [...(await this.attachedPublicModules()).map(mod => mod.address), ...(await this.attachedPrivateModules()).map(mod => mod.address)]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<XyoAddress | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: XyoAddress[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<XyoAddress[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.resolvePrivate('*', { maxDepth }) ?? [])).filter(mod => mod.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n return (await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])).filter(mod => mod.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n // console.log(`childMods: ${toSafeJsonString(childMods)}`)\n const childModAddresses = childMods.map(mod => new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address: mod.address }).build())\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: XyoAddress[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (mod: ModuleInstance) => mod.address !== this.address && !ignoreAddresses.includes(mod.address)\n const toManifest = (mod: ModuleInstance) => mod.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n // eslint-disable-next-line @typescript-eslint/await-thenable\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules = manifest.modules ?? {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n // eslint-disable-next-line max-statements\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig), () => 'Module is not queryable with the provided query')\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const typedQueryPayload = queryPayload as NodeAttachQuery\n const address = await this.attachHandler(typedQueryPayload.id, typedQueryPayload.external)\n if (address) {\n const payload = new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const typedQueryPayload = queryPayload as NodeCertifyQuery\n const fields = await this.certifyHandler(typedQueryPayload.id)\n if (fields) {\n const payload = new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema }).fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const typedQueryPayload = queryPayload as NodeDetachQuery\n const address = await this.detachHandler(typedQueryPayload.id)\n if (address) {\n const payload = new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payload = new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payload = new PayloadBuilder<AddressPayload>({ schema: AddressSchema }).fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<XyoAddress | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<XyoAddress | undefined>\n\n abstract registeredHandler(): Promisable<XyoAddress[]>\n}\n", "import type { ModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\nimport { asNodeInstance } from '#node-model'\n\nexport const attachedPrivateModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.privateChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPrivateModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n", "import type { ModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\nimport { asNodeInstance } from '#node-model'\n\nexport const attachedPublicModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.publicChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPublicModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n", "import type { ModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\n\nimport { attachedPrivateModules } from './attachedPrivateModules.ts'\nimport { attachedPublicModules } from './attachedPublicModules.ts'\n\nexport const NodeHelper: {\n attachedPrivateModules: (node: NodeInstance, maxDepth?: number) => Promise<ModuleInstance[]>\n attachedPublicModules: (node: NodeInstance, maxDepth?: number) => Promise<ModuleInstance[]>\n} = {\n attachedPrivateModules,\n attachedPublicModules,\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { Promisable } from '@ariestools/sdk'\nimport { assertEx } from '@ariestools/sdk'\nimport type {\n AccountInstance, ModuleManifestPayload, NodeManifestPayload, Payload, QueryBoundWitness, Schema, XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport {\n NodeManifestPayloadSchema, PayloadBuilder, QueryBoundWitnessWrapper,\n} from '@xyo-network/sdk-protocol'\n\nimport { AbstractModuleInstance } from '#module-abstract'\nimport type {\n AddressPayload,\n ModuleConfig,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n QueryableModule,\n} from '#module-model'\nimport { AddressSchema } from '#module-model'\nimport type {\n AttachableNodeInstance,\n ChildCertification,\n ChildCertificationFields,\n NodeAttachedQuery,\n NodeAttachQuery,\n NodeCertifyQuery,\n NodeDetachQuery,\n NodeInstance,\n NodeModule,\n NodeModuleEventData,\n NodeParams,\n NodeQueries,\n NodeRegisteredQuery,\n} from '#node-model'\nimport {\n ChildCertificationSchema,\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeConfigSchema,\n NodeDetachQuerySchema,\n NodeRegisteredQuerySchema,\n} from '#node-model'\n\nexport abstract class AbstractNode<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractModuleInstance<TParams, TEventData>\n implements\n AttachableNodeInstance<TParams, TEventData>,\n QueryableModule<TParams, TEventData>,\n NodeInstance<TParams, TEventData>,\n ModuleInstance<TParams, TEventData>,\n NodeModule<TParams, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, NodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = NodeConfigSchema\n\n private readonly isNode = true\n\n override get queries(): Schema[] {\n return [\n NodeAttachQuerySchema,\n NodeCertifyQuerySchema,\n NodeDetachQuerySchema,\n NodeAttachedQuerySchema,\n NodeRegisteredQuerySchema,\n ...super.queries,\n ]\n }\n\n static isNode(mod: unknown): boolean {\n return (mod as AbstractNode).isNode\n }\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<XyoAddress | undefined> {\n this._noOverride('attach')\n return await this.attachHandler(id, external)\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachQuery')\n const queryPayload: NodeAttachQuery = {\n external, id, schema: NodeAttachQuerySchema,\n }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<XyoAddress[]> {\n this._noOverride('attached')\n return await this.attachedHandler()\n }\n\n async attachedHandler(): Promise<XyoAddress[]> {\n const publicMods = await this.attachedPublicModules()\n const privateMods = await this.attachedPrivateModules()\n return [...publicMods.map(mod => mod.address), ...privateMods.map(mod => mod.address)]\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('attachedQuery')\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n this._noOverride('certify')\n return await this.certifyHandler(id)\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<XyoAddress | undefined> {\n this._noOverride('detach')\n return await this.detachHandler(id)\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('detachQuery')\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth = 10, ignoreAddresses: XyoAddress[] = []): Promise<ModuleManifestPayload> {\n return await this.manifestHandler(maxDepth, ignoreAddresses)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPrivateModules()\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return await this.attachedPublicModules()\n }\n\n async registered(): Promise<XyoAddress[]> {\n this._noOverride('registered')\n return await this.registeredHandler()\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n this._noOverride('registeredQuery')\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n protected async attachedPrivateModules(maxDepth = 1): Promise<ModuleInstance[]> {\n const resolved = await (this.resolvePrivate('*', { maxDepth }) ?? [])\n return resolved.filter(mod => mod.address !== this.address)\n }\n\n protected async attachedPublicModules(maxDepth = 1): Promise<ModuleInstance[]> {\n const resolved = await (this.downResolver.resolve('*', { direction: 'down', maxDepth }) ?? [])\n return resolved.filter(mod => mod.address !== this.address)\n }\n\n protected override async generateConfigAndAddress(maxDepth = 10): Promise<Payload[]> {\n const childMods = await this.attachedPublicModules(maxDepth)\n // console.log(`childMods: ${toSafeJsonString(childMods)}`)\n const childModAddresses = childMods.map((mod) => {\n const payloadBuilder = new PayloadBuilder<AddressPayload>({ schema: AddressSchema })\n return payloadBuilder.fields({ address: mod.address }).build()\n })\n\n return [...(await super.generateConfigAndAddress(maxDepth)), ...childModAddresses]\n }\n\n protected override async manifestHandler(maxDepth = 10, ignoreAddresses: XyoAddress[] = []): Promise<ModuleManifestPayload> {\n const cachedResult = this._cachedManifests.get(maxDepth)\n if (cachedResult) {\n return cachedResult\n }\n\n const manifest: NodeManifestPayload = { ...(await super.manifestHandler(maxDepth, ignoreAddresses)), schema: NodeManifestPayloadSchema }\n const newIgnoreAddresses = [...ignoreAddresses, this.address]\n\n const notThisModule = (mod: ModuleInstance) => mod.address !== this.address && !ignoreAddresses.includes(mod.address)\n const toManifest = (mod: ModuleInstance) => mod.manifest(maxDepth - 1, newIgnoreAddresses)\n\n const publicChildren = await this.publicChildren()\n // eslint-disable-next-line @typescript-eslint/await-thenable\n const publicModuleManifests = await Promise.all(publicChildren.filter(notThisModule).map(toManifest))\n if (publicModuleManifests.length > 0) {\n manifest.modules ??= {}\n manifest.modules.public = publicModuleManifests\n }\n\n this._cachedManifests.set(maxDepth, manifest)\n\n return manifest\n }\n\n // eslint-disable-next-line max-statements\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = QueryBoundWitnessWrapper.parseQuery<NodeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig), () => 'Module is not queryable with the provided query')\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case NodeAttachQuerySchema: {\n const typedQueryPayload = queryPayload as NodeAttachQuery\n const address = await this.attachHandler(typedQueryPayload.id, typedQueryPayload.external)\n if (address) {\n const payloadBuilder = new PayloadBuilder<AddressPayload>({ schema: AddressSchema })\n const payload = payloadBuilder.fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeCertifyQuerySchema: {\n const typedQueryPayload = queryPayload as NodeCertifyQuery\n const fields = await this.certifyHandler(typedQueryPayload.id)\n if (fields) {\n const payloadBuilder = new PayloadBuilder<ChildCertification>({ schema: ChildCertificationSchema })\n const payload = payloadBuilder.fields(fields).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeDetachQuerySchema: {\n const typedQueryPayload = queryPayload as NodeDetachQuery\n const address = await this.detachHandler(typedQueryPayload.id)\n if (address) {\n const payloadBuilder = new PayloadBuilder<AddressPayload>({ schema: AddressSchema })\n const payload = payloadBuilder.fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeAttachedQuerySchema: {\n const addresses = await this.attachedHandler()\n for (const address of addresses) {\n const payloadBuilder = new PayloadBuilder<AddressPayload>({ schema: AddressSchema })\n const payload = payloadBuilder.fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n case NodeRegisteredQuerySchema: {\n const addresses = await this.registeredHandler()\n for (const address of addresses) {\n const payloadBuilder = new PayloadBuilder<AddressPayload>({ schema: AddressSchema })\n const payload = payloadBuilder.fields({ address }).build()\n resultPayloads.push(payload)\n }\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract attachHandler(id: ModuleIdentifier, external?: boolean): Promisable<XyoAddress | undefined>\n\n abstract certifyHandler(id: ModuleIdentifier): Promisable<ChildCertificationFields | undefined>\n\n abstract detachHandler(id: ModuleIdentifier): Promisable<XyoAddress | undefined>\n\n abstract registeredHandler(): Promisable<XyoAddress[]>\n}\n", "import type { ModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\nimport { asNodeInstance } from '#node-model'\n\nexport const attachedPrivateModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.privateChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPrivateModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n", "import type { ModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\nimport { asNodeInstance } from '#node-model'\n\nexport const attachedPublicModules = async (node: NodeInstance, maxDepth = 1): Promise<ModuleInstance[]> => {\n const remainingDepth = maxDepth - 1\n const mods: ModuleInstance[] = []\n const publicChildren = await node.publicChildren()\n mods.push(...publicChildren)\n\n if (remainingDepth > 0) {\n await Promise.all(\n publicChildren.map(async (mod) => {\n const node = asNodeInstance(mod)\n if (node) {\n const children = await attachedPublicModules(node, remainingDepth)\n mods.push(...children)\n }\n }),\n )\n }\n return mods\n}\n", "import type { ModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\n\nimport { attachedPrivateModules } from './attachedPrivateModules.ts'\nimport { attachedPublicModules } from './attachedPublicModules.ts'\n\nexport const NodeHelper: {\n attachedPrivateModules: (node: NodeInstance, maxDepth?: number) => Promise<ModuleInstance[]>\n attachedPublicModules: (node: NodeInstance, maxDepth?: number) => Promise<ModuleInstance[]>\n} = {\n attachedPrivateModules,\n attachedPublicModules,\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["node", "asNodeInstance", "node"]
7
7
  }
@@ -35,7 +35,8 @@ var MemoryNode = class extends AbstractNode {
35
35
  );
36
36
  }
37
37
  async certifyHandler(id) {
38
- const child = (await this.publicChildren()).find((child2) => child2.modName === id || child2.address === id);
38
+ const publicChildren = await this.publicChildren();
39
+ const child = publicChildren.find((child2) => child2.modName === id || child2.address === id);
39
40
  if (child) {
40
41
  return {
41
42
  address: child.address,
@@ -56,7 +57,7 @@ var MemoryNode = class extends AbstractNode {
56
57
  }
57
58
  async register(mod) {
58
59
  this.started("warn");
59
- if (this.registeredModuleMap[mod.address]) {
60
+ if (Object.hasOwn(this.registeredModuleMap, mod.address)) {
60
61
  if (this.registeredModuleMap[mod.address] === mod) {
61
62
  this.logger?.warn(`Module already registered at that address[${mod.address}]|${mod.id}|[${mod.config.schema}]`);
62
63
  } else {
@@ -106,7 +107,7 @@ var MemoryNode = class extends AbstractNode {
106
107
  mod.upResolver.addResolver?.(this.privateResolver);
107
108
  mod.upResolver.addResolver?.(this.downResolver);
108
109
  mod.upResolver.addResolver?.(this.upResolver);
109
- if (external) {
110
+ if (external === true) {
110
111
  this._attachedPublicModules.add(mod.address);
111
112
  this.downResolver.addResolver(mod.downResolver);
112
113
  } else {
@@ -116,7 +117,7 @@ var MemoryNode = class extends AbstractNode {
116
117
  mod.addParent(this);
117
118
  const args = { mod, name: mod.modName };
118
119
  await this.emit("moduleAttached", args);
119
- if (isNodeModule(mod) && external) {
120
+ if (external === true && isNodeModule(mod)) {
120
121
  const attachedListener = async (args2) => await this.emit("moduleAttached", args2);
121
122
  const detachedListener = async (args2) => await this.emit("moduleDetached", args2);
122
123
  mod.on("moduleAttached", attachedListener);
@@ -215,7 +216,8 @@ import { asNodeInstance } from "#node-model";
215
216
  import { assertEx as assertEx2, exists as exists2 } from "@ariestools/sdk";
216
217
  import { asAttachableModuleInstance } from "#module-model";
217
218
  var flatAttachAllToExistingNode = async (source, destination) => {
218
- const children = (await source.publicChildren()).map((child) => asAttachableModuleInstance(child)).filter(exists2);
219
+ const publicChildren = await source.publicChildren();
220
+ const children = publicChildren.map((child) => asAttachableModuleInstance(child)).filter(exists2);
219
221
  await Promise.all(
220
222
  children.map(async (child) => {
221
223
  await destination.register?.(child);
@@ -242,15 +244,14 @@ var attachToExistingNode = async (source, id, destination) => {
242
244
  const first = assertEx3(parts.shift(), () => "missing first part");
243
245
  if (parts.length === 0) {
244
246
  return await flatAttachToExistingNode(source, first, destination);
245
- } else {
246
- const firstModule = await source.resolve(first);
247
- const firstNode = asNodeInstance(firstModule, () => "first part is not a node", { required: true });
248
- const newNode = await MemoryNode.create({ config: firstNode.config });
249
- await destination.register?.(newNode);
250
- await destination.attach(newNode.address, true);
251
- await attachToExistingNode(firstNode, parts.join(":"), newNode);
252
- return destination;
253
247
  }
248
+ const firstModule = await source.resolve(first);
249
+ const firstNode = asNodeInstance(firstModule, () => "first part is not a node", { required: true });
250
+ const newNode = await MemoryNode.create({ config: firstNode.config });
251
+ await destination.register?.(newNode);
252
+ await destination.attach(newNode.address, true);
253
+ await attachToExistingNode(firstNode, parts.join(":"), newNode);
254
+ return destination;
254
255
  };
255
256
 
256
257
  // src/modules/node-memory/NodeHelper/attachToNewNode.ts
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/node-memory/MemoryNode.ts", "../../src/modules/node-memory/NodeHelper/index.ts", "../../src/modules/node-memory/NodeHelper/attachToExistingNode.ts", "../../src/modules/node-memory/NodeHelper/flatAttachToExistingNode.ts", "../../src/modules/node-memory/NodeHelper/attachToNewNode.ts", "../../src/modules/node-memory/NodeHelper/flatAttachToNewNode.ts"],
4
- "sourcesContent": ["import type { EventListener, Promisable } from '@ariestools/sdk'\nimport {\n assertEx,\n exists, isAddress, isDefined,\n} from '@ariestools/sdk'\nimport type { XyoAddress, XyoQuantAddress } from '@xyo-network/sdk-protocol'\nimport { Mutex } from 'async-mutex'\n\nimport {\n type AnyConfigSchema,\n type AttachableModuleInstance,\n creatableModule,\n type ModuleIdentifier,\n type ModuleInstance,\n type QueryableModule,\n} from '#module-model'\nimport { AbstractNode } from '#node-abstract'\nimport type {\n ChildCertificationFields,\n NodeConfig, NodeInstanceParams,\n NodeModuleEventData,\n} from '#node-model'\nimport { isNodeModule } from '#node-model'\n\nexport type MemoryNodeParams = NodeInstanceParams<AnyConfigSchema<NodeConfig>>\n\n@creatableModule()\nexport class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractNode<TParams, TEventData> {\n protected registeredModuleMap: Partial<Record<XyoAddress, AttachableModuleInstance>> = {}\n\n private _attachMutex = new Mutex()\n\n private _attachedPrivateModules = new Set<XyoAddress>()\n private _attachedPublicModules = new Set<XyoAddress>()\n\n async attachHandler(id: ModuleIdentifier, external?: boolean): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress> {\n await this.startedAsync('warn', true)\n return assertEx(\n isAddress(id) ? await this.attachUsingAddress(id, external) : await this.attachUsingName(id, external),\n () => `Unable to locate module [${id}]`,\n )\n }\n\n async certifyHandler(id: ModuleIdentifier): Promise<ChildCertificationFields> {\n const child = (await this.publicChildren()).find(child => child.modName === id || child.address === id)\n if (child) {\n return { address: child.address, expiration: Date.now() + 1000 * 60 * 10 /* 10 minutes */ }\n }\n throw new Error(`Unable to certify child module [${id}]`)\n }\n\n async detachHandler(id: ModuleIdentifier): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress | undefined> {\n return isAddress(id) ? await this.detachUsingAddress(id) : await this.detachUsingName(id)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return [...(await this.attachedPrivateModules()), ...this.params.privateChildren ?? []]\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return [...(await this.attachedPublicModules()), ...this.params.publicChildren ?? []]\n }\n\n async register(mod: AttachableModuleInstance): Promise<void> {\n this.started('warn')\n if (this.registeredModuleMap[mod.address]) {\n if (this.registeredModuleMap[mod.address] === mod) {\n this.logger?.warn(`Module already registered at that address[${mod.address}]|${mod.id}|[${mod.config.schema}]`)\n } else {\n throw new Error(`Other module already registered at that address[${mod.address}]|${mod.id}|[${mod.config.schema}]`)\n }\n }\n this.registeredModuleMap[mod.address] = mod\n const args = { mod, name: mod.modName }\n await this.emit('moduleRegistered', args)\n }\n\n registeredHandler(): Promisable<XyoAddress[]> {\n return Promise.resolve(\n (Object.keys(this.registeredModuleMap) as XyoAddress[]).map((key) => {\n return key\n }),\n )\n }\n\n registeredModules(): AttachableModuleInstance[] {\n return Object.values(this.registeredModuleMap).map((value) => {\n return value\n }).filter(exists)\n }\n\n async unregister(mod: ModuleInstance): Promise<ModuleInstance> {\n // try to detach if it is attached\n try {\n await this.detach(mod.address)\n } catch {\n // Detach is best-effort during unregister.\n }\n delete this.registeredModuleMap[mod.address]\n const args = { mod, name: mod.modName }\n await this.emit('moduleUnregistered', args)\n return this\n }\n\n protected async attachUsingAddress(address: XyoAddress, external?: boolean): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress> {\n return await this._attachMutex.runExclusive(async () => {\n const existingModule = await this.resolve(address)\n if (existingModule) {\n this.logger?.warn(`MemoryNode: Module [${existingModule?.modName ?? existingModule?.address}] already attached at address [${address}]`)\n }\n const mod = assertEx(this.registeredModuleMap[address], () => `No Module Registered at address [${address}]`)\n\n if (this._attachedPublicModules.has(mod.address)) {\n this.logger?.warn(`Module [${mod.modName}] already attached at [${address}] (public)`)\n }\n if (this._attachedPrivateModules.has(mod.address)) {\n this.logger?.warn(`Module [${mod.modName}] already attached at [${address}] (private)`)\n }\n\n const notificationList = await this.getModulesToNotifyAbout(mod)\n\n // give it private access\n mod.upResolver.addResolver?.(this.privateResolver)\n\n // give it public access\n mod.upResolver.addResolver?.(this.downResolver)\n\n // give it outside access\n mod.upResolver.addResolver?.(this.upResolver)\n\n if (external) {\n // expose it externally\n this._attachedPublicModules.add(mod.address)\n this.downResolver.addResolver(mod.downResolver)\n } else {\n this._attachedPrivateModules.add(mod.address)\n this.privateResolver.addResolver(mod.downResolver)\n }\n\n mod.addParent(this)\n\n const args = { mod, name: mod.modName }\n await this.emit('moduleAttached', args)\n\n if (isNodeModule(mod) && external) {\n const attachedListener: EventListener<TEventData['moduleAttached']> = async (args: TEventData['moduleAttached']) =>\n await this.emit('moduleAttached', args)\n\n const detachedListener: EventListener<TEventData['moduleDetached']> = async (args: TEventData['moduleDetached']) =>\n await this.emit('moduleDetached', args)\n\n mod.on('moduleAttached', attachedListener as EventListener)\n mod.on('moduleDetached', detachedListener as EventListener)\n }\n\n await this.notifyOfExistingModulesAttached(notificationList)\n\n return address\n })\n }\n\n protected async detachUsingAddress(address: XyoAddress): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress> {\n const mod = assertEx(this.registeredModuleMap[address], () => `No Module Registered at address [${address}]`)\n\n const isAttachedPublic = this._attachedPublicModules.has(mod.address)\n const isAttachedPrivate = this._attachedPrivateModules.has(mod.address)\n\n assertEx(isAttachedPublic || isAttachedPrivate, () => `Module [${mod.modName}] not attached at [${address}]`)\n\n // remove inside access\n mod.upResolver?.removeResolver?.(this.privateResolver)\n\n // remove outside access\n mod.upResolver?.removeResolver?.(this.upResolver)\n\n // remove external exposure\n this.downResolver.removeResolver(mod.downResolver)\n\n mod.removeParent(this.address)\n\n if (isAttachedPublic) {\n this._attachedPublicModules.delete(mod.address)\n }\n\n if (isAttachedPrivate) {\n this._attachedPrivateModules.delete(mod.address)\n }\n\n const args = { mod, name: mod.modName }\n await this.emit('moduleDetached', args)\n\n // notify of all sub node children detach\n if (isNodeModule(mod)) {\n const notificationList = await this.getModulesToNotifyAbout(mod)\n await this.notifyOfExistingModulesDetached(notificationList)\n }\n return address\n }\n\n protected override startHandler(): Promise<void> {\n return super.startHandler()\n }\n\n private async attachUsingName(name: string, external?: boolean) {\n const address = this.registeredModuleAddressFromName(name)\n if (isDefined(address)) {\n return await this.attachUsingAddress(address, external)\n }\n }\n\n private async detachUsingName(name: string) {\n const address = this.registeredModuleAddressFromName(name)\n if (isDefined(address)) {\n return await this.detachUsingAddress(address)\n }\n }\n\n private async getModulesToNotifyAbout(node: ModuleInstance) {\n const notifiedAddresses: string[] = []\n // send attach events for all existing attached modules\n const childModules = await node.resolve('*', { direction: 'down' })\n return (\n childModules.map((child) => {\n // don't report self\n if (node.address === child.address) {\n return\n }\n\n // prevent loop\n if (notifiedAddresses.includes(child.address)) {\n return\n }\n\n notifiedAddresses.push(child.address)\n\n return child\n })\n ).filter(exists)\n }\n\n private async notifyOfExistingModulesAttached(childModules: QueryableModule[]) {\n await Promise.all(\n childModules.map(async (child) => {\n const args = { mod: child, name: child.modName }\n await this.emit('moduleAttached', args)\n }),\n )\n }\n\n private async notifyOfExistingModulesDetached(childModules: QueryableModule[]) {\n await Promise.all(\n childModules.map(async (child) => {\n const args = { mod: child, name: child.modName }\n await this.emit('moduleDetached', args)\n }),\n )\n }\n\n private registeredModuleAddressFromName(name: string) {\n return Object.values(this.registeredModuleMap).find((value) => {\n return value?.modName === name\n })?.address\n }\n}\n", "import type { ModuleIdentifier, ModuleInstance } from '#module-model'\nimport { NodeHelper } from '#node-abstract'\nimport type { NodeInstance } from '#node-model'\n\nimport type { MemoryNodeParams } from '../MemoryNode.ts'\nimport { attachToExistingNode } from './attachToExistingNode.ts'\nimport { attachToNewNode } from './attachToNewNode.ts'\nimport {\n flatAttachAllToExistingNode, flatAttachChildToExistingNode, flatAttachToExistingNode,\n} from './flatAttachToExistingNode.ts'\nimport { flatAttachToNewNode } from './flatAttachToNewNode.ts'\n\nexport const MemoryNodeHelper: {\n attachToExistingNode: (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance) => Promise<NodeInstance>\n attachToNewNode: (source: NodeInstance, id: ModuleIdentifier, destinationParams?: MemoryNodeParams) => Promise<NodeInstance>\n attachedPrivateModules: (node: NodeInstance, maxDepth?: number) => Promise<ModuleInstance[]>\n attachedPublicModules: (node: NodeInstance, maxDepth?: number) => Promise<ModuleInstance[]>\n flatAttachAllToExistingNode: (source: NodeInstance, destination: NodeInstance) => Promise<NodeInstance>\n flatAttachChildToExistingNode: (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance) => Promise<NodeInstance>\n flatAttachToExistingNode: (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance) => Promise<NodeInstance>\n flatAttachToNewNode: (source: NodeInstance, id: ModuleIdentifier, destinationParams: MemoryNodeParams) => Promise<NodeInstance>\n} = {\n ...NodeHelper,\n attachToExistingNode,\n attachToNewNode,\n flatAttachAllToExistingNode,\n flatAttachChildToExistingNode,\n flatAttachToExistingNode,\n flatAttachToNewNode,\n}\n", "import { assertEx } from '@ariestools/sdk'\n\nimport type { ModuleIdentifier } from '#module-model'\nimport type { NodeInstance } from '#node-model'\nimport { asNodeInstance } from '#node-model'\n\nimport { MemoryNode } from '../MemoryNode.ts'\nimport { flatAttachToExistingNode } from './flatAttachToExistingNode.ts'\n\nexport const attachToExistingNode = async (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance): Promise<NodeInstance> => {\n const parts = id.split(':')\n const first = assertEx(parts.shift(), () => 'missing first part')\n if (parts.length === 0) {\n // this is an immediate child/children\n return await flatAttachToExistingNode(source, first, destination)\n } else {\n // all parts that are not the last should be nodes, build them and nest\n const firstModule = await source.resolve(first)\n const firstNode = asNodeInstance(firstModule, () => 'first part is not a node', { required: true })\n const newNode = await MemoryNode.create({ config: firstNode.config })\n await destination.register?.(newNode)\n await destination.attach(newNode.address, true)\n await attachToExistingNode(firstNode, parts.join(':'), newNode)\n return destination\n }\n}\n", "import { assertEx, exists } from '@ariestools/sdk'\n\nimport type { ModuleIdentifier } from '#module-model'\nimport { asAttachableModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\n\nexport const flatAttachAllToExistingNode = async (source: NodeInstance, destination: NodeInstance): Promise<NodeInstance> => {\n const children = (await source.publicChildren()).map(child => asAttachableModuleInstance(child)).filter(exists)\n await Promise.all(\n children.map(async (child) => {\n await destination.register?.(child)\n await destination.attach(child.address, true)\n }),\n )\n return destination\n}\n\nexport const flatAttachChildToExistingNode = async (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance): Promise<NodeInstance> => {\n assertEx(id !== '*', () => '* is not a single child')\n const child = assertEx(await source.resolve(id), () => `Module ${id} not found`)\n const attachableChild = asAttachableModuleInstance(child, () => `Module ${id} is not attachable`, { required: true })\n await destination.register?.(attachableChild)\n await destination.attach(child.address, true)\n return destination\n}\n\nexport const flatAttachToExistingNode = async (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance): Promise<NodeInstance> => {\n return id === '*' ? await flatAttachAllToExistingNode(source, destination) : flatAttachChildToExistingNode(source, id, destination)\n}\n", "import type { CreatableName } from '@ariestools/sdk'\n\nimport type { ModuleIdentifier } from '#module-model'\nimport type { NodeInstance } from '#node-model'\nimport { NodeConfigSchema } from '#node-model'\n\nimport type { MemoryNodeParams } from '../MemoryNode.ts'\nimport { MemoryNode } from '../MemoryNode.ts'\nimport { attachToExistingNode } from './attachToExistingNode.ts'\n\nconst DEFAULT_NODE_PARAMS = { config: { schema: NodeConfigSchema }, name: 'MemoryNode' as CreatableName }\n\nexport const attachToNewNode = async (\n source: NodeInstance,\n id: ModuleIdentifier,\n destinationParams: MemoryNodeParams = DEFAULT_NODE_PARAMS,\n): Promise<NodeInstance> => {\n const destination = await MemoryNode.create(destinationParams)\n return await attachToExistingNode(source, id, destination)\n}\n", "import type { ModuleIdentifier } from '#module-model'\nimport type { NodeInstance } from '#node-model'\n\nimport type { MemoryNodeParams } from '../MemoryNode.ts'\nimport { MemoryNode } from '../MemoryNode.ts'\nimport { flatAttachToExistingNode } from './flatAttachToExistingNode.ts'\n\nexport const flatAttachToNewNode = async (\n source: NodeInstance,\n id: ModuleIdentifier,\n destinationParams: MemoryNodeParams,\n): Promise<NodeInstance> => {\n const destination = await MemoryNode.create(destinationParams)\n return await flatAttachToExistingNode(source, id, destination)\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { EventListener, Promisable } from '@ariestools/sdk'\nimport {\n assertEx,\n exists, isAddress, isDefined,\n} from '@ariestools/sdk'\nimport type { XyoAddress, XyoQuantAddress } from '@xyo-network/sdk-protocol'\nimport { Mutex } from 'async-mutex'\n\nimport {\n type AnyConfigSchema,\n type AttachableModuleInstance,\n creatableModule,\n type ModuleIdentifier,\n type ModuleInstance,\n type QueryableModule,\n} from '#module-model'\nimport { AbstractNode } from '#node-abstract'\nimport type {\n ChildCertificationFields,\n NodeConfig, NodeInstanceParams,\n NodeModuleEventData,\n} from '#node-model'\nimport { isNodeModule } from '#node-model'\n\nexport type MemoryNodeParams = NodeInstanceParams<AnyConfigSchema<NodeConfig>>\n\n@creatableModule()\nexport class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends AbstractNode<TParams, TEventData> {\n protected registeredModuleMap: Partial<Record<XyoAddress, AttachableModuleInstance>> = {}\n\n private _attachMutex = new Mutex()\n\n private _attachedPrivateModules = new Set<XyoAddress>()\n private _attachedPublicModules = new Set<XyoAddress>()\n\n async attachHandler(id: ModuleIdentifier, external?: boolean): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress> {\n await this.startedAsync('warn', true)\n return assertEx(\n isAddress(id) ? await this.attachUsingAddress(id, external) : await this.attachUsingName(id, external),\n () => `Unable to locate module [${id}]`,\n )\n }\n\n async certifyHandler(id: ModuleIdentifier): Promise<ChildCertificationFields> {\n const publicChildren = await this.publicChildren()\n const child = publicChildren.find(child => child.modName === id || child.address === id)\n if (child) {\n return { address: child.address, expiration: Date.now() + 1000 * 60 * 10 /* 10 minutes */ }\n }\n throw new Error(`Unable to certify child module [${id}]`)\n }\n\n async detachHandler(id: ModuleIdentifier): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress | undefined> {\n return isAddress(id) ? await this.detachUsingAddress(id) : await this.detachUsingName(id)\n }\n\n override async privateChildren(): Promise<ModuleInstance[]> {\n return [...(await this.attachedPrivateModules()), ...this.params.privateChildren ?? []]\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return [...(await this.attachedPublicModules()), ...this.params.publicChildren ?? []]\n }\n\n async register(mod: AttachableModuleInstance): Promise<void> {\n this.started('warn')\n if (Object.hasOwn(this.registeredModuleMap, mod.address)) {\n if (this.registeredModuleMap[mod.address] === mod) {\n this.logger?.warn(`Module already registered at that address[${mod.address}]|${mod.id}|[${mod.config.schema}]`)\n } else {\n throw new Error(`Other module already registered at that address[${mod.address}]|${mod.id}|[${mod.config.schema}]`)\n }\n }\n this.registeredModuleMap[mod.address] = mod\n const args = { mod, name: mod.modName }\n await this.emit('moduleRegistered', args)\n }\n\n registeredHandler(): Promisable<XyoAddress[]> {\n return Promise.resolve(\n (Object.keys(this.registeredModuleMap) as XyoAddress[]).map((key) => {\n return key\n }),\n )\n }\n\n registeredModules(): AttachableModuleInstance[] {\n return Object.values(this.registeredModuleMap).map((value) => {\n return value\n }).filter(exists)\n }\n\n async unregister(mod: ModuleInstance): Promise<ModuleInstance> {\n // try to detach if it is attached\n try {\n await this.detach(mod.address)\n } catch {\n // Detach is best-effort during unregister.\n }\n delete this.registeredModuleMap[mod.address]\n const args = { mod, name: mod.modName }\n await this.emit('moduleUnregistered', args)\n return this\n }\n\n protected async attachUsingAddress(address: XyoAddress, external?: boolean): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress> {\n return await this._attachMutex.runExclusive(async () => {\n const existingModule = await this.resolve(address)\n if (existingModule) {\n this.logger?.warn(`MemoryNode: Module [${existingModule?.modName ?? existingModule?.address}] already attached at address [${address}]`)\n }\n const mod = assertEx(this.registeredModuleMap[address], () => `No Module Registered at address [${address}]`)\n\n if (this._attachedPublicModules.has(mod.address)) {\n this.logger?.warn(`Module [${mod.modName}] already attached at [${address}] (public)`)\n }\n if (this._attachedPrivateModules.has(mod.address)) {\n this.logger?.warn(`Module [${mod.modName}] already attached at [${address}] (private)`)\n }\n\n const notificationList = await this.getModulesToNotifyAbout(mod)\n\n // give it private access\n mod.upResolver.addResolver?.(this.privateResolver)\n\n // give it public access\n mod.upResolver.addResolver?.(this.downResolver)\n\n // give it outside access\n mod.upResolver.addResolver?.(this.upResolver)\n\n if (external === true) {\n // expose it externally\n this._attachedPublicModules.add(mod.address)\n this.downResolver.addResolver(mod.downResolver)\n } else {\n this._attachedPrivateModules.add(mod.address)\n this.privateResolver.addResolver(mod.downResolver)\n }\n\n mod.addParent(this)\n\n const args = { mod, name: mod.modName }\n await this.emit('moduleAttached', args)\n\n if (external === true && isNodeModule(mod)) {\n const attachedListener: EventListener<TEventData['moduleAttached']> = async (args: TEventData['moduleAttached']) =>\n await this.emit('moduleAttached', args)\n\n const detachedListener: EventListener<TEventData['moduleDetached']> = async (args: TEventData['moduleDetached']) =>\n await this.emit('moduleDetached', args)\n\n mod.on('moduleAttached', attachedListener as EventListener)\n mod.on('moduleDetached', detachedListener as EventListener)\n }\n\n await this.notifyOfExistingModulesAttached(notificationList)\n\n return address\n })\n }\n\n protected async detachUsingAddress(address: XyoAddress): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress> {\n const mod = assertEx(this.registeredModuleMap[address], () => `No Module Registered at address [${address}]`)\n\n const isAttachedPublic = this._attachedPublicModules.has(mod.address)\n const isAttachedPrivate = this._attachedPrivateModules.has(mod.address)\n\n assertEx(isAttachedPublic || isAttachedPrivate, () => `Module [${mod.modName}] not attached at [${address}]`)\n\n // remove inside access\n mod.upResolver?.removeResolver?.(this.privateResolver)\n\n // remove outside access\n mod.upResolver?.removeResolver?.(this.upResolver)\n\n // remove external exposure\n this.downResolver.removeResolver(mod.downResolver)\n\n mod.removeParent(this.address)\n\n if (isAttachedPublic) {\n this._attachedPublicModules.delete(mod.address)\n }\n\n if (isAttachedPrivate) {\n this._attachedPrivateModules.delete(mod.address)\n }\n\n const args = { mod, name: mod.modName }\n await this.emit('moduleDetached', args)\n\n // notify of all sub node children detach\n if (isNodeModule(mod)) {\n const notificationList = await this.getModulesToNotifyAbout(mod)\n await this.notifyOfExistingModulesDetached(notificationList)\n }\n return address\n }\n\n protected override startHandler(): Promise<void> {\n return super.startHandler()\n }\n\n private async attachUsingName(name: string, external?: boolean) {\n const address = this.registeredModuleAddressFromName(name)\n if (isDefined(address)) {\n return await this.attachUsingAddress(address, external)\n }\n }\n\n private async detachUsingName(name: string) {\n const address = this.registeredModuleAddressFromName(name)\n if (isDefined(address)) {\n return await this.detachUsingAddress(address)\n }\n }\n\n private async getModulesToNotifyAbout(node: ModuleInstance) {\n const notifiedAddresses: string[] = []\n // send attach events for all existing attached modules\n const childModules = await node.resolve('*', { direction: 'down' })\n return (\n childModules.map((child) => {\n // don't report self\n if (node.address === child.address) {\n return\n }\n\n // prevent loop\n if (notifiedAddresses.includes(child.address)) {\n return\n }\n\n notifiedAddresses.push(child.address)\n\n return child\n })\n ).filter(exists)\n }\n\n private async notifyOfExistingModulesAttached(childModules: QueryableModule[]) {\n await Promise.all(\n childModules.map(async (child) => {\n const args = { mod: child, name: child.modName }\n await this.emit('moduleAttached', args)\n }),\n )\n }\n\n private async notifyOfExistingModulesDetached(childModules: QueryableModule[]) {\n await Promise.all(\n childModules.map(async (child) => {\n const args = { mod: child, name: child.modName }\n await this.emit('moduleDetached', args)\n }),\n )\n }\n\n private registeredModuleAddressFromName(name: string) {\n return Object.values(this.registeredModuleMap).find((value) => {\n return value?.modName === name\n })?.address\n }\n}\n", "import type { ModuleIdentifier, ModuleInstance } from '#module-model'\nimport { NodeHelper } from '#node-abstract'\nimport type { NodeInstance } from '#node-model'\n\nimport type { MemoryNodeParams } from '../MemoryNode.ts'\nimport { attachToExistingNode } from './attachToExistingNode.ts'\nimport { attachToNewNode } from './attachToNewNode.ts'\nimport {\n flatAttachAllToExistingNode, flatAttachChildToExistingNode, flatAttachToExistingNode,\n} from './flatAttachToExistingNode.ts'\nimport { flatAttachToNewNode } from './flatAttachToNewNode.ts'\n\nexport const MemoryNodeHelper: {\n attachToExistingNode: (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance) => Promise<NodeInstance>\n attachToNewNode: (source: NodeInstance, id: ModuleIdentifier, destinationParams?: MemoryNodeParams) => Promise<NodeInstance>\n attachedPrivateModules: (node: NodeInstance, maxDepth?: number) => Promise<ModuleInstance[]>\n attachedPublicModules: (node: NodeInstance, maxDepth?: number) => Promise<ModuleInstance[]>\n flatAttachAllToExistingNode: (source: NodeInstance, destination: NodeInstance) => Promise<NodeInstance>\n flatAttachChildToExistingNode: (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance) => Promise<NodeInstance>\n flatAttachToExistingNode: (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance) => Promise<NodeInstance>\n flatAttachToNewNode: (source: NodeInstance, id: ModuleIdentifier, destinationParams: MemoryNodeParams) => Promise<NodeInstance>\n} = {\n ...NodeHelper,\n attachToExistingNode,\n attachToNewNode,\n flatAttachAllToExistingNode,\n flatAttachChildToExistingNode,\n flatAttachToExistingNode,\n flatAttachToNewNode,\n}\n", "import { assertEx } from '@ariestools/sdk'\n\nimport type { ModuleIdentifier } from '#module-model'\nimport type { NodeInstance } from '#node-model'\nimport { asNodeInstance } from '#node-model'\n\nimport { MemoryNode } from '../MemoryNode.ts'\nimport { flatAttachToExistingNode } from './flatAttachToExistingNode.ts'\n\nexport const attachToExistingNode = async (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance): Promise<NodeInstance> => {\n const parts = id.split(':')\n const first = assertEx(parts.shift(), () => 'missing first part')\n if (parts.length === 0) {\n // this is an immediate child/children\n return await flatAttachToExistingNode(source, first, destination)\n }\n // all parts that are not the last should be nodes, build them and nest\n const firstModule = await source.resolve(first)\n const firstNode = asNodeInstance(firstModule, () => 'first part is not a node', { required: true })\n const newNode = await MemoryNode.create({ config: firstNode.config })\n await destination.register?.(newNode)\n await destination.attach(newNode.address, true)\n await attachToExistingNode(firstNode, parts.join(':'), newNode)\n return destination\n}\n", "import { assertEx, exists } from '@ariestools/sdk'\n\nimport type { ModuleIdentifier } from '#module-model'\nimport { asAttachableModuleInstance } from '#module-model'\nimport type { NodeInstance } from '#node-model'\n\nexport const flatAttachAllToExistingNode = async (source: NodeInstance, destination: NodeInstance): Promise<NodeInstance> => {\n const publicChildren = await source.publicChildren()\n const children = publicChildren.map(child => asAttachableModuleInstance(child)).filter(exists)\n await Promise.all(\n children.map(async (child) => {\n await destination.register?.(child)\n await destination.attach(child.address, true)\n }),\n )\n return destination\n}\n\nexport const flatAttachChildToExistingNode = async (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance): Promise<NodeInstance> => {\n assertEx(id !== '*', () => '* is not a single child')\n const child = assertEx(await source.resolve(id), () => `Module ${id} not found`)\n const attachableChild = asAttachableModuleInstance(child, () => `Module ${id} is not attachable`, { required: true })\n await destination.register?.(attachableChild)\n await destination.attach(child.address, true)\n return destination\n}\n\nexport const flatAttachToExistingNode = async (source: NodeInstance, id: ModuleIdentifier, destination: NodeInstance): Promise<NodeInstance> => {\n return id === '*' ? await flatAttachAllToExistingNode(source, destination) : flatAttachChildToExistingNode(source, id, destination)\n}\n", "import type { CreatableName } from '@ariestools/sdk'\n\nimport type { ModuleIdentifier } from '#module-model'\nimport type { NodeInstance } from '#node-model'\nimport { NodeConfigSchema } from '#node-model'\n\nimport type { MemoryNodeParams } from '../MemoryNode.ts'\nimport { MemoryNode } from '../MemoryNode.ts'\nimport { attachToExistingNode } from './attachToExistingNode.ts'\n\nconst DEFAULT_NODE_PARAMS = { config: { schema: NodeConfigSchema }, name: 'MemoryNode' as CreatableName }\n\nexport const attachToNewNode = async (\n source: NodeInstance,\n id: ModuleIdentifier,\n destinationParams: MemoryNodeParams = DEFAULT_NODE_PARAMS,\n): Promise<NodeInstance> => {\n const destination = await MemoryNode.create(destinationParams)\n return await attachToExistingNode(source, id, destination)\n}\n", "import type { ModuleIdentifier } from '#module-model'\nimport type { NodeInstance } from '#node-model'\n\nimport type { MemoryNodeParams } from '../MemoryNode.ts'\nimport { MemoryNode } from '../MemoryNode.ts'\nimport { flatAttachToExistingNode } from './flatAttachToExistingNode.ts'\n\nexport const flatAttachToNewNode = async (\n source: NodeInstance,\n id: ModuleIdentifier,\n destinationParams: MemoryNodeParams,\n): Promise<NodeInstance> => {\n const destination = await MemoryNode.create(destinationParams)\n return await flatAttachToExistingNode(source, id, destination)\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["child", "args", "assertEx", "assertEx", "exists", "assertEx"]
7
7
  }
@@ -126,7 +126,8 @@ var isNodeInstance = instanceFactory.create(
126
126
  },
127
127
  [isModuleInstance]
128
128
  );
129
- var isNodeModule = new IsQueryableModuleFactory().create([NodeAttachedQuerySchema]);
129
+ var isQueryableModuleFactory = new IsQueryableModuleFactory();
130
+ var isNodeModule = isQueryableModuleFactory.create([NodeAttachedQuerySchema]);
130
131
  var asNodeModule = AsObjectFactory.create(isNodeModule);
131
132
  var asNodeInstance = AsObjectFactory.create(isNodeInstance);
132
133
  var withNodeModule = WithFactory.create(isNodeModule);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/node-model/attachable/asAttachableInstance.ts", "../../src/modules/node-model/attachable/isAttachableInstance.ts", "../../src/modules/node-model/typeChecks.ts", "../../src/modules/node-model/Queries/Attach.ts", "../../src/modules/node-model/Queries/Attached.ts", "../../src/modules/node-model/Queries/Certify.ts", "../../src/modules/node-model/Queries/Detach.ts", "../../src/modules/node-model/Queries/Registered.ts", "../../src/modules/node-model/attachable/AttachableInstance.ts", "../../src/modules/node-model/ChildCertification.ts", "../../src/modules/node-model/Config.ts"],
4
- "sourcesContent": ["import { AsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableNodeInstance } from './isAttachableInstance.ts'\n\nexport const asAttachableNodeInstance = AsObjectFactory.create(isAttachableNodeInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableModuleInstance } from '#module-model'\n\nimport { isNodeInstance } from '../typeChecks.ts'\nimport type { AttachableNodeInstance } from './AttachableInstance.ts'\n\nexport const requiredAttachableNodeInstanceFunctions: ObjectTypeShape = {}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<AttachableNodeInstance>()\n\nexport const isAttachableNodeInstance: TypeCheck<AttachableNodeInstance> = factory.create(requiredAttachableNodeInstanceFunctions, [\n isNodeInstance,\n isAttachableModuleInstance,\n])\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\n\nimport {\n IsInstanceFactory, isModuleInstance, IsQueryableModuleFactory, WithFactory,\n} from '#module-model'\n\nimport type { NodeInstance } from './instance.ts'\nimport type { NodeModule } from './Node.ts'\nimport { NodeAttachedQuerySchema } from './Queries/index.ts'\n\nconst instanceFactory = new IsInstanceFactory<NodeInstance>()\n\nexport const isNodeInstance: TypeCheck<NodeInstance> = instanceFactory.create(\n {\n attach: 'function',\n attached: 'function',\n certify: 'function',\n detach: 'function',\n registered: 'function',\n },\n [isModuleInstance],\n)\n\nexport const isNodeModule: TypeCheck<NodeModule> = new IsQueryableModuleFactory<NodeModule>().create([NodeAttachedQuerySchema])\n\nexport const asNodeModule = AsObjectFactory.create(isNodeModule)\nexport const asNodeInstance = AsObjectFactory.create(isNodeInstance)\n\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withNodeModule = WithFactory.create(isNodeModule)\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withNodeInstance = WithFactory.create(isNodeInstance)\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\nexport const NodeAttachQuerySchema: 'network.xyo.query.node.attach' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.node.attach', true)\nexport type NodeAttachQuerySchema = typeof NodeAttachQuerySchema\n\nexport const NodeAttachQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<NodeAttachQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & {\n external: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n id: z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>\n },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(NodeAttachQuerySchema), {\n ...QueryFieldsZod.shape,\n external: z.optional(z.boolean()),\n id: z.custom<ModuleIdentifier>(),\n})\n\nexport type NodeAttachQuery = z.infer<typeof NodeAttachQueryZod>\n\nexport const isNodeAttachQuery: ReturnType<typeof zodIsFactory<NodeAttachQuery>> = zodIsFactory(NodeAttachQueryZod)\nexport const asNodeAttachQuery: ReturnType<typeof zodAsFactory<NodeAttachQuery>> = zodAsFactory(NodeAttachQueryZod, 'asNodeAttachQuery')\nexport const toNodeAttachQuery: ReturnType<typeof zodToFactory<NodeAttachQuery>> = zodToFactory(NodeAttachQueryZod, 'toNodeAttachQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const NodeAttachedQuerySchema: 'network.xyo.query.node.attached' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.node.attached', true)\nexport type NodeAttachedQuerySchema = typeof NodeAttachedQuerySchema\n\nexport const NodeAttachedQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<NodeAttachedQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(NodeAttachedQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type NodeAttachedQuery = z.infer<typeof NodeAttachedQueryZod>\n\nexport const isNodeAttachedQuery: ReturnType<typeof zodIsFactory<NodeAttachedQuery>> = zodIsFactory(NodeAttachedQueryZod)\nexport const asNodeAttachedQuery: ReturnType<typeof zodAsFactory<NodeAttachedQuery>> = zodAsFactory(NodeAttachedQueryZod, 'asNodeAttachedQuery')\nexport const toNodeAttachedQuery: ReturnType<typeof zodToFactory<NodeAttachedQuery>> = zodToFactory(NodeAttachedQueryZod, 'toNodeAttachedQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\nexport const NodeCertifyQuerySchema: 'network.xyo.query.node.certify' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.node.certify', true)\nexport type NodeCertifyQuerySchema = typeof NodeCertifyQuerySchema\n\nexport const NodeCertifyQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<NodeCertifyQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { id: z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(NodeCertifyQuerySchema), {\n ...QueryFieldsZod.shape,\n id: z.custom<ModuleIdentifier>(),\n})\n\nexport type NodeCertifyQuery = z.infer<typeof NodeCertifyQueryZod>\n\nexport const isNodeCertifyQuery: ReturnType<typeof zodIsFactory<NodeCertifyQuery>> = zodIsFactory(NodeCertifyQueryZod)\nexport const asNodeCertifyQuery: ReturnType<typeof zodAsFactory<NodeCertifyQuery>> = zodAsFactory(NodeCertifyQueryZod, 'asNodeCertifyQuery')\nexport const toNodeCertifyQuery: ReturnType<typeof zodToFactory<NodeCertifyQuery>> = zodToFactory(NodeCertifyQueryZod, 'toNodeCertifyQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\nexport const NodeDetachQuerySchema: 'network.xyo.query.node.detach' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.node.detach', true)\nexport type NodeDetachQuerySchema = typeof NodeDetachQuerySchema\n\nexport const NodeDetachQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<NodeDetachQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { id: z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(NodeDetachQuerySchema), {\n ...QueryFieldsZod.shape,\n id: z.custom<ModuleIdentifier>(),\n})\n\nexport type NodeDetachQuery = z.infer<typeof NodeDetachQueryZod>\n\nexport const isNodeDetachQuery: ReturnType<typeof zodIsFactory<NodeDetachQuery>> = zodIsFactory(NodeDetachQueryZod)\nexport const asNodeDetachQuery: ReturnType<typeof zodAsFactory<NodeDetachQuery>> = zodAsFactory(NodeDetachQueryZod, 'asNodeDetachQuery')\nexport const toNodeDetachQuery: ReturnType<typeof zodToFactory<NodeDetachQuery>> = zodToFactory(NodeDetachQueryZod, 'toNodeDetachQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const NodeRegisteredQuerySchema: 'network.xyo.query.node.registered' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.node.registered', true)\nexport type NodeRegisteredQuerySchema = typeof NodeRegisteredQuerySchema\n\nexport const NodeRegisteredQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<NodeRegisteredQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(NodeRegisteredQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type NodeRegisteredQuery = z.infer<typeof NodeRegisteredQueryZod>\n\nexport const isNodeRegisteredQuery: ReturnType<typeof zodIsFactory<NodeRegisteredQuery>> = zodIsFactory(NodeRegisteredQueryZod)\nexport const asNodeRegisteredQuery: ReturnType<typeof zodAsFactory<NodeRegisteredQuery>> = zodAsFactory(NodeRegisteredQueryZod, 'asNodeRegisteredQuery')\nexport const toNodeRegisteredQuery: ReturnType<typeof zodToFactory<NodeRegisteredQuery>> = zodToFactory(NodeRegisteredQueryZod, 'toNodeRegisteredQuery')\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport type { AttachableModuleInstance } from '#module-model'\n\nimport type { NodeInstance } from '../instance.ts'\nimport type { NodeModule, NodeModuleEventData } from '../Node.ts'\nimport type { NodeParams } from '../Params.ts'\n\nexport interface AttachableNodeInstance<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends NodeModule<TParams, TEventData>,\n AttachableModuleInstance<TParams, TEventData>,\n NodeInstance<TParams, TEventData> {}\n\nexport type AttachableNodeInstanceTypeCheck<T extends AttachableNodeInstance = AttachableNodeInstance> = TypeCheck<T>\n\nexport class IsAttachableNodeInstanceFactory<T extends AttachableNodeInstance = AttachableNodeInstance> extends IsObjectFactory<T> {}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, type XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ChildCertificationSchema: 'network.xyo.child.certification' & {\n readonly __schema: true\n} = asSchema('network.xyo.child.certification', true)\nexport type ChildCertificationSchema = typeof ChildCertificationSchema\n\nexport interface ChildCertificationFields {\n address: XyoAddress\n expiration: number\n}\n\nexport const ChildCertificationZod: z.ZodMiniIntersection<\n z.ZodMiniObject<{ schema: z.ZodMiniLiteral<ChildCertificationSchema> }, z.core.$strip>,\n z.ZodMiniCustom<ChildCertificationFields, ChildCertificationFields>\n> = z.intersection(PayloadZodOfSchema(ChildCertificationSchema), z.custom<ChildCertificationFields>())\n\nexport type ChildCertification = z.infer<typeof ChildCertificationZod>\n\nexport const isChildCertification: ReturnType<typeof zodIsFactory<ChildCertification>> = zodIsFactory(ChildCertificationZod)\nexport const asChildCertification: ReturnType<typeof zodAsFactory<ChildCertification>> = zodAsFactory(ChildCertificationZod, 'asChildCertification')\nexport const toChildCertification: ReturnType<typeof zodToFactory<ChildCertification>> = zodToFactory(ChildCertificationZod, 'toChildCertification')\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type {\n Payload,\n Schema,\n} from '@xyo-network/sdk-protocol'\nimport { asSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleConfig } from '#module-model'\nimport { ModuleConfigZod } from '#module-model'\n\nexport const NodeConfigSchema: 'network.xyo.node.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.node.config', true)\nexport type NodeConfigSchema = typeof NodeConfigSchema\n\nexport const NodeConfigZod: z.ZodMiniObject<\n Omit<(typeof ModuleConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<NodeConfigSchema>\n },\n z.core.$strip\n> = z.extend(ModuleConfigZod, { schema: z.literal(NodeConfigSchema) })\n\nexport type NodeConfigBase = z.infer<typeof NodeConfigZod>\n\nexport const isNodeConfig: ReturnType<typeof zodIsFactory<NodeConfigBase>> = zodIsFactory(NodeConfigZod)\nexport const asNodeConfig: ReturnType<typeof zodAsFactory<NodeConfigBase>> = zodAsFactory(NodeConfigZod, 'asNodeConfig')\nexport const toNodeConfig: ReturnType<typeof zodToFactory<NodeConfigBase>> = zodToFactory(NodeConfigZod, 'toNodeConfig')\n\nexport type NodeConfig<TConfig extends EmptyObject | Payload | void = void, TSchema extends Schema | void = void> = ModuleConfig<\n WithAdditional<\n {\n archivist?: string\n },\n TConfig\n >,\n TSchema extends void\n ? TConfig extends Payload\n ? TConfig['schema']\n : NodeConfigSchema\n : TSchema\n>\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { AsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableNodeInstance } from './isAttachableInstance.ts'\n\nexport const asAttachableNodeInstance = AsObjectFactory.create(isAttachableNodeInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableModuleInstance } from '#module-model'\n\nimport { isNodeInstance } from '../typeChecks.ts'\nimport type { AttachableNodeInstance } from './AttachableInstance.ts'\n\nexport const requiredAttachableNodeInstanceFunctions: ObjectTypeShape = {}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<AttachableNodeInstance>()\n\nexport const isAttachableNodeInstance: TypeCheck<AttachableNodeInstance> = factory.create(requiredAttachableNodeInstanceFunctions, [\n isNodeInstance,\n isAttachableModuleInstance,\n])\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\n\nimport {\n IsInstanceFactory, isModuleInstance, IsQueryableModuleFactory, WithFactory,\n} from '#module-model'\n\nimport type { NodeInstance } from './instance.ts'\nimport type { NodeModule } from './Node.ts'\nimport { NodeAttachedQuerySchema } from './Queries/index.ts'\n\nconst instanceFactory = new IsInstanceFactory<NodeInstance>()\n\nexport const isNodeInstance: TypeCheck<NodeInstance> = instanceFactory.create(\n {\n attach: 'function',\n attached: 'function',\n certify: 'function',\n detach: 'function',\n registered: 'function',\n },\n [isModuleInstance],\n)\n\nconst isQueryableModuleFactory = new IsQueryableModuleFactory<NodeModule>()\nexport const isNodeModule: TypeCheck<NodeModule> = isQueryableModuleFactory.create([NodeAttachedQuerySchema])\n\nexport const asNodeModule = AsObjectFactory.create(isNodeModule)\nexport const asNodeInstance = AsObjectFactory.create(isNodeInstance)\n\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withNodeModule = WithFactory.create(isNodeModule)\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withNodeInstance = WithFactory.create(isNodeInstance)\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\nexport const NodeAttachQuerySchema: 'network.xyo.query.node.attach' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.node.attach', true)\nexport type NodeAttachQuerySchema = typeof NodeAttachQuerySchema\n\nexport const NodeAttachQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<NodeAttachQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & {\n external: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n id: z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>\n },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(NodeAttachQuerySchema), {\n ...QueryFieldsZod.shape,\n external: z.optional(z.boolean()),\n id: z.custom<ModuleIdentifier>(),\n})\n\nexport type NodeAttachQuery = z.infer<typeof NodeAttachQueryZod>\n\nexport const isNodeAttachQuery: ReturnType<typeof zodIsFactory<NodeAttachQuery>> = zodIsFactory(NodeAttachQueryZod)\nexport const asNodeAttachQuery: ReturnType<typeof zodAsFactory<NodeAttachQuery>> = zodAsFactory(NodeAttachQueryZod, 'asNodeAttachQuery')\nexport const toNodeAttachQuery: ReturnType<typeof zodToFactory<NodeAttachQuery>> = zodToFactory(NodeAttachQueryZod, 'toNodeAttachQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const NodeAttachedQuerySchema: 'network.xyo.query.node.attached' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.node.attached', true)\nexport type NodeAttachedQuerySchema = typeof NodeAttachedQuerySchema\n\nexport const NodeAttachedQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<NodeAttachedQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(NodeAttachedQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type NodeAttachedQuery = z.infer<typeof NodeAttachedQueryZod>\n\nexport const isNodeAttachedQuery: ReturnType<typeof zodIsFactory<NodeAttachedQuery>> = zodIsFactory(NodeAttachedQueryZod)\nexport const asNodeAttachedQuery: ReturnType<typeof zodAsFactory<NodeAttachedQuery>> = zodAsFactory(NodeAttachedQueryZod, 'asNodeAttachedQuery')\nexport const toNodeAttachedQuery: ReturnType<typeof zodToFactory<NodeAttachedQuery>> = zodToFactory(NodeAttachedQueryZod, 'toNodeAttachedQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\nexport const NodeCertifyQuerySchema: 'network.xyo.query.node.certify' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.node.certify', true)\nexport type NodeCertifyQuerySchema = typeof NodeCertifyQuerySchema\n\nexport const NodeCertifyQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<NodeCertifyQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { id: z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(NodeCertifyQuerySchema), {\n ...QueryFieldsZod.shape,\n id: z.custom<ModuleIdentifier>(),\n})\n\nexport type NodeCertifyQuery = z.infer<typeof NodeCertifyQueryZod>\n\nexport const isNodeCertifyQuery: ReturnType<typeof zodIsFactory<NodeCertifyQuery>> = zodIsFactory(NodeCertifyQueryZod)\nexport const asNodeCertifyQuery: ReturnType<typeof zodAsFactory<NodeCertifyQuery>> = zodAsFactory(NodeCertifyQueryZod, 'asNodeCertifyQuery')\nexport const toNodeCertifyQuery: ReturnType<typeof zodToFactory<NodeCertifyQuery>> = zodToFactory(NodeCertifyQueryZod, 'toNodeCertifyQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\nexport const NodeDetachQuerySchema: 'network.xyo.query.node.detach' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.node.detach', true)\nexport type NodeDetachQuerySchema = typeof NodeDetachQuerySchema\n\nexport const NodeDetachQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<NodeDetachQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { id: z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(NodeDetachQuerySchema), {\n ...QueryFieldsZod.shape,\n id: z.custom<ModuleIdentifier>(),\n})\n\nexport type NodeDetachQuery = z.infer<typeof NodeDetachQueryZod>\n\nexport const isNodeDetachQuery: ReturnType<typeof zodIsFactory<NodeDetachQuery>> = zodIsFactory(NodeDetachQueryZod)\nexport const asNodeDetachQuery: ReturnType<typeof zodAsFactory<NodeDetachQuery>> = zodAsFactory(NodeDetachQueryZod, 'asNodeDetachQuery')\nexport const toNodeDetachQuery: ReturnType<typeof zodToFactory<NodeDetachQuery>> = zodToFactory(NodeDetachQueryZod, 'toNodeDetachQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const NodeRegisteredQuerySchema: 'network.xyo.query.node.registered' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.node.registered', true)\nexport type NodeRegisteredQuerySchema = typeof NodeRegisteredQuerySchema\n\nexport const NodeRegisteredQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<NodeRegisteredQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(NodeRegisteredQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type NodeRegisteredQuery = z.infer<typeof NodeRegisteredQueryZod>\n\nexport const isNodeRegisteredQuery: ReturnType<typeof zodIsFactory<NodeRegisteredQuery>> = zodIsFactory(NodeRegisteredQueryZod)\nexport const asNodeRegisteredQuery: ReturnType<typeof zodAsFactory<NodeRegisteredQuery>> = zodAsFactory(NodeRegisteredQueryZod, 'asNodeRegisteredQuery')\nexport const toNodeRegisteredQuery: ReturnType<typeof zodToFactory<NodeRegisteredQuery>> = zodToFactory(NodeRegisteredQueryZod, 'toNodeRegisteredQuery')\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport type { AttachableModuleInstance } from '#module-model'\n\nimport type { NodeInstance } from '../instance.ts'\nimport type { NodeModule, NodeModuleEventData } from '../Node.ts'\nimport type { NodeParams } from '../Params.ts'\n\nexport interface AttachableNodeInstance<TParams extends NodeParams = NodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends NodeModule<TParams, TEventData>,\n AttachableModuleInstance<TParams, TEventData>,\n NodeInstance<TParams, TEventData> {}\n\nexport type AttachableNodeInstanceTypeCheck<T extends AttachableNodeInstance = AttachableNodeInstance> = TypeCheck<T>\n\nexport class IsAttachableNodeInstanceFactory<T extends AttachableNodeInstance = AttachableNodeInstance> extends IsObjectFactory<T> {}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, type XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ChildCertificationSchema: 'network.xyo.child.certification' & {\n readonly __schema: true\n} = asSchema('network.xyo.child.certification', true)\nexport type ChildCertificationSchema = typeof ChildCertificationSchema\n\nexport interface ChildCertificationFields {\n address: XyoAddress\n expiration: number\n}\n\nexport const ChildCertificationZod: z.ZodMiniIntersection<\n z.ZodMiniObject<{ schema: z.ZodMiniLiteral<ChildCertificationSchema> }, z.core.$strip>,\n z.ZodMiniCustom<ChildCertificationFields, ChildCertificationFields>\n> = z.intersection(PayloadZodOfSchema(ChildCertificationSchema), z.custom<ChildCertificationFields>())\n\nexport type ChildCertification = z.infer<typeof ChildCertificationZod>\n\nexport const isChildCertification: ReturnType<typeof zodIsFactory<ChildCertification>> = zodIsFactory(ChildCertificationZod)\nexport const asChildCertification: ReturnType<typeof zodAsFactory<ChildCertification>> = zodAsFactory(ChildCertificationZod, 'asChildCertification')\nexport const toChildCertification: ReturnType<typeof zodToFactory<ChildCertification>> = zodToFactory(ChildCertificationZod, 'toChildCertification')\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type {\n Payload,\n Schema,\n} from '@xyo-network/sdk-protocol'\nimport { asSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleConfig } from '#module-model'\nimport { ModuleConfigZod } from '#module-model'\n\nexport const NodeConfigSchema: 'network.xyo.node.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.node.config', true)\nexport type NodeConfigSchema = typeof NodeConfigSchema\n\nexport const NodeConfigZod: z.ZodMiniObject<\n Omit<(typeof ModuleConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<NodeConfigSchema>\n },\n z.core.$strip\n> = z.extend(ModuleConfigZod, { schema: z.literal(NodeConfigSchema) })\n\nexport type NodeConfigBase = z.infer<typeof NodeConfigZod>\n\nexport const isNodeConfig: ReturnType<typeof zodIsFactory<NodeConfigBase>> = zodIsFactory(NodeConfigZod)\nexport const asNodeConfig: ReturnType<typeof zodAsFactory<NodeConfigBase>> = zodAsFactory(NodeConfigZod, 'asNodeConfig')\nexport const toNodeConfig: ReturnType<typeof zodToFactory<NodeConfigBase>> = zodToFactory(NodeConfigZod, 'toNodeConfig')\n\nexport type NodeConfig<TConfig extends EmptyObject | Payload | void = void, TSchema extends Schema | void = void> = ModuleConfig<\n WithAdditional<\n {\n archivist?: string\n },\n TConfig\n >,\n TSchema extends void\n ? TConfig extends Payload\n ? TConfig['schema']\n : NodeConfigSchema\n : TSchema\n>\n"],
5
+ "mappings": "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",
6
6
  "names": ["AsObjectFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "AsObjectFactory", "IsObjectFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z"]
7
7
  }
@@ -97,7 +97,8 @@ var ViewNode = class extends MemoryNode {
97
97
  return address;
98
98
  }
99
99
  async attachedPublicModules() {
100
- return (await this._limitedResolver.resolve("*")).filter((mod) => mod.address !== this.address);
100
+ const mods = await this._limitedResolver.resolve("*");
101
+ return mods.filter((mod) => mod.address !== this.address);
101
102
  }
102
103
  async detachUsingAddress(address) {
103
104
  const mod = assertEx(await this.downResolver.resolve(address), () => `Module [${address}] not found in down resolver`);
@@ -113,16 +114,17 @@ var ViewNode = class extends MemoryNode {
113
114
  return;
114
115
  }
115
116
  return await this._buildMutex.runExclusive(async () => {
116
- if (!this._built) {
117
- const source = this.source === void 0 ? void 0 : asNodeInstance(await super.resolve(this.source));
118
- if (source) {
119
- await Promise.all(
120
- this.ids?.map(async (id) => {
121
- await MemoryNodeHelper.attachToExistingNode(source, id, this);
122
- }) ?? []
123
- );
124
- this._built = true;
125
- }
117
+ if (this._built) {
118
+ return;
119
+ }
120
+ const source = this.source === void 0 ? void 0 : asNodeInstance(await super.resolve(this.source));
121
+ if (source) {
122
+ await Promise.all(
123
+ this.ids?.map(async (id) => {
124
+ await MemoryNodeHelper.attachToExistingNode(source, id, this);
125
+ }) ?? []
126
+ );
127
+ this._built = true;
126
128
  }
127
129
  });
128
130
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/node-view/ViewNode.ts"],
4
- "sourcesContent": ["import type { EventListener } from '@ariestools/sdk'\nimport {\n assertEx, zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, type Schema, type XyoAddress, type XyoQuantAddress,\n} from '@xyo-network/sdk-protocol'\nimport { Mutex } from 'async-mutex'\nimport * as z from 'zod/mini'\n\nimport type {\n AnyConfigSchema,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n} from '#module-model'\nimport { creatableModule, ModuleLimitationViewLabel } from '#module-model'\nimport { SimpleModuleResolver } from '#module-resolver'\nimport { MemoryNode, MemoryNodeHelper } from '#node-memory'\nimport type {\n AttachableNodeInstance,\n NodeConfig,\n NodeModuleEventData,\n NodeParams,\n} from '#node-model'\nimport {\n asNodeInstance,\n isNodeModule,\n NodeAttachQuerySchema,\n NodeConfigZod,\n NodeDetachQuerySchema,\n NodeRegisteredQuerySchema,\n} from '#node-model'\n\nexport const ViewNodeConfigSchema: 'network.xyo.node.view.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.node.view.config', true)\nexport type ViewNodeConfigSchema = typeof ViewNodeConfigSchema\n\nexport const ViewNodeConfigZod: z.ZodMiniObject<\n Omit<(typeof NodeConfigZod)['shape'], 'schema'> & {\n ids: z.ZodMiniArray<z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>>\n schema: z.ZodMiniLiteral<ViewNodeConfigSchema>\n source: z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>\n },\n z.core.$strip\n> = z.extend(NodeConfigZod, {\n ids: z.array(z.custom<ModuleIdentifier>()),\n schema: z.literal(ViewNodeConfigSchema),\n source: z.custom<ModuleIdentifier>(),\n})\n\nexport type ViewNodeConfigBase = z.infer<typeof ViewNodeConfigZod>\n\nexport const isViewNodeConfig: ReturnType<typeof zodIsFactory<ViewNodeConfigBase>> = zodIsFactory(ViewNodeConfigZod)\nexport const asViewNodeConfig: ReturnType<typeof zodAsFactory<ViewNodeConfigBase>> = zodAsFactory(ViewNodeConfigZod, 'asViewNodeConfig')\nexport const toViewNodeConfig: ReturnType<typeof zodToFactory<ViewNodeConfigBase>> = zodToFactory(ViewNodeConfigZod, 'toViewNodeConfig')\n\nexport type ViewNodeConfig = NodeConfig<\n {\n ids: ModuleIdentifier[]\n source: ModuleIdentifier\n },\n ViewNodeConfigSchema\n>\n\nexport type ViewNodeParams = NodeParams<AnyConfigSchema<ViewNodeConfig>>\n\n@creatableModule()\nexport class ViewNode<TParams extends ViewNodeParams = ViewNodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends MemoryNode<TParams, TEventData>\n implements AttachableNodeInstance<TParams, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ViewNodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = ViewNodeConfigSchema\n static override readonly labels: {\n ModuleLimitationLabelName: string\n } = { ...ModuleLimitationViewLabel }\n\n private _buildMutex = new Mutex()\n private _built = false\n private _limitedResolver = new SimpleModuleResolver({ root: this })\n\n get ids(): ModuleIdentifier[] | undefined {\n return this.config.ids\n }\n\n override get queries(): Schema[] {\n const disallowedQueries = new Set<Schema>([NodeAttachQuerySchema, NodeDetachQuerySchema, NodeRegisteredQuerySchema])\n const queries: Schema[] = [...super.queries]\n return queries.filter(query => !disallowedQueries.has(query))\n }\n\n get source(): ModuleIdentifier | undefined {\n return this.config.source\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n override async resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n override async resolve<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleIdentifier = '*',\n _options: ModuleFilterOptions<T> = {},\n ): Promise<T | T[] | undefined> {\n if (!this._built) {\n await this.build()\n }\n const mods = await this._limitedResolver.resolve('*')\n if (idOrFilter === '*') {\n return mods as unknown as T[]\n }\n switch (typeof idOrFilter) {\n case 'string': {\n const mod = mods.find(mod => mod.modName === idOrFilter || mod.address === idOrFilter)\n return mod as unknown as T\n }\n }\n }\n\n protected override async attachUsingAddress(address: XyoAddress): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress> {\n const attached = await this.attached()\n const mods = this.registeredModules().filter(mod => attached.includes(mod.address))\n const existingModule = mods.find(mod => mod.address === address)\n if (existingModule) {\n this.logger?.warn(`ViewNode: Module [${existingModule?.modName ?? existingModule?.address}] already attached at address [${address}]`)\n }\n const mod = assertEx(this.registeredModuleMap[address], () => `Module [${address}] not found in registered mods`)\n\n mod.addParent(this)\n\n const args = { mod, name: mod.modName }\n await this.emit('moduleAttached', args)\n\n this._limitedResolver.add(mod)\n\n if (isNodeModule(mod)) {\n const attachedListener: EventListener<TEventData['moduleAttached']> = async (args: TEventData['moduleAttached']) =>\n await this.emit('moduleAttached', args)\n\n const detachedListener: EventListener<TEventData['moduleDetached']> = async (args: TEventData['moduleDetached']) =>\n await this.emit('moduleDetached', args)\n\n mod.on('moduleAttached', attachedListener)\n mod.on('moduleDetached', detachedListener)\n }\n\n return address\n }\n\n protected override async attachedPublicModules(): Promise<ModuleInstance[]> {\n return (await this._limitedResolver.resolve('*')).filter(mod => mod.address !== this.address)\n }\n\n protected override async detachUsingAddress(address: XyoAddress): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress> {\n const mod = assertEx(await this.downResolver.resolve(address), () => `Module [${address}] not found in down resolver`)\n this._limitedResolver.remove(mod.address)\n return address\n }\n\n protected override async startHandler(): Promise<void> {\n await super.startHandler()\n await this.build()\n }\n\n private async build() {\n if (this._buildMutex.isLocked()) {\n // throw new Error('ViewNode is already building, please wait for it to finish before calling build again')\n return\n }\n return await this._buildMutex.runExclusive(async () => {\n if (!this._built) {\n const source = this.source === undefined ? undefined : asNodeInstance(await super.resolve(this.source))\n if (source) {\n await Promise.all(\n this.ids?.map(async (id) => {\n await MemoryNodeHelper.attachToExistingNode(source, id, this)\n }) ?? [],\n )\n this._built = true\n }\n }\n })\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { EventListener } from '@ariestools/sdk'\nimport {\n assertEx, zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, type Schema, type XyoAddress, type XyoQuantAddress,\n} from '@xyo-network/sdk-protocol'\nimport { Mutex } from 'async-mutex'\nimport * as z from 'zod/mini'\n\nimport type {\n AnyConfigSchema,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n} from '#module-model'\nimport { creatableModule, ModuleLimitationViewLabel } from '#module-model'\nimport { SimpleModuleResolver } from '#module-resolver'\nimport { MemoryNode, MemoryNodeHelper } from '#node-memory'\nimport type {\n AttachableNodeInstance,\n NodeConfig,\n NodeModuleEventData,\n NodeParams,\n} from '#node-model'\nimport {\n asNodeInstance,\n isNodeModule,\n NodeAttachQuerySchema,\n NodeConfigZod,\n NodeDetachQuerySchema,\n NodeRegisteredQuerySchema,\n} from '#node-model'\n\nexport const ViewNodeConfigSchema: 'network.xyo.node.view.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.node.view.config', true)\nexport type ViewNodeConfigSchema = typeof ViewNodeConfigSchema\n\nexport const ViewNodeConfigZod: z.ZodMiniObject<\n Omit<(typeof NodeConfigZod)['shape'], 'schema'> & {\n ids: z.ZodMiniArray<z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>>\n schema: z.ZodMiniLiteral<ViewNodeConfigSchema>\n source: z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>\n },\n z.core.$strip\n> = z.extend(NodeConfigZod, {\n ids: z.array(z.custom<ModuleIdentifier>()),\n schema: z.literal(ViewNodeConfigSchema),\n source: z.custom<ModuleIdentifier>(),\n})\n\nexport type ViewNodeConfigBase = z.infer<typeof ViewNodeConfigZod>\n\nexport const isViewNodeConfig: ReturnType<typeof zodIsFactory<ViewNodeConfigBase>> = zodIsFactory(ViewNodeConfigZod)\nexport const asViewNodeConfig: ReturnType<typeof zodAsFactory<ViewNodeConfigBase>> = zodAsFactory(ViewNodeConfigZod, 'asViewNodeConfig')\nexport const toViewNodeConfig: ReturnType<typeof zodToFactory<ViewNodeConfigBase>> = zodToFactory(ViewNodeConfigZod, 'toViewNodeConfig')\n\nexport type ViewNodeConfig = NodeConfig<\n {\n ids: ModuleIdentifier[]\n source: ModuleIdentifier\n },\n ViewNodeConfigSchema\n>\n\nexport type ViewNodeParams = NodeParams<AnyConfigSchema<ViewNodeConfig>>\n\n@creatableModule()\nexport class ViewNode<TParams extends ViewNodeParams = ViewNodeParams, TEventData extends NodeModuleEventData = NodeModuleEventData>\n extends MemoryNode<TParams, TEventData>\n implements AttachableNodeInstance<TParams, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ViewNodeConfigSchema]\n static override readonly defaultConfigSchema: Schema = ViewNodeConfigSchema\n static override readonly labels: {\n ModuleLimitationLabelName: string\n } = { ...ModuleLimitationViewLabel }\n\n private _buildMutex = new Mutex()\n private _built = false\n private _limitedResolver = new SimpleModuleResolver({ root: this })\n\n get ids(): ModuleIdentifier[] | undefined {\n return this.config.ids\n }\n\n override get queries(): Schema[] {\n const disallowedQueries = new Set<Schema>([NodeAttachQuerySchema, NodeDetachQuerySchema, NodeRegisteredQuerySchema])\n const queries: Schema[] = [...super.queries]\n return queries.filter(query => !disallowedQueries.has(query))\n }\n\n get source(): ModuleIdentifier | undefined {\n return this.config.source\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n override async resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n override async resolve<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleIdentifier = '*',\n _options: ModuleFilterOptions<T> = {},\n ): Promise<T | T[] | undefined> {\n if (!this._built) {\n await this.build()\n }\n const mods = await this._limitedResolver.resolve('*')\n if (idOrFilter === '*') {\n return mods as unknown as T[]\n }\n switch (typeof idOrFilter) {\n case 'string': {\n const mod = mods.find(mod => mod.modName === idOrFilter || mod.address === idOrFilter)\n return mod as unknown as T\n }\n }\n }\n\n protected override async attachUsingAddress(address: XyoAddress): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress> {\n const attached = await this.attached()\n const mods = this.registeredModules().filter(mod => attached.includes(mod.address))\n const existingModule = mods.find(mod => mod.address === address)\n if (existingModule) {\n this.logger?.warn(`ViewNode: Module [${existingModule?.modName ?? existingModule?.address}] already attached at address [${address}]`)\n }\n const mod = assertEx(this.registeredModuleMap[address], () => `Module [${address}] not found in registered mods`)\n\n mod.addParent(this)\n\n const args = { mod, name: mod.modName }\n await this.emit('moduleAttached', args)\n\n this._limitedResolver.add(mod)\n\n if (isNodeModule(mod)) {\n const attachedListener: EventListener<TEventData['moduleAttached']> = async (args: TEventData['moduleAttached']) =>\n await this.emit('moduleAttached', args)\n\n const detachedListener: EventListener<TEventData['moduleDetached']> = async (args: TEventData['moduleDetached']) =>\n await this.emit('moduleDetached', args)\n\n mod.on('moduleAttached', attachedListener)\n mod.on('moduleDetached', detachedListener)\n }\n\n return address\n }\n\n protected override async attachedPublicModules(): Promise<ModuleInstance[]> {\n const mods = await this._limitedResolver.resolve('*')\n return mods.filter(mod => mod.address !== this.address)\n }\n\n protected override async detachUsingAddress(address: XyoAddress): Promise<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress> {\n const mod = assertEx(await this.downResolver.resolve(address), () => `Module [${address}] not found in down resolver`)\n this._limitedResolver.remove(mod.address)\n return address\n }\n\n protected override async startHandler(): Promise<void> {\n await super.startHandler()\n await this.build()\n }\n\n private async build() {\n if (this._buildMutex.isLocked()) {\n // throw new Error('ViewNode is already building, please wait for it to finish before calling build again')\n return\n }\n return await this._buildMutex.runExclusive(async () => {\n if (this._built) {\n return\n }\n\n const source = this.source === undefined ? undefined : asNodeInstance(await super.resolve(this.source))\n if (source) {\n await Promise.all(\n this.ids?.map(async (id) => {\n await MemoryNodeHelper.attachToExistingNode(source, id, this)\n }) ?? [],\n )\n this._built = true\n }\n })\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["mod", "args"]
7
7
  }
@@ -1,3 +1,16 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __decorateClass = (decorators, target, key, kind) => {
5
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
6
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
+ if (decorator = decorators[i])
8
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9
+ if (kind && result) __defProp(target, key, result);
10
+ return result;
11
+ };
12
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
13
+
1
14
  // src/modules/node-wrapper/NodeWrapper.ts
2
15
  import { isPayloadOfSchemaType, NodeManifestPayloadSchema } from "@xyo-network/sdk-protocol";
3
16
  import { Mutex } from "async-mutex";
@@ -16,11 +29,7 @@ import {
16
29
  NodeDetachQuerySchema,
17
30
  NodeRegisteredQuerySchema
18
31
  } from "#node-model";
19
- constructableModuleWrapper();
20
32
  var NodeWrapper = class extends ModuleWrapper {
21
- static instanceIdentityCheck = isNodeInstance;
22
- static moduleIdentityCheck = isNodeModule;
23
- static requiredQueries = [NodeAttachQuerySchema, ...ModuleWrapper.requiredQueries];
24
33
  _attached;
25
34
  _attachedMutex = new Mutex();
26
35
  async attach(id, external) {
@@ -29,7 +38,8 @@ var NodeWrapper = class extends ModuleWrapper {
29
38
  id,
30
39
  schema: NodeAttachQuerySchema
31
40
  };
32
- const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType(AddressSchema));
41
+ const results = await this.sendQuery(queryPayload);
42
+ const payloads = results.filter(isPayloadOfSchemaType(AddressSchema));
33
43
  return payloads.pop()?.address;
34
44
  }
35
45
  async attachQuery(id, external, account) {
@@ -44,7 +54,8 @@ var NodeWrapper = class extends ModuleWrapper {
44
54
  return await this._attachedMutex.runExclusive(async () => {
45
55
  if (this._attached === void 0) {
46
56
  const queryPayload = { schema: NodeAttachedQuerySchema };
47
- const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType(AddressSchema));
57
+ const results = await this.sendQuery(queryPayload);
58
+ const payloads = results.filter(isPayloadOfSchemaType(AddressSchema));
48
59
  this._attached = payloads.map((p) => p.address);
49
60
  }
50
61
  return this._attached;
@@ -56,7 +67,8 @@ var NodeWrapper = class extends ModuleWrapper {
56
67
  }
57
68
  async certify(id) {
58
69
  const queryPayload = { id, schema: NodeCertifyQuerySchema };
59
- const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType(ChildCertificationSchema));
70
+ const results = await this.sendQuery(queryPayload);
71
+ const payloads = results.filter(isPayloadOfSchemaType(ChildCertificationSchema));
60
72
  return payloads.pop();
61
73
  }
62
74
  async certifyQuery(id, account) {
@@ -65,7 +77,8 @@ var NodeWrapper = class extends ModuleWrapper {
65
77
  }
66
78
  async detach(id) {
67
79
  const queryPayload = { id, schema: NodeDetachQuerySchema };
68
- const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType(AddressSchema));
80
+ const results = await this.sendQuery(queryPayload);
81
+ const payloads = results.filter(isPayloadOfSchemaType(AddressSchema));
69
82
  return payloads.pop()?.address;
70
83
  }
71
84
  async detachQuery(id, account) {
@@ -73,13 +86,18 @@ var NodeWrapper = class extends ModuleWrapper {
73
86
  return await this.sendQueryRaw(queryPayload, [], account);
74
87
  }
75
88
  async manifest(maxDepth) {
76
- const queryPayload = { schema: ModuleManifestQuerySchema, ...maxDepth ? { maxDepth } : {} };
77
- const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType(NodeManifestPayloadSchema));
89
+ const queryPayload = { schema: ModuleManifestQuerySchema };
90
+ if (maxDepth !== void 0 && maxDepth !== 0 && !Number.isNaN(maxDepth)) {
91
+ queryPayload.maxDepth = maxDepth;
92
+ }
93
+ const results = await this.sendQuery(queryPayload);
94
+ const payloads = results.filter(isPayloadOfSchemaType(NodeManifestPayloadSchema));
78
95
  return payloads.pop();
79
96
  }
80
97
  async registered() {
81
98
  const queryPayload = { schema: NodeRegisteredQuerySchema };
82
- const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType(AddressSchema));
99
+ const results = await this.sendQuery(queryPayload);
100
+ const payloads = results.filter(isPayloadOfSchemaType(AddressSchema));
83
101
  return payloads.map((p) => p.address);
84
102
  }
85
103
  async registeredQuery(account) {
@@ -87,6 +105,12 @@ var NodeWrapper = class extends ModuleWrapper {
87
105
  return await this.sendQueryRaw(queryPayload, [], account);
88
106
  }
89
107
  };
108
+ __publicField(NodeWrapper, "instanceIdentityCheck", isNodeInstance);
109
+ __publicField(NodeWrapper, "moduleIdentityCheck", isNodeModule);
110
+ __publicField(NodeWrapper, "requiredQueries", [NodeAttachQuerySchema, ...ModuleWrapper.requiredQueries]);
111
+ NodeWrapper = __decorateClass([
112
+ constructableModuleWrapper()
113
+ ], NodeWrapper);
90
114
  export {
91
115
  NodeWrapper
92
116
  };