@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,268 +1,724 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- class B2Error extends Error {
4
- /** HTTP status code returned by the B2 API. */
5
- status;
6
- /** B2 error code identifying the error type (e.g. `expired_auth_token`). */
7
- code;
8
- /** B2 request ID from the `X-Bz-Request-Id` response header, if present. */
9
- requestId;
10
- /** Retry delay in seconds from the `Retry-After` response header, if present. */
11
- retryAfter;
12
- /** Whether this error is transient and the request can be retried. */
13
- retryable;
14
- /**
15
- * Creates a new B2Error instance.
16
- * @param response - Parsed B2 error response body.
17
- * @param options - Optional retry and request metadata from response headers.
18
- */
19
- constructor(response, options) {
20
- super(response.message);
21
- this.name = "B2Error";
22
- this.status = response.status;
23
- this.code = response.code;
24
- if (options?.retryAfter !== void 0) this.retryAfter = options.retryAfter;
25
- if (options?.requestId !== void 0) this.requestId = options.requestId;
26
- this.retryable = isTransient(response.status, response.code);
27
- }
28
- }
29
- class ExpiredAuthTokenError extends B2Error {
30
- /**
31
- * Creates a new ExpiredAuthTokenError instance.
32
- * @param response - Parsed B2 error response body.
33
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
34
- */
35
- constructor(response, options) {
36
- super(response, options);
37
- this.name = "ExpiredAuthTokenError";
38
- }
39
- }
40
- class BadAuthTokenError extends B2Error {
41
- /**
42
- * Creates a new BadAuthTokenError instance.
43
- * @param response - Parsed B2 error response body.
44
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
45
- */
46
- constructor(response, options) {
47
- super(response, options);
48
- this.name = "BadAuthTokenError";
49
- }
50
- }
51
- class ServiceUnavailableError extends B2Error {
52
- /**
53
- * Creates a new ServiceUnavailableError instance.
54
- * @param response - Parsed B2 error response body.
55
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
56
- */
57
- constructor(response, options) {
58
- super(response, options);
59
- this.name = "ServiceUnavailableError";
60
- }
61
- }
62
- class RequestTimeoutError extends B2Error {
63
- /**
64
- * Creates a new RequestTimeoutError instance.
65
- * @param response - Parsed B2 error response body.
66
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
67
- */
68
- constructor(response, options) {
69
- super(response, options);
70
- this.name = "RequestTimeoutError";
71
- }
72
- }
73
- class TooManyRequestsError extends B2Error {
74
- /**
75
- * Creates a new TooManyRequestsError instance.
76
- * @param response - Parsed B2 error response body.
77
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
78
- */
79
- constructor(response, options) {
80
- super(response, options);
81
- this.name = "TooManyRequestsError";
82
- }
83
- }
84
- class CapExceededError extends B2Error {
85
- /**
86
- * Creates a new CapExceededError instance.
87
- * @param response - Parsed B2 error response body.
88
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
89
- */
90
- constructor(response, options) {
91
- super(response, options);
92
- this.name = "CapExceededError";
93
- }
94
- }
95
- class AccessDeniedError extends B2Error {
96
- /**
97
- * Creates a new AccessDeniedError instance.
98
- * @param response - Parsed B2 error response body.
99
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
100
- */
101
- constructor(response, options) {
102
- super(response, options);
103
- this.name = "AccessDeniedError";
104
- }
105
- }
106
- class FileNotPresentError extends B2Error {
107
- /**
108
- * Creates a new FileNotPresentError instance.
109
- * @param response - Parsed B2 error response body.
110
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
111
- */
112
- constructor(response, options) {
113
- super(response, options);
114
- this.name = "FileNotPresentError";
115
- }
116
- }
117
- class DuplicateBucketNameError extends B2Error {
118
- /**
119
- * Creates a new DuplicateBucketNameError instance.
120
- * @param response - Parsed B2 error response body.
121
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
122
- */
123
- constructor(response, options) {
124
- super(response, options);
125
- this.name = "DuplicateBucketNameError";
126
- }
127
- }
128
- class BadRequestError extends B2Error {
129
- /**
130
- * Creates a new BadRequestError instance.
131
- * @param response - Parsed B2 error response body.
132
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
133
- */
134
- constructor(response, options) {
135
- super(response, options);
136
- this.name = "BadRequestError";
137
- }
138
- }
139
- class BadUploadUrlError extends B2Error {
140
- /**
141
- * Creates a new BadUploadUrlError instance.
142
- * @param response - Parsed B2 error response body.
143
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
144
- */
145
- constructor(response, options) {
146
- super(response, options);
147
- this.name = "BadUploadUrlError";
148
- }
149
- }
150
- class ChecksumMismatchError extends B2Error {
151
- /**
152
- * Creates a new ChecksumMismatchError instance.
153
- * @param response - Parsed B2 error response body.
154
- * @param options - The error details including HTTP status, error code, message, and optional request ID.
155
- */
156
- constructor(response, options) {
157
- super(response, options);
158
- this.name = "ChecksumMismatchError";
159
- }
2
+ const require_url_redaction = require("../internal/url-redaction.cjs");
3
+ const require_errors = require("../types/errors.cjs");
4
+ //#region src/errors/index.ts
5
+ /**
6
+ * Typed error hierarchy for B2 API failures.
7
+ *
8
+ * Every B2 error response maps to a specific {@link B2Error} subclass.
9
+ * Retry behavior is exposed through {@link B2Error.retryable}.
10
+ * Examples include {@link ExpiredAuthTokenError} and {@link CapExceededError}.
11
+ * Use {@link classifyError} to convert a raw error response into the
12
+ * appropriate subclass.
13
+ *
14
+ * Convention: most `B2Error` subclasses represent failures returned by the B2
15
+ * API. The client-side exception is {@link B2RealmConfigurationError}; it
16
+ * extends `B2Error` so realm-validation failures can be handled with the SDK
17
+ * error hierarchy before credentials are sent.
18
+ *
19
+ * Other programming errors and SDK preconditions, such as "not yet authorized",
20
+ * "stream consumed twice", or "called before init", use the native `Error`
21
+ * constructor instead. The direct `Error` outliers are
22
+ * {@link B2InsufficientCapabilityError}, {@link B2RedirectError},
23
+ * {@link B2SsrfError}, {@link NetworkError},
24
+ * {@link ResumeFileIdMismatchError}, {@link UploadResponseBodyError}, and
25
+ * {@link FinishLargeFileResponseBodyError}.
26
+ *
27
+ * @packageDocumentation
28
+ */
29
+ /** Thrown when an explicit resumeFileId is not compatible with the requested upload. */
30
+ var ResumeFileIdMismatchError = class extends Error {
31
+ /** Caller-supplied unfinished large file ID that failed verification. */
32
+ fileId;
33
+ /** Requested destination file name. */
34
+ fileName;
35
+ /**
36
+ * Creates a new resume-file ID mismatch error.
37
+ * @param fileId - Caller-supplied unfinished large file ID that failed verification.
38
+ * @param fileName - Requested destination file name.
39
+ */
40
+ constructor(fileId, fileName) {
41
+ super(`uploadLargeFile: resumeFileId ${fileId} does not identify a compatible unfinished large file for ${fileName}.`);
42
+ this.name = "ResumeFileIdMismatchError";
43
+ this.fileId = fileId;
44
+ this.fileName = fileName;
45
+ }
46
+ };
47
+ /**
48
+ * Base error class for all B2 API errors.
49
+ * Contains the HTTP status, B2 error code, and retry metadata from the response.
50
+ */
51
+ var B2Error = class extends Error {
52
+ /** HTTP status code returned by the B2 API. */
53
+ status;
54
+ /** B2 error code identifying the error type (e.g. `expired_auth_token`). */
55
+ code;
56
+ /** B2 request ID from the `X-Bz-Request-Id` response header, if present. */
57
+ requestId;
58
+ /** Retry delay in seconds from the `Retry-After` response header, if present. */
59
+ retryAfter;
60
+ /** Whether this error is transient and the request can be retried. */
61
+ retryable;
62
+ /**
63
+ * Creates a new B2Error instance.
64
+ * @param response - Parsed B2 error response body.
65
+ * @param options - Optional retry and request metadata from response headers.
66
+ */
67
+ constructor(response, options) {
68
+ super(response.message);
69
+ this.name = "B2Error";
70
+ this.status = response.status;
71
+ this.code = response.code;
72
+ if (options?.retryAfter !== void 0) this.retryAfter = options.retryAfter;
73
+ if (options?.requestId !== void 0) this.requestId = options.requestId;
74
+ this.retryable = isTransient(response.status, response.code);
75
+ }
76
+ };
77
+ /** Thrown when the auth token has expired. Triggers automatic re-authorization. */
78
+ var ExpiredAuthTokenError = class extends B2Error {
79
+ /**
80
+ * Creates a new ExpiredAuthTokenError instance.
81
+ * @param response - Parsed B2 error response body.
82
+ * @param options - Optional metadata from response headers.
83
+ */
84
+ constructor(response, options) {
85
+ super(response, options);
86
+ this.name = "ExpiredAuthTokenError";
87
+ }
88
+ };
89
+ /** Thrown when the auth token is invalid or unauthorized. */
90
+ var BadAuthTokenError = class extends B2Error {
91
+ /**
92
+ * Creates a new BadAuthTokenError instance.
93
+ * @param response - Parsed B2 error response body.
94
+ * @param options - Optional metadata from response headers.
95
+ */
96
+ constructor(response, options) {
97
+ super(response, options);
98
+ this.name = "BadAuthTokenError";
99
+ }
100
+ };
101
+ /** Thrown when the B2 service is temporarily unavailable (HTTP 503). */
102
+ var ServiceUnavailableError = class extends B2Error {
103
+ /**
104
+ * Creates a new ServiceUnavailableError instance.
105
+ * @param response - Parsed B2 error response body.
106
+ * @param options - Optional metadata from response headers.
107
+ */
108
+ constructor(response, options) {
109
+ super(response, options);
110
+ this.name = "ServiceUnavailableError";
111
+ }
112
+ };
113
+ /** Thrown when B2 reports an internal server error. */
114
+ var InternalError = class extends B2Error {
115
+ /**
116
+ * Creates a new InternalError instance.
117
+ * @param response - Parsed B2 error response body.
118
+ * @param options - Optional metadata from response headers.
119
+ */
120
+ constructor(response, options) {
121
+ super(response, options);
122
+ this.name = "InternalError";
123
+ }
124
+ };
125
+ /** Thrown when a request times out on the server side (HTTP 408). */
126
+ var RequestTimeoutError = class extends B2Error {
127
+ /**
128
+ * Creates a new RequestTimeoutError instance.
129
+ * @param response - Parsed B2 error response body.
130
+ * @param options - Optional metadata from response headers.
131
+ */
132
+ constructor(response, options) {
133
+ super(response, options);
134
+ this.name = "RequestTimeoutError";
135
+ }
136
+ };
137
+ /** Thrown when the client has sent too many requests (HTTP 429). */
138
+ var TooManyRequestsError = class extends B2Error {
139
+ /**
140
+ * Creates a new TooManyRequestsError instance.
141
+ * @param response - Parsed B2 error response body.
142
+ * @param options - Optional metadata from response headers.
143
+ */
144
+ constructor(response, options) {
145
+ super(response, options);
146
+ this.name = "TooManyRequestsError";
147
+ }
148
+ };
149
+ /** Thrown when the account has reached the maximum number of buckets. */
150
+ var TooManyBucketsError = class extends B2Error {
151
+ /**
152
+ * Creates a new TooManyBucketsError instance.
153
+ * @param response - Parsed B2 error response body.
154
+ * @param options - Optional metadata from response headers.
155
+ */
156
+ constructor(response, options) {
157
+ super(response, options);
158
+ this.name = "TooManyBucketsError";
159
+ }
160
+ };
161
+ /** Thrown when the bucket or request has reached the maximum number of files. */
162
+ var TooManyFilesError = class extends B2Error {
163
+ /**
164
+ * Creates a new TooManyFilesError instance.
165
+ * @param response - Parsed B2 error response body.
166
+ * @param options - Optional metadata from response headers.
167
+ */
168
+ constructor(response, options) {
169
+ super(response, options);
170
+ this.name = "TooManyFilesError";
171
+ }
172
+ };
173
+ /** Thrown when a storage, transaction, or download cap has been exceeded. */
174
+ var CapExceededError = class extends B2Error {
175
+ /**
176
+ * Creates a new CapExceededError instance.
177
+ * @param response - Parsed B2 error response body.
178
+ * @param options - Optional metadata from response headers.
179
+ */
180
+ constructor(response, options) {
181
+ super(response, options);
182
+ this.name = "CapExceededError";
183
+ }
184
+ };
185
+ /** Thrown when the application key does not have permission for the requested operation. */
186
+ var AccessDeniedError = class extends B2Error {
187
+ /**
188
+ * Creates a new AccessDeniedError instance.
189
+ * @param response - Parsed B2 error response body.
190
+ * @param options - Optional metadata from response headers.
191
+ */
192
+ constructor(response, options) {
193
+ super(response, options);
194
+ this.name = "AccessDeniedError";
195
+ }
196
+ };
197
+ /** Thrown when the requested file does not exist. */
198
+ var FileNotPresentError = class extends B2Error {
199
+ /**
200
+ * Creates a new FileNotPresentError instance.
201
+ * @param response - Parsed B2 error response body.
202
+ * @param options - Optional metadata from response headers.
203
+ */
204
+ constructor(response, options) {
205
+ super(response, options);
206
+ this.name = "FileNotPresentError";
207
+ }
208
+ };
209
+ /** Thrown when a requested B2 resource does not exist. */
210
+ var NotFoundError = class extends B2Error {
211
+ /**
212
+ * Creates a new NotFoundError instance.
213
+ * @param response - Parsed B2 error response body.
214
+ * @param options - Optional metadata from response headers.
215
+ */
216
+ constructor(response, options) {
217
+ super(response, options);
218
+ this.name = "NotFoundError";
219
+ }
220
+ };
221
+ /** Thrown when creating a bucket with a name that already exists in the account. */
222
+ var DuplicateBucketNameError = class extends B2Error {
223
+ /**
224
+ * Creates a new DuplicateBucketNameError instance.
225
+ * @param response - Parsed B2 error response body.
226
+ * @param options - Optional metadata from response headers.
227
+ */
228
+ constructor(response, options) {
229
+ super(response, options);
230
+ this.name = "DuplicateBucketNameError";
231
+ }
232
+ };
233
+ /** Thrown when a bucket name is malformed, reserved, or otherwise rejected by B2. */
234
+ var InvalidBucketNameError = class extends B2Error {
235
+ /**
236
+ * Creates a new InvalidBucketNameError instance.
237
+ * @param response - Parsed B2 error response body.
238
+ * @param options - Optional metadata from response headers.
239
+ */
240
+ constructor(response, options) {
241
+ super(response, options);
242
+ this.name = "InvalidBucketNameError";
243
+ }
244
+ };
245
+ /** Thrown when bucket metadata fails B2 validation. */
246
+ var InvalidBucketInfoError = class extends B2Error {
247
+ /**
248
+ * Creates a new InvalidBucketInfoError instance.
249
+ * @param response - Parsed B2 error response body.
250
+ * @param options - Optional metadata from response headers.
251
+ */
252
+ constructor(response, options) {
253
+ super(response, options);
254
+ this.name = "InvalidBucketInfoError";
255
+ }
256
+ };
257
+ /** Thrown when a bucket ID is malformed or does not identify a valid bucket. */
258
+ var BadBucketIdError = class extends B2Error {
259
+ /**
260
+ * Creates a new BadBucketIdError instance.
261
+ * @param response - Parsed B2 error response body.
262
+ * @param options - Optional metadata from response headers.
263
+ */
264
+ constructor(response, options) {
265
+ super(response, options);
266
+ this.name = "BadBucketIdError";
267
+ }
268
+ };
269
+ /** Thrown when the B2 endpoint does not allow the request method. */
270
+ var MethodNotAllowedError = class extends B2Error {
271
+ /**
272
+ * Creates a new MethodNotAllowedError instance.
273
+ * @param response - Parsed B2 error response body.
274
+ * @param options - Optional metadata from response headers.
275
+ */
276
+ constructor(response, options) {
277
+ super(response, options);
278
+ this.name = "MethodNotAllowedError";
279
+ }
280
+ };
281
+ /** Thrown when the request conflicts with current B2 resource state. */
282
+ var ConflictError = class extends B2Error {
283
+ /**
284
+ * Creates a new ConflictError instance.
285
+ * @param response - Parsed B2 error response body.
286
+ * @param options - Optional metadata from response headers.
287
+ */
288
+ constructor(response, options) {
289
+ super(response, options);
290
+ this.name = "ConflictError";
291
+ }
292
+ };
293
+ /** Thrown for general bad request errors (HTTP 400) not covered by a more specific subclass. */
294
+ var BadRequestError = class extends B2Error {
295
+ /**
296
+ * Creates a new BadRequestError instance.
297
+ * @param response - Parsed B2 error response body.
298
+ * @param options - Optional metadata from response headers.
299
+ */
300
+ constructor(response, options) {
301
+ super(response, options);
302
+ this.name = "BadRequestError";
303
+ }
304
+ };
305
+ /** Thrown when B2 cannot parse the JSON request body. */
306
+ var BadJsonError = class extends B2Error {
307
+ /**
308
+ * Creates a new BadJsonError instance.
309
+ * @param response - Parsed B2 error response body.
310
+ * @param options - Optional metadata from response headers.
311
+ */
312
+ constructor(response, options) {
313
+ super(response, options);
314
+ this.name = "BadJsonError";
315
+ }
316
+ };
317
+ /** Thrown when a bucket ID has a valid shape but does not identify a usable bucket. */
318
+ var InvalidBucketIdError = class extends B2Error {
319
+ /**
320
+ * Creates a new InvalidBucketIdError instance.
321
+ * @param response - Parsed B2 error response body.
322
+ * @param options - Optional metadata from response headers.
323
+ */
324
+ constructor(response, options) {
325
+ super(response, options);
326
+ this.name = "InvalidBucketIdError";
327
+ }
328
+ };
329
+ /** Thrown when a numeric request parameter is outside the allowed range. */
330
+ var OutOfRangeError = class extends B2Error {
331
+ /**
332
+ * Creates a new OutOfRangeError instance.
333
+ * @param response - Parsed B2 error response body.
334
+ * @param options - Optional metadata from response headers.
335
+ */
336
+ constructor(response, options) {
337
+ super(response, options);
338
+ this.name = "OutOfRangeError";
339
+ }
340
+ };
341
+ /** Thrown when a requested byte range cannot be satisfied. */
342
+ var RangeNotSatisfiableError = class extends B2Error {
343
+ /**
344
+ * Creates a new RangeNotSatisfiableError instance.
345
+ * @param response - Parsed B2 error response body.
346
+ * @param options - Optional metadata from response headers.
347
+ */
348
+ constructor(response, options) {
349
+ super(response, options);
350
+ this.name = "RangeNotSatisfiableError";
351
+ }
352
+ };
353
+ /** Thrown when a file name is malformed or otherwise rejected by B2. */
354
+ var InvalidFileNameError = class extends B2Error {
355
+ /**
356
+ * Creates a new InvalidFileNameError instance.
357
+ * @param response - Parsed B2 error response body.
358
+ * @param options - Optional metadata from response headers.
359
+ */
360
+ constructor(response, options) {
361
+ super(response, options);
362
+ this.name = "InvalidFileNameError";
363
+ }
364
+ };
365
+ /** Thrown when file metadata fails B2 validation. */
366
+ var InvalidFileInfoError = class extends B2Error {
367
+ /**
368
+ * Creates a new InvalidFileInfoError instance.
369
+ * @param response - Parsed B2 error response body.
370
+ * @param options - Optional metadata from response headers.
371
+ */
372
+ constructor(response, options) {
373
+ super(response, options);
374
+ this.name = "InvalidFileInfoError";
375
+ }
376
+ };
377
+ /** Thrown when a file ID is malformed or does not identify a valid file. */
378
+ var InvalidFileIdError = class extends B2Error {
379
+ /**
380
+ * Creates a new InvalidFileIdError instance.
381
+ * @param response - Parsed B2 error response body.
382
+ * @param options - Optional metadata from response headers.
383
+ */
384
+ constructor(response, options) {
385
+ super(response, options);
386
+ this.name = "InvalidFileIdError";
387
+ }
388
+ };
389
+ /** Thrown when a multipart upload part number is invalid. */
390
+ var InvalidPartNumberError = class extends B2Error {
391
+ /**
392
+ * Creates a new InvalidPartNumberError instance.
393
+ * @param response - Parsed B2 error response body.
394
+ * @param options - Optional metadata from response headers.
395
+ */
396
+ constructor(response, options) {
397
+ super(response, options);
398
+ this.name = "InvalidPartNumberError";
399
+ }
400
+ };
401
+ /**
402
+ * Thrown when an upload URL is no longer valid and must be refreshed.
403
+ *
404
+ * Forward-compat insurance: B2 does not currently surface a distinct
405
+ * error code for this case, so {@link classifyError} never actually
406
+ * instantiates this class today. It's part of the public API so
407
+ * consumers can pre-write `instanceof` checks; when B2 documents a
408
+ * `bad_upload_url` (or similar) error code, the `classifyError`
409
+ * switch gets a matching case and existing consumer code starts
410
+ * catching the typed error without any changes on their side.
411
+ *
412
+ * Until then, expect `BadRequestError` for upload-URL invalidation
413
+ * scenarios — that's what B2 currently returns.
414
+ */
415
+ var BadUploadUrlError = class extends B2Error {
416
+ /**
417
+ * Creates a new BadUploadUrlError instance.
418
+ * @param response - Parsed B2 error response body.
419
+ * @param options - Optional metadata from response headers.
420
+ */
421
+ constructor(response, options) {
422
+ super(response, options);
423
+ this.name = "BadUploadUrlError";
424
+ }
425
+ };
426
+ /**
427
+ * Thrown when the uploaded file's SHA-1 checksum does not match the
428
+ * expected value.
429
+ *
430
+ * When B2 returns `bad_sha1_checksum`, {@link classifyError} instantiates
431
+ * this class so callers can handle checksum failures with `instanceof`.
432
+ * Generic `bad_request` checksum failures continue to classify as
433
+ * {@link BadRequestError}.
434
+ */
435
+ var ChecksumMismatchError = class extends B2Error {
436
+ /**
437
+ * Creates a new ChecksumMismatchError instance.
438
+ * @param response - Parsed B2 error response body.
439
+ * @param options - Optional metadata from response headers.
440
+ */
441
+ constructor(response, options) {
442
+ super(response, options);
443
+ this.name = "ChecksumMismatchError";
444
+ }
445
+ };
446
+ /**
447
+ * Thrown by client-side capability checks when the application key is missing
448
+ * capabilities required by an operation. Not raised by the server.
449
+ */
450
+ var B2InsufficientCapabilityError = class extends Error {
451
+ /** Capabilities that were required for the operation. */
452
+ required;
453
+ /** Capabilities that the current key actually has. */
454
+ available;
455
+ /** Capabilities present in `required` but not in `available`. */
456
+ missing;
457
+ /**
458
+ * Creates a new B2InsufficientCapabilityError instance.
459
+ *
460
+ * @param required - Capabilities the operation requires.
461
+ * @param available - Capabilities the current key holds.
462
+ * @param missing - The subset of required that isn't available.
463
+ */
464
+ constructor(required, available, missing) {
465
+ super(`Application key is missing capabilities: ${missing.join(", ")}`);
466
+ this.name = "B2InsufficientCapabilityError";
467
+ this.required = required;
468
+ this.available = available;
469
+ this.missing = missing;
470
+ }
471
+ };
472
+ /**
473
+ * Thrown when the SDK is asked to fetch a URL whose host is outside the
474
+ * authorized B2 realm. Defense against SSRF / URL-substitution attacks where
475
+ * a compromised or hostile B2 endpoint returns an upload URL pointing at an
476
+ * internal service (e.g. cloud metadata at `169.254.169.254`).
477
+ *
478
+ * Not retryable.
479
+ */
480
+ var B2SsrfError = class extends Error {
481
+ /** Always `false` — this is a security failure, not transient. */
482
+ retryable = false;
483
+ /**
484
+ * Creates a new {@link B2SsrfError}.
485
+ *
486
+ * @param message - Human-readable description of which URL was rejected and why.
487
+ * @param url - The URL that was rejected. Stored as a sanitized URL.
488
+ */
489
+ constructor(message, url) {
490
+ const safeUrl = require_url_redaction.redactUrlForError(url);
491
+ super(`${message.split(url).join(safeUrl)} (${safeUrl})`);
492
+ this.name = "B2SsrfError";
493
+ this.url = safeUrl;
494
+ }
495
+ /** Sanitized URL that was rejected. */
496
+ url;
497
+ };
498
+ /** Thrown when a configured auth realm cannot safely be used for authorization. */
499
+ var B2RealmConfigurationError = class extends B2Error {
500
+ /**
501
+ * Creates a new B2RealmConfigurationError instance.
502
+ *
503
+ * @param message - Human-readable description of the invalid realm setting.
504
+ */
505
+ constructor(message) {
506
+ super({
507
+ status: 400,
508
+ code: "bad_request",
509
+ message
510
+ });
511
+ this.name = "B2RealmConfigurationError";
512
+ }
513
+ };
514
+ /** Thrown when the SDK refuses to follow an HTTP redirect automatically. */
515
+ var B2RedirectError = class extends Error {
516
+ /** Always `false` because a blocked redirect is deterministic. */
517
+ retryable = false;
518
+ /** Sanitized request URL whose response attempted to redirect. */
519
+ url;
520
+ /** HTTP redirect status code, or 0 for an opaque browser redirect. */
521
+ status;
522
+ /** Sanitized redirect target, or `null` when no Location header was present. */
523
+ location;
524
+ /**
525
+ * Creates a new B2RedirectError instance.
526
+ *
527
+ * @param url - Request URL whose response attempted to redirect. Stored as a sanitized URL.
528
+ * @param status - HTTP redirect status code.
529
+ * @param location - Redirect Location header, if present. Stored as a sanitized URL.
530
+ */
531
+ constructor(url, status, location) {
532
+ const safeUrl = require_url_redaction.redactUrlForError(url);
533
+ const safeLocation = location !== null ? require_url_redaction.redactUrlForError(location, { baseUrl: url }) : null;
534
+ super(safeLocation !== null ? `HTTP ${status} redirect blocked for ${safeUrl} to ${safeLocation}` : `HTTP ${status} redirect blocked for ${safeUrl}`);
535
+ this.name = "B2RedirectError";
536
+ this.url = safeUrl;
537
+ this.status = status;
538
+ this.location = safeLocation;
539
+ }
540
+ };
541
+ /** Thrown when a network-level failure occurs (DNS, TCP, TLS). Always retryable. */
542
+ var NetworkError = class extends Error {
543
+ cause;
544
+ /** Always `true` since network errors are transient. */
545
+ retryable = true;
546
+ /**
547
+ * Creates a new NetworkError instance.
548
+ * @param message - Human-readable description of the network failure.
549
+ * @param cause - The underlying error that caused this failure, if any.
550
+ */
551
+ constructor(message, cause) {
552
+ super(message);
553
+ this.cause = cause;
554
+ this.name = "NetworkError";
555
+ }
556
+ };
557
+ /**
558
+ * Thrown when an upload POST returned a response but its body could not be
559
+ * read. The upload may already have been stored by B2, so retrying this error
560
+ * can create duplicate file versions or parts.
561
+ */
562
+ var UploadResponseBodyError = class extends Error {
563
+ /** Underlying response body error, when available. */
564
+ cause;
565
+ /**
566
+ * Creates a new UploadResponseBodyError instance.
567
+ * @param message - Human-readable description of the response read failure.
568
+ * @param options - Optional cause.
569
+ */
570
+ constructor(message, options = {}) {
571
+ super(message, { cause: options.cause });
572
+ this.name = "UploadResponseBodyError";
573
+ if (options.cause !== void 0) this.cause = options.cause;
574
+ }
575
+ };
576
+ /**
577
+ * Thrown when `b2_finish_large_file` returned a response but its body could not
578
+ * be read. The large file may already be committed server-side, so high-level
579
+ * upload paths do not cancel the large file after this error.
580
+ */
581
+ var FinishLargeFileResponseBodyError = class extends Error {
582
+ /** Ambiguous large file ID that may already be committed server-side. */
583
+ fileId;
584
+ /** Bucket requested by the high-level upload, when available. */
585
+ bucketId;
586
+ /** File name requested by the high-level upload, when available. */
587
+ fileName;
588
+ /**
589
+ * Creates a new FinishLargeFileResponseBodyError instance.
590
+ * @param message - Human-readable description of the response read failure.
591
+ * @param options - Optional cause and reconciliation metadata.
592
+ */
593
+ constructor(message, options = {}) {
594
+ super(message, { cause: options.cause });
595
+ this.name = "FinishLargeFileResponseBodyError";
596
+ if (options.cause !== void 0) this.cause = options.cause;
597
+ if (options.fileId !== void 0) this.fileId = options.fileId;
598
+ if (options.bucketId !== void 0) this.bucketId = options.bucketId;
599
+ if (options.fileName !== void 0) this.fileName = options.fileName;
600
+ }
601
+ };
602
+ function isTransient(status, code) {
603
+ if (status === 408 || status === 429) return true;
604
+ if (status === 500 || status === 502 || status === 503 || status === 504) return true;
605
+ if (code === "expired_auth_token") return true;
606
+ if (code === "service_unavailable" || code === "request_timeout") return true;
607
+ return false;
160
608
  }
161
- class B2InsufficientCapabilityError extends Error {
162
- /** Capabilities that were required for the operation. */
163
- required;
164
- /** Capabilities that the current key actually has. */
165
- available;
166
- /** Capabilities present in `required` but not in `available`. */
167
- missing;
168
- /**
169
- * Creates a new B2InsufficientCapabilityError instance.
170
- *
171
- * @param required - Capabilities the operation requires.
172
- * @param available - Capabilities the current key holds.
173
- * @param missing - The subset of required that isn't available.
174
- */
175
- constructor(required, available, missing) {
176
- super(`Application key is missing capabilities: ${missing.join(", ")}`);
177
- this.name = "B2InsufficientCapabilityError";
178
- this.required = required;
179
- this.available = available;
180
- this.missing = missing;
181
- }
609
+ var knownB2ErrorCodes = new Set(require_errors.KNOWN_B2_ERROR_CODES);
610
+ function isKnownB2ErrorCode(code) {
611
+ return knownB2ErrorCodes.has(code);
182
612
  }
183
- class B2SsrfError extends Error {
184
- /**
185
- * Creates a new {@link B2SsrfError}.
186
- *
187
- * @param message - Human-readable description of which URL was rejected and why.
188
- * @param url - The full URL that was rejected.
189
- */
190
- constructor(message, url) {
191
- super(message);
192
- this.url = url;
193
- this.name = "B2SsrfError";
194
- }
195
- /** Always `false` — this is a security failure, not transient. */
196
- retryable = false;
613
+ function assertNever(value) {
614
+ throw new Error(`Unhandled B2 error code: ${String(value)}`);
197
615
  }
198
- class NetworkError extends Error {
199
- /**
200
- * Creates a new NetworkError instance.
201
- * @param message - Human-readable description of the network failure.
202
- * @param cause - The underlying error that caused this failure, if any.
203
- */
204
- constructor(message, cause) {
205
- super(message);
206
- this.cause = cause;
207
- this.name = "NetworkError";
208
- }
209
- /** Always `true` since network errors are transient. */
210
- retryable = true;
616
+ function classifyKnownError(response, code, options) {
617
+ switch (code) {
618
+ case "expired_auth_token": return new ExpiredAuthTokenError(response, options);
619
+ case "bad_auth_token":
620
+ case "unauthorized": return new BadAuthTokenError(response, options);
621
+ case "bad_request": return new BadRequestError(response, options);
622
+ case "bad_bucket_name":
623
+ case "invalid_bucket_name": return new InvalidBucketNameError(response, options);
624
+ case "bad_bucket_id": return new BadBucketIdError(response, options);
625
+ case "not_found": return new NotFoundError(response, options);
626
+ case "method_not_allowed": return new MethodNotAllowedError(response, options);
627
+ case "request_timeout": return new RequestTimeoutError(response, options);
628
+ case "too_many_requests": return new TooManyRequestsError(response, options);
629
+ case "conflict": return new ConflictError(response, options);
630
+ case "duplicate_bucket_name": return new DuplicateBucketNameError(response, options);
631
+ case "too_many_buckets": return new TooManyBucketsError(response, options);
632
+ case "too_many_files": return new TooManyFilesError(response, options);
633
+ case "cap_exceeded":
634
+ case "storage_cap_exceeded":
635
+ case "transaction_cap_exceeded":
636
+ case "download_cap_exceeded": return new CapExceededError(response, options);
637
+ case "access_denied": return new AccessDeniedError(response, options);
638
+ case "service_unavailable": return new ServiceUnavailableError(response, options);
639
+ case "internal_error": return new InternalError(response, options);
640
+ case "bad_json": return new BadJsonError(response, options);
641
+ case "invalid_bucket_id": return new InvalidBucketIdError(response, options);
642
+ case "invalid_bucket_info": return new InvalidBucketInfoError(response, options);
643
+ case "file_not_present":
644
+ case "no_such_file": return new FileNotPresentError(response, options);
645
+ case "out_of_range": return new OutOfRangeError(response, options);
646
+ case "range_not_satisfiable": return new RangeNotSatisfiableError(response, options);
647
+ case "invalid_file_id": return new InvalidFileIdError(response, options);
648
+ case "invalid_file_name": return new InvalidFileNameError(response, options);
649
+ case "invalid_file_info": return new InvalidFileInfoError(response, options);
650
+ case "invalid_part_number": return new InvalidPartNumberError(response, options);
651
+ case "bad_sha1_checksum": return new ChecksumMismatchError(response, options);
652
+ default: return assertNever(code);
653
+ }
211
654
  }
212
- function isTransient(status, code) {
213
- if (status === 408 || status === 429 || status === 503) return true;
214
- if (code === "expired_auth_token") return true;
215
- if (code === "service_unavailable" || code === "request_timeout") return true;
216
- return false;
655
+ function classifyUnknownError(response, options) {
656
+ if (response.status === 429) return new TooManyRequestsError(response, options);
657
+ if (response.status === 503) return new ServiceUnavailableError(response, options);
658
+ if (response.status === 408) return new RequestTimeoutError(response, options);
659
+ return new B2Error(response, options);
217
660
  }
661
+ /**
662
+ * Maps a B2 error response to the appropriate {@link B2Error} subclass.
663
+ * Uses known error codes for exact matching, then falls back to HTTP status
664
+ * codes for unknown future B2 codes.
665
+ *
666
+ * Maintainer note: when B2 documents a new error code, add it to
667
+ * `KNOWN_B2_ERROR_CODES` in `src/types/errors.ts` and add a matching
668
+ * `classifyKnownError` switch case. Unknown codes fall through to the
669
+ * HTTP-status-based heuristic and finally to a generic `B2Error`, which is
670
+ * safe but loses semantic specificity (the caller can't `instanceof` against
671
+ * a precise subclass and the retry decision relies on status alone).
672
+ *
673
+ * @param response - Parsed B2 error response body.
674
+ * @param options - Optional retry and request metadata from response headers.
675
+ *
676
+ * @returns A typed B2Error subclass instance.
677
+ */
218
678
  function classifyError(response, options) {
219
- switch (response.code) {
220
- case "expired_auth_token":
221
- return new ExpiredAuthTokenError(response, options);
222
- case "bad_auth_token":
223
- case "unauthorized":
224
- return new BadAuthTokenError(response, options);
225
- case "service_unavailable":
226
- return new ServiceUnavailableError(response, options);
227
- case "request_timeout":
228
- return new RequestTimeoutError(response, options);
229
- case "cap_exceeded":
230
- case "storage_cap_exceeded":
231
- case "transaction_cap_exceeded":
232
- case "download_cap_exceeded":
233
- return new CapExceededError(response, options);
234
- case "access_denied":
235
- return new AccessDeniedError(response, options);
236
- case "file_not_present":
237
- case "no_such_file":
238
- return new FileNotPresentError(response, options);
239
- case "duplicate_bucket_name":
240
- return new DuplicateBucketNameError(response, options);
241
- case "bad_sha1_checksum":
242
- return new ChecksumMismatchError(response, options);
243
- case "bad_request":
244
- return new BadRequestError(response, options);
245
- }
246
- if (response.status === 429) return new TooManyRequestsError(response, options);
247
- if (response.status === 503) return new ServiceUnavailableError(response, options);
248
- if (response.status === 408) return new RequestTimeoutError(response, options);
249
- return new B2Error(response, options);
679
+ if (response.code === "internal_error" && response.status !== 500) return classifyUnknownError(response, options);
680
+ if (isKnownB2ErrorCode(response.code)) return classifyKnownError(response, response.code, options);
681
+ return classifyUnknownError(response, options);
250
682
  }
683
+ //#endregion
251
684
  exports.AccessDeniedError = AccessDeniedError;
252
685
  exports.B2Error = B2Error;
253
686
  exports.B2InsufficientCapabilityError = B2InsufficientCapabilityError;
687
+ exports.B2RealmConfigurationError = B2RealmConfigurationError;
688
+ exports.B2RedirectError = B2RedirectError;
254
689
  exports.B2SsrfError = B2SsrfError;
255
690
  exports.BadAuthTokenError = BadAuthTokenError;
691
+ exports.BadBucketIdError = BadBucketIdError;
692
+ exports.BadJsonError = BadJsonError;
256
693
  exports.BadRequestError = BadRequestError;
257
694
  exports.BadUploadUrlError = BadUploadUrlError;
258
695
  exports.CapExceededError = CapExceededError;
259
696
  exports.ChecksumMismatchError = ChecksumMismatchError;
697
+ exports.ConflictError = ConflictError;
260
698
  exports.DuplicateBucketNameError = DuplicateBucketNameError;
261
699
  exports.ExpiredAuthTokenError = ExpiredAuthTokenError;
262
700
  exports.FileNotPresentError = FileNotPresentError;
701
+ exports.FinishLargeFileResponseBodyError = FinishLargeFileResponseBodyError;
702
+ exports.InternalError = InternalError;
703
+ exports.InvalidBucketIdError = InvalidBucketIdError;
704
+ exports.InvalidBucketInfoError = InvalidBucketInfoError;
705
+ exports.InvalidBucketNameError = InvalidBucketNameError;
706
+ exports.InvalidFileIdError = InvalidFileIdError;
707
+ exports.InvalidFileInfoError = InvalidFileInfoError;
708
+ exports.InvalidFileNameError = InvalidFileNameError;
709
+ exports.InvalidPartNumberError = InvalidPartNumberError;
710
+ exports.MethodNotAllowedError = MethodNotAllowedError;
263
711
  exports.NetworkError = NetworkError;
712
+ exports.NotFoundError = NotFoundError;
713
+ exports.OutOfRangeError = OutOfRangeError;
714
+ exports.RangeNotSatisfiableError = RangeNotSatisfiableError;
264
715
  exports.RequestTimeoutError = RequestTimeoutError;
716
+ exports.ResumeFileIdMismatchError = ResumeFileIdMismatchError;
265
717
  exports.ServiceUnavailableError = ServiceUnavailableError;
718
+ exports.TooManyBucketsError = TooManyBucketsError;
719
+ exports.TooManyFilesError = TooManyFilesError;
266
720
  exports.TooManyRequestsError = TooManyRequestsError;
721
+ exports.UploadResponseBodyError = UploadResponseBodyError;
267
722
  exports.classifyError = classifyError;
268
- //# sourceMappingURL=index.cjs.map
723
+
724
+ //# sourceMappingURL=index.cjs.map