@backblaze-labs/b2-sdk 0.1.0 → 0.3.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 (885) hide show
  1. package/CHANGELOG.md +151 -5
  2. package/README.md +163 -34
  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/backup/client.cjs +206 -0
  44. package/dist/backup/client.cjs.map +1 -0
  45. package/dist/backup/client.d.cts +238 -0
  46. package/dist/backup/client.d.cts.map +1 -0
  47. package/dist/backup/client.d.ts +238 -0
  48. package/dist/backup/client.d.ts.map +1 -0
  49. package/dist/backup/client.js +206 -0
  50. package/dist/backup/client.js.map +1 -0
  51. package/dist/backup/index.cjs +15 -0
  52. package/dist/backup/index.d.cts +22 -0
  53. package/dist/backup/index.d.cts.map +1 -0
  54. package/dist/backup/index.d.ts +22 -0
  55. package/dist/backup/index.d.ts.map +1 -0
  56. package/dist/backup/index.js +7 -0
  57. package/dist/backup/raw.cjs +146 -0
  58. package/dist/backup/raw.cjs.map +1 -0
  59. package/dist/backup/raw.d.cts +122 -0
  60. package/dist/backup/raw.d.cts.map +1 -0
  61. package/dist/backup/raw.d.ts +122 -0
  62. package/dist/backup/raw.d.ts.map +1 -0
  63. package/dist/backup/raw.js +146 -0
  64. package/dist/backup/raw.js.map +1 -0
  65. package/dist/bucket.cjs +786 -787
  66. package/dist/bucket.cjs.map +1 -1
  67. package/dist/bucket.d.cts +35 -47
  68. package/dist/bucket.d.cts.map +1 -1
  69. package/dist/bucket.d.ts +35 -47
  70. package/dist/bucket.d.ts.map +1 -1
  71. package/dist/bucket.js +781 -782
  72. package/dist/bucket.js.map +1 -1
  73. package/dist/client.cjs +246 -228
  74. package/dist/client.cjs.map +1 -1
  75. package/dist/client.d.cts +25 -17
  76. package/dist/client.d.cts.map +1 -1
  77. package/dist/client.d.ts +25 -17
  78. package/dist/client.d.ts.map +1 -1
  79. package/dist/client.js +243 -225
  80. package/dist/client.js.map +1 -1
  81. package/dist/copy/large.cjs +116 -71
  82. package/dist/copy/large.cjs.map +1 -1
  83. package/dist/copy/large.d.cts +6 -0
  84. package/dist/copy/large.d.cts.map +1 -1
  85. package/dist/copy/large.d.ts +6 -0
  86. package/dist/copy/large.d.ts.map +1 -1
  87. package/dist/copy/large.js +114 -69
  88. package/dist/copy/large.js.map +1 -1
  89. package/dist/download/checksum.cjs +93 -0
  90. package/dist/download/checksum.cjs.map +1 -0
  91. package/dist/download/checksum.d.cts +40 -0
  92. package/dist/download/checksum.d.cts.map +1 -0
  93. package/dist/download/checksum.d.ts +40 -0
  94. package/dist/download/checksum.d.ts.map +1 -0
  95. package/dist/download/checksum.js +91 -0
  96. package/dist/download/checksum.js.map +1 -0
  97. package/dist/download/parallel.cjs +251 -118
  98. package/dist/download/parallel.cjs.map +1 -1
  99. package/dist/download/parallel.d.cts +13 -2
  100. package/dist/download/parallel.d.cts.map +1 -1
  101. package/dist/download/parallel.d.ts +13 -2
  102. package/dist/download/parallel.d.ts.map +1 -1
  103. package/dist/download/parallel.js +249 -116
  104. package/dist/download/parallel.js.map +1 -1
  105. package/dist/download/single.cjs +323 -97
  106. package/dist/download/single.cjs.map +1 -1
  107. package/dist/download/single.d.cts +6 -1
  108. package/dist/download/single.d.cts.map +1 -1
  109. package/dist/download/single.d.ts +6 -1
  110. package/dist/download/single.d.ts.map +1 -1
  111. package/dist/download/single.js +322 -99
  112. package/dist/download/single.js.map +1 -1
  113. package/dist/errors/index.cjs +869 -243
  114. package/dist/errors/index.cjs.map +1 -1
  115. package/dist/errors/index.d.cts +404 -82
  116. package/dist/errors/index.d.cts.map +1 -1
  117. package/dist/errors/index.d.ts +404 -82
  118. package/dist/errors/index.d.ts.map +1 -1
  119. package/dist/errors/index.js +835 -261
  120. package/dist/errors/index.js.map +1 -1
  121. package/dist/http/retry.cjs +45 -28
  122. package/dist/http/retry.cjs.map +1 -1
  123. package/dist/http/retry.d.cts +15 -2
  124. package/dist/http/retry.d.cts.map +1 -1
  125. package/dist/http/retry.d.ts +15 -2
  126. package/dist/http/retry.d.ts.map +1 -1
  127. package/dist/http/retry.js +46 -31
  128. package/dist/http/retry.js.map +1 -1
  129. package/dist/http/transport.cjs +476 -140
  130. package/dist/http/transport.cjs.map +1 -1
  131. package/dist/http/transport.d.cts +46 -5
  132. package/dist/http/transport.d.cts.map +1 -1
  133. package/dist/http/transport.d.ts +46 -5
  134. package/dist/http/transport.d.ts.map +1 -1
  135. package/dist/http/transport.js +474 -140
  136. package/dist/http/transport.js.map +1 -1
  137. package/dist/http/url-guard.cjs +154 -89
  138. package/dist/http/url-guard.cjs.map +1 -1
  139. package/dist/http/url-guard.d.cts +25 -3
  140. package/dist/http/url-guard.d.cts.map +1 -1
  141. package/dist/http/url-guard.d.ts +25 -3
  142. package/dist/http/url-guard.d.ts.map +1 -1
  143. package/dist/http/url-guard.js +152 -90
  144. package/dist/http/url-guard.js.map +1 -1
  145. package/dist/http/user-agent.cjs +84 -44
  146. package/dist/http/user-agent.cjs.map +1 -1
  147. package/dist/http/user-agent.js +84 -46
  148. package/dist/http/user-agent.js.map +1 -1
  149. package/dist/index.cjs +124 -77
  150. package/dist/index.d.cts +29 -21
  151. package/dist/index.d.cts.map +1 -1
  152. package/dist/index.d.ts +29 -21
  153. package/dist/index.d.ts.map +1 -1
  154. package/dist/index.js +18 -72
  155. package/dist/internal/b2-naming.cjs +66 -0
  156. package/dist/internal/b2-naming.cjs.map +1 -0
  157. package/dist/internal/b2-naming.d.cts +43 -0
  158. package/dist/internal/b2-naming.d.cts.map +1 -0
  159. package/dist/internal/b2-naming.d.ts +43 -0
  160. package/dist/internal/b2-naming.d.ts.map +1 -0
  161. package/dist/internal/b2-naming.js +60 -0
  162. package/dist/internal/b2-naming.js.map +1 -0
  163. package/dist/internal/upload-retry-options.cjs +21 -0
  164. package/dist/internal/upload-retry-options.cjs.map +1 -0
  165. package/dist/internal/upload-retry-options.d.cts +12 -0
  166. package/dist/internal/upload-retry-options.d.cts.map +1 -0
  167. package/dist/internal/upload-retry-options.d.ts +12 -0
  168. package/dist/internal/upload-retry-options.d.ts.map +1 -0
  169. package/dist/internal/upload-retry-options.js +21 -0
  170. package/dist/internal/upload-retry-options.js.map +1 -0
  171. package/dist/internal/url-redaction.cjs +31 -0
  172. package/dist/internal/url-redaction.cjs.map +1 -0
  173. package/dist/internal/url-redaction.d.cts +17 -0
  174. package/dist/internal/url-redaction.d.cts.map +1 -0
  175. package/dist/internal/url-redaction.d.ts +17 -0
  176. package/dist/internal/url-redaction.d.ts.map +1 -0
  177. package/dist/internal/url-redaction.js +31 -0
  178. package/dist/internal/url-redaction.js.map +1 -0
  179. package/dist/notifications/index.cjs +4 -6
  180. package/dist/notifications/index.d.cts +1 -1
  181. package/dist/notifications/index.d.cts.map +1 -1
  182. package/dist/notifications/index.d.ts +1 -1
  183. package/dist/notifications/index.d.ts.map +1 -1
  184. package/dist/notifications/index.js +1 -6
  185. package/dist/notifications/webhook.cjs +195 -85
  186. package/dist/notifications/webhook.cjs.map +1 -1
  187. package/dist/notifications/webhook.d.cts.map +1 -1
  188. package/dist/notifications/webhook.d.ts.map +1 -1
  189. package/dist/notifications/webhook.js +195 -87
  190. package/dist/notifications/webhook.js.map +1 -1
  191. package/dist/object.cjs +253 -210
  192. package/dist/object.cjs.map +1 -1
  193. package/dist/object.d.cts +13 -57
  194. package/dist/object.d.cts.map +1 -1
  195. package/dist/object.d.ts +13 -57
  196. package/dist/object.d.ts.map +1 -1
  197. package/dist/object.js +249 -206
  198. package/dist/object.js.map +1 -1
  199. package/dist/partner/account-info.d.cts +43 -0
  200. package/dist/partner/account-info.d.cts.map +1 -0
  201. package/dist/partner/account-info.d.ts +43 -0
  202. package/dist/partner/account-info.d.ts.map +1 -0
  203. package/dist/partner/auth-clone.cjs +64 -0
  204. package/dist/partner/auth-clone.cjs.map +1 -0
  205. package/dist/partner/auth-clone.d.cts +27 -0
  206. package/dist/partner/auth-clone.d.cts.map +1 -0
  207. package/dist/partner/auth-clone.d.ts +27 -0
  208. package/dist/partner/auth-clone.d.ts.map +1 -0
  209. package/dist/partner/auth-clone.js +63 -0
  210. package/dist/partner/auth-clone.js.map +1 -0
  211. package/dist/partner/auth-core.cjs +175 -0
  212. package/dist/partner/auth-core.cjs.map +1 -0
  213. package/dist/partner/auth-core.d.cts +111 -0
  214. package/dist/partner/auth-core.d.cts.map +1 -0
  215. package/dist/partner/auth-core.d.ts +111 -0
  216. package/dist/partner/auth-core.d.ts.map +1 -0
  217. package/dist/partner/auth-core.js +175 -0
  218. package/dist/partner/auth-core.js.map +1 -0
  219. package/dist/partner/auth-shape.cjs +36 -0
  220. package/dist/partner/auth-shape.cjs.map +1 -0
  221. package/dist/partner/auth-shape.d.cts +12 -0
  222. package/dist/partner/auth-shape.d.cts.map +1 -0
  223. package/dist/partner/auth-shape.d.ts +12 -0
  224. package/dist/partner/auth-shape.d.ts.map +1 -0
  225. package/dist/partner/auth-shape.js +36 -0
  226. package/dist/partner/auth-shape.js.map +1 -0
  227. package/dist/partner/client.cjs +255 -0
  228. package/dist/partner/client.cjs.map +1 -0
  229. package/dist/partner/client.d.cts +335 -0
  230. package/dist/partner/client.d.cts.map +1 -0
  231. package/dist/partner/client.d.ts +335 -0
  232. package/dist/partner/client.d.ts.map +1 -0
  233. package/dist/partner/client.js +255 -0
  234. package/dist/partner/client.js.map +1 -0
  235. package/dist/partner/endpoint-url.cjs +108 -0
  236. package/dist/partner/endpoint-url.cjs.map +1 -0
  237. package/dist/partner/endpoint-url.d.cts +72 -0
  238. package/dist/partner/endpoint-url.d.cts.map +1 -0
  239. package/dist/partner/endpoint-url.d.ts +72 -0
  240. package/dist/partner/endpoint-url.d.ts.map +1 -0
  241. package/dist/partner/endpoint-url.js +105 -0
  242. package/dist/partner/endpoint-url.js.map +1 -0
  243. package/dist/partner/in-memory.cjs +135 -0
  244. package/dist/partner/in-memory.cjs.map +1 -0
  245. package/dist/partner/in-memory.d.cts +99 -0
  246. package/dist/partner/in-memory.d.cts.map +1 -0
  247. package/dist/partner/in-memory.d.ts +99 -0
  248. package/dist/partner/in-memory.d.ts.map +1 -0
  249. package/dist/partner/in-memory.js +135 -0
  250. package/dist/partner/in-memory.js.map +1 -0
  251. package/dist/partner/index.cjs +18 -0
  252. package/dist/partner/index.d.cts +23 -0
  253. package/dist/partner/index.d.cts.map +1 -0
  254. package/dist/partner/index.d.ts +23 -0
  255. package/dist/partner/index.d.ts.map +1 -0
  256. package/dist/partner/index.js +7 -0
  257. package/dist/partner/raw.cjs +392 -0
  258. package/dist/partner/raw.cjs.map +1 -0
  259. package/dist/partner/raw.d.cts +223 -0
  260. package/dist/partner/raw.d.cts.map +1 -0
  261. package/dist/partner/raw.d.ts +223 -0
  262. package/dist/partner/raw.d.ts.map +1 -0
  263. package/dist/partner/raw.js +390 -0
  264. package/dist/partner/raw.js.map +1 -0
  265. package/dist/partner/redaction-placeholders.cjs +10 -0
  266. package/dist/partner/redaction-placeholders.cjs.map +1 -0
  267. package/dist/partner/redaction-placeholders.d.cts +5 -0
  268. package/dist/partner/redaction-placeholders.d.cts.map +1 -0
  269. package/dist/partner/redaction-placeholders.d.ts +5 -0
  270. package/dist/partner/redaction-placeholders.d.ts.map +1 -0
  271. package/dist/partner/redaction-placeholders.js +9 -0
  272. package/dist/partner/redaction-placeholders.js.map +1 -0
  273. package/dist/partner/redaction.cjs +267 -0
  274. package/dist/partner/redaction.cjs.map +1 -0
  275. package/dist/partner/redaction.d.cts +124 -0
  276. package/dist/partner/redaction.d.cts.map +1 -0
  277. package/dist/partner/redaction.d.ts +124 -0
  278. package/dist/partner/redaction.d.ts.map +1 -0
  279. package/dist/partner/redaction.js +257 -0
  280. package/dist/partner/redaction.js.map +1 -0
  281. package/dist/raw/encoding.cjs +74 -35
  282. package/dist/raw/encoding.cjs.map +1 -1
  283. package/dist/raw/encoding.js +74 -38
  284. package/dist/raw/encoding.js.map +1 -1
  285. package/dist/raw/index.cjs +740 -587
  286. package/dist/raw/index.cjs.map +1 -1
  287. package/dist/raw/index.d.cts +126 -19
  288. package/dist/raw/index.d.cts.map +1 -1
  289. package/dist/raw/index.d.ts +126 -19
  290. package/dist/raw/index.d.ts.map +1 -1
  291. package/dist/raw/index.js +736 -589
  292. package/dist/raw/index.js.map +1 -1
  293. package/dist/raw/url.cjs +111 -0
  294. package/dist/raw/url.cjs.map +1 -0
  295. package/dist/raw/url.d.cts +41 -0
  296. package/dist/raw/url.d.cts.map +1 -0
  297. package/dist/raw/url.d.ts +41 -0
  298. package/dist/raw/url.d.ts.map +1 -0
  299. package/dist/raw/url.js +110 -0
  300. package/dist/raw/url.js.map +1 -0
  301. package/dist/s3/index.cjs +355 -18
  302. package/dist/s3/index.cjs.map +1 -1
  303. package/dist/s3/index.d.cts +233 -5
  304. package/dist/s3/index.d.cts.map +1 -1
  305. package/dist/s3/index.d.ts +233 -5
  306. package/dist/s3/index.d.ts.map +1 -1
  307. package/dist/s3/index.js +351 -22
  308. package/dist/s3/index.js.map +1 -1
  309. package/dist/s3/sigv4.cjs +154 -0
  310. package/dist/s3/sigv4.cjs.map +1 -0
  311. package/dist/s3/sigv4.d.cts +43 -0
  312. package/dist/s3/sigv4.d.cts.map +1 -0
  313. package/dist/s3/sigv4.d.ts +43 -0
  314. package/dist/s3/sigv4.d.ts.map +1 -0
  315. package/dist/s3/sigv4.js +153 -0
  316. package/dist/s3/sigv4.js.map +1 -0
  317. package/dist/s3/validation.cjs +69 -0
  318. package/dist/s3/validation.cjs.map +1 -0
  319. package/dist/s3/validation.d.cts +43 -0
  320. package/dist/s3/validation.d.cts.map +1 -0
  321. package/dist/s3/validation.d.ts +43 -0
  322. package/dist/s3/validation.d.ts.map +1 -0
  323. package/dist/s3/validation.js +66 -0
  324. package/dist/s3/validation.js.map +1 -0
  325. package/dist/simulator/capabilities.cjs +63 -48
  326. package/dist/simulator/capabilities.cjs.map +1 -1
  327. package/dist/simulator/capabilities.js +63 -49
  328. package/dist/simulator/capabilities.js.map +1 -1
  329. package/dist/simulator/index.cjs +3114 -1547
  330. package/dist/simulator/index.cjs.map +1 -1
  331. package/dist/simulator/index.d.cts +186 -20
  332. package/dist/simulator/index.d.cts.map +1 -1
  333. package/dist/simulator/index.d.ts +186 -20
  334. package/dist/simulator/index.d.ts.map +1 -1
  335. package/dist/simulator/index.js +3098 -1545
  336. package/dist/simulator/index.js.map +1 -1
  337. package/dist/simulator/partner.cjs +719 -0
  338. package/dist/simulator/partner.cjs.map +1 -0
  339. package/dist/simulator/partner.d.cts +183 -0
  340. package/dist/simulator/partner.d.cts.map +1 -0
  341. package/dist/simulator/partner.d.ts +183 -0
  342. package/dist/simulator/partner.d.ts.map +1 -0
  343. package/dist/simulator/partner.js +718 -0
  344. package/dist/simulator/partner.js.map +1 -0
  345. package/dist/simulator/validation.cjs +772 -157
  346. package/dist/simulator/validation.cjs.map +1 -1
  347. package/dist/simulator/validation.d.cts +120 -21
  348. package/dist/simulator/validation.d.cts.map +1 -1
  349. package/dist/simulator/validation.d.ts +120 -21
  350. package/dist/simulator/validation.d.ts.map +1 -1
  351. package/dist/simulator/validation.js +755 -167
  352. package/dist/simulator/validation.js.map +1 -1
  353. package/dist/streams/collect.cjs +74 -24
  354. package/dist/streams/collect.cjs.map +1 -1
  355. package/dist/streams/collect.d.cts +14 -1
  356. package/dist/streams/collect.d.cts.map +1 -1
  357. package/dist/streams/collect.d.ts +14 -1
  358. package/dist/streams/collect.d.ts.map +1 -1
  359. package/dist/streams/collect.js +74 -25
  360. package/dist/streams/collect.js.map +1 -1
  361. package/dist/streams/file-source.cjs +287 -0
  362. package/dist/streams/file-source.cjs.map +1 -0
  363. package/dist/streams/file-source.d.cts +96 -0
  364. package/dist/streams/file-source.d.cts.map +1 -0
  365. package/dist/streams/file-source.d.ts +96 -0
  366. package/dist/streams/file-source.d.ts.map +1 -0
  367. package/dist/streams/file-source.js +286 -0
  368. package/dist/streams/file-source.js.map +1 -0
  369. package/dist/streams/hash.cjs +207 -115
  370. package/dist/streams/hash.cjs.map +1 -1
  371. package/dist/streams/hash.d.cts +5 -4
  372. package/dist/streams/hash.d.cts.map +1 -1
  373. package/dist/streams/hash.d.ts +5 -4
  374. package/dist/streams/hash.d.ts.map +1 -1
  375. package/dist/streams/hash.js +208 -95
  376. package/dist/streams/hash.js.map +1 -1
  377. package/dist/streams/index.cjs +12 -12
  378. package/dist/streams/index.d.cts +3 -3
  379. package/dist/streams/index.d.cts.map +1 -1
  380. package/dist/streams/index.d.ts +3 -3
  381. package/dist/streams/index.d.ts.map +1 -1
  382. package/dist/streams/index.js +3 -11
  383. package/dist/streams/progress.cjs +60 -46
  384. package/dist/streams/progress.cjs.map +1 -1
  385. package/dist/streams/progress.js +60 -46
  386. package/dist/streams/progress.js.map +1 -1
  387. package/dist/streams/source.cjs +317 -146
  388. package/dist/streams/source.cjs.map +1 -1
  389. package/dist/streams/source.d.cts +56 -18
  390. package/dist/streams/source.d.cts.map +1 -1
  391. package/dist/streams/source.d.ts +56 -18
  392. package/dist/streams/source.d.ts.map +1 -1
  393. package/dist/streams/source.js +313 -149
  394. package/dist/streams/source.js.map +1 -1
  395. package/dist/sync/actions/index.cjs +236 -184
  396. package/dist/sync/actions/index.cjs.map +1 -1
  397. package/dist/sync/actions/index.d.cts +29 -21
  398. package/dist/sync/actions/index.d.cts.map +1 -1
  399. package/dist/sync/actions/index.d.ts +29 -21
  400. package/dist/sync/actions/index.d.ts.map +1 -1
  401. package/dist/sync/actions/index.js +236 -190
  402. package/dist/sync/actions/index.js.map +1 -1
  403. package/dist/sync/b2-sha1-reader.cjs +152 -0
  404. package/dist/sync/b2-sha1-reader.cjs.map +1 -0
  405. package/dist/sync/b2-sha1-reader.d.cts +58 -0
  406. package/dist/sync/b2-sha1-reader.d.cts.map +1 -0
  407. package/dist/sync/b2-sha1-reader.d.ts +58 -0
  408. package/dist/sync/b2-sha1-reader.d.ts.map +1 -0
  409. package/dist/sync/b2-sha1-reader.js +149 -0
  410. package/dist/sync/b2-sha1-reader.js.map +1 -0
  411. package/dist/sync/download-staging.cjs +266 -0
  412. package/dist/sync/download-staging.cjs.map +1 -0
  413. package/dist/sync/download-staging.d.cts +55 -0
  414. package/dist/sync/download-staging.d.cts.map +1 -0
  415. package/dist/sync/download-staging.d.ts +55 -0
  416. package/dist/sync/download-staging.d.ts.map +1 -0
  417. package/dist/sync/download-staging.js +260 -0
  418. package/dist/sync/download-staging.js.map +1 -0
  419. package/dist/sync/filesystem-errors.cjs +32 -0
  420. package/dist/sync/filesystem-errors.cjs.map +1 -0
  421. package/dist/sync/filesystem-errors.d.cts +8 -0
  422. package/dist/sync/filesystem-errors.d.cts.map +1 -0
  423. package/dist/sync/filesystem-errors.d.ts +8 -0
  424. package/dist/sync/filesystem-errors.d.ts.map +1 -0
  425. package/dist/sync/filesystem-errors.js +32 -0
  426. package/dist/sync/filesystem-errors.js.map +1 -0
  427. package/dist/sync/filters.cjs +217 -0
  428. package/dist/sync/filters.cjs.map +1 -0
  429. package/dist/sync/filters.d.cts +51 -0
  430. package/dist/sync/filters.d.cts.map +1 -0
  431. package/dist/sync/filters.d.ts +51 -0
  432. package/dist/sync/filters.d.ts.map +1 -0
  433. package/dist/sync/filters.js +213 -0
  434. package/dist/sync/filters.js.map +1 -0
  435. package/dist/sync/index.cjs +39 -22
  436. package/dist/sync/index.d.cts +14 -9
  437. package/dist/sync/index.d.cts.map +1 -1
  438. package/dist/sync/index.d.ts +14 -9
  439. package/dist/sync/index.d.ts.map +1 -1
  440. package/dist/sync/index.js +9 -20
  441. package/dist/sync/local-file-identity.cjs +61 -0
  442. package/dist/sync/local-file-identity.cjs.map +1 -0
  443. package/dist/sync/local-file-identity.d.cts +37 -0
  444. package/dist/sync/local-file-identity.d.cts.map +1 -0
  445. package/dist/sync/local-file-identity.d.ts +37 -0
  446. package/dist/sync/local-file-identity.d.ts.map +1 -0
  447. package/dist/sync/local-file-identity.js +60 -0
  448. package/dist/sync/local-file-identity.js.map +1 -0
  449. package/dist/sync/local-file-io.cjs +369 -0
  450. package/dist/sync/local-file-io.cjs.map +1 -0
  451. package/dist/sync/local-file-io.d.cts +76 -0
  452. package/dist/sync/local-file-io.d.cts.map +1 -0
  453. package/dist/sync/local-file-io.d.ts +76 -0
  454. package/dist/sync/local-file-io.d.ts.map +1 -0
  455. package/dist/sync/local-file-io.js +365 -0
  456. package/dist/sync/local-file-io.js.map +1 -0
  457. package/dist/sync/local-filesystem-root.cjs +27 -0
  458. package/dist/sync/local-filesystem-root.cjs.map +1 -0
  459. package/dist/sync/local-filesystem-root.d.cts +18 -0
  460. package/dist/sync/local-filesystem-root.d.cts.map +1 -0
  461. package/dist/sync/local-filesystem-root.d.ts +18 -0
  462. package/dist/sync/local-filesystem-root.d.ts.map +1 -0
  463. package/dist/sync/local-filesystem-root.js +26 -0
  464. package/dist/sync/local-filesystem-root.js.map +1 -0
  465. package/dist/sync/local-sha1.cjs +110 -0
  466. package/dist/sync/local-sha1.cjs.map +1 -0
  467. package/dist/sync/local-sha1.d.cts +31 -0
  468. package/dist/sync/local-sha1.d.cts.map +1 -0
  469. package/dist/sync/local-sha1.d.ts +31 -0
  470. package/dist/sync/local-sha1.d.ts.map +1 -0
  471. package/dist/sync/local-sha1.js +109 -0
  472. package/dist/sync/local-sha1.js.map +1 -0
  473. package/dist/sync/pairing.cjs +118 -29
  474. package/dist/sync/pairing.cjs.map +1 -1
  475. package/dist/sync/pairing.d.cts +7 -2
  476. package/dist/sync/pairing.d.cts.map +1 -1
  477. package/dist/sync/pairing.d.ts +7 -2
  478. package/dist/sync/pairing.d.ts.map +1 -1
  479. package/dist/sync/pairing.js +120 -31
  480. package/dist/sync/pairing.js.map +1 -1
  481. package/dist/sync/path-order.cjs +30 -0
  482. package/dist/sync/path-order.cjs.map +1 -0
  483. package/dist/sync/path-order.d.cts +28 -0
  484. package/dist/sync/path-order.d.cts.map +1 -0
  485. package/dist/sync/path-order.d.ts +28 -0
  486. package/dist/sync/path-order.d.ts.map +1 -0
  487. package/dist/sync/path-order.js +29 -0
  488. package/dist/sync/path-order.js.map +1 -0
  489. package/dist/sync/path-safety.cjs +111 -0
  490. package/dist/sync/path-safety.cjs.map +1 -0
  491. package/dist/sync/path-safety.d.cts +78 -0
  492. package/dist/sync/path-safety.d.cts.map +1 -0
  493. package/dist/sync/path-safety.d.ts +78 -0
  494. package/dist/sync/path-safety.d.ts.map +1 -0
  495. package/dist/sync/path-safety.js +105 -0
  496. package/dist/sync/path-safety.js.map +1 -0
  497. package/dist/sync/paths.d.cts +19 -0
  498. package/dist/sync/paths.d.cts.map +1 -0
  499. package/dist/sync/paths.d.ts +19 -0
  500. package/dist/sync/paths.d.ts.map +1 -0
  501. package/dist/sync/policies/compare.cjs +391 -11
  502. package/dist/sync/policies/compare.cjs.map +1 -1
  503. package/dist/sync/policies/compare.d.cts +100 -2
  504. package/dist/sync/policies/compare.d.cts.map +1 -1
  505. package/dist/sync/policies/compare.d.ts +100 -2
  506. package/dist/sync/policies/compare.d.ts.map +1 -1
  507. package/dist/sync/policies/compare.js +389 -13
  508. package/dist/sync/policies/compare.js.map +1 -1
  509. package/dist/sync/policies/index.cjs +70 -65
  510. package/dist/sync/policies/index.cjs.map +1 -1
  511. package/dist/sync/policies/index.d.cts +35 -6
  512. package/dist/sync/policies/index.d.cts.map +1 -1
  513. package/dist/sync/policies/index.d.ts +35 -6
  514. package/dist/sync/policies/index.d.ts.map +1 -1
  515. package/dist/sync/policies/index.js +70 -65
  516. package/dist/sync/policies/index.js.map +1 -1
  517. package/dist/sync/prefix.cjs +96 -0
  518. package/dist/sync/prefix.cjs.map +1 -0
  519. package/dist/sync/prefix.d.cts +55 -0
  520. package/dist/sync/prefix.d.cts.map +1 -0
  521. package/dist/sync/prefix.d.ts +55 -0
  522. package/dist/sync/prefix.d.ts.map +1 -0
  523. package/dist/sync/prefix.js +92 -0
  524. package/dist/sync/prefix.js.map +1 -0
  525. package/dist/sync/regexp-safety.cjs +192 -0
  526. package/dist/sync/regexp-safety.cjs.map +1 -0
  527. package/dist/sync/regexp-safety.d.cts +29 -0
  528. package/dist/sync/regexp-safety.d.cts.map +1 -0
  529. package/dist/sync/regexp-safety.d.ts +29 -0
  530. package/dist/sync/regexp-safety.d.ts.map +1 -0
  531. package/dist/sync/regexp-safety.js +190 -0
  532. package/dist/sync/regexp-safety.js.map +1 -0
  533. package/dist/sync/scan-events.cjs +33 -0
  534. package/dist/sync/scan-events.cjs.map +1 -0
  535. package/dist/sync/scan-events.d.cts +17 -0
  536. package/dist/sync/scan-events.d.cts.map +1 -0
  537. package/dist/sync/scan-events.d.ts +17 -0
  538. package/dist/sync/scan-events.d.ts.map +1 -0
  539. package/dist/sync/scan-events.js +32 -0
  540. package/dist/sync/scan-events.js.map +1 -0
  541. package/dist/sync/scan-limit.cjs +33 -0
  542. package/dist/sync/scan-limit.cjs.map +1 -0
  543. package/dist/sync/scan-limit.d.cts +21 -0
  544. package/dist/sync/scan-limit.d.cts.map +1 -0
  545. package/dist/sync/scan-limit.d.ts +21 -0
  546. package/dist/sync/scan-limit.d.ts.map +1 -0
  547. package/dist/sync/scan-limit.js +31 -0
  548. package/dist/sync/scan-limit.js.map +1 -0
  549. package/dist/sync/scanners/b2.cjs +239 -55
  550. package/dist/sync/scanners/b2.cjs.map +1 -1
  551. package/dist/sync/scanners/b2.d.cts +26 -7
  552. package/dist/sync/scanners/b2.d.cts.map +1 -1
  553. package/dist/sync/scanners/b2.d.ts +26 -7
  554. package/dist/sync/scanners/b2.d.ts.map +1 -1
  555. package/dist/sync/scanners/b2.js +239 -55
  556. package/dist/sync/scanners/b2.js.map +1 -1
  557. package/dist/sync/scanners/local.cjs +215 -56
  558. package/dist/sync/scanners/local.cjs.map +1 -1
  559. package/dist/sync/scanners/local.d.cts +22 -7
  560. package/dist/sync/scanners/local.d.cts.map +1 -1
  561. package/dist/sync/scanners/local.d.ts +22 -7
  562. package/dist/sync/scanners/local.d.ts.map +1 -1
  563. package/dist/sync/scanners/local.js +216 -57
  564. package/dist/sync/scanners/local.js.map +1 -1
  565. package/dist/sync/sha1-metadata.cjs +94 -0
  566. package/dist/sync/sha1-metadata.cjs.map +1 -0
  567. package/dist/sync/sha1-metadata.d.cts +82 -0
  568. package/dist/sync/sha1-metadata.d.cts.map +1 -0
  569. package/dist/sync/sha1-metadata.d.ts +82 -0
  570. package/dist/sync/sha1-metadata.d.ts.map +1 -0
  571. package/dist/sync/sha1-metadata.js +89 -0
  572. package/dist/sync/sha1-metadata.js.map +1 -0
  573. package/dist/sync/sha1-options.cjs +23 -0
  574. package/dist/sync/sha1-options.cjs.map +1 -0
  575. package/dist/sync/sha1-options.d.cts +14 -0
  576. package/dist/sync/sha1-options.d.cts.map +1 -0
  577. package/dist/sync/sha1-options.d.ts +14 -0
  578. package/dist/sync/sha1-options.d.ts.map +1 -0
  579. package/dist/sync/sha1-options.js +21 -0
  580. package/dist/sync/sha1-options.js.map +1 -0
  581. package/dist/sync/synchronizer.cjs +783 -197
  582. package/dist/sync/synchronizer.cjs.map +1 -1
  583. package/dist/sync/synchronizer.d.cts +47 -1
  584. package/dist/sync/synchronizer.d.cts.map +1 -1
  585. package/dist/sync/synchronizer.d.ts +47 -1
  586. package/dist/sync/synchronizer.d.ts.map +1 -1
  587. package/dist/sync/synchronizer.js +780 -173
  588. package/dist/sync/synchronizer.js.map +1 -1
  589. package/dist/sync/types.d.cts +208 -16
  590. package/dist/sync/types.d.cts.map +1 -1
  591. package/dist/sync/types.d.ts +208 -16
  592. package/dist/sync/types.d.ts.map +1 -1
  593. package/dist/types/auth.cjs +80 -56
  594. package/dist/types/auth.cjs.map +1 -1
  595. package/dist/types/auth.d.cts +71 -9
  596. package/dist/types/auth.d.cts.map +1 -1
  597. package/dist/types/auth.d.ts +71 -9
  598. package/dist/types/auth.d.ts.map +1 -1
  599. package/dist/types/auth.js +81 -57
  600. package/dist/types/auth.js.map +1 -1
  601. package/dist/types/backup.d.cts +80 -0
  602. package/dist/types/backup.d.cts.map +1 -0
  603. package/dist/types/backup.d.ts +80 -0
  604. package/dist/types/backup.d.ts.map +1 -0
  605. package/dist/types/bucket.cjs +74 -38
  606. package/dist/types/bucket.cjs.map +1 -1
  607. package/dist/types/bucket.d.cts +4 -2
  608. package/dist/types/bucket.d.cts.map +1 -1
  609. package/dist/types/bucket.d.ts +4 -2
  610. package/dist/types/bucket.d.ts.map +1 -1
  611. package/dist/types/bucket.js +75 -41
  612. package/dist/types/bucket.js.map +1 -1
  613. package/dist/types/download.cjs +62 -0
  614. package/dist/types/download.cjs.map +1 -0
  615. package/dist/types/download.d.cts +98 -0
  616. package/dist/types/download.d.cts.map +1 -1
  617. package/dist/types/download.d.ts +98 -0
  618. package/dist/types/download.d.ts.map +1 -1
  619. package/dist/types/download.js +61 -0
  620. package/dist/types/download.js.map +1 -0
  621. package/dist/types/encryption.cjs +194 -328
  622. package/dist/types/encryption.cjs.map +1 -1
  623. package/dist/types/encryption.d.cts +48 -0
  624. package/dist/types/encryption.d.cts.map +1 -1
  625. package/dist/types/encryption.d.ts +48 -0
  626. package/dist/types/encryption.d.ts.map +1 -1
  627. package/dist/types/encryption.js +192 -311
  628. package/dist/types/encryption.js.map +1 -1
  629. package/dist/types/errors.cjs +56 -0
  630. package/dist/types/errors.cjs.map +1 -0
  631. package/dist/types/errors.d.cts +13 -4
  632. package/dist/types/errors.d.cts.map +1 -1
  633. package/dist/types/errors.d.ts +13 -4
  634. package/dist/types/errors.d.ts.map +1 -1
  635. package/dist/types/errors.js +56 -0
  636. package/dist/types/errors.js.map +1 -0
  637. package/dist/types/file.cjs +36 -19
  638. package/dist/types/file.cjs.map +1 -1
  639. package/dist/types/file.d.cts +17 -4
  640. package/dist/types/file.d.cts.map +1 -1
  641. package/dist/types/file.d.ts +17 -4
  642. package/dist/types/file.d.ts.map +1 -1
  643. package/dist/types/file.js +37 -21
  644. package/dist/types/file.js.map +1 -1
  645. package/dist/types/ids.cjs +83 -9
  646. package/dist/types/ids.cjs.map +1 -1
  647. package/dist/types/ids.d.cts +32 -0
  648. package/dist/types/ids.d.cts.map +1 -1
  649. package/dist/types/ids.d.ts +32 -0
  650. package/dist/types/ids.d.ts.map +1 -1
  651. package/dist/types/ids.js +82 -16
  652. package/dist/types/ids.js.map +1 -1
  653. package/dist/types/index.d.cts +18 -13
  654. package/dist/types/index.d.cts.map +1 -1
  655. package/dist/types/index.d.ts +18 -13
  656. package/dist/types/index.d.ts.map +1 -1
  657. package/dist/types/key.d.cts +44 -8
  658. package/dist/types/key.d.cts.map +1 -1
  659. package/dist/types/key.d.ts +44 -8
  660. package/dist/types/key.d.ts.map +1 -1
  661. package/dist/types/lock.cjs +33 -13
  662. package/dist/types/lock.cjs.map +1 -1
  663. package/dist/types/lock.d.cts +14 -0
  664. package/dist/types/lock.d.cts.map +1 -1
  665. package/dist/types/lock.d.ts +14 -0
  666. package/dist/types/lock.d.ts.map +1 -1
  667. package/dist/types/lock.js +34 -15
  668. package/dist/types/lock.js.map +1 -1
  669. package/dist/types/notifications.cjs +44 -22
  670. package/dist/types/notifications.cjs.map +1 -1
  671. package/dist/types/notifications.d.cts +5 -3
  672. package/dist/types/notifications.d.cts.map +1 -1
  673. package/dist/types/notifications.d.ts +5 -3
  674. package/dist/types/notifications.d.ts.map +1 -1
  675. package/dist/types/notifications.js +45 -23
  676. package/dist/types/notifications.js.map +1 -1
  677. package/dist/types/partner.cjs +32 -0
  678. package/dist/types/partner.cjs.map +1 -0
  679. package/dist/types/partner.d.cts +394 -0
  680. package/dist/types/partner.d.cts.map +1 -0
  681. package/dist/types/partner.d.ts +394 -0
  682. package/dist/types/partner.d.ts.map +1 -0
  683. package/dist/types/partner.js +29 -0
  684. package/dist/types/partner.js.map +1 -0
  685. package/dist/types/upload.d.cts +53 -6
  686. package/dist/types/upload.d.cts.map +1 -1
  687. package/dist/types/upload.d.ts +53 -6
  688. package/dist/types/upload.d.ts.map +1 -1
  689. package/dist/upload/abort-scope.cjs +46 -0
  690. package/dist/upload/abort-scope.cjs.map +1 -0
  691. package/dist/upload/abort-scope.d.cts +26 -0
  692. package/dist/upload/abort-scope.d.cts.map +1 -0
  693. package/dist/upload/abort-scope.d.ts +26 -0
  694. package/dist/upload/abort-scope.d.ts.map +1 -0
  695. package/dist/upload/abort-scope.js +45 -0
  696. package/dist/upload/abort-scope.js.map +1 -0
  697. package/dist/upload/cancel.cjs +183 -8
  698. package/dist/upload/cancel.cjs.map +1 -1
  699. package/dist/upload/cancel.d.cts +110 -2
  700. package/dist/upload/cancel.d.cts.map +1 -1
  701. package/dist/upload/cancel.d.ts +110 -2
  702. package/dist/upload/cancel.d.ts.map +1 -1
  703. package/dist/upload/cancel.js +178 -9
  704. package/dist/upload/cancel.js.map +1 -1
  705. package/dist/upload/concurrency.cjs +79 -52
  706. package/dist/upload/concurrency.cjs.map +1 -1
  707. package/dist/upload/concurrency.js +79 -53
  708. package/dist/upload/concurrency.js.map +1 -1
  709. package/dist/upload/finish.cjs +54 -0
  710. package/dist/upload/finish.cjs.map +1 -0
  711. package/dist/upload/finish.d.cts +26 -0
  712. package/dist/upload/finish.d.cts.map +1 -0
  713. package/dist/upload/finish.d.ts +26 -0
  714. package/dist/upload/finish.d.ts.map +1 -0
  715. package/dist/upload/finish.js +54 -0
  716. package/dist/upload/finish.js.map +1 -0
  717. package/dist/upload/large.cjs +305 -218
  718. package/dist/upload/large.cjs.map +1 -1
  719. package/dist/upload/large.d.cts +90 -9
  720. package/dist/upload/large.d.cts.map +1 -1
  721. package/dist/upload/large.d.ts +90 -9
  722. package/dist/upload/large.d.ts.map +1 -1
  723. package/dist/upload/large.js +305 -218
  724. package/dist/upload/large.js.map +1 -1
  725. package/dist/upload/options.cjs +28 -0
  726. package/dist/upload/options.cjs.map +1 -0
  727. package/dist/upload/options.d.cts +116 -0
  728. package/dist/upload/options.d.cts.map +1 -0
  729. package/dist/upload/options.d.ts +116 -0
  730. package/dist/upload/options.d.ts.map +1 -0
  731. package/dist/upload/options.js +27 -0
  732. package/dist/upload/options.js.map +1 -0
  733. package/dist/upload/resume.cjs +334 -33
  734. package/dist/upload/resume.cjs.map +1 -1
  735. package/dist/upload/resume.d.cts +84 -12
  736. package/dist/upload/resume.d.cts.map +1 -1
  737. package/dist/upload/resume.d.ts +84 -12
  738. package/dist/upload/resume.d.ts.map +1 -1
  739. package/dist/upload/resume.js +331 -33
  740. package/dist/upload/resume.js.map +1 -1
  741. package/dist/upload/retry.cjs +191 -0
  742. package/dist/upload/retry.cjs.map +1 -0
  743. package/dist/upload/retry.d.cts +127 -0
  744. package/dist/upload/retry.d.cts.map +1 -0
  745. package/dist/upload/retry.d.ts +127 -0
  746. package/dist/upload/retry.d.ts.map +1 -0
  747. package/dist/upload/retry.js +187 -0
  748. package/dist/upload/retry.js.map +1 -0
  749. package/dist/upload/single.cjs +69 -44
  750. package/dist/upload/single.cjs.map +1 -1
  751. package/dist/upload/single.d.cts +8 -1
  752. package/dist/upload/single.d.cts.map +1 -1
  753. package/dist/upload/single.d.ts +8 -1
  754. package/dist/upload/single.d.ts.map +1 -1
  755. package/dist/upload/single.js +69 -44
  756. package/dist/upload/single.js.map +1 -1
  757. package/dist/upload/stream.cjs +319 -193
  758. package/dist/upload/stream.cjs.map +1 -1
  759. package/dist/upload/stream.d.cts +9 -1
  760. package/dist/upload/stream.d.cts.map +1 -1
  761. package/dist/upload/stream.d.ts +9 -1
  762. package/dist/upload/stream.d.ts.map +1 -1
  763. package/dist/upload/stream.js +318 -192
  764. package/dist/upload/stream.js.map +1 -1
  765. package/dist/util/abort.cjs +114 -0
  766. package/dist/util/abort.cjs.map +1 -0
  767. package/dist/util/abort.d.cts +65 -0
  768. package/dist/util/abort.d.cts.map +1 -0
  769. package/dist/util/abort.d.ts +65 -0
  770. package/dist/util/abort.d.ts.map +1 -0
  771. package/dist/util/abort.js +109 -0
  772. package/dist/util/abort.js.map +1 -0
  773. package/dist/util/best-effort.cjs +42 -8
  774. package/dist/util/best-effort.cjs.map +1 -1
  775. package/dist/util/best-effort.d.cts +2 -1
  776. package/dist/util/best-effort.d.cts.map +1 -1
  777. package/dist/util/best-effort.d.ts +2 -1
  778. package/dist/util/best-effort.d.ts.map +1 -1
  779. package/dist/util/best-effort.js +43 -9
  780. package/dist/util/best-effort.js.map +1 -1
  781. package/dist/util/bytes.cjs +23 -0
  782. package/dist/util/bytes.cjs.map +1 -0
  783. package/dist/util/bytes.d.cts +15 -0
  784. package/dist/util/bytes.d.cts.map +1 -0
  785. package/dist/util/bytes.d.ts +15 -0
  786. package/dist/util/bytes.d.ts.map +1 -0
  787. package/dist/util/bytes.js +23 -0
  788. package/dist/util/bytes.js.map +1 -0
  789. package/dist/util/crypto.cjs +68 -0
  790. package/dist/util/crypto.cjs.map +1 -0
  791. package/dist/util/crypto.d.cts +26 -0
  792. package/dist/util/crypto.d.cts.map +1 -0
  793. package/dist/util/crypto.d.ts +26 -0
  794. package/dist/util/crypto.d.ts.map +1 -0
  795. package/dist/util/crypto.js +66 -0
  796. package/dist/util/crypto.js.map +1 -0
  797. package/dist/util/defaults.cjs +28 -9
  798. package/dist/util/defaults.cjs.map +1 -1
  799. package/dist/util/defaults.d.cts +2 -0
  800. package/dist/util/defaults.d.cts.map +1 -1
  801. package/dist/util/defaults.d.ts +2 -0
  802. package/dist/util/defaults.d.ts.map +1 -1
  803. package/dist/util/defaults.js +28 -11
  804. package/dist/util/defaults.js.map +1 -1
  805. package/dist/util/error-reason.cjs +41 -0
  806. package/dist/util/error-reason.cjs.map +1 -0
  807. package/dist/util/error-reason.d.cts +9 -0
  808. package/dist/util/error-reason.d.cts.map +1 -0
  809. package/dist/util/error-reason.d.ts +9 -0
  810. package/dist/util/error-reason.d.ts.map +1 -0
  811. package/dist/util/error-reason.js +41 -0
  812. package/dist/util/error-reason.js.map +1 -0
  813. package/dist/util/http.cjs +23 -0
  814. package/dist/util/http.cjs.map +1 -0
  815. package/dist/util/http.d.cts +13 -0
  816. package/dist/util/http.d.cts.map +1 -0
  817. package/dist/util/http.d.ts +13 -0
  818. package/dist/util/http.d.ts.map +1 -0
  819. package/dist/util/http.js +23 -0
  820. package/dist/util/http.js.map +1 -0
  821. package/dist/util/md5.cjs +211 -0
  822. package/dist/util/md5.cjs.map +1 -0
  823. package/dist/util/md5.d.cts +43 -0
  824. package/dist/util/md5.d.cts.map +1 -0
  825. package/dist/util/md5.d.ts +43 -0
  826. package/dist/util/md5.d.ts.map +1 -0
  827. package/dist/util/md5.js +209 -0
  828. package/dist/util/md5.js.map +1 -0
  829. package/dist/util/normalize.cjs +66 -7
  830. package/dist/util/normalize.cjs.map +1 -1
  831. package/dist/util/normalize.d.cts +7 -7
  832. package/dist/util/normalize.d.cts.map +1 -1
  833. package/dist/util/normalize.d.ts +7 -7
  834. package/dist/util/normalize.d.ts.map +1 -1
  835. package/dist/util/normalize.js +67 -10
  836. package/dist/util/normalize.js.map +1 -1
  837. package/dist/util/paginator.cjs +69 -14
  838. package/dist/util/paginator.cjs.map +1 -1
  839. package/dist/util/paginator.d.cts +3 -1
  840. package/dist/util/paginator.d.cts.map +1 -1
  841. package/dist/util/paginator.d.ts +3 -1
  842. package/dist/util/paginator.d.ts.map +1 -1
  843. package/dist/util/paginator.js +70 -16
  844. package/dist/util/paginator.js.map +1 -1
  845. package/dist/util/plan-ranges.cjs +47 -22
  846. package/dist/util/plan-ranges.cjs.map +1 -1
  847. package/dist/util/plan-ranges.js +48 -24
  848. package/dist/util/plan-ranges.js.map +1 -1
  849. package/dist/util/sha1.cjs +27 -0
  850. package/dist/util/sha1.cjs.map +1 -0
  851. package/dist/util/sha1.d.cts +17 -0
  852. package/dist/util/sha1.d.cts.map +1 -0
  853. package/dist/util/sha1.d.ts +17 -0
  854. package/dist/util/sha1.d.ts.map +1 -0
  855. package/dist/util/sha1.js +26 -0
  856. package/dist/util/sha1.js.map +1 -0
  857. package/dist/util/text-codec.cjs +29 -5
  858. package/dist/util/text-codec.cjs.map +1 -1
  859. package/dist/util/text-codec.js +30 -7
  860. package/dist/util/text-codec.js.map +1 -1
  861. package/dist/util/to-error.cjs +18 -4
  862. package/dist/util/to-error.cjs.map +1 -1
  863. package/dist/util/to-error.js +19 -5
  864. package/dist/util/to-error.js.map +1 -1
  865. package/dist/version.cjs +17 -5
  866. package/dist/version.cjs.map +1 -1
  867. package/dist/version.d.cts +3 -3
  868. package/dist/version.d.ts +3 -3
  869. package/dist/version.js +19 -6
  870. package/dist/version.js.map +1 -1
  871. package/package.json +45 -20
  872. package/dist/auth/index.cjs.map +0 -1
  873. package/dist/auth/index.js.map +0 -1
  874. package/dist/index.cjs.map +0 -1
  875. package/dist/index.js.map +0 -1
  876. package/dist/notifications/index.cjs.map +0 -1
  877. package/dist/notifications/index.js.map +0 -1
  878. package/dist/package.json.cjs +0 -9
  879. package/dist/package.json.cjs.map +0 -1
  880. package/dist/package.json.js +0 -9
  881. package/dist/package.json.js.map +0 -1
  882. package/dist/streams/index.cjs.map +0 -1
  883. package/dist/streams/index.js.map +0 -1
  884. package/dist/sync/index.cjs.map +0 -1
  885. package/dist/sync/index.js.map +0 -1
