@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,45 @@
|
|
|
1
|
+
import type { RecordsReadReply, UnionMessageReply, MessageSubscriptionHandler, RecordSubscriptionHandler } from '@enbox/dwn-sdk-js';
|
|
2
|
+
export interface SerializableDwnMessage {
|
|
3
|
+
toJSON(): string;
|
|
4
|
+
}
|
|
5
|
+
export type DwnSubscriptionHandler = MessageSubscriptionHandler | RecordSubscriptionHandler;
|
|
6
|
+
/**
|
|
7
|
+
* Interface for communicating with {@link https://github.com/TBD54566975/dwn-server | DWN Servers}
|
|
8
|
+
* via JSON-RPC, supporting operations like sending DWN requests.
|
|
9
|
+
*/
|
|
10
|
+
export interface DwnRpc {
|
|
11
|
+
/**
|
|
12
|
+
* Lists the transport protocols supported by the DWN RPC client, such as HTTP or HTTPS.
|
|
13
|
+
* @returns An array of strings representing the supported transport protocols.
|
|
14
|
+
*/
|
|
15
|
+
get transportProtocols(): string[];
|
|
16
|
+
/**
|
|
17
|
+
* Sends a request to a DWN Server using the specified DWN RPC request parameters.
|
|
18
|
+
*
|
|
19
|
+
* @param request - The DWN RPC request containing the URL, target DID, message, and optional data.
|
|
20
|
+
* @returns A promise that resolves to the response from the DWN server.
|
|
21
|
+
*/
|
|
22
|
+
sendDwnRequest(request: DwnRpcRequest): Promise<DwnRpcResponse>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Represents a JSON RPC request to a DWN server, including the URL, target DID, the message to be
|
|
26
|
+
* processed, and optional data.
|
|
27
|
+
*/
|
|
28
|
+
export type DwnRpcRequest = {
|
|
29
|
+
/** Optional data to be sent with the request. */
|
|
30
|
+
data?: any;
|
|
31
|
+
/** The URL of the DWN server to which the request is sent. */
|
|
32
|
+
dwnUrl: string;
|
|
33
|
+
/** The message to be processed by the DWN server, which can be a serializable DWN message. */
|
|
34
|
+
message: SerializableDwnMessage | any;
|
|
35
|
+
/** The DID of the target to which the message is addressed. */
|
|
36
|
+
targetDid: string;
|
|
37
|
+
/** Optional subscription handler for DWN message events. */
|
|
38
|
+
subscriptionHandler?: DwnSubscriptionHandler;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Represents the JSON RPC response from a DWN server to a request, combining the results of various
|
|
42
|
+
* DWN operations.
|
|
43
|
+
*/
|
|
44
|
+
export type DwnRpcResponse = UnionMessageReply & RecordsReadReply;
|
|
45
|
+
//# sourceMappingURL=dwn-rpc-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dwn-rpc-types.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/clients/dwn-rpc-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEpI,MAAM,WAAW,sBAAsB;IACrC,MAAM,IAAI,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,GAAG,yBAAyB,CAAC;AAE5F;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAA;IAElC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAChE;AAGD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,iDAAiD;IACjD,IAAI,CAAC,EAAE,GAAG,CAAC;IAEX,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IAEf,8FAA8F;IAC9F,OAAO,EAAE,sBAAsB,GAAG,GAAG,CAAC;IAEtC,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAElB,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,sBAAsB,CAAC;CAC9C,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { DwnServerInfoCache, ServerInfo } from './server-info-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration parameters for creating an in-memory cache for DWN ServerInfo entries.
|
|
4
|
+
*
|
|
5
|
+
* Allows customization of the cache time-to-live (TTL) setting.
|
|
6
|
+
*/
|
|
7
|
+
export type DwnServerInfoCacheMemoryParams = {
|
|
8
|
+
/**
|
|
9
|
+
* Optional. The time-to-live for cache entries, expressed as a string (e.g., '1h', '15m').
|
|
10
|
+
* Determines how long a cache entry should remain valid before being considered expired.
|
|
11
|
+
*
|
|
12
|
+
* Defaults to '15m' if not specified.
|
|
13
|
+
*/
|
|
14
|
+
ttl?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare class DwnServerInfoCacheMemory implements DwnServerInfoCache {
|
|
17
|
+
private cache;
|
|
18
|
+
constructor({ ttl }?: DwnServerInfoCacheMemoryParams);
|
|
19
|
+
/**
|
|
20
|
+
* Retrieves a DWN ServerInfo entry from the cache.
|
|
21
|
+
*
|
|
22
|
+
* If the cached item has exceeded its TTL, it's scheduled for deletion and undefined is returned.
|
|
23
|
+
*
|
|
24
|
+
* @param dwnUrl - The DWN URL endpoint string used as the key for getting the entry.
|
|
25
|
+
* @returns The cached DWN ServerInfo entry or undefined if not found or expired.
|
|
26
|
+
*/
|
|
27
|
+
get(dwnUrl: string): Promise<ServerInfo | undefined>;
|
|
28
|
+
/**
|
|
29
|
+
* Stores a DWN ServerInfo entry in the cache with a TTL.
|
|
30
|
+
*
|
|
31
|
+
* @param dwnUrl - The DWN URL endpoint string used as the key for storing the entry.
|
|
32
|
+
* @param value - The DWN ServerInfo entry to be cached.
|
|
33
|
+
* @returns A promise that resolves when the operation is complete.
|
|
34
|
+
*/
|
|
35
|
+
set(dwnUrl: string, value: ServerInfo): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Deletes a DWN ServerInfo entry from the cache.
|
|
38
|
+
*
|
|
39
|
+
* @param dwnUrl - The DWN URL endpoint string used as the key for deletion.
|
|
40
|
+
* @returns A promise that resolves when the operation is complete.
|
|
41
|
+
*/
|
|
42
|
+
delete(dwnUrl: string): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Clears all entries from the cache.
|
|
45
|
+
*
|
|
46
|
+
* @returns A promise that resolves when the operation is complete.
|
|
47
|
+
*/
|
|
48
|
+
clear(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* This method is a no-op but exists to be consistent with other DWN ServerInfo Cache
|
|
51
|
+
* implementations.
|
|
52
|
+
*
|
|
53
|
+
* @returns A promise that resolves immediately.
|
|
54
|
+
*/
|
|
55
|
+
close(): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=dwn-server-info-cache-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dwn-server-info-cache-memory.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/clients/dwn-server-info-cache-memory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAA;AAED,qBAAa,wBAAyB,YAAW,kBAAkB;IACjE,OAAO,CAAC,KAAK,CAA+B;gBAEhC,EAAE,GAAW,EAAE,GAAE,8BAAkC;IAI/D;;;;;;;OAOG;IACU,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAE,SAAS,CAAC;IAIhE;;;;;;OAMG;IACU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE;;;;;OAKG;IACU,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;;;OAKG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DwnRpc, DwnRpcRequest, DwnRpcResponse } from './dwn-rpc-types.js';
|
|
2
|
+
import { DwnServerInfoCache, ServerInfo } from './server-info-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* HTTP client that can be used to communicate with Dwn Servers
|
|
5
|
+
*/
|
|
6
|
+
export declare class HttpDwnRpcClient implements DwnRpc {
|
|
7
|
+
private serverInfoCache;
|
|
8
|
+
constructor(serverInfoCache?: DwnServerInfoCache);
|
|
9
|
+
get transportProtocols(): string[];
|
|
10
|
+
sendDwnRequest(request: DwnRpcRequest): Promise<DwnRpcResponse>;
|
|
11
|
+
getServerInfo(dwnUrl: string): Promise<ServerInfo>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=http-dwn-rpc-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-dwn-rpc-client.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/clients/http-dwn-rpc-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIhF,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGxE;;GAEG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,eAAe,CAAqB;gBAChC,eAAe,CAAC,EAAE,kBAAkB;IAIhD,IAAI,kBAAkB,aAAkC;IAElD,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IA0D/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAgCzD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { JsonRpcRequest, JsonRpcResponse } from './json-rpc.js';
|
|
2
|
+
export interface JsonRpcSocketOptions {
|
|
3
|
+
/** socket connection timeout in milliseconds */
|
|
4
|
+
connectTimeout?: number;
|
|
5
|
+
/** response timeout for rpc requests in milliseconds */
|
|
6
|
+
responseTimeout?: number;
|
|
7
|
+
/** optional connection close handler */
|
|
8
|
+
onclose?: () => void;
|
|
9
|
+
/** optional socket error handler */
|
|
10
|
+
onerror?: (error?: any) => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* JSON RPC Socket Client for WebSocket request/response and long-running subscriptions.
|
|
14
|
+
*
|
|
15
|
+
* NOTE: This is temporarily copied over from https://github.com/TBD54566975/dwn-server/blob/main/src/json-rpc-socket.ts
|
|
16
|
+
* This was done in order to avoid taking a dependency on the `dwn-server`, until a future time when there will be a `clients` package.
|
|
17
|
+
*/
|
|
18
|
+
export declare class JsonRpcSocket {
|
|
19
|
+
private socket;
|
|
20
|
+
private responseTimeout;
|
|
21
|
+
private messageHandlers;
|
|
22
|
+
private constructor();
|
|
23
|
+
static connect(url: string, options?: JsonRpcSocketOptions): Promise<JsonRpcSocket>;
|
|
24
|
+
close(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Sends a JSON-RPC request through the socket and waits for a single response.
|
|
27
|
+
*/
|
|
28
|
+
request(request: JsonRpcRequest): Promise<JsonRpcResponse>;
|
|
29
|
+
/**
|
|
30
|
+
* Sends a JSON-RPC request through the socket and keeps a listener open to read associated responses as they arrive.
|
|
31
|
+
* Returns a close method to clean up the listener.
|
|
32
|
+
*/
|
|
33
|
+
subscribe(request: JsonRpcRequest, listener: (response: JsonRpcResponse) => void): Promise<{
|
|
34
|
+
response: JsonRpcResponse;
|
|
35
|
+
close?: () => Promise<void>;
|
|
36
|
+
}>;
|
|
37
|
+
private closeSubscription;
|
|
38
|
+
/**
|
|
39
|
+
* Sends a JSON-RPC request through the socket. You must subscribe to a message listener separately to capture the response.
|
|
40
|
+
*/
|
|
41
|
+
send(request: JsonRpcRequest): void;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=json-rpc-socket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-rpc-socket.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/clients/json-rpc-socket.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,cAAc,EAAE,eAAe,EAA+C,MAAM,eAAe,CAAC;AAMxH,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CACjC;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IAGJ,OAAO,CAAC,MAAM;IAAuB,OAAO,CAAC,eAAe;IAFhF,OAAO,CAAC,eAAe,CAA6D;IAEpF,OAAO;WAEM,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC;IA4C7F,KAAK,IAAI,IAAI;IAIb;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAyBhE;;;OAGG;IACG,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC;QAC/F,QAAQ,EAAE,eAAe,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B,CAAC;IA2CH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc,GAAE,IAAI;CAGnC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export type JsonRpcId = string | number | null;
|
|
2
|
+
export type JsonRpcParams = any;
|
|
3
|
+
export type JsonRpcVersion = '2.0';
|
|
4
|
+
export interface JsonRpcRequest {
|
|
5
|
+
jsonrpc: JsonRpcVersion;
|
|
6
|
+
id?: JsonRpcId;
|
|
7
|
+
/** JSON RPC Subscription Extension Parameters */
|
|
8
|
+
subscription?: {
|
|
9
|
+
id: JsonRpcId;
|
|
10
|
+
};
|
|
11
|
+
method: string;
|
|
12
|
+
params?: any;
|
|
13
|
+
}
|
|
14
|
+
export interface JsonRpcError {
|
|
15
|
+
code: JsonRpcErrorCodes;
|
|
16
|
+
message: string;
|
|
17
|
+
data?: any;
|
|
18
|
+
}
|
|
19
|
+
export declare enum JsonRpcErrorCodes {
|
|
20
|
+
InvalidRequest = -32600,
|
|
21
|
+
MethodNotFound = -32601,
|
|
22
|
+
InvalidParams = -32602,
|
|
23
|
+
InternalError = -32603,
|
|
24
|
+
ParseError = -32700,
|
|
25
|
+
TransportError = -32300,
|
|
26
|
+
BadRequest = -50400,
|
|
27
|
+
Unauthorized = -50401,
|
|
28
|
+
Forbidden = -50403,
|
|
29
|
+
Conflict = -50409
|
|
30
|
+
}
|
|
31
|
+
export type JsonRpcResponse = JsonRpcSuccessResponse | JsonRpcErrorResponse;
|
|
32
|
+
export interface JsonRpcSuccessResponse {
|
|
33
|
+
jsonrpc: JsonRpcVersion;
|
|
34
|
+
id: JsonRpcId;
|
|
35
|
+
result: any;
|
|
36
|
+
error?: never;
|
|
37
|
+
}
|
|
38
|
+
export interface JsonRpcErrorResponse {
|
|
39
|
+
jsonrpc: JsonRpcVersion;
|
|
40
|
+
id: JsonRpcId;
|
|
41
|
+
result?: never;
|
|
42
|
+
error: JsonRpcError;
|
|
43
|
+
}
|
|
44
|
+
export declare const createJsonRpcErrorResponse: (id: JsonRpcId, code: JsonRpcErrorCodes, message: string, data?: any) => JsonRpcErrorResponse;
|
|
45
|
+
export declare const createJsonRpcRequest: (id: JsonRpcId, method: string, params?: JsonRpcParams) => JsonRpcRequest;
|
|
46
|
+
export declare const createJsonRpcSubscriptionRequest: (id: JsonRpcId, method: string, subscriptionId: JsonRpcId, params?: any) => JsonRpcRequest;
|
|
47
|
+
export declare const createJsonRpcSuccessResponse: (id: JsonRpcId, result: any) => JsonRpcSuccessResponse;
|
|
48
|
+
export declare function parseJson(text: string): object | null;
|
|
49
|
+
//# sourceMappingURL=json-rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-rpc.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/clients/json-rpc.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC;AAChC,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC;AAEnC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,cAAc,CAAC;IACxB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,iDAAiD;IACjD,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,SAAS,CAAA;KAAE,CAAA;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,oBAAY,iBAAiB;IAE3B,cAAc,SAAS;IACvB,cAAc,SAAS;IACvB,aAAa,SAAS;IACtB,aAAa,SAAS;IACtB,UAAU,SAAS;IACnB,cAAc,SAAS;IAGvB,UAAU,SAAS;IACnB,YAAY,SAAS;IACrB,SAAS,SAAS;IAClB,QAAQ,SAAS;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAE5E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,cAAc,CAAC;IACxB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,eAAO,MAAM,0BAA0B,OACjC,SAAS,QACP,iBAAiB,WACd,MAAM,SACR,GAAG,KACT,oBAOF,CAAC;AAEF,eAAO,MAAM,oBAAoB,OAC3B,SAAS,UACL,MAAM,WACL,aAAa,KACrB,cAOF,CAAC;AAEF,eAAO,MAAM,gCAAgC,OACvC,SAAS,UACL,MAAM,kBACE,SAAS,WAChB,GAAG,KACX,cAUF,CAAC;AAEF,eAAO,MAAM,4BAA4B,OACnC,SAAS,UACL,GAAG,KACV,sBAMF,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMrD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { KeyValueStore } from '@enbox/common';
|
|
2
|
+
export type ServerInfo = {
|
|
3
|
+
/** the maximum file size the user can request to store */
|
|
4
|
+
maxFileSize: number;
|
|
5
|
+
/**
|
|
6
|
+
* an array of strings representing the server's registration requirements.
|
|
7
|
+
*
|
|
8
|
+
* ie. ['proof-of-work-sha256-v0', 'terms-of-service']
|
|
9
|
+
* */
|
|
10
|
+
registrationRequirements: string[];
|
|
11
|
+
/** whether web socket support is enabled on this server */
|
|
12
|
+
webSocketSupport: boolean;
|
|
13
|
+
};
|
|
14
|
+
export interface DwnServerInfoCache extends KeyValueStore<string, ServerInfo | undefined> {
|
|
15
|
+
}
|
|
16
|
+
export interface DwnServerInfoRpc {
|
|
17
|
+
/** retrieves the DWN Sever info, used to detect features such as WebSocket Subscriptions */
|
|
18
|
+
getServerInfo(url: string): Promise<ServerInfo>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=server-info-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-info-types.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/clients/server-info-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG;IACvB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;SAIK;IACL,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,2DAA2D;IAC3D,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAA;AAED,MAAM,WAAW,kBAAmB,SAAQ,aAAa,CAAC,MAAM,EAAE,UAAU,GAAE,SAAS,CAAC;CAAG;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,4FAA4F;IAC5F,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACjD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DwnRpc, DwnRpcRequest, DwnRpcResponse } from './dwn-rpc-types.js';
|
|
2
|
+
import { JsonRpcSocketOptions } from './json-rpc-socket.js';
|
|
3
|
+
export declare class WebSocketDwnRpcClient implements DwnRpc {
|
|
4
|
+
get transportProtocols(): string[];
|
|
5
|
+
private static connections;
|
|
6
|
+
sendDwnRequest(request: DwnRpcRequest, jsonRpcSocketOptions?: JsonRpcSocketOptions): Promise<DwnRpcResponse>;
|
|
7
|
+
private static processMessage;
|
|
8
|
+
private static subscriptionRequest;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=web-socket-clients.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-socket-clients.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/clients/web-socket-clients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAA0B,MAAM,oBAAoB,CAAC;AAKxG,OAAO,EAAiB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAO3E,qBAAa,qBAAsB,YAAW,MAAM;IAClD,IAAW,kBAAkB,aAA8B;IAE3D,OAAO,CAAC,MAAM,CAAC,WAAW,CAAuC;IAE3D,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;mBA8B7F,cAAc;mBAed,mBAAmB;CAqCzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/common/object.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAclG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/common/type-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { Jwk, Cipher, KeyConverter, KeyGenerator, DecryptParams, EncryptParams, GenerateKeyParams } from '@enbox/crypto';
|
|
2
|
+
import { AES_GCM_TAG_LENGTHS, CryptoAlgorithm } from '@enbox/crypto';
|
|
3
|
+
import type { BytesToPrivateKeyParams, PrivateKeyToBytesParams } from '../types/params-direct.js';
|
|
4
|
+
/**
|
|
5
|
+
* The `AesGcmGenerateKeyParams` interface defines the algorithm-specific parameters that should be
|
|
6
|
+
* passed into the `generateKey()` method when using the AES-GCM algorithm.
|
|
7
|
+
*/
|
|
8
|
+
export interface AesGcmGenerateKeyParams extends GenerateKeyParams {
|
|
9
|
+
/** Specifies the algorithm variant for key generation in AES-GCM mode.
|
|
10
|
+
* The value determines the length of the key to be generated and must be one of the following:
|
|
11
|
+
* - `"A128GCM"`: Generates a 128-bit key.
|
|
12
|
+
* - `"A192GCM"`: Generates a 192-bit key.
|
|
13
|
+
* - `"A256GCM"`: Generates a 256-bit key.
|
|
14
|
+
*/
|
|
15
|
+
algorithm: 'A128GCM' | 'A192GCM' | 'A256GCM';
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The `AesGcmParams` interface defines the algorithm-specific parameters that should be passed
|
|
19
|
+
* into the `encrypt()` and `decrypt()` methods when using the AES-GCM algorithm.
|
|
20
|
+
*/
|
|
21
|
+
export interface AesGcmParams {
|
|
22
|
+
/**
|
|
23
|
+
* The `additionalData` property is used for authentication alongside encrypted data but isn't
|
|
24
|
+
* encrypted itself. It must match in both encryption and decryption; a mismatch will cause
|
|
25
|
+
* decryption to fail. This feature allows for the authentication of data without encrypting it.
|
|
26
|
+
*
|
|
27
|
+
* The `additionalData` property is optional and omitting it does not compromise encryption
|
|
28
|
+
* security.
|
|
29
|
+
*/
|
|
30
|
+
additionalData?: Uint8Array;
|
|
31
|
+
/**
|
|
32
|
+
* The initialization vector (IV) must be unique for every encryption operation carried out with a
|
|
33
|
+
* given key. The IV need not be secret, but it must be unpredictable: that is, the IV must not be
|
|
34
|
+
* reused with the same key. The IV must be 12 bytes (96 bits) in length in accordance with the
|
|
35
|
+
* AES-GCM specification recommendedation to promote interoperability and efficiency.
|
|
36
|
+
*
|
|
37
|
+
* Note: It is OK to transmit the IV in the clear with the encrypted message.
|
|
38
|
+
*/
|
|
39
|
+
iv: Uint8Array;
|
|
40
|
+
/**
|
|
41
|
+
* This property determines the size in bits of the authentication tag generated in the encryption
|
|
42
|
+
* operation and used for authentication in the corresponding decryption. In accordance with the
|
|
43
|
+
* AES-GCM specification, the tag length must be 96, 104, 112, 120 or 128.
|
|
44
|
+
*
|
|
45
|
+
* The `tagLength` property is optional and defaults to 128 bits if omitted.
|
|
46
|
+
*/
|
|
47
|
+
tagLength?: typeof AES_GCM_TAG_LENGTHS[number];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The `AesGcmAlgorithm` class provides a concrete implementation for cryptographic operations using
|
|
51
|
+
* the AES algorithm in Galois/Counter Mode (GCM). This class implements both
|
|
52
|
+
* {@link Cipher | `Cipher`} and { @link KeyGenerator | `KeyGenerator`} interfaces, providing
|
|
53
|
+
* key generation, encryption, and decryption features.
|
|
54
|
+
*
|
|
55
|
+
* This class is typically accessed through implementations that extend the
|
|
56
|
+
* {@link CryptoApi | `CryptoApi`} interface.
|
|
57
|
+
*/
|
|
58
|
+
export declare class AesGcmAlgorithm extends CryptoAlgorithm implements Cipher<AesGcmParams, AesGcmParams>, KeyConverter, KeyGenerator<AesGcmGenerateKeyParams, Jwk> {
|
|
59
|
+
bytesToPrivateKey({ privateKeyBytes }: BytesToPrivateKeyParams): Promise<Jwk>;
|
|
60
|
+
/**
|
|
61
|
+
* Decrypts the provided data using AES-GCM.
|
|
62
|
+
*
|
|
63
|
+
* @remarks
|
|
64
|
+
* This method performs AES-GCM decryption on the given encrypted data using the specified key.
|
|
65
|
+
* It requires an initialization vector (IV), the encrypted data along with the decryption key,
|
|
66
|
+
* and optionally, additional authenticated data (AAD). The method returns the decrypted data as a
|
|
67
|
+
* Uint8Array. The optional `tagLength` parameter specifies the size in bits of the authentication
|
|
68
|
+
* tag used when encrypting the data. If not specified, the default tag length of 128 bits is
|
|
69
|
+
* used.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* const aesGcm = new AesGcmAlgorithm();
|
|
74
|
+
* const encryptedData = new Uint8Array([...]); // Encrypted data
|
|
75
|
+
* const iv = new Uint8Array([...]); // Initialization vector used during encryption
|
|
76
|
+
* const additionalData = new Uint8Array([...]); // Optional additional authenticated data
|
|
77
|
+
* const key = { ... }; // A Jwk object representing the AES key
|
|
78
|
+
* const decryptedData = await aesGcm.decrypt({
|
|
79
|
+
* data: encryptedData,
|
|
80
|
+
* iv,
|
|
81
|
+
* additionalData,
|
|
82
|
+
* key,
|
|
83
|
+
* tagLength: 128 // Optional tag length in bits
|
|
84
|
+
* });
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* @param params - The parameters for the decryption operation.
|
|
88
|
+
*
|
|
89
|
+
* @returns A Promise that resolves to the decrypted data as a Uint8Array.
|
|
90
|
+
*/
|
|
91
|
+
decrypt(params: DecryptParams & AesGcmParams): Promise<Uint8Array>;
|
|
92
|
+
/**
|
|
93
|
+
* Encrypts the provided data using AES-GCM.
|
|
94
|
+
*
|
|
95
|
+
* @remarks
|
|
96
|
+
* This method performs AES-GCM encryption on the given data using the specified key.
|
|
97
|
+
* It requires an initialization vector (IV), the encrypted data along with the decryption key,
|
|
98
|
+
* and optionally, additional authenticated data (AAD). The method returns the encrypted data as a
|
|
99
|
+
* Uint8Array. The optional `tagLength` parameter specifies the size in bits of the authentication
|
|
100
|
+
* tag generated in the encryption operation and used for authentication in the corresponding
|
|
101
|
+
* decryption. If not specified, the default tag length of 128 bits is used.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* const aesGcm = new AesGcmAlgorithm();
|
|
106
|
+
* const data = new TextEncoder().encode('Messsage');
|
|
107
|
+
* const iv = new Uint8Array([...]); // Initialization vector
|
|
108
|
+
* const additionalData = new Uint8Array([...]); // Optional additional authenticated data
|
|
109
|
+
* const key = { ... }; // A Jwk object representing an AES key
|
|
110
|
+
* const encryptedData = await aesGcm.encrypt({
|
|
111
|
+
* data,
|
|
112
|
+
* iv,
|
|
113
|
+
* additionalData,
|
|
114
|
+
* key,
|
|
115
|
+
* tagLength: 128 // Optional tag length in bits
|
|
116
|
+
* });
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* @param params - The parameters for the encryption operation.
|
|
120
|
+
*
|
|
121
|
+
* @returns A Promise that resolves to the encrypted data as a Uint8Array.
|
|
122
|
+
*/
|
|
123
|
+
encrypt(params: EncryptParams & AesGcmParams): Promise<Uint8Array>;
|
|
124
|
+
/**
|
|
125
|
+
* Generates a symmetric key for AES in Galois/Counter Mode (GCM) in JSON Web Key (JWK) format.
|
|
126
|
+
*
|
|
127
|
+
* @remarks
|
|
128
|
+
* This method generates a symmetric AES key for use in GCM mode, based on the specified
|
|
129
|
+
* `algorithm` parameter which determines the key length. It uses cryptographically secure random
|
|
130
|
+
* number generation to ensure the uniqueness and security of the key. The key is returned in JWK
|
|
131
|
+
* format.
|
|
132
|
+
*
|
|
133
|
+
* The generated key includes the following components:
|
|
134
|
+
* - `kty`: Key Type, set to 'oct' for Octet Sequence.
|
|
135
|
+
* - `k`: The symmetric key component, base64url-encoded.
|
|
136
|
+
* - `kid`: Key ID, generated based on the JWK thumbprint.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```ts
|
|
140
|
+
* const aesGcm = new AesGcmAlgorithm();
|
|
141
|
+
* const privateKey = await aesGcm.generateKey({ algorithm: 'A256GCM' });
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* @param params - The parameters for the key generation.
|
|
145
|
+
*
|
|
146
|
+
* @returns A Promise that resolves to the generated symmetric key in JWK format.
|
|
147
|
+
*/
|
|
148
|
+
generateKey({ algorithm }: AesGcmGenerateKeyParams): Promise<Jwk>;
|
|
149
|
+
privateKeyToBytes({ privateKey }: PrivateKeyToBytesParams): Promise<Uint8Array>;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=aes-gcm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aes-gcm.d.ts","sourceRoot":"","sources":["../../../../../src/prototyping/crypto/algorithms/aes-gcm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAU,mBAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAElG;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE;;;;;OAKG;IACH,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAE5B;;;;;;;OAOG;IACH,EAAE,EAAE,UAAU,CAAC;IAEf;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;CAChD;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,eACnC,YAAW,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,EAClC,YAAY,EACZ,YAAY,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAExC,iBAAiB,CAAC,EAAE,eAAe,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC;IAU1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,OAAO,CAAC,MAAM,EACzB,aAAa,GAAG,YAAY,GAC3B,OAAO,CAAC,UAAU,CAAC;IAMtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,OAAO,CAAC,MAAM,EACzB,aAAa,GAAG,YAAY,GAC3B,OAAO,CAAC,UAAU,CAAC;IAMtB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,WAAW,CAAC,EAAE,SAAS,EAAE,EACpC,uBAAuB,GACtB,OAAO,CAAC,GAAG,CAAC;IAaF,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;CAM7F"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { GenerateKeyParams, Jwk, KeyConverter, KeyGenerator, KeyWrapper } from '@enbox/crypto';
|
|
2
|
+
import { CryptoAlgorithm } from '@enbox/crypto';
|
|
3
|
+
import type { BytesToPrivateKeyParams, PrivateKeyToBytesParams, UnwrapKeyParams, WrapKeyParams } from '../types/params-direct.js';
|
|
4
|
+
import { RequireOnly } from '@enbox/common';
|
|
5
|
+
/**
|
|
6
|
+
* The `AesKwGenerateKeyParams` interface defines the algorithm-specific parameters that should be
|
|
7
|
+
* passed into the `generateKey()` method when using the AES-KW algorithm.
|
|
8
|
+
*/
|
|
9
|
+
export interface AesKwGenerateKeyParams extends GenerateKeyParams {
|
|
10
|
+
/** Specifies the algorithm variant for key generation in AES-KW mode.
|
|
11
|
+
* The value determines the length of the key to be generated and must be one of the following:
|
|
12
|
+
* - `"A128KW"`: AES Key Wrap using a 128-bit key.
|
|
13
|
+
* - `"A192KW"`: AES Key Wrap using a 192-bit key.
|
|
14
|
+
* - `"A256KW"`: AES Key Wrap using a 256-bit key.
|
|
15
|
+
*/
|
|
16
|
+
algorithm: 'A128KW' | 'A192KW' | 'A256KW';
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The `AesKwAlgorithm` class provides a concrete implementation for cryptographic operations using
|
|
20
|
+
* the AES algorithm for key wrapping. This class implements both
|
|
21
|
+
* {@link KeyGenerator | `KeyGenerator`} and {@link KeyWrapper | `KeyWrapper`} interfaces, providing
|
|
22
|
+
* key generation, key wrapping, and key unwrapping features.
|
|
23
|
+
*
|
|
24
|
+
* This class is typically accessed through implementations that extend the
|
|
25
|
+
* {@link CryptoApi | `CryptoApi`} interface.
|
|
26
|
+
*/
|
|
27
|
+
export declare class AesKwAlgorithm extends CryptoAlgorithm implements KeyConverter, KeyGenerator<AesKwGenerateKeyParams, Jwk>, KeyWrapper<WrapKeyParams, UnwrapKeyParams> {
|
|
28
|
+
bytesToPrivateKey({ privateKeyBytes }: RequireOnly<BytesToPrivateKeyParams, 'privateKeyBytes'>): Promise<Jwk>;
|
|
29
|
+
/**
|
|
30
|
+
* Generates a symmetric key for AES for key wrapping in JSON Web Key (JWK) format.
|
|
31
|
+
*
|
|
32
|
+
* @remarks
|
|
33
|
+
* This method generates a symmetric AES key for use in key wrapping mode, based on the specified
|
|
34
|
+
* `algorithm` parameter which determines the key length. It uses cryptographically secure random
|
|
35
|
+
* number generation to ensure the uniqueness and security of the key. The key is returned in JWK
|
|
36
|
+
* format.
|
|
37
|
+
*
|
|
38
|
+
* The generated key includes the following components:
|
|
39
|
+
* - `kty`: Key Type, set to 'oct' for Octet Sequence.
|
|
40
|
+
* - `k`: The symmetric key component, base64url-encoded.
|
|
41
|
+
* - `kid`: Key ID, generated based on the JWK thumbprint.
|
|
42
|
+
* - `alg`: Algorithm, set to 'A128KW', 'A192KW', or 'A256KW' for AES Key Wrap with the
|
|
43
|
+
* specified key length.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* const aesKw = new AesKwAlgorithm();
|
|
48
|
+
* const privateKey = await aesKw.generateKey({ algorithm: 'A256KW' });
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @param params - The parameters for the key generation.
|
|
52
|
+
*
|
|
53
|
+
* @returns A Promise that resolves to the generated symmetric key in JWK format.
|
|
54
|
+
*/
|
|
55
|
+
generateKey({ algorithm }: AesKwGenerateKeyParams): Promise<Jwk>;
|
|
56
|
+
privateKeyToBytes({ privateKey }: PrivateKeyToBytesParams): Promise<Uint8Array>;
|
|
57
|
+
/**
|
|
58
|
+
* Decrypts a wrapped key using the AES Key Wrap algorithm.
|
|
59
|
+
*
|
|
60
|
+
* @remarks
|
|
61
|
+
* This method unwraps a previously wrapped cryptographic key using the AES Key Wrap algorithm.
|
|
62
|
+
* The wrapped key, provided as a byte array, is unwrapped using the decryption key specified in
|
|
63
|
+
* the parameters.
|
|
64
|
+
*
|
|
65
|
+
* This operation is useful for securely receiving keys transmitted over untrusted mediums. The
|
|
66
|
+
* method returns the unwrapped key as a JSON Web Key (JWK).
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* const aesKw = new AesKwAlgorithm();
|
|
71
|
+
* const wrappedKeyBytes = new Uint8Array([...]); // Byte array of a wrapped AES-256 GCM key
|
|
72
|
+
* const decryptionKey = { ... }; // A Jwk object representing the AES unwrapping key
|
|
73
|
+
* const unwrappedKey = await aesKw.unwrapKey({
|
|
74
|
+
* wrappedKeyBytes,
|
|
75
|
+
* wrappedKeyAlgorithm: 'A256GCM',
|
|
76
|
+
* decryptionKey
|
|
77
|
+
* });
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @param params - The parameters for the key unwrapping operation.
|
|
81
|
+
*
|
|
82
|
+
* @returns A Promise that resolves to the unwrapped key in JWK format.
|
|
83
|
+
*/
|
|
84
|
+
unwrapKey(params: UnwrapKeyParams): Promise<Jwk>;
|
|
85
|
+
/**
|
|
86
|
+
* Encrypts a given key using the AES Key Wrap algorithm.
|
|
87
|
+
*
|
|
88
|
+
* @remarks
|
|
89
|
+
* This method wraps a given cryptographic key using the AES Key Wrap algorithm. The private key
|
|
90
|
+
* to be wrapped is provided in the form of a JSON Web Key (JWK).
|
|
91
|
+
*
|
|
92
|
+
* This operation is useful for securely transmitting keys over untrusted mediums. The method
|
|
93
|
+
* returns the wrapped key as a byte array.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```ts
|
|
97
|
+
* const aesKw = new AesKwAlgorithm();
|
|
98
|
+
* const unwrappedKey = { ... }; // A Jwk object representing the key to be wrapped
|
|
99
|
+
* const encryptionKey = { ... }; // A Jwk object representing the AES wrapping key
|
|
100
|
+
* const wrappedKeyBytes = await aesKw.wrapKey({ unwrappedKey, encryptionKey });
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* @param params - The parameters for the key wrapping operation.
|
|
104
|
+
*
|
|
105
|
+
* @returns A Promise that resolves to the wrapped key as a Uint8Array.
|
|
106
|
+
*/
|
|
107
|
+
wrapKey(params: WrapKeyParams): Promise<Uint8Array>;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=aes-kw.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aes-kw.d.ts","sourceRoot":"","sources":["../../../../../src/prototyping/crypto/algorithms/aes-kw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpG,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAGlI,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D;;;;;OAKG;IACH,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,eAClC,YAAW,YAAY,EACZ,YAAY,CAAC,sBAAsB,EAAE,GAAG,CAAC,EACzC,UAAU,CAAC,aAAa,EAAE,eAAe,CAAC;IAExC,iBAAiB,CAAC,EAAE,eAAe,EAAE,EAChD,WAAW,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,GACtD,OAAO,CAAC,GAAG,CAAC;IAUf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,WAAW,CAAC,EAAE,SAAS,EAAE,EACpC,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAaF,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAC3C,uBAAuB,GACtB,OAAO,CAAC,UAAU,CAAC;IAOtB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,SAAS,CAAC,MAAM,EAC3B,eAAe,GACd,OAAO,CAAC,GAAG,CAAC;IAMf;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,OAAO,CAAC,MAAM,EACzB,aAAa,GACZ,OAAO,CAAC,UAAU,CAAC;CAKvB"}
|