@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,53 +1,68 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const auth = require("../types/auth.cjs");
4
- const ENDPOINT_CAPABILITIES = {
5
- // Auth endpoint takes credentials, not an auth token — no cap check.
6
- b2_authorize_account: [],
7
- // Bucket management.
8
- b2_create_bucket: [auth.Capability.WriteBuckets],
9
- b2_delete_bucket: [auth.Capability.DeleteBuckets],
10
- b2_update_bucket: [auth.Capability.WriteBuckets],
11
- b2_list_buckets: [auth.Capability.ListBuckets],
12
- // File upload + URL acquisition.
13
- b2_get_upload_url: [auth.Capability.WriteFiles],
14
- b2_get_upload_part_url: [auth.Capability.WriteFiles],
15
- b2_upload_file: [auth.Capability.WriteFiles],
16
- b2_upload_part: [auth.Capability.WriteFiles],
17
- b2_start_large_file: [auth.Capability.WriteFiles],
18
- b2_finish_large_file: [auth.Capability.WriteFiles],
19
- b2_cancel_large_file: [auth.Capability.WriteFiles],
20
- b2_copy_file: [auth.Capability.WriteFiles],
21
- b2_copy_part: [auth.Capability.WriteFiles],
22
- // File listing + reading.
23
- b2_list_file_names: [auth.Capability.ListFiles],
24
- b2_list_file_versions: [auth.Capability.ListFiles],
25
- b2_list_unfinished_large_files: [auth.Capability.ListFiles],
26
- b2_list_parts: [auth.Capability.ListFiles],
27
- b2_get_file_info: [auth.Capability.ReadFiles],
28
- b2_download_file_by_id: [auth.Capability.ReadFiles],
29
- b2_download_file_by_name: [auth.Capability.ReadFiles],
30
- // File mutations.
31
- b2_hide_file: [auth.Capability.WriteFiles],
32
- b2_delete_file_version: [auth.Capability.DeleteFiles],
33
- // Object lock + legal hold.
34
- b2_update_file_retention: [auth.Capability.WriteFileRetentions],
35
- b2_update_file_legal_hold: [auth.Capability.WriteFileLegalHolds],
36
- // Application keys.
37
- b2_create_key: [auth.Capability.WriteKeys],
38
- b2_list_keys: [auth.Capability.ListKeys],
39
- b2_delete_key: [auth.Capability.DeleteKeys],
40
- // Download authorisation.
41
- b2_get_download_authorization: [auth.Capability.ShareFiles],
42
- // Notification rules.
43
- b2_get_bucket_notification_rules: [auth.Capability.ReadBucketNotifications],
44
- b2_set_bucket_notification_rules: [auth.Capability.WriteBucketNotifications]
1
+ const require_auth = require("../types/auth.cjs");
2
+ //#region src/simulator/capabilities.ts
3
+ /**
4
+ * Capability requirement table mapping each B2 native API endpoint to
5
+ * the capability (or capabilities usually one) the caller's
6
+ * application key must hold to invoke it. Used by `B2Simulator` when
7
+ * `strictAuth: true` is set, so test code that exercises a restricted
8
+ * key sees the same `403 unauthorized` response real B2 would return.
9
+ *
10
+ * Source: https://www.backblaze.com/apidocs (each endpoint page lists
11
+ * the required capability in its description).
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+ /** Endpoint → required capability(s). An empty array means "no capability check". */
16
+ var ENDPOINT_CAPABILITIES = {
17
+ b2_authorize_account: [],
18
+ b2_create_bucket: [require_auth.Capability.WriteBuckets],
19
+ b2_delete_bucket: [require_auth.Capability.DeleteBuckets],
20
+ b2_update_bucket: [require_auth.Capability.WriteBuckets],
21
+ b2_list_buckets: [require_auth.Capability.ListBuckets],
22
+ b2_get_upload_url: [require_auth.Capability.WriteFiles],
23
+ b2_get_upload_part_url: [require_auth.Capability.WriteFiles],
24
+ b2_upload_file: [require_auth.Capability.WriteFiles],
25
+ b2_upload_part: [require_auth.Capability.WriteFiles],
26
+ b2_start_large_file: [require_auth.Capability.WriteFiles],
27
+ b2_finish_large_file: [require_auth.Capability.WriteFiles],
28
+ b2_cancel_large_file: [require_auth.Capability.WriteFiles],
29
+ b2_copy_file: [require_auth.Capability.WriteFiles],
30
+ b2_copy_part: [require_auth.Capability.WriteFiles],
31
+ b2_list_file_names: [require_auth.Capability.ListFiles],
32
+ b2_list_file_versions: [require_auth.Capability.ListFiles],
33
+ b2_list_unfinished_large_files: [require_auth.Capability.ListFiles],
34
+ b2_list_parts: [require_auth.Capability.ListFiles],
35
+ b2_get_file_info: [require_auth.Capability.ReadFiles],
36
+ b2_download_file_by_id: [require_auth.Capability.ReadFiles],
37
+ b2_download_file_by_name: [require_auth.Capability.ReadFiles],
38
+ b2_hide_file: [require_auth.Capability.WriteFiles],
39
+ b2_delete_file_version: [require_auth.Capability.DeleteFiles],
40
+ b2_update_file_retention: [require_auth.Capability.WriteFileRetentions],
41
+ b2_update_file_legal_hold: [require_auth.Capability.WriteFileLegalHolds],
42
+ b2_create_key: [require_auth.Capability.WriteKeys],
43
+ b2_list_keys: [require_auth.Capability.ListKeys],
44
+ b2_delete_key: [require_auth.Capability.DeleteKeys],
45
+ b2_get_download_authorization: [require_auth.Capability.ShareFiles],
46
+ b2_get_bucket_notification_rules: [require_auth.Capability.ReadBucketNotifications],
47
+ b2_set_bucket_notification_rules: [require_auth.Capability.WriteBucketNotifications]
45
48
  };
49
+ /**
50
+ * Find which capabilities are missing from the caller's grant set
51
+ * relative to the endpoint requirement.
52
+ *
53
+ * @param endpoint - B2 endpoint name (e.g. `'b2_upload_file'`).
54
+ * @param granted - Capabilities the caller's key has.
55
+ *
56
+ * @returns The subset of required capabilities that the caller is
57
+ * missing. Empty array means "request authorized".
58
+ */
46
59
  function missingCapabilitiesFor(endpoint, granted) {
47
- const required = ENDPOINT_CAPABILITIES[endpoint] ?? [];
48
- const grantedSet = new Set(granted);
49
- return required.filter((cap) => !grantedSet.has(cap));
60
+ const required = ENDPOINT_CAPABILITIES[endpoint] ?? [];
61
+ const grantedSet = new Set(granted);
62
+ return required.filter((cap) => !grantedSet.has(cap));
50
63
  }
64
+ //#endregion
51
65
  exports.ENDPOINT_CAPABILITIES = ENDPOINT_CAPABILITIES;
52
66
  exports.missingCapabilitiesFor = missingCapabilitiesFor;
53
- //# sourceMappingURL=capabilities.cjs.map
67
+
68
+ //# sourceMappingURL=capabilities.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.cjs","sources":["../../src/simulator/capabilities.ts"],"sourcesContent":["/**\n * Capability requirement table mapping each B2 native API endpoint to\n * the capability (or capabilities — usually one) the caller's\n * application key must hold to invoke it. Used by `B2Simulator` when\n * `strictAuth: true` is set, so test code that exercises a restricted\n * key sees the same `403 unauthorized` response real B2 would return.\n *\n * Source: https://www.backblaze.com/apidocs (each endpoint page lists\n * the required capability in its description).\n *\n * @packageDocumentation\n */\n\nimport { Capability } from '../types/auth.ts'\n\n/** Endpoint → required capability(s). An empty array means \"no capability check\". */\nexport const ENDPOINT_CAPABILITIES: Record<string, readonly Capability[]> = {\n // Auth endpoint takes credentials, not an auth token — no cap check.\n b2_authorize_account: [],\n // Bucket management.\n b2_create_bucket: [Capability.WriteBuckets],\n b2_delete_bucket: [Capability.DeleteBuckets],\n b2_update_bucket: [Capability.WriteBuckets],\n b2_list_buckets: [Capability.ListBuckets],\n // File upload + URL acquisition.\n b2_get_upload_url: [Capability.WriteFiles],\n b2_get_upload_part_url: [Capability.WriteFiles],\n b2_upload_file: [Capability.WriteFiles],\n b2_upload_part: [Capability.WriteFiles],\n b2_start_large_file: [Capability.WriteFiles],\n b2_finish_large_file: [Capability.WriteFiles],\n b2_cancel_large_file: [Capability.WriteFiles],\n b2_copy_file: [Capability.WriteFiles],\n b2_copy_part: [Capability.WriteFiles],\n // File listing + reading.\n b2_list_file_names: [Capability.ListFiles],\n b2_list_file_versions: [Capability.ListFiles],\n b2_list_unfinished_large_files: [Capability.ListFiles],\n b2_list_parts: [Capability.ListFiles],\n b2_get_file_info: [Capability.ReadFiles],\n b2_download_file_by_id: [Capability.ReadFiles],\n b2_download_file_by_name: [Capability.ReadFiles],\n // File mutations.\n b2_hide_file: [Capability.WriteFiles],\n b2_delete_file_version: [Capability.DeleteFiles],\n // Object lock + legal hold.\n b2_update_file_retention: [Capability.WriteFileRetentions],\n b2_update_file_legal_hold: [Capability.WriteFileLegalHolds],\n // Application keys.\n b2_create_key: [Capability.WriteKeys],\n b2_list_keys: [Capability.ListKeys],\n b2_delete_key: [Capability.DeleteKeys],\n // Download authorisation.\n b2_get_download_authorization: [Capability.ShareFiles],\n // Notification rules.\n b2_get_bucket_notification_rules: [Capability.ReadBucketNotifications],\n b2_set_bucket_notification_rules: [Capability.WriteBucketNotifications],\n}\n\n/**\n * Find which capabilities are missing from the caller's grant set\n * relative to the endpoint requirement.\n *\n * @param endpoint - B2 endpoint name (e.g. `'b2_upload_file'`).\n * @param granted - Capabilities the caller's key has.\n *\n * @returns The subset of required capabilities that the caller is\n * missing. Empty array means \"request authorized\".\n */\nexport function missingCapabilitiesFor(\n endpoint: string,\n granted: readonly Capability[],\n): readonly Capability[] {\n const required = ENDPOINT_CAPABILITIES[endpoint] ?? []\n const grantedSet = new Set(granted)\n return required.filter((cap) => !grantedSet.has(cap))\n}\n"],"names":["Capability"],"mappings":";;;AAgBO,MAAM,wBAA+D;AAAA;AAAA,EAE1E,sBAAsB,CAAA;AAAA;AAAA,EAEtB,kBAAkB,CAACA,KAAAA,WAAW,YAAY;AAAA,EAC1C,kBAAkB,CAACA,KAAAA,WAAW,aAAa;AAAA,EAC3C,kBAAkB,CAACA,KAAAA,WAAW,YAAY;AAAA,EAC1C,iBAAiB,CAACA,KAAAA,WAAW,WAAW;AAAA;AAAA,EAExC,mBAAmB,CAACA,KAAAA,WAAW,UAAU;AAAA,EACzC,wBAAwB,CAACA,KAAAA,WAAW,UAAU;AAAA,EAC9C,gBAAgB,CAACA,KAAAA,WAAW,UAAU;AAAA,EACtC,gBAAgB,CAACA,KAAAA,WAAW,UAAU;AAAA,EACtC,qBAAqB,CAACA,KAAAA,WAAW,UAAU;AAAA,EAC3C,sBAAsB,CAACA,KAAAA,WAAW,UAAU;AAAA,EAC5C,sBAAsB,CAACA,KAAAA,WAAW,UAAU;AAAA,EAC5C,cAAc,CAACA,KAAAA,WAAW,UAAU;AAAA,EACpC,cAAc,CAACA,KAAAA,WAAW,UAAU;AAAA;AAAA,EAEpC,oBAAoB,CAACA,KAAAA,WAAW,SAAS;AAAA,EACzC,uBAAuB,CAACA,KAAAA,WAAW,SAAS;AAAA,EAC5C,gCAAgC,CAACA,KAAAA,WAAW,SAAS;AAAA,EACrD,eAAe,CAACA,KAAAA,WAAW,SAAS;AAAA,EACpC,kBAAkB,CAACA,KAAAA,WAAW,SAAS;AAAA,EACvC,wBAAwB,CAACA,KAAAA,WAAW,SAAS;AAAA,EAC7C,0BAA0B,CAACA,KAAAA,WAAW,SAAS;AAAA;AAAA,EAE/C,cAAc,CAACA,KAAAA,WAAW,UAAU;AAAA,EACpC,wBAAwB,CAACA,KAAAA,WAAW,WAAW;AAAA;AAAA,EAE/C,0BAA0B,CAACA,KAAAA,WAAW,mBAAmB;AAAA,EACzD,2BAA2B,CAACA,KAAAA,WAAW,mBAAmB;AAAA;AAAA,EAE1D,eAAe,CAACA,KAAAA,WAAW,SAAS;AAAA,EACpC,cAAc,CAACA,KAAAA,WAAW,QAAQ;AAAA,EAClC,eAAe,CAACA,KAAAA,WAAW,UAAU;AAAA;AAAA,EAErC,+BAA+B,CAACA,KAAAA,WAAW,UAAU;AAAA;AAAA,EAErD,kCAAkC,CAACA,KAAAA,WAAW,uBAAuB;AAAA,EACrE,kCAAkC,CAACA,KAAAA,WAAW,wBAAwB;AACxE;AAYO,SAAS,uBACd,UACA,SACuB;AACvB,QAAM,WAAW,sBAAsB,QAAQ,KAAK,CAAA;AACpD,QAAM,aAAa,IAAI,IAAI,OAAO;AAClC,SAAO,SAAS,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC;AACtD;;;"}
1
+ {"version":3,"file":"capabilities.cjs","names":[],"sources":["../../src/simulator/capabilities.ts"],"sourcesContent":["/**\n * Capability requirement table mapping each B2 native API endpoint to\n * the capability (or capabilities — usually one) the caller's\n * application key must hold to invoke it. Used by `B2Simulator` when\n * `strictAuth: true` is set, so test code that exercises a restricted\n * key sees the same `403 unauthorized` response real B2 would return.\n *\n * Source: https://www.backblaze.com/apidocs (each endpoint page lists\n * the required capability in its description).\n *\n * @packageDocumentation\n */\n\nimport { Capability } from '../types/auth.ts'\n\n/** Endpoint → required capability(s). An empty array means \"no capability check\". */\nexport const ENDPOINT_CAPABILITIES: Record<string, readonly Capability[]> = {\n // Auth endpoint takes credentials, not an auth token — no cap check.\n b2_authorize_account: [],\n // Bucket management.\n b2_create_bucket: [Capability.WriteBuckets],\n b2_delete_bucket: [Capability.DeleteBuckets],\n b2_update_bucket: [Capability.WriteBuckets],\n b2_list_buckets: [Capability.ListBuckets],\n // File upload + URL acquisition.\n b2_get_upload_url: [Capability.WriteFiles],\n b2_get_upload_part_url: [Capability.WriteFiles],\n b2_upload_file: [Capability.WriteFiles],\n b2_upload_part: [Capability.WriteFiles],\n b2_start_large_file: [Capability.WriteFiles],\n b2_finish_large_file: [Capability.WriteFiles],\n b2_cancel_large_file: [Capability.WriteFiles],\n b2_copy_file: [Capability.WriteFiles],\n b2_copy_part: [Capability.WriteFiles],\n // File listing + reading.\n b2_list_file_names: [Capability.ListFiles],\n b2_list_file_versions: [Capability.ListFiles],\n b2_list_unfinished_large_files: [Capability.ListFiles],\n b2_list_parts: [Capability.ListFiles],\n b2_get_file_info: [Capability.ReadFiles],\n b2_download_file_by_id: [Capability.ReadFiles],\n b2_download_file_by_name: [Capability.ReadFiles],\n // File mutations.\n b2_hide_file: [Capability.WriteFiles],\n b2_delete_file_version: [Capability.DeleteFiles],\n // Object lock + legal hold.\n b2_update_file_retention: [Capability.WriteFileRetentions],\n b2_update_file_legal_hold: [Capability.WriteFileLegalHolds],\n // Application keys.\n b2_create_key: [Capability.WriteKeys],\n b2_list_keys: [Capability.ListKeys],\n b2_delete_key: [Capability.DeleteKeys],\n // Download authorisation.\n b2_get_download_authorization: [Capability.ShareFiles],\n // Notification rules.\n b2_get_bucket_notification_rules: [Capability.ReadBucketNotifications],\n b2_set_bucket_notification_rules: [Capability.WriteBucketNotifications],\n}\n\n/**\n * Find which capabilities are missing from the caller's grant set\n * relative to the endpoint requirement.\n *\n * @param endpoint - B2 endpoint name (e.g. `'b2_upload_file'`).\n * @param granted - Capabilities the caller's key has.\n *\n * @returns The subset of required capabilities that the caller is\n * missing. Empty array means \"request authorized\".\n */\nexport function missingCapabilitiesFor(\n endpoint: string,\n granted: readonly Capability[],\n): readonly Capability[] {\n const required = ENDPOINT_CAPABILITIES[endpoint] ?? []\n const grantedSet = new Set(granted)\n return required.filter((cap) => !grantedSet.has(cap))\n}\n"],"mappings":";;;;;;;;;;;;;;;AAgBA,IAAa,wBAA+D;CAE1E,sBAAsB,CAAC;CAEvB,kBAAkB,CAAC,aAAA,WAAW,YAAY;CAC1C,kBAAkB,CAAC,aAAA,WAAW,aAAa;CAC3C,kBAAkB,CAAC,aAAA,WAAW,YAAY;CAC1C,iBAAiB,CAAC,aAAA,WAAW,WAAW;CAExC,mBAAmB,CAAC,aAAA,WAAW,UAAU;CACzC,wBAAwB,CAAC,aAAA,WAAW,UAAU;CAC9C,gBAAgB,CAAC,aAAA,WAAW,UAAU;CACtC,gBAAgB,CAAC,aAAA,WAAW,UAAU;CACtC,qBAAqB,CAAC,aAAA,WAAW,UAAU;CAC3C,sBAAsB,CAAC,aAAA,WAAW,UAAU;CAC5C,sBAAsB,CAAC,aAAA,WAAW,UAAU;CAC5C,cAAc,CAAC,aAAA,WAAW,UAAU;CACpC,cAAc,CAAC,aAAA,WAAW,UAAU;CAEpC,oBAAoB,CAAC,aAAA,WAAW,SAAS;CACzC,uBAAuB,CAAC,aAAA,WAAW,SAAS;CAC5C,gCAAgC,CAAC,aAAA,WAAW,SAAS;CACrD,eAAe,CAAC,aAAA,WAAW,SAAS;CACpC,kBAAkB,CAAC,aAAA,WAAW,SAAS;CACvC,wBAAwB,CAAC,aAAA,WAAW,SAAS;CAC7C,0BAA0B,CAAC,aAAA,WAAW,SAAS;CAE/C,cAAc,CAAC,aAAA,WAAW,UAAU;CACpC,wBAAwB,CAAC,aAAA,WAAW,WAAW;CAE/C,0BAA0B,CAAC,aAAA,WAAW,mBAAmB;CACzD,2BAA2B,CAAC,aAAA,WAAW,mBAAmB;CAE1D,eAAe,CAAC,aAAA,WAAW,SAAS;CACpC,cAAc,CAAC,aAAA,WAAW,QAAQ;CAClC,eAAe,CAAC,aAAA,WAAW,UAAU;CAErC,+BAA+B,CAAC,aAAA,WAAW,UAAU;CAErD,kCAAkC,CAAC,aAAA,WAAW,uBAAuB;CACrE,kCAAkC,CAAC,aAAA,WAAW,wBAAwB;AACxE;;;;;;;;;;;AAYA,SAAgB,uBACd,UACA,SACuB;CACvB,MAAM,WAAW,sBAAsB,aAAa,CAAC;CACrD,MAAM,aAAa,IAAI,IAAI,OAAO;CAClC,OAAO,SAAS,QAAQ,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC;AACtD"}
@@ -1,53 +1,67 @@
1
1
  import { Capability } from "../types/auth.js";
2
- const ENDPOINT_CAPABILITIES = {
3
- // Auth endpoint takes credentials, not an auth token — no cap check.
4
- b2_authorize_account: [],
5
- // Bucket management.
6
- b2_create_bucket: [Capability.WriteBuckets],
7
- b2_delete_bucket: [Capability.DeleteBuckets],
8
- b2_update_bucket: [Capability.WriteBuckets],
9
- b2_list_buckets: [Capability.ListBuckets],
10
- // File upload + URL acquisition.
11
- b2_get_upload_url: [Capability.WriteFiles],
12
- b2_get_upload_part_url: [Capability.WriteFiles],
13
- b2_upload_file: [Capability.WriteFiles],
14
- b2_upload_part: [Capability.WriteFiles],
15
- b2_start_large_file: [Capability.WriteFiles],
16
- b2_finish_large_file: [Capability.WriteFiles],
17
- b2_cancel_large_file: [Capability.WriteFiles],
18
- b2_copy_file: [Capability.WriteFiles],
19
- b2_copy_part: [Capability.WriteFiles],
20
- // File listing + reading.
21
- b2_list_file_names: [Capability.ListFiles],
22
- b2_list_file_versions: [Capability.ListFiles],
23
- b2_list_unfinished_large_files: [Capability.ListFiles],
24
- b2_list_parts: [Capability.ListFiles],
25
- b2_get_file_info: [Capability.ReadFiles],
26
- b2_download_file_by_id: [Capability.ReadFiles],
27
- b2_download_file_by_name: [Capability.ReadFiles],
28
- // File mutations.
29
- b2_hide_file: [Capability.WriteFiles],
30
- b2_delete_file_version: [Capability.DeleteFiles],
31
- // Object lock + legal hold.
32
- b2_update_file_retention: [Capability.WriteFileRetentions],
33
- b2_update_file_legal_hold: [Capability.WriteFileLegalHolds],
34
- // Application keys.
35
- b2_create_key: [Capability.WriteKeys],
36
- b2_list_keys: [Capability.ListKeys],
37
- b2_delete_key: [Capability.DeleteKeys],
38
- // Download authorisation.
39
- b2_get_download_authorization: [Capability.ShareFiles],
40
- // Notification rules.
41
- b2_get_bucket_notification_rules: [Capability.ReadBucketNotifications],
42
- b2_set_bucket_notification_rules: [Capability.WriteBucketNotifications]
2
+ //#region src/simulator/capabilities.ts
3
+ /**
4
+ * Capability requirement table mapping each B2 native API endpoint to
5
+ * the capability (or capabilities — usually one) the caller's
6
+ * application key must hold to invoke it. Used by `B2Simulator` when
7
+ * `strictAuth: true` is set, so test code that exercises a restricted
8
+ * key sees the same `403 unauthorized` response real B2 would return.
9
+ *
10
+ * Source: https://www.backblaze.com/apidocs (each endpoint page lists
11
+ * the required capability in its description).
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+ /** Endpoint → required capability(s). An empty array means "no capability check". */
16
+ var ENDPOINT_CAPABILITIES = {
17
+ b2_authorize_account: [],
18
+ b2_create_bucket: [Capability.WriteBuckets],
19
+ b2_delete_bucket: [Capability.DeleteBuckets],
20
+ b2_update_bucket: [Capability.WriteBuckets],
21
+ b2_list_buckets: [Capability.ListBuckets],
22
+ b2_get_upload_url: [Capability.WriteFiles],
23
+ b2_get_upload_part_url: [Capability.WriteFiles],
24
+ b2_upload_file: [Capability.WriteFiles],
25
+ b2_upload_part: [Capability.WriteFiles],
26
+ b2_start_large_file: [Capability.WriteFiles],
27
+ b2_finish_large_file: [Capability.WriteFiles],
28
+ b2_cancel_large_file: [Capability.WriteFiles],
29
+ b2_copy_file: [Capability.WriteFiles],
30
+ b2_copy_part: [Capability.WriteFiles],
31
+ b2_list_file_names: [Capability.ListFiles],
32
+ b2_list_file_versions: [Capability.ListFiles],
33
+ b2_list_unfinished_large_files: [Capability.ListFiles],
34
+ b2_list_parts: [Capability.ListFiles],
35
+ b2_get_file_info: [Capability.ReadFiles],
36
+ b2_download_file_by_id: [Capability.ReadFiles],
37
+ b2_download_file_by_name: [Capability.ReadFiles],
38
+ b2_hide_file: [Capability.WriteFiles],
39
+ b2_delete_file_version: [Capability.DeleteFiles],
40
+ b2_update_file_retention: [Capability.WriteFileRetentions],
41
+ b2_update_file_legal_hold: [Capability.WriteFileLegalHolds],
42
+ b2_create_key: [Capability.WriteKeys],
43
+ b2_list_keys: [Capability.ListKeys],
44
+ b2_delete_key: [Capability.DeleteKeys],
45
+ b2_get_download_authorization: [Capability.ShareFiles],
46
+ b2_get_bucket_notification_rules: [Capability.ReadBucketNotifications],
47
+ b2_set_bucket_notification_rules: [Capability.WriteBucketNotifications]
43
48
  };
49
+ /**
50
+ * Find which capabilities are missing from the caller's grant set
51
+ * relative to the endpoint requirement.
52
+ *
53
+ * @param endpoint - B2 endpoint name (e.g. `'b2_upload_file'`).
54
+ * @param granted - Capabilities the caller's key has.
55
+ *
56
+ * @returns The subset of required capabilities that the caller is
57
+ * missing. Empty array means "request authorized".
58
+ */
44
59
  function missingCapabilitiesFor(endpoint, granted) {
45
- const required = ENDPOINT_CAPABILITIES[endpoint] ?? [];
46
- const grantedSet = new Set(granted);
47
- return required.filter((cap) => !grantedSet.has(cap));
60
+ const required = ENDPOINT_CAPABILITIES[endpoint] ?? [];
61
+ const grantedSet = new Set(granted);
62
+ return required.filter((cap) => !grantedSet.has(cap));
48
63
  }
49
- export {
50
- ENDPOINT_CAPABILITIES,
51
- missingCapabilitiesFor
52
- };
53
- //# sourceMappingURL=capabilities.js.map
64
+ //#endregion
65
+ export { ENDPOINT_CAPABILITIES, missingCapabilitiesFor };
66
+
67
+ //# sourceMappingURL=capabilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sources":["../../src/simulator/capabilities.ts"],"sourcesContent":["/**\n * Capability requirement table mapping each B2 native API endpoint to\n * the capability (or capabilities — usually one) the caller's\n * application key must hold to invoke it. Used by `B2Simulator` when\n * `strictAuth: true` is set, so test code that exercises a restricted\n * key sees the same `403 unauthorized` response real B2 would return.\n *\n * Source: https://www.backblaze.com/apidocs (each endpoint page lists\n * the required capability in its description).\n *\n * @packageDocumentation\n */\n\nimport { Capability } from '../types/auth.ts'\n\n/** Endpoint → required capability(s). An empty array means \"no capability check\". */\nexport const ENDPOINT_CAPABILITIES: Record<string, readonly Capability[]> = {\n // Auth endpoint takes credentials, not an auth token — no cap check.\n b2_authorize_account: [],\n // Bucket management.\n b2_create_bucket: [Capability.WriteBuckets],\n b2_delete_bucket: [Capability.DeleteBuckets],\n b2_update_bucket: [Capability.WriteBuckets],\n b2_list_buckets: [Capability.ListBuckets],\n // File upload + URL acquisition.\n b2_get_upload_url: [Capability.WriteFiles],\n b2_get_upload_part_url: [Capability.WriteFiles],\n b2_upload_file: [Capability.WriteFiles],\n b2_upload_part: [Capability.WriteFiles],\n b2_start_large_file: [Capability.WriteFiles],\n b2_finish_large_file: [Capability.WriteFiles],\n b2_cancel_large_file: [Capability.WriteFiles],\n b2_copy_file: [Capability.WriteFiles],\n b2_copy_part: [Capability.WriteFiles],\n // File listing + reading.\n b2_list_file_names: [Capability.ListFiles],\n b2_list_file_versions: [Capability.ListFiles],\n b2_list_unfinished_large_files: [Capability.ListFiles],\n b2_list_parts: [Capability.ListFiles],\n b2_get_file_info: [Capability.ReadFiles],\n b2_download_file_by_id: [Capability.ReadFiles],\n b2_download_file_by_name: [Capability.ReadFiles],\n // File mutations.\n b2_hide_file: [Capability.WriteFiles],\n b2_delete_file_version: [Capability.DeleteFiles],\n // Object lock + legal hold.\n b2_update_file_retention: [Capability.WriteFileRetentions],\n b2_update_file_legal_hold: [Capability.WriteFileLegalHolds],\n // Application keys.\n b2_create_key: [Capability.WriteKeys],\n b2_list_keys: [Capability.ListKeys],\n b2_delete_key: [Capability.DeleteKeys],\n // Download authorisation.\n b2_get_download_authorization: [Capability.ShareFiles],\n // Notification rules.\n b2_get_bucket_notification_rules: [Capability.ReadBucketNotifications],\n b2_set_bucket_notification_rules: [Capability.WriteBucketNotifications],\n}\n\n/**\n * Find which capabilities are missing from the caller's grant set\n * relative to the endpoint requirement.\n *\n * @param endpoint - B2 endpoint name (e.g. `'b2_upload_file'`).\n * @param granted - Capabilities the caller's key has.\n *\n * @returns The subset of required capabilities that the caller is\n * missing. Empty array means \"request authorized\".\n */\nexport function missingCapabilitiesFor(\n endpoint: string,\n granted: readonly Capability[],\n): readonly Capability[] {\n const required = ENDPOINT_CAPABILITIES[endpoint] ?? []\n const grantedSet = new Set(granted)\n return required.filter((cap) => !grantedSet.has(cap))\n}\n"],"names":[],"mappings":";AAgBO,MAAM,wBAA+D;AAAA;AAAA,EAE1E,sBAAsB,CAAA;AAAA;AAAA,EAEtB,kBAAkB,CAAC,WAAW,YAAY;AAAA,EAC1C,kBAAkB,CAAC,WAAW,aAAa;AAAA,EAC3C,kBAAkB,CAAC,WAAW,YAAY;AAAA,EAC1C,iBAAiB,CAAC,WAAW,WAAW;AAAA;AAAA,EAExC,mBAAmB,CAAC,WAAW,UAAU;AAAA,EACzC,wBAAwB,CAAC,WAAW,UAAU;AAAA,EAC9C,gBAAgB,CAAC,WAAW,UAAU;AAAA,EACtC,gBAAgB,CAAC,WAAW,UAAU;AAAA,EACtC,qBAAqB,CAAC,WAAW,UAAU;AAAA,EAC3C,sBAAsB,CAAC,WAAW,UAAU;AAAA,EAC5C,sBAAsB,CAAC,WAAW,UAAU;AAAA,EAC5C,cAAc,CAAC,WAAW,UAAU;AAAA,EACpC,cAAc,CAAC,WAAW,UAAU;AAAA;AAAA,EAEpC,oBAAoB,CAAC,WAAW,SAAS;AAAA,EACzC,uBAAuB,CAAC,WAAW,SAAS;AAAA,EAC5C,gCAAgC,CAAC,WAAW,SAAS;AAAA,EACrD,eAAe,CAAC,WAAW,SAAS;AAAA,EACpC,kBAAkB,CAAC,WAAW,SAAS;AAAA,EACvC,wBAAwB,CAAC,WAAW,SAAS;AAAA,EAC7C,0BAA0B,CAAC,WAAW,SAAS;AAAA;AAAA,EAE/C,cAAc,CAAC,WAAW,UAAU;AAAA,EACpC,wBAAwB,CAAC,WAAW,WAAW;AAAA;AAAA,EAE/C,0BAA0B,CAAC,WAAW,mBAAmB;AAAA,EACzD,2BAA2B,CAAC,WAAW,mBAAmB;AAAA;AAAA,EAE1D,eAAe,CAAC,WAAW,SAAS;AAAA,EACpC,cAAc,CAAC,WAAW,QAAQ;AAAA,EAClC,eAAe,CAAC,WAAW,UAAU;AAAA;AAAA,EAErC,+BAA+B,CAAC,WAAW,UAAU;AAAA;AAAA,EAErD,kCAAkC,CAAC,WAAW,uBAAuB;AAAA,EACrE,kCAAkC,CAAC,WAAW,wBAAwB;AACxE;AAYO,SAAS,uBACd,UACA,SACuB;AACvB,QAAM,WAAW,sBAAsB,QAAQ,KAAK,CAAA;AACpD,QAAM,aAAa,IAAI,IAAI,OAAO;AAClC,SAAO,SAAS,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC;AACtD;"}
1
+ {"version":3,"file":"capabilities.js","names":[],"sources":["../../src/simulator/capabilities.ts"],"sourcesContent":["/**\n * Capability requirement table mapping each B2 native API endpoint to\n * the capability (or capabilities — usually one) the caller's\n * application key must hold to invoke it. Used by `B2Simulator` when\n * `strictAuth: true` is set, so test code that exercises a restricted\n * key sees the same `403 unauthorized` response real B2 would return.\n *\n * Source: https://www.backblaze.com/apidocs (each endpoint page lists\n * the required capability in its description).\n *\n * @packageDocumentation\n */\n\nimport { Capability } from '../types/auth.ts'\n\n/** Endpoint → required capability(s). An empty array means \"no capability check\". */\nexport const ENDPOINT_CAPABILITIES: Record<string, readonly Capability[]> = {\n // Auth endpoint takes credentials, not an auth token — no cap check.\n b2_authorize_account: [],\n // Bucket management.\n b2_create_bucket: [Capability.WriteBuckets],\n b2_delete_bucket: [Capability.DeleteBuckets],\n b2_update_bucket: [Capability.WriteBuckets],\n b2_list_buckets: [Capability.ListBuckets],\n // File upload + URL acquisition.\n b2_get_upload_url: [Capability.WriteFiles],\n b2_get_upload_part_url: [Capability.WriteFiles],\n b2_upload_file: [Capability.WriteFiles],\n b2_upload_part: [Capability.WriteFiles],\n b2_start_large_file: [Capability.WriteFiles],\n b2_finish_large_file: [Capability.WriteFiles],\n b2_cancel_large_file: [Capability.WriteFiles],\n b2_copy_file: [Capability.WriteFiles],\n b2_copy_part: [Capability.WriteFiles],\n // File listing + reading.\n b2_list_file_names: [Capability.ListFiles],\n b2_list_file_versions: [Capability.ListFiles],\n b2_list_unfinished_large_files: [Capability.ListFiles],\n b2_list_parts: [Capability.ListFiles],\n b2_get_file_info: [Capability.ReadFiles],\n b2_download_file_by_id: [Capability.ReadFiles],\n b2_download_file_by_name: [Capability.ReadFiles],\n // File mutations.\n b2_hide_file: [Capability.WriteFiles],\n b2_delete_file_version: [Capability.DeleteFiles],\n // Object lock + legal hold.\n b2_update_file_retention: [Capability.WriteFileRetentions],\n b2_update_file_legal_hold: [Capability.WriteFileLegalHolds],\n // Application keys.\n b2_create_key: [Capability.WriteKeys],\n b2_list_keys: [Capability.ListKeys],\n b2_delete_key: [Capability.DeleteKeys],\n // Download authorisation.\n b2_get_download_authorization: [Capability.ShareFiles],\n // Notification rules.\n b2_get_bucket_notification_rules: [Capability.ReadBucketNotifications],\n b2_set_bucket_notification_rules: [Capability.WriteBucketNotifications],\n}\n\n/**\n * Find which capabilities are missing from the caller's grant set\n * relative to the endpoint requirement.\n *\n * @param endpoint - B2 endpoint name (e.g. `'b2_upload_file'`).\n * @param granted - Capabilities the caller's key has.\n *\n * @returns The subset of required capabilities that the caller is\n * missing. Empty array means \"request authorized\".\n */\nexport function missingCapabilitiesFor(\n endpoint: string,\n granted: readonly Capability[],\n): readonly Capability[] {\n const required = ENDPOINT_CAPABILITIES[endpoint] ?? []\n const grantedSet = new Set(granted)\n return required.filter((cap) => !grantedSet.has(cap))\n}\n"],"mappings":";;;;;;;;;;;;;;;AAgBA,IAAa,wBAA+D;CAE1E,sBAAsB,CAAC;CAEvB,kBAAkB,CAAC,WAAW,YAAY;CAC1C,kBAAkB,CAAC,WAAW,aAAa;CAC3C,kBAAkB,CAAC,WAAW,YAAY;CAC1C,iBAAiB,CAAC,WAAW,WAAW;CAExC,mBAAmB,CAAC,WAAW,UAAU;CACzC,wBAAwB,CAAC,WAAW,UAAU;CAC9C,gBAAgB,CAAC,WAAW,UAAU;CACtC,gBAAgB,CAAC,WAAW,UAAU;CACtC,qBAAqB,CAAC,WAAW,UAAU;CAC3C,sBAAsB,CAAC,WAAW,UAAU;CAC5C,sBAAsB,CAAC,WAAW,UAAU;CAC5C,cAAc,CAAC,WAAW,UAAU;CACpC,cAAc,CAAC,WAAW,UAAU;CAEpC,oBAAoB,CAAC,WAAW,SAAS;CACzC,uBAAuB,CAAC,WAAW,SAAS;CAC5C,gCAAgC,CAAC,WAAW,SAAS;CACrD,eAAe,CAAC,WAAW,SAAS;CACpC,kBAAkB,CAAC,WAAW,SAAS;CACvC,wBAAwB,CAAC,WAAW,SAAS;CAC7C,0BAA0B,CAAC,WAAW,SAAS;CAE/C,cAAc,CAAC,WAAW,UAAU;CACpC,wBAAwB,CAAC,WAAW,WAAW;CAE/C,0BAA0B,CAAC,WAAW,mBAAmB;CACzD,2BAA2B,CAAC,WAAW,mBAAmB;CAE1D,eAAe,CAAC,WAAW,SAAS;CACpC,cAAc,CAAC,WAAW,QAAQ;CAClC,eAAe,CAAC,WAAW,UAAU;CAErC,+BAA+B,CAAC,WAAW,UAAU;CAErD,kCAAkC,CAAC,WAAW,uBAAuB;CACrE,kCAAkC,CAAC,WAAW,wBAAwB;AACxE;;;;;;;;;;;AAYA,SAAgB,uBACd,UACA,SACuB;CACvB,MAAM,WAAW,sBAAsB,aAAa,CAAC;CACrD,MAAM,aAAa,IAAI,IAAI,OAAO;CAClC,OAAO,SAAS,QAAQ,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC;AACtD"}