@@ -1,4 +1,28 @@
1
1
  import { AccountInfo } from '../auth/account-info.js';
2
+ /**
3
+ * Trusted server-side token for intentionally allowing active-content S3 presign options.
4
+ *
5
+ * Plain objects and JSON payloads cannot satisfy the runtime identity check
6
+ * for this token. Pass this exported value only from trusted application code
7
+ * after applying your own content and response-header policy.
8
+ */
9
+ export interface TrustedUnsafeS3PresignOptIn {
10
+ /**
11
+ * Internal marker used only by the runtime identity check.
12
+ *
13
+ * @internal
14
+ */
15
+ readonly __trustedUnsafeS3PresignOptIn: 'trustedUnsafeS3PresignOptIn';
16
+ }
17
+ /**
18
+ * Server-side opt-in token for unsafe S3 presign options.
19
+ *
20
+ * Use this token as the value for `allowBrowserExecutableContentType`,
21
+ * `allowBrowserExecutableResponseContentType`, or
22
+ * `allowInlineResponseContentDisposition` only when active content or inline
23
+ * rendering from the storage origin is intentional and trusted.
24
+ */
25
+ export declare const trustedUnsafeS3PresignOptIn: TrustedUnsafeS3PresignOptIn;
2
26
  /**
3
27
  * Configuration for deriving S3-compatible client settings from B2 auth state.
4
28
  *
@@ -38,10 +62,126 @@ export interface S3ClientConfig {
38
62
  /** Always `true` for B2, which requires path-style bucket addressing. */
