@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/boundwitness-loader/Loader.ts"],
4
- "sourcesContent": ["import type { BaseParams, Hash } from '@ariestools/sdk'\nimport { Base, exists } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk-protocol'\nimport {\n asBoundWitness, Huri, isAnyPayload,\n} from '@xyo-network/sdk-protocol'\nimport { Mutex } from 'async-mutex'\n\nimport { MemoryArchivist } from '#archivist-memory'\nimport type { ArchivistInstance } from '#archivist-model'\n\nexport interface PayloadWorkingSet {\n archivists?: ArchivistInstance[]\n huriEndpoints?: string[]\n payloads?: Payload[]\n}\n\nexport interface BoundWitnessLoaderParams extends BaseParams {\n cache?: ArchivistInstance\n workingSet: PayloadWorkingSet\n}\n\nexport class BoundWitnessLoader extends Base<BoundWitnessLoaderParams> {\n private _cache?: ArchivistInstance\n private _createCacheMutex = new Mutex()\n\n async load(hash: Hash | Hash[]): Promise<Payload[]> {\n if (Array.isArray(hash)) {\n return (await Promise.all(hash.map(h => this.load(h)))).flat()\n }\n const bw = asBoundWitness(await this.getPayload(hash))\n if (bw) {\n const payloads = (await Promise.all(bw.payload_hashes.map(hash => this.getPayload(hash)))).filter(exists)\n return [bw, ...payloads]\n }\n return []\n }\n\n private async getCache() {\n return await this._createCacheMutex.runExclusive(async () => {\n this._cache = this._cache ?? this.params.cache ?? (await MemoryArchivist.create({ account: 'random' }))\n if (this.params.workingSet.payloads) await this._cache.insert(this.params.workingSet.payloads)\n return this._cache\n })\n }\n\n private async getPayload(hash: Hash): Promise<Payload | undefined> {\n const cache = await this.getCache()\n const payloadFromCache = (await cache.get([hash])).at(0)\n if (isAnyPayload(payloadFromCache)) {\n return payloadFromCache\n }\n\n for (const archivist of this.params.workingSet.archivists ?? []) {\n const payloadFromArchivist = await archivist.get([hash])\n if (isAnyPayload(payloadFromArchivist)) {\n await cache.insert([payloadFromArchivist])\n return payloadFromArchivist\n }\n }\n\n for (const huriEndpoint of this.params.workingSet.huriEndpoints ?? []) {\n const payloadFromHuri = await new Huri(hash, { archivistUri: huriEndpoint }).fetch()\n if (isAnyPayload(payloadFromHuri)) {\n await cache.insert([payloadFromHuri])\n return payloadFromHuri\n }\n }\n }\n}\n"],
5
- "mappings": ";AACA,SAAS,MAAM,cAAc;AAE7B;AAAA,EACE;AAAA,EAAgB;AAAA,EAAM;AAAA,OACjB;AACP,SAAS,aAAa;AAEtB,SAAS,uBAAuB;AAczB,IAAM,qBAAN,cAAiC,KAA+B;AAAA,EAC7D;AAAA,EACA,oBAAoB,IAAI,MAAM;AAAA,EAEtC,MAAM,KAAK,MAAyC;AAClD,QAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,cAAQ,MAAM,QAAQ,IAAI,KAAK,IAAI,OAAK,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;AAAA,IAC/D;AACA,UAAM,KAAK,eAAe,MAAM,KAAK,WAAW,IAAI,CAAC;AACrD,QAAI,IAAI;AACN,YAAM,YAAY,MAAM,QAAQ,IAAI,GAAG,eAAe,IAAI,CAAAA,UAAQ,KAAK,WAAWA,KAAI,CAAC,CAAC,GAAG,OAAO,MAAM;AACxG,aAAO,CAAC,IAAI,GAAG,QAAQ;AAAA,IACzB;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,MAAc,WAAW;AACvB,WAAO,MAAM,KAAK,kBAAkB,aAAa,YAAY;AAC3D,WAAK,SAAS,KAAK,UAAU,KAAK,OAAO,SAAU,MAAM,gBAAgB,OAAO,EAAE,SAAS,SAAS,CAAC;AACrG,UAAI,KAAK,OAAO,WAAW,SAAU,OAAM,KAAK,OAAO,OAAO,KAAK,OAAO,WAAW,QAAQ;AAC7F,aAAO,KAAK;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EAEA,MAAc,WAAW,MAA0C;AACjE,UAAM,QAAQ,MAAM,KAAK,SAAS;AAClC,UAAM,oBAAoB,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AACvD,QAAI,aAAa,gBAAgB,GAAG;AAClC,aAAO;AAAA,IACT;AAEA,eAAW,aAAa,KAAK,OAAO,WAAW,cAAc,CAAC,GAAG;AAC/D,YAAM,uBAAuB,MAAM,UAAU,IAAI,CAAC,IAAI,CAAC;AACvD,UAAI,aAAa,oBAAoB,GAAG;AACtC,cAAM,MAAM,OAAO,CAAC,oBAAoB,CAAC;AACzC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,eAAW,gBAAgB,KAAK,OAAO,WAAW,iBAAiB,CAAC,GAAG;AACrE,YAAM,kBAAkB,MAAM,IAAI,KAAK,MAAM,EAAE,cAAc,aAAa,CAAC,EAAE,MAAM;AACnF,UAAI,aAAa,eAAe,GAAG;AACjC,cAAM,MAAM,OAAO,CAAC,eAAe,CAAC;AACpC,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import type { BaseParams, Hash } from '@ariestools/sdk'\nimport { Base, exists } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk-protocol'\nimport {\n asBoundWitness, Huri, isAnyPayload,\n} from '@xyo-network/sdk-protocol'\nimport { Mutex } from 'async-mutex'\n\nimport { MemoryArchivist } from '#archivist-memory'\nimport type { ArchivistInstance } from '#archivist-model'\n\nexport interface PayloadWorkingSet {\n archivists?: ArchivistInstance[]\n huriEndpoints?: string[]\n payloads?: Payload[]\n}\n\nexport interface BoundWitnessLoaderParams extends BaseParams {\n cache?: ArchivistInstance\n workingSet: PayloadWorkingSet\n}\n\nexport class BoundWitnessLoader extends Base<BoundWitnessLoaderParams> {\n private _cache?: ArchivistInstance\n private _createCacheMutex = new Mutex()\n\n async load(hash: Hash | Hash[]): Promise<Payload[]> {\n if (Array.isArray(hash)) {\n const loaded = await Promise.all(hash.map(h => this.load(h)))\n return loaded.flat()\n }\n const bw = asBoundWitness(await this.getPayload(hash))\n if (bw) {\n const fetched = await Promise.all(bw.payload_hashes.map(hash => this.getPayload(hash)))\n const payloads = fetched.filter(exists)\n return [bw, ...payloads]\n }\n return []\n }\n\n private async getCache() {\n return await this._createCacheMutex.runExclusive(async () => {\n this._cache ??= this.params.cache ?? (await MemoryArchivist.create({ account: 'random' }))\n if (this.params.workingSet.payloads) await this._cache.insert(this.params.workingSet.payloads)\n return this._cache\n })\n }\n\n private async getPayload(hash: Hash): Promise<Payload | undefined> {\n const cache = await this.getCache()\n const cached = await cache.get([hash])\n const payloadFromCache = cached.at(0)\n if (isAnyPayload(payloadFromCache)) {\n return payloadFromCache\n }\n\n const workingSetArchivists = this.params.workingSet.archivists ?? []\n for (const archivist of workingSetArchivists) {\n const payloadFromArchivist = await archivist.get([hash])\n if (isAnyPayload(payloadFromArchivist)) {\n await cache.insert([payloadFromArchivist])\n return payloadFromArchivist\n }\n }\n\n const huriEndpoints = this.params.workingSet.huriEndpoints ?? []\n for (const huriEndpoint of huriEndpoints) {\n const huri = new Huri(hash, { archivistUri: huriEndpoint })\n const payloadFromHuri = await huri.fetch()\n if (isAnyPayload(payloadFromHuri)) {\n await cache.insert([payloadFromHuri])\n return payloadFromHuri\n }\n }\n }\n}\n"],
5
+ "mappings": ";AACA,SAAS,MAAM,cAAc;AAE7B;AAAA,EACE;AAAA,EAAgB;AAAA,EAAM;AAAA,OACjB;AACP,SAAS,aAAa;AAEtB,SAAS,uBAAuB;AAczB,IAAM,qBAAN,cAAiC,KAA+B;AAAA,EAC7D;AAAA,EACA,oBAAoB,IAAI,MAAM;AAAA,EAEtC,MAAM,KAAK,MAAyC;AAClD,QAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,YAAM,SAAS,MAAM,QAAQ,IAAI,KAAK,IAAI,OAAK,KAAK,KAAK,CAAC,CAAC,CAAC;AAC5D,aAAO,OAAO,KAAK;AAAA,IACrB;AACA,UAAM,KAAK,eAAe,MAAM,KAAK,WAAW,IAAI,CAAC;AACrD,QAAI,IAAI;AACN,YAAM,UAAU,MAAM,QAAQ,IAAI,GAAG,eAAe,IAAI,CAAAA,UAAQ,KAAK,WAAWA,KAAI,CAAC,CAAC;AACtF,YAAM,WAAW,QAAQ,OAAO,MAAM;AACtC,aAAO,CAAC,IAAI,GAAG,QAAQ;AAAA,IACzB;AACA,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,MAAc,WAAW;AACvB,WAAO,MAAM,KAAK,kBAAkB,aAAa,YAAY;AAC3D,WAAK,WAAW,KAAK,OAAO,SAAU,MAAM,gBAAgB,OAAO,EAAE,SAAS,SAAS,CAAC;AACxF,UAAI,KAAK,OAAO,WAAW,SAAU,OAAM,KAAK,OAAO,OAAO,KAAK,OAAO,WAAW,QAAQ;AAC7F,aAAO,KAAK;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EAEA,MAAc,WAAW,MAA0C;AACjE,UAAM,QAAQ,MAAM,KAAK,SAAS;AAClC,UAAM,SAAS,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC;AACrC,UAAM,mBAAmB,OAAO,GAAG,CAAC;AACpC,QAAI,aAAa,gBAAgB,GAAG;AAClC,aAAO;AAAA,IACT;AAEA,UAAM,uBAAuB,KAAK,OAAO,WAAW,cAAc,CAAC;AACnE,eAAW,aAAa,sBAAsB;AAC5C,YAAM,uBAAuB,MAAM,UAAU,IAAI,CAAC,IAAI,CAAC;AACvD,UAAI,aAAa,oBAAoB,GAAG;AACtC,cAAM,MAAM,OAAO,CAAC,oBAAoB,CAAC;AACzC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,UAAM,gBAAgB,KAAK,OAAO,WAAW,iBAAiB,CAAC;AAC/D,eAAW,gBAAgB,eAAe;AACxC,YAAM,OAAO,IAAI,KAAK,MAAM,EAAE,cAAc,aAAa,CAAC;AAC1D,YAAM,kBAAkB,MAAM,KAAK,MAAM;AACzC,UAAI,aAAa,eAAe,GAAG;AACjC,cAAM,MAAM,OAAO,CAAC,eAAe,CAAC;AACpC,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;",
6
6
  "names": ["hash"]
7
7
  }
