@xyo-network/sdk 7.4.0 → 7.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/api-location-diviner.mjs.map +2 -2
- package/dist/neutral/archivist-abstract.mjs +196 -110
- package/dist/neutral/archivist-abstract.mjs.map +4 -4
- package/dist/neutral/archivist-generic.mjs +1 -1
- package/dist/neutral/archivist-generic.mjs.map +2 -2
- package/dist/neutral/archivist-memory.mjs +3 -1
- package/dist/neutral/archivist-memory.mjs.map +2 -2
- package/dist/neutral/archivist-model.mjs +4 -2
- package/dist/neutral/archivist-model.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 +2 -1
- package/dist/neutral/boundwitness-loader.mjs.map +2 -2
- package/dist/neutral/bridge-abstract.mjs +4 -3
- package/dist/neutral/bridge-abstract.mjs.map +2 -2
- package/dist/neutral/bridge-http.mjs +4 -5
- 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 +18 -3
- package/dist/neutral/bridge-wrapper.mjs.map +2 -2
- package/dist/neutral/bridge.mjs.map +2 -2
- package/dist/neutral/diviner-abstract.mjs +2 -1
- package/dist/neutral/diviner-abstract.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 +1 -2
- 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/module-abstract.mjs +57 -60
- package/dist/neutral/module-abstract.mjs.map +2 -2
- package/dist/neutral/module-factory-locator.mjs +4 -2
- package/dist/neutral/module-factory-locator.mjs.map +2 -2
- package/dist/neutral/module-resolver.mjs +30 -31
- package/dist/neutral/module-resolver.mjs.map +2 -2
- package/dist/neutral/module-wrapper.mjs +7 -4
- 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 +20 -1
- package/dist/neutral/modules/archivist-abstract/AbstractArchivist.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-abstract/index.d.ts +1 -0
- package/dist/neutral/modules/archivist-abstract/index.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-abstract/payloadAdmission.d.ts +13 -0
- package/dist/neutral/modules/archivist-abstract/payloadAdmission.d.ts.map +1 -0
- package/dist/neutral/modules/archivist-memory/MemoryDriver.d.ts.map +1 -1
- package/dist/neutral/modules/archivist-model/typeChecks.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-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/module-abstract/AbstractModule.d.ts +1 -3
- 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-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-resolver/ResolveHelper/ResolveHelper.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/NodeHelper/attachToExistingNode.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/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-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 +14 -6
- package/dist/neutral/node-abstract.mjs.map +2 -2
- package/dist/neutral/node-memory.mjs +8 -9
- 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 +11 -10
- package/dist/neutral/node-view.mjs.map +2 -2
- package/dist/neutral/node-wrapper.mjs +19 -4
- package/dist/neutral/node-wrapper.mjs.map +2 -2
- package/dist/neutral/sentinel-abstract.mjs +4 -4
- package/dist/neutral/sentinel-abstract.mjs.map +2 -2
- package/dist/neutral/sentinel-memory.mjs +17 -16
- 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-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 +20 -1
- package/dist/node/modules/archivist-abstract/AbstractArchivist.d.ts.map +1 -1
- package/dist/node/modules/archivist-abstract/index.d.ts +1 -0
- package/dist/node/modules/archivist-abstract/index.d.ts.map +1 -1
- package/dist/node/modules/archivist-abstract/payloadAdmission.d.ts +13 -0
- package/dist/node/modules/archivist-abstract/payloadAdmission.d.ts.map +1 -0
- package/dist/node/modules/archivist-memory/MemoryDriver.d.ts.map +1 -1
- package/dist/node/modules/archivist-model/typeChecks.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-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/module-abstract/AbstractModule.d.ts +1 -3
- 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-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-resolver/ResolveHelper/ResolveHelper.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/NodeHelper/attachToExistingNode.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/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-model/typeChecks.d.ts.map +1 -1
- package/dist/node/modules/witness-wrapper/WitnessWrapper.d.ts.map +1 -1
- package/package.json +11 -12
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/modules/archivist-abstract/AbstractArchivist.ts", "../../src/modules/archivist-abstract/StorageClassLabel.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable max-lines */\nimport type {\n Hash, Promisable, PromisableArray,\n} from '@ariestools/sdk'\nimport {\n assertEx,\n difference,\n exists,\n isNull, isUndefined,\n} from '@ariestools/sdk'\nimport type {\n Attributes, Gauge, Meter,\n} from '@opentelemetry/api'\nimport type {\n AccountInstance, BoundWitness, Payload, QueryBoundWitness,\n Schema, WithStorageMeta, XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport { PayloadBuilder, QueryBoundWitnessWrapper } from '@xyo-network/sdk-protocol'\nimport { LRUCache } from 'lru-cache'\n\nimport type {\n ArchivistAllQuery,\n ArchivistClearQuery,\n ArchivistCommitQuery,\n ArchivistDeleteQuery,\n ArchivistGetQuery,\n ArchivistInsertQuery,\n ArchivistInstance,\n ArchivistModuleEventData,\n ArchivistNextOptions,\n ArchivistNextQuery,\n ArchivistParams,\n ArchivistQueries,\n ArchivistSnapshotPayload,\n ArchivistSnapshotQuery,\n ArchivistStatsPayload,\n AttachableArchivistInstance,\n ReadArchivist,\n} from '#archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistGetQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n ArchivistSnapshotQuerySchema,\n ArchivistStatsPayloadSchema,\n asArchivistInstance,\n isArchivistInstance,\n} from '#archivist-model'\nimport { AbstractModuleInstance } from '#module-abstract'\nimport type {\n ModuleConfig, ModuleIdentifier, ModuleQueryHandlerResult, ModuleQueryResult,\n} from '#module-model'\nimport { duplicateModules } from '#module-model'\n\nimport { StorageClassLabel } from './StorageClassLabel.ts'\n\nconst NOT_IMPLEMENTED = 'Not implemented' as const\n\nexport interface ActionConfig {\n emitEvents?: boolean\n}\n\nexport interface InsertConfig extends ActionConfig {\n writeToParents?: boolean\n}\n\ninterface ArchivistParentInstanceMap {\n commit?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n read?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n write?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n}\n\nexport abstract class AbstractArchivist<\n TParams extends ArchivistParams = ArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends AbstractModuleInstance<TParams, TEventData>\n implements AttachableArchivistInstance<TParams, TEventData, Payload> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = ArchivistConfigSchema\n static override readonly labels: {\n 'network.xyo.storage.class': string\n } = { ...super.labels, [StorageClassLabel]: 'unknown' }\n\n // override this if a specialized archivist should have a different default next limit\n protected static defaultNextLimitSetting = 100\n\n private _getCache?: LRUCache<Hash, WithStorageMeta<Payload>>\n private _parentArchivists?: ArchivistParentInstanceMap\n private _payloadCountGauge?: Gauge | null\n private _payloadCountMeter?: Meter | null\n\n // do not override this! It is meant to get the this.defaultNextLimitSetting and work if it is overridden\n static get defaultNextLimit(): number {\n return this.defaultNextLimitSetting\n }\n\n override get queries(): Schema[] {\n return [ArchivistGetQuerySchema, ...super.queries]\n }\n\n get requireAllParents(): boolean {\n return this.config.requireAllParents ?? false\n }\n\n protected get payloadCountGauge(): Gauge<Attributes> | null | undefined {\n const meter = this.payloadCountMeter\n if (!isNull(meter)) {\n this._payloadCountGauge = meter?.createGauge('payloadCount', { description: 'Payloads in the archivist' })\n }\n return this._payloadCountGauge\n }\n\n protected get payloadCountMeter(): Meter | null {\n if (isUndefined(this._payloadCountMeter)) {\n this._payloadCountMeter = this.params?.meterProvider?.getMeter(this.id) ?? null\n }\n return this._payloadCountMeter ?? null\n }\n\n protected get storeParentReads(): boolean {\n return !!this.config?.storeParentReads\n }\n\n /** @deprecated use next or snapshot instead */\n async all(): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('all')\n this.isSupportedQuery(ArchivistAllQuerySchema, 'all')\n return await this.spanAsync(`${this.id}|all`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return PayloadBuilder.omitPrivateStorageMeta(await this.allHandler()) as WithStorageMeta<Payload>[]\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n /** deprecated use nextQuery or snapshotQuery instead */\n async allQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('allQuery')\n const queryPayload: ArchivistAllQuery = { schema: ArchivistAllQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async clear(): Promise<void> {\n this._noOverride('clear')\n this.isSupportedQuery(ArchivistClearQuerySchema, 'clear')\n return await this.spanAsync(`${this.id}|clear`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n await this.clearHandler()\n this.reportPayloadCount()\n await this.emit('cleared', { mod: this })\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async clearQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('clearQuery')\n const queryPayload: ArchivistClearQuery = { schema: ArchivistClearQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async commit(): Promise<BoundWitness[]> {\n this._noOverride('commit')\n this.isSupportedQuery(ArchivistCommitQuerySchema, 'commit')\n return await this.spanAsync(`${this.id}commit`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.commitHandler()\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async commitQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('commitQuery')\n const queryPayload: ArchivistCommitQuery = { schema: ArchivistCommitQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async delete(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('delete')\n this.isSupportedQuery(ArchivistDeleteQuerySchema, 'delete')\n return await this.spanAsync(`${this.id}|delete`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.deleteWithConfig(hashes)\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async deleteQuery(hashes: Hash[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('deleteQuery')\n const queryPayload: ArchivistDeleteQuery = { hashes, schema: ArchivistDeleteQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async get(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('get')\n this.isSupportedQuery(ArchivistGetQuerySchema, 'get')\n return await this.spanAsync(`${this.id}|get`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.getWithConfig(hashes)\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async getQuery(hashes: Hash[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('getQuery')\n const queryPayload: ArchivistGetQuery = { hashes, schema: ArchivistGetQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async insert(payloads: Payload[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('insert')\n this.isSupportedQuery(ArchivistInsertQuerySchema, 'insert')\n return await this.spanAsync(`${this.id}|insert`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.insertWithConfig(PayloadBuilder.omitStorageMeta(payloads))\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async insertQuery(payloads: Payload[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('insertQuery')\n const queryPayload: ArchivistInsertQuery = { schema: ArchivistInsertQuerySchema }\n return await this.sendQueryRaw(queryPayload, payloads, account)\n }\n\n async next(options?: ArchivistNextOptions): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('next')\n this.isSupportedQuery(ArchivistNextQuerySchema, 'next')\n return await this.spanAsync(`${this.id}|next`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n const { limit = AbstractArchivist.defaultNextLimit, ...otherOptions } = options ?? {}\n return await this.nextWithConfig({ limit, ...otherOptions })\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async nextQuery(options?: ArchivistNextOptions, account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('nextQuery')\n const queryPayload: ArchivistNextQuery = { schema: ArchivistNextQuerySchema, ...options }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async snapshot(): Promise<ArchivistSnapshotPayload<WithStorageMeta<Payload>, Hash>[]> {\n this._noOverride('snapshot')\n this.isSupportedQuery(ArchivistSnapshotQuerySchema, 'snapshot')\n return await this.spanAsync(`${this.id}|snapshot`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n throw new Error('Cannot take snapshot while in a global reentrancy lock')\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.snapshotHandler()\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async snapshotQuery(account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('snapshotQuery')\n const queryPayload: ArchivistSnapshotQuery = { schema: ArchivistSnapshotQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n protected allHandler(): PromisableArray<WithStorageMeta<Payload>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected clearHandler(): Promisable<void> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected commitHandler(): Promisable<BoundWitness[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected deleteHandler(_hashes: Hash[]): PromisableArray<WithStorageMeta<Payload>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async deleteWithConfig(hashes: Hash[], config?: ActionConfig): Promise<WithStorageMeta<Payload>[]> {\n const emitEvents = config?.emitEvents ?? true\n\n const payloads = await this.deleteHandler(hashes)\n const hashesDeleted = payloads.map(p => p._hash)\n\n if (emitEvents) {\n await this.emit('deleted', {\n hashes: hashesDeleted, payloads, mod: this,\n })\n }\n this.reportPayloadCount()\n return payloads\n }\n\n protected generateStats(): Promisable<ArchivistStatsPayload> {\n return {\n payloadCount: this.payloadCountHandler(),\n schema: ArchivistStatsPayloadSchema,\n }\n }\n\n protected async getFromParent(hashes: Hash[], archivist: ReadArchivist): Promise<[WithStorageMeta<Payload>[], Hash[]]> {\n const foundPairs = (await PayloadBuilder.dataHashPairs(await archivist.get(hashes))).filter(([, hash]) => {\n const askedFor = hashes.includes(hash)\n if (!askedFor) {\n console.warn(`Parent returned payload with hash not asked for: ${hash}`)\n // throw Error(`Parent returned payload with hash not asked for: ${hash}`)\n }\n return askedFor\n })\n\n const foundHashes = new Set(foundPairs.map(([, hash]) => hash))\n const foundPayloads = foundPairs.map(([payload]) => payload)\n\n const notfound = hashes.filter(hash => !foundHashes.has(hash))\n return [foundPayloads, notfound]\n }\n\n protected async getFromParents(hashes: Hash[]): Promise<[WithStorageMeta<Payload>[], Hash[]]> {\n const parents = Object.values((await this.parentArchivists())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithStorageMeta<Payload>[] = []\n\n // Intentionally doing this serially\n while (parentIndex < parents.length && remainingHashes.length > 0) {\n const parent = parents[parentIndex]\n if (parent) {\n const [found, notfound] = await this.getFromParent(remainingHashes, parent)\n result = [...result, ...found]\n remainingHashes = notfound\n }\n parentIndex++\n }\n return [result, remainingHashes]\n }\n\n protected getHandler(_hashes: Hash[]): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n // eslint-disable-next-line max-statements\n protected async getWithConfig(hashes: Hash[], _config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n // Filter out duplicates\n const requestedHashes = new Set(hashes)\n\n // read from cache if we are caching\n const cache = this._getCache\n let fromCache: WithStorageMeta<Payload>[] = []\n let remainingHashes = [...requestedHashes]\n if (cache !== undefined) {\n fromCache = hashes.map(hash => cache.get(hash)).filter(exists)\n remainingHashes = hashes.filter(hash => !fromCache.some(payload => payload?._hash === hash || payload?._dataHash === hash))\n }\n\n // Attempt to find the payloads in the store\n const fromGet = await this.getHandler([...remainingHashes])\n const gotten = [...fromCache, ...fromGet].toSorted(PayloadBuilder.compareStorageMeta)\n\n // Do not just blindly return what the archivist told us but\n // ensure to only return requested payloads and keep track of\n // the ones it did not find so we can ask the parents.\n const foundPayloads: WithStorageMeta<Payload>[] = []\n const foundHashes = new Set<Hash>()\n\n // We are iterating over the returned result from the archivist\n // (not the array of hashes passed in) to preserve the natural order of the\n // hashes as returned by the archivist as that should loosely\n // correspond to the order when iterated and the symmetry will\n // be helpful for debugging\n for (const payload of gotten) {\n // trusting the hashes from the cache and parent\n const map: Record<Hash, WithStorageMeta<Payload>> = {\n [payload._hash]: payload,\n [payload._dataHash]: payload,\n }\n // Compute the hashes for this payload\n // const map = await PayloadBuilder.toAllHashMap([payload])\n for (const [key, payload] of Object.entries(map)) {\n let requestedPayloadFound = false\n const hash = key as Hash // Required cast as Object.entries always returns string keys\n // If this hash was requested\n if (\n requestedHashes.has(hash) // Indicate that we found it (but do not insert it yet). Since\n // one payload could satisfy two requested hashes (vit its dataHash\n // & rootHash) we only want to insert that payload once but we want\n // to keep track of all the hashes it satisfies so we can ask th\n // parents for the ones we did not find\n && !foundHashes.has(hash)\n ) {\n requestedPayloadFound = true\n // Add it to the list of found hashes\n foundHashes.add(hash)\n }\n if (requestedPayloadFound) foundPayloads.push(payload)\n }\n }\n // For all the hashes we did not find, ask the parents\n const notFoundHashes = [...difference(requestedHashes, foundHashes)]\n const [parentFoundPayloads] = await this.getFromParents(notFoundHashes)\n\n if (this.storeParentReads) {\n await this.insertWithConfig(parentFoundPayloads)\n }\n const result = this.omitClientMetaForDataHashes(\n hashes,\n (PayloadBuilder.omitPrivateStorageMeta([\n ...foundPayloads,\n ...parentFoundPayloads,\n ]) as WithStorageMeta<Payload>[]).toSorted(PayloadBuilder.compareStorageMeta),\n )\n\n // write to cache if we are caching\n if (cache !== undefined) {\n for (const payload of fromGet) {\n cache.set(payload._hash, payload)\n cache.set(payload._dataHash, payload)\n }\n for (const payload of parentFoundPayloads) {\n cache.set(payload._hash, payload)\n cache.set(payload._dataHash, payload)\n }\n }\n\n return result\n }\n\n protected insertHandler(_payloads: WithStorageMeta<Payload>[]): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<WithStorageMeta<Payload>[]> {\n assertEx(payloads, () => `Missing payloads: ${JSON.stringify(query.payload, null, 2)}`)\n const resolvedPayloads = await PayloadBuilder.filterIncludeByEitherHash(payloads, query.payloadHashes)\n assertEx(\n resolvedPayloads.length === query.payloadHashes.length,\n () => `Could not find some passed hashes [${resolvedPayloads.length} != ${query.payloadHashes.length}]`,\n )\n const queryPayload = await query.getQuery()\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(resolvedPayloads, await PayloadBuilder.dataHash(queryPayload))\n const result = await this.insertWithConfig(payloadsWithoutQuery)\n return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n const emitEvents = config?.emitEvents ?? true\n const writeToParents = config?.writeToParents ?? true\n\n // remove the existing payloads\n const withStorageMeta = await PayloadBuilder.addStorageMeta(payloads)\n const hashes = withStorageMeta.map(p => p._hash)\n const existingPayloads = await this.getWithConfig(hashes)\n const existingHashes = new Set(existingPayloads.map(p => p._hash))\n const payloadsToInsert = withStorageMeta.filter(p => !existingHashes.has(p._hash))\n\n const insertedPayloads = await this.insertHandler(payloadsToInsert)\n\n if (writeToParents) {\n await this.writeToParents(insertedPayloads)\n }\n if (emitEvents) {\n await this.emit('inserted', {\n mod: this, payloads: insertedPayloads, outPayloads: insertedPayloads, inPayloads: payloads,\n })\n }\n this.reportPayloadCount()\n return PayloadBuilder.omitPrivateStorageMeta(insertedPayloads) as WithStorageMeta<Payload>[]\n }\n\n protected nextHandler(_options?: ArchivistNextOptions): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async nextWithConfig(options?: ArchivistNextOptions, _config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n const foundPayloads = await this.nextHandler(options)\n return PayloadBuilder.omitPrivateStorageMeta(foundPayloads) as WithStorageMeta<Payload>[]\n }\n\n protected async parentArchivists(): Promise<ArchivistParentInstanceMap> {\n this._parentArchivists = this._parentArchivists ?? {\n commit: { ...await this.resolveArchivists(this.config?.parents?.commit, this.params.parents?.commit) },\n read: { ...await this.resolveArchivists(this.config?.parents?.read) },\n write: { ...await this.resolveArchivists(this.config?.parents?.write) },\n }\n return assertEx(this._parentArchivists)\n }\n\n // the number of payloads in the archivist, -1 if not implemented\n // the implementations of these must be fast, so they may not be promises and should read an auto updated value\n protected payloadCountHandler() {\n return -1\n }\n\n // eslint-disable-next-line max-statements\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const sanitizedQuery = PayloadBuilder.omitStorageMeta(query) as T\n const sanitizedPayloads = PayloadBuilder.omitStorageMeta(payloads) as Payload[]\n const wrappedQuery = QueryBoundWitnessWrapper.parseQuery<ArchivistQueries>(sanitizedQuery, sanitizedPayloads)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(sanitizedQuery, sanitizedPayloads, queryConfig))\n const resultPayloads: Payload[] = []\n\n switch (queryPayload.schema) {\n case ArchivistAllQuerySchema: {\n resultPayloads.push(...(await this.allHandler()))\n break\n }\n case ArchivistClearQuerySchema: {\n await this.clearHandler()\n break\n }\n case ArchivistCommitQuerySchema: {\n resultPayloads.push(...(await this.commitHandler()))\n break\n }\n case ArchivistDeleteQuerySchema: {\n const typedQueryPayload = queryPayload as ArchivistDeleteQuery\n resultPayloads.push(...(await this.deleteWithConfig(typedQueryPayload.hashes)))\n break\n }\n case ArchivistGetQuerySchema: {\n const typedQueryPayload = queryPayload as ArchivistGetQuery\n resultPayloads.push(...(await this.getWithConfig(typedQueryPayload.hashes ?? [])))\n break\n }\n case ArchivistInsertQuerySchema: {\n resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, sanitizedPayloads)))\n break\n }\n case ArchivistNextQuerySchema: {\n const typedQueryPayload = queryPayload as ArchivistNextQuery\n resultPayloads.push(...(await this.nextHandler(typedQueryPayload)))\n break\n }\n case ArchivistSnapshotQuerySchema: {\n resultPayloads.push(...(await this.snapshotHandler()))\n break\n }\n default: {\n const result = await super.queryHandler(sanitizedQuery, sanitizedPayloads)\n if (this.config.storeQueries) {\n await this.insertWithConfig([sanitizedQuery])\n }\n return PayloadBuilder.omitPrivateStorageMeta(result)\n }\n }\n if (this.config.storeQueries) {\n await this.insertWithConfig([sanitizedQuery])\n }\n return PayloadBuilder.omitPrivateStorageMeta(resultPayloads)\n }\n\n protected reportPayloadCount(): void {\n this._noOverride('reportPayloadCount')\n const gauge = this.payloadCountGauge\n if (gauge) {\n gauge.record(this.payloadCountHandler())\n }\n }\n\n protected snapshotHandler(): PromisableArray<ArchivistSnapshotPayload<WithStorageMeta<Payload>, Hash>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected override async startHandler(): Promise<void> {\n if (this.config.getCache?.enabled === true) {\n this._getCache = new LRUCache({\n max: this.config.getCache?.maxEntries ?? 10_000,\n allowStale: true,\n noDisposeOnSet: false,\n updateAgeOnGet: true,\n })\n }\n const result = await super.startHandler()\n this.reportPayloadCount()\n return result\n }\n\n protected override async stateHandler(): Promise<Payload[]> {\n return [...await super.stateHandler(), await this.generateStats()]\n }\n\n protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<Payload[]> {\n return await parent.insert(PayloadBuilder.omitStorageMeta(payloads))\n }\n\n protected async writeToParents(payloads: Payload[]): Promise<Payload[]> {\n const parents = await this.parentArchivists()\n return (\n await Promise.all(\n Object.values(parents.write ?? {}).map(async (parent) => {\n return parent ? await this.writeToParent(parent, payloads) : undefined\n }),\n )\n ).filter(exists).flat()\n }\n\n private omitClientMetaForDataHashes<T extends Payload>(hashes: Hash[], payloads: WithStorageMeta<T>[]): WithStorageMeta<T>[] {\n return payloads.map((payload) => {\n // if retrieved by dataHash and not hash (both could have been specified)\n if (hashes.includes(payload._dataHash) && !hashes.includes(payload._hash)) {\n // scrub client meta\n const result = PayloadBuilder.omitClientMeta(payload) as WithStorageMeta<T>\n // we also scrub the _hash\n result._hash = result._dataHash\n return result\n } else {\n return payload\n }\n })\n }\n\n private async resolveArchivists(archivists: ModuleIdentifier[] = [], archivistInstances?: ArchivistInstance[]) {\n const archivistModules = (await Promise.all(archivists.map(archivist => this.resolve(archivist)))).filter(exists).filter(duplicateModules)\n\n assertEx(\n !this.requireAllParents || (archivistModules.length === archivists.length),\n () =>\n `Failed to find some archivists for ${this.modName} (set allRequired to false if ok)]`,\n )\n\n const archivistInstancesMap: Record<XyoAddress, ArchivistInstance> = {}\n for (const archivistInstance of archivistInstances ?? []) {\n archivistInstancesMap[archivistInstance.address] = archivistInstance\n }\n\n return archivistModules.reduce<Record<XyoAddress, ArchivistInstance>>((prev, mod) => {\n prev[mod.address] = asArchivistInstance(mod, () => {\n isArchivistInstance(mod, { log: console })\n return `Unable to cast resolved module to an archivist: [${mod.address}, ${mod.modName}, ${mod.config.schema})}]`\n }, { required: true })\n\n return prev\n }, archivistInstancesMap)\n }\n}\n", "export const StorageClassLabel = 'network.xyo.storage.class'\nexport type StorageClassLabelValue = 'memory' | 'disk' | 'network' | 'proxy' | 'unknown'\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../src/modules/archivist-abstract/AbstractArchivist.ts", "../../src/modules/archivist-abstract/StorageClassLabel.ts", "../../src/modules/archivist-abstract/payloadAdmission.ts"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\nimport type {\n Hash, Promisable, PromisableArray,\n} from '@ariestools/sdk'\nimport {\n assertEx,\n exists,\n isNull, isUndefined,\n} from '@ariestools/sdk'\nimport type {\n Attributes, Gauge, Meter,\n} from '@opentelemetry/api'\nimport type {\n AccountInstance, BoundWitness, Payload, QueryBoundWitness,\n Schema, WithStorageMeta, XyoAddress,\n} from '@xyo-network/sdk-protocol'\nimport { PayloadBuilder, QueryBoundWitnessWrapper } from '@xyo-network/sdk-protocol'\nimport { LRUCache } from 'lru-cache'\n\nimport type {\n ArchivistAllQuery,\n ArchivistClearQuery,\n ArchivistCommitQuery,\n ArchivistDeleteQuery,\n ArchivistGetQuery,\n ArchivistInsertQuery,\n ArchivistInstance,\n ArchivistModuleEventData,\n ArchivistNextOptions,\n ArchivistNextQuery,\n ArchivistParams,\n ArchivistQueries,\n ArchivistSnapshotPayload,\n ArchivistSnapshotQuery,\n ArchivistStatsPayload,\n AttachableArchivistInstance,\n ReadArchivist,\n} from '#archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfigSchema,\n ArchivistDeleteQuerySchema,\n ArchivistGetQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n ArchivistSnapshotQuerySchema,\n ArchivistStatsPayloadSchema,\n asArchivistInstance,\n isArchivistInstance,\n} from '#archivist-model'\nimport { AbstractModuleInstance } from '#module-abstract'\nimport type {\n ModuleConfig, ModuleIdentifier, ModuleQueryHandlerResult, ModuleQueryResult,\n} from '#module-model'\nimport { duplicateModules } from '#module-model'\n\nimport { StorageClassLabel } from './StorageClassLabel.ts'\n\nconst NOT_IMPLEMENTED = 'Not implemented' as const\n\nexport interface ActionConfig {\n emitEvents?: boolean\n}\n\nexport interface InsertConfig extends ActionConfig {\n writeToParents?: boolean\n}\n\ninterface ArchivistParentInstanceMap {\n commit?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n read?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n write?: Partial<Record<ModuleIdentifier, ArchivistInstance>>\n}\n\nexport abstract class AbstractArchivist<\n TParams extends ArchivistParams = ArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends AbstractModuleInstance<TParams, TEventData>\n implements AttachableArchivistInstance<TParams, TEventData, Payload> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = ArchivistConfigSchema\n static override readonly labels: {\n 'network.xyo.storage.class': string\n } = { ...super.labels, [StorageClassLabel]: 'unknown' }\n\n // override this if a specialized archivist should have a different default next limit\n protected static defaultNextLimitSetting = 100\n\n private _getCache?: LRUCache<Hash, WithStorageMeta<Payload>>\n private _parentArchivists?: ArchivistParentInstanceMap\n private _payloadCountGauge?: Gauge | null\n private _payloadCountMeter?: Meter | null\n\n private activeCacheMutations = 0\n private cacheGeneration = 0\n\n // do not override this! It is meant to get the this.defaultNextLimitSetting and work if it is overridden\n static get defaultNextLimit(): number {\n return this.defaultNextLimitSetting\n }\n\n override get queries(): Schema[] {\n return [ArchivistGetQuerySchema, ...super.queries]\n }\n\n get requireAllParents(): boolean {\n return this.config.requireAllParents ?? false\n }\n\n protected get payloadCountGauge(): Gauge<Attributes> | null | undefined {\n const meter = this.payloadCountMeter\n if (!isNull(meter)) {\n this._payloadCountGauge = meter?.createGauge('payloadCount', { description: 'Payloads in the archivist' })\n }\n return this._payloadCountGauge\n }\n\n protected get payloadCountMeter(): Meter | null {\n if (isUndefined(this._payloadCountMeter)) {\n this._payloadCountMeter = this.params?.meterProvider?.getMeter(this.id) ?? null\n }\n return this._payloadCountMeter ?? null\n }\n\n protected get storeParentReads(): boolean {\n return !!this.config?.storeParentReads\n }\n\n /** @deprecated use next or snapshot instead */\n async all(): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('all')\n this.isSupportedQuery(ArchivistAllQuerySchema, 'all')\n return await this.spanAsync(`${this.id}|all`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return PayloadBuilder.omitPrivateStorageMeta(await this.allHandler()) as WithStorageMeta<Payload>[]\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n /** deprecated use nextQuery or snapshotQuery instead */\n async allQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('allQuery')\n const queryPayload: ArchivistAllQuery = { schema: ArchivistAllQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async clear(): Promise<void> {\n this._noOverride('clear')\n this.isSupportedQuery(ArchivistClearQuerySchema, 'clear')\n return await this.spanAsync(`${this.id}|clear`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n await this.clearWithConfig()\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async clearQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('clearQuery')\n const queryPayload: ArchivistClearQuery = { schema: ArchivistClearQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async commit(): Promise<BoundWitness[]> {\n this._noOverride('commit')\n this.isSupportedQuery(ArchivistCommitQuerySchema, 'commit')\n return await this.spanAsync(`${this.id}commit`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.commitHandler()\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async commitQuery(account: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('commitQuery')\n const queryPayload: ArchivistCommitQuery = { schema: ArchivistCommitQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async delete(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('delete')\n this.isSupportedQuery(ArchivistDeleteQuerySchema, 'delete')\n return await this.spanAsync(`${this.id}|delete`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.deleteWithConfig(hashes)\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async deleteQuery(hashes: Hash[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('deleteQuery')\n const queryPayload: ArchivistDeleteQuery = { hashes, schema: ArchivistDeleteQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async get(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('get')\n this.isSupportedQuery(ArchivistGetQuerySchema, 'get')\n return await this.spanAsync(`${this.id}|get`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.getWithConfig(hashes)\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async getQuery(hashes: Hash[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('getQuery')\n const queryPayload: ArchivistGetQuery = { hashes, schema: ArchivistGetQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async insert(payloads: Payload[]): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('insert')\n this.isSupportedQuery(ArchivistInsertQuerySchema, 'insert')\n const snapshot = this.snapshotPayloads(payloads)\n return await this.spanAsync(`${this.id}|insert`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.insertWithConfig(snapshot)\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async insertQuery(payloads: Payload[], account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('insertQuery')\n const queryPayload: ArchivistInsertQuery = { schema: ArchivistInsertQuerySchema }\n return await this.sendQueryRaw(queryPayload, this.snapshotPayloads(payloads), account)\n }\n\n async next(options?: ArchivistNextOptions): Promise<WithStorageMeta<Payload>[]> {\n this._noOverride('next')\n this.isSupportedQuery(ArchivistNextQuerySchema, 'next')\n return await this.spanAsync(`${this.id}|next`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n return []\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n const { limit = AbstractArchivist.defaultNextLimit, ...otherOptions } = options ?? {}\n return await this.nextWithConfig({ limit, ...otherOptions })\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async nextQuery(options?: ArchivistNextOptions, account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('nextQuery')\n const queryPayload: ArchivistNextQuery = { schema: ArchivistNextQuerySchema, ...options }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async snapshot(): Promise<ArchivistSnapshotPayload<WithStorageMeta<Payload>, Hash>[]> {\n this._noOverride('snapshot')\n this.isSupportedQuery(ArchivistSnapshotQuerySchema, 'snapshot')\n return await this.spanAsync(`${this.id}|snapshot`, async () => {\n if (this.reentrancy?.scope === 'global' && this.reentrancy.action === 'skip' && this.globalReentrancyMutex?.isLocked()) {\n throw new Error('Cannot take snapshot while in a global reentrancy lock')\n }\n try {\n await this.globalReentrancyMutex?.acquire()\n return await this.busy(async () => {\n await this.startedAsync('throw')\n return await this.snapshotHandler()\n })\n } finally {\n this.globalReentrancyMutex?.release()\n }\n }, { timeBudgetLimit: this.timeBudget })\n }\n\n async snapshotQuery(account?: AccountInstance): Promise<ModuleQueryResult> {\n this._noOverride('snapshotQuery')\n const queryPayload: ArchivistSnapshotQuery = { schema: ArchivistSnapshotQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n protected allHandler(): PromisableArray<WithStorageMeta<Payload>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected clearHandler(): Promisable<void> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async clearWithConfig(config?: ActionConfig): Promise<void> {\n await this.withCacheMutation(async () => {\n await this.withStorageMutation(async () => await this.clearHandler())\n this.reportPayloadCount()\n if (config?.emitEvents ?? true) await this.emit('cleared', { mod: this })\n })\n }\n\n protected commitHandler(): Promisable<BoundWitness[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected deleteHandler(_hashes: Hash[]): PromisableArray<WithStorageMeta<Payload>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async deleteWithConfig(hashes: Hash[], config?: ActionConfig): Promise<WithStorageMeta<Payload>[]> {\n return await this.withCacheMutation(async () => {\n const emitEvents = config?.emitEvents ?? true\n\n const payloads = await this.withStorageMutation(async () => await this.deleteHandler(hashes))\n const hashesDeleted = payloads.map(p => p._hash)\n\n if (emitEvents) {\n await this.emit('deleted', {\n hashes: hashesDeleted, payloads, mod: this,\n })\n }\n this.reportPayloadCount()\n return payloads\n })\n }\n\n protected generateStats(): Promisable<ArchivistStatsPayload> {\n return {\n payloadCount: this.payloadCountHandler(),\n schema: ArchivistStatsPayloadSchema,\n }\n }\n\n /**\n * Inspect local stored roots without consulting public projections, caches or\n * parents. Backends whose getHandler synthesizes views must override this hook\n * to read their primary record keys directly.\n */\n protected async getExistingLocalPayloads(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n return await this.exactRepresentations(await this.getHandler(hashes), hashes)\n }\n\n protected async getFromParent(hashes: Hash[], archivist: ReadArchivist): Promise<[WithStorageMeta<Payload>[], Hash[]]> {\n const foundPayloads = await this.requestedRepresentations(await archivist.get(hashes), hashes)\n const foundHashes = new Set(foundPayloads.map(payload => payload._hash))\n return [foundPayloads, hashes.filter(hash => !foundHashes.has(hash))]\n }\n\n protected async getFromParents(hashes: Hash[]): Promise<[WithStorageMeta<Payload>[], Hash[]]> {\n const parents = Object.values((await this.parentArchivists())?.read ?? {})\n let remainingHashes = [...hashes]\n let parentIndex = 0\n let result: WithStorageMeta<Payload>[] = []\n\n // Intentionally doing this serially\n while (parentIndex < parents.length && remainingHashes.length > 0) {\n const parent = parents[parentIndex]\n if (parent) {\n const [found, notfound] = await this.getFromParent(remainingHashes, parent)\n result = [...result, ...found]\n remainingHashes = notfound\n }\n parentIndex++\n }\n return [result, remainingHashes]\n }\n\n protected getHandler(_hashes: Hash[]): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async getWithConfig(hashes: Hash[], _config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n const requestedHashes = [...new Set(hashes)]\n const generation = this.cacheGeneration\n const cache = this.activeCacheMutations === 0 ? this._getCache : undefined\n const fromCache = await this.requestedRepresentations(requestedHashes.map(hash => cache?.get(hash)).filter(exists), requestedHashes)\n const cachedHashes = new Set(fromCache.map(payload => payload._hash))\n const remainingHashes = requestedHashes.filter(hash => !cachedHashes.has(hash))\n const fromGet = await this.requestedRepresentations(await this.getHandler(remainingHashes), remainingHashes)\n const foundHashes = new Set([...fromCache, ...fromGet].map(payload => payload._hash))\n const [parentFoundPayloads] = await this.getFromParents(requestedHashes.filter(hash => !foundHashes.has(hash)))\n\n if (this.storeParentReads && parentFoundPayloads.length > 0) {\n await this.insertWithConfig(parentFoundPayloads)\n }\n // Cache only verified, requested representations. A data-only view must not\n // replace the root representation under its different full hash.\n if (this.activeCacheMutations === 0 && generation === this.cacheGeneration) {\n for (const payload of [...fromGet, ...parentFoundPayloads]) cache?.set(payload._hash, payload)\n }\n return PayloadBuilder.omitPrivateStorageMeta(\n [...fromCache, ...fromGet, ...parentFoundPayloads].toSorted(PayloadBuilder.compareStorageMeta),\n ) as WithStorageMeta<Payload>[]\n }\n\n protected insertHandler(_payloads: WithStorageMeta<Payload>[]): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async insertQueryHandler<T extends QueryBoundWitnessWrapper = QueryBoundWitnessWrapper>(query: T, payloads?: Payload[]): Promise<WithStorageMeta<Payload>[]> {\n assertEx(payloads, () => `Missing payloads: ${JSON.stringify(query.payload, null, 2)}`)\n const resolvedPayloads = await PayloadBuilder.filterIncludeByEitherHash(payloads, query.payloadHashes)\n assertEx(\n resolvedPayloads.length === query.payloadHashes.length,\n () => `Could not find some passed hashes [${resolvedPayloads.length} != ${query.payloadHashes.length}]`,\n )\n const queryPayload = await query.getQuery()\n const payloadsWithoutQuery = await PayloadBuilder.filterExclude(resolvedPayloads, await PayloadBuilder.dataHash(queryPayload))\n const result = await this.insertWithConfig(payloadsWithoutQuery)\n return result\n }\n\n protected async insertWithConfig(payloads: Payload[], config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n const sanitizedPayloads = this.snapshotPayloads(payloads)\n return await this.withCacheMutation(async () => {\n const emitEvents = config?.emitEvents ?? true\n const writeToParents = config?.writeToParents ?? true\n\n await this.validateInsertPayloads(sanitizedPayloads)\n const withStorageMeta = await PayloadBuilder.addStorageMeta(sanitizedPayloads)\n const hashes = [...new Set(withStorageMeta.map(payload => payload._hash))]\n const { existingPayloads, insertedPayloads } = await this.withStorageMutation(async () => {\n const existingPayloads = await this.getExistingLocalPayloads(hashes)\n await this.repairExistingPayloads(existingPayloads)\n const existingHashes = new Set(existingPayloads.map(payload => payload._hash))\n const payloadsToInsert = withStorageMeta.filter((payload) => {\n if (existingHashes.has(payload._hash)) return false\n existingHashes.add(payload._hash)\n return true\n })\n return { existingPayloads, insertedPayloads: await this.insertHandler(payloadsToInsert) }\n })\n\n if (writeToParents) {\n // A previous attempt may have stored locally before a parent failed.\n // Retry the current request's existing roots as well as its new roots.\n await this.writeToParents([...existingPayloads, ...insertedPayloads])\n }\n if (emitEvents) {\n await this.emit('inserted', {\n mod: this, payloads: insertedPayloads, outPayloads: insertedPayloads, inPayloads: payloads,\n })\n }\n this.reportPayloadCount()\n return PayloadBuilder.omitPrivateStorageMeta(insertedPayloads) as WithStorageMeta<Payload>[]\n })\n }\n\n protected nextHandler(_options?: ArchivistNextOptions): Promisable<WithStorageMeta<Payload>[]> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected async nextWithConfig(options?: ArchivistNextOptions, _config?: InsertConfig): Promise<WithStorageMeta<Payload>[]> {\n const foundPayloads = await this.nextHandler(options)\n return PayloadBuilder.omitPrivateStorageMeta(foundPayloads) as WithStorageMeta<Payload>[]\n }\n\n protected async parentArchivists(): Promise<ArchivistParentInstanceMap> {\n this._parentArchivists = this._parentArchivists ?? {\n commit: { ...await this.resolveArchivists(this.config?.parents?.commit, this.params.parents?.commit) },\n read: { ...await this.resolveArchivists(this.config?.parents?.read) },\n write: { ...await this.resolveArchivists(this.config?.parents?.write) },\n }\n return assertEx(this._parentArchivists)\n }\n\n // the number of payloads in the archivist, -1 if not implemented\n // the implementations of these must be fast, so they may not be promises and should read an auto updated value\n protected payloadCountHandler() {\n return -1\n }\n\n // eslint-disable-next-line max-statements\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const sanitizedQuery = PayloadBuilder.omitStorageMeta(query) as T\n const sanitizedPayloads = this.snapshotPayloads(payloads)\n const wrappedQuery = QueryBoundWitnessWrapper.parseQuery<ArchivistQueries>(sanitizedQuery, sanitizedPayloads)\n const queryPayload = await wrappedQuery.getQuery()\n assertEx(await this.queryable(sanitizedQuery, sanitizedPayloads, queryConfig))\n const resultPayloads: Payload[] = []\n\n switch (queryPayload.schema) {\n case ArchivistAllQuerySchema: {\n resultPayloads.push(...(await this.allHandler()))\n break\n }\n case ArchivistClearQuerySchema: {\n await this.clearWithConfig()\n break\n }\n case ArchivistCommitQuerySchema: {\n resultPayloads.push(...(await this.commitHandler()))\n break\n }\n case ArchivistDeleteQuerySchema: {\n const typedQueryPayload = queryPayload as ArchivistDeleteQuery\n resultPayloads.push(...(await this.deleteWithConfig(typedQueryPayload.hashes)))\n break\n }\n case ArchivistGetQuerySchema: {\n const typedQueryPayload = queryPayload as ArchivistGetQuery\n resultPayloads.push(...(await this.getWithConfig(typedQueryPayload.hashes ?? [])))\n break\n }\n case ArchivistInsertQuerySchema: {\n resultPayloads.push(...(await this.insertQueryHandler(wrappedQuery, sanitizedPayloads)))\n break\n }\n case ArchivistNextQuerySchema: {\n const typedQueryPayload = queryPayload as ArchivistNextQuery\n resultPayloads.push(...(await this.nextHandler(typedQueryPayload)))\n break\n }\n case ArchivistSnapshotQuerySchema: {\n resultPayloads.push(...(await this.snapshotHandler()))\n break\n }\n default: {\n const result = await super.queryHandler(sanitizedQuery, sanitizedPayloads)\n if (this.config.storeQueries) {\n await this.insertWithConfig([sanitizedQuery])\n }\n return PayloadBuilder.omitPrivateStorageMeta(result)\n }\n }\n if (this.config.storeQueries) {\n await this.insertWithConfig([sanitizedQuery])\n }\n return PayloadBuilder.omitPrivateStorageMeta(resultPayloads)\n }\n\n /** Restore derived indexes for a stored root without rewriting its body. */\n protected repairExistingPayloads(_payloads: WithStorageMeta<Payload>[]): Promisable<void> {\n return undefined\n }\n\n protected reportPayloadCount(): void {\n this._noOverride('reportPayloadCount')\n const gauge = this.payloadCountGauge\n if (gauge) {\n gauge.record(this.payloadCountHandler())\n }\n }\n\n protected snapshotHandler(): PromisableArray<ArchivistSnapshotPayload<WithStorageMeta<Payload>, Hash>> {\n throw new Error(NOT_IMPLEMENTED)\n }\n\n protected override async startHandler(): Promise<void> {\n if (this.config.getCache?.enabled === true) {\n this._getCache = new LRUCache({\n max: this.config.getCache?.maxEntries ?? 10_000,\n allowStale: true,\n noDisposeOnSet: false,\n updateAgeOnGet: true,\n })\n }\n const result = await super.startHandler()\n this.reportPayloadCount()\n return result\n }\n\n protected override async stateHandler(): Promise<Payload[]> {\n return [...await super.stateHandler(), await this.generateStats()]\n }\n\n /** Enforce backend admission before lookup, repair, insertion or parent writes. */\n protected validateInsertPayloads(_payloads: Payload[]): Promisable<void> {\n return undefined\n }\n\n /** Serialize local storage changes without holding a lock across callbacks or parents. */\n protected async withStorageMutation<T>(operation: () => Promise<T>): Promise<T> {\n return await operation()\n }\n\n protected async writeToParent(parent: ArchivistInstance, payloads: Payload[]): Promise<Payload[]> {\n if (payloads.length === 0) return []\n const sanitized = PayloadBuilder.omitStorageMeta(payloads)\n const hashes = [...new Set(await Promise.all(sanitized.map(payload => PayloadBuilder.hash(payload))))]\n const inserted = await this.exactRepresentations(await parent.insert(sanitized), hashes)\n const insertedHashes = new Set(inserted.map(payload => payload._hash))\n const missing = hashes.filter(hash => !insertedHashes.has(hash))\n const existing = missing.length > 0 ? await this.exactRepresentations(await parent.get(missing), missing) : []\n const acknowledged = new Set([...inserted, ...existing].map(payload => payload._hash))\n if (hashes.some(hash => !acknowledged.has(hash))) {\n throw new Error('Write parent did not acknowledge all requested payloads')\n }\n return [...inserted, ...existing]\n }\n\n protected async writeToParents(payloads: Payload[]): Promise<Payload[]> {\n const parents = await this.parentArchivists()\n return (\n await Promise.all(\n Object.values(parents.write ?? {}).map(async (parent) => {\n return parent ? await this.writeToParent(parent, payloads) : undefined\n }),\n )\n ).filter(exists).flat()\n }\n\n private async exactRepresentations(payloads: WithStorageMeta<Payload>[], hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n const requested = new Set(hashes)\n const found = new Map<Hash, WithStorageMeta<Payload>>()\n for (const payload of payloads) {\n await this.verifyPayloadIdentity(payload)\n if (requested.has(payload._hash)) found.set(payload._hash, payload)\n }\n return found.values().toArray()\n }\n\n private async requestedRepresentations(payloads: WithStorageMeta<Payload>[], hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n const requested = new Set(hashes)\n const result = new Map<Hash, WithStorageMeta<Payload>>()\n const sorted = payloads.toSorted(PayloadBuilder.compareStorageMeta)\n // Prefer actual stored roots (including their original sequence) before\n // constructing data-only views from a different client-metadata variant.\n for (const payload of sorted) {\n await this.verifyPayloadIdentity(payload)\n if (requested.has(payload._hash) && !result.has(payload._hash)) result.set(payload._hash, payload)\n }\n for (const payload of sorted) {\n if (requested.has(payload._dataHash) && !result.has(payload._dataHash)) {\n const dataOnly = PayloadBuilder.omitClientMeta(payload) as WithStorageMeta<Payload>\n result.set(payload._dataHash, { ...dataOnly, _hash: payload._dataHash })\n }\n }\n return result.values().toArray()\n }\n\n private async resolveArchivists(archivists: ModuleIdentifier[] = [], archivistInstances?: ArchivistInstance[]) {\n const archivistModules = (await Promise.all(archivists.map(archivist => this.resolve(archivist)))).filter(exists).filter(duplicateModules)\n\n assertEx(\n !this.requireAllParents || (archivistModules.length === archivists.length),\n () =>\n `Failed to find some archivists for ${this.modName} (set allRequired to false if ok)]`,\n )\n\n const archivistInstancesMap: Record<XyoAddress, ArchivistInstance> = {}\n for (const archivistInstance of archivistInstances ?? []) {\n archivistInstancesMap[archivistInstance.address] = archivistInstance\n }\n\n return archivistModules.reduce<Record<XyoAddress, ArchivistInstance>>((prev, mod) => {\n prev[mod.address] = asArchivistInstance(mod, () => {\n isArchivistInstance(mod, { log: console })\n return `Unable to cast resolved module to an archivist: [${mod.address}, ${mod.modName}, ${mod.config.schema})}]`\n }, { required: true })\n\n return prev\n }, archivistInstancesMap)\n }\n\n private snapshotPayloads(payloads: Payload[]): Payload[] {\n // Payloads are JSON values. Capture their bytes before asynchronous work so\n // admission, identity computation and the backend see the same input.\n // JSON normalization is intentional; structuredClone preserves non-JSON values.\n // eslint-disable-next-line unicorn/prefer-structured-clone\n return JSON.parse(JSON.stringify(PayloadBuilder.omitStorageMeta(payloads))) as Payload[]\n }\n\n private async verifyPayloadIdentity(payload: WithStorageMeta<Payload>): Promise<void> {\n const canonicalPayload = PayloadBuilder.omitStorageMeta(payload)\n const [hash, dataHash] = await Promise.all([\n PayloadBuilder.hash(canonicalPayload), PayloadBuilder.dataHash(canonicalPayload),\n ])\n if (hash !== payload._hash || dataHash !== payload._dataHash) {\n throw new Error('Archivist returned payload with invalid hash metadata')\n }\n }\n\n private async withCacheMutation<T>(operation: () => Promise<T>): Promise<T> {\n this.activeCacheMutations++\n this.cacheGeneration++\n this._getCache?.clear()\n try {\n return await operation()\n } finally {\n // Even a failed mutation can have changed persistent state. In-flight reads\n // may finish, but their old generation must never repopulate the cache.\n this.activeCacheMutations--\n this.cacheGeneration++\n this._getCache?.clear()\n }\n }\n}\n", "export const StorageClassLabel = 'network.xyo.storage.class'\nexport type StorageClassLabelValue = 'memory' | 'disk' | 'network' | 'proxy' | 'unknown'\n", "import type { Payload } from '@xyo-network/sdk-protocol'\nimport { PayloadBuilder } from '@xyo-network/sdk-protocol'\n\n/** Exact schema admission and limits on UTF-8 JSON bytes before compression. */\nexport interface PayloadAdmissionPolicy {\n /** An empty allowlist admits nothing. */\n allowedSchemas: string[]\n maxPayloadBytes: number\n /** Per-schema limits can only tighten the global limit. */\n schemaMaxPayloadBytes?: Record<string, number>\n}\n\nfunction validByteLimit(value: number): boolean {\n return Number.isSafeInteger(value) && value > 0\n}\n\nexport function validatePayloadAdmissionPolicy(policy: PayloadAdmissionPolicy): void {\n if (!policy || !Array.isArray(policy.allowedSchemas)\n || policy.allowedSchemas.some(schema => typeof schema !== 'string' || schema.length === 0 || schema.trim() !== schema)\n || !validByteLimit(policy.maxPayloadBytes)) {\n throw new TypeError('Invalid payload admission policy')\n }\n if (policy.schemaMaxPayloadBytes !== undefined) {\n if (policy.schemaMaxPayloadBytes === null || typeof policy.schemaMaxPayloadBytes !== 'object' || Array.isArray(policy.schemaMaxPayloadBytes)) {\n throw new TypeError('Invalid schema payload byte limits')\n }\n for (const [schema, limit] of Object.entries(policy.schemaMaxPayloadBytes)) {\n if (!policy.allowedSchemas.includes(schema) || !validByteLimit(limit)) {\n throw new TypeError('Invalid schema payload byte limits')\n }\n }\n }\n}\n\n/** Reject the entire batch before any storage action if one payload is ineligible. */\nexport function validatePayloadAdmission(payloads: Payload[], policy: PayloadAdmissionPolicy): void {\n validatePayloadAdmissionPolicy(policy)\n const allowed = new Set(policy.allowedSchemas)\n for (const payload of payloads) {\n if (!allowed.has(payload.schema)) throw new Error('Payload schema is not admitted by this archivist')\n const schemaLimit = policy.schemaMaxPayloadBytes && Object.hasOwn(policy.schemaMaxPayloadBytes, payload.schema)\n ? policy.schemaMaxPayloadBytes[payload.schema]\n : policy.maxPayloadBytes\n const limit = Math.min(policy.maxPayloadBytes, schemaLimit)\n const json = JSON.stringify(PayloadBuilder.omitStorageMeta(payload))\n const textEncoder = new TextEncoder()\n if (textEncoder.encode(json).byteLength > limit) {\n throw new Error('Payload exceeds this archivist byte limit')\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAIA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAAQ;AAAA,OACH;AAQP,SAAS,gBAAgB,gCAAgC;AACzD,SAAS,gBAAgB;AAqBzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,8BAA8B;AAIvC,SAAS,wBAAwB;;;ACxD1B,IAAM,oBAAoB;;;AD4DjC,IAAM,kBAAkB;AAgBjB,IAAe,oBAAf,MAAe,2BAIZ,uBAC6D;AAAA,EACrE,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,qBAAqB;AAAA,EACjG,OAAyB,sBAA8B;AAAA,EACvD,OAAyB,SAErB,EAAE,GAAG,MAAM,QAAQ,CAAC,iBAAiB,GAAG,UAAU;AAAA;AAAA,EAGtD,OAAiB,0BAA0B;AAAA,EAEnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,uBAAuB;AAAA,EACvB,kBAAkB;AAAA;AAAA,EAG1B,WAAW,mBAA2B;AACpC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAa,UAAoB;AAC/B,WAAO,CAAC,yBAAyB,GAAG,MAAM,OAAO;AAAA,EACnD;AAAA,EAEA,IAAI,oBAA6B;AAC/B,WAAO,KAAK,OAAO,qBAAqB;AAAA,EAC1C;AAAA,EAEA,IAAc,oBAA0D;AACtE,UAAM,QAAQ,KAAK;AACnB,QAAI,CAAC,OAAO,KAAK,GAAG;AAClB,WAAK,qBAAqB,OAAO,YAAY,gBAAgB,EAAE,aAAa,4BAA4B,CAAC;AAAA,IAC3G;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,oBAAkC;AAC9C,QAAI,YAAY,KAAK,kBAAkB,GAAG;AACxC,WAAK,qBAAqB,KAAK,QAAQ,eAAe,SAAS,KAAK,EAAE,KAAK;AAAA,IAC7E;AACA,WAAO,KAAK,sBAAsB;AAAA,EACpC;AAAA,EAEA,IAAc,mBAA4B;AACxC,WAAO,CAAC,CAAC,KAAK,QAAQ;AAAA,EACxB;AAAA;AAAA,EAGA,MAAM,MAA2C;AAC/C,SAAK,YAAY,KAAK;AACtB,SAAK,iBAAiB,yBAAyB,KAAK;AACpD,WAAO,MAAM,KAAK,UAAU,GAAG,KAAK,EAAE,QAAQ,YAAY;AACxD,UAAI,KAAK,YAAY,UAAU,YAAY,KAAK,WAAW,WAAW,UAAU,KAAK,uBAAuB,SAAS,GAAG;AACtH,eAAO,CAAC;AAAA,MACV;AACA,UAAI;AACF,cAAM,KAAK,uBAAuB,QAAQ;AAC1C,eAAO,MAAM,KAAK,KAAK,YAAY;AACjC,gBAAM,KAAK,aAAa,OAAO;AAC/B,iBAAO,eAAe,uBAAuB,MAAM,KAAK,WAAW,CAAC;AAAA,QACtE,CAAC;AAAA,MACH,UAAE;AACA,aAAK,uBAAuB,QAAQ;AAAA,MACtC;AAAA,IACF,GAAG,EAAE,iBAAiB,KAAK,WAAW,CAAC;AAAA,EACzC;AAAA;AAAA,EAGA,MAAM,SAAS,SAAsD;AACnE,SAAK,YAAY,UAAU;AAC3B,UAAM,eAAkC,EAAE,QAAQ,wBAAwB;AAC1E,WAAO,MAAM,KAAK,aAAa,cAAc,QAAW,OAAO;AAAA,EACjE;AAAA,EAEA,MAAM,QAAuB;AAC3B,SAAK,YAAY,OAAO;AACxB,SAAK,iBAAiB,2BAA2B,OAAO;AACxD,WAAO,MAAM,KAAK,UAAU,GAAG,KAAK,EAAE,UAAU,YAAY;AAC1D,UAAI,KAAK,YAAY,UAAU,YAAY,KAAK,WAAW,WAAW,UAAU,KAAK,uBAAuB,SAAS,GAAG;AACtH;AAAA,MACF;AACA,UAAI;AACF,cAAM,KAAK,uBAAuB,QAAQ;AAC1C,eAAO,MAAM,KAAK,KAAK,YAAY;AACjC,gBAAM,KAAK,aAAa,OAAO;AAC/B,gBAAM,KAAK,gBAAgB;AAAA,QAC7B,CAAC;AAAA,MACH,UAAE;AACA,aAAK,uBAAuB,QAAQ;AAAA,MACtC;AAAA,IACF,GAAG,EAAE,iBAAiB,KAAK,WAAW,CAAC;AAAA,EACzC;AAAA,EAEA,MAAM,WAAW,SAAsD;AACrE,SAAK,YAAY,YAAY;AAC7B,UAAM,eAAoC,EAAE,QAAQ,0BAA0B;AAC9E,WAAO,MAAM,KAAK,aAAa,cAAc,QAAW,OAAO;AAAA,EACjE;AAAA,EAEA,MAAM,SAAkC;AACtC,SAAK,YAAY,QAAQ;AACzB,SAAK,iBAAiB,4BAA4B,QAAQ;AAC1D,WAAO,MAAM,KAAK,UAAU,GAAG,KAAK,EAAE,UAAU,YAAY;AAC1D,UAAI,KAAK,YAAY,UAAU,YAAY,KAAK,WAAW,WAAW,UAAU,KAAK,uBAAuB,SAAS,GAAG;AACtH,eAAO,CAAC;AAAA,MACV;AACA,UAAI;AACF,cAAM,KAAK,uBAAuB,QAAQ;AAC1C,eAAO,MAAM,KAAK,KAAK,YAAY;AACjC,gBAAM,KAAK,aAAa,OAAO;AAC/B,iBAAO,MAAM,KAAK,cAAc;AAAA,QAClC,CAAC;AAAA,MACH,UAAE;AACA,aAAK,uBAAuB,QAAQ;AAAA,MACtC;AAAA,IACF,GAAG,EAAE,iBAAiB,KAAK,WAAW,CAAC;AAAA,EACzC;AAAA,EAEA,MAAM,YAAY,SAAsD;AACtE,SAAK,YAAY,aAAa;AAC9B,UAAM,eAAqC,EAAE,QAAQ,2BAA2B;AAChF,WAAO,MAAM,KAAK,aAAa,cAAc,QAAW,OAAO;AAAA,EACjE;AAAA,EAEA,MAAM,OAAO,QAAqD;AAChE,SAAK,YAAY,QAAQ;AACzB,SAAK,iBAAiB,4BAA4B,QAAQ;AAC1D,WAAO,MAAM,KAAK,UAAU,GAAG,KAAK,EAAE,WAAW,YAAY;AAC3D,UAAI,KAAK,YAAY,UAAU,YAAY,KAAK,WAAW,WAAW,UAAU,KAAK,uBAAuB,SAAS,GAAG;AACtH,eAAO,CAAC;AAAA,MACV;AACA,UAAI;AACF,cAAM,KAAK,uBAAuB,QAAQ;AAC1C,eAAO,MAAM,KAAK,KAAK,YAAY;AACjC,gBAAM,KAAK,aAAa,OAAO;AAC/B,iBAAO,MAAM,KAAK,iBAAiB,MAAM;AAAA,QAC3C,CAAC;AAAA,MACH,UAAE;AACA,aAAK,uBAAuB,QAAQ;AAAA,MACtC;AAAA,IACF,GAAG,EAAE,iBAAiB,KAAK,WAAW,CAAC;AAAA,EACzC;AAAA,EAEA,MAAM,YAAY,QAAgB,SAAuD;AACvF,SAAK,YAAY,aAAa;AAC9B,UAAM,eAAqC,EAAE,QAAQ,QAAQ,2BAA2B;AACxF,WAAO,MAAM,KAAK,aAAa,cAAc,QAAW,OAAO;AAAA,EACjE;AAAA,EAEA,MAAM,IAAI,QAAqD;AAC7D,SAAK,YAAY,KAAK;AACtB,SAAK,iBAAiB,yBAAyB,KAAK;AACpD,WAAO,MAAM,KAAK,UAAU,GAAG,KAAK,EAAE,QAAQ,YAAY;AACxD,UAAI,KAAK,YAAY,UAAU,YAAY,KAAK,WAAW,WAAW,UAAU,KAAK,uBAAuB,SAAS,GAAG;AACtH,eAAO,CAAC;AAAA,MACV;AACA,UAAI;AACF,cAAM,KAAK,uBAAuB,QAAQ;AAC1C,eAAO,MAAM,KAAK,KAAK,YAAY;AACjC,gBAAM,KAAK,aAAa,OAAO;AAC/B,iBAAO,MAAM,KAAK,cAAc,MAAM;AAAA,QACxC,CAAC;AAAA,MACH,UAAE;AACA,aAAK,uBAAuB,QAAQ;AAAA,MACtC;AAAA,IACF,GAAG,EAAE,iBAAiB,KAAK,WAAW,CAAC;AAAA,EACzC;AAAA,EAEA,MAAM,SAAS,QAAgB,SAAuD;AACpF,SAAK,YAAY,UAAU;AAC3B,UAAM,eAAkC,EAAE,QAAQ,QAAQ,wBAAwB;AAClF,WAAO,MAAM,KAAK,aAAa,cAAc,QAAW,OAAO;AAAA,EACjE;AAAA,EAEA,MAAM,OAAO,UAA0D;AACrE,SAAK,YAAY,QAAQ;AACzB,SAAK,iBAAiB,4BAA4B,QAAQ;AAC1D,UAAM,WAAW,KAAK,iBAAiB,QAAQ;AAC/C,WAAO,MAAM,KAAK,UAAU,GAAG,KAAK,EAAE,WAAW,YAAY;AAC3D,UAAI,KAAK,YAAY,UAAU,YAAY,KAAK,WAAW,WAAW,UAAU,KAAK,uBAAuB,SAAS,GAAG;AACtH,eAAO,CAAC;AAAA,MACV;AACA,UAAI;AACF,cAAM,KAAK,uBAAuB,QAAQ;AAC1C,eAAO,MAAM,KAAK,KAAK,YAAY;AACjC,gBAAM,KAAK,aAAa,OAAO;AAC/B,iBAAO,MAAM,KAAK,iBAAiB,QAAQ;AAAA,QAC7C,CAAC;AAAA,MACH,UAAE;AACA,aAAK,uBAAuB,QAAQ;AAAA,MACtC;AAAA,IACF,GAAG,EAAE,iBAAiB,KAAK,WAAW,CAAC;AAAA,EACzC;AAAA,EAEA,MAAM,YAAY,UAAqB,SAAuD;AAC5F,SAAK,YAAY,aAAa;AAC9B,UAAM,eAAqC,EAAE,QAAQ,2BAA2B;AAChF,WAAO,MAAM,KAAK,aAAa,cAAc,KAAK,iBAAiB,QAAQ,GAAG,OAAO;AAAA,EACvF;AAAA,EAEA,MAAM,KAAK,SAAqE;AAC9E,SAAK,YAAY,MAAM;AACvB,SAAK,iBAAiB,0BAA0B,MAAM;AACtD,WAAO,MAAM,KAAK,UAAU,GAAG,KAAK,EAAE,SAAS,YAAY;AACzD,UAAI,KAAK,YAAY,UAAU,YAAY,KAAK,WAAW,WAAW,UAAU,KAAK,uBAAuB,SAAS,GAAG;AACtH,eAAO,CAAC;AAAA,MACV;AACA,UAAI;AACF,cAAM,KAAK,uBAAuB,QAAQ;AAC1C,eAAO,MAAM,KAAK,KAAK,YAAY;AACjC,gBAAM,KAAK,aAAa,OAAO;AAC/B,gBAAM,EAAE,QAAQ,mBAAkB,kBAAkB,GAAG,aAAa,IAAI,WAAW,CAAC;AACpF,iBAAO,MAAM,KAAK,eAAe,EAAE,OAAO,GAAG,aAAa,CAAC;AAAA,QAC7D,CAAC;AAAA,MACH,UAAE;AACA,aAAK,uBAAuB,QAAQ;AAAA,MACtC;AAAA,IACF,GAAG,EAAE,iBAAiB,KAAK,WAAW,CAAC;AAAA,EACzC;AAAA,EAEA,MAAM,UAAU,SAAgC,SAAuD;AACrG,SAAK,YAAY,WAAW;AAC5B,UAAM,eAAmC,EAAE,QAAQ,0BAA0B,GAAG,QAAQ;AACxF,WAAO,MAAM,KAAK,aAAa,cAAc,QAAW,OAAO;AAAA,EACjE;AAAA,EAEA,MAAM,WAAgF;AACpF,SAAK,YAAY,UAAU;AAC3B,SAAK,iBAAiB,8BAA8B,UAAU;AAC9D,WAAO,MAAM,KAAK,UAAU,GAAG,KAAK,EAAE,aAAa,YAAY;AAC7D,UAAI,KAAK,YAAY,UAAU,YAAY,KAAK,WAAW,WAAW,UAAU,KAAK,uBAAuB,SAAS,GAAG;AACtH,cAAM,IAAI,MAAM,wDAAwD;AAAA,MAC1E;AACA,UAAI;AACF,cAAM,KAAK,uBAAuB,QAAQ;AAC1C,eAAO,MAAM,KAAK,KAAK,YAAY;AACjC,gBAAM,KAAK,aAAa,OAAO;AAC/B,iBAAO,MAAM,KAAK,gBAAgB;AAAA,QACpC,CAAC;AAAA,MACH,UAAE;AACA,aAAK,uBAAuB,QAAQ;AAAA,MACtC;AAAA,IACF,GAAG,EAAE,iBAAiB,KAAK,WAAW,CAAC;AAAA,EACzC;AAAA,EAEA,MAAM,cAAc,SAAuD;AACzE,SAAK,YAAY,eAAe;AAChC,UAAM,eAAuC,EAAE,QAAQ,6BAA6B;AACpF,WAAO,MAAM,KAAK,aAAa,cAAc,QAAW,OAAO;AAAA,EACjE;AAAA,EAEU,aAAwD;AAChE,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAAA,EAEU,eAAiC;AACzC,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAAA,EAEA,MAAgB,gBAAgB,QAAsC;AACpE,UAAM,KAAK,kBAAkB,YAAY;AACvC,YAAM,KAAK,oBAAoB,YAAY,MAAM,KAAK,aAAa,CAAC;AACpE,WAAK,mBAAmB;AACxB,UAAI,QAAQ,cAAc,KAAM,OAAM,KAAK,KAAK,WAAW,EAAE,KAAK,KAAK,CAAC;AAAA,IAC1E,CAAC;AAAA,EACH;AAAA,EAEU,gBAA4C;AACpD,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAAA,EAEU,cAAc,SAA4D;AAClF,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAAA,EAEA,MAAgB,iBAAiB,QAAgB,QAA4D;AAC3G,WAAO,MAAM,KAAK,kBAAkB,YAAY;AAC9C,YAAM,aAAa,QAAQ,cAAc;AAEzC,YAAM,WAAW,MAAM,KAAK,oBAAoB,YAAY,MAAM,KAAK,cAAc,MAAM,CAAC;AAC5F,YAAM,gBAAgB,SAAS,IAAI,OAAK,EAAE,KAAK;AAE/C,UAAI,YAAY;AACd,cAAM,KAAK,KAAK,WAAW;AAAA,UACzB,QAAQ;AAAA,UAAe;AAAA,UAAU,KAAK;AAAA,QACxC,CAAC;AAAA,MACH;AACA,WAAK,mBAAmB;AACxB,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEU,gBAAmD;AAC3D,WAAO;AAAA,MACL,cAAc,KAAK,oBAAoB;AAAA,MACvC,QAAQ;AAAA,IACV;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAgB,yBAAyB,QAAqD;AAC5F,WAAO,MAAM,KAAK,qBAAqB,MAAM,KAAK,WAAW,MAAM,GAAG,MAAM;AAAA,EAC9E;AAAA,EAEA,MAAgB,cAAc,QAAgB,WAAyE;AACrH,UAAM,gBAAgB,MAAM,KAAK,yBAAyB,MAAM,UAAU,IAAI,MAAM,GAAG,MAAM;AAC7F,UAAM,cAAc,IAAI,IAAI,cAAc,IAAI,aAAW,QAAQ,KAAK,CAAC;AACvE,WAAO,CAAC,eAAe,OAAO,OAAO,UAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;AAAA,EACtE;AAAA,EAEA,MAAgB,eAAe,QAA+D;AAC5F,UAAM,UAAU,OAAO,QAAQ,MAAM,KAAK,iBAAiB,IAAI,QAAQ,CAAC,CAAC;AACzE,QAAI,kBAAkB,CAAC,GAAG,MAAM;AAChC,QAAI,cAAc;AAClB,QAAI,SAAqC,CAAC;AAG1C,WAAO,cAAc,QAAQ,UAAU,gBAAgB,SAAS,GAAG;AACjE,YAAM,SAAS,QAAQ,WAAW;AAClC,UAAI,QAAQ;AACV,cAAM,CAAC,OAAO,QAAQ,IAAI,MAAM,KAAK,cAAc,iBAAiB,MAAM;AAC1E,iBAAS,CAAC,GAAG,QAAQ,GAAG,KAAK;AAC7B,0BAAkB;AAAA,MACpB;AACA;AAAA,IACF;AACA,WAAO,CAAC,QAAQ,eAAe;AAAA,EACjC;AAAA,EAEU,WAAW,SAAyD;AAC5E,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAAA,EAEA,MAAgB,cAAc,QAAgB,SAA6D;AACzG,UAAM,kBAAkB,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC;AAC3C,UAAM,aAAa,KAAK;AACxB,UAAM,QAAQ,KAAK,yBAAyB,IAAI,KAAK,YAAY;AACjE,UAAM,YAAY,MAAM,KAAK,yBAAyB,gBAAgB,IAAI,UAAQ,OAAO,IAAI,IAAI,CAAC,EAAE,OAAO,MAAM,GAAG,eAAe;AACnI,UAAM,eAAe,IAAI,IAAI,UAAU,IAAI,aAAW,QAAQ,KAAK,CAAC;AACpE,UAAM,kBAAkB,gBAAgB,OAAO,UAAQ,CAAC,aAAa,IAAI,IAAI,CAAC;AAC9E,UAAM,UAAU,MAAM,KAAK,yBAAyB,MAAM,KAAK,WAAW,eAAe,GAAG,eAAe;AAC3G,UAAM,cAAc,IAAI,IAAI,CAAC,GAAG,WAAW,GAAG,OAAO,EAAE,IAAI,aAAW,QAAQ,KAAK,CAAC;AACpF,UAAM,CAAC,mBAAmB,IAAI,MAAM,KAAK,eAAe,gBAAgB,OAAO,UAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;AAE9G,QAAI,KAAK,oBAAoB,oBAAoB,SAAS,GAAG;AAC3D,YAAM,KAAK,iBAAiB,mBAAmB;AAAA,IACjD;AAGA,QAAI,KAAK,yBAAyB,KAAK,eAAe,KAAK,iBAAiB;AAC1E,iBAAW,WAAW,CAAC,GAAG,SAAS,GAAG,mBAAmB,EAAG,QAAO,IAAI,QAAQ,OAAO,OAAO;AAAA,IAC/F;AACA,WAAO,eAAe;AAAA,MACpB,CAAC,GAAG,WAAW,GAAG,SAAS,GAAG,mBAAmB,EAAE,SAAS,eAAe,kBAAkB;AAAA,IAC/F;AAAA,EACF;AAAA,EAEU,cAAc,WAA+E;AACrG,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAAA,EAEA,MAAgB,mBAAkF,OAAU,UAA2D;AACrK,aAAS,UAAU,MAAM,qBAAqB,KAAK,UAAU,MAAM,SAAS,MAAM,CAAC,CAAC,EAAE;AACtF,UAAM,mBAAmB,MAAM,eAAe,0BAA0B,UAAU,MAAM,aAAa;AACrG;AAAA,MACE,iBAAiB,WAAW,MAAM,cAAc;AAAA,MAChD,MAAM,sCAAsC,iBAAiB,MAAM,OAAO,MAAM,cAAc,MAAM;AAAA,IACtG;AACA,UAAM,eAAe,MAAM,MAAM,SAAS;AAC1C,UAAM,uBAAuB,MAAM,eAAe,cAAc,kBAAkB,MAAM,eAAe,SAAS,YAAY,CAAC;AAC7H,UAAM,SAAS,MAAM,KAAK,iBAAiB,oBAAoB;AAC/D,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,iBAAiB,UAAqB,QAA4D;AAChH,UAAM,oBAAoB,KAAK,iBAAiB,QAAQ;AACxD,WAAO,MAAM,KAAK,kBAAkB,YAAY;AAC9C,YAAM,aAAa,QAAQ,cAAc;AACzC,YAAM,iBAAiB,QAAQ,kBAAkB;AAEjD,YAAM,KAAK,uBAAuB,iBAAiB;AACnD,YAAM,kBAAkB,MAAM,eAAe,eAAe,iBAAiB;AAC7E,YAAM,SAAS,CAAC,GAAG,IAAI,IAAI,gBAAgB,IAAI,aAAW,QAAQ,KAAK,CAAC,CAAC;AACzE,YAAM,EAAE,kBAAkB,iBAAiB,IAAI,MAAM,KAAK,oBAAoB,YAAY;AACxF,cAAMA,oBAAmB,MAAM,KAAK,yBAAyB,MAAM;AACnE,cAAM,KAAK,uBAAuBA,iBAAgB;AAClD,cAAM,iBAAiB,IAAI,IAAIA,kBAAiB,IAAI,aAAW,QAAQ,KAAK,CAAC;AAC7E,cAAM,mBAAmB,gBAAgB,OAAO,CAAC,YAAY;AAC3D,cAAI,eAAe,IAAI,QAAQ,KAAK,EAAG,QAAO;AAC9C,yBAAe,IAAI,QAAQ,KAAK;AAChC,iBAAO;AAAA,QACT,CAAC;AACD,eAAO,EAAE,kBAAAA,mBAAkB,kBAAkB,MAAM,KAAK,cAAc,gBAAgB,EAAE;AAAA,MAC1F,CAAC;AAED,UAAI,gBAAgB;AAGlB,cAAM,KAAK,eAAe,CAAC,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAAA,MACtE;AACA,UAAI,YAAY;AACd,cAAM,KAAK,KAAK,YAAY;AAAA,UAC1B,KAAK;AAAA,UAAM,UAAU;AAAA,UAAkB,aAAa;AAAA,UAAkB,YAAY;AAAA,QACpF,CAAC;AAAA,MACH;AACA,WAAK,mBAAmB;AACxB,aAAO,eAAe,uBAAuB,gBAAgB;AAAA,IAC/D,CAAC;AAAA,EACH;AAAA,EAEU,YAAY,UAAyE;AAC7F,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAAA,EAEA,MAAgB,eAAe,SAAgC,SAA6D;AAC1H,UAAM,gBAAgB,MAAM,KAAK,YAAY,OAAO;AACpD,WAAO,eAAe,uBAAuB,aAAa;AAAA,EAC5D;AAAA,EAEA,MAAgB,mBAAwD;AACtE,SAAK,oBAAoB,KAAK,qBAAqB;AAAA,MACjD,QAAQ,EAAE,GAAG,MAAM,KAAK,kBAAkB,KAAK,QAAQ,SAAS,QAAQ,KAAK,OAAO,SAAS,MAAM,EAAE;AAAA,MACrG,MAAM,EAAE,GAAG,MAAM,KAAK,kBAAkB,KAAK,QAAQ,SAAS,IAAI,EAAE;AAAA,MACpE,OAAO,EAAE,GAAG,MAAM,KAAK,kBAAkB,KAAK,QAAQ,SAAS,KAAK,EAAE;AAAA,IACxE;AACA,WAAO,SAAS,KAAK,iBAAiB;AAAA,EACxC;AAAA;AAAA;AAAA,EAIU,sBAAsB;AAC9B,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAyB,aACvB,OACA,UACA,aACmC;AACnC,UAAM,iBAAiB,eAAe,gBAAgB,KAAK;AAC3D,UAAM,oBAAoB,KAAK,iBAAiB,QAAQ;AACxD,UAAM,eAAe,yBAAyB,WAA6B,gBAAgB,iBAAiB;AAC5G,UAAM,eAAe,MAAM,aAAa,SAAS;AACjD,aAAS,MAAM,KAAK,UAAU,gBAAgB,mBAAmB,WAAW,CAAC;AAC7E,UAAM,iBAA4B,CAAC;AAEnC,YAAQ,aAAa,QAAQ;AAAA,MAC3B,KAAK,yBAAyB;AAC5B,uBAAe,KAAK,GAAI,MAAM,KAAK,WAAW,CAAE;AAChD;AAAA,MACF;AAAA,MACA,KAAK,2BAA2B;AAC9B,cAAM,KAAK,gBAAgB;AAC3B;AAAA,MACF;AAAA,MACA,KAAK,4BAA4B;AAC/B,uBAAe,KAAK,GAAI,MAAM,KAAK,cAAc,CAAE;AACnD;AAAA,MACF;AAAA,MACA,KAAK,4BAA4B;AAC/B,cAAM,oBAAoB;AAC1B,uBAAe,KAAK,GAAI,MAAM,KAAK,iBAAiB,kBAAkB,MAAM,CAAE;AAC9E;AAAA,MACF;AAAA,MACA,KAAK,yBAAyB;AAC5B,cAAM,oBAAoB;AAC1B,uBAAe,KAAK,GAAI,MAAM,KAAK,cAAc,kBAAkB,UAAU,CAAC,CAAC,CAAE;AACjF;AAAA,MACF;AAAA,MACA,KAAK,4BAA4B;AAC/B,uBAAe,KAAK,GAAI,MAAM,KAAK,mBAAmB,cAAc,iBAAiB,CAAE;AACvF;AAAA,MACF;AAAA,MACA,KAAK,0BAA0B;AAC7B,cAAM,oBAAoB;AAC1B,uBAAe,KAAK,GAAI,MAAM,KAAK,YAAY,iBAAiB,CAAE;AAClE;AAAA,MACF;AAAA,MACA,KAAK,8BAA8B;AACjC,uBAAe,KAAK,GAAI,MAAM,KAAK,gBAAgB,CAAE;AACrD;AAAA,MACF;AAAA,MACA,SAAS;AACP,cAAM,SAAS,MAAM,MAAM,aAAa,gBAAgB,iBAAiB;AACzE,YAAI,KAAK,OAAO,cAAc;AAC5B,gBAAM,KAAK,iBAAiB,CAAC,cAAc,CAAC;AAAA,QAC9C;AACA,eAAO,eAAe,uBAAuB,MAAM;AAAA,MACrD;AAAA,IACF;AACA,QAAI,KAAK,OAAO,cAAc;AAC5B,YAAM,KAAK,iBAAiB,CAAC,cAAc,CAAC;AAAA,IAC9C;AACA,WAAO,eAAe,uBAAuB,cAAc;AAAA,EAC7D;AAAA;AAAA,EAGU,uBAAuB,WAAyD;AACxF,WAAO;AAAA,EACT;AAAA,EAEU,qBAA2B;AACnC,SAAK,YAAY,oBAAoB;AACrC,UAAM,QAAQ,KAAK;AACnB,QAAI,OAAO;AACT,YAAM,OAAO,KAAK,oBAAoB,CAAC;AAAA,IACzC;AAAA,EACF;AAAA,EAEU,kBAA6F;AACrG,UAAM,IAAI,MAAM,eAAe;AAAA,EACjC;AAAA,EAEA,MAAyB,eAA8B;AACrD,QAAI,KAAK,OAAO,UAAU,YAAY,MAAM;AAC1C,WAAK,YAAY,IAAI,SAAS;AAAA,QAC5B,KAAK,KAAK,OAAO,UAAU,cAAc;AAAA,QACzC,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,MAClB,CAAC;AAAA,IACH;AACA,UAAM,SAAS,MAAM,MAAM,aAAa;AACxC,SAAK,mBAAmB;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,MAAyB,eAAmC;AAC1D,WAAO,CAAC,GAAG,MAAM,MAAM,aAAa,GAAG,MAAM,KAAK,cAAc,CAAC;AAAA,EACnE;AAAA;AAAA,EAGU,uBAAuB,WAAwC;AACvE,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAgB,oBAAuB,WAAyC;AAC9E,WAAO,MAAM,UAAU;AAAA,EACzB;AAAA,EAEA,MAAgB,cAAc,QAA2B,UAAyC;AAChG,QAAI,SAAS,WAAW,EAAG,QAAO,CAAC;AACnC,UAAM,YAAY,eAAe,gBAAgB,QAAQ;AACzD,UAAM,SAAS,CAAC,GAAG,IAAI,IAAI,MAAM,QAAQ,IAAI,UAAU,IAAI,aAAW,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACrG,UAAM,WAAW,MAAM,KAAK,qBAAqB,MAAM,OAAO,OAAO,SAAS,GAAG,MAAM;AACvF,UAAM,iBAAiB,IAAI,IAAI,SAAS,IAAI,aAAW,QAAQ,KAAK,CAAC;AACrE,UAAM,UAAU,OAAO,OAAO,UAAQ,CAAC,eAAe,IAAI,IAAI,CAAC;AAC/D,UAAM,WAAW,QAAQ,SAAS,IAAI,MAAM,KAAK,qBAAqB,MAAM,OAAO,IAAI,OAAO,GAAG,OAAO,IAAI,CAAC;AAC7G,UAAM,eAAe,IAAI,IAAI,CAAC,GAAG,UAAU,GAAG,QAAQ,EAAE,IAAI,aAAW,QAAQ,KAAK,CAAC;AACrF,QAAI,OAAO,KAAK,UAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG;AAChD,YAAM,IAAI,MAAM,yDAAyD;AAAA,IAC3E;AACA,WAAO,CAAC,GAAG,UAAU,GAAG,QAAQ;AAAA,EAClC;AAAA,EAEA,MAAgB,eAAe,UAAyC;AACtE,UAAM,UAAU,MAAM,KAAK,iBAAiB;AAC5C,YACE,MAAM,QAAQ;AAAA,MACZ,OAAO,OAAO,QAAQ,SAAS,CAAC,CAAC,EAAE,IAAI,OAAO,WAAW;AACvD,eAAO,SAAS,MAAM,KAAK,cAAc,QAAQ,QAAQ,IAAI;AAAA,MAC/D,CAAC;AAAA,IACH,GACA,OAAO,MAAM,EAAE,KAAK;AAAA,EACxB;AAAA,EAEA,MAAc,qBAAqB,UAAsC,QAAqD;AAC5H,UAAM,YAAY,IAAI,IAAI,MAAM;AAChC,UAAM,QAAQ,oBAAI,IAAoC;AACtD,eAAW,WAAW,UAAU;AAC9B,YAAM,KAAK,sBAAsB,OAAO;AACxC,UAAI,UAAU,IAAI,QAAQ,KAAK,EAAG,OAAM,IAAI,QAAQ,OAAO,OAAO;AAAA,IACpE;AACA,WAAO,MAAM,OAAO,EAAE,QAAQ;AAAA,EAChC;AAAA,EAEA,MAAc,yBAAyB,UAAsC,QAAqD;AAChI,UAAM,YAAY,IAAI,IAAI,MAAM;AAChC,UAAM,SAAS,oBAAI,IAAoC;AACvD,UAAM,SAAS,SAAS,SAAS,eAAe,kBAAkB;AAGlE,eAAW,WAAW,QAAQ;AAC5B,YAAM,KAAK,sBAAsB,OAAO;AACxC,UAAI,UAAU,IAAI,QAAQ,KAAK,KAAK,CAAC,OAAO,IAAI,QAAQ,KAAK,EAAG,QAAO,IAAI,QAAQ,OAAO,OAAO;AAAA,IACnG;AACA,eAAW,WAAW,QAAQ;AAC5B,UAAI,UAAU,IAAI,QAAQ,SAAS,KAAK,CAAC,OAAO,IAAI,QAAQ,SAAS,GAAG;AACtE,cAAM,WAAW,eAAe,eAAe,OAAO;AACtD,eAAO,IAAI,QAAQ,WAAW,EAAE,GAAG,UAAU,OAAO,QAAQ,UAAU,CAAC;AAAA,MACzE;AAAA,IACF;AACA,WAAO,OAAO,OAAO,EAAE,QAAQ;AAAA,EACjC;AAAA,EAEA,MAAc,kBAAkB,aAAiC,CAAC,GAAG,oBAA0C;AAC7G,UAAM,oBAAoB,MAAM,QAAQ,IAAI,WAAW,IAAI,eAAa,KAAK,QAAQ,SAAS,CAAC,CAAC,GAAG,OAAO,MAAM,EAAE,OAAO,gBAAgB;AAEzI;AAAA,MACE,CAAC,KAAK,qBAAsB,iBAAiB,WAAW,WAAW;AAAA,MACnE,MACE,sCAAsC,KAAK,OAAO;AAAA,IACtD;AAEA,UAAM,wBAA+D,CAAC;AACtE,eAAW,qBAAqB,sBAAsB,CAAC,GAAG;AACxD,4BAAsB,kBAAkB,OAAO,IAAI;AAAA,IACrD;AAEA,WAAO,iBAAiB,OAA8C,CAAC,MAAM,QAAQ;AACnF,WAAK,IAAI,OAAO,IAAI,oBAAoB,KAAK,MAAM;AACjD,4BAAoB,KAAK,EAAE,KAAK,QAAQ,CAAC;AACzC,eAAO,oDAAoD,IAAI,OAAO,KAAK,IAAI,OAAO,KAAK,IAAI,OAAO,MAAM;AAAA,MAC9G,GAAG,EAAE,UAAU,KAAK,CAAC;AAErB,aAAO;AAAA,IACT,GAAG,qBAAqB;AAAA,EAC1B;AAAA,EAEQ,iBAAiB,UAAgC;AAKvD,WAAO,KAAK,MAAM,KAAK,UAAU,eAAe,gBAAgB,QAAQ,CAAC,CAAC;AAAA,EAC5E;AAAA,EAEA,MAAc,sBAAsB,SAAkD;AACpF,UAAM,mBAAmB,eAAe,gBAAgB,OAAO;AAC/D,UAAM,CAAC,MAAM,QAAQ,IAAI,MAAM,QAAQ,IAAI;AAAA,MACzC,eAAe,KAAK,gBAAgB;AAAA,MAAG,eAAe,SAAS,gBAAgB;AAAA,IACjF,CAAC;AACD,QAAI,SAAS,QAAQ,SAAS,aAAa,QAAQ,WAAW;AAC5D,YAAM,IAAI,MAAM,uDAAuD;AAAA,IACzE;AAAA,EACF;AAAA,EAEA,MAAc,kBAAqB,WAAyC;AAC1E,SAAK;AACL,SAAK;AACL,SAAK,WAAW,MAAM;AACtB,QAAI;AACF,aAAO,MAAM,UAAU;AAAA,IACzB,UAAE;AAGA,WAAK;AACL,WAAK;AACL,WAAK,WAAW,MAAM;AAAA,IACxB;AAAA,EACF;AACF;;;AEpuBA,SAAS,kBAAAC,uBAAsB;AAW/B,SAAS,eAAe,OAAwB;AAC9C,SAAO,OAAO,cAAc,KAAK,KAAK,QAAQ;AAChD;AAEO,SAAS,+BAA+B,QAAsC;AACnF,MAAI,CAAC,UAAU,CAAC,MAAM,QAAQ,OAAO,cAAc,KAC9C,OAAO,eAAe,KAAK,YAAU,OAAO,WAAW,YAAY,OAAO,WAAW,KAAK,OAAO,KAAK,MAAM,MAAM,KAClH,CAAC,eAAe,OAAO,eAAe,GAAG;AAC5C,UAAM,IAAI,UAAU,kCAAkC;AAAA,EACxD;AACA,MAAI,OAAO,0BAA0B,QAAW;AAC9C,QAAI,OAAO,0BAA0B,QAAQ,OAAO,OAAO,0BAA0B,YAAY,MAAM,QAAQ,OAAO,qBAAqB,GAAG;AAC5I,YAAM,IAAI,UAAU,oCAAoC;AAAA,IAC1D;AACA,eAAW,CAAC,QAAQ,KAAK,KAAK,OAAO,QAAQ,OAAO,qBAAqB,GAAG;AAC1E,UAAI,CAAC,OAAO,eAAe,SAAS,MAAM,KAAK,CAAC,eAAe,KAAK,GAAG;AACrE,cAAM,IAAI,UAAU,oCAAoC;AAAA,MAC1D;AAAA,IACF;AAAA,EACF;AACF;AAGO,SAAS,yBAAyB,UAAqB,QAAsC;AAClG,iCAA+B,MAAM;AACrC,QAAM,UAAU,IAAI,IAAI,OAAO,cAAc;AAC7C,aAAW,WAAW,UAAU;AAC9B,QAAI,CAAC,QAAQ,IAAI,QAAQ,MAAM,EAAG,OAAM,IAAI,MAAM,kDAAkD;AACpG,UAAM,cAAc,OAAO,yBAAyB,OAAO,OAAO,OAAO,uBAAuB,QAAQ,MAAM,IAC1G,OAAO,sBAAsB,QAAQ,MAAM,IAC3C,OAAO;AACX,UAAM,QAAQ,KAAK,IAAI,OAAO,iBAAiB,WAAW;AAC1D,UAAM,OAAO,KAAK,UAAUA,gBAAe,gBAAgB,OAAO,CAAC;AACnE,UAAM,cAAc,IAAI,YAAY;AACpC,QAAI,YAAY,OAAO,IAAI,EAAE,aAAa,OAAO;AAC/C,YAAM,IAAI,MAAM,2CAA2C;AAAA,IAC7D;AAAA,EACF;AACF;",
|
|
6
|
+
"names": ["existingPayloads", "PayloadBuilder"]
|
|
7
7
|
}
|
|
@@ -69,7 +69,7 @@ var GenericArchivist = class extends AbstractArchivist {
|
|
|
69
69
|
return assertEx(this.params.driver, () => "Driver is not set");
|
|
70
70
|
}
|
|
71
71
|
static async from(payloads, account) {
|
|
72
|
-
const archivist = await
|
|
72
|
+
const archivist = await this.create({ account: account ?? await Account.random() });
|
|
73
73
|
await archivist.insert(payloads);
|
|
74
74
|
return archivist;
|
|
75
75
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/modules/archivist-generic/Archivist.ts", "../../src/modules/archivist-generic/Config.ts"],
|
|
4
|
-
"sourcesContent": ["import type {\n BrandedHash, Hash, Promisable, PromisableArray,\n} from '@ariestools/sdk'\nimport {\n assertEx,\n exists,\n fulfilled,\n} from '@ariestools/sdk'\nimport type {\n AccountInstance, BoundWitness,\n Payload, Schema, WithStorageMeta,\n} from '@xyo-network/sdk-protocol'\nimport { Account } from '@xyo-network/sdk-protocol'\n\nimport { AbstractArchivist, StorageClassLabel } from '#archivist-abstract'\nimport type {\n ArchivistDriver,\n ArchivistInsertQuery,\n ArchivistModuleEventData,\n ArchivistNextOptions,\n ArchivistParams,\n ArchivistSnapshotPayload,\n AttachableArchivistInstance,\n} from '#archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n} from '#archivist-model'\nimport type { AnyConfigSchema, ModuleInstance } from '#module-model'\nimport { creatableModule } from '#module-model'\n\nimport type { GenericArchivistConfig } from './Config.ts'\nimport { GenericArchivistConfigSchema } from './Config.ts'\n\nexport interface GenericArchivistParams<TConfig extends AnyConfigSchema<GenericArchivistConfig> = AnyConfigSchema<GenericArchivistConfig>>\n extends ArchivistParams<TConfig> {\n driver?: ArchivistDriver<Hash, Payload, WithStorageMeta<Payload>>\n}\n\n@creatableModule()\nexport class GenericArchivist<\n TParams extends GenericArchivistParams<AnyConfigSchema<GenericArchivistConfig>> = GenericArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends AbstractArchivist<TParams, TEventData>\n implements AttachableArchivistInstance, ModuleInstance {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, GenericArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = GenericArchivistConfigSchema\n static override readonly labels: {\n 'network.xyo.storage.class': string\n } = { ...super.labels, [StorageClassLabel]: 'generic' }\n\n override get queries(): Schema[] {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistNextQuerySchema,\n ...super.queries,\n ]\n }\n\n protected get driver(): ArchivistDriver<BrandedHash, Payload, WithStorageMeta<Payload>> {\n return assertEx(this.params.driver, () => 'Driver is not set')\n }\n\n static async from(payloads: Payload[], account?: AccountInstance): Promise<GenericArchivist> {\n const archivist = await
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAGA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,SAAS,eAAe;AAExB,SAAS,mBAAmB,yBAAyB;AAUrD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,uBAAuB;;;AChChC;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AACP;AAAA,EACE;AAAA,OACK;AACP,YAAY,OAAO;AAGnB,SAAS,0BAA0B;AAE5B,IAAM,+BAET,SAAS,wCAAwC,IAAI;AAGlD,IAAM,4BAOP,SAAO,oBAAoB;AAAA,EAC/B,KAAO,WAAW,SAAO,CAAC;AAAA,EAC1B,QAAU,UAAQ,4BAA4B;AAChD,CAAC;AAIM,IAAM,2BAAwF,aAAa,yBAAyB;AACpI,IAAM,2BAAwF,aAAa,2BAA2B,0BAA0B;AAChK,IAAM,2BAAwF,aAAa,2BAA2B,0BAA0B;;;ADWhK,IAAM,mBAAN,cAIG,kBAC+C;AAAA,EAOvD,IAAa,UAAoB;AAC/B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,MAAM;AAAA,IACX;AAAA,EACF;AAAA,EAEA,IAAc,SAA0E;AACtF,WAAO,SAAS,KAAK,OAAO,QAAQ,MAAM,mBAAmB;AAAA,EAC/D;AAAA,EAEA,aAAa,KAAK,UAAqB,SAAsD;AAC3F,UAAM,YAAY,MAAM,
|
|
4
|
+
"sourcesContent": ["import type {\n BrandedHash, Hash, Promisable, PromisableArray,\n} from '@ariestools/sdk'\nimport {\n assertEx,\n exists,\n fulfilled,\n} from '@ariestools/sdk'\nimport type {\n AccountInstance, BoundWitness,\n Payload, Schema, WithStorageMeta,\n} from '@xyo-network/sdk-protocol'\nimport { Account } from '@xyo-network/sdk-protocol'\n\nimport { AbstractArchivist, StorageClassLabel } from '#archivist-abstract'\nimport type {\n ArchivistDriver,\n ArchivistInsertQuery,\n ArchivistModuleEventData,\n ArchivistNextOptions,\n ArchivistParams,\n ArchivistSnapshotPayload,\n AttachableArchivistInstance,\n} from '#archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n} from '#archivist-model'\nimport type { AnyConfigSchema, ModuleInstance } from '#module-model'\nimport { creatableModule } from '#module-model'\n\nimport type { GenericArchivistConfig } from './Config.ts'\nimport { GenericArchivistConfigSchema } from './Config.ts'\n\nexport interface GenericArchivistParams<TConfig extends AnyConfigSchema<GenericArchivistConfig> = AnyConfigSchema<GenericArchivistConfig>>\n extends ArchivistParams<TConfig> {\n driver?: ArchivistDriver<Hash, Payload, WithStorageMeta<Payload>>\n}\n\n@creatableModule()\nexport class GenericArchivist<\n TParams extends GenericArchivistParams<AnyConfigSchema<GenericArchivistConfig>> = GenericArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends AbstractArchivist<TParams, TEventData>\n implements AttachableArchivistInstance, ModuleInstance {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, GenericArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = GenericArchivistConfigSchema\n static override readonly labels: {\n 'network.xyo.storage.class': string\n } = { ...super.labels, [StorageClassLabel]: 'generic' }\n\n override get queries(): Schema[] {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistNextQuerySchema,\n ...super.queries,\n ]\n }\n\n protected get driver(): ArchivistDriver<BrandedHash, Payload, WithStorageMeta<Payload>> {\n return assertEx(this.params.driver, () => 'Driver is not set')\n }\n\n static async from(payloads: Payload[], account?: AccountInstance): Promise<GenericArchivist> {\n const archivist = await this.create({ account: account ?? await Account.random() })\n await archivist.insert(payloads)\n return archivist\n }\n\n protected override allHandler(): Promisable<WithStorageMeta<Payload>[]> {\n return this.driver.all()\n }\n\n protected override clearHandler(): Promisable<void> {\n return this.driver.clear()\n }\n\n protected override async commitHandler(): Promise<BoundWitness[]> {\n const payloads = assertEx(await this.allHandler(), () => 'Nothing to commit')\n const settled = await Promise.allSettled(\n Object.values((await this.parentArchivists()).commit ?? [])?.map(async (parent) => {\n const queryPayload: ArchivistInsertQuery = { schema: ArchivistInsertQuerySchema }\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }).filter(exists),\n )\n await this.clearHandler()\n return settled.filter(fulfilled).map(result => result.value).filter(exists)\n }\n\n protected override deleteHandler(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n return this.driver.delete(hashes)\n }\n\n protected override getHandler(hashes: Hash[]): Promisable<WithStorageMeta<Payload>[]> {\n return this.driver.get(hashes)\n }\n\n protected override insertHandler(payloads: WithStorageMeta<Payload>[]): WithStorageMeta<Payload>[] {\n return this.driver.insert(payloads)\n }\n\n protected override nextHandler(options?: ArchivistNextOptions): Promisable<WithStorageMeta<Payload>[]> {\n return this.driver.next(options)\n }\n\n protected override payloadCountHandler(): number {\n return this.driver.count()\n }\n\n protected override snapshotHandler(): PromisableArray<ArchivistSnapshotPayload<WithStorageMeta<Payload>, Hash>> {\n throw new Error('Snapshot is not supported by GenericArchivist')\n }\n}\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, type Payload, type Schema,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ArchivistConfig } from '#archivist-model'\nimport { ArchivistConfigZod } from '#archivist-model'\n\nexport const GenericArchivistConfigSchema: 'network.xyo.archivist.generic.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.generic.config', true)\nexport type GenericArchivistConfigSchema = typeof GenericArchivistConfigSchema\n\nexport const GenericArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ArchivistConfigZod)['shape'], 'schema'>\n & {\n max: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n schema: z.ZodMiniLiteral<GenericArchivistConfigSchema>\n },\n z.core.$strip\n> = z.extend(ArchivistConfigZod, {\n max: z.optional(z.number()),\n schema: z.literal(GenericArchivistConfigSchema),\n})\n\nexport type GenericArchivistConfigBase = z.infer<typeof GenericArchivistConfigZod>\n\nexport const isGenericArchivistConfig: ReturnType<typeof zodIsFactory<GenericArchivistConfigBase>> = zodIsFactory(GenericArchivistConfigZod)\nexport const asGenericArchivistConfig: ReturnType<typeof zodAsFactory<GenericArchivistConfigBase>> = zodAsFactory(GenericArchivistConfigZod, 'asGenericArchivistConfig')\nexport const toGenericArchivistConfig: ReturnType<typeof zodToFactory<GenericArchivistConfigBase>> = zodToFactory(GenericArchivistConfigZod, 'toGenericArchivistConfig')\n\nexport type GenericArchivistConfig<TConfig extends Payload | EmptyObject | void = void, TSchema extends Schema | void = void> = ArchivistConfig<\n WithAdditional<\n {\n max?: number\n },\n TConfig\n >,\n TSchema extends Schema ? TSchema : GenericArchivistConfigSchema | ArchivistConfig['schema']\n>\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAGA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,SAAS,eAAe;AAExB,SAAS,mBAAmB,yBAAyB;AAUrD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,uBAAuB;;;AChChC;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AACP;AAAA,EACE;AAAA,OACK;AACP,YAAY,OAAO;AAGnB,SAAS,0BAA0B;AAE5B,IAAM,+BAET,SAAS,wCAAwC,IAAI;AAGlD,IAAM,4BAOP,SAAO,oBAAoB;AAAA,EAC/B,KAAO,WAAW,SAAO,CAAC;AAAA,EAC1B,QAAU,UAAQ,4BAA4B;AAChD,CAAC;AAIM,IAAM,2BAAwF,aAAa,yBAAyB;AACpI,IAAM,2BAAwF,aAAa,2BAA2B,0BAA0B;AAChK,IAAM,2BAAwF,aAAa,2BAA2B,0BAA0B;;;ADWhK,IAAM,mBAAN,cAIG,kBAC+C;AAAA,EAOvD,IAAa,UAAoB;AAC/B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,MAAM;AAAA,IACX;AAAA,EACF;AAAA,EAEA,IAAc,SAA0E;AACtF,WAAO,SAAS,KAAK,OAAO,QAAQ,MAAM,mBAAmB;AAAA,EAC/D;AAAA,EAEA,aAAa,KAAK,UAAqB,SAAsD;AAC3F,UAAM,YAAY,MAAM,KAAK,OAAO,EAAE,SAAS,WAAW,MAAM,QAAQ,OAAO,EAAE,CAAC;AAClF,UAAM,UAAU,OAAO,QAAQ;AAC/B,WAAO;AAAA,EACT;AAAA,EAEmB,aAAqD;AACtE,WAAO,KAAK,OAAO,IAAI;AAAA,EACzB;AAAA,EAEmB,eAAiC;AAClD,WAAO,KAAK,OAAO,MAAM;AAAA,EAC3B;AAAA,EAEA,MAAyB,gBAAyC;AAChE,UAAM,WAAW,SAAS,MAAM,KAAK,WAAW,GAAG,MAAM,mBAAmB;AAC5E,UAAM,UAAU,MAAM,QAAQ;AAAA,MAC5B,OAAO,QAAQ,MAAM,KAAK,iBAAiB,GAAG,UAAU,CAAC,CAAC,GAAG,IAAI,OAAO,WAAW;AACjF,cAAM,eAAqC,EAAE,QAAQ,2BAA2B;AAChF,cAAM,QAAQ,MAAM,KAAK,UAAU,cAAc,QAAQ;AACzD,gBAAQ,MAAM,QAAQ,MAAM,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC;AAAA,MACtD,CAAC,EAAE,OAAO,MAAM;AAAA,IAClB;AACA,UAAM,KAAK,aAAa;AACxB,WAAO,QAAQ,OAAO,SAAS,EAAE,IAAI,YAAU,OAAO,KAAK,EAAE,OAAO,MAAM;AAAA,EAC5E;AAAA,EAEmB,cAAc,QAAqD;AACpF,WAAO,KAAK,OAAO,OAAO,MAAM;AAAA,EAClC;AAAA,EAEmB,WAAW,QAAwD;AACpF,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EAC/B;AAAA,EAEmB,cAAc,UAAkE;AACjG,WAAO,KAAK,OAAO,OAAO,QAAQ;AAAA,EACpC;AAAA,EAEmB,YAAY,SAAwE;AACrG,WAAO,KAAK,OAAO,KAAK,OAAO;AAAA,EACjC;AAAA,EAEmB,sBAA8B;AAC/C,WAAO,KAAK,OAAO,MAAM;AAAA,EAC3B;AAAA,EAEmB,kBAA6F;AAC9G,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AACF;AAxEE,cANW,kBAMc,iBAA0B,CAAC,GAAG,+CAAM,kBAAe,4BAA4B;AACxG,cAPW,kBAOc,uBAA8B;AACvD,cARW,kBAQc,UAErB,EAAE,GAAG,+CAAM,WAAQ,CAAC,iBAAiB,GAAG,UAAU;AAV3C,mBAAN;AAAA,EADN,gBAAgB;AAAA,GACJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -82,7 +82,7 @@ var MemoryDriver = class extends AbstractCreatable {
|
|
|
82
82
|
return this.config?.max ?? 1e4;
|
|
83
83
|
}
|
|
84
84
|
get sortedValues() {
|
|
85
|
-
this._sortedValues ??=
|
|
85
|
+
this._sortedValues ??= this.cache.values().filter(exists).toArray().toSorted(PayloadBuilder.compareStorageMeta);
|
|
86
86
|
return this._sortedValues;
|
|
87
87
|
}
|
|
88
88
|
static findIndexFromCursor(payloads, cursor) {
|
|
@@ -120,6 +120,8 @@ var MemoryDriver = class extends AbstractCreatable {
|
|
|
120
120
|
}
|
|
121
121
|
get(hashes) {
|
|
122
122
|
return hashes.map((hash) => {
|
|
123
|
+
const exact = this.cache.get(hash);
|
|
124
|
+
if (exact) return exact;
|
|
123
125
|
const resolvedHash = this.dataHashIndex.get(hash) ?? hash;
|
|
124
126
|
const result = this.cache.get(resolvedHash);
|
|
125
127
|
if (resolvedHash !== hash && !result) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/modules/archivist-memory/Archivist.ts", "../../src/modules/archivist-memory/Config.ts", "../../src/modules/archivist-memory/MemoryDriver.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Schema } from '@xyo-network/sdk-protocol'\n\nimport { StorageClassLabel } from '#archivist-abstract'\nimport type { GenericArchivistParams } from '#archivist-generic'\nimport { GenericArchivist } from '#archivist-generic'\nimport type {\n ArchivistModuleEventData,\n AttachableArchivistInstance,\n} from '#archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n} from '#archivist-model'\nimport type {\n AnyConfigSchema, AttachableModuleInstance, ModuleInstance,\n} from '#module-model'\nimport { creatableModule } from '#module-model'\n\nimport type { MemoryArchivistConfig } from './Config.ts'\nimport { MemoryArchivistConfigSchema } from './Config.ts'\nimport { MemoryDriver } from './MemoryDriver.ts'\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>>\n = GenericArchivistParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends GenericArchivist<TParams, TEventData>\n implements AttachableArchivistInstance, ModuleInstance {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, MemoryArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = MemoryArchivistConfigSchema\n static override readonly labels: {\n 'network.xyo.storage.class': string\n } = { ...super.labels, [StorageClassLabel]: 'memory' }\n\n override get queries(): Schema[] {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistNextQuerySchema,\n ...super.queries,\n ]\n }\n\n static override async paramsHandler<T extends AttachableModuleInstance<MemoryArchivistParams, ArchivistModuleEventData>>(\n inParams?: Partial<T['params']>,\n ): Promise<T['params']> {\n const superParams = await super.paramsHandler(inParams)\n return { ...superParams, driver: superParams.driver ?? await MemoryDriver.create(superParams) }\n }\n}\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, type Payload, type Schema,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ArchivistConfig } from '#archivist-model'\nimport { ArchivistConfigZod } from '#archivist-model'\n\nexport const MemoryArchivistConfigSchema: 'network.xyo.archivist.memory.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.memory.config', true)\nexport type MemoryArchivistConfigSchema = typeof MemoryArchivistConfigSchema\n\nexport const MemoryArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ArchivistConfigZod)['shape'], 'schema'>\n & {\n max: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n schema: z.ZodMiniLiteral<MemoryArchivistConfigSchema>\n },\n z.core.$strip\n> = z.extend(ArchivistConfigZod, {\n max: z.optional(z.number()),\n schema: z.literal(MemoryArchivistConfigSchema),\n})\n\nexport type MemoryArchivistConfigBase = z.infer<typeof MemoryArchivistConfigZod>\n\nexport const isMemoryArchivistConfig: ReturnType<typeof zodIsFactory<MemoryArchivistConfigBase>> = zodIsFactory(MemoryArchivistConfigZod)\nexport const asMemoryArchivistConfig: ReturnType<typeof zodAsFactory<MemoryArchivistConfigBase>> = zodAsFactory(MemoryArchivistConfigZod, 'asMemoryArchivistConfig')\nexport const toMemoryArchivistConfig: ReturnType<typeof zodToFactory<MemoryArchivistConfigBase>> = zodToFactory(MemoryArchivistConfigZod, 'toMemoryArchivistConfig')\n\nexport type MemoryArchivistConfig<TConfig extends Payload | EmptyObject | void = void, TSchema extends Schema | void = void> = ArchivistConfig<\n WithAdditional<\n {\n max?: number\n },\n TConfig\n >,\n TSchema extends Schema ? TSchema : MemoryArchivistConfigSchema | ArchivistConfig['schema']\n>\n", "import type {\n BrandedHash,\n CreatableParams, Hash, Hex, Promisable,\n} from '@ariestools/sdk'\nimport {\n AbstractCreatable, assertEx,\n creatable, exists,\n isDefined,\n} from '@ariestools/sdk'\nimport type { Payload, WithStorageMeta } from '@xyo-network/sdk-protocol'\nimport { PayloadBuilder } from '@xyo-network/sdk-protocol'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ArchivistDriver, ArchivistNextOptions } from '#archivist-model'\n\nexport interface MemoryDriverConfig {\n max?: number\n}\n\nexport interface MemoryDriverParams extends CreatableParams {\n config: MemoryDriverConfig\n}\n\n@creatable()\nexport class MemoryDriver extends AbstractCreatable<MemoryDriverParams>\n implements ArchivistDriver<Hash, Payload, WithStorageMeta<Payload>> {\n private _cache?: LRUCache<Hash, WithStorageMeta<Payload>>\n private _config?: MemoryDriverConfig\n private _dataHashIndex?: LRUCache<Hash, Hash>\n private _sortedValues?: WithStorageMeta<Payload>[]\n\n protected get cache(): LRUCache<BrandedHash, WithStorageMeta<Payload>> {\n this._cache = this._cache ?? new LRUCache<Hash, WithStorageMeta<Payload>>({\n max: this.max,\n dispose: () => { this._sortedValues = undefined },\n })\n return this._cache\n }\n\n protected get config(): MemoryDriverConfig {\n return assertEx(this._config, () => 'Driver config is not set')\n }\n\n protected get dataHashIndex(): LRUCache<BrandedHash, BrandedHash> {\n this._dataHashIndex = this._dataHashIndex ?? new LRUCache<Hash, Hash>({ max: this.max })\n return this._dataHashIndex\n }\n\n protected get max(): number {\n return this.config?.max ?? 10_000\n }\n\n protected get sortedValues(): WithStorageMeta<Payload>[] {\n this._sortedValues ??=
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAEA,SAAS,yBAAyB;AAElC,SAAS,wBAAwB;AAKjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP,SAAS,uBAAuB;;;ACnBhC;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AACP;AAAA,EACE;AAAA,OACK;AACP,YAAY,OAAO;AAGnB,SAAS,0BAA0B;AAE5B,IAAM,8BAET,SAAS,uCAAuC,IAAI;AAGjD,IAAM,2BAOP,SAAO,oBAAoB;AAAA,EAC/B,KAAO,WAAW,SAAO,CAAC;AAAA,EAC1B,QAAU,UAAQ,2BAA2B;AAC/C,CAAC;AAIM,IAAM,0BAAsF,aAAa,wBAAwB;AACjI,IAAM,0BAAsF,aAAa,0BAA0B,yBAAyB;AAC5J,IAAM,0BAAsF,aAAa,0BAA0B,yBAAyB;;;AC7BnK;AAAA,EACE;AAAA,EAAmB;AAAA,EACnB;AAAA,EAAW;AAAA,EACX;AAAA,OACK;AAEP,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AAalB,IAAM,eAAN,cAA2B,kBACoC;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,IAAc,QAAyD;AACrE,SAAK,SAAS,KAAK,UAAU,IAAI,SAAyC;AAAA,MACxE,KAAK,KAAK;AAAA,MACV,SAAS,MAAM;AAAE,aAAK,gBAAgB;AAAA,MAAU;AAAA,IAClD,CAAC;AACD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,SAA6B;AACzC,WAAO,SAAS,KAAK,SAAS,MAAM,0BAA0B;AAAA,EAChE;AAAA,EAEA,IAAc,gBAAoD;AAChE,SAAK,iBAAiB,KAAK,kBAAkB,IAAI,SAAqB,EAAE,KAAK,KAAK,IAAI,CAAC;AACvF,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAc,MAAc;AAC1B,WAAO,KAAK,QAAQ,OAAO;AAAA,EAC7B;AAAA,EAEA,IAAc,eAA2C;AACvD,SAAK,kBAAkB,
|
|
4
|
+
"sourcesContent": ["import type { Schema } from '@xyo-network/sdk-protocol'\n\nimport { StorageClassLabel } from '#archivist-abstract'\nimport type { GenericArchivistParams } from '#archivist-generic'\nimport { GenericArchivist } from '#archivist-generic'\nimport type {\n ArchivistModuleEventData,\n AttachableArchivistInstance,\n} from '#archivist-model'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistNextQuerySchema,\n} from '#archivist-model'\nimport type {\n AnyConfigSchema, AttachableModuleInstance, ModuleInstance,\n} from '#module-model'\nimport { creatableModule } from '#module-model'\n\nimport type { MemoryArchivistConfig } from './Config.ts'\nimport { MemoryArchivistConfigSchema } from './Config.ts'\nimport { MemoryDriver } from './MemoryDriver.ts'\n\nexport type MemoryArchivistParams<TConfig extends AnyConfigSchema<MemoryArchivistConfig> = AnyConfigSchema<MemoryArchivistConfig>>\n = GenericArchivistParams<TConfig>\n@creatableModule()\nexport class MemoryArchivist<\n TParams extends MemoryArchivistParams<AnyConfigSchema<MemoryArchivistConfig>> = MemoryArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n>\n extends GenericArchivist<TParams, TEventData>\n implements AttachableArchivistInstance, ModuleInstance {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, MemoryArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = MemoryArchivistConfigSchema\n static override readonly labels: {\n 'network.xyo.storage.class': string\n } = { ...super.labels, [StorageClassLabel]: 'memory' }\n\n override get queries(): Schema[] {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistNextQuerySchema,\n ...super.queries,\n ]\n }\n\n static override async paramsHandler<T extends AttachableModuleInstance<MemoryArchivistParams, ArchivistModuleEventData>>(\n inParams?: Partial<T['params']>,\n ): Promise<T['params']> {\n const superParams = await super.paramsHandler(inParams)\n return { ...superParams, driver: superParams.driver ?? await MemoryDriver.create(superParams) }\n }\n}\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, type Payload, type Schema,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ArchivistConfig } from '#archivist-model'\nimport { ArchivistConfigZod } from '#archivist-model'\n\nexport const MemoryArchivistConfigSchema: 'network.xyo.archivist.memory.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.memory.config', true)\nexport type MemoryArchivistConfigSchema = typeof MemoryArchivistConfigSchema\n\nexport const MemoryArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ArchivistConfigZod)['shape'], 'schema'>\n & {\n max: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n schema: z.ZodMiniLiteral<MemoryArchivistConfigSchema>\n },\n z.core.$strip\n> = z.extend(ArchivistConfigZod, {\n max: z.optional(z.number()),\n schema: z.literal(MemoryArchivistConfigSchema),\n})\n\nexport type MemoryArchivistConfigBase = z.infer<typeof MemoryArchivistConfigZod>\n\nexport const isMemoryArchivistConfig: ReturnType<typeof zodIsFactory<MemoryArchivistConfigBase>> = zodIsFactory(MemoryArchivistConfigZod)\nexport const asMemoryArchivistConfig: ReturnType<typeof zodAsFactory<MemoryArchivistConfigBase>> = zodAsFactory(MemoryArchivistConfigZod, 'asMemoryArchivistConfig')\nexport const toMemoryArchivistConfig: ReturnType<typeof zodToFactory<MemoryArchivistConfigBase>> = zodToFactory(MemoryArchivistConfigZod, 'toMemoryArchivistConfig')\n\nexport type MemoryArchivistConfig<TConfig extends Payload | EmptyObject | void = void, TSchema extends Schema | void = void> = ArchivistConfig<\n WithAdditional<\n {\n max?: number\n },\n TConfig\n >,\n TSchema extends Schema ? TSchema : MemoryArchivistConfigSchema | ArchivistConfig['schema']\n>\n", "import type {\n BrandedHash,\n CreatableParams, Hash, Hex, Promisable,\n} from '@ariestools/sdk'\nimport {\n AbstractCreatable, assertEx,\n creatable, exists,\n isDefined,\n} from '@ariestools/sdk'\nimport type { Payload, WithStorageMeta } from '@xyo-network/sdk-protocol'\nimport { PayloadBuilder } from '@xyo-network/sdk-protocol'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ArchivistDriver, ArchivistNextOptions } from '#archivist-model'\n\nexport interface MemoryDriverConfig {\n max?: number\n}\n\nexport interface MemoryDriverParams extends CreatableParams {\n config: MemoryDriverConfig\n}\n\n@creatable()\nexport class MemoryDriver extends AbstractCreatable<MemoryDriverParams>\n implements ArchivistDriver<Hash, Payload, WithStorageMeta<Payload>> {\n private _cache?: LRUCache<Hash, WithStorageMeta<Payload>>\n private _config?: MemoryDriverConfig\n private _dataHashIndex?: LRUCache<Hash, Hash>\n private _sortedValues?: WithStorageMeta<Payload>[]\n\n protected get cache(): LRUCache<BrandedHash, WithStorageMeta<Payload>> {\n this._cache = this._cache ?? new LRUCache<Hash, WithStorageMeta<Payload>>({\n max: this.max,\n dispose: () => { this._sortedValues = undefined },\n })\n return this._cache\n }\n\n protected get config(): MemoryDriverConfig {\n return assertEx(this._config, () => 'Driver config is not set')\n }\n\n protected get dataHashIndex(): LRUCache<BrandedHash, BrandedHash> {\n this._dataHashIndex = this._dataHashIndex ?? new LRUCache<Hash, Hash>({ max: this.max })\n return this._dataHashIndex\n }\n\n protected get max(): number {\n return this.config?.max ?? 10_000\n }\n\n protected get sortedValues(): WithStorageMeta<Payload>[] {\n this._sortedValues ??= this.cache.values().filter(exists).toArray().toSorted(PayloadBuilder.compareStorageMeta)\n return this._sortedValues\n }\n\n private static findIndexFromCursor(payloads: WithStorageMeta[], cursor: Hex) {\n const index = payloads.findIndex(({ _sequence }) => _sequence === cursor)\n if (index === -1) {\n return Infinity // move to the end\n }\n return index\n }\n\n all(): Promisable<WithStorageMeta<Payload>[]> {\n return [...this.sortedValues]\n }\n\n clear(): void {\n this.cache.clear()\n this._dataHashIndex = new LRUCache<Hash, Hash>({ max: this.max })\n this._sortedValues = undefined\n }\n\n count(): number {\n return this.cache.size\n }\n\n override createHandler(): Promisable<void> {\n this._config = this.params.config ?? {}\n }\n\n async delete(hashes: Hash[]): Promise<WithStorageMeta[]> {\n this._sortedValues = undefined\n const deletedPayloads: WithStorageMeta<Payload>[] = (await Promise.all(this.cache\n .dump()\n .map(async ([key, item]) => {\n const itemValueDataHash = await PayloadBuilder.dataHash(item.value)\n if (hashes.includes(key) || hashes.includes(itemValueDataHash)) {\n this.cache.delete(key)\n return item.value\n }\n })))\n .filter(exists)\n this.rebuildDataHashIndex()\n return deletedPayloads\n }\n\n get(hashes: Hash[]): Promisable<WithStorageMeta<Payload>[]> {\n return hashes.map((hash) => {\n const exact = this.cache.get(hash)\n if (exact) return exact\n const resolvedHash = this.dataHashIndex.get(hash) ?? hash\n const result = this.cache.get(resolvedHash)\n if (resolvedHash !== hash && !result) {\n throw new Error('Missing referenced payload')\n }\n return result\n }).filter(exists)\n }\n\n insert(payloads: WithStorageMeta<Payload>[]): WithStorageMeta<Payload>[] {\n this._sortedValues = undefined\n const payloadsWithMeta = payloads.toSorted(PayloadBuilder.compareStorageMeta)\n return payloadsWithMeta.map((payload) => {\n return this.insertPayloadIntoCache(payload)\n })\n }\n\n next(options?: ArchivistNextOptions): Promisable<WithStorageMeta<Payload>[]> {\n const {\n limit = 100, cursor, order, open = true,\n } = options ?? {}\n const all = order === 'desc' ? this.sortedValues.toReversed() : this.sortedValues\n const startIndex = isDefined(cursor)\n ? MemoryDriver.findIndexFromCursor(all, cursor) + (open ? 1 : 0)\n : 0\n return all.slice(startIndex, startIndex + limit)\n }\n\n private insertPayloadIntoCache(payload: WithStorageMeta<Payload>): WithStorageMeta<Payload> {\n this.cache.set(payload._hash, payload)\n this.dataHashIndex.set(payload._dataHash, payload._hash)\n return payload\n }\n\n private rebuildDataHashIndex() {\n this._dataHashIndex = new LRUCache<Hash, Hash>({ max: this.max })\n const payloads = this.cache.dump().map(([, item]) => item.value)\n for (const payload of payloads) {\n this.dataHashIndex.set(payload._dataHash, payload._hash)\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -200,8 +200,10 @@ var asArchivistSnapshotQuery = zodAsFactory10(ArchivistSnapshotQueryZod, "asArch
|
|
|
200
200
|
var toArchivistSnapshotQuery = zodToFactory10(ArchivistSnapshotQueryZod, "toArchivistSnapshotQuery");
|
|
201
201
|
|
|
202
202
|
// src/modules/archivist-model/typeChecks.ts
|
|
203
|
-
var
|
|
204
|
-
var
|
|
203
|
+
var isInstanceFactory = new IsInstanceFactory();
|
|
204
|
+
var isArchivistInstance = isInstanceFactory.create({ get: "function" }, [isModuleInstance]);
|
|
205
|
+
var isQueryableModuleFactory = new IsQueryableModuleFactory();
|
|
206
|
+
var isArchivistModule = isQueryableModuleFactory.create([ArchivistGetQuerySchema]);
|
|
205
207
|
var asArchivistModule = AsObjectFactory.create(isArchivistModule);
|
|
206
208
|
var asArchivistInstance = AsObjectFactory.create(isArchivistInstance);
|
|
207
209
|
var withArchivistModule = WithFactory.create(isArchivistModule);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/modules/archivist-model/ArchivistSnapshot.ts", "../../src/modules/archivist-model/ArchivistStats.ts", "../../src/modules/archivist-model/attachable/asAttachableInstance.ts", "../../src/modules/archivist-model/attachable/isAttachableInstance.ts", "../../src/modules/archivist-model/typeChecks.ts", "../../src/modules/archivist-model/Queries/All.ts", "../../src/modules/archivist-model/Queries/Clear.ts", "../../src/modules/archivist-model/Queries/Commit.ts", "../../src/modules/archivist-model/Queries/Delete.ts", "../../src/modules/archivist-model/Queries/Get.ts", "../../src/modules/archivist-model/Queries/Insert.ts", "../../src/modules/archivist-model/Queries/Next.ts", "../../src/modules/archivist-model/Queries/Snapshot.ts", "../../src/modules/archivist-model/attachable/AttachableInstance.ts", "../../src/modules/archivist-model/Config.ts", "../../src/modules/archivist-model/IndexDescription.ts", "../../src/modules/archivist-model/lib/getBoundWitness.ts", "../../src/modules/archivist-model/lib/hydrateBoundWitness.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type { Payload, PayloadHashMap } from '@xyo-network/sdk-protocol'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistSnapshotPayloadSchema: 'network.xyo.archivist.snapshot' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.snapshot', true)\nexport type ArchivistSnapshotPayloadSchema = typeof ArchivistSnapshotPayloadSchema\n\nexport const ArchivistSnapshotPayloadZod: z.ZodMiniIntersection<\n z.ZodMiniObject<{ schema: z.ZodMiniLiteral<ArchivistSnapshotPayloadSchema> }, z.core.$strip>,\n z.ZodMiniCustom<PayloadHashMap, PayloadHashMap>\n> = z.intersection(PayloadZodOfSchema(ArchivistSnapshotPayloadSchema), z.custom<PayloadHashMap>())\n\nexport type ArchivistSnapshotPayload<TPayload extends Payload = Payload, TId extends string | number | symbol = Hash>\n = Payload<PayloadHashMap<TPayload, TId>, ArchivistSnapshotPayloadSchema>\n\nconst isArchivistSnapshotPayloadInternal = zodIsFactory(ArchivistSnapshotPayloadZod)\n\nexport const isArchivistSnapshotPayload = <\n TPayload extends Payload = Payload,\n TId extends string | number | symbol = Hash,\n TInput = unknown,\n>(payload?: TInput): payload is ArchivistSnapshotPayload<TPayload, TId> & TInput => isArchivistSnapshotPayloadInternal(payload)\n\nexport const asArchivistSnapshotPayload: ReturnType<typeof zodAsFactory<ArchivistSnapshotPayload>>\n = zodAsFactory(ArchivistSnapshotPayloadZod, 'asArchivistSnapshotPayload')\nexport const toArchivistSnapshotPayload: ReturnType<typeof zodToFactory<ArchivistSnapshotPayload>>\n = zodToFactory(ArchivistSnapshotPayloadZod, 'toArchivistSnapshotPayload')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistStatsPayloadSchema: 'network.xyo.archivist.stats' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.stats', true)\nexport type ArchivistStatsPayloadSchema = typeof ArchivistStatsPayloadSchema\n\nexport const ArchivistStatsPayloadZod: z.ZodMiniObject<{\n payloadCount: z.ZodMiniNumber<number>\n schema: z.ZodMiniLiteral<ArchivistStatsPayloadSchema>\n}, z.core.$strip> = z.extend(PayloadZodOfSchema(ArchivistStatsPayloadSchema), { payloadCount: z.number() })\n\nexport type ArchivistStatsPayload = z.infer<typeof ArchivistStatsPayloadZod>\n\nexport const isArchivistStatsPayload: ReturnType<typeof zodIsFactory<ArchivistStatsPayload>> = zodIsFactory(ArchivistStatsPayloadZod)\nexport const asArchivistStatsPayload: ReturnType<typeof zodAsFactory<ArchivistStatsPayload>> = zodAsFactory(ArchivistStatsPayloadZod, 'asArchivistStatsPayload')\nexport const toArchivistStatsPayload: ReturnType<typeof zodToFactory<ArchivistStatsPayload>> = zodToFactory(ArchivistStatsPayloadZod, 'toArchivistStatsPayload')\n", "import { AsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableArchivistInstance } from './isAttachableInstance.ts'\n\nexport const asAttachableArchivistInstance = AsObjectFactory.create(isAttachableArchivistInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableModuleInstance } from '#module-model'\n\nimport { isArchivistInstance } from '../typeChecks.ts'\nimport type { AttachableArchivistInstance } from './AttachableInstance.ts'\n\nexport const requiredAttachableArchivistInstanceFunctions: ObjectTypeShape = {}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<AttachableArchivistInstance>()\n\nexport const isAttachableArchivistInstance: TypeCheck<AttachableArchivistInstance> = factory.create(requiredAttachableArchivistInstanceFunctions, [\n isArchivistInstance,\n isAttachableModuleInstance,\n])\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\n\nimport {\n IsInstanceFactory, isModuleInstance, IsQueryableModuleFactory, WithFactory,\n} from '#module-model'\n\nimport type { ArchivistInstance } from './Instance.ts'\nimport type { ArchivistModuleInstance } from './ModuleInstance.ts'\nimport { ArchivistGetQuerySchema } from './Queries/index.ts'\n\nexport const isArchivistInstance: TypeCheck<ArchivistInstance> = new IsInstanceFactory<ArchivistInstance>().create({ get: 'function' }, [isModuleInstance])\nexport const isArchivistModule: TypeCheck<ArchivistModuleInstance> = new IsQueryableModuleFactory<ArchivistModuleInstance>().create([ArchivistGetQuerySchema])\n\nexport const asArchivistModule = AsObjectFactory.create(isArchivistModule)\nexport const asArchivistInstance = AsObjectFactory.create(isArchivistInstance)\n\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withArchivistModule = WithFactory.create(isArchivistModule)\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withArchivistInstance = WithFactory.create(isArchivistInstance)\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistAllQuerySchema: 'network.xyo.query.archivist.all' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.all', true)\nexport type ArchivistAllQuerySchema = typeof ArchivistAllQuerySchema\n\nexport const ArchivistAllQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistAllQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistAllQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistAllQuery = z.infer<typeof ArchivistAllQueryZod>\n\nexport const isArchivistAllQuery: ReturnType<typeof zodIsFactory<ArchivistAllQuery>> = zodIsFactory(ArchivistAllQueryZod)\nexport const asArchivistAllQuery: ReturnType<typeof zodAsFactory<ArchivistAllQuery>> = zodAsFactory(ArchivistAllQueryZod, 'asArchivistAllQuery')\nexport const toArchivistAllQuery: ReturnType<typeof zodToFactory<ArchivistAllQuery>> = zodToFactory(ArchivistAllQueryZod, 'toArchivistAllQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistClearQuerySchema: 'network.xyo.query.archivist.clear' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.clear', true)\nexport type ArchivistClearQuerySchema = typeof ArchivistClearQuerySchema\n\nexport const ArchivistClearQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistClearQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistClearQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistClearQuery = z.infer<typeof ArchivistClearQueryZod>\n\nexport const isArchivistClearQuery: ReturnType<typeof zodIsFactory<ArchivistClearQuery>> = zodIsFactory(ArchivistClearQueryZod)\nexport const asArchivistClearQuery: ReturnType<typeof zodAsFactory<ArchivistClearQuery>> = zodAsFactory(ArchivistClearQueryZod, 'asArchivistClearQuery')\nexport const toArchivistClearQuery: ReturnType<typeof zodToFactory<ArchivistClearQuery>> = zodToFactory(ArchivistClearQueryZod, 'toArchivistClearQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistCommitQuerySchema: 'network.xyo.query.archivist.commit' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.commit', true)\nexport type ArchivistCommitQuerySchema = typeof ArchivistCommitQuerySchema\n\nexport const ArchivistCommitQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistCommitQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistCommitQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistCommitQuery = z.infer<typeof ArchivistCommitQueryZod>\n\nexport const isArchivistCommitQuery: ReturnType<typeof zodIsFactory<ArchivistCommitQuery>> = zodIsFactory(ArchivistCommitQueryZod)\nexport const asArchivistCommitQuery: ReturnType<typeof zodAsFactory<ArchivistCommitQuery>> = zodAsFactory(ArchivistCommitQueryZod, 'asArchivistCommitQuery')\nexport const toArchivistCommitQuery: ReturnType<typeof zodToFactory<ArchivistCommitQuery>> = zodToFactory(ArchivistCommitQueryZod, 'toArchivistCommitQuery')\n", "import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistDeleteQuerySchema: 'network.xyo.query.archivist.delete' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.delete', true)\nexport type ArchivistDeleteQuerySchema = typeof ArchivistDeleteQuerySchema\n\nexport const ArchivistDeleteQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistDeleteQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { hashes: z.ZodMiniArray<z.ZodMiniCustom<Hash, Hash>> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistDeleteQuerySchema), {\n ...QueryFieldsZod.shape,\n hashes: z.array(z.custom<Hash>()),\n})\n\nexport type ArchivistDeleteQuery = z.infer<typeof ArchivistDeleteQueryZod>\n\nexport const isArchivistDeleteQuery: ReturnType<typeof zodIsFactory<ArchivistDeleteQuery>> = zodIsFactory(ArchivistDeleteQueryZod)\nexport const asArchivistDeleteQuery: ReturnType<typeof zodAsFactory<ArchivistDeleteQuery>> = zodAsFactory(ArchivistDeleteQueryZod, 'asArchivistDeleteQuery')\nexport const toArchivistDeleteQuery: ReturnType<typeof zodToFactory<ArchivistDeleteQuery>> = zodToFactory(ArchivistDeleteQueryZod, 'toArchivistDeleteQuery')\n", "import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistGetQuerySchema: 'network.xyo.query.archivist.get' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.get', true)\nexport type ArchivistGetQuerySchema = typeof ArchivistGetQuerySchema\n\nexport const ArchivistGetQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistGetQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { hashes: z.ZodMiniArray<z.ZodMiniCustom<Hash, Hash>> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistGetQuerySchema), {\n ...QueryFieldsZod.shape,\n hashes: z.array(z.custom<Hash>()),\n})\n\nexport type ArchivistGetQuery = z.infer<typeof ArchivistGetQueryZod>\n\nexport const isArchivistGetQuery: ReturnType<typeof zodIsFactory<ArchivistGetQuery>> = zodIsFactory(ArchivistGetQueryZod)\nexport const asArchivistGetQuery: ReturnType<typeof zodAsFactory<ArchivistGetQuery>> = zodAsFactory(ArchivistGetQueryZod, 'asArchivistGetQuery')\nexport const toArchivistGetQuery: ReturnType<typeof zodToFactory<ArchivistGetQuery>> = zodToFactory(ArchivistGetQueryZod, 'toArchivistGetQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistInsertQuerySchema: 'network.xyo.query.archivist.insert' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.insert', true)\nexport type ArchivistInsertQuerySchema = typeof ArchivistInsertQuerySchema\n\nexport const ArchivistInsertQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistInsertQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistInsertQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistInsertQuery = z.infer<typeof ArchivistInsertQueryZod>\n\nexport const isArchivistInsertQuery: ReturnType<typeof zodIsFactory<ArchivistInsertQuery>> = zodIsFactory(ArchivistInsertQueryZod)\nexport const asArchivistInsertQuery: ReturnType<typeof zodAsFactory<ArchivistInsertQuery>> = zodAsFactory(ArchivistInsertQueryZod, 'asArchivistInsertQuery')\nexport const toArchivistInsertQuery: ReturnType<typeof zodToFactory<ArchivistInsertQuery>> = zodToFactory(ArchivistInsertQueryZod, 'toArchivistInsertQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type { Sequence } from '@xyo-network/sdk-protocol'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistNextQuerySchema: 'network.xyo.query.archivist.next' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.next', true)\nexport type ArchivistNextQuerySchema = typeof ArchivistNextQuerySchema\n\nexport const ArchivistNextQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistNextQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & {\n cursor: z.ZodMiniOptional<z.ZodMiniCustom<Sequence, Sequence>>\n limit: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n open: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n order: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<'asc'>, z.ZodMiniLiteral<'desc'>]>>\n },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistNextQuerySchema), {\n ...QueryFieldsZod.shape,\n cursor: z.optional(z.custom<Sequence>()),\n limit: z.optional(z.number()),\n open: z.optional(z.boolean()),\n order: z.optional(z.union([z.literal('asc'), z.literal('desc')])),\n})\n\nexport type ArchivistNextQuery = z.infer<typeof ArchivistNextQueryZod>\n\nexport const isArchivistNextQuery: ReturnType<typeof zodIsFactory<ArchivistNextQuery>> = zodIsFactory(ArchivistNextQueryZod)\nexport const asArchivistNextQuery: ReturnType<typeof zodAsFactory<ArchivistNextQuery>> = zodAsFactory(ArchivistNextQueryZod, 'asArchivistNextQuery')\nexport const toArchivistNextQuery: ReturnType<typeof zodToFactory<ArchivistNextQuery>> = zodToFactory(ArchivistNextQueryZod, 'toArchivistNextQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistSnapshotQuerySchema: 'network.xyo.query.archivist.snapshot' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.snapshot', true)\nexport type ArchivistSnapshotQuerySchema = typeof ArchivistSnapshotQuerySchema\n\nexport const ArchivistSnapshotQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistSnapshotQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistSnapshotQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistSnapshotQuery = z.infer<typeof ArchivistSnapshotQueryZod>\n\nexport const isArchivistSnapshotQuery: ReturnType<typeof zodIsFactory<ArchivistSnapshotQuery>> = zodIsFactory(ArchivistSnapshotQueryZod)\nexport const asArchivistSnapshotQuery: ReturnType<typeof zodAsFactory<ArchivistSnapshotQuery>> = zodAsFactory(ArchivistSnapshotQueryZod, 'asArchivistSnapshotQuery')\nexport const toArchivistSnapshotQuery: ReturnType<typeof zodToFactory<ArchivistSnapshotQuery>> = zodToFactory(ArchivistSnapshotQueryZod, 'toArchivistSnapshotQuery')\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk-protocol'\n\nimport type { AttachableModuleInstance } from '#module-model'\n\nimport type { ArchivistModuleEventData } from '../EventData.ts'\nimport type { ArchivistInstance, ArchivistParams } from '../Instance.ts'\nimport type { ArchivistModuleInstance } from '../ModuleInstance.ts'\n\nexport interface AttachableArchivistInstance<\n TParams extends ArchivistParams = ArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n TPayload extends Payload = Payload,\n> extends ArchivistModuleInstance<TParams, TEventData>,\n AttachableModuleInstance<TParams, TEventData>,\n ArchivistInstance<TParams, TEventData, TPayload> {}\n\nexport type AttachableArchivistInstanceTypeCheck<T extends AttachableArchivistInstance = AttachableArchivistInstance> = TypeCheck<T>\n\nexport class IsAttachableArchivistInstanceFactory<T extends AttachableArchivistInstance = AttachableArchivistInstance> 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 { ModuleConfig, ModuleIdentifier } from '#module-model'\nimport { ModuleConfigZod } from '#module-model'\n\nimport type { IndexDescription } from './IndexDescription.ts'\n\nexport interface ArchivistParents {\n commit?: ModuleIdentifier[]\n read?: ModuleIdentifier[]\n write?: ModuleIdentifier[]\n}\n\nexport interface ArchivistStorage {\n /** The indexes to create on the object store */\n indexes?: IndexDescription[]\n}\n\nexport interface ArchivistGetCache {\n enabled?: boolean\n maxEntries?: number\n}\n\nexport const ArchivistConfigSchema: 'network.xyo.archivist.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.config', true)\nexport type ArchivistConfigSchema = typeof ArchivistConfigSchema\n\nexport const ArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ModuleConfigZod)['shape'], 'schema'>\n & {\n getCache: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistGetCache, ArchivistGetCache>>\n parents: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistParents, ArchivistParents>>\n requireAllParents: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n schema: z.ZodMiniLiteral<ArchivistConfigSchema>\n storage: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistStorage, ArchivistStorage>>\n storeParentReads: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n },\n z.core.$strip\n> = z.extend(ModuleConfigZod, {\n getCache: z.optional(z.custom<ArchivistGetCache>()),\n parents: z.optional(z.custom<ArchivistParents>()),\n requireAllParents: z.optional(z.boolean()),\n schema: z.literal(ArchivistConfigSchema),\n storage: z.optional(z.custom<ArchivistStorage>()),\n storeParentReads: z.optional(z.boolean()),\n})\n\nexport type ArchivistConfigBase = z.infer<typeof ArchivistConfigZod>\n\nexport const isArchivistConfig: ReturnType<typeof zodIsFactory<ArchivistConfigBase>> = zodIsFactory(ArchivistConfigZod)\nexport const asArchivistConfig: ReturnType<typeof zodAsFactory<ArchivistConfigBase>> = zodAsFactory(ArchivistConfigZod, 'asArchivistConfig')\nexport const toArchivistConfig: ReturnType<typeof zodToFactory<ArchivistConfigBase>> = zodToFactory(ArchivistConfigZod, 'toArchivistConfig')\n\nexport type ArchivistConfig<TConfig extends Payload | EmptyObject | void = void, TSchema extends Schema | void = void> = ModuleConfig<\n WithAdditional<\n {\n /** @field caching configuration for get calls */\n getCache?: ArchivistGetCache\n /** @field address of one or more parent archivists to read from */\n parents?: ArchivistParents\n /** @field fail if some parents can not be resolved (true if unspecified) */\n requireAllParents?: boolean\n schema: TConfig extends Payload ? TConfig['schema'] : ArchivistConfigSchema\n /** @field storage configuration */\n storage?: ArchivistStorage\n /** @field should child store all reads from parents? */\n storeParentReads?: boolean\n },\n TConfig\n >,\n TSchema\n>\n", "/**\n * The index direction (1 for ascending, -1 for descending)\n */\nexport type IndexDirection = -1 | 1\n\n/**\n * Description of index(es) to be created on a store\n */\nexport interface IndexDescription {\n /**\n * The key(s) to index\n */\n key: Record<string, IndexDirection>\n /**\n * Is the indexed value an array\n */\n multiEntry?: boolean\n /**\n * The name of the index\n */\n name?: string\n /**\n * If true, the index must enforce uniqueness on the key\n */\n unique?: boolean\n}\n\nexport const IndexSeparator = '-'\n\n/**\n * Given an index description, this will build the index\n * name in standard form\n * @param index The index description\n * @returns The index name in standard form\n */\nexport const buildStandardIndexName = (index: IndexDescription) => {\n const { key, unique } = index\n const prefix = unique ? 'UX' : 'IX'\n const indexKeys = Object.keys(key)\n return `${prefix}_${indexKeys.join(IndexSeparator)}`\n}\n", "import type { Hash, IdentityFunction } from '@ariestools/sdk'\nimport { assertEx } from '@ariestools/sdk'\nimport {\n type BoundWitness, isBoundWitness, isStorageMeta, type WithStorageMeta,\n} from '@xyo-network/sdk-protocol'\n\nimport type { ReadArchivist } from '../PayloadArchivist.ts'\n\nexport const tryGetTypedBoundWitnessWithStorageMeta = async <T extends BoundWitness>(archivist: ReadArchivist, hash: Hash,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<WithStorageMeta<T> | undefined> => {\n const payload = (await archivist.get([hash])).at(0)\n return identity(payload) ? payload : undefined\n}\n\nexport const getTypedBoundWitnessWithStorageMeta = async <T extends BoundWitness>(archivist: ReadArchivist, hash: Hash,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<WithStorageMeta<T>> => {\n const payload = assertEx((await archivist.get([hash])).at(0), () => `failed to locate bound witness: ${hash}`)\n return assertEx(identity(payload) ? payload : undefined, () => `located payload failed identity check: ${hash}`)\n}\n\nexport const getBoundWitnessWithStorageMeta = (archivist: ReadArchivist, hash: Hash): Promise<WithStorageMeta<BoundWitness>> => {\n return getTypedBoundWitnessWithStorageMeta<BoundWitness>(archivist, hash, x => isStorageMeta(x) && isBoundWitness(x))\n}\n", "import type { Hash, IdentityFunction } from '@ariestools/sdk'\nimport { exists, isHash } from '@ariestools/sdk'\nimport type { BoundWitness, WithStorageMeta } from '@xyo-network/sdk-protocol'\nimport { isBoundWitness, isStorageMeta } from '@xyo-network/sdk-protocol'\n\nimport type { ReadArchivist } from '../PayloadArchivist.ts'\nimport { getTypedBoundWitnessWithStorageMeta, tryGetTypedBoundWitnessWithStorageMeta } from './getBoundWitness.ts'\nimport type { HydratedBoundWitness } from './HydratedBoundWitness.ts'\n\nexport const tryHydrateTypedBoundWitness = async <T extends BoundWitness>(archivist: ReadArchivist, hashOrBw: Hash | WithStorageMeta<T>,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<HydratedBoundWitness<T> | undefined> => {\n const bw = isHash(hashOrBw) ? await tryGetTypedBoundWitnessWithStorageMeta(archivist, hashOrBw, identity) : hashOrBw\n return bw ? [bw, (await archivist.get(bw?.payload_hashes)).filter(exists)] : undefined\n}\n\nexport const hydrateTypedBoundWitness = async <T extends BoundWitness>(archivist: ReadArchivist, hashOrBw: Hash | WithStorageMeta<T>,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<HydratedBoundWitness<T>> => {\n const bw = isHash(hashOrBw) ? await getTypedBoundWitnessWithStorageMeta(archivist, hashOrBw, identity) : hashOrBw\n const payloads = (await archivist.get(bw?.payload_hashes)).filter(exists)\n if (payloads.length !== bw.payload_hashes.length) {\n throw new Error(`missing payloads for ${bw._hash}`)\n }\n return [bw, payloads]\n}\n\nexport const hydrateBoundWitness = (\n archivist: ReadArchivist,\n hashOrBw: Hash | WithStorageMeta<BoundWitness>,\n): Promise<HydratedBoundWitness<BoundWitness>> => {\n const idFunction: IdentityFunction<WithStorageMeta<BoundWitness>> = x => isBoundWitness(x) && isStorageMeta(x)\n return hydrateTypedBoundWitness<BoundWitness>(archivist, hashOrBw, idFunction)\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type { Payload, PayloadHashMap } from '@xyo-network/sdk-protocol'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistSnapshotPayloadSchema: 'network.xyo.archivist.snapshot' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.snapshot', true)\nexport type ArchivistSnapshotPayloadSchema = typeof ArchivistSnapshotPayloadSchema\n\nexport const ArchivistSnapshotPayloadZod: z.ZodMiniIntersection<\n z.ZodMiniObject<{ schema: z.ZodMiniLiteral<ArchivistSnapshotPayloadSchema> }, z.core.$strip>,\n z.ZodMiniCustom<PayloadHashMap, PayloadHashMap>\n> = z.intersection(PayloadZodOfSchema(ArchivistSnapshotPayloadSchema), z.custom<PayloadHashMap>())\n\nexport type ArchivistSnapshotPayload<TPayload extends Payload = Payload, TId extends string | number | symbol = Hash>\n = Payload<PayloadHashMap<TPayload, TId>, ArchivistSnapshotPayloadSchema>\n\nconst isArchivistSnapshotPayloadInternal = zodIsFactory(ArchivistSnapshotPayloadZod)\n\nexport const isArchivistSnapshotPayload = <\n TPayload extends Payload = Payload,\n TId extends string | number | symbol = Hash,\n TInput = unknown,\n>(payload?: TInput): payload is ArchivistSnapshotPayload<TPayload, TId> & TInput => isArchivistSnapshotPayloadInternal(payload)\n\nexport const asArchivistSnapshotPayload: ReturnType<typeof zodAsFactory<ArchivistSnapshotPayload>>\n = zodAsFactory(ArchivistSnapshotPayloadZod, 'asArchivistSnapshotPayload')\nexport const toArchivistSnapshotPayload: ReturnType<typeof zodToFactory<ArchivistSnapshotPayload>>\n = zodToFactory(ArchivistSnapshotPayloadZod, 'toArchivistSnapshotPayload')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistStatsPayloadSchema: 'network.xyo.archivist.stats' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.stats', true)\nexport type ArchivistStatsPayloadSchema = typeof ArchivistStatsPayloadSchema\n\nexport const ArchivistStatsPayloadZod: z.ZodMiniObject<{\n payloadCount: z.ZodMiniNumber<number>\n schema: z.ZodMiniLiteral<ArchivistStatsPayloadSchema>\n}, z.core.$strip> = z.extend(PayloadZodOfSchema(ArchivistStatsPayloadSchema), { payloadCount: z.number() })\n\nexport type ArchivistStatsPayload = z.infer<typeof ArchivistStatsPayloadZod>\n\nexport const isArchivistStatsPayload: ReturnType<typeof zodIsFactory<ArchivistStatsPayload>> = zodIsFactory(ArchivistStatsPayloadZod)\nexport const asArchivistStatsPayload: ReturnType<typeof zodAsFactory<ArchivistStatsPayload>> = zodAsFactory(ArchivistStatsPayloadZod, 'asArchivistStatsPayload')\nexport const toArchivistStatsPayload: ReturnType<typeof zodToFactory<ArchivistStatsPayload>> = zodToFactory(ArchivistStatsPayloadZod, 'toArchivistStatsPayload')\n", "import { AsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableArchivistInstance } from './isAttachableInstance.ts'\n\nexport const asAttachableArchivistInstance = AsObjectFactory.create(isAttachableArchivistInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableModuleInstance } from '#module-model'\n\nimport { isArchivistInstance } from '../typeChecks.ts'\nimport type { AttachableArchivistInstance } from './AttachableInstance.ts'\n\nexport const requiredAttachableArchivistInstanceFunctions: ObjectTypeShape = {}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<AttachableArchivistInstance>()\n\nexport const isAttachableArchivistInstance: TypeCheck<AttachableArchivistInstance> = factory.create(requiredAttachableArchivistInstanceFunctions, [\n isArchivistInstance,\n isAttachableModuleInstance,\n])\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\n\nimport {\n IsInstanceFactory, isModuleInstance, IsQueryableModuleFactory, WithFactory,\n} from '#module-model'\n\nimport type { ArchivistInstance } from './Instance.ts'\nimport type { ArchivistModuleInstance } from './ModuleInstance.ts'\nimport { ArchivistGetQuerySchema } from './Queries/index.ts'\n\nconst isInstanceFactory = new IsInstanceFactory<ArchivistInstance>()\nexport const isArchivistInstance: TypeCheck<ArchivistInstance> = isInstanceFactory.create({ get: 'function' }, [isModuleInstance])\nconst isQueryableModuleFactory = new IsQueryableModuleFactory<ArchivistModuleInstance>()\nexport const isArchivistModule: TypeCheck<ArchivistModuleInstance> = isQueryableModuleFactory.create([ArchivistGetQuerySchema])\n\nexport const asArchivistModule = AsObjectFactory.create(isArchivistModule)\nexport const asArchivistInstance = AsObjectFactory.create(isArchivistInstance)\n\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withArchivistModule = WithFactory.create(isArchivistModule)\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withArchivistInstance = WithFactory.create(isArchivistInstance)\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistAllQuerySchema: 'network.xyo.query.archivist.all' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.all', true)\nexport type ArchivistAllQuerySchema = typeof ArchivistAllQuerySchema\n\nexport const ArchivistAllQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistAllQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistAllQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistAllQuery = z.infer<typeof ArchivistAllQueryZod>\n\nexport const isArchivistAllQuery: ReturnType<typeof zodIsFactory<ArchivistAllQuery>> = zodIsFactory(ArchivistAllQueryZod)\nexport const asArchivistAllQuery: ReturnType<typeof zodAsFactory<ArchivistAllQuery>> = zodAsFactory(ArchivistAllQueryZod, 'asArchivistAllQuery')\nexport const toArchivistAllQuery: ReturnType<typeof zodToFactory<ArchivistAllQuery>> = zodToFactory(ArchivistAllQueryZod, 'toArchivistAllQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistClearQuerySchema: 'network.xyo.query.archivist.clear' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.clear', true)\nexport type ArchivistClearQuerySchema = typeof ArchivistClearQuerySchema\n\nexport const ArchivistClearQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistClearQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistClearQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistClearQuery = z.infer<typeof ArchivistClearQueryZod>\n\nexport const isArchivistClearQuery: ReturnType<typeof zodIsFactory<ArchivistClearQuery>> = zodIsFactory(ArchivistClearQueryZod)\nexport const asArchivistClearQuery: ReturnType<typeof zodAsFactory<ArchivistClearQuery>> = zodAsFactory(ArchivistClearQueryZod, 'asArchivistClearQuery')\nexport const toArchivistClearQuery: ReturnType<typeof zodToFactory<ArchivistClearQuery>> = zodToFactory(ArchivistClearQueryZod, 'toArchivistClearQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistCommitQuerySchema: 'network.xyo.query.archivist.commit' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.commit', true)\nexport type ArchivistCommitQuerySchema = typeof ArchivistCommitQuerySchema\n\nexport const ArchivistCommitQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistCommitQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistCommitQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistCommitQuery = z.infer<typeof ArchivistCommitQueryZod>\n\nexport const isArchivistCommitQuery: ReturnType<typeof zodIsFactory<ArchivistCommitQuery>> = zodIsFactory(ArchivistCommitQueryZod)\nexport const asArchivistCommitQuery: ReturnType<typeof zodAsFactory<ArchivistCommitQuery>> = zodAsFactory(ArchivistCommitQueryZod, 'asArchivistCommitQuery')\nexport const toArchivistCommitQuery: ReturnType<typeof zodToFactory<ArchivistCommitQuery>> = zodToFactory(ArchivistCommitQueryZod, 'toArchivistCommitQuery')\n", "import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistDeleteQuerySchema: 'network.xyo.query.archivist.delete' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.delete', true)\nexport type ArchivistDeleteQuerySchema = typeof ArchivistDeleteQuerySchema\n\nexport const ArchivistDeleteQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistDeleteQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { hashes: z.ZodMiniArray<z.ZodMiniCustom<Hash, Hash>> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistDeleteQuerySchema), {\n ...QueryFieldsZod.shape,\n hashes: z.array(z.custom<Hash>()),\n})\n\nexport type ArchivistDeleteQuery = z.infer<typeof ArchivistDeleteQueryZod>\n\nexport const isArchivistDeleteQuery: ReturnType<typeof zodIsFactory<ArchivistDeleteQuery>> = zodIsFactory(ArchivistDeleteQueryZod)\nexport const asArchivistDeleteQuery: ReturnType<typeof zodAsFactory<ArchivistDeleteQuery>> = zodAsFactory(ArchivistDeleteQueryZod, 'asArchivistDeleteQuery')\nexport const toArchivistDeleteQuery: ReturnType<typeof zodToFactory<ArchivistDeleteQuery>> = zodToFactory(ArchivistDeleteQueryZod, 'toArchivistDeleteQuery')\n", "import type { Hash } from '@ariestools/sdk'\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistGetQuerySchema: 'network.xyo.query.archivist.get' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.get', true)\nexport type ArchivistGetQuerySchema = typeof ArchivistGetQuerySchema\n\nexport const ArchivistGetQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistGetQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & { hashes: z.ZodMiniArray<z.ZodMiniCustom<Hash, Hash>> },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistGetQuerySchema), {\n ...QueryFieldsZod.shape,\n hashes: z.array(z.custom<Hash>()),\n})\n\nexport type ArchivistGetQuery = z.infer<typeof ArchivistGetQueryZod>\n\nexport const isArchivistGetQuery: ReturnType<typeof zodIsFactory<ArchivistGetQuery>> = zodIsFactory(ArchivistGetQueryZod)\nexport const asArchivistGetQuery: ReturnType<typeof zodAsFactory<ArchivistGetQuery>> = zodAsFactory(ArchivistGetQueryZod, 'asArchivistGetQuery')\nexport const toArchivistGetQuery: ReturnType<typeof zodToFactory<ArchivistGetQuery>> = zodToFactory(ArchivistGetQueryZod, 'toArchivistGetQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistInsertQuerySchema: 'network.xyo.query.archivist.insert' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.insert', true)\nexport type ArchivistInsertQuerySchema = typeof ArchivistInsertQuerySchema\n\nexport const ArchivistInsertQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistInsertQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistInsertQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistInsertQuery = z.infer<typeof ArchivistInsertQueryZod>\n\nexport const isArchivistInsertQuery: ReturnType<typeof zodIsFactory<ArchivistInsertQuery>> = zodIsFactory(ArchivistInsertQueryZod)\nexport const asArchivistInsertQuery: ReturnType<typeof zodAsFactory<ArchivistInsertQuery>> = zodAsFactory(ArchivistInsertQueryZod, 'asArchivistInsertQuery')\nexport const toArchivistInsertQuery: ReturnType<typeof zodToFactory<ArchivistInsertQuery>> = zodToFactory(ArchivistInsertQueryZod, 'toArchivistInsertQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type { Sequence } from '@xyo-network/sdk-protocol'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistNextQuerySchema: 'network.xyo.query.archivist.next' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.next', true)\nexport type ArchivistNextQuerySchema = typeof ArchivistNextQuerySchema\n\nexport const ArchivistNextQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistNextQuerySchema> }\n & (typeof QueryFieldsZod)['shape']\n & {\n cursor: z.ZodMiniOptional<z.ZodMiniCustom<Sequence, Sequence>>\n limit: z.ZodMiniOptional<z.ZodMiniNumber<number>>\n open: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n order: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<'asc'>, z.ZodMiniLiteral<'desc'>]>>\n },\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistNextQuerySchema), {\n ...QueryFieldsZod.shape,\n cursor: z.optional(z.custom<Sequence>()),\n limit: z.optional(z.number()),\n open: z.optional(z.boolean()),\n order: z.optional(z.union([z.literal('asc'), z.literal('desc')])),\n})\n\nexport type ArchivistNextQuery = z.infer<typeof ArchivistNextQueryZod>\n\nexport const isArchivistNextQuery: ReturnType<typeof zodIsFactory<ArchivistNextQuery>> = zodIsFactory(ArchivistNextQueryZod)\nexport const asArchivistNextQuery: ReturnType<typeof zodAsFactory<ArchivistNextQuery>> = zodAsFactory(ArchivistNextQueryZod, 'asArchivistNextQuery')\nexport const toArchivistNextQuery: ReturnType<typeof zodToFactory<ArchivistNextQuery>> = zodToFactory(ArchivistNextQueryZod, 'toArchivistNextQuery')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const ArchivistSnapshotQuerySchema: 'network.xyo.query.archivist.snapshot' & {\n readonly __schema: true\n} = asSchema('network.xyo.query.archivist.snapshot', true)\nexport type ArchivistSnapshotQuerySchema = typeof ArchivistSnapshotQuerySchema\n\nexport const ArchivistSnapshotQueryZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<ArchivistSnapshotQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(ArchivistSnapshotQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type ArchivistSnapshotQuery = z.infer<typeof ArchivistSnapshotQueryZod>\n\nexport const isArchivistSnapshotQuery: ReturnType<typeof zodIsFactory<ArchivistSnapshotQuery>> = zodIsFactory(ArchivistSnapshotQueryZod)\nexport const asArchivistSnapshotQuery: ReturnType<typeof zodAsFactory<ArchivistSnapshotQuery>> = zodAsFactory(ArchivistSnapshotQueryZod, 'asArchivistSnapshotQuery')\nexport const toArchivistSnapshotQuery: ReturnType<typeof zodToFactory<ArchivistSnapshotQuery>> = zodToFactory(ArchivistSnapshotQueryZod, 'toArchivistSnapshotQuery')\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk-protocol'\n\nimport type { AttachableModuleInstance } from '#module-model'\n\nimport type { ArchivistModuleEventData } from '../EventData.ts'\nimport type { ArchivistInstance, ArchivistParams } from '../Instance.ts'\nimport type { ArchivistModuleInstance } from '../ModuleInstance.ts'\n\nexport interface AttachableArchivistInstance<\n TParams extends ArchivistParams = ArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n TPayload extends Payload = Payload,\n> extends ArchivistModuleInstance<TParams, TEventData>,\n AttachableModuleInstance<TParams, TEventData>,\n ArchivistInstance<TParams, TEventData, TPayload> {}\n\nexport type AttachableArchivistInstanceTypeCheck<T extends AttachableArchivistInstance = AttachableArchivistInstance> = TypeCheck<T>\n\nexport class IsAttachableArchivistInstanceFactory<T extends AttachableArchivistInstance = AttachableArchivistInstance> 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 { ModuleConfig, ModuleIdentifier } from '#module-model'\nimport { ModuleConfigZod } from '#module-model'\n\nimport type { IndexDescription } from './IndexDescription.ts'\n\nexport interface ArchivistParents {\n commit?: ModuleIdentifier[]\n read?: ModuleIdentifier[]\n write?: ModuleIdentifier[]\n}\n\nexport interface ArchivistStorage {\n /** The indexes to create on the object store */\n indexes?: IndexDescription[]\n}\n\nexport interface ArchivistGetCache {\n enabled?: boolean\n maxEntries?: number\n}\n\nexport const ArchivistConfigSchema: 'network.xyo.archivist.config' & {\n readonly __schema: true\n} = asSchema('network.xyo.archivist.config', true)\nexport type ArchivistConfigSchema = typeof ArchivistConfigSchema\n\nexport const ArchivistConfigZod: z.ZodMiniObject<\n & Omit<(typeof ModuleConfigZod)['shape'], 'schema'>\n & {\n getCache: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistGetCache, ArchivistGetCache>>\n parents: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistParents, ArchivistParents>>\n requireAllParents: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n schema: z.ZodMiniLiteral<ArchivistConfigSchema>\n storage: z.ZodMiniOptional<z.ZodMiniCustom<ArchivistStorage, ArchivistStorage>>\n storeParentReads: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>\n },\n z.core.$strip\n> = z.extend(ModuleConfigZod, {\n getCache: z.optional(z.custom<ArchivistGetCache>()),\n parents: z.optional(z.custom<ArchivistParents>()),\n requireAllParents: z.optional(z.boolean()),\n schema: z.literal(ArchivistConfigSchema),\n storage: z.optional(z.custom<ArchivistStorage>()),\n storeParentReads: z.optional(z.boolean()),\n})\n\nexport type ArchivistConfigBase = z.infer<typeof ArchivistConfigZod>\n\nexport const isArchivistConfig: ReturnType<typeof zodIsFactory<ArchivistConfigBase>> = zodIsFactory(ArchivistConfigZod)\nexport const asArchivistConfig: ReturnType<typeof zodAsFactory<ArchivistConfigBase>> = zodAsFactory(ArchivistConfigZod, 'asArchivistConfig')\nexport const toArchivistConfig: ReturnType<typeof zodToFactory<ArchivistConfigBase>> = zodToFactory(ArchivistConfigZod, 'toArchivistConfig')\n\nexport type ArchivistConfig<TConfig extends Payload | EmptyObject | void = void, TSchema extends Schema | void = void> = ModuleConfig<\n WithAdditional<\n {\n /** @field caching configuration for get calls */\n getCache?: ArchivistGetCache\n /** @field address of one or more parent archivists to read from */\n parents?: ArchivistParents\n /** @field fail if some parents can not be resolved (true if unspecified) */\n requireAllParents?: boolean\n schema: TConfig extends Payload ? TConfig['schema'] : ArchivistConfigSchema\n /** @field storage configuration */\n storage?: ArchivistStorage\n /** @field should child store all reads from parents? */\n storeParentReads?: boolean\n },\n TConfig\n >,\n TSchema\n>\n", "/**\n * The index direction (1 for ascending, -1 for descending)\n */\nexport type IndexDirection = -1 | 1\n\n/**\n * Description of index(es) to be created on a store\n */\nexport interface IndexDescription {\n /**\n * The key(s) to index\n */\n key: Record<string, IndexDirection>\n /**\n * Is the indexed value an array\n */\n multiEntry?: boolean\n /**\n * The name of the index\n */\n name?: string\n /**\n * If true, the index must enforce uniqueness on the key\n */\n unique?: boolean\n}\n\nexport const IndexSeparator = '-'\n\n/**\n * Given an index description, this will build the index\n * name in standard form\n * @param index The index description\n * @returns The index name in standard form\n */\nexport const buildStandardIndexName = (index: IndexDescription) => {\n const { key, unique } = index\n const prefix = unique ? 'UX' : 'IX'\n const indexKeys = Object.keys(key)\n return `${prefix}_${indexKeys.join(IndexSeparator)}`\n}\n", "import type { Hash, IdentityFunction } from '@ariestools/sdk'\nimport { assertEx } from '@ariestools/sdk'\nimport {\n type BoundWitness, isBoundWitness, isStorageMeta, type WithStorageMeta,\n} from '@xyo-network/sdk-protocol'\n\nimport type { ReadArchivist } from '../PayloadArchivist.ts'\n\nexport const tryGetTypedBoundWitnessWithStorageMeta = async <T extends BoundWitness>(archivist: ReadArchivist, hash: Hash,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<WithStorageMeta<T> | undefined> => {\n const payload = (await archivist.get([hash])).at(0)\n return identity(payload) ? payload : undefined\n}\n\nexport const getTypedBoundWitnessWithStorageMeta = async <T extends BoundWitness>(archivist: ReadArchivist, hash: Hash,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<WithStorageMeta<T>> => {\n const payload = assertEx((await archivist.get([hash])).at(0), () => `failed to locate bound witness: ${hash}`)\n return assertEx(identity(payload) ? payload : undefined, () => `located payload failed identity check: ${hash}`)\n}\n\nexport const getBoundWitnessWithStorageMeta = (archivist: ReadArchivist, hash: Hash): Promise<WithStorageMeta<BoundWitness>> => {\n return getTypedBoundWitnessWithStorageMeta<BoundWitness>(archivist, hash, x => isStorageMeta(x) && isBoundWitness(x))\n}\n", "import type { Hash, IdentityFunction } from '@ariestools/sdk'\nimport { exists, isHash } from '@ariestools/sdk'\nimport type { BoundWitness, WithStorageMeta } from '@xyo-network/sdk-protocol'\nimport { isBoundWitness, isStorageMeta } from '@xyo-network/sdk-protocol'\n\nimport type { ReadArchivist } from '../PayloadArchivist.ts'\nimport { getTypedBoundWitnessWithStorageMeta, tryGetTypedBoundWitnessWithStorageMeta } from './getBoundWitness.ts'\nimport type { HydratedBoundWitness } from './HydratedBoundWitness.ts'\n\nexport const tryHydrateTypedBoundWitness = async <T extends BoundWitness>(archivist: ReadArchivist, hashOrBw: Hash | WithStorageMeta<T>,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<HydratedBoundWitness<T> | undefined> => {\n const bw = isHash(hashOrBw) ? await tryGetTypedBoundWitnessWithStorageMeta(archivist, hashOrBw, identity) : hashOrBw\n return bw ? [bw, (await archivist.get(bw?.payload_hashes)).filter(exists)] : undefined\n}\n\nexport const hydrateTypedBoundWitness = async <T extends BoundWitness>(archivist: ReadArchivist, hashOrBw: Hash | WithStorageMeta<T>,\n identity: IdentityFunction<WithStorageMeta<T>>): Promise<HydratedBoundWitness<T>> => {\n const bw = isHash(hashOrBw) ? await getTypedBoundWitnessWithStorageMeta(archivist, hashOrBw, identity) : hashOrBw\n const payloads = (await archivist.get(bw?.payload_hashes)).filter(exists)\n if (payloads.length !== bw.payload_hashes.length) {\n throw new Error(`missing payloads for ${bw._hash}`)\n }\n return [bw, payloads]\n}\n\nexport const hydrateBoundWitness = (\n archivist: ReadArchivist,\n hashOrBw: Hash | WithStorageMeta<BoundWitness>,\n): Promise<HydratedBoundWitness<BoundWitness>> => {\n const idFunction: IdentityFunction<WithStorageMeta<BoundWitness>> = x => isBoundWitness(x) && isStorageMeta(x)\n return hydrateTypedBoundWitness<BoundWitness>(archivist, hashOrBw, idFunction)\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "z", "AsObjectFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "QueryFieldsZod", "z", "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", "isBoundWitness", "isStorageMeta", "isBoundWitness", "isStorageMeta"]
|
|
7
7
|
}
|