39
63
  readonly forcePathStyle: boolean;
40
64
  }
65
+ /** Common options for S3-compatible presigned object URLs. */
66
+ export interface S3PresignObjectUrlOptions extends B2S3Config {
67
+ /** Bucket containing the object. */
68
+ readonly bucketName: string;
69
+ /**
70
+ * Object key / B2 file name to sign. Keys with path segments exactly `.`
71
+ * or `..` cannot be presigned safely because common URL parsers normalize
72
+ * them before sending the request.
73
+ */
74
+ readonly fileName: string;
75
+ /**
76
+ * URL validity duration in seconds. Defaults to 3600. Must be an integer
77
+ * from 1 to 604800 (7 days), the AWS Signature Version 4 presign maximum.
78
+ * A presigned URL is a bearer credential for the signed operation; keep
79
+ * this as short as the calling workflow allows.
80
+ */
81
+ readonly expiresIn?: number;
82
+ }
83
+ /** Options for {@link presignS3GetObjectUrl}. */
84
+ export interface PresignS3GetObjectUrlOptions extends S3PresignObjectUrlOptions {
85
+ /** Optional S3 version ID to include in the signed GET request. */
86
+ readonly versionId?: string;
87
+ /**
88
+ * Override the response Cache-Control header. Response overrides control
89
+ * headers served from the storage origin; do not populate them from
90
+ * untrusted input without an allow-list.
91
+ */
92
+ readonly responseCacheControl?: string;
93
+ /**
94
+ * Override the response Content-Disposition header. Prefer a safe
95
+ * attachment disposition when this value can be influenced by users. The
96
+ * helper rejects `inline` response dispositions by default because they can
97
+ * make stored bytes render from the storage origin.
98
+ */
99
+ readonly responseContentDisposition?: string;
100
+ /**
101
+ * Permit an `inline` response Content-Disposition override. Set only when
102
+ * the object bytes and response headers are trusted to render from the
103
+ * storage origin. Pass {@link trustedUnsafeS3PresignOptIn}; plain booleans
104
+ * from request JSON are intentionally ignored by the runtime guard.
105
+ */
106
+ readonly allowInlineResponseContentDisposition?: TrustedUnsafeS3PresignOptIn;
107
+ /**
108
+ * Override the response Content-Encoding header. Do not populate this from
109
+ * untrusted input without an allow-list.
110
+ */
111
+ readonly responseContentEncoding?: string;
112
+ /**
113
+ * Override the response Content-Language header. Do not populate this from
114
+ * untrusted input without an allow-list.
115
+ */
116
+ readonly responseContentLanguage?: string;
117
+ /**
118
+ * Override the response Content-Type header. If attacker-controlled, this
119
+ * can make stored bytes render as active content from the storage origin.
120
+ * Restrict it to known-safe values before signing. The helper's built-in
121
+ * rejection of known browser-executable and sniffable XML/JavaScript media
122
+ * types is best-effort and does not replace an application allow-list.
123
+ */
124
+ readonly responseContentType?: string;
125
+ /**
126
+ * Permit browser-executable `responseContentType` overrides such as
127
+ * `text/html`, JavaScript, SVG, or XML media types. Leave this unset unless
128
+ * the served object is intentionally meant to render active content from the
129
+ * storage origin. Pass {@link trustedUnsafeS3PresignOptIn}; plain booleans
130
+ * from request JSON are intentionally ignored by the runtime guard.
131
+ */
132
+ readonly allowBrowserExecutableResponseContentType?: TrustedUnsafeS3PresignOptIn;
133
+ /**
134
+ * Override the response Expires header. Do not populate this from
135
+ * untrusted input without an allow-list.
136
+ */
137
+ readonly responseExpires?: Date;
138
+ }
139
+ /** Options for {@link presignS3PutObjectUrl}. */
140
+ export interface PresignS3PutObjectUrlOptions extends S3PresignObjectUrlOptions {
141
+ /**
142
+ * Optional content type for the uploaded object. When supplied, the generated
143
+ * URL signs the Content-Type header, so upload clients must send the same
144
+ * value. Browser-executable and sniffable XML/JavaScript types are rejected
145
+ * by default as a best-effort guard; callers accepting untrusted uploads
146
+ * should still enforce their own allow-list.
147
+ */
148
+ readonly contentType?: string;
149
+ /**
150
+ * Permit browser-executable `contentType` values such as `text/html`,
151
+ * JavaScript, SVG, or XML media types. Leave this unset unless the uploaded
152
+ * object is intentionally meant to render active content from the storage
153
+ * origin. Pass {@link trustedUnsafeS3PresignOptIn}; plain booleans from
154
+ * request JSON are intentionally ignored by the runtime guard.
155
+ */
156
+ readonly allowBrowserExecutableContentType?: TrustedUnsafeS3PresignOptIn;
157
+ /**
158
+ * Optional content length. Must be a non-negative safe integer. When
159
+ * supplied, the generated URL signs the Content-Length header, so upload
160
+ * clients must send the same value.
161
+ */
162
+ readonly contentLength?: number;
163
+ /**
164
+ * Optional user metadata to attach to the object. The generated URL signs
165
+ * matching `x-amz-meta-*` headers, so upload clients must send the same values.
166
+ * Pass bare metadata keys; the helper adds the `x-amz-meta-` prefix. Metadata
167
+ * keys must be valid HTTP header tokens and must not differ only by case.
168
+ */
169
+ readonly metadata?: Record<string, string>;
170
+ }
171
+ /**
172
+ * Options for {@link presignPutObjectUrl}.
173
+ *
174
+ * @deprecated Use {@link PresignS3PutObjectUrlOptions}.
175
+ */
176
+ export type PresignPutObjectUrlOptions = PresignS3PutObjectUrlOptions;
41
177
  /**
42
178
  * Derives an S3-compatible client configuration from B2 authorization state.
43
179
  * Pass the result to `new S3Client(config)` from `@aws-sdk/client-s3`.
44
180
  *
181
+ * Non-standard, custom, or proxied endpoints require an explicit `region`; set
182
+ * it before deploying this SDK to those endpoints. The SDK no longer falls back
183
+ * to `us-west-004` because that can mis-sign requests.
184
+ *
45
185
  * @param config - B2 auth state, application key credentials, and optional region override.
46
186
  *
47
187
  * @returns Configuration ready for the AWS S3 SDK.
@@ -59,16 +199,104 @@ export interface S3ClientConfig {
59
199
  */
