@opendatalabs/vana-sdk 2.2.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. package/README.md +76 -92
  2. package/dist/auth/errors.cjs +54 -0
  3. package/dist/auth/errors.cjs.map +1 -0
  4. package/dist/auth/errors.d.ts +26 -0
  5. package/dist/auth/errors.js +28 -0
  6. package/dist/auth/errors.js.map +1 -0
  7. package/dist/auth/pkce.cjs +100 -0
  8. package/dist/auth/pkce.cjs.map +1 -0
  9. package/dist/auth/pkce.d.ts +55 -0
  10. package/dist/auth/pkce.js +71 -0
  11. package/dist/auth/pkce.js.map +1 -0
  12. package/dist/auth/token-store.cjs +59 -0
  13. package/dist/auth/token-store.cjs.map +1 -0
  14. package/dist/auth/token-store.d.ts +61 -0
  15. package/dist/auth/token-store.js +35 -0
  16. package/dist/auth/token-store.js.map +1 -0
  17. package/dist/auth/web3-signed-builder.cjs +70 -0
  18. package/dist/auth/web3-signed-builder.cjs.map +1 -0
  19. package/dist/auth/web3-signed-builder.d.ts +47 -0
  20. package/dist/auth/web3-signed-builder.js +45 -0
  21. package/dist/auth/web3-signed-builder.js.map +1 -0
  22. package/dist/auth/web3-signed.cjs +125 -0
  23. package/dist/auth/web3-signed.cjs.map +1 -0
  24. package/dist/auth/web3-signed.d.ts +59 -0
  25. package/dist/auth/web3-signed.js +104 -0
  26. package/dist/auth/web3-signed.js.map +1 -0
  27. package/dist/chains/definitions.cjs +2 -6
  28. package/dist/chains/definitions.cjs.map +1 -1
  29. package/dist/chains/definitions.d.ts +1 -7
  30. package/dist/chains/definitions.js +2 -6
  31. package/dist/chains/definitions.js.map +1 -1
  32. package/dist/config/chains.d.ts +18 -0
  33. package/dist/config/contracts.config.cjs +7 -95
  34. package/dist/config/contracts.config.cjs.map +1 -1
  35. package/dist/config/contracts.config.d.ts +0 -54
  36. package/dist/config/contracts.config.js +6 -93
  37. package/dist/config/contracts.config.js.map +1 -1
  38. package/dist/config/default-services.cjs +0 -10
  39. package/dist/config/default-services.cjs.map +1 -1
  40. package/dist/config/default-services.d.ts +1 -20
  41. package/dist/config/default-services.js +0 -9
  42. package/dist/config/default-services.js.map +1 -1
  43. package/dist/crypto/ecies/interface.cjs +2 -0
  44. package/dist/crypto/ecies/interface.cjs.map +1 -1
  45. package/dist/crypto/ecies/interface.js +2 -0
  46. package/dist/crypto/ecies/interface.js.map +1 -1
  47. package/dist/crypto/envelope/openpgp.cjs +59 -0
  48. package/dist/crypto/envelope/openpgp.cjs.map +1 -0
  49. package/dist/crypto/envelope/openpgp.d.ts +28 -0
  50. package/dist/crypto/envelope/openpgp.js +24 -0
  51. package/dist/crypto/envelope/openpgp.js.map +1 -0
  52. package/dist/crypto/keys/derive.cjs +65 -0
  53. package/dist/crypto/keys/derive.cjs.map +1 -0
  54. package/dist/crypto/keys/derive.d.ts +45 -0
  55. package/dist/crypto/keys/derive.js +38 -0
  56. package/dist/crypto/keys/derive.js.map +1 -0
  57. package/dist/errors.cjs +10 -0
  58. package/dist/errors.cjs.map +1 -1
  59. package/dist/errors.js +10 -0
  60. package/dist/errors.js.map +1 -1
  61. package/dist/generated/abi/VanaPoolEntityImplementation.cjs +65 -0
  62. package/dist/generated/abi/VanaPoolEntityImplementation.cjs.map +1 -1
  63. package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +51 -0
  64. package/dist/generated/abi/VanaPoolEntityImplementation.js +65 -0
  65. package/dist/generated/abi/VanaPoolEntityImplementation.js.map +1 -1
  66. package/dist/generated/abi/VanaPoolStakingImplementation.cjs +187 -19
  67. package/dist/generated/abi/VanaPoolStakingImplementation.cjs.map +1 -1
  68. package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +144 -14
  69. package/dist/generated/abi/VanaPoolStakingImplementation.js +187 -19
  70. package/dist/generated/abi/VanaPoolStakingImplementation.js.map +1 -1
  71. package/dist/generated/abi/index.cjs +2 -37
  72. package/dist/generated/abi/index.cjs.map +1 -1
  73. package/dist/generated/abi/index.d.ts +2687 -9119
  74. package/dist/generated/abi/index.js +2 -29
  75. package/dist/generated/abi/index.js.map +1 -1
  76. package/dist/generated/addresses.cjs +5 -107
  77. package/dist/generated/addresses.cjs.map +1 -1
  78. package/dist/generated/addresses.d.ts +5 -99
  79. package/dist/generated/addresses.js +5 -105
  80. package/dist/generated/addresses.js.map +1 -1
  81. package/dist/index.browser.d.ts +23 -138
  82. package/dist/index.browser.js +32090 -112
  83. package/dist/index.browser.js.map +7 -1
  84. package/dist/index.node.cjs +32809 -157
  85. package/dist/index.node.cjs.map +7 -1
  86. package/dist/index.node.d.ts +22 -208
  87. package/dist/index.node.js +32716 -131
  88. package/dist/index.node.js.map +7 -1
  89. package/dist/protocol/data-file.cjs +56 -0
  90. package/dist/protocol/data-file.cjs.map +1 -0
  91. package/dist/protocol/data-file.d.ts +20 -0
  92. package/dist/protocol/data-file.js +30 -0
  93. package/dist/protocol/data-file.js.map +1 -0
  94. package/dist/protocol/eip712.cjs +123 -0
  95. package/dist/protocol/eip712.cjs.map +1 -0
  96. package/dist/protocol/eip712.d.ts +117 -0
  97. package/dist/protocol/eip712.js +90 -0
  98. package/dist/protocol/eip712.js.map +1 -0
  99. package/dist/protocol/gateway.cjs +226 -0
  100. package/dist/protocol/gateway.cjs.map +1 -0
  101. package/dist/protocol/gateway.d.ts +120 -0
  102. package/dist/protocol/gateway.js +202 -0
  103. package/dist/protocol/gateway.js.map +1 -0
  104. package/dist/protocol/scopes.cjs +78 -0
  105. package/dist/protocol/scopes.cjs.map +1 -0
  106. package/dist/protocol/scopes.d.ts +13 -0
  107. package/dist/protocol/scopes.js +50 -0
  108. package/dist/protocol/scopes.js.map +1 -0
  109. package/dist/{types/atomicStore.cjs → storage/default.cjs} +9 -8
  110. package/dist/storage/default.cjs.map +1 -0
  111. package/dist/storage/default.d.ts +4 -0
  112. package/dist/storage/default.js +8 -0
  113. package/dist/storage/default.js.map +1 -0
  114. package/dist/storage/index.cjs +11 -2
  115. package/dist/storage/index.cjs.map +1 -1
  116. package/dist/storage/index.d.ts +9 -0
  117. package/dist/storage/index.js +7 -1
  118. package/dist/storage/index.js.map +1 -1
  119. package/dist/storage/providers/callback-storage.cjs +1 -0
  120. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  121. package/dist/storage/providers/callback-storage.js +1 -0
  122. package/dist/storage/providers/callback-storage.js.map +1 -1
  123. package/dist/storage/providers/dropbox.cjs +1 -0
  124. package/dist/storage/providers/dropbox.cjs.map +1 -1
  125. package/dist/storage/providers/dropbox.js +1 -0
  126. package/dist/storage/providers/dropbox.js.map +1 -1
  127. package/dist/storage/providers/google-drive.cjs +1 -0
  128. package/dist/storage/providers/google-drive.cjs.map +1 -1
  129. package/dist/storage/providers/google-drive.js +1 -0
  130. package/dist/storage/providers/google-drive.js.map +1 -1
  131. package/dist/storage/providers/ipfs.cjs +1 -0
  132. package/dist/storage/providers/ipfs.cjs.map +1 -1
  133. package/dist/storage/providers/ipfs.js +1 -0
  134. package/dist/storage/providers/ipfs.js.map +1 -1
  135. package/dist/storage/providers/pinata.cjs +1 -0
  136. package/dist/storage/providers/pinata.cjs.map +1 -1
  137. package/dist/storage/providers/pinata.js +1 -0
  138. package/dist/storage/providers/pinata.js.map +1 -1
  139. package/dist/storage/providers/r2.cjs +376 -0
  140. package/dist/storage/providers/r2.cjs.map +1 -0
  141. package/dist/storage/providers/r2.d.ts +91 -0
  142. package/dist/storage/providers/r2.js +354 -0
  143. package/dist/storage/providers/r2.js.map +1 -0
  144. package/dist/storage/providers/vana-storage.cjs +251 -0
  145. package/dist/storage/providers/vana-storage.cjs.map +1 -0
  146. package/dist/storage/providers/vana-storage.d.ts +100 -0
  147. package/dist/storage/providers/vana-storage.js +231 -0
  148. package/dist/storage/providers/vana-storage.js.map +1 -0
  149. package/dist/types/config.cjs +0 -34
  150. package/dist/types/config.cjs.map +1 -1
  151. package/dist/types/config.d.ts +1 -607
  152. package/dist/types/config.js +0 -22
  153. package/dist/types/config.js.map +1 -1
  154. package/dist/types/contracts.cjs.map +1 -1
  155. package/dist/types/contracts.d.ts +1 -1
  156. package/dist/types/index.cjs +2 -33
  157. package/dist/types/index.cjs.map +1 -1
  158. package/dist/types/index.d.ts +2 -33
  159. package/dist/types/index.js +1 -35
  160. package/dist/types/index.js.map +1 -1
  161. package/dist/types/ps-errors.cjs +66 -0
  162. package/dist/types/ps-errors.cjs.map +1 -0
  163. package/dist/types/ps-errors.d.ts +25 -0
  164. package/dist/types/ps-errors.js +41 -0
  165. package/dist/types/ps-errors.js.map +1 -0
  166. package/dist/types.cjs.map +1 -1
  167. package/dist/types.d.ts +0 -29
  168. package/dist/types.js.map +1 -1
  169. package/package.json +7 -25
  170. package/dist/client/enhancedResponse.cjs +0 -164
  171. package/dist/client/enhancedResponse.cjs.map +0 -1
  172. package/dist/client/enhancedResponse.d.ts +0 -120
  173. package/dist/client/enhancedResponse.js +0 -138
  174. package/dist/client/enhancedResponse.js.map +0 -1
  175. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +0 -7
  176. package/dist/controllers/base.cjs +0 -116
  177. package/dist/controllers/base.cjs.map +0 -1
  178. package/dist/controllers/base.d.ts +0 -94
  179. package/dist/controllers/base.js +0 -92
  180. package/dist/controllers/base.js.map +0 -1
  181. package/dist/controllers/data.cjs +0 -2633
  182. package/dist/controllers/data.cjs.map +0 -1
  183. package/dist/controllers/data.d.ts +0 -1067
  184. package/dist/controllers/data.js +0 -2626
  185. package/dist/controllers/data.js.map +0 -1
  186. package/dist/controllers/operations.cjs +0 -430
  187. package/dist/controllers/operations.cjs.map +0 -1
  188. package/dist/controllers/operations.d.ts +0 -229
  189. package/dist/controllers/operations.js +0 -406
  190. package/dist/controllers/operations.js.map +0 -1
  191. package/dist/controllers/permissions.cjs +0 -4368
  192. package/dist/controllers/permissions.cjs.map +0 -1
  193. package/dist/controllers/permissions.d.ts +0 -1411
  194. package/dist/controllers/permissions.js +0 -4344
  195. package/dist/controllers/permissions.js.map +0 -1
  196. package/dist/controllers/protocol.cjs +0 -183
  197. package/dist/controllers/protocol.cjs.map +0 -1
  198. package/dist/controllers/protocol.d.ts +0 -138
  199. package/dist/controllers/protocol.js +0 -163
  200. package/dist/controllers/protocol.js.map +0 -1
  201. package/dist/controllers/schemas.cjs +0 -678
  202. package/dist/controllers/schemas.cjs.map +0 -1
  203. package/dist/controllers/schemas.d.ts +0 -293
  204. package/dist/controllers/schemas.js +0 -654
  205. package/dist/controllers/schemas.js.map +0 -1
  206. package/dist/controllers/server.cjs +0 -643
  207. package/dist/controllers/server.cjs.map +0 -1
  208. package/dist/controllers/server.d.ts +0 -322
  209. package/dist/controllers/server.js +0 -624
  210. package/dist/controllers/server.js.map +0 -1
  211. package/dist/core/__tests__/pollingManager.test.d.ts +0 -4
  212. package/dist/core/apiClient.cjs +0 -378
  213. package/dist/core/apiClient.cjs.map +0 -1
  214. package/dist/core/apiClient.d.ts +0 -286
  215. package/dist/core/apiClient.js +0 -359
  216. package/dist/core/apiClient.js.map +0 -1
  217. package/dist/core/generics.cjs +0 -417
  218. package/dist/core/generics.cjs.map +0 -1
  219. package/dist/core/generics.d.ts +0 -205
  220. package/dist/core/generics.js +0 -386
  221. package/dist/core/generics.js.map +0 -1
  222. package/dist/core/health.cjs +0 -289
  223. package/dist/core/health.cjs.map +0 -1
  224. package/dist/core/health.d.ts +0 -143
  225. package/dist/core/health.js +0 -265
  226. package/dist/core/health.js.map +0 -1
  227. package/dist/core/inMemoryNonceManager.cjs +0 -138
  228. package/dist/core/inMemoryNonceManager.cjs.map +0 -1
  229. package/dist/core/inMemoryNonceManager.d.ts +0 -69
  230. package/dist/core/inMemoryNonceManager.js +0 -114
  231. package/dist/core/inMemoryNonceManager.js.map +0 -1
  232. package/dist/core/nonceManager.cjs +0 -304
  233. package/dist/core/nonceManager.cjs.map +0 -1
  234. package/dist/core/nonceManager.d.ts +0 -116
  235. package/dist/core/nonceManager.js +0 -280
  236. package/dist/core/nonceManager.js.map +0 -1
  237. package/dist/core/pollingManager.cjs +0 -292
  238. package/dist/core/pollingManager.cjs.map +0 -1
  239. package/dist/core/pollingManager.d.ts +0 -120
  240. package/dist/core/pollingManager.js +0 -268
  241. package/dist/core/pollingManager.js.map +0 -1
  242. package/dist/core.cjs +0 -777
  243. package/dist/core.cjs.map +0 -1
  244. package/dist/core.d.ts +0 -493
  245. package/dist/core.js +0 -752
  246. package/dist/core.js.map +0 -1
  247. package/dist/diagnostics.cjs +0 -37
  248. package/dist/diagnostics.cjs.map +0 -1
  249. package/dist/diagnostics.d.ts +0 -24
  250. package/dist/diagnostics.js +0 -13
  251. package/dist/diagnostics.js.map +0 -1
  252. package/dist/diagnostics.test.d.ts +0 -1
  253. package/dist/generated/abi/DLPPerformanceImplementation.cjs +0 -1202
  254. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +0 -1
  255. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +0 -914
  256. package/dist/generated/abi/DLPPerformanceImplementation.js +0 -1178
  257. package/dist/generated/abi/DLPPerformanceImplementation.js.map +0 -1
  258. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +0 -1112
  259. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +0 -1
  260. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +0 -840
  261. package/dist/generated/abi/DLPRewardDeployerImplementation.js +0 -1088
  262. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +0 -1
  263. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +0 -612
  264. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +0 -1
  265. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +0 -451
  266. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +0 -588
  267. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +0 -1
  268. package/dist/generated/abi/DLPRewardSwapImplementation.cjs +0 -939
  269. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +0 -1
  270. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +0 -705
  271. package/dist/generated/abi/DLPRewardSwapImplementation.js +0 -915
  272. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +0 -1
  273. package/dist/generated/abi/DLPRootImplementation.cjs +0 -1644
  274. package/dist/generated/abi/DLPRootImplementation.cjs.map +0 -1
  275. package/dist/generated/abi/DLPRootImplementation.d.ts +0 -1246
  276. package/dist/generated/abi/DLPRootImplementation.js +0 -1620
  277. package/dist/generated/abi/DLPRootImplementation.js.map +0 -1
  278. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +0 -985
  279. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +0 -1
  280. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +0 -735
  281. package/dist/generated/abi/DataLiquidityPoolImplementation.js +0 -961
  282. package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +0 -1
  283. package/dist/generated/abi/SwapHelperImplementation.cjs +0 -976
  284. package/dist/generated/abi/SwapHelperImplementation.cjs.map +0 -1
  285. package/dist/generated/abi/SwapHelperImplementation.d.ts +0 -728
  286. package/dist/generated/abi/SwapHelperImplementation.js +0 -952
  287. package/dist/generated/abi/SwapHelperImplementation.js.map +0 -1
  288. package/dist/generated/abi/TeePoolImplementation.cjs +0 -1313
  289. package/dist/generated/abi/TeePoolImplementation.cjs.map +0 -1
  290. package/dist/generated/abi/TeePoolImplementation.d.ts +0 -992
  291. package/dist/generated/abi/TeePoolImplementation.js +0 -1289
  292. package/dist/generated/abi/TeePoolImplementation.js.map +0 -1
  293. package/dist/generated/event-types.cjs +0 -17
  294. package/dist/generated/event-types.cjs.map +0 -1
  295. package/dist/generated/event-types.d.ts +0 -809
  296. package/dist/generated/event-types.js +0 -1
  297. package/dist/generated/event-types.js.map +0 -1
  298. package/dist/generated/eventRegistry.cjs +0 -4470
  299. package/dist/generated/eventRegistry.cjs.map +0 -1
  300. package/dist/generated/eventRegistry.d.ts +0 -14
  301. package/dist/generated/eventRegistry.js +0 -4445
  302. package/dist/generated/eventRegistry.js.map +0 -1
  303. package/dist/generated/server/server-exports.cjs +0 -45
  304. package/dist/generated/server/server-exports.cjs.map +0 -1
  305. package/dist/generated/server/server-exports.d.ts +0 -36
  306. package/dist/generated/server/server-exports.js +0 -19
  307. package/dist/generated/server/server-exports.js.map +0 -1
  308. package/dist/generated/server/server.cjs +0 -17
  309. package/dist/generated/server/server.cjs.map +0 -1
  310. package/dist/generated/server/server.d.ts +0 -907
  311. package/dist/generated/server/server.js +0 -1
  312. package/dist/generated/server/server.js.map +0 -1
  313. package/dist/generated/subgraph.cjs +0 -1440
  314. package/dist/generated/subgraph.cjs.map +0 -1
  315. package/dist/generated/subgraph.d.ts +0 -6113
  316. package/dist/generated/subgraph.js +0 -1404
  317. package/dist/generated/subgraph.js.map +0 -1
  318. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +0 -1
  319. package/dist/lib/redisAtomicStore.cjs +0 -201
  320. package/dist/lib/redisAtomicStore.cjs.map +0 -1
  321. package/dist/lib/redisAtomicStore.d.ts +0 -120
  322. package/dist/lib/redisAtomicStore.js +0 -177
  323. package/dist/lib/redisAtomicStore.js.map +0 -1
  324. package/dist/server/relayerHandler.cjs +0 -452
  325. package/dist/server/relayerHandler.cjs.map +0 -1
  326. package/dist/server/relayerHandler.d.ts +0 -69
  327. package/dist/server/relayerHandler.js +0 -428
  328. package/dist/server/relayerHandler.js.map +0 -1
  329. package/dist/tests/abi.test.d.ts +0 -1
  330. package/dist/tests/chains-definitions.test.d.ts +0 -1
  331. package/dist/tests/core-encryption.test.d.ts +0 -1
  332. package/dist/tests/core-extended.test.d.ts +0 -1
  333. package/dist/tests/core-generics-coverage.test.d.ts +0 -1
  334. package/dist/tests/coverage-boost.test.d.ts +0 -1
  335. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +0 -1
  336. package/dist/tests/data-addfile-permissions-schema.test.d.ts +0 -1
  337. package/dist/tests/data-additional-methods.test.d.ts +0 -1
  338. package/dist/tests/data-controller-edge-cases.test.d.ts +0 -1
  339. package/dist/tests/data-ipfs-gateways.test.d.ts +0 -1
  340. package/dist/tests/data-relayer.test.d.ts +0 -1
  341. package/dist/tests/data-schema-validation.test.d.ts +0 -1
  342. package/dist/tests/data-simple-methods.test.d.ts +0 -1
  343. package/dist/tests/data-upload-owner-validation.test.d.ts +0 -1
  344. package/dist/tests/data.test.d.ts +0 -1
  345. package/dist/tests/demo-integration.test.d.ts +0 -1
  346. package/dist/tests/demo-trusted-server-integration.test.d.ts +0 -1
  347. package/dist/tests/download-relayer.test.d.ts +0 -1
  348. package/dist/tests/dual-mode-permissions.test.d.ts +0 -1
  349. package/dist/tests/dual-mode-trusted-servers.test.d.ts +0 -1
  350. package/dist/tests/encryption-correct-implementation.test.d.ts +0 -1
  351. package/dist/tests/encryption-coverage.test.d.ts +0 -1
  352. package/dist/tests/encryption-edge-cases.test.d.ts +0 -1
  353. package/dist/tests/encryption-utils-updated.test.d.ts +0 -1
  354. package/dist/tests/errors-coverage.test.d.ts +0 -1
  355. package/dist/tests/factories/mockFactory.d.ts +0 -316
  356. package/dist/tests/fakes/FakeStorageManager.d.ts +0 -200
  357. package/dist/tests/fakes/FakeStorageManager.test.d.ts +0 -1
  358. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +0 -170
  359. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +0 -1
  360. package/dist/tests/fakes/fake-pgp-port.d.ts +0 -13
  361. package/dist/tests/grantValidation-edge-cases.test.d.ts +0 -1
  362. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +0 -1
  363. package/dist/tests/helper-methods.test.d.ts +0 -1
  364. package/dist/tests/helpers/typedMocks.d.ts +0 -64
  365. package/dist/tests/index-browser.test.d.ts +0 -1
  366. package/dist/tests/index-node.test.d.ts +0 -1
  367. package/dist/tests/index.test.d.ts +0 -1
  368. package/dist/tests/mocks/platformAdapter.d.ts +0 -12
  369. package/dist/tests/new-permissions-methods.test.d.ts +0 -1
  370. package/dist/tests/no-buffer-browser.test.d.ts +0 -1
  371. package/dist/tests/permissions-grantee.test.d.ts +0 -1
  372. package/dist/tests/permissions-revoke-relayer.test.d.ts +0 -1
  373. package/dist/tests/permissions-schema-validation.test.d.ts +0 -1
  374. package/dist/tests/permissions-server-files.test.d.ts +0 -1
  375. package/dist/tests/permissions-transaction-options.test.d.ts +0 -1
  376. package/dist/tests/permissions-trust-servers.test.d.ts +0 -1
  377. package/dist/tests/permissions.test.d.ts +0 -1
  378. package/dist/tests/personal.test.d.ts +0 -1
  379. package/dist/tests/platform-browser.test.d.ts +0 -1
  380. package/dist/tests/platform-crypto-expanded.test.d.ts +0 -1
  381. package/dist/tests/platform-crypto.test.d.ts +0 -1
  382. package/dist/tests/platform-index.test.d.ts +0 -1
  383. package/dist/tests/platform-node.test.d.ts +0 -1
  384. package/dist/tests/platform-shared-utils.test.d.ts +0 -1
  385. package/dist/tests/platform-updated.test.d.ts +0 -1
  386. package/dist/tests/protocol-additional-methods.test.d.ts +0 -1
  387. package/dist/tests/protocol.test.d.ts +0 -1
  388. package/dist/tests/read-only-mode.test.d.ts +0 -1
  389. package/dist/tests/relayer-integration.test.d.ts +0 -1
  390. package/dist/tests/relayer-unified.test.d.ts +0 -1
  391. package/dist/tests/schemas.test.d.ts +0 -1
  392. package/dist/tests/server-relayer-handler.test.d.ts +0 -1
  393. package/dist/tests/signatureFormatter.test.d.ts +0 -1
  394. package/dist/tests/trusted-server-queries.test.d.ts +0 -1
  395. package/dist/tests/typedDataConverter.test.d.ts +0 -1
  396. package/dist/tests/types-contracts.test.d.ts +0 -1
  397. package/dist/tests/types-data.test.d.ts +0 -1
  398. package/dist/tests/types-external-apis.test.d.ts +0 -1
  399. package/dist/tests/types-generics.test.d.ts +0 -1
  400. package/dist/tests/types-permissions.test.d.ts +0 -1
  401. package/dist/tests/types-upload-params.test.d.ts +0 -1
  402. package/dist/tests/types.test.d.ts +0 -1
  403. package/dist/tests/utils-formatters.test.d.ts +0 -1
  404. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +0 -1
  405. package/dist/tests/utils-grantFiles-validation.test.d.ts +0 -1
  406. package/dist/tests/utils-grantFiles.test.d.ts +0 -1
  407. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +0 -1
  408. package/dist/tests/utils-grants.test.d.ts +0 -1
  409. package/dist/tests/utils-ipfs-additional.test.d.ts +0 -1
  410. package/dist/tests/utils-ipfs.test.d.ts +0 -4
  411. package/dist/tests/utils-schemaValidation.test.d.ts +0 -1
  412. package/dist/tests/vana.test.d.ts +0 -1
  413. package/dist/tests/wallet-crypto-compatibility.test.d.ts +0 -1
  414. package/dist/types/atomicStore.cjs.map +0 -1
  415. package/dist/types/atomicStore.d.ts +0 -236
  416. package/dist/types/atomicStore.js +0 -7
  417. package/dist/types/atomicStore.js.map +0 -1
  418. package/dist/types/blockchain.cjs +0 -17
  419. package/dist/types/blockchain.cjs.map +0 -1
  420. package/dist/types/blockchain.d.ts +0 -85
  421. package/dist/types/blockchain.js +0 -1
  422. package/dist/types/blockchain.js.map +0 -1
  423. package/dist/types/controller-context.cjs +0 -17
  424. package/dist/types/controller-context.cjs.map +0 -1
  425. package/dist/types/controller-context.d.ts +0 -68
  426. package/dist/types/controller-context.js +0 -1
  427. package/dist/types/controller-context.js.map +0 -1
  428. package/dist/types/data.cjs +0 -17
  429. package/dist/types/data.cjs.map +0 -1
  430. package/dist/types/data.d.ts +0 -763
  431. package/dist/types/data.js +0 -1
  432. package/dist/types/data.js.map +0 -1
  433. package/dist/types/external-apis.cjs +0 -61
  434. package/dist/types/external-apis.cjs.map +0 -1
  435. package/dist/types/external-apis.d.ts +0 -184
  436. package/dist/types/external-apis.js +0 -34
  437. package/dist/types/external-apis.js.map +0 -1
  438. package/dist/types/generics.cjs +0 -17
  439. package/dist/types/generics.cjs.map +0 -1
  440. package/dist/types/generics.d.ts +0 -518
  441. package/dist/types/generics.js +0 -1
  442. package/dist/types/generics.js.map +0 -1
  443. package/dist/types/operationStore.cjs +0 -17
  444. package/dist/types/operationStore.cjs.map +0 -1
  445. package/dist/types/operationStore.d.ts +0 -171
  446. package/dist/types/operationStore.js +0 -1
  447. package/dist/types/operationStore.js.map +0 -1
  448. package/dist/types/operations.cjs +0 -53
  449. package/dist/types/operations.cjs.map +0 -1
  450. package/dist/types/operations.d.ts +0 -204
  451. package/dist/types/operations.js +0 -26
  452. package/dist/types/operations.js.map +0 -1
  453. package/dist/types/options.cjs +0 -17
  454. package/dist/types/options.cjs.map +0 -1
  455. package/dist/types/options.d.ts +0 -308
  456. package/dist/types/options.js +0 -1
  457. package/dist/types/options.js.map +0 -1
  458. package/dist/types/permissions.cjs +0 -17
  459. package/dist/types/permissions.cjs.map +0 -1
  460. package/dist/types/permissions.d.ts +0 -955
  461. package/dist/types/permissions.js +0 -1
  462. package/dist/types/permissions.js.map +0 -1
  463. package/dist/types/personal.cjs +0 -17
  464. package/dist/types/personal.cjs.map +0 -1
  465. package/dist/types/personal.d.ts +0 -174
  466. package/dist/types/personal.js +0 -1
  467. package/dist/types/personal.js.map +0 -1
  468. package/dist/types/relayer.cjs +0 -17
  469. package/dist/types/relayer.cjs.map +0 -1
  470. package/dist/types/relayer.d.ts +0 -552
  471. package/dist/types/relayer.js +0 -1
  472. package/dist/types/relayer.js.map +0 -1
  473. package/dist/types/transactionResults.cjs +0 -17
  474. package/dist/types/transactionResults.cjs.map +0 -1
  475. package/dist/types/transactionResults.d.ts +0 -193
  476. package/dist/types/transactionResults.js +0 -1
  477. package/dist/types/transactionResults.js.map +0 -1
  478. package/dist/types/utils.cjs +0 -17
  479. package/dist/types/utils.cjs.map +0 -1
  480. package/dist/types/utils.d.ts +0 -771
  481. package/dist/types/utils.js +0 -1
  482. package/dist/types/utils.js.map +0 -1
  483. package/dist/utils/__tests__/chainQuery.test.d.ts +0 -1
  484. package/dist/utils/__tests__/parseTransaction.test.d.ts +0 -1
  485. package/dist/utils/__tests__/pojo-serialization.test.d.ts +0 -1
  486. package/dist/utils/__tests__/signatureCache.test.d.ts +0 -1
  487. package/dist/utils/__tests__/subgraphConsistency.test.d.ts +0 -4
  488. package/dist/utils/__tests__/subgraphPagination.test.d.ts +0 -4
  489. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +0 -1
  490. package/dist/utils/__tests__/transactionHelpers.test.d.ts +0 -1
  491. package/dist/utils/__tests__/urlResolver.test.d.ts +0 -4
  492. package/dist/utils/blockchain/registry.cjs +0 -81
  493. package/dist/utils/blockchain/registry.cjs.map +0 -1
  494. package/dist/utils/blockchain/registry.d.ts +0 -32
  495. package/dist/utils/blockchain/registry.js +0 -56
  496. package/dist/utils/blockchain/registry.js.map +0 -1
  497. package/dist/utils/blockchain/registry.test.d.ts +0 -1
  498. package/dist/utils/chainQuery.cjs +0 -107
  499. package/dist/utils/chainQuery.cjs.map +0 -1
  500. package/dist/utils/chainQuery.d.ts +0 -31
  501. package/dist/utils/chainQuery.js +0 -82
  502. package/dist/utils/chainQuery.js.map +0 -1
  503. package/dist/utils/download.cjs +0 -69
  504. package/dist/utils/download.cjs.map +0 -1
  505. package/dist/utils/download.d.ts +0 -40
  506. package/dist/utils/download.js +0 -45
  507. package/dist/utils/download.js.map +0 -1
  508. package/dist/utils/encryption.cjs +0 -176
  509. package/dist/utils/encryption.cjs.map +0 -1
  510. package/dist/utils/encryption.d.ts +0 -271
  511. package/dist/utils/encryption.js +0 -142
  512. package/dist/utils/encryption.js.map +0 -1
  513. package/dist/utils/formatters.cjs +0 -55
  514. package/dist/utils/formatters.cjs.map +0 -1
  515. package/dist/utils/formatters.d.ts +0 -118
  516. package/dist/utils/formatters.js +0 -28
  517. package/dist/utils/formatters.js.map +0 -1
  518. package/dist/utils/grantFiles.cjs +0 -181
  519. package/dist/utils/grantFiles.cjs.map +0 -1
  520. package/dist/utils/grantFiles.d.ts +0 -172
  521. package/dist/utils/grantFiles.js +0 -143
  522. package/dist/utils/grantFiles.js.map +0 -1
  523. package/dist/utils/grantValidation.cjs +0 -243
  524. package/dist/utils/grantValidation.cjs.map +0 -1
  525. package/dist/utils/grantValidation.d.ts +0 -226
  526. package/dist/utils/grantValidation.js +0 -201
  527. package/dist/utils/grantValidation.js.map +0 -1
  528. package/dist/utils/grants.cjs +0 -108
  529. package/dist/utils/grants.cjs.map +0 -1
  530. package/dist/utils/grants.d.ts +0 -148
  531. package/dist/utils/grants.js +0 -82
  532. package/dist/utils/grants.js.map +0 -1
  533. package/dist/utils/ipfs.cjs +0 -128
  534. package/dist/utils/ipfs.cjs.map +0 -1
  535. package/dist/utils/ipfs.d.ts +0 -88
  536. package/dist/utils/ipfs.js +0 -97
  537. package/dist/utils/ipfs.js.map +0 -1
  538. package/dist/utils/multicall.cjs +0 -233
  539. package/dist/utils/multicall.cjs.map +0 -1
  540. package/dist/utils/multicall.d.ts +0 -126
  541. package/dist/utils/multicall.js +0 -208
  542. package/dist/utils/multicall.js.map +0 -1
  543. package/dist/utils/parseTransactionPojo.cjs +0 -87
  544. package/dist/utils/parseTransactionPojo.cjs.map +0 -1
  545. package/dist/utils/parseTransactionPojo.d.ts +0 -31
  546. package/dist/utils/parseTransactionPojo.js +0 -63
  547. package/dist/utils/parseTransactionPojo.js.map +0 -1
  548. package/dist/utils/schemaValidation.cjs +0 -258
  549. package/dist/utils/schemaValidation.cjs.map +0 -1
  550. package/dist/utils/schemaValidation.d.ts +0 -168
  551. package/dist/utils/schemaValidation.js +0 -219
  552. package/dist/utils/schemaValidation.js.map +0 -1
  553. package/dist/utils/signatureCache.cjs +0 -192
  554. package/dist/utils/signatureCache.cjs.map +0 -1
  555. package/dist/utils/signatureCache.d.ts +0 -172
  556. package/dist/utils/signatureCache.js +0 -167
  557. package/dist/utils/signatureCache.js.map +0 -1
  558. package/dist/utils/signatureFormatter.cjs +0 -42
  559. package/dist/utils/signatureFormatter.cjs.map +0 -1
  560. package/dist/utils/signatureFormatter.d.ts +0 -36
  561. package/dist/utils/signatureFormatter.js +0 -18
  562. package/dist/utils/signatureFormatter.js.map +0 -1
  563. package/dist/utils/subgraphConsistency.cjs +0 -184
  564. package/dist/utils/subgraphConsistency.cjs.map +0 -1
  565. package/dist/utils/subgraphConsistency.d.ts +0 -65
  566. package/dist/utils/subgraphConsistency.js +0 -155
  567. package/dist/utils/subgraphConsistency.js.map +0 -1
  568. package/dist/utils/subgraphMetaCache.cjs +0 -101
  569. package/dist/utils/subgraphMetaCache.cjs.map +0 -1
  570. package/dist/utils/subgraphMetaCache.d.ts +0 -56
  571. package/dist/utils/subgraphMetaCache.js +0 -76
  572. package/dist/utils/subgraphMetaCache.js.map +0 -1
  573. package/dist/utils/subgraphPagination.cjs +0 -104
  574. package/dist/utils/subgraphPagination.cjs.map +0 -1
  575. package/dist/utils/subgraphPagination.d.ts +0 -78
  576. package/dist/utils/subgraphPagination.js +0 -78
  577. package/dist/utils/subgraphPagination.js.map +0 -1
  578. package/dist/utils/tests/multicall.test.d.ts +0 -1
  579. package/dist/utils/transactionHelpers.cjs +0 -54
  580. package/dist/utils/transactionHelpers.cjs.map +0 -1
  581. package/dist/utils/transactionHelpers.d.ts +0 -80
  582. package/dist/utils/transactionHelpers.js +0 -29
  583. package/dist/utils/transactionHelpers.js.map +0 -1
  584. package/dist/utils/typeGuards.cjs +0 -109
  585. package/dist/utils/typeGuards.cjs.map +0 -1
  586. package/dist/utils/typeGuards.d.ts +0 -138
  587. package/dist/utils/typeGuards.js +0 -74
  588. package/dist/utils/typeGuards.js.map +0 -1
  589. package/dist/utils/typedDataConverter.cjs +0 -43
  590. package/dist/utils/typedDataConverter.cjs.map +0 -1
  591. package/dist/utils/typedDataConverter.d.ts +0 -46
  592. package/dist/utils/typedDataConverter.js +0 -19
  593. package/dist/utils/typedDataConverter.js.map +0 -1
  594. package/dist/utils/urlResolver.cjs +0 -62
  595. package/dist/utils/urlResolver.cjs.map +0 -1
  596. package/dist/utils/urlResolver.d.ts +0 -56
  597. package/dist/utils/urlResolver.js +0 -37
  598. package/dist/utils/urlResolver.js.map +0 -1
  599. package/dist/utils/wallet.cjs +0 -63
  600. package/dist/utils/wallet.cjs.map +0 -1
  601. package/dist/utils/wallet.d.ts +0 -94
  602. package/dist/utils/wallet.js +0 -37
  603. package/dist/utils/wallet.js.map +0 -1
  604. package/dist/utils/withEvents.cjs +0 -44
  605. package/dist/utils/withEvents.cjs.map +0 -1
  606. package/dist/utils/withEvents.d.ts +0 -56
  607. package/dist/utils/withEvents.js +0 -18
  608. package/dist/utils/withEvents.js.map +0 -1
  609. /package/dist/{__tests__/waitForTransactionEvents.test.d.ts → auth/pkce.test.d.ts} +0 -0
  610. /package/dist/{client/__tests__/enhancedResponse.test.d.ts → auth/token-store.test.d.ts} +0 -0
  611. /package/dist/{controllers/__tests__/operations.processQueue.test.d.ts → auth/web3-signed.test.d.ts} +0 -0
  612. /package/dist/{controllers/__tests__/schemas-edge-cases.test.d.ts → crypto/envelope/openpgp.test.d.ts} +0 -0
  613. /package/dist/{controllers/data-error-handling.test.d.ts → crypto/keys/derive.test.d.ts} +0 -0
  614. /package/dist/{tests/errors.test.d.ts → errors.test.d.ts} +0 -0
  615. /package/dist/{controllers/server-additional.test.d.ts → protocol/data-file.test.d.ts} +0 -0
  616. /package/dist/{core/__tests__/health.test.d.ts → protocol/eip712.test.d.ts} +0 -0
  617. /package/dist/{core/__tests__/inMemoryNonceManager.test.d.ts → protocol/gateway.test.d.ts} +0 -0
  618. /package/dist/{core/__tests__/nonceManager.test.d.ts → protocol/scopes.test.d.ts} +0 -0
  619. /package/dist/{core/core.test.d.ts → storage/tests/defaultStorage.test.d.ts} +0 -0
  620. /package/dist/{core/tests/apiClient.test.d.ts → storage/tests/r2Storage.test.d.ts} +0 -0
  621. /package/dist/{core/tests/client.test.d.ts → storage/tests/vanaStorage.test.d.ts} +0 -0
  622. /package/dist/{core/tests/generics.test.d.ts → types/ps-errors.test.d.ts} +0 -0
