@enbox/dwn-sdk-js 0.0.2 → 0.0.4
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 +27 -46
- 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
|
@@ -8,9 +8,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { DataStream } from '../../src/index.js';
|
|
11
|
-
import chaiAsPromised from 'chai-as-promised';
|
|
12
11
|
import sinon from 'sinon';
|
|
13
|
-
import
|
|
12
|
+
import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'bun:test';
|
|
14
13
|
import { Dwn } from '../../src/dwn.js';
|
|
15
14
|
import { Jws } from '../../src/utils/jws.js';
|
|
16
15
|
import { ProtocolsConfigure } from '../../src/interfaces/protocols-configure.js';
|
|
@@ -20,7 +19,6 @@ import { TestDataGenerator } from '../utils/test-data-generator.js';
|
|
|
20
19
|
import { TestEventStream } from '../test-event-stream.js';
|
|
21
20
|
import { TestStores } from '../test-stores.js';
|
|
22
21
|
import { DidKey, UniversalResolver } from '@enbox/dids';
|
|
23
|
-
chai.use(chaiAsPromised);
|
|
24
22
|
// This is a test suite that demonstrates how to use the DWN to create aggregators
|
|
25
23
|
// Aggregators allows multiple authors to write records to the aggregator's DID based on a role
|
|
26
24
|
//
|
|
@@ -31,7 +29,7 @@ describe('Aggregator Model', () => {
|
|
|
31
29
|
let messageStore;
|
|
32
30
|
let dataStore;
|
|
33
31
|
let resumableTaskStore;
|
|
34
|
-
let
|
|
32
|
+
let stateIndex;
|
|
35
33
|
let eventStream;
|
|
36
34
|
let dwn;
|
|
37
35
|
const protocol = 'https://example.org/notes';
|
|
@@ -76,17 +74,17 @@ describe('Aggregator Model', () => {
|
|
|
76
74
|
}
|
|
77
75
|
}
|
|
78
76
|
};
|
|
79
|
-
// important to follow the `
|
|
77
|
+
// important to follow the `beforeAll` and `afterAll` pattern to initialize and clean the stores in tests
|
|
80
78
|
// so that different test suites can reuse the same backend store for testing
|
|
81
|
-
|
|
79
|
+
beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
82
80
|
didResolver = new UniversalResolver({ didResolvers: [DidKey] });
|
|
83
81
|
const stores = TestStores.get();
|
|
84
82
|
messageStore = stores.messageStore;
|
|
85
83
|
dataStore = stores.dataStore;
|
|
86
84
|
resumableTaskStore = stores.resumableTaskStore;
|
|
87
|
-
|
|
85
|
+
stateIndex = stores.stateIndex;
|
|
88
86
|
eventStream = TestEventStream.get();
|
|
89
|
-
dwn = yield Dwn.create({ didResolver, messageStore, dataStore,
|
|
87
|
+
dwn = yield Dwn.create({ didResolver, messageStore, dataStore, stateIndex, eventStream, resumableTaskStore });
|
|
90
88
|
}));
|
|
91
89
|
beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
92
90
|
sinon.restore(); // wipe all previous stubs/spies/mocks/fakes
|
|
@@ -94,9 +92,9 @@ describe('Aggregator Model', () => {
|
|
|
94
92
|
yield messageStore.clear();
|
|
95
93
|
yield dataStore.clear();
|
|
96
94
|
yield resumableTaskStore.clear();
|
|
97
|
-
yield
|
|
95
|
+
yield stateIndex.clear();
|
|
98
96
|
}));
|
|
99
|
-
|
|
97
|
+
afterAll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
100
98
|
yield dwn.close();
|
|
101
99
|
}));
|
|
102
100
|
it('should support querying from multiple authors', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -117,7 +115,7 @@ describe('Aggregator Model', () => {
|
|
|
117
115
|
definition: aggregatorProtocolDefinition,
|
|
118
116
|
});
|
|
119
117
|
const aggregatorProtocolReply = yield dwn.processMessage(aggregator.did, aggregatorProtocolConfigure.message);
|
|
120
|
-
expect(aggregatorProtocolReply.status.code).
|
|
118
|
+
expect(aggregatorProtocolReply.status.code).toBe(202, 'aggregator configure');
|
|
121
119
|
// create 4 users and install user note protocol
|
|
122
120
|
const alice = yield TestDataGenerator.generateDidKeyPersona();
|
|
123
121
|
const aliceProtocolConfigure = yield ProtocolsConfigure.create({
|
|
@@ -125,28 +123,28 @@ describe('Aggregator Model', () => {
|
|
|
125
123
|
definition: userProtocolDefinition,
|
|
126
124
|
});
|
|
127
125
|
const aliceProtocolReply = yield dwn.processMessage(alice.did, aliceProtocolConfigure.message);
|
|
128
|
-
expect(aliceProtocolReply.status.code).
|
|
126
|
+
expect(aliceProtocolReply.status.code).toBe(202, 'alice configure');
|
|
129
127
|
const bob = yield TestDataGenerator.generateDidKeyPersona();
|
|
130
128
|
const bobProtocolConfigure = yield ProtocolsConfigure.create({
|
|
131
129
|
signer: Jws.createSigner(bob),
|
|
132
130
|
definition: userProtocolDefinition,
|
|
133
131
|
});
|
|
134
132
|
const bobProtocolReply = yield dwn.processMessage(bob.did, bobProtocolConfigure.message);
|
|
135
|
-
expect(bobProtocolReply.status.code).
|
|
133
|
+
expect(bobProtocolReply.status.code).toBe(202, 'bob configure');
|
|
136
134
|
const carol = yield TestDataGenerator.generateDidKeyPersona();
|
|
137
135
|
const carolProtocolConfigure = yield ProtocolsConfigure.create({
|
|
138
136
|
signer: Jws.createSigner(carol),
|
|
139
137
|
definition: userProtocolDefinition,
|
|
140
138
|
});
|
|
141
139
|
const carolProtocolReply = yield dwn.processMessage(carol.did, carolProtocolConfigure.message);
|
|
142
|
-
expect(carolProtocolReply.status.code).
|
|
140
|
+
expect(carolProtocolReply.status.code).toBe(202, 'carol configure');
|
|
143
141
|
const daniel = yield TestDataGenerator.generateDidKeyPersona();
|
|
144
142
|
const danielProtocolConfigure = yield ProtocolsConfigure.create({
|
|
145
143
|
signer: Jws.createSigner(daniel),
|
|
146
144
|
definition: userProtocolDefinition,
|
|
147
145
|
});
|
|
148
146
|
const danielProtocolReply = yield dwn.processMessage(daniel.did, danielProtocolConfigure.message);
|
|
149
|
-
expect(danielProtocolReply.status.code).
|
|
147
|
+
expect(danielProtocolReply.status.code).toBe(202, 'daniel configure');
|
|
150
148
|
// The aggregator creates member records for alice, bob and carol
|
|
151
149
|
const aliceMemberData = TestDataGenerator.randomBytes(256);
|
|
152
150
|
const aliceMember = yield RecordsWrite.create({
|
|
@@ -159,7 +157,7 @@ describe('Aggregator Model', () => {
|
|
|
159
157
|
data: aliceMemberData,
|
|
160
158
|
});
|
|
161
159
|
const aliceMemberReply = yield dwn.processMessage(aggregator.did, aliceMember.message, { dataStream: DataStream.fromBytes(aliceMemberData) });
|
|
162
|
-
expect(aliceMemberReply.status.code).
|
|
160
|
+
expect(aliceMemberReply.status.code).toBe(202, 'alice member ' + aliceMemberReply.status.detail);
|
|
163
161
|
const bobMemberData = TestDataGenerator.randomBytes(256);
|
|
164
162
|
const bobMember = yield RecordsWrite.create({
|
|
165
163
|
signer: Jws.createSigner(aggregator),
|
|
@@ -171,7 +169,7 @@ describe('Aggregator Model', () => {
|
|
|
171
169
|
data: bobMemberData,
|
|
172
170
|
});
|
|
173
171
|
const bobMemberReply = yield dwn.processMessage(aggregator.did, bobMember.message, { dataStream: DataStream.fromBytes(bobMemberData) });
|
|
174
|
-
expect(bobMemberReply.status.code).
|
|
172
|
+
expect(bobMemberReply.status.code).toBe(202, 'bob member');
|
|
175
173
|
const carolMemberData = TestDataGenerator.randomBytes(256);
|
|
176
174
|
const carolMember = yield RecordsWrite.create({
|
|
177
175
|
signer: Jws.createSigner(aggregator),
|
|
@@ -183,7 +181,7 @@ describe('Aggregator Model', () => {
|
|
|
183
181
|
data: carolMemberData,
|
|
184
182
|
});
|
|
185
183
|
const carolMemberReply = yield dwn.processMessage(aggregator.did, carolMember.message, { dataStream: DataStream.fromBytes(carolMemberData) });
|
|
186
|
-
expect(carolMemberReply.status.code).
|
|
184
|
+
expect(carolMemberReply.status.code).toBe(202, 'carol member');
|
|
187
185
|
// alice writes a public note to carol and posts it in the aggregator
|
|
188
186
|
const aliceNoteData = TestDataGenerator.randomBytes(256);
|
|
189
187
|
const aliceNoteToCarol = yield RecordsWrite.create({
|
|
@@ -199,11 +197,11 @@ describe('Aggregator Model', () => {
|
|
|
199
197
|
});
|
|
200
198
|
// Alice writes it to her own DWN and the aggregator
|
|
201
199
|
const aliceLocalDWN = yield dwn.processMessage(alice.did, aliceNoteToCarol.message, { dataStream: DataStream.fromBytes(aliceNoteData) });
|
|
202
|
-
expect(aliceLocalDWN.status.code).
|
|
200
|
+
expect(aliceLocalDWN.status.code).toBe(202, 'alice note');
|
|
203
201
|
const aliceAggregatorDWN = yield dwn.processMessage(aggregator.did, aliceNoteToCarol.message, {
|
|
204
202
|
dataStream: DataStream.fromBytes(aliceNoteData)
|
|
205
203
|
});
|
|
206
|
-
expect(aliceAggregatorDWN.status.code).
|
|
204
|
+
expect(aliceAggregatorDWN.status.code).toBe(202, 'alice note aggregator');
|
|
207
205
|
// bob writes a public note to alice and posts it in the aggregator
|
|
208
206
|
const bobNoteToAliceData = TestDataGenerator.randomBytes(256);
|
|
209
207
|
const bobNoteToAlice = yield RecordsWrite.create({
|
|
@@ -219,11 +217,11 @@ describe('Aggregator Model', () => {
|
|
|
219
217
|
});
|
|
220
218
|
// Bob writes it to his own DWN and the aggregator
|
|
221
219
|
const bobLocalDWN = yield dwn.processMessage(bob.did, bobNoteToAlice.message, { dataStream: DataStream.fromBytes(bobNoteToAliceData) });
|
|
222
|
-
expect(bobLocalDWN.status.code).
|
|
220
|
+
expect(bobLocalDWN.status.code).toBe(202, 'bob note');
|
|
223
221
|
const bobAggregatorDWN = yield dwn.processMessage(aggregator.did, bobNoteToAlice.message, {
|
|
224
222
|
dataStream: DataStream.fromBytes(bobNoteToAliceData)
|
|
225
223
|
});
|
|
226
|
-
expect(bobAggregatorDWN.status.code).
|
|
224
|
+
expect(bobAggregatorDWN.status.code).toBe(202, 'bob note aggregator');
|
|
227
225
|
// carol writes a public note to bob and posts it in the aggregator
|
|
228
226
|
const carolNoteToBobData = TestDataGenerator.randomBytes(256);
|
|
229
227
|
const carolNoteToBob = yield RecordsWrite.create({
|
|
@@ -241,11 +239,11 @@ describe('Aggregator Model', () => {
|
|
|
241
239
|
const carolLocalDWN = yield dwn.processMessage(carol.did, carolNoteToBob.message, {
|
|
242
240
|
dataStream: DataStream.fromBytes(carolNoteToBobData)
|
|
243
241
|
});
|
|
244
|
-
expect(carolLocalDWN.status.code).
|
|
242
|
+
expect(carolLocalDWN.status.code).toBe(202, 'carol note');
|
|
245
243
|
const carolAggregatorDWN = yield dwn.processMessage(aggregator.did, carolNoteToBob.message, {
|
|
246
244
|
dataStream: DataStream.fromBytes(carolNoteToBobData)
|
|
247
245
|
});
|
|
248
|
-
expect(carolAggregatorDWN.status.code).
|
|
246
|
+
expect(carolAggregatorDWN.status.code).toBe(202, 'carol note aggregator');
|
|
249
247
|
// daniel writes a public note to alice and posts it in the aggregator (which will reject it as he is not a member)
|
|
250
248
|
const danielNoteToAlice = TestDataGenerator.randomBytes(256);
|
|
251
249
|
const danielNote = yield RecordsWrite.create({
|
|
@@ -261,9 +259,9 @@ describe('Aggregator Model', () => {
|
|
|
261
259
|
});
|
|
262
260
|
// Daniel writes it to his own DWN and the aggregator
|
|
263
261
|
const danielLocalDWN = yield dwn.processMessage(daniel.did, danielNote.message, { dataStream: DataStream.fromBytes(danielNoteToAlice) });
|
|
264
|
-
expect(danielLocalDWN.status.code).
|
|
262
|
+
expect(danielLocalDWN.status.code).toBe(202, 'daniel note');
|
|
265
263
|
const danielAggregatorDWN = yield dwn.processMessage(aggregator.did, danielNote.message, { dataStream: DataStream.fromBytes(danielNoteToAlice) });
|
|
266
|
-
expect(danielAggregatorDWN.status.code).
|
|
264
|
+
expect(danielAggregatorDWN.status.code).toBe(401, 'daniel note aggregator');
|
|
267
265
|
// daniel can read public notes from multiple authors in a single query
|
|
268
266
|
const danielRead = yield RecordsQuery.create({
|
|
269
267
|
signer: Jws.createSigner(daniel),
|
|
@@ -274,10 +272,10 @@ describe('Aggregator Model', () => {
|
|
|
274
272
|
}
|
|
275
273
|
});
|
|
276
274
|
const danielReadReply = yield dwn.processMessage(aggregator.did, danielRead.message);
|
|
277
|
-
expect(danielReadReply.status.code).
|
|
278
|
-
expect((_a = danielReadReply.entries) === null || _a === void 0 ? void 0 : _a.length).
|
|
279
|
-
expect(danielReadReply.entries[0].recordId).
|
|
280
|
-
expect(danielReadReply.entries[1].recordId).
|
|
275
|
+
expect(danielReadReply.status.code).toBe(200, 'daniel read');
|
|
276
|
+
expect((_a = danielReadReply.entries) === null || _a === void 0 ? void 0 : _a.length).toBe(2, 'daniel read records');
|
|
277
|
+
expect(danielReadReply.entries[0].recordId).toBe(aliceNoteToCarol.message.recordId, 'daniel read alice note');
|
|
278
|
+
expect(danielReadReply.entries[1].recordId).toBe(bobNoteToAlice.message.recordId, 'daniel read bob note');
|
|
281
279
|
// create private notes to carol from alice and bob
|
|
282
280
|
const alicePrivateNoteToCarol = TestDataGenerator.randomBytes(256);
|
|
283
281
|
const aliceNoteToCarolPrivate = yield RecordsWrite.create({
|
|
@@ -294,11 +292,11 @@ describe('Aggregator Model', () => {
|
|
|
294
292
|
const aliceNoteToCarolLocal = yield dwn.processMessage(alice.did, aliceNoteToCarolPrivate.message, {
|
|
295
293
|
dataStream: DataStream.fromBytes(alicePrivateNoteToCarol)
|
|
296
294
|
});
|
|
297
|
-
expect(aliceNoteToCarolLocal.status.code).
|
|
295
|
+
expect(aliceNoteToCarolLocal.status.code).toBe(202, 'alice private note');
|
|
298
296
|
const aliceNoteToCarolAggregator = yield dwn.processMessage(aggregator.did, aliceNoteToCarolPrivate.message, {
|
|
299
297
|
dataStream: DataStream.fromBytes(alicePrivateNoteToCarol)
|
|
300
298
|
});
|
|
301
|
-
expect(aliceNoteToCarolAggregator.status.code).
|
|
299
|
+
expect(aliceNoteToCarolAggregator.status.code).toBe(202, 'alice private note aggregator');
|
|
302
300
|
const bobPrivateNoteToCarol = TestDataGenerator.randomBytes(256);
|
|
303
301
|
const bobNoteToCarolPrivate = yield RecordsWrite.create({
|
|
304
302
|
signer: Jws.createSigner(bob),
|
|
@@ -314,11 +312,11 @@ describe('Aggregator Model', () => {
|
|
|
314
312
|
const bobNoteToCarolLocal = yield dwn.processMessage(bob.did, bobNoteToCarolPrivate.message, {
|
|
315
313
|
dataStream: DataStream.fromBytes(bobPrivateNoteToCarol)
|
|
316
314
|
});
|
|
317
|
-
expect(bobNoteToCarolLocal.status.code).
|
|
315
|
+
expect(bobNoteToCarolLocal.status.code).toBe(202, 'bob private note');
|
|
318
316
|
const bobNoteToCarolAggregator = yield dwn.processMessage(aggregator.did, bobNoteToCarolPrivate.message, {
|
|
319
317
|
dataStream: DataStream.fromBytes(bobPrivateNoteToCarol)
|
|
320
318
|
});
|
|
321
|
-
expect(bobNoteToCarolAggregator.status.code).
|
|
319
|
+
expect(bobNoteToCarolAggregator.status.code).toBe(202, 'bob private note aggregator');
|
|
322
320
|
// create a private note from bob to alice
|
|
323
321
|
const bobNoteToAlicePrivateData = TestDataGenerator.randomBytes(256);
|
|
324
322
|
const bobNoteToAlicePrivate = yield RecordsWrite.create({
|
|
@@ -335,11 +333,11 @@ describe('Aggregator Model', () => {
|
|
|
335
333
|
const bobNoteToAliceLocal = yield dwn.processMessage(bob.did, bobNoteToAlicePrivate.message, {
|
|
336
334
|
dataStream: DataStream.fromBytes(bobNoteToAlicePrivateData)
|
|
337
335
|
});
|
|
338
|
-
expect(bobNoteToAliceLocal.status.code).
|
|
336
|
+
expect(bobNoteToAliceLocal.status.code).toBe(202, 'alice private note to bob');
|
|
339
337
|
const bobNoteToAliceAggregator = yield dwn.processMessage(aggregator.did, bobNoteToAlicePrivate.message, {
|
|
340
338
|
dataStream: DataStream.fromBytes(bobNoteToAlicePrivateData)
|
|
341
339
|
});
|
|
342
|
-
expect(bobNoteToAliceAggregator.status.code).
|
|
340
|
+
expect(bobNoteToAliceAggregator.status.code).toBe(202, 'alice private note to bob aggregator');
|
|
343
341
|
// confirm daniel can still only read the public notes
|
|
344
342
|
const danielRead2 = yield RecordsQuery.create({
|
|
345
343
|
signer: Jws.createSigner(daniel),
|
|
@@ -350,10 +348,10 @@ describe('Aggregator Model', () => {
|
|
|
350
348
|
}
|
|
351
349
|
});
|
|
352
350
|
const danielReadReply2 = yield dwn.processMessage(aggregator.did, danielRead2.message);
|
|
353
|
-
expect(danielReadReply2.status.code).
|
|
354
|
-
expect((_b = danielReadReply2.entries) === null || _b === void 0 ? void 0 : _b.length).
|
|
355
|
-
expect(danielReadReply2.entries[0].recordId).
|
|
356
|
-
expect(danielReadReply2.entries[1].recordId).
|
|
351
|
+
expect(danielReadReply2.status.code).toBe(200, 'daniel read 2');
|
|
352
|
+
expect((_b = danielReadReply2.entries) === null || _b === void 0 ? void 0 : _b.length).toBe(2, 'daniel read records 2');
|
|
353
|
+
expect(danielReadReply2.entries[0].recordId).toBe(aliceNoteToCarol.message.recordId, 'daniel read alice note 2');
|
|
354
|
+
expect(danielReadReply2.entries[1].recordId).toBe(bobNoteToAlice.message.recordId, 'daniel read bob note 2');
|
|
357
355
|
// carol queries for notes from alice and bob and gets the public notes and private notes destined for her
|
|
358
356
|
// carol does not see the private note from alice to bob
|
|
359
357
|
const carolRead = yield RecordsQuery.create({
|
|
@@ -365,12 +363,12 @@ describe('Aggregator Model', () => {
|
|
|
365
363
|
}
|
|
366
364
|
});
|
|
367
365
|
const carolReadReply = yield dwn.processMessage(aggregator.did, carolRead.message);
|
|
368
|
-
expect(carolReadReply.status.code).
|
|
369
|
-
expect((_c = carolReadReply.entries) === null || _c === void 0 ? void 0 : _c.length).
|
|
370
|
-
expect(carolReadReply.entries[0].recordId).
|
|
371
|
-
expect(carolReadReply.entries[1].recordId).
|
|
372
|
-
expect(carolReadReply.entries[2].recordId).
|
|
373
|
-
expect(carolReadReply.entries[3].recordId).
|
|
366
|
+
expect(carolReadReply.status.code).toBe(200, 'carol read');
|
|
367
|
+
expect((_c = carolReadReply.entries) === null || _c === void 0 ? void 0 : _c.length).toBe(4, 'carol read records');
|
|
368
|
+
expect(carolReadReply.entries[0].recordId).toBe(aliceNoteToCarol.message.recordId, 'carol read alice note');
|
|
369
|
+
expect(carolReadReply.entries[1].recordId).toBe(bobNoteToAlice.message.recordId, 'carol read bob note');
|
|
370
|
+
expect(carolReadReply.entries[2].recordId).toBe(aliceNoteToCarolPrivate.message.recordId, 'carol read alice private note');
|
|
371
|
+
expect(carolReadReply.entries[3].recordId).toBe(bobNoteToCarolPrivate.message.recordId, 'carol read bob private note');
|
|
374
372
|
// alice queries for notes from bob and carol and gets the public notes and private notes destined for her
|
|
375
373
|
const aliceRead = yield RecordsQuery.create({
|
|
376
374
|
signer: Jws.createSigner(alice),
|
|
@@ -381,11 +379,11 @@ describe('Aggregator Model', () => {
|
|
|
381
379
|
}
|
|
382
380
|
});
|
|
383
381
|
const aliceReadReply = yield dwn.processMessage(aggregator.did, aliceRead.message);
|
|
384
|
-
expect(aliceReadReply.status.code).
|
|
385
|
-
expect((_d = aliceReadReply.entries) === null || _d === void 0 ? void 0 : _d.length).
|
|
386
|
-
expect(aliceReadReply.entries[0].recordId).
|
|
387
|
-
expect(aliceReadReply.entries[1].recordId).
|
|
388
|
-
expect(aliceReadReply.entries[2].recordId).
|
|
382
|
+
expect(aliceReadReply.status.code).toBe(200, 'alice read');
|
|
383
|
+
expect((_d = aliceReadReply.entries) === null || _d === void 0 ? void 0 : _d.length).toBe(3, 'alice read records');
|
|
384
|
+
expect(aliceReadReply.entries[0].recordId).toBe(bobNoteToAlice.message.recordId, 'alice note to carol public');
|
|
385
|
+
expect(aliceReadReply.entries[1].recordId).toBe(carolNoteToBob.message.recordId, 'carol note to bob public');
|
|
386
|
+
expect(aliceReadReply.entries[2].recordId).toBe(bobNoteToAlicePrivate.message.recordId, 'bob note to alice private');
|
|
389
387
|
}));
|
|
390
388
|
it('should support querying from multiple recipients', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
391
389
|
var _a, _b, _c, _d;
|
|
@@ -396,7 +394,7 @@ describe('Aggregator Model', () => {
|
|
|
396
394
|
definition: aggregatorProtocolDefinition,
|
|
397
395
|
});
|
|
398
396
|
const aggregatorProtocolReply = yield dwn.processMessage(aggregator.did, aggregatorProtocolConfigure.message);
|
|
399
|
-
expect(aggregatorProtocolReply.status.code).
|
|
397
|
+
expect(aggregatorProtocolReply.status.code).toBe(202, 'aggregator configure');
|
|
400
398
|
// create 4 users and install user note protocol
|
|
401
399
|
const alice = yield TestDataGenerator.generateDidKeyPersona();
|
|
402
400
|
const aliceProtocolConfigure = yield ProtocolsConfigure.create({
|
|
@@ -404,28 +402,28 @@ describe('Aggregator Model', () => {
|
|
|
404
402
|
definition: userProtocolDefinition,
|
|
405
403
|
});
|
|
406
404
|
const aliceProtocolReply = yield dwn.processMessage(alice.did, aliceProtocolConfigure.message);
|
|
407
|
-
expect(aliceProtocolReply.status.code).
|
|
405
|
+
expect(aliceProtocolReply.status.code).toBe(202, 'alice configure');
|
|
408
406
|
const bob = yield TestDataGenerator.generateDidKeyPersona();
|
|
409
407
|
const bobProtocolConfigure = yield ProtocolsConfigure.create({
|
|
410
408
|
signer: Jws.createSigner(bob),
|
|
411
409
|
definition: userProtocolDefinition,
|
|
412
410
|
});
|
|
413
411
|
const bobProtocolReply = yield dwn.processMessage(bob.did, bobProtocolConfigure.message);
|
|
414
|
-
expect(bobProtocolReply.status.code).
|
|
412
|
+
expect(bobProtocolReply.status.code).toBe(202, 'bob configure');
|
|
415
413
|
const carol = yield TestDataGenerator.generateDidKeyPersona();
|
|
416
414
|
const carolProtocolConfigure = yield ProtocolsConfigure.create({
|
|
417
415
|
signer: Jws.createSigner(carol),
|
|
418
416
|
definition: userProtocolDefinition,
|
|
419
417
|
});
|
|
420
418
|
const carolProtocolReply = yield dwn.processMessage(carol.did, carolProtocolConfigure.message);
|
|
421
|
-
expect(carolProtocolReply.status.code).
|
|
419
|
+
expect(carolProtocolReply.status.code).toBe(202, 'carol configure');
|
|
422
420
|
const daniel = yield TestDataGenerator.generateDidKeyPersona();
|
|
423
421
|
const danielProtocolConfigure = yield ProtocolsConfigure.create({
|
|
424
422
|
signer: Jws.createSigner(daniel),
|
|
425
423
|
definition: userProtocolDefinition,
|
|
426
424
|
});
|
|
427
425
|
const danielProtocolReply = yield dwn.processMessage(daniel.did, danielProtocolConfigure.message);
|
|
428
|
-
expect(danielProtocolReply.status.code).
|
|
426
|
+
expect(danielProtocolReply.status.code).toBe(202, 'daniel configure');
|
|
429
427
|
// The aggregator creates member records for alice, bob and carol
|
|
430
428
|
const aliceMemberData = TestDataGenerator.randomBytes(256);
|
|
431
429
|
const aliceMember = yield RecordsWrite.create({
|
|
@@ -438,7 +436,7 @@ describe('Aggregator Model', () => {
|
|
|
438
436
|
data: aliceMemberData,
|
|
439
437
|
});
|
|
440
438
|
const aliceMemberReply = yield dwn.processMessage(aggregator.did, aliceMember.message, { dataStream: DataStream.fromBytes(aliceMemberData) });
|
|
441
|
-
expect(aliceMemberReply.status.code).
|
|
439
|
+
expect(aliceMemberReply.status.code).toBe(202, 'alice member ' + aliceMemberReply.status.detail);
|
|
442
440
|
const bobMemberData = TestDataGenerator.randomBytes(256);
|
|
443
441
|
const bobMember = yield RecordsWrite.create({
|
|
444
442
|
signer: Jws.createSigner(aggregator),
|
|
@@ -450,7 +448,7 @@ describe('Aggregator Model', () => {
|
|
|
450
448
|
data: bobMemberData,
|
|
451
449
|
});
|
|
452
450
|
const bobMemberReply = yield dwn.processMessage(aggregator.did, bobMember.message, { dataStream: DataStream.fromBytes(bobMemberData) });
|
|
453
|
-
expect(bobMemberReply.status.code).
|
|
451
|
+
expect(bobMemberReply.status.code).toBe(202, 'bob member');
|
|
454
452
|
const carolMemberData = TestDataGenerator.randomBytes(256);
|
|
455
453
|
const carolMember = yield RecordsWrite.create({
|
|
456
454
|
signer: Jws.createSigner(aggregator),
|
|
@@ -462,7 +460,7 @@ describe('Aggregator Model', () => {
|
|
|
462
460
|
data: carolMemberData,
|
|
463
461
|
});
|
|
464
462
|
const carolMemberReply = yield dwn.processMessage(aggregator.did, carolMember.message, { dataStream: DataStream.fromBytes(carolMemberData) });
|
|
465
|
-
expect(carolMemberReply.status.code).
|
|
463
|
+
expect(carolMemberReply.status.code).toBe(202, 'carol member');
|
|
466
464
|
// alice writes a public note to carol and posts it in the aggregator
|
|
467
465
|
const aliceNoteData = TestDataGenerator.randomBytes(256);
|
|
468
466
|
const aliceNoteToCarol = yield RecordsWrite.create({
|
|
@@ -478,11 +476,11 @@ describe('Aggregator Model', () => {
|
|
|
478
476
|
});
|
|
479
477
|
// Alice writes it to her own DWN and the aggregator
|
|
480
478
|
const aliceLocalDWN = yield dwn.processMessage(alice.did, aliceNoteToCarol.message, { dataStream: DataStream.fromBytes(aliceNoteData) });
|
|
481
|
-
expect(aliceLocalDWN.status.code).
|
|
479
|
+
expect(aliceLocalDWN.status.code).toBe(202, 'alice note');
|
|
482
480
|
const aliceAggregatorDWN = yield dwn.processMessage(aggregator.did, aliceNoteToCarol.message, {
|
|
483
481
|
dataStream: DataStream.fromBytes(aliceNoteData)
|
|
484
482
|
});
|
|
485
|
-
expect(aliceAggregatorDWN.status.code).
|
|
483
|
+
expect(aliceAggregatorDWN.status.code).toBe(202, 'alice note aggregator');
|
|
486
484
|
// bob writes a public note to alice and posts it in the aggregator
|
|
487
485
|
const bobNoteToAliceData = TestDataGenerator.randomBytes(256);
|
|
488
486
|
const bobNoteToAlice = yield RecordsWrite.create({
|
|
@@ -498,11 +496,11 @@ describe('Aggregator Model', () => {
|
|
|
498
496
|
});
|
|
499
497
|
// Bob writes it to his own DWN and the aggregator
|
|
500
498
|
const bobLocalDWN = yield dwn.processMessage(bob.did, bobNoteToAlice.message, { dataStream: DataStream.fromBytes(bobNoteToAliceData) });
|
|
501
|
-
expect(bobLocalDWN.status.code).
|
|
499
|
+
expect(bobLocalDWN.status.code).toBe(202, 'bob note');
|
|
502
500
|
const bobAggregatorDWN = yield dwn.processMessage(aggregator.did, bobNoteToAlice.message, {
|
|
503
501
|
dataStream: DataStream.fromBytes(bobNoteToAliceData)
|
|
504
502
|
});
|
|
505
|
-
expect(bobAggregatorDWN.status.code).
|
|
503
|
+
expect(bobAggregatorDWN.status.code).toBe(202, 'bob note aggregator');
|
|
506
504
|
// carol writes a public note to bob and posts it in the aggregator
|
|
507
505
|
const carolNoteToBobData = TestDataGenerator.randomBytes(256);
|
|
508
506
|
const carolNoteToBob = yield RecordsWrite.create({
|
|
@@ -520,11 +518,11 @@ describe('Aggregator Model', () => {
|
|
|
520
518
|
const carolLocalDWN = yield dwn.processMessage(carol.did, carolNoteToBob.message, {
|
|
521
519
|
dataStream: DataStream.fromBytes(carolNoteToBobData)
|
|
522
520
|
});
|
|
523
|
-
expect(carolLocalDWN.status.code).
|
|
521
|
+
expect(carolLocalDWN.status.code).toBe(202, 'carol note');
|
|
524
522
|
const carolAggregatorDWN = yield dwn.processMessage(aggregator.did, carolNoteToBob.message, {
|
|
525
523
|
dataStream: DataStream.fromBytes(carolNoteToBobData)
|
|
526
524
|
});
|
|
527
|
-
expect(carolAggregatorDWN.status.code).
|
|
525
|
+
expect(carolAggregatorDWN.status.code).toBe(202, 'carol note aggregator');
|
|
528
526
|
// daniel writes a public note to alice and posts it in the aggregator (which will reject it as he is not a member)
|
|
529
527
|
const danielNoteToAlice = TestDataGenerator.randomBytes(256);
|
|
530
528
|
const danielNote = yield RecordsWrite.create({
|
|
@@ -540,9 +538,9 @@ describe('Aggregator Model', () => {
|
|
|
540
538
|
});
|
|
541
539
|
// Daniel writes it to his own DWN and the aggregator
|
|
542
540
|
const danielLocalDWN = yield dwn.processMessage(daniel.did, danielNote.message, { dataStream: DataStream.fromBytes(danielNoteToAlice) });
|
|
543
|
-
expect(danielLocalDWN.status.code).
|
|
541
|
+
expect(danielLocalDWN.status.code).toBe(202, 'daniel note');
|
|
544
542
|
const danielAggregatorDWN = yield dwn.processMessage(aggregator.did, danielNote.message, { dataStream: DataStream.fromBytes(danielNoteToAlice) });
|
|
545
|
-
expect(danielAggregatorDWN.status.code).
|
|
543
|
+
expect(danielAggregatorDWN.status.code).toBe(401, 'daniel note aggregator');
|
|
546
544
|
// daniel can read public notes from multiple authors in a single query
|
|
547
545
|
const danielRead = yield RecordsQuery.create({
|
|
548
546
|
signer: Jws.createSigner(daniel),
|
|
@@ -553,10 +551,10 @@ describe('Aggregator Model', () => {
|
|
|
553
551
|
}
|
|
554
552
|
});
|
|
555
553
|
const danielReadReply = yield dwn.processMessage(aggregator.did, danielRead.message);
|
|
556
|
-
expect(danielReadReply.status.code).
|
|
557
|
-
expect((_a = danielReadReply.entries) === null || _a === void 0 ? void 0 : _a.length).
|
|
558
|
-
expect(danielReadReply.entries[0].recordId).
|
|
559
|
-
expect(danielReadReply.entries[1].recordId).
|
|
554
|
+
expect(danielReadReply.status.code).toBe(200, 'daniel read');
|
|
555
|
+
expect((_a = danielReadReply.entries) === null || _a === void 0 ? void 0 : _a.length).toBe(2, 'daniel read records');
|
|
556
|
+
expect(danielReadReply.entries[0].recordId).toBe(aliceNoteToCarol.message.recordId, 'daniel read alice note');
|
|
557
|
+
expect(danielReadReply.entries[1].recordId).toBe(bobNoteToAlice.message.recordId, 'daniel read bob note');
|
|
560
558
|
// create private notes to carol from alice and bob
|
|
561
559
|
const alicePrivateNoteToCarol = TestDataGenerator.randomBytes(256);
|
|
562
560
|
const aliceNoteToCarolPrivate = yield RecordsWrite.create({
|
|
@@ -573,11 +571,11 @@ describe('Aggregator Model', () => {
|
|
|
573
571
|
const aliceNoteToCarolLocal = yield dwn.processMessage(alice.did, aliceNoteToCarolPrivate.message, {
|
|
574
572
|
dataStream: DataStream.fromBytes(alicePrivateNoteToCarol)
|
|
575
573
|
});
|
|
576
|
-
expect(aliceNoteToCarolLocal.status.code).
|
|
574
|
+
expect(aliceNoteToCarolLocal.status.code).toBe(202, 'alice private note');
|
|
577
575
|
const aliceNoteToCarolAggregator = yield dwn.processMessage(aggregator.did, aliceNoteToCarolPrivate.message, {
|
|
578
576
|
dataStream: DataStream.fromBytes(alicePrivateNoteToCarol)
|
|
579
577
|
});
|
|
580
|
-
expect(aliceNoteToCarolAggregator.status.code).
|
|
578
|
+
expect(aliceNoteToCarolAggregator.status.code).toBe(202, 'alice private note aggregator');
|
|
581
579
|
const bobPrivateNoteToCarol = TestDataGenerator.randomBytes(256);
|
|
582
580
|
const bobNoteToCarolPrivate = yield RecordsWrite.create({
|
|
583
581
|
signer: Jws.createSigner(bob),
|
|
@@ -593,11 +591,11 @@ describe('Aggregator Model', () => {
|
|
|
593
591
|
const bobNoteToCarolLocal = yield dwn.processMessage(bob.did, bobNoteToCarolPrivate.message, {
|
|
594
592
|
dataStream: DataStream.fromBytes(bobPrivateNoteToCarol)
|
|
595
593
|
});
|
|
596
|
-
expect(bobNoteToCarolLocal.status.code).
|
|
594
|
+
expect(bobNoteToCarolLocal.status.code).toBe(202, 'bob private note');
|
|
597
595
|
const bobNoteToCarolAggregator = yield dwn.processMessage(aggregator.did, bobNoteToCarolPrivate.message, {
|
|
598
596
|
dataStream: DataStream.fromBytes(bobPrivateNoteToCarol)
|
|
599
597
|
});
|
|
600
|
-
expect(bobNoteToCarolAggregator.status.code).
|
|
598
|
+
expect(bobNoteToCarolAggregator.status.code).toBe(202, 'bob private note aggregator');
|
|
601
599
|
// create a private note from bob to alice
|
|
602
600
|
const bobNoteToAlicePrivateData = TestDataGenerator.randomBytes(256);
|
|
603
601
|
const bobNoteToAlicePrivate = yield RecordsWrite.create({
|
|
@@ -614,11 +612,11 @@ describe('Aggregator Model', () => {
|
|
|
614
612
|
const bobNoteToAliceLocal = yield dwn.processMessage(bob.did, bobNoteToAlicePrivate.message, {
|
|
615
613
|
dataStream: DataStream.fromBytes(bobNoteToAlicePrivateData)
|
|
616
614
|
});
|
|
617
|
-
expect(bobNoteToAliceLocal.status.code).
|
|
615
|
+
expect(bobNoteToAliceLocal.status.code).toBe(202, 'alice private note to bob');
|
|
618
616
|
const bobNoteToAliceAggregator = yield dwn.processMessage(aggregator.did, bobNoteToAlicePrivate.message, {
|
|
619
617
|
dataStream: DataStream.fromBytes(bobNoteToAlicePrivateData)
|
|
620
618
|
});
|
|
621
|
-
expect(bobNoteToAliceAggregator.status.code).
|
|
619
|
+
expect(bobNoteToAliceAggregator.status.code).toBe(202, 'alice private note to bob aggregator');
|
|
622
620
|
// confirm daniel can still only read the public notes
|
|
623
621
|
const danielRead2 = yield RecordsQuery.create({
|
|
624
622
|
signer: Jws.createSigner(daniel),
|
|
@@ -629,10 +627,10 @@ describe('Aggregator Model', () => {
|
|
|
629
627
|
}
|
|
630
628
|
});
|
|
631
629
|
const danielReadReply2 = yield dwn.processMessage(aggregator.did, danielRead2.message);
|
|
632
|
-
expect(danielReadReply2.status.code).
|
|
633
|
-
expect((_b = danielReadReply2.entries) === null || _b === void 0 ? void 0 : _b.length).
|
|
634
|
-
expect(danielReadReply2.entries[0].recordId).
|
|
635
|
-
expect(danielReadReply2.entries[1].recordId).
|
|
630
|
+
expect(danielReadReply2.status.code).toBe(200, 'daniel read 2');
|
|
631
|
+
expect((_b = danielReadReply2.entries) === null || _b === void 0 ? void 0 : _b.length).toBe(2, 'daniel read records 2');
|
|
632
|
+
expect(danielReadReply2.entries[0].recordId).toBe(aliceNoteToCarol.message.recordId, 'daniel read alice note 2');
|
|
633
|
+
expect(danielReadReply2.entries[1].recordId).toBe(bobNoteToAlice.message.recordId, 'daniel read bob note 2');
|
|
636
634
|
// carol queries for notes from alice and bob and gets the public notes and private notes destined for her
|
|
637
635
|
// carol does not see the private note from alice to bob
|
|
638
636
|
const carolRead = yield RecordsQuery.create({
|
|
@@ -644,12 +642,12 @@ describe('Aggregator Model', () => {
|
|
|
644
642
|
}
|
|
645
643
|
});
|
|
646
644
|
const carolReadReply = yield dwn.processMessage(aggregator.did, carolRead.message);
|
|
647
|
-
expect(carolReadReply.status.code).
|
|
648
|
-
expect((_c = carolReadReply.entries) === null || _c === void 0 ? void 0 : _c.length).
|
|
649
|
-
expect(carolReadReply.entries[0].recordId).
|
|
650
|
-
expect(carolReadReply.entries[1].recordId).
|
|
651
|
-
expect(carolReadReply.entries[2].recordId).
|
|
652
|
-
expect(carolReadReply.entries[3].recordId).
|
|
645
|
+
expect(carolReadReply.status.code).toBe(200, 'carol read');
|
|
646
|
+
expect((_c = carolReadReply.entries) === null || _c === void 0 ? void 0 : _c.length).toBe(4, 'carol read records');
|
|
647
|
+
expect(carolReadReply.entries[0].recordId).toBe(aliceNoteToCarol.message.recordId, 'carol read alice note');
|
|
648
|
+
expect(carolReadReply.entries[1].recordId).toBe(bobNoteToAlice.message.recordId, 'carol read bob note');
|
|
649
|
+
expect(carolReadReply.entries[2].recordId).toBe(aliceNoteToCarolPrivate.message.recordId, 'carol read alice private note');
|
|
650
|
+
expect(carolReadReply.entries[3].recordId).toBe(bobNoteToCarolPrivate.message.recordId, 'carol read bob private note');
|
|
653
651
|
// alice queries for notes from bob and carol and gets the public notes and private notes destined for her
|
|
654
652
|
const aliceRead = yield RecordsQuery.create({
|
|
655
653
|
signer: Jws.createSigner(alice),
|
|
@@ -660,11 +658,11 @@ describe('Aggregator Model', () => {
|
|
|
660
658
|
}
|
|
661
659
|
});
|
|
662
660
|
const aliceReadReply = yield dwn.processMessage(aggregator.did, aliceRead.message);
|
|
663
|
-
expect(aliceReadReply.status.code).
|
|
664
|
-
expect((_d = aliceReadReply.entries) === null || _d === void 0 ? void 0 : _d.length).
|
|
665
|
-
expect(aliceReadReply.entries[0].recordId).
|
|
666
|
-
expect(aliceReadReply.entries[1].recordId).
|
|
667
|
-
expect(aliceReadReply.entries[2].recordId).
|
|
661
|
+
expect(aliceReadReply.status.code).toBe(200, 'alice read');
|
|
662
|
+
expect((_d = aliceReadReply.entries) === null || _d === void 0 ? void 0 : _d.length).toBe(3, 'alice read records');
|
|
663
|
+
expect(aliceReadReply.entries[0].recordId).toBe(aliceNoteToCarol.message.recordId, 'alice note to carol public');
|
|
664
|
+
expect(aliceReadReply.entries[1].recordId).toBe(carolNoteToBob.message.recordId, 'carol note to bob public');
|
|
665
|
+
expect(aliceReadReply.entries[2].recordId).toBe(aliceNoteToCarolPrivate.message.recordId, 'alice to carol private');
|
|
668
666
|
}));
|
|
669
667
|
});
|
|
670
668
|
//# sourceMappingURL=aggregator.spec.js.map
|