@opendatalabs/vana-sdk 2.3.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) 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 +150 -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 +129 -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/index.cjs +2 -37
  62. package/dist/generated/abi/index.cjs.map +1 -1
  63. package/dist/generated/abi/index.d.ts +2683 -9296
  64. package/dist/generated/abi/index.js +2 -29
  65. package/dist/generated/abi/index.js.map +1 -1
  66. package/dist/generated/addresses.cjs +5 -107
  67. package/dist/generated/addresses.cjs.map +1 -1
  68. package/dist/generated/addresses.d.ts +5 -99
  69. package/dist/generated/addresses.js +5 -105
  70. package/dist/generated/addresses.js.map +1 -1
  71. package/dist/index.browser.d.ts +24 -140
  72. package/dist/index.browser.js +32258 -114
  73. package/dist/index.browser.js.map +7 -1
  74. package/dist/index.node.cjs +32980 -160
  75. package/dist/index.node.cjs.map +7 -1
  76. package/dist/index.node.d.ts +23 -210
  77. package/dist/index.node.js +32884 -133
  78. package/dist/index.node.js.map +7 -1
  79. package/dist/protocol/data-file.cjs +56 -0
  80. package/dist/protocol/data-file.cjs.map +1 -0
  81. package/dist/protocol/data-file.d.ts +20 -0
  82. package/dist/protocol/data-file.js +30 -0
  83. package/dist/protocol/data-file.js.map +1 -0
  84. package/dist/protocol/eip712.cjs +123 -0
  85. package/dist/protocol/eip712.cjs.map +1 -0
  86. package/dist/protocol/eip712.d.ts +117 -0
  87. package/dist/protocol/eip712.js +90 -0
  88. package/dist/protocol/eip712.js.map +1 -0
  89. package/dist/protocol/gateway.cjs +226 -0
  90. package/dist/protocol/gateway.cjs.map +1 -0
  91. package/dist/protocol/gateway.d.ts +120 -0
  92. package/dist/protocol/gateway.js +202 -0
  93. package/dist/protocol/gateway.js.map +1 -0
  94. package/dist/protocol/grants.cjs +146 -0
  95. package/dist/protocol/grants.cjs.map +1 -0
  96. package/dist/protocol/grants.d.ts +31 -0
  97. package/dist/protocol/grants.js +123 -0
  98. package/dist/protocol/grants.js.map +1 -0
  99. package/dist/protocol/scopes.cjs +78 -0
  100. package/dist/protocol/scopes.cjs.map +1 -0
  101. package/dist/protocol/scopes.d.ts +13 -0
  102. package/dist/protocol/scopes.js +50 -0
  103. package/dist/protocol/scopes.js.map +1 -0
  104. package/dist/{types/atomicStore.cjs → storage/default.cjs} +9 -8
  105. package/dist/storage/default.cjs.map +1 -0
  106. package/dist/storage/default.d.ts +4 -0
  107. package/dist/storage/default.js +8 -0
  108. package/dist/storage/default.js.map +1 -0
  109. package/dist/storage/index.cjs +11 -2
  110. package/dist/storage/index.cjs.map +1 -1
  111. package/dist/storage/index.d.ts +9 -0
  112. package/dist/storage/index.js +7 -1
  113. package/dist/storage/index.js.map +1 -1
  114. package/dist/storage/providers/callback-storage.cjs +1 -0
  115. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  116. package/dist/storage/providers/callback-storage.js +1 -0
  117. package/dist/storage/providers/callback-storage.js.map +1 -1
  118. package/dist/storage/providers/dropbox.cjs +1 -0
  119. package/dist/storage/providers/dropbox.cjs.map +1 -1
  120. package/dist/storage/providers/dropbox.js +1 -0
  121. package/dist/storage/providers/dropbox.js.map +1 -1
  122. package/dist/storage/providers/google-drive.cjs +1 -0
  123. package/dist/storage/providers/google-drive.cjs.map +1 -1
  124. package/dist/storage/providers/google-drive.js +1 -0
  125. package/dist/storage/providers/google-drive.js.map +1 -1
  126. package/dist/storage/providers/ipfs.cjs +1 -0
  127. package/dist/storage/providers/ipfs.cjs.map +1 -1
  128. package/dist/storage/providers/ipfs.js +1 -0
  129. package/dist/storage/providers/ipfs.js.map +1 -1
  130. package/dist/storage/providers/pinata.cjs +1 -0
  131. package/dist/storage/providers/pinata.cjs.map +1 -1
  132. package/dist/storage/providers/pinata.js +1 -0
  133. package/dist/storage/providers/pinata.js.map +1 -1
  134. package/dist/storage/providers/r2.cjs +376 -0
  135. package/dist/storage/providers/r2.cjs.map +1 -0
  136. package/dist/storage/providers/r2.d.ts +91 -0
  137. package/dist/storage/providers/r2.js +354 -0
  138. package/dist/storage/providers/r2.js.map +1 -0
  139. package/dist/storage/providers/vana-storage.cjs +251 -0
  140. package/dist/storage/providers/vana-storage.cjs.map +1 -0
  141. package/dist/storage/providers/vana-storage.d.ts +100 -0
  142. package/dist/storage/providers/vana-storage.js +231 -0
  143. package/dist/storage/providers/vana-storage.js.map +1 -0
  144. package/dist/types/config.cjs +0 -34
  145. package/dist/types/config.cjs.map +1 -1
  146. package/dist/types/config.d.ts +1 -607
  147. package/dist/types/config.js +0 -22
  148. package/dist/types/config.js.map +1 -1
  149. package/dist/types/contracts.cjs.map +1 -1
  150. package/dist/types/contracts.d.ts +1 -1
  151. package/dist/types/index.cjs +2 -33
  152. package/dist/types/index.cjs.map +1 -1
  153. package/dist/types/index.d.ts +2 -33
  154. package/dist/types/index.js +1 -35
  155. package/dist/types/index.js.map +1 -1
  156. package/dist/types/ps-errors.cjs +91 -0
  157. package/dist/types/ps-errors.cjs.map +1 -0
  158. package/dist/types/ps-errors.d.ts +26 -0
  159. package/dist/types/ps-errors.js +66 -0
  160. package/dist/types/ps-errors.js.map +1 -0
  161. package/dist/types.cjs.map +1 -1
  162. package/dist/types.d.ts +0 -29
  163. package/dist/types.js.map +1 -1
  164. package/package.json +7 -25
  165. package/dist/client/enhancedResponse.cjs +0 -164
  166. package/dist/client/enhancedResponse.cjs.map +0 -1
  167. package/dist/client/enhancedResponse.d.ts +0 -120
  168. package/dist/client/enhancedResponse.js +0 -138
  169. package/dist/client/enhancedResponse.js.map +0 -1
  170. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +0 -7
  171. package/dist/controllers/base.cjs +0 -116
  172. package/dist/controllers/base.cjs.map +0 -1
  173. package/dist/controllers/base.d.ts +0 -94
  174. package/dist/controllers/base.js +0 -92
  175. package/dist/controllers/base.js.map +0 -1
  176. package/dist/controllers/data.cjs +0 -2633
  177. package/dist/controllers/data.cjs.map +0 -1
  178. package/dist/controllers/data.d.ts +0 -1067
  179. package/dist/controllers/data.js +0 -2626
  180. package/dist/controllers/data.js.map +0 -1
  181. package/dist/controllers/operations.cjs +0 -430
  182. package/dist/controllers/operations.cjs.map +0 -1
  183. package/dist/controllers/operations.d.ts +0 -229
  184. package/dist/controllers/operations.js +0 -406
  185. package/dist/controllers/operations.js.map +0 -1
  186. package/dist/controllers/permissions.cjs +0 -4368
  187. package/dist/controllers/permissions.cjs.map +0 -1
  188. package/dist/controllers/permissions.d.ts +0 -1411
  189. package/dist/controllers/permissions.js +0 -4344
  190. package/dist/controllers/permissions.js.map +0 -1
  191. package/dist/controllers/protocol.cjs +0 -183
  192. package/dist/controllers/protocol.cjs.map +0 -1
  193. package/dist/controllers/protocol.d.ts +0 -138
  194. package/dist/controllers/protocol.js +0 -163
  195. package/dist/controllers/protocol.js.map +0 -1
  196. package/dist/controllers/schemas.cjs +0 -678
  197. package/dist/controllers/schemas.cjs.map +0 -1
  198. package/dist/controllers/schemas.d.ts +0 -293
  199. package/dist/controllers/schemas.js +0 -654
  200. package/dist/controllers/schemas.js.map +0 -1
  201. package/dist/controllers/server.cjs +0 -643
  202. package/dist/controllers/server.cjs.map +0 -1
  203. package/dist/controllers/server.d.ts +0 -322
  204. package/dist/controllers/server.js +0 -624
  205. package/dist/controllers/server.js.map +0 -1
  206. package/dist/controllers/staking.cjs +0 -626
  207. package/dist/controllers/staking.cjs.map +0 -1
  208. package/dist/controllers/staking.d.ts +0 -457
  209. package/dist/controllers/staking.js +0 -602
  210. package/dist/controllers/staking.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 -781
  243. package/dist/core.cjs.map +0 -1
  244. package/dist/core.d.ts +0 -496
  245. package/dist/core.js +0 -756
  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/generated/abi/DLPPerformanceImplementation.cjs +0 -1202
  253. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +0 -1
  254. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +0 -914
  255. package/dist/generated/abi/DLPPerformanceImplementation.js +0 -1178
  256. package/dist/generated/abi/DLPPerformanceImplementation.js.map +0 -1
  257. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs +0 -1112
  258. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +0 -1
  259. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +0 -840
  260. package/dist/generated/abi/DLPRewardDeployerImplementation.js +0 -1088
  261. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +0 -1
  262. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs +0 -612
  263. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.cjs.map +0 -1
  264. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +0 -451
  265. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js +0 -588
  266. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.js.map +0 -1
  267. package/dist/generated/abi/DLPRewardSwapImplementation.cjs +0 -939
  268. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +0 -1
  269. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +0 -705
  270. package/dist/generated/abi/DLPRewardSwapImplementation.js +0 -915
  271. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +0 -1
  272. package/dist/generated/abi/DLPRootImplementation.cjs +0 -1644
  273. package/dist/generated/abi/DLPRootImplementation.cjs.map +0 -1
  274. package/dist/generated/abi/DLPRootImplementation.d.ts +0 -1246
  275. package/dist/generated/abi/DLPRootImplementation.js +0 -1620
  276. package/dist/generated/abi/DLPRootImplementation.js.map +0 -1
  277. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs +0 -985
  278. package/dist/generated/abi/DataLiquidityPoolImplementation.cjs.map +0 -1
  279. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +0 -735
  280. package/dist/generated/abi/DataLiquidityPoolImplementation.js +0 -961
  281. package/dist/generated/abi/DataLiquidityPoolImplementation.js.map +0 -1
  282. package/dist/generated/abi/SwapHelperImplementation.cjs +0 -976
  283. package/dist/generated/abi/SwapHelperImplementation.cjs.map +0 -1
  284. package/dist/generated/abi/SwapHelperImplementation.d.ts +0 -728
  285. package/dist/generated/abi/SwapHelperImplementation.js +0 -952
  286. package/dist/generated/abi/SwapHelperImplementation.js.map +0 -1
  287. package/dist/generated/abi/TeePoolImplementation.cjs +0 -1313
  288. package/dist/generated/abi/TeePoolImplementation.cjs.map +0 -1
  289. package/dist/generated/abi/TeePoolImplementation.d.ts +0 -992
  290. package/dist/generated/abi/TeePoolImplementation.js +0 -1289
  291. package/dist/generated/abi/TeePoolImplementation.js.map +0 -1
  292. package/dist/generated/event-types.cjs +0 -17
  293. package/dist/generated/event-types.cjs.map +0 -1
  294. package/dist/generated/event-types.d.ts +0 -816
  295. package/dist/generated/event-types.js +0 -1
  296. package/dist/generated/event-types.js.map +0 -1
  297. package/dist/generated/eventRegistry.cjs +0 -4512
  298. package/dist/generated/eventRegistry.cjs.map +0 -1
  299. package/dist/generated/eventRegistry.d.ts +0 -14
  300. package/dist/generated/eventRegistry.js +0 -4487
  301. package/dist/generated/eventRegistry.js.map +0 -1
  302. package/dist/generated/server/server-exports.cjs +0 -45
  303. package/dist/generated/server/server-exports.cjs.map +0 -1
  304. package/dist/generated/server/server-exports.d.ts +0 -36
  305. package/dist/generated/server/server-exports.js +0 -19
  306. package/dist/generated/server/server-exports.js.map +0 -1
  307. package/dist/generated/server/server.cjs +0 -17
  308. package/dist/generated/server/server.cjs.map +0 -1
  309. package/dist/generated/server/server.d.ts +0 -907
  310. package/dist/generated/server/server.js +0 -1
  311. package/dist/generated/server/server.js.map +0 -1
  312. package/dist/generated/subgraph.cjs +0 -1440
  313. package/dist/generated/subgraph.cjs.map +0 -1
  314. package/dist/generated/subgraph.d.ts +0 -6113
  315. package/dist/generated/subgraph.js +0 -1404
  316. package/dist/generated/subgraph.js.map +0 -1
  317. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +0 -1
  318. package/dist/lib/redisAtomicStore.cjs +0 -201
  319. package/dist/lib/redisAtomicStore.cjs.map +0 -1
  320. package/dist/lib/redisAtomicStore.d.ts +0 -120
  321. package/dist/lib/redisAtomicStore.js +0 -177
  322. package/dist/lib/redisAtomicStore.js.map +0 -1
  323. package/dist/server/relayerHandler.cjs +0 -452
  324. package/dist/server/relayerHandler.cjs.map +0 -1
  325. package/dist/server/relayerHandler.d.ts +0 -69
  326. package/dist/server/relayerHandler.js +0 -428
  327. package/dist/server/relayerHandler.js.map +0 -1
  328. package/dist/tests/abi.test.d.ts +0 -1
  329. package/dist/tests/chains-definitions.test.d.ts +0 -1
  330. package/dist/tests/core-encryption.test.d.ts +0 -1
  331. package/dist/tests/core-extended.test.d.ts +0 -1
  332. package/dist/tests/core-generics-coverage.test.d.ts +0 -1
  333. package/dist/tests/coverage-boost.test.d.ts +0 -1
  334. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +0 -1
  335. package/dist/tests/data-addfile-permissions-schema.test.d.ts +0 -1
  336. package/dist/tests/data-additional-methods.test.d.ts +0 -1
  337. package/dist/tests/data-controller-edge-cases.test.d.ts +0 -1
  338. package/dist/tests/data-ipfs-gateways.test.d.ts +0 -1
  339. package/dist/tests/data-relayer.test.d.ts +0 -1
  340. package/dist/tests/data-schema-validation.test.d.ts +0 -1
  341. package/dist/tests/data-simple-methods.test.d.ts +0 -1
  342. package/dist/tests/data-upload-owner-validation.test.d.ts +0 -1
  343. package/dist/tests/data.test.d.ts +0 -1
  344. package/dist/tests/demo-integration.test.d.ts +0 -1
  345. package/dist/tests/demo-trusted-server-integration.test.d.ts +0 -1
  346. package/dist/tests/download-relayer.test.d.ts +0 -1
  347. package/dist/tests/dual-mode-permissions.test.d.ts +0 -1
  348. package/dist/tests/dual-mode-trusted-servers.test.d.ts +0 -1
  349. package/dist/tests/encryption-correct-implementation.test.d.ts +0 -1
  350. package/dist/tests/encryption-coverage.test.d.ts +0 -1
  351. package/dist/tests/encryption-edge-cases.test.d.ts +0 -1
  352. package/dist/tests/encryption-utils-updated.test.d.ts +0 -1
  353. package/dist/tests/errors-coverage.test.d.ts +0 -1
  354. package/dist/tests/factories/mockFactory.d.ts +0 -316
  355. package/dist/tests/fakes/FakeStorageManager.d.ts +0 -200
  356. package/dist/tests/fakes/FakeStorageManager.test.d.ts +0 -1
  357. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +0 -170
  358. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +0 -1
  359. package/dist/tests/fakes/fake-pgp-port.d.ts +0 -13
  360. package/dist/tests/grantValidation-edge-cases.test.d.ts +0 -1
  361. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +0 -1
  362. package/dist/tests/helper-methods.test.d.ts +0 -1
  363. package/dist/tests/helpers/typedMocks.d.ts +0 -64
  364. package/dist/tests/index-browser.test.d.ts +0 -1
  365. package/dist/tests/index-node.test.d.ts +0 -1
  366. package/dist/tests/index.test.d.ts +0 -1
  367. package/dist/tests/mocks/platformAdapter.d.ts +0 -12
  368. package/dist/tests/new-permissions-methods.test.d.ts +0 -1
  369. package/dist/tests/no-buffer-browser.test.d.ts +0 -1
  370. package/dist/tests/permissions-grantee.test.d.ts +0 -1
  371. package/dist/tests/permissions-revoke-relayer.test.d.ts +0 -1
  372. package/dist/tests/permissions-schema-validation.test.d.ts +0 -1
  373. package/dist/tests/permissions-server-files.test.d.ts +0 -1
  374. package/dist/tests/permissions-transaction-options.test.d.ts +0 -1
  375. package/dist/tests/permissions-trust-servers.test.d.ts +0 -1
  376. package/dist/tests/permissions.test.d.ts +0 -1
  377. package/dist/tests/personal.test.d.ts +0 -1
  378. package/dist/tests/platform-browser.test.d.ts +0 -1
  379. package/dist/tests/platform-crypto-expanded.test.d.ts +0 -1
  380. package/dist/tests/platform-crypto.test.d.ts +0 -1
  381. package/dist/tests/platform-index.test.d.ts +0 -1
  382. package/dist/tests/platform-node.test.d.ts +0 -1
  383. package/dist/tests/platform-shared-utils.test.d.ts +0 -1
  384. package/dist/tests/platform-updated.test.d.ts +0 -1
  385. package/dist/tests/protocol-additional-methods.test.d.ts +0 -1
  386. package/dist/tests/protocol.test.d.ts +0 -1
  387. package/dist/tests/read-only-mode.test.d.ts +0 -1
  388. package/dist/tests/relayer-integration.test.d.ts +0 -1
  389. package/dist/tests/relayer-unified.test.d.ts +0 -1
  390. package/dist/tests/schemas.test.d.ts +0 -1
  391. package/dist/tests/server-relayer-handler.test.d.ts +0 -1
  392. package/dist/tests/signatureFormatter.test.d.ts +0 -1
  393. package/dist/tests/staking.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/grants.test.d.ts} +0 -0
  619. /package/dist/{core/core.test.d.ts → protocol/scopes.test.d.ts} +0 -0
  620. /package/dist/{core/tests/apiClient.test.d.ts → storage/tests/defaultStorage.test.d.ts} +0 -0
  621. /package/dist/{core/tests/client.test.d.ts → storage/tests/r2Storage.test.d.ts} +0 -0
  622. /package/dist/{core/tests/generics.test.d.ts → storage/tests/vanaStorage.test.d.ts} +0 -0
  623. /package/dist/{diagnostics.test.d.ts → types/ps-errors.test.d.ts} +0 -0