60
200
  export declare function createS3ClientConfig(config: B2S3Config): S3ClientConfig;
61
201
  /**
62
- * Constructs a presigned download URL using B2's native download authorization.
63
- * This is not a standard S3 presigned URL but works for B2 download endpoints.
202
+ * Extracts the B2 S3 region from a standard B2 S3 endpoint.
64
203
  *
65
- * @param downloadUrl - The B2 download URL from authorization (e.g., `https://f004.backblazeb2.com`).
204
+ * Custom endpoints cannot be inferred safely. Pass `region` explicitly to
205
+ * {@link createS3ClientConfig}, {@link presignS3GetObjectUrl}, or
206
+ * {@link presignS3PutObjectUrl} when this returns `null`.
207
+ *
208
+ * @param endpoint - The S3 endpoint URL.
209
+ *
210
+ * @returns The derived region, or `null` when the endpoint is not a standard B2 S3 URL.
211
+ */
212
+ export declare function deriveS3RegionFromEndpoint(endpoint: string): string | null;
213
+ /**
214
+ * Generates an AWS Signature Version 4 presigned GET URL for B2's S3-compatible API.
215
+ *
216
+ * This helper signs internally and does not pass the B2 application key to
217
+ * runtime peer dependencies. Response override options are signed into the URL
218
+ * and control headers served from the storage origin; do not populate them from
219
+ * untrusted input without an allow-list. Presign success does not prove the URL
220
+ * will be accepted later; keep URL-generating hosts clock-synchronized and
221
+ * check clock skew when downstream use returns SigV4 403 errors.
222
+ *
223
+ * @param options - B2 auth state, S3 credentials, target object, and signing options.
224
+ *
225
+ * @returns The presigned URL string.
226
+ */
227
+ export declare function presignS3GetObjectUrl(options: PresignS3GetObjectUrlOptions): Promise<string>;
228
+ /**
229
+ * Returns a B2-native download-authorization URL, not an S3 presigned URL.
230
+ *
231
+ * This deprecated helper preserves the legacy positional output contract where
232
+ * the whole file name is encoded as one URL component, including `/` as `%2F`.
233
+ * It keeps the legacy string-building contract for callers that relied on
234
+ * custom/local download URLs or permissive inputs. Use
235
+ * {@link createNativeDownloadAuthorizationUrl} for strict validation.
236
+ *
237
+ * @param downloadUrl - The B2 download URL from authorization.
66
238
  * @param bucketName - The bucket containing the file.
67
239
  * @param fileName - The file name (path) to download.
68
240
  * @param authorizationToken - A download authorization token from `b2_get_download_authorization`.
69
- * @param validDurationInSeconds - URL validity duration in seconds. Defaults to 3600 (1 hour).
241
+ * @param validDurationInSeconds - Compatibility-only value for the non-authoritative `expires` query.
70
242
  *
71
- * @returns The presigned download URL string.
243
+ * @returns The B2 native download-authorization URL string.
244
+ *
245
+ * @deprecated Use {@link createNativeDownloadAuthorizationUrl} for B2 native
246
+ * download-token URLs, or {@link presignS3GetObjectUrl} for real S3-compatible
247
+ * AWS Signature Version 4 presigned GET URLs.
72
248
  */