@@ -55,10 +55,9 @@ var AbstractBridge = class extends AbstractModuleInstance {
55
55
  const workingSet = options.direction === "up" ? [this] : [...roots, this];
56
56
  if (id === "*") {
57
57
  const remainingDepth = (options.maxDepth ?? 5) - 1;
58
- return remainingDepth <= 0 ? workingSet : (
59
- // eslint-disable-next-line @typescript-eslint/await-thenable
60
- [...workingSet, ...(await Promise.all(roots.map((mod) => mod.resolve("*", { ...options, maxDepth: remainingDepth })))).flat()]
61
- );
58
+ if (remainingDepth <= 0) return workingSet;
59
+ const nested = await Promise.all(roots.map((mod) => mod.resolve("*", { ...options, maxDepth: remainingDepth })));
60
+ return [...workingSet, ...nested.flat()];
62
61
  }
63
62
  switch (typeof id) {
64
63
  case "string": {
@@ -139,10 +138,16 @@ var AbstractBridge = class extends AbstractModuleInstance {
139
138
  async resolveArchivingArchivists() {
140
139
  const archivists = this.archiving?.archivists;
141
140
  if (!archivists) return [];
142
- const resolvedAddresses = (await Promise.all(
143
- archivists.map(async (archivist) => (await Promise.all((await this.parents()).map((parent) => resolvePathToAddress(parent, archivist)))).filter(exists))
144
- )).flat().filter(exists);
145
- const resolved = (await Promise.all(resolvedAddresses.map((address) => resolveAddressToInstance(this, address)))).filter(exists);
141
+ const resolvedAddressesNested = await Promise.all(
142
+ archivists.map(async (archivist) => {
143
+ const parents = await this.parents();
144
+ const addresses = await Promise.all(parents.map((parent) => resolvePathToAddress(parent, archivist)));
145
+ return addresses.filter(exists);
146
+ })
147
+ );
148
+ const resolvedAddresses = resolvedAddressesNested.flat().filter(exists);
149
+ const resolvedInstances = await Promise.all(resolvedAddresses.map((address) => resolveAddressToInstance(this, address)));
150
+ const resolved = resolvedInstances.filter(exists);
146
151
  return resolved.map((mod) => asArchivistInstance(mod)).filter(exists);
147
152
  }
148
153
  };
@@ -268,12 +273,13 @@ var ModuleProxyResolver = class {
268
273
  }
269
274
  // eslint-disable-next-line complexity
270
275
  async resolve(id = "*", options) {
271
- const direction = options?.direction ?? "all";
272
276
  if (id === "*") {
273
277
  const childAddresses = Object.keys(this.childAddressMap);
274
278
  const resolvedChildren = await Promise.all(childAddresses.map((address) => this.resolve(address, options)));
275
279
  return resolvedChildren.filter(exists2);
276
- } else if (typeof id === "string") {
280
+ }
281
+ const direction = options?.direction ?? "all";
282
+ if (typeof id === "string") {
277
283
  const idParts = id.split(":");
278
284
  const firstPart = assertEx2(idParts.shift(), () => "Invalid module identifier at first position");
279
285
  const firstPartAddress = await this.resolveIdentifier(firstPart);
@@ -282,19 +288,19 @@ var ModuleProxyResolver = class {
282
288
  if (direction === "down" || direction === "all") {
283
289
  const downResolverModule = await this.downResolver.resolve(firstPartAddress);
284
290
  if (downResolverModule) {
285
- return remainingParts ? downResolverModule.resolve(remainingParts, options) : downResolverModule;
291
+ return remainingParts !== void 0 && remainingParts !== "" ? downResolverModule.resolve(remainingParts, options) : downResolverModule;
286
292
  }
287
293
  console.log(`ModuleProxyResolver: ${firstPartAddress} | ${this.root.address}`);
288
294
  if (firstPartAddress === this.root.address) {
289
295
  const wrapped = wrapModuleWithType(this.root, await Account.random());
290
- return remainingParts ? wrapped?.resolve(remainingParts, options) : wrapped;
296
+ return remainingParts !== void 0 && remainingParts !== "" ? wrapped?.resolve(remainingParts, options) : wrapped;
291
297
  }
292
298
  const addressToProxy = Object.keys(this.childAddressMap).includes(firstPartAddress) ? firstPartAddress : Object.entries(this.childAddressMap).find(([_, value]) => value === firstPartAddress)?.[0];
293
299
  if (addressToProxy) {
294
300
  const proxy = await this.host.resolve(addressToProxy, { ...options, direction: "down" });
295
301
  if (proxy) {
296
302
  const wrapped = wrapModuleWithType(proxy, await Account.random());
297
- return remainingParts ? wrapped?.resolve(remainingParts, options) : wrapped;
303
+ return remainingParts !== void 0 && remainingParts !== "" ? wrapped?.resolve(remainingParts, options) : wrapped;
298
304
  }
299
305
  return;
300
306
  }
@@ -304,7 +310,7 @@ var ModuleProxyResolver = class {
304
310
  }
305
311
  }
306
312
  resolveIdentifier(id, _options) {
307
- if (this.childAddressMap[id]) {
313
+ if (Object.hasOwn(this.childAddressMap, id)) {
308
314
  return id;
309
315
  }
310
316
  if (this.root.address === id) {
@@ -324,6 +330,18 @@ var ModuleProxyResolver = class {
324
330
  };
325
331
 
326
332
  // src/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.ts
333
+ var collectChildAddresses = (manifest, result) => {
334
+ const children = manifest.modules?.public ?? [];
335
+ for (const child of children) {
336
+ if (typeof child !== "object") {
337
+ continue;
338
+ }
339
+ const address = child.status?.address;
340
+ if (isAddress(address)) {
341
+ result[address] = child.config.name ?? null;
342
+ }
343
+ }
344
+ };
327
345
  var AbstractModuleProxy = class extends AbstractModuleInstance2 {
328
346
  static requiredQueries = [ModuleStateQuerySchema];
329
347
  _config;
@@ -370,8 +388,9 @@ var AbstractModuleProxy = class extends AbstractModuleInstance2 {
370
388
  }
371
389
  async addressPreviousHash() {
372
390
  const queryPayload = { schema: ModuleAddressQuerySchema };
391
+ const queryResult = await this.sendQuery(queryPayload, void 0, this.account);
373
392
  const result = assertEx3(
374
- (await this.sendQuery(queryPayload, void 0, this.account)).find(
393
+ queryResult.find(
375
394
  isPayloadOfSchemaType2(AddressPreviousHashSchema)
376
395
  ),
377
396
  () => "Result did not include correct payload"
@@ -390,16 +409,9 @@ var AbstractModuleProxy = class extends AbstractModuleInstance2 {
390
409
  const state = await this.state();
391
410
  nodeManifests = state.filter(isPayloadOfSchemaType2(NodeManifestPayloadSchema));
392
411
  }
393
- for (const manifest of nodeManifests ?? []) {
394
- const children = manifest.modules?.public ?? [];
395
- for (const child of children) {
396
- if (typeof child === "object") {
397
- const address = child.status?.address;
398
- if (isAddress(address)) {
399
- result[address] = child.config.name ?? null;
400
- }
401
- }
402
- }
412
+ const manifests = nodeManifests ?? [];
413
+ for (const manifest of manifests) {
414
+ collectChildAddresses(manifest, result);
403
415
  }
404
416
  return result;
405
417
  }
@@ -424,8 +436,9 @@ var AbstractModuleProxy = class extends AbstractModuleInstance2 {
424
436
  );
425
437
  }
426
438
  async manifest(maxDepth) {
427
- const queryPayload = { schema: ModuleManifestQuerySchema, ...maxDepth === void 0 ? {} : { maxDepth } };
428
- return (await this.sendQuery(queryPayload))[0];
439
+ const queryPayload = { schema: ModuleManifestQuerySchema, ...maxDepth !== void 0 && { maxDepth } };
440
+ const queryResult = await this.sendQuery(queryPayload);
441
+ return queryResult[0];
429
442
  }
430
443
  async moduleAddress() {
431
444
  const queryPayload = { schema: ModuleAddressQuerySchema };
@@ -433,10 +446,11 @@ var AbstractModuleProxy = class extends AbstractModuleInstance2 {
433
446
  }
434
447
  async previousHash() {
435
448
  const queryPayload = { schema: ModuleAddressQuerySchema };
436
- return (await this.sendQuery(queryPayload)).pop().previousHash;
449
+ const queryResult = await this.sendQuery(queryPayload);
450
+ return queryResult.pop().previousHash;
437
451
  }
438
452
  async publicChildren() {
439
- this._publicChildren = this._publicChildren ?? await super.publicChildren();
453
+ this._publicChildren ??= await super.publicChildren();
440
454
  return this._publicChildren;
441
455
  }
442
456
  async query(query, payloads) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/bridge-abstract/AbstractBridge.ts", "../../src/modules/bridge-abstract/AbstractBridgeModuleResolver.ts", "../../src/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.ts", "../../src/modules/bridge-abstract/AbstractModuleProxy/ModuleProxyResolver.ts", "../../src/modules/bridge-abstract/wrapModuleWithType.ts"],
4
- "sourcesContent": ["import type { Promisable } from '@ariestools/sdk'\nimport {\n assertEx, exists, forget,\n} from '@ariestools/sdk'\nimport type {\n Payload, QueryBoundWitness, Schema, XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport { isPayloadOfSchemaType, QueryBoundWitnessWrapper } from '@xyo-network/sdk-protocol'\n\nimport type { ArchivistInstance } from '#archivist-model'\nimport { asArchivistInstance } from '#archivist-model'\nimport type {\n AttachableBridgeInstance,\n BridgeExposeOptions,\n BridgeModuleEventData,\n BridgeParams,\n BridgeQueries,\n BridgeUnexposeOptions,\n ModuleFilterPayload,\n} from '#bridge-model'\nimport {\n BridgeConfigSchema,\n BridgeConnectQuerySchema,\n BridgeDisconnectQuerySchema,\n BridgeExposeQuerySchema,\n BridgeUnexposeQuerySchema,\n ModuleFilterPayloadSchema,\n} from '#bridge-model'\nimport { AbstractModuleInstance } from '#module-abstract'\nimport type {\n AddressPayload,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleResolverInstance,\n} from '#module-model'\nimport { AddressSchema } from '#module-model'\nimport {\n resolveAddressToInstance,\n resolvePathToAddress,\n transformModuleIdentifier,\n} from '#module-resolver'\n\nexport abstract class AbstractBridge<TParams extends BridgeParams = BridgeParams>\n extends AbstractModuleInstance<TParams, BridgeModuleEventData>\n implements AttachableBridgeInstance<TParams, BridgeModuleEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, BridgeConfigSchema]\n static override readonly defaultConfigSchema: Schema = BridgeConfigSchema\n\n protected _roots?: ModuleInstance[]\n\n override get allowNameResolution(): boolean {\n // we default to false here to prevent name collisions\n return this.params.allowNameResolution ?? true\n }\n\n get discoverRoots(): false | 'start' | 'lazy' {\n return this.config.client?.discoverRoots ?? (this.config.client === undefined ? false : 'start')\n }\n\n override get queries(): Schema[] {\n return [BridgeConnectQuerySchema, BridgeDisconnectQuerySchema, BridgeExposeQuerySchema, BridgeUnexposeQuerySchema, ...super.queries]\n }\n\n get resolver(): Promisable<ModuleResolverInstance> {\n return assertEx(this.params.resolver, () => 'No resolver provided')\n }\n\n async expose(id: ModuleIdentifier, options?: BridgeExposeOptions): Promise<ModuleInstance[]> {\n this._noOverride('expose')\n assertEx(id !== '*', () => \"Exposing '*' not supported\")\n const addressToExpose = assertEx(await resolvePathToAddress(this, id), () => `Module to expose not found [${id}]`)\n console.log(`expose: ${addressToExpose}`)\n const modules = await this.exposeHandler(addressToExpose, options)\n await this.emit('exposed', { mod: this, modules })\n return modules\n }\n\n async exposed(): Promise<XyoAddress[]> {\n this._noOverride('exposed')\n return await this.exposedHandler()\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\n override async resolve<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier = '*',\n options: ModuleFilterOptions<T> = {},\n ): Promise<T | T[] | undefined> {\n const roots = (this._roots ?? []) as T[]\n const workingSet = (options.direction === 'up' ? [this as ModuleInstance] : [...roots, this]) as T[]\n if (id === '*') {\n const remainingDepth = (options.maxDepth ?? 5) - 1\n return remainingDepth <= 0\n ? workingSet\n : (\n // eslint-disable-next-line @typescript-eslint/await-thenable\n [...workingSet, ...(await Promise.all(roots.map(mod => mod.resolve('*', { ...options, maxDepth: remainingDepth })))).flat()]\n )\n }\n switch (typeof id) {\n case 'string': {\n const parts = id.split(':')\n const first = assertEx(parts.shift(), () => 'Missing module identifier')\n const firstId = await transformModuleIdentifier(first, this.moduleIdentifierTransformers)\n const result = workingSet.find((mod) => {\n return firstId === mod.address || firstId === mod.modName\n })\n return parts.length === 0 ? result : result?.resolve(parts.join(':'), options)\n }\n default: {\n return\n }\n }\n }\n\n override async startHandler(): Promise<void> {\n if (this.discoverRoots === 'lazy') {\n forget(this.getRoots())\n } else if (this.discoverRoots === 'start') {\n await this.getRoots()\n }\n }\n\n async unexpose(id: ModuleIdentifier, options?: BridgeUnexposeOptions): Promise<XyoAddress[]> {\n this._noOverride('unexpose')\n const addressToUnexpose = assertEx(await resolvePathToAddress(this, id), () => `Module to unexpose not found [${id}]`)\n const modules = await this.unexposeHandler(addressToUnexpose, options)\n await this.emit('unexposed', { mod: this, modules })\n return modules.map(mod => mod.address)\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness>(\n query: T,\n payloads?: Payload[],\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = QueryBoundWitnessWrapper.parseQuery<BridgeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n const resultPayloads: Payload[] = []\n\n switch (queryPayload.schema) {\n case BridgeExposeQuerySchema: {\n const filterPayloads = (payloads ?? []).filter(isPayloadOfSchemaType<ModuleFilterPayload>(ModuleFilterPayloadSchema))\n assertEx(filterPayloads, () => 'At least one filter is required')\n\n await Promise.all(\n filterPayloads.map(async (filter) => {\n const { id, ...options } = filter\n const modules = await this.expose(id, options)\n for (const mod of modules) {\n const addressPayload: AddressPayload = {\n address: mod.address,\n schema: AddressSchema,\n }\n resultPayloads.push(addressPayload)\n }\n }),\n )\n break\n }\n case BridgeUnexposeQuerySchema: {\n const filterPayloads = (payloads ?? []).filter(isPayloadOfSchemaType<ModuleFilterPayload>(ModuleFilterPayloadSchema))\n assertEx(filterPayloads, () => 'At least one filter is required')\n\n await Promise.all(\n filterPayloads.map(async (filter) => {\n const { id, ...options } = filter\n const moduleAddresses = await this.unexpose(id, options)\n for (const address of moduleAddresses) {\n const addressPayload: AddressPayload = {\n address,\n schema: AddressSchema,\n }\n resultPayloads.push(addressPayload)\n }\n }),\n )\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n protected override async resolveArchivingArchivists(): Promise<ArchivistInstance[]> {\n const archivists = this.archiving?.archivists\n if (!archivists) return []\n const resolvedAddresses = (\n await Promise.all(\n archivists.map(async archivist =>\n (await Promise.all((await this.parents()).map(parent => resolvePathToAddress(parent, archivist)))).filter(exists)),\n )\n )\n .flat()\n .filter(exists)\n const resolved = (await Promise.all(resolvedAddresses.map(address => resolveAddressToInstance(this, address)))).filter(exists)\n return resolved.map(mod => asArchivistInstance(mod)).filter(exists)\n }\n\n abstract exposeHandler(address: XyoAddress, options?: BridgeExposeOptions): Promisable<ModuleInstance[]>\n\n abstract exposedHandler(): Promisable<XyoAddress[]>\n\n abstract getRoots(force?: boolean): Promise<ModuleInstance[]>\n\n abstract unexposeHandler(address: XyoAddress, options?: BridgeUnexposeOptions): Promisable<ModuleInstance[]>\n}\n", "import type { AccountInstance } from '@xyo-network/sdk-protocol'\n\nimport type { ArchivistInstance } from '#archivist-model'\nimport type {\n BridgeInstance, QuerySendFinishedEventArgs, QuerySendStartedEventArgs,\n} from '#bridge-model'\nimport type {\n ArchivingModuleConfig,\n CacheConfig,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n} from '#module-model'\nimport { ObjectResolverPriority } from '#module-model'\nimport type { ModuleResolverParams } from '#module-resolver'\nimport { CompositeModuleResolver } from '#module-resolver'\n\nimport type { ModuleProxyParams } from './AbstractModuleProxy/index.ts'\n\nexport interface BridgeModuleResolverParams extends ModuleResolverParams {\n additionalSigners?: AccountInstance[]\n archiving?: ArchivingModuleConfig['archiving'] & { resolveArchivists: () => Promise<ArchivistInstance[]> }\n bridge: BridgeInstance\n cacheConfig?: CacheConfig\n onQuerySendFinished?: (args: Omit<QuerySendFinishedEventArgs, 'mod'>) => void\n onQuerySendStarted?: (args: Omit<QuerySendStartedEventArgs, 'mod'>) => void\n wrapperAccount: AccountInstance\n}\n\nexport abstract class AbstractBridgeModuleResolver<\n TParams extends BridgeModuleResolverParams = BridgeModuleResolverParams,\n TProxyParams extends ModuleProxyParams = ModuleProxyParams,\n> extends CompositeModuleResolver<TParams> {\n override get priority(): 0 {\n return ObjectResolverPriority.VeryLow\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n _params?: Partial<TProxyParams>,\n ): Promise<T[]> {\n if (id === '*') {\n return []\n }\n return await super.resolveHandler(id, options)\n }\n}\n", "import {\n asAddress, assertEx,\n exists,\n forget,\n isAddress, toSafeJsonString,\n} from '@ariestools/sdk'\nimport type {\n AccountInstance, ModuleError, ModuleManifestPayload, NodeManifestPayload,\n Payload, QueryBoundWitness, QueryPayload, Schema, XyoAddress,\n XyoQuantAddress,\n} from '@xyo-network/sdk-protocol'\nimport {\n Account, BoundWitnessWrapper, isPayloadOfSchemaType, isSchema, ModuleErrorSchema, ModuleManifestPayloadSchema, NodeManifestPayloadSchema, PayloadBuilder,\n QueryBoundWitnessWrapper, QuerySchema,\n} from '@xyo-network/sdk-protocol'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ArchivistInstance } from '#archivist-model'\nimport type { QuerySendFinishedEventArgs, QuerySendStartedEventArgs } from '#bridge-model'\nimport { AbstractModuleInstance } from '#module-abstract'\nimport type {\n AddressPreviousHashPayload,\n AnyConfigSchema,\n ArchivingModuleConfig,\n AttachableModuleInstance,\n ModuleAddressQuery,\n ModuleConfig,\n ModuleEventData,\n ModuleInstance,\n ModuleManifestQuery,\n ModuleName,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n ModuleResolver,\n QueryableModule,\n QueryableModuleParams,\n} from '#module-model'\nimport {\n AddressPreviousHashSchema,\n DeadModuleError,\n ModuleAddressQuerySchema,\n ModuleConfigSchema,\n ModuleManifestQuerySchema,\n ModuleStateQuerySchema,\n} from '#module-model'\nimport { ModuleWrapper } from '#module-wrapper'\n\nimport { ModuleProxyResolver } from './ModuleProxyResolver.ts'\n\nexport interface ModuleProxyParams extends QueryableModuleParams\n{\n account: AccountInstance\n archiving?: ArchivingModuleConfig['archiving'] & { resolveArchivists: () => Promise<ArchivistInstance[]> }\n host: ModuleResolver\n manifest?: ModuleManifestPayload\n moduleAddress: XyoAddress\n onQuerySendFinished?: (args: Omit<QuerySendFinishedEventArgs, 'mod'>) => void\n onQuerySendStarted?: (args: Omit<QuerySendStartedEventArgs, 'mod'>) => void\n state?: Payload[]\n}\n\nexport abstract class AbstractModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends ModuleProxyParams = ModuleProxyParams,\n>\n extends AbstractModuleInstance<TParams, TWrappedModule['eventData']>\n implements ModuleInstance<TParams, TWrappedModule['eventData']> {\n static readonly requiredQueries: string[] = [ModuleStateQuerySchema]\n\n protected _config?: TWrappedModule['config']\n protected _publicChildren?: ModuleInstance[]\n protected _state: Payload[] | undefined = undefined\n protected _stateInProcess = false\n\n private _spamTrap = new LRUCache<string, number>({\n max: 1000, ttl: 1000 * 60, ttlAutopurge: true,\n })\n\n override get address(): (Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress {\n return this.params.moduleAddress\n }\n\n override get archiving(): ArchivingModuleConfig['archiving'] | undefined {\n return this.params?.archiving\n }\n\n override get config(): TWrappedModule['config'] & { schema: Schema } {\n return { ...this._config, schema: (this._config?.schema ?? ModuleConfigSchema) }\n }\n\n override get queries(): Schema[] {\n const queryPayloads = assertEx(this._state, () => 'Module state not found. Make sure proxy has been started').filter(item =>\n isPayloadOfSchemaType<QueryPayload>(QuerySchema)(item))\n return queryPayloads.map(payload => payload.query)\n }\n\n static hasRequiredQueries(mod: QueryableModule): boolean {\n return this.missingRequiredQueries(mod).length === 0\n }\n\n static override isAllowedSchema(schema: Schema): boolean {\n return isSchema(schema)\n }\n\n static missingRequiredQueries(mod: QueryableModule): string[] {\n const moduleQueries = mod.queries\n return (\n this.requiredQueries.map((query) => {\n return moduleQueries.includes(query) ? null : query\n })\n ).filter(exists)\n }\n\n static override async paramsHandler<T extends AttachableModuleInstance<QueryableModuleParams, ModuleEventData>>(\n inParams?: Partial<T['params']>,\n ): Promise<T['params']> {\n const superParams = await super.paramsHandler(inParams)\n return {\n ...superParams,\n account: (superParams.account === 'random') ? await Account.random() : superParams.account,\n addToResolvers: superParams.addToResolvers ?? true,\n }\n }\n\n async addressPreviousHash(): Promise<AddressPreviousHashPayload> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n const result: AddressPreviousHashPayload = assertEx(\n (await this.sendQuery(queryPayload, undefined, this.account)).find(\n isPayloadOfSchemaType<AddressPreviousHashPayload>(AddressPreviousHashSchema),\n ),\n () => 'Result did not include correct payload',\n )\n return result\n }\n\n childAddressByName(name: ModuleName): XyoAddress | undefined {\n const nodeManifests = this._state?.filter(isPayloadOfSchemaType<NodeManifestPayload>(NodeManifestPayloadSchema))\n const childPairs = nodeManifests?.flatMap(nodeManifest => Object.entries(nodeManifest.status?.children ?? {}) as [XyoAddress, ModuleName | null][])\n return asAddress(childPairs?.find(([_, childName]) => childName === name)?.[0])\n }\n\n async childAddressMap(): Promise<Record<XyoAddress, ModuleName | null>> {\n let nodeManifests: NodeManifestPayload[] | undefined\n = isPayloadOfSchemaType<NodeManifestPayload>(NodeManifestPayloadSchema)(this.params.manifest) ? [this.params.manifest] : undefined\n const result: Record<XyoAddress, ModuleName | null> = {}\n if (nodeManifests === undefined) {\n const state = await this.state()\n nodeManifests = state.filter(isPayloadOfSchemaType<NodeManifestPayload>(NodeManifestPayloadSchema))\n }\n for (const manifest of nodeManifests ?? []) {\n const children = manifest.modules?.public ?? []\n for (const child of children) {\n if (typeof child === 'object') {\n const address = child.status?.address\n if (isAddress(address)) {\n result[address] = child.config.name ?? null\n }\n }\n }\n }\n return result\n }\n\n override async createHandler(): Promise<void> {\n await super.createHandler()\n let manifest: ModuleManifestPayload | NodeManifestPayload | undefined = this.params.manifest\n if (!manifest) {\n const state = await this.state()\n const manifestPayload = state.find(\n payload => isPayloadOfSchemaType<NodeManifestPayload>(NodeManifestPayloadSchema)(payload)\n || isPayloadOfSchemaType<ModuleManifestPayload>(ModuleManifestPayloadSchema)(payload),\n )\n manifest = assertEx(manifestPayload, () => \"Can't find manifest payload\")\n }\n this.setConfig({ ...manifest.config })\n this.downResolver.addResolver(\n new ModuleProxyResolver({\n childAddressMap: await this.childAddressMap(),\n host: this.params.host,\n mod: this,\n moduleIdentifierTransformers: this.params.moduleIdentifierTransformers,\n }),\n )\n }\n\n override async manifest(maxDepth?: number): Promise<ModuleManifestPayload> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth === undefined ? {} : { maxDepth }) }\n return (await this.sendQuery(queryPayload))[0] as ModuleManifestPayload\n }\n\n override async moduleAddress(): Promise<AddressPreviousHashPayload[]> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return (await this.sendQuery(queryPayload))\n }\n\n override async previousHash(): Promise<string | undefined> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return ((await this.sendQuery(queryPayload)).pop() as AddressPreviousHashPayload).previousHash\n }\n\n override async publicChildren(): Promise<ModuleInstance<QueryableModuleParams<AnyConfigSchema<ModuleConfig>>, ModuleEventData<object>>[]> {\n this._publicChildren = this._publicChildren ?? (await super.publicChildren())\n return this._publicChildren\n }\n\n override async query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult> {\n this._checkDead()\n return await this.busy(async () => {\n try {\n await this.checkSpam(query)\n if (this.archiving && this.isAllowedArchivingQuery(query.schema)) {\n forget(this.storeToArchivists([query, ...(payloads ?? [])]))\n }\n this.params.onQuerySendStarted?.({ payloads, query })\n const result = await this.proxyQueryHandler<T>(query, payloads)\n this.params.onQuerySendFinished?.({\n payloads, query, result, status: 'success',\n })\n if (this.archiving && this.isAllowedArchivingQuery(query.schema)) {\n forget(this.storeToArchivists(result.flat()))\n }\n forget(this.emit('moduleQueried', {\n mod: this, payloads, query, result,\n }))\n return result\n } catch (ex) {\n this.params.onQuerySendFinished?.({\n payloads, query, status: 'failure',\n })\n const error = ex as Error\n this._lastError = error\n // this.status = 'dead'\n const deadError = new DeadModuleError(this.address, error)\n const errorPayload: ModuleError = {\n message: deadError.message,\n name: deadError.name,\n schema: ModuleErrorSchema,\n }\n const sourceQuery = assertEx(QueryBoundWitnessWrapper.unwrap(query), () => 'Invalid query')\n return await this.bindQueryResult(sourceQuery, [], undefined, [errorPayload])\n }\n })\n }\n\n override queryHandler<T extends QueryBoundWitness = QueryBoundWitness>(\n _query: T,\n _payloads?: Payload[],\n _queryConfig?: TWrappedModule['params']['config'],\n ): Promise<ModuleQueryHandlerResult> {\n throw new Error('queryHandler should never be called')\n }\n\n override async queryable<T extends QueryBoundWitness = QueryBoundWitness>(\n _query: T,\n _payloads?: Payload[],\n _queryConfig?: TWrappedModule['params']['config'],\n ): Promise<boolean> {\n return true\n }\n\n override async resolveArchivingArchivists(): Promise<ArchivistInstance[]> {\n return (await this.params.archiving?.resolveArchivists()) ?? []\n }\n\n setConfig(config: TWrappedModule['params']['config']): void {\n this._config = config\n }\n\n setState(state: Payload[]): void {\n this._state = state\n }\n\n override async state(): Promise<Payload[]> {\n if (this._state === undefined) {\n // temporarily add ModuleStateQuerySchema to the schema list so we can wrap it and get the real query list\n const stateQueryPayload: QueryPayload = { query: ModuleStateQuerySchema, schema: QuerySchema }\n const manifestQueryPayload: QueryPayload = { query: ModuleManifestQuerySchema, schema: QuerySchema }\n this._state = [stateQueryPayload, manifestQueryPayload]\n const wrapper = ModuleWrapper.wrap(this, await Account.random())\n this._state = await wrapper.state()\n }\n return this._state\n }\n\n protected filterErrors(result: ModuleQueryResult): ModuleError[] {\n const wrapper = BoundWitnessWrapper.wrap(result[0], result[1])\n return wrapper.payloadsBySchema<ModuleError>(ModuleErrorSchema)\n }\n\n protected override async startHandler(): Promise<void> {\n return await super.startHandler()\n }\n\n // this checks and warns if we are getting spammed by the same query\n private async checkSpam(query: QueryBoundWitness) {\n const hash = await PayloadBuilder.hash(query)\n const previousCount = this._spamTrap.get(hash) ?? 0\n if (previousCount > 0) {\n this.logger?.warn(`Spam trap triggered for query: ${hash} from ${toSafeJsonString(query.addresses)}`)\n }\n this._spamTrap.set(hash, previousCount + 1)\n }\n\n abstract proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(_query: T, _payloads?: Payload[]): Promise<ModuleQueryResult>\n}\n", "import type { Promisable } from '@ariestools/sdk'\nimport { assertEx, exists } from '@ariestools/sdk'\nimport type {\n ModuleManifestPayload, XyoAddress, XyoQuantAddress,\n} from '@xyo-network/sdk-protocol'\nimport { Account } from '@xyo-network/sdk-protocol'\n\nimport type {\n AnyConfigSchema,\n ModuleConfig,\n ModuleEventData,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleIdentifierTransformer,\n ModuleInstance,\n ModuleName,\n ModuleResolver,\n ModuleResolverInstance,\n ObjectFilterOptions,\n QueryableModuleParams,\n} from '#module-model'\nimport { ObjectResolverPriority } from '#module-model'\nimport { CompositeModuleResolver } from '#module-resolver'\n\nimport { wrapModuleWithType } from '../wrapModuleWithType.ts'\n\nexport interface ModuleProxyResolverOptions {\n childAddressMap: Record<XyoAddress, ModuleName | null>\n childManifests?: Record<XyoAddress, ModuleManifestPayload>\n childStates?: Record<XyoAddress, ModuleManifestPayload>\n host: ModuleResolver\n mod: ModuleInstance\n moduleIdentifierTransformers?: ModuleIdentifierTransformer[]\n}\n\nexport class ModuleProxyResolver<T extends ModuleProxyResolverOptions = ModuleProxyResolverOptions> implements ModuleResolverInstance {\n private downResolver: CompositeModuleResolver\n private options: T\n\n constructor(options: T) {\n this.options = options\n this.downResolver = new CompositeModuleResolver({ moduleIdentifierTransformers: options.moduleIdentifierTransformers, root: this.root })\n }\n\n get priority(): 0 {\n return ObjectResolverPriority.VeryLow\n }\n\n get root(): ModuleInstance {\n return this.options.mod\n }\n\n protected get childAddressMap(): Record<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress, string | null> {\n return this.options.childAddressMap\n }\n\n protected get host(): ModuleResolver<ModuleInstance<QueryableModuleParams<AnyConfigSchema<ModuleConfig>>, ModuleEventData<object>>> {\n return this.options.host\n }\n\n protected get mod(): ModuleInstance {\n return this.options.mod\n }\n\n addResolver(_resolver: ModuleResolver): this {\n throw new Error('Not supported')\n }\n\n childManifest(address: XyoAddress): ModuleManifestPayload | undefined {\n return this.options.childManifests?.[address]\n }\n\n childState(address: XyoAddress): ModuleManifestPayload | undefined {\n return this.options.childStates?.[address]\n }\n\n removeResolver(_resolver: ModuleResolver): this {\n throw new Error('Not supported')\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n async resolve(): Promise<ModuleInstance[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n // eslint-disable-next-line complexity\n async resolve<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier = '*',\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n // console.log(`childAddressMap: ${toSafeJsonString(this.childAddressMap, 10)}`)\n const direction = options?.direction ?? 'all'\n if (id === '*') {\n // get all the child addresses. if they have been resolved before, they should be in downResolver\n const childAddresses = Object.keys(this.childAddressMap)\n const resolvedChildren = await Promise.all(childAddresses.map<Promise<T | undefined>>(address => this.resolve<T>(address, options)))\n return resolvedChildren.filter(exists)\n } else if (typeof id === 'string') {\n const idParts = id.split(':')\n const firstPart: ModuleIdentifier = assertEx(idParts.shift(), () => 'Invalid module identifier at first position')\n const firstPartAddress = await this.resolveIdentifier(firstPart)\n if (firstPartAddress) {\n const remainingParts = idParts.length > 0 ? idParts.join(':') : undefined\n if (direction === 'down' || direction === 'all') {\n const downResolverModule = await this.downResolver.resolve<T>(firstPartAddress)\n if (downResolverModule) {\n return remainingParts ? downResolverModule.resolve(remainingParts, options) : downResolverModule\n }\n\n console.log(`ModuleProxyResolver: ${firstPartAddress} | ${this.root.address}`)\n if (firstPartAddress === this.root.address) {\n const wrapped = wrapModuleWithType(this.root, await Account.random()) as unknown as T\n return remainingParts ? wrapped?.resolve(remainingParts, options) : wrapped\n }\n\n // if it is a known child, create a proxy\n const addressToProxy\n = Object.keys(this.childAddressMap).includes(firstPartAddress)\n ? (firstPartAddress)\n : (Object.entries(this.childAddressMap).find(([_, value]) => value === firstPartAddress)?.[0] as XyoAddress | undefined)\n if (addressToProxy) {\n const proxy = await this.host.resolve(addressToProxy, { ...options, direction: 'down' })\n if (proxy) {\n const wrapped = wrapModuleWithType(proxy, await Account.random()) as unknown as T\n return remainingParts ? wrapped?.resolve(remainingParts, options) : wrapped\n }\n return\n }\n }\n }\n return\n }\n }\n\n resolveIdentifier(id: ModuleIdentifier, _options?: ObjectFilterOptions): Promisable<XyoAddress | undefined> {\n // check if any of the modules have the id as an address\n if (this.childAddressMap[id as XyoAddress]) {\n return id as XyoAddress\n }\n\n if (this.root.address === id) {\n return this.root.address\n }\n\n if (this.root.modName === id) {\n return this.root.address\n }\n\n // check if id is a name of one of modules in the resolver\n const addressFromName = Object.entries(this.childAddressMap).find(([, name]) => name === id)?.[0] as XyoAddress | undefined\n if (addressFromName) {\n return addressFromName\n }\n }\n\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ObjectFilterOptions<T>): Promise<T[]>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ObjectFilterOptions<T>): Promise<T | undefined>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n _options?: ObjectFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n if (id === '*') return []\n }\n}\n", "import type { AccountInstance } from '@xyo-network/sdk-protocol'\n\nimport { isArchivistModule } from '#archivist-model'\nimport { ArchivistWrapper } from '#archivist-wrapper'\nimport { isDivinerModule } from '#diviner-model'\nimport { DivinerWrapper } from '#diviner-wrapper'\nimport type { QueryableModule } from '#module-model'\nimport type { ModuleWrapper } from '#module-wrapper'\nimport { isNodeModule } from '#node-model'\nimport { NodeWrapper } from '#node-wrapper'\nimport { isSentinelModule } from '#sentinel-model'\nimport { SentinelWrapper } from '#sentinel-wrapper'\nimport { isWitnessModule } from '#witness-model'\nimport { WitnessWrapper } from '#witness-wrapper'\n\nexport const wrapModuleWithType = (mod: QueryableModule, account: AccountInstance): ModuleWrapper => {\n if (isArchivistModule(mod)) {\n return ArchivistWrapper.wrap(mod, account)\n }\n if (isDivinerModule(mod)) {\n return DivinerWrapper.wrap(mod, account)\n }\n if (isNodeModule(mod)) {\n return NodeWrapper.wrap(mod, account)\n }\n if (isSentinelModule(mod)) {\n return SentinelWrapper.wrap(mod, account)\n }\n if (isWitnessModule(mod)) {\n return WitnessWrapper.wrap(mod, account)\n }\n throw new Error('Failed to wrap')\n}\n"],
5
- "mappings": ";AACA;AAAA,EACE;AAAA,EAAU;AAAA,EAAQ;AAAA,OACb;AAIP,SAAS,uBAAuB,gCAAgC;AAGhE,SAAS,2BAA2B;AAUpC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,8BAA8B;AASvC,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,IAAe,iBAAf,cACG,uBAC4D;AAAA,EACpE,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,kBAAkB;AAAA,EAC9F,OAAyB,sBAA8B;AAAA,EAE7C;AAAA,EAEV,IAAa,sBAA+B;AAE1C,WAAO,KAAK,OAAO,uBAAuB;AAAA,EAC5C;AAAA,EAEA,IAAI,gBAA0C;AAC5C,WAAO,KAAK,OAAO,QAAQ,kBAAkB,KAAK,OAAO,WAAW,SAAY,QAAQ;AAAA,EAC1F;AAAA,EAEA,IAAa,UAAoB;AAC/B,WAAO,CAAC,0BAA0B,6BAA6B,yBAAyB,2BAA2B,GAAG,MAAM,OAAO;AAAA,EACrI;AAAA,EAEA,IAAI,WAA+C;AACjD,WAAO,SAAS,KAAK,OAAO,UAAU,MAAM,sBAAsB;AAAA,EACpE;AAAA,EAEA,MAAM,OAAO,IAAsB,SAA0D;AAC3F,SAAK,YAAY,QAAQ;AACzB,aAAS,OAAO,KAAK,MAAM,4BAA4B;AACvD,UAAM,kBAAkB,SAAS,MAAM,qBAAqB,MAAM,EAAE,GAAG,MAAM,+BAA+B,EAAE,GAAG;AACjH,YAAQ,IAAI,WAAW,eAAe,EAAE;AACxC,UAAM,UAAU,MAAM,KAAK,cAAc,iBAAiB,OAAO;AACjE,UAAM,KAAK,KAAK,WAAW,EAAE,KAAK,MAAM,QAAQ,CAAC;AACjD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAAiC;AACrC,SAAK,YAAY,SAAS;AAC1B,WAAO,MAAM,KAAK,eAAe;AAAA,EACnC;AAAA,EAOA,MAAe,QACb,KAAuB,KACvB,UAAkC,CAAC,GACL;AAC9B,UAAM,QAAS,KAAK,UAAU,CAAC;AAC/B,UAAM,aAAc,QAAQ,cAAc,OAAO,CAAC,IAAsB,IAAI,CAAC,GAAG,OAAO,IAAI;AAC3F,QAAI,OAAO,KAAK;AACd,YAAM,kBAAkB,QAAQ,YAAY,KAAK;AACjD,aAAO,kBAAkB,IACrB;AAAA;AAAA,QAGE,CAAC,GAAG,YAAY,IAAI,MAAM,QAAQ,IAAI,MAAM,IAAI,SAAO,IAAI,QAAQ,KAAK,EAAE,GAAG,SAAS,UAAU,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAAA;AAAA,IAEnI;AACA,YAAQ,OAAO,IAAI;AAAA,MACjB,KAAK,UAAU;AACb,cAAM,QAAQ,GAAG,MAAM,GAAG;AAC1B,cAAM,QAAQ,SAAS,MAAM,MAAM,GAAG,MAAM,2BAA2B;AACvE,cAAM,UAAU,MAAM,0BAA0B,OAAO,KAAK,4BAA4B;AACxF,cAAM,SAAS,WAAW,KAAK,CAAC,QAAQ;AACtC,iBAAO,YAAY,IAAI,WAAW,YAAY,IAAI;AAAA,QACpD,CAAC;AACD,eAAO,MAAM,WAAW,IAAI,SAAS,QAAQ,QAAQ,MAAM,KAAK,GAAG,GAAG,OAAO;AAAA,MAC/E;AAAA,MACA,SAAS;AACP;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAe,eAA8B;AAC3C,QAAI,KAAK,kBAAkB,QAAQ;AACjC,aAAO,KAAK,SAAS,CAAC;AAAA,IACxB,WAAW,KAAK,kBAAkB,SAAS;AACzC,YAAM,KAAK,SAAS;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAM,SAAS,IAAsB,SAAwD;AAC3F,SAAK,YAAY,UAAU;AAC3B,UAAM,oBAAoB,SAAS,MAAM,qBAAqB,MAAM,EAAE,GAAG,MAAM,iCAAiC,EAAE,GAAG;AACrH,UAAM,UAAU,MAAM,KAAK,gBAAgB,mBAAmB,OAAO;AACrE,UAAM,KAAK,KAAK,aAAa,EAAE,KAAK,MAAM,QAAQ,CAAC;AACnD,WAAO,QAAQ,IAAI,SAAO,IAAI,OAAO;AAAA,EACvC;AAAA,EAEA,MAAyB,aACvB,OACA,UACmC;AACnC,UAAM,UAAU,yBAAyB,WAA0B,OAAO,QAAQ;AAClF,UAAM,eAAe,MAAM,QAAQ,SAAS;AAC5C,UAAM,iBAA4B,CAAC;AAEnC,YAAQ,aAAa,QAAQ;AAAA,MAC3B,KAAK,yBAAyB;AAC5B,cAAM,kBAAkB,YAAY,CAAC,GAAG,OAAO,sBAA2C,yBAAyB,CAAC;AACpH,iBAAS,gBAAgB,MAAM,iCAAiC;AAEhE,cAAM,QAAQ;AAAA,UACZ,eAAe,IAAI,OAAO,WAAW;AACnC,kBAAM,EAAE,IAAI,GAAG,QAAQ,IAAI;AAC3B,kBAAM,UAAU,MAAM,KAAK,OAAO,IAAI,OAAO;AAC7C,uBAAW,OAAO,SAAS;AACzB,oBAAM,iBAAiC;AAAA,gBACrC,SAAS,IAAI;AAAA,gBACb,QAAQ;AAAA,cACV;AACA,6BAAe,KAAK,cAAc;AAAA,YACpC;AAAA,UACF,CAAC;AAAA,QACH;AACA;AAAA,MACF;AAAA,MACA,KAAK,2BAA2B;AAC9B,cAAM,kBAAkB,YAAY,CAAC,GAAG,OAAO,sBAA2C,yBAAyB,CAAC;AACpH,iBAAS,gBAAgB,MAAM,iCAAiC;AAEhE,cAAM,QAAQ;AAAA,UACZ,eAAe,IAAI,OAAO,WAAW;AACnC,kBAAM,EAAE,IAAI,GAAG,QAAQ,IAAI;AAC3B,kBAAM,kBAAkB,MAAM,KAAK,SAAS,IAAI,OAAO;AACvD,uBAAW,WAAW,iBAAiB;AACrC,oBAAM,iBAAiC;AAAA,gBACrC;AAAA,gBACA,QAAQ;AAAA,cACV;AACA,6BAAe,KAAK,cAAc;AAAA,YACpC;AAAA,UACF,CAAC;AAAA,QACH;AACA;AAAA,MACF;AAAA,MACA,SAAS;AACP,eAAO,MAAM,MAAM,aAAa,OAAO,QAAQ;AAAA,MACjD;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAyB,6BAA2D;AAClF,UAAM,aAAa,KAAK,WAAW;AACnC,QAAI,CAAC,WAAY,QAAO,CAAC;AACzB,UAAM,qBACJ,MAAM,QAAQ;AAAA,MACZ,WAAW,IAAI,OAAM,eAClB,MAAM,QAAQ,KAAK,MAAM,KAAK,QAAQ,GAAG,IAAI,YAAU,qBAAqB,QAAQ,SAAS,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC;AAAA,IACrH,GAEC,KAAK,EACL,OAAO,MAAM;AAChB,UAAM,YAAY,MAAM,QAAQ,IAAI,kBAAkB,IAAI,aAAW,yBAAyB,MAAM,OAAO,CAAC,CAAC,GAAG,OAAO,MAAM;AAC7H,WAAO,SAAS,IAAI,SAAO,oBAAoB,GAAG,CAAC,EAAE,OAAO,MAAM;AAAA,EACpE;AASF;;;ACvMA,SAAS,8BAA8B;AAEvC,SAAS,+BAA+B;AAcjC,IAAe,+BAAf,cAGG,wBAAiC;AAAA,EACzC,IAAa,WAAc;AACzB,WAAO,uBAAuB;AAAA,EAChC;AAAA,EAEA,MAAe,eACb,IACA,SACA,SACc;AACd,QAAI,OAAO,KAAK;AACd,aAAO,CAAC;AAAA,IACV;AACA,WAAO,MAAM,MAAM,eAAe,IAAI,OAAO;AAAA,EAC/C;AACF;;;AC/CA;AAAA,EACE;AAAA,EAAW,YAAAA;AAAA,EACX,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA;AAAA,EAAW;AAAA,OACN;AAMP;AAAA,EACE,WAAAC;AAAA,EAAS;AAAA,EAAqB,yBAAAC;AAAA,EAAuB;AAAA,EAAU;AAAA,EAAmB;AAAA,EAA6B;AAAA,EAA2B;AAAA,EAC1I,4BAAAC;AAAA,EAA0B;AAAA,OACrB;AACP,SAAS,gBAAgB;AAIzB,SAAS,0BAAAC,+BAA8B;AAkBvC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,qBAAqB;;;AC5C9B,SAAS,YAAAC,WAAU,UAAAC,eAAc;AAIjC,SAAS,eAAe;AAgBxB,SAAS,0BAAAC,+BAA8B;AACvC,SAAS,2BAAAC,gCAA+B;;;ACpBxC,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAG/B,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAExB,IAAM,qBAAqB,CAAC,KAAsB,YAA4C;AACnG,MAAI,kBAAkB,GAAG,GAAG;AAC1B,WAAO,iBAAiB,KAAK,KAAK,OAAO;AAAA,EAC3C;AACA,MAAI,gBAAgB,GAAG,GAAG;AACxB,WAAO,eAAe,KAAK,KAAK,OAAO;AAAA,EACzC;AACA,MAAI,aAAa,GAAG,GAAG;AACrB,WAAO,YAAY,KAAK,KAAK,OAAO;AAAA,EACtC;AACA,MAAI,iBAAiB,GAAG,GAAG;AACzB,WAAO,gBAAgB,KAAK,KAAK,OAAO;AAAA,EAC1C;AACA,MAAI,gBAAgB,GAAG,GAAG;AACxB,WAAO,eAAe,KAAK,KAAK,OAAO;AAAA,EACzC;AACA,QAAM,IAAI,MAAM,gBAAgB;AAClC;;;ADGO,IAAM,sBAAN,MAA+H;AAAA,EAC5H;AAAA,EACA;AAAA,EAER,YAAY,SAAY;AACtB,SAAK,UAAU;AACf,SAAK,eAAe,IAAIC,yBAAwB,EAAE,8BAA8B,QAAQ,8BAA8B,MAAM,KAAK,KAAK,CAAC;AAAA,EACzI;AAAA,EAEA,IAAI,WAAc;AAChB,WAAOC,wBAAuB;AAAA,EAChC;AAAA,EAEA,IAAI,OAAuB;AACzB,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAc,kBAIuB;AACnC,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAc,OAAsH;AAClI,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAc,MAAsB;AAClC,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,YAAY,WAAiC;AAC3C,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAAA,EAEA,cAAc,SAAwD;AACpE,WAAO,KAAK,QAAQ,iBAAiB,OAAO;AAAA,EAC9C;AAAA,EAEA,WAAW,SAAwD;AACjE,WAAO,KAAK,QAAQ,cAAc,OAAO;AAAA,EAC3C;AAAA,EAEA,eAAe,WAAiC;AAC9C,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAAA;AAAA,EAOA,MAAM,QACJ,KAAuB,KACvB,SAC8B;AAE9B,UAAM,YAAY,SAAS,aAAa;AACxC,QAAI,OAAO,KAAK;AAEd,YAAM,iBAAiB,OAAO,KAAK,KAAK,eAAe;AACvD,YAAM,mBAAmB,MAAM,QAAQ,IAAI,eAAe,IAA4B,aAAW,KAAK,QAAW,SAAS,OAAO,CAAC,CAAC;AACnI,aAAO,iBAAiB,OAAOC,OAAM;AAAA,IACvC,WAAW,OAAO,OAAO,UAAU;AACjC,YAAM,UAAU,GAAG,MAAM,GAAG;AAC5B,YAAM,YAA8BC,UAAS,QAAQ,MAAM,GAAG,MAAM,6CAA6C;AACjH,YAAM,mBAAmB,MAAM,KAAK,kBAAkB,SAAS;AAC/D,UAAI,kBAAkB;AACpB,cAAM,iBAAiB,QAAQ,SAAS,IAAI,QAAQ,KAAK,GAAG,IAAI;AAChE,YAAI,cAAc,UAAU,cAAc,OAAO;AAC/C,gBAAM,qBAAqB,MAAM,KAAK,aAAa,QAAW,gBAAgB;AAC9E,cAAI,oBAAoB;AACtB,mBAAO,iBAAiB,mBAAmB,QAAQ,gBAAgB,OAAO,IAAI;AAAA,UAChF;AAEA,kBAAQ,IAAI,wBAAwB,gBAAgB,MAAM,KAAK,KAAK,OAAO,EAAE;AAC7E,cAAI,qBAAqB,KAAK,KAAK,SAAS;AAC1C,kBAAM,UAAU,mBAAmB,KAAK,MAAM,MAAM,QAAQ,OAAO,CAAC;AACpE,mBAAO,iBAAiB,SAAS,QAAQ,gBAAgB,OAAO,IAAI;AAAA,UACtE;AAGA,gBAAM,iBACF,OAAO,KAAK,KAAK,eAAe,EAAE,SAAS,gBAAgB,IACxD,mBACA,OAAO,QAAQ,KAAK,eAAe,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,MAAM,UAAU,gBAAgB,IAAI,CAAC;AAChG,cAAI,gBAAgB;AAClB,kBAAM,QAAQ,MAAM,KAAK,KAAK,QAAQ,gBAAgB,EAAE,GAAG,SAAS,WAAW,OAAO,CAAC;AACvF,gBAAI,OAAO;AACT,oBAAM,UAAU,mBAAmB,OAAO,MAAM,QAAQ,OAAO,CAAC;AAChE,qBAAO,iBAAiB,SAAS,QAAQ,gBAAgB,OAAO,IAAI;AAAA,YACtE;AACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,kBAAkB,IAAsB,UAAoE;AAE1G,QAAI,KAAK,gBAAgB,EAAgB,GAAG;AAC1C,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,KAAK,YAAY,IAAI;AAC5B,aAAO,KAAK,KAAK;AAAA,IACnB;AAEA,QAAI,KAAK,KAAK,YAAY,IAAI;AAC5B,aAAO,KAAK,KAAK;AAAA,IACnB;AAGA,UAAM,kBAAkB,OAAO,QAAQ,KAAK,eAAe,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,MAAM,SAAS,EAAE,IAAI,CAAC;AAChG,QAAI,iBAAiB;AACnB,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAIA,MAAM,eACJ,IACA,UAC8B;AAC9B,QAAI,OAAO,IAAK,QAAO,CAAC;AAAA,EAC1B;AACF;;;ADzGO,IAAe,sBAAf,cAIGC,wBACwD;AAAA,EAChE,OAAgB,kBAA4B,CAAC,sBAAsB;AAAA,EAEzD;AAAA,EACA;AAAA,EACA,SAAgC;AAAA,EAChC,kBAAkB;AAAA,EAEpB,YAAY,IAAI,SAAyB;AAAA,IAC/C,KAAK;AAAA,IAAM,KAAK,MAAO;AAAA,IAAI,cAAc;AAAA,EAC3C,CAAC;AAAA,EAED,IAAa,UAIQ;AACnB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAa,YAA4D;AACvE,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAa,SAAwD;AACnE,WAAO,EAAE,GAAG,KAAK,SAAS,QAAS,KAAK,SAAS,UAAU,mBAAoB;AAAA,EACjF;AAAA,EAEA,IAAa,UAAoB;AAC/B,UAAM,gBAAgBC,UAAS,KAAK,QAAQ,MAAM,2DAA2D,EAAE,OAAO,UACpHC,uBAAoC,WAAW,EAAE,IAAI,CAAC;AACxD,WAAO,cAAc,IAAI,aAAW,QAAQ,KAAK;AAAA,EACnD;AAAA,EAEA,OAAO,mBAAmB,KAA+B;AACvD,WAAO,KAAK,uBAAuB,GAAG,EAAE,WAAW;AAAA,EACrD;AAAA,EAEA,OAAgB,gBAAgB,QAAyB;AACvD,WAAO,SAAS,MAAM;AAAA,EACxB;AAAA,EAEA,OAAO,uBAAuB,KAAgC;AAC5D,UAAM,gBAAgB,IAAI;AAC1B,WACE,KAAK,gBAAgB,IAAI,CAAC,UAAU;AAClC,aAAO,cAAc,SAAS,KAAK,IAAI,OAAO;AAAA,IAChD,CAAC,EACD,OAAOC,OAAM;AAAA,EACjB;AAAA,EAEA,aAAsB,cACpB,UACsB;AACtB,UAAM,cAAc,MAAM,MAAM,cAAc,QAAQ;AACtD,WAAO;AAAA,MACL,GAAG;AAAA,MACH,SAAU,YAAY,YAAY,WAAY,MAAMC,SAAQ,OAAO,IAAI,YAAY;AAAA,MACnF,gBAAgB,YAAY,kBAAkB;AAAA,IAChD;AAAA,EACF;AAAA,EAEA,MAAM,sBAA2D;AAC/D,UAAM,eAAmC,EAAE,QAAQ,yBAAyB;AAC5E,UAAM,SAAqCH;AAAA,OACxC,MAAM,KAAK,UAAU,cAAc,QAAW,KAAK,OAAO,GAAG;AAAA,QAC5DC,uBAAkD,yBAAyB;AAAA,MAC7E;AAAA,MACA,MAAM;AAAA,IACR;AACA,WAAO;AAAA,EACT;AAAA,EAEA,mBAAmB,MAA0C;AAC3D,UAAM,gBAAgB,KAAK,QAAQ,OAAOA,uBAA2C,yBAAyB,CAAC;AAC/G,UAAM,aAAa,eAAe,QAAQ,kBAAgB,OAAO,QAAQ,aAAa,QAAQ,YAAY,CAAC,CAAC,CAAsC;AAClJ,WAAO,UAAU,YAAY,KAAK,CAAC,CAAC,GAAG,SAAS,MAAM,cAAc,IAAI,IAAI,CAAC,CAAC;AAAA,EAChF;AAAA,EAEA,MAAM,kBAAkE;AACtE,QAAI,gBACAA,uBAA2C,yBAAyB,EAAE,KAAK,OAAO,QAAQ,IAAI,CAAC,KAAK,OAAO,QAAQ,IAAI;AAC3H,UAAM,SAAgD,CAAC;AACvD,QAAI,kBAAkB,QAAW;AAC/B,YAAM,QAAQ,MAAM,KAAK,MAAM;AAC/B,sBAAgB,MAAM,OAAOA,uBAA2C,yBAAyB,CAAC;AAAA,IACpG;AACA,eAAW,YAAY,iBAAiB,CAAC,GAAG;AAC1C,YAAM,WAAW,SAAS,SAAS,UAAU,CAAC;AAC9C,iBAAW,SAAS,UAAU;AAC5B,YAAI,OAAO,UAAU,UAAU;AAC7B,gBAAM,UAAU,MAAM,QAAQ;AAC9B,cAAI,UAAU,OAAO,GAAG;AACtB,mBAAO,OAAO,IAAI,MAAM,OAAO,QAAQ;AAAA,UACzC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAe,gBAA+B;AAC5C,UAAM,MAAM,cAAc;AAC1B,QAAI,WAAoE,KAAK,OAAO;AACpF,QAAI,CAAC,UAAU;AACb,YAAM,QAAQ,MAAM,KAAK,MAAM;AAC/B,YAAM,kBAAkB,MAAM;AAAA,QAC5B,aAAWA,uBAA2C,yBAAyB,EAAE,OAAO,KACnFA,uBAA6C,2BAA2B,EAAE,OAAO;AAAA,MACxF;AACA,iBAAWD,UAAS,iBAAiB,MAAM,6BAA6B;AAAA,IAC1E;AACA,SAAK,UAAU,EAAE,GAAG,SAAS,OAAO,CAAC;AACrC,SAAK,aAAa;AAAA,MAChB,IAAI,oBAAoB;AAAA,QACtB,iBAAiB,MAAM,KAAK,gBAAgB;AAAA,QAC5C,MAAM,KAAK,OAAO;AAAA,QAClB,KAAK;AAAA,QACL,8BAA8B,KAAK,OAAO;AAAA,MAC5C,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAe,SAAS,UAAmD;AACzE,UAAM,eAAoC,EAAE,QAAQ,2BAA2B,GAAI,aAAa,SAAY,CAAC,IAAI,EAAE,SAAS,EAAG;AAC/H,YAAQ,MAAM,KAAK,UAAU,YAAY,GAAG,CAAC;AAAA,EAC/C;AAAA,EAEA,MAAe,gBAAuD;AACpE,UAAM,eAAmC,EAAE,QAAQ,yBAAyB;AAC5E,WAAQ,MAAM,KAAK,UAAU,YAAY;AAAA,EAC3C;AAAA,EAEA,MAAe,eAA4C;AACzD,UAAM,eAAmC,EAAE,QAAQ,yBAAyB;AAC5E,YAAS,MAAM,KAAK,UAAU,YAAY,GAAG,IAAI,EAAiC;AAAA,EACpF;AAAA,EAEA,MAAe,iBAA2H;AACxI,SAAK,kBAAkB,KAAK,mBAAoB,MAAM,MAAM,eAAe;AAC3E,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAe,MAAuD,OAAU,UAAkD;AAChI,SAAK,WAAW;AAChB,WAAO,MAAM,KAAK,KAAK,YAAY;AACjC,UAAI;AACF,cAAM,KAAK,UAAU,KAAK;AAC1B,YAAI,KAAK,aAAa,KAAK,wBAAwB,MAAM,MAAM,GAAG;AAChE,UAAAI,QAAO,KAAK,kBAAkB,CAAC,OAAO,GAAI,YAAY,CAAC,CAAE,CAAC,CAAC;AAAA,QAC7D;AACA,aAAK,OAAO,qBAAqB,EAAE,UAAU,MAAM,CAAC;AACpD,cAAM,SAAS,MAAM,KAAK,kBAAqB,OAAO,QAAQ;AAC9D,aAAK,OAAO,sBAAsB;AAAA,UAChC;AAAA,UAAU;AAAA,UAAO;AAAA,UAAQ,QAAQ;AAAA,QACnC,CAAC;AACD,YAAI,KAAK,aAAa,KAAK,wBAAwB,MAAM,MAAM,GAAG;AAChE,UAAAA,QAAO,KAAK,kBAAkB,OAAO,KAAK,CAAC,CAAC;AAAA,QAC9C;AACA,QAAAA,QAAO,KAAK,KAAK,iBAAiB;AAAA,UAChC,KAAK;AAAA,UAAM;AAAA,UAAU;AAAA,UAAO;AAAA,QAC9B,CAAC,CAAC;AACF,eAAO;AAAA,MACT,SAAS,IAAI;AACX,aAAK,OAAO,sBAAsB;AAAA,UAChC;AAAA,UAAU;AAAA,UAAO,QAAQ;AAAA,QAC3B,CAAC;AACD,cAAM,QAAQ;AACd,aAAK,aAAa;AAElB,cAAM,YAAY,IAAI,gBAAgB,KAAK,SAAS,KAAK;AACzD,cAAM,eAA4B;AAAA,UAChC,SAAS,UAAU;AAAA,UACnB,MAAM,UAAU;AAAA,UAChB,QAAQ;AAAA,QACV;AACA,cAAM,cAAcJ,UAASK,0BAAyB,OAAO,KAAK,GAAG,MAAM,eAAe;AAC1F,eAAO,MAAM,KAAK,gBAAgB,aAAa,CAAC,GAAG,QAAW,CAAC,YAAY,CAAC;AAAA,MAC9E;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAES,aACP,QACA,WACA,cACmC;AACnC,UAAM,IAAI,MAAM,qCAAqC;AAAA,EACvD;AAAA,EAEA,MAAe,UACb,QACA,WACA,cACkB;AAClB,WAAO;AAAA,EACT;AAAA,EAEA,MAAe,6BAA2D;AACxE,WAAQ,MAAM,KAAK,OAAO,WAAW,kBAAkB,KAAM,CAAC;AAAA,EAChE;AAAA,EAEA,UAAU,QAAkD;AAC1D,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,SAAS,OAAwB;AAC/B,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,MAAe,QAA4B;AACzC,QAAI,KAAK,WAAW,QAAW;AAE7B,YAAM,oBAAkC,EAAE,OAAO,wBAAwB,QAAQ,YAAY;AAC7F,YAAM,uBAAqC,EAAE,OAAO,2BAA2B,QAAQ,YAAY;AACnG,WAAK,SAAS,CAAC,mBAAmB,oBAAoB;AACtD,YAAM,UAAU,cAAc,KAAK,MAAM,MAAMF,SAAQ,OAAO,CAAC;AAC/D,WAAK,SAAS,MAAM,QAAQ,MAAM;AAAA,IACpC;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEU,aAAa,QAA0C;AAC/D,UAAM,UAAU,oBAAoB,KAAK,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AAC7D,WAAO,QAAQ,iBAA8B,iBAAiB;AAAA,EAChE;AAAA,EAEA,MAAyB,eAA8B;AACrD,WAAO,MAAM,MAAM,aAAa;AAAA,EAClC;AAAA;AAAA,EAGA,MAAc,UAAU,OAA0B;AAChD,UAAM,OAAO,MAAM,eAAe,KAAK,KAAK;AAC5C,UAAM,gBAAgB,KAAK,UAAU,IAAI,IAAI,KAAK;AAClD,QAAI,gBAAgB,GAAG;AACrB,WAAK,QAAQ,KAAK,kCAAkC,IAAI,SAAS,iBAAiB,MAAM,SAAS,CAAC,EAAE;AAAA,IACtG;AACA,SAAK,UAAU,IAAI,MAAM,gBAAgB,CAAC;AAAA,EAC5C;AAGF;",
4
+ "sourcesContent": ["import type { Promisable } from '@ariestools/sdk'\nimport {\n assertEx, exists, forget,\n} from '@ariestools/sdk'\nimport type {\n Payload, QueryBoundWitness, Schema, XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport { isPayloadOfSchemaType, QueryBoundWitnessWrapper } from '@xyo-network/sdk-protocol'\n\nimport type { ArchivistInstance } from '#archivist-model'\nimport { asArchivistInstance } from '#archivist-model'\nimport type {\n AttachableBridgeInstance,\n BridgeExposeOptions,\n BridgeModuleEventData,\n BridgeParams,\n BridgeQueries,\n BridgeUnexposeOptions,\n ModuleFilterPayload,\n} from '#bridge-model'\nimport {\n BridgeConfigSchema,\n BridgeConnectQuerySchema,\n BridgeDisconnectQuerySchema,\n BridgeExposeQuerySchema,\n BridgeUnexposeQuerySchema,\n ModuleFilterPayloadSchema,\n} from '#bridge-model'\nimport { AbstractModuleInstance } from '#module-abstract'\nimport type {\n AddressPayload,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryHandlerResult,\n ModuleResolverInstance,\n} from '#module-model'\nimport { AddressSchema } from '#module-model'\nimport {\n resolveAddressToInstance,\n resolvePathToAddress,\n transformModuleIdentifier,\n} from '#module-resolver'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport abstract class AbstractBridge<TParams extends BridgeParams = BridgeParams>\n extends AbstractModuleInstance<TParams, BridgeModuleEventData>\n implements AttachableBridgeInstance<TParams, BridgeModuleEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, BridgeConfigSchema]\n static override readonly defaultConfigSchema: Schema = BridgeConfigSchema\n\n protected _roots?: ModuleInstance[]\n\n override get allowNameResolution(): boolean {\n // we default to false here to prevent name collisions\n return this.params.allowNameResolution ?? true\n }\n\n get discoverRoots(): false | 'start' | 'lazy' {\n return this.config.client?.discoverRoots ?? (this.config.client === undefined ? false : 'start')\n }\n\n override get queries(): Schema[] {\n return [BridgeConnectQuerySchema, BridgeDisconnectQuerySchema, BridgeExposeQuerySchema, BridgeUnexposeQuerySchema, ...super.queries]\n }\n\n get resolver(): Promisable<ModuleResolverInstance> {\n return assertEx(this.params.resolver, () => 'No resolver provided')\n }\n\n async expose(id: ModuleIdentifier, options?: BridgeExposeOptions): Promise<ModuleInstance[]> {\n this._noOverride('expose')\n assertEx(id !== '*', () => \"Exposing '*' not supported\")\n const addressToExpose = assertEx(await resolvePathToAddress(this, id), () => `Module to expose not found [${id}]`)\n console.log(`expose: ${addressToExpose}`)\n const modules = await this.exposeHandler(addressToExpose, options)\n await this.emit('exposed', { mod: this, modules })\n return modules\n }\n\n async exposed(): Promise<XyoAddress[]> {\n this._noOverride('exposed')\n return await this.exposedHandler()\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\n override async resolve<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier = '*',\n options: ModuleFilterOptions<T> = {},\n ): Promise<T | T[] | undefined> {\n const roots = (this._roots ?? []) as T[]\n const workingSet = (options.direction === 'up' ? [this as ModuleInstance] : [...roots, this]) as T[]\n if (id === '*') {\n const remainingDepth = (options.maxDepth ?? 5) - 1\n if (remainingDepth <= 0) return workingSet\n // eslint-disable-next-line @typescript-eslint/await-thenable\n const nested = await Promise.all(roots.map(mod => mod.resolve('*', { ...options, maxDepth: remainingDepth })))\n return [...workingSet, ...nested.flat()]\n }\n switch (typeof id) {\n case 'string': {\n const parts = id.split(':')\n const first = assertEx(parts.shift(), () => 'Missing module identifier')\n const firstId = await transformModuleIdentifier(first, this.moduleIdentifierTransformers)\n const result = workingSet.find((mod) => {\n return firstId === mod.address || firstId === mod.modName\n })\n return parts.length === 0 ? result : result?.resolve(parts.join(':'), options)\n }\n default: {\n return\n }\n }\n }\n\n override async startHandler(): Promise<void> {\n if (this.discoverRoots === 'lazy') {\n forget(this.getRoots())\n } else if (this.discoverRoots === 'start') {\n await this.getRoots()\n }\n }\n\n async unexpose(id: ModuleIdentifier, options?: BridgeUnexposeOptions): Promise<XyoAddress[]> {\n this._noOverride('unexpose')\n const addressToUnexpose = assertEx(await resolvePathToAddress(this, id), () => `Module to unexpose not found [${id}]`)\n const modules = await this.unexposeHandler(addressToUnexpose, options)\n await this.emit('unexposed', { mod: this, modules })\n return modules.map(mod => mod.address)\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness>(\n query: T,\n payloads?: Payload[],\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = QueryBoundWitnessWrapper.parseQuery<BridgeQueries>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n const resultPayloads: Payload[] = []\n\n switch (queryPayload.schema) {\n case BridgeExposeQuerySchema: {\n const filterPayloads = (payloads ?? []).filter(isPayloadOfSchemaType<ModuleFilterPayload>(ModuleFilterPayloadSchema))\n assertEx(filterPayloads, () => 'At least one filter is required')\n\n await Promise.all(\n filterPayloads.map(async (filter) => {\n const { id, ...options } = filter\n const modules = await this.expose(id, options)\n for (const mod of modules) {\n const addressPayload: AddressPayload = {\n address: mod.address,\n schema: AddressSchema,\n }\n resultPayloads.push(addressPayload)\n }\n }),\n )\n break\n }\n case BridgeUnexposeQuerySchema: {\n const filterPayloads = (payloads ?? []).filter(isPayloadOfSchemaType<ModuleFilterPayload>(ModuleFilterPayloadSchema))\n assertEx(filterPayloads, () => 'At least one filter is required')\n\n await Promise.all(\n filterPayloads.map(async (filter) => {\n const { id, ...options } = filter\n const moduleAddresses = await this.unexpose(id, options)\n for (const address of moduleAddresses) {\n const addressPayload: AddressPayload = {\n address,\n schema: AddressSchema,\n }\n resultPayloads.push(addressPayload)\n }\n }),\n )\n break\n }\n default: {\n return await super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n protected override async resolveArchivingArchivists(): Promise<ArchivistInstance[]> {\n const archivists = this.archiving?.archivists\n if (!archivists) return []\n const resolvedAddressesNested = await Promise.all(\n archivists.map(async (archivist) => {\n const parents = await this.parents()\n const addresses = await Promise.all(parents.map(parent => resolvePathToAddress(parent, archivist)))\n return addresses.filter(exists)\n }),\n )\n const resolvedAddresses = resolvedAddressesNested\n .flat()\n .filter(exists)\n const resolvedInstances = await Promise.all(resolvedAddresses.map(address => resolveAddressToInstance(this, address)))\n const resolved = resolvedInstances.filter(exists)\n return resolved.map(mod => asArchivistInstance(mod)).filter(exists)\n }\n\n abstract exposeHandler(address: XyoAddress, options?: BridgeExposeOptions): Promisable<ModuleInstance[]>\n\n abstract exposedHandler(): Promisable<XyoAddress[]>\n\n abstract getRoots(force?: boolean): Promise<ModuleInstance[]>\n\n abstract unexposeHandler(address: XyoAddress, options?: BridgeUnexposeOptions): Promisable<ModuleInstance[]>\n}\n", "import type { AccountInstance } from '@xyo-network/sdk-protocol'\n\nimport type { ArchivistInstance } from '#archivist-model'\nimport type {\n BridgeInstance, QuerySendFinishedEventArgs, QuerySendStartedEventArgs,\n} from '#bridge-model'\nimport type {\n ArchivingModuleConfig,\n CacheConfig,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n} from '#module-model'\nimport { ObjectResolverPriority } from '#module-model'\nimport type { ModuleResolverParams } from '#module-resolver'\nimport { CompositeModuleResolver } from '#module-resolver'\n\nimport type { ModuleProxyParams } from './AbstractModuleProxy/index.ts'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface BridgeModuleResolverParams extends ModuleResolverParams {\n additionalSigners?: AccountInstance[]\n archiving?: ArchivingModuleConfig['archiving'] & { resolveArchivists: () => Promise<ArchivistInstance[]> }\n bridge: BridgeInstance\n cacheConfig?: CacheConfig\n onQuerySendFinished?: (args: Omit<QuerySendFinishedEventArgs, 'mod'>) => void\n onQuerySendStarted?: (args: Omit<QuerySendStartedEventArgs, 'mod'>) => void\n wrapperAccount: AccountInstance\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport abstract class AbstractBridgeModuleResolver<\n TParams extends BridgeModuleResolverParams = BridgeModuleResolverParams,\n TProxyParams extends ModuleProxyParams = ModuleProxyParams,\n> extends CompositeModuleResolver<TParams> {\n override get priority(): 0 {\n return ObjectResolverPriority.VeryLow\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n _params?: Partial<TProxyParams>,\n ): Promise<T[]> {\n if (id === '*') {\n return []\n }\n return await super.resolveHandler(id, options)\n }\n}\n", "import {\n asAddress, assertEx,\n exists,\n forget,\n isAddress, toSafeJsonString,\n} from '@ariestools/sdk'\nimport type {\n AccountInstance, ModuleError, ModuleManifestPayload, NodeManifestPayload,\n Payload, QueryBoundWitness, QueryPayload, Schema, XyoAddress,\n XyoQuantAddress,\n} from '@xyo-network/sdk-protocol'\nimport {\n Account, BoundWitnessWrapper, isPayloadOfSchemaType, isSchema, ModuleErrorSchema, ModuleManifestPayloadSchema, NodeManifestPayloadSchema, PayloadBuilder,\n QueryBoundWitnessWrapper, QuerySchema,\n} from '@xyo-network/sdk-protocol'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ArchivistInstance } from '#archivist-model'\nimport type { QuerySendFinishedEventArgs, QuerySendStartedEventArgs } from '#bridge-model'\nimport { AbstractModuleInstance } from '#module-abstract'\nimport type {\n AddressPreviousHashPayload,\n AnyConfigSchema,\n ArchivingModuleConfig,\n AttachableModuleInstance,\n ModuleAddressQuery,\n ModuleConfig,\n ModuleEventData,\n ModuleInstance,\n ModuleManifestQuery,\n ModuleName,\n ModuleQueryHandlerResult,\n ModuleQueryResult,\n ModuleResolver,\n QueryableModule,\n QueryableModuleParams,\n} from '#module-model'\nimport {\n AddressPreviousHashSchema,\n DeadModuleError,\n ModuleAddressQuerySchema,\n ModuleConfigSchema,\n ModuleManifestQuerySchema,\n ModuleStateQuerySchema,\n} from '#module-model'\nimport { ModuleWrapper } from '#module-wrapper'\n\nimport { ModuleProxyResolver } from './ModuleProxyResolver.ts'\n\nconst collectChildAddresses = (manifest: NodeManifestPayload, result: Record<XyoAddress, ModuleName | null>): void => {\n const children = manifest.modules?.public ?? []\n for (const child of children) {\n if (typeof child !== 'object') {\n continue\n }\n const address = child.status?.address\n if (isAddress(address)) {\n result[address] = child.config.name ?? null\n }\n }\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface ModuleProxyParams extends QueryableModuleParams\n{\n account: AccountInstance\n archiving?: ArchivingModuleConfig['archiving'] & { resolveArchivists: () => Promise<ArchivistInstance[]> }\n host: ModuleResolver\n manifest?: ModuleManifestPayload\n moduleAddress: XyoAddress\n onQuerySendFinished?: (args: Omit<QuerySendFinishedEventArgs, 'mod'>) => void\n onQuerySendStarted?: (args: Omit<QuerySendStartedEventArgs, 'mod'>) => void\n state?: Payload[]\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport abstract class AbstractModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends ModuleProxyParams = ModuleProxyParams,\n>\n extends AbstractModuleInstance<TParams, TWrappedModule['eventData']>\n implements ModuleInstance<TParams, TWrappedModule['eventData']> {\n static readonly requiredQueries: string[] = [ModuleStateQuerySchema]\n\n protected _config?: TWrappedModule['config']\n protected _publicChildren?: ModuleInstance[]\n protected _state: Payload[] | undefined = undefined\n protected _stateInProcess = false\n\n private _spamTrap = new LRUCache<string, number>({\n max: 1000, ttl: 1000 * 60, ttlAutopurge: true,\n })\n\n override get address(): (Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress {\n return this.params.moduleAddress\n }\n\n override get archiving(): ArchivingModuleConfig['archiving'] | undefined {\n return this.params?.archiving\n }\n\n override get config(): TWrappedModule['config'] & { schema: Schema } {\n return { ...this._config, schema: (this._config?.schema ?? ModuleConfigSchema) }\n }\n\n override get queries(): Schema[] {\n const queryPayloads = assertEx(this._state, () => 'Module state not found. Make sure proxy has been started').filter(item =>\n isPayloadOfSchemaType<QueryPayload>(QuerySchema)(item))\n return queryPayloads.map(payload => payload.query)\n }\n\n static hasRequiredQueries(mod: QueryableModule): boolean {\n return this.missingRequiredQueries(mod).length === 0\n }\n\n static override isAllowedSchema(schema: Schema): boolean {\n return isSchema(schema)\n }\n\n static missingRequiredQueries(mod: QueryableModule): string[] {\n const moduleQueries = mod.queries\n return (\n this.requiredQueries.map((query) => {\n return moduleQueries.includes(query) ? null : query\n })\n ).filter(exists)\n }\n\n static override async paramsHandler<T extends AttachableModuleInstance<QueryableModuleParams, ModuleEventData>>(\n inParams?: Partial<T['params']>,\n ): Promise<T['params']> {\n const superParams = await super.paramsHandler(inParams)\n return {\n ...superParams,\n account: (superParams.account === 'random') ? await Account.random() : superParams.account,\n addToResolvers: superParams.addToResolvers ?? true,\n }\n }\n\n async addressPreviousHash(): Promise<AddressPreviousHashPayload> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n const queryResult = await this.sendQuery(queryPayload, undefined, this.account)\n const result: AddressPreviousHashPayload = assertEx(\n queryResult.find(\n isPayloadOfSchemaType<AddressPreviousHashPayload>(AddressPreviousHashSchema),\n ),\n () => 'Result did not include correct payload',\n )\n return result\n }\n\n childAddressByName(name: ModuleName): XyoAddress | undefined {\n const nodeManifests = this._state?.filter(isPayloadOfSchemaType<NodeManifestPayload>(NodeManifestPayloadSchema))\n const childPairs = nodeManifests?.flatMap(nodeManifest => Object.entries(nodeManifest.status?.children ?? {}) as [XyoAddress, ModuleName | null][])\n return asAddress(childPairs?.find(([_, childName]) => childName === name)?.[0])\n }\n\n async childAddressMap(): Promise<Record<XyoAddress, ModuleName | null>> {\n let nodeManifests: NodeManifestPayload[] | undefined\n = isPayloadOfSchemaType<NodeManifestPayload>(NodeManifestPayloadSchema)(this.params.manifest) ? [this.params.manifest] : undefined\n const result: Record<XyoAddress, ModuleName | null> = {}\n if (nodeManifests === undefined) {\n const state = await this.state()\n nodeManifests = state.filter(isPayloadOfSchemaType<NodeManifestPayload>(NodeManifestPayloadSchema))\n }\n const manifests = nodeManifests ?? []\n for (const manifest of manifests) {\n collectChildAddresses(manifest, result)\n }\n return result\n }\n\n override async createHandler(): Promise<void> {\n await super.createHandler()\n let manifest: ModuleManifestPayload | NodeManifestPayload | undefined = this.params.manifest\n if (!manifest) {\n const state = await this.state()\n const manifestPayload = state.find(\n payload => isPayloadOfSchemaType<NodeManifestPayload>(NodeManifestPayloadSchema)(payload)\n || isPayloadOfSchemaType<ModuleManifestPayload>(ModuleManifestPayloadSchema)(payload),\n )\n manifest = assertEx(manifestPayload, () => \"Can't find manifest payload\")\n }\n this.setConfig({ ...manifest.config })\n this.downResolver.addResolver(\n new ModuleProxyResolver({\n childAddressMap: await this.childAddressMap(),\n host: this.params.host,\n mod: this,\n moduleIdentifierTransformers: this.params.moduleIdentifierTransformers,\n }),\n )\n }\n\n override async manifest(maxDepth?: number): Promise<ModuleManifestPayload> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth !== undefined && { maxDepth }) }\n const queryResult = await this.sendQuery(queryPayload)\n return queryResult[0] as ModuleManifestPayload\n }\n\n override async moduleAddress(): Promise<AddressPreviousHashPayload[]> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return (await this.sendQuery(queryPayload))\n }\n\n override async previousHash(): Promise<string | undefined> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n const queryResult = await this.sendQuery(queryPayload)\n return (queryResult.pop() as AddressPreviousHashPayload).previousHash\n }\n\n override async publicChildren(): Promise<ModuleInstance<QueryableModuleParams<AnyConfigSchema<ModuleConfig>>, ModuleEventData<object>>[]> {\n this._publicChildren ??= (await super.publicChildren())\n return this._publicChildren\n }\n\n override async query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult> {\n this._checkDead()\n return await this.busy(async () => {\n try {\n await this.checkSpam(query)\n if (this.archiving && this.isAllowedArchivingQuery(query.schema)) {\n forget(this.storeToArchivists([query, ...(payloads ?? [])]))\n }\n this.params.onQuerySendStarted?.({ payloads, query })\n const result = await this.proxyQueryHandler<T>(query, payloads)\n this.params.onQuerySendFinished?.({\n payloads, query, result, status: 'success',\n })\n if (this.archiving && this.isAllowedArchivingQuery(query.schema)) {\n forget(this.storeToArchivists(result.flat()))\n }\n forget(this.emit('moduleQueried', {\n mod: this, payloads, query, result,\n }))\n return result\n } catch (ex) {\n this.params.onQuerySendFinished?.({\n payloads, query, status: 'failure',\n })\n const error = ex as Error\n this._lastError = error\n // this.status = 'dead'\n const deadError = new DeadModuleError(this.address, error)\n const errorPayload: ModuleError = {\n message: deadError.message,\n name: deadError.name,\n schema: ModuleErrorSchema,\n }\n const sourceQuery = assertEx(QueryBoundWitnessWrapper.unwrap(query), () => 'Invalid query')\n return await this.bindQueryResult(sourceQuery, [], undefined, [errorPayload])\n }\n })\n }\n\n override queryHandler<T extends QueryBoundWitness = QueryBoundWitness>(\n _query: T,\n _payloads?: Payload[],\n _queryConfig?: TWrappedModule['params']['config'],\n ): Promise<ModuleQueryHandlerResult> {\n throw new Error('queryHandler should never be called')\n }\n\n override async queryable<T extends QueryBoundWitness = QueryBoundWitness>(\n _query: T,\n _payloads?: Payload[],\n _queryConfig?: TWrappedModule['params']['config'],\n ): Promise<boolean> {\n return true\n }\n\n override async resolveArchivingArchivists(): Promise<ArchivistInstance[]> {\n return (await this.params.archiving?.resolveArchivists()) ?? []\n }\n\n setConfig(config: TWrappedModule['params']['config']): void {\n this._config = config\n }\n\n setState(state: Payload[]): void {\n this._state = state\n }\n\n override async state(): Promise<Payload[]> {\n if (this._state === undefined) {\n // temporarily add ModuleStateQuerySchema to the schema list so we can wrap it and get the real query list\n const stateQueryPayload: QueryPayload = { query: ModuleStateQuerySchema, schema: QuerySchema }\n const manifestQueryPayload: QueryPayload = { query: ModuleManifestQuerySchema, schema: QuerySchema }\n this._state = [stateQueryPayload, manifestQueryPayload]\n const wrapper = ModuleWrapper.wrap(this, await Account.random())\n this._state = await wrapper.state()\n }\n return this._state\n }\n\n protected filterErrors(result: ModuleQueryResult): ModuleError[] {\n const wrapper = BoundWitnessWrapper.wrap(result[0], result[1])\n return wrapper.payloadsBySchema<ModuleError>(ModuleErrorSchema)\n }\n\n protected override async startHandler(): Promise<void> {\n return await super.startHandler()\n }\n\n // this checks and warns if we are getting spammed by the same query\n private async checkSpam(query: QueryBoundWitness) {\n const hash = await PayloadBuilder.hash(query)\n const previousCount = this._spamTrap.get(hash) ?? 0\n if (previousCount > 0) {\n this.logger?.warn(`Spam trap triggered for query: ${hash} from ${toSafeJsonString(query.addresses)}`)\n }\n this._spamTrap.set(hash, previousCount + 1)\n }\n\n abstract proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(_query: T, _payloads?: Payload[]): Promise<ModuleQueryResult>\n}\n", "import type { Promisable } from '@ariestools/sdk'\nimport { assertEx, exists } from '@ariestools/sdk'\nimport type {\n ModuleManifestPayload, XyoAddress, XyoQuantAddress,\n} from '@xyo-network/sdk-protocol'\nimport { Account } from '@xyo-network/sdk-protocol'\n\nimport type {\n AnyConfigSchema,\n ModuleConfig,\n ModuleEventData,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleIdentifierTransformer,\n ModuleInstance,\n ModuleName,\n ModuleResolver,\n ModuleResolverInstance,\n ObjectFilterOptions,\n QueryableModuleParams,\n} from '#module-model'\nimport { ObjectResolverPriority } from '#module-model'\nimport { CompositeModuleResolver } from '#module-resolver'\n\nimport { wrapModuleWithType } from '../wrapModuleWithType.ts'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface ModuleProxyResolverOptions {\n childAddressMap: Record<XyoAddress, ModuleName | null>\n childManifests?: Record<XyoAddress, ModuleManifestPayload>\n childStates?: Record<XyoAddress, ModuleManifestPayload>\n host: ModuleResolver\n mod: ModuleInstance\n moduleIdentifierTransformers?: ModuleIdentifierTransformer[]\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport class ModuleProxyResolver<T extends ModuleProxyResolverOptions = ModuleProxyResolverOptions> implements ModuleResolverInstance {\n private downResolver: CompositeModuleResolver\n private options: T\n\n constructor(options: T) {\n this.options = options\n this.downResolver = new CompositeModuleResolver({ moduleIdentifierTransformers: options.moduleIdentifierTransformers, root: this.root })\n }\n\n get priority(): 0 {\n return ObjectResolverPriority.VeryLow\n }\n\n get root(): ModuleInstance {\n return this.options.mod\n }\n\n protected get childAddressMap(): Record<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress, string | null> {\n return this.options.childAddressMap\n }\n\n protected get host(): ModuleResolver<ModuleInstance<QueryableModuleParams<AnyConfigSchema<ModuleConfig>>, ModuleEventData<object>>> {\n return this.options.host\n }\n\n protected get mod(): ModuleInstance {\n return this.options.mod\n }\n\n addResolver(_resolver: ModuleResolver): this {\n throw new Error('Not supported')\n }\n\n childManifest(address: XyoAddress): ModuleManifestPayload | undefined {\n return this.options.childManifests?.[address]\n }\n\n childState(address: XyoAddress): ModuleManifestPayload | undefined {\n return this.options.childStates?.[address]\n }\n\n removeResolver(_resolver: ModuleResolver): this {\n throw new Error('Not supported')\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n async resolve(): Promise<ModuleInstance[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n // eslint-disable-next-line complexity\n async resolve<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier = '*',\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n // console.log(`childAddressMap: ${toSafeJsonString(this.childAddressMap, 10)}`)\n if (id === '*') {\n // get all the child addresses. if they have been resolved before, they should be in downResolver\n const childAddresses = Object.keys(this.childAddressMap)\n const resolvedChildren = await Promise.all(childAddresses.map<Promise<T | undefined>>(address => this.resolve<T>(address, options)))\n return resolvedChildren.filter(exists)\n }\n const direction = options?.direction ?? 'all'\n if (typeof id === 'string') {\n const idParts = id.split(':')\n const firstPart: ModuleIdentifier = assertEx(idParts.shift(), () => 'Invalid module identifier at first position')\n const firstPartAddress = await this.resolveIdentifier(firstPart)\n if (firstPartAddress) {\n const remainingParts = idParts.length > 0 ? idParts.join(':') : undefined\n if (direction === 'down' || direction === 'all') {\n const downResolverModule = await this.downResolver.resolve<T>(firstPartAddress)\n if (downResolverModule) {\n return remainingParts !== undefined && remainingParts !== '' ? downResolverModule.resolve(remainingParts, options) : downResolverModule\n }\n\n console.log(`ModuleProxyResolver: ${firstPartAddress} | ${this.root.address}`)\n if (firstPartAddress === this.root.address) {\n const wrapped = wrapModuleWithType(this.root, await Account.random()) as unknown as T\n return remainingParts !== undefined && remainingParts !== '' ? wrapped?.resolve(remainingParts, options) : wrapped\n }\n\n // if it is a known child, create a proxy\n const addressToProxy\n = Object.keys(this.childAddressMap).includes(firstPartAddress)\n ? (firstPartAddress)\n : (Object.entries(this.childAddressMap).find(([_, value]) => value === firstPartAddress)?.[0] as XyoAddress | undefined)\n if (addressToProxy) {\n const proxy = await this.host.resolve(addressToProxy, { ...options, direction: 'down' })\n if (proxy) {\n const wrapped = wrapModuleWithType(proxy, await Account.random()) as unknown as T\n return remainingParts !== undefined && remainingParts !== '' ? wrapped?.resolve(remainingParts, options) : wrapped\n }\n return\n }\n }\n }\n return\n }\n }\n\n resolveIdentifier(id: ModuleIdentifier, _options?: ObjectFilterOptions): Promisable<XyoAddress | undefined> {\n // check if any of the modules have the id as an address\n if (Object.hasOwn(this.childAddressMap, id)) {\n return id as XyoAddress\n }\n\n if (this.root.address === id) {\n return this.root.address\n }\n\n if (this.root.modName === id) {\n return this.root.address\n }\n\n // check if id is a name of one of modules in the resolver\n const addressFromName = Object.entries(this.childAddressMap).find(([, name]) => name === id)?.[0] as XyoAddress | undefined\n if (addressFromName) {\n return addressFromName\n }\n }\n\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ObjectFilterOptions<T>): Promise<T[]>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ObjectFilterOptions<T>): Promise<T | undefined>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n _options?: ObjectFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n if (id === '*') return []\n }\n}\n", "import type { AccountInstance } from '@xyo-network/sdk-protocol'\n\nimport { isArchivistModule } from '#archivist-model'\nimport { ArchivistWrapper } from '#archivist-wrapper'\nimport { isDivinerModule } from '#diviner-model'\nimport { DivinerWrapper } from '#diviner-wrapper'\nimport type { QueryableModule } from '#module-model'\nimport type { ModuleWrapper } from '#module-wrapper'\nimport { isNodeModule } from '#node-model'\nimport { NodeWrapper } from '#node-wrapper'\nimport { isSentinelModule } from '#sentinel-model'\nimport { SentinelWrapper } from '#sentinel-wrapper'\nimport { isWitnessModule } from '#witness-model'\nimport { WitnessWrapper } from '#witness-wrapper'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const wrapModuleWithType = (mod: QueryableModule, account: AccountInstance): ModuleWrapper => {\n if (isArchivistModule(mod)) {\n return ArchivistWrapper.wrap(mod, account)\n }\n if (isDivinerModule(mod)) {\n return DivinerWrapper.wrap(mod, account)\n }\n if (isNodeModule(mod)) {\n return NodeWrapper.wrap(mod, account)\n }\n if (isSentinelModule(mod)) {\n return SentinelWrapper.wrap(mod, account)\n }\n if (isWitnessModule(mod)) {\n return WitnessWrapper.wrap(mod, account)\n }\n throw new Error('Failed to wrap')\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["assertEx", "exists", "forget", "Account", "isPayloadOfSchemaType", "QueryBoundWitnessWrapper", "AbstractModuleInstance", "assertEx", "exists", "ObjectResolverPriority", "CompositeModuleResolver", "CompositeModuleResolver", "ObjectResolverPriority", "exists", "assertEx", "AbstractModuleInstance", "assertEx", "isPayloadOfSchemaType", "exists", "Account", "forget", "QueryBoundWitnessWrapper"]
7
7
  }
@@ -95,11 +95,15 @@ var HttpModuleProxy = class extends AbstractModuleProxy {
95
95
  return result;
96
96
  }
97
97
  async publicChildren() {
98
- return (await Promise.all(
98
+ const children = await Promise.all(
99
99
  Object.values(await this.childAddressMap()).filter(exists).map((address) => this.resolve(address))
100
- )).filter(exists);
100
+ );
101
+ return children.filter(exists);
101
102
  }
102
103
  async resolve(id = "*", options = {}) {
104
+ if (id === "*") {
105
+ return [...await this.publicChildren(), await this.params.host.resolve(this.address)];
106
+ }
103
107
  const config = {
104
108
  address: this.address,
105
109
  dead: this.dead,
@@ -109,9 +113,6 @@ var HttpModuleProxy = class extends AbstractModuleProxy {
109
113
  transformers: this.moduleIdentifierTransformers,
110
114
  upResolver: this.upResolver
111
115
  };
112
- if (id === "*") {
113
- return [...await this.publicChildren(), await this.params.host.resolve(this.address)];
114
- }
115
116
  switch (typeof id) {
116
117
  case "string": {
117
118
  const parts = id.split(":");
@@ -126,7 +127,8 @@ var HttpModuleProxy = class extends AbstractModuleProxy {
126
127
  return void 0;
127
128
  }
128
129
  default: {
129
- return (await ResolveHelper.resolve(config, id, options)).filter((mod) => mod.address !== this.address);
130
+ const resolved = await ResolveHelper.resolve(config, id, options);
131
+ return resolved.filter((mod) => mod.address !== this.address);
130
132
  }
131
133
  }
132
134
  }
@@ -160,11 +162,10 @@ var HttpBridgeModuleResolver = class extends AbstractBridgeModuleResolver {
160
162
  const cachedMod = this._resolvedCache.get(firstPart);
161
163
  if (cachedMod) {
162
164
  if (isModuleInstance(cachedMod)) {
163
- const result2 = idParts.length <= 0 ? cachedMod : cachedMod.resolve(remainderParts, { ...options, maxDepth: (options?.maxDepth ?? 5) - 1 });
165
+ const result2 = idParts.length === 0 ? cachedMod : cachedMod.resolve(remainderParts, { ...options, maxDepth: (options?.maxDepth ?? 5) - 1 });
164
166
  return result2;
165
- } else {
166
- return;
167
167
  }
168
+ return;
168
169
  }
169
170
  const account = await Account.random();
170
171
  const finalParams = {
@@ -227,7 +228,7 @@ var HttpBridge = class extends AbstractBridge {
227
228
  return this.config.failureRetryTime ?? HttpBridge.defaultFailureRetryTime;
228
229
  }
229
230
  get fetchClient() {
230
- this._fetchClient = this._fetchClient ?? this.params.fetchClient ?? HttpBridge.fetchClient;
231
+ this._fetchClient ??= this.params.fetchClient ?? HttpBridge.fetchClient;
231
232
  return this._fetchClient;
232
233
  }
233
234
  get maxConnections() {
@@ -237,11 +238,11 @@ var HttpBridge = class extends AbstractBridge {
237
238
  return this.config.maxPayloadSizeWarning ?? HttpBridge.defaultMaxPayloadSizeWarning;
238
239
  }
239
240
  get querySemaphore() {
240
- this._querySemaphore = this._querySemaphore ?? new Semaphore(this.maxConnections);
241
+ this._querySemaphore ??= new Semaphore(this.maxConnections);
241
242
  return this._querySemaphore;
242
243
  }
243
244
  get resolver() {
244
- this._resolver = this._resolver ?? new HttpBridgeModuleResolver({
245
+ this._resolver ??= new HttpBridgeModuleResolver({
245
246
  additionalSigners: this.additionalSigners,
246
247
  archiving: { ...this.archiving, resolveArchivists: this.resolveArchivingArchivists.bind(this) },
247
248
  bridge: this,
@@ -266,12 +267,13 @@ var HttpBridge = class extends AbstractBridge {
266
267
  }
267
268
  async getRoots(force) {
268
269
  return await this._discoverRootsMutex.runExclusive(async () => {
269
- if (this._roots === void 0 || force) {
270
+ if (force === true || this._roots === void 0) {
270
271
  const state = await this.getRootState();
271
272
  this.logger?.debug(`HttpBridge:discoverRoots.state [${state?.length}]`);
272
273
  const nodeManifest = state?.find(isPayloadOfSchemaType(NodeManifestPayloadSchema));
273
274
  if (nodeManifest) {
274
- const mods = (await this.resolveRootNode(nodeManifest)).filter(exists2);
275
+ const rootModules = await this.resolveRootNode(nodeManifest);
276
+ const mods = rootModules.filter(exists2);
275
277
  this.logger?.debug(`HttpBridge:discoverRoots [${mods.length}]`);
276
278
  this._roots = mods;
277
279
  } else {
@@ -327,7 +329,7 @@ var HttpBridge = class extends AbstractBridge {
327
329
  const queryPayload = { schema: ModuleStateQuerySchema };
328
330
  const boundQuery = await this.bindQuery(queryPayload);
329
331
  try {
330
- const response = await this.fetchClient.post(this.clientUrl.toString(), boundQuery);
332
+ const response = await this.fetchClient.post(this.clientUrl, boundQuery);
331
333
  if (response.status === 404) {
332
334
  return [];
333
335
  }
@@ -342,12 +344,13 @@ var HttpBridge = class extends AbstractBridge {
342
344
  }
343
345
  }
344
346
  async resolveRootNode(nodeManifest) {
347
+ const resolvedRoots = await this.resolver.resolveHandler(
348
+ assertEx2(nodeManifest.status?.address, () => "Root has no address"),
349
+ void 0,
350
+ { manifest: nodeManifest }
351
+ );
345
352
  const rootModule = assertEx2(
346
- (await this.resolver.resolveHandler(
347
- assertEx2(nodeManifest.status?.address, () => "Root has no address"),
348
- void 0,
349
- { manifest: nodeManifest }
350
- )).at(0),
353
+ resolvedRoots.at(0),
351
354
  () => `Root not found [${nodeManifest.status?.address}]`
352
355
  );
353
356
  assertEx2(rootModule.constructor.name !== "HttpModuleProxy", () => "rootModule is not a Wrapper");