@@ -1,120 +0,0 @@
1
- /**
2
- * Internal polling manager for asynchronous relayer operations.
3
- *
4
- * @internal
5
- * @remarks
6
- * This module handles client-side polling for long-running relayer operations
7
- * with exponential backoff, jitter, and cancellation support.
8
- */
9
- import type { UnifiedRelayerRequest, UnifiedRelayerResponse } from "../types/relayer";
10
- import type { OperationStatus } from "../types/options";
11
- import type { Hash, TransactionReceipt } from "viem";
12
- /**
13
- * Configuration options for polling behavior.
14
- *
15
- * @internal
16
- */
17
- export interface PollingOptions {
18
- /** Total timeout in milliseconds before giving up (default: 300000ms = 5 min) */
19
- timeout?: number;
20
- /** Initial polling interval in milliseconds (default: 1000ms) */
21
- initialInterval?: number;
22
- /** Maximum polling interval in milliseconds (default: 10000ms) */
23
- maxInterval?: number;
24
- /** Backoff multiplier for each retry (default: 1.5) */
25
- backoffMultiplier?: number;
26
- /** Jitter factor to prevent thundering herd (default: 0.2 = 20%) */
27
- jitter?: number;
28
- }
29
- /**
30
- * Internal polling manager that handles asynchronous relayer operations.
31
- *
32
- * @internal
33
- * @remarks
34
- * This class implements exponential backoff with jitter to prevent server
35
- * overload while maintaining responsive status updates. It's designed to
36
- * be resilient to network failures and browser tab closures.
37
- */
38
- export declare class PollingManager {
39
- private readonly relayerCallback;
40
- private abortController?;
41
- private timeoutId?;
42
- private pollIntervalId?;
43
- constructor(relayerCallback: (request: UnifiedRelayerRequest) => Promise<UnifiedRelayerResponse>);
44
- /**
45
- * Starts polling for an operation's status.
46
- *
47
- * @param operationId - The operation ID to poll for
48
- * @param options - Polling configuration and callbacks
49
- * @returns Promise that resolves when operation completes or fails
50
- * @throws TransactionPendingError if polling times out
51
- * @throws Error if operation fails or is cancelled
52
- */
53
- startPolling(operationId: string, options?: {
54
- signal?: AbortSignal;
55
- onStatusUpdate?: (status: OperationStatus) => void;
56
- } & Partial<PollingOptions>): Promise<{
57
- hash: Hash;
58
- receipt?: TransactionReceipt;
59
- }>;
60
- /**
61
- * Main polling loop with exponential backoff.
62
- *
63
- * @internal
64
- */
65
- private poll;
66
- /**
67
- * Checks the current status of an operation.
68
- *
69
- * @internal
70
- */
71
- private checkStatus;
72
- /**
73
- * Maps relayer response to operation status.
74
- *
75
- * @internal
76
- */
77
- private mapResponseToStatus;
78
- /**
79
- * Determines if status has changed meaningfully.
80
- *
81
- * @internal
82
- */
83
- private hasStatusChanged;
84
- /**
85
- * Calculates next polling interval with jitter.
86
- *
87
- * @internal
88
- */
89
- private calculateNextInterval;
90
- /**
91
- * Waits for specified duration or until aborted.
92
- *
93
- * @internal
94
- */
95
- private wait;
96
- /**
97
- * Creates a timeout promise that rejects after configured duration.
98
- *
99
- * @internal
100
- */
101
- private createTimeoutPromise;
102
- /**
103
- * Determines if an error is retryable.
104
- *
105
- * @internal
106
- */
107
- private isRetryableError;
108
- /**
109
- * Gets last known status for error reporting.
110
- *
111
- * @internal
112
- */
113
- private getLastKnownStatus;
114
- /**
115
- * Cleans up resources.
116
- *
117
- * @internal
118
- */
119
- private cleanup;
120
- }
@@ -1,268 +0,0 @@
1
- import { TransactionPendingError } from "../errors";
2
- const DEFAULT_POLLING_OPTIONS = {
3
- timeout: 3e5,
4
- // 5 minutes
5
- initialInterval: 1e3,
6
- // 1 second
7
- maxInterval: 1e4,
8
- // 10 seconds
9
- backoffMultiplier: 1.5,
10
- // 1s -> 1.5s -> 2.25s -> 3.375s -> 5s -> 7.5s -> 10s
11
- jitter: 0.2
12
- // 20% randomization
13
- };
14
- class PollingManager {
15
- constructor(relayerCallback) {
16
- this.relayerCallback = relayerCallback;
17
- }
18
- abortController;
19
- timeoutId;
20
- pollIntervalId;
21
- /**
22
- * Starts polling for an operation's status.
23
- *
24
- * @param operationId - The operation ID to poll for
25
- * @param options - Polling configuration and callbacks
26
- * @returns Promise that resolves when operation completes or fails
27
- * @throws TransactionPendingError if polling times out
28
- * @throws Error if operation fails or is cancelled
29
- */
30
- async startPolling(operationId, options = {}) {
31
- const context = {
32
- operationId,
33
- signal: options.signal,
34
- onStatusUpdate: options.onStatusUpdate,
35
- relayerCallback: this.relayerCallback,
36
- options: {
37
- ...DEFAULT_POLLING_OPTIONS,
38
- ...options
39
- }
40
- };
41
- this.abortController = new AbortController();
42
- if (context.signal) {
43
- context.signal.addEventListener("abort", () => {
44
- this.abortController?.abort();
45
- });
46
- }
47
- const timeoutPromise = this.createTimeoutPromise(context);
48
- const pollingPromise = this.poll(context);
49
- try {
50
- const result = await Promise.race([pollingPromise, timeoutPromise]);
51
- this.cleanup();
52
- return result;
53
- } catch (error) {
54
- this.cleanup();
55
- if (error instanceof Error && !error.message.includes("operationId")) {
56
- throw new TransactionPendingError(
57
- operationId,
58
- error.message,
59
- this.getLastKnownStatus(context)
60
- );
61
- }
62
- throw error;
63
- }
64
- }
65
- /**
66
- * Main polling loop with exponential backoff.
67
- *
68
- * @internal
69
- */
70
- async poll(context) {
71
- let currentInterval = context.options.initialInterval;
72
- let lastStatus = null;
73
- let retryCount = 0;
74
- while (!this.abortController?.signal.aborted) {
75
- try {
76
- const response = await this.checkStatus(context);
77
- const status = this.mapResponseToStatus(response, context.operationId);
78
- if (this.hasStatusChanged(lastStatus, status)) {
79
- context.onStatusUpdate?.(status);
80
- lastStatus = status;
81
- }
82
- if (status.type === "confirmed") {
83
- return {
84
- hash: status.hash,
85
- receipt: status.receipt
86
- };
87
- }
88
- if (status.type === "failed") {
89
- throw new Error(status.error);
90
- }
91
- retryCount = 0;
92
- } catch (error) {
93
- if (this.isRetryableError(error)) {
94
- retryCount++;
95
- if (retryCount > 5) {
96
- const errorMessage = error instanceof Error ? error.message : String(error);
97
- throw new Error(
98
- `Failed to poll after ${retryCount} attempts: ${errorMessage}`
99
- );
100
- }
101
- } else {
102
- throw error;
103
- }
104
- }
105
- await this.wait(this.calculateNextInterval(currentInterval, context));
106
- currentInterval = Math.min(
107
- currentInterval * context.options.backoffMultiplier,
108
- context.options.maxInterval
109
- );
110
- }
111
- throw new Error("Polling cancelled");
112
- }
113
- /**
114
- * Checks the current status of an operation.
115
- *
116
- * @internal
117
- */
118
- async checkStatus(context) {
119
- const request = {
120
- type: "status_check",
121
- operationId: context.operationId
122
- };
123
- return await context.relayerCallback(request);
124
- }
125
- /**
126
- * Maps relayer response to operation status.
127
- *
128
- * @internal
129
- */
130
- mapResponseToStatus(response, operationId) {
131
- switch (response.type) {
132
- case "pending":
133
- return { type: "pending", operationId };
134
- case "submitted":
135
- return { type: "submitted", hash: response.hash };
136
- case "confirmed":
137
- return {
138
- type: "confirmed",
139
- hash: response.hash,
140
- receipt: response.receipt
141
- };
142
- case "error":
143
- return {
144
- type: "failed",
145
- error: response.error,
146
- operationId
147
- };
148
- case "direct":
149
- const result = response.result;
150
- if (result?.status === "queued") {
151
- return {
152
- type: "queued",
153
- position: result.position,
154
- estimatedWait: result.estimatedWait
155
- };
156
- }
157
- if (result?.status === "processing") {
158
- return { type: "processing" };
159
- }
160
- return { type: "pending", operationId };
161
- default:
162
- return { type: "pending", operationId };
163
- }
164
- }
165
- /**
166
- * Determines if status has changed meaningfully.
167
- *
168
- * @internal
169
- */
170
- hasStatusChanged(oldStatus, newStatus) {
171
- if (!oldStatus) return true;
172
- if (oldStatus.type !== newStatus.type) return true;
173
- if (oldStatus.type === "queued" && newStatus.type === "queued" && oldStatus.position !== newStatus.position) {
174
- return true;
175
- }
176
- return false;
177
- }
178
- /**
179
- * Calculates next polling interval with jitter.
180
- *
181
- * @internal
182
- */
183
- calculateNextInterval(baseInterval, context) {
184
- const jitterRange = baseInterval * context.options.jitter;
185
- const jitter = (Math.random() - 0.5) * 2 * jitterRange;
186
- return Math.max(0, baseInterval + jitter);
187
- }
188
- /**
189
- * Waits for specified duration or until aborted.
190
- *
191
- * @internal
192
- */
193
- async wait(ms) {
194
- return new Promise((resolve, reject) => {
195
- const timeoutId = setTimeout(resolve, ms);
196
- this.abortController?.signal.addEventListener("abort", () => {
197
- clearTimeout(timeoutId);
198
- reject(new Error("Polling cancelled"));
199
- });
200
- this.pollIntervalId = timeoutId;
201
- });
202
- }
203
- /**
204
- * Creates a timeout promise that rejects after configured duration.
205
- *
206
- * @internal
207
- */
208
- createTimeoutPromise(context) {
209
- return new Promise((_, reject) => {
210
- this.timeoutId = setTimeout(() => {
211
- reject(
212
- new TransactionPendingError(
213
- context.operationId,
214
- `Polling timeout after ${context.options.timeout}ms`,
215
- this.getLastKnownStatus(context)
216
- )
217
- );
218
- }, context.options.timeout);
219
- });
220
- }
221
- /**
222
- * Determines if an error is retryable.
223
- *
224
- * @internal
225
- */
226
- isRetryableError(error) {
227
- if (!(error instanceof Error)) return false;
228
- const message = error.message.toLowerCase();
229
- if (message.includes("network") || message.includes("fetch") || message.includes("timeout") || message.includes("econnrefused") || message.includes("enotfound")) {
230
- return true;
231
- }
232
- if (message.includes("500") || message.includes("502") || message.includes("503") || message.includes("504")) {
233
- return true;
234
- }
235
- return false;
236
- }
237
- /**
238
- * Gets last known status for error reporting.
239
- *
240
- * @internal
241
- */
242
- getLastKnownStatus(context) {
243
- return { type: "pending", operationId: context.operationId };
244
- }
245
- /**
246
- * Cleans up resources.
247
- *
248
- * @internal
249
- */
250
- cleanup() {
251
- if (this.timeoutId) {
252
- clearTimeout(this.timeoutId);
253
- this.timeoutId = void 0;
254
- }
255
- if (this.pollIntervalId) {
256
- clearTimeout(this.pollIntervalId);
257
- this.pollIntervalId = void 0;
258
- }
259
- if (this.abortController) {
260
- this.abortController.abort();
261
- this.abortController = void 0;
262
- }
263
- }
264
- }
265
- export {
266
- PollingManager
267
- };
268
- //# sourceMappingURL=pollingManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/pollingManager.ts"],"sourcesContent":["/**\n * Internal polling manager for asynchronous relayer operations.\n *\n * @internal\n * @remarks\n * This module handles client-side polling for long-running relayer operations\n * with exponential backoff, jitter, and cancellation support.\n */\n\nimport type {\n UnifiedRelayerRequest,\n UnifiedRelayerResponse,\n} from \"../types/relayer\";\nimport type { OperationStatus } from \"../types/options\";\nimport type { Hash, TransactionReceipt } from \"viem\";\nimport { TransactionPendingError } from \"../errors\";\n\n/**\n * Configuration options for polling behavior.\n *\n * @internal\n */\nexport interface PollingOptions {\n /** Total timeout in milliseconds before giving up (default: 300000ms = 5 min) */\n timeout?: number;\n /** Initial polling interval in milliseconds (default: 1000ms) */\n initialInterval?: number;\n /** Maximum polling interval in milliseconds (default: 10000ms) */\n maxInterval?: number;\n /** Backoff multiplier for each retry (default: 1.5) */\n backoffMultiplier?: number;\n /** Jitter factor to prevent thundering herd (default: 0.2 = 20%) */\n jitter?: number;\n}\n\n/**\n * Context for a polling operation.\n *\n * @internal\n */\ninterface PollingContext {\n operationId: string;\n signal?: AbortSignal;\n onStatusUpdate?: (status: OperationStatus) => void;\n relayerCallback: (\n request: UnifiedRelayerRequest,\n ) => Promise<UnifiedRelayerResponse>;\n options: Required<PollingOptions>;\n}\n\n/**\n * Default polling configuration based on production load testing.\n *\n * @internal\n */\nconst DEFAULT_POLLING_OPTIONS: Required<PollingOptions> = {\n timeout: 300000, // 5 minutes\n initialInterval: 1000, // 1 second\n maxInterval: 10000, // 10 seconds\n backoffMultiplier: 1.5, // 1s -> 1.5s -> 2.25s -> 3.375s -> 5s -> 7.5s -> 10s\n jitter: 0.2, // 20% randomization\n};\n\n/**\n * Internal polling manager that handles asynchronous relayer operations.\n *\n * @internal\n * @remarks\n * This class implements exponential backoff with jitter to prevent server\n * overload while maintaining responsive status updates. It's designed to\n * be resilient to network failures and browser tab closures.\n */\nexport class PollingManager {\n private abortController?: AbortController;\n private timeoutId?: NodeJS.Timeout | number;\n private pollIntervalId?: NodeJS.Timeout | number;\n\n constructor(\n private readonly relayerCallback: (\n request: UnifiedRelayerRequest,\n ) => Promise<UnifiedRelayerResponse>,\n ) {}\n\n /**\n * Starts polling for an operation's status.\n *\n * @param operationId - The operation ID to poll for\n * @param options - Polling configuration and callbacks\n * @returns Promise that resolves when operation completes or fails\n * @throws TransactionPendingError if polling times out\n * @throws Error if operation fails or is cancelled\n */\n async startPolling(\n operationId: string,\n options: {\n signal?: AbortSignal;\n onStatusUpdate?: (status: OperationStatus) => void;\n } & Partial<PollingOptions> = {},\n ): Promise<{ hash: Hash; receipt?: TransactionReceipt }> {\n const context: PollingContext = {\n operationId,\n signal: options.signal,\n onStatusUpdate: options.onStatusUpdate,\n relayerCallback: this.relayerCallback,\n options: {\n ...DEFAULT_POLLING_OPTIONS,\n ...options,\n },\n };\n\n // Set up abort handling\n this.abortController = new AbortController();\n if (context.signal) {\n context.signal.addEventListener(\"abort\", () => {\n this.abortController?.abort();\n });\n }\n\n // Set up timeout\n const timeoutPromise = this.createTimeoutPromise(context);\n\n // Start polling\n const pollingPromise = this.poll(context);\n\n try {\n // Race between polling completion and timeout\n const result = await Promise.race([pollingPromise, timeoutPromise]);\n\n // Clean up\n this.cleanup();\n\n return result;\n } catch (error) {\n // Clean up on error\n this.cleanup();\n\n // Preserve operationId in error for recovery\n if (error instanceof Error && !error.message.includes(\"operationId\")) {\n throw new TransactionPendingError(\n operationId,\n error.message,\n this.getLastKnownStatus(context),\n );\n }\n\n throw error;\n }\n }\n\n /**\n * Main polling loop with exponential backoff.\n *\n * @internal\n */\n private async poll(\n context: PollingContext,\n ): Promise<{ hash: Hash; receipt?: TransactionReceipt }> {\n let currentInterval = context.options.initialInterval;\n let lastStatus: OperationStatus | null = null;\n let retryCount = 0;\n\n while (!this.abortController?.signal.aborted) {\n try {\n // Check operation status\n const response = await this.checkStatus(context);\n\n // Process response\n const status = this.mapResponseToStatus(response, context.operationId);\n\n // Notify if status changed\n if (this.hasStatusChanged(lastStatus, status)) {\n context.onStatusUpdate?.(status);\n lastStatus = status;\n }\n\n // Check for terminal states\n if (status.type === \"confirmed\") {\n return {\n hash: status.hash,\n receipt: status.receipt as TransactionReceipt | undefined,\n };\n }\n\n if (status.type === \"failed\") {\n throw new Error(status.error);\n }\n\n // Reset retry count on successful poll\n retryCount = 0;\n } catch (error) {\n // Network errors are retryable\n if (this.isRetryableError(error)) {\n retryCount++;\n if (retryCount > 5) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to poll after ${retryCount} attempts: ${errorMessage}`,\n );\n }\n } else {\n // Non-retryable errors should bubble up\n throw error;\n }\n }\n\n // Wait before next poll with exponential backoff\n await this.wait(this.calculateNextInterval(currentInterval, context));\n\n // Increase interval for next iteration\n currentInterval = Math.min(\n currentInterval * context.options.backoffMultiplier,\n context.options.maxInterval,\n );\n }\n\n // Aborted\n throw new Error(\"Polling cancelled\");\n }\n\n /**\n * Checks the current status of an operation.\n *\n * @internal\n */\n private async checkStatus(\n context: PollingContext,\n ): Promise<UnifiedRelayerResponse> {\n const request: UnifiedRelayerRequest = {\n type: \"status_check\",\n operationId: context.operationId,\n };\n\n return await context.relayerCallback(request);\n }\n\n /**\n * Maps relayer response to operation status.\n *\n * @internal\n */\n private mapResponseToStatus(\n response: UnifiedRelayerResponse,\n operationId: string,\n ): OperationStatus {\n switch (response.type) {\n case \"pending\":\n return { type: \"pending\", operationId };\n\n case \"submitted\":\n return { type: \"submitted\", hash: response.hash };\n\n case \"confirmed\":\n return {\n type: \"confirmed\",\n hash: response.hash,\n receipt: response.receipt,\n };\n\n case \"error\":\n return {\n type: \"failed\",\n error: response.error,\n operationId,\n };\n\n case \"direct\":\n // Direct responses during polling might include queue info\n const result = response.result as any;\n if (result?.status === \"queued\") {\n return {\n type: \"queued\",\n position: result.position,\n estimatedWait: result.estimatedWait,\n };\n }\n if (result?.status === \"processing\") {\n return { type: \"processing\" };\n }\n // Fallback\n return { type: \"pending\", operationId };\n\n default:\n return { type: \"pending\", operationId };\n }\n }\n\n /**\n * Determines if status has changed meaningfully.\n *\n * @internal\n */\n private hasStatusChanged(\n oldStatus: OperationStatus | null,\n newStatus: OperationStatus,\n ): boolean {\n if (!oldStatus) return true;\n\n // Check type change\n if (oldStatus.type !== newStatus.type) return true;\n\n // Check queue position change\n if (\n oldStatus.type === \"queued\" &&\n newStatus.type === \"queued\" &&\n oldStatus.position !== newStatus.position\n ) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Calculates next polling interval with jitter.\n *\n * @internal\n */\n private calculateNextInterval(\n baseInterval: number,\n context: PollingContext,\n ): number {\n const jitterRange = baseInterval * context.options.jitter;\n const jitter = (Math.random() - 0.5) * 2 * jitterRange;\n return Math.max(0, baseInterval + jitter);\n }\n\n /**\n * Waits for specified duration or until aborted.\n *\n * @internal\n */\n private async wait(ms: number): Promise<void> {\n return new Promise((resolve, reject) => {\n const timeoutId = setTimeout(resolve, ms);\n\n // Handle abort\n this.abortController?.signal.addEventListener(\"abort\", () => {\n clearTimeout(timeoutId);\n reject(new Error(\"Polling cancelled\"));\n });\n\n this.pollIntervalId = timeoutId as any;\n });\n }\n\n /**\n * Creates a timeout promise that rejects after configured duration.\n *\n * @internal\n */\n private createTimeoutPromise(context: PollingContext): Promise<never> {\n return new Promise((_, reject) => {\n this.timeoutId = setTimeout(() => {\n reject(\n new TransactionPendingError(\n context.operationId,\n `Polling timeout after ${context.options.timeout}ms`,\n this.getLastKnownStatus(context),\n ),\n );\n }, context.options.timeout) as any;\n });\n }\n\n /**\n * Determines if an error is retryable.\n *\n * @internal\n */\n private isRetryableError(error: unknown): boolean {\n if (!(error instanceof Error)) return false;\n\n const message = error.message.toLowerCase();\n\n // Network errors\n if (\n message.includes(\"network\") ||\n message.includes(\"fetch\") ||\n message.includes(\"timeout\") ||\n message.includes(\"econnrefused\") ||\n message.includes(\"enotfound\")\n ) {\n return true;\n }\n\n // Server errors (5xx)\n if (\n message.includes(\"500\") ||\n message.includes(\"502\") ||\n message.includes(\"503\") ||\n message.includes(\"504\")\n ) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Gets last known status for error reporting.\n *\n * @internal\n */\n private getLastKnownStatus(\n context: PollingContext,\n ): OperationStatus | undefined {\n // In a real implementation, we'd track this\n return { type: \"pending\", operationId: context.operationId };\n }\n\n /**\n * Cleans up resources.\n *\n * @internal\n */\n private cleanup(): void {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId as any);\n this.timeoutId = undefined;\n }\n\n if (this.pollIntervalId) {\n clearTimeout(this.pollIntervalId as any);\n this.pollIntervalId = undefined;\n }\n\n if (this.abortController) {\n this.abortController.abort();\n this.abortController = undefined;\n }\n }\n}\n"],"mappings":"AAeA,SAAS,+BAA+B;AAwCxC,MAAM,0BAAoD;AAAA,EACxD,SAAS;AAAA;AAAA,EACT,iBAAiB;AAAA;AAAA,EACjB,aAAa;AAAA;AAAA,EACb,mBAAmB;AAAA;AAAA,EACnB,QAAQ;AAAA;AACV;AAWO,MAAM,eAAe;AAAA,EAK1B,YACmB,iBAGjB;AAHiB;AAAA,EAGhB;AAAA,EARK;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBR,MAAM,aACJ,aACA,UAG8B,CAAC,GACwB;AACvD,UAAM,UAA0B;AAAA,MAC9B;AAAA,MACA,QAAQ,QAAQ;AAAA,MAChB,gBAAgB,QAAQ;AAAA,MACxB,iBAAiB,KAAK;AAAA,MACtB,SAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,IACF;AAGA,SAAK,kBAAkB,IAAI,gBAAgB;AAC3C,QAAI,QAAQ,QAAQ;AAClB,cAAQ,OAAO,iBAAiB,SAAS,MAAM;AAC7C,aAAK,iBAAiB,MAAM;AAAA,MAC9B,CAAC;AAAA,IACH;AAGA,UAAM,iBAAiB,KAAK,qBAAqB,OAAO;AAGxD,UAAM,iBAAiB,KAAK,KAAK,OAAO;AAExC,QAAI;AAEF,YAAM,SAAS,MAAM,QAAQ,KAAK,CAAC,gBAAgB,cAAc,CAAC;AAGlE,WAAK,QAAQ;AAEb,aAAO;AAAA,IACT,SAAS,OAAO;AAEd,WAAK,QAAQ;AAGb,UAAI,iBAAiB,SAAS,CAAC,MAAM,QAAQ,SAAS,aAAa,GAAG;AACpE,cAAM,IAAI;AAAA,UACR;AAAA,UACA,MAAM;AAAA,UACN,KAAK,mBAAmB,OAAO;AAAA,QACjC;AAAA,MACF;AAEA,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,KACZ,SACuD;AACvD,QAAI,kBAAkB,QAAQ,QAAQ;AACtC,QAAI,aAAqC;AACzC,QAAI,aAAa;AAEjB,WAAO,CAAC,KAAK,iBAAiB,OAAO,SAAS;AAC5C,UAAI;AAEF,cAAM,WAAW,MAAM,KAAK,YAAY,OAAO;AAG/C,cAAM,SAAS,KAAK,oBAAoB,UAAU,QAAQ,WAAW;AAGrE,YAAI,KAAK,iBAAiB,YAAY,MAAM,GAAG;AAC7C,kBAAQ,iBAAiB,MAAM;AAC/B,uBAAa;AAAA,QACf;AAGA,YAAI,OAAO,SAAS,aAAa;AAC/B,iBAAO;AAAA,YACL,MAAM,OAAO;AAAA,YACb,SAAS,OAAO;AAAA,UAClB;AAAA,QACF;AAEA,YAAI,OAAO,SAAS,UAAU;AAC5B,gBAAM,IAAI,MAAM,OAAO,KAAK;AAAA,QAC9B;AAGA,qBAAa;AAAA,MACf,SAAS,OAAO;AAEd,YAAI,KAAK,iBAAiB,KAAK,GAAG;AAChC;AACA,cAAI,aAAa,GAAG;AAClB,kBAAM,eACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACvD,kBAAM,IAAI;AAAA,cACR,wBAAwB,UAAU,cAAc,YAAY;AAAA,YAC9D;AAAA,UACF;AAAA,QACF,OAAO;AAEL,gBAAM;AAAA,QACR;AAAA,MACF;AAGA,YAAM,KAAK,KAAK,KAAK,sBAAsB,iBAAiB,OAAO,CAAC;AAGpE,wBAAkB,KAAK;AAAA,QACrB,kBAAkB,QAAQ,QAAQ;AAAA,QAClC,QAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;AAGA,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,YACZ,SACiC;AACjC,UAAM,UAAiC;AAAA,MACrC,MAAM;AAAA,MACN,aAAa,QAAQ;AAAA,IACvB;AAEA,WAAO,MAAM,QAAQ,gBAAgB,OAAO;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,oBACN,UACA,aACiB;AACjB,YAAQ,SAAS,MAAM;AAAA,MACrB,KAAK;AACH,eAAO,EAAE,MAAM,WAAW,YAAY;AAAA,MAExC,KAAK;AACH,eAAO,EAAE,MAAM,aAAa,MAAM,SAAS,KAAK;AAAA,MAElD,KAAK;AACH,eAAO;AAAA,UACL,MAAM;AAAA,UACN,MAAM,SAAS;AAAA,UACf,SAAS,SAAS;AAAA,QACpB;AAAA,MAEF,KAAK;AACH,eAAO;AAAA,UACL,MAAM;AAAA,UACN,OAAO,SAAS;AAAA,UAChB;AAAA,QACF;AAAA,MAEF,KAAK;AAEH,cAAM,SAAS,SAAS;AACxB,YAAI,QAAQ,WAAW,UAAU;AAC/B,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,UAAU,OAAO;AAAA,YACjB,eAAe,OAAO;AAAA,UACxB;AAAA,QACF;AACA,YAAI,QAAQ,WAAW,cAAc;AACnC,iBAAO,EAAE,MAAM,aAAa;AAAA,QAC9B;AAEA,eAAO,EAAE,MAAM,WAAW,YAAY;AAAA,MAExC;AACE,eAAO,EAAE,MAAM,WAAW,YAAY;AAAA,IAC1C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,iBACN,WACA,WACS;AACT,QAAI,CAAC,UAAW,QAAO;AAGvB,QAAI,UAAU,SAAS,UAAU,KAAM,QAAO;AAG9C,QACE,UAAU,SAAS,YACnB,UAAU,SAAS,YACnB,UAAU,aAAa,UAAU,UACjC;AACA,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,sBACN,cACA,SACQ;AACR,UAAM,cAAc,eAAe,QAAQ,QAAQ;AACnD,UAAM,UAAU,KAAK,OAAO,IAAI,OAAO,IAAI;AAC3C,WAAO,KAAK,IAAI,GAAG,eAAe,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,KAAK,IAA2B;AAC5C,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAM,YAAY,WAAW,SAAS,EAAE;AAGxC,WAAK,iBAAiB,OAAO,iBAAiB,SAAS,MAAM;AAC3D,qBAAa,SAAS;AACtB,eAAO,IAAI,MAAM,mBAAmB,CAAC;AAAA,MACvC,CAAC;AAED,WAAK,iBAAiB;AAAA,IACxB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,qBAAqB,SAAyC;AACpE,WAAO,IAAI,QAAQ,CAAC,GAAG,WAAW;AAChC,WAAK,YAAY,WAAW,MAAM;AAChC;AAAA,UACE,IAAI;AAAA,YACF,QAAQ;AAAA,YACR,yBAAyB,QAAQ,QAAQ,OAAO;AAAA,YAChD,KAAK,mBAAmB,OAAO;AAAA,UACjC;AAAA,QACF;AAAA,MACF,GAAG,QAAQ,QAAQ,OAAO;AAAA,IAC5B,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,iBAAiB,OAAyB;AAChD,QAAI,EAAE,iBAAiB,OAAQ,QAAO;AAEtC,UAAM,UAAU,MAAM,QAAQ,YAAY;AAG1C,QACE,QAAQ,SAAS,SAAS,KAC1B,QAAQ,SAAS,OAAO,KACxB,QAAQ,SAAS,SAAS,KAC1B,QAAQ,SAAS,cAAc,KAC/B,QAAQ,SAAS,WAAW,GAC5B;AACA,aAAO;AAAA,IACT;AAGA,QACE,QAAQ,SAAS,KAAK,KACtB,QAAQ,SAAS,KAAK,KACtB,QAAQ,SAAS,KAAK,KACtB,QAAQ,SAAS,KAAK,GACtB;AACA,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,mBACN,SAC6B;AAE7B,WAAO,EAAE,MAAM,WAAW,aAAa,QAAQ,YAAY;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOQ,UAAgB;AACtB,QAAI,KAAK,WAAW;AAClB,mBAAa,KAAK,SAAgB;AAClC,WAAK,YAAY;AAAA,IACnB;AAEA,QAAI,KAAK,gBAAgB;AACvB,mBAAa,KAAK,cAAqB;AACvC,WAAK,iBAAiB;AAAA,IACxB;AAEA,QAAI,KAAK,iBAAiB;AACxB,WAAK,gBAAgB,MAAM;AAC3B,WAAK,kBAAkB;AAAA,IACzB;AAAA,EACF;AACF;","names":[]}