73
249
  export declare function presignGetObjectUrl(downloadUrl: string, bucketName: string, fileName: string, authorizationToken: string, validDurationInSeconds?: number): string;
250
+ /**
251
+ * Generates an AWS Signature Version 4 presigned PUT URL for browser or
252
+ * third-party uploads through B2's S3-compatible API.
253
+ *
254
+ * This helper signs internally and does not pass the B2 application key to
255
+ * runtime peer dependencies. A presigned PUT URL is a replayable bearer
256
+ * credential for writing one key until expiry. Retried PUTs can create
257
+ * duplicate B2 file versions when a response is lost after B2 stored the object.
258
+ * Use unique keys or reconcile uploaded file IDs/checksums, and configure
259
+ * lifecycle/version cleanup where duplicate versions must be removed
260
+ * automatically. If `contentType` and `contentLength` are omitted, the holder
261
+ * can choose any content type, including browser-executable types, and any size
262
+ * accepted by B2; bind both values before handing URLs to untrusted uploaders
263
+ * to limit financial-DoS and content-type smuggling risk.
264
+ *
265
+ * @param options - B2 auth state, S3 credentials, target object, and signing options.
266
+ *
267
+ * @returns The presigned URL string.
268
+ */
269
+ export declare function presignS3PutObjectUrl(options: PresignS3PutObjectUrlOptions): Promise<string>;
270
+ /**
271
+ * Generates an AWS Signature Version 4 presigned PUT URL for B2's
272
+ * S3-compatible API.
273
+ *
274
+ * @param options - B2 auth state, S3 credentials, target object, and signing options.
275
+ *
276
+ * @returns The presigned URL string.
277
+ *
278
+ * @deprecated Use {@link presignS3PutObjectUrl}; this alias is retained for
279
+ * pre-release callers that adopted the shorter name.
280
+ */
281
+ export declare function presignPutObjectUrl(options: PresignPutObjectUrlOptions): Promise<string>;
282
+ /**
283
+ * Constructs a B2-native download URL using a token from `b2_get_download_authorization`.
284
+ * This is not an S3 presigned URL.
285
+ *
286
+ * The token lifetime is fixed when `b2_get_download_authorization` creates the
287
+ * token. `validDurationInSeconds` is retained only for compatibility with the
288
+ * legacy `presignGetObjectUrl` helper's decorative `expires` query parameter;
289
+ * changing it here does not shorten or extend access.
290
+ * Because the returned URL carries a bearer token, `downloadUrl` must be an
291
+ * HTTPS Backblaze download origin without userinfo, path, query, or fragment.
292
+ *
293
+ * @param downloadUrl - The B2 download URL from authorization (e.g., `https://f004.backblazeb2.com`).
294
+ * @param bucketName - The bucket containing the file.
295
+ * @param fileName - The file name (path) to download.
296
+ * @param authorizationToken - A download authorization token from `b2_get_download_authorization`.
297
+ * @param validDurationInSeconds - Compatibility-only value for the non-authoritative `expires` query.
298
+ *
299
+ * @returns The B2 native download-authorization URL string, not an S3 presigned URL.
300
+ */
301
+ export declare function createNativeDownloadAuthorizationUrl(downloadUrl: string, bucketName: string, fileName: string, authorizationToken: string, validDurationInSeconds?: number): string;
74
302
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/s3/index.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,qEAAqE;IACrE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE;QACpB,+DAA+D;QAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,yEAAyE;QACzE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;KACjC,CAAA;IACD,yEAAyE;IACzE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAcvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,MAAM,EAC1B,sBAAsB,SAAO,GAC5B,MAAM,CAGR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/s3/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAsC1D;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,6BAA6B,EAAE,6BAA6B,CAAA;CACtE;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,2BACR,CAAA;AAElC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,qEAAqE;IACrE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE;QACpB,+DAA+D;QAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,yEAAyE;QACzE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;KACjC,CAAA;IACD,yEAAyE;IACzE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;CACjC;AAED,8DAA8D;AAC9D,MAAM,WAAW,yBAA0B,SAAQ,UAAU;IAC3D,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,iDAAiD;AACjD,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;IAC7E,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAA;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,qCAAqC,CAAC,EAAE,2BAA2B,CAAA;IAC5E;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IACzC;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,yCAAyC,CAAC,EAAE,2BAA2B,CAAA;IAChF;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAChC;AAED,iDAAiD;AACjD,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;IAC7E;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,iCAAiC,CAAC,EAAE,2BAA2B,CAAA;IACxE;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3C;AAED;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,4BAA4B,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAkBvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU1E;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,MAAM,EAC1B,sBAAsB,CAAC,EAAE,MAAM,GAC9B,MAAM,CAKR;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9F;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,MAAM,EAC1B,sBAAsB,SAAyC,GAC9D,MAAM,CAUR"}
@@ -1,4 +1,28 @@
1
1
  import { AccountInfo } from '../auth/account-info.js';
