@opendatalabs/vana-sdk 0.1.0-alpha.d7fc764 → 0.1.0-alpha.dba79a3

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 (778) hide show
  1. package/dist/__tests__/waitForTransactionEvents.test.d.ts +1 -0
  2. package/dist/browser.cjs.map +1 -1
  3. package/dist/browser.d.ts +36 -2
  4. package/dist/browser.js.map +1 -1
  5. package/dist/chains/definitions.cjs +9 -6
  6. package/dist/chains/definitions.cjs.map +1 -1
  7. package/dist/chains/definitions.d.ts +9 -11
  8. package/dist/chains/definitions.js +9 -6
  9. package/dist/chains/definitions.js.map +1 -1
  10. package/dist/chains/index.cjs.map +1 -1
  11. package/dist/chains/index.d.ts +34 -2
  12. package/dist/chains/index.js.map +1 -1
  13. package/dist/chains.browser.d.ts +8 -2
  14. package/dist/chains.d.ts +8 -2
  15. package/dist/chains.node.d.ts +8 -2
  16. package/dist/config/addresses.d.ts +8 -24
  17. package/dist/config/chains.cjs.map +1 -1
  18. package/dist/config/chains.d.ts +108 -13
  19. package/dist/config/chains.js.map +1 -1
  20. package/dist/config/default-services.cjs +60 -0
  21. package/dist/config/default-services.cjs.map +1 -0
  22. package/dist/config/default-services.d.ts +46 -0
  23. package/dist/config/default-services.js +33 -0
  24. package/dist/config/default-services.js.map +1 -0
  25. package/dist/config/default-services.test.d.ts +1 -0
  26. package/dist/config/features.d.ts +1 -3
  27. package/dist/config/tests/addresses.test.d.ts +1 -0
  28. package/dist/contracts/contractController.cjs +3 -3
  29. package/dist/contracts/contractController.cjs.map +1 -1
  30. package/dist/contracts/contractController.d.ts +77 -38
  31. package/dist/contracts/contractController.js +4 -7
  32. package/dist/contracts/contractController.js.map +1 -1
  33. package/dist/contracts/tests/contractController.test.d.ts +1 -0
  34. package/dist/controllers/__tests__/data-consistency-integration.test.d.ts +7 -0
  35. package/dist/controllers/__tests__/operations.processQueue.test.d.ts +1 -0
  36. package/dist/controllers/__tests__/schemas-edge-cases.test.d.ts +1 -0
  37. package/dist/controllers/base.cjs +116 -0
  38. package/dist/controllers/base.cjs.map +1 -0
  39. package/dist/controllers/base.d.ts +94 -0
  40. package/dist/controllers/base.js +92 -0
  41. package/dist/controllers/base.js.map +1 -0
  42. package/dist/controllers/data-error-handling.test.d.ts +1 -0
  43. package/dist/controllers/data.cjs +827 -439
  44. package/dist/controllers/data.cjs.map +1 -1
  45. package/dist/controllers/data.d.ts +373 -254
  46. package/dist/controllers/data.js +840 -442
  47. package/dist/controllers/data.js.map +1 -1
  48. package/dist/controllers/operations.cjs +430 -0
  49. package/dist/controllers/operations.cjs.map +1 -0
  50. package/dist/controllers/operations.d.ts +229 -0
  51. package/dist/controllers/operations.js +406 -0
  52. package/dist/controllers/operations.js.map +1 -0
  53. package/dist/controllers/permissions.cjs +929 -483
  54. package/dist/controllers/permissions.cjs.map +1 -1
  55. package/dist/controllers/permissions.d.ts +1318 -25
  56. package/dist/controllers/permissions.js +929 -483
  57. package/dist/controllers/permissions.js.map +1 -1
  58. package/dist/controllers/protocol.cjs +15 -11
  59. package/dist/controllers/protocol.cjs.map +1 -1
  60. package/dist/controllers/protocol.d.ts +34 -63
  61. package/dist/controllers/protocol.js +15 -14
  62. package/dist/controllers/protocol.js.map +1 -1
  63. package/dist/controllers/schemas.cjs +100 -75
  64. package/dist/controllers/schemas.cjs.map +1 -1
  65. package/dist/controllers/schemas.d.ts +56 -74
  66. package/dist/controllers/schemas.js +100 -75
  67. package/dist/controllers/schemas.js.map +1 -1
  68. package/dist/controllers/server-additional.test.d.ts +1 -0
  69. package/dist/controllers/server.cjs +32 -25
  70. package/dist/controllers/server.cjs.map +1 -1
  71. package/dist/controllers/server.d.ts +53 -71
  72. package/dist/controllers/server.js +32 -25
  73. package/dist/controllers/server.js.map +1 -1
  74. package/dist/core/__tests__/health.test.d.ts +1 -0
  75. package/dist/core/__tests__/inMemoryNonceManager.test.d.ts +1 -0
  76. package/dist/core/__tests__/nonceManager.test.d.ts +1 -0
  77. package/dist/core/__tests__/pollingManager.test.d.ts +4 -0
  78. package/dist/core/apiClient.cjs +68 -15
  79. package/dist/core/apiClient.cjs.map +1 -1
  80. package/dist/core/apiClient.d.ts +137 -16
  81. package/dist/core/apiClient.js +72 -22
  82. package/dist/core/apiClient.js.map +1 -1
  83. package/dist/core/client.cjs +7 -7
  84. package/dist/core/client.cjs.map +1 -1
  85. package/dist/core/client.d.ts +6 -9
  86. package/dist/core/client.js +7 -7
  87. package/dist/core/client.js.map +1 -1
  88. package/dist/core/core.test.d.ts +1 -0
  89. package/dist/core/generics.cjs +41 -12
  90. package/dist/core/generics.cjs.map +1 -1
  91. package/dist/core/generics.d.ts +104 -19
  92. package/dist/core/generics.js +52 -32
  93. package/dist/core/generics.js.map +1 -1
  94. package/dist/core/health.cjs +289 -0
  95. package/dist/core/health.cjs.map +1 -0
  96. package/dist/core/health.d.ts +143 -0
  97. package/dist/core/health.js +265 -0
  98. package/dist/core/health.js.map +1 -0
  99. package/dist/core/inMemoryNonceManager.cjs +138 -0
  100. package/dist/core/inMemoryNonceManager.cjs.map +1 -0
  101. package/dist/core/inMemoryNonceManager.d.ts +69 -0
  102. package/dist/core/inMemoryNonceManager.js +114 -0
  103. package/dist/core/inMemoryNonceManager.js.map +1 -0
  104. package/dist/core/nonceManager.cjs +304 -0
  105. package/dist/core/nonceManager.cjs.map +1 -0
  106. package/dist/core/nonceManager.d.ts +116 -0
  107. package/dist/core/nonceManager.js +280 -0
  108. package/dist/core/nonceManager.js.map +1 -0
  109. package/dist/core/pollingManager.cjs +292 -0
  110. package/dist/core/pollingManager.cjs.map +1 -0
  111. package/dist/core/pollingManager.d.ts +120 -0
  112. package/dist/core/pollingManager.js +268 -0
  113. package/dist/core/pollingManager.js.map +1 -0
  114. package/dist/core/tests/apiClient.test.d.ts +1 -0
  115. package/dist/core/tests/client.test.d.ts +1 -0
  116. package/dist/core/tests/generics.test.d.ts +1 -0
  117. package/dist/core.cjs +152 -61
  118. package/dist/core.cjs.map +1 -1
  119. package/dist/core.d.ts +50 -67
  120. package/dist/core.js +164 -86
  121. package/dist/core.js.map +1 -1
  122. package/dist/crypto/ecies/__tests__/base.test.d.ts +4 -0
  123. package/dist/crypto/ecies/__tests__/compatibility.test.d.ts +8 -0
  124. package/dist/crypto/ecies/__tests__/constants.test.d.ts +4 -0
  125. package/dist/crypto/ecies/__tests__/native-parity.test.d.ts +7 -0
  126. package/dist/crypto/ecies/__tests__/normalization.test.d.ts +1 -0
  127. package/dist/crypto/ecies/__tests__/test-vectors.d.ts +2 -4
  128. package/dist/crypto/ecies/base.cjs +20 -6
  129. package/dist/crypto/ecies/base.cjs.map +1 -1
  130. package/dist/crypto/ecies/base.d.ts +2 -5
  131. package/dist/crypto/ecies/base.js +28 -18
  132. package/dist/crypto/ecies/base.js.map +1 -1
  133. package/dist/crypto/ecies/browser.cjs +2 -1
  134. package/dist/crypto/ecies/browser.cjs.map +1 -1
  135. package/dist/crypto/ecies/browser.d.ts +2 -7
  136. package/dist/crypto/ecies/browser.js +2 -1
  137. package/dist/crypto/ecies/browser.js.map +1 -1
  138. package/dist/crypto/ecies/constants.d.ts +7 -9
  139. package/dist/crypto/ecies/index.d.ts +8 -1
  140. package/dist/crypto/ecies/interface.cjs +4 -5
  141. package/dist/crypto/ecies/interface.cjs.map +1 -1
  142. package/dist/crypto/ecies/interface.d.ts +9 -11
  143. package/dist/crypto/ecies/interface.js +4 -5
  144. package/dist/crypto/ecies/interface.js.map +1 -1
  145. package/dist/crypto/ecies/node.cjs +3 -2
  146. package/dist/crypto/ecies/node.cjs.map +1 -1
  147. package/dist/crypto/ecies/node.d.ts +2 -7
  148. package/dist/crypto/ecies/node.js +11 -16
  149. package/dist/crypto/ecies/node.js.map +1 -1
  150. package/dist/crypto/ecies/test-vectors/eccrypto-vectors.json +72 -0
  151. package/dist/crypto/ecies/utils.cjs +2 -41
  152. package/dist/crypto/ecies/utils.cjs.map +1 -1
  153. package/dist/crypto/ecies/utils.d.ts +3 -40
  154. package/dist/crypto/ecies/utils.js +1 -35
  155. package/dist/crypto/ecies/utils.js.map +1 -1
  156. package/dist/crypto/services/WalletKeyEncryptionService.cjs +2 -2
  157. package/dist/crypto/services/WalletKeyEncryptionService.cjs.map +1 -1
  158. package/dist/crypto/services/WalletKeyEncryptionService.d.ts +3 -7
  159. package/dist/crypto/services/WalletKeyEncryptionService.js +5 -9
  160. package/dist/crypto/services/WalletKeyEncryptionService.js.map +1 -1
  161. package/dist/crypto/services/WalletKeyEncryptionService.test.d.ts +1 -0
  162. package/dist/diagnostics.d.ts +1 -3
  163. package/dist/diagnostics.test.d.ts +1 -0
  164. package/dist/errors.cjs +45 -0
  165. package/dist/errors.cjs.map +1 -1
  166. package/dist/errors.d.ts +117 -15
  167. package/dist/errors.js +46 -6
  168. package/dist/errors.js.map +1 -1
  169. package/dist/generated/abi/ComputeEngineImplementation.d.ts +2 -3
  170. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.ts +2 -3
  171. package/dist/generated/abi/DATFactoryImplementation.d.ts +2 -3
  172. package/dist/generated/abi/DATImplementation.d.ts +2 -3
  173. package/dist/generated/abi/DATPausableImplementation.d.ts +2 -3
  174. package/dist/generated/abi/DATVotesImplementation.d.ts +2 -3
  175. package/dist/generated/abi/DLPPerformanceImplementation.d.ts +2 -3
  176. package/dist/generated/abi/DLPRegistryImplementation.d.ts +2 -3
  177. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.ts +2 -3
  178. package/dist/generated/abi/DLPRewardDeployerImplementation.d.ts +2 -3
  179. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.ts +2 -3
  180. package/dist/generated/abi/DLPRewardSwapImplementation.d.ts +2 -3
  181. package/dist/generated/abi/DLPRootImplementation.d.ts +1 -3
  182. package/dist/generated/abi/DLPTreasuryImplementation.d.ts +2 -3
  183. package/dist/generated/abi/DataLiquidityPoolImplementation.d.ts +1 -3
  184. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.ts +2 -3
  185. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.ts +2 -3
  186. package/dist/generated/abi/DataPortabilityServersImplementation.d.ts +2 -3
  187. package/dist/generated/abi/DataRefinerRegistryImplementation.d.ts +2 -3
  188. package/dist/generated/abi/DataRegistryImplementation.cjs +13 -0
  189. package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -1
  190. package/dist/generated/abi/DataRegistryImplementation.d.ts +12 -3
  191. package/dist/generated/abi/DataRegistryImplementation.js +13 -0
  192. package/dist/generated/abi/DataRegistryImplementation.js.map +1 -1
  193. package/dist/generated/abi/QueryEngineImplementation.d.ts +2 -3
  194. package/dist/generated/abi/SwapHelperImplementation.d.ts +2 -3
  195. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.ts +2 -3
  196. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.ts +2 -3
  197. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.ts +2 -3
  198. package/dist/generated/abi/TeePoolImplementation.d.ts +2 -3
  199. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.ts +2 -3
  200. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.ts +2 -3
  201. package/dist/generated/abi/TeePoolPhalaImplementation.d.ts +2 -3
  202. package/dist/generated/abi/VanaEpochImplementation.d.ts +2 -3
  203. package/dist/generated/abi/VanaPoolEntityImplementation.d.ts +2 -3
  204. package/dist/generated/abi/VanaPoolStakingImplementation.d.ts +2 -3
  205. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.ts +2 -3
  206. package/dist/generated/abi/index.cjs +42 -0
  207. package/dist/generated/abi/index.cjs.map +1 -1
  208. package/dist/generated/abi/index.d.ts +47 -18
  209. package/dist/generated/abi/index.js +21 -0
  210. package/dist/generated/abi/index.js.map +1 -1
  211. package/dist/generated/event-types.cjs +17 -0
  212. package/dist/generated/event-types.cjs.map +1 -0
  213. package/dist/generated/event-types.d.ts +854 -0
  214. package/dist/generated/event-types.js +1 -0
  215. package/dist/generated/event-types.js.map +1 -0
  216. package/dist/generated/eventRegistry.cjs +3351 -0
  217. package/dist/generated/eventRegistry.cjs.map +1 -0
  218. package/dist/generated/eventRegistry.d.ts +14 -0
  219. package/dist/generated/eventRegistry.js +3326 -0
  220. package/dist/generated/eventRegistry.js.map +1 -0
  221. package/dist/generated/server/server-exports.d.ts +19 -21
  222. package/dist/generated/server/server.cjs.map +1 -1
  223. package/dist/generated/server/server.d.ts +113 -87
  224. package/dist/generated/subgraph.cjs +797 -32
  225. package/dist/generated/subgraph.cjs.map +1 -1
  226. package/dist/generated/subgraph.d.ts +464 -332
  227. package/dist/generated/subgraph.js +792 -32
  228. package/dist/generated/subgraph.js.map +1 -1
  229. package/dist/index.browser.d.ts +49 -73
  230. package/dist/index.browser.js +14 -0
  231. package/dist/index.browser.js.map +1 -1
  232. package/dist/index.cjs +3 -1
  233. package/dist/index.cjs.map +1 -1
  234. package/dist/index.d.ts +0 -2
  235. package/dist/index.js +3 -1
  236. package/dist/index.js.map +1 -1
  237. package/dist/index.node.cjs +31 -3
  238. package/dist/index.node.cjs.map +1 -1
  239. package/dist/index.node.d.ts +223 -64
  240. package/dist/index.node.js +28 -2
  241. package/dist/index.node.js.map +1 -1
  242. package/dist/lib/__tests__/redisAtomicStore.test.d.ts +1 -0
  243. package/dist/lib/redisAtomicStore.cjs +201 -0
  244. package/dist/lib/redisAtomicStore.cjs.map +1 -0
  245. package/dist/lib/redisAtomicStore.d.ts +120 -0
  246. package/dist/lib/redisAtomicStore.js +177 -0
  247. package/dist/lib/redisAtomicStore.js.map +1 -0
  248. package/dist/node.cjs.map +1 -1
  249. package/dist/node.d.ts +42 -2
  250. package/dist/node.js.map +1 -1
  251. package/dist/platform/browser-only.d.ts +5 -8
  252. package/dist/platform/browser-only.test.d.ts +1 -0
  253. package/dist/platform/browser-safe.d.ts +6 -9
  254. package/dist/platform/browser-safe.test.d.ts +1 -0
  255. package/dist/platform/browser.cjs +167 -8
  256. package/dist/platform/browser.cjs.map +1 -1
  257. package/dist/platform/browser.d.ts +235 -18
  258. package/dist/platform/browser.js +179 -29
  259. package/dist/platform/browser.js.map +1 -1
  260. package/dist/platform/browser.test.d.ts +1 -0
  261. package/dist/platform/index.d.ts +11 -5
  262. package/dist/platform/interface.cjs.map +1 -1
  263. package/dist/platform/interface.d.ts +289 -98
  264. package/dist/platform/node.cjs +163 -2
  265. package/dist/platform/node.cjs.map +1 -1
  266. package/dist/platform/node.d.ts +72 -13
  267. package/dist/platform/node.js +175 -21
  268. package/dist/platform/node.js.map +1 -1
  269. package/dist/platform/ports/openpgp-port.cjs +74 -0
  270. package/dist/platform/ports/openpgp-port.cjs.map +1 -0
  271. package/dist/platform/ports/openpgp-port.d.ts +13 -0
  272. package/dist/platform/ports/openpgp-port.js +59 -0
  273. package/dist/platform/ports/openpgp-port.js.map +1 -0
  274. package/dist/platform/ports/pgp-port.cjs +17 -0
  275. package/dist/platform/ports/pgp-port.cjs.map +1 -0
  276. package/dist/platform/ports/pgp-port.d.ts +35 -0
  277. package/dist/platform/ports/pgp-port.js +1 -0
  278. package/dist/platform/ports/pgp-port.js.map +1 -0
  279. package/dist/platform/shared/error-utils.d.ts +2 -4
  280. package/dist/platform/shared/pgp-utils.cjs +2 -2
  281. package/dist/platform/shared/pgp-utils.cjs.map +1 -1
  282. package/dist/platform/shared/pgp-utils.d.ts +3 -5
  283. package/dist/platform/shared/pgp-utils.js +2 -2
  284. package/dist/platform/shared/pgp-utils.js.map +1 -1
  285. package/dist/platform/shared/stream-utils.d.ts +1 -3
  286. package/dist/platform/utils.d.ts +6 -10
  287. package/dist/platform/utils.test.d.ts +1 -0
  288. package/dist/platform.browser.d.ts +9 -4
  289. package/dist/platform.d.ts +11 -5
  290. package/dist/platform.node.d.ts +10 -5
  291. package/dist/schemas/dataSchema.schema.json +53 -0
  292. package/dist/schemas/grantFile.schema.json +43 -0
  293. package/dist/server/relayerHandler.cjs +420 -0
  294. package/dist/server/relayerHandler.cjs.map +1 -0
  295. package/dist/server/relayerHandler.d.ts +69 -0
  296. package/dist/server/relayerHandler.js +396 -0
  297. package/dist/server/relayerHandler.js.map +1 -0
  298. package/dist/storage/index.d.ts +56 -10
  299. package/dist/storage/manager.cjs +114 -31
  300. package/dist/storage/manager.cjs.map +1 -1
  301. package/dist/storage/manager.d.ts +121 -30
  302. package/dist/storage/manager.js +113 -37
  303. package/dist/storage/manager.js.map +1 -1
  304. package/dist/storage/providers/callback-storage.cjs +89 -18
  305. package/dist/storage/providers/callback-storage.cjs.map +1 -1
  306. package/dist/storage/providers/callback-storage.d.ts +111 -28
  307. package/dist/storage/providers/callback-storage.js +89 -18
  308. package/dist/storage/providers/callback-storage.js.map +1 -1
  309. package/dist/storage/providers/google-drive.cjs +2 -2
  310. package/dist/storage/providers/google-drive.cjs.map +1 -1
  311. package/dist/storage/providers/google-drive.d.ts +3 -7
  312. package/dist/storage/providers/google-drive.js +4 -7
  313. package/dist/storage/providers/google-drive.js.map +1 -1
  314. package/dist/storage/providers/google-drive.test.d.ts +1 -0
  315. package/dist/storage/providers/ipfs.cjs +5 -5
  316. package/dist/storage/providers/ipfs.cjs.map +1 -1
  317. package/dist/storage/providers/ipfs.d.ts +3 -6
  318. package/dist/storage/providers/ipfs.js +7 -10
  319. package/dist/storage/providers/ipfs.js.map +1 -1
  320. package/dist/storage/providers/pinata.cjs +6 -6
  321. package/dist/storage/providers/pinata.cjs.map +1 -1
  322. package/dist/storage/providers/pinata.d.ts +17 -22
  323. package/dist/storage/providers/pinata.js +8 -11
  324. package/dist/storage/providers/pinata.js.map +1 -1
  325. package/dist/storage/tests/callbackStorage.test.d.ts +1 -0
  326. package/dist/storage/tests/googleDriveStorage.test.d.ts +1 -0
  327. package/dist/storage/tests/ipfsStorage.test.d.ts +1 -0
  328. package/dist/storage/tests/pinataStorage.test.d.ts +1 -0
  329. package/dist/storage/tests/storageManager.test.d.ts +1 -0
  330. package/dist/tests/abi.test.d.ts +1 -0
  331. package/dist/tests/chains-definitions.test.d.ts +1 -0
  332. package/dist/tests/core-encryption.test.d.ts +1 -0
  333. package/dist/tests/core-extended.test.d.ts +1 -0
  334. package/dist/tests/core-generics-coverage.test.d.ts +1 -0
  335. package/dist/tests/coverage-boost.test.d.ts +1 -0
  336. package/dist/tests/crypto-cross-platform-compatibility.test.d.ts +1 -0
  337. package/dist/tests/data-addfile-permissions-schema.test.d.ts +1 -0
  338. package/dist/tests/data-additional-methods.test.d.ts +1 -0
  339. package/dist/tests/data-controller-edge-cases.test.d.ts +1 -0
  340. package/dist/tests/data-ipfs-gateways.test.d.ts +1 -0
  341. package/dist/tests/data-relayer.test.d.ts +1 -0
  342. package/dist/tests/data-schema-validation.test.d.ts +1 -0
  343. package/dist/tests/data-simple-methods.test.d.ts +1 -0
  344. package/dist/tests/data.test.d.ts +1 -0
  345. package/dist/tests/demo-integration.test.d.ts +1 -0
  346. package/dist/tests/demo-trusted-server-integration.test.d.ts +1 -0
  347. package/dist/tests/download-relayer.test.d.ts +1 -0
  348. package/dist/tests/dual-mode-permissions.test.d.ts +1 -0
  349. package/dist/tests/dual-mode-trusted-servers.test.d.ts +1 -0
  350. package/dist/tests/encryption-correct-implementation.test.d.ts +1 -0
  351. package/dist/tests/encryption-coverage.test.d.ts +1 -0
  352. package/dist/tests/encryption-edge-cases.test.d.ts +1 -0
  353. package/dist/tests/encryption-utils-updated.test.d.ts +1 -0
  354. package/dist/tests/errors-coverage.test.d.ts +1 -0
  355. package/dist/tests/errors.test.d.ts +1 -0
  356. package/dist/tests/factories/mockFactory.d.ts +316 -0
  357. package/dist/tests/fakes/FakeStorageManager.d.ts +200 -0
  358. package/dist/tests/fakes/FakeStorageManager.test.d.ts +1 -0
  359. package/dist/tests/fakes/FakeWaitForTransactionEvents.d.ts +170 -0
  360. package/dist/tests/fakes/FakeWaitForTransactionEvents.test.d.ts +1 -0
  361. package/dist/tests/fakes/fake-pgp-port.d.ts +13 -0
  362. package/dist/tests/grantValidation-edge-cases.test.d.ts +1 -0
  363. package/dist/tests/grantValidation-unreachable-branch.test.d.ts +1 -0
  364. package/dist/tests/helper-methods.test.d.ts +1 -0
  365. package/dist/tests/helpers/platformTestHelpers.d.ts +106 -0
  366. package/dist/tests/helpers/typedMocks.d.ts +64 -0
  367. package/dist/tests/index-browser.test.d.ts +1 -0
  368. package/dist/tests/index-node.test.d.ts +1 -0
  369. package/dist/tests/index.test.d.ts +1 -0
  370. package/dist/tests/mocks/platformAdapter.d.ts +12 -0
  371. package/dist/tests/new-permissions-methods.test.d.ts +1 -0
  372. package/dist/tests/no-buffer-browser.test.d.ts +1 -0
  373. package/dist/tests/permissions-grantee.test.d.ts +1 -0
  374. package/dist/tests/permissions-revoke-relayer.test.d.ts +1 -0
  375. package/dist/tests/permissions-schema-validation.test.d.ts +1 -0
  376. package/dist/tests/permissions-server-files.test.d.ts +1 -0
  377. package/dist/tests/permissions-transaction-options.test.d.ts +1 -0
  378. package/dist/tests/permissions-trust-servers.test.d.ts +1 -0
  379. package/dist/tests/permissions.test.d.ts +1 -0
  380. package/dist/tests/personal.test.d.ts +1 -0
  381. package/dist/tests/platform-browser.test.d.ts +1 -0
  382. package/dist/tests/platform-crypto-expanded.test.d.ts +1 -0
  383. package/dist/tests/platform-crypto.test.d.ts +1 -0
  384. package/dist/tests/platform-index.test.d.ts +1 -0
  385. package/dist/tests/platform-node.test.d.ts +1 -0
  386. package/dist/tests/platform-shared-utils.test.d.ts +1 -0
  387. package/dist/tests/platform-updated.test.d.ts +1 -0
  388. package/dist/tests/protocol-additional-methods.test.d.ts +1 -0
  389. package/dist/tests/protocol.test.d.ts +1 -0
  390. package/dist/tests/read-only-mode.test.d.ts +1 -0
  391. package/dist/tests/relayer-integration.test.d.ts +1 -0
  392. package/dist/tests/relayer-unified.test.d.ts +1 -0
  393. package/dist/tests/schemas.test.d.ts +1 -0
  394. package/dist/tests/server-relayer-handler.test.d.ts +1 -0
  395. package/dist/tests/setup.d.ts +7 -0
  396. package/dist/tests/signatureFormatter.test.d.ts +1 -0
  397. package/dist/tests/trusted-server-queries.test.d.ts +1 -0
  398. package/dist/tests/typedDataConverter.test.d.ts +1 -0
  399. package/dist/tests/types-contracts.test.d.ts +1 -0
  400. package/dist/tests/types-data.test.d.ts +1 -0
  401. package/dist/tests/types-external-apis.test.d.ts +1 -0
  402. package/dist/tests/types-generics.test.d.ts +1 -0
  403. package/dist/tests/types-permissions.test.d.ts +1 -0
  404. package/dist/tests/types-upload-params.test.d.ts +1 -0
  405. package/dist/tests/types.test.d.ts +1 -0
  406. package/dist/tests/utils-formatters.test.d.ts +1 -0
  407. package/dist/tests/utils-grantFiles-edge-cases.test.d.ts +1 -0
  408. package/dist/tests/utils-grantFiles-validation.test.d.ts +1 -0
  409. package/dist/tests/utils-grantFiles.test.d.ts +1 -0
  410. package/dist/tests/utils-grantValidation-consolidated.test.d.ts +1 -0
  411. package/dist/tests/utils-grants.test.d.ts +1 -0
  412. package/dist/tests/utils-ipfs-additional.test.d.ts +1 -0
  413. package/dist/tests/utils-ipfs.test.d.ts +4 -0
  414. package/dist/tests/utils-schemaValidation.test.d.ts +1 -0
  415. package/dist/tests/vana.test.d.ts +1 -0
  416. package/dist/tests/wallet-crypto-compatibility.test.d.ts +1 -0
  417. package/dist/{chains.browser.cjs → types/atomicStore.cjs} +9 -15
  418. package/dist/types/atomicStore.cjs.map +1 -0
  419. package/dist/types/atomicStore.d.ts +236 -0
  420. package/dist/types/atomicStore.js +7 -0
  421. package/dist/types/atomicStore.js.map +1 -0
  422. package/dist/types/blockchain.cjs +17 -0
  423. package/dist/types/blockchain.cjs.map +1 -0
  424. package/dist/types/blockchain.d.ts +85 -0
  425. package/dist/types/blockchain.js +1 -0
  426. package/dist/types/blockchain.js.map +1 -0
  427. package/dist/types/chains-additional.test.d.ts +1 -0
  428. package/dist/types/chains.cjs.map +1 -1
  429. package/dist/types/chains.d.ts +80 -16
  430. package/dist/types/chains.js.map +1 -1
  431. package/dist/types/config.cjs +10 -0
  432. package/dist/types/config.cjs.map +1 -1
  433. package/dist/types/config.d.ts +236 -242
  434. package/dist/types/config.js +8 -0
  435. package/dist/types/config.js.map +1 -1
  436. package/dist/types/contracts.cjs.map +1 -1
  437. package/dist/types/contracts.d.ts +79 -18
  438. package/dist/types/controller-context.cjs +17 -0
  439. package/dist/types/controller-context.cjs.map +1 -0
  440. package/dist/types/controller-context.d.ts +68 -0
  441. package/dist/types/controller-context.js +1 -0
  442. package/dist/types/controller-context.js.map +1 -0
  443. package/dist/types/data.cjs.map +1 -1
  444. package/dist/types/data.d.ts +118 -49
  445. package/dist/types/external-apis.d.ts +10 -12
  446. package/dist/types/generics.cjs.map +1 -1
  447. package/dist/types/generics.d.ts +116 -48
  448. package/dist/types/index.cjs +5 -4
  449. package/dist/types/index.cjs.map +1 -1
  450. package/dist/types/index.d.ts +48 -34
  451. package/dist/types/index.js +9 -2
  452. package/dist/types/index.js.map +1 -1
  453. package/dist/types/operationStore.cjs +17 -0
  454. package/dist/types/operationStore.cjs.map +1 -0
  455. package/dist/types/operationStore.d.ts +171 -0
  456. package/dist/types/operationStore.js +1 -0
  457. package/dist/types/operationStore.js.map +1 -0
  458. package/dist/types/operations.cjs +2 -2
  459. package/dist/types/operations.cjs.map +1 -1
  460. package/dist/types/operations.d.ts +164 -42
  461. package/dist/types/operations.js +2 -2
  462. package/dist/types/operations.js.map +1 -1
  463. package/dist/types/options.cjs +17 -0
  464. package/dist/types/options.cjs.map +1 -0
  465. package/dist/types/options.d.ts +308 -0
  466. package/dist/types/options.js +1 -0
  467. package/dist/types/options.js.map +1 -0
  468. package/dist/types/permissions.cjs.map +1 -1
  469. package/dist/types/permissions.d.ts +72 -78
  470. package/dist/types/personal.cjs.map +1 -1
  471. package/dist/types/personal.d.ts +137 -22
  472. package/dist/types/relayer.cjs.map +1 -1
  473. package/dist/types/relayer.d.ts +293 -50
  474. package/dist/types/storage.cjs.map +1 -1
  475. package/dist/types/storage.d.ts +15 -29
  476. package/dist/types/storage.js +2 -5
  477. package/dist/types/storage.js.map +1 -1
  478. package/dist/types/transactionResults.cjs.map +1 -1
  479. package/dist/types/transactionResults.d.ts +193 -25
  480. package/dist/types/utils.cjs.map +1 -1
  481. package/dist/types/utils.d.ts +20 -68
  482. package/dist/types.d.ts +4 -40
  483. package/dist/utils/__tests__/parseTransaction.test.d.ts +1 -0
  484. package/dist/utils/__tests__/pojo-serialization.test.d.ts +1 -0
  485. package/dist/utils/__tests__/signatureCache.test.d.ts +1 -0
  486. package/dist/utils/__tests__/subgraphConsistency.test.d.ts +4 -0
  487. package/dist/utils/__tests__/subgraphPagination.test.d.ts +4 -0
  488. package/dist/utils/__tests__/transaction-edge-cases.test.d.ts +1 -0
  489. package/dist/utils/__tests__/transactionHelpers.test.d.ts +1 -0
  490. package/dist/utils/__tests__/urlResolver.test.d.ts +4 -0
  491. package/dist/utils/blockchain/registry.cjs +2 -2
  492. package/dist/utils/blockchain/registry.cjs.map +1 -1
  493. package/dist/utils/blockchain/registry.d.ts +6 -8
  494. package/dist/utils/blockchain/registry.js +2 -2
  495. package/dist/utils/blockchain/registry.js.map +1 -1
  496. package/dist/utils/blockchain/registry.test.d.ts +1 -0
  497. package/dist/utils/chainQuery.cjs +107 -0
  498. package/dist/utils/chainQuery.cjs.map +1 -0
  499. package/dist/utils/chainQuery.d.ts +31 -0
  500. package/dist/utils/chainQuery.js +82 -0
  501. package/dist/utils/chainQuery.js.map +1 -0
  502. package/dist/utils/crypto-utils.cjs +0 -12
  503. package/dist/utils/crypto-utils.cjs.map +1 -1
  504. package/dist/utils/crypto-utils.d.ts +9 -27
  505. package/dist/utils/crypto-utils.js +0 -11
  506. package/dist/utils/crypto-utils.js.map +1 -1
  507. package/dist/utils/crypto-utils.test.d.ts +1 -0
  508. package/dist/utils/download.cjs +3 -3
  509. package/dist/utils/download.cjs.map +1 -1
  510. package/dist/utils/download.d.ts +13 -14
  511. package/dist/utils/download.js +2 -2
  512. package/dist/utils/download.js.map +1 -1
  513. package/dist/utils/encoding.cjs +1 -1
  514. package/dist/utils/encoding.cjs.map +1 -1
  515. package/dist/utils/encoding.d.ts +4 -6
  516. package/dist/utils/encoding.js +1 -1
  517. package/dist/utils/encoding.js.map +1 -1
  518. package/dist/utils/encoding.test.d.ts +1 -0
  519. package/dist/utils/encryption.cjs +16 -10
  520. package/dist/utils/encryption.cjs.map +1 -1
  521. package/dist/utils/encryption.d.ts +13 -17
  522. package/dist/utils/encryption.js +16 -10
  523. package/dist/utils/encryption.js.map +1 -1
  524. package/dist/utils/formatters.cjs +4 -2
  525. package/dist/utils/formatters.cjs.map +1 -1
  526. package/dist/utils/formatters.d.ts +4 -6
  527. package/dist/utils/formatters.js +4 -2
  528. package/dist/utils/formatters.js.map +1 -1
  529. package/dist/utils/grantFiles.cjs +7 -4
  530. package/dist/utils/grantFiles.cjs.map +1 -1
  531. package/dist/utils/grantFiles.d.ts +16 -30
  532. package/dist/utils/grantFiles.js +7 -4
  533. package/dist/utils/grantFiles.js.map +1 -1
  534. package/dist/utils/grantValidation.cjs +1 -1
  535. package/dist/utils/grantValidation.cjs.map +1 -1
  536. package/dist/utils/grantValidation.d.ts +109 -33
  537. package/dist/utils/grantValidation.js +1 -1
  538. package/dist/utils/grantValidation.js.map +1 -1
  539. package/dist/utils/grants.cjs +1 -1
  540. package/dist/utils/grants.cjs.map +1 -1
  541. package/dist/utils/grants.d.ts +101 -23
  542. package/dist/utils/grants.js +1 -1
  543. package/dist/utils/grants.js.map +1 -1
  544. package/dist/utils/ipfs.cjs +2 -4
  545. package/dist/utils/ipfs.cjs.map +1 -1
  546. package/dist/utils/ipfs.d.ts +8 -10
  547. package/dist/utils/ipfs.js +2 -4
  548. package/dist/utils/ipfs.js.map +1 -1
  549. package/dist/utils/lazy-import.cjs +4 -6
  550. package/dist/utils/lazy-import.cjs.map +1 -1
  551. package/dist/utils/lazy-import.d.ts +33 -10
  552. package/dist/utils/lazy-import.js +4 -6
  553. package/dist/utils/lazy-import.js.map +1 -1
  554. package/dist/utils/multicall.cjs +4 -2
  555. package/dist/utils/multicall.cjs.map +1 -1
  556. package/dist/utils/multicall.d.ts +5 -8
  557. package/dist/utils/multicall.js +4 -2
  558. package/dist/utils/multicall.js.map +1 -1
  559. package/dist/utils/parseTransactionPojo.cjs +87 -0
  560. package/dist/utils/parseTransactionPojo.cjs.map +1 -0
  561. package/dist/utils/parseTransactionPojo.d.ts +31 -0
  562. package/dist/utils/parseTransactionPojo.js +63 -0
  563. package/dist/utils/parseTransactionPojo.js.map +1 -0
  564. package/dist/utils/schemaValidation.cjs +5 -5
  565. package/dist/utils/schemaValidation.cjs.map +1 -1
  566. package/dist/utils/schemaValidation.d.ts +8 -12
  567. package/dist/utils/schemaValidation.js +7 -10
  568. package/dist/utils/schemaValidation.js.map +1 -1
  569. package/dist/utils/signatureCache.cjs +9 -4
  570. package/dist/utils/signatureCache.cjs.map +1 -1
  571. package/dist/utils/signatureCache.d.ts +53 -15
  572. package/dist/utils/signatureCache.js +12 -10
  573. package/dist/utils/signatureCache.js.map +1 -1
  574. package/dist/utils/signatureFormatter.cjs +6 -9
  575. package/dist/utils/signatureFormatter.cjs.map +1 -1
  576. package/dist/utils/signatureFormatter.d.ts +2 -5
  577. package/dist/utils/signatureFormatter.js +6 -9
  578. package/dist/utils/signatureFormatter.js.map +1 -1
  579. package/dist/utils/subgraphConsistency.cjs +184 -0
  580. package/dist/utils/subgraphConsistency.cjs.map +1 -0
  581. package/dist/utils/subgraphConsistency.d.ts +65 -0
  582. package/dist/utils/subgraphConsistency.js +155 -0
  583. package/dist/utils/subgraphConsistency.js.map +1 -0
  584. package/dist/utils/subgraphMetaCache.cjs +101 -0
  585. package/dist/utils/subgraphMetaCache.cjs.map +1 -0
  586. package/dist/utils/subgraphMetaCache.d.ts +56 -0
  587. package/dist/utils/subgraphMetaCache.js +76 -0
  588. package/dist/utils/subgraphMetaCache.js.map +1 -0
  589. package/dist/utils/subgraphPagination.cjs +104 -0
  590. package/dist/utils/subgraphPagination.cjs.map +1 -0
  591. package/dist/utils/subgraphPagination.d.ts +78 -0
  592. package/dist/utils/subgraphPagination.js +78 -0
  593. package/dist/utils/subgraphPagination.js.map +1 -0
  594. package/dist/utils/tests/multicall.test.d.ts +1 -0
  595. package/dist/utils/transactionHelpers.cjs +54 -0
  596. package/dist/utils/transactionHelpers.cjs.map +1 -0
  597. package/dist/utils/transactionHelpers.d.ts +80 -0
  598. package/dist/utils/transactionHelpers.js +29 -0
  599. package/dist/utils/transactionHelpers.js.map +1 -0
  600. package/dist/utils/typeGuards.cjs +109 -0
  601. package/dist/utils/typeGuards.cjs.map +1 -0
  602. package/dist/utils/typeGuards.d.ts +138 -0
  603. package/dist/utils/typeGuards.js +74 -0
  604. package/dist/utils/typeGuards.js.map +1 -0
  605. package/dist/utils/typedDataConverter.cjs.map +1 -1
  606. package/dist/utils/typedDataConverter.d.ts +42 -9
  607. package/dist/utils/typedDataConverter.js.map +1 -1
  608. package/dist/utils/urlResolver.cjs +8 -1
  609. package/dist/utils/urlResolver.cjs.map +1 -1
  610. package/dist/utils/urlResolver.d.ts +24 -8
  611. package/dist/utils/urlResolver.js +9 -2
  612. package/dist/utils/urlResolver.js.map +1 -1
  613. package/dist/utils/wallet.cjs +63 -0
  614. package/dist/utils/wallet.cjs.map +1 -0
  615. package/dist/utils/wallet.d.ts +94 -0
  616. package/dist/utils/wallet.js +37 -0
  617. package/dist/utils/wallet.js.map +1 -0
  618. package/dist/utils/withEvents.cjs +44 -0
  619. package/dist/utils/withEvents.cjs.map +1 -0
  620. package/dist/utils/withEvents.d.ts +56 -0
  621. package/dist/utils/withEvents.js +18 -0
  622. package/dist/utils/withEvents.js.map +1 -0
  623. package/package.json +25 -13
  624. package/dist/browser.d.cts +0 -2
  625. package/dist/chains/definitions.d.cts +0 -53
  626. package/dist/chains/index.d.cts +0 -2
  627. package/dist/chains.browser.cjs.map +0 -1
  628. package/dist/chains.browser.d.cts +0 -2
  629. package/dist/chains.d.cts +0 -2
  630. package/dist/chains.node.d.cts +0 -2
  631. package/dist/config/addresses.d.cts +0 -380
  632. package/dist/config/chains.d.cts +0 -85
  633. package/dist/config/eventMappings.cjs +0 -114
  634. package/dist/config/eventMappings.cjs.map +0 -1
  635. package/dist/config/eventMappings.d.cts +0 -108
  636. package/dist/config/eventMappings.d.ts +0 -108
  637. package/dist/config/eventMappings.js +0 -90
  638. package/dist/config/eventMappings.js.map +0 -1
  639. package/dist/config/features.d.cts +0 -64
  640. package/dist/contracts/contractController.d.cts +0 -96
  641. package/dist/controllers/data.d.cts +0 -941
  642. package/dist/controllers/permissions.d.cts +0 -25
  643. package/dist/controllers/protocol.d.cts +0 -167
  644. package/dist/controllers/schemas.d.cts +0 -272
  645. package/dist/controllers/server.d.cts +0 -243
  646. package/dist/core/apiClient.d.cts +0 -165
  647. package/dist/core/client.d.cts +0 -92
  648. package/dist/core/generics.d.cts +0 -120
  649. package/dist/core.d.cts +0 -466
  650. package/dist/crypto/ecies/__tests__/test-vectors.d.cts +0 -40
  651. package/dist/crypto/ecies/base.d.cts +0 -143
  652. package/dist/crypto/ecies/browser.d.cts +0 -48
  653. package/dist/crypto/ecies/constants.d.cts +0 -122
  654. package/dist/crypto/ecies/index.d.cts +0 -1
  655. package/dist/crypto/ecies/interface.d.cts +0 -176
  656. package/dist/crypto/ecies/node.d.cts +0 -50
  657. package/dist/crypto/ecies/utils.d.cts +0 -67
  658. package/dist/crypto/services/WalletKeyEncryptionService.d.cts +0 -92
  659. package/dist/diagnostics.d.cts +0 -26
  660. package/dist/errors.d.cts +0 -350
  661. package/dist/generated/abi/ComputeEngineImplementation.d.cts +0 -996
  662. package/dist/generated/abi/ComputeInstructionRegistryImplementation.d.cts +0 -545
  663. package/dist/generated/abi/DATFactoryImplementation.d.cts +0 -661
  664. package/dist/generated/abi/DATImplementation.d.cts +0 -693
  665. package/dist/generated/abi/DATPausableImplementation.d.cts +0 -1145
  666. package/dist/generated/abi/DATVotesImplementation.d.cts +0 -1095
  667. package/dist/generated/abi/DLPPerformanceImplementation.d.cts +0 -883
  668. package/dist/generated/abi/DLPRegistryImplementation.d.cts +0 -1123
  669. package/dist/generated/abi/DLPRegistryTreasuryImplementation.d.cts +0 -452
  670. package/dist/generated/abi/DLPRewardDeployerImplementation.d.cts +0 -714
  671. package/dist/generated/abi/DLPRewardDeployerTreasuryImplementation.d.cts +0 -452
  672. package/dist/generated/abi/DLPRewardSwapImplementation.d.cts +0 -706
  673. package/dist/generated/abi/DLPRootImplementation.d.cts +0 -1248
  674. package/dist/generated/abi/DLPTreasuryImplementation.d.cts +0 -452
  675. package/dist/generated/abi/DataLiquidityPoolImplementation.d.cts +0 -737
  676. package/dist/generated/abi/DataPortabilityGranteesImplementation.d.cts +0 -661
  677. package/dist/generated/abi/DataPortabilityPermissionsImplementation.d.cts +0 -989
  678. package/dist/generated/abi/DataPortabilityServersImplementation.d.cts +0 -1086
  679. package/dist/generated/abi/DataRefinerRegistryImplementation.d.cts +0 -737
  680. package/dist/generated/abi/DataRegistryImplementation.d.cts +0 -1004
  681. package/dist/generated/abi/QueryEngineImplementation.d.cts +0 -1001
  682. package/dist/generated/abi/SwapHelperImplementation.d.cts +0 -764
  683. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.d.cts +0 -701
  684. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.d.cts +0 -701
  685. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.d.cts +0 -701
  686. package/dist/generated/abi/TeePoolImplementation.d.cts +0 -993
  687. package/dist/generated/abi/TeePoolPersistentGpuImplementation.d.cts +0 -701
  688. package/dist/generated/abi/TeePoolPersistentStandardImplementation.d.cts +0 -701
  689. package/dist/generated/abi/TeePoolPhalaImplementation.d.cts +0 -993
  690. package/dist/generated/abi/VanaEpochImplementation.d.cts +0 -900
  691. package/dist/generated/abi/VanaPoolEntityImplementation.d.cts +0 -934
  692. package/dist/generated/abi/VanaPoolStakingImplementation.d.cts +0 -693
  693. package/dist/generated/abi/VanaPoolTreasuryImplementation.d.cts +0 -394
  694. package/dist/generated/abi/index.d.cts +0 -26516
  695. package/dist/generated/server/server-exports.d.cts +0 -21
  696. package/dist/generated/server/server.d.cts +0 -512
  697. package/dist/generated/subgraph.d.cts +0 -5981
  698. package/dist/index.browser.cjs +0 -151
  699. package/dist/index.browser.cjs.map +0 -1
  700. package/dist/index.browser.d.cts +0 -177
  701. package/dist/index.d.cts +0 -2
  702. package/dist/index.node.d.cts +0 -64
  703. package/dist/node.d.cts +0 -2
  704. package/dist/permissions-DNKPu_G0.d.cts +0 -1666
  705. package/dist/permissions-eo8YeLGf.d.ts +0 -1666
  706. package/dist/platform/browser-only.d.cts +0 -25
  707. package/dist/platform/browser-safe.d.cts +0 -32
  708. package/dist/platform/browser.d.cts +0 -74
  709. package/dist/platform/index.d.cts +0 -5
  710. package/dist/platform/interface.d.cts +0 -218
  711. package/dist/platform/node.d.cts +0 -27
  712. package/dist/platform/shared/error-utils.d.cts +0 -25
  713. package/dist/platform/shared/pgp-utils.d.cts +0 -61
  714. package/dist/platform/shared/stream-utils.d.cts +0 -16
  715. package/dist/platform/utils.d.cts +0 -53
  716. package/dist/platform.browser.cjs +0 -41
  717. package/dist/platform.browser.cjs.map +0 -1
  718. package/dist/platform.browser.d.cts +0 -4
  719. package/dist/platform.d.cts +0 -5
  720. package/dist/platform.node.d.cts +0 -5
  721. package/dist/server/handler.cjs +0 -101
  722. package/dist/server/handler.cjs.map +0 -1
  723. package/dist/server/handler.d.cts +0 -282
  724. package/dist/server/handler.d.ts +0 -282
  725. package/dist/server/handler.js +0 -77
  726. package/dist/server/handler.js.map +0 -1
  727. package/dist/storage/index.d.cts +0 -10
  728. package/dist/storage/manager.d.cts +0 -150
  729. package/dist/storage/providers/callback-storage.d.cts +0 -100
  730. package/dist/storage/providers/google-drive.d.cts +0 -156
  731. package/dist/storage/providers/ipfs.d.cts +0 -163
  732. package/dist/storage/providers/pinata.d.cts +0 -173
  733. package/dist/types/chains.d.cts +0 -34
  734. package/dist/types/config.d.cts +0 -726
  735. package/dist/types/contracts.d.cts +0 -68
  736. package/dist/types/data.d.cts +0 -694
  737. package/dist/types/eccrypto-js.d.d.cts +0 -13
  738. package/dist/types/eccrypto-js.d.d.ts +0 -13
  739. package/dist/types/external-apis.d.cts +0 -186
  740. package/dist/types/generics.d.cts +0 -450
  741. package/dist/types/index.d.cts +0 -34
  742. package/dist/types/operations.d.cts +0 -108
  743. package/dist/types/permissions.d.cts +0 -957
  744. package/dist/types/personal.d.cts +0 -40
  745. package/dist/types/relayer.d.cts +0 -284
  746. package/dist/types/storage.d.cts +0 -131
  747. package/dist/types/transactionResults.d.cts +0 -25
  748. package/dist/types/utils.d.cts +0 -819
  749. package/dist/types.d.cts +0 -66
  750. package/dist/utils/blockchain/registry.d.cts +0 -34
  751. package/dist/utils/crypto-utils.d.cts +0 -118
  752. package/dist/utils/download.d.cts +0 -41
  753. package/dist/utils/encoding.d.cts +0 -54
  754. package/dist/utils/encryption.d.cts +0 -275
  755. package/dist/utils/eventParsing.cjs +0 -111
  756. package/dist/utils/eventParsing.cjs.map +0 -1
  757. package/dist/utils/eventParsing.d.cts +0 -60
  758. package/dist/utils/eventParsing.d.ts +0 -60
  759. package/dist/utils/eventParsing.js +0 -86
  760. package/dist/utils/eventParsing.js.map +0 -1
  761. package/dist/utils/formatters.d.cts +0 -120
  762. package/dist/utils/grantFiles.d.cts +0 -186
  763. package/dist/utils/grantValidation.d.cts +0 -150
  764. package/dist/utils/grants.d.cts +0 -70
  765. package/dist/utils/ipfs.d.cts +0 -90
  766. package/dist/utils/lazy-import.d.cts +0 -20
  767. package/dist/utils/multicall.d.cts +0 -129
  768. package/dist/utils/schemaValidation.d.cts +0 -172
  769. package/dist/utils/signatureCache.d.cts +0 -134
  770. package/dist/utils/signatureFormatter.d.cts +0 -39
  771. package/dist/utils/transactionParsing.cjs +0 -84
  772. package/dist/utils/transactionParsing.cjs.map +0 -1
  773. package/dist/utils/transactionParsing.d.cts +0 -25
  774. package/dist/utils/transactionParsing.d.ts +0 -25
  775. package/dist/utils/transactionParsing.js +0 -62
  776. package/dist/utils/transactionParsing.js.map +0 -1
  777. package/dist/utils/typedDataConverter.d.cts +0 -13
  778. package/dist/utils/urlResolver.d.cts +0 -40
