@opendatalabs/vana-sdk 0.1.0-alpha.7e4db82 → 0.1.0-alpha.7ee7635
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -36
- package/dist/browser.cjs +29 -0
- package/dist/browser.cjs.map +1 -0
- package/dist/browser.d.cts +2 -0
- package/dist/browser.d.ts +2 -0
- package/dist/browser.js +5 -0
- package/dist/browser.js.map +1 -0
- package/dist/chains/definitions.cjs +92 -0
- package/dist/chains/definitions.cjs.map +1 -0
- package/dist/chains/definitions.d.cts +53 -0
- package/dist/chains/definitions.d.ts +53 -0
- package/dist/chains/definitions.js +64 -0
- package/dist/chains/definitions.js.map +1 -0
- package/dist/chains/index.cjs +37 -0
- package/dist/chains/index.cjs.map +1 -0
- package/dist/chains/index.d.cts +2 -0
- package/dist/chains/index.d.ts +2 -0
- package/dist/chains/index.js +15 -0
- package/dist/chains/index.js.map +1 -0
- package/dist/chains.browser.cjs +6 -65
- package/dist/chains.browser.cjs.map +1 -1
- package/dist/chains.browser.d.cts +2 -53
- package/dist/chains.browser.d.ts +2 -53
- package/dist/chains.browser.js +7 -57
- package/dist/chains.browser.js.map +1 -1
- package/dist/chains.cjs +6 -65
- package/dist/chains.cjs.map +1 -1
- package/dist/chains.d.cts +1 -1
- package/dist/chains.d.ts +1 -1
- package/dist/chains.js +7 -57
- package/dist/chains.js.map +1 -1
- package/dist/chains.node.cjs +6 -65
- package/dist/chains.node.cjs.map +1 -1
- package/dist/chains.node.d.cts +1 -1
- package/dist/chains.node.d.ts +1 -1
- package/dist/chains.node.js +7 -57
- package/dist/chains.node.js.map +1 -1
- package/dist/config/addresses.cjs +325 -0
- package/dist/config/addresses.cjs.map +1 -0
- package/dist/config/addresses.d.cts +401 -0
- package/dist/config/addresses.d.ts +401 -0
- package/dist/config/addresses.js +295 -0
- package/dist/config/addresses.js.map +1 -0
- package/dist/config/chains.cjs +93 -0
- package/dist/config/chains.cjs.map +1 -0
- package/dist/config/chains.d.cts +85 -0
- package/dist/config/chains.d.ts +85 -0
- package/dist/config/chains.js +67 -0
- package/dist/config/chains.js.map +1 -0
- package/dist/config/features.cjs +52 -0
- package/dist/config/features.cjs.map +1 -0
- package/dist/config/features.d.cts +64 -0
- package/dist/config/features.d.ts +64 -0
- package/dist/config/features.js +28 -0
- package/dist/config/features.js.map +1 -0
- package/dist/contracts/contractController.cjs +126 -0
- package/dist/contracts/contractController.cjs.map +1 -0
- package/dist/contracts/contractController.d.cts +117 -0
- package/dist/contracts/contractController.d.ts +117 -0
- package/dist/contracts/contractController.js +103 -0
- package/dist/contracts/contractController.js.map +1 -0
- package/dist/controllers/data.cjs +2251 -0
- package/dist/controllers/data.cjs.map +1 -0
- package/dist/controllers/data.d.cts +915 -0
- package/dist/controllers/data.d.ts +915 -0
- package/dist/controllers/data.js +2234 -0
- package/dist/controllers/data.js.map +1 -0
- package/dist/controllers/permissions.cjs +3949 -0
- package/dist/controllers/permissions.cjs.map +1 -0
- package/dist/controllers/permissions.d.cts +1383 -0
- package/dist/controllers/permissions.d.ts +1383 -0
- package/dist/controllers/permissions.js +3925 -0
- package/dist/controllers/permissions.js.map +1 -0
- package/dist/controllers/protocol.cjs +179 -0
- package/dist/controllers/protocol.cjs.map +1 -0
- package/dist/controllers/protocol.d.cts +188 -0
- package/dist/controllers/protocol.d.ts +188 -0
- package/dist/controllers/protocol.js +162 -0
- package/dist/controllers/protocol.js.map +1 -0
- package/dist/controllers/schemas.cjs +606 -0
- package/dist/controllers/schemas.cjs.map +1 -0
- package/dist/controllers/schemas.d.cts +260 -0
- package/dist/controllers/schemas.d.ts +260 -0
- package/dist/controllers/schemas.js +582 -0
- package/dist/controllers/schemas.js.map +1 -0
- package/dist/controllers/server.cjs +427 -0
- package/dist/controllers/server.cjs.map +1 -0
- package/dist/controllers/server.d.cts +230 -0
- package/dist/controllers/server.d.ts +230 -0
- package/dist/controllers/server.js +408 -0
- package/dist/controllers/server.js.map +1 -0
- package/dist/core/apiClient.cjs +325 -0
- package/dist/core/apiClient.cjs.map +1 -0
- package/dist/core/apiClient.d.cts +165 -0
- package/dist/core/apiClient.d.ts +165 -0
- package/dist/core/apiClient.js +309 -0
- package/dist/core/apiClient.js.map +1 -0
- package/dist/core/client.cjs +70 -0
- package/dist/core/client.cjs.map +1 -0
- package/dist/core/client.d.cts +92 -0
- package/dist/core/client.d.ts +92 -0
- package/dist/core/client.js +47 -0
- package/dist/core/client.js.map +1 -0
- package/dist/core/generics.cjs +388 -0
- package/dist/core/generics.cjs.map +1 -0
- package/dist/core/generics.d.cts +120 -0
- package/dist/core/generics.d.ts +120 -0
- package/dist/core/generics.js +366 -0
- package/dist/core/generics.js.map +1 -0
- package/dist/core.cjs +658 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.cts +493 -0
- package/dist/core.d.ts +493 -0
- package/dist/core.js +636 -0
- package/dist/core.js.map +1 -0
- package/dist/crypto/ecies/__tests__/test-vectors.cjs +102 -0
- package/dist/crypto/ecies/__tests__/test-vectors.cjs.map +1 -0
- package/dist/crypto/ecies/__tests__/test-vectors.d.cts +40 -0
- package/dist/crypto/ecies/__tests__/test-vectors.d.ts +40 -0
- package/dist/crypto/ecies/__tests__/test-vectors.js +77 -0
- package/dist/crypto/ecies/__tests__/test-vectors.js.map +1 -0
- package/dist/crypto/ecies/base.cjs +231 -0
- package/dist/crypto/ecies/base.cjs.map +1 -0
- package/dist/crypto/ecies/base.d.cts +143 -0
- package/dist/crypto/ecies/base.d.ts +143 -0
- package/dist/crypto/ecies/base.js +211 -0
- package/dist/crypto/ecies/base.js.map +1 -0
- package/dist/crypto/ecies/browser.cjs +164 -0
- package/dist/crypto/ecies/browser.cjs.map +1 -0
- package/dist/crypto/ecies/browser.d.cts +48 -0
- package/dist/crypto/ecies/browser.d.ts +48 -0
- package/dist/crypto/ecies/browser.js +130 -0
- package/dist/crypto/ecies/browser.js.map +1 -0
- package/dist/crypto/ecies/constants.cjs +131 -0
- package/dist/crypto/ecies/constants.cjs.map +1 -0
- package/dist/crypto/ecies/constants.d.cts +122 -0
- package/dist/crypto/ecies/constants.d.ts +122 -0
- package/dist/crypto/ecies/constants.js +101 -0
- package/dist/crypto/ecies/constants.js.map +1 -0
- package/dist/crypto/ecies/index.cjs +35 -0
- package/dist/crypto/ecies/index.cjs.map +1 -0
- package/dist/crypto/ecies/index.d.cts +1 -0
- package/dist/crypto/ecies/index.d.ts +1 -0
- package/dist/crypto/ecies/index.js +13 -0
- package/dist/crypto/ecies/index.js.map +1 -0
- package/dist/crypto/ecies/interface.cjs +88 -0
- package/dist/crypto/ecies/interface.cjs.map +1 -0
- package/dist/crypto/ecies/interface.d.cts +176 -0
- package/dist/crypto/ecies/interface.d.ts +176 -0
- package/dist/crypto/ecies/interface.js +61 -0
- package/dist/crypto/ecies/interface.js.map +1 -0
- package/dist/crypto/ecies/node.cjs +166 -0
- package/dist/crypto/ecies/node.cjs.map +1 -0
- package/dist/crypto/ecies/node.d.cts +50 -0
- package/dist/crypto/ecies/node.d.ts +50 -0
- package/dist/crypto/ecies/node.js +144 -0
- package/dist/crypto/ecies/node.js.map +1 -0
- package/dist/crypto/ecies/test-vectors/eccrypto-vectors.d.cts +76 -0
- package/dist/crypto/ecies/test-vectors/eccrypto-vectors.d.ts +76 -0
- package/dist/crypto/ecies/test-vectors/eccrypto-vectors.json +72 -0
- package/dist/crypto/ecies/utils.cjs +91 -0
- package/dist/crypto/ecies/utils.cjs.map +1 -0
- package/dist/crypto/ecies/utils.d.cts +67 -0
- package/dist/crypto/ecies/utils.d.ts +67 -0
- package/dist/crypto/ecies/utils.js +60 -0
- package/dist/crypto/ecies/utils.js.map +1 -0
- package/dist/crypto/services/WalletKeyEncryptionService.cjs +128 -0
- package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -0
- package/dist/crypto/services/WalletKeyEncryptionService.d.cts +92 -0
- package/dist/crypto/services/WalletKeyEncryptionService.d.ts +92 -0
- package/dist/crypto/services/WalletKeyEncryptionService.js +112 -0
- package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -0
- package/dist/diagnostics.cjs +37 -0
- package/dist/diagnostics.cjs.map +1 -0
- package/dist/diagnostics.d.cts +26 -0
- package/dist/diagnostics.d.ts +26 -0
- package/dist/diagnostics.js +13 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/errors.cjs +141 -0
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.cts +350 -0
- package/dist/errors.d.ts +350 -0
- package/dist/errors.js +108 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/abi/ComputeEngineImplementation.cjs +1313 -0
- package/dist/generated/abi/ComputeEngineImplementation.cjs.map +1 -0
- package/dist/generated/abi/ComputeEngineImplementation.d.cts +996 -0
- package/dist/generated/abi/ComputeEngineImplementation.d.ts +996 -0
- package/dist/generated/abi/ComputeEngineImplementation.js +1289 -0
- package/dist/generated/abi/ComputeEngineImplementation.js.map +1 -0
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs +734 -0
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs.map +1 -0
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.cts +545 -0
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +545 -0
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.js +710 -0
- package/dist/generated/abi/ComputeInstructionRegistryImplementation.js.map +1 -0
- package/dist/generated/abi/DATFactoryImplementation.cjs +882 -0
- package/dist/generated/abi/DATFactoryImplementation.cjs.map +1 -0
- package/dist/generated/abi/DATFactoryImplementation.d.cts +661 -0
- package/dist/generated/abi/DATFactoryImplementation.d.ts +661 -0
- package/dist/generated/abi/DATFactoryImplementation.js +858 -0
- package/dist/generated/abi/DATFactoryImplementation.js.map +1 -0
- package/dist/generated/abi/DATImplementation.cjs +934 -0
- package/dist/generated/abi/DATImplementation.cjs.map +1 -0
- package/dist/generated/abi/DATImplementation.d.cts +693 -0
- package/dist/generated/abi/DATImplementation.d.ts +693 -0
- package/dist/generated/abi/DATImplementation.js +910 -0
- package/dist/generated/abi/DATImplementation.js.map +1 -0
- package/dist/generated/abi/DATPausableImplementation.cjs +1523 -0
- package/dist/generated/abi/DATPausableImplementation.cjs.map +1 -0
- package/dist/generated/abi/DATPausableImplementation.d.cts +1145 -0
- package/dist/generated/abi/DATPausableImplementation.d.ts +1145 -0
- package/dist/generated/abi/DATPausableImplementation.js +1499 -0
- package/dist/generated/abi/DATPausableImplementation.js.map +1 -0
- package/dist/generated/abi/DATVotesImplementation.cjs +1460 -0
- package/dist/generated/abi/DATVotesImplementation.cjs.map +1 -0
- package/dist/generated/abi/DATVotesImplementation.d.cts +1095 -0
- package/dist/generated/abi/DATVotesImplementation.d.ts +1095 -0
- package/dist/generated/abi/DATVotesImplementation.js +1436 -0
- package/dist/generated/abi/DATVotesImplementation.js.map +1 -0
- package/dist/generated/abi/DLPPerformanceImplementation.cjs +1160 -0
- package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +1 -0
- package/dist/generated/abi/DLPPerformanceImplementation.d.cts +883 -0
- package/dist/generated/abi/DLPPerformanceImplementation.d.ts +883 -0
- package/dist/generated/abi/DLPPerformanceImplementation.js +1136 -0
- package/dist/generated/abi/DLPPerformanceImplementation.js.map +1 -0
- package/dist/generated/abi/DLPRegistryImplementation.cjs +1469 -0
- package/dist/generated/abi/DLPRegistryImplementation.cjs.map +1 -0
- package/dist/generated/abi/DLPRegistryImplementation.d.cts +1123 -0
- package/dist/generated/abi/DLPRegistryImplementation.d.ts +1123 -0
- package/dist/generated/abi/DLPRegistryImplementation.js +1445 -0
- package/dist/generated/abi/DLPRegistryImplementation.js.map +1 -0
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.cjs +612 -0
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.cjs.map +1 -0
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.cts +452 -0
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +452 -0
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.js +588 -0
- package/dist/generated/abi/DLPRegistryTreasuryImplementation.js.map +1 -0
- package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +948 -0
- package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +1 -0
- package/dist/generated/abi/DLPRewardDeployerImplementation.d.cts +714 -0
- package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +714 -0
- package/dist/generated/abi/DLPRewardDeployerImplementation.js +924 -0
- package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +1 -0
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +612 -0
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +1 -0
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.cts +452 -0
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +452 -0
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +588 -0
- package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +1 -0
- package/dist/generated/abi/DLPRewardSwapImplementation.cjs +939 -0
- package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +1 -0
- package/dist/generated/abi/DLPRewardSwapImplementation.d.cts +706 -0
- package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +706 -0
- package/dist/generated/abi/DLPRewardSwapImplementation.js +915 -0
- package/dist/generated/abi/DLPRewardSwapImplementation.js.map +1 -0
- package/dist/generated/abi/DLPRootImplementation.cjs +1644 -0
- package/dist/generated/abi/DLPRootImplementation.cjs.map +1 -0
- package/dist/generated/abi/DLPRootImplementation.d.cts +1248 -0
- package/dist/generated/abi/DLPRootImplementation.d.ts +1248 -0
- package/dist/generated/abi/DLPRootImplementation.js +1620 -0
- package/dist/generated/abi/DLPRootImplementation.js.map +1 -0
- package/dist/generated/abi/DLPTreasuryImplementation.cjs +612 -0
- package/dist/generated/abi/DLPTreasuryImplementation.cjs.map +1 -0
- package/dist/generated/abi/DLPTreasuryImplementation.d.cts +452 -0
- package/dist/generated/abi/DLPTreasuryImplementation.d.ts +452 -0
- package/dist/generated/abi/DLPTreasuryImplementation.js +588 -0
- package/dist/generated/abi/DLPTreasuryImplementation.js.map +1 -0
- package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +985 -0
- package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +1 -0
- package/dist/generated/abi/DataLiquidityPoolImplementation.d.cts +737 -0
- package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +737 -0
- package/dist/generated/abi/DataLiquidityPoolImplementation.js +961 -0
- package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +1 -0
- package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs +888 -0
- package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs.map +1 -0
- package/dist/generated/abi/DataPortabilityGranteesImplementation.d.cts +661 -0
- package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +661 -0
- package/dist/generated/abi/DataPortabilityGranteesImplementation.js +864 -0
- package/dist/generated/abi/DataPortabilityGranteesImplementation.js.map +1 -0
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs +1317 -0
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs.map +1 -0
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.cts +989 -0
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +989 -0
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.js +1293 -0
- package/dist/generated/abi/DataPortabilityPermissionsImplementation.js.map +1 -0
- package/dist/generated/abi/DataPortabilityServersImplementation.cjs +1438 -0
- package/dist/generated/abi/DataPortabilityServersImplementation.cjs.map +1 -0
- package/dist/generated/abi/DataPortabilityServersImplementation.d.cts +1086 -0
- package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +1086 -0
- package/dist/generated/abi/DataPortabilityServersImplementation.js +1414 -0
- package/dist/generated/abi/DataPortabilityServersImplementation.js.map +1 -0
- package/dist/generated/abi/DataRefinerRegistryImplementation.cjs +984 -0
- package/dist/generated/abi/DataRefinerRegistryImplementation.cjs.map +1 -0
- package/dist/generated/abi/DataRefinerRegistryImplementation.d.cts +737 -0
- package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +737 -0
- package/dist/generated/abi/DataRefinerRegistryImplementation.js +960 -0
- package/dist/generated/abi/DataRefinerRegistryImplementation.js.map +1 -0
- package/dist/generated/abi/DataRegistryImplementation.cjs +1341 -0
- package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -0
- package/dist/generated/abi/DataRegistryImplementation.d.cts +1014 -0
- package/dist/generated/abi/DataRegistryImplementation.d.ts +1014 -0
- package/dist/generated/abi/DataRegistryImplementation.js +1317 -0
- package/dist/generated/abi/DataRegistryImplementation.js.map +1 -0
- package/dist/generated/abi/QueryEngineImplementation.cjs +1319 -0
- package/dist/generated/abi/QueryEngineImplementation.cjs.map +1 -0
- package/dist/generated/abi/QueryEngineImplementation.d.cts +1001 -0
- package/dist/generated/abi/QueryEngineImplementation.d.ts +1001 -0
- package/dist/generated/abi/QueryEngineImplementation.js +1295 -0
- package/dist/generated/abi/QueryEngineImplementation.js.map +1 -0
- package/dist/generated/abi/SwapHelperImplementation.cjs +1019 -0
- package/dist/generated/abi/SwapHelperImplementation.cjs.map +1 -0
- package/dist/generated/abi/SwapHelperImplementation.d.cts +764 -0
- package/dist/generated/abi/SwapHelperImplementation.d.ts +764 -0
- package/dist/generated/abi/SwapHelperImplementation.js +995 -0
- package/dist/generated/abi/SwapHelperImplementation.js.map +1 -0
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.cjs +936 -0
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.cjs.map +1 -0
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.cts +701 -0
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +701 -0
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.js +912 -0
- package/dist/generated/abi/TeePoolDedicatedGpuImplementation.js.map +1 -0
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.cjs +936 -0
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.cjs.map +1 -0
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.cts +701 -0
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +701 -0
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.js +912 -0
- package/dist/generated/abi/TeePoolDedicatedStandardImplementation.js.map +1 -0
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.cjs +936 -0
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.cjs.map +1 -0
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.cts +701 -0
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +701 -0
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.js +912 -0
- package/dist/generated/abi/TeePoolEphemeralStandardImplementation.js.map +1 -0
- package/dist/generated/abi/TeePoolImplementation.cjs +1313 -0
- package/dist/generated/abi/TeePoolImplementation.cjs.map +1 -0
- package/dist/generated/abi/TeePoolImplementation.d.cts +993 -0
- package/dist/generated/abi/TeePoolImplementation.d.ts +993 -0
- package/dist/generated/abi/TeePoolImplementation.js +1289 -0
- package/dist/generated/abi/TeePoolImplementation.js.map +1 -0
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.cjs +936 -0
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.cjs.map +1 -0
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.cts +701 -0
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +701 -0
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.js +912 -0
- package/dist/generated/abi/TeePoolPersistentGpuImplementation.js.map +1 -0
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.cjs +936 -0
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.cjs.map +1 -0
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.cts +701 -0
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +701 -0
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.js +912 -0
- package/dist/generated/abi/TeePoolPersistentStandardImplementation.js.map +1 -0
- package/dist/generated/abi/TeePoolPhalaImplementation.cjs +1313 -0
- package/dist/generated/abi/TeePoolPhalaImplementation.cjs.map +1 -0
- package/dist/generated/abi/TeePoolPhalaImplementation.d.cts +993 -0
- package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +993 -0
- package/dist/generated/abi/TeePoolPhalaImplementation.js +1289 -0
- package/dist/generated/abi/TeePoolPhalaImplementation.js.map +1 -0
- package/dist/generated/abi/VanaEpochImplementation.cjs +1188 -0
- package/dist/generated/abi/VanaEpochImplementation.cjs.map +1 -0
- package/dist/generated/abi/VanaEpochImplementation.d.cts +900 -0
- package/dist/generated/abi/VanaEpochImplementation.d.ts +900 -0
- package/dist/generated/abi/VanaEpochImplementation.js +1164 -0
- package/dist/generated/abi/VanaEpochImplementation.js.map +1 -0
- package/dist/generated/abi/VanaPoolEntityImplementation.cjs +1234 -0
- package/dist/generated/abi/VanaPoolEntityImplementation.cjs.map +1 -0
- package/dist/generated/abi/VanaPoolEntityImplementation.d.cts +934 -0
- package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +934 -0
- package/dist/generated/abi/VanaPoolEntityImplementation.js +1210 -0
- package/dist/generated/abi/VanaPoolEntityImplementation.js.map +1 -0
- package/dist/generated/abi/VanaPoolStakingImplementation.cjs +921 -0
- package/dist/generated/abi/VanaPoolStakingImplementation.cjs.map +1 -0
- package/dist/generated/abi/VanaPoolStakingImplementation.d.cts +693 -0
- package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +693 -0
- package/dist/generated/abi/VanaPoolStakingImplementation.js +897 -0
- package/dist/generated/abi/VanaPoolStakingImplementation.js.map +1 -0
- package/dist/generated/abi/VanaPoolTreasuryImplementation.cjs +538 -0
- package/dist/generated/abi/VanaPoolTreasuryImplementation.cjs.map +1 -0
- package/dist/generated/abi/VanaPoolTreasuryImplementation.d.cts +394 -0
- package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +394 -0
- package/dist/generated/abi/VanaPoolTreasuryImplementation.js +514 -0
- package/dist/generated/abi/VanaPoolTreasuryImplementation.js.map +1 -0
- package/dist/generated/abi/index.cjs +177 -0
- package/dist/generated/abi/index.cjs.map +1 -0
- package/dist/generated/abi/index.d.cts +26547 -0
- package/dist/generated/abi/index.d.ts +26547 -0
- package/dist/generated/abi/index.js +120 -0
- package/dist/generated/abi/index.js.map +1 -0
- package/dist/generated/event-types.cjs +17 -0
- package/dist/generated/event-types.cjs.map +1 -0
- package/dist/generated/event-types.d.cts +855 -0
- package/dist/generated/event-types.d.ts +855 -0
- package/dist/generated/event-types.js +1 -0
- package/dist/generated/event-types.js.map +1 -0
- package/dist/generated/eventRegistry.cjs +3351 -0
- package/dist/generated/eventRegistry.cjs.map +1 -0
- package/dist/generated/eventRegistry.d.cts +18 -0
- package/dist/generated/eventRegistry.d.ts +18 -0
- package/dist/generated/eventRegistry.js +3326 -0
- package/dist/generated/eventRegistry.js.map +1 -0
- package/dist/generated/server/server-exports.cjs +23 -0
- package/dist/generated/server/server-exports.cjs.map +1 -0
- package/dist/generated/server/server-exports.d.cts +21 -0
- package/dist/generated/server/server-exports.d.ts +21 -0
- package/dist/generated/server/server-exports.js +2 -0
- package/dist/generated/server/server-exports.js.map +1 -0
- package/dist/generated/server/server.cjs +17 -0
- package/dist/generated/server/server.cjs.map +1 -0
- package/dist/generated/server/server.d.cts +512 -0
- package/dist/generated/server/server.d.ts +512 -0
- package/dist/generated/server/server.js +1 -0
- package/dist/generated/server/server.js.map +1 -0
- package/dist/generated/subgraph.cjs +675 -0
- package/dist/generated/subgraph.cjs.map +1 -0
- package/dist/generated/subgraph.d.cts +5981 -0
- package/dist/generated/subgraph.d.ts +5981 -0
- package/dist/generated/subgraph.js +644 -0
- package/dist/generated/subgraph.js.map +1 -0
- package/dist/index.browser.cjs +151 -0
- package/dist/index.browser.cjs.map +1 -0
- package/dist/index.browser.d.cts +201 -0
- package/dist/index.browser.d.ts +162 -32452
- package/dist/index.browser.js +64 -40995
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.node.cjs +87 -41441
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.cts +86 -32596
- package/dist/index.node.d.ts +86 -32596
- package/dist/index.node.js +68 -41331
- package/dist/index.node.js.map +1 -1
- package/dist/node.cjs +29 -0
- package/dist/node.cjs.map +1 -0
- package/dist/node.d.cts +2 -0
- package/dist/node.d.ts +2 -0
- package/dist/node.js +5 -0
- package/dist/node.js.map +1 -0
- package/dist/platform/browser-only.cjs +37 -0
- package/dist/platform/browser-only.cjs.map +1 -0
- package/dist/platform/browser-only.d.cts +25 -0
- package/dist/platform/browser-only.d.ts +25 -0
- package/dist/platform/browser-only.js +12 -0
- package/dist/platform/browser-only.js.map +1 -0
- package/dist/platform/browser-safe.cjs +57 -0
- package/dist/platform/browser-safe.cjs.map +1 -0
- package/dist/platform/browser-safe.d.cts +32 -0
- package/dist/platform/browser-safe.d.ts +32 -0
- package/dist/platform/browser-safe.js +31 -0
- package/dist/platform/browser-safe.js.map +1 -0
- package/dist/platform/browser.cjs +329 -0
- package/dist/platform/browser.cjs.map +1 -0
- package/dist/platform/browser.d.cts +74 -0
- package/dist/platform/browser.d.ts +74 -0
- package/dist/platform/browser.js +304 -0
- package/dist/platform/browser.js.map +1 -0
- package/dist/platform/index.cjs +50 -0
- package/dist/platform/index.cjs.map +1 -0
- package/dist/platform/index.d.cts +5 -0
- package/dist/platform/index.d.ts +5 -0
- package/dist/platform/index.js +27 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/platform/interface.cjs +17 -0
- package/dist/platform/interface.cjs.map +1 -0
- package/dist/platform/interface.d.cts +218 -0
- package/dist/platform/interface.d.ts +218 -0
- package/dist/platform/interface.js +1 -0
- package/dist/platform/interface.js.map +1 -0
- package/dist/platform/node.cjs +351 -0
- package/dist/platform/node.cjs.map +1 -0
- package/dist/platform/node.d.cts +27 -0
- package/dist/platform/node.d.ts +27 -0
- package/dist/platform/node.js +327 -0
- package/dist/platform/node.js.map +1 -0
- package/dist/platform/shared/error-utils.cjs +43 -0
- package/dist/platform/shared/error-utils.cjs.map +1 -0
- package/dist/platform/shared/error-utils.d.cts +25 -0
- package/dist/platform/shared/error-utils.d.ts +25 -0
- package/dist/platform/shared/error-utils.js +18 -0
- package/dist/platform/shared/error-utils.js.map +1 -0
- package/dist/platform/shared/pgp-utils.cjs +55 -0
- package/dist/platform/shared/pgp-utils.cjs.map +1 -0
- package/dist/platform/shared/pgp-utils.d.cts +61 -0
- package/dist/platform/shared/pgp-utils.d.ts +61 -0
- package/dist/platform/shared/pgp-utils.js +29 -0
- package/dist/platform/shared/pgp-utils.js.map +1 -0
- package/dist/platform/shared/stream-utils.cjs +49 -0
- package/dist/platform/shared/stream-utils.cjs.map +1 -0
- package/dist/platform/shared/stream-utils.d.cts +16 -0
- package/dist/platform/shared/stream-utils.d.ts +16 -0
- package/dist/platform/shared/stream-utils.js +25 -0
- package/dist/platform/shared/stream-utils.js.map +1 -0
- package/dist/platform/utils.cjs +114 -0
- package/dist/platform/utils.cjs.map +1 -0
- package/dist/platform/utils.d.cts +53 -0
- package/dist/platform/utils.d.ts +53 -0
- package/dist/platform/utils.js +76 -0
- package/dist/platform/utils.js.map +1 -0
- package/dist/platform.browser.cjs +41 -0
- package/dist/platform.browser.cjs.map +1 -0
- package/dist/platform.browser.d.cts +4 -0
- package/dist/platform.browser.d.ts +4 -224
- package/dist/platform.browser.js +10 -309
- package/dist/platform.browser.js.map +1 -1
- package/dist/platform.cjs +14 -623
- package/dist/platform.cjs.map +1 -1
- package/dist/platform.d.cts +5 -1
- package/dist/platform.d.ts +5 -1
- package/dist/platform.js +14 -609
- package/dist/platform.js.map +1 -1
- package/dist/platform.node.cjs +14 -623
- package/dist/platform.node.cjs.map +1 -1
- package/dist/platform.node.d.cts +5 -264
- package/dist/platform.node.d.ts +5 -264
- package/dist/platform.node.js +14 -609
- package/dist/platform.node.js.map +1 -1
- package/dist/schemas/dataSchema.schema.d.cts +88 -0
- package/dist/schemas/dataSchema.schema.d.ts +88 -0
- package/dist/schemas/dataSchema.schema.json +53 -0
- package/dist/schemas/grantFile.schema.d.cts +57 -0
- package/dist/schemas/grantFile.schema.d.ts +57 -0
- package/dist/schemas/grantFile.schema.json +43 -0
- package/dist/server/handler.cjs +101 -0
- package/dist/server/handler.cjs.map +1 -0
- package/dist/server/handler.d.cts +306 -0
- package/dist/server/handler.d.ts +306 -0
- package/dist/server/handler.js +77 -0
- package/dist/server/handler.js.map +1 -0
- package/dist/storage/index.cjs +44 -0
- package/dist/storage/index.cjs.map +1 -0
- package/dist/storage/index.d.cts +10 -0
- package/dist/storage/index.d.ts +10 -0
- package/dist/storage/index.js +15 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/manager.cjs +189 -0
- package/dist/storage/manager.cjs.map +1 -0
- package/dist/storage/manager.d.cts +150 -0
- package/dist/storage/manager.d.ts +150 -0
- package/dist/storage/manager.js +172 -0
- package/dist/storage/manager.js.map +1 -0
- package/dist/storage/providers/callback-storage.cjs +177 -0
- package/dist/storage/providers/callback-storage.cjs.map +1 -0
- package/dist/storage/providers/callback-storage.d.cts +100 -0
- package/dist/storage/providers/callback-storage.d.ts +100 -0
- package/dist/storage/providers/callback-storage.js +155 -0
- package/dist/storage/providers/callback-storage.js.map +1 -0
- package/dist/storage/providers/google-drive.cjs +516 -0
- package/dist/storage/providers/google-drive.cjs.map +1 -0
- package/dist/storage/providers/google-drive.d.cts +156 -0
- package/dist/storage/providers/google-drive.d.ts +156 -0
- package/dist/storage/providers/google-drive.js +497 -0
- package/dist/storage/providers/google-drive.js.map +1 -0
- package/dist/storage/providers/ipfs.cjs +283 -0
- package/dist/storage/providers/ipfs.cjs.map +1 -0
- package/dist/storage/providers/ipfs.d.cts +163 -0
- package/dist/storage/providers/ipfs.d.ts +163 -0
- package/dist/storage/providers/ipfs.js +264 -0
- package/dist/storage/providers/ipfs.js.map +1 -0
- package/dist/storage/providers/pinata.cjs +339 -0
- package/dist/storage/providers/pinata.cjs.map +1 -0
- package/dist/storage/providers/pinata.d.cts +173 -0
- package/dist/storage/providers/pinata.d.ts +173 -0
- package/dist/storage/providers/pinata.js +320 -0
- package/dist/storage/providers/pinata.js.map +1 -0
- package/dist/types/blockchain.cjs +17 -0
- package/dist/types/blockchain.cjs.map +1 -0
- package/dist/types/blockchain.d.cts +52 -0
- package/dist/types/blockchain.d.ts +52 -0
- package/dist/types/blockchain.js +1 -0
- package/dist/types/blockchain.js.map +1 -0
- package/dist/types/chains.cjs +36 -0
- package/dist/types/chains.cjs.map +1 -0
- package/dist/types/chains.d.cts +34 -0
- package/dist/types/chains.d.ts +34 -0
- package/dist/types/chains.js +11 -0
- package/dist/types/chains.js.map +1 -0
- package/dist/types/config.cjs +41 -0
- package/dist/types/config.cjs.map +1 -0
- package/dist/types/config.d.cts +726 -0
- package/dist/types/config.d.ts +726 -0
- package/dist/types/config.js +15 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/contracts.cjs +17 -0
- package/dist/types/contracts.cjs.map +1 -0
- package/dist/types/contracts.d.cts +68 -0
- package/dist/types/contracts.d.ts +68 -0
- package/dist/types/contracts.js +1 -0
- package/dist/types/contracts.js.map +1 -0
- package/dist/types/controller-context.cjs +17 -0
- package/dist/types/controller-context.cjs.map +1 -0
- package/dist/types/controller-context.d.cts +71 -0
- package/dist/types/controller-context.d.ts +71 -0
- package/dist/types/controller-context.js +1 -0
- package/dist/types/controller-context.js.map +1 -0
- package/dist/types/data.cjs +17 -0
- package/dist/types/data.cjs.map +1 -0
- package/dist/types/data.d.cts +694 -0
- package/dist/types/data.d.ts +694 -0
- package/dist/types/data.js +1 -0
- package/dist/types/data.js.map +1 -0
- package/dist/types/eccrypto-js.d.cjs +2 -0
- package/dist/types/eccrypto-js.d.cjs.map +1 -0
- package/dist/types/eccrypto-js.d.d.cts +13 -0
- package/dist/types/eccrypto-js.d.d.ts +13 -0
- package/dist/types/eccrypto-js.d.js +1 -0
- package/dist/types/eccrypto-js.d.js.map +1 -0
- package/dist/types/external-apis.cjs +61 -0
- package/dist/types/external-apis.cjs.map +1 -0
- package/dist/types/external-apis.d.cts +186 -0
- package/dist/types/external-apis.d.ts +186 -0
- package/dist/types/external-apis.js +34 -0
- package/dist/types/external-apis.js.map +1 -0
- package/dist/types/generics.cjs +17 -0
- package/dist/types/generics.cjs.map +1 -0
- package/dist/types/generics.d.cts +450 -0
- package/dist/types/generics.d.ts +450 -0
- package/dist/types/generics.js +1 -0
- package/dist/types/generics.js.map +1 -0
- package/dist/types/index.cjs +64 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.cts +22 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.js +35 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/operations.cjs +65 -0
- package/dist/types/operations.cjs.map +1 -0
- package/dist/types/operations.d.cts +116 -0
- package/dist/types/operations.d.ts +116 -0
- package/dist/types/operations.js +37 -0
- package/dist/types/operations.js.map +1 -0
- package/dist/types/permissions.cjs +17 -0
- package/dist/types/permissions.cjs.map +1 -0
- package/dist/types/permissions.d.cts +957 -0
- package/dist/types/permissions.d.ts +957 -0
- package/dist/types/permissions.js +1 -0
- package/dist/types/permissions.js.map +1 -0
- package/dist/types/personal.cjs +17 -0
- package/dist/types/personal.cjs.map +1 -0
- package/dist/types/personal.d.cts +40 -0
- package/dist/types/personal.d.ts +40 -0
- package/dist/types/personal.js +1 -0
- package/dist/types/personal.js.map +1 -0
- package/dist/types/relayer.cjs +17 -0
- package/dist/types/relayer.cjs.map +1 -0
- package/dist/types/relayer.d.cts +284 -0
- package/dist/types/relayer.d.ts +284 -0
- package/dist/types/relayer.js +1 -0
- package/dist/types/relayer.js.map +1 -0
- package/dist/types/storage.cjs +39 -0
- package/dist/types/storage.cjs.map +1 -0
- package/dist/types/storage.d.cts +131 -0
- package/dist/types/storage.d.ts +131 -0
- package/dist/types/storage.js +18 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/types/transactionResults.cjs +17 -0
- package/dist/types/transactionResults.cjs.map +1 -0
- package/dist/types/transactionResults.d.cts +195 -0
- package/dist/types/transactionResults.d.ts +195 -0
- package/dist/types/transactionResults.js +1 -0
- package/dist/types/transactionResults.js.map +1 -0
- package/dist/types/utils.cjs +17 -0
- package/dist/types/utils.cjs.map +1 -0
- package/dist/types/utils.d.cts +819 -0
- package/dist/types/utils.d.ts +819 -0
- package/dist/types/utils.js +1 -0
- package/dist/types/utils.js.map +1 -0
- package/dist/types.cjs +23 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +54 -0
- package/dist/types.d.ts +54 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/blockchain/registry.cjs +81 -0
- package/dist/utils/blockchain/registry.cjs.map +1 -0
- package/dist/utils/blockchain/registry.d.cts +34 -0
- package/dist/utils/blockchain/registry.d.ts +34 -0
- package/dist/utils/blockchain/registry.js +56 -0
- package/dist/utils/blockchain/registry.js.map +1 -0
- package/dist/utils/crypto-utils.cjs +120 -0
- package/dist/utils/crypto-utils.cjs.map +1 -0
- package/dist/utils/crypto-utils.d.cts +118 -0
- package/dist/utils/crypto-utils.d.ts +118 -0
- package/dist/utils/crypto-utils.js +87 -0
- package/dist/utils/crypto-utils.js.map +1 -0
- package/dist/utils/download.cjs +69 -0
- package/dist/utils/download.cjs.map +1 -0
- package/dist/utils/download.d.cts +41 -0
- package/dist/utils/download.d.ts +41 -0
- package/dist/utils/download.js +45 -0
- package/dist/utils/download.js.map +1 -0
- package/dist/utils/encoding.cjs +66 -0
- package/dist/utils/encoding.cjs.map +1 -0
- package/dist/utils/encoding.d.cts +54 -0
- package/dist/utils/encoding.d.ts +54 -0
- package/dist/utils/encoding.js +39 -0
- package/dist/utils/encoding.js.map +1 -0
- package/dist/utils/encryption.cjs +170 -0
- package/dist/utils/encryption.cjs.map +1 -0
- package/dist/utils/encryption.d.cts +275 -0
- package/dist/utils/encryption.d.ts +275 -0
- package/dist/utils/encryption.js +136 -0
- package/dist/utils/encryption.js.map +1 -0
- package/dist/utils/formatters.cjs +53 -0
- package/dist/utils/formatters.cjs.map +1 -0
- package/dist/utils/formatters.d.cts +120 -0
- package/dist/utils/formatters.d.ts +120 -0
- package/dist/utils/formatters.js +26 -0
- package/dist/utils/formatters.js.map +1 -0
- package/dist/utils/grantFiles.cjs +175 -0
- package/dist/utils/grantFiles.cjs.map +1 -0
- package/dist/utils/grantFiles.d.cts +186 -0
- package/dist/utils/grantFiles.d.ts +186 -0
- package/dist/utils/grantFiles.js +137 -0
- package/dist/utils/grantFiles.js.map +1 -0
- package/dist/utils/grantValidation.cjs +243 -0
- package/dist/utils/grantValidation.cjs.map +1 -0
- package/dist/utils/grantValidation.d.cts +150 -0
- package/dist/utils/grantValidation.d.ts +150 -0
- package/dist/utils/grantValidation.js +201 -0
- package/dist/utils/grantValidation.js.map +1 -0
- package/dist/utils/grants.cjs +108 -0
- package/dist/utils/grants.cjs.map +1 -0
- package/dist/utils/grants.d.cts +70 -0
- package/dist/utils/grants.d.ts +70 -0
- package/dist/utils/grants.js +82 -0
- package/dist/utils/grants.js.map +1 -0
- package/dist/utils/ipfs.cjs +130 -0
- package/dist/utils/ipfs.cjs.map +1 -0
- package/dist/utils/ipfs.d.cts +90 -0
- package/dist/utils/ipfs.d.ts +90 -0
- package/dist/utils/ipfs.js +99 -0
- package/dist/utils/ipfs.js.map +1 -0
- package/dist/utils/lazy-import.cjs +40 -0
- package/dist/utils/lazy-import.cjs.map +1 -0
- package/dist/utils/lazy-import.d.cts +20 -0
- package/dist/utils/lazy-import.d.ts +20 -0
- package/dist/utils/lazy-import.js +16 -0
- package/dist/utils/lazy-import.js.map +1 -0
- package/dist/utils/multicall.cjs +231 -0
- package/dist/utils/multicall.cjs.map +1 -0
- package/dist/utils/multicall.d.cts +129 -0
- package/dist/utils/multicall.d.ts +129 -0
- package/dist/utils/multicall.js +206 -0
- package/dist/utils/multicall.js.map +1 -0
- package/dist/utils/parseTransactionPojo.cjs +87 -0
- package/dist/utils/parseTransactionPojo.cjs.map +1 -0
- package/dist/utils/parseTransactionPojo.d.cts +37 -0
- package/dist/utils/parseTransactionPojo.d.ts +37 -0
- package/dist/utils/parseTransactionPojo.js +63 -0
- package/dist/utils/parseTransactionPojo.js.map +1 -0
- package/dist/utils/schemaValidation.cjs +258 -0
- package/dist/utils/schemaValidation.cjs.map +1 -0
- package/dist/utils/schemaValidation.d.cts +172 -0
- package/dist/utils/schemaValidation.d.ts +172 -0
- package/dist/utils/schemaValidation.js +222 -0
- package/dist/utils/schemaValidation.js.map +1 -0
- package/dist/utils/signatureCache.cjs +187 -0
- package/dist/utils/signatureCache.cjs.map +1 -0
- package/dist/utils/signatureCache.d.cts +134 -0
- package/dist/utils/signatureCache.d.ts +134 -0
- package/dist/utils/signatureCache.js +165 -0
- package/dist/utils/signatureCache.js.map +1 -0
- package/dist/utils/signatureFormatter.cjs +45 -0
- package/dist/utils/signatureFormatter.cjs.map +1 -0
- package/dist/utils/signatureFormatter.d.cts +39 -0
- package/dist/utils/signatureFormatter.d.ts +39 -0
- package/dist/utils/signatureFormatter.js +21 -0
- package/dist/utils/signatureFormatter.js.map +1 -0
- package/dist/utils/transactionHelpers.cjs +54 -0
- package/dist/utils/transactionHelpers.cjs.map +1 -0
- package/dist/utils/transactionHelpers.d.cts +86 -0
- package/dist/utils/transactionHelpers.d.ts +86 -0
- package/dist/utils/transactionHelpers.js +29 -0
- package/dist/utils/transactionHelpers.js.map +1 -0
- package/dist/utils/typedDataConverter.cjs +43 -0
- package/dist/utils/typedDataConverter.cjs.map +1 -0
- package/dist/utils/typedDataConverter.d.cts +13 -0
- package/dist/utils/typedDataConverter.d.ts +13 -0
- package/dist/utils/typedDataConverter.js +19 -0
- package/dist/utils/typedDataConverter.js.map +1 -0
- package/dist/utils/urlResolver.cjs +55 -0
- package/dist/utils/urlResolver.cjs.map +1 -0
- package/dist/utils/urlResolver.d.cts +40 -0
- package/dist/utils/urlResolver.d.ts +40 -0
- package/dist/utils/urlResolver.js +30 -0
- package/dist/utils/urlResolver.js.map +1 -0
- package/dist/utils/withEvents.cjs +44 -0
- package/dist/utils/withEvents.cjs.map +1 -0
- package/dist/utils/withEvents.d.cts +63 -0
- package/dist/utils/withEvents.d.ts +63 -0
- package/dist/utils/withEvents.js +18 -0
- package/dist/utils/withEvents.js.map +1 -0
- package/package.json +58 -27
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var generics_exports = {};
|
|
20
|
+
__export(generics_exports, {
|
|
21
|
+
AsyncQueue: () => AsyncQueue,
|
|
22
|
+
BaseController: () => BaseController,
|
|
23
|
+
CircuitBreaker: () => CircuitBreaker,
|
|
24
|
+
EventEmitter: () => EventEmitter,
|
|
25
|
+
MemoryCache: () => MemoryCache,
|
|
26
|
+
MiddlewarePipeline: () => MiddlewarePipeline,
|
|
27
|
+
RateLimiter: () => RateLimiter,
|
|
28
|
+
RetryUtility: () => RetryUtility
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(generics_exports);
|
|
31
|
+
class BaseController {
|
|
32
|
+
context;
|
|
33
|
+
constructor(context) {
|
|
34
|
+
this.context = context;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Execute a request with optional middleware pipeline
|
|
38
|
+
*
|
|
39
|
+
* @param request - The generic request object containing parameters and metadata
|
|
40
|
+
* @param handler - The function that processes the request parameters
|
|
41
|
+
* @param middleware - Optional array of middleware functions to apply
|
|
42
|
+
* @returns Promise resolving to a generic response object
|
|
43
|
+
*/
|
|
44
|
+
async executeRequest(request, handler, middleware = []) {
|
|
45
|
+
try {
|
|
46
|
+
let processedRequest = request;
|
|
47
|
+
for (const mw of middleware) {
|
|
48
|
+
if (mw.request) {
|
|
49
|
+
processedRequest = await mw.request(
|
|
50
|
+
processedRequest
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
let response = await handler(processedRequest.params);
|
|
55
|
+
for (const mw of middleware.reverse()) {
|
|
56
|
+
if (mw.response) {
|
|
57
|
+
response = await mw.response(response);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
data: response,
|
|
62
|
+
success: true
|
|
63
|
+
};
|
|
64
|
+
} catch (error) {
|
|
65
|
+
for (const mw of middleware) {
|
|
66
|
+
if (mw.error) {
|
|
67
|
+
const handled = await mw.error(error, request);
|
|
68
|
+
if (handled) {
|
|
69
|
+
return {
|
|
70
|
+
data: handled,
|
|
71
|
+
success: true
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
data: void 0,
|
|
78
|
+
success: false,
|
|
79
|
+
error: {
|
|
80
|
+
code: "EXECUTION_ERROR",
|
|
81
|
+
message: error instanceof Error ? error.message : "Unknown error",
|
|
82
|
+
details: error
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Validate parameters with optional custom validator
|
|
89
|
+
*
|
|
90
|
+
* @param params - The parameters to validate
|
|
91
|
+
* @param validator - Optional function to validate parameter types
|
|
92
|
+
* @throws Error if validation fails, asserts type if successful
|
|
93
|
+
*/
|
|
94
|
+
validateParams(params, validator) {
|
|
95
|
+
if (validator && !validator(params)) {
|
|
96
|
+
throw new Error("Invalid parameters");
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
class RetryUtility {
|
|
101
|
+
static async delay(ms) {
|
|
102
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
103
|
+
}
|
|
104
|
+
static async withRetry(operation, config) {
|
|
105
|
+
let lastError;
|
|
106
|
+
for (let attempt = 1; attempt <= config.maxAttempts; attempt++) {
|
|
107
|
+
try {
|
|
108
|
+
return await operation();
|
|
109
|
+
} catch (error) {
|
|
110
|
+
lastError = error;
|
|
111
|
+
if (config.shouldRetry && !config.shouldRetry(lastError, attempt)) {
|
|
112
|
+
throw lastError;
|
|
113
|
+
}
|
|
114
|
+
if (attempt === config.maxAttempts) {
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
const baseDelay = config.baseDelay * Math.pow(config.backoffMultiplier || 2, attempt - 1);
|
|
118
|
+
const maxDelay = config.maxDelay || 3e4;
|
|
119
|
+
const jitter = config.jitter || 0;
|
|
120
|
+
let delay = Math.min(baseDelay, maxDelay);
|
|
121
|
+
if (jitter > 0) {
|
|
122
|
+
delay += Math.random() * jitter * delay;
|
|
123
|
+
}
|
|
124
|
+
await this.delay(delay);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
throw lastError || new Error("Operation failed after retries");
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
class RateLimiter {
|
|
131
|
+
constructor(config) {
|
|
132
|
+
this.config = config;
|
|
133
|
+
}
|
|
134
|
+
requests = [];
|
|
135
|
+
async checkLimit() {
|
|
136
|
+
const now = Date.now();
|
|
137
|
+
const windowStart = now - this.config.windowMs;
|
|
138
|
+
this.requests = this.requests.filter((time) => time > windowStart);
|
|
139
|
+
if (this.requests.length < this.config.requestsPerWindow) {
|
|
140
|
+
this.requests.push(now);
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
async waitForSlot() {
|
|
146
|
+
while (!await this.checkLimit()) {
|
|
147
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
getRemainingRequests() {
|
|
151
|
+
const now = Date.now();
|
|
152
|
+
const windowStart = now - this.config.windowMs;
|
|
153
|
+
const activeRequests = this.requests.filter((time) => time > windowStart);
|
|
154
|
+
return Math.max(0, this.config.requestsPerWindow - activeRequests.length);
|
|
155
|
+
}
|
|
156
|
+
getResetTime() {
|
|
157
|
+
if (this.requests.length === 0) return 0;
|
|
158
|
+
return Math.max(0, this.requests[0] + this.config.windowMs - Date.now());
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
class MemoryCache {
|
|
162
|
+
cache = /* @__PURE__ */ new Map();
|
|
163
|
+
async get(key) {
|
|
164
|
+
const item = this.cache.get(key);
|
|
165
|
+
if (!item) return void 0;
|
|
166
|
+
if (item.expiry && Date.now() > item.expiry) {
|
|
167
|
+
this.cache.delete(key);
|
|
168
|
+
return void 0;
|
|
169
|
+
}
|
|
170
|
+
return item.value;
|
|
171
|
+
}
|
|
172
|
+
async set(key, value, ttl) {
|
|
173
|
+
const expiry = ttl ? Date.now() + ttl : void 0;
|
|
174
|
+
this.cache.set(key, { value, expiry });
|
|
175
|
+
}
|
|
176
|
+
async delete(key) {
|
|
177
|
+
return this.cache.delete(key);
|
|
178
|
+
}
|
|
179
|
+
async clear() {
|
|
180
|
+
this.cache.clear();
|
|
181
|
+
}
|
|
182
|
+
async has(key) {
|
|
183
|
+
const exists = this.cache.has(key);
|
|
184
|
+
if (!exists) return false;
|
|
185
|
+
const item = this.cache.get(key);
|
|
186
|
+
if (item?.expiry && Date.now() > item.expiry) {
|
|
187
|
+
this.cache.delete(key);
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
size() {
|
|
193
|
+
return this.cache.size;
|
|
194
|
+
}
|
|
195
|
+
keys() {
|
|
196
|
+
return Array.from(this.cache.keys());
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
class EventEmitter {
|
|
200
|
+
observers = [];
|
|
201
|
+
subscribe(observer) {
|
|
202
|
+
this.observers.push(observer);
|
|
203
|
+
return () => this.unsubscribe(observer);
|
|
204
|
+
}
|
|
205
|
+
unsubscribe(observer) {
|
|
206
|
+
const index = this.observers.indexOf(observer);
|
|
207
|
+
if (index > -1) {
|
|
208
|
+
this.observers.splice(index, 1);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
emit(event) {
|
|
212
|
+
for (const observer of this.observers) {
|
|
213
|
+
try {
|
|
214
|
+
const result = observer.notify(event);
|
|
215
|
+
if (result instanceof Promise) {
|
|
216
|
+
result.catch((error) => {
|
|
217
|
+
console.error("Observer error:", error);
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
} catch (error) {
|
|
221
|
+
console.error("Observer error:", error);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
getObserverCount() {
|
|
226
|
+
return this.observers.length;
|
|
227
|
+
}
|
|
228
|
+
removeAllObservers() {
|
|
229
|
+
this.observers = [];
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
class MiddlewarePipeline {
|
|
233
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
234
|
+
middleware = [];
|
|
235
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
236
|
+
use(middleware) {
|
|
237
|
+
this.middleware.push(middleware);
|
|
238
|
+
}
|
|
239
|
+
async processRequest(request) {
|
|
240
|
+
let processed = request;
|
|
241
|
+
for (const mw of this.middleware) {
|
|
242
|
+
if (mw.request) {
|
|
243
|
+
processed = await mw.request(processed);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return processed;
|
|
247
|
+
}
|
|
248
|
+
async processResponse(response) {
|
|
249
|
+
let processed = response;
|
|
250
|
+
for (const mw of this.middleware.slice().reverse()) {
|
|
251
|
+
if (mw.response) {
|
|
252
|
+
processed = await mw.response(processed);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return processed;
|
|
256
|
+
}
|
|
257
|
+
async handleError(error, request) {
|
|
258
|
+
for (const mw of this.middleware) {
|
|
259
|
+
if (mw.error) {
|
|
260
|
+
const result = await mw.error(error, request);
|
|
261
|
+
if (result) {
|
|
262
|
+
return result;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
268
|
+
getMiddleware() {
|
|
269
|
+
return [...this.middleware];
|
|
270
|
+
}
|
|
271
|
+
clear() {
|
|
272
|
+
this.middleware = [];
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
class AsyncQueue {
|
|
276
|
+
constructor(concurrency = 1) {
|
|
277
|
+
this.concurrency = concurrency;
|
|
278
|
+
}
|
|
279
|
+
queue = [];
|
|
280
|
+
running = 0;
|
|
281
|
+
async add(operation) {
|
|
282
|
+
return new Promise((resolve, reject) => {
|
|
283
|
+
this.queue.push(async () => {
|
|
284
|
+
try {
|
|
285
|
+
const result = await operation();
|
|
286
|
+
resolve(result);
|
|
287
|
+
return result;
|
|
288
|
+
} catch (error) {
|
|
289
|
+
reject(error);
|
|
290
|
+
throw error;
|
|
291
|
+
} finally {
|
|
292
|
+
this.running--;
|
|
293
|
+
this.processQueue();
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
this.processQueue();
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
processQueue() {
|
|
300
|
+
while (this.running < this.concurrency && this.queue.length > 0) {
|
|
301
|
+
const operation = this.queue.shift();
|
|
302
|
+
if (operation) {
|
|
303
|
+
this.running++;
|
|
304
|
+
operation().catch(() => {
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
get pending() {
|
|
310
|
+
return this.queue.length;
|
|
311
|
+
}
|
|
312
|
+
get active() {
|
|
313
|
+
return this.running;
|
|
314
|
+
}
|
|
315
|
+
get size() {
|
|
316
|
+
return this.queue.length + this.running;
|
|
317
|
+
}
|
|
318
|
+
clear() {
|
|
319
|
+
this.queue = [];
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
class CircuitBreaker {
|
|
323
|
+
constructor(config) {
|
|
324
|
+
this.config = config;
|
|
325
|
+
}
|
|
326
|
+
state = "closed";
|
|
327
|
+
failures = 0;
|
|
328
|
+
lastFailureTime = 0;
|
|
329
|
+
successes = 0;
|
|
330
|
+
async execute(operation) {
|
|
331
|
+
if (this.state === "open") {
|
|
332
|
+
if (Date.now() - this.lastFailureTime > this.config.recoveryTimeout) {
|
|
333
|
+
this.state = "half-open";
|
|
334
|
+
this.successes = 0;
|
|
335
|
+
} else {
|
|
336
|
+
throw new Error("Circuit breaker is open");
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
try {
|
|
340
|
+
const result = await operation();
|
|
341
|
+
this.onSuccess();
|
|
342
|
+
return result;
|
|
343
|
+
} catch (error) {
|
|
344
|
+
this.onFailure();
|
|
345
|
+
throw error;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
onSuccess() {
|
|
349
|
+
this.failures = 0;
|
|
350
|
+
if (this.state === "half-open") {
|
|
351
|
+
this.successes++;
|
|
352
|
+
if (this.successes >= (this.config.halfOpenMaxAttempts || 1)) {
|
|
353
|
+
this.state = "closed";
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
onFailure() {
|
|
358
|
+
this.failures++;
|
|
359
|
+
this.lastFailureTime = Date.now();
|
|
360
|
+
if (this.failures >= this.config.failureThreshold) {
|
|
361
|
+
this.state = "open";
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
getState() {
|
|
365
|
+
return this.state;
|
|
366
|
+
}
|
|
367
|
+
getFailures() {
|
|
368
|
+
return this.failures;
|
|
369
|
+
}
|
|
370
|
+
reset() {
|
|
371
|
+
this.state = "closed";
|
|
372
|
+
this.failures = 0;
|
|
373
|
+
this.successes = 0;
|
|
374
|
+
this.lastFailureTime = 0;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
378
|
+
0 && (module.exports = {
|
|
379
|
+
AsyncQueue,
|
|
380
|
+
BaseController,
|
|
381
|
+
CircuitBreaker,
|
|
382
|
+
EventEmitter,
|
|
383
|
+
MemoryCache,
|
|
384
|
+
MiddlewarePipeline,
|
|
385
|
+
RateLimiter,
|
|
386
|
+
RetryUtility
|
|
387
|
+
});
|
|
388
|
+
//# sourceMappingURL=generics.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/generics.ts"],"sourcesContent":["import type {\n Controller,\n ControllerContext,\n GenericRequest,\n GenericResponse,\n RetryConfig,\n RateLimiterConfig,\n Middleware,\n Cache,\n Observer,\n Observable,\n} from \"../types/generics\";\n\n/**\n * Base controller class with common functionality\n */\nexport abstract class BaseController<\n TContext extends ControllerContext = ControllerContext,\n> implements Controller<TContext>\n{\n public readonly context: TContext;\n\n constructor(context: TContext) {\n this.context = context;\n }\n\n /**\n * Execute a request with optional middleware pipeline\n *\n * @param request - The generic request object containing parameters and metadata\n * @param handler - The function that processes the request parameters\n * @param middleware - Optional array of middleware functions to apply\n * @returns Promise resolving to a generic response object\n */\n protected async executeRequest<TParams, TResponse>(\n request: GenericRequest<TParams>,\n handler: (params: TParams) => Promise<TResponse>,\n middleware: Middleware[] = [],\n ): Promise<GenericResponse<TResponse>> {\n try {\n // Apply request middleware\n let processedRequest = request;\n for (const mw of middleware) {\n if (mw.request) {\n processedRequest = (await mw.request(\n processedRequest,\n )) as GenericRequest<TParams>;\n }\n }\n\n // Execute handler\n let response = await handler(processedRequest.params);\n\n // Apply response middleware\n for (const mw of middleware.reverse()) {\n if (mw.response) {\n response = (await mw.response(response)) as Awaited<TResponse>;\n }\n }\n\n return {\n data: response,\n success: true,\n };\n } catch (error) {\n // Handle errors with middleware\n for (const mw of middleware) {\n if (mw.error) {\n const handled = await mw.error(error as Error, request);\n if (handled) {\n return {\n data: handled as TResponse,\n success: true,\n };\n }\n }\n }\n\n return {\n data: undefined as unknown as TResponse,\n success: false,\n error: {\n code: \"EXECUTION_ERROR\",\n message: error instanceof Error ? error.message : \"Unknown error\",\n details: error,\n },\n };\n }\n }\n\n /**\n * Validate parameters with optional custom validator\n *\n * @param params - The parameters to validate\n * @param validator - Optional function to validate parameter types\n * @throws Error if validation fails, asserts type if successful\n */\n protected validateParams<T>(\n params: unknown,\n validator?: (params: unknown) => params is T,\n ): asserts params is T {\n if (validator && !validator(params)) {\n throw new Error(\"Invalid parameters\");\n }\n }\n}\n\n/**\n * Generic retry utility with exponential backoff\n */\nexport class RetryUtility {\n private static async delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n static async withRetry<T>(\n operation: () => Promise<T>,\n config: RetryConfig,\n ): Promise<T> {\n let lastError: Error | undefined;\n\n for (let attempt = 1; attempt <= config.maxAttempts; attempt++) {\n try {\n return await operation();\n } catch (error) {\n lastError = error as Error;\n\n // Check if we should retry\n if (config.shouldRetry && !config.shouldRetry(lastError, attempt)) {\n throw lastError;\n }\n\n // Don't delay on the last attempt\n if (attempt === config.maxAttempts) {\n break;\n }\n\n // Calculate delay with exponential backoff and jitter\n const baseDelay =\n config.baseDelay *\n Math.pow(config.backoffMultiplier || 2, attempt - 1);\n const maxDelay = config.maxDelay || 30000;\n const jitter = config.jitter || 0;\n\n let delay = Math.min(baseDelay, maxDelay);\n\n if (jitter > 0) {\n delay += Math.random() * jitter * delay;\n }\n\n await this.delay(delay);\n }\n }\n\n throw lastError || new Error(\"Operation failed after retries\");\n }\n}\n\n/**\n * Generic rate limiter\n */\nexport class RateLimiter {\n private requests: number[] = [];\n\n constructor(private config: RateLimiterConfig) {}\n\n async checkLimit(): Promise<boolean> {\n const now = Date.now();\n const windowStart = now - this.config.windowMs;\n\n // Remove requests outside the window\n this.requests = this.requests.filter((time) => time > windowStart);\n\n // Check if we can make a request\n if (this.requests.length < this.config.requestsPerWindow) {\n this.requests.push(now);\n return true;\n }\n\n return false;\n }\n\n async waitForSlot(): Promise<void> {\n while (!(await this.checkLimit())) {\n await new Promise((resolve) => setTimeout(resolve, 100));\n }\n }\n\n getRemainingRequests(): number {\n const now = Date.now();\n const windowStart = now - this.config.windowMs;\n const activeRequests = this.requests.filter((time) => time > windowStart);\n return Math.max(0, this.config.requestsPerWindow - activeRequests.length);\n }\n\n getResetTime(): number {\n if (this.requests.length === 0) return 0;\n return Math.max(0, this.requests[0] + this.config.windowMs - Date.now());\n }\n}\n\n/**\n * Generic in-memory cache implementation\n */\nexport class MemoryCache<TKey = string, TValue = unknown>\n implements Cache<TKey, TValue>\n{\n private cache = new Map<TKey, { value: TValue; expiry?: number }>();\n\n async get(key: TKey): Promise<TValue | undefined> {\n const item = this.cache.get(key);\n\n if (!item) return undefined;\n\n // Check if expired\n if (item.expiry && Date.now() > item.expiry) {\n this.cache.delete(key);\n return undefined;\n }\n\n return item.value;\n }\n\n async set(key: TKey, value: TValue, ttl?: number): Promise<void> {\n const expiry = ttl ? Date.now() + ttl : undefined;\n this.cache.set(key, { value, expiry });\n }\n\n async delete(key: TKey): Promise<boolean> {\n return this.cache.delete(key);\n }\n\n async clear(): Promise<void> {\n this.cache.clear();\n }\n\n async has(key: TKey): Promise<boolean> {\n const exists = this.cache.has(key);\n if (!exists) return false;\n\n // Check expiry\n const item = this.cache.get(key);\n if (item?.expiry && Date.now() > item.expiry) {\n this.cache.delete(key);\n return false;\n }\n\n return true;\n }\n\n size(): number {\n return this.cache.size;\n }\n\n keys(): TKey[] {\n return Array.from(this.cache.keys());\n }\n}\n\n/**\n * Generic event emitter implementation\n */\nexport class EventEmitter<TEvent = unknown> implements Observable<TEvent> {\n private observers: Observer<TEvent>[] = [];\n\n subscribe(observer: Observer<TEvent>): () => void {\n this.observers.push(observer);\n\n return () => this.unsubscribe(observer);\n }\n\n unsubscribe(observer: Observer<TEvent>): void {\n const index = this.observers.indexOf(observer);\n if (index > -1) {\n this.observers.splice(index, 1);\n }\n }\n\n emit(event: TEvent): void {\n for (const observer of this.observers) {\n try {\n const result = observer.notify(event);\n if (result instanceof Promise) {\n result.catch((error) => {\n console.error(\"Observer error:\", error);\n });\n }\n } catch (error) {\n console.error(\"Observer error:\", error);\n }\n }\n }\n\n getObserverCount(): number {\n return this.observers.length;\n }\n\n removeAllObservers(): void {\n this.observers = [];\n }\n}\n\n/**\n * Generic middleware pipeline\n */\nexport class MiddlewarePipeline {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private middleware: Middleware<any, any>[] = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n use(middleware: Middleware<any, any>): void {\n this.middleware.push(middleware);\n }\n\n async processRequest<TRequest>(request: TRequest): Promise<TRequest> {\n let processed = request;\n\n for (const mw of this.middleware) {\n if (mw.request) {\n processed = await mw.request(processed);\n }\n }\n\n return processed;\n }\n\n async processResponse<TResponse>(response: TResponse): Promise<TResponse> {\n let processed = response;\n\n // Process in reverse order\n for (const mw of this.middleware.slice().reverse()) {\n if (mw.response) {\n processed = await mw.response(processed);\n }\n }\n\n return processed;\n }\n\n async handleError<TRequest, TResponse>(\n error: Error,\n request: TRequest,\n ): Promise<TResponse | void> {\n for (const mw of this.middleware) {\n if (mw.error) {\n const result = await mw.error(error, request);\n if (result) {\n return result;\n }\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getMiddleware(): Middleware<any, any>[] {\n return [...this.middleware];\n }\n\n clear(): void {\n this.middleware = [];\n }\n}\n\n/**\n * Generic async queue for managing concurrent operations\n */\nexport class AsyncQueue<T = unknown> {\n private queue: Array<() => Promise<T>> = [];\n private running = 0;\n\n constructor(private concurrency = 1) {}\n\n async add<R>(operation: () => Promise<R>): Promise<R> {\n return new Promise((resolve, reject) => {\n this.queue.push(async () => {\n try {\n const result = await operation();\n resolve(result as unknown as R);\n return result as unknown as T;\n } catch (error) {\n reject(error);\n throw error;\n } finally {\n this.running--;\n this.processQueue();\n }\n });\n\n this.processQueue();\n });\n }\n\n private processQueue(): void {\n while (this.running < this.concurrency && this.queue.length > 0) {\n const operation = this.queue.shift();\n if (operation) {\n this.running++;\n operation().catch(() => {\n // Error already handled in add method\n });\n }\n }\n }\n\n get pending(): number {\n return this.queue.length;\n }\n\n get active(): number {\n return this.running;\n }\n\n get size(): number {\n return this.queue.length + this.running;\n }\n\n clear(): void {\n this.queue = [];\n }\n}\n\n/**\n * Generic circuit breaker pattern\n */\nexport class CircuitBreaker {\n private state: \"closed\" | \"open\" | \"half-open\" = \"closed\";\n private failures = 0;\n private lastFailureTime = 0;\n private successes = 0;\n\n constructor(\n private config: {\n failureThreshold: number;\n recoveryTimeout: number;\n halfOpenMaxAttempts?: number;\n },\n ) {}\n\n async execute<TResult>(operation: () => Promise<TResult>): Promise<TResult> {\n if (this.state === \"open\") {\n if (Date.now() - this.lastFailureTime > this.config.recoveryTimeout) {\n this.state = \"half-open\";\n this.successes = 0;\n } else {\n throw new Error(\"Circuit breaker is open\");\n }\n }\n\n try {\n const result = await operation();\n this.onSuccess();\n return result;\n } catch (error) {\n this.onFailure();\n throw error;\n }\n }\n\n private onSuccess(): void {\n this.failures = 0;\n\n if (this.state === \"half-open\") {\n this.successes++;\n if (this.successes >= (this.config.halfOpenMaxAttempts || 1)) {\n this.state = \"closed\";\n }\n }\n }\n\n private onFailure(): void {\n this.failures++;\n this.lastFailureTime = Date.now();\n\n if (this.failures >= this.config.failureThreshold) {\n this.state = \"open\";\n }\n }\n\n getState(): string {\n return this.state;\n }\n\n getFailures(): number {\n return this.failures;\n }\n\n reset(): void {\n this.state = \"closed\";\n this.failures = 0;\n this.successes = 0;\n this.lastFailureTime = 0;\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { ControllerContext, Controller, GenericRequest, Middleware, GenericResponse, RetryConfig, RateLimiterConfig, Cache, Observable, Observer } from '../types/generics.cjs';
|
|
2
|
+
import 'viem';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Base controller class with common functionality
|
|
6
|
+
*/
|
|
7
|
+
declare abstract class BaseController<TContext extends ControllerContext = ControllerContext> implements Controller<TContext> {
|
|
8
|
+
readonly context: TContext;
|
|
9
|
+
constructor(context: TContext);
|
|
10
|
+
/**
|
|
11
|
+
* Execute a request with optional middleware pipeline
|
|
12
|
+
*
|
|
13
|
+
* @param request - The generic request object containing parameters and metadata
|
|
14
|
+
* @param handler - The function that processes the request parameters
|
|
15
|
+
* @param middleware - Optional array of middleware functions to apply
|
|
16
|
+
* @returns Promise resolving to a generic response object
|
|
17
|
+
*/
|
|
18
|
+
protected executeRequest<TParams, TResponse>(request: GenericRequest<TParams>, handler: (params: TParams) => Promise<TResponse>, middleware?: Middleware[]): Promise<GenericResponse<TResponse>>;
|
|
19
|
+
/**
|
|
20
|
+
* Validate parameters with optional custom validator
|
|
21
|
+
*
|
|
22
|
+
* @param params - The parameters to validate
|
|
23
|
+
* @param validator - Optional function to validate parameter types
|
|
24
|
+
* @throws Error if validation fails, asserts type if successful
|
|
25
|
+
*/
|
|
26
|
+
protected validateParams<T>(params: unknown, validator?: (params: unknown) => params is T): asserts params is T;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Generic retry utility with exponential backoff
|
|
30
|
+
*/
|
|
31
|
+
declare class RetryUtility {
|
|
32
|
+
private static delay;
|
|
33
|
+
static withRetry<T>(operation: () => Promise<T>, config: RetryConfig): Promise<T>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Generic rate limiter
|
|
37
|
+
*/
|
|
38
|
+
declare class RateLimiter {
|
|
39
|
+
private config;
|
|
40
|
+
private requests;
|
|
41
|
+
constructor(config: RateLimiterConfig);
|
|
42
|
+
checkLimit(): Promise<boolean>;
|
|
43
|
+
waitForSlot(): Promise<void>;
|
|
44
|
+
getRemainingRequests(): number;
|
|
45
|
+
getResetTime(): number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Generic in-memory cache implementation
|
|
49
|
+
*/
|
|
50
|
+
declare class MemoryCache<TKey = string, TValue = unknown> implements Cache<TKey, TValue> {
|
|
51
|
+
private cache;
|
|
52
|
+
get(key: TKey): Promise<TValue | undefined>;
|
|
53
|
+
set(key: TKey, value: TValue, ttl?: number): Promise<void>;
|
|
54
|
+
delete(key: TKey): Promise<boolean>;
|
|
55
|
+
clear(): Promise<void>;
|
|
56
|
+
has(key: TKey): Promise<boolean>;
|
|
57
|
+
size(): number;
|
|
58
|
+
keys(): TKey[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Generic event emitter implementation
|
|
62
|
+
*/
|
|
63
|
+
declare class EventEmitter<TEvent = unknown> implements Observable<TEvent> {
|
|
64
|
+
private observers;
|
|
65
|
+
subscribe(observer: Observer<TEvent>): () => void;
|
|
66
|
+
unsubscribe(observer: Observer<TEvent>): void;
|
|
67
|
+
emit(event: TEvent): void;
|
|
68
|
+
getObserverCount(): number;
|
|
69
|
+
removeAllObservers(): void;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Generic middleware pipeline
|
|
73
|
+
*/
|
|
74
|
+
declare class MiddlewarePipeline {
|
|
75
|
+
private middleware;
|
|
76
|
+
use(middleware: Middleware<any, any>): void;
|
|
77
|
+
processRequest<TRequest>(request: TRequest): Promise<TRequest>;
|
|
78
|
+
processResponse<TResponse>(response: TResponse): Promise<TResponse>;
|
|
79
|
+
handleError<TRequest, TResponse>(error: Error, request: TRequest): Promise<TResponse | void>;
|
|
80
|
+
getMiddleware(): Middleware<any, any>[];
|
|
81
|
+
clear(): void;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Generic async queue for managing concurrent operations
|
|
85
|
+
*/
|
|
86
|
+
declare class AsyncQueue<T = unknown> {
|
|
87
|
+
private concurrency;
|
|
88
|
+
private queue;
|
|
89
|
+
private running;
|
|
90
|
+
constructor(concurrency?: number);
|
|
91
|
+
add<R>(operation: () => Promise<R>): Promise<R>;
|
|
92
|
+
private processQueue;
|
|
93
|
+
get pending(): number;
|
|
94
|
+
get active(): number;
|
|
95
|
+
get size(): number;
|
|
96
|
+
clear(): void;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Generic circuit breaker pattern
|
|
100
|
+
*/
|
|
101
|
+
declare class CircuitBreaker {
|
|
102
|
+
private config;
|
|
103
|
+
private state;
|
|
104
|
+
private failures;
|
|
105
|
+
private lastFailureTime;
|
|
106
|
+
private successes;
|
|
107
|
+
constructor(config: {
|
|
108
|
+
failureThreshold: number;
|
|
109
|
+
recoveryTimeout: number;
|
|
110
|
+
halfOpenMaxAttempts?: number;
|
|
111
|
+
});
|
|
112
|
+
execute<TResult>(operation: () => Promise<TResult>): Promise<TResult>;
|
|
113
|
+
private onSuccess;
|
|
114
|
+
private onFailure;
|
|
115
|
+
getState(): string;
|
|
116
|
+
getFailures(): number;
|
|
117
|
+
reset(): void;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export { AsyncQueue, BaseController, CircuitBreaker, EventEmitter, MemoryCache, MiddlewarePipeline, RateLimiter, RetryUtility };
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { ControllerContext, Controller, GenericRequest, Middleware, GenericResponse, RetryConfig, RateLimiterConfig, Cache, Observable, Observer } from '../types/generics.js';
|
|
2
|
+
import 'viem';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Base controller class with common functionality
|
|
6
|
+
*/
|
|
7
|
+
declare abstract class BaseController<TContext extends ControllerContext = ControllerContext> implements Controller<TContext> {
|
|
8
|
+
readonly context: TContext;
|
|
9
|
+
constructor(context: TContext);
|
|
10
|
+
/**
|
|
11
|
+
* Execute a request with optional middleware pipeline
|
|
12
|
+
*
|
|
13
|
+
* @param request - The generic request object containing parameters and metadata
|
|
14
|
+
* @param handler - The function that processes the request parameters
|
|
15
|
+
* @param middleware - Optional array of middleware functions to apply
|
|
16
|
+
* @returns Promise resolving to a generic response object
|
|
17
|
+
*/
|
|
18
|
+
protected executeRequest<TParams, TResponse>(request: GenericRequest<TParams>, handler: (params: TParams) => Promise<TResponse>, middleware?: Middleware[]): Promise<GenericResponse<TResponse>>;
|
|
19
|
+
/**
|
|
20
|
+
* Validate parameters with optional custom validator
|
|
21
|
+
*
|
|
22
|
+
* @param params - The parameters to validate
|
|
23
|
+
* @param validator - Optional function to validate parameter types
|
|
24
|
+
* @throws Error if validation fails, asserts type if successful
|
|
25
|
+
*/
|
|
26
|
+
protected validateParams<T>(params: unknown, validator?: (params: unknown) => params is T): asserts params is T;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Generic retry utility with exponential backoff
|
|
30
|
+
*/
|
|
31
|
+
declare class RetryUtility {
|
|
32
|
+
private static delay;
|
|
33
|
+
static withRetry<T>(operation: () => Promise<T>, config: RetryConfig): Promise<T>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Generic rate limiter
|
|
37
|
+
*/
|
|
38
|
+
declare class RateLimiter {
|
|
39
|
+
private config;
|
|
40
|
+
private requests;
|
|
41
|
+
constructor(config: RateLimiterConfig);
|
|
42
|
+
checkLimit(): Promise<boolean>;
|
|
43
|
+
waitForSlot(): Promise<void>;
|
|
44
|
+
getRemainingRequests(): number;
|
|
45
|
+
getResetTime(): number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Generic in-memory cache implementation
|
|
49
|
+
*/
|
|
50
|
+
declare class MemoryCache<TKey = string, TValue = unknown> implements Cache<TKey, TValue> {
|
|
51
|
+
private cache;
|
|
52
|
+
get(key: TKey): Promise<TValue | undefined>;
|
|
53
|
+
set(key: TKey, value: TValue, ttl?: number): Promise<void>;
|
|
54
|
+
delete(key: TKey): Promise<boolean>;
|
|
55
|
+
clear(): Promise<void>;
|
|
56
|
+
has(key: TKey): Promise<boolean>;
|
|
57
|
+
size(): number;
|
|
58
|
+
keys(): TKey[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Generic event emitter implementation
|
|
62
|
+
*/
|
|
63
|
+
declare class EventEmitter<TEvent = unknown> implements Observable<TEvent> {
|
|
64
|
+
private observers;
|
|
65
|
+
subscribe(observer: Observer<TEvent>): () => void;
|
|
66
|
+
unsubscribe(observer: Observer<TEvent>): void;
|
|
67
|
+
emit(event: TEvent): void;
|
|
68
|
+
getObserverCount(): number;
|
|
69
|
+
removeAllObservers(): void;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Generic middleware pipeline
|
|
73
|
+
*/
|
|
74
|
+
declare class MiddlewarePipeline {
|
|
75
|
+
private middleware;
|
|
76
|
+
use(middleware: Middleware<any, any>): void;
|
|
77
|
+
processRequest<TRequest>(request: TRequest): Promise<TRequest>;
|
|
78
|
+
processResponse<TResponse>(response: TResponse): Promise<TResponse>;
|
|
79
|
+
handleError<TRequest, TResponse>(error: Error, request: TRequest): Promise<TResponse | void>;
|
|
80
|
+
getMiddleware(): Middleware<any, any>[];
|
|
81
|
+
clear(): void;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Generic async queue for managing concurrent operations
|
|
85
|
+
*/
|
|
86
|
+
declare class AsyncQueue<T = unknown> {
|
|
87
|
+
private concurrency;
|
|
88
|
+
private queue;
|
|
89
|
+
private running;
|
|
90
|
+
constructor(concurrency?: number);
|
|
91
|
+
add<R>(operation: () => Promise<R>): Promise<R>;
|
|
92
|
+
private processQueue;
|
|
93
|
+
get pending(): number;
|
|
94
|
+
get active(): number;
|
|
95
|
+
get size(): number;
|
|
96
|
+
clear(): void;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Generic circuit breaker pattern
|
|
100
|
+
*/
|
|
101
|
+
declare class CircuitBreaker {
|
|
102
|
+
private config;
|
|
103
|
+
private state;
|
|
104
|
+
private failures;
|
|
105
|
+
private lastFailureTime;
|
|
106
|
+
private successes;
|
|
107
|
+
constructor(config: {
|
|
108
|
+
failureThreshold: number;
|
|
109
|
+
recoveryTimeout: number;
|
|
110
|
+
halfOpenMaxAttempts?: number;
|
|
111
|
+
});
|
|
112
|
+
execute<TResult>(operation: () => Promise<TResult>): Promise<TResult>;
|
|
113
|
+
private onSuccess;
|
|
114
|
+
private onFailure;
|
|
115
|
+
getState(): string;
|
|
116
|
+
getFailures(): number;
|
|
117
|
+
reset(): void;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export { AsyncQueue, BaseController, CircuitBreaker, EventEmitter, MemoryCache, MiddlewarePipeline, RateLimiter, RetryUtility };
|