2
+ /**
3
+ * Trusted server-side token for intentionally allowing active-content S3 presign options.
4
+ *
5
+ * Plain objects and JSON payloads cannot satisfy the runtime identity check
6
+ * for this token. Pass this exported value only from trusted application code
7
+ * after applying your own content and response-header policy.
8
+ */
9
+ export interface TrustedUnsafeS3PresignOptIn {
10
+ /**
11
+ * Internal marker used only by the runtime identity check.
12
+ *
13
+ * @internal
14
+ */
15
+ readonly __trustedUnsafeS3PresignOptIn: 'trustedUnsafeS3PresignOptIn';
16
+ }
17
+ /**
18
+ * Server-side opt-in token for unsafe S3 presign options.
19
+ *
20
+ * Use this token as the value for `allowBrowserExecutableContentType`,
21
+ * `allowBrowserExecutableResponseContentType`, or
22
+ * `allowInlineResponseContentDisposition` only when active content or inline
23
+ * rendering from the storage origin is intentional and trusted.
24
+ */
25
+ export declare const trustedUnsafeS3PresignOptIn: TrustedUnsafeS3PresignOptIn;
2
26
  /**
3
27
  * Configuration for deriving S3-compatible client settings from B2 auth state.
4
28
  *
@@ -38,10 +62,126 @@ export interface S3ClientConfig {
38
62
  /** Always `true` for B2, which requires path-style bucket addressing. */