@@ -1,14 +1,7 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import {
5
- StorageError
6
- } from "./index";
1
+ import { StorageError } from "../types/storage";
7
2
  class StorageManager {
8
- constructor() {
9
- __publicField(this, "providers", /* @__PURE__ */ new Map());
10
- __publicField(this, "defaultProvider", null);
11
- }
3
+ providers = /* @__PURE__ */ new Map();
4
+ defaultProvider = null;
12
5
  /**
13
6
  * Registers a storage provider with the manager.
14
7
  *
@@ -35,13 +28,23 @@ class StorageManager {
35
28
  }
36
29
  }
37
30
  /**
38
- * Get a registered storage provider
31
+ * Retrieves a registered storage provider.
32
+ *
33
+ * @param name - Provider identifier.
34
+ * If not specified, returns the default provider.
35
+ * @returns The requested storage provider instance
36
+ *
37
+ * @throws {StorageError} With code 'NO_PROVIDER' if no provider available
38
+ * @throws {StorageError} With code 'PROVIDER_NOT_FOUND' if named provider doesn't exist
39
39
  *
40
- * @param name - Provider identifier, uses default if not specified
41
- * @returns Storage provider instance
40
+ * @example
41
+ * ```typescript
42
+ * const provider = storage.getProvider('pinata');
43
+ * const config = provider.getConfig();
44
+ * ```
42
45
  */
43
46
  getProvider(name) {
44
- const providerName = name || this.defaultProvider;
47
+ const providerName = name ?? this.defaultProvider;
45
48
  if (!providerName) {
46
49
  throw new StorageError(
47
50
  "No storage provider specified and no default provider set",
@@ -60,25 +63,49 @@ class StorageManager {
60
63
  return provider;
61
64
  }
62
65
  /**
63
- * List all registered providers
66
+ * Lists all registered provider names.
64
67
  *
65
- * @returns Array of provider names
68
+ * @returns Array of registered provider identifiers
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const providers = storage.listProviders();
73
+ * console.log('Available providers:', providers);
74
+ * // Output: ['ipfs', 'pinata', 'google-drive']
75
+ * ```
66
76
  */
67
77
  listProviders() {
68
78
  return Array.from(this.providers.keys());
69
79
  }
70
80
  /**
71
- * Get the default provider name
81
+ * Gets the current default provider name.
82
+ *
83
+ * @returns Default provider identifier or null if none set
72
84
  *
73
- * @returns Default provider name or null
85
+ * @example
86
+ * ```typescript
87
+ * const defaultName = storage.getDefaultProvider();
88
+ * if (defaultName) {
89
+ * console.log(`Using ${defaultName} by default`);
90
+ * }
91
+ * ```
74
92
  */
75
93
  getDefaultProvider() {
76
94
  return this.defaultProvider;
77
95
  }
78
96
  /**
79
- * Set the default provider
97
+ * Sets the default storage provider.
80
98
  *
81
- * @param name - Provider identifier
99
+ * @param name - Provider identifier to set as default.
100
+ * Must be a registered provider name.
101
+ *
102
+ * @throws {StorageError} With code 'PROVIDER_NOT_FOUND' if provider not registered
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * storage.setDefaultProvider('pinata');
107
+ * // Now all operations without provider name will use Pinata
108
+ * ```
82
109
  */
83
110
  setDefaultProvider(name) {
84
111
  if (!this.providers.has(name)) {
@@ -117,53 +144,102 @@ class StorageManager {
117
144
  return provider.upload(file, filename);
118
145
  }
119
146
  /**
120
- * Download a file using the specified or default provider
147
+ * Downloads a file from storage.
148
+ *
149
+ * @param url - The storage URL to download from.
150
+ * Format depends on the storage provider.
151
+ * @param providerName - Optional provider identifier.
152
+ * Uses default provider if not specified.
153
+ * @returns The downloaded file as a Blob
121
154
  *
122
- * @param url - The storage URL
123
- * @param providerName - Optional provider to use
124
- * @returns Promise with file blob
155
+ * @throws {StorageError} If download fails or provider unavailable
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * const blob = await storage.download('ipfs://QmXxx...');
160
+ * const text = await blob.text();
161
+ * ```
125
162
  */
126
163
  async download(url, providerName) {
127
164
  const provider = this.getProvider(providerName);
128
165
  return provider.download(url);
129
166
  }
130
167
  /**
131
- * List files using the specified or default provider
168
+ * Lists files in storage.
169
+ *
170
+ * @param options - Optional filtering and pagination.
171
+ * @param options.namePattern - Pattern to filter files.
172
+ * @param options.limit - Maximum files to return.
173
+ * @param providerName - Optional provider identifier.
174
+ * Uses default provider if not specified.
175
+ * @returns Array of file metadata
132
176
  *
133
- * @param options - Optional filtering and pagination
134
- * @param providerName - Optional provider to use
135
- * @returns Promise with file list
177
+ * @throws {StorageError} If listing fails or not supported by provider
178
+ *
179
+ * @example
180
+ * ```typescript
181
+ * const files = await storage.list(
182
+ * { namePattern: '*.json', limit: 10 },
183
+ * 'google-drive'
184
+ * );
185
+ * ```
136
186
  */
137
187
  async list(options, providerName) {
138
188
  const provider = this.getProvider(providerName);
139
189
  return provider.list(options);
140
190
  }
141
191
  /**
142
- * Delete a file using the specified or default provider
192
+ * Deletes a file from storage.
193
+ *
194
+ * @param url - The storage URL to delete.
195
+ * Must be a valid URL for the provider.
196
+ * @param providerName - Optional provider identifier.
197
+ * Uses default provider if not specified.
198
+ * @returns True if deletion succeeded, false otherwise
199
+ *
200
+ * @throws {StorageError} If deletion fails or not supported by provider
143
201
  *
144
- * @param url - The storage URL
145
- * @param providerName - Optional provider to use
146
- * @returns Promise with success status
202
+ * @example
203
+ * ```typescript
204
+ * const success = await storage.delete('ipfs://QmXxx...');
205
+ * if (success) {
206
+ * console.log('File deleted successfully');
207
+ * }
208
+ * ```
147
209
  */
148
210
  async delete(url, providerName) {
149
211
  const provider = this.getProvider(providerName);
150
212
  return provider.delete(url);
151
213
  }
152
214
  /**
153
- * Get list of registered storage provider names
215
+ * Gets all registered storage provider names.
216
+ *
217
+ * @returns Array of provider identifiers
218
+ *
219
+ * @deprecated Use `listProviders()` instead
154
220
  *
155
- * @returns Array of provider names
221
+ * @example
222
+ * ```typescript
223
+ * const providers = storage.getStorageProviders();
224
+ * ```
156
225
  */
157
226
  getStorageProviders() {
158
227
  return Array.from(this.providers.keys());
159
228
  }
160
229
  /**
161
- * Get the default storage provider name
230
+ * Gets the default storage provider name.
162
231
  *
163
- * @returns Default provider name or undefined
232
+ * @returns Default provider identifier or undefined if none set
233
+ *
234
+ * @deprecated Use `getDefaultProvider()` instead
235
+ *
236
+ * @example
237
+ * ```typescript
238
+ * const defaultProvider = storage.getDefaultStorageProvider();
239
+ * ```
164
240
  */
165
241
  getDefaultStorageProvider() {
166
- return this.defaultProvider || void 0;
242
+ return this.defaultProvider ?? void 0;
167
243
  }
168
244
  }
169
245
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/storage/manager.ts"],"sourcesContent":["import {\n StorageProvider,\n StorageUploadResult,\n StorageFile,\n StorageListOptions,\n StorageError,\n} from \"./index\";\n\n/**\n * Manages multiple storage providers with a unified interface for file operations.\n *\n * @remarks\n * The StorageManager provides a consistent API for uploading, downloading, and managing\n * files across different storage backends including IPFS, Pinata, Google Drive, and\n * server-managed storage. It handles provider registration, default provider selection,\n * and automatic fallback scenarios for robust file operations.\n *\n * Used internally by DataController for encrypted file storage, but can also be used\n * directly for custom storage workflows. Each provider implements the `StorageProvider`\n * interface to ensure consistent behavior across different storage backends.\n *\n * The manager supports provider-specific configurations and features while maintaining\n * a uniform API surface for applications.\n * @example\n * ```typescript\n * import { StorageManager, IPFSStorage, PinataStorage } from '@opendatalabs/vana-sdk';\n *\n * const storage = new StorageManager();\n *\n * // Register multiple providers\n * storage.register('ipfs', new IPFSStorage({\n * apiEndpoint: 'https://api.pinata.cloud/pinning/pinFileToIPFS'\n * }), true);\n * storage.register('pinata', new PinataStorage({\n * jwt: 'your-pinata-jwt-token'\n * }));\n *\n * // Upload to default provider\n * const result = await storage.upload(fileBlob, 'myfile.json');\n *\n * // Upload to specific provider\n * const result2 = await storage.upload(fileBlob, 'myfile.json', 'pinata');\n * ```\n * @category Storage\n * @see {@link https://docs.vana.com/developer/vana-sdk-documentation/core-modules/storage-providers | Storage Providers Guide} for configuration details\n */\nexport class StorageManager {\n private providers: Map<string, StorageProvider> = new Map();\n private defaultProvider: string | null = null;\n\n /**\n * Registers a storage provider with the manager.\n *\n * @remarks\n * This method adds a new storage provider to the manager's registry and optionally\n * sets it as the default provider for subsequent operations. If no default provider\n * is currently set, the first registered provider automatically becomes the default.\n * @param name - Unique identifier for the provider\n * @param provider - The storage provider instance implementing the `StorageProvider` interface\n * @param isDefault - Whether this provider should be set as the default (defaults to `false`)\n * @example\n * ```typescript\n * const pinata = new PinataStorage({ jwt: 'your-jwt-token' });\n * storage.register('pinata', pinata, true); // Set as default\n *\n * const ipfs = new IPFSStorage({ apiEndpoint: 'https://...' });\n * storage.register('ipfs', ipfs); // Not default\n * ```\n */\n register(name: string, provider: StorageProvider, isDefault = false): void {\n this.providers.set(name, provider);\n\n if (isDefault || this.defaultProvider === null) {\n this.defaultProvider = name;\n }\n }\n\n /**\n * Get a registered storage provider\n *\n * @param name - Provider identifier, uses default if not specified\n * @returns Storage provider instance\n */\n getProvider(name?: string): StorageProvider {\n const providerName = name || this.defaultProvider;\n\n if (!providerName) {\n throw new StorageError(\n \"No storage provider specified and no default provider set\",\n \"NO_PROVIDER\",\n \"manager\",\n );\n }\n\n const provider = this.providers.get(providerName);\n if (!provider) {\n throw new StorageError(\n `Storage provider '${providerName}' not found`,\n \"PROVIDER_NOT_FOUND\",\n \"manager\",\n );\n }\n\n return provider;\n }\n\n /**\n * List all registered providers\n *\n * @returns Array of provider names\n */\n listProviders(): string[] {\n return Array.from(this.providers.keys());\n }\n\n /**\n * Get the default provider name\n *\n * @returns Default provider name or null\n */\n getDefaultProvider(): string | null {\n return this.defaultProvider;\n }\n\n /**\n * Set the default provider\n *\n * @param name - Provider identifier\n */\n setDefaultProvider(name: string): void {\n if (!this.providers.has(name)) {\n throw new StorageError(\n `Cannot set default provider '${name}': provider not registered`,\n \"PROVIDER_NOT_FOUND\",\n \"manager\",\n );\n }\n this.defaultProvider = name;\n }\n\n /**\n * Uploads a file using the specified or default storage provider.\n *\n * @remarks\n * This method uploads a file to the specified provider or falls back to the default\n * provider if none is specified. The upload result includes the storage URL, file size,\n * content type, and provider-specific metadata that can be used for subsequent operations.\n * @param file - The file blob to upload\n * @param filename - Optional custom filename (defaults to auto-generated name)\n * @param providerName - Optional provider identifier (uses default if not specified)\n * @returns A Promise that resolves to the storage upload result with URL and metadata\n * @throws {StorageError} When no provider is available or upload fails\n * @example\n * ```typescript\n * // Upload to default provider\n * const result = await storage.upload(fileBlob, 'data.json');\n * console.log(`Uploaded to: ${result.url}`);\n *\n * // Upload to specific provider\n * const result2 = await storage.upload(fileBlob, 'data.json', 'pinata');\n * ```\n */\n async upload(\n file: Blob,\n filename?: string,\n providerName?: string,\n ): Promise<StorageUploadResult> {\n const provider = this.getProvider(providerName);\n return provider.upload(file, filename);\n }\n\n /**\n * Download a file using the specified or default provider\n *\n * @param url - The storage URL\n * @param providerName - Optional provider to use\n * @returns Promise with file blob\n */\n async download(url: string, providerName?: string): Promise<Blob> {\n const provider = this.getProvider(providerName);\n return provider.download(url);\n }\n\n /**\n * List files using the specified or default provider\n *\n * @param options - Optional filtering and pagination\n * @param providerName - Optional provider to use\n * @returns Promise with file list\n */\n async list(\n options?: StorageListOptions,\n providerName?: string,\n ): Promise<StorageFile[]> {\n const provider = this.getProvider(providerName);\n return provider.list(options);\n }\n\n /**\n * Delete a file using the specified or default provider\n *\n * @param url - The storage URL\n * @param providerName - Optional provider to use\n * @returns Promise with success status\n */\n async delete(url: string, providerName?: string): Promise<boolean> {\n const provider = this.getProvider(providerName);\n return provider.delete(url);\n }\n\n /**\n * Get list of registered storage provider names\n *\n * @returns Array of provider names\n */\n getStorageProviders(): string[] {\n return Array.from(this.providers.keys());\n }\n\n /**\n * Get the default storage provider name\n *\n * @returns Default provider name or undefined\n */\n getDefaultStorageProvider(): string | undefined {\n return this.defaultProvider || undefined;\n }\n}\n"],"mappings":";;;AAAA;AAAA,EAKE;AAAA,OACK;AAwCA,MAAM,eAAe;AAAA,EAArB;AACL,wBAAQ,aAA0C,oBAAI,IAAI;AAC1D,wBAAQ,mBAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBzC,SAAS,MAAc,UAA2B,YAAY,OAAa;AACzE,SAAK,UAAU,IAAI,MAAM,QAAQ;AAEjC,QAAI,aAAa,KAAK,oBAAoB,MAAM;AAC9C,WAAK,kBAAkB;AAAA,IACzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,YAAY,MAAgC;AAC1C,UAAM,eAAe,QAAQ,KAAK;AAElC,QAAI,CAAC,cAAc;AACjB,YAAM,IAAI;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,WAAW,KAAK,UAAU,IAAI,YAAY;AAChD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI;AAAA,QACR,qBAAqB,YAAY;AAAA,QACjC;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,gBAA0B;AACxB,WAAO,MAAM,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAoC;AAClC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,mBAAmB,MAAoB;AACrC,QAAI,CAAC,KAAK,UAAU,IAAI,IAAI,GAAG;AAC7B,YAAM,IAAI;AAAA,QACR,gCAAgC,IAAI;AAAA,QACpC;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,SAAK,kBAAkB;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBA,MAAM,OACJ,MACA,UACA,cAC8B;AAC9B,UAAM,WAAW,KAAK,YAAY,YAAY;AAC9C,WAAO,SAAS,OAAO,MAAM,QAAQ;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,SAAS,KAAa,cAAsC;AAChE,UAAM,WAAW,KAAK,YAAY,YAAY;AAC9C,WAAO,SAAS,SAAS,GAAG;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,KACJ,SACA,cACwB;AACxB,UAAM,WAAW,KAAK,YAAY,YAAY;AAC9C,WAAO,SAAS,KAAK,OAAO;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,OAAO,KAAa,cAAyC;AACjE,UAAM,WAAW,KAAK,YAAY,YAAY;AAC9C,WAAO,SAAS,OAAO,GAAG;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,sBAAgC;AAC9B,WAAO,MAAM,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,4BAAgD;AAC9C,WAAO,KAAK,mBAAmB;AAAA,EACjC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/storage/manager.ts"],"sourcesContent":["/**\n * Manages multiple storage providers with a unified interface.\n *\n * @remarks\n * This module provides centralized management of storage providers, enabling\n * applications to work with multiple storage backends through a single API.\n * It handles provider registration, default selection, and operation routing.\n *\n * @category Storage\n * @module storage/manager\n */\n\nimport type {\n StorageProvider,\n StorageUploadResult,\n StorageFile,\n StorageListOptions,\n} from \"../types/storage\";\nimport { StorageError } from \"../types/storage\";\n\n/**\n * Manages multiple storage providers with a unified interface for file operations.\n *\n * @remarks\n * The StorageManager provides a consistent API for uploading, downloading, and managing\n * files across different storage backends including IPFS, Pinata, Google Drive, and\n * server-managed storage. It handles provider registration, default provider selection,\n * and automatic fallback scenarios for robust file operations.\n *\n * Used internally by DataController for encrypted file storage, but can also be used\n * directly for custom storage workflows. Each provider implements the `StorageProvider`\n * interface to ensure consistent behavior across different storage backends.\n *\n * The manager supports provider-specific configurations and features while maintaining\n * a uniform API surface for applications.\n * @example\n * ```typescript\n * import { StorageManager, IPFSStorage, PinataStorage } from '@opendatalabs/vana-sdk';\n *\n * const storage = new StorageManager();\n *\n * // Register multiple providers\n * storage.register('ipfs', new IPFSStorage({\n * apiEndpoint: 'https://api.pinata.cloud/pinning/pinFileToIPFS'\n * }), true);\n * storage.register('pinata', new PinataStorage({\n * jwt: 'your-pinata-jwt-token'\n * }));\n *\n * // Upload to default provider\n * const result = await storage.upload(fileBlob, 'myfile.json');\n *\n * // Upload to specific provider\n * const result2 = await storage.upload(fileBlob, 'myfile.json', 'pinata');\n * ```\n * @category Storage\n * @see {@link https://docs.vana.com/developer/vana-sdk-documentation/core-modules/storage-providers | Storage Providers Guide} for configuration details\n */\nexport class StorageManager {\n private providers: Map<string, StorageProvider> = new Map();\n private defaultProvider: string | null = null;\n\n /**\n * Registers a storage provider with the manager.\n *\n * @remarks\n * This method adds a new storage provider to the manager's registry and optionally\n * sets it as the default provider for subsequent operations. If no default provider\n * is currently set, the first registered provider automatically becomes the default.\n * @param name - Unique identifier for the provider\n * @param provider - The storage provider instance implementing the `StorageProvider` interface\n * @param isDefault - Whether this provider should be set as the default (defaults to `false`)\n * @example\n * ```typescript\n * const pinata = new PinataStorage({ jwt: 'your-jwt-token' });\n * storage.register('pinata', pinata, true); // Set as default\n *\n * const ipfs = new IPFSStorage({ apiEndpoint: 'https://...' });\n * storage.register('ipfs', ipfs); // Not default\n * ```\n */\n register(name: string, provider: StorageProvider, isDefault = false): void {\n this.providers.set(name, provider);\n\n if (isDefault || this.defaultProvider === null) {\n this.defaultProvider = name;\n }\n }\n\n /**\n * Retrieves a registered storage provider.\n *\n * @param name - Provider identifier.\n * If not specified, returns the default provider.\n * @returns The requested storage provider instance\n *\n * @throws {StorageError} With code 'NO_PROVIDER' if no provider available\n * @throws {StorageError} With code 'PROVIDER_NOT_FOUND' if named provider doesn't exist\n *\n * @example\n * ```typescript\n * const provider = storage.getProvider('pinata');\n * const config = provider.getConfig();\n * ```\n */\n getProvider(name?: string): StorageProvider {\n const providerName = name ?? this.defaultProvider;\n\n if (!providerName) {\n throw new StorageError(\n \"No storage provider specified and no default provider set\",\n \"NO_PROVIDER\",\n \"manager\",\n );\n }\n\n const provider = this.providers.get(providerName);\n if (!provider) {\n throw new StorageError(\n `Storage provider '${providerName}' not found`,\n \"PROVIDER_NOT_FOUND\",\n \"manager\",\n );\n }\n\n return provider;\n }\n\n /**\n * Lists all registered provider names.\n *\n * @returns Array of registered provider identifiers\n *\n * @example\n * ```typescript\n * const providers = storage.listProviders();\n * console.log('Available providers:', providers);\n * // Output: ['ipfs', 'pinata', 'google-drive']\n * ```\n */\n listProviders(): string[] {\n return Array.from(this.providers.keys());\n }\n\n /**\n * Gets the current default provider name.\n *\n * @returns Default provider identifier or null if none set\n *\n * @example\n * ```typescript\n * const defaultName = storage.getDefaultProvider();\n * if (defaultName) {\n * console.log(`Using ${defaultName} by default`);\n * }\n * ```\n */\n getDefaultProvider(): string | null {\n return this.defaultProvider;\n }\n\n /**\n * Sets the default storage provider.\n *\n * @param name - Provider identifier to set as default.\n * Must be a registered provider name.\n *\n * @throws {StorageError} With code 'PROVIDER_NOT_FOUND' if provider not registered\n *\n * @example\n * ```typescript\n * storage.setDefaultProvider('pinata');\n * // Now all operations without provider name will use Pinata\n * ```\n */\n setDefaultProvider(name: string): void {\n if (!this.providers.has(name)) {\n throw new StorageError(\n `Cannot set default provider '${name}': provider not registered`,\n \"PROVIDER_NOT_FOUND\",\n \"manager\",\n );\n }\n this.defaultProvider = name;\n }\n\n /**\n * Uploads a file using the specified or default storage provider.\n *\n * @remarks\n * This method uploads a file to the specified provider or falls back to the default\n * provider if none is specified. The upload result includes the storage URL, file size,\n * content type, and provider-specific metadata that can be used for subsequent operations.\n * @param file - The file blob to upload\n * @param filename - Optional custom filename (defaults to auto-generated name)\n * @param providerName - Optional provider identifier (uses default if not specified)\n * @returns A Promise that resolves to the storage upload result with URL and metadata\n * @throws {StorageError} When no provider is available or upload fails\n * @example\n * ```typescript\n * // Upload to default provider\n * const result = await storage.upload(fileBlob, 'data.json');\n * console.log(`Uploaded to: ${result.url}`);\n *\n * // Upload to specific provider\n * const result2 = await storage.upload(fileBlob, 'data.json', 'pinata');\n * ```\n */\n async upload(\n file: Blob,\n filename?: string,\n providerName?: string,\n ): Promise<StorageUploadResult> {\n const provider = this.getProvider(providerName);\n return provider.upload(file, filename);\n }\n\n /**\n * Downloads a file from storage.\n *\n * @param url - The storage URL to download from.\n * Format depends on the storage provider.\n * @param providerName - Optional provider identifier.\n * Uses default provider if not specified.\n * @returns The downloaded file as a Blob\n *\n * @throws {StorageError} If download fails or provider unavailable\n *\n * @example\n * ```typescript\n * const blob = await storage.download('ipfs://QmXxx...');\n * const text = await blob.text();\n * ```\n */\n async download(url: string, providerName?: string): Promise<Blob> {\n const provider = this.getProvider(providerName);\n return provider.download(url);\n }\n\n /**\n * Lists files in storage.\n *\n * @param options - Optional filtering and pagination.\n * @param options.namePattern - Pattern to filter files.\n * @param options.limit - Maximum files to return.\n * @param providerName - Optional provider identifier.\n * Uses default provider if not specified.\n * @returns Array of file metadata\n *\n * @throws {StorageError} If listing fails or not supported by provider\n *\n * @example\n * ```typescript\n * const files = await storage.list(\n * { namePattern: '*.json', limit: 10 },\n * 'google-drive'\n * );\n * ```\n */\n async list(\n options?: StorageListOptions,\n providerName?: string,\n ): Promise<StorageFile[]> {\n const provider = this.getProvider(providerName);\n return provider.list(options);\n }\n\n /**\n * Deletes a file from storage.\n *\n * @param url - The storage URL to delete.\n * Must be a valid URL for the provider.\n * @param providerName - Optional provider identifier.\n * Uses default provider if not specified.\n * @returns True if deletion succeeded, false otherwise\n *\n * @throws {StorageError} If deletion fails or not supported by provider\n *\n * @example\n * ```typescript\n * const success = await storage.delete('ipfs://QmXxx...');\n * if (success) {\n * console.log('File deleted successfully');\n * }\n * ```\n */\n async delete(url: string, providerName?: string): Promise<boolean> {\n const provider = this.getProvider(providerName);\n return provider.delete(url);\n }\n\n /**\n * Gets all registered storage provider names.\n *\n * @returns Array of provider identifiers\n *\n * @deprecated Use `listProviders()` instead\n *\n * @example\n * ```typescript\n * const providers = storage.getStorageProviders();\n * ```\n */\n getStorageProviders(): string[] {\n return Array.from(this.providers.keys());\n }\n\n /**\n * Gets the default storage provider name.\n *\n * @returns Default provider identifier or undefined if none set\n *\n * @deprecated Use `getDefaultProvider()` instead\n *\n * @example\n * ```typescript\n * const defaultProvider = storage.getDefaultStorageProvider();\n * ```\n */\n getDefaultStorageProvider(): string | undefined {\n return this.defaultProvider ?? undefined;\n }\n}\n"],"mappings":"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","names":[]}
@@ -23,6 +23,13 @@ __export(callback_storage_exports, {
23
23
  module.exports = __toCommonJS(callback_storage_exports);
24
24
  var import_storage = require("../../types/storage");
25
25
  class CallbackStorage {
26
+ /**
27
+ * Creates a new callback-based storage provider.
28
+ *
29
+ * @param callbacks - User-provided storage operation callbacks.
30
+ * Must include at minimum `upload` and `download` functions.
31
+ * @throws {Error} If required callbacks are missing
32
+ */
26
33
  constructor(callbacks) {
27
34
  this.callbacks = callbacks;
28
35
  if (!callbacks.upload || !callbacks.download) {
@@ -32,11 +39,23 @@ class CallbackStorage {
32
39
  }
33
40
  }
34
41
  /**
35
- * Upload a file using the provided callback
42
+ * Uploads a file using the user-provided callback.
43
+ *
44
+ * @param file - The blob to upload.
45
+ * Can be any Blob-compatible object including File.
46
+ * @param filename - Optional filename for the upload.
47
+ * If not provided, callback may generate a name.
48
+ * @returns Upload result containing URL and metadata
36
49
  *
37
- * @param file - The blob to upload
38
- * @param filename - Optional filename for the upload
39
- * @returns The upload result with URL and metadata
50
+ * @throws {StorageError} With code 'INVALID_UPLOAD_RESULT' if callback returns invalid data
51
+ * @throws {StorageError} With code 'UPLOAD_ERROR' if upload fails
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const file = new File(['content'], 'data.json');
56
+ * const result = await storage.upload(file);
57
+ * console.log('Uploaded to:', result.url);
58
+ * ```
40
59
  */
41
60
  async upload(file, filename) {
42
61
  try {
@@ -62,10 +81,20 @@ class CallbackStorage {
62
81
  }
63
82
  }
64
83
  /**
65
- * Download a file using the provided callback
84
+ * Downloads a file using the user-provided callback.
85
+ *
86
+ * @param url - The URL or identifier to download.
87
+ * If `extractIdentifier` callback is provided, it will be used to extract the identifier.
88
+ * @returns The downloaded file as a Blob
89
+ *
90
+ * @throws {StorageError} With code 'INVALID_DOWNLOAD_RESULT' if callback returns non-Blob
91
+ * @throws {StorageError} With code 'DOWNLOAD_ERROR' if download fails
66
92
  *
67
- * @param url - The URL or identifier to download
68
- * @returns The downloaded blob
93
+ * @example
94
+ * ```typescript
95
+ * const blob = await storage.download('https://storage.example.com/file123');
96
+ * const text = await blob.text();
97
+ * ```
69
98
  */
70
99
  async download(url) {
71
100
  try {
@@ -92,10 +121,27 @@ class CallbackStorage {
92
121
  }
93
122
  }
94
123
  /**
95
- * List files using the provided callback (if available)
124
+ * Lists files using the user-provided callback.
96
125
  *
97
- * @param options - Optional list options including filters and pagination
98
- * @returns Array of storage files
126
+ * @param options - Optional list options.
127
+ * @param options.namePattern - Pattern to filter files by name.
128
+ * Implementation depends on callback.
129
+ * @param options.limit - Maximum number of files to return.
130
+ * Implementation depends on callback.
131
+ * @returns Array of storage file metadata
132
+ *
133
+ * @throws {StorageError} With code 'NOT_SUPPORTED' if list callback not provided
134
+ * @throws {StorageError} With code 'LIST_ERROR' if listing fails
135
+ *
136
+ * @remarks
137
+ * This operation is optional and only available if a `list` callback
138
+ * is provided during construction.
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * const files = await storage.list({ namePattern: '*.json' });
143
+ * files.forEach(file => console.log(file.name, file.size));
144
+ * ```
99
145
  */
100
146
  async list(options) {
101
147
  if (!this.callbacks.list) {
@@ -109,11 +155,11 @@ class CallbackStorage {
109
155
  const result = await this.callbacks.list(options?.namePattern, options);
110
156
  return result.items.map((item, index) => ({
111
157
  id: item.identifier,
112
- name: item.identifier.split("/").pop() || `file-${index}`,
158
+ name: item.identifier.split("/").pop() ?? `file-${index}`,
113
159
  url: item.identifier,
114
- size: item.size || 0,
160
+ size: item.size ?? 0,
115
161
  contentType: "application/octet-stream",
116
- createdAt: item.lastModified || /* @__PURE__ */ new Date(),
162
+ createdAt: item.lastModified ?? /* @__PURE__ */ new Date(),
117
163
  metadata: item.metadata
118
164
  }));
119
165
  } catch (error) {
@@ -126,10 +172,26 @@ class CallbackStorage {
126
172
  }
127
173
  }
128
174
  /**
129
- * Delete a file using the provided callback (if available)
175
+ * Deletes a file using the user-provided callback.
176
+ *
177
+ * @param url - The URL or identifier to delete.
178
+ * If `extractIdentifier` callback is provided, it will be used to extract the identifier.
179
+ * @returns True if deletion succeeded, false otherwise
130
180
  *
131
- * @param url - The URL or identifier to delete
132
- * @returns True if deletion succeeded
181
+ * @throws {StorageError} With code 'NOT_SUPPORTED' if delete callback not provided
182
+ * @throws {StorageError} With code 'DELETE_ERROR' if deletion fails
183
+ *
184
+ * @remarks
185
+ * This operation is optional and only available if a `delete` callback
186
+ * is provided during construction.
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * const deleted = await storage.delete('https://storage.example.com/file123');
191
+ * if (deleted) {
192
+ * console.log('File deleted successfully');
193
+ * }
194
+ * ```
133
195
  */
134
196
  async delete(url) {
135
197
  if (!this.callbacks.delete) {
@@ -152,9 +214,18 @@ class CallbackStorage {
152
214
  }
153
215
  }
154
216
  /**
155
- * Get provider configuration
217
+ * Returns the provider's configuration and capabilities.
218
+ *
219
+ * @returns Configuration object indicating supported features
156
220
  *
157
- * @returns Provider configuration metadata
221
+ * @example
222
+ * ```typescript
223
+ * const config = storage.getConfig();
224
+ * if (config.features.list) {
225
+ * // List operation is supported
226
+ * const files = await storage.list();
227
+ * }
228
+ * ```
158
229
  */
159
230
  getConfig() {
160
231
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/storage/providers/callback-storage.ts"],"sourcesContent":["import type { StorageProvider } from \"../../types/storage\";\nimport type { StorageCallbacks } from \"../../types/config\";\nimport {\n StorageError,\n type StorageUploadResult,\n type StorageFile,\n type StorageListOptions,\n type StorageProviderConfig,\n} from \"../../types/storage\";\n\n/**\n * Storage provider that delegates all operations to user-provided callbacks.\n *\n * This provider follows the same flexible pattern as relayer callbacks,\n * allowing users to implement storage operations in any way they choose\n * (HTTP, WebSocket, direct cloud APIs, local filesystem, etc.).\n *\n * @category Storage\n * @example\n * ```typescript\n * // HTTP-based implementation\n * const httpCallbacks: StorageCallbacks = {\n * async upload(blob, filename) {\n * const formData = new FormData();\n * formData.append('file', blob, filename);\n * const response = await fetch('/api/storage/upload', {\n * method: 'POST',\n * body: formData\n * });\n * const data = await response.json();\n * return {\n * url: data.url,\n * size: blob.size,\n * contentType: blob.type\n * };\n * },\n * async download(identifier) {\n * const response = await fetch(`/api/storage/download/${identifier}`);\n * return response.blob();\n * }\n * };\n *\n * const storage = new CallbackStorage(httpCallbacks);\n *\n * // Direct S3 implementation\n * const s3Callbacks: StorageCallbacks = {\n * async upload(blob, filename) {\n * const url = await getPresignedUploadUrl(filename);\n * await fetch(url, { method: 'PUT', body: blob });\n * return {\n * url: `s3://my-bucket/${filename}`,\n * size: blob.size,\n * contentType: blob.type\n * };\n * },\n * async download(identifier) {\n * const url = await getPresignedDownloadUrl(identifier);\n * const response = await fetch(url);\n * return response.blob();\n * }\n * };\n * ```\n */\nexport class CallbackStorage implements StorageProvider {\n constructor(private readonly callbacks: StorageCallbacks) {\n if (!callbacks.upload || !callbacks.download) {\n throw new Error(\n \"CallbackStorage requires both upload and download callbacks\",\n );\n }\n }\n\n /**\n * Upload a file using the provided callback\n *\n * @param file - The blob to upload\n * @param filename - Optional filename for the upload\n * @returns The upload result with URL and metadata\n */\n async upload(file: Blob, filename?: string): Promise<StorageUploadResult> {\n try {\n const result = await this.callbacks.upload(file, filename);\n\n // Validate the result has required fields\n if (!result.url || result.url.trim() === \"\") {\n throw new StorageError(\n \"Upload callback returned invalid result: missing or empty url\",\n \"INVALID_UPLOAD_RESULT\",\n \"callback-storage\",\n );\n }\n\n return result;\n } catch (error) {\n if (error instanceof StorageError) {\n throw error;\n }\n throw new StorageError(\n `Upload failed: ${error instanceof Error ? error.message : String(error)}`,\n \"UPLOAD_ERROR\",\n \"callback-storage\",\n { cause: error instanceof Error ? error : undefined },\n );\n }\n }\n\n /**\n * Download a file using the provided callback\n *\n * @param url - The URL or identifier to download\n * @returns The downloaded blob\n */\n async download(url: string): Promise<Blob> {\n try {\n // Extract identifier if callback is provided, otherwise use URL as-is\n const identifier = this.callbacks.extractIdentifier\n ? this.callbacks.extractIdentifier(url)\n : url;\n\n const blob = await this.callbacks.download(identifier);\n\n if (!(blob instanceof Blob)) {\n throw new StorageError(\n \"Download callback returned invalid result: expected Blob\",\n \"INVALID_DOWNLOAD_RESULT\",\n \"callback-storage\",\n );\n }\n\n return blob;\n } catch (error) {\n if (error instanceof StorageError) {\n throw error;\n }\n throw new StorageError(\n `Download failed: ${error instanceof Error ? error.message : String(error)}`,\n \"DOWNLOAD_ERROR\",\n \"callback-storage\",\n { cause: error instanceof Error ? error : undefined },\n );\n }\n }\n\n /**\n * List files using the provided callback (if available)\n *\n * @param options - Optional list options including filters and pagination\n * @returns Array of storage files\n */\n async list(options?: StorageListOptions): Promise<StorageFile[]> {\n if (!this.callbacks.list) {\n throw new StorageError(\n \"List operation not supported - no list callback provided\",\n \"NOT_SUPPORTED\",\n \"callback-storage\",\n );\n }\n\n try {\n const result = await this.callbacks.list(options?.namePattern, options);\n\n // Convert list result to StorageFile format\n return result.items.map((item, index) => ({\n id: item.identifier,\n name: item.identifier.split(\"/\").pop() || `file-${index}`,\n url: item.identifier,\n size: item.size || 0,\n contentType: \"application/octet-stream\",\n createdAt: item.lastModified || new Date(),\n metadata: item.metadata,\n }));\n } catch (error) {\n throw new StorageError(\n `List failed: ${error instanceof Error ? error.message : String(error)}`,\n \"LIST_ERROR\",\n \"callback-storage\",\n { cause: error instanceof Error ? error : undefined },\n );\n }\n }\n\n /**\n * Delete a file using the provided callback (if available)\n *\n * @param url - The URL or identifier to delete\n * @returns True if deletion succeeded\n */\n async delete(url: string): Promise<boolean> {\n if (!this.callbacks.delete) {\n throw new StorageError(\n \"Delete operation not supported - no delete callback provided\",\n \"NOT_SUPPORTED\",\n \"callback-storage\",\n );\n }\n\n try {\n // Extract identifier if callback is provided, otherwise use URL as-is\n const identifier = this.callbacks.extractIdentifier\n ? this.callbacks.extractIdentifier(url)\n : url;\n\n return await this.callbacks.delete(identifier);\n } catch (error) {\n throw new StorageError(\n `Delete failed: ${error instanceof Error ? error.message : String(error)}`,\n \"DELETE_ERROR\",\n \"callback-storage\",\n { cause: error instanceof Error ? error : undefined },\n );\n }\n }\n\n /**\n * Get provider configuration\n *\n * @returns Provider configuration metadata\n */\n getConfig(): StorageProviderConfig {\n return {\n name: \"callback-storage\",\n type: \"callback\",\n requiresAuth: false,\n features: {\n upload: true,\n download: true,\n list: !!this.callbacks.list,\n delete: !!this.callbacks.delete,\n },\n };\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/storage/providers/callback-storage.ts"],"sourcesContent":["/**\n * Provides user-defined storage operations through callback functions.\n *\n * @remarks\n * This module implements a flexible storage provider that delegates all\n * operations to user-provided callbacks. It enables custom storage\n * integrations without modifying the SDK, supporting any backend including\n * HTTP APIs, WebSocket servers, cloud storage services, or local filesystems.\n *\n * @category Storage\n * @module storage/providers/callback-storage\n */\n\nimport type { StorageCallbacks } from \"../../types/config\";\nimport {\n StorageError,\n type StorageProvider,\n type StorageUploadResult,\n type StorageFile,\n type StorageListOptions,\n type StorageProviderConfig,\n} from \"../../types/storage\";\n\n/**\n * Delegates storage operations to user-provided callback functions.\n *\n * @remarks\n * This provider enables custom storage integrations by delegating all\n * operations to user-defined callbacks. It follows the same flexible\n * pattern as relayer callbacks, allowing implementations via HTTP,\n * WebSocket, direct cloud APIs, local filesystem, or any other backend.\n *\n * The provider validates callback results and wraps errors in consistent\n * `StorageError` types for uniform error handling across the SDK.\n *\n * @example\n * ```typescript\n * // HTTP-based implementation\n * const httpCallbacks: StorageCallbacks = {\n * async upload(blob, filename) {\n * const formData = new FormData();\n * formData.append('file', blob, filename);\n * const response = await fetch('/api/storage/upload', {\n * method: 'POST',\n * body: formData\n * });\n * const data = await response.json();\n * return {\n * url: data.url,\n * size: blob.size,\n * contentType: blob.type\n * };\n * },\n * async download(identifier) {\n * const response = await fetch(`/api/storage/download/${identifier}`);\n * return response.blob();\n * }\n * };\n *\n * const storage = new CallbackStorage(httpCallbacks);\n *\n * // Direct S3 implementation\n * const s3Callbacks: StorageCallbacks = {\n * async upload(blob, filename) {\n * const url = await getPresignedUploadUrl(filename);\n * await fetch(url, { method: 'PUT', body: blob });\n * return {\n * url: `s3://my-bucket/${filename}`,\n * size: blob.size,\n * contentType: blob.type\n * };\n * },\n * async download(identifier) {\n * const url = await getPresignedDownloadUrl(identifier);\n * const response = await fetch(url);\n * return response.blob();\n * }\n * };\n * ```\n *\n * @category Storage\n */\nexport class CallbackStorage implements StorageProvider {\n /**\n * Creates a new callback-based storage provider.\n *\n * @param callbacks - User-provided storage operation callbacks.\n * Must include at minimum `upload` and `download` functions.\n * @throws {Error} If required callbacks are missing\n */\n constructor(private readonly callbacks: StorageCallbacks) {\n if (!callbacks.upload || !callbacks.download) {\n throw new Error(\n \"CallbackStorage requires both upload and download callbacks\",\n );\n }\n }\n\n /**\n * Uploads a file using the user-provided callback.\n *\n * @param file - The blob to upload.\n * Can be any Blob-compatible object including File.\n * @param filename - Optional filename for the upload.\n * If not provided, callback may generate a name.\n * @returns Upload result containing URL and metadata\n *\n * @throws {StorageError} With code 'INVALID_UPLOAD_RESULT' if callback returns invalid data\n * @throws {StorageError} With code 'UPLOAD_ERROR' if upload fails\n *\n * @example\n * ```typescript\n * const file = new File(['content'], 'data.json');\n * const result = await storage.upload(file);\n * console.log('Uploaded to:', result.url);\n * ```\n */\n async upload(file: Blob, filename?: string): Promise<StorageUploadResult> {\n try {\n const result = await this.callbacks.upload(file, filename);\n\n // Validate the result has required fields\n if (!result.url || result.url.trim() === \"\") {\n throw new StorageError(\n \"Upload callback returned invalid result: missing or empty url\",\n \"INVALID_UPLOAD_RESULT\",\n \"callback-storage\",\n );\n }\n\n return result;\n } catch (error) {\n if (error instanceof StorageError) {\n throw error;\n }\n throw new StorageError(\n `Upload failed: ${error instanceof Error ? error.message : String(error)}`,\n \"UPLOAD_ERROR\",\n \"callback-storage\",\n { cause: error instanceof Error ? error : undefined },\n );\n }\n }\n\n /**\n * Downloads a file using the user-provided callback.\n *\n * @param url - The URL or identifier to download.\n * If `extractIdentifier` callback is provided, it will be used to extract the identifier.\n * @returns The downloaded file as a Blob\n *\n * @throws {StorageError} With code 'INVALID_DOWNLOAD_RESULT' if callback returns non-Blob\n * @throws {StorageError} With code 'DOWNLOAD_ERROR' if download fails\n *\n * @example\n * ```typescript\n * const blob = await storage.download('https://storage.example.com/file123');\n * const text = await blob.text();\n * ```\n */\n async download(url: string): Promise<Blob> {\n try {\n // Extract identifier if callback is provided, otherwise use URL as-is\n const identifier = this.callbacks.extractIdentifier\n ? this.callbacks.extractIdentifier(url)\n : url;\n\n const blob = await this.callbacks.download(identifier);\n\n if (!(blob instanceof Blob)) {\n throw new StorageError(\n \"Download callback returned invalid result: expected Blob\",\n \"INVALID_DOWNLOAD_RESULT\",\n \"callback-storage\",\n );\n }\n\n return blob;\n } catch (error) {\n if (error instanceof StorageError) {\n throw error;\n }\n throw new StorageError(\n `Download failed: ${error instanceof Error ? error.message : String(error)}`,\n \"DOWNLOAD_ERROR\",\n \"callback-storage\",\n { cause: error instanceof Error ? error : undefined },\n );\n }\n }\n\n /**\n * Lists files using the user-provided callback.\n *\n * @param options - Optional list options.\n * @param options.namePattern - Pattern to filter files by name.\n * Implementation depends on callback.\n * @param options.limit - Maximum number of files to return.\n * Implementation depends on callback.\n * @returns Array of storage file metadata\n *\n * @throws {StorageError} With code 'NOT_SUPPORTED' if list callback not provided\n * @throws {StorageError} With code 'LIST_ERROR' if listing fails\n *\n * @remarks\n * This operation is optional and only available if a `list` callback\n * is provided during construction.\n *\n * @example\n * ```typescript\n * const files = await storage.list({ namePattern: '*.json' });\n * files.forEach(file => console.log(file.name, file.size));\n * ```\n */\n async list(options?: StorageListOptions): Promise<StorageFile[]> {\n if (!this.callbacks.list) {\n throw new StorageError(\n \"List operation not supported - no list callback provided\",\n \"NOT_SUPPORTED\",\n \"callback-storage\",\n );\n }\n\n try {\n const result = await this.callbacks.list(options?.namePattern, options);\n\n // Convert list result to StorageFile format\n return result.items.map((item, index) => ({\n id: item.identifier,\n name: item.identifier.split(\"/\").pop() ?? `file-${index}`,\n url: item.identifier,\n size: item.size ?? 0,\n contentType: \"application/octet-stream\",\n createdAt: item.lastModified ?? new Date(),\n metadata: item.metadata,\n }));\n } catch (error) {\n throw new StorageError(\n `List failed: ${error instanceof Error ? error.message : String(error)}`,\n \"LIST_ERROR\",\n \"callback-storage\",\n { cause: error instanceof Error ? error : undefined },\n );\n }\n }\n\n /**\n * Deletes a file using the user-provided callback.\n *\n * @param url - The URL or identifier to delete.\n * If `extractIdentifier` callback is provided, it will be used to extract the identifier.\n * @returns True if deletion succeeded, false otherwise\n *\n * @throws {StorageError} With code 'NOT_SUPPORTED' if delete callback not provided\n * @throws {StorageError} With code 'DELETE_ERROR' if deletion fails\n *\n * @remarks\n * This operation is optional and only available if a `delete` callback\n * is provided during construction.\n *\n * @example\n * ```typescript\n * const deleted = await storage.delete('https://storage.example.com/file123');\n * if (deleted) {\n * console.log('File deleted successfully');\n * }\n * ```\n */\n async delete(url: string): Promise<boolean> {\n if (!this.callbacks.delete) {\n throw new StorageError(\n \"Delete operation not supported - no delete callback provided\",\n \"NOT_SUPPORTED\",\n \"callback-storage\",\n );\n }\n\n try {\n // Extract identifier if callback is provided, otherwise use URL as-is\n const identifier = this.callbacks.extractIdentifier\n ? this.callbacks.extractIdentifier(url)\n : url;\n\n return await this.callbacks.delete(identifier);\n } catch (error) {\n throw new StorageError(\n `Delete failed: ${error instanceof Error ? error.message : String(error)}`,\n \"DELETE_ERROR\",\n \"callback-storage\",\n { cause: error instanceof Error ? error : undefined },\n );\n }\n }\n\n /**\n * Returns the provider's configuration and capabilities.\n *\n * @returns Configuration object indicating supported features\n *\n * @example\n * ```typescript\n * const config = storage.getConfig();\n * if (config.features.list) {\n * // List operation is supported\n * const files = await storage.list();\n * }\n * ```\n */\n getConfig(): StorageProviderConfig {\n return {\n name: \"callback-storage\",\n type: \"callback\",\n requiresAuth: false,\n features: {\n upload: true,\n download: true,\n list: !!this.callbacks.list,\n delete: !!this.callbacks.delete,\n },\n };\n }\n}\n"],"mappings":"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","names":[]}