@enbox/agent 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +2215 -0
- package/dist/browser.js.map +7 -0
- package/dist/browser.mjs +2215 -0
- package/dist/browser.mjs.map +7 -0
- package/dist/cjs/index.js +8530 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/agent-did-resolver-cache.js +87 -0
- package/dist/esm/agent-did-resolver-cache.js.map +1 -0
- package/dist/esm/bearer-identity.js +41 -0
- package/dist/esm/bearer-identity.js.map +1 -0
- package/dist/esm/connect.js +191 -0
- package/dist/esm/connect.js.map +1 -0
- package/dist/esm/crypto-api.js +346 -0
- package/dist/esm/crypto-api.js.map +1 -0
- package/dist/esm/did-api.js +278 -0
- package/dist/esm/did-api.js.map +1 -0
- package/dist/esm/dwn-api.js +336 -0
- package/dist/esm/dwn-api.js.map +1 -0
- package/dist/esm/dwn-registrar.js +120 -0
- package/dist/esm/dwn-registrar.js.map +1 -0
- package/dist/esm/hd-identity-vault.js +729 -0
- package/dist/esm/hd-identity-vault.js.map +1 -0
- package/dist/esm/identity-api.js +262 -0
- package/dist/esm/identity-api.js.map +1 -0
- package/dist/esm/index.js +23 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/local-key-manager.js +498 -0
- package/dist/esm/local-key-manager.js.map +1 -0
- package/dist/esm/oidc.js +507 -0
- package/dist/esm/oidc.js.map +1 -0
- package/dist/esm/permissions-api.js +322 -0
- package/dist/esm/permissions-api.js.map +1 -0
- package/dist/esm/prototyping/clients/dwn-rpc-types.js +2 -0
- package/dist/esm/prototyping/clients/dwn-rpc-types.js.map +1 -0
- package/dist/esm/prototyping/clients/dwn-server-info-cache-memory.js +74 -0
- package/dist/esm/prototyping/clients/dwn-server-info-cache-memory.js.map +1 -0
- package/dist/esm/prototyping/clients/http-dwn-rpc-client.js +105 -0
- package/dist/esm/prototyping/clients/http-dwn-rpc-client.js.map +1 -0
- package/dist/esm/prototyping/clients/json-rpc-socket.js +150 -0
- package/dist/esm/prototyping/clients/json-rpc-socket.js.map +1 -0
- package/dist/esm/prototyping/clients/json-rpc.js +58 -0
- package/dist/esm/prototyping/clients/json-rpc.js.map +1 -0
- package/dist/esm/prototyping/clients/server-info-types.js +2 -0
- package/dist/esm/prototyping/clients/server-info-types.js.map +1 -0
- package/dist/esm/prototyping/clients/web-socket-clients.js +90 -0
- package/dist/esm/prototyping/clients/web-socket-clients.js.map +1 -0
- package/dist/esm/prototyping/common/object.js +14 -0
- package/dist/esm/prototyping/common/object.js.map +1 -0
- package/dist/esm/prototyping/common/type-utils.js +2 -0
- package/dist/esm/prototyping/common/type-utils.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/aes-gcm.js +147 -0
- package/dist/esm/prototyping/crypto/algorithms/aes-gcm.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/aes-kw.js +137 -0
- package/dist/esm/prototyping/crypto/algorithms/aes-kw.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/ecdsa.js +307 -0
- package/dist/esm/prototyping/crypto/algorithms/ecdsa.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/eddsa.js +264 -0
- package/dist/esm/prototyping/crypto/algorithms/eddsa.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/hkdf.js +39 -0
- package/dist/esm/prototyping/crypto/algorithms/hkdf.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/pbkdf2.js +41 -0
- package/dist/esm/prototyping/crypto/algorithms/pbkdf2.js.map +1 -0
- package/dist/esm/prototyping/crypto/crypto-error.js +41 -0
- package/dist/esm/prototyping/crypto/crypto-error.js.map +1 -0
- package/dist/esm/prototyping/crypto/dsa.js +236 -0
- package/dist/esm/prototyping/crypto/dsa.js.map +1 -0
- package/dist/esm/prototyping/crypto/jose/jwe-compact.js +130 -0
- package/dist/esm/prototyping/crypto/jose/jwe-compact.js.map +1 -0
- package/dist/esm/prototyping/crypto/jose/jwe-flattened.js +294 -0
- package/dist/esm/prototyping/crypto/jose/jwe-flattened.js.map +1 -0
- package/dist/esm/prototyping/crypto/jose/jwe.js +308 -0
- package/dist/esm/prototyping/crypto/jose/jwe.js.map +1 -0
- package/dist/esm/prototyping/crypto/primitives/aes-gcm.js +352 -0
- package/dist/esm/prototyping/crypto/primitives/aes-gcm.js.map +1 -0
- package/dist/esm/prototyping/crypto/primitives/aes-kw.js +247 -0
- package/dist/esm/prototyping/crypto/primitives/aes-kw.js.map +1 -0
- package/dist/esm/prototyping/crypto/primitives/hkdf.js +80 -0
- package/dist/esm/prototyping/crypto/primitives/hkdf.js.map +1 -0
- package/dist/esm/prototyping/crypto/primitives/pbkdf2.js +85 -0
- package/dist/esm/prototyping/crypto/primitives/pbkdf2.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/cipher.js +2 -0
- package/dist/esm/prototyping/crypto/types/cipher.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/crypto-api.js +2 -0
- package/dist/esm/prototyping/crypto/types/crypto-api.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/key-converter.js +2 -0
- package/dist/esm/prototyping/crypto/types/key-converter.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/key-deriver.js +2 -0
- package/dist/esm/prototyping/crypto/types/key-deriver.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/key-io.js +2 -0
- package/dist/esm/prototyping/crypto/types/key-io.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/key-manager.js +2 -0
- package/dist/esm/prototyping/crypto/types/key-manager.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/key-wrapper.js +2 -0
- package/dist/esm/prototyping/crypto/types/key-wrapper.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/params-direct.js +2 -0
- package/dist/esm/prototyping/crypto/types/params-direct.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/params-kms.js +2 -0
- package/dist/esm/prototyping/crypto/types/params-kms.js.map +1 -0
- package/dist/esm/prototyping/crypto/utils.js +19 -0
- package/dist/esm/prototyping/crypto/utils.js.map +1 -0
- package/dist/esm/prototyping/dids/resolver-cache-memory.js +77 -0
- package/dist/esm/prototyping/dids/resolver-cache-memory.js.map +1 -0
- package/dist/esm/prototyping/dids/utils.js +9 -0
- package/dist/esm/prototyping/dids/utils.js.map +1 -0
- package/dist/esm/rpc-client.js +123 -0
- package/dist/esm/rpc-client.js.map +1 -0
- package/dist/esm/store-data-protocols.js +38 -0
- package/dist/esm/store-data-protocols.js.map +1 -0
- package/dist/esm/store-data.js +320 -0
- package/dist/esm/store-data.js.map +1 -0
- package/dist/esm/store-did.js +136 -0
- package/dist/esm/store-did.js.map +1 -0
- package/dist/esm/store-identity.js +140 -0
- package/dist/esm/store-identity.js.map +1 -0
- package/dist/esm/store-key.js +136 -0
- package/dist/esm/store-key.js.map +1 -0
- package/dist/esm/sync-api.js +61 -0
- package/dist/esm/sync-api.js.map +1 -0
- package/dist/esm/sync-engine-level.js +618 -0
- package/dist/esm/sync-engine-level.js.map +1 -0
- package/dist/esm/test-harness.js +239 -0
- package/dist/esm/test-harness.js.map +1 -0
- package/dist/esm/types/agent.js +2 -0
- package/dist/esm/types/agent.js.map +1 -0
- package/dist/esm/types/dwn.js +31 -0
- package/dist/esm/types/dwn.js.map +1 -0
- package/dist/esm/types/identity-vault.js +2 -0
- package/dist/esm/types/identity-vault.js.map +1 -0
- package/dist/esm/types/identity.js +2 -0
- package/dist/esm/types/identity.js.map +1 -0
- package/dist/esm/types/key-manager.js +2 -0
- package/dist/esm/types/key-manager.js.map +1 -0
- package/dist/esm/types/permissions.js +2 -0
- package/dist/esm/types/permissions.js.map +1 -0
- package/dist/esm/types/sync.js +2 -0
- package/dist/esm/types/sync.js.map +1 -0
- package/dist/esm/types/vc.js +5 -0
- package/dist/esm/types/vc.js.map +1 -0
- package/dist/esm/utils-internal.js +147 -0
- package/dist/esm/utils-internal.js.map +1 -0
- package/dist/esm/utils.js +161 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/types/agent-did-resolver-cache.d.ts +30 -0
- package/dist/types/agent-did-resolver-cache.d.ts.map +1 -0
- package/dist/types/bearer-identity.d.ts +31 -0
- package/dist/types/bearer-identity.d.ts.map +1 -0
- package/dist/types/connect.d.ts +88 -0
- package/dist/types/connect.d.ts.map +1 -0
- package/dist/types/crypto-api.d.ts +286 -0
- package/dist/types/crypto-api.d.ts.map +1 -0
- package/dist/types/did-api.d.ts +119 -0
- package/dist/types/did-api.d.ts.map +1 -0
- package/dist/types/dwn-api.d.ts +66 -0
- package/dist/types/dwn-api.d.ts.map +1 -0
- package/dist/types/dwn-registrar.d.ts +29 -0
- package/dist/types/dwn-registrar.d.ts.map +1 -0
- package/dist/types/hd-identity-vault.d.ts +306 -0
- package/dist/types/hd-identity-vault.d.ts.map +1 -0
- package/dist/types/identity-api.d.ts +107 -0
- package/dist/types/identity-api.d.ts.map +1 -0
- package/dist/types/index.d.ts +30 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/local-key-manager.d.ts +311 -0
- package/dist/types/local-key-manager.d.ts.map +1 -0
- package/dist/types/oidc.d.ts +247 -0
- package/dist/types/oidc.d.ts.map +1 -0
- package/dist/types/permissions-api.d.ts +35 -0
- package/dist/types/permissions-api.d.ts.map +1 -0
- package/dist/types/prototyping/clients/dwn-rpc-types.d.ts +45 -0
- package/dist/types/prototyping/clients/dwn-rpc-types.d.ts.map +1 -0
- package/dist/types/prototyping/clients/dwn-server-info-cache-memory.d.ts +57 -0
- package/dist/types/prototyping/clients/dwn-server-info-cache-memory.d.ts.map +1 -0
- package/dist/types/prototyping/clients/http-dwn-rpc-client.d.ts +13 -0
- package/dist/types/prototyping/clients/http-dwn-rpc-client.d.ts.map +1 -0
- package/dist/types/prototyping/clients/json-rpc-socket.d.ts +43 -0
- package/dist/types/prototyping/clients/json-rpc-socket.d.ts.map +1 -0
- package/dist/types/prototyping/clients/json-rpc.d.ts +49 -0
- package/dist/types/prototyping/clients/json-rpc.d.ts.map +1 -0
- package/dist/types/prototyping/clients/server-info-types.d.ts +20 -0
- package/dist/types/prototyping/clients/server-info-types.d.ts.map +1 -0
- package/dist/types/prototyping/clients/web-socket-clients.d.ts +10 -0
- package/dist/types/prototyping/clients/web-socket-clients.d.ts.map +1 -0
- package/dist/types/prototyping/common/object.d.ts +2 -0
- package/dist/types/prototyping/common/object.d.ts.map +1 -0
- package/dist/types/prototyping/common/type-utils.d.ts +7 -0
- package/dist/types/prototyping/common/type-utils.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/aes-gcm.d.ts +151 -0
- package/dist/types/prototyping/crypto/algorithms/aes-gcm.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/aes-kw.d.ts +109 -0
- package/dist/types/prototyping/crypto/algorithms/aes-kw.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/ecdsa.d.ts +160 -0
- package/dist/types/prototyping/crypto/algorithms/ecdsa.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/eddsa.d.ts +157 -0
- package/dist/types/prototyping/crypto/algorithms/eddsa.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/hkdf.d.ts +21 -0
- package/dist/types/prototyping/crypto/algorithms/hkdf.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/pbkdf2.d.ts +21 -0
- package/dist/types/prototyping/crypto/algorithms/pbkdf2.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/crypto-error.d.ts +29 -0
- package/dist/types/prototyping/crypto/crypto-error.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/dsa.d.ts +169 -0
- package/dist/types/prototyping/crypto/dsa.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/jose/jwe-compact.d.ts +135 -0
- package/dist/types/prototyping/crypto/jose/jwe-compact.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/jose/jwe-flattened.d.ts +134 -0
- package/dist/types/prototyping/crypto/jose/jwe-flattened.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/jose/jwe.d.ts +378 -0
- package/dist/types/prototyping/crypto/jose/jwe.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/primitives/aes-gcm.d.ts +245 -0
- package/dist/types/prototyping/crypto/primitives/aes-gcm.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/primitives/aes-kw.d.ts +103 -0
- package/dist/types/prototyping/crypto/primitives/aes-kw.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/primitives/hkdf.d.ts +90 -0
- package/dist/types/prototyping/crypto/primitives/hkdf.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/primitives/pbkdf2.d.ts +84 -0
- package/dist/types/prototyping/crypto/primitives/pbkdf2.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/cipher.d.ts +14 -0
- package/dist/types/prototyping/crypto/types/cipher.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/crypto-api.d.ts +35 -0
- package/dist/types/prototyping/crypto/types/crypto-api.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/key-converter.d.ts +49 -0
- package/dist/types/prototyping/crypto/types/key-converter.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/key-deriver.d.ts +50 -0
- package/dist/types/prototyping/crypto/types/key-deriver.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/key-io.d.ts +49 -0
- package/dist/types/prototyping/crypto/types/key-io.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/key-manager.d.ts +69 -0
- package/dist/types/prototyping/crypto/types/key-manager.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/key-wrapper.d.ts +14 -0
- package/dist/types/prototyping/crypto/types/key-wrapper.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/params-direct.d.ts +75 -0
- package/dist/types/prototyping/crypto/types/params-direct.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/params-kms.d.ts +63 -0
- package/dist/types/prototyping/crypto/types/params-kms.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/utils.d.ts +7 -0
- package/dist/types/prototyping/crypto/utils.d.ts.map +1 -0
- package/dist/types/prototyping/dids/resolver-cache-memory.d.ts +57 -0
- package/dist/types/prototyping/dids/resolver-cache-memory.d.ts.map +1 -0
- package/dist/types/prototyping/dids/utils.d.ts +3 -0
- package/dist/types/prototyping/dids/utils.d.ts.map +1 -0
- package/dist/types/rpc-client.d.ts +51 -0
- package/dist/types/rpc-client.d.ts.map +1 -0
- package/dist/types/store-data-protocols.d.ts +4 -0
- package/dist/types/store-data-protocols.d.ts.map +1 -0
- package/dist/types/store-data.d.ts +95 -0
- package/dist/types/store-data.d.ts.map +1 -0
- package/dist/types/store-did.d.ts +33 -0
- package/dist/types/store-did.d.ts.map +1 -0
- package/dist/types/store-identity.d.ts +34 -0
- package/dist/types/store-identity.d.ts.map +1 -0
- package/dist/types/store-key.d.ts +32 -0
- package/dist/types/store-key.d.ts.map +1 -0
- package/dist/types/sync-api.d.ts +41 -0
- package/dist/types/sync-api.d.ts.map +1 -0
- package/dist/types/sync-engine-level.d.ts +85 -0
- package/dist/types/sync-engine-level.d.ts.map +1 -0
- package/dist/types/test-harness.d.ts +69 -0
- package/dist/types/test-harness.d.ts.map +1 -0
- package/dist/types/types/agent.d.ts +172 -0
- package/dist/types/types/agent.d.ts.map +1 -0
- package/dist/types/types/dwn.d.ts +178 -0
- package/dist/types/types/dwn.d.ts.map +1 -0
- package/dist/types/types/identity-vault.d.ts +129 -0
- package/dist/types/types/identity-vault.d.ts.map +1 -0
- package/dist/types/types/identity.d.ts +16 -0
- package/dist/types/types/identity.d.ts.map +1 -0
- package/dist/types/types/key-manager.d.ts +9 -0
- package/dist/types/types/key-manager.d.ts.map +1 -0
- package/dist/types/types/permissions.d.ts +98 -0
- package/dist/types/types/permissions.d.ts.map +1 -0
- package/dist/types/types/sync.d.ts +66 -0
- package/dist/types/types/sync.d.ts.map +1 -0
- package/dist/types/types/vc.d.ts +7 -0
- package/dist/types/types/vc.d.ts.map +1 -0
- package/dist/types/utils-internal.d.ts +50 -0
- package/dist/types/utils-internal.d.ts.map +1 -0
- package/dist/types/utils.d.ts +37 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/package.json +112 -0
- package/src/agent-did-resolver-cache.ts +95 -0
- package/src/bearer-identity.ts +42 -0
- package/src/connect.ts +296 -0
- package/src/crypto-api.ts +593 -0
- package/src/did-api.ts +429 -0
- package/src/dwn-api.ts +462 -0
- package/src/dwn-registrar.ts +127 -0
- package/src/hd-identity-vault.ts +853 -0
- package/src/identity-api.ts +324 -0
- package/src/index.ts +30 -0
- package/src/local-key-manager.ts +672 -0
- package/src/oidc.ts +857 -0
- package/src/permissions-api.ts +408 -0
- package/src/prototyping/clients/dwn-rpc-types.ts +55 -0
- package/src/prototyping/clients/dwn-server-info-cache-memory.ts +79 -0
- package/src/prototyping/clients/http-dwn-rpc-client.ts +110 -0
- package/src/prototyping/clients/json-rpc-socket.ts +169 -0
- package/src/prototyping/clients/json-rpc.ts +113 -0
- package/src/prototyping/clients/server-info-types.ts +21 -0
- package/src/prototyping/clients/web-socket-clients.ts +100 -0
- package/src/prototyping/common/object.ts +15 -0
- package/src/prototyping/common/type-utils.ts +6 -0
- package/src/prototyping/crypto/algorithms/aes-gcm.ts +211 -0
- package/src/prototyping/crypto/algorithms/aes-kw.ts +164 -0
- package/src/prototyping/crypto/algorithms/ecdsa.ts +365 -0
- package/src/prototyping/crypto/algorithms/eddsa.ts +310 -0
- package/src/prototyping/crypto/algorithms/hkdf.ts +40 -0
- package/src/prototyping/crypto/algorithms/pbkdf2.ts +44 -0
- package/src/prototyping/crypto/crypto-error.ts +45 -0
- package/src/prototyping/crypto/dsa.ts +367 -0
- package/src/prototyping/crypto/jose/jwe-compact.ts +225 -0
- package/src/prototyping/crypto/jose/jwe-flattened.ts +459 -0
- package/src/prototyping/crypto/jose/jwe.ts +653 -0
- package/src/prototyping/crypto/primitives/aes-gcm.ts +374 -0
- package/src/prototyping/crypto/primitives/aes-kw.ts +271 -0
- package/src/prototyping/crypto/primitives/hkdf.ts +121 -0
- package/src/prototyping/crypto/primitives/pbkdf2.ts +116 -0
- package/src/prototyping/crypto/types/cipher.ts +17 -0
- package/src/prototyping/crypto/types/crypto-api.ts +78 -0
- package/src/prototyping/crypto/types/key-converter.ts +53 -0
- package/src/prototyping/crypto/types/key-deriver.ts +56 -0
- package/src/prototyping/crypto/types/key-io.ts +51 -0
- package/src/prototyping/crypto/types/key-manager.ts +83 -0
- package/src/prototyping/crypto/types/key-wrapper.ts +17 -0
- package/src/prototyping/crypto/types/params-direct.ts +95 -0
- package/src/prototyping/crypto/types/params-kms.ts +76 -0
- package/src/prototyping/crypto/utils.ts +41 -0
- package/src/prototyping/dids/resolver-cache-memory.ts +83 -0
- package/src/prototyping/dids/utils.ts +10 -0
- package/src/rpc-client.ts +162 -0
- package/src/store-data-protocols.ts +40 -0
- package/src/store-data.ts +400 -0
- package/src/store-did.ts +105 -0
- package/src/store-identity.ts +109 -0
- package/src/store-key.ts +104 -0
- package/src/sync-api.ts +71 -0
- package/src/sync-engine-level.ts +714 -0
- package/src/test-harness.ts +330 -0
- package/src/types/agent.ts +195 -0
- package/src/types/dwn.ts +278 -0
- package/src/types/identity-vault.ts +137 -0
- package/src/types/identity.ts +18 -0
- package/src/types/key-manager.ts +15 -0
- package/src/types/permissions.ts +115 -0
- package/src/types/sync.ts +58 -0
- package/src/types/vc.ts +7 -0
- package/src/utils-internal.ts +157 -0
- package/src/utils.ts +181 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { Jws } from '@enbox/dwn-sdk-js';
|
|
11
|
+
import { utils as didUtils } from '@enbox/dids';
|
|
12
|
+
import { ReadableWebToNodeStream } from 'readable-web-to-node-stream';
|
|
13
|
+
import { DateSort, DwnInterfaceName, DwnMethodName, Message } from '@enbox/dwn-sdk-js';
|
|
14
|
+
export function blobToIsomorphicNodeReadable(blob) {
|
|
15
|
+
return webReadableToIsomorphicNodeReadable(blob.stream());
|
|
16
|
+
}
|
|
17
|
+
export function getDwnServiceEndpointUrls(didUri, dereferencer) {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
// Attempt to dereference the DID service with ID fragment #dwn.
|
|
20
|
+
const dereferencingResult = yield dereferencer.dereference(`${didUri}#dwn`);
|
|
21
|
+
if (dereferencingResult.dereferencingMetadata.error) {
|
|
22
|
+
throw new Error(`Failed to dereference '${didUri}#dwn': ${dereferencingResult.dereferencingMetadata.error}`);
|
|
23
|
+
}
|
|
24
|
+
if (didUtils.isDwnDidService(dereferencingResult.contentStream)) {
|
|
25
|
+
const { serviceEndpoint } = dereferencingResult.contentStream;
|
|
26
|
+
const serviceEndpointUrls = typeof serviceEndpoint === 'string'
|
|
27
|
+
// If the service endpoint is a string, format it as a single-element array.
|
|
28
|
+
? [serviceEndpoint]
|
|
29
|
+
: Array.isArray(serviceEndpoint) && serviceEndpoint.every(endpoint => typeof endpoint === 'string')
|
|
30
|
+
// If the service endpoint is an array of strings, use it as is.
|
|
31
|
+
? serviceEndpoint
|
|
32
|
+
// If the service endpoint is neither a string nor an array of strings, return an empty array.
|
|
33
|
+
: [];
|
|
34
|
+
if (serviceEndpointUrls.length > 0) {
|
|
35
|
+
return serviceEndpointUrls;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// If the DID service with ID fragment #dwn was not found or is not valid, return an empty array.
|
|
39
|
+
return [];
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export function getRecordAuthor(record) {
|
|
43
|
+
return Message.getAuthor(record);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get the `protocolRole` string from the signature payload of the given RecordsWriteMessage or RecordsDeleteMessage.
|
|
47
|
+
*/
|
|
48
|
+
export function getRecordProtocolRole(message) {
|
|
49
|
+
const signaturePayload = Jws.decodePlainObjectPayload(message.authorization.signature);
|
|
50
|
+
return signaturePayload === null || signaturePayload === void 0 ? void 0 : signaturePayload.protocolRole;
|
|
51
|
+
}
|
|
52
|
+
export function isRecordsWrite(obj) {
|
|
53
|
+
// Validate that the given value is an object.
|
|
54
|
+
if (!obj || typeof obj !== 'object' || obj === null)
|
|
55
|
+
return false;
|
|
56
|
+
// Validate that the object has the necessary properties of RecordsWrite.
|
|
57
|
+
return ('message' in obj && typeof obj.message === 'object' && obj.message !== null &&
|
|
58
|
+
'descriptor' in obj.message && typeof obj.message.descriptor === 'object' && obj.message.descriptor !== null &&
|
|
59
|
+
'interface' in obj.message.descriptor && obj.message.descriptor.interface === DwnInterfaceName.Records &&
|
|
60
|
+
'method' in obj.message.descriptor && obj.message.descriptor.method === DwnMethodName.Write);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get the CID of the given RecordsWriteMessage.
|
|
64
|
+
*/
|
|
65
|
+
export function getRecordMessageCid(message) {
|
|
66
|
+
return Message.getCid(message);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get the pagination cursor for the given RecordsWriteMessage and DateSort.
|
|
70
|
+
*
|
|
71
|
+
* @param message The RecordsWriteMessage for which to get the pagination cursor.
|
|
72
|
+
* @param dateSort The date sort that will be used in the query or subscription to which the cursor will be applied.
|
|
73
|
+
*/
|
|
74
|
+
export function getPaginationCursor(message, dateSort) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
const value = dateSort === DateSort.CreatedAscending || dateSort === DateSort.CreatedDescending ?
|
|
77
|
+
message.descriptor.dateCreated : message.descriptor.datePublished;
|
|
78
|
+
if (value === undefined) {
|
|
79
|
+
throw new Error('The dateCreated or datePublished property is missing from the record descriptor.');
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
messageCid: yield getRecordMessageCid(message),
|
|
83
|
+
value
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
export function webReadableToIsomorphicNodeReadable(webReadable) {
|
|
88
|
+
return new ReadableWebToNodeStream(webReadable);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Polling function with interval, TTL accepting a custom fetch function
|
|
92
|
+
* @template T - the return you expect from the fetcher
|
|
93
|
+
* @param fetchFunction an http fetch function
|
|
94
|
+
* @param [interval=3000] how frequently to poll
|
|
95
|
+
* @param [ttl=300_000] how long until polling stops
|
|
96
|
+
* @returns T - the result of fetch
|
|
97
|
+
*/
|
|
98
|
+
export function pollWithTtl(fetchFunction, interval = 3000, ttl = 300000, abortSignal) {
|
|
99
|
+
const endTime = Date.now() + ttl;
|
|
100
|
+
let timeoutId = null;
|
|
101
|
+
let isPolling = true;
|
|
102
|
+
return new Promise((resolve, reject) => {
|
|
103
|
+
if (abortSignal) {
|
|
104
|
+
abortSignal.addEventListener('abort', () => {
|
|
105
|
+
isPolling = false;
|
|
106
|
+
if (timeoutId !== null) {
|
|
107
|
+
clearTimeout(timeoutId);
|
|
108
|
+
}
|
|
109
|
+
console.log('Polling aborted by user');
|
|
110
|
+
resolve(null);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function poll() {
|
|
114
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
115
|
+
if (!isPolling)
|
|
116
|
+
return;
|
|
117
|
+
const remainingTime = endTime - Date.now();
|
|
118
|
+
if (remainingTime <= 0) {
|
|
119
|
+
isPolling = false;
|
|
120
|
+
console.log('Polling stopped: TTL reached');
|
|
121
|
+
resolve(null);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
console.log(`Polling... (Remaining time: ${Math.ceil(remainingTime / 1000)}s)`);
|
|
125
|
+
try {
|
|
126
|
+
const response = yield fetchFunction();
|
|
127
|
+
if (response.ok) {
|
|
128
|
+
isPolling = false;
|
|
129
|
+
if (timeoutId !== null) {
|
|
130
|
+
clearTimeout(timeoutId);
|
|
131
|
+
}
|
|
132
|
+
console.log('Polling stopped: Success condition met');
|
|
133
|
+
resolve(response);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
console.error('Error fetching data:', error);
|
|
139
|
+
reject(error);
|
|
140
|
+
}
|
|
141
|
+
if (isPolling) {
|
|
142
|
+
timeoutId = setTimeout(poll, interval);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
poll();
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/** Concatenates a base URL and a path ensuring that there is exactly one slash between them */
|
|
150
|
+
export function concatenateUrl(baseUrl, path) {
|
|
151
|
+
// Remove trailing slash from baseUrl if it exists
|
|
152
|
+
if (baseUrl.endsWith('/')) {
|
|
153
|
+
baseUrl = baseUrl.slice(0, -1);
|
|
154
|
+
}
|
|
155
|
+
// Remove leading slash from path if it exists
|
|
156
|
+
if (path.startsWith('/')) {
|
|
157
|
+
path = path.slice(1);
|
|
158
|
+
}
|
|
159
|
+
return `${baseUrl}/${path}`;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { DidResolutionResult, DidResolverCache, DidResolverCacheLevel, DidResolverCacheLevelParams } from '@enbox/dids';
|
|
2
|
+
import { Web5PlatformAgent } from './types/agent.js';
|
|
3
|
+
/**
|
|
4
|
+
* AgentDidResolverCache keeps a stale copy of the Agent's managed Identity DIDs and only evicts and refreshes upon a successful resolution.
|
|
5
|
+
* This allows for quick and offline access to the internal DIDs used by the agent.
|
|
6
|
+
*/
|
|
7
|
+
export declare class AgentDidResolverCache extends DidResolverCacheLevel implements DidResolverCache {
|
|
8
|
+
/**
|
|
9
|
+
* Holds the instance of a `Web5PlatformAgent` that represents the current execution context for
|
|
10
|
+
* the `AgentDidApi`. This agent is used to interact with other Web5 agent components. It's vital
|
|
11
|
+
* to ensure this instance is set to correctly contextualize operations within the broader Web5
|
|
12
|
+
* Agent framework.
|
|
13
|
+
*/
|
|
14
|
+
private _agent?;
|
|
15
|
+
/** A map of DIDs that are currently in-flight. This helps avoid going into an infinite loop */
|
|
16
|
+
private _resolving;
|
|
17
|
+
constructor({ agent, db, location, ttl }: DidResolverCacheLevelParams & {
|
|
18
|
+
agent?: Web5PlatformAgent;
|
|
19
|
+
});
|
|
20
|
+
get agent(): Web5PlatformAgent;
|
|
21
|
+
set agent(agent: Web5PlatformAgent);
|
|
22
|
+
/**
|
|
23
|
+
* Get the DID resolution result from the cache for the given DID.
|
|
24
|
+
*
|
|
25
|
+
* If the DID is managed by the agent, or is the agent's own DID, it will not evict it from the cache until a new resolution is successful.
|
|
26
|
+
* This is done to achieve quick and offline access to the agent's own managed DIDs.
|
|
27
|
+
*/
|
|
28
|
+
get(did: string): Promise<DidResolutionResult | void>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=agent-did-resolver-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-did-resolver-cache.d.ts","sourceRoot":"","sources":["../../src/agent-did-resolver-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AACxH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,qBAAsB,YAAW,gBAAgB;IAE1F;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,CAAoB;IAEnC,+FAA+F;IAC/F,OAAO,CAAC,UAAU,CAAmC;gBAEzC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,2BAA2B,GAAG;QAAE,KAAK,CAAC,EAAE,iBAAiB,CAAA;KAAE;IAKrG,IAAI,KAAK,IAOQ,iBAAiB,CAFjC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAEjC;IAED;;;;;OAKG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;CAkD5D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { BearerDid } from '@enbox/dids';
|
|
2
|
+
import { IdentityMetadata, PortableIdentity } from './types/identity.js';
|
|
3
|
+
/**
|
|
4
|
+
* Represents a Web5 Identity with its DID and metadata.
|
|
5
|
+
*/
|
|
6
|
+
export declare class BearerIdentity {
|
|
7
|
+
/** {@inheritDoc BearerDid} */
|
|
8
|
+
did: BearerDid;
|
|
9
|
+
/** {@inheritDoc DidMetadata} */
|
|
10
|
+
metadata: IdentityMetadata;
|
|
11
|
+
constructor({ did, metadata }: {
|
|
12
|
+
did: BearerDid;
|
|
13
|
+
metadata: IdentityMetadata;
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* Converts a `BearerIdentity` object to a portable format containing the DID and metadata
|
|
17
|
+
* associated with the Identity.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* // Assuming `identity` is an instance of BearerIdentity.
|
|
22
|
+
* const portableIdentity = await identity.export();
|
|
23
|
+
* // portableIdentity now contains the and metadata.
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @returns A `PortableIdentity` containing the DID and metadata associated with the
|
|
27
|
+
* `BearerIdentity`.
|
|
28
|
+
*/
|
|
29
|
+
export(): Promise<PortableIdentity>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=bearer-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bearer-identity.d.ts","sourceRoot":"","sources":["../../src/bearer-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEzE;;GAEG;AACH,qBAAa,cAAc;IACzB,8BAA8B;IACvB,GAAG,EAAE,SAAS,CAAC;IAEtB,gCAAgC;IACzB,QAAQ,EAAE,gBAAgB,CAAC;gBAEtB,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;QAC7B,GAAG,EAAE,SAAS,CAAC;QACf,QAAQ,EAAE,gBAAgB,CAAC;KAC5B;IAKD;;;;;;;;;;;;;OAaG;IACU,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAMjD"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { DwnPermissionScope, DwnProtocolDefinition } from './index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Initiates the wallet connect process. Used when a client wants to obtain
|
|
4
|
+
* a did from a provider.
|
|
5
|
+
*/
|
|
6
|
+
declare function initClient({ displayName, connectServerUrl, walletUri, permissionRequests, onWalletUriReady, validatePin, }: WalletConnectOptions): Promise<{
|
|
7
|
+
delegateGrants: import("@enbox/dwn-sdk-js").DataEncodedRecordsWriteMessage[];
|
|
8
|
+
delegatePortableDid: import("@enbox/dids").PortableDid;
|
|
9
|
+
connectedDid: string;
|
|
10
|
+
} | undefined>;
|
|
11
|
+
/**
|
|
12
|
+
* Initiates the wallet connect process. Used when a client wants to obtain
|
|
13
|
+
* a did from a provider.
|
|
14
|
+
*/
|
|
15
|
+
export type WalletConnectOptions = {
|
|
16
|
+
/** The user friendly name of the client/app to be displayed when prompting end-user with permission requests. */
|
|
17
|
+
displayName: string;
|
|
18
|
+
/** The URL of the intermediary server which relays messages between the client and provider. */
|
|
19
|
+
connectServerUrl: string;
|
|
20
|
+
/**
|
|
21
|
+
* The URI of the Provider (wallet).The `onWalletUriReady` will take this wallet
|
|
22
|
+
* uri and add a payload to it which will be used to obtain and decrypt from the `request_uri`.
|
|
23
|
+
* @example `web5://` or `http://localhost:3000/`.
|
|
24
|
+
*/
|
|
25
|
+
walletUri: string;
|
|
26
|
+
/**
|
|
27
|
+
* The protocols of permissions requested, along with the definition and
|
|
28
|
+
* permission scopes for each protocol. The key is the protocol URL and
|
|
29
|
+
* the value is an object with the protocol definition and the permission scopes.
|
|
30
|
+
*/
|
|
31
|
+
permissionRequests: ConnectPermissionRequest[];
|
|
32
|
+
/**
|
|
33
|
+
* The Web5 API provides a URI to the wallet based on the `walletUri` plus a query params payload valid for 5 minutes.
|
|
34
|
+
* The link can either be used as a deep link on the same device or a QR code for cross device or both.
|
|
35
|
+
* The query params are `{ request_uri: string; encryption_key: string; }`
|
|
36
|
+
* The wallet will use the `request_uri to contact the intermediary server's `authorize` endpoint
|
|
37
|
+
* and pull down the {@link Web5ConnectAuthRequest} and use the `encryption_key` to decrypt it.
|
|
38
|
+
*
|
|
39
|
+
* @param uri - The URI returned by the web5 connect API to be passed to a provider.
|
|
40
|
+
*/
|
|
41
|
+
onWalletUriReady: (uri: string) => void;
|
|
42
|
+
/**
|
|
43
|
+
* Function that must be provided to submit the pin entered by the user on the client.
|
|
44
|
+
* The pin is used to decrypt the {@link Web5ConnectAuthResponse} that was retrieved from the
|
|
45
|
+
* token endpoint by the client inside of web5 connect.
|
|
46
|
+
*
|
|
47
|
+
* @returns A promise that resolves to the PIN as a string.
|
|
48
|
+
*/
|
|
49
|
+
validatePin: () => Promise<string>;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* The protocols of permissions requested, along with the definition and permission scopes for each protocol.
|
|
53
|
+
*/
|
|
54
|
+
export type ConnectPermissionRequest = {
|
|
55
|
+
/**
|
|
56
|
+
* The definition of the protocol the permissions are being requested for.
|
|
57
|
+
* In the event that the protocol is not already installed, the wallet will install this given protocol definition.
|
|
58
|
+
*/
|
|
59
|
+
protocolDefinition: DwnProtocolDefinition;
|
|
60
|
+
/** The scope of the permissions being requested for the given protocol */
|
|
61
|
+
permissionScopes: DwnPermissionScope[];
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Shorthand for the types of permissions that can be requested.
|
|
65
|
+
*/
|
|
66
|
+
export type Permission = 'write' | 'read' | 'delete' | 'query' | 'subscribe' | 'configure';
|
|
67
|
+
/**
|
|
68
|
+
* The options for creating a permission request for a given protocol.
|
|
69
|
+
*/
|
|
70
|
+
export type ProtocolPermissionOptions = {
|
|
71
|
+
/** The protocol definition for the protocol being requested */
|
|
72
|
+
definition: DwnProtocolDefinition;
|
|
73
|
+
/** The permissions being requested for the protocol */
|
|
74
|
+
permissions: Permission[];
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Creates a set of Dwn Permission Scopes to request for a given protocol.
|
|
78
|
+
*
|
|
79
|
+
* If no permissions are provided, the default is to request all relevant record permissions (write, read, delete, query, subscribe).
|
|
80
|
+
* 'configure' is not included by default, as this gives the application a lot of control over the protocol.
|
|
81
|
+
*/
|
|
82
|
+
declare function createPermissionRequestForProtocol({ definition, permissions }: ProtocolPermissionOptions): ConnectPermissionRequest;
|
|
83
|
+
export declare const WalletConnect: {
|
|
84
|
+
initClient: typeof initClient;
|
|
85
|
+
createPermissionRequestForProtocol: typeof createPermissionRequestForProtocol;
|
|
86
|
+
};
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=connect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/connect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAsC,MAAM,YAAY,CAAC;AAYhH;;;GAGG;AACH,iBAAe,UAAU,CAAC,EACxB,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,GACZ,EAAE,oBAAoB;;;;eA2GtB;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,iHAAiH;IACjH,WAAW,EAAE,MAAM,CAAC;IAEpB,gGAAgG;IAChG,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;IAE/C;;;;;;;;OAQG;IACH,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;OAGG;IACH,kBAAkB,EAAE,qBAAqB,CAAC;IAE1C,0EAA0E;IAC1E,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,+DAA+D;IAC/D,UAAU,EAAE,qBAAqB,CAAC;IAElC,uDAAuD;IACvD,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,iBAAS,kCAAkC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,yBAAyB,GAAG,wBAAwB,CA6E5H;AAED,eAAO,MAAM,aAAa;;;CAAqD,CAAC"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import type { Jwk, SignParams, AesGcmParams, DigestParams, VerifyParams, GenerateKeyParams, GetPublicKeyParams, KmsGetKeyUriParams } from '@enbox/crypto';
|
|
2
|
+
import { Sha2Algorithm } from '@enbox/crypto';
|
|
3
|
+
import type { CryptoApi } from './prototyping/crypto/types/crypto-api.js';
|
|
4
|
+
import type { HkdfParams } from './prototyping/crypto/primitives/hkdf.js';
|
|
5
|
+
import type { Pbkdf2Params } from './prototyping/crypto/primitives/pbkdf2.js';
|
|
6
|
+
import type { BytesToPrivateKeyParams, BytesToPublicKeyParams, CipherParams, DeriveKeyBytesParams, DeriveKeyParams, PrivateKeyToBytesParams, PublicKeyToBytesParams, UnwrapKeyParams, WrapKeyParams } from './prototyping/crypto/types/params-direct.js';
|
|
7
|
+
import { HkdfAlgorithm } from './prototyping/crypto/algorithms/hkdf.js';
|
|
8
|
+
import { EcdsaAlgorithm } from './prototyping/crypto/algorithms/ecdsa.js';
|
|
9
|
+
import { EdDsaAlgorithm } from './prototyping/crypto/algorithms/eddsa.js';
|
|
10
|
+
import { AesKwAlgorithm } from './prototyping/crypto/algorithms/aes-kw.js';
|
|
11
|
+
import { Pbkdf2Algorithm } from './prototyping/crypto/algorithms/pbkdf2.js';
|
|
12
|
+
import { AesGcmAlgorithm } from './prototyping/crypto/algorithms/aes-gcm.js';
|
|
13
|
+
export interface CryptoApiBytesToPrivateKeyParams extends BytesToPrivateKeyParams {
|
|
14
|
+
algorithm: KeyConversionAlgorithm;
|
|
15
|
+
}
|
|
16
|
+
export interface CryptoApiBytesToPublicKeyParams extends BytesToPublicKeyParams {
|
|
17
|
+
algorithm: AsymmetricKeyConversionAlgorithm;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The `CryptoApiCipherParams` interface defines the algorithm-specific parameters that should
|
|
21
|
+
* be passed into the {@link AgentCryptoApi.encrypt | `AgentCryptoApi.encrypt()`} or
|
|
22
|
+
* {@link AgentCryptoApi.decrypt | `AgentCryptoApi.decrypt()`} method.
|
|
23
|
+
*/
|
|
24
|
+
export interface CryptoApiCipherParams extends CipherParams, AesGcmParams {
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The `CryptoApiDigestParams` interface defines the algorithm-specific parameters that should
|
|
28
|
+
* be passed into the {@link AgentCryptoApi.digest | `AgentCryptoApi.digest()`} method.
|
|
29
|
+
*/
|
|
30
|
+
export interface CryptoApiDigestParams extends DigestParams {
|
|
31
|
+
/**
|
|
32
|
+
* A string defining the name of hash function to use. The value must be one of the following:
|
|
33
|
+
* - `"SHA-256"`: Generates a 256-bit digest.
|
|
34
|
+
*/
|
|
35
|
+
algorithm: DigestAlgorithm;
|
|
36
|
+
}
|
|
37
|
+
export interface CryptoApiDeriveKeyOptions {
|
|
38
|
+
'HKDF-256': Omit<HkdfParams, 'hash'> & {
|
|
39
|
+
derivedKeyAlgorithm: CipherAlgorithm | KeyWrappingAlgorithm;
|
|
40
|
+
};
|
|
41
|
+
'HKDF-384': Omit<HkdfParams, 'hash'> & {
|
|
42
|
+
derivedKeyAlgorithm: CipherAlgorithm | KeyWrappingAlgorithm;
|
|
43
|
+
};
|
|
44
|
+
'HKDF-512': Omit<HkdfParams, 'hash'> & {
|
|
45
|
+
derivedKeyAlgorithm: CipherAlgorithm | KeyWrappingAlgorithm;
|
|
46
|
+
};
|
|
47
|
+
'PBES2-HS256+A128KW': Omit<Pbkdf2Params, 'hash'> & {
|
|
48
|
+
derivedKeyAlgorithm?: never;
|
|
49
|
+
};
|
|
50
|
+
'PBES2-HS384+A192KW': Omit<Pbkdf2Params, 'hash'> & {
|
|
51
|
+
derivedKeyAlgorithm?: never;
|
|
52
|
+
};
|
|
53
|
+
'PBES2-HS512+A256KW': Omit<Pbkdf2Params, 'hash'> & {
|
|
54
|
+
derivedKeyAlgorithm?: never;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export interface CryptoApiDeriveKeyBytesOptions {
|
|
58
|
+
'HKDF-256': Omit<HkdfParams, 'hash'>;
|
|
59
|
+
'HKDF-384': Omit<HkdfParams, 'hash'>;
|
|
60
|
+
'HKDF-512': Omit<HkdfParams, 'hash'>;
|
|
61
|
+
'PBES2-HS256+A128KW': Omit<Pbkdf2Params, 'hash'>;
|
|
62
|
+
'PBES2-HS384+A192KW': Omit<Pbkdf2Params, 'hash'>;
|
|
63
|
+
'PBES2-HS512+A256KW': Omit<Pbkdf2Params, 'hash'>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The `CryptoApiDeriveKeyParams` interface defines the algorithm-specific parameters that
|
|
67
|
+
* should be passed into the {@link AgentCryptoApi.deriveKey | `AgentCryptoApi.deriveKey()`} method.
|
|
68
|
+
*/
|
|
69
|
+
export type CryptoApiDeriveKeyParams<T extends DeriveKeyAlgorithm> = DeriveKeyParams & {
|
|
70
|
+
/**
|
|
71
|
+
* A string defining the name of key derivation function to use. The value must be one of the
|
|
72
|
+
* following:
|
|
73
|
+
* - `"HKDF-256"`: HKDF with SHA-256.
|
|
74
|
+
* - `"HKDF-384"`: HKDF with SHA-384.
|
|
75
|
+
* - `"HKDF-512"`: HKDF with SHA-512.
|
|
76
|
+
* - `"PBKDF2-HS256+A128KW"`: PBKDF2 with HMAC SHA-256 and A128KW key wrapping.
|
|
77
|
+
* - `"PBKDF2-HS384+A192KW"`: PBKDF2 with HMAC SHA-384 and A192KW key wrapping.
|
|
78
|
+
* - `"PBKDF2-HS512+A256KW"`: PBKDF2 with HMAC SHA-512 and A256KW key wrapping.
|
|
79
|
+
*/
|
|
80
|
+
algorithm: T;
|
|
81
|
+
} & CryptoApiDeriveKeyOptions[T];
|
|
82
|
+
/**
|
|
83
|
+
* The `CryptoApiDeriveKeyBytesParams` interface defines the algorithm-specific parameters that
|
|
84
|
+
* should be passed into the {@link AgentCryptoApi.deriveKeyBytes | `AgentCryptoApi.deriveKeyBytes()`} method.
|
|
85
|
+
*/
|
|
86
|
+
export type CryptoApiDeriveKeyBytesParams<T extends DeriveKeyByteAlgorithm> = DeriveKeyBytesParams & {
|
|
87
|
+
/**
|
|
88
|
+
* A string defining the name of key derivation function to use. The value must be one of the
|
|
89
|
+
* following:
|
|
90
|
+
* - `"HKDF-256"`: HKDF with SHA-256.
|
|
91
|
+
* - `"HKDF-384"`: HKDF with SHA-384.
|
|
92
|
+
* - `"HKDF-512"`: HKDF with SHA-512.
|
|
93
|
+
* - `"PBKDF2-HS256+A128KW"`: PBKDF2 with HMAC SHA-256 and A128KW key wrapping.
|
|
94
|
+
* - `"PBKDF2-HS384+A192KW"`: PBKDF2 with HMAC SHA-384 and A192KW key wrapping.
|
|
95
|
+
* - `"PBKDF2-HS512+A256KW"`: PBKDF2 with HMAC SHA-512 and A256KW key wrapping.
|
|
96
|
+
*/
|
|
97
|
+
algorithm: T;
|
|
98
|
+
} & CryptoApiDeriveKeyBytesOptions[T];
|
|
99
|
+
export interface CryptoApiGenerateKeyParams extends GenerateKeyParams {
|
|
100
|
+
algorithm: KeyGenerationAlgorithm;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* `supportedAlgorithms` is an object mapping algorithm names to their respective implementations
|
|
104
|
+
* Each entry in this map specifies the algorithm name and its associated properties, including the
|
|
105
|
+
* implementation class and any relevant names or identifiers for the algorithm. This structure
|
|
106
|
+
* allows for easy retrieval and instantiation of algorithm implementations based on the algorithm
|
|
107
|
+
* name or key specification. It facilitates the support of multiple algorithms within the
|
|
108
|
+
* `LocalKeyManager` class.
|
|
109
|
+
*/
|
|
110
|
+
declare const supportedAlgorithms: {
|
|
111
|
+
readonly 'AES-GCM': {
|
|
112
|
+
readonly implementation: typeof AesGcmAlgorithm;
|
|
113
|
+
readonly names: readonly ["A128GCM", "A192GCM", "A256GCM"];
|
|
114
|
+
readonly operations: readonly ["bytesToPrivateKey", "decrypt", "encrypt", "generateKey"];
|
|
115
|
+
};
|
|
116
|
+
readonly 'AES-KW': {
|
|
117
|
+
readonly implementation: typeof AesKwAlgorithm;
|
|
118
|
+
readonly names: readonly ["A128KW", "A192KW", "A256KW"];
|
|
119
|
+
readonly operations: readonly ["bytesToPrivateKey", "generateKey", "privateKeyToBytes", "wrapKey", "unwrapKey"];
|
|
120
|
+
};
|
|
121
|
+
readonly Ed25519: {
|
|
122
|
+
readonly implementation: typeof EdDsaAlgorithm;
|
|
123
|
+
readonly names: readonly ["Ed25519"];
|
|
124
|
+
readonly operations: readonly ["bytesToPrivateKey", "bytesToPublicKey", "generateKey", "sign", "verify"];
|
|
125
|
+
};
|
|
126
|
+
readonly HKDF: {
|
|
127
|
+
readonly implementation: typeof HkdfAlgorithm;
|
|
128
|
+
readonly names: readonly ["HKDF-256", "HKDF-384", "HKDF-512"];
|
|
129
|
+
readonly operations: readonly ["deriveKey", "deriveKeyBytes"];
|
|
130
|
+
};
|
|
131
|
+
readonly PBKDF2: {
|
|
132
|
+
readonly implementation: typeof Pbkdf2Algorithm;
|
|
133
|
+
readonly names: readonly ["PBES2-HS256+A128KW", "PBES2-HS384+A192KW", "PBES2-HS512+A256KW"];
|
|
134
|
+
readonly operations: readonly ["deriveKey", "deriveKeyBytes"];
|
|
135
|
+
};
|
|
136
|
+
readonly secp256k1: {
|
|
137
|
+
readonly implementation: typeof EcdsaAlgorithm;
|
|
138
|
+
readonly names: readonly ["ES256K", "secp256k1"];
|
|
139
|
+
readonly operations: readonly ["bytesToPrivateKey", "bytesToPublicKey", "generateKey", "sign", "verify"];
|
|
140
|
+
};
|
|
141
|
+
readonly secp256r1: {
|
|
142
|
+
readonly implementation: typeof EcdsaAlgorithm;
|
|
143
|
+
readonly names: readonly ["ES256", "secp256r1"];
|
|
144
|
+
readonly operations: readonly ["bytesToPrivateKey", "bytesToPublicKey", "generateKey", "sign", "verify"];
|
|
145
|
+
};
|
|
146
|
+
readonly 'SHA-256': {
|
|
147
|
+
readonly implementation: typeof Sha2Algorithm;
|
|
148
|
+
readonly names: readonly ["SHA-256"];
|
|
149
|
+
readonly operations: readonly ["digest"];
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
type SupportedAlgorithms = typeof supportedAlgorithms;
|
|
153
|
+
type CipherAlgorithms = {
|
|
154
|
+
[K in keyof SupportedAlgorithms]: 'encrypt' extends SupportedAlgorithms[K]['operations'][number] ? K : never;
|
|
155
|
+
}[keyof SupportedAlgorithms];
|
|
156
|
+
type CipherAlgorithm = typeof supportedAlgorithms[CipherAlgorithms]['names'][number];
|
|
157
|
+
type DeriveKeyAlgorithms = {
|
|
158
|
+
[K in keyof SupportedAlgorithms]: 'deriveKey' extends SupportedAlgorithms[K]['operations'][number] ? K : never;
|
|
159
|
+
}[keyof SupportedAlgorithms];
|
|
160
|
+
type DeriveKeyAlgorithm = typeof supportedAlgorithms[DeriveKeyAlgorithms]['names'][number];
|
|
161
|
+
type DeriveKeyBytesAlgorithms = {
|
|
162
|
+
[K in keyof SupportedAlgorithms]: 'deriveKeyBytes' extends SupportedAlgorithms[K]['operations'][number] ? K : never;
|
|
163
|
+
}[keyof SupportedAlgorithms];
|
|
164
|
+
type DeriveKeyByteAlgorithm = typeof supportedAlgorithms[DeriveKeyBytesAlgorithms]['names'][number];
|
|
165
|
+
type DigestAlgorithms = {
|
|
166
|
+
[K in keyof SupportedAlgorithms]: 'digest' extends SupportedAlgorithms[K]['operations'][number] ? K : never;
|
|
167
|
+
}[keyof SupportedAlgorithms];
|
|
168
|
+
type DigestAlgorithm = typeof supportedAlgorithms[DigestAlgorithms]['names'][number];
|
|
169
|
+
type KeyConversionAlgorithms = {
|
|
170
|
+
[K in keyof SupportedAlgorithms]: 'bytesToPrivateKey' extends SupportedAlgorithms[K]['operations'][number] ? K : never;
|
|
171
|
+
}[keyof SupportedAlgorithms];
|
|
172
|
+
type KeyConversionAlgorithm = typeof supportedAlgorithms[KeyConversionAlgorithms]['names'][number];
|
|
173
|
+
type AsymmetricKeyConversionAlgorithms = {
|
|
174
|
+
[K in keyof SupportedAlgorithms]: 'bytesToPublicKey' extends SupportedAlgorithms[K]['operations'][number] ? K : never;
|
|
175
|
+
}[keyof SupportedAlgorithms];
|
|
176
|
+
type AsymmetricKeyConversionAlgorithm = typeof supportedAlgorithms[AsymmetricKeyConversionAlgorithms]['names'][number];
|
|
177
|
+
type KeyWrappingAlgorithms = {
|
|
178
|
+
[K in keyof SupportedAlgorithms]: 'wrapKey' extends SupportedAlgorithms[K]['operations'][number] ? K : never;
|
|
179
|
+
}[keyof SupportedAlgorithms];
|
|
180
|
+
type KeyWrappingAlgorithm = typeof supportedAlgorithms[KeyWrappingAlgorithms]['names'][number];
|
|
181
|
+
type KeyGenerationAlgorithms = {
|
|
182
|
+
[K in keyof SupportedAlgorithms]: 'generateKey' extends SupportedAlgorithms[K]['operations'][number] ? K : never;
|
|
183
|
+
}[keyof SupportedAlgorithms];
|
|
184
|
+
type KeyGenerationAlgorithm = typeof supportedAlgorithms[KeyGenerationAlgorithms]['names'][number];
|
|
185
|
+
export declare class AgentCryptoApi implements CryptoApi<CryptoApiGenerateKeyParams, Jwk, GetPublicKeyParams, CryptoApiDigestParams, SignParams, VerifyParams, CryptoApiCipherParams, CryptoApiCipherParams, CryptoApiBytesToPublicKeyParams, PublicKeyToBytesParams, CryptoApiBytesToPrivateKeyParams, PrivateKeyToBytesParams, CryptoApiDeriveKeyParams<DeriveKeyAlgorithm>, Jwk, CryptoApiDeriveKeyBytesParams<DeriveKeyAlgorithm>, Uint8Array, WrapKeyParams, UnwrapKeyParams> {
|
|
186
|
+
/**
|
|
187
|
+
* A private map that stores instances of cryptographic algorithm implementations. Each key in
|
|
188
|
+
* this map is an `AlgorithmConstructor`, and its corresponding value is an instance of a class
|
|
189
|
+
* that implements a specific cryptographic algorithm. This map is used to cache and reuse
|
|
190
|
+
* instances for performance optimization, ensuring that each algorithm is instantiated only once.
|
|
191
|
+
*/
|
|
192
|
+
private _algorithmInstances;
|
|
193
|
+
bytesToPrivateKey({ algorithm: algorithmIdentifier, privateKeyBytes }: CryptoApiBytesToPrivateKeyParams): Promise<Jwk>;
|
|
194
|
+
bytesToPublicKey({ algorithm: algorithmIdentifier, publicKeyBytes }: CryptoApiBytesToPublicKeyParams): Promise<Jwk>;
|
|
195
|
+
decrypt(params: CryptoApiCipherParams): Promise<Uint8Array>;
|
|
196
|
+
deriveKey<T extends DeriveKeyAlgorithm>(params: CryptoApiDeriveKeyParams<T>): Promise<Jwk>;
|
|
197
|
+
deriveKeyBytes<T extends DeriveKeyAlgorithm>(params: CryptoApiDeriveKeyBytesParams<T>): Promise<Uint8Array>;
|
|
198
|
+
/**
|
|
199
|
+
* Generates a hash digest of the provided data.
|
|
200
|
+
*
|
|
201
|
+
* @remarks
|
|
202
|
+
* A digest is the output of the hash function. It's a fixed-size string of bytes that uniquely
|
|
203
|
+
* represents the data input into the hash function. The digest is often used for data integrity
|
|
204
|
+
* checks, as any alteration in the input data results in a significantly different digest.
|
|
205
|
+
*
|
|
206
|
+
* It takes the algorithm identifier of the hash function and data to digest as input and returns
|
|
207
|
+
* the digest of the data.
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```ts
|
|
211
|
+
* const cryptoApi = new AgentCryptoApi();
|
|
212
|
+
* const data = new Uint8Array([...]);
|
|
213
|
+
* const digest = await cryptoApi.digest({ algorithm: 'SHA-256', data });
|
|
214
|
+
* ```
|
|
215
|
+
*
|
|
216
|
+
* @param params - The parameters for the digest operation.
|
|
217
|
+
* @param params.algorithm - The name of hash function to use.
|
|
218
|
+
* @param params.data - The data to digest.
|
|
219
|
+
*
|
|
220
|
+
* @returns A Promise which will be fulfilled with the hash digest.
|
|
221
|
+
*/
|
|
222
|
+
digest({ algorithm, data }: CryptoApiDigestParams): Promise<Uint8Array>;
|
|
223
|
+
encrypt(params: CryptoApiCipherParams): Promise<Uint8Array>;
|
|
224
|
+
generateKey(params: CryptoApiGenerateKeyParams): Promise<Jwk>;
|
|
225
|
+
getKeyUri(_params: KmsGetKeyUriParams): Promise<string>;
|
|
226
|
+
getPublicKey({ key }: GetPublicKeyParams): Promise<Jwk>;
|
|
227
|
+
privateKeyToBytes({ privateKey }: {
|
|
228
|
+
privateKey: Jwk;
|
|
229
|
+
}): Promise<Uint8Array>;
|
|
230
|
+
publicKeyToBytes({ publicKey }: {
|
|
231
|
+
publicKey: Jwk;
|
|
232
|
+
}): Promise<Uint8Array>;
|
|
233
|
+
sign({ key, data }: SignParams): Promise<Uint8Array>;
|
|
234
|
+
unwrapKey(params: UnwrapKeyParams): Promise<Jwk>;
|
|
235
|
+
verify({ key, signature, data }: VerifyParams): Promise<boolean>;
|
|
236
|
+
wrapKey(params: WrapKeyParams): Promise<Uint8Array>;
|
|
237
|
+
/**
|
|
238
|
+
* Retrieves an algorithm implementation instance based on the provided algorithm name.
|
|
239
|
+
*
|
|
240
|
+
* @remarks
|
|
241
|
+
* This method checks if the requested algorithm is supported and returns a cached instance
|
|
242
|
+
* if available. If an instance does not exist, it creates and caches a new one. This approach
|
|
243
|
+
* optimizes performance by reusing algorithm instances across cryptographic operations.
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* ```ts
|
|
247
|
+
* const signer = this.getAlgorithm({ algorithm: 'Ed25519' });
|
|
248
|
+
* ```
|
|
249
|
+
*
|
|
250
|
+
* @param params - The parameters for retrieving the algorithm implementation.
|
|
251
|
+
* @param params.algorithm - The name of the algorithm to retrieve.
|
|
252
|
+
*
|
|
253
|
+
* @returns An instance of the requested algorithm implementation.
|
|
254
|
+
*
|
|
255
|
+
* @throws Error if the requested algorithm is not supported.
|
|
256
|
+
*/
|
|
257
|
+
private getAlgorithm;
|
|
258
|
+
/**
|
|
259
|
+
* Determines the algorithm name based on the key's properties.
|
|
260
|
+
*
|
|
261
|
+
* @remarks
|
|
262
|
+
* This method facilitates the identification of the correct algorithm for cryptographic
|
|
263
|
+
* operations based on the `alg` or `crv` properties of a {@link Jwk | JWK}.
|
|
264
|
+
*
|
|
265
|
+
* @example
|
|
266
|
+
* ```ts
|
|
267
|
+
* const key = { ... }; // Public key in JWK format
|
|
268
|
+
* const algorithm = this.getAlgorithmName({ key });
|
|
269
|
+
* ```
|
|
270
|
+
*
|
|
271
|
+
* @example
|
|
272
|
+
* ```ts
|
|
273
|
+
* const algorithm = this.getAlgorithmName({ algorithm: 'ES256' });
|
|
274
|
+
* ```
|
|
275
|
+
*
|
|
276
|
+
* @param params - The parameters for determining the algorithm name.
|
|
277
|
+
* @param params.key - A JWK containing the `alg` or `crv` properties.
|
|
278
|
+
*
|
|
279
|
+
* @returns The algorithm name associated with the key.
|
|
280
|
+
*
|
|
281
|
+
* @throws Error if the algorithm name cannot be determined from the provided input.
|
|
282
|
+
*/
|
|
283
|
+
private getAlgorithmName;
|
|
284
|
+
}
|
|
285
|
+
export {};
|
|
286
|
+
//# sourceMappingURL=crypto-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto-api.d.ts","sourceRoot":"","sources":["../../src/crypto-api.ts"],"names":[],"mappings":"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"}
|