39
63
  readonly forcePathStyle: boolean;
40
64
  }
65
+ /** Common options for S3-compatible presigned object URLs. */
66
+ export interface S3PresignObjectUrlOptions extends B2S3Config {
67
+ /** Bucket containing the object. */
68
+ readonly bucketName: string;
69
+ /**
70
+ * Object key / B2 file name to sign. Keys with path segments exactly `.`
71
+ * or `..` cannot be presigned safely because common URL parsers normalize
72
+ * them before sending the request.
73
+ */
74
+ readonly fileName: string;
75
+ /**
76
+ * URL validity duration in seconds. Defaults to 3600. Must be an integer
77
+ * from 1 to 604800 (7 days), the AWS Signature Version 4 presign maximum.
78
+ * A presigned URL is a bearer credential for the signed operation; keep
79
+ * this as short as the calling workflow allows.
80
+ */
81
+ readonly expiresIn?: number;
82
+ }
83
+ /** Options for {@link presignS3GetObjectUrl}. */
84
+ export interface PresignS3GetObjectUrlOptions extends S3PresignObjectUrlOptions {
85
+ /** Optional S3 version ID to include in the signed GET request. */
86
+ readonly versionId?: string;
87
+ /**
88
+ * Override the response Cache-Control header. Response overrides control
89
+ * headers served from the storage origin; do not populate them from
90
+ * untrusted input without an allow-list.
91
+ */
92
+ readonly responseCacheControl?: string;
93
+ /**
94
+ * Override the response Content-Disposition header. Prefer a safe
95
+ * attachment disposition when this value can be influenced by users. The
96
+ * helper rejects `inline` response dispositions by default because they can
97
+ * make stored bytes render from the storage origin.
98
+ */
99
+ readonly responseContentDisposition?: string;
100
+ /**
101
+ * Permit an `inline` response Content-Disposition override. Set only when
102
+ * the object bytes and response headers are trusted to render from the
103
+ * storage origin. Pass {@link trustedUnsafeS3PresignOptIn}; plain booleans
104
+ * from request JSON are intentionally ignored by the runtime guard.
105
+ */
106
+ readonly allowInlineResponseContentDisposition?: TrustedUnsafeS3PresignOptIn;
107
+ /**
108
+ * Override the response Content-Encoding header. Do not populate this from
109
+ * untrusted input without an allow-list.
110
+ */
111
+ readonly responseContentEncoding?: string;
112
+ /**
113
+ * Override the response Content-Language header. Do not populate this from
114
+ * untrusted input without an allow-list.
115
+ */
116
+ readonly responseContentLanguage?: string;
117
+ /**
118
+ * Override the response Content-Type header. If attacker-controlled, this
119
+ * can make stored bytes render as active content from the storage origin.
120
+ * Restrict it to known-safe values before signing. The helper's built-in
121
+ * rejection of known browser-executable and sniffable XML/JavaScript media
122
+ * types is best-effort and does not replace an application allow-list.
123
+ */
124
+ readonly responseContentType?: string;
125
+ /**
126
+ * Permit browser-executable `responseContentType` overrides such as
127
+ * `text/html`, JavaScript, SVG, or XML media types. Leave this unset unless
128
+ * the served object is intentionally meant to render active content from the
129
+ * storage origin. Pass {@link trustedUnsafeS3PresignOptIn}; plain booleans
130
+ * from request JSON are intentionally ignored by the runtime guard.
131
+ */
132
+ readonly allowBrowserExecutableResponseContentType?: TrustedUnsafeS3PresignOptIn;
133
+ /**
134
+ * Override the response Expires header. Do not populate this from
135
+ * untrusted input without an allow-list.
136
+ */
137
+ readonly responseExpires?: Date;
138
+ }
139
+ /** Options for {@link presignS3PutObjectUrl}. */
140
+ export interface PresignS3PutObjectUrlOptions extends S3PresignObjectUrlOptions {
141
+ /**
142
+ * Optional content type for the uploaded object. When supplied, the generated
143
+ * URL signs the Content-Type header, so upload clients must send the same
144
+ * value. Browser-executable and sniffable XML/JavaScript types are rejected
145
+ * by default as a best-effort guard; callers accepting untrusted uploads
146
+ * should still enforce their own allow-list.
147
+ */
148
+ readonly contentType?: string;
149
+ /**
150
+ * Permit browser-executable `contentType` values such as `text/html`,
151
+ * JavaScript, SVG, or XML media types. Leave this unset unless the uploaded
152
+ * object is intentionally meant to render active content from the storage
153
+ * origin. Pass {@link trustedUnsafeS3PresignOptIn}; plain booleans from
154
+ * request JSON are intentionally ignored by the runtime guard.
155
+ */
156
+ readonly allowBrowserExecutableContentType?: TrustedUnsafeS3PresignOptIn;
157
+ /**
158
+ * Optional content length. Must be a non-negative safe integer. When
159
+ * supplied, the generated URL signs the Content-Length header, so upload
160
+ * clients must send the same value.
161
+ */
162
+ readonly contentLength?: number;
163
+ /**
164
+ * Optional user metadata to attach to the object. The generated URL signs
165
+ * matching `x-amz-meta-*` headers, so upload clients must send the same values.
166
+ * Pass bare metadata keys; the helper adds the `x-amz-meta-` prefix. Metadata
167
+ * keys must be valid HTTP header tokens and must not differ only by case.
168
+ */
169
+ readonly metadata?: Record<string, string>;
170
+ }
171
+ /**
172
+ * Options for {@link presignPutObjectUrl}.
173
+ *
174
+ * @deprecated Use {@link PresignS3PutObjectUrlOptions}.
175
+ */
176
+ export type PresignPutObjectUrlOptions = PresignS3PutObjectUrlOptions;
41
177
  /**
42
178
  * Derives an S3-compatible client configuration from B2 authorization state.
43
179
  * Pass the result to `new S3Client(config)` from `@aws-sdk/client-s3`.
44
180
  *
181
+ * Non-standard, custom, or proxied endpoints require an explicit `region`; set
182
+ * it before deploying this SDK to those endpoints. The SDK no longer falls back
183
+ * to `us-west-004` because that can mis-sign requests.
184
+ *
45
185
  * @param config - B2 auth state, application key credentials, and optional region override.
46
186
  *
47
187
  * @returns Configuration ready for the AWS S3 SDK.
@@ -59,16 +199,104 @@ export interface S3ClientConfig {
59
199
  */
