@enbox/dwn-sdk-js 0.0.1 → 0.0.3
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 +52 -301
- package/dist/bundles/dwn.js +19 -21
- package/dist/esm/generated/precompiled-validators.js +2764 -1773
- package/dist/esm/generated/precompiled-validators.js.map +1 -1
- package/dist/esm/src/core/dwn-error.js +27 -3
- package/dist/esm/src/core/dwn-error.js.map +1 -1
- package/dist/esm/src/core/message.js.map +1 -1
- package/dist/esm/src/core/messages-grant-authorization.js +17 -6
- package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization.js +245 -69
- package/dist/esm/src/core/protocol-authorization.js.map +1 -1
- package/dist/esm/src/core/resumable-task-manager.js +4 -4
- package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
- package/dist/esm/src/dwn.js +10 -8
- package/dist/esm/src/dwn.js.map +1 -1
- package/dist/esm/src/enums/dwn-interface-method.js +4 -2
- package/dist/esm/src/enums/dwn-interface-method.js.map +1 -1
- package/dist/esm/src/event-stream/event-emitter-stream.js.map +1 -0
- package/dist/esm/src/handlers/messages-subscribe.js +1 -1
- package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
- package/dist/esm/src/handlers/messages-sync.js +116 -0
- package/dist/esm/src/handlers/messages-sync.js.map +1 -0
- package/dist/esm/src/handlers/protocols-configure.js +149 -16
- package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
- package/dist/esm/src/handlers/protocols-query.js +2 -2
- package/dist/esm/src/handlers/protocols-query.js.map +1 -1
- package/dist/esm/src/handlers/records-count.js +143 -0
- package/dist/esm/src/handlers/records-count.js.map +1 -0
- package/dist/esm/src/handlers/records-query.js +4 -0
- package/dist/esm/src/handlers/records-query.js.map +1 -1
- package/dist/esm/src/handlers/records-read.js +4 -6
- package/dist/esm/src/handlers/records-read.js.map +1 -1
- package/dist/esm/src/handlers/records-write.js +17 -18
- package/dist/esm/src/handlers/records-write.js.map +1 -1
- package/dist/esm/src/index.js +9 -5
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/interfaces/messages-read.js +2 -7
- package/dist/esm/src/interfaces/messages-read.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/{messages-query.js → messages-sync.js} +11 -12
- package/dist/esm/src/interfaces/messages-sync.js.map +1 -0
- package/dist/esm/src/interfaces/protocols-configure.js +153 -30
- package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
- package/dist/esm/src/interfaces/protocols-query.js +1 -0
- package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
- package/dist/esm/src/interfaces/records-count.js +91 -0
- package/dist/esm/src/interfaces/records-count.js.map +1 -0
- package/dist/esm/src/interfaces/records-read.js +15 -1
- package/dist/esm/src/interfaces/records-read.js.map +1 -1
- package/dist/esm/src/interfaces/records-write.js +64 -15
- package/dist/esm/src/interfaces/records-write.js.map +1 -1
- package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -1
- package/dist/esm/src/jose/algorithms/signing/signature-algorithms.js.map +1 -1
- package/dist/esm/src/jose/jws/general/builder.js.map +1 -1
- package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
- package/dist/esm/src/protocols/permission-grant.js +30 -0
- package/dist/esm/src/protocols/permission-grant.js.map +1 -1
- package/dist/esm/src/protocols/permission-request.js +24 -0
- package/dist/esm/src/protocols/permission-request.js.map +1 -1
- package/dist/esm/src/protocols/permissions.js +1 -1
- package/dist/esm/src/protocols/permissions.js.map +1 -1
- package/dist/esm/src/schema-validator.js +0 -1
- package/dist/esm/src/schema-validator.js.map +1 -1
- package/dist/esm/src/smt/smt-store-level.js +125 -0
- package/dist/esm/src/smt/smt-store-level.js.map +1 -0
- package/dist/esm/src/smt/smt-store-memory.js +67 -0
- package/dist/esm/src/smt/smt-store-memory.js.map +1 -0
- package/dist/esm/src/smt/smt-utils.js +146 -0
- package/dist/esm/src/smt/smt-utils.js.map +1 -0
- package/dist/esm/src/smt/sparse-merkle-tree.js +622 -0
- package/dist/esm/src/smt/sparse-merkle-tree.js.map +1 -0
- package/dist/esm/src/state-index/state-index-level.js +228 -0
- package/dist/esm/src/state-index/state-index-level.js.map +1 -0
- package/dist/esm/src/store/data-store-level.js +6 -6
- package/dist/esm/src/store/data-store-level.js.map +1 -1
- package/dist/esm/src/store/index-level.js +375 -17
- package/dist/esm/src/store/index-level.js.map +1 -1
- package/dist/esm/src/store/message-store-level.js +56 -0
- package/dist/esm/src/store/message-store-level.js.map +1 -1
- package/dist/esm/src/store/storage-controller.js +19 -16
- package/dist/esm/src/store/storage-controller.js.map +1 -1
- package/dist/esm/src/types/encryption-types.js +2 -0
- package/dist/esm/src/types/encryption-types.js.map +1 -0
- package/dist/esm/src/types/message-types.js.map +1 -1
- package/dist/esm/src/types/protocols-types.js +0 -2
- package/dist/esm/src/types/protocols-types.js.map +1 -1
- package/dist/esm/src/types/records-types.js +2 -0
- package/dist/esm/src/types/records-types.js.map +1 -1
- package/dist/esm/src/types/smt-types.js +5 -0
- package/dist/esm/src/types/smt-types.js.map +1 -0
- package/dist/esm/src/types/state-index.js +2 -0
- package/dist/esm/src/types/state-index.js.map +1 -0
- package/dist/esm/src/utils/cid.js +2 -1
- package/dist/esm/src/utils/cid.js.map +1 -1
- package/dist/esm/src/utils/data-stream.js +84 -29
- package/dist/esm/src/utils/data-stream.js.map +1 -1
- package/dist/esm/src/utils/encryption.js +22 -31
- package/dist/esm/src/utils/encryption.js.map +1 -1
- package/dist/esm/src/utils/hd-key.js +3 -3
- package/dist/esm/src/utils/hd-key.js.map +1 -1
- package/dist/esm/src/utils/jws.js +4 -4
- package/dist/esm/src/utils/jws.js.map +1 -1
- package/dist/esm/src/utils/private-key-signer.js +4 -3
- package/dist/esm/src/utils/private-key-signer.js.map +1 -1
- package/dist/esm/src/utils/protocols.js +82 -9
- package/dist/esm/src/utils/protocols.js.map +1 -1
- package/dist/esm/src/utils/records.js +82 -26
- package/dist/esm/src/utils/records.js.map +1 -1
- package/dist/esm/src/utils/secp256k1.js +4 -3
- package/dist/esm/src/utils/secp256k1.js.map +1 -1
- package/dist/esm/src/utils/secp256r1.js +3 -2
- package/dist/esm/src/utils/secp256r1.js.map +1 -1
- package/dist/esm/src/utils/time.js +1 -1
- package/dist/esm/src/utils/url.js +1 -1
- package/dist/esm/src/utils/url.js.map +1 -1
- package/dist/esm/tests/core/auth.spec.js +2 -2
- package/dist/esm/tests/core/auth.spec.js.map +1 -1
- package/dist/esm/tests/core/message-reply.spec.js +3 -3
- package/dist/esm/tests/core/message-reply.spec.js.map +1 -1
- package/dist/esm/tests/core/message.spec.js +13 -13
- package/dist/esm/tests/core/message.spec.js.map +1 -1
- package/dist/esm/tests/core/protocol-authorization.spec.js +3 -3
- package/dist/esm/tests/core/protocol-authorization.spec.js.map +1 -1
- package/dist/esm/tests/dwn.spec.js +27 -37
- package/dist/esm/tests/dwn.spec.js.map +1 -1
- package/dist/esm/tests/{event-log → event-stream}/event-emitter-stream.spec.js +14 -15
- package/dist/esm/tests/event-stream/event-emitter-stream.spec.js.map +1 -0
- package/dist/esm/tests/{event-log → event-stream}/event-stream.spec.js +13 -15
- package/dist/esm/tests/event-stream/event-stream.spec.js.map +1 -0
- package/dist/esm/tests/features/author-delegated-grant.spec.js +281 -135
- package/dist/esm/tests/features/author-delegated-grant.spec.js.map +1 -1
- package/dist/esm/tests/features/owner-delegated-grant.spec.js +57 -59
- package/dist/esm/tests/features/owner-delegated-grant.spec.js.map +1 -1
- package/dist/esm/tests/features/owner-signature.spec.js +32 -34
- package/dist/esm/tests/features/owner-signature.spec.js.map +1 -1
- package/dist/esm/tests/features/permissions.spec.js +73 -95
- package/dist/esm/tests/features/permissions.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-composition.spec.js +1645 -0
- package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -0
- package/dist/esm/tests/features/protocol-create-action.spec.js +25 -27
- package/dist/esm/tests/features/protocol-create-action.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-delete-action.spec.js +42 -44
- package/dist/esm/tests/features/protocol-delete-action.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-update-action.spec.js +53 -55
- package/dist/esm/tests/features/protocol-update-action.spec.js.map +1 -1
- package/dist/esm/tests/features/records-prune.spec.js +126 -100
- package/dist/esm/tests/features/records-prune.spec.js.map +1 -1
- package/dist/esm/tests/features/records-tags.spec.js +272 -272
- package/dist/esm/tests/features/records-tags.spec.js.map +1 -1
- package/dist/esm/tests/features/resumable-tasks.spec.js +35 -37
- package/dist/esm/tests/features/resumable-tasks.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-read.spec.js +112 -112
- package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-subscribe.spec.js +78 -76
- package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-sync.spec.js +528 -0
- package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -0
- package/dist/esm/tests/handlers/protocols-configure.spec.js +545 -152
- package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -1
- package/dist/esm/tests/handlers/protocols-query.spec.js +70 -72
- package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-count.spec.js +313 -0
- package/dist/esm/tests/handlers/records-count.spec.js.map +1 -0
- package/dist/esm/tests/handlers/records-delete.spec.js +106 -109
- package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-query.spec.js +863 -463
- package/dist/esm/tests/handlers/records-query.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-read.spec.js +439 -209
- package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-subscribe.spec.js +292 -97
- package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-write.spec.js +481 -483
- package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/messages-get.spec.js +31 -11
- package/dist/esm/tests/interfaces/messages-get.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/messages-subscribe.spec.js +5 -5
- package/dist/esm/tests/interfaces/messages-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/protocols-configure.spec.js +64 -134
- package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/protocols-query.spec.js +4 -6
- package/dist/esm/tests/interfaces/protocols-query.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/records-delete.spec.js +3 -5
- package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/records-query.spec.js +9 -11
- package/dist/esm/tests/interfaces/records-query.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/records-read.spec.js +76 -7
- package/dist/esm/tests/interfaces/records-read.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/records-subscribe.spec.js +7 -9
- package/dist/esm/tests/interfaces/records-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/records-write.spec.js +244 -48
- package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
- package/dist/esm/tests/jose/jws/general.spec.js +15 -18
- package/dist/esm/tests/jose/jws/general.spec.js.map +1 -1
- package/dist/esm/tests/protocols/permission-grant.spec.js +114 -0
- package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -0
- package/dist/esm/tests/protocols/permission-request.spec.js +43 -7
- package/dist/esm/tests/protocols/permission-request.spec.js.map +1 -1
- package/dist/esm/tests/protocols/permissions.spec.js +9 -11
- package/dist/esm/tests/protocols/permissions.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/aggregator.spec.js +90 -92
- package/dist/esm/tests/scenarios/aggregator.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/deleted-record.spec.js +17 -19
- package/dist/esm/tests/scenarios/deleted-record.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +27 -29
- package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/nested-roles.spec.js +37 -39
- package/dist/esm/tests/scenarios/nested-roles.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/subscriptions.spec.js +163 -163
- package/dist/esm/tests/scenarios/subscriptions.spec.js.map +1 -1
- package/dist/esm/tests/smt/smt-store-level.spec.js +143 -0
- package/dist/esm/tests/smt/smt-store-level.spec.js.map +1 -0
- package/dist/esm/tests/smt/sparse-merkle-tree.spec.js +741 -0
- package/dist/esm/tests/smt/sparse-merkle-tree.spec.js.map +1 -0
- package/dist/esm/tests/state-index/state-index-level.spec.js +254 -0
- package/dist/esm/tests/state-index/state-index-level.spec.js.map +1 -0
- package/dist/esm/tests/store/blockstore-level.spec.js +136 -0
- package/dist/esm/tests/store/blockstore-level.spec.js.map +1 -0
- package/dist/esm/tests/store/blockstore-mock.spec.js +29 -28
- package/dist/esm/tests/store/blockstore-mock.spec.js.map +1 -1
- package/dist/esm/tests/store/data-store-level.spec.js +23 -25
- package/dist/esm/tests/store/data-store-level.spec.js.map +1 -1
- package/dist/esm/tests/store/index-level.spec.js +544 -194
- package/dist/esm/tests/store/index-level.spec.js.map +1 -1
- package/dist/esm/tests/store/message-store-level.spec.js +4 -4
- package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
- package/dist/esm/tests/store/message-store.spec.js +147 -73
- package/dist/esm/tests/store/message-store.spec.js.map +1 -1
- package/dist/esm/tests/store-dependent-tests.spec.js +1 -0
- package/dist/esm/tests/store-dependent-tests.spec.js.map +1 -1
- package/dist/esm/tests/test-stores.js +5 -5
- package/dist/esm/tests/test-stores.js.map +1 -1
- package/dist/esm/tests/test-suite.js +9 -8
- package/dist/esm/tests/test-suite.js.map +1 -1
- package/dist/esm/tests/utils/cid.spec.js +8 -11
- package/dist/esm/tests/utils/cid.spec.js.map +1 -1
- package/dist/esm/tests/utils/data-stream.spec.js +167 -13
- package/dist/esm/tests/utils/data-stream.spec.js.map +1 -1
- package/dist/esm/tests/utils/encryption-callbacks.spec.js +233 -0
- package/dist/esm/tests/utils/encryption-callbacks.spec.js.map +1 -0
- package/dist/esm/tests/utils/encryption.spec.js +34 -85
- package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
- package/dist/esm/tests/utils/filters.spec.js +67 -69
- package/dist/esm/tests/utils/filters.spec.js.map +1 -1
- package/dist/esm/tests/utils/hd-key.spec.js +3 -3
- package/dist/esm/tests/utils/hd-key.spec.js.map +1 -1
- package/dist/esm/tests/utils/jws.spec.js +54 -3
- package/dist/esm/tests/utils/jws.spec.js.map +1 -1
- package/dist/esm/tests/utils/memory-cache.spec.js +6 -9
- package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -1
- package/dist/esm/tests/utils/messages.spec.js +63 -29
- package/dist/esm/tests/utils/messages.spec.js.map +1 -1
- package/dist/esm/tests/utils/object.spec.js +3 -3
- package/dist/esm/tests/utils/object.spec.js.map +1 -1
- package/dist/esm/tests/utils/poller.js +1 -1
- package/dist/esm/tests/utils/poller.js.map +1 -1
- package/dist/esm/tests/utils/private-key-signer.spec.js +6 -6
- package/dist/esm/tests/utils/private-key-signer.spec.js.map +1 -1
- package/dist/esm/tests/utils/records.spec.js +37 -5
- package/dist/esm/tests/utils/records.spec.js.map +1 -1
- package/dist/esm/tests/utils/secp256k1.spec.js +7 -7
- package/dist/esm/tests/utils/secp256k1.spec.js.map +1 -1
- package/dist/esm/tests/utils/secp256r1.spec.js +7 -7
- package/dist/esm/tests/utils/secp256r1.spec.js.map +1 -1
- package/dist/esm/tests/utils/test-data-generator.js +47 -28
- package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
- package/dist/esm/tests/utils/time.spec.js +7 -7
- package/dist/esm/tests/utils/time.spec.js.map +1 -1
- package/dist/esm/tests/utils/url.spec.js +25 -27
- package/dist/esm/tests/utils/url.spec.js.map +1 -1
- package/dist/esm/tests/validation/json-schemas/definitions.spec.js +4 -4
- package/dist/esm/tests/validation/json-schemas/definitions.spec.js.map +1 -1
- package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js +15 -3
- package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js.map +1 -1
- package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js +8 -8
- package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js.map +1 -1
- package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js +8 -18
- package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js.map +1 -1
- package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +3 -3
- package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -1
- package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js +9 -9
- package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js.map +1 -1
- package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js +106 -0
- package/dist/esm/tests/validation/json-schemas/records/records-read.spec.js.map +1 -0
- package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +18 -18
- package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
- package/dist/esm/tests/vectors/protocol-definitions/email.json +1 -1
- package/dist/esm/tests/vectors/protocol-definitions/friend-role.json +2 -4
- package/dist/esm/tests/vectors/protocol-definitions/slack.json +2 -6
- package/dist/esm/tests/vectors/protocol-definitions/thread-role.json +2 -6
- package/dist/types/generated/precompiled-validators.d.ts +82 -64
- package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
- package/dist/types/src/core/dwn-error.d.ts +27 -3
- package/dist/types/src/core/dwn-error.d.ts.map +1 -1
- package/dist/types/src/core/message-reply.d.ts +1 -1
- package/dist/types/src/core/message.d.ts +3 -3
- package/dist/types/src/core/message.d.ts.map +1 -1
- package/dist/types/src/core/messages-grant-authorization.d.ts +4 -4
- package/dist/types/src/core/messages-grant-authorization.d.ts.map +1 -1
- package/dist/types/src/core/protocol-authorization.d.ts +43 -2
- package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
- package/dist/types/src/core/records-grant-authorization.d.ts +2 -2
- package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -1
- package/dist/types/src/core/resumable-task-manager.d.ts +1 -0
- package/dist/types/src/core/resumable-task-manager.d.ts.map +1 -1
- package/dist/types/src/dwn.d.ts +8 -8
- package/dist/types/src/dwn.d.ts.map +1 -1
- package/dist/types/src/enums/dwn-interface-method.d.ts +5 -3
- package/dist/types/src/enums/dwn-interface-method.d.ts.map +1 -1
- package/dist/types/src/event-stream/event-emitter-stream.d.ts.map +1 -0
- package/dist/types/src/handlers/messages-sync.d.ts +21 -0
- package/dist/types/src/handlers/messages-sync.d.ts.map +1 -0
- package/dist/types/src/handlers/protocols-configure.d.ts +24 -4
- package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
- package/dist/types/src/handlers/protocols-query.d.ts.map +1 -1
- package/dist/types/src/handlers/records-count.d.ts +43 -0
- package/dist/types/src/handlers/records-count.d.ts.map +1 -0
- package/dist/types/src/handlers/records-query.d.ts.map +1 -1
- package/dist/types/src/handlers/records-read.d.ts.map +1 -1
- package/dist/types/src/handlers/records-write.d.ts +5 -5
- package/dist/types/src/handlers/records-write.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +72 -37
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/interfaces/messages-read.d.ts +2 -2
- package/dist/types/src/interfaces/messages-read.d.ts.map +1 -1
- package/dist/types/src/interfaces/messages-subscribe.d.ts +2 -2
- package/dist/types/src/interfaces/messages-subscribe.d.ts.map +1 -1
- package/dist/types/src/interfaces/messages-sync.d.ts +16 -0
- package/dist/types/src/interfaces/messages-sync.d.ts.map +1 -0
- package/dist/types/src/interfaces/protocols-configure.d.ts +22 -2
- 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 +27 -0
- package/dist/types/src/interfaces/records-count.d.ts.map +1 -0
- package/dist/types/src/interfaces/records-delete.d.ts +2 -2
- package/dist/types/src/interfaces/records-delete.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-query.d.ts +2 -2
- package/dist/types/src/interfaces/records-query.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-read.d.ts +4 -2
- package/dist/types/src/interfaces/records-read.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-subscribe.d.ts +2 -2
- package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-write.d.ts +37 -15
- package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
- package/dist/types/src/jose/algorithms/signing/ed25519.d.ts.map +1 -1
- package/dist/types/src/jose/algorithms/signing/signature-algorithms.d.ts +5 -1
- package/dist/types/src/jose/algorithms/signing/signature-algorithms.d.ts.map +1 -1
- package/dist/types/src/jose/jws/general/builder.d.ts +3 -3
- package/dist/types/src/jose/jws/general/builder.d.ts.map +1 -1
- package/dist/types/src/protocols/permission-grant.d.ts +11 -0
- package/dist/types/src/protocols/permission-grant.d.ts.map +1 -1
- package/dist/types/src/protocols/permission-request.d.ts +11 -0
- package/dist/types/src/protocols/permission-request.d.ts.map +1 -1
- package/dist/types/src/protocols/permissions.d.ts +4 -4
- package/dist/types/src/protocols/permissions.d.ts.map +1 -1
- package/dist/types/src/schema-validator.d.ts +1 -1
- package/dist/types/src/schema-validator.d.ts.map +1 -1
- package/dist/types/src/smt/smt-store-level.d.ts +32 -0
- package/dist/types/src/smt/smt-store-level.d.ts.map +1 -0
- package/dist/types/src/smt/smt-store-memory.d.ts +22 -0
- package/dist/types/src/smt/smt-store-memory.d.ts.map +1 -0
- package/dist/types/src/smt/smt-utils.d.ts +58 -0
- package/dist/types/src/smt/smt-utils.d.ts.map +1 -0
- package/dist/types/src/smt/sparse-merkle-tree.d.ts +124 -0
- package/dist/types/src/smt/sparse-merkle-tree.d.ts.map +1 -0
- package/dist/types/src/state-index/state-index-level.d.ts +83 -0
- package/dist/types/src/state-index/state-index-level.d.ts.map +1 -0
- package/dist/types/src/store/data-store-level.d.ts +1 -2
- package/dist/types/src/store/data-store-level.d.ts.map +1 -1
- package/dist/types/src/store/index-level.d.ts +98 -2
- package/dist/types/src/store/index-level.d.ts.map +1 -1
- package/dist/types/src/store/level-wrapper.d.ts.map +1 -1
- package/dist/types/src/store/message-store-level.d.ts +5 -0
- package/dist/types/src/store/message-store-level.d.ts.map +1 -1
- package/dist/types/src/store/storage-controller.d.ts +7 -7
- package/dist/types/src/store/storage-controller.d.ts.map +1 -1
- package/dist/types/src/types/data-store.d.ts +2 -3
- package/dist/types/src/types/data-store.d.ts.map +1 -1
- package/dist/types/src/types/encryption-types.d.ts +48 -0
- package/dist/types/src/types/encryption-types.d.ts.map +1 -0
- package/dist/types/src/types/jose-types.d.ts +9 -40
- package/dist/types/src/types/jose-types.d.ts.map +1 -1
- package/dist/types/src/types/message-store.d.ts +5 -0
- package/dist/types/src/types/message-store.d.ts.map +1 -1
- package/dist/types/src/types/message-types.d.ts +19 -0
- package/dist/types/src/types/message-types.d.ts.map +1 -1
- package/dist/types/src/types/messages-types.d.ts +16 -11
- package/dist/types/src/types/messages-types.d.ts.map +1 -1
- package/dist/types/src/types/method-handler.d.ts +1 -2
- package/dist/types/src/types/method-handler.d.ts.map +1 -1
- package/dist/types/src/types/permission-types.d.ts +2 -2
- package/dist/types/src/types/permission-types.d.ts.map +1 -1
- package/dist/types/src/types/protocols-types.d.ts +49 -5
- package/dist/types/src/types/protocols-types.d.ts.map +1 -1
- package/dist/types/src/types/records-types.d.ts +23 -7
- package/dist/types/src/types/records-types.d.ts.map +1 -1
- package/dist/types/src/types/signer.d.ts +1 -1
- package/dist/types/src/types/signer.d.ts.map +1 -1
- package/dist/types/src/types/smt-types.d.ts +81 -0
- package/dist/types/src/types/smt-types.d.ts.map +1 -0
- package/dist/types/src/types/state-index.d.ts +90 -0
- package/dist/types/src/types/state-index.d.ts.map +1 -0
- package/dist/types/src/utils/cid.d.ts +1 -2
- package/dist/types/src/utils/cid.d.ts.map +1 -1
- package/dist/types/src/utils/data-stream.d.ts +14 -7
- package/dist/types/src/utils/data-stream.d.ts.map +1 -1
- package/dist/types/src/utils/encryption.d.ts +2 -3
- package/dist/types/src/utils/encryption.d.ts.map +1 -1
- package/dist/types/src/utils/hd-key.d.ts +4 -4
- package/dist/types/src/utils/hd-key.d.ts.map +1 -1
- package/dist/types/src/utils/jws.d.ts +7 -7
- package/dist/types/src/utils/jws.d.ts.map +1 -1
- package/dist/types/src/utils/private-key-signer.d.ts +4 -4
- package/dist/types/src/utils/private-key-signer.d.ts.map +1 -1
- package/dist/types/src/utils/protocols.d.ts +46 -3
- package/dist/types/src/utils/protocols.d.ts.map +1 -1
- package/dist/types/src/utils/records.d.ts +33 -6
- package/dist/types/src/utils/records.d.ts.map +1 -1
- package/dist/types/src/utils/secp256k1.d.ts +11 -11
- package/dist/types/src/utils/secp256k1.d.ts.map +1 -1
- package/dist/types/src/utils/secp256r1.d.ts +8 -8
- package/dist/types/src/utils/secp256r1.d.ts.map +1 -1
- package/dist/types/src/utils/time.d.ts +1 -1
- package/dist/types/tests/dwn.spec.d.ts.map +1 -1
- package/dist/types/tests/event-stream/event-emitter-stream.spec.d.ts.map +1 -0
- package/dist/types/tests/event-stream/event-stream.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/permissions.spec.d.ts.map +1 -1
- package/dist/types/tests/features/protocol-composition.spec.d.ts +5 -0
- package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -0
- 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-prune.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-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 +2 -0
- package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +1 -0
- 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 +2 -0
- package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -0
- 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/protocols/permission-grant.spec.d.ts +2 -0
- package/dist/types/tests/protocols/permission-grant.spec.d.ts.map +1 -0
- 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/smt/smt-store-level.spec.d.ts +2 -0
- package/dist/types/tests/smt/smt-store-level.spec.d.ts.map +1 -0
- package/dist/types/tests/smt/sparse-merkle-tree.spec.d.ts +2 -0
- package/dist/types/tests/smt/sparse-merkle-tree.spec.d.ts.map +1 -0
- package/dist/types/tests/state-index/state-index-level.spec.d.ts +2 -0
- package/dist/types/tests/state-index/state-index-level.spec.d.ts.map +1 -0
- package/dist/types/tests/store/blockstore-level.spec.d.ts +2 -0
- package/dist/types/tests/store/blockstore-level.spec.d.ts.map +1 -0
- package/dist/types/tests/store/message-store.spec.d.ts.map +1 -1
- package/dist/types/tests/test-stores.d.ts +4 -4
- package/dist/types/tests/test-stores.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/encryption-callbacks.spec.d.ts +2 -0
- package/dist/types/tests/utils/encryption-callbacks.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/test-data-generator.d.ts +31 -28
- package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
- package/dist/types/tests/validation/json-schemas/records/records-read.spec.d.ts +2 -0
- package/dist/types/tests/validation/json-schemas/records/records-read.spec.d.ts.map +1 -0
- package/package.json +26 -45
- package/src/core/dwn-error.ts +27 -3
- package/src/core/message-reply.ts +1 -1
- package/src/core/message.ts +5 -5
- package/src/core/messages-grant-authorization.ts +22 -8
- package/src/core/protocol-authorization.ts +345 -68
- package/src/core/records-grant-authorization.ts +2 -2
- package/src/core/resumable-task-manager.ts +4 -5
- package/src/dwn.ts +25 -20
- package/src/enums/dwn-interface-method.ts +5 -3
- package/src/handlers/messages-subscribe.ts +1 -1
- package/src/handlers/messages-sync.ts +129 -0
- package/src/handlers/protocols-configure.ts +195 -17
- package/src/handlers/protocols-query.ts +7 -5
- package/src/handlers/records-count.ts +184 -0
- package/src/handlers/records-query.ts +4 -0
- package/src/handlers/records-read.ts +4 -8
- package/src/handlers/records-write.ts +20 -21
- package/src/index.ts +74 -37
- package/src/interfaces/messages-read.ts +6 -5
- package/src/interfaces/messages-subscribe.ts +7 -6
- package/src/interfaces/messages-sync.ts +59 -0
- package/src/interfaces/protocols-configure.ts +211 -33
- package/src/interfaces/protocols-query.ts +7 -6
- package/src/interfaces/records-count.ts +106 -0
- package/src/interfaces/records-delete.ts +2 -2
- package/src/interfaces/records-query.ts +2 -2
- package/src/interfaces/records-read.ts +26 -3
- package/src/interfaces/records-subscribe.ts +2 -2
- package/src/interfaces/records-write.ts +115 -46
- package/src/jose/algorithms/signing/ed25519.ts +13 -12
- package/src/jose/algorithms/signing/signature-algorithms.ts +6 -1
- package/src/jose/jws/general/builder.ts +3 -3
- package/src/jose/jws/general/verifier.ts +3 -3
- package/src/protocols/permission-grant.ts +51 -0
- package/src/protocols/permission-request.ts +37 -0
- package/src/protocols/permissions.ts +5 -5
- package/src/schema-validator.ts +11 -3
- package/src/smt/smt-store-level.ts +143 -0
- package/src/smt/smt-store-memory.ts +53 -0
- package/src/smt/smt-utils.ts +149 -0
- package/src/smt/sparse-merkle-tree.ts +698 -0
- package/src/state-index/state-index-level.ts +241 -0
- package/src/store/data-store-level.ts +8 -7
- package/src/store/index-level.ts +415 -19
- package/src/store/level-wrapper.ts +1 -1
- package/src/store/message-store-level.ts +62 -0
- package/src/store/storage-controller.ts +21 -19
- package/src/types/data-store.ts +2 -4
- package/src/types/encryption-types.ts +52 -0
- package/src/types/jose-types.ts +10 -42
- package/src/types/message-store.ts +11 -0
- package/src/types/message-types.ts +21 -0
- package/src/types/messages-types.ts +21 -15
- package/src/types/method-handler.ts +1 -2
- package/src/types/permission-types.ts +2 -2
- package/src/types/protocols-types.ts +55 -6
- package/src/types/records-types.ts +26 -7
- package/src/types/signer.ts +1 -1
- package/src/types/smt-types.ts +95 -0
- package/src/types/state-index.ts +100 -0
- package/src/utils/cid.ts +3 -4
- package/src/utils/data-stream.ts +75 -38
- package/src/utils/encryption.ts +24 -39
- package/src/utils/hd-key.ts +6 -6
- package/src/utils/jws.ts +9 -9
- package/src/utils/private-key-signer.ts +9 -8
- package/src/utils/protocols.ts +132 -6
- package/src/utils/records.ts +118 -29
- package/src/utils/secp256k1.ts +23 -21
- package/src/utils/secp256r1.ts +17 -15
- package/src/utils/time.ts +1 -1
- package/src/utils/url.ts +1 -1
- package/dist/cjs/index.js +0 -36749
- package/dist/cjs/package.json +0 -1
- package/dist/esm/src/event-log/event-emitter-stream.js.map +0 -1
- package/dist/esm/src/event-log/event-log-level.js +0 -63
- package/dist/esm/src/event-log/event-log-level.js.map +0 -1
- package/dist/esm/src/handlers/messages-query.js +0 -71
- package/dist/esm/src/handlers/messages-query.js.map +0 -1
- package/dist/esm/src/interfaces/messages-query.js.map +0 -1
- package/dist/esm/src/types/event-log.js +0 -2
- package/dist/esm/src/types/event-log.js.map +0 -1
- package/dist/esm/tests/event-log/event-emitter-stream.spec.js.map +0 -1
- package/dist/esm/tests/event-log/event-log-level.spec.js +0 -44
- package/dist/esm/tests/event-log/event-log-level.spec.js.map +0 -1
- package/dist/esm/tests/event-log/event-log.spec.js +0 -236
- package/dist/esm/tests/event-log/event-log.spec.js.map +0 -1
- package/dist/esm/tests/event-log/event-stream.spec.js.map +0 -1
- package/dist/esm/tests/handlers/messages-query.spec.js +0 -349
- package/dist/esm/tests/handlers/messages-query.spec.js.map +0 -1
- package/dist/esm/tests/interfaces/messagess-query.spec.js +0 -127
- package/dist/esm/tests/interfaces/messagess-query.spec.js.map +0 -1
- package/dist/esm/tests/scenarios/messages-query.spec.js +0 -395
- package/dist/esm/tests/scenarios/messages-query.spec.js.map +0 -1
- package/dist/types/src/event-log/event-emitter-stream.d.ts.map +0 -1
- package/dist/types/src/event-log/event-log-level.d.ts +0 -35
- package/dist/types/src/event-log/event-log-level.d.ts.map +0 -1
- package/dist/types/src/handlers/messages-query.d.ts +0 -17
- package/dist/types/src/handlers/messages-query.d.ts.map +0 -1
- package/dist/types/src/interfaces/messages-query.d.ts +0 -16
- package/dist/types/src/interfaces/messages-query.d.ts.map +0 -1
- package/dist/types/src/types/event-log.d.ts +0 -52
- package/dist/types/src/types/event-log.d.ts.map +0 -1
- package/dist/types/tests/event-log/event-emitter-stream.spec.d.ts.map +0 -1
- package/dist/types/tests/event-log/event-log-level.spec.d.ts +0 -2
- package/dist/types/tests/event-log/event-log-level.spec.d.ts.map +0 -1
- package/dist/types/tests/event-log/event-log.spec.d.ts +0 -2
- package/dist/types/tests/event-log/event-log.spec.d.ts.map +0 -1
- package/dist/types/tests/event-log/event-stream.spec.d.ts.map +0 -1
- package/dist/types/tests/handlers/messages-query.spec.d.ts +0 -2
- package/dist/types/tests/handlers/messages-query.spec.d.ts.map +0 -1
- package/dist/types/tests/interfaces/messagess-query.spec.d.ts +0 -2
- package/dist/types/tests/interfaces/messagess-query.spec.d.ts.map +0 -1
- package/dist/types/tests/scenarios/messages-query.spec.d.ts +0 -2
- package/dist/types/tests/scenarios/messages-query.spec.d.ts.map +0 -1
- package/src/event-log/event-log-level.ts +0 -72
- package/src/handlers/messages-query.ts +0 -67
- package/src/interfaces/messages-query.ts +0 -60
- package/src/types/event-log.ts +0 -52
- /package/dist/esm/src/{event-log → event-stream}/event-emitter-stream.js +0 -0
- /package/dist/types/src/{event-log → event-stream}/event-emitter-stream.d.ts +0 -0
- /package/dist/types/tests/{event-log → event-stream}/event-emitter-stream.spec.d.ts +0 -0
- /package/dist/types/tests/{event-log → event-stream}/event-stream.spec.d.ts +0 -0
- /package/src/{event-log → event-stream}/event-emitter-stream.ts +0 -0
|
@@ -7,15 +7,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import freeForAll from '../vectors/protocol-definitions/free-for-all.json'
|
|
11
|
-
import threadProtocol from '../vectors/protocol-definitions/thread-role.json'
|
|
10
|
+
import freeForAll from '../vectors/protocol-definitions/free-for-all.json' with { type: 'json' };
|
|
11
|
+
import threadProtocol from '../vectors/protocol-definitions/thread-role.json' with { type: 'json' };
|
|
12
|
+
import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'bun:test';
|
|
12
13
|
import { Poller } from '../utils/poller.js';
|
|
13
14
|
import { TestDataGenerator } from '../utils/test-data-generator.js';
|
|
14
15
|
import { TestEventStream } from '../test-event-stream.js';
|
|
15
16
|
import { TestStores } from '../test-stores.js';
|
|
16
17
|
import { DataStream, Dwn, DwnInterfaceName, DwnMethodName, Jws, Message, PermissionGrant, PermissionsProtocol, Time } from '../../src/index.js';
|
|
17
18
|
import { DidKey, UniversalResolver } from '@enbox/dids';
|
|
18
|
-
import { expect } from 'chai';
|
|
19
19
|
// NOTE: We use `Poller.pollUntilSuccessOrTimeout` to poll for the expected results.
|
|
20
20
|
// In some cases, the EventStream is a coordinated pub/sub system and the message events are emitted over the network
|
|
21
21
|
// this means that the messages are not processed immediately and we need to wait for the messages to be processed
|
|
@@ -29,29 +29,29 @@ export function testSubscriptionScenarios() {
|
|
|
29
29
|
let messageStore;
|
|
30
30
|
let dataStore;
|
|
31
31
|
let resumableTaskStore;
|
|
32
|
-
let
|
|
32
|
+
let stateIndex;
|
|
33
33
|
let eventStream;
|
|
34
34
|
let dwn;
|
|
35
|
-
// important to follow the `
|
|
35
|
+
// important to follow the `beforeAll` and `afterAll` pattern to initialize and clean the stores in tests
|
|
36
36
|
// so that different test suites can reuse the same backend store for testing
|
|
37
|
-
|
|
37
|
+
beforeAll(() => __awaiter(this, void 0, void 0, function* () {
|
|
38
38
|
didResolver = new UniversalResolver({ didResolvers: [DidKey] });
|
|
39
39
|
const stores = TestStores.get();
|
|
40
40
|
messageStore = stores.messageStore;
|
|
41
41
|
dataStore = stores.dataStore;
|
|
42
42
|
resumableTaskStore = stores.resumableTaskStore;
|
|
43
|
-
|
|
43
|
+
stateIndex = stores.stateIndex;
|
|
44
44
|
eventStream = TestEventStream.get();
|
|
45
|
-
dwn = yield Dwn.create({ didResolver, messageStore, dataStore,
|
|
45
|
+
dwn = yield Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventStream, resumableTaskStore });
|
|
46
46
|
}));
|
|
47
47
|
beforeEach(() => __awaiter(this, void 0, void 0, function* () {
|
|
48
48
|
// clean up before each test rather than after so that a test does not depend on other tests to do the clean up
|
|
49
49
|
yield messageStore.clear();
|
|
50
50
|
yield dataStore.clear();
|
|
51
51
|
yield resumableTaskStore.clear();
|
|
52
|
-
yield
|
|
52
|
+
yield stateIndex.clear();
|
|
53
53
|
}));
|
|
54
|
-
|
|
54
|
+
afterAll(() => __awaiter(this, void 0, void 0, function* () {
|
|
55
55
|
yield dwn.close();
|
|
56
56
|
}));
|
|
57
57
|
describe('messages subscribe', () => {
|
|
@@ -69,25 +69,25 @@ export function testSubscriptionScenarios() {
|
|
|
69
69
|
// subscribe to all messages
|
|
70
70
|
const messagesSubscription = yield TestDataGenerator.generateMessagesSubscribe({ author: alice });
|
|
71
71
|
const messagesSubscriptionReply = yield dwn.processMessage(alice.did, messagesSubscription.message, { subscriptionHandler: handler });
|
|
72
|
-
expect(messagesSubscriptionReply.status.code).
|
|
73
|
-
expect((_a = messagesSubscriptionReply.subscription) === null || _a === void 0 ? void 0 : _a.id).
|
|
72
|
+
expect(messagesSubscriptionReply.status.code).toBe(200);
|
|
73
|
+
expect((_a = messagesSubscriptionReply.subscription) === null || _a === void 0 ? void 0 : _a.id).toBe(yield Message.getCid(messagesSubscription.message));
|
|
74
74
|
// generate various messages
|
|
75
75
|
const write1 = yield TestDataGenerator.generateRecordsWrite({ author: alice });
|
|
76
76
|
const write1MessageCid = yield Message.getCid(write1.message);
|
|
77
77
|
const write1Reply = yield dwn.processMessage(alice.did, write1.message, { dataStream: write1.dataStream });
|
|
78
|
-
expect(write1Reply.status.code).
|
|
78
|
+
expect(write1Reply.status.code).toBe(202);
|
|
79
79
|
const protocol1 = yield TestDataGenerator.generateProtocolsConfigure({ author: alice });
|
|
80
80
|
const protocol1MessageCid = yield Message.getCid(protocol1.message);
|
|
81
81
|
const protocol1Reply = yield dwn.processMessage(alice.did, protocol1.message);
|
|
82
|
-
expect(protocol1Reply.status.code).
|
|
82
|
+
expect(protocol1Reply.status.code).toBe(202);
|
|
83
83
|
const deleteWrite1 = yield TestDataGenerator.generateRecordsDelete({ author: alice, recordId: write1.message.recordId });
|
|
84
84
|
const delete1MessageCid = yield Message.getCid(deleteWrite1.message);
|
|
85
85
|
const deleteWrite1Reply = yield dwn.processMessage(alice.did, deleteWrite1.message);
|
|
86
|
-
expect(deleteWrite1Reply.status.code).
|
|
86
|
+
expect(deleteWrite1Reply.status.code).toBe(202);
|
|
87
87
|
// poll until the messages are received by the handler
|
|
88
88
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
89
|
-
expect(messageCids.length).
|
|
90
|
-
expect(messageCids).
|
|
89
|
+
expect(messageCids.length).toBe(3);
|
|
90
|
+
expect(messageCids).toEqual([write1MessageCid, protocol1MessageCid, delete1MessageCid]);
|
|
91
91
|
}));
|
|
92
92
|
// clean up the subscription handler
|
|
93
93
|
yield ((_b = messagesSubscriptionReply.subscription) === null || _b === void 0 ? void 0 : _b.close());
|
|
@@ -113,8 +113,8 @@ export function testSubscriptionScenarios() {
|
|
|
113
113
|
recordsMessageCids.push(messageCid);
|
|
114
114
|
});
|
|
115
115
|
const recordsInterfaceSubscriptionReply = yield dwn.processMessage(alice.did, recordsInterfaceSubscription.message, { subscriptionHandler: recordsSubscribeHandler });
|
|
116
|
-
expect(recordsInterfaceSubscriptionReply.status.code).
|
|
117
|
-
expect(recordsInterfaceSubscriptionReply.subscription).
|
|
116
|
+
expect(recordsInterfaceSubscriptionReply.status.code).toBe(200);
|
|
117
|
+
expect(recordsInterfaceSubscriptionReply.subscription).toBeDefined();
|
|
118
118
|
// subscribe to the Protocols interface
|
|
119
119
|
const protocolsInterfaceSubscription = yield TestDataGenerator.generateMessagesSubscribe({
|
|
120
120
|
author: alice,
|
|
@@ -127,35 +127,35 @@ export function testSubscriptionScenarios() {
|
|
|
127
127
|
protocolsMessageCids.push(messageCid);
|
|
128
128
|
});
|
|
129
129
|
const protocolsInterfaceSubscriptionReply = yield dwn.processMessage(alice.did, protocolsInterfaceSubscription.message, { subscriptionHandler: protocolsSubscribeHandler });
|
|
130
|
-
expect(protocolsInterfaceSubscriptionReply.status.code).
|
|
131
|
-
expect(protocolsInterfaceSubscriptionReply.subscription).
|
|
130
|
+
expect(protocolsInterfaceSubscriptionReply.status.code).toBe(200);
|
|
131
|
+
expect(protocolsInterfaceSubscriptionReply.subscription).toBeDefined();
|
|
132
132
|
// create one of each message types a RecordsWrite and a ProtocolsConfigure
|
|
133
133
|
const record = yield TestDataGenerator.generateRecordsWrite({ author: alice });
|
|
134
134
|
const recordReply = yield dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream });
|
|
135
|
-
expect(recordReply.status.code).
|
|
135
|
+
expect(recordReply.status.code).toBe(202, 'RecordsWrite');
|
|
136
136
|
const protocol = yield TestDataGenerator.generateProtocolsConfigure({ author: alice });
|
|
137
137
|
const protocolReply = yield dwn.processMessage(alice.did, protocol.message);
|
|
138
|
-
expect(protocolReply.status.code).
|
|
138
|
+
expect(protocolReply.status.code).toBe(202, 'ProtocolConfigure');
|
|
139
139
|
// Poll until the messages are received by the handler
|
|
140
140
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
141
141
|
// check record message
|
|
142
|
-
expect(recordsMessageCids.length).
|
|
143
|
-
expect(recordsMessageCids).
|
|
142
|
+
expect(recordsMessageCids.length).toBe(1);
|
|
143
|
+
expect(recordsMessageCids).toEqual(expect.arrayContaining([yield Message.getCid(record.message)]));
|
|
144
144
|
// check protocols message
|
|
145
|
-
expect(protocolsMessageCids.length).
|
|
146
|
-
expect(protocolsMessageCids).
|
|
145
|
+
expect(protocolsMessageCids.length).toBe(1);
|
|
146
|
+
expect(protocolsMessageCids).toEqual(expect.arrayContaining([yield Message.getCid(protocol.message)]));
|
|
147
147
|
}));
|
|
148
148
|
// delete the record
|
|
149
149
|
const recordDelete = yield TestDataGenerator.generateRecordsDelete({ author: alice, recordId: record.message.recordId });
|
|
150
150
|
const recordDeleteReply = yield dwn.processMessage(alice.did, recordDelete.message);
|
|
151
|
-
expect(recordDeleteReply.status.code).
|
|
151
|
+
expect(recordDeleteReply.status.code).toBe(202, 'RecordsDelete');
|
|
152
152
|
// poll until the delete message is received by the handler
|
|
153
153
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
154
154
|
// check record messages to include the delete message
|
|
155
|
-
expect(recordsMessageCids.length).
|
|
156
|
-
expect(recordsMessageCids).
|
|
155
|
+
expect(recordsMessageCids.length).toBe(2);
|
|
156
|
+
expect(recordsMessageCids).toEqual(expect.arrayContaining([yield Message.getCid(recordDelete.message)]));
|
|
157
157
|
// check that the protocols message array does not include the delete message
|
|
158
|
-
expect(protocolsMessageCids.length).
|
|
158
|
+
expect(protocolsMessageCids.length).toBe(1); // unchanged
|
|
159
159
|
}));
|
|
160
160
|
// clean up the subscriptions
|
|
161
161
|
yield ((_a = recordsInterfaceSubscriptionReply.subscription) === null || _a === void 0 ? void 0 : _a.close());
|
|
@@ -185,8 +185,8 @@ export function testSubscriptionScenarios() {
|
|
|
185
185
|
recordsWriteMessageCids.push(messageCid);
|
|
186
186
|
});
|
|
187
187
|
const recordsWriteSubscriptionReply = yield dwn.processMessage(alice.did, recordsWriteSubscription.message, { subscriptionHandler: recordsSubscribeHandler });
|
|
188
|
-
expect(recordsWriteSubscriptionReply.status.code).
|
|
189
|
-
expect(recordsWriteSubscriptionReply.subscription).
|
|
188
|
+
expect(recordsWriteSubscriptionReply.status.code).toBe(200);
|
|
189
|
+
expect(recordsWriteSubscriptionReply.subscription).toBeDefined();
|
|
190
190
|
// subscribe to records delete
|
|
191
191
|
const recordsDeleteSubscription = yield TestDataGenerator.generateMessagesSubscribe({
|
|
192
192
|
author: alice,
|
|
@@ -199,51 +199,51 @@ export function testSubscriptionScenarios() {
|
|
|
199
199
|
recordsDeleteMessageCids.push(messageCid);
|
|
200
200
|
});
|
|
201
201
|
const recordsDeleteSubscriptionReply = yield dwn.processMessage(alice.did, recordsDeleteSubscription.message, { subscriptionHandler: recordsDeleteSubscribeHandler });
|
|
202
|
-
expect(recordsDeleteSubscriptionReply.status.code).
|
|
203
|
-
expect(recordsDeleteSubscriptionReply.subscription).
|
|
202
|
+
expect(recordsDeleteSubscriptionReply.status.code).toBe(200);
|
|
203
|
+
expect(recordsDeleteSubscriptionReply.subscription).toBeDefined();
|
|
204
204
|
// create and updates the record, this creates two RecordsWrite messages
|
|
205
205
|
const record = yield TestDataGenerator.generateRecordsWrite({ author: alice });
|
|
206
206
|
const recordReply = yield dwn.processMessage(alice.did, record.message, { dataStream: record.dataStream });
|
|
207
|
-
expect(recordReply.status.code).
|
|
207
|
+
expect(recordReply.status.code).toBe(202, 'RecordsWrite');
|
|
208
208
|
const record1MessageCid = yield Message.getCid(record.message);
|
|
209
209
|
const recordUpdate = yield TestDataGenerator.generateFromRecordsWrite({ author: alice, existingWrite: record.recordsWrite });
|
|
210
210
|
const recordUpdateReply = yield dwn.processMessage(alice.did, recordUpdate.message, { dataStream: recordUpdate.dataStream });
|
|
211
|
-
expect(recordUpdateReply.status.code).
|
|
211
|
+
expect(recordUpdateReply.status.code).toBe(202, 'RecordsUpdate');
|
|
212
212
|
const recordUpdateMessageCid = yield Message.getCid(recordUpdate.message);
|
|
213
213
|
// Poll until the messages are received by the handler
|
|
214
214
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
215
215
|
// check the array for both the RecordsWrite messages
|
|
216
|
-
expect(recordsWriteMessageCids.length).
|
|
217
|
-
expect(recordsWriteMessageCids).
|
|
216
|
+
expect(recordsWriteMessageCids.length).toBe(2);
|
|
217
|
+
expect(recordsWriteMessageCids).toEqual(expect.arrayContaining([
|
|
218
218
|
record1MessageCid,
|
|
219
219
|
recordUpdateMessageCid,
|
|
220
|
-
]);
|
|
220
|
+
]));
|
|
221
221
|
}));
|
|
222
222
|
// confirm that the delete array is empty
|
|
223
|
-
expect(recordsDeleteMessageCids.length).
|
|
223
|
+
expect(recordsDeleteMessageCids.length).toBe(0);
|
|
224
224
|
// delete the record
|
|
225
225
|
const recordDelete = yield TestDataGenerator.generateRecordsDelete({ author: alice, recordId: record.message.recordId });
|
|
226
226
|
const recordDeleteReply = yield dwn.processMessage(alice.did, recordDelete.message);
|
|
227
|
-
expect(recordDeleteReply.status.code).
|
|
227
|
+
expect(recordDeleteReply.status.code).toBe(202, 'RecordsDelete');
|
|
228
228
|
const recordDeleteMessageCid = yield Message.getCid(recordDelete.message);
|
|
229
229
|
// write a second record
|
|
230
230
|
const record2 = yield TestDataGenerator.generateRecordsWrite({ author: alice });
|
|
231
231
|
const record2Reply = yield dwn.processMessage(alice.did, record2.message, { dataStream: record2.dataStream });
|
|
232
|
-
expect(record2Reply.status.code).
|
|
232
|
+
expect(record2Reply.status.code).toBe(202, 'RecordsWrite');
|
|
233
233
|
const record2MessageCid = yield Message.getCid(record2.message);
|
|
234
234
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
235
235
|
// ensure the new record is in the recordsWrite array, but not the delete
|
|
236
|
-
expect(recordsWriteMessageCids.length).
|
|
237
|
-
expect(recordsWriteMessageCids).
|
|
236
|
+
expect(recordsWriteMessageCids.length).toBe(3);
|
|
237
|
+
expect(recordsWriteMessageCids).toEqual(expect.arrayContaining([
|
|
238
238
|
record1MessageCid,
|
|
239
239
|
recordUpdateMessageCid,
|
|
240
240
|
record2MessageCid,
|
|
241
|
-
]);
|
|
241
|
+
]));
|
|
242
242
|
// ensure the delete message is in the recordsDelete array
|
|
243
|
-
expect(recordsDeleteMessageCids.length).
|
|
244
|
-
expect(recordsDeleteMessageCids).
|
|
243
|
+
expect(recordsDeleteMessageCids.length).toBe(1);
|
|
244
|
+
expect(recordsDeleteMessageCids).toEqual(expect.arrayContaining([
|
|
245
245
|
recordDeleteMessageCid,
|
|
246
|
-
]);
|
|
246
|
+
]));
|
|
247
247
|
}));
|
|
248
248
|
}));
|
|
249
249
|
it('filters by a protocol across different message types', () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -274,8 +274,8 @@ export function testSubscriptionScenarios() {
|
|
|
274
274
|
const proto1SubscriptionReply = yield dwn.processMessage(alice.did, proto1Subscription.message, {
|
|
275
275
|
subscriptionHandler: proto1Handler
|
|
276
276
|
});
|
|
277
|
-
expect(proto1SubscriptionReply.status.code).
|
|
278
|
-
expect(proto1SubscriptionReply.subscription).
|
|
277
|
+
expect(proto1SubscriptionReply.status.code).toBe(200);
|
|
278
|
+
expect(proto1SubscriptionReply.subscription).toBeDefined();
|
|
279
279
|
const proto2Messages = [];
|
|
280
280
|
const proto2Handler = (event) => __awaiter(this, void 0, void 0, function* () {
|
|
281
281
|
const { message } = event;
|
|
@@ -288,8 +288,8 @@ export function testSubscriptionScenarios() {
|
|
|
288
288
|
const proto2SubscriptionReply = yield dwn.processMessage(alice.did, proto2Subscription.message, {
|
|
289
289
|
subscriptionHandler: proto2Handler
|
|
290
290
|
});
|
|
291
|
-
expect(proto2SubscriptionReply.status.code).
|
|
292
|
-
expect(proto2SubscriptionReply.subscription).
|
|
291
|
+
expect(proto2SubscriptionReply.status.code).toBe(200);
|
|
292
|
+
expect(proto2SubscriptionReply.subscription).toBeDefined();
|
|
293
293
|
// configure proto1
|
|
294
294
|
const protoConf1 = yield TestDataGenerator.generateProtocolsConfigure({
|
|
295
295
|
author: alice,
|
|
@@ -297,7 +297,7 @@ export function testSubscriptionScenarios() {
|
|
|
297
297
|
});
|
|
298
298
|
const proto1 = protoConf1.message.descriptor.definition.protocol;
|
|
299
299
|
const protoConf1Response = yield dwn.processMessage(alice.did, protoConf1.message);
|
|
300
|
-
expect(protoConf1Response.status.code).
|
|
300
|
+
expect(protoConf1Response.status.code).toBe(202);
|
|
301
301
|
// configure proto2
|
|
302
302
|
const protoConf2 = yield TestDataGenerator.generateProtocolsConfigure({
|
|
303
303
|
author: alice,
|
|
@@ -305,7 +305,7 @@ export function testSubscriptionScenarios() {
|
|
|
305
305
|
});
|
|
306
306
|
const proto2 = protoConf2.message.descriptor.definition.protocol;
|
|
307
307
|
const protoConf2Response = yield dwn.processMessage(alice.did, protoConf2.message);
|
|
308
|
-
expect(protoConf2Response.status.code).
|
|
308
|
+
expect(protoConf2Response.status.code).toBe(202);
|
|
309
309
|
const postProperties = {
|
|
310
310
|
protocolPath: 'post',
|
|
311
311
|
schema: freeForAll.types.post.schema,
|
|
@@ -314,11 +314,11 @@ export function testSubscriptionScenarios() {
|
|
|
314
314
|
// create a record for proto1
|
|
315
315
|
const write1proto1 = yield TestDataGenerator.generateRecordsWrite(Object.assign({ author: alice, protocol: proto1 }, postProperties));
|
|
316
316
|
const write1Response = yield dwn.processMessage(alice.did, write1proto1.message, { dataStream: write1proto1.dataStream });
|
|
317
|
-
expect(write1Response.status.code).
|
|
317
|
+
expect(write1Response.status.code).toBe(202);
|
|
318
318
|
// create a record for proto2
|
|
319
319
|
const write1proto2 = yield TestDataGenerator.generateRecordsWrite(Object.assign({ author: alice, protocol: proto2 }, postProperties));
|
|
320
320
|
const write1Proto2Response = yield dwn.processMessage(alice.did, write1proto2.message, { dataStream: write1proto2.dataStream });
|
|
321
|
-
expect(write1Proto2Response.status.code).
|
|
321
|
+
expect(write1Proto2Response.status.code).toBe(202);
|
|
322
322
|
// bob requests permissions for proto1
|
|
323
323
|
const requestProto1 = yield PermissionsProtocol.createRequest({
|
|
324
324
|
signer: Jws.createSigner(bob),
|
|
@@ -326,7 +326,7 @@ export function testSubscriptionScenarios() {
|
|
|
326
326
|
delegated: false,
|
|
327
327
|
});
|
|
328
328
|
const requestProto1Response = yield dwn.processMessage(alice.did, requestProto1.recordsWrite.message, { dataStream: DataStream.fromBytes(requestProto1.permissionRequestBytes) });
|
|
329
|
-
expect(requestProto1Response.status.code).
|
|
329
|
+
expect(requestProto1Response.status.code).toBe(202);
|
|
330
330
|
// bob requests permissions for proto2
|
|
331
331
|
const requestProto2 = yield PermissionsProtocol.createRequest({
|
|
332
332
|
signer: Jws.createSigner(bob),
|
|
@@ -334,7 +334,7 @@ export function testSubscriptionScenarios() {
|
|
|
334
334
|
delegated: false,
|
|
335
335
|
});
|
|
336
336
|
const requestProto2Response = yield dwn.processMessage(alice.did, requestProto2.recordsWrite.message, { dataStream: DataStream.fromBytes(requestProto2.permissionRequestBytes) });
|
|
337
|
-
expect(requestProto2Response.status.code).
|
|
337
|
+
expect(requestProto2Response.status.code).toBe(202);
|
|
338
338
|
// alice grants permissions for proto1
|
|
339
339
|
const grantProto1 = yield PermissionsProtocol.createGrant({
|
|
340
340
|
signer: Jws.createSigner(alice),
|
|
@@ -343,7 +343,7 @@ export function testSubscriptionScenarios() {
|
|
|
343
343
|
grantedTo: bob.did,
|
|
344
344
|
});
|
|
345
345
|
const grantProto1Response = yield dwn.processMessage(alice.did, grantProto1.recordsWrite.message, { dataStream: DataStream.fromBytes(grantProto1.permissionGrantBytes) });
|
|
346
|
-
expect(grantProto1Response.status.code).
|
|
346
|
+
expect(grantProto1Response.status.code).toBe(202);
|
|
347
347
|
// alice grants permissions for proto2
|
|
348
348
|
const grantProto2 = yield PermissionsProtocol.createGrant({
|
|
349
349
|
signer: Jws.createSigner(alice),
|
|
@@ -352,62 +352,62 @@ export function testSubscriptionScenarios() {
|
|
|
352
352
|
grantedTo: bob.did,
|
|
353
353
|
});
|
|
354
354
|
const grantProto2Response = yield dwn.processMessage(alice.did, grantProto2.recordsWrite.message, { dataStream: DataStream.fromBytes(grantProto2.permissionGrantBytes) });
|
|
355
|
-
expect(grantProto2Response.status.code).
|
|
355
|
+
expect(grantProto2Response.status.code).toBe(202);
|
|
356
356
|
// poll until the messages are received by the handlers
|
|
357
357
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
358
358
|
// check for proto1 messages
|
|
359
|
-
expect(proto1Messages.length).
|
|
360
|
-
expect(proto1Messages).
|
|
359
|
+
expect(proto1Messages.length).toBe(4);
|
|
360
|
+
expect(proto1Messages).toEqual(expect.arrayContaining([
|
|
361
361
|
yield Message.getCid(protoConf1.message),
|
|
362
362
|
yield Message.getCid(write1proto1.message),
|
|
363
363
|
yield Message.getCid(requestProto1.recordsWrite.message),
|
|
364
364
|
yield Message.getCid(grantProto1.recordsWrite.message),
|
|
365
|
-
]);
|
|
365
|
+
]));
|
|
366
366
|
// check for proto2 messages
|
|
367
|
-
expect(proto2Messages.length).
|
|
368
|
-
expect(proto2Messages).
|
|
367
|
+
expect(proto2Messages.length).toBe(4);
|
|
368
|
+
expect(proto2Messages).toEqual(expect.arrayContaining([
|
|
369
369
|
yield Message.getCid(protoConf2.message),
|
|
370
370
|
yield Message.getCid(write1proto2.message),
|
|
371
371
|
yield Message.getCid(requestProto2.recordsWrite.message),
|
|
372
372
|
yield Message.getCid(grantProto2.recordsWrite.message),
|
|
373
|
-
]);
|
|
373
|
+
]));
|
|
374
374
|
}));
|
|
375
375
|
// delete proto1 message
|
|
376
376
|
const deleteProto1Message = yield TestDataGenerator.generateRecordsDelete({ author: alice, recordId: write1proto1.message.recordId });
|
|
377
377
|
const deleteProto1MessageReply = yield dwn.processMessage(alice.did, deleteProto1Message.message);
|
|
378
|
-
expect(deleteProto1MessageReply.status.code).
|
|
378
|
+
expect(deleteProto1MessageReply.status.code).toBe(202);
|
|
379
379
|
// delete proto2 message
|
|
380
380
|
const deleteProto2Message = yield TestDataGenerator.generateRecordsDelete({ author: alice, recordId: write1proto2.message.recordId });
|
|
381
381
|
const deleteProto2MessageReply = yield dwn.processMessage(alice.did, deleteProto2Message.message);
|
|
382
|
-
expect(deleteProto2MessageReply.status.code).
|
|
382
|
+
expect(deleteProto2MessageReply.status.code).toBe(202);
|
|
383
383
|
// revoke permissions for proto1
|
|
384
384
|
const revokeProto1 = yield PermissionsProtocol.createRevocation({
|
|
385
385
|
signer: Jws.createSigner(alice),
|
|
386
386
|
grant: yield PermissionGrant.parse(grantProto1.dataEncodedMessage),
|
|
387
387
|
});
|
|
388
388
|
const revokeProto1Response = yield dwn.processMessage(alice.did, revokeProto1.recordsWrite.message, { dataStream: DataStream.fromBytes(revokeProto1.permissionRevocationBytes) });
|
|
389
|
-
expect(revokeProto1Response.status.code).
|
|
389
|
+
expect(revokeProto1Response.status.code).toBe(202);
|
|
390
390
|
// revoke permissions for proto2
|
|
391
391
|
const revokeProto2 = yield PermissionsProtocol.createRevocation({
|
|
392
392
|
signer: Jws.createSigner(alice),
|
|
393
393
|
grant: yield PermissionGrant.parse(grantProto2.dataEncodedMessage),
|
|
394
394
|
});
|
|
395
395
|
const revokeProto2Response = yield dwn.processMessage(alice.did, revokeProto2.recordsWrite.message, { dataStream: DataStream.fromBytes(revokeProto2.permissionRevocationBytes) });
|
|
396
|
-
expect(revokeProto2Response.status.code).
|
|
396
|
+
expect(revokeProto2Response.status.code).toBe(202);
|
|
397
397
|
// poll until the messages are received by the handlers
|
|
398
398
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
399
399
|
// check for the delete and revocation in proto1 messages
|
|
400
|
-
expect(proto1Messages.length).
|
|
401
|
-
expect(proto1Messages).
|
|
400
|
+
expect(proto1Messages.length).toBe(6); // 2 additional messages
|
|
401
|
+
expect(proto1Messages).toEqual(expect.arrayContaining([
|
|
402
402
|
yield Message.getCid(deleteProto1Message.message),
|
|
403
403
|
yield Message.getCid(revokeProto1.recordsWrite.message),
|
|
404
|
-
]);
|
|
404
|
+
]));
|
|
405
405
|
// check for the delete and revocation in proto2 messages
|
|
406
|
-
expect(proto2Messages.length).
|
|
407
|
-
expect(proto2Messages).
|
|
406
|
+
expect(proto2Messages.length).toBe(6); // 2 additional messages
|
|
407
|
+
expect(proto2Messages).toEqual(expect.arrayContaining([
|
|
408
408
|
yield Message.getCid(deleteProto2Message.message),
|
|
409
409
|
yield Message.getCid(revokeProto2.recordsWrite.message),
|
|
410
|
-
]);
|
|
410
|
+
]));
|
|
411
411
|
}));
|
|
412
412
|
}));
|
|
413
413
|
it('does not emit events after subscription is closed', () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -433,45 +433,45 @@ export function testSubscriptionScenarios() {
|
|
|
433
433
|
// subscribe to all messages
|
|
434
434
|
const messagesSubscription1 = yield TestDataGenerator.generateMessagesSubscribe({ author: alice });
|
|
435
435
|
const messagesSubscription1Reply = yield dwn.processMessage(alice.did, messagesSubscription1.message, { subscriptionHandler: handler1 });
|
|
436
|
-
expect(messagesSubscription1Reply.status.code).
|
|
436
|
+
expect(messagesSubscription1Reply.status.code).toBe(200);
|
|
437
437
|
const messagesSubscription2 = yield TestDataGenerator.generateMessagesSubscribe({ author: alice });
|
|
438
438
|
const messagesSubscription2Reply = yield dwn.processMessage(alice.did, messagesSubscription2.message, { subscriptionHandler: handler2 });
|
|
439
|
-
expect(messagesSubscription2Reply.status.code).
|
|
439
|
+
expect(messagesSubscription2Reply.status.code).toBe(200);
|
|
440
440
|
// no event message exist yet
|
|
441
|
-
expect(sub1MessageCids.length).
|
|
442
|
-
expect(sub2MessageCids.length).
|
|
441
|
+
expect(sub1MessageCids.length).toBe(0);
|
|
442
|
+
expect(sub2MessageCids.length).toBe(0);
|
|
443
443
|
// write a record
|
|
444
444
|
const record1 = yield TestDataGenerator.generateRecordsWrite({ author: alice });
|
|
445
445
|
const record1Reply = yield dwn.processMessage(alice.did, record1.message, { dataStream: record1.dataStream });
|
|
446
|
-
expect(record1Reply.status.code).
|
|
446
|
+
expect(record1Reply.status.code).toBe(202);
|
|
447
447
|
const record1MessageCid = yield Message.getCid(record1.message);
|
|
448
448
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
449
449
|
// both subscriptions should have received the message
|
|
450
|
-
expect(sub1MessageCids.length).
|
|
451
|
-
expect(sub1MessageCids).
|
|
452
|
-
expect(sub2MessageCids.length).
|
|
453
|
-
expect(sub2MessageCids).
|
|
450
|
+
expect(sub1MessageCids.length).toBe(1); // message exists
|
|
451
|
+
expect(sub1MessageCids).toEqual([record1MessageCid]);
|
|
452
|
+
expect(sub2MessageCids.length).toBe(1); // message exists
|
|
453
|
+
expect(sub2MessageCids).toEqual([record1MessageCid]);
|
|
454
454
|
}));
|
|
455
455
|
// unsubscribe from subscription 2
|
|
456
456
|
yield messagesSubscription2Reply.subscription.close();
|
|
457
457
|
// write two more message.
|
|
458
458
|
const record2 = yield TestDataGenerator.generateRecordsWrite({ author: alice });
|
|
459
459
|
const record2Reply = yield dwn.processMessage(alice.did, record2.message, { dataStream: record2.dataStream });
|
|
460
|
-
expect(record2Reply.status.code).
|
|
460
|
+
expect(record2Reply.status.code).toBe(202);
|
|
461
461
|
const record2MessageCid = yield Message.getCid(record2.message);
|
|
462
462
|
const record3 = yield TestDataGenerator.generateRecordsWrite({ author: alice });
|
|
463
463
|
const record3Reply = yield dwn.processMessage(alice.did, record3.message, { dataStream: record3.dataStream });
|
|
464
|
-
expect(record3Reply.status.code).
|
|
464
|
+
expect(record3Reply.status.code).toBe(202);
|
|
465
465
|
const record3MessageCid = yield Message.getCid(record3.message);
|
|
466
466
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
467
|
-
expect(sub1MessageCids.length).
|
|
468
|
-
expect(sub1MessageCids).
|
|
467
|
+
expect(sub1MessageCids.length).toBe(3); // all three messages exist
|
|
468
|
+
expect(sub1MessageCids).toEqual([
|
|
469
469
|
record1MessageCid,
|
|
470
470
|
record2MessageCid,
|
|
471
471
|
record3MessageCid
|
|
472
472
|
]);
|
|
473
|
-
expect(sub2MessageCids.length).
|
|
474
|
-
expect(sub2MessageCids).
|
|
473
|
+
expect(sub2MessageCids.length).toBe(1); // only the first message exists
|
|
474
|
+
expect(sub2MessageCids).toEqual([record1MessageCid]);
|
|
475
475
|
}));
|
|
476
476
|
}));
|
|
477
477
|
});
|
|
@@ -494,7 +494,7 @@ export function testSubscriptionScenarios() {
|
|
|
494
494
|
author: alice,
|
|
495
495
|
});
|
|
496
496
|
const allSubscriptionReply = yield dwn.processMessage(alice.did, allSubscription.message, { subscriptionHandler: allHandler });
|
|
497
|
-
expect(allSubscriptionReply.status.code).
|
|
497
|
+
expect(allSubscriptionReply.status.code).toBe(200);
|
|
498
498
|
// we create an anonymous subscription to capture only published messages
|
|
499
499
|
const publishedMessages = [];
|
|
500
500
|
const anonymousSubscriptionHandler = (event) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -508,34 +508,34 @@ export function testSubscriptionScenarios() {
|
|
|
508
508
|
const anonymousSubscriptionReply = yield dwn.processMessage(alice.did, anonymousSubscription.message, {
|
|
509
509
|
subscriptionHandler: anonymousSubscriptionHandler
|
|
510
510
|
});
|
|
511
|
-
expect(anonymousSubscriptionReply.status.code).
|
|
512
|
-
expect(anonymousSubscriptionReply.subscription).
|
|
511
|
+
expect(anonymousSubscriptionReply.status.code).toBe(200);
|
|
512
|
+
expect(anonymousSubscriptionReply.subscription).toBeDefined();
|
|
513
513
|
// we create a non published record, this will only show up in the control subscription
|
|
514
514
|
const writeNotPublished = yield TestDataGenerator.generateRecordsWrite({ author: alice, schema: 'http://schema1' });
|
|
515
515
|
const writeNotPublishedReply = yield dwn.processMessage(alice.did, writeNotPublished.message, { dataStream: writeNotPublished.dataStream });
|
|
516
|
-
expect(writeNotPublishedReply.status.code).
|
|
516
|
+
expect(writeNotPublishedReply.status.code).toBe(202);
|
|
517
517
|
// we create a published record, this will show up in both the control and anonymous subscription
|
|
518
518
|
const write1 = yield TestDataGenerator.generateRecordsWrite({ author: alice, schema: 'http://schema1', published: true });
|
|
519
519
|
const write1Reply = yield dwn.processMessage(alice.did, write1.message, { dataStream: write1.dataStream });
|
|
520
|
-
expect(write1Reply.status.code).
|
|
520
|
+
expect(write1Reply.status.code).toBe(202);
|
|
521
521
|
// we create another published record, this will show up in both the control and anonymous subscription
|
|
522
522
|
const write2 = yield TestDataGenerator.generateRecordsWrite({ author: alice, schema: 'http://schema1', published: true });
|
|
523
523
|
const write2Reply = yield dwn.processMessage(alice.did, write2.message, { dataStream: write2.dataStream });
|
|
524
|
-
expect(write2Reply.status.code).
|
|
524
|
+
expect(write2Reply.status.code).toBe(202);
|
|
525
525
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
526
526
|
// publishedMessages array should only contain the two published messages
|
|
527
|
-
expect(publishedMessages.length).
|
|
528
|
-
expect(publishedMessages).
|
|
527
|
+
expect(publishedMessages.length).toBe(2);
|
|
528
|
+
expect(publishedMessages).toEqual(expect.arrayContaining([
|
|
529
529
|
yield Message.getCid(write1.message),
|
|
530
530
|
yield Message.getCid(write2.message),
|
|
531
|
-
]);
|
|
531
|
+
]));
|
|
532
532
|
// allMessages array should contain all three messages
|
|
533
|
-
expect(allMessages.length).
|
|
534
|
-
expect(allMessages).
|
|
533
|
+
expect(allMessages.length).toBe(3);
|
|
534
|
+
expect(allMessages).toEqual(expect.arrayContaining([
|
|
535
535
|
yield Message.getCid(writeNotPublished.message),
|
|
536
536
|
yield Message.getCid(write1.message),
|
|
537
537
|
yield Message.getCid(write2.message),
|
|
538
|
-
]);
|
|
538
|
+
]));
|
|
539
539
|
}));
|
|
540
540
|
}));
|
|
541
541
|
it('allows authorized subscriptions to records intended for a recipient', () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -546,7 +546,7 @@ export function testSubscriptionScenarios() {
|
|
|
546
546
|
protocolDefinition: Object.assign({}, freeForAll)
|
|
547
547
|
});
|
|
548
548
|
const protocolConfigureReply = yield dwn.processMessage(alice.did, protocolConfigure.message);
|
|
549
|
-
expect(protocolConfigureReply.status.code).
|
|
549
|
+
expect(protocolConfigureReply.status.code).toBe(202);
|
|
550
550
|
const bob = yield TestDataGenerator.generateDidKeyPersona();
|
|
551
551
|
const carol = yield TestDataGenerator.generateDidKeyPersona();
|
|
552
552
|
// bob subscribes to all records he's authorized to see, with alice as the recipient
|
|
@@ -562,8 +562,8 @@ export function testSubscriptionScenarios() {
|
|
|
562
562
|
const bobSubscribeReply = yield dwn.processMessage(alice.did, bobSubscribeToAlice.message, {
|
|
563
563
|
subscriptionHandler: bobSubscribeHandler
|
|
564
564
|
});
|
|
565
|
-
expect(bobSubscribeReply.status.code).
|
|
566
|
-
expect(bobSubscribeReply.subscription).
|
|
565
|
+
expect(bobSubscribeReply.status.code).toBe(200);
|
|
566
|
+
expect(bobSubscribeReply.subscription).toBeDefined();
|
|
567
567
|
// carol subscribes to any messages that she or alice are the recipients of
|
|
568
568
|
const carolSubscribeCarolAndAlice = [];
|
|
569
569
|
const carolSubscribeHandler = (event) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -577,8 +577,8 @@ export function testSubscriptionScenarios() {
|
|
|
577
577
|
const carolSubscribeReply = yield dwn.processMessage(alice.did, carolSubscribeToCarolAndAlice.message, {
|
|
578
578
|
subscriptionHandler: carolSubscribeHandler
|
|
579
579
|
});
|
|
580
|
-
expect(carolSubscribeReply.status.code).
|
|
581
|
-
expect(carolSubscribeReply.subscription).
|
|
580
|
+
expect(carolSubscribeReply.status.code).toBe(200);
|
|
581
|
+
expect(carolSubscribeReply.subscription).toBeDefined();
|
|
582
582
|
const recordParams = {
|
|
583
583
|
protocol: freeForAll.protocol,
|
|
584
584
|
protocolPath: 'post',
|
|
@@ -588,42 +588,42 @@ export function testSubscriptionScenarios() {
|
|
|
588
588
|
// write a private and public message for alice from bob
|
|
589
589
|
const publicBobToAlice = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: alice.did, published: true }));
|
|
590
590
|
const publicBobToAliceReply = yield dwn.processMessage(alice.did, publicBobToAlice.message, { dataStream: publicBobToAlice.dataStream });
|
|
591
|
-
expect(publicBobToAliceReply.status.code).
|
|
591
|
+
expect(publicBobToAliceReply.status.code).toBe(202);
|
|
592
592
|
const privateBobToAlice = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: alice.did, published: false }));
|
|
593
593
|
const privateBobToAliceReply = yield dwn.processMessage(alice.did, privateBobToAlice.message, { dataStream: privateBobToAlice.dataStream });
|
|
594
|
-
expect(privateBobToAliceReply.status.code).
|
|
594
|
+
expect(privateBobToAliceReply.status.code).toBe(202);
|
|
595
595
|
// write a private message for alice from carol
|
|
596
596
|
const privateCarolToAlice = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: carol, recipient: alice.did, published: false }));
|
|
597
597
|
const privateCarolToAliceReply = yield dwn.processMessage(alice.did, privateCarolToAlice.message, {
|
|
598
598
|
dataStream: privateCarolToAlice.dataStream
|
|
599
599
|
});
|
|
600
|
-
expect(privateCarolToAliceReply.status.code).
|
|
600
|
+
expect(privateCarolToAliceReply.status.code).toBe(202);
|
|
601
601
|
// write a public and private message from bob to carol
|
|
602
602
|
const publicBobToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: carol.did, published: true }));
|
|
603
603
|
const publicBobToCarolReply = yield dwn.processMessage(alice.did, publicBobToCarol.message, {
|
|
604
604
|
dataStream: publicBobToCarol.dataStream
|
|
605
605
|
});
|
|
606
|
-
expect(publicBobToCarolReply.status.code).
|
|
606
|
+
expect(publicBobToCarolReply.status.code).toBe(202);
|
|
607
607
|
const privateBobToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: carol.did, published: false }));
|
|
608
608
|
const privateBobToCarolReply = yield dwn.processMessage(alice.did, privateBobToCarol.message, {
|
|
609
609
|
dataStream: privateBobToCarol.dataStream
|
|
610
610
|
});
|
|
611
|
-
expect(privateBobToCarolReply.status.code).
|
|
611
|
+
expect(privateBobToCarolReply.status.code).toBe(202);
|
|
612
612
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
613
613
|
// carol should have received the message intended for her
|
|
614
|
-
expect(carolSubscribeCarolAndAlice.length).
|
|
615
|
-
expect(carolSubscribeCarolAndAlice).
|
|
614
|
+
expect(carolSubscribeCarolAndAlice.length).toBe(4);
|
|
615
|
+
expect(carolSubscribeCarolAndAlice).toEqual(expect.arrayContaining([
|
|
616
616
|
yield Message.getCid(publicBobToAlice.message),
|
|
617
617
|
yield Message.getCid(privateCarolToAlice.message),
|
|
618
618
|
yield Message.getCid(publicBobToCarol.message),
|
|
619
619
|
yield Message.getCid(privateBobToCarol.message),
|
|
620
|
-
]);
|
|
620
|
+
]));
|
|
621
621
|
// bob should have received the two messages intended for him
|
|
622
|
-
expect(bobSubscribeAlice.length).
|
|
623
|
-
expect(bobSubscribeAlice).
|
|
622
|
+
expect(bobSubscribeAlice.length).toBe(2);
|
|
623
|
+
expect(bobSubscribeAlice).toEqual(expect.arrayContaining([
|
|
624
624
|
yield Message.getCid(privateBobToAlice.message),
|
|
625
625
|
yield Message.getCid(publicBobToAlice.message),
|
|
626
|
-
]);
|
|
626
|
+
]));
|
|
627
627
|
}));
|
|
628
628
|
}));
|
|
629
629
|
it('allows for authorized subscriptions to records authored by an author(s)', () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -634,7 +634,7 @@ export function testSubscriptionScenarios() {
|
|
|
634
634
|
protocolDefinition: Object.assign({}, freeForAll)
|
|
635
635
|
});
|
|
636
636
|
const protocolConfigureReply = yield dwn.processMessage(alice.did, protocolConfigure.message);
|
|
637
|
-
expect(protocolConfigureReply.status.code).
|
|
637
|
+
expect(protocolConfigureReply.status.code).toBe(202);
|
|
638
638
|
const bob = yield TestDataGenerator.generateDidKeyPersona();
|
|
639
639
|
const carol = yield TestDataGenerator.generateDidKeyPersona();
|
|
640
640
|
// bob subscribes to all records he's authorized to see, with alice as the author
|
|
@@ -650,8 +650,8 @@ export function testSubscriptionScenarios() {
|
|
|
650
650
|
const bobSubscribeReply = yield dwn.processMessage(alice.did, bobSubscribeToAlice.message, {
|
|
651
651
|
subscriptionHandler: bobSubscribeHandler
|
|
652
652
|
});
|
|
653
|
-
expect(bobSubscribeReply.status.code).
|
|
654
|
-
expect(bobSubscribeReply.subscription).
|
|
653
|
+
expect(bobSubscribeReply.status.code).toBe(200);
|
|
654
|
+
expect(bobSubscribeReply.subscription).toBeDefined();
|
|
655
655
|
// carol subscribes to any messages that she or alice are the authors of
|
|
656
656
|
const carolSubscribeCarolAndAlice = [];
|
|
657
657
|
const carolSubscribeHandler = (event) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -665,8 +665,8 @@ export function testSubscriptionScenarios() {
|
|
|
665
665
|
const carolSubscribeReply = yield dwn.processMessage(alice.did, carolSubscribeToCarolAndAlice.message, {
|
|
666
666
|
subscriptionHandler: carolSubscribeHandler
|
|
667
667
|
});
|
|
668
|
-
expect(carolSubscribeReply.status.code).
|
|
669
|
-
expect(carolSubscribeReply.subscription).
|
|
668
|
+
expect(carolSubscribeReply.status.code).toBe(200);
|
|
669
|
+
expect(carolSubscribeReply.subscription).toBeDefined();
|
|
670
670
|
const recordParams = {
|
|
671
671
|
protocol: freeForAll.protocol,
|
|
672
672
|
protocolPath: 'post',
|
|
@@ -678,50 +678,50 @@ export function testSubscriptionScenarios() {
|
|
|
678
678
|
const publicAliceToBobReply = yield dwn.processMessage(alice.did, publicAliceToBob.message, {
|
|
679
679
|
dataStream: publicAliceToBob.dataStream
|
|
680
680
|
});
|
|
681
|
-
expect(publicAliceToBobReply.status.code).
|
|
681
|
+
expect(publicAliceToBobReply.status.code).toBe(202);
|
|
682
682
|
// write a private and public message from alice to carol
|
|
683
683
|
const publicAliceToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: alice, recipient: carol.did, published: true }));
|
|
684
684
|
const publicAliceToCarolReply = yield dwn.processMessage(alice.did, publicAliceToCarol.message, {
|
|
685
685
|
dataStream: publicAliceToCarol.dataStream
|
|
686
686
|
});
|
|
687
|
-
expect(publicAliceToCarolReply.status.code).
|
|
687
|
+
expect(publicAliceToCarolReply.status.code).toBe(202);
|
|
688
688
|
const privateAliceToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: alice, recipient: carol.did, published: false }));
|
|
689
689
|
const privateAliceToCarolReply = yield dwn.processMessage(alice.did, privateAliceToCarol.message, {
|
|
690
690
|
dataStream: privateAliceToCarol.dataStream
|
|
691
691
|
});
|
|
692
|
-
expect(privateAliceToCarolReply.status.code).
|
|
692
|
+
expect(privateAliceToCarolReply.status.code).toBe(202);
|
|
693
693
|
// write a private message for alice from carol
|
|
694
694
|
const privateCarolToAlice = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: carol, recipient: alice.did, published: false }));
|
|
695
695
|
const privateCarolToAliceReply = yield dwn.processMessage(alice.did, privateCarolToAlice.message, {
|
|
696
696
|
dataStream: privateCarolToAlice.dataStream
|
|
697
697
|
});
|
|
698
|
-
expect(privateCarolToAliceReply.status.code).
|
|
698
|
+
expect(privateCarolToAliceReply.status.code).toBe(202);
|
|
699
699
|
// write a public and private message from bob to carol
|
|
700
700
|
const publicBobToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: carol.did, published: true }));
|
|
701
701
|
const publicBobToCarolReply = yield dwn.processMessage(alice.did, publicBobToCarol.message, {
|
|
702
702
|
dataStream: publicBobToCarol.dataStream
|
|
703
703
|
});
|
|
704
|
-
expect(publicBobToCarolReply.status.code).
|
|
704
|
+
expect(publicBobToCarolReply.status.code).toBe(202);
|
|
705
705
|
const privateBobToCarol = yield TestDataGenerator.generateRecordsWrite(Object.assign(Object.assign({}, recordParams), { author: bob, recipient: carol.did, published: false }));
|
|
706
706
|
const privateBobToCarolReply = yield dwn.processMessage(alice.did, privateBobToCarol.message, {
|
|
707
707
|
dataStream: privateBobToCarol.dataStream
|
|
708
708
|
});
|
|
709
|
-
expect(privateBobToCarolReply.status.code).
|
|
709
|
+
expect(privateBobToCarolReply.status.code).toBe(202);
|
|
710
710
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
711
711
|
// carol should have received the message intended for her
|
|
712
|
-
expect(carolSubscribeCarolAndAlice.length).
|
|
713
|
-
expect(carolSubscribeCarolAndAlice).
|
|
712
|
+
expect(carolSubscribeCarolAndAlice.length).toBe(4);
|
|
713
|
+
expect(carolSubscribeCarolAndAlice).toEqual(expect.arrayContaining([
|
|
714
714
|
yield Message.getCid(publicAliceToCarol.message),
|
|
715
715
|
yield Message.getCid(privateAliceToCarol.message),
|
|
716
716
|
yield Message.getCid(publicAliceToBob.message),
|
|
717
717
|
yield Message.getCid(privateCarolToAlice.message),
|
|
718
|
-
]);
|
|
718
|
+
]));
|
|
719
719
|
// bob should have received the two messages intended for him
|
|
720
|
-
expect(bobSubscribeAlice.length).
|
|
721
|
-
expect(bobSubscribeAlice).
|
|
720
|
+
expect(bobSubscribeAlice.length).toBe(2);
|
|
721
|
+
expect(bobSubscribeAlice).toEqual(expect.arrayContaining([
|
|
722
722
|
yield Message.getCid(publicAliceToBob.message),
|
|
723
723
|
yield Message.getCid(publicAliceToCarol.message)
|
|
724
|
-
]);
|
|
724
|
+
]));
|
|
725
725
|
}));
|
|
726
726
|
}));
|
|
727
727
|
it('filters by protocol & contextId across multiple protocolPaths', () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -741,7 +741,7 @@ export function testSubscriptionScenarios() {
|
|
|
741
741
|
protocolDefinition: Object.assign({}, threadProtocol)
|
|
742
742
|
});
|
|
743
743
|
const protocolConfigureReply = yield dwn.processMessage(alice.did, protocolConfigure.message);
|
|
744
|
-
expect(protocolConfigureReply.status.code).
|
|
744
|
+
expect(protocolConfigureReply.status.code).toBe(202);
|
|
745
745
|
const protocol = protocolConfigure.message.descriptor.definition.protocol;
|
|
746
746
|
// alice creates thread
|
|
747
747
|
const thread = yield TestDataGenerator.generateRecordsWrite({
|
|
@@ -750,7 +750,7 @@ export function testSubscriptionScenarios() {
|
|
|
750
750
|
protocolPath: 'thread'
|
|
751
751
|
});
|
|
752
752
|
const threadReply = yield dwn.processMessage(alice.did, thread.message, { dataStream: thread.dataStream });
|
|
753
|
-
expect(threadReply.status.code).
|
|
753
|
+
expect(threadReply.status.code).toBe(202);
|
|
754
754
|
// subscribe to this thread's messages
|
|
755
755
|
const messages = [];
|
|
756
756
|
const initialWrites = [];
|
|
@@ -768,8 +768,8 @@ export function testSubscriptionScenarios() {
|
|
|
768
768
|
const threadSubscriptionReply = yield dwn.processMessage(alice.did, threadSubscription.message, {
|
|
769
769
|
subscriptionHandler
|
|
770
770
|
});
|
|
771
|
-
expect(threadSubscriptionReply.status.code).
|
|
772
|
-
expect(threadSubscriptionReply.subscription).
|
|
771
|
+
expect(threadSubscriptionReply.status.code).toBe(200);
|
|
772
|
+
expect(threadSubscriptionReply.subscription).toBeDefined();
|
|
773
773
|
const participantSubscription = yield TestDataGenerator.generateRecordsSubscribe({
|
|
774
774
|
author: alice,
|
|
775
775
|
filter: { protocol: protocol, protocolPath: 'thread/participant', contextId: thread.message.contextId }, // participant updates
|
|
@@ -777,8 +777,8 @@ export function testSubscriptionScenarios() {
|
|
|
777
777
|
const participantSubscriptionReply = yield dwn.processMessage(alice.did, participantSubscription.message, {
|
|
778
778
|
subscriptionHandler
|
|
779
779
|
});
|
|
780
|
-
expect(participantSubscriptionReply.status.code).
|
|
781
|
-
expect(participantSubscriptionReply.subscription).
|
|
780
|
+
expect(participantSubscriptionReply.status.code).toBe(200);
|
|
781
|
+
expect(participantSubscriptionReply.subscription).toBeDefined();
|
|
782
782
|
const chatSubscription = yield TestDataGenerator.generateRecordsSubscribe({
|
|
783
783
|
author: alice,
|
|
784
784
|
filter: { protocol: protocol, protocolPath: 'thread/chat', contextId: thread.message.contextId } // chat updates
|
|
@@ -786,8 +786,8 @@ export function testSubscriptionScenarios() {
|
|
|
786
786
|
const chatSubscriptionReply = yield dwn.processMessage(alice.did, chatSubscription.message, {
|
|
787
787
|
subscriptionHandler
|
|
788
788
|
});
|
|
789
|
-
expect(chatSubscriptionReply.status.code).
|
|
790
|
-
expect(chatSubscriptionReply.subscription).
|
|
789
|
+
expect(chatSubscriptionReply.status.code).toBe(200);
|
|
790
|
+
expect(chatSubscriptionReply.subscription).toBeDefined();
|
|
791
791
|
// add bob as participant
|
|
792
792
|
const bobParticipant = yield TestDataGenerator.generateRecordsWrite({
|
|
793
793
|
author: alice,
|
|
@@ -797,7 +797,7 @@ export function testSubscriptionScenarios() {
|
|
|
797
797
|
protocolPath: 'thread/participant'
|
|
798
798
|
});
|
|
799
799
|
const bobParticipantReply = yield dwn.processMessage(alice.did, bobParticipant.message, { dataStream: bobParticipant.dataStream });
|
|
800
|
-
expect(bobParticipantReply.status.code).
|
|
800
|
+
expect(bobParticipantReply.status.code).toBe(202);
|
|
801
801
|
// add carol as participant
|
|
802
802
|
const carolParticipant = yield TestDataGenerator.generateRecordsWrite({
|
|
803
803
|
author: alice,
|
|
@@ -807,7 +807,7 @@ export function testSubscriptionScenarios() {
|
|
|
807
807
|
protocolPath: 'thread/participant'
|
|
808
808
|
});
|
|
809
809
|
const carolParticipantReply = yield dwn.processMessage(alice.did, carolParticipant.message, { dataStream: carolParticipant.dataStream });
|
|
810
|
-
expect(carolParticipantReply.status.code).
|
|
810
|
+
expect(carolParticipantReply.status.code).toBe(202);
|
|
811
811
|
// add another thread as a control, will not show up in handled message events
|
|
812
812
|
const additionalThread = yield TestDataGenerator.generateRecordsWrite({
|
|
813
813
|
author: alice,
|
|
@@ -815,13 +815,13 @@ export function testSubscriptionScenarios() {
|
|
|
815
815
|
protocolPath: 'thread'
|
|
816
816
|
});
|
|
817
817
|
const additionalThreadReply = yield dwn.processMessage(alice.did, additionalThread.message, { dataStream: additionalThread.dataStream });
|
|
818
|
-
expect(additionalThreadReply.status.code).
|
|
818
|
+
expect(additionalThreadReply.status.code).toBe(202);
|
|
819
819
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
820
|
-
expect(messages.length).
|
|
821
|
-
expect(messages).
|
|
820
|
+
expect(messages.length).toBe(2);
|
|
821
|
+
expect(messages).toEqual(expect.arrayContaining([
|
|
822
822
|
yield Message.getCid(bobParticipant.message),
|
|
823
823
|
yield Message.getCid(carolParticipant.message),
|
|
824
|
-
]);
|
|
824
|
+
]));
|
|
825
825
|
}));
|
|
826
826
|
// add a message to protocol1
|
|
827
827
|
const message1 = yield TestDataGenerator.generateRecordsWrite({
|
|
@@ -833,7 +833,7 @@ export function testSubscriptionScenarios() {
|
|
|
833
833
|
protocolRole: 'thread/participant',
|
|
834
834
|
});
|
|
835
835
|
const message1Reply = yield dwn.processMessage(alice.did, message1.message, { dataStream: message1.dataStream });
|
|
836
|
-
expect(message1Reply.status.code).
|
|
836
|
+
expect(message1Reply.status.code).toBe(202);
|
|
837
837
|
const message2 = yield TestDataGenerator.generateRecordsWrite({
|
|
838
838
|
author: bob,
|
|
839
839
|
recipient: alice.did,
|
|
@@ -843,7 +843,7 @@ export function testSubscriptionScenarios() {
|
|
|
843
843
|
protocolRole: 'thread/participant',
|
|
844
844
|
});
|
|
845
845
|
const message2Reply = yield dwn.processMessage(alice.did, message2.message, { dataStream: message2.dataStream });
|
|
846
|
-
expect(message2Reply.status.code).
|
|
846
|
+
expect(message2Reply.status.code).toBe(202);
|
|
847
847
|
const message3 = yield TestDataGenerator.generateRecordsWrite({
|
|
848
848
|
author: carol,
|
|
849
849
|
recipient: alice.did,
|
|
@@ -853,14 +853,14 @@ export function testSubscriptionScenarios() {
|
|
|
853
853
|
protocolRole: 'thread/participant',
|
|
854
854
|
});
|
|
855
855
|
const message3Reply = yield dwn.processMessage(alice.did, message3.message, { dataStream: message3.dataStream });
|
|
856
|
-
expect(message3Reply.status.code).
|
|
856
|
+
expect(message3Reply.status.code).toBe(202);
|
|
857
857
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
858
|
-
expect(messages.length).
|
|
859
|
-
expect(messages).
|
|
858
|
+
expect(messages.length).toBe(5);
|
|
859
|
+
expect(messages).toEqual(expect.arrayContaining([
|
|
860
860
|
yield Message.getCid(message1.message),
|
|
861
861
|
yield Message.getCid(message2.message),
|
|
862
862
|
yield Message.getCid(message3.message),
|
|
863
|
-
]);
|
|
863
|
+
]));
|
|
864
864
|
}));
|
|
865
865
|
// delete carol participant
|
|
866
866
|
const deleteCarol = yield TestDataGenerator.generateRecordsDelete({
|
|
@@ -868,16 +868,16 @@ export function testSubscriptionScenarios() {
|
|
|
868
868
|
recordId: carolParticipant.message.recordId
|
|
869
869
|
});
|
|
870
870
|
const deleteCarolReply = yield dwn.processMessage(alice.did, deleteCarol.message);
|
|
871
|
-
expect(deleteCarolReply.status.code).
|
|
871
|
+
expect(deleteCarolReply.status.code).toBe(202);
|
|
872
872
|
yield Poller.pollUntilSuccessOrTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
873
|
-
expect(messages.length).
|
|
874
|
-
expect(messages).
|
|
873
|
+
expect(messages.length).toBe(6);
|
|
874
|
+
expect(messages).toEqual(expect.arrayContaining([
|
|
875
875
|
yield Message.getCid(deleteCarol.message)
|
|
876
|
-
]);
|
|
876
|
+
]));
|
|
877
877
|
// check the initial write was included with the delete
|
|
878
|
-
expect(initialWrites).
|
|
878
|
+
expect(initialWrites).toEqual(expect.arrayContaining([
|
|
879
879
|
yield Message.getCid(carolParticipant.message)
|
|
880
|
-
]);
|
|
880
|
+
]));
|
|
881
881
|
}));
|
|
882
882
|
}));
|
|
883
883
|
});
|