@abaxxtech/id 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +31 -0
- package/README.npm.md +31 -0
- package/dist/bundles/dwn.js +83 -0
- package/dist/cjs/index.js +31250 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/generated/precompiled-validators.js +7820 -0
- package/dist/esm/generated/precompiled-validators.js.map +1 -0
- package/dist/esm/json-schemas/definitions.json +23 -0
- package/dist/esm/src/core/abstract-message.js +37 -0
- package/dist/esm/src/core/abstract-message.js.map +1 -0
- package/dist/esm/src/core/auth.js +97 -0
- package/dist/esm/src/core/auth.js.map +1 -0
- package/dist/esm/src/core/dwn-constant.js +8 -0
- package/dist/esm/src/core/dwn-constant.js.map +1 -0
- package/dist/esm/src/core/dwn-error.js +138 -0
- package/dist/esm/src/core/dwn-error.js.map +1 -0
- package/dist/esm/src/core/grant-authorization.js +108 -0
- package/dist/esm/src/core/grant-authorization.js.map +1 -0
- package/dist/esm/src/core/message-reply.js +5 -0
- package/dist/esm/src/core/message-reply.js.map +1 -0
- package/dist/esm/src/core/message.js +200 -0
- package/dist/esm/src/core/message.js.map +1 -0
- package/dist/esm/src/core/protocol-authorization.js +449 -0
- package/dist/esm/src/core/protocol-authorization.js.map +1 -0
- package/dist/esm/src/core/records-grant-authorization.js +106 -0
- package/dist/esm/src/core/records-grant-authorization.js.map +1 -0
- package/dist/esm/src/core/tenant-gate.js +20 -0
- package/dist/esm/src/core/tenant-gate.js.map +1 -0
- package/dist/esm/src/did/did-dht-resolver.js +241 -0
- package/dist/esm/src/did/did-dht-resolver.js.map +1 -0
- package/dist/esm/src/did/did-ion-resolver.js +53 -0
- package/dist/esm/src/did/did-ion-resolver.js.map +1 -0
- package/dist/esm/src/did/did-key-resolver.js +135 -0
- package/dist/esm/src/did/did-key-resolver.js.map +1 -0
- package/dist/esm/src/did/did-resolver.js +70 -0
- package/dist/esm/src/did/did-resolver.js.map +1 -0
- package/dist/esm/src/did/did.js +36 -0
- package/dist/esm/src/did/did.js.map +1 -0
- package/dist/esm/src/dwn.js +164 -0
- package/dist/esm/src/dwn.js.map +1 -0
- package/dist/esm/src/enums/dwn-interface-method.js +22 -0
- package/dist/esm/src/enums/dwn-interface-method.js.map +1 -0
- package/dist/esm/src/event-log/event-log-level.js +112 -0
- package/dist/esm/src/event-log/event-log-level.js.map +1 -0
- package/dist/esm/src/handlers/events-get.js +48 -0
- package/dist/esm/src/handlers/events-get.js.map +1 -0
- package/dist/esm/src/handlers/messages-get.js +76 -0
- package/dist/esm/src/handlers/messages-get.js.map +1 -0
- package/dist/esm/src/handlers/permissions-grant.js +62 -0
- package/dist/esm/src/handlers/permissions-grant.js.map +1 -0
- package/dist/esm/src/handlers/permissions-request.js +63 -0
- package/dist/esm/src/handlers/permissions-request.js.map +1 -0
- package/dist/esm/src/handlers/permissions-revoke.js +114 -0
- package/dist/esm/src/handlers/permissions-revoke.js.map +1 -0
- package/dist/esm/src/handlers/protocols-configure.js +102 -0
- package/dist/esm/src/handlers/protocols-configure.js.map +1 -0
- package/dist/esm/src/handlers/protocols-query.js +72 -0
- package/dist/esm/src/handlers/protocols-query.js.map +1 -0
- package/dist/esm/src/handlers/records-delete.js +119 -0
- package/dist/esm/src/handlers/records-delete.js.map +1 -0
- package/dist/esm/src/handlers/records-query.js +206 -0
- package/dist/esm/src/handlers/records-query.js.map +1 -0
- package/dist/esm/src/handlers/records-read.js +118 -0
- package/dist/esm/src/handlers/records-read.js.map +1 -0
- package/dist/esm/src/handlers/records-write.js +252 -0
- package/dist/esm/src/handlers/records-write.js.map +1 -0
- package/dist/esm/src/index.js +43 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/interfaces/events-get.js +41 -0
- package/dist/esm/src/interfaces/events-get.js.map +1 -0
- package/dist/esm/src/interfaces/messages-get.js +58 -0
- package/dist/esm/src/interfaces/messages-get.js.map +1 -0
- package/dist/esm/src/interfaces/permissions-grant.js +130 -0
- package/dist/esm/src/interfaces/permissions-grant.js.map +1 -0
- package/dist/esm/src/interfaces/permissions-request.js +47 -0
- package/dist/esm/src/interfaces/permissions-request.js.map +1 -0
- package/dist/esm/src/interfaces/permissions-revoke.js +47 -0
- package/dist/esm/src/interfaces/permissions-revoke.js.map +1 -0
- package/dist/esm/src/interfaces/protocols-configure.js +149 -0
- package/dist/esm/src/interfaces/protocols-configure.js.map +1 -0
- package/dist/esm/src/interfaces/protocols-query.js +80 -0
- package/dist/esm/src/interfaces/protocols-query.js.map +1 -0
- package/dist/esm/src/interfaces/records-delete.js +56 -0
- package/dist/esm/src/interfaces/records-delete.js.map +1 -0
- package/dist/esm/src/interfaces/records-query.js +81 -0
- package/dist/esm/src/interfaces/records-query.js.map +1 -0
- package/dist/esm/src/interfaces/records-read.js +65 -0
- package/dist/esm/src/interfaces/records-read.js.map +1 -0
- package/dist/esm/src/interfaces/records-write.js +677 -0
- package/dist/esm/src/interfaces/records-write.js.map +1 -0
- package/dist/esm/src/jose/algorithms/signing/ed25519.js +54 -0
- package/dist/esm/src/jose/algorithms/signing/ed25519.js.map +1 -0
- package/dist/esm/src/jose/algorithms/signing/signature-algorithms.js +13 -0
- package/dist/esm/src/jose/algorithms/signing/signature-algorithms.js.map +1 -0
- package/dist/esm/src/jose/jws/general/builder.js +47 -0
- package/dist/esm/src/jose/jws/general/builder.js.map +1 -0
- package/dist/esm/src/jose/jws/general/signer.js +36 -0
- package/dist/esm/src/jose/jws/general/signer.js.map +1 -0
- package/dist/esm/src/jose/jws/general/verifier.js +97 -0
- package/dist/esm/src/jose/jws/general/verifier.js.map +1 -0
- package/dist/esm/src/schema-validator.js +28 -0
- package/dist/esm/src/schema-validator.js.map +1 -0
- package/dist/esm/src/store/blockstore-level.js +187 -0
- package/dist/esm/src/store/blockstore-level.js.map +1 -0
- package/dist/esm/src/store/data-store-level.js +192 -0
- package/dist/esm/src/store/data-store-level.js.map +1 -0
- package/dist/esm/src/store/index-level.js +302 -0
- package/dist/esm/src/store/index-level.js.map +1 -0
- package/dist/esm/src/store/level-wrapper.js +296 -0
- package/dist/esm/src/store/level-wrapper.js.map +1 -0
- package/dist/esm/src/store/message-store-level.js +236 -0
- package/dist/esm/src/store/message-store-level.js.map +1 -0
- package/dist/esm/src/store/storage-controller.js +69 -0
- package/dist/esm/src/store/storage-controller.js.map +1 -0
- package/dist/esm/src/types/cache.js +2 -0
- package/dist/esm/src/types/cache.js.map +1 -0
- package/dist/esm/src/types/data-store.js +2 -0
- package/dist/esm/src/types/data-store.js.map +1 -0
- package/dist/esm/src/types/delegated-grant-message.js +2 -0
- package/dist/esm/src/types/delegated-grant-message.js.map +1 -0
- package/dist/esm/src/types/did-types.js +2 -0
- package/dist/esm/src/types/did-types.js.map +1 -0
- package/dist/esm/src/types/event-log.js +2 -0
- package/dist/esm/src/types/event-log.js.map +1 -0
- package/dist/esm/src/types/event-types.js +2 -0
- package/dist/esm/src/types/event-types.js.map +1 -0
- package/dist/esm/src/types/jose-types.js +2 -0
- package/dist/esm/src/types/jose-types.js.map +1 -0
- package/dist/esm/src/types/jws-types.js +2 -0
- package/dist/esm/src/types/jws-types.js.map +1 -0
- package/dist/esm/src/types/message-interface.js +2 -0
- package/dist/esm/src/types/message-interface.js.map +1 -0
- package/dist/esm/src/types/message-store.js +2 -0
- package/dist/esm/src/types/message-store.js.map +1 -0
- package/dist/esm/src/types/message-types.js +6 -0
- package/dist/esm/src/types/message-types.js.map +1 -0
- package/dist/esm/src/types/messages-types.js +2 -0
- package/dist/esm/src/types/messages-types.js.map +1 -0
- package/dist/esm/src/types/method-handler.js +2 -0
- package/dist/esm/src/types/method-handler.js.map +1 -0
- package/dist/esm/src/types/permissions-grant-descriptor.js +6 -0
- package/dist/esm/src/types/permissions-grant-descriptor.js.map +1 -0
- package/dist/esm/src/types/permissions-types.js +2 -0
- package/dist/esm/src/types/permissions-types.js.map +1 -0
- package/dist/esm/src/types/protocols-types.js +15 -0
- package/dist/esm/src/types/protocols-types.js.map +1 -0
- package/dist/esm/src/types/records-types.js +8 -0
- package/dist/esm/src/types/records-types.js.map +1 -0
- package/dist/esm/src/types/signer.js +2 -0
- package/dist/esm/src/types/signer.js.map +1 -0
- package/dist/esm/src/utils/abort.js +40 -0
- package/dist/esm/src/utils/abort.js.map +1 -0
- package/dist/esm/src/utils/array.js +72 -0
- package/dist/esm/src/utils/array.js.map +1 -0
- package/dist/esm/src/utils/cid.js +130 -0
- package/dist/esm/src/utils/cid.js.map +1 -0
- package/dist/esm/src/utils/data-stream.js +88 -0
- package/dist/esm/src/utils/data-stream.js.map +1 -0
- package/dist/esm/src/utils/encoder.js +45 -0
- package/dist/esm/src/utils/encoder.js.map +1 -0
- package/dist/esm/src/utils/encryption.js +128 -0
- package/dist/esm/src/utils/encryption.js.map +1 -0
- package/dist/esm/src/utils/hd-key.js +60 -0
- package/dist/esm/src/utils/hd-key.js.map +1 -0
- package/dist/esm/src/utils/jws.js +89 -0
- package/dist/esm/src/utils/jws.js.map +1 -0
- package/dist/esm/src/utils/memory-cache.js +41 -0
- package/dist/esm/src/utils/memory-cache.js.map +1 -0
- package/dist/esm/src/utils/object.js +50 -0
- package/dist/esm/src/utils/object.js.map +1 -0
- package/dist/esm/src/utils/private-key-signer.js +43 -0
- package/dist/esm/src/utils/private-key-signer.js.map +1 -0
- package/dist/esm/src/utils/protocols.js +51 -0
- package/dist/esm/src/utils/protocols.js.map +1 -0
- package/dist/esm/src/utils/records.js +267 -0
- package/dist/esm/src/utils/records.js.map +1 -0
- package/dist/esm/src/utils/secp256k1.js +219 -0
- package/dist/esm/src/utils/secp256k1.js.map +1 -0
- package/dist/esm/src/utils/string.js +16 -0
- package/dist/esm/src/utils/string.js.map +1 -0
- package/dist/esm/src/utils/time.js +84 -0
- package/dist/esm/src/utils/time.js.map +1 -0
- package/dist/esm/src/utils/url.js +63 -0
- package/dist/esm/src/utils/url.js.map +1 -0
- package/dist/esm/tests/core/auth.spec.js +25 -0
- package/dist/esm/tests/core/auth.spec.js.map +1 -0
- package/dist/esm/tests/core/message-reply.spec.js +19 -0
- package/dist/esm/tests/core/message-reply.spec.js.map +1 -0
- package/dist/esm/tests/core/message.spec.js +85 -0
- package/dist/esm/tests/core/message.spec.js.map +1 -0
- package/dist/esm/tests/did/did-ion-resolver.spec.js +82 -0
- package/dist/esm/tests/did/did-ion-resolver.spec.js.map +1 -0
- package/dist/esm/tests/did/did-key-resolver.spec.js +74 -0
- package/dist/esm/tests/did/did-key-resolver.spec.js.map +1 -0
- package/dist/esm/tests/did/did-resolver.spec.js +84 -0
- package/dist/esm/tests/did/did-resolver.spec.js.map +1 -0
- package/dist/esm/tests/did/did.spec.js +22 -0
- package/dist/esm/tests/did/did.spec.js.map +1 -0
- package/dist/esm/tests/dwn.spec.js +252 -0
- package/dist/esm/tests/dwn.spec.js.map +1 -0
- package/dist/esm/tests/end-to-end-tests.spec.js +218 -0
- package/dist/esm/tests/end-to-end-tests.spec.js.map +1 -0
- package/dist/esm/tests/event-log/event-log-level.spec.js +137 -0
- package/dist/esm/tests/event-log/event-log-level.spec.js.map +1 -0
- package/dist/esm/tests/handlers/events-get.spec.js +108 -0
- package/dist/esm/tests/handlers/events-get.spec.js.map +1 -0
- package/dist/esm/tests/handlers/messages-get.spec.js +209 -0
- package/dist/esm/tests/handlers/messages-get.spec.js.map +1 -0
- package/dist/esm/tests/handlers/permissions-grant.spec.js +249 -0
- package/dist/esm/tests/handlers/permissions-grant.spec.js.map +1 -0
- package/dist/esm/tests/handlers/permissions-request.spec.js +132 -0
- package/dist/esm/tests/handlers/permissions-request.spec.js.map +1 -0
- package/dist/esm/tests/handlers/permissions-revoke.spec.js +311 -0
- package/dist/esm/tests/handlers/permissions-revoke.spec.js.map +1 -0
- package/dist/esm/tests/handlers/protocols-configure.spec.js +254 -0
- package/dist/esm/tests/handlers/protocols-configure.spec.js.map +1 -0
- package/dist/esm/tests/handlers/protocols-query.spec.js +373 -0
- package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -0
- package/dist/esm/tests/handlers/records-delete.spec.js +630 -0
- package/dist/esm/tests/handlers/records-delete.spec.js.map +1 -0
- package/dist/esm/tests/handlers/records-query.spec.js +1937 -0
- package/dist/esm/tests/handlers/records-query.spec.js.map +1 -0
- package/dist/esm/tests/handlers/records-read.spec.js +1729 -0
- package/dist/esm/tests/handlers/records-read.spec.js.map +1 -0
- package/dist/esm/tests/handlers/records-write.spec.js +3381 -0
- package/dist/esm/tests/handlers/records-write.spec.js.map +1 -0
- package/dist/esm/tests/interfaces/events-get.spec.js +73 -0
- package/dist/esm/tests/interfaces/events-get.spec.js.map +1 -0
- package/dist/esm/tests/interfaces/messages-get.spec.js +93 -0
- package/dist/esm/tests/interfaces/messages-get.spec.js.map +1 -0
- package/dist/esm/tests/interfaces/permissions-grant.spec.js +216 -0
- package/dist/esm/tests/interfaces/permissions-grant.spec.js.map +1 -0
- package/dist/esm/tests/interfaces/permissions-request.spec.js +45 -0
- package/dist/esm/tests/interfaces/permissions-request.spec.js.map +1 -0
- package/dist/esm/tests/interfaces/protocols-configure.spec.js +334 -0
- package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -0
- package/dist/esm/tests/interfaces/protocols-query.spec.js +49 -0
- package/dist/esm/tests/interfaces/protocols-query.spec.js.map +1 -0
- package/dist/esm/tests/interfaces/records-delete.spec.js +42 -0
- package/dist/esm/tests/interfaces/records-delete.spec.js.map +1 -0
- package/dist/esm/tests/interfaces/records-query.spec.js +75 -0
- package/dist/esm/tests/interfaces/records-query.spec.js.map +1 -0
- package/dist/esm/tests/interfaces/records-read.spec.js +65 -0
- package/dist/esm/tests/interfaces/records-read.spec.js.map +1 -0
- package/dist/esm/tests/interfaces/records-write.spec.js +369 -0
- package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -0
- package/dist/esm/tests/jose/jws/general.spec.js +185 -0
- package/dist/esm/tests/jose/jws/general.spec.js.map +1 -0
- package/dist/esm/tests/scenarios/delegated-grant.spec.js +490 -0
- package/dist/esm/tests/scenarios/delegated-grant.spec.js.map +1 -0
- package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +218 -0
- package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -0
- package/dist/esm/tests/store/data-store-level.spec.js +192 -0
- package/dist/esm/tests/store/data-store-level.spec.js.map +1 -0
- package/dist/esm/tests/store/index-level.spec.js +428 -0
- package/dist/esm/tests/store/index-level.spec.js.map +1 -0
- package/dist/esm/tests/store/message-store-level.spec.js +51 -0
- package/dist/esm/tests/store/message-store-level.spec.js.map +1 -0
- package/dist/esm/tests/store/message-store.spec.js +395 -0
- package/dist/esm/tests/store/message-store.spec.js.map +1 -0
- package/dist/esm/tests/store-dependent-tests.spec.js +8 -0
- package/dist/esm/tests/store-dependent-tests.spec.js.map +1 -0
- package/dist/esm/tests/test-stores.js +40 -0
- package/dist/esm/tests/test-stores.js.map +1 -0
- package/dist/esm/tests/test-suite.js +51 -0
- package/dist/esm/tests/test-suite.js.map +1 -0
- package/dist/esm/tests/utils/cid.spec.js +83 -0
- package/dist/esm/tests/utils/cid.spec.js.map +1 -0
- package/dist/esm/tests/utils/data-stream.spec.js +30 -0
- package/dist/esm/tests/utils/data-stream.spec.js.map +1 -0
- package/dist/esm/tests/utils/encryption.spec.js +151 -0
- package/dist/esm/tests/utils/encryption.spec.js.map +1 -0
- package/dist/esm/tests/utils/jws.spec.js +11 -0
- package/dist/esm/tests/utils/jws.spec.js.map +1 -0
- package/dist/esm/tests/utils/memory-cache.spec.js +38 -0
- package/dist/esm/tests/utils/memory-cache.spec.js.map +1 -0
- package/dist/esm/tests/utils/object.spec.js +39 -0
- package/dist/esm/tests/utils/object.spec.js.map +1 -0
- package/dist/esm/tests/utils/private-key-signer.spec.js +47 -0
- package/dist/esm/tests/utils/private-key-signer.spec.js.map +1 -0
- package/dist/esm/tests/utils/records.spec.js +56 -0
- package/dist/esm/tests/utils/records.spec.js.map +1 -0
- package/dist/esm/tests/utils/secp256k1.spec.js +77 -0
- package/dist/esm/tests/utils/secp256k1.spec.js.map +1 -0
- package/dist/esm/tests/utils/test-data-generator.js +570 -0
- package/dist/esm/tests/utils/test-data-generator.js.map +1 -0
- package/dist/esm/tests/utils/test-stub-generator.js +39 -0
- package/dist/esm/tests/utils/test-stub-generator.js.map +1 -0
- package/dist/esm/tests/utils/time.spec.js +67 -0
- package/dist/esm/tests/utils/time.spec.js.map +1 -0
- package/dist/esm/tests/utils/url.spec.js +46 -0
- package/dist/esm/tests/utils/url.spec.js.map +1 -0
- package/dist/esm/tests/validation/json-schemas/definitions.spec.js +36 -0
- package/dist/esm/tests/validation/json-schemas/definitions.spec.js.map +1 -0
- package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js +53 -0
- package/dist/esm/tests/validation/json-schemas/jwk/general-jwk.spec.js.map +1 -0
- package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js +39 -0
- package/dist/esm/tests/validation/json-schemas/jwk/public-jwk.spec.js.map +1 -0
- package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js +76 -0
- package/dist/esm/tests/validation/json-schemas/jwk-verification-method.spec.js.map +1 -0
- package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js +74 -0
- package/dist/esm/tests/validation/json-schemas/protocols/protocols-configure.spec.js.map +1 -0
- package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js +151 -0
- package/dist/esm/tests/validation/json-schemas/records/records-query.spec.js.map +1 -0
- package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +389 -0
- package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -0
- package/dist/esm/tests/vectors/protocol-definitions/anyone-collaborate.json +25 -0
- package/dist/esm/tests/vectors/protocol-definitions/author-can.json +32 -0
- package/dist/esm/tests/vectors/protocol-definitions/chat.json +56 -0
- package/dist/esm/tests/vectors/protocol-definitions/credential-issuance.json +37 -0
- package/dist/esm/tests/vectors/protocol-definitions/dex.json +52 -0
- package/dist/esm/tests/vectors/protocol-definitions/email.json +50 -0
- package/dist/esm/tests/vectors/protocol-definitions/free-for-all.json +30 -0
- package/dist/esm/tests/vectors/protocol-definitions/friend-role.json +48 -0
- package/dist/esm/tests/vectors/protocol-definitions/message.json +20 -0
- package/dist/esm/tests/vectors/protocol-definitions/minimal.json +10 -0
- package/dist/esm/tests/vectors/protocol-definitions/nested.json +31 -0
- package/dist/esm/tests/vectors/protocol-definitions/private-protocol.json +13 -0
- package/dist/esm/tests/vectors/protocol-definitions/recipient-can.json +36 -0
- package/dist/esm/tests/vectors/protocol-definitions/social-media.json +88 -0
- package/dist/esm/tests/vectors/protocol-definitions/thread-role.json +68 -0
- package/dist/types/generated/precompiled-validators.d.ts +113 -0
- package/dist/types/generated/precompiled-validators.d.ts.map +1 -0
- package/dist/types/src/core/abstract-message.d.ts +19 -0
- package/dist/types/src/core/abstract-message.d.ts.map +1 -0
- package/dist/types/src/core/auth.d.ts +30 -0
- package/dist/types/src/core/auth.d.ts.map +1 -0
- package/dist/types/src/core/dwn-constant.d.ts +8 -0
- package/dist/types/src/core/dwn-constant.d.ts.map +1 -0
- package/dist/types/src/core/dwn-error.d.ts +133 -0
- package/dist/types/src/core/dwn-error.d.ts.map +1 -0
- package/dist/types/src/core/grant-authorization.d.ts +35 -0
- package/dist/types/src/core/grant-authorization.d.ts.map +1 -0
- package/dist/types/src/core/message-reply.d.ts +33 -0
- package/dist/types/src/core/message-reply.d.ts.map +1 -0
- package/dist/types/src/core/message.d.ts +79 -0
- package/dist/types/src/core/message.d.ts.map +1 -0
- package/dist/types/src/core/protocol-authorization.d.ts +85 -0
- package/dist/types/src/core/protocol-authorization.d.ts.map +1 -0
- package/dist/types/src/core/records-grant-authorization.d.ts +38 -0
- package/dist/types/src/core/records-grant-authorization.d.ts.map +1 -0
- package/dist/types/src/core/tenant-gate.d.ts +16 -0
- package/dist/types/src/core/tenant-gate.d.ts.map +1 -0
- package/dist/types/src/did/did-dht-resolver.d.ts +26 -0
- package/dist/types/src/did/did-dht-resolver.d.ts.map +1 -0
- package/dist/types/src/did/did-ion-resolver.d.ts +20 -0
- package/dist/types/src/did/did-ion-resolver.d.ts.map +1 -0
- package/dist/types/src/did/did-key-resolver.d.ts +32 -0
- package/dist/types/src/did/did-key-resolver.d.ts.map +1 -0
- package/dist/types/src/did/did-resolver.d.ts +20 -0
- package/dist/types/src/did/did-resolver.d.ts.map +1 -0
- package/dist/types/src/did/did.d.ts +15 -0
- package/dist/types/src/did/did.d.ts.map +1 -0
- package/dist/types/src/dwn.d.ts +74 -0
- package/dist/types/src/dwn.d.ts.map +1 -0
- package/dist/types/src/enums/dwn-interface-method.d.ts +20 -0
- package/dist/types/src/enums/dwn-interface-method.d.ts.map +1 -0
- package/dist/types/src/event-log/event-log-level.d.ts +26 -0
- package/dist/types/src/event-log/event-log-level.d.ts.map +1 -0
- package/dist/types/src/handlers/events-get.d.ts +16 -0
- package/dist/types/src/handlers/events-get.d.ts.map +1 -0
- package/dist/types/src/handlers/messages-get.d.ts +18 -0
- package/dist/types/src/handlers/messages-get.d.ts.map +1 -0
- package/dist/types/src/handlers/permissions-grant.d.ts +17 -0
- package/dist/types/src/handlers/permissions-grant.d.ts.map +1 -0
- package/dist/types/src/handlers/permissions-request.d.ts +17 -0
- package/dist/types/src/handlers/permissions-request.d.ts.map +1 -0
- package/dist/types/src/handlers/permissions-revoke.d.ts +17 -0
- package/dist/types/src/handlers/permissions-revoke.d.ts.map +1 -0
- package/dist/types/src/handlers/protocols-configure.d.ts +21 -0
- package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -0
- package/dist/types/src/handlers/protocols-query.d.ts +20 -0
- package/dist/types/src/handlers/protocols-query.d.ts.map +1 -0
- package/dist/types/src/handlers/records-delete.d.ts +22 -0
- package/dist/types/src/handlers/records-delete.d.ts.map +1 -0
- package/dist/types/src/handlers/records-query.d.ts +78 -0
- package/dist/types/src/handlers/records-query.d.ts.map +1 -0
- package/dist/types/src/handlers/records-read.d.ts +17 -0
- package/dist/types/src/handlers/records-read.d.ts.map +1 -0
- package/dist/types/src/handlers/records-write.d.ts +61 -0
- package/dist/types/src/handlers/records-write.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +72 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/interfaces/events-get.d.ts +13 -0
- package/dist/types/src/interfaces/events-get.d.ts.map +1 -0
- package/dist/types/src/interfaces/messages-get.d.ts +19 -0
- package/dist/types/src/interfaces/messages-get.d.ts.map +1 -0
- package/dist/types/src/interfaces/permissions-grant.d.ts +59 -0
- package/dist/types/src/interfaces/permissions-grant.d.ts.map +1 -0
- package/dist/types/src/interfaces/permissions-request.d.ts +19 -0
- package/dist/types/src/interfaces/permissions-request.d.ts.map +1 -0
- package/dist/types/src/interfaces/permissions-revoke.d.ts +14 -0
- package/dist/types/src/interfaces/permissions-revoke.d.ts.map +1 -0
- package/dist/types/src/interfaces/protocols-configure.d.ts +21 -0
- package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -0
- package/dist/types/src/interfaces/protocols-query.d.ts +17 -0
- package/dist/types/src/interfaces/protocols-query.d.ts.map +1 -0
- package/dist/types/src/interfaces/records-delete.d.ts +24 -0
- package/dist/types/src/interfaces/records-delete.d.ts.map +1 -0
- package/dist/types/src/interfaces/records-query.d.ts +29 -0
- package/dist/types/src/interfaces/records-query.d.ts.map +1 -0
- package/dist/types/src/interfaces/records-read.d.ts +31 -0
- package/dist/types/src/interfaces/records-read.d.ts.map +1 -0
- package/dist/types/src/interfaces/records-write.d.ts +259 -0
- package/dist/types/src/interfaces/records-write.d.ts.map +1 -0
- package/dist/types/src/jose/algorithms/signing/ed25519.d.ts +3 -0
- package/dist/types/src/jose/algorithms/signing/ed25519.d.ts.map +1 -0
- package/dist/types/src/jose/algorithms/signing/signature-algorithms.d.ts +3 -0
- package/dist/types/src/jose/algorithms/signing/signature-algorithms.d.ts.map +1 -0
- package/dist/types/src/jose/jws/general/builder.d.ts +10 -0
- package/dist/types/src/jose/jws/general/builder.d.ts.map +1 -0
- package/dist/types/src/jose/jws/general/signer.d.ts +8 -0
- package/dist/types/src/jose/jws/general/signer.d.ts.map +1 -0
- package/dist/types/src/jose/jws/general/verifier.d.ts +32 -0
- package/dist/types/src/jose/jws/general/verifier.d.ts.map +1 -0
- package/dist/types/src/schema-validator.d.ts +8 -0
- package/dist/types/src/schema-validator.d.ts.map +1 -0
- package/dist/types/src/store/blockstore-level.d.ts +35 -0
- package/dist/types/src/store/blockstore-level.d.ts.map +1 -0
- package/dist/types/src/store/data-store-level.d.ts +44 -0
- package/dist/types/src/store/data-store-level.d.ts.map +1 -0
- package/dist/types/src/store/index-level.d.ts +69 -0
- package/dist/types/src/store/index-level.d.ts.map +1 -0
- package/dist/types/src/store/level-wrapper.d.ts +44 -0
- package/dist/types/src/store/level-wrapper.d.ts.map +1 -0
- package/dist/types/src/store/message-store-level.d.ts +70 -0
- package/dist/types/src/store/message-store-level.d.ts.map +1 -0
- package/dist/types/src/store/storage-controller.d.ts +19 -0
- package/dist/types/src/store/storage-controller.d.ts.map +1 -0
- package/dist/types/src/types/cache.d.ts +16 -0
- package/dist/types/src/types/cache.d.ts.map +1 -0
- package/dist/types/src/types/data-store.d.ts +69 -0
- package/dist/types/src/types/data-store.d.ts.map +1 -0
- package/dist/types/src/types/delegated-grant-message.d.ts +14 -0
- package/dist/types/src/types/delegated-grant-message.d.ts.map +1 -0
- package/dist/types/src/types/did-types.d.ts +68 -0
- package/dist/types/src/types/did-types.d.ts.map +1 -0
- package/dist/types/src/types/event-log.d.ts +39 -0
- package/dist/types/src/types/event-log.d.ts.map +1 -0
- package/dist/types/src/types/event-types.d.ts +18 -0
- package/dist/types/src/types/event-types.d.ts.map +1 -0
- package/dist/types/src/types/jose-types.d.ts +75 -0
- package/dist/types/src/types/jose-types.d.ts.map +1 -0
- package/dist/types/src/types/jws-types.d.ts +27 -0
- package/dist/types/src/types/jws-types.d.ts.map +1 -0
- package/dist/types/src/types/message-interface.d.ts +22 -0
- package/dist/types/src/types/message-interface.d.ts.map +1 -0
- package/dist/types/src/types/message-store.d.ts +43 -0
- package/dist/types/src/types/message-store.d.ts.map +1 -0
- package/dist/types/src/types/message-types.d.ts +113 -0
- package/dist/types/src/types/message-types.d.ts.map +1 -0
- package/dist/types/src/types/messages-types.d.ts +23 -0
- package/dist/types/src/types/messages-types.d.ts.map +1 -0
- package/dist/types/src/types/method-handler.d.ts +17 -0
- package/dist/types/src/types/method-handler.d.ts.map +1 -0
- package/dist/types/src/types/permissions-grant-descriptor.d.ts +65 -0
- package/dist/types/src/types/permissions-grant-descriptor.d.ts.map +1 -0
- package/dist/types/src/types/permissions-types.d.ts +33 -0
- package/dist/types/src/types/permissions-types.d.ts.map +1 -0
- package/dist/types/src/types/protocols-types.d.ts +138 -0
- package/dist/types/src/types/protocols-types.d.ts.map +1 -0
- package/dist/types/src/types/records-types.d.ts +164 -0
- package/dist/types/src/types/records-types.d.ts.map +1 -0
- package/dist/types/src/types/signer.d.ts +26 -0
- package/dist/types/src/types/signer.d.ts.map +1 -0
- package/dist/types/src/utils/abort.d.ts +5 -0
- package/dist/types/src/utils/abort.d.ts.map +1 -0
- package/dist/types/src/utils/array.d.ts +18 -0
- package/dist/types/src/utils/array.d.ts.map +1 -0
- package/dist/types/src/utils/cid.d.ts +30 -0
- package/dist/types/src/utils/cid.d.ts.map +1 -0
- package/dist/types/src/utils/data-stream.d.ts +27 -0
- package/dist/types/src/utils/data-stream.d.ts.map +1 -0
- package/dist/types/src/utils/encoder.d.ts +14 -0
- package/dist/types/src/utils/encoder.d.ts.map +1 -0
- package/dist/types/src/utils/encryption.d.ts +44 -0
- package/dist/types/src/utils/encryption.d.ts.map +1 -0
- package/dist/types/src/utils/hd-key.d.ts +35 -0
- package/dist/types/src/utils/hd-key.d.ts.map +1 -0
- package/dist/types/src/utils/jws.d.ts +39 -0
- package/dist/types/src/utils/jws.d.ts.map +1 -0
- package/dist/types/src/utils/memory-cache.d.ts +15 -0
- package/dist/types/src/utils/memory-cache.d.ts.map +1 -0
- package/dist/types/src/utils/object.d.ts +18 -0
- package/dist/types/src/utils/object.d.ts.map +1 -0
- package/dist/types/src/utils/private-key-signer.d.ts +34 -0
- package/dist/types/src/utils/private-key-signer.d.ts.map +1 -0
- package/dist/types/src/utils/protocols.d.ts +14 -0
- package/dist/types/src/utils/protocols.d.ts.map +1 -0
- package/dist/types/src/utils/records.d.ts +68 -0
- package/dist/types/src/utils/records.d.ts.map +1 -0
- package/dist/types/src/utils/secp256k1.d.ts +78 -0
- package/dist/types/src/utils/secp256k1.d.ts.map +1 -0
- package/dist/types/src/utils/string.d.ts +6 -0
- package/dist/types/src/utils/string.d.ts.map +1 -0
- package/dist/types/src/utils/time.d.ts +49 -0
- package/dist/types/src/utils/time.d.ts.map +1 -0
- package/dist/types/src/utils/url.d.ts +5 -0
- package/dist/types/src/utils/url.d.ts.map +1 -0
- package/dist/types/tests/core/auth.spec.d.ts +2 -0
- package/dist/types/tests/core/auth.spec.d.ts.map +1 -0
- package/dist/types/tests/core/message-reply.spec.d.ts +2 -0
- package/dist/types/tests/core/message-reply.spec.d.ts.map +1 -0
- package/dist/types/tests/core/message.spec.d.ts +2 -0
- package/dist/types/tests/core/message.spec.d.ts.map +1 -0
- package/dist/types/tests/did/did-ion-resolver.spec.d.ts +2 -0
- package/dist/types/tests/did/did-ion-resolver.spec.d.ts.map +1 -0
- package/dist/types/tests/did/did-key-resolver.spec.d.ts +2 -0
- package/dist/types/tests/did/did-key-resolver.spec.d.ts.map +1 -0
- package/dist/types/tests/did/did-resolver.spec.d.ts +2 -0
- package/dist/types/tests/did/did-resolver.spec.d.ts.map +1 -0
- package/dist/types/tests/did/did.spec.d.ts +2 -0
- package/dist/types/tests/did/did.spec.d.ts.map +1 -0
- package/dist/types/tests/dwn.spec.d.ts +2 -0
- package/dist/types/tests/dwn.spec.d.ts.map +1 -0
- package/dist/types/tests/end-to-end-tests.spec.d.ts +2 -0
- package/dist/types/tests/end-to-end-tests.spec.d.ts.map +1 -0
- package/dist/types/tests/event-log/event-log-level.spec.d.ts +2 -0
- package/dist/types/tests/event-log/event-log-level.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/events-get.spec.d.ts +2 -0
- package/dist/types/tests/handlers/events-get.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/messages-get.spec.d.ts +2 -0
- package/dist/types/tests/handlers/messages-get.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/permissions-grant.spec.d.ts +2 -0
- package/dist/types/tests/handlers/permissions-grant.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/permissions-request.spec.d.ts +2 -0
- package/dist/types/tests/handlers/permissions-request.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/permissions-revoke.spec.d.ts +2 -0
- package/dist/types/tests/handlers/permissions-revoke.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/protocols-configure.spec.d.ts +2 -0
- package/dist/types/tests/handlers/protocols-configure.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/protocols-query.spec.d.ts +2 -0
- package/dist/types/tests/handlers/protocols-query.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/records-delete.spec.d.ts +2 -0
- package/dist/types/tests/handlers/records-delete.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/records-query.spec.d.ts +2 -0
- package/dist/types/tests/handlers/records-query.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/records-read.spec.d.ts +2 -0
- package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/records-write.spec.d.ts +2 -0
- package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -0
- package/dist/types/tests/interfaces/events-get.spec.d.ts +2 -0
- package/dist/types/tests/interfaces/events-get.spec.d.ts.map +1 -0
- package/dist/types/tests/interfaces/messages-get.spec.d.ts +2 -0
- package/dist/types/tests/interfaces/messages-get.spec.d.ts.map +1 -0
- package/dist/types/tests/interfaces/permissions-grant.spec.d.ts +2 -0
- package/dist/types/tests/interfaces/permissions-grant.spec.d.ts.map +1 -0
- package/dist/types/tests/interfaces/permissions-request.spec.d.ts +2 -0
- package/dist/types/tests/interfaces/permissions-request.spec.d.ts.map +1 -0
- package/dist/types/tests/interfaces/protocols-configure.spec.d.ts +2 -0
- package/dist/types/tests/interfaces/protocols-configure.spec.d.ts.map +1 -0
- package/dist/types/tests/interfaces/protocols-query.spec.d.ts +2 -0
- package/dist/types/tests/interfaces/protocols-query.spec.d.ts.map +1 -0
- package/dist/types/tests/interfaces/records-delete.spec.d.ts +2 -0
- package/dist/types/tests/interfaces/records-delete.spec.d.ts.map +1 -0
- package/dist/types/tests/interfaces/records-query.spec.d.ts +2 -0
- package/dist/types/tests/interfaces/records-query.spec.d.ts.map +1 -0
- package/dist/types/tests/interfaces/records-read.spec.d.ts +2 -0
- package/dist/types/tests/interfaces/records-read.spec.d.ts.map +1 -0
- package/dist/types/tests/interfaces/records-write.spec.d.ts +2 -0
- package/dist/types/tests/interfaces/records-write.spec.d.ts.map +1 -0
- package/dist/types/tests/jose/jws/general.spec.d.ts +2 -0
- package/dist/types/tests/jose/jws/general.spec.d.ts.map +1 -0
- package/dist/types/tests/scenarios/delegated-grant.spec.d.ts +2 -0
- package/dist/types/tests/scenarios/delegated-grant.spec.d.ts.map +1 -0
- package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts +2 -0
- package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -0
- package/dist/types/tests/store/data-store-level.spec.d.ts +2 -0
- package/dist/types/tests/store/data-store-level.spec.d.ts.map +1 -0
- package/dist/types/tests/store/index-level.spec.d.ts +2 -0
- package/dist/types/tests/store/index-level.spec.d.ts.map +1 -0
- package/dist/types/tests/store/message-store-level.spec.d.ts +2 -0
- package/dist/types/tests/store/message-store-level.spec.d.ts.map +1 -0
- package/dist/types/tests/store/message-store.spec.d.ts +2 -0
- package/dist/types/tests/store/message-store.spec.d.ts.map +1 -0
- package/dist/types/tests/store-dependent-tests.spec.d.ts +2 -0
- package/dist/types/tests/store-dependent-tests.spec.d.ts.map +1 -0
- package/dist/types/tests/test-stores.d.ts +30 -0
- package/dist/types/tests/test-stores.d.ts.map +1 -0
- package/dist/types/tests/test-suite.d.ts +16 -0
- package/dist/types/tests/test-suite.d.ts.map +1 -0
- package/dist/types/tests/utils/cid.spec.d.ts +2 -0
- package/dist/types/tests/utils/cid.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/data-stream.spec.d.ts +2 -0
- package/dist/types/tests/utils/data-stream.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/encryption.spec.d.ts +2 -0
- package/dist/types/tests/utils/encryption.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/jws.spec.d.ts +2 -0
- package/dist/types/tests/utils/jws.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/memory-cache.spec.d.ts +2 -0
- package/dist/types/tests/utils/memory-cache.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/object.spec.d.ts +2 -0
- package/dist/types/tests/utils/object.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/private-key-signer.spec.d.ts +2 -0
- package/dist/types/tests/utils/private-key-signer.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/records.spec.d.ts +2 -0
- package/dist/types/tests/utils/records.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/secp256k1.spec.d.ts +2 -0
- package/dist/types/tests/utils/secp256k1.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/test-data-generator.d.ts +323 -0
- package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -0
- package/dist/types/tests/utils/test-stub-generator.d.ts +16 -0
- package/dist/types/tests/utils/test-stub-generator.d.ts.map +1 -0
- package/dist/types/tests/utils/time.spec.d.ts +2 -0
- package/dist/types/tests/utils/time.spec.d.ts.map +1 -0
- package/dist/types/tests/utils/url.spec.d.ts +2 -0
- package/dist/types/tests/utils/url.spec.d.ts.map +1 -0
- package/dist/types/tests/validation/json-schemas/definitions.spec.d.ts +2 -0
- package/dist/types/tests/validation/json-schemas/definitions.spec.d.ts.map +1 -0
- package/dist/types/tests/validation/json-schemas/jwk/general-jwk.spec.d.ts +2 -0
- package/dist/types/tests/validation/json-schemas/jwk/general-jwk.spec.d.ts.map +1 -0
- package/dist/types/tests/validation/json-schemas/jwk/public-jwk.spec.d.ts +2 -0
- package/dist/types/tests/validation/json-schemas/jwk/public-jwk.spec.d.ts.map +1 -0
- package/dist/types/tests/validation/json-schemas/jwk-verification-method.spec.d.ts +2 -0
- package/dist/types/tests/validation/json-schemas/jwk-verification-method.spec.d.ts.map +1 -0
- package/dist/types/tests/validation/json-schemas/protocols/protocols-configure.spec.d.ts +2 -0
- package/dist/types/tests/validation/json-schemas/protocols/protocols-configure.spec.d.ts.map +1 -0
- package/dist/types/tests/validation/json-schemas/records/records-query.spec.d.ts +2 -0
- package/dist/types/tests/validation/json-schemas/records/records-query.spec.d.ts.map +1 -0
- package/dist/types/tests/validation/json-schemas/records/records-write.spec.d.ts +2 -0
- package/dist/types/tests/validation/json-schemas/records/records-write.spec.d.ts.map +1 -0
- package/package.json +156 -0
- package/src/core/abstract-message.ts +48 -0
- package/src/core/auth.ts +108 -0
- package/src/core/dwn-constant.ts +7 -0
- package/src/core/dwn-error.ts +136 -0
- package/src/core/grant-authorization.ts +163 -0
- package/src/core/message-reply.ts +42 -0
- package/src/core/message.ts +224 -0
- package/src/core/protocol-authorization.ts +691 -0
- package/src/core/records-grant-authorization.ts +167 -0
- package/src/core/tenant-gate.ts +18 -0
- package/src/did/did-dht-resolver.ts +241 -0
- package/src/did/did-ion-resolver.ts +52 -0
- package/src/did/did-key-resolver.ts +137 -0
- package/src/did/did-resolver.ts +77 -0
- package/src/did/did.ts +39 -0
- package/src/dwn.ts +213 -0
- package/src/enums/dwn-interface-method.ts +20 -0
- package/src/event-log/event-log-level.ts +116 -0
- package/src/handlers/events-get.ts +46 -0
- package/src/handlers/messages-get.ts +80 -0
- package/src/handlers/permissions-grant.ts +52 -0
- package/src/handlers/permissions-request.ts +54 -0
- package/src/handlers/permissions-revoke.ts +121 -0
- package/src/handlers/protocols-configure.ts +104 -0
- package/src/handlers/protocols-query.ts +81 -0
- package/src/handlers/records-delete.ts +139 -0
- package/src/handlers/records-query.ts +253 -0
- package/src/handlers/records-read.ts +127 -0
- package/src/handlers/records-write.ts +296 -0
- package/src/index.ts +81 -0
- package/src/interfaces/events-get.ts +43 -0
- package/src/interfaces/messages-get.ts +59 -0
- package/src/interfaces/permissions-grant.ts +175 -0
- package/src/interfaces/permissions-request.ts +55 -0
- package/src/interfaces/permissions-revoke.ts +46 -0
- package/src/interfaces/protocols-configure.ts +188 -0
- package/src/interfaces/protocols-query.ts +99 -0
- package/src/interfaces/records-delete.ts +67 -0
- package/src/interfaces/records-query.ts +100 -0
- package/src/interfaces/records-read.ts +82 -0
- package/src/interfaces/records-write.ts +924 -0
- package/src/jose/algorithms/signing/ed25519.ts +61 -0
- package/src/jose/algorithms/signing/signature-algorithms.ts +15 -0
- package/src/jose/jws/general/builder.ts +48 -0
- package/src/jose/jws/general/signer.ts +29 -0
- package/src/jose/jws/general/verifier.ts +113 -0
- package/src/schema-validator.ts +34 -0
- package/src/store/blockstore-level.ts +113 -0
- package/src/store/data-store-level.ts +188 -0
- package/src/store/index-level.ts +306 -0
- package/src/store/level-wrapper.ts +262 -0
- package/src/store/message-store-level.ts +284 -0
- package/src/store/storage-controller.ts +80 -0
- package/src/types/cache.ts +16 -0
- package/src/types/data-store.ts +78 -0
- package/src/types/delegated-grant-message.ts +15 -0
- package/src/types/did-types.ts +95 -0
- package/src/types/event-log.ts +46 -0
- package/src/types/event-types.ts +20 -0
- package/src/types/jose-types.ts +76 -0
- package/src/types/jws-types.ts +28 -0
- package/src/types/message-interface.ts +24 -0
- package/src/types/message-store.ts +56 -0
- package/src/types/message-types.ts +115 -0
- package/src/types/messages-types.ts +26 -0
- package/src/types/method-handler.ts +17 -0
- package/src/types/permissions-grant-descriptor.ts +79 -0
- package/src/types/permissions-types.ts +42 -0
- package/src/types/protocols-types.ts +154 -0
- package/src/types/records-types.ts +184 -0
- package/src/types/signer.ts +27 -0
- package/src/utils/abort.ts +31 -0
- package/src/utils/array.ts +39 -0
- package/src/utils/cid.ts +101 -0
- package/src/utils/data-stream.ts +85 -0
- package/src/utils/encoder.ts +54 -0
- package/src/utils/encryption.ts +145 -0
- package/src/utils/hd-key.ts +58 -0
- package/src/utils/jws.ts +95 -0
- package/src/utils/memory-cache.ts +31 -0
- package/src/utils/object.ts +55 -0
- package/src/utils/private-key-signer.ts +72 -0
- package/src/utils/protocols.ts +50 -0
- package/src/utils/records.ts +326 -0
- package/src/utils/secp256k1.ts +209 -0
- package/src/utils/string.ts +13 -0
- package/src/utils/time.ts +77 -0
- package/src/utils/url.ts +66 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
|
|
2
|
+
import type { RecordsWriteMessage } from '../types/records-types.js';
|
|
3
|
+
import type { Filter, GenericMessage, MessageSort, Pagination } from '../types/message-types.js';
|
|
4
|
+
import type { MessageStore, MessageStoreOptions } from '../types/message-store.js';
|
|
5
|
+
|
|
6
|
+
import * as block from 'multiformats/block';
|
|
7
|
+
import * as cbor from '@ipld/dag-cbor';
|
|
8
|
+
|
|
9
|
+
import { ArrayUtility } from '../utils/array.js';
|
|
10
|
+
import { BlockstoreLevel } from './blockstore-level.js';
|
|
11
|
+
import { Cid } from '../utils/cid.js';
|
|
12
|
+
import { CID } from 'multiformats/cid';
|
|
13
|
+
import { createLevelDatabase } from './level-wrapper.js';
|
|
14
|
+
import { executeUnlessAborted } from '../utils/abort.js';
|
|
15
|
+
import { IndexLevel } from './index-level.js';
|
|
16
|
+
import { Message } from '../core/message.js';
|
|
17
|
+
import { sha256 } from 'multiformats/hashes/sha2';
|
|
18
|
+
import { SortOrder } from '../types/message-types.js';
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* A simple implementation of {@link MessageStore} that works in both the browser and server-side.
|
|
23
|
+
* Leverages LevelDB under the hood.
|
|
24
|
+
*/
|
|
25
|
+
export class MessageStoreLevel implements MessageStore {
|
|
26
|
+
config: MessageStoreLevelConfig;
|
|
27
|
+
|
|
28
|
+
blockstore: BlockstoreLevel;
|
|
29
|
+
|
|
30
|
+
index: IndexLevel;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @param {MessageStoreLevelConfig} config
|
|
34
|
+
* @param {string} config.blockstoreLocation - must be a directory path (relative or absolute) where
|
|
35
|
+
* LevelDB will store its files, or in browsers, the name of the
|
|
36
|
+
* {@link https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase IDBDatabase} to be opened.
|
|
37
|
+
* @param {string} config.indexLocation - same as config.blockstoreLocation
|
|
38
|
+
*/
|
|
39
|
+
constructor(config: MessageStoreLevelConfig = {}) {
|
|
40
|
+
this.config = {
|
|
41
|
+
blockstoreLocation : 'data/MESSAGESTORE',
|
|
42
|
+
indexLocation : 'data/INDEX',
|
|
43
|
+
createLevelDatabase,
|
|
44
|
+
...config
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
this.blockstore = new BlockstoreLevel({
|
|
48
|
+
location : this.config.blockstoreLocation!,
|
|
49
|
+
createLevelDatabase : this.config.createLevelDatabase,
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
this.index = new IndexLevel({
|
|
53
|
+
location : this.config.indexLocation!,
|
|
54
|
+
createLevelDatabase : this.config.createLevelDatabase,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async open(): Promise<void> {
|
|
59
|
+
await this.blockstore.open();
|
|
60
|
+
await this.index.open();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
async close(): Promise<void> {
|
|
64
|
+
await this.blockstore.close();
|
|
65
|
+
await this.index.close();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async get(tenant: string, cidString: string, options?: MessageStoreOptions): Promise<GenericMessage | undefined> {
|
|
69
|
+
options?.signal?.throwIfAborted();
|
|
70
|
+
|
|
71
|
+
const partition = await executeUnlessAborted(this.blockstore.partition(tenant), options?.signal);
|
|
72
|
+
|
|
73
|
+
const cid = CID.parse(cidString);
|
|
74
|
+
const bytes = await partition.get(cid, options);
|
|
75
|
+
|
|
76
|
+
if (!bytes) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const decodedBlock = await executeUnlessAborted(block.decode({ bytes, codec: cbor, hasher: sha256 }), options?.signal);
|
|
81
|
+
|
|
82
|
+
const message = decodedBlock.value as GenericMessage;
|
|
83
|
+
return message;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
async query(
|
|
87
|
+
tenant: string,
|
|
88
|
+
filters: Filter[],
|
|
89
|
+
messageSort?: MessageSort,
|
|
90
|
+
pagination?: Pagination,
|
|
91
|
+
options?: MessageStoreOptions
|
|
92
|
+
): Promise<{ messages: GenericMessage[], cursor?: string }> {
|
|
93
|
+
options?.signal?.throwIfAborted();
|
|
94
|
+
|
|
95
|
+
const messages: GenericMessage[] = [];
|
|
96
|
+
// note: injecting tenant into filters to allow querying with an "empty" filter.
|
|
97
|
+
// if there are no other filters present it will return all the messages the tenant.
|
|
98
|
+
const resultIds = await this.index.query(tenant, filters.map(f => ({ ...f, tenant })), options);
|
|
99
|
+
|
|
100
|
+
// as an optimization for large data sets, we are finding the message object which matches the cursor here.
|
|
101
|
+
// we can use this within the pagination function after sorting to determine the starting point of the array in a more efficient way.
|
|
102
|
+
let paginationMessage: GenericMessage | undefined;
|
|
103
|
+
for (const id of resultIds) {
|
|
104
|
+
const message = await this.get(tenant, id, options);
|
|
105
|
+
if (message) { messages.push(message); }
|
|
106
|
+
if (pagination?.cursor && pagination.cursor === id) {
|
|
107
|
+
paginationMessage = message;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (pagination?.cursor !== undefined && paginationMessage === undefined) {
|
|
112
|
+
return { messages: [] }; //if paginationMessage is not found, do not return any results
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const sortedRecords = await MessageStoreLevel.sortMessages(messages, messageSort);
|
|
116
|
+
return this.paginateMessages(sortedRecords, paginationMessage, pagination);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
private async paginateMessages(
|
|
120
|
+
messages: GenericMessage[],
|
|
121
|
+
paginationMessage?: GenericMessage,
|
|
122
|
+
pagination: Pagination = { }
|
|
123
|
+
): Promise<{ messages: GenericMessage[], cursor?: string } > {
|
|
124
|
+
const { limit } = pagination;
|
|
125
|
+
if (paginationMessage === undefined && limit === undefined) {
|
|
126
|
+
return { messages }; // return all without pagination pointer.
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// we are passing the pagination message object for an easier lookup
|
|
130
|
+
// since we know this object exists within the array if passed, we can assume that it will always have a value greater than -1
|
|
131
|
+
const cursorIndex = paginationMessage ? messages.indexOf(paginationMessage) : undefined;
|
|
132
|
+
|
|
133
|
+
// the first element of the returned results is always the message immediately following the cursor.
|
|
134
|
+
const start = cursorIndex === undefined ? 0 : cursorIndex + 1;
|
|
135
|
+
const end = limit === undefined ? undefined : start + limit;
|
|
136
|
+
const results = messages.slice(start, end);
|
|
137
|
+
|
|
138
|
+
// we only return a cursor cursor if there are more results
|
|
139
|
+
const hasMoreResults = end !== undefined && end < messages.length;
|
|
140
|
+
let cursor: string|undefined;
|
|
141
|
+
if (hasMoreResults) {
|
|
142
|
+
// we extract the cid of the last message in the result set.
|
|
143
|
+
const lastMessage = results.at(-1);
|
|
144
|
+
cursor = await Message.getCid(lastMessage!);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return { messages: results, cursor };
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Compares the chosen property of two messages in lexicographical order.
|
|
152
|
+
* When the value is the same between the two objects, `messageCid` comparison is used to tiebreak.
|
|
153
|
+
* tiebreaker always compares messageA to messageB
|
|
154
|
+
*
|
|
155
|
+
* @returns if SortOrder is Ascending:
|
|
156
|
+
* 1 if the chosen property of `messageA` is larger than of `messageB`;
|
|
157
|
+
* -1 if the chosen property `messageA` is smaller/older than of `messageB`;
|
|
158
|
+
* 0 otherwise
|
|
159
|
+
* if SortOrder is Descending:
|
|
160
|
+
* 1 if the chosen property of `messageB` is larger than of `messageA`;
|
|
161
|
+
* -1 if the chosen property `messageB` is smaller/older than of `messageA`;
|
|
162
|
+
* 0 otherwise
|
|
163
|
+
*/
|
|
164
|
+
static async lexicographicalCompare(
|
|
165
|
+
messageA: GenericMessage,
|
|
166
|
+
messageB: GenericMessage,
|
|
167
|
+
comparedPropertyName: string,
|
|
168
|
+
sortOrder: SortOrder): Promise<number>
|
|
169
|
+
{
|
|
170
|
+
const a = (messageA.descriptor as any)[comparedPropertyName];
|
|
171
|
+
const b = (messageB.descriptor as any)[comparedPropertyName];
|
|
172
|
+
|
|
173
|
+
if (sortOrder === SortOrder.Ascending) {
|
|
174
|
+
if (a > b) {
|
|
175
|
+
return 1;
|
|
176
|
+
} else if (a < b) {
|
|
177
|
+
return -1;
|
|
178
|
+
}
|
|
179
|
+
} else {
|
|
180
|
+
// descending order
|
|
181
|
+
if (b > a) {
|
|
182
|
+
return 1;
|
|
183
|
+
} else if (b < a) {
|
|
184
|
+
return -1;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// if we reach here it means the compared properties have the same values, we need to fall back to compare the `messageCid` instead
|
|
189
|
+
return await Message.compareCid(messageA, messageB);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* This is a temporary naive sort, it will eventually be done within the underlying data store.
|
|
194
|
+
*
|
|
195
|
+
* If sorting is based on date published, records that are not published are filtered out.
|
|
196
|
+
* @param messages - Messages to be sorted if dateSort is present
|
|
197
|
+
* @param sort - Sorting scheme
|
|
198
|
+
* @returns Sorted Messages
|
|
199
|
+
*/
|
|
200
|
+
public static async sortMessages(
|
|
201
|
+
messages: GenericMessage[],
|
|
202
|
+
messageSort: MessageSort = { }
|
|
203
|
+
): Promise<GenericMessage[]> {
|
|
204
|
+
const { dateCreated, datePublished, messageTimestamp } = messageSort;
|
|
205
|
+
|
|
206
|
+
let sortOrder = SortOrder.Ascending; // default
|
|
207
|
+
let messagesToSort = messages; // default
|
|
208
|
+
let propertyToCompare: keyof MessageSort | undefined; // `keyof MessageSort` = name of all properties of `MessageSort`
|
|
209
|
+
|
|
210
|
+
if (dateCreated !== undefined) {
|
|
211
|
+
propertyToCompare = 'dateCreated';
|
|
212
|
+
} else if (datePublished !== undefined) {
|
|
213
|
+
propertyToCompare = 'datePublished';
|
|
214
|
+
messagesToSort = (messages as RecordsWriteMessage[]).filter(message => message.descriptor.published);
|
|
215
|
+
} else if (messageTimestamp !== undefined) {
|
|
216
|
+
propertyToCompare = 'messageTimestamp';
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
if (propertyToCompare !== undefined) {
|
|
220
|
+
sortOrder = messageSort[propertyToCompare]!;
|
|
221
|
+
} else {
|
|
222
|
+
propertyToCompare = 'messageTimestamp';
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
const asyncComparer = (a: GenericMessage, b: GenericMessage): Promise<number> => {
|
|
226
|
+
return MessageStoreLevel.lexicographicalCompare(a, b, propertyToCompare!, sortOrder);
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
// NOTE: we needed to implement our own asynchronous sort method because Array.sort() does not take an async comparer
|
|
230
|
+
return await ArrayUtility.asyncSort(messagesToSort, asyncComparer);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
async delete(tenant: string, cidString: string, options?: MessageStoreOptions): Promise<void> {
|
|
234
|
+
options?.signal?.throwIfAborted();
|
|
235
|
+
|
|
236
|
+
const partition = await executeUnlessAborted(this.blockstore.partition(tenant), options?.signal);
|
|
237
|
+
|
|
238
|
+
const cid = CID.parse(cidString);
|
|
239
|
+
await partition.delete(cid, options);
|
|
240
|
+
await this.index.delete(tenant, cidString, options);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
async put(
|
|
244
|
+
tenant: string,
|
|
245
|
+
message: GenericMessage,
|
|
246
|
+
indexes: { [key: string]: string | boolean },
|
|
247
|
+
options?: MessageStoreOptions
|
|
248
|
+
): Promise<void> {
|
|
249
|
+
options?.signal?.throwIfAborted();
|
|
250
|
+
|
|
251
|
+
const partition = await executeUnlessAborted(this.blockstore.partition(tenant), options?.signal);
|
|
252
|
+
|
|
253
|
+
const encodedMessageBlock = await executeUnlessAborted(block.encode({ value: message, codec: cbor, hasher: sha256 }), options?.signal);
|
|
254
|
+
|
|
255
|
+
// MessageStore data may contain `encodedData` which is not taken into account when calculating the blockCID as it is optional data.
|
|
256
|
+
const messageCid = Cid.parseCid(await Message.getCid(message));
|
|
257
|
+
await partition.put(messageCid, encodedMessageBlock.bytes, options);
|
|
258
|
+
|
|
259
|
+
const messageCidString = messageCid.toString();
|
|
260
|
+
|
|
261
|
+
// note: leaving the additional tenant indexing to allow for querying with an "empty" filter.
|
|
262
|
+
// when querying, we also inject a filter for the specific tenant.
|
|
263
|
+
// if there are no other filters present it will return all the messages for that tenant.
|
|
264
|
+
const indexDocument = {
|
|
265
|
+
...indexes,
|
|
266
|
+
tenant,
|
|
267
|
+
};
|
|
268
|
+
await this.index.put(tenant, messageCidString, indexDocument, options);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* deletes everything in the underlying blockstore and indices.
|
|
273
|
+
*/
|
|
274
|
+
async clear(): Promise<void> {
|
|
275
|
+
await this.blockstore.clear();
|
|
276
|
+
await this.index.clear();
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
type MessageStoreLevelConfig = {
|
|
281
|
+
blockstoreLocation?: string,
|
|
282
|
+
indexLocation?: string,
|
|
283
|
+
createLevelDatabase?: typeof createLevelDatabase,
|
|
284
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { DataStore } from '../types/data-store.js';
|
|
2
|
+
import type { EventLog } from '../types/event-log.js';
|
|
3
|
+
import type { GenericMessage } from '../types/message-types.js';
|
|
4
|
+
import type { MessageStore } from '../types/message-store.js';
|
|
5
|
+
import type { RecordsWriteMessage, RecordsWriteMessageWithOptionalEncodedData } from '../types/records-types.js';
|
|
6
|
+
|
|
7
|
+
import { DwnConstant } from '../core/dwn-constant.js';
|
|
8
|
+
import { DwnMethodName } from '../enums/dwn-interface-method.js';
|
|
9
|
+
import { Message } from '../core/message.js';
|
|
10
|
+
import { RecordsWrite } from '../interfaces/records-write.js';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A class that provides an abstraction for the usage of MessageStore, DataStore, and EventLog.
|
|
14
|
+
*/
|
|
15
|
+
export class StorageController {
|
|
16
|
+
/**
|
|
17
|
+
* Deletes a message.
|
|
18
|
+
*/
|
|
19
|
+
private static async delete(
|
|
20
|
+
messageStore: MessageStore,
|
|
21
|
+
dataStore: DataStore,
|
|
22
|
+
tenant: string,
|
|
23
|
+
message: GenericMessage
|
|
24
|
+
): Promise<void> {
|
|
25
|
+
const messageCid = await Message.getCid(message);
|
|
26
|
+
|
|
27
|
+
if (message.descriptor.method === DwnMethodName.Write &&
|
|
28
|
+
(message as RecordsWriteMessage).descriptor.dataSize > DwnConstant.maxDataSizeAllowedToBeEncoded) {
|
|
29
|
+
const recordsWriteMessage = message as RecordsWriteMessage;
|
|
30
|
+
await dataStore.delete(tenant, messageCid, recordsWriteMessage.descriptor.dataCid);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
await messageStore.delete(tenant, messageCid);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Deletes all messages in `existingMessages` that are older than the `comparedToMessage` in the given tenant,
|
|
39
|
+
* but keep the initial write write for future processing by ensuring its `isLatestBaseState` index is "false".
|
|
40
|
+
*/
|
|
41
|
+
public static async deleteAllOlderMessagesButKeepInitialWrite(
|
|
42
|
+
tenant: string,
|
|
43
|
+
existingMessages: GenericMessage[],
|
|
44
|
+
comparedToMessage: GenericMessage,
|
|
45
|
+
messageStore: MessageStore,
|
|
46
|
+
dataStore: DataStore,
|
|
47
|
+
eventLog: EventLog
|
|
48
|
+
): Promise<void> {
|
|
49
|
+
const deletedMessageCids: string[] = [];
|
|
50
|
+
|
|
51
|
+
// NOTE: under normal operation, there should only be at most two existing records per `recordId` (initial + a potential subsequent write/delete),
|
|
52
|
+
// but the DWN may crash before `delete()` is called below, so we use a loop as a tactic to clean up lingering data as needed
|
|
53
|
+
for (const message of existingMessages) {
|
|
54
|
+
const messageIsOld = await Message.isOlder(message, comparedToMessage);
|
|
55
|
+
if (messageIsOld) {
|
|
56
|
+
// the easiest implementation here is delete each old messages
|
|
57
|
+
// and re-create it with the right index (isLatestBaseState = 'false') if the message is the initial write,
|
|
58
|
+
// but there is room for better/more efficient implementation here
|
|
59
|
+
await StorageController.delete(messageStore, dataStore, tenant, message);
|
|
60
|
+
|
|
61
|
+
// if the existing message is the initial write
|
|
62
|
+
// we actually need to keep it BUT, need to ensure the message is no longer marked as the latest state
|
|
63
|
+
const existingMessageIsInitialWrite = await RecordsWrite.isInitialWrite(message);
|
|
64
|
+
if (existingMessageIsInitialWrite) {
|
|
65
|
+
const existingRecordsWrite = await RecordsWrite.parse(message as RecordsWriteMessage);
|
|
66
|
+
const isLatestBaseState = false;
|
|
67
|
+
const indexes = await existingRecordsWrite.constructRecordsWriteIndexes(isLatestBaseState);
|
|
68
|
+
const writeMessage = message as RecordsWriteMessageWithOptionalEncodedData;
|
|
69
|
+
delete writeMessage.encodedData;
|
|
70
|
+
await messageStore.put(tenant, writeMessage, indexes);
|
|
71
|
+
} else {
|
|
72
|
+
const messageCid = await Message.getCid(message);
|
|
73
|
+
deletedMessageCids.push(messageCid);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
await eventLog.deleteEventsByCid(tenant, deletedMessageCids);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A generalized cache interface.
|
|
3
|
+
* The motivation behind this interface is so that code that depend on the cache can remain independent to the underlying implementation.
|
|
4
|
+
*/
|
|
5
|
+
export interface Cache {
|
|
6
|
+
/**
|
|
7
|
+
* Sets a key-value pair. Does not throw error.
|
|
8
|
+
*/
|
|
9
|
+
set(key: string, value: any): Promise<void>;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Gets the value corresponding to the given key.
|
|
13
|
+
* @returns value stored corresponding to the given key; `undefined` if key is not found or expired
|
|
14
|
+
*/
|
|
15
|
+
get(key: string): Promise<any | undefined>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { Readable } from 'readable-stream';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The interface that defines how to store and fetch data associated with a message
|
|
5
|
+
*/
|
|
6
|
+
export interface DataStore {
|
|
7
|
+
/**
|
|
8
|
+
* Opens a connection to the underlying store.
|
|
9
|
+
*/
|
|
10
|
+
open(): Promise<void>;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Closes the connection to the underlying store.
|
|
14
|
+
*/
|
|
15
|
+
close(): Promise<void>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Puts the given data in store.
|
|
19
|
+
* It is expected that the CID of the dataStream matches the given dataCid.
|
|
20
|
+
* The returned dataCid and returned dataSize will be verified against the given dataCid (and inferred dataSize).
|
|
21
|
+
* @param messageCid CID of the message that references the data.
|
|
22
|
+
* @returns The CID and size in number of bytes of the data stored.
|
|
23
|
+
*/
|
|
24
|
+
put(tenant: string, messageCid: string, dataCid: string, dataStream: Readable): Promise<PutResult>;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Fetches the specified data.
|
|
28
|
+
* The returned dataCid and returned dataSize will be verified against the given dataCid (and inferred dataSize).
|
|
29
|
+
* @param messageCid CID of the message that references the data.
|
|
30
|
+
*/
|
|
31
|
+
get(tenant: string, messageCid: string, dataCid: string): Promise<GetResult | undefined>;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Associates dataCid of existing data with the given messageCid.
|
|
35
|
+
* The returned dataCid and returned dataSize will be verified against the given dataCid (and inferred dataSize).
|
|
36
|
+
* @param tenant The tenant in which the data must exist under for the association to occur.
|
|
37
|
+
* @param messageCid CID of the message that references the data.
|
|
38
|
+
* @param dataCid The CID of the data stored.
|
|
39
|
+
* @returns {AssociateResult} if association succeeds. `undefined` if data to be associated is not found.
|
|
40
|
+
*/
|
|
41
|
+
associate(tenant: string, messageCid: string, dataCid: string): Promise<AssociateResult | undefined>;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Deletes the specified data.
|
|
45
|
+
* @param messageCid CID of the message that references the data.
|
|
46
|
+
*/
|
|
47
|
+
delete(tenant: string, messageCid: string, dataCid: string): Promise<void>;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Clears the entire store. Mainly used for cleaning up in test environment.
|
|
51
|
+
*/
|
|
52
|
+
clear(): Promise<void>;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Result of a data store `put()` method call.
|
|
57
|
+
*/
|
|
58
|
+
export type PutResult = {
|
|
59
|
+
dataCid: string;
|
|
60
|
+
dataSize: number;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Result of a data store `get()` method call.
|
|
65
|
+
*/
|
|
66
|
+
export type GetResult = {
|
|
67
|
+
dataCid: string;
|
|
68
|
+
dataSize: number;
|
|
69
|
+
dataStream: Readable;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Result of a data store `associate()` method call.
|
|
74
|
+
*/
|
|
75
|
+
export type AssociateResult = {
|
|
76
|
+
dataCid: string;
|
|
77
|
+
dataSize: number;
|
|
78
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { GeneralJws } from './jws-types.js';
|
|
2
|
+
import type { PermissionsGrantDescriptor } from './permissions-grant-descriptor.js';
|
|
3
|
+
|
|
4
|
+
export type DelegatedGrantMessage = {
|
|
5
|
+
authorization: {
|
|
6
|
+
/**
|
|
7
|
+
* The signature of the message signer.
|
|
8
|
+
*/
|
|
9
|
+
signature: GeneralJws;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
descriptor: PermissionsGrantDescriptor & {
|
|
13
|
+
delegated: true;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { PublicJwk } from './jose-types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A generalized interface that can be implemented for individual
|
|
5
|
+
* DID methods
|
|
6
|
+
*/
|
|
7
|
+
export interface DidMethodResolver {
|
|
8
|
+
/**
|
|
9
|
+
* @returns the DID method supported by {@link DidMethodResolver.resolve}
|
|
10
|
+
*/
|
|
11
|
+
method(): string;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* attempts to resolve the DID provided into its respective DID Document.
|
|
15
|
+
* More info on resolving DIDs can be found
|
|
16
|
+
* {@link https://www.w3.org/TR/did-core/#resolution here}
|
|
17
|
+
* @param did - the DID to resolve
|
|
18
|
+
* @throws {Error} if unable to resolve the DID
|
|
19
|
+
*/
|
|
20
|
+
resolve(did: string): Promise<DidResolutionResult>;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
export type DidDocument = {
|
|
26
|
+
'@context'?: 'https://www.w3.org/ns/did/v1' | string | string[]
|
|
27
|
+
id: string
|
|
28
|
+
alsoKnownAs?: string[]
|
|
29
|
+
controller?: string | string[]
|
|
30
|
+
verificationMethod?: VerificationMethod[]
|
|
31
|
+
service?: ServiceEndpoint[]
|
|
32
|
+
authentication?: VerificationMethod[] | string[]
|
|
33
|
+
assertionMethod?: VerificationMethod[] | string[]
|
|
34
|
+
keyAgreement?: VerificationMethod[] | string[]
|
|
35
|
+
capabilityInvocation?: VerificationMethod[] | string[]
|
|
36
|
+
capabilityDelegation?: VerificationMethod[] | string[]
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export type DwnServiceEndpoint = {
|
|
40
|
+
nodes: string[]
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export type ServiceEndpoint = {
|
|
44
|
+
id: string
|
|
45
|
+
type: string
|
|
46
|
+
serviceEndpoint: string | DwnServiceEndpoint
|
|
47
|
+
description?: string
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export type VerificationMethod = {
|
|
51
|
+
id: string
|
|
52
|
+
// one of the valid verification method types as per
|
|
53
|
+
// https://www.w3.org/TR/did-spec-registries/#verification-method-types
|
|
54
|
+
type: string
|
|
55
|
+
// DID of the key's controller
|
|
56
|
+
controller: string
|
|
57
|
+
// a JSON Web Key that conforms to https://datatracker.ietf.org/doc/html/rfc7517
|
|
58
|
+
publicKeyJwk?: PublicJwk
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export type DidResolutionResult = {
|
|
62
|
+
'@context'?: 'https://w3id.org/did-resolution/v1' | string | string[]
|
|
63
|
+
didResolutionMetadata: DidResolutionMetadata
|
|
64
|
+
didDocument?: DidDocument
|
|
65
|
+
didDocumentMetadata: DidDocumentMetadata
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export type DidResolutionMetadata = {
|
|
69
|
+
contentType?: string
|
|
70
|
+
error?: 'invalidDid' | 'notFound' | 'representationNotSupported' |
|
|
71
|
+
'unsupportedDidMethod' | string
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export type DidDocumentMetadata = {
|
|
75
|
+
// indicates the timestamp of the Create operation. ISO8601 timestamp
|
|
76
|
+
created?: string
|
|
77
|
+
// indicates the timestamp of the last Update operation for the document version which was
|
|
78
|
+
// resolved. ISO8601 timestamp
|
|
79
|
+
updated?: string
|
|
80
|
+
// indicates whether the DID has been deactivated
|
|
81
|
+
deactivated?: boolean
|
|
82
|
+
// indicates the version of the last Update operation for the document version which
|
|
83
|
+
// was resolved
|
|
84
|
+
versionId?: string
|
|
85
|
+
// indicates the timestamp of the next Update operation if the resolved document version
|
|
86
|
+
// is not the latest version of the document.
|
|
87
|
+
nextUpdate?: string
|
|
88
|
+
// indicates the version of the next Update operation if the resolved document version
|
|
89
|
+
// is not the latest version of the document.
|
|
90
|
+
nextVersionId?: string
|
|
91
|
+
// @see https://www.w3.org/TR/did-core/#dfn-equivalentid
|
|
92
|
+
equivalentId?: string
|
|
93
|
+
// @see https://www.w3.org/TR/did-core/#dfn-canonicalid
|
|
94
|
+
canonicalId?: string
|
|
95
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type Event = {
|
|
2
|
+
watermark: string,
|
|
3
|
+
messageCid: string
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export type GetEventsOptions = {
|
|
8
|
+
gt: string
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export interface EventLog {
|
|
12
|
+
/**
|
|
13
|
+
* opens a connection to the underlying store
|
|
14
|
+
*/
|
|
15
|
+
open(): Promise<void>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* closes the connection to the underlying store
|
|
19
|
+
*/
|
|
20
|
+
close(): Promise<void>;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* adds an event to a tenant's event log
|
|
24
|
+
* @param tenant - the tenant's DID
|
|
25
|
+
* @param messageCid - the CID of the message
|
|
26
|
+
* @returns {Promise<string>} watermark
|
|
27
|
+
*/
|
|
28
|
+
append(tenant: string, messageCid: string): Promise<string>
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* retrieves all of a tenant's events that occurred after the watermark provided.
|
|
32
|
+
* If no watermark is provided, all events for a given tenant will be returned.
|
|
33
|
+
*/
|
|
34
|
+
getEvents(tenant: string, options?: GetEventsOptions): Promise<Array<Event>>
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* deletes any events that have any of the cids provided
|
|
38
|
+
* @returns {Promise<number>} the number of events deleted
|
|
39
|
+
*/
|
|
40
|
+
deleteEventsByCid(tenant: string, cids: Array<string>): Promise<number>
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Clears the entire store. Mainly used for cleaning up in test environment.
|
|
44
|
+
*/
|
|
45
|
+
clear(): Promise<void>;
|
|
46
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Event } from './event-log.js';
|
|
2
|
+
import type { GenericMessageReply } from '../core/message-reply.js';
|
|
3
|
+
import type { AuthorizationModel, GenericMessage } from './message-types.js';
|
|
4
|
+
import type { DwnInterfaceName, DwnMethodName } from '../enums/dwn-interface-method.js';
|
|
5
|
+
|
|
6
|
+
export type EventsGetDescriptor = {
|
|
7
|
+
interface : DwnInterfaceName.Events;
|
|
8
|
+
method: DwnMethodName.Get;
|
|
9
|
+
watermark?: string;
|
|
10
|
+
messageTimestamp: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export type EventsGetMessage = GenericMessage & {
|
|
14
|
+
authorization: AuthorizationModel; // overriding `GenericMessage` with `authorization` being required
|
|
15
|
+
descriptor: EventsGetDescriptor;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export type EventsGetReply = GenericMessageReply & {
|
|
19
|
+
events?: Event[];
|
|
20
|
+
};
|