60
200
  export declare function createS3ClientConfig(config: B2S3Config): S3ClientConfig;
61
201
  /**
62
- * Constructs a presigned download URL using B2's native download authorization.
63
- * This is not a standard S3 presigned URL but works for B2 download endpoints.
202
+ * Extracts the B2 S3 region from a standard B2 S3 endpoint.
64
203
  *
65
- * @param downloadUrl - The B2 download URL from authorization (e.g., `https://f004.backblazeb2.com`).
204
+ * Custom endpoints cannot be inferred safely. Pass `region` explicitly to
205
+ * {@link createS3ClientConfig}, {@link presignS3GetObjectUrl}, or
206
+ * {@link presignS3PutObjectUrl} when this returns `null`.
207
+ *
208
+ * @param endpoint - The S3 endpoint URL.
209
+ *
210
+ * @returns The derived region, or `null` when the endpoint is not a standard B2 S3 URL.
211
+ */
212
+ export declare function deriveS3RegionFromEndpoint(endpoint: string): string | null;
213
+ /**
214
+ * Generates an AWS Signature Version 4 presigned GET URL for B2's S3-compatible API.
215
+ *
216
+ * This helper signs internally and does not pass the B2 application key to
217
+ * runtime peer dependencies. Response override options are signed into the URL
218
+ * and control headers served from the storage origin; do not populate them from
219
+ * untrusted input without an allow-list. Presign success does not prove the URL
220
+ * will be accepted later; keep URL-generating hosts clock-synchronized and
221
+ * check clock skew when downstream use returns SigV4 403 errors.
222
+ *
223
+ * @param options - B2 auth state, S3 credentials, target object, and signing options.
224
+ *
225
+ * @returns The presigned URL string.
226
+ */
227
+ export declare function presignS3GetObjectUrl(options: PresignS3GetObjectUrlOptions): Promise<string>;
228
+ /**
229
+ * Returns a B2-native download-authorization URL, not an S3 presigned URL.
230
+ *
231
+ * This deprecated helper preserves the legacy positional output contract where
232
+ * the whole file name is encoded as one URL component, including `/` as `%2F`.
233
+ * It keeps the legacy string-building contract for callers that relied on
234
+ * custom/local download URLs or permissive inputs. Use
235
+ * {@link createNativeDownloadAuthorizationUrl} for strict validation.
236
+ *
237
+ * @param downloadUrl - The B2 download URL from authorization.
66
238
  * @param bucketName - The bucket containing the file.
67
239
  * @param fileName - The file name (path) to download.
68
240
  * @param authorizationToken - A download authorization token from `b2_get_download_authorization`.
69
- * @param validDurationInSeconds - URL validity duration in seconds. Defaults to 3600 (1 hour).
241
+ * @param validDurationInSeconds - Compatibility-only value for the non-authoritative `expires` query.
70
242
  *
71
- * @returns The presigned download URL string.
243
+ * @returns The B2 native download-authorization URL string.
244
+ *
245
+ * @deprecated Use {@link createNativeDownloadAuthorizationUrl} for B2 native
246
+ * download-token URLs, or {@link presignS3GetObjectUrl} for real S3-compatible
247
+ * AWS Signature Version 4 presigned GET URLs.
72
248
  */
73
249
  export declare function presignGetObjectUrl(downloadUrl: string, bucketName: string, fileName: string, authorizationToken: string, validDurationInSeconds?: number): string;
250
+ /**
251
+ * Generates an AWS Signature Version 4 presigned PUT URL for browser or
252
+ * third-party uploads through B2's S3-compatible API.
253
+ *
254
+ * This helper signs internally and does not pass the B2 application key to
255
+ * runtime peer dependencies. A presigned PUT URL is a replayable bearer
256
+ * credential for writing one key until expiry. Retried PUTs can create
257
+ * duplicate B2 file versions when a response is lost after B2 stored the object.
258
+ * Use unique keys or reconcile uploaded file IDs/checksums, and configure
259
+ * lifecycle/version cleanup where duplicate versions must be removed
260
+ * automatically. If `contentType` and `contentLength` are omitted, the holder
261
+ * can choose any content type, including browser-executable types, and any size
262
+ * accepted by B2; bind both values before handing URLs to untrusted uploaders
263
+ * to limit financial-DoS and content-type smuggling risk.
264
+ *
265
+ * @param options - B2 auth state, S3 credentials, target object, and signing options.
266
+ *
267
+ * @returns The presigned URL string.
268
+ */
269
+ export declare function presignS3PutObjectUrl(options: PresignS3PutObjectUrlOptions): Promise<string>;
270
+ /**
271
+ * Generates an AWS Signature Version 4 presigned PUT URL for B2's
272
+ * S3-compatible API.
273
+ *
274
+ * @param options - B2 auth state, S3 credentials, target object, and signing options.
275
+ *
276
+ * @returns The presigned URL string.
277
+ *
278
+ * @deprecated Use {@link presignS3PutObjectUrl}; this alias is retained for
279
+ * pre-release callers that adopted the shorter name.
280
+ */
281
+ export declare function presignPutObjectUrl(options: PresignPutObjectUrlOptions): Promise<string>;
282
+ /**
283
+ * Constructs a B2-native download URL using a token from `b2_get_download_authorization`.
284
+ * This is not an S3 presigned URL.
285
+ *
286
+ * The token lifetime is fixed when `b2_get_download_authorization` creates the
287
+ * token. `validDurationInSeconds` is retained only for compatibility with the
288
+ * legacy `presignGetObjectUrl` helper's decorative `expires` query parameter;
289
+ * changing it here does not shorten or extend access.
290
+ * Because the returned URL carries a bearer token, `downloadUrl` must be an
291
+ * HTTPS Backblaze download origin without userinfo, path, query, or fragment.
292
+ *
293
+ * @param downloadUrl - The B2 download URL from authorization (e.g., `https://f004.backblazeb2.com`).
294
+ * @param bucketName - The bucket containing the file.
295
+ * @param fileName - The file name (path) to download.
296
+ * @param authorizationToken - A download authorization token from `b2_get_download_authorization`.
297
+ * @param validDurationInSeconds - Compatibility-only value for the non-authoritative `expires` query.
298
+ *
299
+ * @returns The B2 native download-authorization URL string, not an S3 presigned URL.
300
+ */
301
+ export declare function createNativeDownloadAuthorizationUrl(downloadUrl: string, bucketName: string, fileName: string, authorizationToken: string, validDurationInSeconds?: number): string;
74
302
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/s3/index.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,qEAAqE;IACrE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE;QACpB,+DAA+D;QAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,yEAAyE;QACzE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;KACjC,CAAA;IACD,yEAAyE;IACzE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAcvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,EAAE,MAAM,EAC1B,sBAAsB,SAAO,GAC5B,MAAM,CAGR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/s3/index.js"],"names":[],"mappings":"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"}