@enbox/dwn-sdk-js 0.0.7 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.mjs +8 -8
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/generated/precompiled-validators.js +817 -911
- package/dist/esm/generated/precompiled-validators.js.map +1 -1
- package/dist/esm/src/core/constants.js +11 -0
- package/dist/esm/src/core/constants.js.map +1 -0
- package/dist/esm/src/core/core-protocol.js +44 -0
- package/dist/esm/src/core/core-protocol.js.map +1 -0
- package/dist/esm/src/core/dwn-error.js +12 -12
- package/dist/esm/src/core/dwn-error.js.map +1 -1
- package/dist/esm/src/core/grant-authorization.js +16 -3
- package/dist/esm/src/core/grant-authorization.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization-action.js +5 -0
- package/dist/esm/src/core/protocol-authorization-action.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization-validation.js +91 -0
- package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization.js +53 -30
- package/dist/esm/src/core/protocol-authorization.js.map +1 -1
- package/dist/esm/src/core/records-grant-authorization.js +6 -8
- package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
- package/dist/esm/src/core/resumable-task-manager.js +2 -0
- package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
- package/dist/esm/src/dwn.js +42 -18
- package/dist/esm/src/dwn.js.map +1 -1
- package/dist/esm/src/event-stream/event-emitter-event-log.js +204 -0
- package/dist/esm/src/event-stream/event-emitter-event-log.js.map +1 -0
- package/dist/esm/src/handlers/messages-read.js +7 -11
- package/dist/esm/src/handlers/messages-read.js.map +1 -1
- package/dist/esm/src/handlers/messages-subscribe.js +22 -24
- package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
- package/dist/esm/src/handlers/messages-sync.js +11 -15
- package/dist/esm/src/handlers/messages-sync.js.map +1 -1
- package/dist/esm/src/handlers/protocols-configure.js +37 -27
- package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
- package/dist/esm/src/handlers/protocols-query.js +7 -11
- package/dist/esm/src/handlers/protocols-query.js.map +1 -1
- package/dist/esm/src/handlers/records-count.js +10 -12
- package/dist/esm/src/handlers/records-count.js.map +1 -1
- package/dist/esm/src/handlers/records-delete.js +10 -18
- package/dist/esm/src/handlers/records-delete.js.map +1 -1
- package/dist/esm/src/handlers/records-query.js +11 -15
- package/dist/esm/src/handlers/records-query.js.map +1 -1
- package/dist/esm/src/handlers/records-read.js +31 -26
- package/dist/esm/src/handlers/records-read.js.map +1 -1
- package/dist/esm/src/handlers/records-subscribe.js +39 -26
- package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
- package/dist/esm/src/handlers/records-write.js +128 -105
- package/dist/esm/src/handlers/records-write.js.map +1 -1
- package/dist/esm/src/index.js +5 -2
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/interfaces/messages-subscribe.js +1 -0
- package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
- package/dist/esm/src/interfaces/protocols-configure.js +33 -3
- package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
- package/dist/esm/src/interfaces/records-count.js +1 -1
- package/dist/esm/src/interfaces/records-count.js.map +1 -1
- package/dist/esm/src/interfaces/records-delete.js +1 -1
- package/dist/esm/src/interfaces/records-delete.js.map +1 -1
- package/dist/esm/src/interfaces/records-query.js +1 -1
- package/dist/esm/src/interfaces/records-query.js.map +1 -1
- package/dist/esm/src/interfaces/records-read.js +1 -1
- package/dist/esm/src/interfaces/records-read.js.map +1 -1
- package/dist/esm/src/interfaces/records-subscribe.js +2 -1
- package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
- package/dist/esm/src/interfaces/records-write-signing.js +1 -12
- package/dist/esm/src/interfaces/records-write-signing.js.map +1 -1
- package/dist/esm/src/interfaces/records-write.js +25 -41
- package/dist/esm/src/interfaces/records-write.js.map +1 -1
- package/dist/esm/src/protocols/permission-grant.js +1 -1
- package/dist/esm/src/protocols/permission-grant.js.map +1 -1
- package/dist/esm/src/protocols/permission-request.js +1 -1
- package/dist/esm/src/protocols/permission-request.js.map +1 -1
- package/dist/esm/src/protocols/permissions.js +113 -5
- package/dist/esm/src/protocols/permissions.js.map +1 -1
- package/dist/esm/src/state-index/state-index-level.js +5 -7
- package/dist/esm/src/state-index/state-index-level.js.map +1 -1
- package/dist/esm/src/store/data-store-level.js +110 -33
- package/dist/esm/src/store/data-store-level.js.map +1 -1
- package/dist/esm/src/store/index-level.js +42 -32
- package/dist/esm/src/store/index-level.js.map +1 -1
- package/dist/esm/src/store/storage-controller.js +70 -6
- package/dist/esm/src/store/storage-controller.js.map +1 -1
- package/dist/esm/src/types/permission-types.js.map +1 -1
- package/dist/esm/src/types/protocols-types.js +11 -0
- package/dist/esm/src/types/protocols-types.js.map +1 -1
- package/dist/esm/src/types/records-types.js.map +1 -1
- package/dist/esm/src/utils/hd-key.js +0 -8
- package/dist/esm/src/utils/hd-key.js.map +1 -1
- package/dist/esm/src/utils/messages.js +16 -34
- package/dist/esm/src/utils/messages.js.map +1 -1
- package/dist/esm/src/utils/records.js +5 -43
- package/dist/esm/src/utils/records.js.map +1 -1
- package/dist/esm/tests/core/protocol-authorization.spec.js +2 -1
- package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
- package/dist/esm/tests/dwn.spec.js +32 -43
- package/dist/esm/tests/dwn.spec.js.map +1 -1
- package/dist/esm/tests/event-emitter-event-log.spec.js +305 -0
- package/dist/esm/tests/event-emitter-event-log.spec.js.map +1 -0
- package/dist/esm/tests/features/author-delegated-grant.spec.js +14 -7
- package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
- package/dist/esm/tests/features/owner-delegated-grant.spec.js +9 -5
- package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
- package/dist/esm/tests/features/owner-signature.spec.js +14 -7
- package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
- package/dist/esm/tests/features/permissions.spec.js +12 -12
- package/dist/esm/tests/features/permissions.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-composition.spec.js +636 -5
- package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-create-action.spec.js +4 -4
- package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-delete-action.spec.js +7 -7
- package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-update-action.spec.js +4 -4
- package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
- package/dist/esm/tests/features/records-delivery.spec.js +236 -0
- package/dist/esm/tests/features/records-delivery.spec.js.map +1 -0
- package/dist/esm/tests/features/records-immutable.spec.js +315 -0
- package/dist/esm/tests/features/records-immutable.spec.js.map +1 -0
- package/dist/esm/tests/features/records-prune.spec.js +4 -4
- package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
- package/dist/esm/tests/features/records-record-limit.spec.js +542 -0
- package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -0
- package/dist/esm/tests/features/records-squash.spec.js +1055 -0
- package/dist/esm/tests/features/records-squash.spec.js.map +1 -0
- package/dist/esm/tests/features/records-tags.spec.js +16 -4
- package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
- package/dist/esm/tests/features/resumable-tasks.spec.js +7 -8
- package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-read.spec.js +11 -5
- package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-subscribe.spec.js +169 -22
- package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-sync.spec.js +103 -21
- package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -1
- package/dist/esm/tests/handlers/protocols-configure.spec.js +5 -5
- package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
- package/dist/esm/tests/handlers/protocols-query.spec.js +5 -5
- package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-count.spec.js +9 -4
- package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-delete.spec.js +24 -25
- package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-query.spec.js +68 -9
- package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-read.spec.js +24 -138
- package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-subscribe.spec.js +175 -35
- package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-write.spec.js +176 -72
- package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/records-write.spec.js +52 -68
- package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
- package/dist/esm/tests/protocols/permission-grant.spec.js +6 -6
- package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -1
- package/dist/esm/tests/protocols/permission-request.spec.js +4 -4
- package/dist/esm/tests/protocols/permission-request.spec.js.map +1 -1
- package/dist/esm/tests/protocols/permissions.spec.js +4 -4
- package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/aggregator.spec.js +4 -4
- package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/deleted-record.spec.js +350 -5
- package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +4 -4
- package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/nested-roles.spec.js +4 -4
- package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/subscriptions.spec.js +93 -40
- package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
- package/dist/esm/tests/store/data-store-level.spec.js +102 -41
- package/dist/esm/tests/store/data-store-level.spec.js.map +1 -1
- package/dist/esm/tests/test-event-stream.js +12 -13
- package/dist/esm/tests/test-event-stream.js.map +1 -1
- package/dist/esm/tests/test-suite.js +10 -4
- package/dist/esm/tests/test-suite.js.map +1 -1
- package/dist/esm/tests/utils/messages.spec.js +12 -5
- package/dist/esm/tests/utils/messages.spec.js.map +1 -1
- package/dist/esm/tests/utils/records.spec.js +8 -12
- package/dist/esm/tests/utils/records.spec.js.map +1 -1
- package/dist/esm/tests/utils/test-data-generator.js +36 -2
- package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
- package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +37 -8
- package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
- package/dist/types/generated/precompiled-validators.d.ts +49 -40
- package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
- package/dist/types/src/core/constants.d.ts +11 -0
- package/dist/types/src/core/constants.d.ts.map +1 -0
- package/dist/types/src/core/core-protocol.d.ts +89 -0
- package/dist/types/src/core/core-protocol.d.ts.map +1 -0
- package/dist/types/src/core/dwn-error.d.ts +12 -12
- package/dist/types/src/core/dwn-error.d.ts.map +1 -1
- package/dist/types/src/core/grant-authorization.d.ts +6 -2
- package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
- package/dist/types/src/core/protocol-authorization-action.d.ts.map +1 -1
- package/dist/types/src/core/protocol-authorization-validation.d.ts +30 -0
- package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
- package/dist/types/src/core/protocol-authorization.d.ts +19 -11
- package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
- package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
- package/dist/types/src/core/resumable-task-manager.d.ts +2 -1
- package/dist/types/src/core/resumable-task-manager.d.ts.map +1 -1
- package/dist/types/src/dwn.d.ts +19 -7
- package/dist/types/src/dwn.d.ts.map +1 -1
- package/dist/types/src/event-stream/event-emitter-event-log.d.ts +50 -0
- package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +1 -0
- package/dist/types/src/handlers/messages-read.d.ts +3 -8
- package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
- package/dist/types/src/handlers/messages-subscribe.d.ts +6 -10
- package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
- package/dist/types/src/handlers/messages-sync.d.ts +3 -8
- package/dist/types/src/handlers/messages-sync.d.ts.map +1 -1
- package/dist/types/src/handlers/protocols-configure.d.ts +3 -10
- package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
- package/dist/types/src/handlers/protocols-query.d.ts +3 -8
- package/dist/types/src/handlers/protocols-query.d.ts.map +1 -1
- package/dist/types/src/handlers/records-count.d.ts +3 -6
- package/dist/types/src/handlers/records-count.d.ts.map +1 -1
- package/dist/types/src/handlers/records-delete.d.ts +3 -8
- package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
- package/dist/types/src/handlers/records-query.d.ts +3 -8
- package/dist/types/src/handlers/records-query.d.ts.map +1 -1
- package/dist/types/src/handlers/records-read.d.ts +3 -8
- package/dist/types/src/handlers/records-read.d.ts.map +1 -1
- package/dist/types/src/handlers/records-subscribe.d.ts +8 -10
- package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
- package/dist/types/src/handlers/records-write.d.ts +12 -25
- package/dist/types/src/handlers/records-write.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +8 -4
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/interfaces/messages-subscribe.d.ts +5 -0
- package/dist/types/src/interfaces/messages-subscribe.d.ts.map +1 -1
- package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-subscribe.d.ts +5 -0
- package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-write-signing.d.ts +3 -4
- package/dist/types/src/interfaces/records-write-signing.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-write.d.ts +11 -11
- package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
- package/dist/types/src/protocols/permission-grant.d.ts +1 -1
- package/dist/types/src/protocols/permission-grant.d.ts.map +1 -1
- package/dist/types/src/protocols/permission-request.d.ts +1 -1
- package/dist/types/src/protocols/permission-request.d.ts.map +1 -1
- package/dist/types/src/protocols/permissions.d.ts +40 -3
- package/dist/types/src/protocols/permissions.d.ts.map +1 -1
- package/dist/types/src/state-index/state-index-level.d.ts.map +1 -1
- package/dist/types/src/store/data-store-level.d.ts +20 -4
- package/dist/types/src/store/data-store-level.d.ts.map +1 -1
- package/dist/types/src/store/index-level.d.ts +4 -0
- package/dist/types/src/store/index-level.d.ts.map +1 -1
- package/dist/types/src/store/storage-controller.d.ts +20 -6
- package/dist/types/src/store/storage-controller.d.ts.map +1 -1
- package/dist/types/src/types/message-types.d.ts +3 -3
- package/dist/types/src/types/message-types.d.ts.map +1 -1
- package/dist/types/src/types/messages-types.d.ts +12 -3
- package/dist/types/src/types/messages-types.d.ts.map +1 -1
- package/dist/types/src/types/method-handler.d.ts +24 -3
- package/dist/types/src/types/method-handler.d.ts.map +1 -1
- package/dist/types/src/types/permission-types.d.ts +7 -0
- package/dist/types/src/types/permission-types.d.ts.map +1 -1
- package/dist/types/src/types/protocols-types.d.ts +69 -2
- package/dist/types/src/types/protocols-types.d.ts.map +1 -1
- package/dist/types/src/types/records-types.d.ts +23 -6
- package/dist/types/src/types/records-types.d.ts.map +1 -1
- package/dist/types/src/types/subscriptions.d.ts +151 -13
- package/dist/types/src/types/subscriptions.d.ts.map +1 -1
- package/dist/types/src/utils/hd-key.d.ts +1 -9
- package/dist/types/src/utils/hd-key.d.ts.map +1 -1
- package/dist/types/src/utils/messages.d.ts +7 -5
- package/dist/types/src/utils/messages.d.ts.map +1 -1
- package/dist/types/src/utils/records.d.ts +1 -11
- package/dist/types/src/utils/records.d.ts.map +1 -1
- package/dist/types/tests/dwn.spec.d.ts.map +1 -1
- package/dist/types/tests/event-emitter-event-log.spec.d.ts +2 -0
- package/dist/types/tests/event-emitter-event-log.spec.d.ts.map +1 -0
- 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/protocol-composition.spec.d.ts.map +1 -1
- package/dist/types/tests/features/records-delivery.spec.d.ts +2 -0
- package/dist/types/tests/features/records-delivery.spec.d.ts.map +1 -0
- package/dist/types/tests/features/records-immutable.spec.d.ts +2 -0
- package/dist/types/tests/features/records-immutable.spec.d.ts.map +1 -0
- package/dist/types/tests/features/records-record-limit.spec.d.ts +2 -0
- package/dist/types/tests/features/records-record-limit.spec.d.ts.map +1 -0
- package/dist/types/tests/features/records-squash.spec.d.ts +2 -0
- package/dist/types/tests/features/records-squash.spec.d.ts.map +1 -0
- 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-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/messages-sync.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/subscriptions.spec.d.ts.map +1 -1
- package/dist/types/tests/test-event-stream.d.ts +11 -12
- package/dist/types/tests/test-event-stream.d.ts.map +1 -1
- package/dist/types/tests/test-suite.d.ts +2 -2
- package/dist/types/tests/test-suite.d.ts.map +1 -1
- package/dist/types/tests/utils/test-data-generator.d.ts +19 -0
- package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/core/constants.ts +11 -0
- package/src/core/core-protocol.ts +129 -0
- package/src/core/dwn-error.ts +18 -12
- package/src/core/grant-authorization.ts +20 -3
- package/src/core/protocol-authorization-action.ts +5 -0
- package/src/core/protocol-authorization-validation.ts +133 -0
- package/src/core/protocol-authorization.ts +71 -23
- package/src/core/records-grant-authorization.ts +6 -8
- package/src/core/resumable-task-manager.ts +3 -1
- package/src/dwn.ts +58 -73
- package/src/event-stream/event-emitter-event-log.ts +283 -0
- package/src/handlers/messages-read.ts +8 -9
- package/src/handlers/messages-subscribe.ts +24 -28
- package/src/handlers/messages-sync.ts +10 -16
- package/src/handlers/protocols-configure.ts +47 -32
- package/src/handlers/protocols-query.ts +6 -9
- package/src/handlers/records-count.ts +11 -10
- package/src/handlers/records-delete.ts +12 -21
- package/src/handlers/records-query.ts +12 -12
- package/src/handlers/records-read.ts +34 -22
- package/src/handlers/records-subscribe.ts +47 -26
- package/src/handlers/records-write.ts +152 -119
- package/src/index.ts +9 -5
- package/src/interfaces/messages-subscribe.ts +7 -1
- package/src/interfaces/protocols-configure.ts +51 -3
- package/src/interfaces/records-count.ts +1 -1
- package/src/interfaces/records-delete.ts +1 -1
- package/src/interfaces/records-query.ts +1 -1
- package/src/interfaces/records-read.ts +1 -1
- package/src/interfaces/records-subscribe.ts +8 -1
- package/src/interfaces/records-write-signing.ts +2 -22
- package/src/interfaces/records-write.ts +35 -48
- package/src/protocols/permission-grant.ts +1 -1
- package/src/protocols/permission-request.ts +1 -1
- package/src/protocols/permissions.ts +148 -6
- package/src/state-index/state-index-level.ts +5 -7
- package/src/store/data-store-level.ts +124 -34
- package/src/store/index-level.ts +44 -35
- package/src/store/storage-controller.ts +89 -12
- package/src/types/message-types.ts +3 -3
- package/src/types/messages-types.ts +12 -3
- package/src/types/method-handler.ts +26 -4
- package/src/types/mitt.d.ts +28 -0
- package/src/types/permission-types.ts +7 -0
- package/src/types/protocols-types.ts +78 -1
- package/src/types/records-types.ts +24 -6
- package/src/types/subscriptions.ts +178 -14
- package/src/utils/hd-key.ts +0 -9
- package/src/utils/messages.ts +17 -37
- package/src/utils/records.ts +7 -58
- package/dist/esm/src/event-stream/event-emitter-stream.js +0 -46
- package/dist/esm/src/event-stream/event-emitter-stream.js.map +0 -1
- package/dist/esm/tests/event-stream/event-emitter-stream.spec.js +0 -68
- package/dist/esm/tests/event-stream/event-emitter-stream.spec.js.map +0 -1
- package/dist/esm/tests/event-stream/event-stream.spec.js +0 -114
- package/dist/esm/tests/event-stream/event-stream.spec.js.map +0 -1
- package/dist/types/src/event-stream/event-emitter-stream.d.ts +0 -23
- package/dist/types/src/event-stream/event-emitter-stream.d.ts.map +0 -1
- package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts +0 -2
- package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts.map +0 -1
- package/dist/types/tests/event-stream/event-stream.spec.d.ts +0 -2
- package/dist/types/tests/event-stream/event-stream.spec.d.ts.map +0 -1
- package/src/event-stream/event-emitter-stream.ts +0 -69
|
@@ -13,7 +13,7 @@ import { HdKey } from '../../src/utils/hd-key.js';
|
|
|
13
13
|
import { KeyDerivationScheme } from '../../src/utils/hd-key.js';
|
|
14
14
|
import { RecordsReadHandler } from '../../src/handlers/records-read.js';
|
|
15
15
|
import { TestDataGenerator } from '../utils/test-data-generator.js';
|
|
16
|
-
import {
|
|
16
|
+
import { TestEventLog } from '../test-event-stream.js';
|
|
17
17
|
import { TestStores } from '../test-stores.js';
|
|
18
18
|
import { TestStubGenerator } from '../utils/test-stub-generator.js';
|
|
19
19
|
import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'bun:test';
|
|
@@ -29,7 +29,7 @@ export function testRecordsReadHandler() {
|
|
|
29
29
|
let dataStore;
|
|
30
30
|
let resumableTaskStore;
|
|
31
31
|
let stateIndex;
|
|
32
|
-
let
|
|
32
|
+
let eventLog;
|
|
33
33
|
let dwn;
|
|
34
34
|
beforeEach(() => {
|
|
35
35
|
sinon.restore(); // wipe all previous stubs/spies/mocks/fakes
|
|
@@ -44,8 +44,8 @@ export function testRecordsReadHandler() {
|
|
|
44
44
|
dataStore = stores.dataStore;
|
|
45
45
|
resumableTaskStore = stores.resumableTaskStore;
|
|
46
46
|
stateIndex = stores.stateIndex;
|
|
47
|
-
|
|
48
|
-
dwn = await Dwn.create({ didResolver, messageStore, dataStore, stateIndex,
|
|
47
|
+
eventLog = TestEventLog.get();
|
|
48
|
+
dwn = await Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventLog, resumableTaskStore });
|
|
49
49
|
});
|
|
50
50
|
beforeEach(async () => {
|
|
51
51
|
// clean up before each test rather than after so that a test does not depend on other tests to do the clean up
|
|
@@ -59,6 +59,7 @@ export function testRecordsReadHandler() {
|
|
|
59
59
|
});
|
|
60
60
|
it('should allow tenant to RecordsRead their own record', async () => {
|
|
61
61
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
62
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
62
63
|
// insert data
|
|
63
64
|
const { message, dataStream, dataBytes } = await TestDataGenerator.generateRecordsWrite({ author: alice });
|
|
64
65
|
const writeReply = await dwn.processMessage(alice.did, message, { dataStream });
|
|
@@ -80,6 +81,7 @@ export function testRecordsReadHandler() {
|
|
|
80
81
|
});
|
|
81
82
|
it('should not allow non-tenant to RecordsRead a record', async () => {
|
|
82
83
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
84
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
83
85
|
// insert data
|
|
84
86
|
const { message, dataStream } = await TestDataGenerator.generateRecordsWrite({ author: alice });
|
|
85
87
|
const writeReply = await dwn.processMessage(alice.did, message, { dataStream });
|
|
@@ -97,6 +99,7 @@ export function testRecordsReadHandler() {
|
|
|
97
99
|
});
|
|
98
100
|
it('should allow reading of data that is published without `authorization`', async () => {
|
|
99
101
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
102
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
100
103
|
// insert public data
|
|
101
104
|
const { message, dataStream, dataBytes } = await TestDataGenerator.generateRecordsWrite({ author: alice, published: true });
|
|
102
105
|
const writeReply = await dwn.processMessage(alice.did, message, { dataStream });
|
|
@@ -115,6 +118,7 @@ export function testRecordsReadHandler() {
|
|
|
115
118
|
});
|
|
116
119
|
it('should allow an authenticated user to RecordRead data that is published', async () => {
|
|
117
120
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
121
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
118
122
|
// insert public data
|
|
119
123
|
const { message, dataStream, dataBytes } = await TestDataGenerator.generateRecordsWrite({ author: alice, published: true });
|
|
120
124
|
const writeReply = await dwn.processMessage(alice.did, message, { dataStream });
|
|
@@ -135,6 +139,7 @@ export function testRecordsReadHandler() {
|
|
|
135
139
|
it('should allow a non-tenant to read RecordsRead data they have received', async () => {
|
|
136
140
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
137
141
|
const bob = await TestDataGenerator.generateDidKeyPersona();
|
|
142
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
138
143
|
// Alice inserts data with Bob as recipient
|
|
139
144
|
const { message, dataStream, dataBytes } = await TestDataGenerator.generateRecordsWrite({
|
|
140
145
|
author: alice,
|
|
@@ -158,6 +163,7 @@ export function testRecordsReadHandler() {
|
|
|
158
163
|
});
|
|
159
164
|
it('should return 400 when fetching initial write for a deleted record fails', async () => {
|
|
160
165
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
166
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
161
167
|
// Write a record
|
|
162
168
|
const { message: writeMessage, dataStream } = await TestDataGenerator.generateRecordsWrite({ author: alice });
|
|
163
169
|
const writeReply = await dwn.processMessage(alice.did, writeMessage, { dataStream });
|
|
@@ -295,6 +301,7 @@ export function testRecordsReadHandler() {
|
|
|
295
301
|
});
|
|
296
302
|
it('should include `initialWrite` property if RecordsWrite is not initial write', async () => {
|
|
297
303
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
304
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
298
305
|
const write = await TestDataGenerator.generateRecordsWrite({ author: alice, published: false });
|
|
299
306
|
const writeReply = await dwn.processMessage(alice.did, write.message, { dataStream: write.dataStream });
|
|
300
307
|
expect(writeReply.status.code).toBe(202);
|
|
@@ -731,6 +738,7 @@ export function testRecordsReadHandler() {
|
|
|
731
738
|
});
|
|
732
739
|
it('should return the earliest published record when `dateSort` is `PublishedAscending`', async () => {
|
|
733
740
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
741
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
734
742
|
const schema = 'aSchema';
|
|
735
743
|
const write1 = await TestDataGenerator.generateRecordsWrite({
|
|
736
744
|
author: alice,
|
|
@@ -758,6 +766,7 @@ export function testRecordsReadHandler() {
|
|
|
758
766
|
});
|
|
759
767
|
it('should return the latest published record when `dateSort` is `PublishedDescending`', async () => {
|
|
760
768
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
769
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
761
770
|
const schema = 'aSchema';
|
|
762
771
|
const write1 = await TestDataGenerator.generateRecordsWrite({
|
|
763
772
|
author: alice,
|
|
@@ -1036,6 +1045,7 @@ export function testRecordsReadHandler() {
|
|
|
1036
1045
|
// scenario: Alice grants Bob access to RecordsWrite, then Bob tries to invoke the grant with RecordsRead
|
|
1037
1046
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
1038
1047
|
const bob = await TestDataGenerator.generateDidKeyPersona();
|
|
1048
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
1039
1049
|
// Alice writes a record which Bob will later try to read
|
|
1040
1050
|
const { recordsWrite, dataStream } = await TestDataGenerator.generateRecordsWrite({
|
|
1041
1051
|
author: alice,
|
|
@@ -1433,6 +1443,7 @@ export function testRecordsReadHandler() {
|
|
|
1433
1443
|
});
|
|
1434
1444
|
it('should return 404 RecordRead if data has been deleted', async () => {
|
|
1435
1445
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
1446
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
1436
1447
|
// insert public data
|
|
1437
1448
|
const { message, dataStream } = await TestDataGenerator.generateRecordsWrite({ author: alice, published: true });
|
|
1438
1449
|
const writeReply = await dwn.processMessage(alice.did, message, { dataStream });
|
|
@@ -1464,6 +1475,7 @@ export function testRecordsReadHandler() {
|
|
|
1464
1475
|
});
|
|
1465
1476
|
it('should return 404 underlying data store cannot locate the data when data is above threshold', async () => {
|
|
1466
1477
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
1478
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
1467
1479
|
sinon.stub(dataStore, 'get').resolves(undefined);
|
|
1468
1480
|
// insert data larger than the allowed amount in encodedData
|
|
1469
1481
|
const { message, dataStream } = await TestDataGenerator.generateRecordsWrite({
|
|
@@ -1485,6 +1497,7 @@ export function testRecordsReadHandler() {
|
|
|
1485
1497
|
describe('data from encodedData', () => {
|
|
1486
1498
|
it('should not get data from DataStore if encodedData exists', async () => {
|
|
1487
1499
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
1500
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
1488
1501
|
//since the data is at the threshold it will be returned from the messageStore in the `encodedData` field.
|
|
1489
1502
|
const { message, dataStream, dataBytes } = await TestDataGenerator.generateRecordsWrite({
|
|
1490
1503
|
author: alice,
|
|
@@ -1509,6 +1522,7 @@ export function testRecordsReadHandler() {
|
|
|
1509
1522
|
});
|
|
1510
1523
|
it('should get data from DataStore if encodedData does not exist', async () => {
|
|
1511
1524
|
const alice = await TestDataGenerator.generateDidKeyPersona();
|
|
1525
|
+
await TestDataGenerator.installDefaultTestProtocol(dwn, alice);
|
|
1512
1526
|
//since the data is over the threshold it will not be returned from the messageStore in the `encodedData` field.
|
|
1513
1527
|
const { message, dataStream, dataBytes } = await TestDataGenerator.generateRecordsWrite({
|
|
1514
1528
|
author: alice,
|
|
@@ -1533,138 +1547,6 @@ export function testRecordsReadHandler() {
|
|
|
1533
1547
|
});
|
|
1534
1548
|
});
|
|
1535
1549
|
describe('encryption scenarios', () => {
|
|
1536
|
-
it('should be able to decrypt flat-space schema-contained record with a correct derived key', async () => {
|
|
1537
|
-
// scenario: Alice writes into her own DWN an encrypted record and she is able to decrypt it
|
|
1538
|
-
const alice = await TestDataGenerator.generatePersona();
|
|
1539
|
-
TestStubGenerator.stubDidResolver(didResolver, [alice]);
|
|
1540
|
-
// encrypt Alice's record
|
|
1541
|
-
const originalData = TestDataGenerator.randomBytes(1000);
|
|
1542
|
-
const dataEncryptionInitializationVector = TestDataGenerator.randomBytes(12);
|
|
1543
|
-
const dataEncryptionKey = TestDataGenerator.randomBytes(32);
|
|
1544
|
-
const { ciphertext: encryptedDataBytes, tag: authenticationTag } = await Encryption.aeadEncrypt(ContentEncryptionAlgorithm.A256GCM, dataEncryptionKey, dataEncryptionInitializationVector, originalData);
|
|
1545
|
-
// TODO: #450 - Should not require a root key to specify the derivation scheme (https://github.com/enboxorg/enbox/issues/450)
|
|
1546
|
-
const rootPrivateKeyWithSchemasScheme = {
|
|
1547
|
-
rootKeyId: alice.keyId,
|
|
1548
|
-
derivationScheme: KeyDerivationScheme.Schemas,
|
|
1549
|
-
derivedPrivateKey: alice.encryptionKeyPair.privateJwk
|
|
1550
|
-
};
|
|
1551
|
-
const schema = 'https://some-schema.com';
|
|
1552
|
-
const schemaDerivationPath = Records.constructKeyDerivationPathUsingSchemasScheme(schema);
|
|
1553
|
-
const schemaDerivedPrivateKey = await HdKey.derivePrivateKey(rootPrivateKeyWithSchemasScheme, schemaDerivationPath);
|
|
1554
|
-
const schemaDerivedPublicKey = await HdKey.derivePublicKey(rootPrivateKeyWithSchemasScheme, schemaDerivationPath);
|
|
1555
|
-
const rootPrivateKeyWithDataFormatsScheme = {
|
|
1556
|
-
rootKeyId: alice.keyId,
|
|
1557
|
-
derivationScheme: KeyDerivationScheme.DataFormats,
|
|
1558
|
-
derivedPrivateKey: alice.encryptionKeyPair.privateJwk
|
|
1559
|
-
};
|
|
1560
|
-
const dataFormat = 'some/format';
|
|
1561
|
-
const dataFormatDerivationPath = Records.constructKeyDerivationPathUsingDataFormatsScheme(dataFormat);
|
|
1562
|
-
const dataFormatDerivedPublicKey = await HdKey.derivePublicKey(rootPrivateKeyWithDataFormatsScheme, dataFormatDerivationPath);
|
|
1563
|
-
const encryptionInput = {
|
|
1564
|
-
initializationVector: dataEncryptionInitializationVector,
|
|
1565
|
-
key: dataEncryptionKey,
|
|
1566
|
-
authenticationTag,
|
|
1567
|
-
keyEncryptionInputs: [{
|
|
1568
|
-
publicKeyId: alice.keyId, // reusing signing key for encryption purely as a convenience
|
|
1569
|
-
publicKey: schemaDerivedPublicKey,
|
|
1570
|
-
derivationScheme: KeyDerivationScheme.Schemas
|
|
1571
|
-
},
|
|
1572
|
-
{
|
|
1573
|
-
publicKeyId: alice.keyId, // reusing signing key for encryption purely as a convenience
|
|
1574
|
-
publicKey: dataFormatDerivedPublicKey,
|
|
1575
|
-
derivationScheme: KeyDerivationScheme.DataFormats
|
|
1576
|
-
}]
|
|
1577
|
-
};
|
|
1578
|
-
const { message, dataStream } = await TestDataGenerator.generateRecordsWrite({
|
|
1579
|
-
author: alice,
|
|
1580
|
-
schema,
|
|
1581
|
-
dataFormat,
|
|
1582
|
-
data: encryptedDataBytes,
|
|
1583
|
-
encryptionInput
|
|
1584
|
-
});
|
|
1585
|
-
const writeReply = await dwn.processMessage(alice.did, message, { dataStream });
|
|
1586
|
-
expect(writeReply.status.code).toBe(202);
|
|
1587
|
-
const recordsRead = await RecordsRead.create({
|
|
1588
|
-
filter: {
|
|
1589
|
-
recordId: message.recordId,
|
|
1590
|
-
},
|
|
1591
|
-
signer: Jws.createSigner(alice)
|
|
1592
|
-
});
|
|
1593
|
-
// test able to derive correct key using `schemas` scheme from root key to decrypt the message
|
|
1594
|
-
const readReply = await dwn.processMessage(alice.did, recordsRead.message);
|
|
1595
|
-
expect(readReply.status.code).toBe(200);
|
|
1596
|
-
const recordsWriteMessage = readReply.entry.recordsWrite;
|
|
1597
|
-
const cipherStream = readReply.entry.data;
|
|
1598
|
-
const plaintextDataStream = await Records.decrypt(recordsWriteMessage, schemaDerivedPrivateKey, cipherStream);
|
|
1599
|
-
const plaintextBytes = await DataStream.toBytes(plaintextDataStream);
|
|
1600
|
-
expect(ArrayUtility.byteArraysEqual(plaintextBytes, originalData)).toBe(true);
|
|
1601
|
-
// test able to derive correct key using `dataFormat` scheme from root key to decrypt the message
|
|
1602
|
-
const readReply2 = await dwn.processMessage(alice.did, recordsRead.message); // send the same read message to get a new cipher stream
|
|
1603
|
-
expect(readReply2.status.code).toBe(200);
|
|
1604
|
-
const cipherStream2 = readReply2.entry.data;
|
|
1605
|
-
const plaintextDataStream2 = await Records.decrypt(recordsWriteMessage, rootPrivateKeyWithDataFormatsScheme, cipherStream2);
|
|
1606
|
-
const plaintextBytes2 = await DataStream.toBytes(plaintextDataStream2);
|
|
1607
|
-
expect(ArrayUtility.byteArraysEqual(plaintextBytes2, originalData)).toBe(true);
|
|
1608
|
-
// test unable to decrypt the message if dataFormat-derived key uses an incorrect data format in derivation path
|
|
1609
|
-
const readReply3 = await dwn.processMessage(alice.did, recordsRead.message); // process the same read message to get a new cipher stream
|
|
1610
|
-
expect(readReply3.status.code).toBe(200);
|
|
1611
|
-
const cipherStream3 = readReply3.entry.data;
|
|
1612
|
-
const invalidDerivationPath = [KeyDerivationScheme.DataFormats, 'wrong/format'];
|
|
1613
|
-
const inValidDescendantPrivateKey = await HdKey.derivePrivateKey(rootPrivateKeyWithDataFormatsScheme, invalidDerivationPath);
|
|
1614
|
-
await expect(Records.decrypt(recordsWriteMessage, inValidDescendantPrivateKey, cipherStream3)).rejects.toThrow(DwnErrorCode.RecordsInvalidAncestorKeyDerivationSegment);
|
|
1615
|
-
});
|
|
1616
|
-
it('should be able to decrypt flat-space schema-less record with the correct derived key', async () => {
|
|
1617
|
-
// scenario: Alice writes into her own DWN an encrypted record and she is able to decrypt it
|
|
1618
|
-
const alice = await TestDataGenerator.generatePersona();
|
|
1619
|
-
TestStubGenerator.stubDidResolver(didResolver, [alice]);
|
|
1620
|
-
// encrypt Alice's record
|
|
1621
|
-
const originalData = TestDataGenerator.randomBytes(1000);
|
|
1622
|
-
const dataEncryptionInitializationVector = TestDataGenerator.randomBytes(12);
|
|
1623
|
-
const dataEncryptionKey = TestDataGenerator.randomBytes(32);
|
|
1624
|
-
const { ciphertext: encryptedDataBytes, tag: authenticationTag } = await Encryption.aeadEncrypt(ContentEncryptionAlgorithm.A256GCM, dataEncryptionKey, dataEncryptionInitializationVector, originalData);
|
|
1625
|
-
// TODO: #450 - Should not require a root key to specify the derivation scheme (https://github.com/enboxorg/enbox/issues/450)
|
|
1626
|
-
const rootPrivateKeyWithDataFormatsScheme = {
|
|
1627
|
-
rootKeyId: alice.keyId,
|
|
1628
|
-
derivationScheme: KeyDerivationScheme.DataFormats,
|
|
1629
|
-
derivedPrivateKey: alice.encryptionKeyPair.privateJwk
|
|
1630
|
-
};
|
|
1631
|
-
const dataFormat = `image/jpg`;
|
|
1632
|
-
const dataFormatDerivationPath = Records.constructKeyDerivationPathUsingDataFormatsScheme(dataFormat);
|
|
1633
|
-
const dataFormatDerivedPublicKey = await HdKey.derivePublicKey(rootPrivateKeyWithDataFormatsScheme, dataFormatDerivationPath);
|
|
1634
|
-
const encryptionInput = {
|
|
1635
|
-
initializationVector: dataEncryptionInitializationVector,
|
|
1636
|
-
key: dataEncryptionKey,
|
|
1637
|
-
authenticationTag,
|
|
1638
|
-
keyEncryptionInputs: [{
|
|
1639
|
-
publicKeyId: alice.keyId, // reusing signing key for encryption purely as a convenience
|
|
1640
|
-
publicKey: dataFormatDerivedPublicKey,
|
|
1641
|
-
derivationScheme: KeyDerivationScheme.DataFormats
|
|
1642
|
-
}]
|
|
1643
|
-
};
|
|
1644
|
-
const recordsWrite = await RecordsWrite.create({
|
|
1645
|
-
signer: Jws.createSigner(alice),
|
|
1646
|
-
dataFormat,
|
|
1647
|
-
data: encryptedDataBytes,
|
|
1648
|
-
encryptionInput
|
|
1649
|
-
});
|
|
1650
|
-
const dataStream = DataStream.fromBytes(encryptedDataBytes);
|
|
1651
|
-
const writeReply = await dwn.processMessage(alice.did, recordsWrite.message, { dataStream });
|
|
1652
|
-
expect(writeReply.status.code).toBe(202);
|
|
1653
|
-
const recordsRead = await RecordsRead.create({
|
|
1654
|
-
filter: {
|
|
1655
|
-
recordId: recordsWrite.message.recordId,
|
|
1656
|
-
},
|
|
1657
|
-
signer: Jws.createSigner(alice)
|
|
1658
|
-
});
|
|
1659
|
-
// test able to derive correct key using `dataFormat` scheme from root key to decrypt the message
|
|
1660
|
-
const readReply = await dwn.processMessage(alice.did, recordsRead.message); // send the same read message to get a new cipher stream
|
|
1661
|
-
expect(readReply.status.code).toBe(200);
|
|
1662
|
-
const cipherStream = readReply.entry.data;
|
|
1663
|
-
const recordsWriteMessage = readReply.entry.recordsWrite;
|
|
1664
|
-
const plaintextDataStream = await Records.decrypt(recordsWriteMessage, rootPrivateKeyWithDataFormatsScheme, cipherStream);
|
|
1665
|
-
const plaintextBytes = await DataStream.toBytes(plaintextDataStream);
|
|
1666
|
-
expect(ArrayUtility.byteArraysEqual(plaintextBytes, originalData)).toBe(true);
|
|
1667
|
-
});
|
|
1668
1550
|
it('should only be able to decrypt record with a correct derived private key - `protocol-context` derivation scheme', async () => {
|
|
1669
1551
|
// scenario: Bob initiated an encrypted chat thread with Alice,
|
|
1670
1552
|
// bob is able to decrypt subsequent messages from Alice using the `protocol-context` derived private key
|
|
@@ -1912,7 +1794,9 @@ export function testRecordsReadHandler() {
|
|
|
1912
1794
|
const didResolver = TestStubGenerator.createDidResolverStub(mismatchingPersona);
|
|
1913
1795
|
const messageStoreStub = sinon.createStubInstance(MessageStoreLevel);
|
|
1914
1796
|
const dataStoreStub = sinon.createStubInstance(DataStoreLevel);
|
|
1915
|
-
const recordsReadHandler = new RecordsReadHandler(
|
|
1797
|
+
const recordsReadHandler = new RecordsReadHandler({
|
|
1798
|
+
didResolver, messageStore: messageStoreStub, dataStore: dataStoreStub,
|
|
1799
|
+
});
|
|
1916
1800
|
const reply = await recordsReadHandler.handle({ tenant: alice.did, message: recordsRead.message });
|
|
1917
1801
|
expect(reply.status.code).toBe(401);
|
|
1918
1802
|
});
|
|
@@ -1927,7 +1811,9 @@ export function testRecordsReadHandler() {
|
|
|
1927
1811
|
// setting up a stub method resolver & message store
|
|
1928
1812
|
const messageStoreStub = sinon.createStubInstance(MessageStoreLevel);
|
|
1929
1813
|
const dataStoreStub = sinon.createStubInstance(DataStoreLevel);
|
|
1930
|
-
const recordsReadHandler = new RecordsReadHandler(
|
|
1814
|
+
const recordsReadHandler = new RecordsReadHandler({
|
|
1815
|
+
didResolver, messageStore: messageStoreStub, dataStore: dataStoreStub,
|
|
1816
|
+
});
|
|
1931
1817
|
// stub the `parse()` function to throw an error
|
|
1932
1818
|
sinon.stub(RecordsRead, 'parse').throws('anyError');
|
|
1933
1819
|
const reply = await recordsReadHandler.handle({ tenant: alice.did, message: recordsRead.message });
|