@opendatalabs/vana-sdk 0.1.0-alpha.7ee7635 → 0.1.0-alpha.8117ac2
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/__tests__/waitForTransactionEvents.test.d.ts +1 -0
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.ts +36 -2
- package/dist/browser.js.map +1 -1
- package/dist/chains/definitions.cjs +9 -6
- package/dist/chains/definitions.cjs.map +1 -1
- package/dist/chains/definitions.d.ts +9 -11
- package/dist/chains/definitions.js +9 -6
- package/dist/chains/definitions.js.map +1 -1
- package/dist/chains/index.cjs.map +1 -1
- package/dist/chains/index.d.ts +34 -2
- package/dist/chains/index.js.map +1 -1
- package/dist/chains.browser.d.ts +8 -2
- package/dist/chains.d.ts +8 -2
- package/dist/chains.node.d.ts +8 -2
- package/dist/config/addresses.d.ts +8 -45
- package/dist/config/chains.cjs.map +1 -1
- package/dist/config/chains.d.ts +108 -13
- package/dist/config/chains.js.map +1 -1
- package/dist/config/default-services.cjs +60 -0
- package/dist/config/default-services.cjs.map +1 -0
- package/dist/config/default-services.d.ts +46 -0
- package/dist/config/default-services.js +33 -0
- package/dist/config/default-services.js.map +1 -0
- package/dist/config/default-services.test.d.ts +1 -0
- package/dist/config/features.d.ts +1 -3
- package/dist/config/tests/addresses.test.d.ts +1 -0
- package/dist/contracts/contractController.cjs +3 -3
- package/dist/contracts/contractController.cjs.map +1 -1
- package/dist/contracts/contractController.d.ts +77 -59
- package/dist/contracts/contractController.js +4 -7
- package/dist/contracts/contractController.js.map +1 -1
- package/dist/contracts/tests/contractController.test.d.ts +1 -0
- package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +7 -0
- package/dist/controllers/__tests__/schemas-edge-cases.test.d.ts +1 -0
- package/dist/controllers/base.cjs +116 -0
- package/dist/controllers/base.cjs.map +1 -0
- package/dist/controllers/base.d.ts +94 -0
- package/dist/controllers/base.js +92 -0
- package/dist/controllers/base.js.map +1 -0
- package/dist/controllers/data-error-handling.test.d.ts +1 -0
- package/dist/controllers/data.cjs +699 -373
- package/dist/controllers/data.cjs.map +1 -1
- package/dist/controllers/data.d.ts +368 -228
- package/dist/controllers/data.js +712 -376
- package/dist/controllers/data.js.map +1 -1
- package/dist/controllers/permissions.cjs +688 -489
- package/dist/controllers/permissions.cjs.map +1 -1
- package/dist/controllers/permissions.d.ts +98 -165
- package/dist/controllers/permissions.js +688 -489
- package/dist/controllers/permissions.js.map +1 -1
- package/dist/controllers/protocol.cjs +15 -11
- package/dist/controllers/protocol.cjs.map +1 -1
- package/dist/controllers/protocol.d.ts +34 -84
- package/dist/controllers/protocol.js +15 -14
- package/dist/controllers/protocol.js.map +1 -1
- package/dist/controllers/schemas.cjs +57 -52
- package/dist/controllers/schemas.cjs.map +1 -1
- package/dist/controllers/schemas.d.ts +55 -61
- package/dist/controllers/schemas.js +57 -52
- package/dist/controllers/schemas.js.map +1 -1
- package/dist/controllers/server-additional.test.d.ts +1 -0
- package/dist/controllers/server.cjs +32 -25
- package/dist/controllers/server.cjs.map +1 -1
- package/dist/controllers/server.d.ts +53 -58
- package/dist/controllers/server.js +32 -25
- package/dist/controllers/server.js.map +1 -1
- package/dist/core/apiClient.cjs +68 -15
- package/dist/core/apiClient.cjs.map +1 -1
- package/dist/core/apiClient.d.ts +137 -16
- package/dist/core/apiClient.js +72 -22
- package/dist/core/apiClient.js.map +1 -1
- package/dist/core/client.cjs +7 -7
- package/dist/core/client.cjs.map +1 -1
- package/dist/core/client.d.ts +6 -9
- package/dist/core/client.js +7 -7
- package/dist/core/client.js.map +1 -1
- package/dist/core/core.test.d.ts +1 -0
- package/dist/core/generics.cjs +41 -12
- package/dist/core/generics.cjs.map +1 -1
- package/dist/core/generics.d.ts +104 -19
- package/dist/core/generics.js +52 -32
- package/dist/core/generics.js.map +1 -1
- package/dist/core/tests/apiClient.test.d.ts +1 -0
- package/dist/core/tests/client.test.d.ts +1 -0
- package/dist/core/tests/generics.test.d.ts +1 -0
- package/dist/core.cjs +115 -47
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +24 -74
- package/dist/core.js +137 -72
- package/dist/core.js.map +1 -1
- package/dist/crypto/ecies/__tests__/base.test.d.ts +4 -0
- package/dist/crypto/ecies/__tests__/compatibility.test.d.ts +8 -0
- package/dist/crypto/ecies/__tests__/constants.test.d.ts +4 -0
- package/dist/crypto/ecies/__tests__/native-parity.test.d.ts +7 -0
- package/dist/crypto/ecies/__tests__/normalization.test.d.ts +1 -0
- package/dist/crypto/ecies/__tests__/test-vectors.d.ts +2 -4
- package/dist/crypto/ecies/base.cjs +4 -3
- package/dist/crypto/ecies/base.cjs.map +1 -1
- package/dist/crypto/ecies/base.d.ts +2 -5
- package/dist/crypto/ecies/base.js +12 -15
- package/dist/crypto/ecies/base.js.map +1 -1
- package/dist/crypto/ecies/browser.cjs +2 -1
- package/dist/crypto/ecies/browser.cjs.map +1 -1
- package/dist/crypto/ecies/browser.d.ts +2 -7
- package/dist/crypto/ecies/browser.js +2 -1
- package/dist/crypto/ecies/browser.js.map +1 -1
- package/dist/crypto/ecies/constants.d.ts +7 -9
- package/dist/crypto/ecies/index.d.ts +8 -1
- package/dist/crypto/ecies/interface.cjs +4 -5
- package/dist/crypto/ecies/interface.cjs.map +1 -1
- package/dist/crypto/ecies/interface.d.ts +9 -11
- package/dist/crypto/ecies/interface.js +4 -5
- package/dist/crypto/ecies/interface.js.map +1 -1
- package/dist/crypto/ecies/node.cjs +3 -2
- package/dist/crypto/ecies/node.cjs.map +1 -1
- package/dist/crypto/ecies/node.d.ts +2 -7
- package/dist/crypto/ecies/node.js +11 -16
- package/dist/crypto/ecies/node.js.map +1 -1
- package/dist/crypto/ecies/utils.cjs +2 -41
- package/dist/crypto/ecies/utils.cjs.map +1 -1
- package/dist/crypto/ecies/utils.d.ts +3 -40
- package/dist/crypto/ecies/utils.js +1 -35
- package/dist/crypto/ecies/utils.js.map +1 -1
- package/dist/crypto/services/WalletKeyEncryptionService.cjs +2 -2
- package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -1
- package/dist/crypto/services/WalletKeyEncryptionService.d.ts +3 -7
- package/dist/crypto/services/WalletKeyEncryptionService.js +5 -9
- package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -1
- package/dist/crypto/services/WalletKeyEncryptionService.test.d.ts +1 -0
- package/dist/diagnostics.d.ts +1 -3
- package/dist/diagnostics.test.d.ts +1 -0
- package/dist/errors.cjs +16 -0
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +53 -15
- package/dist/errors.js +18 -6
- package/dist/errors.js.map +1 -1
- package/dist/generated/abi/ComputeEngineImplementation.d.ts +2 -3
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs.map +1 -1
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.js.map +1 -1
- package/dist/generated/abi/DATFactoryImplementation.d.ts +2 -3
- package/dist/generated/abi/DATImplementation.d.ts +2 -3
- package/dist/generated/abi/DATPausableImplementation.d.ts +2 -3
- package/dist/generated/abi/DATVotesImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPPerformanceImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +2 -3
- package/dist/generated/abi/DLPRootImplementation.d.ts +1 -3
- package/dist/generated/abi/DLPTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +1 -3
- package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +2 -3
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs.map +1 -1
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +2 -3
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.js.map +1 -1
- package/dist/generated/abi/DataPortabilityServersImplementation.cjs.map +1 -1
- package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +2 -3
- package/dist/generated/abi/DataPortabilityServersImplementation.js.map +1 -1
- package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/DataRegistryImplementation.d.ts +2 -3
- package/dist/generated/abi/QueryEngineImplementation.d.ts +2 -3
- package/dist/generated/abi/SwapHelperImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +2 -3
- package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaEpochImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +2 -3
- package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +2 -3
- package/dist/generated/abi/index.d.ts +37 -39
- package/dist/generated/event-types.d.ts +9 -10
- package/dist/generated/eventRegistry.d.ts +3 -7
- package/dist/generated/server/server-exports.d.ts +19 -21
- package/dist/generated/server/server.cjs.map +1 -1
- package/dist/generated/server/server.d.ts +113 -87
- package/dist/generated/subgraph.cjs +797 -32
- package/dist/generated/subgraph.cjs.map +1 -1
- package/dist/generated/subgraph.d.ts +464 -332
- package/dist/generated/subgraph.js +792 -32
- package/dist/generated/subgraph.js.map +1 -1
- package/dist/index.browser.d.ts +47 -96
- package/dist/index.browser.js +12 -0
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +3 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/index.node.cjs +14 -3
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.ts +203 -87
- package/dist/index.node.js +14 -2
- package/dist/index.node.js.map +1 -1
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.ts +42 -2
- package/dist/node.js.map +1 -1
- package/dist/platform/browser-only.d.ts +5 -8
- package/dist/platform/browser-only.test.d.ts +1 -0
- package/dist/platform/browser-safe.d.ts +6 -9
- package/dist/platform/browser-safe.test.d.ts +1 -0
- package/dist/platform/browser.cjs +167 -8
- package/dist/platform/browser.cjs.map +1 -1
- package/dist/platform/browser.d.ts +235 -18
- package/dist/platform/browser.js +179 -29
- package/dist/platform/browser.js.map +1 -1
- package/dist/platform/browser.test.d.ts +1 -0
- package/dist/platform/index.d.ts +11 -5
- package/dist/platform/interface.cjs.map +1 -1
- package/dist/platform/interface.d.ts +289 -98
- package/dist/platform/node.cjs +163 -2
- package/dist/platform/node.cjs.map +1 -1
- package/dist/platform/node.d.ts +72 -13
- package/dist/platform/node.js +175 -21
- package/dist/platform/node.js.map +1 -1
- package/dist/platform/ports/openpgp-port.cjs +74 -0
- package/dist/platform/ports/openpgp-port.cjs.map +1 -0
- package/dist/platform/ports/openpgp-port.d.ts +13 -0
- package/dist/platform/ports/openpgp-port.js +59 -0
- package/dist/platform/ports/openpgp-port.js.map +1 -0
- package/dist/platform/ports/pgp-port.cjs +17 -0
- package/dist/platform/ports/pgp-port.cjs.map +1 -0
- package/dist/platform/ports/pgp-port.d.ts +35 -0
- package/dist/platform/ports/pgp-port.js +1 -0
- package/dist/platform/ports/pgp-port.js.map +1 -0
- package/dist/platform/shared/error-utils.d.ts +2 -4
- package/dist/platform/shared/pgp-utils.cjs +2 -2
- package/dist/platform/shared/pgp-utils.cjs.map +1 -1
- package/dist/platform/shared/pgp-utils.d.ts +3 -5
- package/dist/platform/shared/pgp-utils.js +2 -2
- package/dist/platform/shared/pgp-utils.js.map +1 -1
- package/dist/platform/shared/stream-utils.d.ts +1 -3
- package/dist/platform/utils.d.ts +6 -10
- package/dist/platform/utils.test.d.ts +1 -0
- package/dist/platform.browser.d.ts +9 -4
- package/dist/platform.d.ts +11 -5
- package/dist/platform.node.d.ts +10 -5
- package/dist/server/relayerHandler.cjs +337 -0
- package/dist/server/relayerHandler.cjs.map +1 -0
- package/dist/server/relayerHandler.d.ts +38 -0
- package/dist/server/relayerHandler.js +313 -0
- package/dist/server/relayerHandler.js.map +1 -0
- package/dist/storage/index.d.ts +56 -10
- package/dist/storage/manager.cjs +110 -27
- package/dist/storage/manager.cjs.map +1 -1
- package/dist/storage/manager.d.ts +121 -30
- package/dist/storage/manager.js +113 -37
- package/dist/storage/manager.js.map +1 -1
- package/dist/storage/providers/callback-storage.cjs +89 -18
- package/dist/storage/providers/callback-storage.cjs.map +1 -1
- package/dist/storage/providers/callback-storage.d.ts +111 -28
- package/dist/storage/providers/callback-storage.js +89 -18
- package/dist/storage/providers/callback-storage.js.map +1 -1
- package/dist/storage/providers/google-drive.cjs +2 -2
- package/dist/storage/providers/google-drive.cjs.map +1 -1
- package/dist/storage/providers/google-drive.d.ts +3 -7
- package/dist/storage/providers/google-drive.js +4 -7
- package/dist/storage/providers/google-drive.js.map +1 -1
- package/dist/storage/providers/google-drive.test.d.ts +1 -0
- package/dist/storage/providers/ipfs.cjs +5 -5
- package/dist/storage/providers/ipfs.cjs.map +1 -1
- package/dist/storage/providers/ipfs.d.ts +3 -6
- package/dist/storage/providers/ipfs.js +7 -10
- package/dist/storage/providers/ipfs.js.map +1 -1
- package/dist/storage/providers/pinata.cjs +6 -6
- package/dist/storage/providers/pinata.cjs.map +1 -1
- package/dist/storage/providers/pinata.d.ts +17 -22
- package/dist/storage/providers/pinata.js +8 -11
- package/dist/storage/providers/pinata.js.map +1 -1
- package/dist/storage/tests/callbackStorage.test.d.ts +1 -0
- package/dist/storage/tests/googleDriveStorage.test.d.ts +1 -0
- package/dist/storage/tests/ipfsStorage.test.d.ts +1 -0
- package/dist/storage/tests/pinataStorage.test.d.ts +1 -0
- package/dist/storage/tests/storageManager.test.d.ts +1 -0
- package/dist/tests/abi.test.d.ts +1 -0
- package/dist/tests/chains-definitions.test.d.ts +1 -0
- package/dist/tests/core-encryption.test.d.ts +1 -0
- package/dist/tests/core-extended.test.d.ts +1 -0
- package/dist/tests/core-generics-coverage.test.d.ts +1 -0
- package/dist/tests/coverage-boost.test.d.ts +1 -0
- package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +1 -0
- package/dist/tests/data-addfile-permissions-schema.test.d.ts +1 -0
- package/dist/tests/data-additional-methods.test.d.ts +1 -0
- package/dist/tests/data-controller-edge-cases.test.d.ts +1 -0
- package/dist/tests/data-ipfs-gateways.test.d.ts +1 -0
- package/dist/tests/data-relayer.test.d.ts +1 -0
- package/dist/tests/data-schema-validation.test.d.ts +1 -0
- package/dist/tests/data-simple-methods.test.d.ts +1 -0
- package/dist/tests/data.test.d.ts +1 -0
- package/dist/tests/demo-integration.test.d.ts +1 -0
- package/dist/tests/demo-trusted-server-integration.test.d.ts +1 -0
- package/dist/tests/download-relayer.test.d.ts +1 -0
- package/dist/tests/dual-mode-permissions.test.d.ts +1 -0
- package/dist/tests/dual-mode-trusted-servers.test.d.ts +1 -0
- package/dist/tests/encryption-correct-implementation.test.d.ts +1 -0
- package/dist/tests/encryption-coverage.test.d.ts +1 -0
- package/dist/tests/encryption-edge-cases.test.d.ts +1 -0
- package/dist/tests/encryption-utils-updated.test.d.ts +1 -0
- package/dist/tests/errors-coverage.test.d.ts +1 -0
- package/dist/tests/errors.test.d.ts +1 -0
- package/dist/tests/factories/mockFactory.d.ts +316 -0
- package/dist/tests/fakes/FakeStorageManager.d.ts +200 -0
- package/dist/tests/fakes/FakeStorageManager.test.d.ts +1 -0
- package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +170 -0
- package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +1 -0
- package/dist/tests/fakes/fake-pgp-port.d.ts +13 -0
- package/dist/tests/grantValidation-edge-cases.test.d.ts +1 -0
- package/dist/tests/grantValidation-unreachable-branch.test.d.ts +1 -0
- package/dist/tests/helper-methods.test.d.ts +1 -0
- package/dist/tests/helpers/platformTestHelpers.d.ts +106 -0
- package/dist/tests/helpers/typedMocks.d.ts +64 -0
- package/dist/tests/index-browser.test.d.ts +1 -0
- package/dist/tests/index-node.test.d.ts +1 -0
- package/dist/tests/index.test.d.ts +1 -0
- package/dist/tests/mocks/platformAdapter.d.ts +12 -0
- package/dist/tests/new-permissions-methods.test.d.ts +1 -0
- package/dist/tests/no-buffer-browser.test.d.ts +1 -0
- package/dist/tests/permissions-grantee.test.d.ts +1 -0
- package/dist/tests/permissions-revoke-relayer.test.d.ts +1 -0
- package/dist/tests/permissions-schema-validation.test.d.ts +1 -0
- package/dist/tests/permissions-server-files.test.d.ts +1 -0
- package/dist/tests/permissions-transaction-options.test.d.ts +1 -0
- package/dist/tests/permissions-trust-servers.test.d.ts +1 -0
- package/dist/tests/permissions.test.d.ts +1 -0
- package/dist/tests/personal.test.d.ts +1 -0
- package/dist/tests/platform-browser.test.d.ts +1 -0
- package/dist/tests/platform-crypto-expanded.test.d.ts +1 -0
- package/dist/tests/platform-crypto.test.d.ts +1 -0
- package/dist/tests/platform-index.test.d.ts +1 -0
- package/dist/tests/platform-node.test.d.ts +1 -0
- package/dist/tests/platform-shared-utils.test.d.ts +1 -0
- package/dist/tests/platform-updated.test.d.ts +1 -0
- package/dist/tests/protocol-additional-methods.test.d.ts +1 -0
- package/dist/tests/protocol.test.d.ts +1 -0
- package/dist/tests/read-only-mode.test.d.ts +1 -0
- package/dist/tests/relayer-integration.test.d.ts +1 -0
- package/dist/tests/relayer-unified.test.d.ts +1 -0
- package/dist/tests/schemas.test.d.ts +1 -0
- package/dist/tests/server-relayer-handler.test.d.ts +1 -0
- package/dist/tests/setup.d.ts +7 -0
- package/dist/tests/signatureFormatter.test.d.ts +1 -0
- package/dist/tests/trusted-server-queries.test.d.ts +1 -0
- package/dist/tests/typedDataConverter.test.d.ts +1 -0
- package/dist/tests/types-contracts.test.d.ts +1 -0
- package/dist/tests/types-data.test.d.ts +1 -0
- package/dist/tests/types-external-apis.test.d.ts +1 -0
- package/dist/tests/types-generics.test.d.ts +1 -0
- package/dist/tests/types-permissions.test.d.ts +1 -0
- package/dist/tests/types-upload-params.test.d.ts +1 -0
- package/dist/tests/types.test.d.ts +1 -0
- package/dist/tests/utils-formatters.test.d.ts +1 -0
- package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +1 -0
- package/dist/tests/utils-grantFiles-validation.test.d.ts +1 -0
- package/dist/tests/utils-grantFiles.test.d.ts +1 -0
- package/dist/tests/utils-grantValidation-consolidated.test.d.ts +1 -0
- package/dist/tests/utils-grants.test.d.ts +1 -0
- package/dist/tests/utils-ipfs-additional.test.d.ts +1 -0
- package/dist/tests/utils-ipfs.test.d.ts +4 -0
- package/dist/tests/utils-schemaValidation.test.d.ts +1 -0
- package/dist/tests/vana.test.d.ts +1 -0
- package/dist/tests/wallet-crypto-compatibility.test.d.ts +1 -0
- package/dist/types/blockchain.cjs.map +1 -1
- package/dist/types/blockchain.d.ts +46 -13
- package/dist/types/chains-additional.test.d.ts +1 -0
- package/dist/types/chains.cjs.map +1 -1
- package/dist/types/chains.d.ts +80 -16
- package/dist/types/chains.js.map +1 -1
- package/dist/types/config.cjs +10 -0
- package/dist/types/config.cjs.map +1 -1
- package/dist/types/config.d.ts +236 -242
- package/dist/types/config.js +8 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/contracts.cjs.map +1 -1
- package/dist/types/contracts.d.ts +79 -18
- package/dist/types/controller-context.cjs.map +1 -1
- package/dist/types/controller-context.d.ts +17 -21
- package/dist/types/data.cjs.map +1 -1
- package/dist/types/data.d.ts +111 -49
- package/dist/types/external-apis.d.ts +10 -12
- package/dist/types/generics.cjs.map +1 -1
- package/dist/types/generics.d.ts +116 -48
- package/dist/types/index.cjs +5 -4
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +47 -22
- package/dist/types/index.js +9 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/operations.cjs +2 -2
- package/dist/types/operations.cjs.map +1 -1
- package/dist/types/operations.d.ts +178 -32
- package/dist/types/operations.js +2 -2
- package/dist/types/operations.js.map +1 -1
- package/dist/types/options.cjs +17 -0
- package/dist/types/options.cjs.map +1 -0
- package/dist/types/options.d.ts +213 -0
- package/dist/types/options.js +1 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/permissions.cjs.map +1 -1
- package/dist/types/permissions.d.ts +72 -78
- package/dist/types/personal.cjs.map +1 -1
- package/dist/types/personal.d.ts +137 -22
- package/dist/types/relayer.cjs.map +1 -1
- package/dist/types/relayer.d.ts +293 -50
- package/dist/types/storage.cjs.map +1 -1
- package/dist/types/storage.d.ts +15 -29
- package/dist/types/storage.js +2 -5
- package/dist/types/storage.js.map +1 -1
- package/dist/types/transactionResults.d.ts +16 -18
- package/dist/types/utils.cjs.map +1 -1
- package/dist/types/utils.d.ts +20 -68
- package/dist/types.d.ts +4 -28
- package/dist/utils/__tests__/parseTransaction.test.d.ts +1 -0
- package/dist/utils/__tests__/pojo-serialization.test.d.ts +1 -0
- package/dist/utils/__tests__/signatureCache.test.d.ts +1 -0
- package/dist/utils/__tests__/subgraphConsistency.test.d.ts +4 -0
- package/dist/utils/__tests__/subgraphPagination.test.d.ts +4 -0
- package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +1 -0
- package/dist/utils/__tests__/transactionHelpers.test.d.ts +1 -0
- package/dist/utils/__tests__/urlResolver.test.d.ts +4 -0
- package/dist/utils/blockchain/registry.cjs +2 -2
- package/dist/utils/blockchain/registry.cjs.map +1 -1
- package/dist/utils/blockchain/registry.d.ts +6 -8
- package/dist/utils/blockchain/registry.js +2 -2
- package/dist/utils/blockchain/registry.js.map +1 -1
- package/dist/utils/blockchain/registry.test.d.ts +1 -0
- package/dist/utils/chainQuery.cjs +107 -0
- package/dist/utils/chainQuery.cjs.map +1 -0
- package/dist/utils/chainQuery.d.ts +31 -0
- package/dist/utils/chainQuery.js +82 -0
- package/dist/utils/chainQuery.js.map +1 -0
- package/dist/utils/crypto-utils.cjs +0 -12
- package/dist/utils/crypto-utils.cjs.map +1 -1
- package/dist/utils/crypto-utils.d.ts +9 -27
- package/dist/utils/crypto-utils.js +0 -11
- package/dist/utils/crypto-utils.js.map +1 -1
- package/dist/utils/crypto-utils.test.d.ts +1 -0
- package/dist/utils/download.cjs +3 -3
- package/dist/utils/download.cjs.map +1 -1
- package/dist/utils/download.d.ts +13 -14
- package/dist/utils/download.js +2 -2
- package/dist/utils/download.js.map +1 -1
- package/dist/utils/encoding.cjs +1 -1
- package/dist/utils/encoding.cjs.map +1 -1
- package/dist/utils/encoding.d.ts +4 -6
- package/dist/utils/encoding.js +1 -1
- package/dist/utils/encoding.js.map +1 -1
- package/dist/utils/encoding.test.d.ts +1 -0
- package/dist/utils/encryption.cjs +16 -10
- package/dist/utils/encryption.cjs.map +1 -1
- package/dist/utils/encryption.d.ts +13 -17
- package/dist/utils/encryption.js +16 -10
- package/dist/utils/encryption.js.map +1 -1
- package/dist/utils/formatters.cjs +4 -2
- package/dist/utils/formatters.cjs.map +1 -1
- package/dist/utils/formatters.d.ts +4 -6
- package/dist/utils/formatters.js +4 -2
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/grantFiles.cjs +7 -4
- package/dist/utils/grantFiles.cjs.map +1 -1
- package/dist/utils/grantFiles.d.ts +16 -30
- package/dist/utils/grantFiles.js +7 -4
- package/dist/utils/grantFiles.js.map +1 -1
- package/dist/utils/grantValidation.cjs +1 -1
- package/dist/utils/grantValidation.cjs.map +1 -1
- package/dist/utils/grantValidation.d.ts +109 -33
- package/dist/utils/grantValidation.js +1 -1
- package/dist/utils/grantValidation.js.map +1 -1
- package/dist/utils/grants.cjs +1 -1
- package/dist/utils/grants.cjs.map +1 -1
- package/dist/utils/grants.d.ts +101 -23
- package/dist/utils/grants.js +1 -1
- package/dist/utils/grants.js.map +1 -1
- package/dist/utils/ipfs.cjs +2 -4
- package/dist/utils/ipfs.cjs.map +1 -1
- package/dist/utils/ipfs.d.ts +8 -10
- package/dist/utils/ipfs.js +2 -4
- package/dist/utils/ipfs.js.map +1 -1
- package/dist/utils/lazy-import.cjs +4 -6
- package/dist/utils/lazy-import.cjs.map +1 -1
- package/dist/utils/lazy-import.d.ts +33 -10
- package/dist/utils/lazy-import.js +4 -6
- package/dist/utils/lazy-import.js.map +1 -1
- package/dist/utils/multicall.cjs +4 -2
- package/dist/utils/multicall.cjs.map +1 -1
- package/dist/utils/multicall.d.ts +5 -8
- package/dist/utils/multicall.js +4 -2
- package/dist/utils/multicall.js.map +1 -1
- package/dist/utils/parseTransactionPojo.cjs.map +1 -1
- package/dist/utils/parseTransactionPojo.d.ts +4 -10
- package/dist/utils/parseTransactionPojo.js.map +1 -1
- package/dist/utils/schemaValidation.cjs +5 -5
- package/dist/utils/schemaValidation.cjs.map +1 -1
- package/dist/utils/schemaValidation.d.ts +8 -12
- package/dist/utils/schemaValidation.js +7 -10
- package/dist/utils/schemaValidation.js.map +1 -1
- package/dist/utils/signatureCache.cjs +9 -4
- package/dist/utils/signatureCache.cjs.map +1 -1
- package/dist/utils/signatureCache.d.ts +53 -15
- package/dist/utils/signatureCache.js +12 -10
- package/dist/utils/signatureCache.js.map +1 -1
- package/dist/utils/signatureFormatter.cjs +6 -9
- package/dist/utils/signatureFormatter.cjs.map +1 -1
- package/dist/utils/signatureFormatter.d.ts +2 -5
- package/dist/utils/signatureFormatter.js +6 -9
- package/dist/utils/signatureFormatter.js.map +1 -1
- package/dist/utils/subgraphConsistency.cjs +184 -0
- package/dist/utils/subgraphConsistency.cjs.map +1 -0
- package/dist/utils/subgraphConsistency.d.ts +65 -0
- package/dist/utils/subgraphConsistency.js +155 -0
- package/dist/utils/subgraphConsistency.js.map +1 -0
- package/dist/utils/subgraphMetaCache.cjs +101 -0
- package/dist/utils/subgraphMetaCache.cjs.map +1 -0
- package/dist/utils/subgraphMetaCache.d.ts +56 -0
- package/dist/utils/subgraphMetaCache.js +76 -0
- package/dist/utils/subgraphMetaCache.js.map +1 -0
- package/dist/utils/subgraphPagination.cjs +104 -0
- package/dist/utils/subgraphPagination.cjs.map +1 -0
- package/dist/utils/subgraphPagination.d.ts +78 -0
- package/dist/utils/subgraphPagination.js +78 -0
- package/dist/utils/subgraphPagination.js.map +1 -0
- package/dist/utils/tests/multicall.test.d.ts +1 -0
- package/dist/utils/transactionHelpers.cjs.map +1 -1
- package/dist/utils/transactionHelpers.d.ts +17 -23
- package/dist/utils/transactionHelpers.js.map +1 -1
- package/dist/utils/typeGuards.cjs +109 -0
- package/dist/utils/typeGuards.cjs.map +1 -0
- package/dist/utils/typeGuards.d.ts +138 -0
- package/dist/utils/typeGuards.js +74 -0
- package/dist/utils/typeGuards.js.map +1 -0
- package/dist/utils/typedDataConverter.cjs.map +1 -1
- package/dist/utils/typedDataConverter.d.ts +42 -9
- package/dist/utils/typedDataConverter.js.map +1 -1
- package/dist/utils/urlResolver.cjs +8 -1
- package/dist/utils/urlResolver.cjs.map +1 -1
- package/dist/utils/urlResolver.d.ts +24 -8
- package/dist/utils/urlResolver.js +9 -2
- package/dist/utils/urlResolver.js.map +1 -1
- package/dist/utils/wallet.cjs +63 -0
- package/dist/utils/wallet.cjs.map +1 -0
- package/dist/utils/wallet.d.ts +94 -0
- package/dist/utils/wallet.js +37 -0
- package/dist/utils/wallet.js.map +1 -0
- package/dist/utils/withEvents.cjs.map +1 -1
- package/dist/utils/withEvents.d.ts +5 -12
- package/dist/utils/withEvents.js.map +1 -1
- package/package.json +24 -16
- package/dist/browser.d.cts +0 -2
- package/dist/chains/definitions.d.cts +0 -53
- package/dist/chains/index.d.cts +0 -2
- package/dist/chains.browser.cjs +0 -37
- package/dist/chains.browser.cjs.map +0 -1
- package/dist/chains.browser.d.cts +0 -2
- package/dist/chains.d.cts +0 -2
- package/dist/chains.node.d.cts +0 -2
- package/dist/config/addresses.d.cts +0 -401
- package/dist/config/chains.d.cts +0 -85
- package/dist/config/features.d.cts +0 -64
- package/dist/contracts/contractController.d.cts +0 -117
- package/dist/controllers/data.d.cts +0 -915
- package/dist/controllers/permissions.d.cts +0 -1383
- package/dist/controllers/protocol.d.cts +0 -188
- package/dist/controllers/schemas.d.cts +0 -260
- package/dist/controllers/server.d.cts +0 -230
- package/dist/core/apiClient.d.cts +0 -165
- package/dist/core/client.d.cts +0 -92
- package/dist/core/generics.d.cts +0 -120
- package/dist/core.d.cts +0 -493
- package/dist/crypto/ecies/__tests__/test-vectors.d.cts +0 -40
- package/dist/crypto/ecies/base.d.cts +0 -143
- package/dist/crypto/ecies/browser.d.cts +0 -48
- package/dist/crypto/ecies/constants.d.cts +0 -122
- package/dist/crypto/ecies/index.d.cts +0 -1
- package/dist/crypto/ecies/interface.d.cts +0 -176
- package/dist/crypto/ecies/node.d.cts +0 -50
- package/dist/crypto/ecies/test-vectors/eccrypto-vectors.d.cts +0 -76
- package/dist/crypto/ecies/test-vectors/eccrypto-vectors.d.ts +0 -76
- package/dist/crypto/ecies/utils.d.cts +0 -67
- package/dist/crypto/services/WalletKeyEncryptionService.d.cts +0 -92
- package/dist/diagnostics.d.cts +0 -26
- package/dist/errors.d.cts +0 -350
- package/dist/generated/abi/ComputeEngineImplementation.d.cts +0 -996
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.cts +0 -545
- package/dist/generated/abi/DATFactoryImplementation.d.cts +0 -661
- package/dist/generated/abi/DATImplementation.d.cts +0 -693
- package/dist/generated/abi/DATPausableImplementation.d.cts +0 -1145
- package/dist/generated/abi/DATVotesImplementation.d.cts +0 -1095
- package/dist/generated/abi/DLPPerformanceImplementation.d.cts +0 -883
- package/dist/generated/abi/DLPRegistryImplementation.d.cts +0 -1123
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.cts +0 -452
- package/dist/generated/abi/DLPRewardDeployerImplementation.d.cts +0 -714
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.cts +0 -452
- package/dist/generated/abi/DLPRewardSwapImplementation.d.cts +0 -706
- package/dist/generated/abi/DLPRootImplementation.d.cts +0 -1248
- package/dist/generated/abi/DLPTreasuryImplementation.d.cts +0 -452
- package/dist/generated/abi/DataLiquidityPoolImplementation.d.cts +0 -737
- package/dist/generated/abi/DataPortabilityGranteesImplementation.d.cts +0 -661
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.cts +0 -989
- package/dist/generated/abi/DataPortabilityServersImplementation.d.cts +0 -1086
- package/dist/generated/abi/DataRefinerRegistryImplementation.d.cts +0 -737
- package/dist/generated/abi/DataRegistryImplementation.d.cts +0 -1014
- package/dist/generated/abi/QueryEngineImplementation.d.cts +0 -1001
- package/dist/generated/abi/SwapHelperImplementation.d.cts +0 -764
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolImplementation.d.cts +0 -993
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.cts +0 -701
- package/dist/generated/abi/TeePoolPhalaImplementation.d.cts +0 -993
- package/dist/generated/abi/VanaEpochImplementation.d.cts +0 -900
- package/dist/generated/abi/VanaPoolEntityImplementation.d.cts +0 -934
- package/dist/generated/abi/VanaPoolStakingImplementation.d.cts +0 -693
- package/dist/generated/abi/VanaPoolTreasuryImplementation.d.cts +0 -394
- package/dist/generated/abi/index.d.cts +0 -26547
- package/dist/generated/event-types.d.cts +0 -855
- package/dist/generated/eventRegistry.d.cts +0 -18
- package/dist/generated/server/server-exports.d.cts +0 -21
- package/dist/generated/server/server.d.cts +0 -512
- package/dist/generated/subgraph.d.cts +0 -5981
- package/dist/index.browser.cjs +0 -151
- package/dist/index.browser.cjs.map +0 -1
- package/dist/index.browser.d.cts +0 -201
- package/dist/index.d.cts +0 -2
- package/dist/index.node.d.cts +0 -87
- package/dist/node.d.cts +0 -2
- package/dist/platform/browser-only.d.cts +0 -25
- package/dist/platform/browser-safe.d.cts +0 -32
- package/dist/platform/browser.d.cts +0 -74
- package/dist/platform/index.d.cts +0 -5
- package/dist/platform/interface.d.cts +0 -218
- package/dist/platform/node.d.cts +0 -27
- package/dist/platform/shared/error-utils.d.cts +0 -25
- package/dist/platform/shared/pgp-utils.d.cts +0 -61
- package/dist/platform/shared/stream-utils.d.cts +0 -16
- package/dist/platform/utils.d.cts +0 -53
- package/dist/platform.browser.cjs +0 -41
- package/dist/platform.browser.cjs.map +0 -1
- package/dist/platform.browser.d.cts +0 -4
- package/dist/platform.d.cts +0 -5
- package/dist/platform.node.d.cts +0 -5
- package/dist/schemas/dataSchema.schema.d.cts +0 -88
- package/dist/schemas/dataSchema.schema.d.ts +0 -88
- package/dist/schemas/grantFile.schema.d.cts +0 -57
- package/dist/schemas/grantFile.schema.d.ts +0 -57
- package/dist/server/handler.cjs +0 -101
- package/dist/server/handler.cjs.map +0 -1
- package/dist/server/handler.d.cts +0 -306
- package/dist/server/handler.d.ts +0 -306
- package/dist/server/handler.js +0 -77
- package/dist/server/handler.js.map +0 -1
- package/dist/storage/index.d.cts +0 -10
- package/dist/storage/manager.d.cts +0 -150
- package/dist/storage/providers/callback-storage.d.cts +0 -100
- package/dist/storage/providers/google-drive.d.cts +0 -156
- package/dist/storage/providers/ipfs.d.cts +0 -163
- package/dist/storage/providers/pinata.d.cts +0 -173
- package/dist/types/blockchain.d.cts +0 -52
- package/dist/types/chains.d.cts +0 -34
- package/dist/types/config.d.cts +0 -726
- package/dist/types/contracts.d.cts +0 -68
- package/dist/types/controller-context.d.cts +0 -71
- package/dist/types/data.d.cts +0 -694
- package/dist/types/eccrypto-js.d.d.cts +0 -13
- package/dist/types/eccrypto-js.d.d.ts +0 -13
- package/dist/types/external-apis.d.cts +0 -186
- package/dist/types/generics.d.cts +0 -450
- package/dist/types/index.d.cts +0 -22
- package/dist/types/operations.d.cts +0 -116
- package/dist/types/permissions.d.cts +0 -957
- package/dist/types/personal.d.cts +0 -40
- package/dist/types/relayer.d.cts +0 -284
- package/dist/types/storage.d.cts +0 -131
- package/dist/types/transactionResults.d.cts +0 -195
- package/dist/types/utils.d.cts +0 -819
- package/dist/types.d.cts +0 -54
- package/dist/utils/blockchain/registry.d.cts +0 -34
- package/dist/utils/crypto-utils.d.cts +0 -118
- package/dist/utils/download.d.cts +0 -41
- package/dist/utils/encoding.d.cts +0 -54
- package/dist/utils/encryption.d.cts +0 -275
- package/dist/utils/formatters.d.cts +0 -120
- package/dist/utils/grantFiles.d.cts +0 -186
- package/dist/utils/grantValidation.d.cts +0 -150
- package/dist/utils/grants.d.cts +0 -70
- package/dist/utils/ipfs.d.cts +0 -90
- package/dist/utils/lazy-import.d.cts +0 -20
- package/dist/utils/multicall.d.cts +0 -129
- package/dist/utils/parseTransactionPojo.d.cts +0 -37
- package/dist/utils/schemaValidation.d.cts +0 -172
- package/dist/utils/signatureCache.d.cts +0 -134
- package/dist/utils/signatureFormatter.d.cts +0 -39
- package/dist/utils/transactionHelpers.d.cts +0 -86
- package/dist/utils/typedDataConverter.d.cts +0 -13
- package/dist/utils/urlResolver.d.cts +0 -40
- package/dist/utils/withEvents.d.cts +0 -63
|
@@ -1,36 +1,184 @@
|
|
|
1
|
-
import { VanaPlatformAdapter, VanaCryptoAdapter, VanaPGPAdapter, VanaHttpAdapter, VanaCacheAdapter } from './interface.js';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
2
|
+
* Provides browser-specific implementations of platform abstraction interfaces.
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* This module implements all platform-specific operations for browser environments,
|
|
6
|
+
* using native Web APIs and browser-compatible libraries. It avoids Node.js-specific
|
|
7
|
+
* dependencies like Buffer, using Uint8Array and viem utilities instead. Supports
|
|
8
|
+
* both standard eccrypto and custom ECIES implementations based on feature flags.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* // Use the browser platform adapter
|
|
13
|
+
* import { BrowserPlatformAdapter } from '@vana-sdk/platform/browser';
|
|
14
|
+
*
|
|
15
|
+
* const adapter = new BrowserPlatformAdapter();
|
|
16
|
+
*
|
|
17
|
+
* // Encrypt data with public key
|
|
18
|
+
* const encrypted = await adapter.crypto.encryptWithPublicKey(
|
|
19
|
+
* 'sensitive data',
|
|
20
|
+
* '0x04...' // Public key hex
|
|
21
|
+
* );
|
|
22
|
+
*
|
|
23
|
+
* // Use sessionStorage-backed cache
|
|
24
|
+
* adapter.cache.set('temp_key', 'cached_value');
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @category Platform
|
|
28
|
+
* @module platform/browser
|
|
8
29
|
*/
|
|
9
|
-
|
|
30
|
+
import type { VanaPlatformAdapter, VanaCryptoAdapter, VanaPGPAdapter, VanaHttpAdapter, VanaCacheAdapter } from "./interface";
|
|
10
31
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
32
|
+
* Implements cryptographic operations for browser environments.
|
|
33
|
+
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* Provides ECIES encryption/decryption, key generation, and password-based
|
|
36
|
+
* encryption using either eccrypto-js or a custom ECIES implementation.
|
|
37
|
+
* Uses Uint8Array and viem utilities for browser compatibility.
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
13
40
|
*/
|
|
14
41
|
declare class BrowserCryptoAdapter implements VanaCryptoAdapter {
|
|
15
42
|
private customEciesProvider;
|
|
16
43
|
private customWalletService;
|
|
44
|
+
/**
|
|
45
|
+
* Encrypts data using ECIES with a public key.
|
|
46
|
+
*
|
|
47
|
+
* @param data - The plaintext string to encrypt.
|
|
48
|
+
* Typically user data or sensitive information.
|
|
49
|
+
* @param publicKeyHex - The recipient's public key in hex format.
|
|
50
|
+
* Can include or omit the '0x' prefix.
|
|
51
|
+
* @returns Encrypted data as a hex string without '0x' prefix
|
|
52
|
+
*
|
|
53
|
+
* @throws {Error} If encryption fails or public key is invalid
|
|
54
|
+
*/
|
|
17
55
|
encryptWithPublicKey(data: string, publicKeyHex: string): Promise<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Decrypts ECIES-encrypted data using a private key.
|
|
58
|
+
*
|
|
59
|
+
* @param encryptedData - Hex string containing encrypted data.
|
|
60
|
+
* Can include or omit the '0x' prefix.
|
|
61
|
+
* @param privateKeyHex - The private key in hex format.
|
|
62
|
+
* Must correspond to the public key used for encryption.
|
|
63
|
+
* @returns The decrypted plaintext string
|
|
64
|
+
*
|
|
65
|
+
* @throws {Error} If decryption fails or MAC verification fails
|
|
66
|
+
*/
|
|
18
67
|
decryptWithPrivateKey(encryptedData: string, privateKeyHex: string): Promise<string>;
|
|
68
|
+
/**
|
|
69
|
+
* Encrypts data using a wallet's public key.
|
|
70
|
+
*
|
|
71
|
+
* @param data - The plaintext string to encrypt.
|
|
72
|
+
* Typically permission data or DLP metadata.
|
|
73
|
+
* @param publicKey - The wallet's public key.
|
|
74
|
+
* Automatically handles compressed/uncompressed formats.
|
|
75
|
+
* @returns Encrypted data as a hex string
|
|
76
|
+
*
|
|
77
|
+
* @throws {Error} If encryption fails or key processing fails
|
|
78
|
+
*/
|
|
19
79
|
encryptWithWalletPublicKey(data: string, publicKey: string): Promise<string>;
|
|
80
|
+
/**
|
|
81
|
+
* Decrypts data using a wallet's private key.
|
|
82
|
+
*
|
|
83
|
+
* @param encryptedData - Hex string containing encrypted data.
|
|
84
|
+
* Must be encrypted with corresponding wallet public key.
|
|
85
|
+
* @param privateKey - The wallet's private key.
|
|
86
|
+
* Obtain from wallet connection (handle with care).
|
|
87
|
+
* @returns The decrypted plaintext string
|
|
88
|
+
*
|
|
89
|
+
* @throws {Error} If decryption fails or key is invalid
|
|
90
|
+
*/
|
|
20
91
|
decryptWithWalletPrivateKey(encryptedData: string, privateKey: string): Promise<string>;
|
|
92
|
+
/**
|
|
93
|
+
* Generates a new secp256k1 key pair for ECIES operations.
|
|
94
|
+
*
|
|
95
|
+
* @returns Object containing hex-encoded public and private keys
|
|
96
|
+
* @returns returns.privateKey - Private key in hex format without '0x'
|
|
97
|
+
* @returns returns.publicKey - Compressed public key in hex format without '0x'
|
|
98
|
+
*
|
|
99
|
+
* @throws {Error} If key generation fails
|
|
100
|
+
*/
|
|
21
101
|
generateKeyPair(): Promise<{
|
|
22
102
|
privateKey: string;
|
|
23
103
|
publicKey: string;
|
|
24
104
|
}>;
|
|
105
|
+
/**
|
|
106
|
+
* Encrypts binary data using password-based encryption.
|
|
107
|
+
*
|
|
108
|
+
* @param data - Binary data to encrypt.
|
|
109
|
+
* Typically file contents or serialized objects.
|
|
110
|
+
* @param password - Password for encryption.
|
|
111
|
+
* Often derived from wallet signatures.
|
|
112
|
+
* @returns Encrypted data as Uint8Array
|
|
113
|
+
*
|
|
114
|
+
* @remarks
|
|
115
|
+
* Uses OpenPGP for password-based encryption with automatic
|
|
116
|
+
* salt generation for security.
|
|
117
|
+
*
|
|
118
|
+
* @throws {Error} If encryption fails
|
|
119
|
+
*/
|
|
25
120
|
encryptWithPassword(data: Uint8Array, password: string): Promise<Uint8Array>;
|
|
121
|
+
/**
|
|
122
|
+
* Decrypts password-encrypted binary data.
|
|
123
|
+
*
|
|
124
|
+
* @param encryptedData - Password-encrypted data as Uint8Array.
|
|
125
|
+
* Must be encrypted with the same password.
|
|
126
|
+
* @param password - Password for decryption.
|
|
127
|
+
* Must match the encryption password.
|
|
128
|
+
* @returns Decrypted data as Uint8Array
|
|
129
|
+
*
|
|
130
|
+
* @throws {Error} If decryption fails or password is incorrect
|
|
131
|
+
*/
|
|
26
132
|
decryptWithPassword(encryptedData: Uint8Array, password: string): Promise<Uint8Array>;
|
|
27
133
|
}
|
|
28
134
|
/**
|
|
29
|
-
*
|
|
135
|
+
* Implements PGP operations for browser environments.
|
|
136
|
+
*
|
|
137
|
+
* @remarks
|
|
138
|
+
* Provides PGP encryption, decryption, and key generation using the OpenPGP.js
|
|
139
|
+
* library with browser-optimized configuration.
|
|
140
|
+
*
|
|
141
|
+
* @internal
|
|
30
142
|
*/
|
|
31
143
|
declare class BrowserPGPAdapter implements VanaPGPAdapter {
|
|
144
|
+
/**
|
|
145
|
+
* Encrypts data using PGP public key encryption.
|
|
146
|
+
*
|
|
147
|
+
* @param data - The plaintext string to encrypt.
|
|
148
|
+
* Typically messages or structured data.
|
|
149
|
+
* @param publicKeyArmored - ASCII-armored PGP public key.
|
|
150
|
+
* Obtain from PGP key generation or key servers.
|
|
151
|
+
* @returns ASCII-armored encrypted message
|
|
152
|
+
*
|
|
153
|
+
* @throws {Error} If encryption fails or public key is invalid
|
|
154
|
+
*/
|
|
32
155
|
encrypt(data: string, publicKeyArmored: string): Promise<string>;
|
|
156
|
+
/**
|
|
157
|
+
* Decrypts PGP-encrypted data using a private key.
|
|
158
|
+
*
|
|
159
|
+
* @param encryptedData - ASCII-armored encrypted message.
|
|
160
|
+
* Must be encrypted with corresponding public key.
|
|
161
|
+
* @param privateKeyArmored - ASCII-armored PGP private key.
|
|
162
|
+
* Must correspond to the public key used for encryption.
|
|
163
|
+
* @returns The decrypted plaintext string
|
|
164
|
+
*
|
|
165
|
+
* @throws {Error} If decryption fails or private key is invalid
|
|
166
|
+
*/
|
|
33
167
|
decrypt(encryptedData: string, privateKeyArmored: string): Promise<string>;
|
|
168
|
+
/**
|
|
169
|
+
* Generates a new PGP key pair.
|
|
170
|
+
*
|
|
171
|
+
* @param options - Key generation options
|
|
172
|
+
* @param options.name - Name for the key identity.
|
|
173
|
+
* Defaults to 'Vana User'.
|
|
174
|
+
* @param options.email - Email for the key identity.
|
|
175
|
+
* Defaults to 'user@vana.com'.
|
|
176
|
+
* @param options.passphrase - Passphrase to protect the private key.
|
|
177
|
+
* If not provided, key is unprotected.
|
|
178
|
+
* @returns ASCII-armored public and private keys
|
|
179
|
+
*
|
|
180
|
+
* @throws {Error} If key generation fails
|
|
181
|
+
*/
|
|
34
182
|
generateKeyPair(options?: {
|
|
35
183
|
name?: string;
|
|
36
184
|
email?: string;
|
|
@@ -41,34 +189,103 @@ declare class BrowserPGPAdapter implements VanaPGPAdapter {
|
|
|
41
189
|
}>;
|
|
42
190
|
}
|
|
43
191
|
/**
|
|
44
|
-
*
|
|
192
|
+
* Implements HTTP operations for browser environments.
|
|
193
|
+
*
|
|
194
|
+
* @remarks
|
|
195
|
+
* Uses the native Fetch API available in all modern browsers.
|
|
196
|
+
*
|
|
197
|
+
* @internal
|
|
45
198
|
*/
|
|
46
199
|
declare class BrowserHttpAdapter implements VanaHttpAdapter {
|
|
200
|
+
/**
|
|
201
|
+
* Performs an HTTP request using the Fetch API.
|
|
202
|
+
*
|
|
203
|
+
* @param url - The URL to fetch.
|
|
204
|
+
* Must be a valid HTTP/HTTPS URL.
|
|
205
|
+
* @param options - Standard fetch options.
|
|
206
|
+
* See MDN fetch documentation for details.
|
|
207
|
+
* @returns Standard fetch Response object
|
|
208
|
+
*/
|
|
47
209
|
fetch(url: string, options?: RequestInit): Promise<Response>;
|
|
48
210
|
}
|
|
49
211
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
212
|
+
* Implements secure caching for browser environments.
|
|
213
|
+
*
|
|
214
|
+
* @remarks
|
|
215
|
+
* Uses sessionStorage for temporary caching that's automatically cleared
|
|
216
|
+
* when the browser tab closes. This provides better security for sensitive
|
|
217
|
+
* data like signatures compared to localStorage. All keys are prefixed to
|
|
218
|
+
* avoid conflicts with other applications.
|
|
219
|
+
*
|
|
220
|
+
* @internal
|
|
52
221
|
*/
|
|
53
222
|
declare class BrowserCacheAdapter implements VanaCacheAdapter {
|
|
54
223
|
private readonly prefix;
|
|
224
|
+
/**
|
|
225
|
+
* Retrieves a cached value by key.
|
|
226
|
+
*
|
|
227
|
+
* @param key - The cache key to look up.
|
|
228
|
+
* Automatically prefixed to avoid conflicts.
|
|
229
|
+
* @returns The cached value or null if not found
|
|
230
|
+
*/
|
|
55
231
|
get(key: string): string | null;
|
|
232
|
+
/**
|
|
233
|
+
* Stores a value in sessionStorage.
|
|
234
|
+
*
|
|
235
|
+
* @param key - The cache key.
|
|
236
|
+
* Automatically prefixed with 'vana_cache_'.
|
|
237
|
+
* @param value - The value to cache.
|
|
238
|
+
* Will be cleared when tab closes.
|
|
239
|
+
*/
|
|
56
240
|
set(key: string, value: string): void;
|
|
241
|
+
/**
|
|
242
|
+
* Removes a specific key from the cache.
|
|
243
|
+
*
|
|
244
|
+
* @param key - The cache key to remove.
|
|
245
|
+
* Only removes the prefixed key.
|
|
246
|
+
*/
|
|
57
247
|
delete(key: string): void;
|
|
248
|
+
/**
|
|
249
|
+
* Clears all Vana-prefixed cache entries.
|
|
250
|
+
*
|
|
251
|
+
* @remarks
|
|
252
|
+
* Only removes entries with the 'vana_cache_' prefix,
|
|
253
|
+
* preserving other sessionStorage data.
|
|
254
|
+
*/
|
|
58
255
|
clear(): void;
|
|
59
256
|
}
|
|
60
257
|
/**
|
|
61
|
-
*
|
|
258
|
+
* Provides complete platform abstraction for browser environments.
|
|
259
|
+
*
|
|
260
|
+
* @remarks
|
|
261
|
+
* This adapter aggregates all browser-specific implementations of platform
|
|
262
|
+
* operations. It uses native Web APIs where possible and browser-compatible
|
|
263
|
+
* libraries for crypto and PGP operations. The adapter automatically selects
|
|
264
|
+
* appropriate cryptographic implementations based on feature flags.
|
|
265
|
+
*
|
|
266
|
+
* @example
|
|
267
|
+
* ```typescript
|
|
268
|
+
* // Create a browser adapter instance
|
|
269
|
+
* const adapter = new BrowserPlatformAdapter();
|
|
270
|
+
*
|
|
271
|
+
* // All platform operations are available
|
|
272
|
+
* const encrypted = await adapter.crypto.encryptWithPublicKey(
|
|
273
|
+
* 'secret',
|
|
274
|
+
* publicKey
|
|
275
|
+
* );
|
|
276
|
+
*
|
|
277
|
+
* const response = await adapter.http.fetch('/api/data');
|
|
278
|
+
*
|
|
279
|
+
* adapter.cache.set('key', 'value'); // Uses sessionStorage
|
|
280
|
+
* ```
|
|
62
281
|
*
|
|
63
|
-
*
|
|
64
|
-
* without requiring any Node.js polyfills.
|
|
282
|
+
* @category Platform
|
|
65
283
|
*/
|
|
66
|
-
declare class BrowserPlatformAdapter implements VanaPlatformAdapter {
|
|
284
|
+
export declare class BrowserPlatformAdapter implements VanaPlatformAdapter {
|
|
67
285
|
readonly crypto: BrowserCryptoAdapter;
|
|
68
286
|
readonly pgp: BrowserPGPAdapter;
|
|
69
287
|
readonly http: BrowserHttpAdapter;
|
|
70
288
|
readonly cache: BrowserCacheAdapter;
|
|
71
289
|
readonly platform: "browser";
|
|
72
290
|
}
|
|
73
|
-
|
|
74
|
-
export { BrowserPlatformAdapter };
|
|
291
|
+
export {};
|
package/dist/platform/browser.js
CHANGED
|
@@ -1,26 +1,31 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
1
|
import { getPGPKeyGenParams } from "./shared/pgp-utils";
|
|
5
2
|
import { wrapCryptoError } from "./shared/error-utils";
|
|
6
3
|
import { lazyImport } from "../utils/lazy-import";
|
|
7
4
|
import { WalletKeyEncryptionService } from "../crypto/services/WalletKeyEncryptionService";
|
|
8
5
|
import { parseEncryptedDataBuffer } from "../utils/crypto-utils";
|
|
9
|
-
import { toHex, fromHex, stringToBytes, bytesToString } from "viem";
|
|
10
|
-
import { concatBytes } from "../crypto/ecies/utils";
|
|
6
|
+
import { toHex, fromHex, stringToBytes, bytesToString, concat } from "viem";
|
|
11
7
|
import * as secp256k1 from "@noble/secp256k1";
|
|
12
8
|
import { features } from "../config/features";
|
|
13
9
|
import { BrowserECIESUint8Provider } from "../crypto/ecies/browser";
|
|
14
10
|
const getOpenPGP = lazyImport(() => import("openpgp"));
|
|
15
11
|
const getEccryptoJS = lazyImport(() => import("eccrypto-js"));
|
|
16
12
|
class BrowserCryptoAdapter {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
// Initialize both providers - only one will be used based on feature flag
|
|
14
|
+
customEciesProvider = new BrowserECIESUint8Provider();
|
|
15
|
+
customWalletService = new WalletKeyEncryptionService({
|
|
16
|
+
eciesProvider: this.customEciesProvider
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Encrypts data using ECIES with a public key.
|
|
20
|
+
*
|
|
21
|
+
* @param data - The plaintext string to encrypt.
|
|
22
|
+
* Typically user data or sensitive information.
|
|
23
|
+
* @param publicKeyHex - The recipient's public key in hex format.
|
|
24
|
+
* Can include or omit the '0x' prefix.
|
|
25
|
+
* @returns Encrypted data as a hex string without '0x' prefix
|
|
26
|
+
*
|
|
27
|
+
* @throws {Error} If encryption fails or public key is invalid
|
|
28
|
+
*/
|
|
24
29
|
async encryptWithPublicKey(data, publicKeyHex) {
|
|
25
30
|
try {
|
|
26
31
|
if (features.useCustomECIES) {
|
|
@@ -30,18 +35,21 @@ class BrowserCryptoAdapter {
|
|
|
30
35
|
publicKeyBytes,
|
|
31
36
|
stringToBytes(data)
|
|
32
37
|
);
|
|
33
|
-
const result =
|
|
38
|
+
const result = concat([
|
|
34
39
|
encrypted.iv,
|
|
35
40
|
encrypted.ephemPublicKey,
|
|
36
41
|
encrypted.ciphertext,
|
|
37
42
|
encrypted.mac
|
|
38
|
-
);
|
|
43
|
+
]);
|
|
39
44
|
return toHex(result).slice(2);
|
|
40
45
|
} else {
|
|
41
46
|
const eccryptojs = await getEccryptoJS();
|
|
42
47
|
const cleanKey = publicKeyHex.startsWith("0x") ? publicKeyHex.slice(2) : publicKeyHex;
|
|
43
48
|
const publicKeyBytes = Buffer.from(cleanKey, "hex");
|
|
44
|
-
const
|
|
49
|
+
const uncompressed = this.customEciesProvider.normalizeToUncompressed(
|
|
50
|
+
new Uint8Array(publicKeyBytes)
|
|
51
|
+
);
|
|
52
|
+
const publicKeyBuffer = Buffer.from(uncompressed);
|
|
45
53
|
const message = Buffer.from(data, "utf8");
|
|
46
54
|
const encrypted = await eccryptojs.encrypt(publicKeyBuffer, message);
|
|
47
55
|
const result = Buffer.concat([
|
|
@@ -56,6 +64,17 @@ class BrowserCryptoAdapter {
|
|
|
56
64
|
throw wrapCryptoError("encryptWithPublicKey", error);
|
|
57
65
|
}
|
|
58
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Decrypts ECIES-encrypted data using a private key.
|
|
69
|
+
*
|
|
70
|
+
* @param encryptedData - Hex string containing encrypted data.
|
|
71
|
+
* Can include or omit the '0x' prefix.
|
|
72
|
+
* @param privateKeyHex - The private key in hex format.
|
|
73
|
+
* Must correspond to the public key used for encryption.
|
|
74
|
+
* @returns The decrypted plaintext string
|
|
75
|
+
*
|
|
76
|
+
* @throws {Error} If decryption fails or MAC verification fails
|
|
77
|
+
*/
|
|
59
78
|
async decryptWithPrivateKey(encryptedData, privateKeyHex) {
|
|
60
79
|
try {
|
|
61
80
|
if (features.useCustomECIES) {
|
|
@@ -86,6 +105,17 @@ class BrowserCryptoAdapter {
|
|
|
86
105
|
throw wrapCryptoError("decryptWithPrivateKey", error);
|
|
87
106
|
}
|
|
88
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Encrypts data using a wallet's public key.
|
|
110
|
+
*
|
|
111
|
+
* @param data - The plaintext string to encrypt.
|
|
112
|
+
* Typically permission data or DLP metadata.
|
|
113
|
+
* @param publicKey - The wallet's public key.
|
|
114
|
+
* Automatically handles compressed/uncompressed formats.
|
|
115
|
+
* @returns Encrypted data as a hex string
|
|
116
|
+
*
|
|
117
|
+
* @throws {Error} If encryption fails or key processing fails
|
|
118
|
+
*/
|
|
89
119
|
async encryptWithWalletPublicKey(data, publicKey) {
|
|
90
120
|
try {
|
|
91
121
|
if (features.useCustomECIES) {
|
|
@@ -97,7 +127,10 @@ class BrowserCryptoAdapter {
|
|
|
97
127
|
const eccryptojs = await getEccryptoJS();
|
|
98
128
|
const cleanKey = publicKey.startsWith("0x") ? publicKey.slice(2) : publicKey;
|
|
99
129
|
const publicKeyBytes = Buffer.from(cleanKey, "hex");
|
|
100
|
-
const
|
|
130
|
+
const uncompressed = this.customEciesProvider.normalizeToUncompressed(
|
|
131
|
+
new Uint8Array(publicKeyBytes)
|
|
132
|
+
);
|
|
133
|
+
const publicKeyBuffer = Buffer.from(uncompressed);
|
|
101
134
|
const message = Buffer.from(data, "utf8");
|
|
102
135
|
const encrypted = await eccryptojs.encrypt(publicKeyBuffer, message);
|
|
103
136
|
const result = Buffer.concat([
|
|
@@ -112,6 +145,17 @@ class BrowserCryptoAdapter {
|
|
|
112
145
|
throw wrapCryptoError("encryptWithWalletPublicKey", error);
|
|
113
146
|
}
|
|
114
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Decrypts data using a wallet's private key.
|
|
150
|
+
*
|
|
151
|
+
* @param encryptedData - Hex string containing encrypted data.
|
|
152
|
+
* Must be encrypted with corresponding wallet public key.
|
|
153
|
+
* @param privateKey - The wallet's private key.
|
|
154
|
+
* Obtain from wallet connection (handle with care).
|
|
155
|
+
* @returns The decrypted plaintext string
|
|
156
|
+
*
|
|
157
|
+
* @throws {Error} If decryption fails or key is invalid
|
|
158
|
+
*/
|
|
115
159
|
async decryptWithWalletPrivateKey(encryptedData, privateKey) {
|
|
116
160
|
try {
|
|
117
161
|
if (features.useCustomECIES) {
|
|
@@ -136,6 +180,15 @@ class BrowserCryptoAdapter {
|
|
|
136
180
|
throw wrapCryptoError("decryptWithWalletPrivateKey", error);
|
|
137
181
|
}
|
|
138
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Generates a new secp256k1 key pair for ECIES operations.
|
|
185
|
+
*
|
|
186
|
+
* @returns Object containing hex-encoded public and private keys
|
|
187
|
+
* @returns returns.privateKey - Private key in hex format without '0x'
|
|
188
|
+
* @returns returns.publicKey - Compressed public key in hex format without '0x'
|
|
189
|
+
*
|
|
190
|
+
* @throws {Error} If key generation fails
|
|
191
|
+
*/
|
|
139
192
|
async generateKeyPair() {
|
|
140
193
|
try {
|
|
141
194
|
if (features.useCustomECIES) {
|
|
@@ -158,6 +211,21 @@ class BrowserCryptoAdapter {
|
|
|
158
211
|
throw wrapCryptoError("generateKeyPair", error);
|
|
159
212
|
}
|
|
160
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Encrypts binary data using password-based encryption.
|
|
216
|
+
*
|
|
217
|
+
* @param data - Binary data to encrypt.
|
|
218
|
+
* Typically file contents or serialized objects.
|
|
219
|
+
* @param password - Password for encryption.
|
|
220
|
+
* Often derived from wallet signatures.
|
|
221
|
+
* @returns Encrypted data as Uint8Array
|
|
222
|
+
*
|
|
223
|
+
* @remarks
|
|
224
|
+
* Uses OpenPGP for password-based encryption with automatic
|
|
225
|
+
* salt generation for security.
|
|
226
|
+
*
|
|
227
|
+
* @throws {Error} If encryption fails
|
|
228
|
+
*/
|
|
161
229
|
async encryptWithPassword(data, password) {
|
|
162
230
|
try {
|
|
163
231
|
const openpgp = await getOpenPGP();
|
|
@@ -172,6 +240,17 @@ class BrowserCryptoAdapter {
|
|
|
172
240
|
throw wrapCryptoError("encryptWithPassword", error);
|
|
173
241
|
}
|
|
174
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Decrypts password-encrypted binary data.
|
|
245
|
+
*
|
|
246
|
+
* @param encryptedData - Password-encrypted data as Uint8Array.
|
|
247
|
+
* Must be encrypted with the same password.
|
|
248
|
+
* @param password - Password for decryption.
|
|
249
|
+
* Must match the encryption password.
|
|
250
|
+
* @returns Decrypted data as Uint8Array
|
|
251
|
+
*
|
|
252
|
+
* @throws {Error} If decryption fails or password is incorrect
|
|
253
|
+
*/
|
|
175
254
|
async decryptWithPassword(encryptedData, password) {
|
|
176
255
|
try {
|
|
177
256
|
const openpgp = await getOpenPGP();
|
|
@@ -190,6 +269,17 @@ class BrowserCryptoAdapter {
|
|
|
190
269
|
}
|
|
191
270
|
}
|
|
192
271
|
class BrowserPGPAdapter {
|
|
272
|
+
/**
|
|
273
|
+
* Encrypts data using PGP public key encryption.
|
|
274
|
+
*
|
|
275
|
+
* @param data - The plaintext string to encrypt.
|
|
276
|
+
* Typically messages or structured data.
|
|
277
|
+
* @param publicKeyArmored - ASCII-armored PGP public key.
|
|
278
|
+
* Obtain from PGP key generation or key servers.
|
|
279
|
+
* @returns ASCII-armored encrypted message
|
|
280
|
+
*
|
|
281
|
+
* @throws {Error} If encryption fails or public key is invalid
|
|
282
|
+
*/
|
|
193
283
|
async encrypt(data, publicKeyArmored) {
|
|
194
284
|
try {
|
|
195
285
|
const openpgp = await getOpenPGP();
|
|
@@ -203,9 +293,20 @@ class BrowserPGPAdapter {
|
|
|
203
293
|
});
|
|
204
294
|
return encrypted;
|
|
205
295
|
} catch (error) {
|
|
206
|
-
throw new Error(`PGP encryption failed: ${error}`);
|
|
296
|
+
throw new Error(`PGP encryption failed: ${String(error)}`);
|
|
207
297
|
}
|
|
208
298
|
}
|
|
299
|
+
/**
|
|
300
|
+
* Decrypts PGP-encrypted data using a private key.
|
|
301
|
+
*
|
|
302
|
+
* @param encryptedData - ASCII-armored encrypted message.
|
|
303
|
+
* Must be encrypted with corresponding public key.
|
|
304
|
+
* @param privateKeyArmored - ASCII-armored PGP private key.
|
|
305
|
+
* Must correspond to the public key used for encryption.
|
|
306
|
+
* @returns The decrypted plaintext string
|
|
307
|
+
*
|
|
308
|
+
* @throws {Error} If decryption fails or private key is invalid
|
|
309
|
+
*/
|
|
209
310
|
async decrypt(encryptedData, privateKeyArmored) {
|
|
210
311
|
try {
|
|
211
312
|
const openpgp = await getOpenPGP();
|
|
@@ -221,9 +322,23 @@ class BrowserPGPAdapter {
|
|
|
221
322
|
});
|
|
222
323
|
return decrypted;
|
|
223
324
|
} catch (error) {
|
|
224
|
-
throw new Error(`PGP decryption failed: ${error}`);
|
|
325
|
+
throw new Error(`PGP decryption failed: ${String(error)}`);
|
|
225
326
|
}
|
|
226
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Generates a new PGP key pair.
|
|
330
|
+
*
|
|
331
|
+
* @param options - Key generation options
|
|
332
|
+
* @param options.name - Name for the key identity.
|
|
333
|
+
* Defaults to 'Vana User'.
|
|
334
|
+
* @param options.email - Email for the key identity.
|
|
335
|
+
* Defaults to 'user@vana.com'.
|
|
336
|
+
* @param options.passphrase - Passphrase to protect the private key.
|
|
337
|
+
* If not provided, key is unprotected.
|
|
338
|
+
* @returns ASCII-armored public and private keys
|
|
339
|
+
*
|
|
340
|
+
* @throws {Error} If key generation fails
|
|
341
|
+
*/
|
|
227
342
|
async generateKeyPair(options) {
|
|
228
343
|
try {
|
|
229
344
|
const openpgp = await getOpenPGP();
|
|
@@ -236,14 +351,28 @@ class BrowserPGPAdapter {
|
|
|
236
351
|
}
|
|
237
352
|
}
|
|
238
353
|
class BrowserHttpAdapter {
|
|
354
|
+
/**
|
|
355
|
+
* Performs an HTTP request using the Fetch API.
|
|
356
|
+
*
|
|
357
|
+
* @param url - The URL to fetch.
|
|
358
|
+
* Must be a valid HTTP/HTTPS URL.
|
|
359
|
+
* @param options - Standard fetch options.
|
|
360
|
+
* See MDN fetch documentation for details.
|
|
361
|
+
* @returns Standard fetch Response object
|
|
362
|
+
*/
|
|
239
363
|
async fetch(url, options) {
|
|
240
364
|
return fetch(url, options);
|
|
241
365
|
}
|
|
242
366
|
}
|
|
243
367
|
class BrowserCacheAdapter {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
368
|
+
prefix = "vana_cache_";
|
|
369
|
+
/**
|
|
370
|
+
* Retrieves a cached value by key.
|
|
371
|
+
*
|
|
372
|
+
* @param key - The cache key to look up.
|
|
373
|
+
* Automatically prefixed to avoid conflicts.
|
|
374
|
+
* @returns The cached value or null if not found
|
|
375
|
+
*/
|
|
247
376
|
get(key) {
|
|
248
377
|
try {
|
|
249
378
|
if (typeof sessionStorage === "undefined") {
|
|
@@ -254,6 +383,14 @@ class BrowserCacheAdapter {
|
|
|
254
383
|
return null;
|
|
255
384
|
}
|
|
256
385
|
}
|
|
386
|
+
/**
|
|
387
|
+
* Stores a value in sessionStorage.
|
|
388
|
+
*
|
|
389
|
+
* @param key - The cache key.
|
|
390
|
+
* Automatically prefixed with 'vana_cache_'.
|
|
391
|
+
* @param value - The value to cache.
|
|
392
|
+
* Will be cleared when tab closes.
|
|
393
|
+
*/
|
|
257
394
|
set(key, value) {
|
|
258
395
|
try {
|
|
259
396
|
if (typeof sessionStorage === "undefined") {
|
|
@@ -263,6 +400,12 @@ class BrowserCacheAdapter {
|
|
|
263
400
|
} catch {
|
|
264
401
|
}
|
|
265
402
|
}
|
|
403
|
+
/**
|
|
404
|
+
* Removes a specific key from the cache.
|
|
405
|
+
*
|
|
406
|
+
* @param key - The cache key to remove.
|
|
407
|
+
* Only removes the prefixed key.
|
|
408
|
+
*/
|
|
266
409
|
delete(key) {
|
|
267
410
|
try {
|
|
268
411
|
if (typeof sessionStorage === "undefined") {
|
|
@@ -272,6 +415,13 @@ class BrowserCacheAdapter {
|
|
|
272
415
|
} catch {
|
|
273
416
|
}
|
|
274
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* Clears all Vana-prefixed cache entries.
|
|
420
|
+
*
|
|
421
|
+
* @remarks
|
|
422
|
+
* Only removes entries with the 'vana_cache_' prefix,
|
|
423
|
+
* preserving other sessionStorage data.
|
|
424
|
+
*/
|
|
275
425
|
clear() {
|
|
276
426
|
try {
|
|
277
427
|
if (typeof sessionStorage === "undefined") {
|
|
@@ -284,19 +434,19 @@ class BrowserCacheAdapter {
|
|
|
284
434
|
keysToRemove.push(key);
|
|
285
435
|
}
|
|
286
436
|
}
|
|
287
|
-
keysToRemove.forEach((key) =>
|
|
437
|
+
keysToRemove.forEach((key) => {
|
|
438
|
+
sessionStorage.removeItem(key);
|
|
439
|
+
});
|
|
288
440
|
} catch {
|
|
289
441
|
}
|
|
290
442
|
}
|
|
291
443
|
}
|
|
292
444
|
class BrowserPlatformAdapter {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
__publicField(this, "platform", "browser");
|
|
299
|
-
}
|
|
445
|
+
crypto = new BrowserCryptoAdapter();
|
|
446
|
+
pgp = new BrowserPGPAdapter();
|
|
447
|
+
http = new BrowserHttpAdapter();
|
|
448
|
+
cache = new BrowserCacheAdapter();
|
|
449
|
+
platform = "browser";
|
|
300
450
|
}
|
|
301
451
|
export {
|
|
302
452
|
BrowserPlatformAdapter
|