@enbox/dwn-sdk-js 0.4.0 → 0.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/README.md +4 -4
- package/dist/browser.mjs +3 -10
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/generated/precompiled-validators.js +799 -885
- package/dist/esm/generated/precompiled-validators.js.map +1 -1
- package/dist/esm/src/core/dwn-constant.js +5 -0
- package/dist/esm/src/core/dwn-constant.js.map +1 -1
- package/dist/esm/src/core/dwn-error.js +12 -4
- package/dist/esm/src/core/dwn-error.js.map +1 -1
- package/dist/esm/src/core/grant-authorization.js +9 -18
- package/dist/esm/src/core/grant-authorization.js.map +1 -1
- package/dist/esm/src/core/message-reply.js.map +1 -1
- package/dist/esm/src/core/messages-grant-authorization.js +28 -45
- package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization-action.js +25 -27
- package/dist/esm/src/core/protocol-authorization-action.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization-validation.js +34 -89
- package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization.js +44 -118
- package/dist/esm/src/core/protocol-authorization.js.map +1 -1
- package/dist/esm/src/core/protocols-grant-authorization.js +5 -5
- package/dist/esm/src/core/protocols-grant-authorization.js.map +1 -1
- package/dist/esm/src/core/recording-validation-state-reader.js +84 -0
- package/dist/esm/src/core/recording-validation-state-reader.js.map +1 -0
- package/dist/esm/src/core/records-grant-authorization.js +11 -11
- package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
- package/dist/esm/src/core/replication-apply.js +123 -28
- package/dist/esm/src/core/replication-apply.js.map +1 -1
- package/dist/esm/src/core/resumable-task-manager.js +5 -4
- package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
- package/dist/esm/src/core/validation-state-reader.js +237 -0
- package/dist/esm/src/core/validation-state-reader.js.map +1 -0
- package/dist/esm/src/dwn.js +165 -132
- package/dist/esm/src/dwn.js.map +1 -1
- package/dist/esm/src/enums/dwn-interface-method.js +0 -1
- package/dist/esm/src/enums/dwn-interface-method.js.map +1 -1
- package/dist/esm/src/event-stream/durable-event-log.js +365 -0
- package/dist/esm/src/event-stream/durable-event-log.js.map +1 -0
- package/dist/esm/src/event-stream/event-emitter-wake-publisher.js +25 -0
- package/dist/esm/src/event-stream/event-emitter-wake-publisher.js.map +1 -0
- package/dist/esm/src/handlers/messages-query.js +159 -0
- package/dist/esm/src/handlers/messages-query.js.map +1 -0
- package/dist/esm/src/handlers/messages-read.js +5 -5
- package/dist/esm/src/handlers/messages-read.js.map +1 -1
- package/dist/esm/src/handlers/messages-subscribe.js +8 -8
- package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
- package/dist/esm/src/handlers/protocols-configure.js +30 -49
- package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
- package/dist/esm/src/handlers/protocols-query.js +1 -1
- package/dist/esm/src/handlers/protocols-query.js.map +1 -1
- package/dist/esm/src/handlers/records-count.js +20 -11
- package/dist/esm/src/handlers/records-count.js.map +1 -1
- package/dist/esm/src/handlers/records-delete.js +20 -16
- package/dist/esm/src/handlers/records-delete.js.map +1 -1
- package/dist/esm/src/handlers/records-query.js +35 -11
- package/dist/esm/src/handlers/records-query.js.map +1 -1
- package/dist/esm/src/handlers/records-read.js +52 -42
- package/dist/esm/src/handlers/records-read.js.map +1 -1
- package/dist/esm/src/handlers/records-subscribe.js +107 -11
- package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
- package/dist/esm/src/handlers/records-write.js +62 -116
- package/dist/esm/src/handlers/records-write.js.map +1 -1
- package/dist/esm/src/index.js +6 -7
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/interfaces/{messages-sync.js → messages-query.js} +21 -15
- package/dist/esm/src/interfaces/messages-query.js.map +1 -0
- package/dist/esm/src/interfaces/protocols-configure.js +12 -9
- package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
- package/dist/esm/src/interfaces/protocols-query.js +3 -4
- package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
- package/dist/esm/src/interfaces/records-count.js +4 -3
- package/dist/esm/src/interfaces/records-count.js.map +1 -1
- package/dist/esm/src/interfaces/records-delete.js +21 -4
- package/dist/esm/src/interfaces/records-delete.js.map +1 -1
- package/dist/esm/src/interfaces/records-query.js +4 -3
- package/dist/esm/src/interfaces/records-query.js.map +1 -1
- package/dist/esm/src/interfaces/records-read.js +3 -3
- package/dist/esm/src/interfaces/records-read.js.map +1 -1
- package/dist/esm/src/interfaces/records-subscribe.js +4 -3
- package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
- package/dist/esm/src/interfaces/records-write.js +27 -13
- package/dist/esm/src/interfaces/records-write.js.map +1 -1
- package/dist/esm/src/protocols/permissions.js +27 -34
- package/dist/esm/src/protocols/permissions.js.map +1 -1
- package/dist/esm/src/store/index-level.js +24 -9
- package/dist/esm/src/store/index-level.js.map +1 -1
- package/dist/esm/src/store/level-wrapper.js +7 -0
- package/dist/esm/src/store/level-wrapper.js.map +1 -1
- package/dist/esm/src/store/message-store-level.js +536 -42
- package/dist/esm/src/store/message-store-level.js.map +1 -1
- package/dist/esm/src/store/storage-controller.js +58 -49
- package/dist/esm/src/store/storage-controller.js.map +1 -1
- package/dist/esm/src/types/message-types.js.map +1 -1
- package/dist/esm/src/types/validation-state-reader.js +2 -0
- package/dist/esm/src/types/validation-state-reader.js.map +1 -0
- package/dist/esm/src/utils/messages.js +17 -0
- package/dist/esm/src/utils/messages.js.map +1 -1
- package/dist/esm/src/utils/protocol-tags.js +262 -0
- package/dist/esm/src/utils/protocol-tags.js.map +1 -0
- package/dist/esm/src/utils/record-limit-occupancy.js +244 -0
- package/dist/esm/src/utils/record-limit-occupancy.js.map +1 -0
- package/dist/esm/src/utils/records.js +50 -14
- package/dist/esm/src/utils/records.js.map +1 -1
- package/dist/esm/src/utils/replication.js +85 -0
- package/dist/esm/src/utils/replication.js.map +1 -0
- package/dist/esm/tests/core/grant-authorization.spec.js +4 -4
- package/dist/esm/tests/core/grant-authorization.spec.js.map +1 -1
- package/dist/esm/tests/core/process-message-parity.spec.js +222 -0
- package/dist/esm/tests/core/process-message-parity.spec.js.map +1 -0
- package/dist/esm/tests/core/protocol-authorization.spec.js +5 -2
- package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
- package/dist/esm/tests/core/records-grant-authorization.spec.js +5 -5
- package/dist/esm/tests/core/records-grant-authorization.spec.js.map +1 -1
- package/dist/esm/tests/core/replication-apply.spec.js +55 -1
- package/dist/esm/tests/core/replication-apply.spec.js.map +1 -1
- package/dist/esm/tests/core/replication-replay-property.spec.js +350 -0
- package/dist/esm/tests/core/replication-replay-property.spec.js.map +1 -0
- package/dist/esm/tests/core/validation-read-closure.spec.js +469 -0
- package/dist/esm/tests/core/validation-read-closure.spec.js.map +1 -0
- package/dist/esm/tests/core/validation-state-reader.spec.js +716 -0
- package/dist/esm/tests/core/validation-state-reader.spec.js.map +1 -0
- package/dist/esm/tests/durable-event-log.spec.js +373 -0
- package/dist/esm/tests/durable-event-log.spec.js.map +1 -0
- package/dist/esm/tests/dwn.spec.js +504 -35
- package/dist/esm/tests/dwn.spec.js.map +1 -1
- package/dist/esm/tests/features/author-delegated-grant.spec.js +9 -6
- package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
- package/dist/esm/tests/features/owner-delegated-grant.spec.js +1 -4
- package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
- package/dist/esm/tests/features/owner-signature.spec.js +1 -4
- package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
- package/dist/esm/tests/features/permissions.spec.js +165 -4
- package/dist/esm/tests/features/permissions.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-composition.spec.js +8 -11
- package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-create-action.spec.js +1 -4
- package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-delete-action.spec.js +3 -5
- package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-update-action.spec.js +3 -6
- package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
- package/dist/esm/tests/features/records-delivery.spec.js +1 -4
- package/dist/esm/tests/features/records-delivery.spec.js.map +1 -1
- package/dist/esm/tests/features/records-immutable.spec.js +1 -4
- package/dist/esm/tests/features/records-immutable.spec.js.map +1 -1
- package/dist/esm/tests/features/records-nested-query-scope.spec.js +281 -0
- package/dist/esm/tests/features/records-nested-query-scope.spec.js.map +1 -0
- package/dist/esm/tests/features/records-prune-cross-protocol.spec.js +3 -7
- package/dist/esm/tests/features/records-prune-cross-protocol.spec.js.map +1 -1
- package/dist/esm/tests/features/records-prune.spec.js +11 -22
- package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
- package/dist/esm/tests/features/records-record-limit.spec.js +441 -231
- package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -1
- package/dist/esm/tests/features/records-squash.spec.js +6 -4
- package/dist/esm/tests/features/records-squash.spec.js.map +1 -1
- package/dist/esm/tests/features/records-tags.spec.js +1 -4
- package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
- package/dist/esm/tests/features/resumable-tasks.spec.js +3 -5
- package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
- package/dist/esm/tests/fuzz/message-store.fuzz.spec.js +1 -2
- package/dist/esm/tests/fuzz/message-store.fuzz.spec.js.map +1 -1
- package/dist/esm/tests/fuzz/process-message.fuzz.spec.js +2 -4
- package/dist/esm/tests/fuzz/process-message.fuzz.spec.js.map +1 -1
- package/dist/esm/tests/fuzz/schema-validation.fuzz.spec.js +1 -1
- package/dist/esm/tests/fuzz/schema-validation.fuzz.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-query.spec.js +246 -0
- package/dist/esm/tests/handlers/messages-query.spec.js.map +1 -0
- package/dist/esm/tests/handlers/messages-read.spec.js +2 -5
- package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-subscribe.spec.js +3 -14
- package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/handlers/protocols-configure.spec.js +27 -26
- package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
- package/dist/esm/tests/handlers/protocols-query.spec.js +1 -4
- package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-count.spec.js +1 -4
- package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-delete.spec.js +312 -30
- package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-query.spec.js +32 -9
- package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-read.spec.js +4 -4
- package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-subscribe.spec.js +33 -14
- package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-write.spec.js +82 -36
- package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/records-delete.spec.js +69 -2
- package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/records-write.spec.js +4 -3
- package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
- package/dist/esm/tests/protocols/permissions.spec.js +55 -6
- package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/aggregator.spec.js +1 -4
- package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/deleted-record.spec.js +1 -4
- package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +1 -4
- package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/nested-roles.spec.js +1 -4
- package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/subscriptions.spec.js +1 -4
- package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
- package/dist/esm/tests/store/message-store-level.spec.js +361 -5
- package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
- package/dist/esm/tests/store/message-store.spec.js +60 -0
- package/dist/esm/tests/store/message-store.spec.js.map +1 -1
- package/dist/esm/tests/test-event-stream.js +7 -3
- package/dist/esm/tests/test-event-stream.js.map +1 -1
- package/dist/esm/tests/test-stores.js +19 -9
- package/dist/esm/tests/test-stores.js.map +1 -1
- package/dist/esm/tests/test-suite.js +4 -2
- package/dist/esm/tests/test-suite.js.map +1 -1
- package/dist/esm/tests/utils/protocol-tags.spec.js +96 -0
- package/dist/esm/tests/utils/protocol-tags.spec.js.map +1 -0
- package/dist/esm/tests/utils/test-data-generator.js +25 -0
- package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
- package/dist/esm/tests/utils/test-stub-generator.js.map +1 -1
- package/dist/esm/tests/utils/test-validation-state-reader.js +16 -0
- package/dist/esm/tests/utils/test-validation-state-reader.js.map +1 -0
- package/dist/types/generated/precompiled-validators.d.ts +6 -6
- package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
- package/dist/types/src/core/core-protocol.d.ts +3 -3
- package/dist/types/src/core/core-protocol.d.ts.map +1 -1
- package/dist/types/src/core/dwn-constant.d.ts +5 -0
- package/dist/types/src/core/dwn-constant.d.ts.map +1 -1
- package/dist/types/src/core/dwn-error.d.ts +12 -4
- package/dist/types/src/core/dwn-error.d.ts.map +1 -1
- package/dist/types/src/core/grant-authorization.d.ts +5 -5
- package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
- package/dist/types/src/core/message-reply.d.ts +5 -4
- package/dist/types/src/core/message-reply.d.ts.map +1 -1
- package/dist/types/src/core/messages-grant-authorization.d.ts +12 -14
- package/dist/types/src/core/messages-grant-authorization.d.ts.map +1 -1
- package/dist/types/src/core/protocol-authorization-action.d.ts +4 -5
- package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -1
- package/dist/types/src/core/protocol-authorization-validation.d.ts +14 -17
- package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
- package/dist/types/src/core/protocol-authorization.d.ts +8 -33
- package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
- package/dist/types/src/core/protocols-grant-authorization.d.ts +4 -4
- package/dist/types/src/core/protocols-grant-authorization.d.ts.map +1 -1
- package/dist/types/src/core/recording-validation-state-reader.d.ts +75 -0
- package/dist/types/src/core/recording-validation-state-reader.d.ts.map +1 -0
- package/dist/types/src/core/records-grant-authorization.d.ts +8 -8
- package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
- package/dist/types/src/core/replication-apply.d.ts +36 -0
- package/dist/types/src/core/replication-apply.d.ts.map +1 -1
- package/dist/types/src/core/resumable-task-manager.d.ts +1 -1
- package/dist/types/src/core/resumable-task-manager.d.ts.map +1 -1
- package/dist/types/src/core/validation-state-reader.d.ts +79 -0
- package/dist/types/src/core/validation-state-reader.d.ts.map +1 -0
- package/dist/types/src/dwn.d.ts +33 -20
- package/dist/types/src/dwn.d.ts.map +1 -1
- package/dist/types/src/enums/dwn-interface-method.d.ts +0 -1
- package/dist/types/src/enums/dwn-interface-method.d.ts.map +1 -1
- package/dist/types/src/event-stream/durable-event-log.d.ts +69 -0
- package/dist/types/src/event-stream/durable-event-log.d.ts.map +1 -0
- package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts +13 -0
- package/dist/types/src/event-stream/event-emitter-wake-publisher.d.ts.map +1 -0
- package/dist/types/src/handlers/messages-query.d.ts +20 -0
- package/dist/types/src/handlers/messages-query.d.ts.map +1 -0
- package/dist/types/src/handlers/messages-read.d.ts +1 -1
- package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
- package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
- package/dist/types/src/handlers/protocols-configure.d.ts +0 -5
- package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
- package/dist/types/src/handlers/records-count.d.ts +2 -1
- package/dist/types/src/handlers/records-count.d.ts.map +1 -1
- package/dist/types/src/handlers/records-delete.d.ts +2 -2
- package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
- package/dist/types/src/handlers/records-query.d.ts +1 -1
- package/dist/types/src/handlers/records-query.d.ts.map +1 -1
- package/dist/types/src/handlers/records-read.d.ts +2 -1
- package/dist/types/src/handlers/records-read.d.ts.map +1 -1
- package/dist/types/src/handlers/records-subscribe.d.ts +4 -5
- package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
- package/dist/types/src/handlers/records-write.d.ts +3 -11
- package/dist/types/src/handlers/records-write.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +14 -16
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/interfaces/messages-query.d.ts +23 -0
- package/dist/types/src/interfaces/messages-query.d.ts.map +1 -0
- package/dist/types/src/interfaces/protocols-configure.d.ts +3 -3
- package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
- package/dist/types/src/interfaces/protocols-query.d.ts +2 -2
- package/dist/types/src/interfaces/protocols-query.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-count.d.ts +3 -3
- package/dist/types/src/interfaces/records-count.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-delete.d.ts +11 -3
- package/dist/types/src/interfaces/records-delete.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-query.d.ts +3 -3
- package/dist/types/src/interfaces/records-query.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-read.d.ts +3 -3
- package/dist/types/src/interfaces/records-read.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-subscribe.d.ts +3 -3
- package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-write.d.ts +15 -7
- package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
- package/dist/types/src/protocols/permissions.d.ts +9 -12
- package/dist/types/src/protocols/permissions.d.ts.map +1 -1
- package/dist/types/src/store/index-level.d.ts +10 -1
- package/dist/types/src/store/index-level.d.ts.map +1 -1
- package/dist/types/src/store/level-wrapper.d.ts +5 -0
- package/dist/types/src/store/level-wrapper.d.ts.map +1 -1
- package/dist/types/src/store/message-store-level.d.ts +94 -14
- package/dist/types/src/store/message-store-level.d.ts.map +1 -1
- package/dist/types/src/store/storage-controller.d.ts +17 -14
- package/dist/types/src/store/storage-controller.d.ts.map +1 -1
- package/dist/types/src/types/message-store.d.ts +29 -1
- package/dist/types/src/types/message-store.d.ts.map +1 -1
- package/dist/types/src/types/message-types.d.ts +2 -0
- package/dist/types/src/types/message-types.d.ts.map +1 -1
- package/dist/types/src/types/messages-types.d.ts +21 -37
- package/dist/types/src/types/messages-types.d.ts.map +1 -1
- package/dist/types/src/types/method-handler.d.ts +2 -2
- package/dist/types/src/types/method-handler.d.ts.map +1 -1
- package/dist/types/src/types/permission-types.d.ts +1 -1
- package/dist/types/src/types/subscriptions.d.ts +50 -39
- package/dist/types/src/types/subscriptions.d.ts.map +1 -1
- package/dist/types/src/types/validation-state-reader.d.ts +116 -0
- package/dist/types/src/types/validation-state-reader.d.ts.map +1 -0
- package/dist/types/src/utils/messages.d.ts +10 -0
- package/dist/types/src/utils/messages.d.ts.map +1 -1
- package/dist/types/src/utils/protocol-tags.d.ts +15 -0
- package/dist/types/src/utils/protocol-tags.d.ts.map +1 -0
- package/dist/types/src/utils/record-limit-occupancy.d.ts +40 -0
- package/dist/types/src/utils/record-limit-occupancy.d.ts.map +1 -0
- package/dist/types/src/utils/records.d.ts +25 -3
- package/dist/types/src/utils/records.d.ts.map +1 -1
- package/dist/types/src/utils/replication.d.ts +22 -0
- package/dist/types/src/utils/replication.d.ts.map +1 -0
- package/dist/types/tests/core/process-message-parity.spec.d.ts +2 -0
- package/dist/types/tests/core/process-message-parity.spec.d.ts.map +1 -0
- package/dist/types/tests/core/replication-replay-property.spec.d.ts +2 -0
- package/dist/types/tests/core/replication-replay-property.spec.d.ts.map +1 -0
- package/dist/types/tests/core/validation-read-closure.spec.d.ts +2 -0
- package/dist/types/tests/core/validation-read-closure.spec.d.ts.map +1 -0
- package/dist/types/tests/core/validation-state-reader.spec.d.ts +2 -0
- package/dist/types/tests/core/validation-state-reader.spec.d.ts.map +1 -0
- package/dist/types/tests/durable-event-log.spec.d.ts +2 -0
- package/dist/types/tests/durable-event-log.spec.d.ts.map +1 -0
- package/dist/types/tests/dwn.spec.d.ts.map +1 -1
- package/dist/types/tests/features/author-delegated-grant.spec.d.ts.map +1 -1
- package/dist/types/tests/features/owner-delegated-grant.spec.d.ts.map +1 -1
- package/dist/types/tests/features/owner-signature.spec.d.ts.map +1 -1
- package/dist/types/tests/features/permissions.spec.d.ts.map +1 -1
- package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
- package/dist/types/tests/features/protocol-create-action.spec.d.ts.map +1 -1
- package/dist/types/tests/features/protocol-delete-action.spec.d.ts.map +1 -1
- package/dist/types/tests/features/protocol-update-action.spec.d.ts.map +1 -1
- package/dist/types/tests/features/records-delivery.spec.d.ts.map +1 -1
- package/dist/types/tests/features/records-immutable.spec.d.ts.map +1 -1
- package/dist/types/tests/features/records-nested-query-scope.spec.d.ts +2 -0
- package/dist/types/tests/features/records-nested-query-scope.spec.d.ts.map +1 -0
- package/dist/types/tests/features/records-prune-cross-protocol.spec.d.ts.map +1 -1
- package/dist/types/tests/features/records-prune.spec.d.ts.map +1 -1
- package/dist/types/tests/features/records-record-limit.spec.d.ts.map +1 -1
- package/dist/types/tests/features/records-squash.spec.d.ts.map +1 -1
- package/dist/types/tests/features/records-tags.spec.d.ts.map +1 -1
- package/dist/types/tests/features/resumable-tasks.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/messages-query.spec.d.ts +2 -0
- package/dist/types/tests/handlers/messages-query.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/messages-read.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/protocols-configure.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/protocols-query.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
- package/dist/types/tests/scenarios/deleted-record.spec.d.ts.map +1 -1
- package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -1
- package/dist/types/tests/scenarios/nested-roles.spec.d.ts.map +1 -1
- package/dist/types/tests/scenarios/subscriptions.spec.d.ts.map +1 -1
- package/dist/types/tests/store/message-store.spec.d.ts.map +1 -1
- package/dist/types/tests/test-event-stream.d.ts +1 -1
- package/dist/types/tests/test-event-stream.d.ts.map +1 -1
- package/dist/types/tests/test-stores.d.ts +5 -4
- package/dist/types/tests/test-stores.d.ts.map +1 -1
- package/dist/types/tests/test-suite.d.ts +1 -2
- package/dist/types/tests/test-suite.d.ts.map +1 -1
- package/dist/types/tests/utils/protocol-tags.spec.d.ts +2 -0
- package/dist/types/tests/utils/protocol-tags.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/test-data-generator.d.ts +20 -1
- package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
- package/dist/types/tests/utils/test-validation-state-reader.d.ts +15 -0
- package/dist/types/tests/utils/test-validation-state-reader.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/core/core-protocol.ts +3 -3
- package/src/core/dwn-constant.ts +7 -1
- package/src/core/dwn-error.ts +12 -4
- package/src/core/grant-authorization.ts +11 -20
- package/src/core/message-reply.ts +6 -5
- package/src/core/messages-grant-authorization.ts +37 -70
- package/src/core/protocol-authorization-action.ts +29 -38
- package/src/core/protocol-authorization-validation.ts +47 -121
- package/src/core/protocol-authorization.ts +56 -202
- package/src/core/protocols-grant-authorization.ts +9 -9
- package/src/core/recording-validation-state-reader.ts +130 -0
- package/src/core/records-grant-authorization.ts +16 -16
- package/src/core/replication-apply.ts +172 -32
- package/src/core/resumable-task-manager.ts +10 -8
- package/src/core/validation-state-reader.ts +350 -0
- package/src/dwn.ts +285 -192
- package/src/enums/dwn-interface-method.ts +0 -1
- package/src/event-stream/durable-event-log.ts +509 -0
- package/src/event-stream/event-emitter-wake-publisher.ts +34 -0
- package/src/handlers/messages-query.ts +203 -0
- package/src/handlers/messages-read.ts +9 -10
- package/src/handlers/messages-subscribe.ts +12 -13
- package/src/handlers/protocols-configure.ts +37 -58
- package/src/handlers/protocols-query.ts +1 -1
- package/src/handlers/records-count.ts +24 -17
- package/src/handlers/records-delete.ts +29 -27
- package/src/handlers/records-query.ts +38 -17
- package/src/handlers/records-read.ts +63 -50
- package/src/handlers/records-subscribe.ts +132 -19
- package/src/handlers/records-write.ts +77 -168
- package/src/index.ts +14 -17
- package/src/interfaces/messages-query.ts +70 -0
- package/src/interfaces/protocols-configure.ts +20 -10
- package/src/interfaces/protocols-query.ts +4 -5
- package/src/interfaces/records-count.ts +9 -4
- package/src/interfaces/records-delete.ts +25 -5
- package/src/interfaces/records-query.ts +9 -4
- package/src/interfaces/records-read.ts +4 -4
- package/src/interfaces/records-subscribe.ts +9 -4
- package/src/interfaces/records-write.ts +41 -13
- package/src/protocols/permissions.ts +32 -52
- package/src/store/index-level.ts +30 -9
- package/src/store/level-wrapper.ts +9 -1
- package/src/store/message-store-level.ts +757 -47
- package/src/store/storage-controller.ts +74 -63
- package/src/types/message-store.ts +45 -2
- package/src/types/message-types.ts +3 -1
- package/src/types/messages-types.ts +26 -45
- package/src/types/method-handler.ts +3 -3
- package/src/types/permission-types.ts +1 -1
- package/src/types/subscriptions.ts +53 -42
- package/src/types/validation-state-reader.ts +127 -0
- package/src/utils/messages.ts +25 -1
- package/src/utils/protocol-tags.ts +366 -0
- package/src/utils/record-limit-occupancy.ts +377 -0
- package/src/utils/records.ts +69 -13
- package/src/utils/replication.ts +122 -0
- package/dist/esm/src/core/record-chain.js +0 -64
- package/dist/esm/src/core/record-chain.js.map +0 -1
- package/dist/esm/src/event-stream/event-emitter-event-log.js +0 -334
- package/dist/esm/src/event-stream/event-emitter-event-log.js.map +0 -1
- package/dist/esm/src/handlers/messages-sync.js +0 -278
- package/dist/esm/src/handlers/messages-sync.js.map +0 -1
- package/dist/esm/src/interfaces/messages-sync.js.map +0 -1
- package/dist/esm/src/smt/smt-store-level.js +0 -103
- package/dist/esm/src/smt/smt-store-level.js.map +0 -1
- package/dist/esm/src/smt/smt-store-memory.js +0 -41
- package/dist/esm/src/smt/smt-store-memory.js.map +0 -1
- package/dist/esm/src/smt/smt-utils.js +0 -129
- package/dist/esm/src/smt/smt-utils.js.map +0 -1
- package/dist/esm/src/smt/sparse-merkle-tree.js +0 -577
- package/dist/esm/src/smt/sparse-merkle-tree.js.map +0 -1
- package/dist/esm/src/state-index/state-index-level.js +0 -191
- package/dist/esm/src/state-index/state-index-level.js.map +0 -1
- package/dist/esm/src/types/smt-types.js +0 -5
- package/dist/esm/src/types/smt-types.js.map +0 -1
- package/dist/esm/src/types/state-index.js +0 -2
- package/dist/esm/src/types/state-index.js.map +0 -1
- package/dist/esm/tests/event-emitter-event-log.spec.js +0 -499
- package/dist/esm/tests/event-emitter-event-log.spec.js.map +0 -1
- package/dist/esm/tests/handlers/messages-sync.spec.js +0 -1088
- package/dist/esm/tests/handlers/messages-sync.spec.js.map +0 -1
- package/dist/esm/tests/smt/smt-store-level.spec.js +0 -132
- package/dist/esm/tests/smt/smt-store-level.spec.js.map +0 -1
- package/dist/esm/tests/smt/sparse-merkle-tree.spec.js +0 -732
- package/dist/esm/tests/smt/sparse-merkle-tree.spec.js.map +0 -1
- package/dist/esm/tests/state-index/state-index-level.spec.js +0 -245
- package/dist/esm/tests/state-index/state-index-level.spec.js.map +0 -1
- package/dist/types/src/core/record-chain.d.ts +0 -24
- package/dist/types/src/core/record-chain.d.ts.map +0 -1
- package/dist/types/src/event-stream/event-emitter-event-log.d.ts +0 -80
- package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +0 -1
- package/dist/types/src/handlers/messages-sync.d.ts +0 -39
- package/dist/types/src/handlers/messages-sync.d.ts.map +0 -1
- package/dist/types/src/interfaces/messages-sync.d.ts +0 -20
- package/dist/types/src/interfaces/messages-sync.d.ts.map +0 -1
- package/dist/types/src/smt/smt-store-level.d.ts +0 -32
- package/dist/types/src/smt/smt-store-level.d.ts.map +0 -1
- package/dist/types/src/smt/smt-store-memory.d.ts +0 -22
- package/dist/types/src/smt/smt-store-memory.d.ts.map +0 -1
- package/dist/types/src/smt/smt-utils.d.ts +0 -58
- package/dist/types/src/smt/smt-utils.d.ts.map +0 -1
- package/dist/types/src/smt/sparse-merkle-tree.d.ts +0 -124
- package/dist/types/src/smt/sparse-merkle-tree.d.ts.map +0 -1
- package/dist/types/src/state-index/state-index-level.d.ts +0 -83
- package/dist/types/src/state-index/state-index-level.d.ts.map +0 -1
- package/dist/types/src/types/smt-types.d.ts +0 -81
- package/dist/types/src/types/smt-types.d.ts.map +0 -1
- package/dist/types/src/types/state-index.d.ts +0 -90
- package/dist/types/src/types/state-index.d.ts.map +0 -1
- package/dist/types/tests/event-emitter-event-log.spec.d.ts +0 -2
- package/dist/types/tests/event-emitter-event-log.spec.d.ts.map +0 -1
- package/dist/types/tests/handlers/messages-sync.spec.d.ts +0 -2
- package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +0 -1
- package/dist/types/tests/smt/smt-store-level.spec.d.ts +0 -2
- package/dist/types/tests/smt/smt-store-level.spec.d.ts.map +0 -1
- package/dist/types/tests/smt/sparse-merkle-tree.spec.d.ts +0 -2
- package/dist/types/tests/smt/sparse-merkle-tree.spec.d.ts.map +0 -1
- package/dist/types/tests/state-index/state-index-level.spec.d.ts +0 -2
- package/dist/types/tests/state-index/state-index-level.spec.d.ts.map +0 -1
- package/src/core/record-chain.ts +0 -99
- package/src/event-stream/event-emitter-event-log.ts +0 -430
- package/src/handlers/messages-sync.ts +0 -403
- package/src/interfaces/messages-sync.ts +0 -69
- package/src/smt/smt-store-level.ts +0 -143
- package/src/smt/smt-store-memory.ts +0 -53
- package/src/smt/smt-utils.ts +0 -149
- package/src/smt/sparse-merkle-tree.ts +0 -698
- package/src/state-index/state-index-level.ts +0 -239
- package/src/types/smt-types.ts +0 -95
- package/src/types/state-index.ts +0 -100
|
@@ -4,6 +4,7 @@ import type { MessageInterface } from '../types/message-interface.js';
|
|
|
4
4
|
import type { MessageSigner } from '../types/signer.js';
|
|
5
5
|
import type { MessageStore } from '../types/message-store.js';
|
|
6
6
|
import type { PublicKeyJwk } from '../types/jose-types.js';
|
|
7
|
+
import type { ValidationStateReader } from '../types/validation-state-reader.js';
|
|
7
8
|
import type { DataEncodedRecordsWriteMessage, InternalRecordsWriteMessage, RecordsWriteDescriptor, RecordsWriteMessage, RecordsWriteSignaturePayload, RecordsWriteTags } from '../types/records-types.js';
|
|
8
9
|
import type { EncryptionInput, JweEncryption } from '../utils/encryption.js';
|
|
9
10
|
import type { GenericMessage, GenericSignaturePayload } from '../types/message-types.js';
|
|
@@ -164,6 +165,15 @@ export declare class RecordsWrite implements MessageInterface<RecordsWriteMessag
|
|
|
164
165
|
* - will be set to current time (because this is a toggle from unpublished to published)
|
|
165
166
|
*/
|
|
166
167
|
static createFrom(options: CreateFromOptions): Promise<RecordsWrite>;
|
|
168
|
+
/**
|
|
169
|
+
* Validates the expected `dataCid` and `dataSize` in the descriptor against the actual data.
|
|
170
|
+
*
|
|
171
|
+
* @throws {DwnError} with `DwnErrorCode.RecordsWriteDataCidMismatch`
|
|
172
|
+
* if the actual data CID does not match `dataCid` in the descriptor.
|
|
173
|
+
* @throws {DwnError} with `DwnErrorCode.RecordsWriteDataSizeMismatch`
|
|
174
|
+
* if the actual byte size does not match `dataSize` in the descriptor.
|
|
175
|
+
*/
|
|
176
|
+
static validateDataIntegrity(expectedDataCid: string, expectedDataSize: number, actualDataCid: string, actualDataSize: number): void;
|
|
167
177
|
/**
|
|
168
178
|
* Called by `JSON.stringify(...)` automatically.
|
|
169
179
|
*/
|
|
@@ -173,9 +183,7 @@ export declare class RecordsWrite implements MessageInterface<RecordsWriteMessag
|
|
|
173
183
|
*
|
|
174
184
|
* @param options.append - When `true`, appends new `recipients` entries to the existing
|
|
175
185
|
* `encryption` property instead of replacing it. Requires `this._message.encryption` to
|
|
176
|
-
* already exist (i.e., the record must already be encrypted).
|
|
177
|
-
* root-record upgrade: adding a ProtocolContext recipient entry alongside an existing
|
|
178
|
-
* ProtocolPath entry so both the owner and context key holders can decrypt.
|
|
186
|
+
* already exist (i.e., the record must already be encrypted).
|
|
179
187
|
*/
|
|
180
188
|
encryptSymmetricEncryptionKey(encryptionInput: EncryptionInput, options?: {
|
|
181
189
|
append?: boolean;
|
|
@@ -225,14 +233,14 @@ export declare class RecordsWrite implements MessageInterface<RecordsWriteMessag
|
|
|
225
233
|
constructIndexes(isLatestBaseState: boolean): Promise<KeyValues>;
|
|
226
234
|
/**
|
|
227
235
|
* Authorizes the author-delegate who signed this message.
|
|
228
|
-
* @param
|
|
236
|
+
* @param validationStateReader Used to check if the grant has been revoked.
|
|
229
237
|
*/
|
|
230
|
-
authorizeAuthorDelegate(
|
|
238
|
+
authorizeAuthorDelegate(validationStateReader: ValidationStateReader): Promise<void>;
|
|
231
239
|
/**
|
|
232
240
|
* Authorizes the owner-delegate who signed this message.
|
|
233
|
-
* @param
|
|
241
|
+
* @param validationStateReader Used to check if the grant has been revoked.
|
|
234
242
|
*/
|
|
235
|
-
authorizeOwnerDelegate(
|
|
243
|
+
authorizeOwnerDelegate(validationStateReader: ValidationStateReader): Promise<void>;
|
|
236
244
|
/**
|
|
237
245
|
* Checks if the given message is the initial entry of a record.
|
|
238
246
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"records-write.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/records-write.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"records-write.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/records-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Filter } from '../types/query-types.js';
|
|
2
2
|
import type { MessagesFilter } from '../types/messages-types.js';
|
|
3
3
|
import type { MessageSigner } from '../types/signer.js';
|
|
4
|
-
import type { MessageStore } from '../types/message-store.js';
|
|
5
4
|
import type { ProtocolDefinition } from '../types/protocols-types.js';
|
|
5
|
+
import type { ValidationStateReader } from '../types/validation-state-reader.js';
|
|
6
6
|
import type { CoreProtocol, CoreProtocolStores } from '../core/core-protocol.js';
|
|
7
7
|
import type { DataEncodedRecordsWriteMessage, RecordsWriteMessage } from '../types/records-types.js';
|
|
8
8
|
import type { PermissionConditions, PermissionGrantData, PermissionRequestData, PermissionRevocationData, PermissionScope } from '../types/permission-types.js';
|
|
@@ -81,6 +81,10 @@ export declare class PermissionsProtocol implements CoreProtocol {
|
|
|
81
81
|
* The protocol path of the `revocation` record.
|
|
82
82
|
*/
|
|
83
83
|
static readonly revocationPath = "grant/revocation";
|
|
84
|
+
/**
|
|
85
|
+
* Canonical store predicate for the latest revocation of a permission grant.
|
|
86
|
+
*/
|
|
87
|
+
static grantRevocationFilter(grantId: string): Filter;
|
|
84
88
|
/**
|
|
85
89
|
* The definition of the Permissions protocol.
|
|
86
90
|
*/
|
|
@@ -95,7 +99,7 @@ export declare class PermissionsProtocol implements CoreProtocol {
|
|
|
95
99
|
* Pre-processing hook for permission revocation records.
|
|
96
100
|
* Validates that the revocation's `tags.protocol` matches the grant's scoped protocol.
|
|
97
101
|
*/
|
|
98
|
-
preProcessWrite(tenant: string, message: RecordsWriteMessage,
|
|
102
|
+
preProcessWrite(tenant: string, message: RecordsWriteMessage, validationStateReader: ValidationStateReader): Promise<void>;
|
|
99
103
|
/**
|
|
100
104
|
* Post-processing hook for permission revocation records.
|
|
101
105
|
* When a grant is revoked, all messages authorized by that grant and created
|
|
@@ -103,8 +107,7 @@ export declare class PermissionsProtocol implements CoreProtocol {
|
|
|
103
107
|
*
|
|
104
108
|
* Deletion order is deliberate to avoid orphaned data in case of crash:
|
|
105
109
|
* 1. data store (large blobs first)
|
|
106
|
-
* 2.
|
|
107
|
-
* 3. message store
|
|
110
|
+
* 2. message store
|
|
108
111
|
*/
|
|
109
112
|
postProcessWrite(tenant: string, recordsWrite: RecordsWrite, stores: CoreProtocolStores): Promise<void>;
|
|
110
113
|
/** @inheritdoc */
|
|
@@ -147,19 +150,13 @@ export declare class PermissionsProtocol implements CoreProtocol {
|
|
|
147
150
|
* Validates the given Permissions protocol RecordsWrite. It can be a request, grant, or revocation.
|
|
148
151
|
*/
|
|
149
152
|
static validateSchema(recordsWriteMessage: RecordsWriteMessage, dataBytes: Uint8Array): void;
|
|
150
|
-
/**
|
|
151
|
-
* Fetches PermissionGrant with the specified `recordID`.
|
|
152
|
-
* @returns the PermissionGrant matching the `recordId` specified.
|
|
153
|
-
* @throws {Error} if PermissionGrant does not exist
|
|
154
|
-
*/
|
|
155
|
-
static fetchGrant(tenant: string, messageStore: MessageStore, permissionGrantId: string): Promise<PermissionGrant>;
|
|
156
153
|
/**
|
|
157
154
|
* Gets the scope from the given permission record.
|
|
158
155
|
* If the record is a revocation, the scope is fetched from the grant that is being revoked.
|
|
159
156
|
*
|
|
160
|
-
* @param
|
|
157
|
+
* @param validationStateReader Used to fetch the grant for a revocation.
|
|
161
158
|
*/
|
|
162
|
-
static getScopeFromPermissionRecord(tenant: string,
|
|
159
|
+
static getScopeFromPermissionRecord(tenant: string, validationStateReader: ValidationStateReader, incomingMessage: DataEncodedRecordsWriteMessage): Promise<PermissionScope>;
|
|
163
160
|
/**
|
|
164
161
|
* Normalizes the given permission scope if needed.
|
|
165
162
|
* @returns The normalized permission scope.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../src/protocols/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../src/protocols/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Filter, KeyValues, PaginationCursor, QueryOptions } from '../types/query-types.js';
|
|
2
|
+
import type { LevelWrapperBatchOperation } from './level-wrapper.js';
|
|
2
3
|
import { createLevelDatabase, LevelWrapper } from './level-wrapper.js';
|
|
3
4
|
export type IndexLevelConfig = {
|
|
4
5
|
location: string;
|
|
@@ -36,7 +37,7 @@ export declare class IndexLevel {
|
|
|
36
37
|
db: LevelWrapper<string>;
|
|
37
38
|
config: IndexLevelConfig;
|
|
38
39
|
private readonly _compoundIndexes;
|
|
39
|
-
constructor(config: IndexLevelConfig);
|
|
40
|
+
constructor(config: IndexLevelConfig, db?: LevelWrapper<string>);
|
|
40
41
|
open(): Promise<void>;
|
|
41
42
|
close(): Promise<void>;
|
|
42
43
|
/**
|
|
@@ -52,10 +53,18 @@ export declare class IndexLevel {
|
|
|
52
53
|
* @param options IndexLevelOptions that include an AbortSignal.
|
|
53
54
|
*/
|
|
54
55
|
put(tenant: string, messageCid: string, indexes: KeyValues, options?: IndexLevelOptions): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Creates the batch operations for indexing an item without executing them.
|
|
58
|
+
*/
|
|
59
|
+
createPutOperations(tenant: string, messageCid: string, indexes: KeyValues): Promise<LevelWrapperBatchOperation<string>[]>;
|
|
55
60
|
/**
|
|
56
61
|
* Deletes all of the index data associated with the item.
|
|
57
62
|
*/
|
|
58
63
|
delete(tenant: string, messageCid: string, options?: IndexLevelOptions): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Creates the batch operations for removing an item's index data without executing them.
|
|
66
|
+
*/
|
|
67
|
+
createDeleteOperations(tenant: string, messageCid: string): Promise<LevelWrapperBatchOperation<string>[]>;
|
|
59
68
|
/**
|
|
60
69
|
* Creates an IndexLevel `put` operation for indexing an item, creating a partition by `tenant` and by `indexName`
|
|
61
70
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-level.d.ts","sourceRoot":"","sources":["../../../../src/store/index-level.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAe,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index-level.d.ts","sourceRoot":"","sources":["../../../../src/store/index-level.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,11 @@ export declare class LevelWrapper<V> {
|
|
|
33
33
|
* Wraps the given LevelWrapperBatchOperation as an operation for the specified partition.
|
|
34
34
|
*/
|
|
35
35
|
createPartitionOperation(partitionName: string, operation: LevelWrapperBatchOperation<V>): LevelWrapperBatchOperation<V>;
|
|
36
|
+
/**
|
|
37
|
+
* Wraps the given operation as targeting this wrapper's own partition, so it
|
|
38
|
+
* can be executed in a batch on an ancestor database.
|
|
39
|
+
*/
|
|
40
|
+
createOperation(operation: LevelWrapperBatchOperation<V>): LevelWrapperBatchOperation<V>;
|
|
36
41
|
private compactUnderlyingStorage;
|
|
37
42
|
/**
|
|
38
43
|
* Gets the min and max key value of this partition.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"level-wrapper.d.ts","sourceRoot":"","sources":["../../../../src/store/level-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG/G,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhD,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAIjI;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhG,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAKhF,qBAAa,YAAY,CAAC,CAAC;IACzB,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAE9B,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAErB;;;;OAIG;gBACS,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAS1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCtB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IASjD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAAC,GAAC,SAAS,CAAC;IAmBrE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D,IAAI,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC;IAY3D,QAAQ,CAAC,eAAe,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAYxH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjE,OAAO,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAOxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3G;;OAEG;IACH,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"level-wrapper.d.ts","sourceRoot":"","sources":["../../../../src/store/level-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,56 @@
|
|
|
1
1
|
import type { CompoundIndexDefinition } from './index-level.js';
|
|
2
|
+
import type { EventLogReadOptions, EventLogReadResult, ProgressToken, ReplicationFeedReader, WakePublisher } from '../types/subscriptions.js';
|
|
2
3
|
import type { Filter, KeyValues, PaginationCursor, QueryOptions } from '../types/query-types.js';
|
|
3
4
|
import type { GenericMessage, MessageSort, Pagination } from '../types/message-types.js';
|
|
4
|
-
import type { MessageStore, MessageStoreOptions } from '../types/message-store.js';
|
|
5
|
-
import { BlockstoreLevel } from './blockstore-level.js';
|
|
5
|
+
import type { MessageStore, MessageStoreOptions, MessageStorePutResult } from '../types/message-store.js';
|
|
6
6
|
import { createLevelDatabase } from './level-wrapper.js';
|
|
7
|
-
import { IndexLevel } from './index-level.js';
|
|
8
7
|
/**
|
|
9
|
-
* A
|
|
10
|
-
*
|
|
8
|
+
* A {@link MessageStore} and {@link ReplicationFeedReader} implementation that works in both the
|
|
9
|
+
* browser and server-side, backed by a SINGLE LevelDB root: message blocks, query indexes, the
|
|
10
|
+
* per-tenant replication log, the cid→seq index, fingerprint domains, the tenant counters, and
|
|
11
|
+
* the store epoch are all sublevels of one Level instance, so every mutation commits as one fully
|
|
12
|
+
* atomic batch.
|
|
13
|
+
*
|
|
14
|
+
* A per-tenant async write mutex spans seq assignment through batch write, so commit order equals
|
|
15
|
+
* seq order by construction. Seq assignment is gap-free (a failed batch never persists the head),
|
|
16
|
+
* while the readable log stays sparse after compaction and under filters — readers never assume
|
|
17
|
+
* contiguity.
|
|
11
18
|
*/
|
|
12
|
-
export declare class MessageStoreLevel implements MessageStore {
|
|
19
|
+
export declare class MessageStoreLevel implements MessageStore, ReplicationFeedReader {
|
|
13
20
|
config: MessageStoreLevelConfig;
|
|
14
|
-
|
|
15
|
-
|
|
21
|
+
private readonly wakePublisher?;
|
|
22
|
+
private partitionsPromise?;
|
|
23
|
+
private epochPromise?;
|
|
24
|
+
private readonly writeLocks;
|
|
16
25
|
/**
|
|
17
26
|
* @param {MessageStoreLevelConfig} config
|
|
18
|
-
* @param {string} config.
|
|
27
|
+
* @param {string} config.location - must be a directory path (relative or absolute) where
|
|
19
28
|
* LevelDB will store its files, or in browsers, the name of the
|
|
20
29
|
* {@link https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase IDBDatabase} to be opened.
|
|
21
|
-
* @param {string} config.indexLocation - same as config.blockstoreLocation
|
|
22
30
|
* @param {CompoundIndexDefinition[]} config.compoundIndexes - compound indexes to register.
|
|
23
31
|
* Defaults to DEFAULT_COMPOUND_INDEXES which cover the most common DWN query patterns.
|
|
32
|
+
* @param {WakePublisher} config.wakePublisher - optional bus for store-owned wake publication.
|
|
24
33
|
*/
|
|
25
34
|
constructor(config?: MessageStoreLevelConfig);
|
|
26
35
|
open(): Promise<void>;
|
|
27
36
|
close(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Lazily creates the single Level root and its partition handles.
|
|
39
|
+
*/
|
|
40
|
+
private partitions;
|
|
41
|
+
private createPartitions;
|
|
42
|
+
/**
|
|
43
|
+
* The query index over the shared root. Constructed lazily alongside the partitions.
|
|
44
|
+
*/
|
|
45
|
+
private indexPromise?;
|
|
46
|
+
private index;
|
|
47
|
+
/**
|
|
48
|
+
* Returns the persisted store epoch, generating and persisting a fresh `crypto.randomUUID()`
|
|
49
|
+
* at first open. Replaced only by `clear()` — a full local reset with no surviving cursors.
|
|
50
|
+
*/
|
|
51
|
+
epoch(): Promise<string>;
|
|
52
|
+
private getEpoch;
|
|
53
|
+
private initializeEpoch;
|
|
28
54
|
get(tenant: string, cidString: string, options?: MessageStoreOptions): Promise<GenericMessage | undefined>;
|
|
29
55
|
query(tenant: string, filters: Filter[], messageSort?: MessageSort, pagination?: Pagination, options?: MessageStoreOptions): Promise<{
|
|
30
56
|
messages: GenericMessage[];
|
|
@@ -35,17 +61,71 @@ export declare class MessageStoreLevel implements MessageStore {
|
|
|
35
61
|
* Builds the IndexLevel QueryOptions object given MessageStore sort and pagination parameters.
|
|
36
62
|
*/
|
|
37
63
|
static buildQueryOptions(messageSort?: MessageSort, pagination?: Pagination): QueryOptions;
|
|
64
|
+
put(tenant: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<MessageStorePutResult>;
|
|
65
|
+
updateIndexes(tenant: string, messageCid: string, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
|
|
66
|
+
updateMessageAndIndexes(tenant: string, messageCid: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
|
|
38
67
|
delete(tenant: string, cidString: string, options?: MessageStoreOptions): Promise<void>;
|
|
39
|
-
put(tenant: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
|
|
40
68
|
/**
|
|
41
|
-
* deletes everything in the underlying
|
|
69
|
+
* deletes everything in the underlying store, then persists a fresh epoch — a full local
|
|
70
|
+
* reset after which no previously issued cursor is valid.
|
|
42
71
|
*/
|
|
43
72
|
clear(): Promise<void>;
|
|
73
|
+
logRead(tenant: string, options?: EventLogReadOptions): Promise<EventLogReadResult>;
|
|
74
|
+
private readEventFromLogEntry;
|
|
75
|
+
logBounds(tenant: string): Promise<{
|
|
76
|
+
oldest: ProgressToken;
|
|
77
|
+
latest: ProgressToken;
|
|
78
|
+
} | undefined>;
|
|
79
|
+
fingerprint(tenant: string, scopes: string[]): Promise<string>;
|
|
80
|
+
/**
|
|
81
|
+
* Serializes all log-mutating operations for a tenant: the lock spans seq assignment through
|
|
82
|
+
* batch write, so commit order equals seq order (synchronous assignment alone is insufficient —
|
|
83
|
+
* a later batch could land first).
|
|
84
|
+
*/
|
|
85
|
+
private withTenantWriteLock;
|
|
86
|
+
/**
|
|
87
|
+
* Reads the tenant's counter high-water (the highest position ever issued), `0n` when unused.
|
|
88
|
+
*/
|
|
89
|
+
private getHead;
|
|
90
|
+
private assertNoPreSubstrateLayout;
|
|
91
|
+
private static parseSublevelPartition;
|
|
92
|
+
private readStoredMessage;
|
|
93
|
+
/**
|
|
94
|
+
* Validates a replication cursor against the tenant stream and persisted store epoch.
|
|
95
|
+
* Throws `EventLogProgressGap` with bounds metadata when the cursor cannot be replayed.
|
|
96
|
+
*/
|
|
97
|
+
private validateCursor;
|
|
98
|
+
private validateCursorPosition;
|
|
99
|
+
private getMessageCidAtPosition;
|
|
100
|
+
/**
|
|
101
|
+
* Resolves the log row for a same-CID mutation, throwing the given code when no row exists.
|
|
102
|
+
*/
|
|
103
|
+
private getLogEntryForMutation;
|
|
104
|
+
/**
|
|
105
|
+
* Creates the batch operations that fold a message CID's contribution into the given
|
|
106
|
+
* fingerprint domains. XOR is self-inverse, so the same operations serve insert and delete.
|
|
107
|
+
*/
|
|
108
|
+
private createFingerprintFoldOperations;
|
|
109
|
+
/**
|
|
110
|
+
* Encodes a fingerprint domain name as a Level key. The uniform prefix keeps the global
|
|
111
|
+
* domain (the empty string) a valid key.
|
|
112
|
+
*/
|
|
113
|
+
private static fingerprintKey;
|
|
114
|
+
private buildToken;
|
|
115
|
+
/**
|
|
116
|
+
* Publishes a wake post-commit. Best-effort by contract — never throws into the write path.
|
|
117
|
+
*/
|
|
118
|
+
private publishWake;
|
|
44
119
|
}
|
|
45
120
|
export type MessageStoreLevelConfig = {
|
|
46
|
-
|
|
47
|
-
|
|
121
|
+
/**
|
|
122
|
+
* The single directory path (or IndexedDB database name in browsers) backing the whole store —
|
|
123
|
+
* message blocks, query indexes, the replication log, fingerprints, counters, and epoch are all
|
|
124
|
+
* sublevels of one Level instance.
|
|
125
|
+
*/
|
|
126
|
+
location?: string;
|
|
48
127
|
createLevelDatabase?: typeof createLevelDatabase;
|
|
49
128
|
compoundIndexes?: CompoundIndexDefinition[];
|
|
129
|
+
wakePublisher?: WakePublisher;
|
|
50
130
|
};
|
|
51
131
|
//# sourceMappingURL=message-store-level.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-store-level.d.ts","sourceRoot":"","sources":["../../../../src/store/message-store-level.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"message-store-level.d.ts","sourceRoot":"","sources":["../../../../src/store/message-store-level.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { DataStore } from '../types/data-store.js';
|
|
2
|
-
import type { EventLog } from '../types/subscriptions.js';
|
|
3
2
|
import type { GenericMessage } from '../types/message-types.js';
|
|
4
3
|
import type { MessageStore } from '../types/message-store.js';
|
|
5
|
-
import type {
|
|
4
|
+
import type { ProgressToken } from '../types/subscriptions.js';
|
|
6
5
|
import type { RecordsDeleteMessage, RecordsWriteMessage } from '../types/records-types.js';
|
|
7
6
|
export type ResumableRecordsDeleteData = {
|
|
8
7
|
tenant: string;
|
|
@@ -12,21 +11,20 @@ export type ResumableRecordsSquashData = {
|
|
|
12
11
|
tenant: string;
|
|
13
12
|
message: RecordsWriteMessage;
|
|
14
13
|
};
|
|
14
|
+
export type RecordsDeleteTaskResult = {
|
|
15
|
+
position?: ProgressToken;
|
|
16
|
+
};
|
|
15
17
|
/**
|
|
16
|
-
* A class that provides an abstraction for
|
|
18
|
+
* A class that provides an abstraction for coordinated MessageStore and DataStore mutations.
|
|
17
19
|
*/
|
|
18
20
|
export declare class StorageController {
|
|
19
21
|
private readonly messageStore;
|
|
20
22
|
private readonly dataStore;
|
|
21
|
-
|
|
22
|
-
private readonly eventLog?;
|
|
23
|
-
constructor({ messageStore, dataStore, stateIndex, eventLog }: {
|
|
23
|
+
constructor({ messageStore, dataStore }: {
|
|
24
24
|
messageStore: MessageStore;
|
|
25
25
|
dataStore: DataStore;
|
|
26
|
-
stateIndex: StateIndex;
|
|
27
|
-
eventLog?: EventLog;
|
|
28
26
|
});
|
|
29
|
-
performRecordsDelete({ tenant, message }: ResumableRecordsDeleteData): Promise<
|
|
27
|
+
performRecordsDelete({ tenant, message }: ResumableRecordsDeleteData): Promise<RecordsDeleteTaskResult>;
|
|
30
28
|
/**
|
|
31
29
|
* Performs the squash processing for a `RecordsWrite` with `squash: true`.
|
|
32
30
|
* Deletes all sibling records at the same protocol path and parent context whose
|
|
@@ -59,16 +57,21 @@ export declare class StorageController {
|
|
|
59
57
|
* - Same-protocol cascade is already protocol-agnostic at every hop via `parentId`,
|
|
60
58
|
* so treating cross-protocol boundaries differently was inconsistent.
|
|
61
59
|
*/
|
|
62
|
-
static purgeRecordDescendants(tenant: string, recordId: string, messageStore: MessageStore, dataStore: DataStore
|
|
60
|
+
static purgeRecordDescendants(tenant: string, recordId: string, messageStore: MessageStore, dataStore: DataStore): Promise<void>;
|
|
63
61
|
/**
|
|
64
62
|
* Purges (permanent hard-delete) all messages of the SAME `recordId` given and their associated data and events.
|
|
65
63
|
* Assumes that the given `recordMessages` are all of the same `recordId`.
|
|
66
64
|
*/
|
|
67
|
-
static purgeRecordMessages(tenant: string, recordMessages: GenericMessage[], messageStore: MessageStore, dataStore: DataStore
|
|
65
|
+
static purgeRecordMessages(tenant: string, recordMessages: GenericMessage[], messageStore: MessageStore, dataStore: DataStore): Promise<void>;
|
|
68
66
|
/**
|
|
69
|
-
* Deletes all messages in `existingMessages` that
|
|
70
|
-
*
|
|
67
|
+
* Deletes all messages in `existingMessages` that the `retainedMessage` displaces, while keeping
|
|
68
|
+
* the initial write and the caller-supplied writes as non-latest state for future replay and
|
|
69
|
+
* tombstone visibility reconstruction. Displacement is deliberately NOT a timestamp comparison:
|
|
70
|
+
* a RecordsDelete displaces even a newer RecordsWrite (delete-wins convergence), and on
|
|
71
|
+
* resumable-task replay the retained message itself is back in `existingMessages` and must
|
|
72
|
+
* survive — so membership is decided by CID.
|
|
71
73
|
*/
|
|
72
|
-
static
|
|
74
|
+
static deleteDisplacedMessagesAndRetainWrites(tenant: string, existingMessages: GenericMessage[], retainedMessage: GenericMessage, messageStore: MessageStore, dataStore: DataStore, additionalRetainedRecordsWrites: RecordsWriteMessage[]): Promise<void>;
|
|
75
|
+
private static stripInlineData;
|
|
73
76
|
}
|
|
74
77
|
//# sourceMappingURL=storage-controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-controller.d.ts","sourceRoot":"","sources":["../../../../src/store/storage-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"storage-controller.d.ts","sourceRoot":"","sources":["../../../../src/store/storage-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAW3F,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAEnB,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE;QAC9C,YAAY,EAAG,YAAY,CAAC;QAC5B,SAAS,EAAG,SAAS,CAAC;KACvB;IAMY,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,0BAA0B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAuDpH;;;;;;;;OAQG;IACU,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IA6DjG;;;OAGG;mBACkB,2BAA2B;IA2BhD;;;;;;;;;;;;;;;;OAgBG;WACiB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,IAAI,CAAC;IAkChB;;;OAGG;WACiB,mBAAmB,CACrC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAAE,EAChC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,IAAI,CAAC;IAkBhB;;;;;;;OAOG;WACiB,sCAAsC,CACxD,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,cAAc,EAAE,EAClC,eAAe,EAAE,cAAc,EAC/B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,+BAA+B,EAAE,mBAAmB,EAAE,GACrD,OAAO,CAAC,IAAI,CAAC;IAsChB,OAAO,CAAC,MAAM,CAAC,eAAe;CAK/B"}
|
|
@@ -1,8 +1,25 @@
|
|
|
1
|
+
import type { ProgressToken } from './subscriptions.js';
|
|
1
2
|
import type { Filter, KeyValues, PaginationCursor } from './query-types.js';
|
|
2
3
|
import type { GenericMessage, MessageSort, Pagination } from './message-types.js';
|
|
3
4
|
export interface MessageStoreOptions {
|
|
4
5
|
signal?: AbortSignal;
|
|
5
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Result of a {@link MessageStore.put} operation.
|
|
9
|
+
*/
|
|
10
|
+
export type MessageStorePutResult = {
|
|
11
|
+
/**
|
|
12
|
+
* `inserted` when a new row was created; `duplicate` when a row for the same
|
|
13
|
+
* `(tenant, messageCid)` already exists.
|
|
14
|
+
*/
|
|
15
|
+
status: 'inserted' | 'duplicate';
|
|
16
|
+
/**
|
|
17
|
+
* The inserted row's log position. Present for stores that maintain a
|
|
18
|
+
* replication log; omitted for duplicates and store implementations whose
|
|
19
|
+
* durable log support has not landed.
|
|
20
|
+
*/
|
|
21
|
+
position?: ProgressToken;
|
|
22
|
+
};
|
|
6
23
|
export interface MessageStore {
|
|
7
24
|
/**
|
|
8
25
|
* opens a connection to the underlying store
|
|
@@ -16,7 +33,7 @@ export interface MessageStore {
|
|
|
16
33
|
* adds a message to the underlying store. Uses the message's cid as the key
|
|
17
34
|
* @param indexes indexes (key-value pairs) to be included as part of this put operation
|
|
18
35
|
*/
|
|
19
|
-
put(tenant: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<
|
|
36
|
+
put(tenant: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<MessageStorePutResult>;
|
|
20
37
|
/**
|
|
21
38
|
* Fetches a single message by `cid` from the underlying store.
|
|
22
39
|
* Returns `undefined` no message was found.
|
|
@@ -35,6 +52,17 @@ export interface MessageStore {
|
|
|
35
52
|
* More efficient than query() when only the count is needed, especially when compound indexes are available.
|
|
36
53
|
*/
|
|
37
54
|
count(tenant: string, filters: Filter[], messageSort?: MessageSort, options?: MessageStoreOptions): Promise<number>;
|
|
55
|
+
/**
|
|
56
|
+
* Replaces the indexes of an existing message in place: same row and same log
|
|
57
|
+
* sequence.
|
|
58
|
+
*/
|
|
59
|
+
updateIndexes(tenant: string, messageCid: string, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Replaces the stored same-CID message payload and indexes in place: same
|
|
62
|
+
* row and same log sequence. The replacement message must resolve to
|
|
63
|
+
* `messageCid` under DWN CID rules.
|
|
64
|
+
*/
|
|
65
|
+
updateMessageAndIndexes(tenant: string, messageCid: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
|
|
38
66
|
/**
|
|
39
67
|
* Deletes the message associated with the id provided.
|
|
40
68
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-store.d.ts","sourceRoot":"","sources":["../../../../src/types/message-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,GAAG,CACD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"message-store.d.ts","sourceRoot":"","sources":["../../../../src/types/message-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;OAGG;IACH,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,GAAG,CACD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAElC;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAErG;;;OAGG;IACH,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;QAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAC,CAAC,CAAC;IAErE;;;OAGG;IACH,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;OAGG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;OAIG;IACH,uBAAuB,CACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElF;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GeneralJws } from './jws-types.js';
|
|
2
|
+
import type { ProgressToken } from './subscriptions.js';
|
|
2
3
|
import type { PublicKeyJwk } from './jose-types.js';
|
|
3
4
|
import type { DwnInterfaceName, DwnMethodName } from '../enums/dwn-interface-method.js';
|
|
4
5
|
import type { PaginationCursor, SortDirection } from './query-types.js';
|
|
@@ -127,6 +128,7 @@ export type Status = {
|
|
|
127
128
|
};
|
|
128
129
|
export type GenericMessageReply = {
|
|
129
130
|
status: Status;
|
|
131
|
+
position?: ProgressToken;
|
|
130
132
|
};
|
|
131
133
|
export type MessageSort = {
|
|
132
134
|
dateCreated?: SortDirection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-types.d.ts","sourceRoot":"","sources":["../../../../src/types/message-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"message-types.d.ts","sourceRoot":"","sources":["../../../../src/types/message-types.ts"],"names":[],"mappings":"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"}
|