@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.
- package/dist/neutral/api-location-diviner.mjs +1 -1
- package/dist/neutral/api-location-diviner.mjs.map +2 -2
- package/dist/neutral/archivist-abstract.mjs +34 -28
- package/dist/neutral/archivist-abstract.mjs.map +2 -2
- package/dist/neutral/archivist-generic.mjs +5 -3
- package/dist/neutral/archivist-generic.mjs.map +2 -2
- package/dist/neutral/archivist-memory.mjs +6 -5
- package/dist/neutral/archivist-memory.mjs.map +2 -2
- package/dist/neutral/archivist-model.mjs +14 -7
- package/dist/neutral/archivist-model.mjs.map +2 -2
- package/dist/neutral/archivist-view.mjs +5 -3
- package/dist/neutral/archivist-view.mjs.map +2 -2
- package/dist/neutral/archivist-wrapper.mjs +22 -4
- package/dist/neutral/archivist-wrapper.mjs.map +2 -2
- package/dist/neutral/boundwitness-loader.mjs +13 -7
- package/dist/neutral/boundwitness-loader.mjs.map +2 -2
- package/dist/neutral/bridge-abstract.mjs +43 -29
- package/dist/neutral/bridge-abstract.mjs.map +2 -2
- package/dist/neutral/bridge-http.mjs +23 -20
- package/dist/neutral/bridge-http.mjs.map +2 -2
- package/dist/neutral/bridge-model.mjs +4 -2
- package/dist/neutral/bridge-model.mjs.map +2 -2
- package/dist/neutral/bridge-wrapper.mjs +22 -5
- package/dist/neutral/bridge-wrapper.mjs.map +2 -2
- package/dist/neutral/bridge.mjs.map +2 -2
- package/dist/neutral/diviner-abstract.mjs +4 -3
- package/dist/neutral/diviner-abstract.mjs.map +2 -2
- package/dist/neutral/diviner-boundwitness.memory.mjs +4 -5
- package/dist/neutral/diviner-boundwitness.memory.mjs.map +2 -2
- package/dist/neutral/diviner-boundwitness.mjs +4 -5
- package/dist/neutral/diviner-boundwitness.mjs.map +2 -2
- package/dist/neutral/diviner-model.mjs +4 -2
- package/dist/neutral/diviner-model.mjs.map +2 -2
- package/dist/neutral/diviner-payload-generic.mjs +13 -16
- package/dist/neutral/diviner-payload-generic.mjs.map +2 -2
- package/dist/neutral/diviner-wrapper.mjs +22 -4
- package/dist/neutral/diviner-wrapper.mjs.map +2 -2
- package/dist/neutral/manifest-wrapper.mjs +4 -2
- package/dist/neutral/manifest-wrapper.mjs.map +2 -2
- package/dist/neutral/module-abstract.mjs +100 -106
- package/dist/neutral/module-abstract.mjs.map +3 -3
- package/dist/neutral/module-factory-locator.mjs +4 -2
- package/dist/neutral/module-factory-locator.mjs.map +2 -2
- package/dist/neutral/module-model.mjs +18 -1
- package/dist/neutral/module-model.mjs.map +2 -2
- package/dist/neutral/module-resolver.mjs +88 -81
- package/dist/neutral/module-resolver.mjs.map +3 -3
- package/dist/neutral/module-wrapper.mjs +18 -10
- package/dist/neutral/module-wrapper.mjs.map +2 -2
- package/dist/neutral/modules/api-location-diviner/LocationDiviner/LocationDivinerApi.d.ts +5 -3
- package/dist/neutral/modules/api-location-diviner/LocationDiviner/LocationDivinerApi.d.ts.map +1 -1
- package/dist/neutral/modules/api-location-diviner/LocationDiviner/Queries/LocationQueryCreationRequest.d.ts +7 -3
- package/dist/neutral/modules/api-location-diviner/LocationDiviner/Queries/LocationQueryCreationRequest.d.ts.map +1 -1
- package/dist/neutral/modules/api-location-diviner/RemoteDivinerConfig.d.ts +1 -2
- package/dist/neutral/modules/api-location-diviner/RemoteDivinerConfig.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-abstract/AbstractArchivist.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-abstract/payloadAdmission.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-generic/Archivist.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-memory/MemoryDriver.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-model/lib/getBoundWitness.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-model/lib/hydrateBoundWitness.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-model/typeChecks.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-view/ViewArchivist.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-wrapper/ArchivistWrapper.d.ts.map +1 -1
- package/dist/neutral/modules/boundwitness-loader/Loader.d.ts.map +1 -1
- package/dist/neutral/modules/bridge/index.d.ts +3 -0
- package/dist/neutral/modules/bridge/index.d.ts.map +1 -1
- package/dist/neutral/modules/bridge/model.d.ts +1 -0
- package/dist/neutral/modules/bridge/model.d.ts.map +1 -1
- package/dist/neutral/modules/bridge/wrapper.d.ts +1 -0
- package/dist/neutral/modules/bridge/wrapper.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-abstract/AbstractBridge.d.ts +1 -0
- package/dist/neutral/modules/bridge-abstract/AbstractBridge.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-abstract/AbstractBridgeModuleResolver.d.ts +2 -0
- package/dist/neutral/modules/bridge-abstract/AbstractBridgeModuleResolver.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.d.ts +2 -0
- package/dist/neutral/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-abstract/AbstractModuleProxy/ModuleProxyResolver.d.ts +2 -0
- package/dist/neutral/modules/bridge-abstract/AbstractModuleProxy/ModuleProxyResolver.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-abstract/index.d.ts +4 -0
- package/dist/neutral/modules/bridge-abstract/index.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-abstract/wrapModuleWithType.d.ts +1 -0
- package/dist/neutral/modules/bridge-abstract/wrapModuleWithType.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-http/HttpBridge.d.ts +2 -0
- package/dist/neutral/modules/bridge-http/HttpBridge.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-http/HttpBridgeConfig.d.ts +8 -0
- package/dist/neutral/modules/bridge-http/HttpBridgeConfig.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-http/HttpBridgeModuleResolver.d.ts +4 -2
- package/dist/neutral/modules/bridge-http/HttpBridgeModuleResolver.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-http/ModuleProxy/ModuleProxy.d.ts +3 -0
- package/dist/neutral/modules/bridge-http/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-http/ModuleProxy/index.d.ts +1 -0
- package/dist/neutral/modules/bridge-http/ModuleProxy/index.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-http/index.d.ts +2 -0
- package/dist/neutral/modules/bridge-http/index.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Config.d.ts +10 -0
- package/dist/neutral/modules/bridge-model/Config.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/EventData.d.ts +1 -0
- package/dist/neutral/modules/bridge-model/EventData.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Events/Exposed.d.ts +2 -0
- package/dist/neutral/modules/bridge-model/Events/Exposed.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Events/QueryFulfillFinished.d.ts +2 -0
- package/dist/neutral/modules/bridge-model/Events/QueryFulfillFinished.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Events/QueryFulfillStarted.d.ts +2 -0
- package/dist/neutral/modules/bridge-model/Events/QueryFulfillStarted.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Events/QuerySendFinished.d.ts +2 -0
- package/dist/neutral/modules/bridge-model/Events/QuerySendFinished.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Events/QuerySendStarted.d.ts +2 -0
- package/dist/neutral/modules/bridge-model/Events/QuerySendStarted.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Events/Unexposed.d.ts +2 -0
- package/dist/neutral/modules/bridge-model/Events/Unexposed.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Instance.d.ts +1 -0
- package/dist/neutral/modules/bridge-model/Instance.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Module.d.ts +1 -0
- package/dist/neutral/modules/bridge-model/Module.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Params.d.ts +1 -0
- package/dist/neutral/modules/bridge-model/Params.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Queries/Connect.d.ts +7 -0
- package/dist/neutral/modules/bridge-model/Queries/Connect.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Queries/Disconnect.d.ts +7 -0
- package/dist/neutral/modules/bridge-model/Queries/Disconnect.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Queries/Expose.d.ts +15 -0
- package/dist/neutral/modules/bridge-model/Queries/Expose.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Queries/Unexpose.d.ts +8 -0
- package/dist/neutral/modules/bridge-model/Queries/Unexpose.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/Queries/index.d.ts +2 -0
- package/dist/neutral/modules/bridge-model/Queries/index.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/QueryFunctions.d.ts +1 -0
- package/dist/neutral/modules/bridge-model/QueryFunctions.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/RawQueryFunctions.d.ts +1 -0
- package/dist/neutral/modules/bridge-model/RawQueryFunctions.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/attachable/AttachableInstance.d.ts +3 -0
- package/dist/neutral/modules/bridge-model/attachable/AttachableInstance.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/attachable/asAttachableInstance.d.ts +1 -0
- package/dist/neutral/modules/bridge-model/attachable/asAttachableInstance.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/attachable/isAttachableInstance.d.ts +2 -0
- package/dist/neutral/modules/bridge-model/attachable/isAttachableInstance.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/index.d.ts +1 -0
- package/dist/neutral/modules/bridge-model/index.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-model/typeChecks.d.ts +12 -2
- package/dist/neutral/modules/bridge-model/typeChecks.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-wrapper/BridgeWrapper.d.ts +1 -0
- package/dist/neutral/modules/bridge-wrapper/BridgeWrapper.d.ts.map +1 -1
- package/dist/neutral/modules/bridge-wrapper/index.d.ts +1 -0
- package/dist/neutral/modules/bridge-wrapper/index.d.ts.map +1 -1
- package/dist/neutral/modules/diviner-abstract/AbstractDiviner.d.ts.map +1 -1
- package/dist/neutral/modules/diviner-boundwitness/MemoryBoundWitnessDiviner.d.ts.map +1 -1
- package/dist/neutral/modules/diviner-model/typeChecks.d.ts.map +1 -1
- package/dist/neutral/modules/diviner-payload-generic/Diviner.d.ts.map +1 -1
- package/dist/neutral/modules/diviner-wrapper/DivinerWrapper.d.ts.map +1 -1
- package/dist/neutral/modules/manifest-wrapper/Wrapper.d.ts.map +1 -1
- package/dist/neutral/modules/manifest-wrapper/WrapperEx.d.ts.map +1 -1
- package/dist/neutral/modules/module-abstract/AbstractModule.d.ts +1 -4
- package/dist/neutral/modules/module-abstract/AbstractModule.d.ts.map +1 -1
- package/dist/neutral/modules/module-abstract/AbstractModuleInstance.d.ts.map +1 -1
- package/dist/neutral/modules/module-abstract/Error.d.ts +1 -4
- package/dist/neutral/modules/module-abstract/Error.d.ts.map +1 -1
- package/dist/neutral/modules/module-abstract/QueryValidator/ModuleConfigQueryValidator.d.ts.map +1 -1
- package/dist/neutral/modules/module-factory-locator/ModuleFactoryLocator.d.ts.map +1 -1
- package/dist/neutral/modules/module-factory-locator/standardCreatableFactories.d.ts.map +1 -1
- package/dist/neutral/modules/module-model/QueryableModule/IsQueryableModuleFactory.d.ts.map +1 -1
- package/dist/neutral/modules/module-resolver/CompositeModuleResolver.d.ts.map +1 -1
- package/dist/neutral/modules/module-resolver/ResolveHelper/ResolveHelper.d.ts.map +1 -1
- package/dist/neutral/modules/module-resolver/ResolveHelper/resolveAll.d.ts.map +1 -1
- package/dist/neutral/modules/module-resolver/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -1
- package/dist/neutral/modules/module-resolver/ResolveHelper/resolvePathToAddress.d.ts.map +1 -1
- package/dist/neutral/modules/module-resolver/SimpleModuleResolver.d.ts.map +1 -1
- package/dist/neutral/modules/module-wrapper/ModuleWrapper.d.ts +7 -1
- package/dist/neutral/modules/module-wrapper/ModuleWrapper.d.ts.map +1 -1
- package/dist/neutral/modules/modules/index.d.ts +1 -0
- package/dist/neutral/modules/modules/index.d.ts.map +1 -1
- package/dist/neutral/modules/node-abstract/AbstractNode.d.ts.map +1 -1
- package/dist/neutral/modules/node-memory/MemoryNode.d.ts.map +1 -1
- package/dist/neutral/modules/node-memory/NodeHelper/attachToExistingNode.d.ts.map +1 -1
- package/dist/neutral/modules/node-memory/NodeHelper/flatAttachToExistingNode.d.ts.map +1 -1
- package/dist/neutral/modules/node-model/typeChecks.d.ts.map +1 -1
- package/dist/neutral/modules/node-view/ViewNode.d.ts.map +1 -1
- package/dist/neutral/modules/node-wrapper/NodeWrapper.d.ts.map +1 -1
- package/dist/neutral/modules/payloadset-plugin/Resolver.d.ts.map +1 -1
- package/dist/neutral/modules/sentinel-abstract/AbstractSentinel.d.ts.map +1 -1
- package/dist/neutral/modules/sentinel-memory/MemorySentinel.d.ts.map +1 -1
- package/dist/neutral/modules/sentinel-memory/SentinelRunner.d.ts.map +1 -1
- package/dist/neutral/modules/sentinel-model/typeChecks.d.ts.map +1 -1
- package/dist/neutral/modules/sentinel-wrapper/Wrapper.d.ts.map +1 -1
- package/dist/neutral/modules/witness-abstract/AbstractWitness.d.ts.map +1 -1
- package/dist/neutral/modules/witness-model/typeChecks.d.ts.map +1 -1
- package/dist/neutral/modules/witness-wrapper/WitnessWrapper.d.ts.map +1 -1
- package/dist/neutral/modules.mjs.map +2 -2
- package/dist/neutral/node-abstract.mjs +22 -10
- package/dist/neutral/node-abstract.mjs.map +2 -2
- package/dist/neutral/node-memory.mjs +14 -13
- package/dist/neutral/node-memory.mjs.map +2 -2
- package/dist/neutral/node-model.mjs +2 -1
- package/dist/neutral/node-model.mjs.map +2 -2
- package/dist/neutral/node-view.mjs +13 -11
- package/dist/neutral/node-view.mjs.map +2 -2
- package/dist/neutral/node-wrapper.mjs +35 -11
- package/dist/neutral/node-wrapper.mjs.map +2 -2
- package/dist/neutral/payloadset-plugin.mjs +11 -10
- package/dist/neutral/payloadset-plugin.mjs.map +2 -2
- package/dist/neutral/sentinel-abstract.mjs +7 -6
- package/dist/neutral/sentinel-abstract.mjs.map +2 -2
- package/dist/neutral/sentinel-memory.mjs +28 -22
- package/dist/neutral/sentinel-memory.mjs.map +2 -2
- package/dist/neutral/sentinel-model.mjs +4 -2
- package/dist/neutral/sentinel-model.mjs.map +2 -2
- package/dist/neutral/sentinel-wrapper.mjs +22 -4
- package/dist/neutral/sentinel-wrapper.mjs.map +2 -2
- package/dist/neutral/witness-abstract.mjs +4 -3
- package/dist/neutral/witness-abstract.mjs.map +2 -2
- package/dist/neutral/witness-model.mjs +4 -2
- package/dist/neutral/witness-model.mjs.map +2 -2
- package/dist/neutral/witness-wrapper.mjs +22 -4
- package/dist/neutral/witness-wrapper.mjs.map +2 -2
- package/dist/node/modules/api-location-diviner/LocationDiviner/LocationDivinerApi.d.ts +5 -3
- package/dist/node/modules/api-location-diviner/LocationDiviner/LocationDivinerApi.d.ts.map +1 -1
- package/dist/node/modules/api-location-diviner/LocationDiviner/Queries/LocationQueryCreationRequest.d.ts +7 -3
- package/dist/node/modules/api-location-diviner/LocationDiviner/Queries/LocationQueryCreationRequest.d.ts.map +1 -1
- package/dist/node/modules/api-location-diviner/RemoteDivinerConfig.d.ts +1 -2
- package/dist/node/modules/api-location-diviner/RemoteDivinerConfig.d.ts.map +1 -1
- package/dist/node/modules/archivist-abstract/AbstractArchivist.d.ts.map +1 -1
- package/dist/node/modules/archivist-abstract/payloadAdmission.d.ts.map +1 -1
- package/dist/node/modules/archivist-generic/Archivist.d.ts.map +1 -1
- package/dist/node/modules/archivist-memory/MemoryDriver.d.ts.map +1 -1
- package/dist/node/modules/archivist-model/lib/getBoundWitness.d.ts.map +1 -1
- package/dist/node/modules/archivist-model/lib/hydrateBoundWitness.d.ts.map +1 -1
- package/dist/node/modules/archivist-model/typeChecks.d.ts.map +1 -1
- package/dist/node/modules/archivist-view/ViewArchivist.d.ts.map +1 -1
- package/dist/node/modules/archivist-wrapper/ArchivistWrapper.d.ts.map +1 -1
- package/dist/node/modules/boundwitness-loader/Loader.d.ts.map +1 -1
- package/dist/node/modules/bridge/index.d.ts +3 -0
- package/dist/node/modules/bridge/index.d.ts.map +1 -1
- package/dist/node/modules/bridge/model.d.ts +1 -0
- package/dist/node/modules/bridge/model.d.ts.map +1 -1
- package/dist/node/modules/bridge/wrapper.d.ts +1 -0
- package/dist/node/modules/bridge/wrapper.d.ts.map +1 -1
- package/dist/node/modules/bridge-abstract/AbstractBridge.d.ts +1 -0
- package/dist/node/modules/bridge-abstract/AbstractBridge.d.ts.map +1 -1
- package/dist/node/modules/bridge-abstract/AbstractBridgeModuleResolver.d.ts +2 -0
- package/dist/node/modules/bridge-abstract/AbstractBridgeModuleResolver.d.ts.map +1 -1
- package/dist/node/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.d.ts +2 -0
- package/dist/node/modules/bridge-abstract/AbstractModuleProxy/AbstractModuleProxy.d.ts.map +1 -1
- package/dist/node/modules/bridge-abstract/AbstractModuleProxy/ModuleProxyResolver.d.ts +2 -0
- package/dist/node/modules/bridge-abstract/AbstractModuleProxy/ModuleProxyResolver.d.ts.map +1 -1
- package/dist/node/modules/bridge-abstract/index.d.ts +4 -0
- package/dist/node/modules/bridge-abstract/index.d.ts.map +1 -1
- package/dist/node/modules/bridge-abstract/wrapModuleWithType.d.ts +1 -0
- package/dist/node/modules/bridge-abstract/wrapModuleWithType.d.ts.map +1 -1
- package/dist/node/modules/bridge-http/HttpBridge.d.ts +2 -0
- package/dist/node/modules/bridge-http/HttpBridge.d.ts.map +1 -1
- package/dist/node/modules/bridge-http/HttpBridgeConfig.d.ts +8 -0
- package/dist/node/modules/bridge-http/HttpBridgeConfig.d.ts.map +1 -1
- package/dist/node/modules/bridge-http/HttpBridgeModuleResolver.d.ts +4 -2
- package/dist/node/modules/bridge-http/HttpBridgeModuleResolver.d.ts.map +1 -1
- package/dist/node/modules/bridge-http/ModuleProxy/ModuleProxy.d.ts +3 -0
- package/dist/node/modules/bridge-http/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/node/modules/bridge-http/ModuleProxy/index.d.ts +1 -0
- package/dist/node/modules/bridge-http/ModuleProxy/index.d.ts.map +1 -1
- package/dist/node/modules/bridge-http/index.d.ts +2 -0
- package/dist/node/modules/bridge-http/index.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Config.d.ts +10 -0
- package/dist/node/modules/bridge-model/Config.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/EventData.d.ts +1 -0
- package/dist/node/modules/bridge-model/EventData.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Events/Exposed.d.ts +2 -0
- package/dist/node/modules/bridge-model/Events/Exposed.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Events/QueryFulfillFinished.d.ts +2 -0
- package/dist/node/modules/bridge-model/Events/QueryFulfillFinished.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Events/QueryFulfillStarted.d.ts +2 -0
- package/dist/node/modules/bridge-model/Events/QueryFulfillStarted.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Events/QuerySendFinished.d.ts +2 -0
- package/dist/node/modules/bridge-model/Events/QuerySendFinished.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Events/QuerySendStarted.d.ts +2 -0
- package/dist/node/modules/bridge-model/Events/QuerySendStarted.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Events/Unexposed.d.ts +2 -0
- package/dist/node/modules/bridge-model/Events/Unexposed.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Instance.d.ts +1 -0
- package/dist/node/modules/bridge-model/Instance.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Module.d.ts +1 -0
- package/dist/node/modules/bridge-model/Module.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Params.d.ts +1 -0
- package/dist/node/modules/bridge-model/Params.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Queries/Connect.d.ts +7 -0
- package/dist/node/modules/bridge-model/Queries/Connect.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Queries/Disconnect.d.ts +7 -0
- package/dist/node/modules/bridge-model/Queries/Disconnect.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Queries/Expose.d.ts +15 -0
- package/dist/node/modules/bridge-model/Queries/Expose.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Queries/Unexpose.d.ts +8 -0
- package/dist/node/modules/bridge-model/Queries/Unexpose.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/Queries/index.d.ts +2 -0
- package/dist/node/modules/bridge-model/Queries/index.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/QueryFunctions.d.ts +1 -0
- package/dist/node/modules/bridge-model/QueryFunctions.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/RawQueryFunctions.d.ts +1 -0
- package/dist/node/modules/bridge-model/RawQueryFunctions.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/attachable/AttachableInstance.d.ts +3 -0
- package/dist/node/modules/bridge-model/attachable/AttachableInstance.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/attachable/asAttachableInstance.d.ts +1 -0
- package/dist/node/modules/bridge-model/attachable/asAttachableInstance.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/attachable/isAttachableInstance.d.ts +2 -0
- package/dist/node/modules/bridge-model/attachable/isAttachableInstance.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/index.d.ts +1 -0
- package/dist/node/modules/bridge-model/index.d.ts.map +1 -1
- package/dist/node/modules/bridge-model/typeChecks.d.ts +12 -2
- package/dist/node/modules/bridge-model/typeChecks.d.ts.map +1 -1
- package/dist/node/modules/bridge-wrapper/BridgeWrapper.d.ts +1 -0
- package/dist/node/modules/bridge-wrapper/BridgeWrapper.d.ts.map +1 -1
- package/dist/node/modules/bridge-wrapper/index.d.ts +1 -0
- package/dist/node/modules/bridge-wrapper/index.d.ts.map +1 -1
- package/dist/node/modules/diviner-abstract/AbstractDiviner.d.ts.map +1 -1
- package/dist/node/modules/diviner-boundwitness/MemoryBoundWitnessDiviner.d.ts.map +1 -1
- package/dist/node/modules/diviner-model/typeChecks.d.ts.map +1 -1
- package/dist/node/modules/diviner-payload-generic/Diviner.d.ts.map +1 -1
- package/dist/node/modules/diviner-wrapper/DivinerWrapper.d.ts.map +1 -1
- package/dist/node/modules/manifest-wrapper/Wrapper.d.ts.map +1 -1
- package/dist/node/modules/manifest-wrapper/WrapperEx.d.ts.map +1 -1
- package/dist/node/modules/module-abstract/AbstractModule.d.ts +1 -4
- package/dist/node/modules/module-abstract/AbstractModule.d.ts.map +1 -1
- package/dist/node/modules/module-abstract/AbstractModuleInstance.d.ts.map +1 -1
- package/dist/node/modules/module-abstract/Error.d.ts +1 -4
- package/dist/node/modules/module-abstract/Error.d.ts.map +1 -1
- package/dist/node/modules/module-abstract/QueryValidator/ModuleConfigQueryValidator.d.ts.map +1 -1
- package/dist/node/modules/module-factory-locator/ModuleFactoryLocator.d.ts.map +1 -1
- package/dist/node/modules/module-factory-locator/standardCreatableFactories.d.ts.map +1 -1
- package/dist/node/modules/module-model/QueryableModule/IsQueryableModuleFactory.d.ts.map +1 -1
- package/dist/node/modules/module-resolver/CompositeModuleResolver.d.ts.map +1 -1
- package/dist/node/modules/module-resolver/ResolveHelper/ResolveHelper.d.ts.map +1 -1
- package/dist/node/modules/module-resolver/ResolveHelper/resolveAll.d.ts.map +1 -1
- package/dist/node/modules/module-resolver/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -1
- package/dist/node/modules/module-resolver/ResolveHelper/resolvePathToAddress.d.ts.map +1 -1
- package/dist/node/modules/module-resolver/SimpleModuleResolver.d.ts.map +1 -1
- package/dist/node/modules/module-wrapper/ModuleWrapper.d.ts +7 -1
- package/dist/node/modules/module-wrapper/ModuleWrapper.d.ts.map +1 -1
- package/dist/node/modules/modules/index.d.ts +1 -0
- package/dist/node/modules/modules/index.d.ts.map +1 -1
- package/dist/node/modules/node-abstract/AbstractNode.d.ts.map +1 -1
- package/dist/node/modules/node-memory/MemoryNode.d.ts.map +1 -1
- package/dist/node/modules/node-memory/NodeHelper/attachToExistingNode.d.ts.map +1 -1
- package/dist/node/modules/node-memory/NodeHelper/flatAttachToExistingNode.d.ts.map +1 -1
- package/dist/node/modules/node-model/typeChecks.d.ts.map +1 -1
- package/dist/node/modules/node-view/ViewNode.d.ts.map +1 -1
- package/dist/node/modules/node-wrapper/NodeWrapper.d.ts.map +1 -1
- package/dist/node/modules/payloadset-plugin/Resolver.d.ts.map +1 -1
- package/dist/node/modules/sentinel-abstract/AbstractSentinel.d.ts.map +1 -1
- package/dist/node/modules/sentinel-memory/MemorySentinel.d.ts.map +1 -1
- package/dist/node/modules/sentinel-memory/SentinelRunner.d.ts.map +1 -1
- package/dist/node/modules/sentinel-model/typeChecks.d.ts.map +1 -1
- package/dist/node/modules/sentinel-wrapper/Wrapper.d.ts.map +1 -1
- package/dist/node/modules/witness-abstract/AbstractWitness.d.ts.map +1 -1
- package/dist/node/modules/witness-model/typeChecks.d.ts.map +1 -1
- package/dist/node/modules/witness-wrapper/WitnessWrapper.d.ts.map +1 -1
- package/package.json +13 -13
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/modules/bridge-http/HttpBridge.ts", "../../src/modules/bridge-http/HttpBridgeConfig.ts", "../../src/modules/bridge-http/HttpBridgeModuleResolver.ts", "../../src/modules/bridge-http/ModuleProxy/ModuleProxy.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Promisable } from '@ariestools/sdk'\nimport {\n assertEx,\n exists,\n FetchClientError,\n FetchJsonClient,\n forget,\n toSafeJsonString,\n} from '@ariestools/sdk'\nimport type {\n ApiEnvelope, ModuleManifestPayload, NodeManifestPayload, Payload, QueryBoundWitness, Schema, XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport { isPayloadOfSchemaType, NodeManifestPayloadSchema } from '@xyo-network/sdk-protocol'\nimport { Mutex, Semaphore } from 'async-mutex'\nimport { LRUCache } from 'lru-cache'\n\nimport { AbstractBridge } from '#bridge-abstract'\nimport type {\n BridgeExposeOptions,\n BridgeModule,\n BridgeParams,\n BridgeUnexposeOptions,\n QuerySendFinishedEventArgs,\n QuerySendStartedEventArgs,\n} from '#bridge-model'\nimport type {\n AnyConfigSchema,\n ModuleInstance,\n ModuleQueryResult,\n ModuleResolverInstance,\n ModuleStateQuery,\n} from '#module-model'\nimport {\n creatableModule,\n ModuleStateQuerySchema,\n} from '#module-model'\nimport { asAttachableNodeInstance } from '#node-model'\n\nimport type { HttpBridgeConfig } from './HttpBridgeConfig.ts'\nimport { HttpBridgeConfigSchema } from './HttpBridgeConfig.ts'\nimport { HttpBridgeModuleResolver } from './HttpBridgeModuleResolver.ts'\nimport type { BridgeQuerySender } from './ModuleProxy/index.ts'\n\nexport interface HttpBridgeParams extends BridgeParams<AnyConfigSchema<HttpBridgeConfig>> {\n fetchClient?: FetchJsonClient\n}\n\n@creatableModule()\nexport class HttpBridge<TParams extends HttpBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams>, BridgeQuerySender {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, HttpBridgeConfigSchema]\n static override readonly defaultConfigSchema: Schema = HttpBridgeConfigSchema\n static readonly defaultFailureRetryTime: number = 1000 * 60\n static readonly defaultMaxConnections = 4\n static readonly defaultMaxPayloadSizeWarning: number = 256 * 256\n static readonly fetchClient: FetchJsonClient = new FetchJsonClient()\n static readonly maxFailureCacheSize = 1000\n\n private _discoverRootsMutex = new Mutex()\n private _failureTimeCache = new LRUCache<XyoAddress, number>({ max: HttpBridge.maxFailureCacheSize })\n private _fetchClient?: FetchJsonClient\n private _querySemaphore?: Semaphore\n private _resolver?: HttpBridgeModuleResolver\n\n get clientUrl(): string {\n return assertEx(this.config.client?.url, () => 'No Url Set')\n }\n\n get failureRetryTime(): number {\n return this.config.failureRetryTime ?? HttpBridge.defaultFailureRetryTime\n }\n\n get fetchClient(): FetchJsonClient {\n this._fetchClient = this._fetchClient ?? this.params.fetchClient ?? HttpBridge.fetchClient\n return this._fetchClient\n }\n\n get maxConnections(): number {\n return this.config.maxConnections ?? HttpBridge.defaultMaxConnections\n }\n\n get maxPayloadSizeWarning(): number {\n return this.config.maxPayloadSizeWarning ?? HttpBridge.defaultMaxPayloadSizeWarning\n }\n\n get querySemaphore(): Semaphore {\n this._querySemaphore = this._querySemaphore ?? new Semaphore(this.maxConnections)\n return this._querySemaphore\n }\n\n override get resolver(): HttpBridgeModuleResolver {\n this._resolver\n = this._resolver\n ?? new HttpBridgeModuleResolver({\n additionalSigners: this.additionalSigners,\n archiving: { ...this.archiving, resolveArchivists: this.resolveArchivingArchivists.bind(this) },\n bridge: this,\n onQuerySendFinished: (args: Omit<QuerySendFinishedEventArgs, 'mod'>) => {\n forget(this.emit('querySendFinished', { mod: this, ...args }))\n },\n onQuerySendStarted: (args: Omit<QuerySendStartedEventArgs, 'mod'>) => {\n forget(this.emit('querySendStarted', { mod: this, ...args }))\n },\n querySender: this,\n root: this,\n rootUrl: this.clientUrl,\n wrapperAccount: this.account,\n })\n return this._resolver\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n override exposedHandler(): Promisable<XyoAddress[]> {\n throw new Error('Unsupported')\n }\n\n async getRoots(force?: boolean): Promise<ModuleInstance[]> {\n return await this._discoverRootsMutex.runExclusive(async () => {\n if (this._roots === undefined || force) {\n const state = await this.getRootState()\n this.logger?.debug(`HttpBridge:discoverRoots.state [${state?.length}]`)\n const nodeManifest = state?.find(isPayloadOfSchemaType<NodeManifestPayload>(NodeManifestPayloadSchema))\n if (nodeManifest) {\n const mods = (await this.resolveRootNode(nodeManifest)).filter(exists)\n this.logger?.debug(`HttpBridge:discoverRoots [${mods.length}]`)\n this._roots = mods\n } else {\n this._roots = []\n }\n }\n return this._roots\n })\n }\n\n moduleUrl(address: XyoAddress): URL {\n return new URL(address, this.clientUrl)\n }\n\n async sendBridgeQuery<TOut extends Payload = Payload, TQuery extends QueryBoundWitness = QueryBoundWitness, TIn extends Payload = Payload>(\n targetAddress: XyoAddress,\n query: TQuery,\n payloads?: TIn[],\n ): Promise<ModuleQueryResult<TOut>> {\n const lastFailureTime = this._failureTimeCache.get(targetAddress)\n if (lastFailureTime !== undefined) {\n const now = Date.now()\n const timeSincePreviousFailure = now - lastFailureTime\n if (timeSincePreviousFailure > this.failureRetryTime) {\n throw new Error(`target module failed recently [${targetAddress}] [${timeSincePreviousFailure}ms ago]`)\n }\n this._failureTimeCache.delete(targetAddress)\n }\n try {\n await this.querySemaphore.acquire()\n const payloadSize = JSON.stringify([query, payloads]).length\n if (payloadSize > this.maxPayloadSizeWarning) {\n this.logger?.warn(\n `Large targetQuery being sent: ${payloadSize} bytes [${this.address}][${targetAddress}] [${query.schema}] [${payloads?.length ?? 0}]`,\n )\n }\n const moduleUrl = this.moduleUrl(targetAddress).href\n const result = await this.fetchClient.post<ApiEnvelope<ModuleQueryResult<TOut>>>(moduleUrl, [query, payloads])\n if (result.status === 404) {\n throw new Error(`target module not found [${moduleUrl}] [${result.status}]`)\n }\n if (result.status >= 400) {\n this.logger?.error(`targetQuery failed [${moduleUrl}]`)\n throw new Error(`targetQuery failed [${moduleUrl}] [${result.status}]`)\n }\n return assertEx(result.data?.data, () => `targetQuery returned no data [${moduleUrl}]`)\n } catch (ex) {\n const error = ex instanceof FetchClientError ? ex : (ex as Error)\n this.logger?.error(`Error: ${toSafeJsonString(error)}`)\n throw error\n } finally {\n this.querySemaphore.release()\n }\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n private async getRootState() {\n const queryPayload: ModuleStateQuery = { schema: ModuleStateQuerySchema }\n const boundQuery = await this.bindQuery(queryPayload)\n try {\n const response = await this.fetchClient.post<ApiEnvelope<ModuleQueryResult>>(this.clientUrl.toString(), boundQuery)\n if (response.status === 404) {\n return []\n }\n const [, payloads, errors] = response.data?.data ?? [undefined, [], []]\n if (errors.length > 0) {\n throw new Error(`getRootState failed: ${JSON.stringify(errors, null, 2)}`)\n }\n return payloads\n } catch (ex) {\n const error = ex as Error\n this.logger?.warn(`Unable to connect to remote node: ${error.message} [${this.clientUrl}]`)\n }\n }\n\n private async resolveRootNode(nodeManifest: ModuleManifestPayload): Promise<ModuleInstance[]> {\n const rootModule = assertEx(\n (\n await this.resolver.resolveHandler(\n assertEx(nodeManifest.status?.address, () => 'Root has no address'),\n undefined,\n { manifest: nodeManifest },\n )\n ).at(0),\n () => `Root not found [${nodeManifest.status?.address}]`,\n )\n assertEx(rootModule.constructor.name !== 'HttpModuleProxy', () => 'rootModule is not a Wrapper')\n const rootNode = asAttachableNodeInstance(rootModule, 'Root modules is not a node')\n if (rootNode) {\n this.logger?.debug(`rootNode: ${rootNode.id}`)\n this.downResolver.addResolver(rootNode as unknown as ModuleResolverInstance)\n return [rootNode]\n }\n return []\n }\n}\n", "import type { EmptyObject } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk-protocol'\nimport { asSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { BridgeClientConfig, BridgeConfig } from '#bridge-model'\nimport { BridgeConfigZod } from '#bridge-model'\n\nexport const HttpBridgeConfigSchema: 'network.xyo.bridge.http.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.bridge.http.config', true)\nexport type HttpBridgeConfigSchema = typeof HttpBridgeConfigSchema\n\nexport const HttpBridgeConfigZod: z.ZodMiniObject<\n Omit<(typeof BridgeConfigZod)['shape'], 'schema' | 'client' | 'host'> & {\n client: z.ZodMiniOptional<z.ZodMiniCustom<BridgeClientConfig & { url: string }, BridgeClientConfig & { url: string }>>\n failureRetryTime: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n failureTimeCacheMax: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n host: z.ZodMiniOptional<z.ZodMiniCustom<{ port: number }, { port: number }>>\n maxConnections: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n maxPayloadSizeWarning: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n schema: z.ZodMiniLiteral<HttpBridgeConfigSchema>\n },\n z.core.$strip\n> = z.extend(BridgeConfigZod, {\n client: z.optional(z.custom<BridgeClientConfig & { url: string }>()),\n failureRetryTime: z.optional(z.number()),\n failureTimeCacheMax: z.optional(z.number()),\n host: z.optional(z.custom<{ port: number }>()),\n maxConnections: z.optional(z.number()),\n maxPayloadSizeWarning: z.optional(z.number()),\n schema: z.literal(HttpBridgeConfigSchema),\n})\n\nexport type HttpBridgeConfigBase = z.infer<typeof HttpBridgeConfigZod>\n\nexport const isHttpBridgeConfig: ReturnType<typeof zodIsFactory<HttpBridgeConfigBase>> = zodIsFactory(HttpBridgeConfigZod)\nexport const asHttpBridgeConfig: ReturnType<typeof zodAsFactory<HttpBridgeConfigBase>> = zodAsFactory(HttpBridgeConfigZod, 'asHttpBridgeConfig')\nexport const toHttpBridgeConfig: ReturnType<typeof zodToFactory<HttpBridgeConfigBase>> = zodToFactory(HttpBridgeConfigZod, 'toHttpBridgeConfig')\n\nexport type HttpBridgeConfig<TConfig extends EmptyObject = EmptyObject, TSchema extends string | void = void> = BridgeConfig<\n {\n client?: BridgeConfig['client'] & {\n url: string\n }\n failureRetryTime?: number\n failureTimeCacheMax?: number\n host?: {\n port: number\n }\n maxConnections?: number\n maxPayloadSizeWarning?: number\n schema: HttpBridgeConfigSchema\n } & TConfig,\n TSchema extends Schema ? TSchema : HttpBridgeConfigSchema\n>\n", "import type { CreatableName } from '@ariestools/sdk'\nimport {\n assertEx, isAddress, isDefined,\n} from '@ariestools/sdk'\nimport type {\n ConfigPayload, Payload, XyoAddress,\n XyoQuantAddress,\n} from '@xyo-network/sdk-protocol'\nimport { Account, ConfigSchema } from '@xyo-network/sdk-protocol'\nimport { Mutex } from 'async-mutex'\nimport { LRUCache } from 'lru-cache'\n\nimport type { BridgeModuleResolverParams } from '#bridge-abstract'\nimport { AbstractBridgeModuleResolver, wrapModuleWithType } from '#bridge-abstract'\nimport type {\n AnyConfigSchema,\n ModuleConfig,\n ModuleEventData,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n QueryableModuleParams,\n} from '#module-model'\nimport {\n asModuleInstance,\n isModuleInstance,\n ModuleConfigSchema,\n} from '#module-model'\nimport { ResolveHelper } from '#module-resolver'\n\nimport type { BridgeQuerySender, HttpModuleProxyParams } from './ModuleProxy/index.ts'\nimport { HttpModuleProxy } from './ModuleProxy/index.ts'\n\nconst NotFoundModule = { notFound: true }\n\nexport interface HttpBridgeModuleResolverParams extends BridgeModuleResolverParams {\n querySender: BridgeQuerySender\n rootUrl: string\n}\n\nexport class HttpBridgeModuleResolver<\n T extends HttpBridgeModuleResolverParams = HttpBridgeModuleResolverParams,\n> extends AbstractBridgeModuleResolver<T> {\n protected _resolvedCache: LRUCache<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress, {\n notFound: boolean\n } | ModuleInstance<QueryableModuleParams<AnyConfigSchema<ModuleConfig>>, ModuleEventData<object>>, unknown> = new LRUCache<XyoAddress, ModuleInstance | typeof NotFoundModule>({ max: 1000 })\n\n protected _resolvedCacheMutex: Mutex = new Mutex()\n\n get querySender(): BridgeQuerySender {\n return this.params.querySender\n }\n\n moduleUrl(address: XyoAddress): URL {\n return new URL(address, this.params.rootUrl)\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n params?: Partial<HttpModuleProxyParams>,\n ): Promise<T[]> {\n const parentResult = await super.resolveHandler(id, options)\n if (parentResult.length > 0) {\n return parentResult\n }\n const idParts = id.split(':')\n const untransformedFirstPart = assertEx(idParts.shift(), () => 'Missing module identifier')\n const firstPart = await ResolveHelper.transformModuleIdentifier(untransformedFirstPart)\n assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)\n const remainderParts = idParts.join(':')\n const instance: T | undefined = await this._resolvedCacheMutex.runExclusive(async () => {\n const cachedMod = this._resolvedCache.get(firstPart as XyoAddress)\n if (cachedMod) {\n if (isModuleInstance(cachedMod)) {\n const result = idParts.length <= 0 ? cachedMod : cachedMod.resolve(remainderParts, { ...options, maxDepth: (options?.maxDepth ?? 5) - 1 })\n return result as T\n } else {\n // return cached 404\n return\n }\n }\n const account = await Account.random()\n const finalParams: HttpModuleProxyParams = {\n name: 'HttpBridgeModuleResolver' as CreatableName,\n account,\n archiving: this.params.archiving,\n config: { schema: ModuleConfigSchema },\n host: this,\n moduleAddress: firstPart as XyoAddress,\n onQuerySendFinished: this.params.onQuerySendFinished,\n onQuerySendStarted: this.params.onQuerySendStarted,\n querySender: this.params.querySender,\n ...params,\n }\n\n this.logger?.debug(`creating HttpProxy [${firstPart}] ${id}`)\n\n let proxy: HttpModuleProxy | undefined\n\n let state: Payload[] | undefined\n\n try {\n proxy = await HttpModuleProxy.create(finalParams)\n state = await proxy.state()\n } catch (ex) {\n const error = ex as Error\n this.logger?.error(error.message)\n }\n\n if (isDefined(proxy)) {\n if (!state) {\n // cache the fact that it was not found\n this._resolvedCache.set(firstPart as XyoAddress, NotFoundModule)\n return\n }\n\n const configSchema = (state.find(payload => payload.schema === ConfigSchema) as ConfigPayload | undefined)?.config\n const config = assertEx(\n state.find(payload => payload.schema === configSchema),\n () => 'Unable to locate config',\n ) as ModuleConfig\n proxy.setConfig(config)\n\n this.logger?.log(`created HttpProxy [${firstPart}] ${proxy.id}`)\n\n await proxy.start?.()\n const wrapped = wrapModuleWithType(proxy, account) as unknown as T\n assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)\n this._resolvedCache.set(wrapped.address, wrapped)\n return wrapped\n }\n })\n const result = remainderParts.length > 0 ? await instance?.resolve(remainderParts, options) : instance\n return result ? [result] : []\n }\n}\n", "import {\n exists, forget,\n isAddress, isString,\n} from '@ariestools/sdk'\nimport type {\n Payload, QueryBoundWitness, XyoAddress,\n} from '@xyo-network/sdk-protocol'\n\nimport type { ModuleProxyParams } from '#bridge-abstract'\nimport { AbstractModuleProxy } from '#bridge-abstract'\nimport type {\n AttachableModuleInstance,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryResult,\n} from '#module-model'\nimport { creatableModule } from '#module-model'\nimport type { ResolveHelperConfig } from '#module-resolver'\nimport { ResolveHelper } from '#module-resolver'\n\nexport interface BridgeQuerySender {\n sendBridgeQuery: <TOut extends Payload = Payload, TQuery extends QueryBoundWitness = QueryBoundWitness, TIn extends Payload = Payload>(\n targetAddress: XyoAddress,\n query: TQuery,\n payloads?: TIn[],\n ) => Promise<ModuleQueryResult<TOut>>\n}\n\nexport type HttpModuleProxyParams = ModuleProxyParams & {\n querySender: BridgeQuerySender\n}\n\n@creatableModule()\nexport class HttpModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends Omit<HttpModuleProxyParams, 'config'> & { config: TWrappedModule['config'] } = Omit<HttpModuleProxyParams, 'config'> & {\n config: TWrappedModule['config']\n },\n>\n extends AbstractModuleProxy<TWrappedModule, TParams>\n implements AttachableModuleInstance<TParams, TWrappedModule['eventData']> {\n async proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads: Payload[] = []): Promise<ModuleQueryResult> {\n if (this.archiving && this.isAllowedArchivingQuery(query.schema)) {\n forget(this.storeToArchivists([query, ...(payloads ?? [])]))\n }\n const result = await this.params.querySender.sendBridgeQuery(this.params.moduleAddress, query, payloads)\n if (this.archiving && this.isAllowedArchivingQuery(query.schema)) {\n forget(this.storeToArchivists(result.flat()))\n }\n return result\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n return (\n await Promise.all(\n Object.values(await this.childAddressMap())\n .filter(exists)\n .map(address => this.resolve(address)),\n )\n ).filter(exists)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n override async resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n override async resolve<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier = '*',\n options: ModuleFilterOptions<T> = {},\n ): Promise<T | T[] | undefined> {\n const config: ResolveHelperConfig = {\n address: this.address,\n dead: this.dead,\n downResolver: this.downResolver,\n logger: this.logger,\n mod: this,\n transformers: this.moduleIdentifierTransformers,\n upResolver: this.upResolver,\n }\n if (id === '*') {\n return [...(await this.publicChildren()), await this.params.host.resolve(this.address)] as T[]\n }\n switch (typeof id) {\n case 'string': {\n const parts = id.split(':')\n const first = parts.shift()\n if (isString(first)) {\n const remainingPath = parts.length > 0 ? parts.join(':') : undefined\n const address\n = isAddress(first)\n ? first\n : this.id === first\n ? this.address\n : this.childAddressByName(first)\n if (!isAddress(address)) return undefined\n const firstInstance = (await this.params.host.resolve(address))\n return (isString(remainingPath) ? await firstInstance?.resolve(remainingPath) : firstInstance) as T | undefined\n }\n return undefined\n }\n default: {\n return (await ResolveHelper.resolve(config, id, options)).filter(mod => mod.address !== this.address)\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AACA;AAAA,EACE,YAAAA;AAAA,EACA,UAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAAC;AAAA,EACA;AAAA,OACK;AAIP,SAAS,uBAAuB,iCAAiC;AACjE,SAAS,SAAAC,QAAO,iBAAiB;AACjC,SAAS,YAAAC,iBAAgB;AAEzB,SAAS,sBAAsB;AAgB/B;AAAA,EACE,mBAAAC;AAAA,EACA;AAAA,OACK;AACP,SAAS,gCAAgC;;;ACnCzC;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AAEP,SAAS,gBAAgB;AACzB,YAAY,OAAO;AAGnB,SAAS,uBAAuB;
|
|
4
|
+
"sourcesContent": ["import type { Promisable } from '@ariestools/sdk'\nimport {\n assertEx,\n exists,\n FetchClientError,\n FetchJsonClient,\n forget,\n toSafeJsonString,\n} from '@ariestools/sdk'\nimport type {\n ModuleManifestPayload, NodeManifestPayload, Payload, QueryBoundWitness, Schema, XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport { isPayloadOfSchemaType, NodeManifestPayloadSchema } from '@xyo-network/sdk-protocol'\nimport { Mutex, Semaphore } from 'async-mutex'\nimport { LRUCache } from 'lru-cache'\n\nimport { AbstractBridge } from '#bridge-abstract'\nimport type {\n BridgeExposeOptions,\n BridgeModule,\n BridgeParams,\n BridgeUnexposeOptions,\n QuerySendFinishedEventArgs,\n QuerySendStartedEventArgs,\n} from '#bridge-model'\nimport type {\n AnyConfigSchema,\n ModuleInstance,\n ModuleQueryResult,\n ModuleResolverInstance,\n ModuleStateQuery,\n} from '#module-model'\nimport {\n creatableModule,\n ModuleStateQuerySchema,\n} from '#module-model'\nimport { asAttachableNodeInstance } from '#node-model'\n\nimport type { HttpBridgeConfig } from './HttpBridgeConfig.ts'\nimport { HttpBridgeConfigSchema } from './HttpBridgeConfig.ts'\nimport { HttpBridgeModuleResolver } from './HttpBridgeModuleResolver.ts'\nimport type { BridgeQuerySender } from './ModuleProxy/index.ts'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface HttpBridgeParams extends BridgeParams<AnyConfigSchema<HttpBridgeConfig>> {\n fetchClient?: FetchJsonClient\n}\n\ninterface HttpQueryEnvelope<T> {\n data?: T\n errors?: unknown[]\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\n@creatableModule()\nexport class HttpBridge<TParams extends HttpBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams>, BridgeQuerySender {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, HttpBridgeConfigSchema]\n static override readonly defaultConfigSchema: Schema = HttpBridgeConfigSchema\n static readonly defaultFailureRetryTime: number = 1000 * 60\n static readonly defaultMaxConnections = 4\n static readonly defaultMaxPayloadSizeWarning: number = 256 * 256\n static readonly fetchClient: FetchJsonClient = new FetchJsonClient()\n static readonly maxFailureCacheSize = 1000\n\n private _discoverRootsMutex = new Mutex()\n private _failureTimeCache = new LRUCache<XyoAddress, number>({ max: HttpBridge.maxFailureCacheSize })\n private _fetchClient?: FetchJsonClient\n private _querySemaphore?: Semaphore\n private _resolver?: HttpBridgeModuleResolver\n\n get clientUrl(): string {\n return assertEx(this.config.client?.url, () => 'No Url Set')\n }\n\n get failureRetryTime(): number {\n return this.config.failureRetryTime ?? HttpBridge.defaultFailureRetryTime\n }\n\n get fetchClient(): FetchJsonClient {\n this._fetchClient ??= this.params.fetchClient ?? HttpBridge.fetchClient\n return this._fetchClient\n }\n\n get maxConnections(): number {\n return this.config.maxConnections ?? HttpBridge.defaultMaxConnections\n }\n\n get maxPayloadSizeWarning(): number {\n return this.config.maxPayloadSizeWarning ?? HttpBridge.defaultMaxPayloadSizeWarning\n }\n\n get querySemaphore(): Semaphore {\n this._querySemaphore ??= new Semaphore(this.maxConnections)\n return this._querySemaphore\n }\n\n override get resolver(): HttpBridgeModuleResolver {\n this._resolver\n ??= new HttpBridgeModuleResolver({\n additionalSigners: this.additionalSigners,\n archiving: { ...this.archiving, resolveArchivists: this.resolveArchivingArchivists.bind(this) },\n bridge: this,\n onQuerySendFinished: (args: Omit<QuerySendFinishedEventArgs, 'mod'>) => {\n forget(this.emit('querySendFinished', { mod: this, ...args }))\n },\n onQuerySendStarted: (args: Omit<QuerySendStartedEventArgs, 'mod'>) => {\n forget(this.emit('querySendStarted', { mod: this, ...args }))\n },\n querySender: this,\n root: this,\n rootUrl: this.clientUrl,\n wrapperAccount: this.account,\n })\n return this._resolver\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n override exposedHandler(): Promisable<XyoAddress[]> {\n throw new Error('Unsupported')\n }\n\n async getRoots(force?: boolean): Promise<ModuleInstance[]> {\n return await this._discoverRootsMutex.runExclusive(async () => {\n if (force === true || this._roots === undefined) {\n const state = await this.getRootState()\n this.logger?.debug(`HttpBridge:discoverRoots.state [${state?.length}]`)\n const nodeManifest = state?.find(isPayloadOfSchemaType<NodeManifestPayload>(NodeManifestPayloadSchema))\n if (nodeManifest) {\n const rootModules = await this.resolveRootNode(nodeManifest)\n const mods = rootModules.filter(exists)\n this.logger?.debug(`HttpBridge:discoverRoots [${mods.length}]`)\n this._roots = mods\n } else {\n this._roots = []\n }\n }\n return this._roots\n })\n }\n\n moduleUrl(address: XyoAddress): URL {\n return new URL(address, this.clientUrl)\n }\n\n async sendBridgeQuery<TOut extends Payload = Payload, TQuery extends QueryBoundWitness = QueryBoundWitness, TIn extends Payload = Payload>(\n targetAddress: XyoAddress,\n query: TQuery,\n payloads?: TIn[],\n ): Promise<ModuleQueryResult<TOut>> {\n const lastFailureTime = this._failureTimeCache.get(targetAddress)\n if (lastFailureTime !== undefined) {\n const now = Date.now()\n const timeSincePreviousFailure = now - lastFailureTime\n if (timeSincePreviousFailure > this.failureRetryTime) {\n throw new Error(`target module failed recently [${targetAddress}] [${timeSincePreviousFailure}ms ago]`)\n }\n this._failureTimeCache.delete(targetAddress)\n }\n try {\n await this.querySemaphore.acquire()\n const payloadSize = JSON.stringify([query, payloads]).length\n if (payloadSize > this.maxPayloadSizeWarning) {\n this.logger?.warn(\n `Large targetQuery being sent: ${payloadSize} bytes [${this.address}][${targetAddress}] [${query.schema}] [${payloads?.length ?? 0}]`,\n )\n }\n const moduleUrl = this.moduleUrl(targetAddress).href\n const result = await this.fetchClient.post<HttpQueryEnvelope<ModuleQueryResult<TOut>>>(moduleUrl, [query, payloads])\n if (result.status === 404) {\n throw new Error(`target module not found [${moduleUrl}] [${result.status}]`)\n }\n if (result.status >= 400) {\n this.logger?.error(`targetQuery failed [${moduleUrl}]`)\n throw new Error(`targetQuery failed [${moduleUrl}] [${result.status}]`)\n }\n return assertEx(result.data?.data, () => `targetQuery returned no data [${moduleUrl}]`)\n } catch (ex) {\n const error = ex instanceof FetchClientError ? ex : (ex as Error)\n this.logger?.error(`Error: ${toSafeJsonString(error)}`)\n throw error\n } finally {\n this.querySemaphore.release()\n }\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n private async getRootState() {\n const queryPayload: ModuleStateQuery = { schema: ModuleStateQuerySchema }\n const boundQuery = await this.bindQuery(queryPayload)\n try {\n const response = await this.fetchClient.post<HttpQueryEnvelope<ModuleQueryResult>>(this.clientUrl, boundQuery)\n if (response.status === 404) {\n return []\n }\n const [, payloads, errors] = response.data?.data ?? [undefined, [], []]\n if (errors.length > 0) {\n throw new Error(`getRootState failed: ${JSON.stringify(errors, null, 2)}`)\n }\n return payloads\n } catch (ex) {\n const error = ex as Error\n this.logger?.warn(`Unable to connect to remote node: ${error.message} [${this.clientUrl}]`)\n }\n }\n\n private async resolveRootNode(nodeManifest: ModuleManifestPayload): Promise<ModuleInstance[]> {\n const resolvedRoots = await this.resolver.resolveHandler(\n assertEx(nodeManifest.status?.address, () => 'Root has no address'),\n undefined,\n { manifest: nodeManifest },\n )\n const rootModule = assertEx(\n resolvedRoots.at(0),\n () => `Root not found [${nodeManifest.status?.address}]`,\n )\n assertEx(rootModule.constructor.name !== 'HttpModuleProxy', () => 'rootModule is not a Wrapper')\n const rootNode = asAttachableNodeInstance(rootModule, 'Root modules is not a node')\n if (rootNode) {\n this.logger?.debug(`rootNode: ${rootNode.id}`)\n this.downResolver.addResolver(rootNode as unknown as ModuleResolverInstance)\n return [rootNode]\n }\n return []\n }\n}\n", "import type { EmptyObject } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk-protocol'\nimport { asSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { BridgeClientConfig, BridgeConfig } from '#bridge-model'\nimport { BridgeConfigZod } from '#bridge-model'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const HttpBridgeConfigSchema: 'network.xyo.bridge.http.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.bridge.http.config', true)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type HttpBridgeConfigSchema = typeof HttpBridgeConfigSchema\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const HttpBridgeConfigZod: z.ZodMiniObject<\n Omit<(typeof BridgeConfigZod)['shape'], 'schema' | 'client' | 'host'> & {\n client: z.ZodMiniOptional<z.ZodMiniCustom<BridgeClientConfig & { url: string }, BridgeClientConfig & { url: string }>>\n failureRetryTime: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n failureTimeCacheMax: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n host: z.ZodMiniOptional<z.ZodMiniCustom<{ port: number }, { port: number }>>\n maxConnections: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n maxPayloadSizeWarning: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n schema: z.ZodMiniLiteral<HttpBridgeConfigSchema>\n },\n z.core.$strip\n> = z.extend(BridgeConfigZod, {\n client: z.optional(z.custom<BridgeClientConfig & { url: string }>()),\n failureRetryTime: z.optional(z.number()),\n failureTimeCacheMax: z.optional(z.number()),\n host: z.optional(z.custom<{ port: number }>()),\n maxConnections: z.optional(z.number()),\n maxPayloadSizeWarning: z.optional(z.number()),\n schema: z.literal(HttpBridgeConfigSchema),\n})\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type HttpBridgeConfigBase = z.infer<typeof HttpBridgeConfigZod>\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const isHttpBridgeConfig: ReturnType<typeof zodIsFactory<HttpBridgeConfigBase>> = zodIsFactory(HttpBridgeConfigZod)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const asHttpBridgeConfig: ReturnType<typeof zodAsFactory<HttpBridgeConfigBase>> = zodAsFactory(HttpBridgeConfigZod, 'asHttpBridgeConfig')\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const toHttpBridgeConfig: ReturnType<typeof zodToFactory<HttpBridgeConfigBase>> = zodToFactory(HttpBridgeConfigZod, 'toHttpBridgeConfig')\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type HttpBridgeConfig<TConfig extends EmptyObject = EmptyObject, TSchema extends string | void = void> = BridgeConfig<\n {\n client?: BridgeConfig['client'] & {\n url: string\n }\n failureRetryTime?: number\n failureTimeCacheMax?: number\n host?: {\n port: number\n }\n maxConnections?: number\n maxPayloadSizeWarning?: number\n schema: HttpBridgeConfigSchema\n } & TConfig,\n TSchema extends Schema ? TSchema : HttpBridgeConfigSchema\n>\n", "import type { CreatableName } from '@ariestools/sdk'\nimport {\n assertEx, isAddress, isDefined,\n} from '@ariestools/sdk'\nimport type {\n ConfigPayload, Payload, XyoAddress,\n XyoQuantAddress,\n} from '@xyo-network/sdk-protocol'\nimport { Account, ConfigSchema } from '@xyo-network/sdk-protocol'\nimport { Mutex } from 'async-mutex'\nimport { LRUCache } from 'lru-cache'\n\nimport type { BridgeModuleResolverParams } from '#bridge-abstract'\nimport { AbstractBridgeModuleResolver, wrapModuleWithType } from '#bridge-abstract'\nimport type {\n AnyConfigSchema,\n ModuleConfig,\n ModuleEventData,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n QueryableModuleParams,\n} from '#module-model'\nimport {\n asModuleInstance,\n isModuleInstance,\n ModuleConfigSchema,\n} from '#module-model'\nimport { ResolveHelper } from '#module-resolver'\n\nimport type { BridgeQuerySender, HttpModuleProxyParams } from './ModuleProxy/index.ts'\nimport { HttpModuleProxy } from './ModuleProxy/index.ts'\n\nconst NotFoundModule = { notFound: true }\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface HttpBridgeModuleResolverParams extends BridgeModuleResolverParams {\n querySender: BridgeQuerySender\n rootUrl: string\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport class HttpBridgeModuleResolver<\n T extends HttpBridgeModuleResolverParams = HttpBridgeModuleResolverParams,\n> extends AbstractBridgeModuleResolver<T> {\n protected _resolvedCache: LRUCache<(Lowercase<string> & {\n readonly __hex: true\n } & {\n readonly __address: true\n }) | XyoQuantAddress, ModuleInstance<QueryableModuleParams<AnyConfigSchema<ModuleConfig>>, ModuleEventData<object>> | {\n notFound: boolean\n }, unknown> = new LRUCache<XyoAddress, ModuleInstance | typeof NotFoundModule>({ max: 1000 })\n\n protected _resolvedCacheMutex: Mutex = new Mutex()\n\n get querySender(): BridgeQuerySender {\n return this.params.querySender\n }\n\n moduleUrl(address: XyoAddress): URL {\n return new URL(address, this.params.rootUrl)\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n params?: Partial<HttpModuleProxyParams>,\n ): Promise<T[]> {\n const parentResult = await super.resolveHandler(id, options)\n if (parentResult.length > 0) {\n return parentResult\n }\n const idParts = id.split(':')\n const untransformedFirstPart = assertEx(idParts.shift(), () => 'Missing module identifier')\n const firstPart = await ResolveHelper.transformModuleIdentifier(untransformedFirstPart)\n assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)\n const remainderParts = idParts.join(':')\n const instance: T | undefined = await this._resolvedCacheMutex.runExclusive(async () => {\n const cachedMod = this._resolvedCache.get(firstPart as XyoAddress)\n if (cachedMod) {\n if (isModuleInstance(cachedMod)) {\n const result = idParts.length === 0 ? cachedMod : cachedMod.resolve(remainderParts, { ...options, maxDepth: (options?.maxDepth ?? 5) - 1 })\n return result as T\n }\n // return cached 404\n return\n }\n const account = await Account.random()\n const finalParams: HttpModuleProxyParams = {\n name: 'HttpBridgeModuleResolver' as CreatableName,\n account,\n archiving: this.params.archiving,\n config: { schema: ModuleConfigSchema },\n host: this,\n moduleAddress: firstPart as XyoAddress,\n onQuerySendFinished: this.params.onQuerySendFinished,\n onQuerySendStarted: this.params.onQuerySendStarted,\n querySender: this.params.querySender,\n ...params,\n }\n\n this.logger?.debug(`creating HttpProxy [${firstPart}] ${id}`)\n\n let proxy: HttpModuleProxy | undefined\n\n let state: Payload[] | undefined\n\n try {\n proxy = await HttpModuleProxy.create(finalParams)\n state = await proxy.state()\n } catch (ex) {\n const error = ex as Error\n this.logger?.error(error.message)\n }\n\n if (isDefined(proxy)) {\n if (!state) {\n // cache the fact that it was not found\n this._resolvedCache.set(firstPart as XyoAddress, NotFoundModule)\n return\n }\n\n const configSchema = (state.find(payload => payload.schema === ConfigSchema) as ConfigPayload | undefined)?.config\n const config = assertEx(\n state.find(payload => payload.schema === configSchema),\n () => 'Unable to locate config',\n ) as ModuleConfig\n proxy.setConfig(config)\n\n this.logger?.log(`created HttpProxy [${firstPart}] ${proxy.id}`)\n\n await proxy.start?.()\n const wrapped = wrapModuleWithType(proxy, account) as unknown as T\n assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)\n this._resolvedCache.set(wrapped.address, wrapped)\n return wrapped\n }\n })\n const result = remainderParts.length > 0 ? await instance?.resolve(remainderParts, options) : instance\n return result ? [result] : []\n }\n}\n", "import {\n exists, forget,\n isAddress, isString,\n} from '@ariestools/sdk'\nimport type {\n Payload, QueryBoundWitness, XyoAddress,\n} from '@xyo-network/sdk-protocol'\n\nimport type { ModuleProxyParams } from '#bridge-abstract'\nimport { AbstractModuleProxy } from '#bridge-abstract'\nimport type {\n AttachableModuleInstance,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleQueryResult,\n} from '#module-model'\nimport { creatableModule } from '#module-model'\nimport type { ResolveHelperConfig } from '#module-resolver'\nimport { ResolveHelper } from '#module-resolver'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface BridgeQuerySender {\n sendBridgeQuery: <TOut extends Payload = Payload, TQuery extends QueryBoundWitness = QueryBoundWitness, TIn extends Payload = Payload>(\n targetAddress: XyoAddress,\n query: TQuery,\n payloads?: TIn[],\n ) => Promise<ModuleQueryResult<TOut>>\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type HttpModuleProxyParams = ModuleProxyParams & {\n querySender: BridgeQuerySender\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\n@creatableModule()\nexport class HttpModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends Omit<HttpModuleProxyParams, 'config'> & { config: TWrappedModule['config'] } = Omit<HttpModuleProxyParams, 'config'> & {\n config: TWrappedModule['config']\n },\n>\n extends AbstractModuleProxy<TWrappedModule, TParams>\n implements AttachableModuleInstance<TParams, TWrappedModule['eventData']> {\n async proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads: Payload[] = []): Promise<ModuleQueryResult> {\n if (this.archiving && this.isAllowedArchivingQuery(query.schema)) {\n forget(this.storeToArchivists([query, ...(payloads ?? [])]))\n }\n const result = await this.params.querySender.sendBridgeQuery(this.params.moduleAddress, query, payloads)\n if (this.archiving && this.isAllowedArchivingQuery(query.schema)) {\n forget(this.storeToArchivists(result.flat()))\n }\n return result\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n const children = await Promise.all(\n Object.values(await this.childAddressMap())\n .filter(exists)\n .map(address => this.resolve(address)),\n )\n return children.filter(exists)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n override async resolve(): Promise<ModuleInstance[]>\n override async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n override async resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n override async resolve<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier = '*',\n options: ModuleFilterOptions<T> = {},\n ): Promise<T | T[] | undefined> {\n if (id === '*') {\n return [...(await this.publicChildren()), await this.params.host.resolve(this.address)] as T[]\n }\n const config: ResolveHelperConfig = {\n address: this.address,\n dead: this.dead,\n downResolver: this.downResolver,\n logger: this.logger,\n mod: this,\n transformers: this.moduleIdentifierTransformers,\n upResolver: this.upResolver,\n }\n switch (typeof id) {\n case 'string': {\n const parts = id.split(':')\n const first = parts.shift()\n if (isString(first)) {\n const remainingPath = parts.length > 0 ? parts.join(':') : undefined\n const address\n = isAddress(first)\n ? first\n : this.id === first\n ? this.address\n : this.childAddressByName(first)\n if (!isAddress(address)) return undefined\n const firstInstance = (await this.params.host.resolve(address))\n return (isString(remainingPath) ? await firstInstance?.resolve(remainingPath) : firstInstance) as T | undefined\n }\n return undefined\n }\n default: {\n const resolved = await ResolveHelper.resolve(config, id, options)\n return resolved.filter(mod => mod.address !== this.address)\n }\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["assertEx", "exists", "forget", "Mutex", "LRUCache", "creatableModule", "isAddress", "ResolveHelper", "ResolveHelper", "isAddress", "result", "Mutex", "LRUCache", "assertEx", "forget", "exists", "creatableModule"]
|
|
7
7
|
}
|
|
@@ -104,11 +104,13 @@ var asBridgeUnexposeQuery = zodAsFactory4(BridgeUnexposeQueryZod, "asBridgeUnexp
|
|
|
104
104
|
var toBridgeUnexposeQuery = zodToFactory4(BridgeUnexposeQueryZod, "toBridgeUnexposeQuery");
|
|
105
105
|
|
|
106
106
|
// src/modules/bridge-model/typeChecks.ts
|
|
107
|
-
var
|
|
107
|
+
var isInstanceFactory = new IsInstanceFactory();
|
|
108
|
+
var isBridgeInstance = isInstanceFactory.create(
|
|
108
109
|
{ expose: "function" },
|
|
109
110
|
[isModuleInstance]
|
|
110
111
|
);
|
|
111
|
-
var
|
|
112
|
+
var isQueryableModuleFactory = new IsQueryableModuleFactory();
|
|
113
|
+
var isBridgeModule = isQueryableModuleFactory.create([BridgeConnectQuerySchema, BridgeDisconnectQuerySchema]);
|
|
112
114
|
var asBridgeModule = AsObjectFactory.create(isBridgeModule);
|
|
113
115
|
var asBridgeInstance = AsObjectFactory.create(isBridgeInstance);
|
|
114
116
|
var withBridgeModule = WithFactory.create(isBridgeModule);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/modules/bridge-model/attachable/asAttachableInstance.ts", "../../src/modules/bridge-model/attachable/isAttachableInstance.ts", "../../src/modules/bridge-model/typeChecks.ts", "../../src/modules/bridge-model/Queries/Connect.ts", "../../src/modules/bridge-model/Queries/Disconnect.ts", "../../src/modules/bridge-model/Queries/Expose.ts", "../../src/modules/bridge-model/Queries/Unexpose.ts", "../../src/modules/bridge-model/attachable/AttachableInstance.ts", "../../src/modules/bridge-model/Config.ts"],
|
|
4
|
-
"sourcesContent": ["import { AsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableBridgeInstance } from './isAttachableInstance.ts'\n\nexport const asAttachableBridgeInstance = AsObjectFactory.create(isAttachableBridgeInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableModuleInstance } from '#module-model'\n\nimport { isBridgeInstance } from '../typeChecks.ts'\nimport type { AttachableBridgeInstance } from './AttachableInstance.ts'\n\nexport const requiredAttachableBridgeInstanceFunctions: ObjectTypeShape = {}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<AttachableBridgeInstance>()\n\nexport const isAttachableBridgeInstance: TypeCheck<AttachableBridgeInstance> = factory.create(requiredAttachableBridgeInstanceFunctions, [\n isBridgeInstance,\n isAttachableModuleInstance,\n])\n", "import { AsObjectFactory } from '@ariestools/sdk'\n\nimport {\n IsInstanceFactory, isModuleInstance, IsQueryableModuleFactory, WithFactory,\n} from '#module-model'\n\nimport type { BridgeInstance } from './Instance.ts'\nimport type { BridgeModule } from './Module.ts'\nimport { BridgeConnectQuerySchema, BridgeDisconnectQuerySchema } from './Queries/index.ts'\n\nexport const isBridgeInstance = new IsInstanceFactory<BridgeInstance>().create(\n { expose: 'function' },\n [isModuleInstance],\n)\nexport const isBridgeModule = new IsQueryableModuleFactory<BridgeModule>().create([BridgeConnectQuerySchema, BridgeDisconnectQuerySchema])\n\nexport const asBridgeModule = AsObjectFactory.create(isBridgeModule)\nexport const asBridgeInstance = AsObjectFactory.create(isBridgeInstance)\n\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withBridgeModule = WithFactory.create(isBridgeModule)\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withBridgeInstance = WithFactory.create(isBridgeInstance)\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\nexport const BridgeConnectQuerySchema: 'network.xyo.query.bridge.connect' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.bridge.connect', true)\nexport type BridgeConnectQuerySchema = typeof BridgeConnectQuerySchema\n\nexport const BridgeConnectQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BridgeConnectQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & {\n id: z.ZodMiniOptional<z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>>\n maxDepth: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(BridgeConnectQuerySchema), {\n ...QueryFieldsZod.shape,\n id: z.optional(z.custom<ModuleIdentifier>()),\n maxDepth: z.optional(z.number()),\n})\n\nexport type BridgeConnectQuery = z.infer<typeof BridgeConnectQueryZod>\n\nexport const isBridgeConnectQuery: ReturnType<typeof zodIsFactory<BridgeConnectQuery>> = zodIsFactory(BridgeConnectQueryZod)\nexport const asBridgeConnectQuery: ReturnType<typeof zodAsFactory<BridgeConnectQuery>> = zodAsFactory(BridgeConnectQueryZod, 'asBridgeConnectQuery')\nexport const toBridgeConnectQuery: ReturnType<typeof zodToFactory<BridgeConnectQuery>> = zodToFactory(BridgeConnectQueryZod, 'toBridgeConnectQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\nexport const BridgeDisconnectQuerySchema: 'network.xyo.query.bridge.disconnect' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.bridge.disconnect', true)\nexport type BridgeDisconnectQuerySchema = typeof BridgeDisconnectQuerySchema\n\nexport const BridgeDisconnectQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BridgeDisconnectQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & {\n id: z.ZodMiniOptional<z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>>\n maxDepth: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(BridgeDisconnectQuerySchema), {\n ...QueryFieldsZod.shape,\n id: z.optional(z.custom<ModuleIdentifier>()),\n maxDepth: z.optional(z.number()),\n})\n\nexport type BridgeDisconnectQuery = z.infer<typeof BridgeDisconnectQueryZod>\n\nexport const isBridgeDisconnectQuery: ReturnType<typeof zodIsFactory<BridgeDisconnectQuery>> = zodIsFactory(BridgeDisconnectQueryZod)\nexport const asBridgeDisconnectQuery: ReturnType<typeof zodAsFactory<BridgeDisconnectQuery>> = zodAsFactory(BridgeDisconnectQueryZod, 'asBridgeDisconnectQuery')\nexport const toBridgeDisconnectQuery: ReturnType<typeof zodToFactory<BridgeDisconnectQuery>> = zodToFactory(BridgeDisconnectQueryZod, 'toBridgeDisconnectQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\nexport const BridgeExposeQuerySchema: 'network.xyo.query.bridge.expose' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.bridge.expose', true)\nexport type BridgeExposeQuerySchema = typeof BridgeExposeQuerySchema\n\nexport interface BridgeExposeOptions {\n maxDepth?: number\n required?: boolean\n}\n\nexport const ModuleFilterPayloadSchema: 'network.xyo.module.filter' & {\n readonly __schema: true\n} = asSchema('network.xyo.module.filter', true)\nexport type ModuleFilterPayloadSchema = typeof ModuleFilterPayloadSchema\n\nexport const ModuleFilterPayloadZod: z.ZodMiniObject<{\n id: z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>\n maxDepth: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n required: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n schema: z.ZodMiniLiteral<ModuleFilterPayloadSchema>\n}, z.core.$strip> = z.extend(PayloadZodOfSchema(ModuleFilterPayloadSchema), {\n id: z.custom<ModuleIdentifier>(),\n maxDepth: z.optional(z.number()),\n required: z.optional(z.boolean()),\n})\n\nexport type ModuleFilterPayload = z.infer<typeof ModuleFilterPayloadZod>\n\nexport const isModuleFilterPayload: ReturnType<typeof zodIsFactory<ModuleFilterPayload>> = zodIsFactory(ModuleFilterPayloadZod)\nexport const asModuleFilterPayload: ReturnType<typeof zodAsFactory<ModuleFilterPayload>> = zodAsFactory(ModuleFilterPayloadZod, 'asModuleFilterPayload')\nexport const toModuleFilterPayload: ReturnType<typeof zodToFactory<ModuleFilterPayload>> = zodToFactory(ModuleFilterPayloadZod, 'toModuleFilterPayload')\n\nexport const BridgeExposeQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BridgeExposeQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(BridgeExposeQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type BridgeExposeQuery = z.infer<typeof BridgeExposeQueryZod>\n\nexport const isBridgeExposeQuery: ReturnType<typeof zodIsFactory<BridgeExposeQuery>> = zodIsFactory(BridgeExposeQueryZod)\nexport const asBridgeExposeQuery: ReturnType<typeof zodAsFactory<BridgeExposeQuery>> = zodAsFactory(BridgeExposeQueryZod, 'asBridgeExposeQuery')\nexport const toBridgeExposeQuery: ReturnType<typeof zodToFactory<BridgeExposeQuery>> = zodToFactory(BridgeExposeQueryZod, 'toBridgeExposeQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { BridgeExposeOptions } from './Expose.ts'\n\nexport const BridgeUnexposeQuerySchema: 'network.xyo.query.bridge.unexpose' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.bridge.unexpose', true)\nexport type BridgeUnexposeQuerySchema = typeof BridgeUnexposeQuerySchema\n\nexport interface BridgeUnexposeOptions extends BridgeExposeOptions {}\n\nexport const BridgeUnexposeQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BridgeUnexposeQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(BridgeUnexposeQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type BridgeUnexposeQuery = z.infer<typeof BridgeUnexposeQueryZod>\n\nexport const isBridgeUnexposeQuery: ReturnType<typeof zodIsFactory<BridgeUnexposeQuery>> = zodIsFactory(BridgeUnexposeQueryZod)\nexport const asBridgeUnexposeQuery: ReturnType<typeof zodAsFactory<BridgeUnexposeQuery>> = zodAsFactory(BridgeUnexposeQueryZod, 'asBridgeUnexposeQuery')\nexport const toBridgeUnexposeQuery: ReturnType<typeof zodToFactory<BridgeUnexposeQuery>> = zodToFactory(BridgeUnexposeQueryZod, 'toBridgeUnexposeQuery')\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport type { AttachableModuleInstance } from '#module-model'\n\nimport type { BridgeModuleEventData } from '../EventData.ts'\nimport type { BridgeInstance } from '../Instance.ts'\nimport type { BridgeModule } from '../Module.ts'\nimport type { BridgeParams } from '../Params.ts'\n\nexport interface AttachableBridgeInstance<\n TParams extends BridgeParams = BridgeParams,\n TEventData extends BridgeModuleEventData = BridgeModuleEventData,\n> extends BridgeModule<TParams, TEventData>,\n AttachableModuleInstance<TParams, TEventData>,\n BridgeInstance<TParams, TEventData> {}\n\nexport type AttachableBridgeInstanceTypeCheck<T extends AttachableBridgeInstance = AttachableBridgeInstance> = TypeCheck<T>\n\nexport class IsAttachableBridgeInstanceFactory<T extends AttachableBridgeInstance = AttachableBridgeInstance> extends IsObjectFactory<T> {}\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type {\n Payload,\n Schema,\n} from '@xyo-network/sdk-protocol'\nimport { asSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { CacheConfig, ModuleConfig } from '#module-model'\nimport { ModuleConfigZod } from '#module-model'\n\nexport const BridgeConfigSchema: 'network.xyo.bridge.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.bridge.config', true)\nexport type BridgeConfigSchema = typeof BridgeConfigSchema\n\nexport interface BridgeClientConfig {\n cache?: CacheConfig | true\n discoverRoots?: 'start' | 'lazy'\n maxDepth?: number\n}\n\nexport interface BridgeHostConfig {\n cache?: CacheConfig | true\n maxDepth?: number\n}\n\nexport const BridgeConfigZod: z.ZodMiniObject<\n Omit<(typeof ModuleConfigZod)['shape'], 'schema'> & {\n client: z.ZodMiniOptional<z.ZodMiniCustom<BridgeClientConfig, BridgeClientConfig>>\n host: z.ZodMiniOptional<z.ZodMiniCustom<BridgeHostConfig, BridgeHostConfig>>\n schema: z.ZodMiniLiteral<BridgeConfigSchema>\n },\n z.core.$strip\n> = z.extend(ModuleConfigZod, {\n schema: z.literal(BridgeConfigSchema),\n client: z.optional(z.custom<BridgeClientConfig>()),\n host: z.optional(z.custom<BridgeHostConfig>()),\n})\n\nexport type BridgeConfigBase = z.infer<typeof BridgeConfigZod>\n\nexport const isBridgeConfig: ReturnType<typeof zodIsFactory<BridgeConfigBase>> = zodIsFactory(BridgeConfigZod)\nexport const asBridgeConfig: ReturnType<typeof zodAsFactory<BridgeConfigBase>> = zodAsFactory(BridgeConfigZod, 'asBridgeConfig')\nexport const toBridgeConfig: ReturnType<typeof zodToFactory<BridgeConfigBase>> = zodToFactory(BridgeConfigZod, 'toBridgeConfig')\n\nexport type BridgeConfig<\n TConfig extends Payload | EmptyObject | void = void,\n TSchema extends Schema | void = void,\n TClient extends EmptyObject | void = void,\n THost extends EmptyObject | void = void,\n> = ModuleConfig<\n WithAdditional<\n {\n client?: WithAdditional<BridgeClientConfig, TClient>\n host?: WithAdditional<BridgeHostConfig, THost>\n schema: TConfig extends Payload ? TConfig['schema'] : BridgeConfigSchema\n },\n TConfig\n >,\n TSchema\n>\n"],
|
|
5
|
-
"mappings": ";AAAA,SAAS,mBAAAA,wBAAuB;;;ACChC,SAAS,uBAAuB;AAEhC,SAAS,kCAAkC;;;ACH3C,SAAS,uBAAuB;AAEhC;AAAA,EACE;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAA0B;AAAA,OAC1D;;;ACJP;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AACP;AAAA,EACE;AAAA,EAAU;AAAA,EAAoB;AAAA,OACzB;AACP,YAAY,OAAO;
|
|
4
|
+
"sourcesContent": ["import { AsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableBridgeInstance } from './isAttachableInstance.ts'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const asAttachableBridgeInstance = AsObjectFactory.create(isAttachableBridgeInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableModuleInstance } from '#module-model'\n\nimport { isBridgeInstance } from '../typeChecks.ts'\nimport type { AttachableBridgeInstance } from './AttachableInstance.ts'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const requiredAttachableBridgeInstanceFunctions: ObjectTypeShape = {}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<AttachableBridgeInstance>()\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const isAttachableBridgeInstance: TypeCheck<AttachableBridgeInstance> = factory.create(requiredAttachableBridgeInstanceFunctions, [\n isBridgeInstance,\n isAttachableModuleInstance,\n])\n", "import { AsObjectFactory } from '@ariestools/sdk'\n\nimport {\n IsInstanceFactory, isModuleInstance, IsQueryableModuleFactory, WithFactory,\n} from '#module-model'\n\nimport type { BridgeInstance } from './Instance.ts'\nimport type { BridgeModule } from './Module.ts'\nimport { BridgeConnectQuerySchema, BridgeDisconnectQuerySchema } from './Queries/index.ts'\n\nconst isInstanceFactory = new IsInstanceFactory<BridgeInstance>()\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const isBridgeInstance = isInstanceFactory.create(\n { expose: 'function' },\n [isModuleInstance],\n)\nconst isQueryableModuleFactory = new IsQueryableModuleFactory<BridgeModule>()\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const isBridgeModule = isQueryableModuleFactory.create([BridgeConnectQuerySchema, BridgeDisconnectQuerySchema])\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const asBridgeModule = AsObjectFactory.create(isBridgeModule)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const asBridgeInstance = AsObjectFactory.create(isBridgeInstance)\n\n/**\n * @deprecated The Bridge module concept is deprecated and will be removed in the next major version.\n * @deprecated use narrowing instead [ if(is) ]\n */\nexport const withBridgeModule = WithFactory.create(isBridgeModule)\n/**\n * @deprecated The Bridge module concept is deprecated and will be removed in the next major version.\n * @deprecated use narrowing instead [ if(is) ]\n */\nexport const withBridgeInstance = WithFactory.create(isBridgeInstance)\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const BridgeConnectQuerySchema: 'network.xyo.query.bridge.connect' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.bridge.connect', true)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeConnectQuerySchema = typeof BridgeConnectQuerySchema\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const BridgeConnectQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BridgeConnectQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & {\n id: z.ZodMiniOptional<z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>>\n maxDepth: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(BridgeConnectQuerySchema), {\n ...QueryFieldsZod.shape,\n id: z.optional(z.custom<ModuleIdentifier>()),\n maxDepth: z.optional(z.number()),\n})\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeConnectQuery = z.infer<typeof BridgeConnectQueryZod>\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const isBridgeConnectQuery: ReturnType<typeof zodIsFactory<BridgeConnectQuery>> = zodIsFactory(BridgeConnectQueryZod)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const asBridgeConnectQuery: ReturnType<typeof zodAsFactory<BridgeConnectQuery>> = zodAsFactory(BridgeConnectQueryZod, 'asBridgeConnectQuery')\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const toBridgeConnectQuery: ReturnType<typeof zodToFactory<BridgeConnectQuery>> = zodToFactory(BridgeConnectQueryZod, 'toBridgeConnectQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const BridgeDisconnectQuerySchema: 'network.xyo.query.bridge.disconnect' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.bridge.disconnect', true)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeDisconnectQuerySchema = typeof BridgeDisconnectQuerySchema\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const BridgeDisconnectQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BridgeDisconnectQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & {\n id: z.ZodMiniOptional<z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>>\n maxDepth: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(BridgeDisconnectQuerySchema), {\n ...QueryFieldsZod.shape,\n id: z.optional(z.custom<ModuleIdentifier>()),\n maxDepth: z.optional(z.number()),\n})\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeDisconnectQuery = z.infer<typeof BridgeDisconnectQueryZod>\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const isBridgeDisconnectQuery: ReturnType<typeof zodIsFactory<BridgeDisconnectQuery>> = zodIsFactory(BridgeDisconnectQueryZod)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const asBridgeDisconnectQuery: ReturnType<typeof zodAsFactory<BridgeDisconnectQuery>> = zodAsFactory(BridgeDisconnectQueryZod, 'asBridgeDisconnectQuery')\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const toBridgeDisconnectQuery: ReturnType<typeof zodToFactory<BridgeDisconnectQuery>> = zodToFactory(BridgeDisconnectQueryZod, 'toBridgeDisconnectQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleIdentifier } from '#module-model'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const BridgeExposeQuerySchema: 'network.xyo.query.bridge.expose' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.bridge.expose', true)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeExposeQuerySchema = typeof BridgeExposeQuerySchema\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface BridgeExposeOptions {\n maxDepth?: number\n required?: boolean\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const ModuleFilterPayloadSchema: 'network.xyo.module.filter' & {\n readonly __schema: true\n} = asSchema('network.xyo.module.filter', true)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type ModuleFilterPayloadSchema = typeof ModuleFilterPayloadSchema\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const ModuleFilterPayloadZod: z.ZodMiniObject<{\n id: z.ZodMiniCustom<ModuleIdentifier, ModuleIdentifier>\n maxDepth: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n required: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n schema: z.ZodMiniLiteral<ModuleFilterPayloadSchema>\n}, z.core.$strip> = z.extend(PayloadZodOfSchema(ModuleFilterPayloadSchema), {\n id: z.custom<ModuleIdentifier>(),\n maxDepth: z.optional(z.number()),\n required: z.optional(z.boolean()),\n})\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type ModuleFilterPayload = z.infer<typeof ModuleFilterPayloadZod>\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const isModuleFilterPayload: ReturnType<typeof zodIsFactory<ModuleFilterPayload>> = zodIsFactory(ModuleFilterPayloadZod)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const asModuleFilterPayload: ReturnType<typeof zodAsFactory<ModuleFilterPayload>> = zodAsFactory(ModuleFilterPayloadZod, 'asModuleFilterPayload')\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const toModuleFilterPayload: ReturnType<typeof zodToFactory<ModuleFilterPayload>> = zodToFactory(ModuleFilterPayloadZod, 'toModuleFilterPayload')\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const BridgeExposeQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BridgeExposeQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(BridgeExposeQuerySchema), { ...QueryFieldsZod.shape })\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeExposeQuery = z.infer<typeof BridgeExposeQueryZod>\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const isBridgeExposeQuery: ReturnType<typeof zodIsFactory<BridgeExposeQuery>> = zodIsFactory(BridgeExposeQueryZod)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const asBridgeExposeQuery: ReturnType<typeof zodAsFactory<BridgeExposeQuery>> = zodAsFactory(BridgeExposeQueryZod, 'asBridgeExposeQuery')\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const toBridgeExposeQuery: ReturnType<typeof zodToFactory<BridgeExposeQuery>> = zodToFactory(BridgeExposeQueryZod, 'toBridgeExposeQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { BridgeExposeOptions } from './Expose.ts'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const BridgeUnexposeQuerySchema: 'network.xyo.query.bridge.unexpose' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.bridge.unexpose', true)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeUnexposeQuerySchema = typeof BridgeUnexposeQuerySchema\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface BridgeUnexposeOptions extends BridgeExposeOptions {}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const BridgeUnexposeQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BridgeUnexposeQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(BridgeUnexposeQuerySchema), { ...QueryFieldsZod.shape })\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeUnexposeQuery = z.infer<typeof BridgeUnexposeQueryZod>\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const isBridgeUnexposeQuery: ReturnType<typeof zodIsFactory<BridgeUnexposeQuery>> = zodIsFactory(BridgeUnexposeQueryZod)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const asBridgeUnexposeQuery: ReturnType<typeof zodAsFactory<BridgeUnexposeQuery>> = zodAsFactory(BridgeUnexposeQueryZod, 'asBridgeUnexposeQuery')\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const toBridgeUnexposeQuery: ReturnType<typeof zodToFactory<BridgeUnexposeQuery>> = zodToFactory(BridgeUnexposeQueryZod, 'toBridgeUnexposeQuery')\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport type { AttachableModuleInstance } from '#module-model'\n\nimport type { BridgeModuleEventData } from '../EventData.ts'\nimport type { BridgeInstance } from '../Instance.ts'\nimport type { BridgeModule } from '../Module.ts'\nimport type { BridgeParams } from '../Params.ts'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface AttachableBridgeInstance<\n TParams extends BridgeParams = BridgeParams,\n TEventData extends BridgeModuleEventData = BridgeModuleEventData,\n> extends BridgeModule<TParams, TEventData>,\n AttachableModuleInstance<TParams, TEventData>,\n BridgeInstance<TParams, TEventData> {}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type AttachableBridgeInstanceTypeCheck<T extends AttachableBridgeInstance = AttachableBridgeInstance> = TypeCheck<T>\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport class IsAttachableBridgeInstanceFactory<T extends AttachableBridgeInstance = AttachableBridgeInstance> extends IsObjectFactory<T> {}\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type {\n Payload,\n Schema,\n} from '@xyo-network/sdk-protocol'\nimport { asSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { CacheConfig, ModuleConfig } from '#module-model'\nimport { ModuleConfigZod } from '#module-model'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const BridgeConfigSchema: 'network.xyo.bridge.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.bridge.config', true)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeConfigSchema = typeof BridgeConfigSchema\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface BridgeClientConfig {\n cache?: CacheConfig | true\n discoverRoots?: 'start' | 'lazy'\n maxDepth?: number\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport interface BridgeHostConfig {\n cache?: CacheConfig | true\n maxDepth?: number\n}\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const BridgeConfigZod: z.ZodMiniObject<\n Omit<(typeof ModuleConfigZod)['shape'], 'schema'> & {\n client: z.ZodMiniOptional<z.ZodMiniCustom<BridgeClientConfig, BridgeClientConfig>>\n host: z.ZodMiniOptional<z.ZodMiniCustom<BridgeHostConfig, BridgeHostConfig>>\n schema: z.ZodMiniLiteral<BridgeConfigSchema>\n },\n z.core.$strip\n> = z.extend(ModuleConfigZod, {\n schema: z.literal(BridgeConfigSchema),\n client: z.optional(z.custom<BridgeClientConfig>()),\n host: z.optional(z.custom<BridgeHostConfig>()),\n})\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeConfigBase = z.infer<typeof BridgeConfigZod>\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const isBridgeConfig: ReturnType<typeof zodIsFactory<BridgeConfigBase>> = zodIsFactory(BridgeConfigZod)\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const asBridgeConfig: ReturnType<typeof zodAsFactory<BridgeConfigBase>> = zodAsFactory(BridgeConfigZod, 'asBridgeConfig')\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport const toBridgeConfig: ReturnType<typeof zodToFactory<BridgeConfigBase>> = zodToFactory(BridgeConfigZod, 'toBridgeConfig')\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport type BridgeConfig<\n TConfig extends Payload | EmptyObject | void = void,\n TSchema extends Schema | void = void,\n TClient extends EmptyObject | void = void,\n THost extends EmptyObject | void = void,\n> = ModuleConfig<\n WithAdditional<\n {\n client?: WithAdditional<BridgeClientConfig, TClient>\n host?: WithAdditional<BridgeHostConfig, THost>\n schema: TConfig extends Payload ? TConfig['schema'] : BridgeConfigSchema\n },\n TConfig\n >,\n TSchema\n>\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["AsObjectFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "AsObjectFactory", "IsObjectFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z"]
|
|
7
7
|
}
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
5
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
6
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
7
|
+
if (decorator = decorators[i])
|
|
8
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
9
|
+
if (kind && result) __defProp(target, key, result);
|
|
10
|
+
return result;
|
|
11
|
+
};
|
|
12
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
13
|
+
|
|
1
14
|
// src/modules/bridge-wrapper/BridgeWrapper.ts
|
|
2
15
|
import {
|
|
3
16
|
BridgeExposeQuerySchema,
|
|
@@ -7,17 +20,15 @@ import {
|
|
|
7
20
|
ModuleFilterPayloadSchema
|
|
8
21
|
} from "#bridge-model";
|
|
9
22
|
import { constructableModuleWrapper, ModuleWrapper } from "#module-wrapper";
|
|
10
|
-
constructableModuleWrapper();
|
|
11
23
|
var BridgeWrapper = class extends ModuleWrapper {
|
|
12
|
-
static instanceIdentityCheck = isBridgeInstance;
|
|
13
|
-
static moduleIdentityCheck = isBridgeModule;
|
|
14
24
|
async expose(id, options) {
|
|
15
25
|
const filterPayload = {
|
|
16
26
|
id,
|
|
17
27
|
schema: ModuleFilterPayloadSchema,
|
|
18
28
|
...options
|
|
19
29
|
};
|
|
20
|
-
const
|
|
30
|
+
const queryResult = await this.sendQuery({ schema: BridgeExposeQuerySchema }, [filterPayload]);
|
|
31
|
+
const addresses = queryResult.map(({ address }) => address);
|
|
21
32
|
return await Promise.all(addresses.map((address) => this.resolve(address)));
|
|
22
33
|
}
|
|
23
34
|
async unexpose(id, options) {
|
|
@@ -26,9 +37,15 @@ var BridgeWrapper = class extends ModuleWrapper {
|
|
|
26
37
|
schema: ModuleFilterPayloadSchema,
|
|
27
38
|
...options
|
|
28
39
|
};
|
|
29
|
-
|
|
40
|
+
const queryResult = await this.sendQuery({ schema: BridgeUnexposeQuerySchema }, [filterPayload]);
|
|
41
|
+
return queryResult.map(({ address }) => address);
|
|
30
42
|
}
|
|
31
43
|
};
|
|
44
|
+
__publicField(BridgeWrapper, "instanceIdentityCheck", isBridgeInstance);
|
|
45
|
+
__publicField(BridgeWrapper, "moduleIdentityCheck", isBridgeModule);
|
|
46
|
+
BridgeWrapper = __decorateClass([
|
|
47
|
+
constructableModuleWrapper()
|
|
48
|
+
], BridgeWrapper);
|
|
32
49
|
export {
|
|
33
50
|
BridgeWrapper
|
|
34
51
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/modules/bridge-wrapper/BridgeWrapper.ts"],
|
|
4
|
-
"sourcesContent": ["import type { TypeCheck } from '@ariestools/sdk'\nimport type { XyoAddress } from '@xyo-network/sdk-protocol'\n\nimport type {\n BridgeConfig,\n BridgeExposeOptions,\n BridgeExposeQuery,\n BridgeInstance,\n BridgeModule,\n BridgeModuleEventData,\n BridgeParams,\n BridgeUnexposeOptions,\n BridgeUnexposeQuery,\n ModuleFilterPayload,\n} from '#bridge-model'\nimport {\n BridgeExposeQuerySchema,\n BridgeUnexposeQuerySchema,\n isBridgeInstance,\n isBridgeModule,\n ModuleFilterPayloadSchema,\n} from '#bridge-model'\nimport type {\n AddressPayload, AnyConfigSchema, ModuleIdentifier, ModuleInstance,\n QueryableModuleTypeCheck,\n} from '#module-model'\nimport { constructableModuleWrapper, ModuleWrapper } from '#module-wrapper'\n\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { TypeCheck } from '@ariestools/sdk'\nimport type { XyoAddress } from '@xyo-network/sdk-protocol'\n\nimport type {\n BridgeConfig,\n BridgeExposeOptions,\n BridgeExposeQuery,\n BridgeInstance,\n BridgeModule,\n BridgeModuleEventData,\n BridgeParams,\n BridgeUnexposeOptions,\n BridgeUnexposeQuery,\n ModuleFilterPayload,\n} from '#bridge-model'\nimport {\n BridgeExposeQuerySchema,\n BridgeUnexposeQuerySchema,\n isBridgeInstance,\n isBridgeModule,\n ModuleFilterPayloadSchema,\n} from '#bridge-model'\nimport type {\n AddressPayload, AnyConfigSchema, ModuleIdentifier, ModuleInstance,\n QueryableModuleTypeCheck,\n} from '#module-model'\nimport { constructableModuleWrapper, ModuleWrapper } from '#module-wrapper'\n\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\n@constructableModuleWrapper()\nexport class BridgeWrapper<TWrappedModule extends BridgeModule = BridgeModule>\n extends ModuleWrapper<TWrappedModule>\n implements BridgeInstance<TWrappedModule['params']> {\n static override readonly instanceIdentityCheck: TypeCheck<BridgeInstance<BridgeParams<AnyConfigSchema<BridgeConfig<void, void, void, void>>>, BridgeModuleEventData>> = isBridgeInstance\n static override readonly moduleIdentityCheck: QueryableModuleTypeCheck<BridgeModule<BridgeParams<AnyConfigSchema<BridgeConfig<void, void, void, void>>>, BridgeModuleEventData>> = isBridgeModule\n\n async expose(id: ModuleIdentifier, options?: BridgeExposeOptions): Promise<ModuleInstance[]> {\n const filterPayload: ModuleFilterPayload = {\n id, schema: ModuleFilterPayloadSchema, ...options,\n }\n const queryResult = await this.sendQuery<BridgeExposeQuery, ModuleFilterPayload, AddressPayload>({ schema: BridgeExposeQuerySchema }, [filterPayload])\n const addresses = queryResult.map(({ address }) => address)\n return await Promise.all((addresses).map(address => this.resolve(address)))\n }\n\n async unexpose(id: ModuleIdentifier, options?: BridgeUnexposeOptions): Promise<XyoAddress[]> {\n const filterPayload: ModuleFilterPayload = {\n id, schema: ModuleFilterPayloadSchema, ...options,\n }\n const queryResult = await this.sendQuery<BridgeUnexposeQuery, ModuleFilterPayload, AddressPayload>({ schema: BridgeUnexposeQuerySchema }, [filterPayload])\n return queryResult.map(({ address }) => address)\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAeA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,SAAS,4BAA4B,qBAAqB;AAInD,IAAM,gBAAN,cACG,cAC4C;AAAA,EAIpD,MAAM,OAAO,IAAsB,SAA0D;AAC3F,UAAM,gBAAqC;AAAA,MACzC;AAAA,MAAI,QAAQ;AAAA,MAA2B,GAAG;AAAA,IAC5C;AACA,UAAM,cAAc,MAAM,KAAK,UAAkE,EAAE,QAAQ,wBAAwB,GAAG,CAAC,aAAa,CAAC;AACrJ,UAAM,YAAY,YAAY,IAAI,CAAC,EAAE,QAAQ,MAAM,OAAO;AAC1D,WAAO,MAAM,QAAQ,IAAK,UAAW,IAAI,aAAW,KAAK,QAAQ,OAAO,CAAC,CAAC;AAAA,EAC5E;AAAA,EAEA,MAAM,SAAS,IAAsB,SAAwD;AAC3F,UAAM,gBAAqC;AAAA,MACzC;AAAA,MAAI,QAAQ;AAAA,MAA2B,GAAG;AAAA,IAC5C;AACA,UAAM,cAAc,MAAM,KAAK,UAAoE,EAAE,QAAQ,0BAA0B,GAAG,CAAC,aAAa,CAAC;AACzJ,WAAO,YAAY,IAAI,CAAC,EAAE,QAAQ,MAAM,OAAO;AAAA,EACjD;AACF;AAnBE,cAHW,eAGc,yBAA+I;AACxK,cAJW,eAIc,uBAA0J;AAJxK,gBAAN;AAAA,EADN,2BAA2B;AAAA,GACf;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/modules/bridge/index.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";
|
|
4
|
+
"sourcesContent": ["/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport * from '#bridge-abstract'\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport * from '#bridge-model'\n/** @deprecated The Bridge module concept is deprecated and will be removed in the next major version. */\nexport * from '#bridge-wrapper'\n"],
|
|
5
|
+
"mappings": ";AACA,cAAc;AAEd,cAAc;AAEd,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -28,7 +28,8 @@ var delayedResolve = async (parent, id, closure, as = asModuleInstance, timeout
|
|
|
28
28
|
if (isDefined(result)) {
|
|
29
29
|
closure(result);
|
|
30
30
|
break;
|
|
31
|
-
}
|
|
31
|
+
}
|
|
32
|
+
if (Date.now() - start > timeout) {
|
|
32
33
|
logger?.error(`Timed out waiting for ${id} to resolve`);
|
|
33
34
|
closure(null);
|
|
34
35
|
}
|
|
@@ -48,7 +49,7 @@ var AbstractDiviner = class extends AbstractModuleInstance {
|
|
|
48
49
|
this._noOverride("divine");
|
|
49
50
|
this.isSupportedQuery(DivinerDivineQuerySchema, "divine");
|
|
50
51
|
return await this.spanAsync("divine", async () => {
|
|
51
|
-
if (this.reentrancy?.scope === "global" && this.reentrancy.action === "skip" && this.globalReentrancyMutex?.isLocked()) {
|
|
52
|
+
if (this.reentrancy?.scope === "global" && this.reentrancy.action === "skip" && this.globalReentrancyMutex?.isLocked() === true) {
|
|
52
53
|
return [];
|
|
53
54
|
}
|
|
54
55
|
try {
|
|
@@ -72,7 +73,7 @@ var AbstractDiviner = class extends AbstractModuleInstance {
|
|
|
72
73
|
outPayloads
|
|
73
74
|
});
|
|
74
75
|
if (errors.length > 0) {
|
|
75
|
-
throw new
|
|
76
|
+
throw new AggregateError(errors, `Divine failed with ${errors.length} errors: ${errors.map((e) => e.message).join(", ")}`);
|
|
76
77
|
}
|
|
77
78
|
return PayloadBuilder.omitPrivateStorageMeta(outPayloads);
|
|
78
79
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/modules/diviner-abstract/AbstractDiviner.ts"],
|
|
4
|
-
"sourcesContent": ["import type {\n AsTypeFunction, EventUnsubscribeFunction, Logger,\n Promisable, RetryConfig, RetryConfigWithComplete,\n} from '@ariestools/sdk'\nimport {\n assertEx,\n delay,\n forget,\n isDefined, isNull, isUndefined, retry,\n} from '@ariestools/sdk'\nimport type {\n AccountInstance, Payload, QueryBoundWitness,\n Schema, WithoutPrivateStorageMeta,\n} from '@xyo-network/sdk-protocol'\nimport { PayloadBuilder, QueryBoundWitnessWrapper } from '@xyo-network/sdk-protocol'\n\nimport { isArchivistInstance } from '#archivist-model'\nimport type {\n AttachableDivinerInstance,\n DivinerDivineQuery,\n DivinerDivineResult,\n DivinerInstance,\n DivinerModuleEventData,\n DivinerParams,\n DivinerQueries,\n} from '#diviner-model'\nimport {\n DivinerConfigSchema, DivinerDivineQuerySchema, isDivinerInstance,\n} from '#diviner-model'\nimport { AbstractModuleInstance } from '#module-abstract'\nimport {\n asModuleInstance,\n type ModuleConfig, type ModuleIdentifier, type ModuleInstance, type ModuleQueryHandlerResult, type ModuleQueryResult,\n} from '#module-model'\nimport { isWitnessInstance } from '#witness-model'\n\nconst delayedResolve = async <T extends ModuleInstance>(\n parent: ModuleInstance,\n id: ModuleIdentifier,\n closure: (mod: T | null) => void,\n as: AsTypeFunction<T> = asModuleInstance,\n timeout = 30_000,\n logger?: Logger,\n) => {\n const start = Date.now()\n let result: T | undefined\n while (isUndefined(result)) {\n result = as(await parent.resolve(id))\n if (isDefined(result)) {\n closure(result)\n break\n }
|
|
5
|
-
"mappings": ";AAIA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAAW;AAAA,EAAQ;AAAA,EAAa;AAAA,OAC3B;AAKP,SAAS,gBAAgB,gCAAgC;AAEzD,SAAS,2BAA2B;AAUpC;AAAA,EACE;AAAA,EAAqB;AAAA,EAA0B;AAAA,OAC1C;AACP,SAAS,8BAA8B;AACvC;AAAA,EACE;AAAA,OAEK;AACP,SAAS,yBAAyB;AAElC,IAAM,iBAAiB,OACrB,QACA,IACA,SACA,KAAwB,kBACxB,UAAU,KACV,WACG;AACH,QAAM,QAAQ,KAAK,IAAI;AACvB,MAAI;AACJ,SAAO,YAAY,MAAM,GAAG;AAC1B,aAAS,GAAG,MAAM,OAAO,QAAQ,EAAE,CAAC;AACpC,QAAI,UAAU,MAAM,GAAG;AACrB,cAAQ,MAAM;AACd;AAAA,IACF,
|
|
4
|
+
"sourcesContent": ["import type {\n AsTypeFunction, EventUnsubscribeFunction, Logger,\n Promisable, RetryConfig, RetryConfigWithComplete,\n} from '@ariestools/sdk'\nimport {\n assertEx,\n delay,\n forget,\n isDefined, isNull, isUndefined, retry,\n} from '@ariestools/sdk'\nimport type {\n AccountInstance, Payload, QueryBoundWitness,\n Schema, WithoutPrivateStorageMeta,\n} from '@xyo-network/sdk-protocol'\nimport { PayloadBuilder, QueryBoundWitnessWrapper } from '@xyo-network/sdk-protocol'\n\nimport { isArchivistInstance } from '#archivist-model'\nimport type {\n AttachableDivinerInstance,\n DivinerDivineQuery,\n DivinerDivineResult,\n DivinerInstance,\n DivinerModuleEventData,\n DivinerParams,\n DivinerQueries,\n} from '#diviner-model'\nimport {\n DivinerConfigSchema, DivinerDivineQuerySchema, isDivinerInstance,\n} from '#diviner-model'\nimport { AbstractModuleInstance } from '#module-abstract'\nimport {\n asModuleInstance,\n type ModuleConfig, type ModuleIdentifier, type ModuleInstance, type ModuleQueryHandlerResult, type ModuleQueryResult,\n} from '#module-model'\nimport { isWitnessInstance } from '#witness-model'\n\nconst delayedResolve = async <T extends ModuleInstance>(\n parent: ModuleInstance,\n id: ModuleIdentifier,\n closure: (mod: T | null) => void,\n as: AsTypeFunction<T> = asModuleInstance,\n timeout = 30_000,\n logger?: Logger,\n) => {\n const start = Date.now()\n let result: T | undefined\n while (isUndefined(result)) {\n result = as(await parent.resolve(id))\n if (isDefined(result)) {\n closure(result)\n break\n }\n if (Date.now() - start > timeout) {\n logger?.error(`Timed out waiting for ${id} to resolve`)\n closure(null)\n }\n await delay(500)\n }\n}\n\nexport abstract class AbstractDiviner<\n TParams extends DivinerParams = DivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n>\n extends AbstractModuleInstance<TParams, TEventData>\n implements AttachableDivinerInstance<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static readonly targetSchema: Schema\n\n private _eventUnsubscribeFunctions: EventUnsubscribeFunction[] = []\n\n override get queries(): Schema[] {\n return [DivinerDivineQuerySchema, ...super.queries]\n }\n\n /** @function divine The main entry point for a diviner. Do not override this function. Implement/override divineHandler for custom functionality */\n async divine(payloads: TIn[] = [], retryConfigIn?: RetryConfigWithComplete): Promise<DivinerDivineResult<TOut>[]> {\n this._noOverride('divine')\n this.isSupportedQuery(DivinerDivineQuerySchema, 'divine')\n return await this.spanAsync('divine', async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked() === true) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n const retryConfig = retryConfigIn ?? this.config.retry\n await this.startedAsync('throw')\n await this.emit('divineStart', { inPayloads: payloads, mod: this })\n let outPayloads: TOut[] = []\n const errors: Error[] = []\n try {\n outPayloads = (retryConfig ? await retry(() => this.divineHandler(payloads), retryConfig) : await this.divineHandler(payloads)) ?? []\n } catch (ex) {\n errors.push(ex as Error)\n this.logger?.error(`Error in divineHandler: ${String(ex)}`)\n }\n await this.emit('divineEnd', {\n errors, inPayloads: payloads, mod: this, outPayloads,\n })\n if (errors.length > 0) {\n throw new AggregateError(errors, `Divine failed with ${errors.length} errors: ${errors.map(e => e.message).join(', ')}`)\n }\n return PayloadBuilder.omitPrivateStorageMeta<TOut>(outPayloads)\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: 200 })\n }\n\n async divineQuery(payloads?: TIn[], account?: AccountInstance, _retry?: RetryConfig): Promise<ModuleQueryResult<TOut>> {\n this._noOverride('divineQuery')\n const queryPayload: DivinerDivineQuery = { schema: DivinerDivineQuerySchema }\n return await this.sendQueryRaw(queryPayload, payloads, account)\n }\n\n /** @function queryHandler Calls divine for a divine query. Override to support additional queries. */\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = QueryBoundWitnessWrapper.parseQuery<DivinerQueries>(query, payloads)\n // remove the query payload\n const cleanPayloads = await PayloadBuilder.filterExclude(payloads, query.query)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: WithoutPrivateStorageMeta<Payload>[] = []\n switch (queryPayload.schema) {\n case DivinerDivineQuerySchema: {\n resultPayloads.push(...(await this.divine(cleanPayloads as TIn[])))\n break\n }\n default: {\n return super.queryHandler(query, payloads)\n }\n }\n return PayloadBuilder.omitPrivateStorageMeta(resultPayloads)\n }\n\n protected override async startHandler(): Promise<void> {\n const { eventSubscriptions = [] } = this.config\n\n for (const subscription of eventSubscriptions) {\n const {\n sourceEvent, sourceModule, targetModuleFunction,\n } = subscription\n if (targetModuleFunction === 'divine') {\n forget(delayedResolve(this, sourceModule, (sourceModuleInstance: ModuleInstance | null) => {\n if (isNull(sourceModuleInstance)) {\n this.logger?.error(`Failed to resolve ${sourceModule} for ${this.modName}`)\n } else {\n if (isArchivistInstance(sourceModuleInstance)) {\n if (sourceEvent === 'inserted') {\n this._eventUnsubscribeFunctions.push(\n sourceModuleInstance.on(sourceEvent, async ({ outPayloads, payloads }) => {\n await this.divine((outPayloads ?? payloads) as Payload[] as TIn[])\n }),\n )\n } else {\n this.logger?.warn(`Unsupported sourceEvent ${sourceEvent} for ${sourceModuleInstance.modName}`)\n }\n } else if (isDivinerInstance(sourceModuleInstance)) {\n if (sourceEvent === 'divineEnd') {\n this._eventUnsubscribeFunctions.push(\n sourceModuleInstance.on(sourceEvent, async ({ outPayloads }) => {\n await this.divine(outPayloads as TIn[])\n }),\n )\n } else {\n this.logger?.warn(`Unsupported sourceEvent ${sourceEvent} for ${sourceModuleInstance.modName}`)\n }\n } else if (isWitnessInstance(sourceModuleInstance)) {\n if (sourceEvent === 'observeEnd') {\n this._eventUnsubscribeFunctions.push(\n sourceModuleInstance.on(sourceEvent, async ({ outPayloads }) => {\n await this.divine(outPayloads! as TIn[])\n }),\n )\n } else {\n this.logger?.warn(`Unsupported sourceEvent ${sourceEvent} for ${sourceModuleInstance.modName}`)\n }\n }\n }\n }, asModuleInstance, undefined, this.logger))\n }\n }\n\n return await super.startHandler()\n }\n\n protected override async stopHandler(): Promise<void> {\n for (const unsubscribe of this._eventUnsubscribeFunctions) {\n unsubscribe()\n }\n this._eventUnsubscribeFunctions = []\n this._eventUnsubscribeFunctions = []\n return await super.stopHandler()\n }\n\n /** @function divineHandler Implement or override to add custom functionality to a diviner */\n protected abstract divineHandler(payloads?: TIn[]): Promisable<TOut[]>\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -29,10 +29,10 @@ var applyBoundWitnessDivinerQueryPayload = (filter, payloads = []) => {
|
|
|
29
29
|
const payloadSubset = sortedPayloads.slice(parsedOffset);
|
|
30
30
|
let bws = payloadSubset.filter(isBoundWitness);
|
|
31
31
|
const allAddresses = addresses?.map((address) => hexFromHexString(address)).filter(exists);
|
|
32
|
-
if (allAddresses
|
|
33
|
-
if (payload_hashes
|
|
34
|
-
if (payload_schemas
|
|
35
|
-
if (sourceQuery) bws = bws.filter((bw) => bw?.$sourceQuery === sourceQuery);
|
|
32
|
+
if (allAddresses !== void 0 && allAddresses.length > 0) bws = bws.filter((bw) => containsAll(bw.addresses, allAddresses));
|
|
33
|
+
if (payload_hashes !== void 0 && payload_hashes.length > 0) bws = bws.filter((bw) => containsAll(bw.payload_hashes, payload_hashes));
|
|
34
|
+
if (payload_schemas !== void 0 && payload_schemas.length > 0) bws = bws.filter((bw) => containsAll(bw.payload_schemas, payload_schemas));
|
|
35
|
+
if (sourceQuery !== void 0 && sourceQuery !== "") bws = bws.filter((bw) => bw?.$sourceQuery === sourceQuery);
|
|
36
36
|
if (destination && Array.isArray(destination) && destination?.length > 0) {
|
|
37
37
|
const targetFilter = assertEx(destination, () => "Missing destination");
|
|
38
38
|
bws = bws.filter((bw) => {
|
|
@@ -104,7 +104,6 @@ var toBoundWitnessDivinerQueryPayload = zodToFactory2(BoundWitnessDivinerQueryPa
|
|
|
104
104
|
var MemoryBoundWitnessDiviner = class extends BoundWitnessDiviner {
|
|
105
105
|
async divineHandler(payloads) {
|
|
106
106
|
const filter = assertEx2(payloads?.filter(isBoundWitnessDivinerQueryPayload)?.pop(), () => "Missing query payload");
|
|
107
|
-
if (!filter) return [];
|
|
108
107
|
const archivist = assertEx2(await this.archivistInstance(), () => "Unable to resolve archivist");
|
|
109
108
|
const bws = (await archivist?.next({ limit: 1e4 }) ?? []).filter((x) => isBoundWitness2(x) && isStorageMeta(x));
|
|
110
109
|
return applyBoundWitnessDivinerQueryPayload(filter, bws);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/modules/diviner-boundwitness/applyBoundWitnessDivinerQueryPayload.ts", "../../src/modules/diviner-boundwitness/MemoryBoundWitnessDiviner.ts", "../../src/modules/diviner-boundwitness/BoundWitnessDiviner.ts", "../../src/modules/diviner-boundwitness/Config.ts", "../../src/modules/diviner-boundwitness/Schema.ts", "../../src/modules/diviner-boundwitness/Query.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n assertEx, containsAll,\n exists, hexFromHexString,\n} from '@ariestools/sdk'\nimport type {\n BoundWitness, Payload, WithStorageMeta,\n} from '@xyo-network/sdk-protocol'\nimport {\n isBoundWitness, PayloadBuilder, SequenceConstants,\n} from '@xyo-network/sdk-protocol'\n\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\n// eslint-disable-next-line complexity\nexport const applyBoundWitnessDivinerQueryPayload = (filter?: BoundWitnessDivinerQueryPayload, payloads: WithStorageMeta<Payload>[] = []): BoundWitness[] => {\n if (!filter) return []\n const {\n addresses, cursor, destination, limit, order = 'desc', payload_hashes, payload_schemas, sourceQuery,\n } = filter\n\n const sortedPayloads = PayloadBuilder.sortByStorageMeta(payloads, order === 'desc' ? -1 : 1)\n const parsedCursor = cursor ?? ((order === 'desc') ? SequenceConstants.maxLocalSequence : SequenceConstants.minLocalSequence)\n const parsedOffset = (order === 'desc')\n ? sortedPayloads.findIndex(bw => bw._sequence < parsedCursor)\n : sortedPayloads.findIndex(bw => bw._sequence > parsedCursor)\n if (parsedOffset === -1) return []\n const payloadSubset = sortedPayloads.slice(parsedOffset)\n\n let bws = payloadSubset.filter(isBoundWitness)\n const allAddresses = addresses?.map(address => hexFromHexString(address)).filter(exists)\n if (allAddresses?.length) bws = bws.filter(bw => containsAll<string>(bw.addresses, allAddresses))\n if (payload_hashes?.length) bws = bws.filter(bw => containsAll(bw.payload_hashes, payload_hashes))\n if (payload_schemas?.length) bws = bws.filter(bw => containsAll(bw.payload_schemas, payload_schemas))\n if (sourceQuery) bws = bws.filter(bw => bw?.$sourceQuery === sourceQuery)\n // If there's a destination filter of the right kind\n if (destination && Array.isArray(destination) && destination?.length > 0) {\n const targetFilter = assertEx(destination, () => 'Missing destination')\n // Find all BWs that satisfy the destination constraint\n bws = bws.filter((bw) => {\n const targetDestinationField = (bw as { $destination?: string | string[] })?.$destination\n // If the destination field is an array and contains at least one element\n return targetDestinationField !== undefined && Array.isArray(targetDestinationField) && targetDestinationField.length > 0\n // Check that the targetDestinationField contains all the elements in the targetFilter\n ? containsAll(targetFilter, targetDestinationField ?? [])\n // Otherwise, filter it out\n : false\n })\n }\n const parsedLimit = limit ?? bws.length\n return bws.slice(0, parsedLimit)\n}\n", "import { assertEx } from '@ariestools/sdk'\nimport { type BoundWitness, isBoundWitness } from '@xyo-network/sdk-protocol'\nimport { isStorageMeta } from '@xyo-network/sdk-protocol'\n\nimport { applyBoundWitnessDivinerQueryPayload } from './applyBoundWitnessDivinerQueryPayload.ts'\nimport { BoundWitnessDiviner } from './BoundWitnessDiviner.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport { type BoundWitnessDivinerQueryPayload, isBoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport interface EqualityComparisonOperators {\n /**\n * 'Not Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value does not match the provided string.\n * Example: field != 'value'\n */\n '!=': string\n\n /**\n * 'Less Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than the provided string.\n * Example: field < 'value'\n */\n '<': string\n\n /**\n * 'Less Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than or equal to the provided string.\n * Example: field <= 'value'\n */\n '<=': string\n\n /**\n * 'Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value matches the provided string exactly.\n * Example: field = 'value'\n */\n '=': string\n\n /**\n * 'Greater Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than the provided string.\n * Example: field > 'value'\n */\n '>': string\n\n /**\n * 'Greater Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than or equal to the provided string.\n * Example: field >= 'value'\n */\n '>=': string\n}\n\nexport class MemoryBoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\n> extends BoundWitnessDiviner<TParams, TIn, TOut> {\n protected override async divineHandler(payloads?: TIn[]): Promise<TOut[]> {\n const filter = assertEx(payloads?.filter(isBoundWitnessDivinerQueryPayload)?.pop(), () => 'Missing query payload')\n if (!filter) return []\n const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')\n const bws = ((await archivist?.next({ limit: 10_000 })) ?? []).filter(x => isBoundWitness(x) && isStorageMeta(x))\n return applyBoundWitnessDivinerQueryPayload(filter, bws) as TOut[]\n }\n}\n", "import type { BoundWitness, Schema } from '@xyo-network/sdk-protocol'\n\nimport { AbstractDiviner } from '#diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '#diviner-model'\n\nimport { BoundWitnessDivinerConfigSchema } from './Config.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport abstract class BoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, BoundWitnessDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = BoundWitnessDivinerConfigSchema\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { DivinerConfig } from '#diviner-model'\nimport { DivinerConfigZod } from '#diviner-model'\n\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.config`, true)\nexport type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema\n\nexport const BoundWitnessDivinerConfigZod: z.ZodMiniObject<\n Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<BoundWitnessDivinerConfigSchema>\n },\n z.core.$strip\n> = z.extend(DivinerConfigZod, { schema: z.literal(BoundWitnessDivinerConfigSchema) })\n\nexport type BoundWitnessDivinerConfigBase = z.infer<typeof BoundWitnessDivinerConfigZod>\n\nexport const isBoundWitnessDivinerConfig: ReturnType<typeof zodIsFactory<BoundWitnessDivinerConfigBase>> = zodIsFactory(BoundWitnessDivinerConfigZod)\nexport const asBoundWitnessDivinerConfig: ReturnType<typeof zodAsFactory<BoundWitnessDivinerConfigBase>> = zodAsFactory(BoundWitnessDivinerConfigZod, 'asBoundWitnessDivinerConfig')\nexport const toBoundWitnessDivinerConfig: ReturnType<typeof zodToFactory<BoundWitnessDivinerConfigBase>> = zodToFactory(BoundWitnessDivinerConfigZod, 'toBoundWitnessDivinerConfig')\n\nexport type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: BoundWitnessDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol'\n\nexport const BoundWitnessDivinerSchema: 'network.xyo.diviner.boundwitness' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.boundwitness', true)\nexport type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { BoundWitnessDivinerPredicate } from './Predicate.ts'\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.query`, true)\nexport type BoundWitnessDivinerQuerySchema = typeof BoundWitnessDivinerQuerySchema\n\nexport const BoundWitnessDivinerQueryPayloadZod: z.ZodMiniIntersection<\n z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BoundWitnessDivinerQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n >,\n z.ZodMiniCustom<BoundWitnessDivinerPredicate, BoundWitnessDivinerPredicate>\n> = z.intersection(\n z.extend(PayloadZodOfSchema(BoundWitnessDivinerQuerySchema), { ...QueryFieldsZod.shape }),\n z.custom<BoundWitnessDivinerPredicate>(),\n)\n\nexport type BoundWitnessDivinerQueryPayload = z.infer<typeof BoundWitnessDivinerQueryPayloadZod>\n\nexport const isBoundWitnessDivinerQueryPayload: ReturnType<typeof zodIsFactory<BoundWitnessDivinerQueryPayload>> = zodIsFactory(BoundWitnessDivinerQueryPayloadZod)\nexport const asBoundWitnessDivinerQueryPayload: ReturnType<typeof zodAsFactory<BoundWitnessDivinerQueryPayload>> = zodAsFactory(BoundWitnessDivinerQueryPayloadZod, 'asBoundWitnessDivinerQueryPayload')\nexport const toBoundWitnessDivinerQueryPayload: ReturnType<typeof zodToFactory<BoundWitnessDivinerQueryPayload>> = zodToFactory(BoundWitnessDivinerQueryPayloadZod, 'toBoundWitnessDivinerQueryPayload')\n"],
|
|
5
|
-
"mappings": ";AAAA;AAAA,EACE;AAAA,EAAU;AAAA,EACV;AAAA,EAAQ;AAAA,OACH;AAIP;AAAA,EACE;AAAA,EAAgB;AAAA,EAAgB;AAAA,OAC3B;AAKA,IAAM,uCAAuC,CAAC,QAA0C,WAAuC,CAAC,MAAsB;AAC3J,MAAI,CAAC,OAAQ,QAAO,CAAC;AACrB,QAAM;AAAA,IACJ;AAAA,IAAW;AAAA,IAAQ;AAAA,IAAa;AAAA,IAAO,QAAQ;AAAA,IAAQ;AAAA,IAAgB;AAAA,IAAiB;AAAA,EAC1F,IAAI;AAEJ,QAAM,iBAAiB,eAAe,kBAAkB,UAAU,UAAU,SAAS,KAAK,CAAC;AAC3F,QAAM,eAAe,WAAY,UAAU,SAAU,kBAAkB,mBAAmB,kBAAkB;AAC5G,QAAM,eAAgB,UAAU,SAC5B,eAAe,UAAU,QAAM,GAAG,YAAY,YAAY,IAC1D,eAAe,UAAU,QAAM,GAAG,YAAY,YAAY;AAC9D,MAAI,iBAAiB,GAAI,QAAO,CAAC;AACjC,QAAM,gBAAgB,eAAe,MAAM,YAAY;AAEvD,MAAI,MAAM,cAAc,OAAO,cAAc;AAC7C,QAAM,eAAe,WAAW,IAAI,aAAW,iBAAiB,OAAO,CAAC,EAAE,OAAO,MAAM;AACvF,MAAI,
|
|
4
|
+
"sourcesContent": ["import {\n assertEx, containsAll,\n exists, hexFromHexString,\n} from '@ariestools/sdk'\nimport type {\n BoundWitness, Payload, WithStorageMeta,\n} from '@xyo-network/sdk-protocol'\nimport {\n isBoundWitness, PayloadBuilder, SequenceConstants,\n} from '@xyo-network/sdk-protocol'\n\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\n// eslint-disable-next-line complexity\nexport const applyBoundWitnessDivinerQueryPayload = (filter?: BoundWitnessDivinerQueryPayload, payloads: WithStorageMeta<Payload>[] = []): BoundWitness[] => {\n if (!filter) return []\n const {\n addresses, cursor, destination, limit, order = 'desc', payload_hashes, payload_schemas, sourceQuery,\n } = filter\n\n const sortedPayloads = PayloadBuilder.sortByStorageMeta(payloads, order === 'desc' ? -1 : 1)\n const parsedCursor = cursor ?? ((order === 'desc') ? SequenceConstants.maxLocalSequence : SequenceConstants.minLocalSequence)\n const parsedOffset = (order === 'desc')\n ? sortedPayloads.findIndex(bw => bw._sequence < parsedCursor)\n : sortedPayloads.findIndex(bw => bw._sequence > parsedCursor)\n if (parsedOffset === -1) return []\n const payloadSubset = sortedPayloads.slice(parsedOffset)\n\n let bws = payloadSubset.filter(isBoundWitness)\n const allAddresses = addresses?.map(address => hexFromHexString(address)).filter(exists)\n if (allAddresses !== undefined && allAddresses.length > 0) bws = bws.filter(bw => containsAll<string>(bw.addresses, allAddresses))\n if (payload_hashes !== undefined && payload_hashes.length > 0) bws = bws.filter(bw => containsAll(bw.payload_hashes, payload_hashes))\n if (payload_schemas !== undefined && payload_schemas.length > 0) bws = bws.filter(bw => containsAll(bw.payload_schemas, payload_schemas))\n if (sourceQuery !== undefined && sourceQuery !== '') bws = bws.filter(bw => bw?.$sourceQuery === sourceQuery)\n // If there's a destination filter of the right kind\n if (destination && Array.isArray(destination) && destination?.length > 0) {\n const targetFilter = assertEx(destination, () => 'Missing destination')\n // Find all BWs that satisfy the destination constraint\n bws = bws.filter((bw) => {\n const targetDestinationField = (bw as { $destination?: string | string[] })?.$destination\n // If the destination field is an array and contains at least one element\n return targetDestinationField !== undefined && Array.isArray(targetDestinationField) && targetDestinationField.length > 0\n // Check that the targetDestinationField contains all the elements in the targetFilter\n ? containsAll(targetFilter, targetDestinationField ?? [])\n // Otherwise, filter it out\n : false\n })\n }\n const parsedLimit = limit ?? bws.length\n return bws.slice(0, parsedLimit)\n}\n", "import { assertEx } from '@ariestools/sdk'\nimport { type BoundWitness, isBoundWitness } from '@xyo-network/sdk-protocol'\nimport { isStorageMeta } from '@xyo-network/sdk-protocol'\n\nimport { applyBoundWitnessDivinerQueryPayload } from './applyBoundWitnessDivinerQueryPayload.ts'\nimport { BoundWitnessDiviner } from './BoundWitnessDiviner.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport { type BoundWitnessDivinerQueryPayload, isBoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport interface EqualityComparisonOperators {\n /**\n * 'Not Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value does not match the provided string.\n * Example: field != 'value'\n */\n '!=': string\n\n /**\n * 'Less Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than the provided string.\n * Example: field < 'value'\n */\n '<': string\n\n /**\n * 'Less Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than or equal to the provided string.\n * Example: field <= 'value'\n */\n '<=': string\n\n /**\n * 'Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value matches the provided string exactly.\n * Example: field = 'value'\n */\n '=': string\n\n /**\n * 'Greater Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than the provided string.\n * Example: field > 'value'\n */\n '>': string\n\n /**\n * 'Greater Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than or equal to the provided string.\n * Example: field >= 'value'\n */\n '>=': string\n}\n\nexport class MemoryBoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\n> extends BoundWitnessDiviner<TParams, TIn, TOut> {\n protected override async divineHandler(payloads?: TIn[]): Promise<TOut[]> {\n const filter = assertEx(payloads?.filter(isBoundWitnessDivinerQueryPayload)?.pop(), () => 'Missing query payload')\n const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')\n const bws = ((await archivist?.next({ limit: 10_000 })) ?? []).filter(x => isBoundWitness(x) && isStorageMeta(x))\n return applyBoundWitnessDivinerQueryPayload(filter, bws) as TOut[]\n }\n}\n", "import type { BoundWitness, Schema } from '@xyo-network/sdk-protocol'\n\nimport { AbstractDiviner } from '#diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '#diviner-model'\n\nimport { BoundWitnessDivinerConfigSchema } from './Config.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport abstract class BoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, BoundWitnessDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = BoundWitnessDivinerConfigSchema\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { DivinerConfig } from '#diviner-model'\nimport { DivinerConfigZod } from '#diviner-model'\n\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.config`, true)\nexport type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema\n\nexport const BoundWitnessDivinerConfigZod: z.ZodMiniObject<\n Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<BoundWitnessDivinerConfigSchema>\n },\n z.core.$strip\n> = z.extend(DivinerConfigZod, { schema: z.literal(BoundWitnessDivinerConfigSchema) })\n\nexport type BoundWitnessDivinerConfigBase = z.infer<typeof BoundWitnessDivinerConfigZod>\n\nexport const isBoundWitnessDivinerConfig: ReturnType<typeof zodIsFactory<BoundWitnessDivinerConfigBase>> = zodIsFactory(BoundWitnessDivinerConfigZod)\nexport const asBoundWitnessDivinerConfig: ReturnType<typeof zodAsFactory<BoundWitnessDivinerConfigBase>> = zodAsFactory(BoundWitnessDivinerConfigZod, 'asBoundWitnessDivinerConfig')\nexport const toBoundWitnessDivinerConfig: ReturnType<typeof zodToFactory<BoundWitnessDivinerConfigBase>> = zodToFactory(BoundWitnessDivinerConfigZod, 'toBoundWitnessDivinerConfig')\n\nexport type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: BoundWitnessDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol'\n\nexport const BoundWitnessDivinerSchema: 'network.xyo.diviner.boundwitness' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.boundwitness', true)\nexport type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { BoundWitnessDivinerPredicate } from './Predicate.ts'\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.query`, true)\nexport type BoundWitnessDivinerQuerySchema = typeof BoundWitnessDivinerQuerySchema\n\nexport const BoundWitnessDivinerQueryPayloadZod: z.ZodMiniIntersection<\n z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BoundWitnessDivinerQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n >,\n z.ZodMiniCustom<BoundWitnessDivinerPredicate, BoundWitnessDivinerPredicate>\n> = z.intersection(\n z.extend(PayloadZodOfSchema(BoundWitnessDivinerQuerySchema), { ...QueryFieldsZod.shape }),\n z.custom<BoundWitnessDivinerPredicate>(),\n)\n\nexport type BoundWitnessDivinerQueryPayload = z.infer<typeof BoundWitnessDivinerQueryPayloadZod>\n\nexport const isBoundWitnessDivinerQueryPayload: ReturnType<typeof zodIsFactory<BoundWitnessDivinerQueryPayload>> = zodIsFactory(BoundWitnessDivinerQueryPayloadZod)\nexport const asBoundWitnessDivinerQueryPayload: ReturnType<typeof zodAsFactory<BoundWitnessDivinerQueryPayload>> = zodAsFactory(BoundWitnessDivinerQueryPayloadZod, 'asBoundWitnessDivinerQueryPayload')\nexport const toBoundWitnessDivinerQueryPayload: ReturnType<typeof zodToFactory<BoundWitnessDivinerQueryPayload>> = zodToFactory(BoundWitnessDivinerQueryPayloadZod, 'toBoundWitnessDivinerQueryPayload')\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["assertEx", "isBoundWitness", "asSchema", "asSchema", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z", "asSchema", "zodIsFactory", "zodAsFactory", "zodToFactory", "assertEx", "isBoundWitness"]
|
|
7
7
|
}
|
|
@@ -59,10 +59,10 @@ var applyBoundWitnessDivinerQueryPayload = (filter, payloads = []) => {
|
|
|
59
59
|
const payloadSubset = sortedPayloads.slice(parsedOffset);
|
|
60
60
|
let bws = payloadSubset.filter(isBoundWitness);
|
|
61
61
|
const allAddresses = addresses?.map((address) => hexFromHexString(address)).filter(exists);
|
|
62
|
-
if (allAddresses
|
|
63
|
-
if (payload_hashes
|
|
64
|
-
if (payload_schemas
|
|
65
|
-
if (sourceQuery) bws = bws.filter((bw) => bw?.$sourceQuery === sourceQuery);
|
|
62
|
+
if (allAddresses !== void 0 && allAddresses.length > 0) bws = bws.filter((bw) => containsAll(bw.addresses, allAddresses));
|
|
63
|
+
if (payload_hashes !== void 0 && payload_hashes.length > 0) bws = bws.filter((bw) => containsAll(bw.payload_hashes, payload_hashes));
|
|
64
|
+
if (payload_schemas !== void 0 && payload_schemas.length > 0) bws = bws.filter((bw) => containsAll(bw.payload_schemas, payload_schemas));
|
|
65
|
+
if (sourceQuery !== void 0 && sourceQuery !== "") bws = bws.filter((bw) => bw?.$sourceQuery === sourceQuery);
|
|
66
66
|
if (destination && Array.isArray(destination) && destination?.length > 0) {
|
|
67
67
|
const targetFilter = assertEx(destination, () => "Missing destination");
|
|
68
68
|
bws = bws.filter((bw) => {
|
|
@@ -104,7 +104,6 @@ var toBoundWitnessDivinerQueryPayload = zodToFactory2(BoundWitnessDivinerQueryPa
|
|
|
104
104
|
var MemoryBoundWitnessDiviner = class extends BoundWitnessDiviner {
|
|
105
105
|
async divineHandler(payloads) {
|
|
106
106
|
const filter = assertEx2(payloads?.filter(isBoundWitnessDivinerQueryPayload)?.pop(), () => "Missing query payload");
|
|
107
|
-
if (!filter) return [];
|
|
108
107
|
const archivist = assertEx2(await this.archivistInstance(), () => "Unable to resolve archivist");
|
|
109
108
|
const bws = (await archivist?.next({ limit: 1e4 }) ?? []).filter((x) => isBoundWitness2(x) && isStorageMeta(x));
|
|
110
109
|
return applyBoundWitnessDivinerQueryPayload(filter, bws);
|