@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":"index.cjs","sources":["../../src/errors/index.ts"],"sourcesContent":["/**\n * Typed error hierarchy for B2 API failures.\n *\n * Every B2 error response is mapped to a specific {@link B2Error} subclass\n * (e.g. {@link ExpiredAuthTokenError}, {@link CapExceededError}) with pre-computed\n * {@link B2Error.retryable | retryable} flags. Use {@link classifyError} to convert\n * a raw error response into the appropriate subclass.\n *\n * Convention: `B2Error` and its subclasses represent failures returned by\n * the B2 API. Programming errors and SDK preconditions (e.g. \"not yet\n * authorized\", \"stream consumed twice\", \"called before init\") use the\n * native `Error` constructor instead. Two outliers extend `Error` directly\n * rather than `B2Error` because they originate inside the SDK before any\n * B2 request is made: {@link B2InsufficientCapabilityError} (raised by\n * `B2Client.hasCapabilities`) and {@link B2SsrfError} (raised by the\n * default `UrlGuard` before `fetch`).\n *\n * @packageDocumentation\n */\n\nimport type { B2ErrorCode, B2ErrorResponse } from '../types/errors.ts'\n\n/**\n * Base error class for all B2 API errors.\n * Contains the HTTP status, B2 error code, and retry metadata from the response.\n */\nexport class B2Error extends Error {\n /** HTTP status code returned by the B2 API. */\n readonly status: number\n /** B2 error code identifying the error type (e.g. `expired_auth_token`). */\n readonly code: B2ErrorCode\n /** B2 request ID from the `X-Bz-Request-Id` response header, if present. */\n readonly requestId?: string\n /** Retry delay in seconds from the `Retry-After` response header, if present. */\n readonly retryAfter?: number\n /** Whether this error is transient and the request can be retried. */\n readonly retryable: boolean\n\n /**\n * Creates a new B2Error instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional retry and request metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: { retryAfter?: number; requestId?: string }) {\n super(response.message)\n this.name = 'B2Error'\n this.status = response.status\n this.code = response.code\n if (options?.retryAfter !== undefined) this.retryAfter = options.retryAfter\n if (options?.requestId !== undefined) this.requestId = options.requestId\n this.retryable = isTransient(response.status, response.code)\n }\n}\n\n/** Thrown when the auth token has expired. Triggers automatic re-authorization. */\nexport class ExpiredAuthTokenError extends B2Error {\n /**\n * Creates a new ExpiredAuthTokenError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { requestId?: string }) {\n super(response, options)\n this.name = 'ExpiredAuthTokenError'\n }\n}\n\n/** Thrown when the auth token is invalid or unauthorized. */\nexport class BadAuthTokenError extends B2Error {\n /**\n * Creates a new BadAuthTokenError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { requestId?: string }) {\n super(response, options)\n this.name = 'BadAuthTokenError'\n }\n}\n\n/** Thrown when the B2 service is temporarily unavailable (HTTP 503). */\nexport class ServiceUnavailableError extends B2Error {\n /**\n * Creates a new ServiceUnavailableError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { retryAfter?: number; requestId?: string }) {\n super(response, options)\n this.name = 'ServiceUnavailableError'\n }\n}\n\n/** Thrown when a request times out on the server side (HTTP 408). */\nexport class RequestTimeoutError extends B2Error {\n /**\n * Creates a new RequestTimeoutError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { requestId?: string }) {\n super(response, options)\n this.name = 'RequestTimeoutError'\n }\n}\n\n/** Thrown when the client has sent too many requests (HTTP 429). */\nexport class TooManyRequestsError extends B2Error {\n /**\n * Creates a new TooManyRequestsError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { retryAfter?: number; requestId?: string }) {\n super(response, options)\n this.name = 'TooManyRequestsError'\n }\n}\n\n/** Thrown when a storage, transaction, or download cap has been exceeded. */\nexport class CapExceededError extends B2Error {\n /**\n * Creates a new CapExceededError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { requestId?: string }) {\n super(response, options)\n this.name = 'CapExceededError'\n }\n}\n\n/** Thrown when the application key does not have permission for the requested operation. */\nexport class AccessDeniedError extends B2Error {\n /**\n * Creates a new AccessDeniedError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { requestId?: string }) {\n super(response, options)\n this.name = 'AccessDeniedError'\n }\n}\n\n/** Thrown when the requested file does not exist. */\nexport class FileNotPresentError extends B2Error {\n /**\n * Creates a new FileNotPresentError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { requestId?: string }) {\n super(response, options)\n this.name = 'FileNotPresentError'\n }\n}\n\n/** Thrown when creating a bucket with a name that already exists in the account. */\nexport class DuplicateBucketNameError extends B2Error {\n /**\n * Creates a new DuplicateBucketNameError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { requestId?: string }) {\n super(response, options)\n this.name = 'DuplicateBucketNameError'\n }\n}\n\n/** Thrown for general bad request errors (HTTP 400) not covered by a more specific subclass. */\nexport class BadRequestError extends B2Error {\n /**\n * Creates a new BadRequestError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { requestId?: string }) {\n super(response, options)\n this.name = 'BadRequestError'\n }\n}\n\n/**\n * Thrown when an upload URL is no longer valid and must be refreshed.\n *\n * Forward-compat insurance: B2 does not currently surface a distinct\n * error code for this case, so {@link classifyError} never actually\n * instantiates this class today. It's part of the public API so\n * consumers can pre-write `instanceof` checks; when B2 documents a\n * `bad_upload_url` (or similar) error code, the `classifyError`\n * switch gets a matching case and existing consumer code starts\n * catching the typed error without any changes on their side.\n *\n * Until then, expect `BadRequestError` for upload-URL invalidation\n * scenarios — that's what B2 currently returns.\n */\nexport class BadUploadUrlError extends B2Error {\n /**\n * Creates a new BadUploadUrlError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { requestId?: string }) {\n super(response, options)\n this.name = 'BadUploadUrlError'\n }\n}\n\n/**\n * Thrown when the uploaded file's SHA-1 checksum does not match the\n * expected value.\n *\n * Forward-compat insurance: the B2 API currently rejects mismatched\n * uploads with a generic `bad_request` code, so {@link classifyError}\n * never actually instantiates this class today. It's part of the\n * public API so consumers can pre-write `instanceof` checks; when B2\n * documents a dedicated checksum-mismatch code, the `classifyError`\n * switch gets a matching case and existing consumer code starts\n * catching the typed error without any changes on their side.\n *\n * Until then, expect `BadRequestError` for SHA-1 mismatch scenarios.\n */\nexport class ChecksumMismatchError extends B2Error {\n /**\n * Creates a new ChecksumMismatchError instance.\n * @param response - Parsed B2 error response body.\n * @param options - The error details including HTTP status, error code, message, and optional request ID.\n */\n constructor(response: B2ErrorResponse, options?: { requestId?: string }) {\n super(response, options)\n this.name = 'ChecksumMismatchError'\n }\n}\n\n/**\n * Thrown by client-side capability checks when the application key is missing\n * capabilities required by an operation. Not raised by the server.\n */\nexport class B2InsufficientCapabilityError extends Error {\n /** Capabilities that were required for the operation. */\n readonly required: readonly string[]\n /** Capabilities that the current key actually has. */\n readonly available: readonly string[]\n /** Capabilities present in `required` but not in `available`. */\n readonly missing: readonly string[]\n\n /**\n * Creates a new B2InsufficientCapabilityError instance.\n *\n * @param required - Capabilities the operation requires.\n * @param available - Capabilities the current key holds.\n * @param missing - The subset of required that isn't available.\n */\n constructor(\n required: readonly string[],\n available: readonly string[],\n missing: readonly string[],\n ) {\n super(`Application key is missing capabilities: ${missing.join(', ')}`)\n this.name = 'B2InsufficientCapabilityError'\n this.required = required\n this.available = available\n this.missing = missing\n }\n}\n\n/**\n * Thrown when the SDK is asked to fetch a URL whose host is outside the\n * authorized B2 realm. Defense against SSRF / URL-substitution attacks where\n * a compromised or hostile B2 endpoint returns an upload URL pointing at an\n * internal service (e.g. cloud metadata at `169.254.169.254`).\n *\n * Not retryable.\n */\nexport class B2SsrfError extends Error {\n /** Always `false` — this is a security failure, not transient. */\n readonly retryable = false\n\n /**\n * Creates a new {@link B2SsrfError}.\n *\n * @param message - Human-readable description of which URL was rejected and why.\n * @param url - The full URL that was rejected.\n */\n constructor(\n message: string,\n /** The full URL that was rejected. */\n public readonly url: string,\n ) {\n super(message)\n this.name = 'B2SsrfError'\n }\n}\n\n/** Thrown when a network-level failure occurs (DNS, TCP, TLS). Always retryable. */\nexport class NetworkError extends Error {\n /** Always `true` since network errors are transient. */\n readonly retryable = true\n\n /**\n * Creates a new NetworkError instance.\n * @param message - Human-readable description of the network failure.\n * @param cause - The underlying error that caused this failure, if any.\n */\n constructor(\n message: string,\n public override readonly cause?: unknown,\n ) {\n super(message)\n this.name = 'NetworkError'\n }\n}\n\nfunction isTransient(status: number, code: B2ErrorCode): boolean {\n if (status === 408 || status === 429 || status === 503) return true\n if (code === 'expired_auth_token') return true\n if (code === 'service_unavailable' || code === 'request_timeout') return true\n return false\n}\n\n/**\n * Maps a B2 error response to the appropriate {@link B2Error} subclass.\n * Uses the error code for exact matching, then falls back to HTTP status codes.\n *\n * Maintainer note: when B2 documents a new error code, add a `case`\n * branch below pointing at the matching {@link B2Error} subclass. Unknown\n * codes fall through to the HTTP-status-based heuristic and finally to a\n * generic `B2Error` — that's safe but loses semantic specificity (the\n * caller can't `instanceof` against a precise subclass and the retry\n * decision relies on status alone). The `B2ErrorCode` union in\n * `src/types/errors.ts` should also gain the new code at the same time\n * so the switch is exhaustive again.\n *\n * @param response - Parsed B2 error response body.\n * @param options - Optional retry and request metadata from response headers.\n *\n * @returns A typed B2Error subclass instance.\n */\nexport function classifyError(\n response: B2ErrorResponse,\n options?: { retryAfter?: number; requestId?: string },\n): B2Error {\n switch (response.code) {\n case 'expired_auth_token':\n return new ExpiredAuthTokenError(response, options)\n case 'bad_auth_token':\n case 'unauthorized':\n return new BadAuthTokenError(response, options)\n case 'service_unavailable':\n return new ServiceUnavailableError(response, options)\n case 'request_timeout':\n return new RequestTimeoutError(response, options)\n case 'cap_exceeded':\n case 'storage_cap_exceeded':\n case 'transaction_cap_exceeded':\n case 'download_cap_exceeded':\n return new CapExceededError(response, options)\n case 'access_denied':\n return new AccessDeniedError(response, options)\n case 'file_not_present':\n case 'no_such_file':\n return new FileNotPresentError(response, options)\n case 'duplicate_bucket_name':\n return new DuplicateBucketNameError(response, options)\n case 'bad_sha1_checksum':\n return new ChecksumMismatchError(response, options)\n case 'bad_request':\n return new BadRequestError(response, options)\n default:\n break\n }\n\n if (response.status === 429) return new TooManyRequestsError(response, options)\n if (response.status === 503) return new ServiceUnavailableError(response, options)\n if (response.status === 408) return new RequestTimeoutError(response, options)\n\n return new B2Error(response, options)\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../src/errors/index.ts"],"sourcesContent":["/**\n * Typed error hierarchy for B2 API failures.\n *\n * Every B2 error response maps to a specific {@link B2Error} subclass.\n * Retry behavior is exposed through {@link B2Error.retryable}.\n * Examples include {@link ExpiredAuthTokenError} and {@link CapExceededError}.\n * Use {@link classifyError} to convert a raw error response into the\n * appropriate subclass.\n *\n * Convention: most `B2Error` subclasses represent failures returned by the B2\n * API. The client-side exception is {@link B2RealmConfigurationError}; it\n * extends `B2Error` so realm-validation failures can be handled with the SDK\n * error hierarchy before credentials are sent.\n *\n * Other programming errors and SDK preconditions, such as \"not yet authorized\",\n * \"stream consumed twice\", or \"called before init\", use the native `Error`\n * constructor instead. The direct `Error` outliers are\n * {@link B2InsufficientCapabilityError}, {@link B2RedirectError},\n * {@link B2SsrfError}, {@link NetworkError},\n * {@link ResumeFileIdMismatchError}, {@link UploadResponseBodyError}, and\n * {@link FinishLargeFileResponseBodyError}.\n *\n * @packageDocumentation\n */\n\nimport { redactUrlForError } from '../internal/url-redaction.ts'\nimport {\n type B2ErrorCode,\n type B2ErrorResponse,\n KNOWN_B2_ERROR_CODES,\n type KnownB2ErrorCode,\n} from '../types/errors.ts'\nimport type { BucketId, LargeFileId } from '../types/ids.ts'\n\n/** Thrown when an explicit resumeFileId is not compatible with the requested upload. */\nexport class ResumeFileIdMismatchError extends Error {\n /** Caller-supplied unfinished large file ID that failed verification. */\n readonly fileId: LargeFileId\n /** Requested destination file name. */\n readonly fileName: string\n\n /**\n * Creates a new resume-file ID mismatch error.\n * @param fileId - Caller-supplied unfinished large file ID that failed verification.\n * @param fileName - Requested destination file name.\n */\n constructor(fileId: LargeFileId, fileName: string) {\n super(\n `uploadLargeFile: resumeFileId ${fileId} does not identify a compatible unfinished large file for ${fileName}.`,\n )\n this.name = 'ResumeFileIdMismatchError'\n this.fileId = fileId\n this.fileName = fileName\n }\n}\n\n/** Metadata captured from B2 error response headers. */\nexport interface B2ErrorOptions {\n /** Retry delay in seconds from the `Retry-After` response header, if present. */\n readonly retryAfter?: number\n /** B2 request ID from the `X-Bz-Request-Id` response header, if present. */\n readonly requestId?: string\n}\n\n/**\n * Base error class for all B2 API errors.\n * Contains the HTTP status, B2 error code, and retry metadata from the response.\n */\nexport class B2Error extends Error {\n /** HTTP status code returned by the B2 API. */\n readonly status: number\n /** B2 error code identifying the error type (e.g. `expired_auth_token`). */\n readonly code: B2ErrorCode\n /** B2 request ID from the `X-Bz-Request-Id` response header, if present. */\n readonly requestId?: string\n /** Retry delay in seconds from the `Retry-After` response header, if present. */\n readonly retryAfter?: number\n /** Whether this error is transient and the request can be retried. */\n readonly retryable: boolean\n\n /**\n * Creates a new B2Error instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional retry and request metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response.message)\n this.name = 'B2Error'\n this.status = response.status\n this.code = response.code\n if (options?.retryAfter !== undefined) this.retryAfter = options.retryAfter\n if (options?.requestId !== undefined) this.requestId = options.requestId\n this.retryable = isTransient(response.status, response.code)\n }\n}\n\n/** Thrown when the auth token has expired. Triggers automatic re-authorization. */\nexport class ExpiredAuthTokenError extends B2Error {\n /**\n * Creates a new ExpiredAuthTokenError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'ExpiredAuthTokenError'\n }\n}\n\n/** Thrown when the auth token is invalid or unauthorized. */\nexport class BadAuthTokenError extends B2Error {\n /**\n * Creates a new BadAuthTokenError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'BadAuthTokenError'\n }\n}\n\n/** Thrown when the B2 service is temporarily unavailable (HTTP 503). */\nexport class ServiceUnavailableError extends B2Error {\n /**\n * Creates a new ServiceUnavailableError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'ServiceUnavailableError'\n }\n}\n\n/** Thrown when B2 reports an internal server error. */\nexport class InternalError extends B2Error {\n /**\n * Creates a new InternalError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'InternalError'\n }\n}\n\n/** Thrown when a request times out on the server side (HTTP 408). */\nexport class RequestTimeoutError extends B2Error {\n /**\n * Creates a new RequestTimeoutError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'RequestTimeoutError'\n }\n}\n\n/** Thrown when the client has sent too many requests (HTTP 429). */\nexport class TooManyRequestsError extends B2Error {\n /**\n * Creates a new TooManyRequestsError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'TooManyRequestsError'\n }\n}\n\n/** Thrown when the account has reached the maximum number of buckets. */\nexport class TooManyBucketsError extends B2Error {\n /**\n * Creates a new TooManyBucketsError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'TooManyBucketsError'\n }\n}\n\n/** Thrown when the bucket or request has reached the maximum number of files. */\nexport class TooManyFilesError extends B2Error {\n /**\n * Creates a new TooManyFilesError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'TooManyFilesError'\n }\n}\n\n/** Thrown when a storage, transaction, or download cap has been exceeded. */\nexport class CapExceededError extends B2Error {\n /**\n * Creates a new CapExceededError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'CapExceededError'\n }\n}\n\n/** Thrown when the application key does not have permission for the requested operation. */\nexport class AccessDeniedError extends B2Error {\n /**\n * Creates a new AccessDeniedError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'AccessDeniedError'\n }\n}\n\n/** Thrown when the requested file does not exist. */\nexport class FileNotPresentError extends B2Error {\n /**\n * Creates a new FileNotPresentError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'FileNotPresentError'\n }\n}\n\n/** Thrown when a requested B2 resource does not exist. */\nexport class NotFoundError extends B2Error {\n /**\n * Creates a new NotFoundError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'NotFoundError'\n }\n}\n\n/** Thrown when creating a bucket with a name that already exists in the account. */\nexport class DuplicateBucketNameError extends B2Error {\n /**\n * Creates a new DuplicateBucketNameError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'DuplicateBucketNameError'\n }\n}\n\n/** Thrown when a bucket name is malformed, reserved, or otherwise rejected by B2. */\nexport class InvalidBucketNameError extends B2Error {\n /**\n * Creates a new InvalidBucketNameError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'InvalidBucketNameError'\n }\n}\n\n/** Thrown when bucket metadata fails B2 validation. */\nexport class InvalidBucketInfoError extends B2Error {\n /**\n * Creates a new InvalidBucketInfoError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'InvalidBucketInfoError'\n }\n}\n\n/** Thrown when a bucket ID is malformed or does not identify a valid bucket. */\nexport class BadBucketIdError extends B2Error {\n /**\n * Creates a new BadBucketIdError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'BadBucketIdError'\n }\n}\n\n/** Thrown when the B2 endpoint does not allow the request method. */\nexport class MethodNotAllowedError extends B2Error {\n /**\n * Creates a new MethodNotAllowedError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'MethodNotAllowedError'\n }\n}\n\n/** Thrown when the request conflicts with current B2 resource state. */\nexport class ConflictError extends B2Error {\n /**\n * Creates a new ConflictError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'ConflictError'\n }\n}\n\n/** Thrown for general bad request errors (HTTP 400) not covered by a more specific subclass. */\nexport class BadRequestError extends B2Error {\n /**\n * Creates a new BadRequestError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'BadRequestError'\n }\n}\n\n/** Thrown when B2 cannot parse the JSON request body. */\nexport class BadJsonError extends B2Error {\n /**\n * Creates a new BadJsonError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'BadJsonError'\n }\n}\n\n/** Thrown when a bucket ID has a valid shape but does not identify a usable bucket. */\nexport class InvalidBucketIdError extends B2Error {\n /**\n * Creates a new InvalidBucketIdError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'InvalidBucketIdError'\n }\n}\n\n/** Thrown when a numeric request parameter is outside the allowed range. */\nexport class OutOfRangeError extends B2Error {\n /**\n * Creates a new OutOfRangeError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'OutOfRangeError'\n }\n}\n\n/** Thrown when a requested byte range cannot be satisfied. */\nexport class RangeNotSatisfiableError extends B2Error {\n /**\n * Creates a new RangeNotSatisfiableError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'RangeNotSatisfiableError'\n }\n}\n\n/** Thrown when a file name is malformed or otherwise rejected by B2. */\nexport class InvalidFileNameError extends B2Error {\n /**\n * Creates a new InvalidFileNameError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'InvalidFileNameError'\n }\n}\n\n/** Thrown when file metadata fails B2 validation. */\nexport class InvalidFileInfoError extends B2Error {\n /**\n * Creates a new InvalidFileInfoError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'InvalidFileInfoError'\n }\n}\n\n/** Thrown when a file ID is malformed or does not identify a valid file. */\nexport class InvalidFileIdError extends B2Error {\n /**\n * Creates a new InvalidFileIdError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'InvalidFileIdError'\n }\n}\n\n/** Thrown when a multipart upload part number is invalid. */\nexport class InvalidPartNumberError extends B2Error {\n /**\n * Creates a new InvalidPartNumberError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'InvalidPartNumberError'\n }\n}\n\n/**\n * Thrown when an upload URL is no longer valid and must be refreshed.\n *\n * Forward-compat insurance: B2 does not currently surface a distinct\n * error code for this case, so {@link classifyError} never actually\n * instantiates this class today. It's part of the public API so\n * consumers can pre-write `instanceof` checks; when B2 documents a\n * `bad_upload_url` (or similar) error code, the `classifyError`\n * switch gets a matching case and existing consumer code starts\n * catching the typed error without any changes on their side.\n *\n * Until then, expect `BadRequestError` for upload-URL invalidation\n * scenarios — that's what B2 currently returns.\n */\nexport class BadUploadUrlError extends B2Error {\n /**\n * Creates a new BadUploadUrlError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'BadUploadUrlError'\n }\n}\n\n/**\n * Thrown when the uploaded file's SHA-1 checksum does not match the\n * expected value.\n *\n * When B2 returns `bad_sha1_checksum`, {@link classifyError} instantiates\n * this class so callers can handle checksum failures with `instanceof`.\n * Generic `bad_request` checksum failures continue to classify as\n * {@link BadRequestError}.\n */\nexport class ChecksumMismatchError extends B2Error {\n /**\n * Creates a new ChecksumMismatchError instance.\n * @param response - Parsed B2 error response body.\n * @param options - Optional metadata from response headers.\n */\n constructor(response: B2ErrorResponse, options?: B2ErrorOptions) {\n super(response, options)\n this.name = 'ChecksumMismatchError'\n }\n}\n\n/**\n * Thrown by client-side capability checks when the application key is missing\n * capabilities required by an operation. Not raised by the server.\n */\nexport class B2InsufficientCapabilityError extends Error {\n /** Capabilities that were required for the operation. */\n readonly required: readonly string[]\n /** Capabilities that the current key actually has. */\n readonly available: readonly string[]\n /** Capabilities present in `required` but not in `available`. */\n readonly missing: readonly string[]\n\n /**\n * Creates a new B2InsufficientCapabilityError instance.\n *\n * @param required - Capabilities the operation requires.\n * @param available - Capabilities the current key holds.\n * @param missing - The subset of required that isn't available.\n */\n constructor(\n required: readonly string[],\n available: readonly string[],\n missing: readonly string[],\n ) {\n super(`Application key is missing capabilities: ${missing.join(', ')}`)\n this.name = 'B2InsufficientCapabilityError'\n this.required = required\n this.available = available\n this.missing = missing\n }\n}\n\n/**\n * Thrown when the SDK is asked to fetch a URL whose host is outside the\n * authorized B2 realm. Defense against SSRF / URL-substitution attacks where\n * a compromised or hostile B2 endpoint returns an upload URL pointing at an\n * internal service (e.g. cloud metadata at `169.254.169.254`).\n *\n * Not retryable.\n */\nexport class B2SsrfError extends Error {\n /** Always `false` — this is a security failure, not transient. */\n readonly retryable = false\n\n /**\n * Creates a new {@link B2SsrfError}.\n *\n * @param message - Human-readable description of which URL was rejected and why.\n * @param url - The URL that was rejected. Stored as a sanitized URL.\n */\n constructor(message: string, url: string) {\n const safeUrl = redactUrlForError(url)\n super(`${message.split(url).join(safeUrl)} (${safeUrl})`)\n this.name = 'B2SsrfError'\n this.url = safeUrl\n }\n\n /** Sanitized URL that was rejected. */\n readonly url: string\n}\n\n/** Thrown when a configured auth realm cannot safely be used for authorization. */\nexport class B2RealmConfigurationError extends B2Error {\n /**\n * Creates a new B2RealmConfigurationError instance.\n *\n * @param message - Human-readable description of the invalid realm setting.\n */\n constructor(message: string) {\n super({ status: 400, code: 'bad_request', message })\n this.name = 'B2RealmConfigurationError'\n }\n}\n\n/** Thrown when the SDK refuses to follow an HTTP redirect automatically. */\nexport class B2RedirectError extends Error {\n /** Always `false` because a blocked redirect is deterministic. */\n readonly retryable = false\n /** Sanitized request URL whose response attempted to redirect. */\n readonly url: string\n /** HTTP redirect status code, or 0 for an opaque browser redirect. */\n readonly status: number\n /** Sanitized redirect target, or `null` when no Location header was present. */\n readonly location: string | null\n\n /**\n * Creates a new B2RedirectError instance.\n *\n * @param url - Request URL whose response attempted to redirect. Stored as a sanitized URL.\n * @param status - HTTP redirect status code.\n * @param location - Redirect Location header, if present. Stored as a sanitized URL.\n */\n constructor(url: string, status: number, location: string | null) {\n const safeUrl = redactUrlForError(url)\n const safeLocation = location !== null ? redactUrlForError(location, { baseUrl: url }) : null\n super(\n safeLocation !== null\n ? `HTTP ${status} redirect blocked for ${safeUrl} to ${safeLocation}`\n : `HTTP ${status} redirect blocked for ${safeUrl}`,\n )\n this.name = 'B2RedirectError'\n this.url = safeUrl\n this.status = status\n this.location = safeLocation\n }\n}\n\n/** Thrown when a network-level failure occurs (DNS, TCP, TLS). Always retryable. */\nexport class NetworkError extends Error {\n /** Always `true` since network errors are transient. */\n readonly retryable = true\n\n /**\n * Creates a new NetworkError instance.\n * @param message - Human-readable description of the network failure.\n * @param cause - The underlying error that caused this failure, if any.\n */\n constructor(\n message: string,\n public override readonly cause?: unknown,\n ) {\n super(message)\n this.name = 'NetworkError'\n }\n}\n\n/**\n * Thrown when an upload POST returned a response but its body could not be\n * read. The upload may already have been stored by B2, so retrying this error\n * can create duplicate file versions or parts.\n */\nexport class UploadResponseBodyError extends Error {\n /** Underlying response body error, when available. */\n public override readonly cause?: unknown\n\n /**\n * Creates a new UploadResponseBodyError instance.\n * @param message - Human-readable description of the response read failure.\n * @param options - Optional cause.\n */\n constructor(\n message: string,\n options: {\n readonly cause?: unknown\n } = {},\n ) {\n super(message, { cause: options.cause })\n this.name = 'UploadResponseBodyError'\n if (options.cause !== undefined) this.cause = options.cause\n }\n}\n\n/**\n * Thrown when `b2_finish_large_file` returned a response but its body could not\n * be read. The large file may already be committed server-side, so high-level\n * upload paths do not cancel the large file after this error.\n */\nexport class FinishLargeFileResponseBodyError extends Error {\n /** Ambiguous large file ID that may already be committed server-side. */\n readonly fileId?: LargeFileId\n /** Bucket requested by the high-level upload, when available. */\n readonly bucketId?: BucketId\n /** File name requested by the high-level upload, when available. */\n readonly fileName?: string\n\n /**\n * Creates a new FinishLargeFileResponseBodyError instance.\n * @param message - Human-readable description of the response read failure.\n * @param options - Optional cause and reconciliation metadata.\n */\n constructor(\n message: string,\n options: {\n readonly cause?: unknown\n readonly fileId?: LargeFileId\n readonly bucketId?: BucketId\n readonly fileName?: string\n } = {},\n ) {\n super(message, { cause: options.cause })\n this.name = 'FinishLargeFileResponseBodyError'\n if (options.cause !== undefined) this.cause = options.cause\n if (options.fileId !== undefined) this.fileId = options.fileId\n if (options.bucketId !== undefined) this.bucketId = options.bucketId\n if (options.fileName !== undefined) this.fileName = options.fileName\n }\n}\n\nfunction isTransient(status: number, code: B2ErrorCode): boolean {\n // Request timeout + rate limit.\n if (status === 408 || status === 429) return true\n // Transient server errors: internal error (500), bad gateway (502), service\n // unavailable (503), gateway timeout (504). B2 documents 500 and 503 as\n // retryable; 502/504 are transient infrastructure failures. 501 (Not\n // Implemented) is deliberately excluded — it is deterministic, not transient.\n //\n // This is keyed on STATUS, not on the `internal_error` code: `RetryTransport`\n // synthesizes `{ code: 'internal_error' }` for any error response whose body\n // is not parseable JSON (see transport.ts), including bodyless 4xx like a 404\n // download miss. Treating that code as transient would wrongly retry 4xx.\n if (status === 500 || status === 502 || status === 503 || status === 504) return true\n if (code === 'expired_auth_token') return true\n if (code === 'service_unavailable' || code === 'request_timeout') return true\n return false\n}\n\nconst knownB2ErrorCodes: ReadonlySet<string> = new Set(KNOWN_B2_ERROR_CODES)\n\nfunction isKnownB2ErrorCode(code: B2ErrorCode): code is KnownB2ErrorCode {\n return knownB2ErrorCodes.has(code)\n}\n\nfunction assertNever(value: never): never {\n throw new Error(`Unhandled B2 error code: ${String(value)}`)\n}\n\nfunction classifyKnownError(\n response: B2ErrorResponse,\n code: KnownB2ErrorCode,\n options?: B2ErrorOptions,\n): B2Error {\n switch (code) {\n case 'expired_auth_token':\n return new ExpiredAuthTokenError(response, options)\n case 'bad_auth_token':\n case 'unauthorized':\n return new BadAuthTokenError(response, options)\n case 'bad_request':\n return new BadRequestError(response, options)\n case 'bad_bucket_name':\n case 'invalid_bucket_name':\n return new InvalidBucketNameError(response, options)\n case 'bad_bucket_id':\n return new BadBucketIdError(response, options)\n case 'not_found':\n return new NotFoundError(response, options)\n case 'method_not_allowed':\n return new MethodNotAllowedError(response, options)\n case 'request_timeout':\n return new RequestTimeoutError(response, options)\n case 'too_many_requests':\n return new TooManyRequestsError(response, options)\n case 'conflict':\n return new ConflictError(response, options)\n case 'duplicate_bucket_name':\n return new DuplicateBucketNameError(response, options)\n case 'too_many_buckets':\n return new TooManyBucketsError(response, options)\n case 'too_many_files':\n return new TooManyFilesError(response, options)\n case 'cap_exceeded':\n case 'storage_cap_exceeded':\n case 'transaction_cap_exceeded':\n case 'download_cap_exceeded':\n return new CapExceededError(response, options)\n case 'access_denied':\n return new AccessDeniedError(response, options)\n case 'service_unavailable':\n return new ServiceUnavailableError(response, options)\n case 'internal_error':\n return new InternalError(response, options)\n case 'bad_json':\n return new BadJsonError(response, options)\n case 'invalid_bucket_id':\n return new InvalidBucketIdError(response, options)\n case 'invalid_bucket_info':\n return new InvalidBucketInfoError(response, options)\n case 'file_not_present':\n case 'no_such_file':\n return new FileNotPresentError(response, options)\n case 'out_of_range':\n return new OutOfRangeError(response, options)\n case 'range_not_satisfiable':\n return new RangeNotSatisfiableError(response, options)\n case 'invalid_file_id':\n return new InvalidFileIdError(response, options)\n case 'invalid_file_name':\n return new InvalidFileNameError(response, options)\n case 'invalid_file_info':\n return new InvalidFileInfoError(response, options)\n case 'invalid_part_number':\n return new InvalidPartNumberError(response, options)\n case 'bad_sha1_checksum':\n return new ChecksumMismatchError(response, options)\n default:\n return assertNever(code)\n }\n}\n\nfunction classifyUnknownError(response: B2ErrorResponse, options?: B2ErrorOptions): B2Error {\n if (response.status === 429) return new TooManyRequestsError(response, options)\n if (response.status === 503) return new ServiceUnavailableError(response, options)\n if (response.status === 408) return new RequestTimeoutError(response, options)\n\n return new B2Error(response, options)\n}\n\n/**\n * Maps a B2 error response to the appropriate {@link B2Error} subclass.\n * Uses known error codes for exact matching, then falls back to HTTP status\n * codes for unknown future B2 codes.\n *\n * Maintainer note: when B2 documents a new error code, add it to\n * `KNOWN_B2_ERROR_CODES` in `src/types/errors.ts` and add a matching\n * `classifyKnownError` switch case. Unknown codes fall through to the\n * HTTP-status-based heuristic and finally to a generic `B2Error`, which is\n * safe but loses semantic specificity (the caller can't `instanceof` against\n * a precise subclass and the retry decision relies on status alone).\n *\n * @param response - Parsed B2 error response body.\n * @param options - Optional retry and request metadata from response headers.\n *\n * @returns A typed B2Error subclass instance.\n */\nexport function classifyError(response: B2ErrorResponse, options?: B2ErrorOptions): B2Error {\n // `RetryTransport` and ranged-download parsing synthesize `internal_error`\n // when a non-JSON response body cannot provide a real B2 code. Only the\n // documented 500/internal_error pair should classify as InternalError.\n if (response.code === 'internal_error' && response.status !== 500) {\n return classifyUnknownError(response, options)\n }\n\n if (isKnownB2ErrorCode(response.code)) return classifyKnownError(response, response.code, options)\n\n return classifyUnknownError(response, options)\n}\n"],"mappings":"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"}
@@ -1,4 +1,25 @@
1
1
  import { B2ErrorCode, B2ErrorResponse } from '../types/errors.js';
2
+ import { BucketId, LargeFileId } from '../types/ids.js';
3
+ /** Thrown when an explicit resumeFileId is not compatible with the requested upload. */
4
+ export declare class ResumeFileIdMismatchError extends Error {
5
+ /** Caller-supplied unfinished large file ID that failed verification. */
6
+ readonly fileId: LargeFileId;
7
+ /** Requested destination file name. */
8
+ readonly fileName: string;
9
+ /**
10
+ * Creates a new resume-file ID mismatch error.
11
+ * @param fileId - Caller-supplied unfinished large file ID that failed verification.
12
+ * @param fileName - Requested destination file name.
13
+ */
14
+ constructor(fileId: LargeFileId, fileName: string);
15
+ }
16
+ /** Metadata captured from B2 error response headers. */
17
+ export interface B2ErrorOptions {
18
+ /** Retry delay in seconds from the `Retry-After` response header, if present. */
19
+ readonly retryAfter?: number;
20
+ /** B2 request ID from the `X-Bz-Request-Id` response header, if present. */
21
+ readonly requestId?: string;
22
+ }
2
23
  /**
3
24
  * Base error class for all B2 API errors.
4
25
  * Contains the HTTP status, B2 error code, and retry metadata from the response.
@@ -19,122 +40,250 @@ export declare class B2Error extends Error {
19
40
  * @param response - Parsed B2 error response body.
20
41
  * @param options - Optional retry and request metadata from response headers.
21
42
  */
22
- constructor(response: B2ErrorResponse, options?: {
23
- retryAfter?: number;
24
- requestId?: string;
25
- });
43
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
26
44
  }
27
45
  /** Thrown when the auth token has expired. Triggers automatic re-authorization. */
28
46
  export declare class ExpiredAuthTokenError extends B2Error {
29
47
  /**
30
48
  * Creates a new ExpiredAuthTokenError instance.
31
49
  * @param response - Parsed B2 error response body.
32
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
50
+ * @param options - Optional metadata from response headers.
33
51
  */
34
- constructor(response: B2ErrorResponse, options?: {
35
- requestId?: string;
36
- });
52
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
37
53
  }
38
54
  /** Thrown when the auth token is invalid or unauthorized. */
39
55
  export declare class BadAuthTokenError extends B2Error {
40
56
  /**
41
57
  * Creates a new BadAuthTokenError instance.
42
58
  * @param response - Parsed B2 error response body.
43
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
59
+ * @param options - Optional metadata from response headers.
44
60
  */
45
- constructor(response: B2ErrorResponse, options?: {
46
- requestId?: string;
47
- });
61
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
48
62
  }
49
63
  /** Thrown when the B2 service is temporarily unavailable (HTTP 503). */
50
64
  export declare class ServiceUnavailableError extends B2Error {
51
65
  /**
52
66
  * Creates a new ServiceUnavailableError instance.
53
67
  * @param response - Parsed B2 error response body.
54
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
68
+ * @param options - Optional metadata from response headers.
55
69
  */
56
- constructor(response: B2ErrorResponse, options?: {
57
- retryAfter?: number;
58
- requestId?: string;
59
- });
70
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
71
+ }
72
+ /** Thrown when B2 reports an internal server error. */
73
+ export declare class InternalError extends B2Error {
74
+ /**
75
+ * Creates a new InternalError instance.
76
+ * @param response - Parsed B2 error response body.
77
+ * @param options - Optional metadata from response headers.
78
+ */
79
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
60
80
  }
61
81
  /** Thrown when a request times out on the server side (HTTP 408). */
62
82
  export declare class RequestTimeoutError extends B2Error {
63
83
  /**
64
84
  * Creates a new RequestTimeoutError instance.
65
85
  * @param response - Parsed B2 error response body.
66
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
86
+ * @param options - Optional metadata from response headers.
67
87
  */
68
- constructor(response: B2ErrorResponse, options?: {
69
- requestId?: string;
70
- });
88
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
71
89
  }
72
90
  /** Thrown when the client has sent too many requests (HTTP 429). */
73
91
  export declare class TooManyRequestsError extends B2Error {
74
92
  /**
75
93
  * Creates a new TooManyRequestsError instance.
76
94
  * @param response - Parsed B2 error response body.
77
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
95
+ * @param options - Optional metadata from response headers.
78
96
  */
79
- constructor(response: B2ErrorResponse, options?: {
80
- retryAfter?: number;
81
- requestId?: string;
82
- });
97
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
98
+ }
99
+ /** Thrown when the account has reached the maximum number of buckets. */
100
+ export declare class TooManyBucketsError extends B2Error {
101
+ /**
102
+ * Creates a new TooManyBucketsError instance.
103
+ * @param response - Parsed B2 error response body.
104
+ * @param options - Optional metadata from response headers.
105
+ */
106
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
107
+ }
108
+ /** Thrown when the bucket or request has reached the maximum number of files. */
109
+ export declare class TooManyFilesError extends B2Error {
110
+ /**
111
+ * Creates a new TooManyFilesError instance.
112
+ * @param response - Parsed B2 error response body.
113
+ * @param options - Optional metadata from response headers.
114
+ */
115
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
83
116
  }
84
117
  /** Thrown when a storage, transaction, or download cap has been exceeded. */
85
118
  export declare class CapExceededError extends B2Error {
86
119
  /**
87
120
  * Creates a new CapExceededError instance.
88
121
  * @param response - Parsed B2 error response body.
89
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
122
+ * @param options - Optional metadata from response headers.
90
123
  */
91
- constructor(response: B2ErrorResponse, options?: {
92
- requestId?: string;
93
- });
124
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
94
125
  }
95
126
  /** Thrown when the application key does not have permission for the requested operation. */
96
127
  export declare class AccessDeniedError extends B2Error {
97
128
  /**
98
129
  * Creates a new AccessDeniedError instance.
99
130
  * @param response - Parsed B2 error response body.
100
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
131
+ * @param options - Optional metadata from response headers.
101
132
  */
102
- constructor(response: B2ErrorResponse, options?: {
103
- requestId?: string;
104
- });
133
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
105
134
  }
106
135
  /** Thrown when the requested file does not exist. */
107
136
  export declare class FileNotPresentError extends B2Error {
108
137
  /**
109
138
  * Creates a new FileNotPresentError instance.
110
139
  * @param response - Parsed B2 error response body.
111
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
140
+ * @param options - Optional metadata from response headers.
112
141
  */
113
- constructor(response: B2ErrorResponse, options?: {
114
- requestId?: string;
115
- });
142
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
143
+ }
144
+ /** Thrown when a requested B2 resource does not exist. */
145
+ export declare class NotFoundError extends B2Error {
146
+ /**
147
+ * Creates a new NotFoundError instance.
148
+ * @param response - Parsed B2 error response body.
149
+ * @param options - Optional metadata from response headers.
150
+ */
151
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
116
152
  }
117
153
  /** Thrown when creating a bucket with a name that already exists in the account. */
118
154
  export declare class DuplicateBucketNameError extends B2Error {
119
155
  /**
120
156
  * Creates a new DuplicateBucketNameError instance.
121
157
  * @param response - Parsed B2 error response body.
122
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
158
+ * @param options - Optional metadata from response headers.
123
159
  */
124
- constructor(response: B2ErrorResponse, options?: {
125
- requestId?: string;
126
- });
160
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
161
+ }
162
+ /** Thrown when a bucket name is malformed, reserved, or otherwise rejected by B2. */
163
+ export declare class InvalidBucketNameError extends B2Error {
164
+ /**
165
+ * Creates a new InvalidBucketNameError instance.
166
+ * @param response - Parsed B2 error response body.
167
+ * @param options - Optional metadata from response headers.
168
+ */
169
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
170
+ }
171
+ /** Thrown when bucket metadata fails B2 validation. */
172
+ export declare class InvalidBucketInfoError extends B2Error {
173
+ /**
174
+ * Creates a new InvalidBucketInfoError instance.
175
+ * @param response - Parsed B2 error response body.
176
+ * @param options - Optional metadata from response headers.
177
+ */
178
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
179
+ }
180
+ /** Thrown when a bucket ID is malformed or does not identify a valid bucket. */
181
+ export declare class BadBucketIdError extends B2Error {
182
+ /**
183
+ * Creates a new BadBucketIdError instance.
184
+ * @param response - Parsed B2 error response body.
185
+ * @param options - Optional metadata from response headers.
186
+ */
187
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
188
+ }
189
+ /** Thrown when the B2 endpoint does not allow the request method. */
190
+ export declare class MethodNotAllowedError extends B2Error {
191
+ /**
192
+ * Creates a new MethodNotAllowedError instance.
193
+ * @param response - Parsed B2 error response body.
194
+ * @param options - Optional metadata from response headers.
195
+ */
196
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
197
+ }
198
+ /** Thrown when the request conflicts with current B2 resource state. */
199
+ export declare class ConflictError extends B2Error {
200
+ /**
201
+ * Creates a new ConflictError instance.
202
+ * @param response - Parsed B2 error response body.
203
+ * @param options - Optional metadata from response headers.
204
+ */
205
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
127
206
  }
128
207
  /** Thrown for general bad request errors (HTTP 400) not covered by a more specific subclass. */
129
208
  export declare class BadRequestError extends B2Error {
130
209
  /**
131
210
  * Creates a new BadRequestError instance.
132
211
  * @param response - Parsed B2 error response body.
133
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
212
+ * @param options - Optional metadata from response headers.
134
213
  */
135
- constructor(response: B2ErrorResponse, options?: {
136
- requestId?: string;
137
- });
214
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
215
+ }
216
+ /** Thrown when B2 cannot parse the JSON request body. */
217
+ export declare class BadJsonError extends B2Error {
218
+ /**
219
+ * Creates a new BadJsonError instance.
220
+ * @param response - Parsed B2 error response body.
221
+ * @param options - Optional metadata from response headers.
222
+ */
223
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
224
+ }
225
+ /** Thrown when a bucket ID has a valid shape but does not identify a usable bucket. */
226
+ export declare class InvalidBucketIdError extends B2Error {
227
+ /**
228
+ * Creates a new InvalidBucketIdError instance.
229
+ * @param response - Parsed B2 error response body.
230
+ * @param options - Optional metadata from response headers.
231
+ */
232
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
233
+ }
234
+ /** Thrown when a numeric request parameter is outside the allowed range. */
235
+ export declare class OutOfRangeError extends B2Error {
236
+ /**
237
+ * Creates a new OutOfRangeError instance.
238
+ * @param response - Parsed B2 error response body.
239
+ * @param options - Optional metadata from response headers.
240
+ */
241
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
242
+ }
243
+ /** Thrown when a requested byte range cannot be satisfied. */
244
+ export declare class RangeNotSatisfiableError extends B2Error {
245
+ /**
246
+ * Creates a new RangeNotSatisfiableError instance.
247
+ * @param response - Parsed B2 error response body.
248
+ * @param options - Optional metadata from response headers.
249
+ */
250
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
251
+ }
252
+ /** Thrown when a file name is malformed or otherwise rejected by B2. */
253
+ export declare class InvalidFileNameError extends B2Error {
254
+ /**
255
+ * Creates a new InvalidFileNameError instance.
256
+ * @param response - Parsed B2 error response body.
257
+ * @param options - Optional metadata from response headers.
258
+ */
259
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
260
+ }
261
+ /** Thrown when file metadata fails B2 validation. */
262
+ export declare class InvalidFileInfoError extends B2Error {
263
+ /**
264
+ * Creates a new InvalidFileInfoError instance.
265
+ * @param response - Parsed B2 error response body.
266
+ * @param options - Optional metadata from response headers.
267
+ */
268
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
269
+ }
270
+ /** Thrown when a file ID is malformed or does not identify a valid file. */
271
+ export declare class InvalidFileIdError extends B2Error {
272
+ /**
273
+ * Creates a new InvalidFileIdError instance.
274
+ * @param response - Parsed B2 error response body.
275
+ * @param options - Optional metadata from response headers.
276
+ */
277
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
278
+ }
279
+ /** Thrown when a multipart upload part number is invalid. */
280
+ export declare class InvalidPartNumberError extends B2Error {
281
+ /**
282
+ * Creates a new InvalidPartNumberError instance.
283
+ * @param response - Parsed B2 error response body.
284
+ * @param options - Optional metadata from response headers.
285
+ */
286
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
138
287
  }
139
288
  /**
140
289
  * Thrown when an upload URL is no longer valid and must be refreshed.
@@ -154,35 +303,26 @@ export declare class BadUploadUrlError extends B2Error {
154
303
  /**
155
304
  * Creates a new BadUploadUrlError instance.
156
305
  * @param response - Parsed B2 error response body.
157
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
306
+ * @param options - Optional metadata from response headers.
158
307
  */
159
- constructor(response: B2ErrorResponse, options?: {
160
- requestId?: string;
161
- });
308
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
162
309
  }
163
310
  /**
164
311
  * Thrown when the uploaded file's SHA-1 checksum does not match the
165
312
  * expected value.
166
313
  *
167
- * Forward-compat insurance: the B2 API currently rejects mismatched
168
- * uploads with a generic `bad_request` code, so {@link classifyError}
169
- * never actually instantiates this class today. It's part of the
170
- * public API so consumers can pre-write `instanceof` checks; when B2
171
- * documents a dedicated checksum-mismatch code, the `classifyError`
172
- * switch gets a matching case and existing consumer code starts
173
- * catching the typed error without any changes on their side.
174
- *
175
- * Until then, expect `BadRequestError` for SHA-1 mismatch scenarios.
314
+ * When B2 returns `bad_sha1_checksum`, {@link classifyError} instantiates
315
+ * this class so callers can handle checksum failures with `instanceof`.
316
+ * Generic `bad_request` checksum failures continue to classify as
317
+ * {@link BadRequestError}.
176
318
  */
177
319
  export declare class ChecksumMismatchError extends B2Error {
178
320
  /**
179
321
  * Creates a new ChecksumMismatchError instance.
180
322
  * @param response - Parsed B2 error response body.
181
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
323
+ * @param options - Optional metadata from response headers.
182
324
  */
183
- constructor(response: B2ErrorResponse, options?: {
184
- requestId?: string;
185
- });
325
+ constructor(response: B2ErrorResponse, options?: B2ErrorOptions);
186
326
  }
187
327
  /**
188
328
  * Thrown by client-side capability checks when the application key is missing
@@ -213,19 +353,45 @@ export declare class B2InsufficientCapabilityError extends Error {
213
353
  * Not retryable.
214
354
  */
215
355
  export declare class B2SsrfError extends Error {
216
- /** The full URL that was rejected. */
217
- readonly url: string;
218
356
  /** Always `false` — this is a security failure, not transient. */
219
357
  readonly retryable = false;
220
358
  /**
221
359
  * Creates a new {@link B2SsrfError}.
222
360
  *
223
361
  * @param message - Human-readable description of which URL was rejected and why.
224
- * @param url - The full URL that was rejected.
362
+ * @param url - The URL that was rejected. Stored as a sanitized URL.
225
363
  */
226
- constructor(message: string,
227
- /** The full URL that was rejected. */
228
- url: string);
364
+ constructor(message: string, url: string);
365
+ /** Sanitized URL that was rejected. */
366
+ readonly url: string;
367
+ }
368
+ /** Thrown when a configured auth realm cannot safely be used for authorization. */
369
+ export declare class B2RealmConfigurationError extends B2Error {
370
+ /**
371
+ * Creates a new B2RealmConfigurationError instance.
372
+ *
373
+ * @param message - Human-readable description of the invalid realm setting.
374
+ */
375
+ constructor(message: string);
376
+ }
377
+ /** Thrown when the SDK refuses to follow an HTTP redirect automatically. */
378
+ export declare class B2RedirectError extends Error {
379
+ /** Always `false` because a blocked redirect is deterministic. */
380
+ readonly retryable = false;
381
+ /** Sanitized request URL whose response attempted to redirect. */
382
+ readonly url: string;
383
+ /** HTTP redirect status code, or 0 for an opaque browser redirect. */
384
+ readonly status: number;
385
+ /** Sanitized redirect target, or `null` when no Location header was present. */
386
+ readonly location: string | null;
387
+ /**
388
+ * Creates a new B2RedirectError instance.
389
+ *
390
+ * @param url - Request URL whose response attempted to redirect. Stored as a sanitized URL.
391
+ * @param status - HTTP redirect status code.
392
+ * @param location - Redirect Location header, if present. Stored as a sanitized URL.
393
+ */
394
+ constructor(url: string, status: number, location: string | null);
229
395
  }
230
396
  /** Thrown when a network-level failure occurs (DNS, TCP, TLS). Always retryable. */
231
397
  export declare class NetworkError extends Error {
@@ -239,26 +405,63 @@ export declare class NetworkError extends Error {
239
405
  */
240
406
  constructor(message: string, cause?: unknown | undefined);
241
407
  }
408
+ /**
409
+ * Thrown when an upload POST returned a response but its body could not be
410
+ * read. The upload may already have been stored by B2, so retrying this error
411
+ * can create duplicate file versions or parts.
412
+ */
413
+ export declare class UploadResponseBodyError extends Error {
414
+ /** Underlying response body error, when available. */
415
+ readonly cause?: unknown;
416
+ /**
417
+ * Creates a new UploadResponseBodyError instance.
418
+ * @param message - Human-readable description of the response read failure.
419
+ * @param options - Optional cause.
420
+ */
421
+ constructor(message: string, options?: {
422
+ readonly cause?: unknown;
423
+ });
424
+ }
425
+ /**
426
+ * Thrown when `b2_finish_large_file` returned a response but its body could not
427
+ * be read. The large file may already be committed server-side, so high-level
428
+ * upload paths do not cancel the large file after this error.
429
+ */
430
+ export declare class FinishLargeFileResponseBodyError extends Error {
431
+ /** Ambiguous large file ID that may already be committed server-side. */
432
+ readonly fileId?: LargeFileId;
433
+ /** Bucket requested by the high-level upload, when available. */
434
+ readonly bucketId?: BucketId;
435
+ /** File name requested by the high-level upload, when available. */
436
+ readonly fileName?: string;
437
+ /**
438
+ * Creates a new FinishLargeFileResponseBodyError instance.
439
+ * @param message - Human-readable description of the response read failure.
440
+ * @param options - Optional cause and reconciliation metadata.
441
+ */
442
+ constructor(message: string, options?: {
443
+ readonly cause?: unknown;
444
+ readonly fileId?: LargeFileId;
445
+ readonly bucketId?: BucketId;
446
+ readonly fileName?: string;
447
+ });
448
+ }
242
449
  /**
243
450
  * Maps a B2 error response to the appropriate {@link B2Error} subclass.
244
- * Uses the error code for exact matching, then falls back to HTTP status codes.
451
+ * Uses known error codes for exact matching, then falls back to HTTP status
452
+ * codes for unknown future B2 codes.
245
453
  *
246
- * Maintainer note: when B2 documents a new error code, add a `case`
247
- * branch below pointing at the matching {@link B2Error} subclass. Unknown
248
- * codes fall through to the HTTP-status-based heuristic and finally to a
249
- * generic `B2Error` that's safe but loses semantic specificity (the
250
- * caller can't `instanceof` against a precise subclass and the retry
251
- * decision relies on status alone). The `B2ErrorCode` union in
252
- * `src/types/errors.ts` should also gain the new code at the same time
253
- * so the switch is exhaustive again.
454
+ * Maintainer note: when B2 documents a new error code, add it to
455
+ * `KNOWN_B2_ERROR_CODES` in `src/types/errors.ts` and add a matching
456
+ * `classifyKnownError` switch case. Unknown codes fall through to the
457
+ * HTTP-status-based heuristic and finally to a generic `B2Error`, which is
458
+ * safe but loses semantic specificity (the caller can't `instanceof` against
459
+ * a precise subclass and the retry decision relies on status alone).
254
460
  *
255
461
  * @param response - Parsed B2 error response body.
256
462
  * @param options - Optional retry and request metadata from response headers.
257
463
  *
258
464
  * @returns A typed B2Error subclass instance.
259
465
  */
260
- export declare function classifyError(response: B2ErrorResponse, options?: {
261
- retryAfter?: number;
262
- requestId?: string;
263
- }): B2Error;
466
+ export declare function classifyError(response: B2ErrorResponse, options?: B2ErrorOptions): B2Error;
264
467
  //# sourceMappingURL=index.d.ts.map