@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,321 +1,375 @@
1
- const EncryptionAlgorithm = {
2
- /** AES with a 256-bit key. The only algorithm B2 currently supports. */
3
- Aes256: "AES256"
1
+ //#region src/types/encryption.ts
2
+ /** Named constants for the supported server-side encryption algorithms. */
3
+ var EncryptionAlgorithm = {
4
+ /** AES with a 256-bit key. The only algorithm B2 currently supports. */
5
+ Aes256: "AES256" };
6
+ /**
7
+ * Named constants for the server-side encryption mode used by a file.
8
+ *
9
+ * Most callers should use the {@link SSE_B2}, {@link SSE_NONE}, and
10
+ * {@link sseCustomer} helpers below which return complete
11
+ * {@link EncryptionSetting} objects. These constants are useful when you
12
+ * need the bare mode discriminator (e.g., when introspecting a file's
13
+ * current encryption setting).
14
+ */
15
+ var EncryptionMode = {
16
+ /** B2-managed encryption keys. */
17
+ SseB2: "SSE-B2",
18
+ /** Customer-provided encryption keys. */
19
+ SseC: "SSE-C",
20
+ /** No encryption. */
21
+ None: "none"
4
22
  };
5
- const EncryptionMode = {
6
- /** B2-managed encryption keys. */
7
- SseB2: "SSE-B2",
8
- /** Customer-provided encryption keys. */
9
- SseC: "SSE-C",
10
- /** No encryption. */
11
- None: "none"
23
+ /** Pre-built SSE-B2 encryption setting using AES-256. */
24
+ var SSE_B2 = {
25
+ mode: "SSE-B2",
26
+ algorithm: "AES256"
12
27
  };
13
- const SSE_B2 = { mode: "SSE-B2", algorithm: "AES256" };
14
- const SSE_NONE = { mode: "none" };
28
+ /** Pre-built setting indicating no server-side encryption. */
29
+ var SSE_NONE = { mode: "none" };
30
+ /**
31
+ * Creates an SSE-C encryption setting with a customer-provided key.
32
+ * @param customerKey - Base64-encoded 256-bit encryption key.
33
+ * @param customerKeyMd5 - Base64-encoded MD5 digest of the key.
34
+ *
35
+ * @returns An SSE-C encryption setting ready to pass to upload or download calls.
36
+ */
15
37
  function sseCustomer(customerKey, customerKeyMd5) {
16
- return { mode: "SSE-C", algorithm: "AES256", customerKey, customerKeyMd5 };
38
+ return {
39
+ mode: "SSE-C",
40
+ algorithm: "AES256",
41
+ customerKey,
42
+ customerKeyMd5
43
+ };
17
44
  }
45
+ /**
46
+ * Encodes raw bytes as base64 in an isomorphic way (Node Buffer fallback to btoa).
47
+ *
48
+ * @param bytes - The raw bytes to encode.
49
+ *
50
+ * @returns The base64-encoded string.
51
+ */
18
52
  function bytesToBase64(bytes) {
19
- const g = globalThis;
20
- if (g.Buffer) {
21
- return g.Buffer.from(bytes).toString("base64");
22
- }
23
- let binary = "";
24
- for (const b of bytes) binary += String.fromCharCode(b);
25
- return btoa(binary);
53
+ const g = globalThis;
54
+ if (g.Buffer) return g.Buffer.from(bytes).toString("base64");
55
+ let binary = "";
56
+ for (const b of bytes) binary += String.fromCharCode(b);
57
+ return btoa(binary);
26
58
  }
59
+ /**
60
+ * Computes the MD5 digest of the given bytes as a base64 string. Prefers
61
+ * `node:crypto` for native speed when available; falls back to a pure-JS
62
+ * implementation in browser / edge runtimes because WebCrypto's
63
+ * `crypto.subtle.digest` deliberately does not support MD5.
64
+ *
65
+ * MD5 is used here only for SSE-C key integrity (matching the B2 wire
66
+ * protocol). It is **not** a security boundary; the customer key itself is
67
+ * the secret. Bundling a pure-JS fallback keeps `EncryptionKey.fromBytes`
68
+ * isomorphic.
69
+ *
70
+ * @param bytes - The bytes to digest.
71
+ *
72
+ * @returns The base64-encoded MD5 digest.
73
+ */
27
74
  async function md5Base64(bytes) {
28
- try {
29
- const { createHash } = await import("node:crypto");
30
- if (typeof createHash !== "function") throw new Error("createHash unavailable");
31
- return createHash("md5").update(bytes).digest("base64");
32
- } catch {
33
- return bytesToBase64(md5Bytes(bytes));
34
- }
75
+ try {
76
+ const { createHash } = await import("node:crypto");
77
+ if (typeof createHash !== "function") throw new Error("createHash unavailable");
78
+ return createHash("md5").update(bytes).digest("base64");
79
+ } catch {
80
+ return bytesToBase64(md5Bytes(bytes));
81
+ }
35
82
  }
83
+ /**
84
+ * Pure-JS MD5 implementation per RFC 1321. Returns the 16-byte digest of the
85
+ * input. Used as a browser fallback for SSE-C key MD5 computation; not
86
+ * intended for security-sensitive purposes (MD5 is broken cryptographically).
87
+ *
88
+ * @param data - The bytes to hash.
89
+ *
90
+ * @returns The 16-byte MD5 digest.
91
+ */
36
92
  function md5Bytes(data) {
37
- const originalBitLength = data.byteLength * 8;
38
- const padLength = (data.byteLength + 8 >>> 6) + 1;
39
- const padded = new Uint8Array(padLength * 64);
40
- padded.set(data);
41
- padded[data.byteLength] = 128;
42
- const lowBits = originalBitLength >>> 0;
43
- const highBits = Math.floor(originalBitLength / 4294967296) >>> 0;
44
- const lengthView = new DataView(padded.buffer, padded.byteLength - 8, 8);
45
- lengthView.setUint32(0, lowBits, true);
46
- lengthView.setUint32(4, highBits, true);
47
- const s = [
48
- 7,
49
- 12,
50
- 17,
51
- 22,
52
- 7,
53
- 12,
54
- 17,
55
- 22,
56
- 7,
57
- 12,
58
- 17,
59
- 22,
60
- 7,
61
- 12,
62
- 17,
63
- 22,
64
- 5,
65
- 9,
66
- 14,
67
- 20,
68
- 5,
69
- 9,
70
- 14,
71
- 20,
72
- 5,
73
- 9,
74
- 14,
75
- 20,
76
- 5,
77
- 9,
78
- 14,
79
- 20,
80
- 4,
81
- 11,
82
- 16,
83
- 23,
84
- 4,
85
- 11,
86
- 16,
87
- 23,
88
- 4,
89
- 11,
90
- 16,
91
- 23,
92
- 4,
93
- 11,
94
- 16,
95
- 23,
96
- 6,
97
- 10,
98
- 15,
99
- 21,
100
- 6,
101
- 10,
102
- 15,
103
- 21,
104
- 6,
105
- 10,
106
- 15,
107
- 21,
108
- 6,
109
- 10,
110
- 15,
111
- 21
112
- ];
113
- const k = new Uint32Array([
114
- 3614090360,
115
- 3905402710,
116
- 606105819,
117
- 3250441966,
118
- 4118548399,
119
- 1200080426,
120
- 2821735955,
121
- 4249261313,
122
- 1770035416,
123
- 2336552879,
124
- 4294925233,
125
- 2304563134,
126
- 1804603682,
127
- 4254626195,
128
- 2792965006,
129
- 1236535329,
130
- 4129170786,
131
- 3225465664,
132
- 643717713,
133
- 3921069994,
134
- 3593408605,
135
- 38016083,
136
- 3634488961,
137
- 3889429448,
138
- 568446438,
139
- 3275163606,
140
- 4107603335,
141
- 1163531501,
142
- 2850285829,
143
- 4243563512,
144
- 1735328473,
145
- 2368359562,
146
- 4294588738,
147
- 2272392833,
148
- 1839030562,
149
- 4259657740,
150
- 2763975236,
151
- 1272893353,
152
- 4139469664,
153
- 3200236656,
154
- 681279174,
155
- 3936430074,
156
- 3572445317,
157
- 76029189,
158
- 3654602809,
159
- 3873151461,
160
- 530742520,
161
- 3299628645,
162
- 4096336452,
163
- 1126891415,
164
- 2878612391,
165
- 4237533241,
166
- 1700485571,
167
- 2399980690,
168
- 4293915773,
169
- 2240044497,
170
- 1873313359,
171
- 4264355552,
172
- 2734768916,
173
- 1309151649,
174
- 4149444226,
175
- 3174756917,
176
- 718787259,
177
- 3951481745
178
- ]);
179
- let a0 = 1732584193;
180
- let b0 = 4023233417;
181
- let c0 = 2562383102;
182
- let d0 = 271733878;
183
- const m = new Uint32Array(16);
184
- const view = new DataView(padded.buffer);
185
- for (let block = 0; block < padded.byteLength; block += 64) {
186
- for (let i = 0; i < 16; i++) m[i] = view.getUint32(block + i * 4, true);
187
- let A = a0;
188
- let B = b0;
189
- let C = c0;
190
- let D = d0;
191
- for (let i = 0; i < 64; i++) {
192
- let f;
193
- let g;
194
- if (i < 16) {
195
- f = B & C | ~B & D;
196
- g = i;
197
- } else if (i < 32) {
198
- f = D & B | ~D & C;
199
- g = (5 * i + 1) % 16;
200
- } else if (i < 48) {
201
- f = B ^ C ^ D;
202
- g = (3 * i + 5) % 16;
203
- } else {
204
- f = C ^ (B | ~D);
205
- g = 7 * i % 16;
206
- }
207
- const temp = D;
208
- D = C;
209
- C = B;
210
- const sum = A + f + (k[i] ?? 0) + (m[g] ?? 0) >>> 0;
211
- const shift = s[i] ?? 0;
212
- const rotated = (sum << shift | sum >>> 32 - shift) >>> 0;
213
- B = B + rotated >>> 0;
214
- A = temp;
215
- }
216
- a0 = a0 + A >>> 0;
217
- b0 = b0 + B >>> 0;
218
- c0 = c0 + C >>> 0;
219
- d0 = d0 + D >>> 0;
220
- }
221
- const out = new Uint8Array(16);
222
- const outView = new DataView(out.buffer);
223
- outView.setUint32(0, a0, true);
224
- outView.setUint32(4, b0, true);
225
- outView.setUint32(8, c0, true);
226
- outView.setUint32(12, d0, true);
227
- return out;
93
+ const originalBitLength = data.byteLength * 8;
94
+ const padLength = (data.byteLength + 8 >>> 6) + 1;
95
+ const padded = new Uint8Array(padLength * 64);
96
+ padded.set(data);
97
+ padded[data.byteLength] = 128;
98
+ const lowBits = originalBitLength >>> 0;
99
+ const highBits = Math.floor(originalBitLength / 4294967296) >>> 0;
100
+ const lengthView = new DataView(padded.buffer, padded.byteLength - 8, 8);
101
+ lengthView.setUint32(0, lowBits, true);
102
+ lengthView.setUint32(4, highBits, true);
103
+ const s = [
104
+ 7,
105
+ 12,
106
+ 17,
107
+ 22,
108
+ 7,
109
+ 12,
110
+ 17,
111
+ 22,
112
+ 7,
113
+ 12,
114
+ 17,
115
+ 22,
116
+ 7,
117
+ 12,
118
+ 17,
119
+ 22,
120
+ 5,
121
+ 9,
122
+ 14,
123
+ 20,
124
+ 5,
125
+ 9,
126
+ 14,
127
+ 20,
128
+ 5,
129
+ 9,
130
+ 14,
131
+ 20,
132
+ 5,
133
+ 9,
134
+ 14,
135
+ 20,
136
+ 4,
137
+ 11,
138
+ 16,
139
+ 23,
140
+ 4,
141
+ 11,
142
+ 16,
143
+ 23,
144
+ 4,
145
+ 11,
146
+ 16,
147
+ 23,
148
+ 4,
149
+ 11,
150
+ 16,
151
+ 23,
152
+ 6,
153
+ 10,
154
+ 15,
155
+ 21,
156
+ 6,
157
+ 10,
158
+ 15,
159
+ 21,
160
+ 6,
161
+ 10,
162
+ 15,
163
+ 21,
164
+ 6,
165
+ 10,
166
+ 15,
167
+ 21
168
+ ];
169
+ const k = new Uint32Array([
170
+ 3614090360,
171
+ 3905402710,
172
+ 606105819,
173
+ 3250441966,
174
+ 4118548399,
175
+ 1200080426,
176
+ 2821735955,
177
+ 4249261313,
178
+ 1770035416,
179
+ 2336552879,
180
+ 4294925233,
181
+ 2304563134,
182
+ 1804603682,
183
+ 4254626195,
184
+ 2792965006,
185
+ 1236535329,
186
+ 4129170786,
187
+ 3225465664,
188
+ 643717713,
189
+ 3921069994,
190
+ 3593408605,
191
+ 38016083,
192
+ 3634488961,
193
+ 3889429448,
194
+ 568446438,
195
+ 3275163606,
196
+ 4107603335,
197
+ 1163531501,
198
+ 2850285829,
199
+ 4243563512,
200
+ 1735328473,
201
+ 2368359562,
202
+ 4294588738,
203
+ 2272392833,
204
+ 1839030562,
205
+ 4259657740,
206
+ 2763975236,
207
+ 1272893353,
208
+ 4139469664,
209
+ 3200236656,
210
+ 681279174,
211
+ 3936430074,
212
+ 3572445317,
213
+ 76029189,
214
+ 3654602809,
215
+ 3873151461,
216
+ 530742520,
217
+ 3299628645,
218
+ 4096336452,
219
+ 1126891415,
220
+ 2878612391,
221
+ 4237533241,
222
+ 1700485571,
223
+ 2399980690,
224
+ 4293915773,
225
+ 2240044497,
226
+ 1873313359,
227
+ 4264355552,
228
+ 2734768916,
229
+ 1309151649,
230
+ 4149444226,
231
+ 3174756917,
232
+ 718787259,
233
+ 3951481745
234
+ ]);
235
+ let a0 = 1732584193;
236
+ let b0 = 4023233417;
237
+ let c0 = 2562383102;
238
+ let d0 = 271733878;
239
+ const m = /* @__PURE__ */ new Uint32Array(16);
240
+ const view = new DataView(padded.buffer);
241
+ for (let block = 0; block < padded.byteLength; block += 64) {
242
+ for (let i = 0; i < 16; i++) m[i] = view.getUint32(block + i * 4, true);
243
+ let A = a0;
244
+ let B = b0;
245
+ let C = c0;
246
+ let D = d0;
247
+ for (let i = 0; i < 64; i++) {
248
+ let f;
249
+ let g;
250
+ if (i < 16) {
251
+ f = B & C | ~B & D;
252
+ g = i;
253
+ } else if (i < 32) {
254
+ f = D & B | ~D & C;
255
+ g = (5 * i + 1) % 16;
256
+ } else if (i < 48) {
257
+ f = B ^ C ^ D;
258
+ g = (3 * i + 5) % 16;
259
+ } else {
260
+ f = C ^ (B | ~D);
261
+ g = 7 * i % 16;
262
+ }
263
+ const temp = D;
264
+ D = C;
265
+ C = B;
266
+ const sum = A + f + (k[i] ?? 0) + (m[g] ?? 0) >>> 0;
267
+ const shift = s[i] ?? 0;
268
+ const rotated = (sum << shift | sum >>> 32 - shift) >>> 0;
269
+ B = B + rotated >>> 0;
270
+ A = temp;
271
+ }
272
+ a0 = a0 + A >>> 0;
273
+ b0 = b0 + B >>> 0;
274
+ c0 = c0 + C >>> 0;
275
+ d0 = d0 + D >>> 0;
276
+ }
277
+ const out = /* @__PURE__ */ new Uint8Array(16);
278
+ const outView = new DataView(out.buffer);
279
+ outView.setUint32(0, a0, true);
280
+ outView.setUint32(4, b0, true);
281
+ outView.setUint32(8, c0, true);
282
+ outView.setUint32(12, d0, true);
283
+ return out;
228
284
  }
229
- const KEY_REDACTED = "[redacted SSE-C key]";
230
- class EncryptionKey {
231
- /** Encryption mode discriminant. Always `'SSE-C'` for this class. */
232
- mode = "SSE-C";
233
- /** Encryption algorithm. B2's S3-compatible API only supports AES-256. */
234
- algorithm = "AES256";
235
- /** Base64-encoded 256-bit customer key. Logged as `[redacted SSE-C key]` via `toJSON` / `toString`. */
236
- customerKey;
237
- /** Base64-encoded MD5 digest of the customer key. Required by B2 for integrity verification. */
238
- customerKeyMd5;
239
- /**
240
- * Internal constructor. Use {@link EncryptionKey.fromBytes} or
241
- * {@link EncryptionKey.fromBase64} instead.
242
- *
243
- * @param customerKey - Base64-encoded 256-bit encryption key.
244
- * @param customerKeyMd5 - Base64-encoded MD5 digest of the key.
245
- *
246
- * @internal
247
- */
248
- constructor(customerKey, customerKeyMd5) {
249
- this.customerKey = customerKey;
250
- this.customerKeyMd5 = customerKeyMd5;
251
- }
252
- /**
253
- * Builds an EncryptionKey from a raw 32-byte (256-bit) key. Computes the
254
- * required base64 MD5 digest internally.
255
- *
256
- * @param rawKey - The raw 256-bit key as bytes. Must be exactly 32 bytes.
257
- *
258
- * @returns A safely-wrapped EncryptionKey ready for upload/download.
259
- *
260
- * @throws If the key is not exactly 32 bytes.
261
- */
262
- static async fromBytes(rawKey) {
263
- if (rawKey.byteLength !== 32) {
264
- throw new Error(`SSE-C key must be exactly 32 bytes (256 bits); got ${rawKey.byteLength}.`);
265
- }
266
- const customerKey = bytesToBase64(rawKey);
267
- const customerKeyMd5 = await md5Base64(rawKey);
268
- return new EncryptionKey(customerKey, customerKeyMd5);
269
- }
270
- /**
271
- * Builds an EncryptionKey from precomputed base64 strings. Use this in
272
- * environments where MD5 must be computed externally (e.g., browsers).
273
- *
274
- * @param customerKey - Base64-encoded 256-bit encryption key.
275
- * @param customerKeyMd5 - Base64-encoded MD5 digest of the key.
276
- *
277
- * @returns A safely-wrapped EncryptionKey ready for upload/download.
278
- */
279
- static fromBase64(customerKey, customerKeyMd5) {
280
- return new EncryptionKey(customerKey, customerKeyMd5);
281
- }
282
- /**
283
- * Hides the key bytes from `JSON.stringify`.
284
- *
285
- * @returns A redacted shape: same mode and algorithm, but the key and MD5
286
- * replaced with a placeholder string.
287
- */
288
- toJSON() {
289
- return {
290
- mode: this.mode,
291
- algorithm: this.algorithm,
292
- customerKey: KEY_REDACTED,
293
- customerKeyMd5: KEY_REDACTED
294
- };
295
- }
296
- /**
297
- * Hides the key bytes from default `toString()`.
298
- *
299
- * @returns A short opaque label indicating this is an SSE-C key.
300
- */
301
- toString() {
302
- return `[EncryptionKey SSE-C ${KEY_REDACTED}]`;
303
- }
304
- /**
305
- * Hides the key bytes from Node's `util.inspect` (and therefore `console.log`).
306
- *
307
- * @returns A short opaque label indicating this is an SSE-C key.
308
- */
309
- [Symbol.for("nodejs.util.inspect.custom")]() {
310
- return this.toString();
311
- }
312
- }
313
- export {
314
- EncryptionAlgorithm,
315
- EncryptionKey,
316
- EncryptionMode,
317
- SSE_B2,
318
- SSE_NONE,
319
- sseCustomer
285
+ var KEY_REDACTED = "[redacted SSE-C key]";
286
+ /**
287
+ * Safe wrapper around an SSE-C customer key. Hides the key bytes from
288
+ * `JSON.stringify`, `console.log`, and Node's `util.inspect`. Use {@link EncryptionKey.fromBytes}
289
+ * to construct one from a raw 32-byte key; the MD5 digest is computed internally.
290
+ */
291
+ var EncryptionKey = class EncryptionKey {
292
+ /** Encryption mode discriminant. Always `'SSE-C'` for this class. */
293
+ mode = "SSE-C";
294
+ /** Encryption algorithm. B2's S3-compatible API only supports AES-256. */
295
+ algorithm = "AES256";
296
+ /** Base64-encoded 256-bit customer key. Logged as `[redacted SSE-C key]` via `toJSON` / `toString`. */
297
+ customerKey;
298
+ /** Base64-encoded MD5 digest of the customer key. Required by B2 for integrity verification. */
299
+ customerKeyMd5;
300
+ /**
301
+ * Internal constructor. Use {@link EncryptionKey.fromBytes} or
302
+ * {@link EncryptionKey.fromBase64} instead.
303
+ *
304
+ * @param customerKey - Base64-encoded 256-bit encryption key.
305
+ * @param customerKeyMd5 - Base64-encoded MD5 digest of the key.
306
+ *
307
+ * @internal
308
+ */
309
+ constructor(customerKey, customerKeyMd5) {
310
+ this.customerKey = customerKey;
311
+ this.customerKeyMd5 = customerKeyMd5;
312
+ }
313
+ /**
314
+ * Builds an EncryptionKey from a raw 32-byte (256-bit) key. Computes the
315
+ * required base64 MD5 digest internally.
316
+ *
317
+ * @param rawKey - The raw 256-bit key as bytes. Must be exactly 32 bytes.
318
+ *
319
+ * @returns A safely-wrapped EncryptionKey ready for upload/download.
320
+ *
321
+ * @throws If the key is not exactly 32 bytes.
322
+ */
323
+ static async fromBytes(rawKey) {
324
+ if (rawKey.byteLength !== 32) throw new Error(`SSE-C key must be exactly 32 bytes (256 bits); got ${rawKey.byteLength}.`);
325
+ const customerKey = bytesToBase64(rawKey);
326
+ const customerKeyMd5 = await md5Base64(rawKey);
327
+ return new EncryptionKey(customerKey, customerKeyMd5);
328
+ }
329
+ /**
330
+ * Builds an EncryptionKey from precomputed base64 strings. Use this in
331
+ * environments where MD5 must be computed externally (e.g., browsers).
332
+ *
333
+ * @param customerKey - Base64-encoded 256-bit encryption key.
334
+ * @param customerKeyMd5 - Base64-encoded MD5 digest of the key.
335
+ *
336
+ * @returns A safely-wrapped EncryptionKey ready for upload/download.
337
+ */
338
+ static fromBase64(customerKey, customerKeyMd5) {
339
+ return new EncryptionKey(customerKey, customerKeyMd5);
340
+ }
341
+ /**
342
+ * Hides the key bytes from `JSON.stringify`.
343
+ *
344
+ * @returns A redacted shape: same mode and algorithm, but the key and MD5
345
+ * replaced with a placeholder string.
346
+ */
347
+ toJSON() {
348
+ return {
349
+ mode: this.mode,
350
+ algorithm: this.algorithm,
351
+ customerKey: KEY_REDACTED,
352
+ customerKeyMd5: KEY_REDACTED
353
+ };
354
+ }
355
+ /**
356
+ * Hides the key bytes from default `toString()`.
357
+ *
358
+ * @returns A short opaque label indicating this is an SSE-C key.
359
+ */
360
+ toString() {
361
+ return `[EncryptionKey SSE-C ${KEY_REDACTED}]`;
362
+ }
363
+ /**
364
+ * Hides the key bytes from Node's `util.inspect` (and therefore `console.log`).
365
+ *
366
+ * @returns A short opaque label indicating this is an SSE-C key.
367
+ */
368
+ [Symbol.for("nodejs.util.inspect.custom")]() {
369
+ return this.toString();
370
+ }
320
371
  };
321
- //# sourceMappingURL=encryption.js.map
372
+ //#endregion
373
+ export { EncryptionAlgorithm, EncryptionKey, EncryptionMode, SSE_B2, SSE_NONE, sseCustomer };
374
+
375
+ //# sourceMappingURL=encryption.js.map