@backblaze-labs/b2-sdk 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (701) hide show
  1. package/CHANGELOG.md +110 -5
  2. package/README.md +144 -33
  3. package/dist/_virtual/_b2-sdk-version-json.cjs +4 -0
  4. package/dist/_virtual/_b2-sdk-version-json.js +4 -0
  5. package/dist/auth/account-info.d.cts +32 -0
  6. package/dist/auth/account-info.d.cts.map +1 -1
  7. package/dist/auth/account-info.d.ts +32 -0
  8. package/dist/auth/account-info.d.ts.map +1 -1
  9. package/dist/auth/file.cjs +408 -207
  10. package/dist/auth/file.cjs.map +1 -1
  11. package/dist/auth/file.d.cts +77 -3
  12. package/dist/auth/file.d.cts.map +1 -1
  13. package/dist/auth/file.d.ts +77 -3
  14. package/dist/auth/file.d.ts.map +1 -1
  15. package/dist/auth/file.js +407 -207
  16. package/dist/auth/file.js.map +1 -1
  17. package/dist/auth/in-memory.cjs +212 -183
  18. package/dist/auth/in-memory.cjs.map +1 -1
  19. package/dist/auth/in-memory.d.cts +8 -0
  20. package/dist/auth/in-memory.d.cts.map +1 -1
  21. package/dist/auth/in-memory.d.ts +8 -0
  22. package/dist/auth/in-memory.d.ts.map +1 -1
  23. package/dist/auth/in-memory.js +211 -182
  24. package/dist/auth/in-memory.js.map +1 -1
  25. package/dist/auth/index.cjs +7 -9
  26. package/dist/auth/index.d.cts +3 -2
  27. package/dist/auth/index.d.cts.map +1 -1
  28. package/dist/auth/index.d.ts +3 -2
  29. package/dist/auth/index.d.ts.map +1 -1
  30. package/dist/auth/index.js +2 -8
  31. package/dist/auth/realms.cjs +80 -7
  32. package/dist/auth/realms.cjs.map +1 -1
  33. package/dist/auth/realms.d.cts +27 -4
  34. package/dist/auth/realms.d.cts.map +1 -1
  35. package/dist/auth/realms.d.ts +27 -4
  36. package/dist/auth/realms.d.ts.map +1 -1
  37. package/dist/auth/realms.js +80 -9
  38. package/dist/auth/realms.js.map +1 -1
  39. package/dist/auth/upload-url-pool.cjs +55 -51
  40. package/dist/auth/upload-url-pool.cjs.map +1 -1
  41. package/dist/auth/upload-url-pool.js +55 -51
  42. package/dist/auth/upload-url-pool.js.map +1 -1
  43. package/dist/bucket.cjs +785 -787
  44. package/dist/bucket.cjs.map +1 -1
  45. package/dist/bucket.d.cts +35 -47
  46. package/dist/bucket.d.cts.map +1 -1
  47. package/dist/bucket.d.ts +35 -47
  48. package/dist/bucket.d.ts.map +1 -1
  49. package/dist/bucket.js +780 -782
  50. package/dist/bucket.js.map +1 -1
  51. package/dist/client.cjs +246 -228
  52. package/dist/client.cjs.map +1 -1
  53. package/dist/client.d.cts +25 -17
  54. package/dist/client.d.cts.map +1 -1
  55. package/dist/client.d.ts +25 -17
  56. package/dist/client.d.ts.map +1 -1
  57. package/dist/client.js +243 -225
  58. package/dist/client.js.map +1 -1
  59. package/dist/copy/large.cjs +114 -71
  60. package/dist/copy/large.cjs.map +1 -1
  61. package/dist/copy/large.d.cts +6 -0
  62. package/dist/copy/large.d.cts.map +1 -1
  63. package/dist/copy/large.d.ts +6 -0
  64. package/dist/copy/large.d.ts.map +1 -1
  65. package/dist/copy/large.js +112 -69
  66. package/dist/copy/large.js.map +1 -1
  67. package/dist/download/checksum.cjs +89 -0
  68. package/dist/download/checksum.cjs.map +1 -0
  69. package/dist/download/checksum.d.cts +40 -0
  70. package/dist/download/checksum.d.cts.map +1 -0
  71. package/dist/download/checksum.d.ts +40 -0
  72. package/dist/download/checksum.d.ts.map +1 -0
  73. package/dist/download/checksum.js +87 -0
  74. package/dist/download/checksum.js.map +1 -0
  75. package/dist/download/parallel.cjs +214 -118
  76. package/dist/download/parallel.cjs.map +1 -1
  77. package/dist/download/parallel.d.cts +5 -1
  78. package/dist/download/parallel.d.cts.map +1 -1
  79. package/dist/download/parallel.d.ts +5 -1
  80. package/dist/download/parallel.d.ts.map +1 -1
  81. package/dist/download/parallel.js +212 -116
  82. package/dist/download/parallel.js.map +1 -1
  83. package/dist/download/single.cjs +188 -97
  84. package/dist/download/single.cjs.map +1 -1
  85. package/dist/download/single.d.cts +6 -1
  86. package/dist/download/single.d.cts.map +1 -1
  87. package/dist/download/single.d.ts +6 -1
  88. package/dist/download/single.d.ts.map +1 -1
  89. package/dist/download/single.js +186 -98
  90. package/dist/download/single.js.map +1 -1
  91. package/dist/errors/index.cjs +699 -243
  92. package/dist/errors/index.cjs.map +1 -1
  93. package/dist/errors/index.d.cts +285 -82
  94. package/dist/errors/index.d.cts.map +1 -1
  95. package/dist/errors/index.d.ts +285 -82
  96. package/dist/errors/index.d.ts.map +1 -1
  97. package/dist/errors/index.js +678 -261
  98. package/dist/errors/index.js.map +1 -1
  99. package/dist/http/retry.cjs +45 -28
  100. package/dist/http/retry.cjs.map +1 -1
  101. package/dist/http/retry.d.cts +15 -2
  102. package/dist/http/retry.d.cts.map +1 -1
  103. package/dist/http/retry.d.ts +15 -2
  104. package/dist/http/retry.d.ts.map +1 -1
  105. package/dist/http/retry.js +46 -31
  106. package/dist/http/retry.js.map +1 -1
  107. package/dist/http/transport.cjs +438 -140
  108. package/dist/http/transport.cjs.map +1 -1
  109. package/dist/http/transport.d.cts +21 -2
  110. package/dist/http/transport.d.cts.map +1 -1
  111. package/dist/http/transport.d.ts +21 -2
  112. package/dist/http/transport.d.ts.map +1 -1
  113. package/dist/http/transport.js +437 -140
  114. package/dist/http/transport.js.map +1 -1
  115. package/dist/http/url-guard.cjs +154 -89
  116. package/dist/http/url-guard.cjs.map +1 -1
  117. package/dist/http/url-guard.d.cts +25 -3
  118. package/dist/http/url-guard.d.cts.map +1 -1
  119. package/dist/http/url-guard.d.ts +25 -3
  120. package/dist/http/url-guard.d.ts.map +1 -1
  121. package/dist/http/url-guard.js +152 -90
  122. package/dist/http/url-guard.js.map +1 -1
  123. package/dist/http/user-agent.cjs +84 -44
  124. package/dist/http/user-agent.cjs.map +1 -1
  125. package/dist/http/user-agent.js +84 -46
  126. package/dist/http/user-agent.js.map +1 -1
  127. package/dist/index.cjs +101 -77
  128. package/dist/index.d.cts +27 -21
  129. package/dist/index.d.cts.map +1 -1
  130. package/dist/index.d.ts +27 -21
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +15 -71
  133. package/dist/internal/b2-naming.cjs +66 -0
  134. package/dist/internal/b2-naming.cjs.map +1 -0
  135. package/dist/internal/b2-naming.d.cts +43 -0
  136. package/dist/internal/b2-naming.d.cts.map +1 -0
  137. package/dist/internal/b2-naming.d.ts +43 -0
  138. package/dist/internal/b2-naming.d.ts.map +1 -0
  139. package/dist/internal/b2-naming.js +60 -0
  140. package/dist/internal/b2-naming.js.map +1 -0
  141. package/dist/internal/upload-retry-options.cjs +21 -0
  142. package/dist/internal/upload-retry-options.cjs.map +1 -0
  143. package/dist/internal/upload-retry-options.d.cts +12 -0
  144. package/dist/internal/upload-retry-options.d.cts.map +1 -0
  145. package/dist/internal/upload-retry-options.d.ts +12 -0
  146. package/dist/internal/upload-retry-options.d.ts.map +1 -0
  147. package/dist/internal/upload-retry-options.js +21 -0
  148. package/dist/internal/upload-retry-options.js.map +1 -0
  149. package/dist/internal/url-redaction.cjs +31 -0
  150. package/dist/internal/url-redaction.cjs.map +1 -0
  151. package/dist/internal/url-redaction.d.cts +17 -0
  152. package/dist/internal/url-redaction.d.cts.map +1 -0
  153. package/dist/internal/url-redaction.d.ts +17 -0
  154. package/dist/internal/url-redaction.d.ts.map +1 -0
  155. package/dist/internal/url-redaction.js +31 -0
  156. package/dist/internal/url-redaction.js.map +1 -0
  157. package/dist/notifications/index.cjs +4 -6
  158. package/dist/notifications/index.d.cts +1 -1
  159. package/dist/notifications/index.d.cts.map +1 -1
  160. package/dist/notifications/index.d.ts +1 -1
  161. package/dist/notifications/index.d.ts.map +1 -1
  162. package/dist/notifications/index.js +1 -6
  163. package/dist/notifications/webhook.cjs +195 -85
  164. package/dist/notifications/webhook.cjs.map +1 -1
  165. package/dist/notifications/webhook.d.cts.map +1 -1
  166. package/dist/notifications/webhook.d.ts.map +1 -1
  167. package/dist/notifications/webhook.js +195 -87
  168. package/dist/notifications/webhook.js.map +1 -1
  169. package/dist/object.cjs +253 -210
  170. package/dist/object.cjs.map +1 -1
  171. package/dist/object.d.cts +9 -55
  172. package/dist/object.d.cts.map +1 -1
  173. package/dist/object.d.ts +9 -55
  174. package/dist/object.d.ts.map +1 -1
  175. package/dist/object.js +249 -206
  176. package/dist/object.js.map +1 -1
  177. package/dist/raw/encoding.cjs +74 -35
  178. package/dist/raw/encoding.cjs.map +1 -1
  179. package/dist/raw/encoding.js +74 -38
  180. package/dist/raw/encoding.js.map +1 -1
  181. package/dist/raw/index.cjs +678 -587
  182. package/dist/raw/index.cjs.map +1 -1
  183. package/dist/raw/index.d.cts +121 -18
  184. package/dist/raw/index.d.cts.map +1 -1
  185. package/dist/raw/index.d.ts +121 -18
  186. package/dist/raw/index.d.ts.map +1 -1
  187. package/dist/raw/index.js +674 -589
  188. package/dist/raw/index.js.map +1 -1
  189. package/dist/s3/index.cjs +355 -18
  190. package/dist/s3/index.cjs.map +1 -1
  191. package/dist/s3/index.d.cts +233 -5
  192. package/dist/s3/index.d.cts.map +1 -1
  193. package/dist/s3/index.d.ts +233 -5
  194. package/dist/s3/index.d.ts.map +1 -1
  195. package/dist/s3/index.js +351 -22
  196. package/dist/s3/index.js.map +1 -1
  197. package/dist/s3/sigv4.cjs +149 -0
  198. package/dist/s3/sigv4.cjs.map +1 -0
  199. package/dist/s3/sigv4.d.cts +43 -0
  200. package/dist/s3/sigv4.d.cts.map +1 -0
  201. package/dist/s3/sigv4.d.ts +43 -0
  202. package/dist/s3/sigv4.d.ts.map +1 -0
  203. package/dist/s3/sigv4.js +148 -0
  204. package/dist/s3/sigv4.js.map +1 -0
  205. package/dist/s3/validation.cjs +69 -0
  206. package/dist/s3/validation.cjs.map +1 -0
  207. package/dist/s3/validation.d.cts +43 -0
  208. package/dist/s3/validation.d.cts.map +1 -0
  209. package/dist/s3/validation.d.ts +43 -0
  210. package/dist/s3/validation.d.ts.map +1 -0
  211. package/dist/s3/validation.js +66 -0
  212. package/dist/s3/validation.js.map +1 -0
  213. package/dist/simulator/capabilities.cjs +63 -48
  214. package/dist/simulator/capabilities.cjs.map +1 -1
  215. package/dist/simulator/capabilities.js +63 -49
  216. package/dist/simulator/capabilities.js.map +1 -1
  217. package/dist/simulator/index.cjs +2124 -1548
  218. package/dist/simulator/index.cjs.map +1 -1
  219. package/dist/simulator/index.d.cts +79 -11
  220. package/dist/simulator/index.d.cts.map +1 -1
  221. package/dist/simulator/index.d.ts +79 -11
  222. package/dist/simulator/index.d.ts.map +1 -1
  223. package/dist/simulator/index.js +2112 -1546
  224. package/dist/simulator/index.js.map +1 -1
  225. package/dist/simulator/validation.cjs +191 -153
  226. package/dist/simulator/validation.cjs.map +1 -1
  227. package/dist/simulator/validation.d.cts +3 -21
  228. package/dist/simulator/validation.d.cts.map +1 -1
  229. package/dist/simulator/validation.d.ts +3 -21
  230. package/dist/simulator/validation.d.ts.map +1 -1
  231. package/dist/simulator/validation.js +188 -162
  232. package/dist/simulator/validation.js.map +1 -1
  233. package/dist/streams/collect.cjs +74 -24
  234. package/dist/streams/collect.cjs.map +1 -1
  235. package/dist/streams/collect.d.cts +14 -1
  236. package/dist/streams/collect.d.cts.map +1 -1
  237. package/dist/streams/collect.d.ts +14 -1
  238. package/dist/streams/collect.d.ts.map +1 -1
  239. package/dist/streams/collect.js +74 -25
  240. package/dist/streams/collect.js.map +1 -1
  241. package/dist/streams/file-source.cjs +287 -0
  242. package/dist/streams/file-source.cjs.map +1 -0
  243. package/dist/streams/file-source.d.cts +96 -0
  244. package/dist/streams/file-source.d.cts.map +1 -0
  245. package/dist/streams/file-source.d.ts +96 -0
  246. package/dist/streams/file-source.d.ts.map +1 -0
  247. package/dist/streams/file-source.js +286 -0
  248. package/dist/streams/file-source.js.map +1 -0
  249. package/dist/streams/hash.cjs +207 -115
  250. package/dist/streams/hash.cjs.map +1 -1
  251. package/dist/streams/hash.d.cts +5 -4
  252. package/dist/streams/hash.d.cts.map +1 -1
  253. package/dist/streams/hash.d.ts +5 -4
  254. package/dist/streams/hash.d.ts.map +1 -1
  255. package/dist/streams/hash.js +208 -95
  256. package/dist/streams/hash.js.map +1 -1
  257. package/dist/streams/index.cjs +12 -12
  258. package/dist/streams/index.d.cts +3 -3
  259. package/dist/streams/index.d.cts.map +1 -1
  260. package/dist/streams/index.d.ts +3 -3
  261. package/dist/streams/index.d.ts.map +1 -1
  262. package/dist/streams/index.js +2 -10
  263. package/dist/streams/progress.cjs +60 -46
  264. package/dist/streams/progress.cjs.map +1 -1
  265. package/dist/streams/progress.js +60 -46
  266. package/dist/streams/progress.js.map +1 -1
  267. package/dist/streams/source.cjs +316 -146
  268. package/dist/streams/source.cjs.map +1 -1
  269. package/dist/streams/source.d.cts +56 -18
  270. package/dist/streams/source.d.cts.map +1 -1
  271. package/dist/streams/source.d.ts +56 -18
  272. package/dist/streams/source.d.ts.map +1 -1
  273. package/dist/streams/source.js +312 -149
  274. package/dist/streams/source.js.map +1 -1
  275. package/dist/sync/actions/index.cjs +236 -184
  276. package/dist/sync/actions/index.cjs.map +1 -1
  277. package/dist/sync/actions/index.d.cts +29 -21
  278. package/dist/sync/actions/index.d.cts.map +1 -1
  279. package/dist/sync/actions/index.d.ts +29 -21
  280. package/dist/sync/actions/index.d.ts.map +1 -1
  281. package/dist/sync/actions/index.js +236 -190
  282. package/dist/sync/actions/index.js.map +1 -1
  283. package/dist/sync/b2-sha1-reader.cjs +148 -0
  284. package/dist/sync/b2-sha1-reader.cjs.map +1 -0
  285. package/dist/sync/b2-sha1-reader.d.cts +58 -0
  286. package/dist/sync/b2-sha1-reader.d.cts.map +1 -0
  287. package/dist/sync/b2-sha1-reader.d.ts +58 -0
  288. package/dist/sync/b2-sha1-reader.d.ts.map +1 -0
  289. package/dist/sync/b2-sha1-reader.js +145 -0
  290. package/dist/sync/b2-sha1-reader.js.map +1 -0
  291. package/dist/sync/download-staging.cjs +265 -0
  292. package/dist/sync/download-staging.cjs.map +1 -0
  293. package/dist/sync/download-staging.d.cts +54 -0
  294. package/dist/sync/download-staging.d.cts.map +1 -0
  295. package/dist/sync/download-staging.d.ts +54 -0
  296. package/dist/sync/download-staging.d.ts.map +1 -0
  297. package/dist/sync/download-staging.js +259 -0
  298. package/dist/sync/download-staging.js.map +1 -0
  299. package/dist/sync/filesystem-errors.cjs +32 -0
  300. package/dist/sync/filesystem-errors.cjs.map +1 -0
  301. package/dist/sync/filesystem-errors.d.cts +8 -0
  302. package/dist/sync/filesystem-errors.d.cts.map +1 -0
  303. package/dist/sync/filesystem-errors.d.ts +8 -0
  304. package/dist/sync/filesystem-errors.d.ts.map +1 -0
  305. package/dist/sync/filesystem-errors.js +32 -0
  306. package/dist/sync/filesystem-errors.js.map +1 -0
  307. package/dist/sync/filters.cjs +217 -0
  308. package/dist/sync/filters.cjs.map +1 -0
  309. package/dist/sync/filters.d.cts +51 -0
  310. package/dist/sync/filters.d.cts.map +1 -0
  311. package/dist/sync/filters.d.ts +51 -0
  312. package/dist/sync/filters.d.ts.map +1 -0
  313. package/dist/sync/filters.js +213 -0
  314. package/dist/sync/filters.js.map +1 -0
  315. package/dist/sync/index.cjs +39 -22
  316. package/dist/sync/index.d.cts +14 -9
  317. package/dist/sync/index.d.cts.map +1 -1
  318. package/dist/sync/index.d.ts +14 -9
  319. package/dist/sync/index.d.ts.map +1 -1
  320. package/dist/sync/index.js +9 -20
  321. package/dist/sync/local-file-identity.cjs +61 -0
  322. package/dist/sync/local-file-identity.cjs.map +1 -0
  323. package/dist/sync/local-file-identity.d.cts +37 -0
  324. package/dist/sync/local-file-identity.d.cts.map +1 -0
  325. package/dist/sync/local-file-identity.d.ts +37 -0
  326. package/dist/sync/local-file-identity.d.ts.map +1 -0
  327. package/dist/sync/local-file-identity.js +60 -0
  328. package/dist/sync/local-file-identity.js.map +1 -0
  329. package/dist/sync/local-file-io.cjs +364 -0
  330. package/dist/sync/local-file-io.cjs.map +1 -0
  331. package/dist/sync/local-file-io.d.cts +75 -0
  332. package/dist/sync/local-file-io.d.cts.map +1 -0
  333. package/dist/sync/local-file-io.d.ts +75 -0
  334. package/dist/sync/local-file-io.d.ts.map +1 -0
  335. package/dist/sync/local-file-io.js +360 -0
  336. package/dist/sync/local-file-io.js.map +1 -0
  337. package/dist/sync/local-filesystem-root.cjs +27 -0
  338. package/dist/sync/local-filesystem-root.cjs.map +1 -0
  339. package/dist/sync/local-filesystem-root.d.cts +18 -0
  340. package/dist/sync/local-filesystem-root.d.cts.map +1 -0
  341. package/dist/sync/local-filesystem-root.d.ts +18 -0
  342. package/dist/sync/local-filesystem-root.d.ts.map +1 -0
  343. package/dist/sync/local-filesystem-root.js +26 -0
  344. package/dist/sync/local-filesystem-root.js.map +1 -0
  345. package/dist/sync/local-sha1.cjs +119 -0
  346. package/dist/sync/local-sha1.cjs.map +1 -0
  347. package/dist/sync/local-sha1.d.cts +39 -0
  348. package/dist/sync/local-sha1.d.cts.map +1 -0
  349. package/dist/sync/local-sha1.d.ts +39 -0
  350. package/dist/sync/local-sha1.d.ts.map +1 -0
  351. package/dist/sync/local-sha1.js +117 -0
  352. package/dist/sync/local-sha1.js.map +1 -0
  353. package/dist/sync/pairing.cjs +118 -29
  354. package/dist/sync/pairing.cjs.map +1 -1
  355. package/dist/sync/pairing.d.cts +7 -2
  356. package/dist/sync/pairing.d.cts.map +1 -1
  357. package/dist/sync/pairing.d.ts +7 -2
  358. package/dist/sync/pairing.d.ts.map +1 -1
  359. package/dist/sync/pairing.js +120 -31
  360. package/dist/sync/pairing.js.map +1 -1
  361. package/dist/sync/path-order.cjs +30 -0
  362. package/dist/sync/path-order.cjs.map +1 -0
  363. package/dist/sync/path-order.d.cts +28 -0
  364. package/dist/sync/path-order.d.cts.map +1 -0
  365. package/dist/sync/path-order.d.ts +28 -0
  366. package/dist/sync/path-order.d.ts.map +1 -0
  367. package/dist/sync/path-order.js +29 -0
  368. package/dist/sync/path-order.js.map +1 -0
  369. package/dist/sync/path-safety.cjs +111 -0
  370. package/dist/sync/path-safety.cjs.map +1 -0
  371. package/dist/sync/path-safety.d.cts +78 -0
  372. package/dist/sync/path-safety.d.cts.map +1 -0
  373. package/dist/sync/path-safety.d.ts +78 -0
  374. package/dist/sync/path-safety.d.ts.map +1 -0
  375. package/dist/sync/path-safety.js +105 -0
  376. package/dist/sync/path-safety.js.map +1 -0
  377. package/dist/sync/paths.d.cts +19 -0
  378. package/dist/sync/paths.d.cts.map +1 -0
  379. package/dist/sync/paths.d.ts +19 -0
  380. package/dist/sync/paths.d.ts.map +1 -0
  381. package/dist/sync/policies/compare.cjs +389 -11
  382. package/dist/sync/policies/compare.cjs.map +1 -1
  383. package/dist/sync/policies/compare.d.cts +100 -2
  384. package/dist/sync/policies/compare.d.cts.map +1 -1
  385. package/dist/sync/policies/compare.d.ts +100 -2
  386. package/dist/sync/policies/compare.d.ts.map +1 -1
  387. package/dist/sync/policies/compare.js +387 -13
  388. package/dist/sync/policies/compare.js.map +1 -1
  389. package/dist/sync/policies/index.cjs +76 -65
  390. package/dist/sync/policies/index.cjs.map +1 -1
  391. package/dist/sync/policies/index.d.cts +35 -6
  392. package/dist/sync/policies/index.d.cts.map +1 -1
  393. package/dist/sync/policies/index.d.ts +35 -6
  394. package/dist/sync/policies/index.d.ts.map +1 -1
  395. package/dist/sync/policies/index.js +76 -65
  396. package/dist/sync/policies/index.js.map +1 -1
  397. package/dist/sync/prefix.cjs +96 -0
  398. package/dist/sync/prefix.cjs.map +1 -0
  399. package/dist/sync/prefix.d.cts +55 -0
  400. package/dist/sync/prefix.d.cts.map +1 -0
  401. package/dist/sync/prefix.d.ts +55 -0
  402. package/dist/sync/prefix.d.ts.map +1 -0
  403. package/dist/sync/prefix.js +92 -0
  404. package/dist/sync/prefix.js.map +1 -0
  405. package/dist/sync/regexp-safety.cjs +192 -0
  406. package/dist/sync/regexp-safety.cjs.map +1 -0
  407. package/dist/sync/regexp-safety.d.cts +29 -0
  408. package/dist/sync/regexp-safety.d.cts.map +1 -0
  409. package/dist/sync/regexp-safety.d.ts +29 -0
  410. package/dist/sync/regexp-safety.d.ts.map +1 -0
  411. package/dist/sync/regexp-safety.js +190 -0
  412. package/dist/sync/regexp-safety.js.map +1 -0
  413. package/dist/sync/scan-events.cjs +33 -0
  414. package/dist/sync/scan-events.cjs.map +1 -0
  415. package/dist/sync/scan-events.d.cts +17 -0
  416. package/dist/sync/scan-events.d.cts.map +1 -0
  417. package/dist/sync/scan-events.d.ts +17 -0
  418. package/dist/sync/scan-events.d.ts.map +1 -0
  419. package/dist/sync/scan-events.js +32 -0
  420. package/dist/sync/scan-events.js.map +1 -0
  421. package/dist/sync/scan-limit.cjs +33 -0
  422. package/dist/sync/scan-limit.cjs.map +1 -0
  423. package/dist/sync/scan-limit.d.cts +21 -0
  424. package/dist/sync/scan-limit.d.cts.map +1 -0
  425. package/dist/sync/scan-limit.d.ts +21 -0
  426. package/dist/sync/scan-limit.d.ts.map +1 -0
  427. package/dist/sync/scan-limit.js +31 -0
  428. package/dist/sync/scan-limit.js.map +1 -0
  429. package/dist/sync/scanners/b2.cjs +239 -55
  430. package/dist/sync/scanners/b2.cjs.map +1 -1
  431. package/dist/sync/scanners/b2.d.cts +26 -7
  432. package/dist/sync/scanners/b2.d.cts.map +1 -1
  433. package/dist/sync/scanners/b2.d.ts +26 -7
  434. package/dist/sync/scanners/b2.d.ts.map +1 -1
  435. package/dist/sync/scanners/b2.js +239 -55
  436. package/dist/sync/scanners/b2.js.map +1 -1
  437. package/dist/sync/scanners/local.cjs +215 -56
  438. package/dist/sync/scanners/local.cjs.map +1 -1
  439. package/dist/sync/scanners/local.d.cts +22 -7
  440. package/dist/sync/scanners/local.d.cts.map +1 -1
  441. package/dist/sync/scanners/local.d.ts +22 -7
  442. package/dist/sync/scanners/local.d.ts.map +1 -1
  443. package/dist/sync/scanners/local.js +216 -57
  444. package/dist/sync/scanners/local.js.map +1 -1
  445. package/dist/sync/sha1-metadata.cjs +94 -0
  446. package/dist/sync/sha1-metadata.cjs.map +1 -0
  447. package/dist/sync/sha1-metadata.d.cts +82 -0
  448. package/dist/sync/sha1-metadata.d.cts.map +1 -0
  449. package/dist/sync/sha1-metadata.d.ts +82 -0
  450. package/dist/sync/sha1-metadata.d.ts.map +1 -0
  451. package/dist/sync/sha1-metadata.js +89 -0
  452. package/dist/sync/sha1-metadata.js.map +1 -0
  453. package/dist/sync/sha1-options.cjs +23 -0
  454. package/dist/sync/sha1-options.cjs.map +1 -0
  455. package/dist/sync/sha1-options.d.cts +14 -0
  456. package/dist/sync/sha1-options.d.cts.map +1 -0
  457. package/dist/sync/sha1-options.d.ts +14 -0
  458. package/dist/sync/sha1-options.d.ts.map +1 -0
  459. package/dist/sync/sha1-options.js +21 -0
  460. package/dist/sync/sha1-options.js.map +1 -0
  461. package/dist/sync/synchronizer.cjs +782 -197
  462. package/dist/sync/synchronizer.cjs.map +1 -1
  463. package/dist/sync/synchronizer.d.cts +47 -1
  464. package/dist/sync/synchronizer.d.cts.map +1 -1
  465. package/dist/sync/synchronizer.d.ts +47 -1
  466. package/dist/sync/synchronizer.d.ts.map +1 -1
  467. package/dist/sync/synchronizer.js +779 -173
  468. package/dist/sync/synchronizer.js.map +1 -1
  469. package/dist/sync/types.d.cts +208 -16
  470. package/dist/sync/types.d.cts.map +1 -1
  471. package/dist/sync/types.d.ts +208 -16
  472. package/dist/sync/types.d.ts.map +1 -1
  473. package/dist/types/auth.cjs +76 -56
  474. package/dist/types/auth.cjs.map +1 -1
  475. package/dist/types/auth.d.cts +67 -9
  476. package/dist/types/auth.d.cts.map +1 -1
  477. package/dist/types/auth.d.ts +67 -9
  478. package/dist/types/auth.d.ts.map +1 -1
  479. package/dist/types/auth.js +77 -57
  480. package/dist/types/auth.js.map +1 -1
  481. package/dist/types/bucket.cjs +74 -38
  482. package/dist/types/bucket.cjs.map +1 -1
  483. package/dist/types/bucket.js +75 -41
  484. package/dist/types/bucket.js.map +1 -1
  485. package/dist/types/encryption.cjs +364 -327
  486. package/dist/types/encryption.cjs.map +1 -1
  487. package/dist/types/encryption.d.cts +16 -0
  488. package/dist/types/encryption.d.cts.map +1 -1
  489. package/dist/types/encryption.d.ts +16 -0
  490. package/dist/types/encryption.d.ts.map +1 -1
  491. package/dist/types/encryption.js +364 -310
  492. package/dist/types/encryption.js.map +1 -1
  493. package/dist/types/errors.cjs +47 -0
  494. package/dist/types/errors.cjs.map +1 -0
  495. package/dist/types/errors.d.cts +13 -4
  496. package/dist/types/errors.d.cts.map +1 -1
  497. package/dist/types/errors.d.ts +13 -4
  498. package/dist/types/errors.d.ts.map +1 -1
  499. package/dist/types/errors.js +47 -0
  500. package/dist/types/errors.js.map +1 -0
  501. package/dist/types/file.cjs +36 -19
  502. package/dist/types/file.cjs.map +1 -1
  503. package/dist/types/file.d.cts +2 -2
  504. package/dist/types/file.d.cts.map +1 -1
  505. package/dist/types/file.d.ts +2 -2
  506. package/dist/types/file.d.ts.map +1 -1
  507. package/dist/types/file.js +37 -21
  508. package/dist/types/file.js.map +1 -1
  509. package/dist/types/ids.cjs +53 -9
  510. package/dist/types/ids.cjs.map +1 -1
  511. package/dist/types/ids.js +54 -15
  512. package/dist/types/ids.js.map +1 -1
  513. package/dist/types/index.d.cts +12 -11
  514. package/dist/types/index.d.cts.map +1 -1
  515. package/dist/types/index.d.ts +12 -11
  516. package/dist/types/index.d.ts.map +1 -1
  517. package/dist/types/key.d.cts +44 -8
  518. package/dist/types/key.d.cts.map +1 -1
  519. package/dist/types/key.d.ts +44 -8
  520. package/dist/types/key.d.ts.map +1 -1
  521. package/dist/types/lock.cjs +33 -13
  522. package/dist/types/lock.cjs.map +1 -1
  523. package/dist/types/lock.js +34 -15
  524. package/dist/types/lock.js.map +1 -1
  525. package/dist/types/notifications.cjs +44 -22
  526. package/dist/types/notifications.cjs.map +1 -1
  527. package/dist/types/notifications.js +45 -23
  528. package/dist/types/notifications.js.map +1 -1
  529. package/dist/types/upload.d.cts +39 -5
  530. package/dist/types/upload.d.cts.map +1 -1
  531. package/dist/types/upload.d.ts +39 -5
  532. package/dist/types/upload.d.ts.map +1 -1
  533. package/dist/upload/abort-scope.cjs +91 -0
  534. package/dist/upload/abort-scope.cjs.map +1 -0
  535. package/dist/upload/abort-scope.d.cts +48 -0
  536. package/dist/upload/abort-scope.d.cts.map +1 -0
  537. package/dist/upload/abort-scope.d.ts +48 -0
  538. package/dist/upload/abort-scope.d.ts.map +1 -0
  539. package/dist/upload/abort-scope.js +88 -0
  540. package/dist/upload/abort-scope.js.map +1 -0
  541. package/dist/upload/cancel.cjs +183 -8
  542. package/dist/upload/cancel.cjs.map +1 -1
  543. package/dist/upload/cancel.d.cts +110 -2
  544. package/dist/upload/cancel.d.cts.map +1 -1
  545. package/dist/upload/cancel.d.ts +110 -2
  546. package/dist/upload/cancel.d.ts.map +1 -1
  547. package/dist/upload/cancel.js +178 -9
  548. package/dist/upload/cancel.js.map +1 -1
  549. package/dist/upload/concurrency.cjs +79 -52
  550. package/dist/upload/concurrency.cjs.map +1 -1
  551. package/dist/upload/concurrency.js +79 -53
  552. package/dist/upload/concurrency.js.map +1 -1
  553. package/dist/upload/finish.cjs +59 -0
  554. package/dist/upload/finish.cjs.map +1 -0
  555. package/dist/upload/finish.d.cts +26 -0
  556. package/dist/upload/finish.d.cts.map +1 -0
  557. package/dist/upload/finish.d.ts +26 -0
  558. package/dist/upload/finish.d.ts.map +1 -0
  559. package/dist/upload/finish.js +59 -0
  560. package/dist/upload/finish.js.map +1 -0
  561. package/dist/upload/large.cjs +301 -218
  562. package/dist/upload/large.cjs.map +1 -1
  563. package/dist/upload/large.d.cts +76 -9
  564. package/dist/upload/large.d.cts.map +1 -1
  565. package/dist/upload/large.d.ts +76 -9
  566. package/dist/upload/large.d.ts.map +1 -1
  567. package/dist/upload/large.js +301 -218
  568. package/dist/upload/large.js.map +1 -1
  569. package/dist/upload/options.cjs +28 -0
  570. package/dist/upload/options.cjs.map +1 -0
  571. package/dist/upload/options.d.cts +104 -0
  572. package/dist/upload/options.d.cts.map +1 -0
  573. package/dist/upload/options.d.ts +104 -0
  574. package/dist/upload/options.d.ts.map +1 -0
  575. package/dist/upload/options.js +27 -0
  576. package/dist/upload/options.js.map +1 -0
  577. package/dist/upload/resume.cjs +333 -33
  578. package/dist/upload/resume.cjs.map +1 -1
  579. package/dist/upload/resume.d.cts +82 -12
  580. package/dist/upload/resume.d.cts.map +1 -1
  581. package/dist/upload/resume.d.ts +82 -12
  582. package/dist/upload/resume.d.ts.map +1 -1
  583. package/dist/upload/resume.js +330 -33
  584. package/dist/upload/resume.js.map +1 -1
  585. package/dist/upload/retry.cjs +186 -0
  586. package/dist/upload/retry.cjs.map +1 -0
  587. package/dist/upload/retry.d.cts +127 -0
  588. package/dist/upload/retry.d.cts.map +1 -0
  589. package/dist/upload/retry.d.ts +127 -0
  590. package/dist/upload/retry.d.ts.map +1 -0
  591. package/dist/upload/retry.js +182 -0
  592. package/dist/upload/retry.js.map +1 -0
  593. package/dist/upload/single.cjs +68 -44
  594. package/dist/upload/single.cjs.map +1 -1
  595. package/dist/upload/single.d.cts +2 -1
  596. package/dist/upload/single.d.cts.map +1 -1
  597. package/dist/upload/single.d.ts +2 -1
  598. package/dist/upload/single.d.ts.map +1 -1
  599. package/dist/upload/single.js +68 -44
  600. package/dist/upload/single.js.map +1 -1
  601. package/dist/upload/stream.cjs +317 -193
  602. package/dist/upload/stream.cjs.map +1 -1
  603. package/dist/upload/stream.d.cts +3 -1
  604. package/dist/upload/stream.d.cts.map +1 -1
  605. package/dist/upload/stream.d.ts +3 -1
  606. package/dist/upload/stream.d.ts.map +1 -1
  607. package/dist/upload/stream.js +316 -192
  608. package/dist/upload/stream.js.map +1 -1
  609. package/dist/util/best-effort.cjs +42 -8
  610. package/dist/util/best-effort.cjs.map +1 -1
  611. package/dist/util/best-effort.d.cts +2 -1
  612. package/dist/util/best-effort.d.cts.map +1 -1
  613. package/dist/util/best-effort.d.ts +2 -1
  614. package/dist/util/best-effort.d.ts.map +1 -1
  615. package/dist/util/best-effort.js +43 -9
  616. package/dist/util/best-effort.js.map +1 -1
  617. package/dist/util/bytes.cjs +23 -0
  618. package/dist/util/bytes.cjs.map +1 -0
  619. package/dist/util/bytes.d.cts +15 -0
  620. package/dist/util/bytes.d.cts.map +1 -0
  621. package/dist/util/bytes.d.ts +15 -0
  622. package/dist/util/bytes.d.ts.map +1 -0
  623. package/dist/util/bytes.js +23 -0
  624. package/dist/util/bytes.js.map +1 -0
  625. package/dist/util/crypto.cjs +68 -0
  626. package/dist/util/crypto.cjs.map +1 -0
  627. package/dist/util/crypto.d.cts +26 -0
  628. package/dist/util/crypto.d.cts.map +1 -0
  629. package/dist/util/crypto.d.ts +26 -0
  630. package/dist/util/crypto.d.ts.map +1 -0
  631. package/dist/util/crypto.js +66 -0
  632. package/dist/util/crypto.js.map +1 -0
  633. package/dist/util/defaults.cjs +25 -9
  634. package/dist/util/defaults.cjs.map +1 -1
  635. package/dist/util/defaults.js +26 -11
  636. package/dist/util/defaults.js.map +1 -1
  637. package/dist/util/error-reason.cjs +41 -0
  638. package/dist/util/error-reason.cjs.map +1 -0
  639. package/dist/util/error-reason.d.cts +9 -0
  640. package/dist/util/error-reason.d.cts.map +1 -0
  641. package/dist/util/error-reason.d.ts +9 -0
  642. package/dist/util/error-reason.d.ts.map +1 -0
  643. package/dist/util/error-reason.js +41 -0
  644. package/dist/util/error-reason.js.map +1 -0
  645. package/dist/util/http.cjs +23 -0
  646. package/dist/util/http.cjs.map +1 -0
  647. package/dist/util/http.d.cts +13 -0
  648. package/dist/util/http.d.cts.map +1 -0
  649. package/dist/util/http.d.ts +13 -0
  650. package/dist/util/http.d.ts.map +1 -0
  651. package/dist/util/http.js +23 -0
  652. package/dist/util/http.js.map +1 -0
  653. package/dist/util/normalize.cjs +66 -7
  654. package/dist/util/normalize.cjs.map +1 -1
  655. package/dist/util/normalize.js +67 -10
  656. package/dist/util/normalize.js.map +1 -1
  657. package/dist/util/paginator.cjs +63 -14
  658. package/dist/util/paginator.cjs.map +1 -1
  659. package/dist/util/paginator.js +64 -16
  660. package/dist/util/paginator.js.map +1 -1
  661. package/dist/util/plan-ranges.cjs +47 -22
  662. package/dist/util/plan-ranges.cjs.map +1 -1
  663. package/dist/util/plan-ranges.js +48 -24
  664. package/dist/util/plan-ranges.js.map +1 -1
  665. package/dist/util/sha1.cjs +27 -0
  666. package/dist/util/sha1.cjs.map +1 -0
  667. package/dist/util/sha1.d.cts +17 -0
  668. package/dist/util/sha1.d.cts.map +1 -0
  669. package/dist/util/sha1.d.ts +17 -0
  670. package/dist/util/sha1.d.ts.map +1 -0
  671. package/dist/util/sha1.js +26 -0
  672. package/dist/util/sha1.js.map +1 -0
  673. package/dist/util/text-codec.cjs +29 -5
  674. package/dist/util/text-codec.cjs.map +1 -1
  675. package/dist/util/text-codec.js +30 -7
  676. package/dist/util/text-codec.js.map +1 -1
  677. package/dist/util/to-error.cjs +18 -4
  678. package/dist/util/to-error.cjs.map +1 -1
  679. package/dist/util/to-error.js +19 -5
  680. package/dist/util/to-error.js.map +1 -1
  681. package/dist/version.cjs +17 -5
  682. package/dist/version.cjs.map +1 -1
  683. package/dist/version.d.cts +3 -3
  684. package/dist/version.d.ts +3 -3
  685. package/dist/version.js +19 -6
  686. package/dist/version.js.map +1 -1
  687. package/package.json +19 -16
  688. package/dist/auth/index.cjs.map +0 -1
  689. package/dist/auth/index.js.map +0 -1
  690. package/dist/index.cjs.map +0 -1
  691. package/dist/index.js.map +0 -1
  692. package/dist/notifications/index.cjs.map +0 -1
  693. package/dist/notifications/index.js.map +0 -1
  694. package/dist/package.json.cjs +0 -9
  695. package/dist/package.json.cjs.map +0 -1
  696. package/dist/package.json.js +0 -9
  697. package/dist/package.json.js.map +0 -1
  698. package/dist/streams/index.cjs.map +0 -1
  699. package/dist/streams/index.js.map +0 -1
  700. package/dist/sync/index.cjs.map +0 -1
  701. package/dist/sync/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/streams/source.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,gEAAgE;IAChE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;IAChD,4CAA4C;IAC5C,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAA;IACpC,mDAAmD;IACnD,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;CACtC;AAED,8CAA8C;AAC9C,qBAAa,UAAW,YAAW,aAAa;IAUlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IATjC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,QAAO;IAExB;;;OAGG;gBAC0B,IAAI,EAAE,IAAI;IAIvC;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa;IAIhD;;;OAGG;IACH,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;IAIpC;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;CAGtC;AAED,mDAAmD;AACnD,qBAAa,YAAa,YAAW,aAAa;IAUpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IATnC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,QAAO;IAExB;;;OAGG;gBAC0B,MAAM,EAAE,UAAU;IAI/C;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa;IAIhD;;;OAGG;IACH,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;IAUpC;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;CAQtC;AAED,wGAAwG;AACxG,qBAAa,YAAa,YAAW,aAAa;IAkB9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjB3B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,SAAQ;IACzB,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAQ;IAExB;;;;OAIG;gBAEgB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EACrD,IAAI,EAAE,MAAM;IAKd;;;;OAIG;IACH,KAAK,IAAI,aAAa;IAItB;;;;;OAKG;IACH,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;IAMpC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;CAI5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,EACrD,IAAI,CAAC,EAAE,MAAM,GACZ,aAAa,CAWf"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/streams/source.js"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