@@ -1,417 +0,0 @@
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
- * Executes a request with optional middleware pipeline.
38
- *
39
- * @remarks
40
- * Processes request through middleware chain, executes handler, and applies
41
- * response middleware in reverse order. Handles errors through error middleware
42
- * before failing the request.
43
- *
44
- * @param request - The generic request object containing parameters and metadata
45
- * @param handler - The function that processes the request parameters
46
- * @param middleware - Optional array of middleware functions to apply
47
- * @returns Promise resolving to a generic response object
48
- *
49
- * @example
50
- * ```typescript
51
- * const response = await this.executeRequest(
52
- * { params: { id: 123 }, options: {} },
53
- * async (params) => await fetchData(params.id),
54
- * [loggingMiddleware, cachingMiddleware]
55
- * );
56
- * ```
57
- */
58
- async executeRequest(request, handler, middleware = []) {
59
- try {
60
- let processedRequest = request;
61
- for (const mw of middleware) {
62
- if (mw.request) {
63
- processedRequest = await mw.request(
64
- processedRequest
65
- );
66
- }
67
- }
68
- let response = await handler(processedRequest.params);
69
- for (const mw of middleware.reverse()) {
70
- if (mw.response) {
71
- response = await mw.response(response);
72
- }
73
- }
74
- return {
75
- data: response,
76
- success: true
77
- };
78
- } catch (error) {
79
- for (const mw of middleware) {
80
- if (mw.error) {
81
- const handled = await mw.error(error, request);
82
- if (handled) {
83
- return {
84
- data: handled,
85
- success: true
86
- };
87
- }
88
- }
89
- }
90
- return {
91
- // TODO(TYPES): undefined coerced to TResponse for error case.
92
- // Future improvement: Use discriminated union with success: false
93
- // to properly type data as undefined when error occurs.
94
- data: void 0,
95
- success: false,
96
- error: {
97
- code: "EXECUTION_ERROR",
98
- message: error instanceof Error ? error.message : "Unknown error",
99
- details: error
100
- }
101
- };
102
- }
103
- }
104
- /**
105
- * Validates parameters with optional custom validator.
106
- *
107
- * @remarks
108
- * Type guard that validates and asserts parameter types at runtime.
109
- * Use for input validation in public API methods.
110
- *
111
- * @param params - The parameters to validate
112
- * @param validator - Optional function to validate parameter types
113
- * @throws {Error} When validation fails.
114
- * Provide valid parameters matching expected type.
115
- *
116
- * @example
117
- * ```typescript
118
- * this.validateParams<MyParams>(params, (p): p is MyParams => {
119
- * return typeof p === 'object' && 'id' in p;
120
- * });
121
- * // TypeScript now knows params is MyParams
122
- * ```
123
- */
124
- validateParams(params, validator) {
125
- if (validator && !validator(params)) {
126
- throw new Error("Invalid parameters");
127
- }
128
- }
129
- }
130
- class RetryUtility {
131
- static async delay(ms) {
132
- return new Promise((resolve) => setTimeout(resolve, ms));
133
- }
134
- static async withRetry(operation, config) {
135
- let lastError;
136
- for (let attempt = 1; attempt <= config.maxAttempts; attempt++) {
137
- try {
138
- return await operation();
139
- } catch (error) {
140
- lastError = error;
141
- if (config.shouldRetry && !config.shouldRetry(lastError, attempt)) {
142
- throw lastError;
143
- }
144
- if (attempt === config.maxAttempts) {
145
- break;
146
- }
147
- const baseDelay = config.baseDelay * Math.pow(config.backoffMultiplier ?? 2, attempt - 1);
148
- const maxDelay = config.maxDelay ?? 3e4;
149
- const jitter = config.jitter ?? 0;
150
- let delay = Math.min(baseDelay, maxDelay);
151
- if (jitter > 0) {
152
- delay += Math.random() * jitter * delay;
153
- }
154
- await this.delay(delay);
155
- }
156
- }
157
- throw lastError ?? new Error("Operation failed after retries");
158
- }
159
- }
160
- class RateLimiter {
161
- constructor(config) {
162
- this.config = config;
163
- }
164
- requests = [];
165
- async checkLimit() {
166
- const now = Date.now();
167
- const windowStart = now - this.config.windowMs;
168
- this.requests = this.requests.filter((time) => time > windowStart);
169
- if (this.requests.length < this.config.requestsPerWindow) {
170
- this.requests.push(now);
171
- return true;
172
- }
173
- return false;
174
- }
175
- async waitForSlot() {
176
- while (!await this.checkLimit()) {
177
- await new Promise((resolve) => setTimeout(resolve, 100));
178
- }
179
- }
180
- getRemainingRequests() {
181
- const now = Date.now();
182
- const windowStart = now - this.config.windowMs;
183
- const activeRequests = this.requests.filter((time) => time > windowStart);
184
- return Math.max(0, this.config.requestsPerWindow - activeRequests.length);
185
- }
186
- getResetTime() {
187
- if (this.requests.length === 0) return 0;
188
- return Math.max(0, this.requests[0] + this.config.windowMs - Date.now());
189
- }
190
- }
191
- class MemoryCache {
192
- cache = /* @__PURE__ */ new Map();
193
- async get(key) {
194
- const item = this.cache.get(key);
195
- if (!item) return void 0;
196
- if (item.expiry && Date.now() > item.expiry) {
197
- this.cache.delete(key);
198
- return void 0;
199
- }
200
- return item.value;
201
- }
202
- async set(key, value, ttl) {
203
- const expiry = ttl ? Date.now() + ttl : void 0;
204
- this.cache.set(key, { value, expiry });
205
- }
206
- async delete(key) {
207
- return this.cache.delete(key);
208
- }
209
- async clear() {
210
- this.cache.clear();
211
- }
212
- async has(key) {
213
- const exists = this.cache.has(key);
214
- if (!exists) return false;
215
- const item = this.cache.get(key);
216
- if (item?.expiry && Date.now() > item.expiry) {
217
- this.cache.delete(key);
218
- return false;
219
- }
220
- return true;
221
- }
222
- size() {
223
- return this.cache.size;
224
- }
225
- keys() {
226
- return Array.from(this.cache.keys());
227
- }
228
- }
229
- class EventEmitter {
230
- observers = [];
231
- subscribe(observer) {
232
- this.observers.push(observer);
233
- return () => {
234
- this.unsubscribe(observer);
235
- };
236
- }
237
- unsubscribe(observer) {
238
- const index = this.observers.indexOf(observer);
239
- if (index > -1) {
240
- this.observers.splice(index, 1);
241
- }
242
- }
243
- emit(event) {
244
- for (const observer of this.observers) {
245
- try {
246
- const result = observer.notify(event);
247
- if (result instanceof Promise) {
248
- result.catch((error) => {
249
- console.error("Observer error:", error);
250
- });
251
- }
252
- } catch (error) {
253
- console.error("Observer error:", error);
254
- }
255
- }
256
- }
257
- getObserverCount() {
258
- return this.observers.length;
259
- }
260
- removeAllObservers() {
261
- this.observers = [];
262
- }
263
- }
264
- class MiddlewarePipeline {
265
- middleware = [];
266
- use(middleware) {
267
- this.middleware.push(middleware);
268
- }
269
- async processRequest(request) {
270
- let processed = request;
271
- for (const mw of this.middleware) {
272
- if (mw.request) {
273
- processed = await mw.request(processed);
274
- }
275
- }
276
- return processed;
277
- }
278
- async processResponse(response) {
279
- let processed = response;
280
- for (const mw of this.middleware.slice().reverse()) {
281
- if (mw.response) {
282
- processed = await mw.response(processed);
283
- }
284
- }
285
- return processed;
286
- }
287
- async handleError(error, request) {
288
- for (const mw of this.middleware) {
289
- if (mw.error) {
290
- const result = await mw.error(error, request);
291
- if (result) {
292
- return result;
293
- }
294
- }
295
- }
296
- }
297
- getMiddleware() {
298
- return [...this.middleware];
299
- }
300
- clear() {
301
- this.middleware = [];
302
- }
303
- }
304
- class AsyncQueue {
305
- constructor(concurrency = 1) {
306
- this.concurrency = concurrency;
307
- }
308
- queue = [];
309
- running = 0;
310
- async add(operation) {
311
- return new Promise((resolve, reject) => {
312
- this.queue.push(async () => {
313
- try {
314
- const result = await operation();
315
- resolve(result);
316
- return result;
317
- } catch (error) {
318
- reject(error);
319
- throw error;
320
- } finally {
321
- this.running--;
322
- this.processQueue();
323
- }
324
- });
325
- this.processQueue();
326
- });
327
- }
328
- processQueue() {
329
- while (this.running < this.concurrency && this.queue.length > 0) {
330
- const operation = this.queue.shift();
331
- if (operation) {
332
- this.running++;
333
- operation().catch(() => {
334
- });
335
- }
336
- }
337
- }
338
- get pending() {
339
- return this.queue.length;
340
- }
341
- get active() {
342
- return this.running;
343
- }
344
- get size() {
345
- return this.queue.length + this.running;
346
- }
347
- clear() {
348
- this.queue = [];
349
- }
350
- }
351
- class CircuitBreaker {
352
- constructor(config) {
353
- this.config = config;
354
- }
355
- state = "closed";
356
- failures = 0;
357
- lastFailureTime = 0;
358
- successes = 0;
359
- async execute(operation) {
360
- if (this.state === "open") {
361
- if (Date.now() - this.lastFailureTime > this.config.recoveryTimeout) {
362
- this.state = "half-open";
363
- this.successes = 0;
364
- } else {
365
- throw new Error("Circuit breaker is open");
366
- }
367
- }
368
- try {
369
- const result = await operation();
370
- this.onSuccess();
371
- return result;
372
- } catch (error) {
373
- this.onFailure();
374
- throw error;
375
- }
376
- }
377
- onSuccess() {
378
- this.failures = 0;
379
- if (this.state === "half-open") {
380
- this.successes++;
381
- if (this.successes >= (this.config.halfOpenMaxAttempts ?? 1)) {
382
- this.state = "closed";
383
- }
384
- }
385
- }
386
- onFailure() {
387
- this.failures++;
388
- this.lastFailureTime = Date.now();
389
- if (this.failures >= this.config.failureThreshold) {
390
- this.state = "open";
391
- }
392
- }
393
- getState() {
394
- return this.state;
395
- }
396
- getFailures() {
397
- return this.failures;
398
- }
399
- reset() {
400
- this.state = "closed";
401
- this.failures = 0;
402
- this.successes = 0;
403
- this.lastFailureTime = 0;
404
- }
405
- }
406
- // Annotate the CommonJS export names for ESM import in node:
407
- 0 && (module.exports = {
408
- AsyncQueue,
409
- BaseController,
410
- CircuitBreaker,
411
- EventEmitter,
412
- MemoryCache,
413
- MiddlewarePipeline,
414
- RateLimiter,
415
- RetryUtility
416
- });
417
- //# sourceMappingURL=generics.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/generics.ts"],"sourcesContent":["/**\n * Provides generic utilities for resilient SDK operations.\n *\n * @remarks\n * This module contains reusable patterns for building robust SDK features including\n * retry logic, rate limiting, circuit breakers, caching, and middleware pipelines.\n * These utilities follow enterprise patterns for fault tolerance and scalability.\n *\n * @category Infrastructure\n * @module generics\n */\n\nimport 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 * Provides base controller functionality with middleware support.\n *\n * @remarks\n * Abstract base class for SDK controllers that provides request execution\n * with middleware pipeline, parameter validation, and error handling.\n * All SDK controllers extend this base for consistent behavior.\n *\n * @category Infrastructure\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 * Executes a request with optional middleware pipeline.\n *\n * @remarks\n * Processes request through middleware chain, executes handler, and applies\n * response middleware in reverse order. Handles errors through error middleware\n * before failing the request.\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 * @example\n * ```typescript\n * const response = await this.executeRequest(\n * { params: { id: 123 }, options: {} },\n * async (params) => await fetchData(params.id),\n * [loggingMiddleware, cachingMiddleware]\n * );\n * ```\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 // TODO(TYPES): undefined coerced to TResponse for error case.\n // Future improvement: Use discriminated union with success: false\n // to properly type data as undefined when error occurs.\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 * Validates parameters with optional custom validator.\n *\n * @remarks\n * Type guard that validates and asserts parameter types at runtime.\n * Use for input validation in public API methods.\n *\n * @param params - The parameters to validate\n * @param validator - Optional function to validate parameter types\n * @throws {Error} When validation fails.\n * Provide valid parameters matching expected type.\n *\n * @example\n * ```typescript\n * this.validateParams<MyParams>(params, (p): p is MyParams => {\n * return typeof p === 'object' && 'id' in p;\n * });\n * // TypeScript now knows params is MyParams\n * ```\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 * Implements retry logic with exponential backoff and jitter.\n *\n * @remarks\n * Provides configurable retry behavior for transient failures with\n * exponential backoff, maximum delay caps, and optional jitter to\n * prevent thundering herd problems.\n *\n * @example\n * ```typescript\n * const result = await RetryUtility.withRetry(\n * async () => await unreliableOperation(),\n * {\n * maxAttempts: 5,\n * baseDelay: 1000,\n * backoffMultiplier: 2,\n * maxDelay: 30000,\n * shouldRetry: (error) => error.code === 'NETWORK_ERROR'\n * }\n * );\n * ```\n *\n * @category Infrastructure\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 * Implements token bucket rate limiting for API calls.\n *\n * @remarks\n * Prevents API throttling by limiting requests per time window.\n * Uses sliding window algorithm for smooth rate limiting without\n * burst spikes at window boundaries.\n *\n * @example\n * ```typescript\n * const limiter = new RateLimiter({\n * requestsPerWindow: 100,\n * windowMs: 60000 // 100 requests per minute\n * });\n *\n * // Check before making request\n * if (await limiter.checkLimit()) {\n * await makeApiCall();\n * } else {\n * await limiter.waitForSlot();\n * await makeApiCall();\n * }\n * ```\n *\n * @category Infrastructure\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 () => {\n this.unsubscribe(observer);\n };\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 private middleware: Middleware<any, any>[] = [];\n\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 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":[]}
@@ -1,205 +0,0 @@
1
- /**
2
- * Provides generic utilities for resilient SDK operations.
3
- *
4
- * @remarks
5
- * This module contains reusable patterns for building robust SDK features including
6
- * retry logic, rate limiting, circuit breakers, caching, and middleware pipelines.
7
- * These utilities follow enterprise patterns for fault tolerance and scalability.
8
- *
9
- * @category Infrastructure
10
- * @module generics
11
- */
12
- import type { Controller, ControllerContext, GenericRequest, GenericResponse, RetryConfig, RateLimiterConfig, Middleware, Cache, Observer, Observable } from "../types/generics";
13
- /**
14
- * Provides base controller functionality with middleware support.
15
- *
16
- * @remarks
17
- * Abstract base class for SDK controllers that provides request execution
18
- * with middleware pipeline, parameter validation, and error handling.
19
- * All SDK controllers extend this base for consistent behavior.
20
- *
21
- * @category Infrastructure
22
- */
23
- export declare abstract class BaseController<TContext extends ControllerContext = ControllerContext> implements Controller<TContext> {
24
- readonly context: TContext;
25
- constructor(context: TContext);
26
- /**
27
- * Executes a request with optional middleware pipeline.
28
- *
29
- * @remarks
30
- * Processes request through middleware chain, executes handler, and applies
31
- * response middleware in reverse order. Handles errors through error middleware
32
- * before failing the request.
33
- *
34
- * @param request - The generic request object containing parameters and metadata
35
- * @param handler - The function that processes the request parameters
36
- * @param middleware - Optional array of middleware functions to apply
37
- * @returns Promise resolving to a generic response object
38
- *
39
- * @example
40
- * ```typescript
41
- * const response = await this.executeRequest(
42
- * { params: { id: 123 }, options: {} },
43
- * async (params) => await fetchData(params.id),
44
- * [loggingMiddleware, cachingMiddleware]
45
- * );
46
- * ```
47
- */
48
- protected executeRequest<TParams, TResponse>(request: GenericRequest<TParams>, handler: (params: TParams) => Promise<TResponse>, middleware?: Middleware[]): Promise<GenericResponse<TResponse>>;
49
- /**
50
- * Validates parameters with optional custom validator.
51
- *
52
- * @remarks
53
- * Type guard that validates and asserts parameter types at runtime.
54
- * Use for input validation in public API methods.
55
- *
56
- * @param params - The parameters to validate
57
- * @param validator - Optional function to validate parameter types
58
- * @throws {Error} When validation fails.
59
- * Provide valid parameters matching expected type.
60
- *
61
- * @example
62
- * ```typescript
63
- * this.validateParams<MyParams>(params, (p): p is MyParams => {
64
- * return typeof p === 'object' && 'id' in p;
65
- * });
66
- * // TypeScript now knows params is MyParams
67
- * ```
68
- */
69
- protected validateParams<T>(params: unknown, validator?: (params: unknown) => params is T): asserts params is T;
70
- }
71
- /**
72
- * Implements retry logic with exponential backoff and jitter.
73
- *
74
- * @remarks
75
- * Provides configurable retry behavior for transient failures with
76
- * exponential backoff, maximum delay caps, and optional jitter to
77
- * prevent thundering herd problems.
78
- *
79
- * @example
80
- * ```typescript
81
- * const result = await RetryUtility.withRetry(
82
- * async () => await unreliableOperation(),
83
- * {
84
- * maxAttempts: 5,
85
- * baseDelay: 1000,
86
- * backoffMultiplier: 2,
87
- * maxDelay: 30000,
88
- * shouldRetry: (error) => error.code === 'NETWORK_ERROR'
89
- * }
90
- * );
91
- * ```
92
- *
93
- * @category Infrastructure
94
- */
95
- export declare class RetryUtility {
96
- private static delay;
97
- static withRetry<T>(operation: () => Promise<T>, config: RetryConfig): Promise<T>;
98
- }
99
- /**
100
- * Implements token bucket rate limiting for API calls.
101
- *
102
- * @remarks
103
- * Prevents API throttling by limiting requests per time window.
104
- * Uses sliding window algorithm for smooth rate limiting without
105
- * burst spikes at window boundaries.
106
- *
107
- * @example
108
- * ```typescript
109
- * const limiter = new RateLimiter({
110
- * requestsPerWindow: 100,
111
- * windowMs: 60000 // 100 requests per minute
112
- * });
113
- *
114
- * // Check before making request
115
- * if (await limiter.checkLimit()) {
116
- * await makeApiCall();
117
- * } else {
118
- * await limiter.waitForSlot();
119
- * await makeApiCall();
120
- * }
121
- * ```
122
- *
123
- * @category Infrastructure
124
- */
125
- export declare class RateLimiter {
126
- private config;
127
- private requests;
128
- constructor(config: RateLimiterConfig);
129
- checkLimit(): Promise<boolean>;
130
- waitForSlot(): Promise<void>;
131
- getRemainingRequests(): number;
132
- getResetTime(): number;
133
- }
134
- /**
135
- * Generic in-memory cache implementation
136
- */
137
- export declare class MemoryCache<TKey = string, TValue = unknown> implements Cache<TKey, TValue> {
138
- private cache;
139
- get(key: TKey): Promise<TValue | undefined>;
140
- set(key: TKey, value: TValue, ttl?: number): Promise<void>;
141
- delete(key: TKey): Promise<boolean>;
142
- clear(): Promise<void>;
143
- has(key: TKey): Promise<boolean>;
144
- size(): number;
145
- keys(): TKey[];
146
- }
147
- /**
148
- * Generic event emitter implementation
149
- */
150
- export declare class EventEmitter<TEvent = unknown> implements Observable<TEvent> {
151
- private observers;
152
- subscribe(observer: Observer<TEvent>): () => void;
153
- unsubscribe(observer: Observer<TEvent>): void;
154
- emit(event: TEvent): void;
155
- getObserverCount(): number;
156
- removeAllObservers(): void;
157
- }
158
- /**
159
- * Generic middleware pipeline
160
- */
161
- export declare class MiddlewarePipeline {
162
- private middleware;
163
- use(middleware: Middleware<any, any>): void;
164
- processRequest<TRequest>(request: TRequest): Promise<TRequest>;
165
- processResponse<TResponse>(response: TResponse): Promise<TResponse>;
166
- handleError<TRequest, TResponse>(error: Error, request: TRequest): Promise<TResponse | void>;
167
- getMiddleware(): Middleware<any, any>[];
168
- clear(): void;
169
- }
170
- /**
171
- * Generic async queue for managing concurrent operations
172
- */
173
- export declare class AsyncQueue<T = unknown> {
174
- private concurrency;
175
- private queue;
176
- private running;
177
- constructor(concurrency?: number);
178
- add<R>(operation: () => Promise<R>): Promise<R>;
179
- private processQueue;
180
- get pending(): number;
181
- get active(): number;
182
- get size(): number;
183
- clear(): void;
184
- }
185
- /**
186
- * Generic circuit breaker pattern
187
- */
188
- export declare class CircuitBreaker {
189
- private config;
190
- private state;
191
- private failures;
192
- private lastFailureTime;
193
- private successes;
194
- constructor(config: {
195
- failureThreshold: number;
196
- recoveryTimeout: number;
197
- halfOpenMaxAttempts?: number;
198
- });
199
- execute<TResult>(operation: () => Promise<TResult>): Promise<TResult>;
200
- private onSuccess;
201
- private onFailure;
202
- getState(): string;
203
- getFailures(): number;
204
- reset(): void;
205
- }