+ export { FileSource, type FileSourcePath } from './file-source.js';
2
+ /** Maximum consecutive empty chunks tolerated from a forward-only stream. */
3
+ export declare const MAX_EMPTY_STREAM_CHUNKS = 1024;
1
4
  /**
2
- * Uniform adapter for upload content. Wraps File, Blob, Buffer, or ReadableStream
3
- * behind a common interface so upload logic does not depend on the input type.
5
+ * Uniform adapter for upload content. Wraps File, Blob, Buffer, local files,
6
+ * async iterables, or ReadableStream behind a common interface so upload logic
7
+ * does not depend on the input type.
4
8
  */
5
9
  export interface ContentSource {
6
10
  /** Total size of the content in bytes. */
@@ -11,12 +15,12 @@ export interface ContentSource {
11
15
  * Whether {@link slice} is safe to call on this source.
12
16
  *
13
17
  * `true` for in-memory / random-access sources (`BufferSource`,
14
- * `BlobSource`) — the multipart upload engine can dispatch part reads
15
- * in parallel by slicing the source into disjoint ranges. `false`
16
- * for forward-only sources (`StreamSource`) — the engine must read
17
- * sequentially, one `partSize` chunk at a time. Callers that branch
18
- * on this flag are expected to fall back to the sequential path
19
- * rather than call `slice()` and catch the throw.
18
+ * `BlobSource`, `FileSource`) — the multipart upload engine can dispatch
19
+ * part reads in parallel by slicing the source into disjoint ranges.
20
+ * `false` for forward-only streams and async iterables — the engine must
21
+ * read sequentially, one `partSize` chunk at a time. Callers that branch on
22
+ * this flag are expected to fall back to the sequential path rather than call
23
+ * `slice()` and catch the throw.
20
24
  */
21
25
  readonly canSlice: boolean;
22
26
  /** Return a sub-range of this source as a new ContentSource. */
@@ -24,7 +28,9 @@ export interface ContentSource {
24
28
  /** Open the content as a ReadableStream. */
25
29
  stream(): ReadableStream<Uint8Array>;
26
30
  /** Read the entire content into an ArrayBuffer. */
27
- toArrayBuffer(): Promise<ArrayBuffer>;
31
+ toArrayBuffer(options?: {
32
+ readonly signal?: AbortSignal;
33
+ }): Promise<ArrayBuffer>;
28
34
  }
29
35
  /** ContentSource backed by a Blob or File. */
30
36
  export declare class BlobSource implements ContentSource {
@@ -53,9 +59,13 @@ export declare class BlobSource implements ContentSource {
53
59
  stream(): ReadableStream<Uint8Array>;
54
60
  /**
55
61
  * Read the entire Blob content into an ArrayBuffer.
62
+ * @param options - Optional abort signal used while reading.
63
+ *
56
64
  * @returns A promise that resolves with the full content as an ArrayBuffer.
57
65
  */
58
- toArrayBuffer(): Promise<ArrayBuffer>;
66
+ toArrayBuffer(options?: {
67
+ readonly signal?: AbortSignal;
68
+ }): Promise<ArrayBuffer>;
59
69
  }
60
70
  /** ContentSource backed by a Uint8Array buffer. */
61
71
  export declare class BufferSource implements ContentSource {
@@ -84,9 +94,13 @@ export declare class BufferSource implements ContentSource {
84
94
  stream(): ReadableStream<Uint8Array>;
85
95
  /**
86
96
  * Read the entire buffer content into an ArrayBuffer.
97
+ * @param options - Optional abort signal checked before returning bytes.
98
+ *
87
99
  * @returns A promise that resolves with the full content as an ArrayBuffer.
88
100
  */
89
- toArrayBuffer(): Promise<ArrayBuffer>;
101
+ toArrayBuffer(options?: {
102
+ readonly signal?: AbortSignal;
103
+ }): Promise<ArrayBuffer>;
90
104
  }
91
105
  /** ContentSource backed by a ReadableStream. Can only be consumed once and does not support slicing. */
92
106
  export declare class StreamSource implements ContentSource {
@@ -122,19 +136,43 @@ export declare class StreamSource implements ContentSource {
122
136
  stream(): ReadableStream<Uint8Array>;
123
137
  /**
124
138
  * Read the entire stream into an ArrayBuffer.
139
+ * @param options - Optional abort signal used while reading.
140
+ *
125
141
  * @returns A promise that resolves with the full content as an ArrayBuffer.
126
142
  */
127
- toArrayBuffer(): Promise<ArrayBuffer>;
143
+ toArrayBuffer(options?: {
144
+ readonly signal?: AbortSignal;
145
+ }): Promise<ArrayBuffer>;
128
146
  }
129
147
  /**
130
- * Convert a Uint8Array, Blob, or ReadableStream into a {@link ContentSource}.
131
- * When passing a ReadableStream, the `size` parameter is required.
132
- * @param input - The content to wrap, as a Uint8Array, Blob, or ReadableStream.
133
- * @param size - The total byte length, required when input is a ReadableStream.
148
+ * Reads exactly the advertised number of bytes from a stream.
149
+ * @param stream - Stream to consume.
150
+ * @param expectedSize - Exact number of bytes expected from the stream.
151
+ * @param signal - Optional abort signal for cancelling the read.
152
+ *
153
+ * @returns A byte array of length `expectedSize`.
154
+ *
155
+ * @throws If the stream emits too few bytes, too many bytes, too many empty chunks, or aborts.
156
+ */
157
+ export declare function collectStreamExactly(stream: ReadableStream<Uint8Array>, expectedSize: number, signal?: AbortSignal): Promise<Uint8Array<ArrayBuffer>>;
158
+ /**
159
+ * Reads from a stream until it receives data, EOF, or too many consecutive empty chunks.
160
+ * @param reader - Locked reader for a Uint8Array stream.
161
+ * @param emptyChunkErrorMessage - Error message to throw when the empty-chunk limit is exceeded.
162
+ * @param signal - Optional abort signal that cancels the reader and rejects the read.
163
+ *
164
+ * @returns The next non-empty chunk or EOF result.
165
+ */
166
+ export declare function readNextNonEmptyStreamChunk(reader: ReadableStreamDefaultReader<Uint8Array>, emptyChunkErrorMessage: string, signal?: AbortSignal): Promise<ReadableStreamReadResult<Uint8Array>>;
167
+ /**
168
+ * Convert a Uint8Array, Blob, ReadableStream, or async iterable into a {@link ContentSource}.
169
+ * When passing a ReadableStream or async iterable, the `size` parameter is required.
170
+ * @param input - The content to wrap.
171
+ * @param size - The total byte length, required for forward-only inputs.
134
172
  *
135
173
  * @returns A ContentSource adapter for the given input.
136
174
  *
137
- * @throws If input is a ReadableStream and size is not provided.
175
+ * @throws If input is forward-only and size is not provided.
138
176
  */
139
- export declare function toContentSource(input: Uint8Array | Blob | ReadableStream<Uint8Array>, size?: number): ContentSource;
177
+ export declare function toContentSource(input: Uint8Array | Blob | ReadableStream<Uint8Array> | AsyncIterable<Uint8Array>, size?: number): ContentSource;
140
178
  //# sourceMappingURL=source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/streams/source.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,gEAAgE;IAChE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;IAChD,4CAA4C;IAC5C,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAA;IACpC,mDAAmD;IACnD,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;CACtC;AAED,8CAA8C;AAC9C,qBAAa,UAAW,YAAW,aAAa;IAUlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IATjC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,QAAO;IAExB;;;OAGG;gBAC0B,IAAI,EAAE,IAAI;IAIvC;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa;IAIhD;;;OAGG;IACH,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;IAIpC;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;CAGtC;AAED,mDAAmD;AACnD,qBAAa,YAAa,YAAW,aAAa;IAUpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IATnC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,QAAO;IAExB;;;OAGG;gBAC0B,MAAM,EAAE,UAAU;IAI/C;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa;IAIhD;;;OAGG;IACH,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;IAUpC;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;CAQtC;AAED,wGAAwG;AACxG,qBAAa,YAAa,YAAW,aAAa;IAkB9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjB3B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,SAAQ;IACzB,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAQ;IAExB;;;;OAIG;gBAEgB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EACrD,IAAI,EAAE,MAAM;IAKd;;;;OAIG;IACH,KAAK,IAAI,aAAa;IAItB;;;;;OAKG;IACH,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;IAMpC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;CAI5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,EACrD,IAAI,CAAC,EAAE,MAAM,GACZ,aAAa,CAWf"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/streams/source.js"],"names":[],"mappings":"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"}
@@ -1,155 +1,318 @@
1
+ import { arrayBufferFor } from "../util/bytes.js";
1
2
  import { collectStream } from "./collect.js";
2
- class BlobSource {
3
- /**
4
- * Create a BlobSource wrapping the given Blob.
5
- * @param blob - The Blob or File to use as the underlying content.
6
- */
7
- constructor(blob) {
8
- this.blob = blob;
9
- this.size = blob.size;
10
- }
11
- /** {@inheritDoc} */
12
- size;
13
- /** Random-access: `Blob.slice()` is cheap and returns a new Blob view. */
14
- canSlice = true;
15
- /**
16
- * Return a new BlobSource covering the specified byte range.
17
- * @param start - The zero-based byte offset to begin the slice.
18
- * @param end - The exclusive byte offset where the slice ends.
19
- *
20
- * @returns A new ContentSource representing the requested sub-range.
21
- */
22
- slice(start, end) {
23
- return new BlobSource(this.blob.slice(start, end));
24
- }
25
- /**
26
- * Open the Blob content as a ReadableStream.
27
- * @returns A ReadableStream of the Blob bytes.
28
- */
29
- stream() {
30
- return this.blob.stream();
31
- }
32
- /**
33
- * Read the entire Blob content into an ArrayBuffer.
34
- * @returns A promise that resolves with the full content as an ArrayBuffer.
35
- */
36
- toArrayBuffer() {
37
- return this.blob.arrayBuffer();
38
- }
3
+ import { FileSource } from "./file-source.js";
4
+ //#region src/streams/source.ts
5
+ var READABLE_STREAM_SIZE_REQUIRED_ERROR = "size is required when using a ReadableStream as input.";
6
+ var FORWARD_ONLY_SIZE_REQUIRED_ERROR = "size is required when using a forward-only content source as input.";
7
+ var STREAM_SOURCE_ENDED_EARLY_ERROR = "StreamSource ended before the advertised byte count.";
8
+ var STREAM_SOURCE_TOO_MANY_BYTES_ERROR = "StreamSource emitted more bytes than the advertised byte count.";
9
+ var STREAM_SOURCE_TOO_MANY_EMPTY_CHUNKS_ERROR = "StreamSource emitted too many empty chunks without data.";
10
+ /** Maximum consecutive empty chunks tolerated from a forward-only stream. */
11
+ var MAX_EMPTY_STREAM_CHUNKS = 1024;
12
+ function asyncIterableToReadableStream(iterable) {
13
+ const iterator = iterable[Symbol.asyncIterator]();
14
+ return new ReadableStream({
15
+ async pull(controller) {
16
+ try {
17
+ const { done, value } = await iterator.next();
18
+ if (done === true) {
19
+ controller.close();
20
+ return;
21
+ }
22
+ if (!(value instanceof Uint8Array)) throw new TypeError("Async iterable content sources must yield Uint8Array chunks.");
23
+ controller.enqueue(value);
24
+ } catch (err) {
25
+ /* v8 ignore next -- Iterator-return failure must not mask the pull error. */
26
+ await returnAsyncIteratorBestEffort(iterator);
27
+ throw err;
28
+ }
29
+ },
30
+ async cancel(reason) {
31
+ await returnAsyncIteratorBestEffort(iterator, reason);
32
+ }
33
+ });
39
34
  }
40
- class BufferSource {
41
- /**
42
- * Create a BufferSource wrapping the given Uint8Array.
43
- * @param buffer - The byte buffer to use as the underlying content.
44
- */
45
- constructor(buffer) {
46
- this.buffer = buffer;
47
- this.size = buffer.byteLength;
48
- }
49
- /** {@inheritDoc} */
50
- size;
51
- /** Random-access: the entire payload lives in memory. */
52
- canSlice = true;
53
- /**
54
- * Return a new BufferSource covering the specified byte range.
55
- * @param start - The zero-based byte offset to begin the slice.
56
- * @param end - The exclusive byte offset where the slice ends.
57
- *
58
- * @returns A new ContentSource representing the requested sub-range.
59
- */
60
- slice(start, end) {
61
- return new BufferSource(this.buffer.slice(start, end));
62
- }
63
- /**
64
- * Open the buffer content as a ReadableStream.
65
- * @returns A ReadableStream that emits the buffer bytes in a single chunk.
66
- */
67
- stream() {
68
- const buffer = this.buffer;
69
- return new ReadableStream({
70
- start(controller) {
71
- controller.enqueue(buffer);
72
- controller.close();
73
- }
74
- });
75
- }
76
- /**
77
- * Read the entire buffer content into an ArrayBuffer.
78
- * @returns A promise that resolves with the full content as an ArrayBuffer.
79
- */
80
- toArrayBuffer() {
81
- return Promise.resolve(
82
- this.buffer.buffer.slice(
83
- this.buffer.byteOffset,
84
- this.buffer.byteOffset + this.buffer.byteLength
85
- )
86
- );
87
- }
35
+ async function returnAsyncIteratorBestEffort(iterator, reason) {
36
+ try {
37
+ await iterator.return?.(reason);
38
+ } catch {}
88
39
  }
89
- class StreamSource {
90
- /**
91
- * Create a StreamSource wrapping the given ReadableStream with a known byte size.
92
- * @param readable - The ReadableStream to wrap as a content source.
93
- * @param size - The total number of bytes the stream will produce.
94
- */
95
- constructor(readable, size) {
96
- this.readable = readable;
97
- this.size = size;
98
- }
99
- /** {@inheritDoc} */
100
- size;
101
- /**
102
- * Forward-only: ReadableStreams cannot be repositioned, so multipart
103
- * uploads must take the sequential path. See the interface comment on
104
- * `canSlice` for what the engine does with this flag.
105
- */
106
- canSlice = false;
107
- /** Whether the stream has already been read. */
108
- consumed = false;
109
- /**
110
- * Always throws because streams cannot be sliced. Buffer the stream first.
111
- *
112
- * @throws If slicing is attempted on a stream-backed source.
113
- */
114
- slice() {
115
- throw new Error("StreamSource does not support slicing. Buffer the stream first.");
116
- }
117
- /**
118
- * Open the underlying ReadableStream. Can only be called once.
119
- * @returns The underlying ReadableStream of bytes.
120
- *
121
- * @throws If the stream has already been consumed.
122
- */
123
- stream() {
124
- if (this.consumed) throw new Error("StreamSource can only be consumed once.");
125
- this.consumed = true;
126
- return this.readable;
127
- }
128
- /**
129
- * Read the entire stream into an ArrayBuffer.
130
- * @returns A promise that resolves with the full content as an ArrayBuffer.
131
- */
132
- async toArrayBuffer() {
133
- const bytes = await collectStream(this.stream());
134
- return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
135
- }
40
+ function isAsyncIterable(input) {
41
+ return typeof input === "object" && input !== null && Symbol.asyncIterator in input && typeof input[Symbol.asyncIterator] === "function";
136
42
  }
137
- function toContentSource(input, size) {
138
- if (input instanceof Uint8Array) {
139
- return new BufferSource(input);
140
- }
141
- if (input instanceof Blob) {
142
- return new BlobSource(input);
143
- }
144
- if (size === void 0) {
145
- throw new Error("size is required when using a ReadableStream as input.");
146
- }
147
- return new StreamSource(input, size);
43
+ function isReadableStream(input) {
44
+ return typeof input === "object" && input !== null && typeof input.getReader === "function";
148
45
  }
149
- export {
150
- BlobSource,
151
- BufferSource,
152
- StreamSource,
153
- toContentSource
46
+ /** ContentSource backed by a Blob or File. */
47
+ var BlobSource = class BlobSource {
48
+ blob;
49
+ /** {@inheritDoc} */
50
+ size;
51
+ /** Random-access: `Blob.slice()` is cheap and returns a new Blob view. */
52
+ canSlice = true;
53
+ /**
54
+ * Create a BlobSource wrapping the given Blob.
55
+ * @param blob - The Blob or File to use as the underlying content.
56
+ */
57
+ constructor(blob) {
58
+ this.blob = blob;
59
+ this.size = blob.size;
60
+ }
61
+ /**
62
+ * Return a new BlobSource covering the specified byte range.
63
+ * @param start - The zero-based byte offset to begin the slice.
64
+ * @param end - The exclusive byte offset where the slice ends.
65
+ *
66
+ * @returns A new ContentSource representing the requested sub-range.
67
+ */
68
+ slice(start, end) {
69
+ return new BlobSource(this.blob.slice(start, end));
70
+ }
71
+ /**
72
+ * Open the Blob content as a ReadableStream.
73
+ * @returns A ReadableStream of the Blob bytes.
74
+ */
75
+ stream() {
76
+ return this.blob.stream();
77
+ }
78
+ /**
79
+ * Read the entire Blob content into an ArrayBuffer.
80
+ * @param options - Optional abort signal used while reading.
81
+ *
82
+ * @returns A promise that resolves with the full content as an ArrayBuffer.
83
+ */
84
+ async toArrayBuffer(options = {}) {
85
+ options.signal?.throwIfAborted();
86
+ if (options.signal === void 0) return this.blob.arrayBuffer();
87
+ return arrayBufferFor(await collectStream(this.stream(), options));
88
+ }
89
+ };
90
+ /** ContentSource backed by a Uint8Array buffer. */
91
+ var BufferSource = class BufferSource {
92
+ buffer;
93
+ /** {@inheritDoc} */
94
+ size;
95
+ /** Random-access: the entire payload lives in memory. */
96
+ canSlice = true;
97
+ /**
98
+ * Create a BufferSource wrapping the given Uint8Array.
99
+ * @param buffer - The byte buffer to use as the underlying content.
100
+ */
101
+ constructor(buffer) {
102
+ this.buffer = buffer;
103
+ this.size = buffer.byteLength;
104
+ }
105
+ /**
106
+ * Return a new BufferSource covering the specified byte range.
107
+ * @param start - The zero-based byte offset to begin the slice.
108
+ * @param end - The exclusive byte offset where the slice ends.
109
+ *
110
+ * @returns A new ContentSource representing the requested sub-range.
111
+ */
112
+ slice(start, end) {
113
+ return new BufferSource(this.buffer.slice(start, end));
114
+ }
115
+ /**
116
+ * Open the buffer content as a ReadableStream.
117
+ * @returns A ReadableStream that emits the buffer bytes in a single chunk.
118
+ */
119
+ stream() {
120
+ const buffer = this.buffer;
121
+ return new ReadableStream({ start(controller) {
122
+ controller.enqueue(buffer);
123
+ controller.close();
124
+ } });
125
+ }
126
+ /**
127
+ * Read the entire buffer content into an ArrayBuffer.
128
+ * @param options - Optional abort signal checked before returning bytes.
129
+ *
130
+ * @returns A promise that resolves with the full content as an ArrayBuffer.
131
+ */
132
+ async toArrayBuffer(options = {}) {
133
+ options.signal?.throwIfAborted();
134
+ return arrayBufferFor(this.buffer);
135
+ }
136
+ };
137
+ /** ContentSource backed by a ReadableStream. Can only be consumed once and does not support slicing. */
138
+ var StreamSource = class {
139
+ readable;
140
+ /** {@inheritDoc} */
141
+ size;
142
+ /**
143
+ * Forward-only: ReadableStreams cannot be repositioned, so multipart
144
+ * uploads must take the sequential path. See the interface comment on
145
+ * `canSlice` for what the engine does with this flag.
146
+ */
147
+ canSlice = false;
148
+ /** Whether the stream has already been read. */
149
+ consumed = false;
150
+ /**
151
+ * Create a StreamSource wrapping the given ReadableStream with a known byte size.
152
+ * @param readable - The ReadableStream to wrap as a content source.
153
+ * @param size - The total number of bytes the stream will produce.
154
+ */
155
+ constructor(readable, size) {
156
+ this.readable = readable;
157
+ validateStreamSourceSize(size);
158
+ this.size = size;
159
+ }
160
+ /**
161
+ * Always throws because streams cannot be sliced. Buffer the stream first.
162
+ *
163
+ * @throws If slicing is attempted on a stream-backed source.
164
+ */
165
+ slice() {
166
+ throw new Error("StreamSource does not support slicing. Buffer the stream first.");
167
+ }
168
+ /**
169
+ * Open the underlying ReadableStream. Can only be called once.
170
+ * @returns The underlying ReadableStream of bytes.
171
+ *
172
+ * @throws If the stream has already been consumed.
173
+ */
174
+ stream() {
175
+ if (this.consumed) throw new Error("StreamSource can only be consumed once.");
176
+ this.consumed = true;
177
+ return this.readable;
178
+ }
179
+ /**
180
+ * Read the entire stream into an ArrayBuffer.
181
+ * @param options - Optional abort signal used while reading.
182
+ *
183
+ * @returns A promise that resolves with the full content as an ArrayBuffer.
184
+ */
185
+ async toArrayBuffer(options = {}) {
186
+ return (await collectStreamExactly(this.stream(), this.size, options.signal)).buffer;
187
+ }
154
188
  };
155
- //# sourceMappingURL=source.js.map
189
+ function validateStreamSourceSize(size) {
190
+ if (!Number.isFinite(size) || !Number.isInteger(size) || size < 0) throw new RangeError("StreamSource size must be a non-negative finite integer.");
191
+ }
192
+ /**
193
+ * Reads exactly the advertised number of bytes from a stream.
194
+ * @param stream - Stream to consume.
195
+ * @param expectedSize - Exact number of bytes expected from the stream.
196
+ * @param signal - Optional abort signal for cancelling the read.
197
+ *
198
+ * @returns A byte array of length `expectedSize`.
199
+ *
200
+ * @throws If the stream emits too few bytes, too many bytes, too many empty chunks, or aborts.
201
+ */
202
+ async function collectStreamExactly(stream, expectedSize, signal) {
203
+ const reader = stream.getReader();
204
+ const chunks = [];
205
+ let total = 0;
206
+ let completed = false;
207
+ try {
208
+ while (total < expectedSize) {
209
+ const { done, value } = await readNextNonEmptyStreamChunk(reader, STREAM_SOURCE_TOO_MANY_EMPTY_CHUNKS_ERROR, signal);
210
+ if (done) throw new Error(STREAM_SOURCE_ENDED_EARLY_ERROR);
211
+ if (total + value.byteLength > expectedSize) throw new Error(STREAM_SOURCE_TOO_MANY_BYTES_ERROR);
212
+ chunks.push(value);
213
+ total += value.byteLength;
214
+ }
215
+ if (!(await readNextNonEmptyStreamChunk(reader, STREAM_SOURCE_TOO_MANY_EMPTY_CHUNKS_ERROR, signal)).done) throw new Error(STREAM_SOURCE_TOO_MANY_BYTES_ERROR);
216
+ const result = new Uint8Array(expectedSize);
217
+ let offset = 0;
218
+ for (const chunk of chunks) {
219
+ result.set(chunk, offset);
220
+ offset += chunk.byteLength;
221
+ }
222
+ completed = true;
223
+ return result;
224
+ } finally {
225
+ if (!completed) cancelReaderBestEffort(reader);
226
+ try {
227
+ reader.releaseLock();
228
+ } catch {}
229
+ }
230
+ }
231
+ /**
232
+ * Reads from a stream until it receives data, EOF, or too many consecutive empty chunks.
233
+ * @param reader - Locked reader for a Uint8Array stream.
234
+ * @param emptyChunkErrorMessage - Error message to throw when the empty-chunk limit is exceeded.
235
+ * @param signal - Optional abort signal that cancels the reader and rejects the read.
236
+ *
237
+ * @returns The next non-empty chunk or EOF result.
238
+ */
239
+ async function readNextNonEmptyStreamChunk(reader, emptyChunkErrorMessage, signal) {
240
+ let emptyChunks = 0;
241
+ while (true) {
242
+ const result = await readStreamChunk(reader, signal);
243
+ if (result.done || result.value.byteLength > 0) return result;
244
+ emptyChunks += 1;
245
+ if (emptyChunks > 1024) throw new Error(emptyChunkErrorMessage);
246
+ }
247
+ }
248
+ async function readStreamChunk(reader, signal) {
249
+ if (signal === void 0) return reader.read();
250
+ if (signal.aborted) {
251
+ const reason = signal.reason ?? new DOMException("Aborted", "AbortError");
252
+ cancelReaderBestEffort(reader, reason);
253
+ throw reason;
254
+ }
255
+ let removeAbortListener;
256
+ const abort = new Promise((_, reject) => {
257
+ const onAbort = () => {
258
+ const reason = signal.reason ?? new DOMException("Aborted", "AbortError");
259
+ cancelReaderBestEffort(reader, reason);
260
+ reject(reason);
261
+ };
262
+ signal.addEventListener("abort", onAbort, { once: true });
263
+ removeAbortListener = () => signal.removeEventListener("abort", onAbort);
264
+ });
265
+ try {
266
+ const result = await Promise.race([reader.read(), abort]);
267
+ if (signal.aborted) {
268
+ const reason = signal.reason ?? new DOMException("Aborted", "AbortError");
269
+ cancelReaderBestEffort(reader, reason);
270
+ throw reason;
271
+ }
272
+ return result;
273
+ } finally {
274
+ removeAbortListener?.();
275
+ }
276
+ }
277
+ function cancelReaderBestEffort(reader, reason) {
278
+ /* v8 ignore next -- Reader cancellation failure is deliberately best-effort. */
279
+ reader.cancel(reason).catch(() => {});
280
+ }
281
+ /** ContentSource backed by a forward-only async iterable of Uint8Array chunks. */
282
+ var AsyncIterableSource = class extends StreamSource {
283
+ /**
284
+ * Create an AsyncIterableSource from a known-size async iterable.
285
+ * @param iterable - Async iterable that yields Uint8Array chunks.
286
+ * @param size - Total byte length the iterable will produce.
287
+ */
288
+ constructor(iterable, size) {
289
+ super(asyncIterableToReadableStream(iterable), size);
290
+ }
291
+ };
292
+ /**
293
+ * Convert a Uint8Array, Blob, ReadableStream, or async iterable into a {@link ContentSource}.
294
+ * When passing a ReadableStream or async iterable, the `size` parameter is required.
295
+ * @param input - The content to wrap.
296
+ * @param size - The total byte length, required for forward-only inputs.
297
+ *
298
+ * @returns A ContentSource adapter for the given input.
299
+ *
300
+ * @throws If input is forward-only and size is not provided.
301
+ */
302
+ function toContentSource(input, size) {
303
+ if (input instanceof Uint8Array) return new BufferSource(input);
304
+ if (input instanceof Blob) return new BlobSource(input);
305
+ if (isReadableStream(input)) {
306
+ if (size === void 0) throw new Error(READABLE_STREAM_SIZE_REQUIRED_ERROR);
307
+ return new StreamSource(input, size);
308
+ }
309
+ if (isAsyncIterable(input)) {
310
+ if (size === void 0) throw new Error(FORWARD_ONLY_SIZE_REQUIRED_ERROR);
311
+ return new AsyncIterableSource(input, size);
312
+ }
313
+ throw new TypeError("Unsupported content source input.");
314
+ }
315
+ //#endregion
316
+ export { BlobSource, BufferSource, FileSource, MAX_EMPTY_STREAM_CHUNKS, StreamSource, collectStreamExactly, readNextNonEmptyStreamChunk, toContentSource };
317
+
318
+ //# sourceMappingURL=source.js.map