@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,23 +1,40 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const local = require("./scanners/local.cjs");
4
- const b2 = require("./scanners/b2.cjs");
5
- const pairing = require("./pairing.cjs");
6
- const index$1 = require("./policies/index.cjs");
7
- const compare = require("./policies/compare.cjs");
8
- const synchronizer = require("./synchronizer.cjs");
9
- const index = require("./actions/index.cjs");
10
- exports.LocalFolder = local.LocalFolder;
11
- exports.B2Folder = b2.B2Folder;
12
- exports.zipFolders = pairing.zipFolders;
13
- exports.generateActions = index$1.generateActions;
14
- exports.filesAreDifferent = compare.filesAreDifferent;
15
- exports.synchronize = synchronizer.synchronize;
16
- exports.CopyAction = index.CopyAction;
17
- exports.DeleteLocalAction = index.DeleteLocalAction;
18
- exports.DeleteRemoteAction = index.DeleteRemoteAction;
19
- exports.DownloadAction = index.DownloadAction;
20
- exports.HideAction = index.HideAction;
21
- exports.SkipAction = index.SkipAction;
22
- exports.UploadAction = index.UploadAction;
23
- //# sourceMappingURL=index.cjs.map
2
+ const require_index = require("./actions/index.cjs");
3
+ const require_filters = require("./filters.cjs");
4
+ const require_path_order = require("./path-order.cjs");
5
+ const require_pairing = require("./pairing.cjs");
6
+ const require_sha1_metadata = require("./sha1-metadata.cjs");
7
+ const require_compare = require("./policies/compare.cjs");
8
+ const require_index$1 = require("./policies/index.cjs");
9
+ const require_prefix = require("./prefix.cjs");
10
+ const require_b2 = require("./scanners/b2.cjs");
11
+ const require_local = require("./scanners/local.cjs");
12
+ const require_synchronizer = require("./synchronizer.cjs");
13
+ exports.B2Folder = require_b2.B2Folder;
14
+ exports.CopyAction = require_index.CopyAction;
15
+ exports.DeleteLocalAction = require_index.DeleteLocalAction;
16
+ exports.DeleteRemoteAction = require_index.DeleteRemoteAction;
17
+ exports.DownloadAction = require_index.DownloadAction;
18
+ exports.HideAction = require_index.HideAction;
19
+ exports.LocalFolder = require_local.LocalFolder;
20
+ exports.SkipAction = require_index.SkipAction;
21
+ exports.UploadAction = require_index.UploadAction;
22
+ exports.asRawB2KeyPrefix = require_prefix.asRawB2KeyPrefix;
23
+ exports.b2KeyToRelativePathUnderPrefix = require_prefix.b2KeyToRelativePathUnderPrefix;
24
+ exports.compareSyncRelativePaths = require_path_order.compareSyncRelativePaths;
25
+ exports.directoryMayContainSyncPaths = require_filters.directoryMayContainSyncPaths;
26
+ exports.filesAreDifferent = require_compare.filesAreDifferent;
27
+ exports.filterSyncPaths = require_filters.filterSyncPaths;
28
+ exports.generateActions = require_index$1.generateActions;
29
+ exports.isUntrustedSha1 = require_sha1_metadata.isUntrustedSha1;
30
+ exports.literalPrefixForSyncFilters = require_filters.literalPrefixForSyncFilters;
31
+ exports.normalizeB2RelativePath = require_prefix.normalizeB2RelativePath;
32
+ exports.parseSyncContentSha1 = require_sha1_metadata.parseSyncContentSha1;
33
+ exports.pathPassesSyncFilters = require_filters.pathPassesSyncFilters;
34
+ exports.pathSkippedByRegExpInputLimit = require_filters.pathSkippedByRegExpInputLimit;
35
+ exports.selectB2ComparableSha1 = require_sha1_metadata.selectB2ComparableSha1;
36
+ exports.syncSha1StateOf = require_sha1_metadata.syncSha1StateOf;
37
+ exports.synchronize = require_synchronizer.synchronize;
38
+ exports.untrustedSha1 = require_sha1_metadata.untrustedSha1;
39
+ exports.untrustedSha1Prefix = require_sha1_metadata.untrustedSha1Prefix;
40
+ exports.zipFolders = require_pairing.zipFolders;
@@ -6,16 +6,21 @@
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
- export { LocalFolder } from './scanners/local.js';
10
- export { B2Folder } from './scanners/b2.js';
9
+ export type { SyncAction, SyncActionType, } from './actions/index.js';
10
+ export { CopyAction, DeleteLocalAction, DeleteRemoteAction, DownloadAction, HideAction, SkipAction, UploadAction, } from './actions/index.js';
11
+ export { directoryMayContainSyncPaths, filterSyncPaths, literalPrefixForSyncFilters, pathPassesSyncFilters, pathSkippedByRegExpInputLimit, } from './filters.js';
12
+ export type { SyncPair } from './pairing.js';
11
13
  export { zipFolders } from './pairing.js';
12
- export { generateActions } from './policies/index.js';
14
+ export { compareSyncRelativePaths } from './path-order.js';
13
15
  export { filesAreDifferent } from './policies/compare.js';
14
- export { synchronize } from './synchronizer.js';
15
- export type { SyncAction, SyncActionType, } from './actions/index.js';
16
- export { UploadAction, DownloadAction, CopyAction, HideAction, DeleteRemoteAction, DeleteLocalAction, SkipAction, } from './actions/index.js';
17
- export type { CompareMode, KeepMode, SyncDirection, SyncPath, LocalSyncPath, B2SyncPath, SyncEvent, SyncEventType, SyncActionEvent, SyncActionEventType, SyncSkipEvent, SyncErrorEvent, SyncOptions, SyncEncryptionProvider, SyncFolder, } from './types.js';
18
16
  export type { ActionFactory } from './policies/index.js';
19
- export type { SyncPair } from './pairing.js';
20
- export type { SynchronizerConfig, SynchronizerUpConfig, SynchronizerDownConfig, LocalSyncFolder, B2SyncFolder, } from './synchronizer.js';
17
+ export { generateActions } from './policies/index.js';
18
+ export { asRawB2KeyPrefix, b2KeyToRelativePathUnderPrefix, normalizeB2RelativePath, } from './prefix.js';
19
+ export { B2Folder } from './scanners/b2.js';
20
+ export { LocalFolder } from './scanners/local.js';
21
+ export type { SyncSha1PendingState, SyncSha1State, SyncSha1UnavailableState, SyncSha1UntrustedState, SyncSha1VerifiedState, } from './sha1-metadata.js';
22
+ export { isUntrustedSha1, parseSyncContentSha1, selectB2ComparableSha1, syncSha1StateOf, untrustedSha1, untrustedSha1Prefix, } from './sha1-metadata.js';
23
+ export type { B2SyncFolder, LocalSyncFolder, SupportedSynchronizerConfig, SynchronizerB2Config, SynchronizerConfig, SynchronizerDownConfig, SynchronizerUpConfig, } from './synchronizer.js';
24
+ export { synchronize } from './synchronizer.js';
25
+ export type { B2SyncPath, CompareMode, KeepMode, LocalFileIdentity, LocalSyncPath, SyncActionEvent, SyncActionEventType, SyncCompareEvent, SyncDirection, SyncEncryptionProvider, SyncErrorEvent, SyncEvent, SyncEventType, SyncFilterOptions, SyncFilterPattern, SyncFolder, SyncOptions, SyncPath, SyncScanOptions, SyncSkipEvent, SyncSkipReason, } from './types.js';
21
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EACV,UAAU,EACV,cAAc,GACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,GACX,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,aAAa,EACb,UAAU,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,YAAY,GACb,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,UAAU,EACV,cAAc,GACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,YAAY,EACZ,eAAe,EACf,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAA"}
@@ -6,16 +6,21 @@
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
- export { LocalFolder } from './scanners/local.js';
10
- export { B2Folder } from './scanners/b2.js';
9
+ export type { SyncAction, SyncActionType, } from './actions/index.js';
10
+ export { CopyAction, DeleteLocalAction, DeleteRemoteAction, DownloadAction, HideAction, SkipAction, UploadAction, } from './actions/index.js';
11
+ export { directoryMayContainSyncPaths, filterSyncPaths, literalPrefixForSyncFilters, pathPassesSyncFilters, pathSkippedByRegExpInputLimit, } from './filters.js';
12
+ export type { SyncPair } from './pairing.js';
11
13
  export { zipFolders } from './pairing.js';
12
- export { generateActions } from './policies/index.js';
14
+ export { compareSyncRelativePaths } from './path-order.js';
13
15
  export { filesAreDifferent } from './policies/compare.js';
14
- export { synchronize } from './synchronizer.js';
15
- export type { SyncAction, SyncActionType, } from './actions/index.js';
16
- export { UploadAction, DownloadAction, CopyAction, HideAction, DeleteRemoteAction, DeleteLocalAction, SkipAction, } from './actions/index.js';
17
- export type { CompareMode, KeepMode, SyncDirection, SyncPath, LocalSyncPath, B2SyncPath, SyncEvent, SyncEventType, SyncActionEvent, SyncActionEventType, SyncSkipEvent, SyncErrorEvent, SyncOptions, SyncEncryptionProvider, SyncFolder, } from './types.js';
18
16
  export type { ActionFactory } from './policies/index.js';
19
- export type { SyncPair } from './pairing.js';
20
- export type { SynchronizerConfig, SynchronizerUpConfig, SynchronizerDownConfig, LocalSyncFolder, B2SyncFolder, } from './synchronizer.js';
17
+ export { generateActions } from './policies/index.js';
18
+ export { asRawB2KeyPrefix, b2KeyToRelativePathUnderPrefix, normalizeB2RelativePath, } from './prefix.js';
19
+ export { B2Folder } from './scanners/b2.js';
20
+ export { LocalFolder } from './scanners/local.js';
21
+ export type { SyncSha1PendingState, SyncSha1State, SyncSha1UnavailableState, SyncSha1UntrustedState, SyncSha1VerifiedState, } from './sha1-metadata.js';
22
+ export { isUntrustedSha1, parseSyncContentSha1, selectB2ComparableSha1, syncSha1StateOf, untrustedSha1, untrustedSha1Prefix, } from './sha1-metadata.js';
23
+ export type { B2SyncFolder, LocalSyncFolder, SupportedSynchronizerConfig, SynchronizerB2Config, SynchronizerConfig, SynchronizerDownConfig, SynchronizerUpConfig, } from './synchronizer.js';
24
+ export { synchronize } from './synchronizer.js';
25
+ export type { B2SyncPath, CompareMode, KeepMode, LocalFileIdentity, LocalSyncPath, SyncActionEvent, SyncActionEventType, SyncCompareEvent, SyncDirection, SyncEncryptionProvider, SyncErrorEvent, SyncEvent, SyncEventType, SyncFilterOptions, SyncFilterPattern, SyncFolder, SyncOptions, SyncPath, SyncScanOptions, SyncSkipEvent, SyncSkipReason, } from './types.js';
21
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EACV,UAAU,EACV,cAAc,GACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,GACX,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,aAAa,EACb,UAAU,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,YAAY,GACb,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,UAAU,EACV,cAAc,GACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,YAAY,EACZ,eAAe,EACf,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAA"}
@@ -1,23 +1,12 @@
1
- import { LocalFolder } from "./scanners/local.js";
2
- import { B2Folder } from "./scanners/b2.js";
1
+ import { CopyAction, DeleteLocalAction, DeleteRemoteAction, DownloadAction, HideAction, SkipAction, UploadAction } from "./actions/index.js";
2
+ import { directoryMayContainSyncPaths, filterSyncPaths, literalPrefixForSyncFilters, pathPassesSyncFilters, pathSkippedByRegExpInputLimit } from "./filters.js";
3
+ import { compareSyncRelativePaths } from "./path-order.js";
3
4
  import { zipFolders } from "./pairing.js";
4
- import { generateActions } from "./policies/index.js";
5
+ import { isUntrustedSha1, parseSyncContentSha1, selectB2ComparableSha1, syncSha1StateOf, untrustedSha1, untrustedSha1Prefix } from "./sha1-metadata.js";
5
6
  import { filesAreDifferent } from "./policies/compare.js";
7
+ import { generateActions } from "./policies/index.js";
8
+ import { asRawB2KeyPrefix, b2KeyToRelativePathUnderPrefix, normalizeB2RelativePath } from "./prefix.js";
9
+ import { B2Folder } from "./scanners/b2.js";
10
+ import { LocalFolder } from "./scanners/local.js";
6
11
  import { synchronize } from "./synchronizer.js";
7
- import { CopyAction, DeleteLocalAction, DeleteRemoteAction, DownloadAction, HideAction, SkipAction, UploadAction } from "./actions/index.js";
8
- export {
9
- B2Folder,
10
- CopyAction,
11
- DeleteLocalAction,
12
- DeleteRemoteAction,
13
- DownloadAction,
14
- HideAction,
15
- LocalFolder,
16
- SkipAction,
17
- UploadAction,
18
- filesAreDifferent,
19
- generateActions,
20
- synchronize,
21
- zipFolders
22
- };
23
- //# sourceMappingURL=index.js.map
12
+ export { B2Folder, CopyAction, DeleteLocalAction, DeleteRemoteAction, DownloadAction, HideAction, LocalFolder, SkipAction, UploadAction, asRawB2KeyPrefix, b2KeyToRelativePathUnderPrefix, compareSyncRelativePaths, directoryMayContainSyncPaths, filesAreDifferent, filterSyncPaths, generateActions, isUntrustedSha1, literalPrefixForSyncFilters, normalizeB2RelativePath, parseSyncContentSha1, pathPassesSyncFilters, pathSkippedByRegExpInputLimit, selectB2ComparableSha1, syncSha1StateOf, synchronize, untrustedSha1, untrustedSha1Prefix, zipFolders };
@@ -0,0 +1,61 @@
1
+ //#region src/sync/local-file-identity.ts
2
+ /**
3
+ * Converts Node file stats into the sync scanner's persisted identity shape.
4
+ * @param stats - Node file stats to convert.
5
+ *
6
+ * @returns The scanner identity stored with a local sync path.
7
+ *
8
+ * @internal
9
+ */
10
+ function localFileIdentityFromStats(stats) {
11
+ return {
12
+ deviceId: stats.dev,
13
+ inode: stats.ino,
14
+ size: stats.size,
15
+ modTimeMillis: Math.floor(stats.mtimeMs),
16
+ changeTimeMillis: Math.floor(stats.ctimeMs)
17
+ };
18
+ }
19
+ /**
20
+ * Verifies that current local stats still match a previously scanned regular file.
21
+ * @param stats - Current filesystem stats for the candidate file.
22
+ * @param path - Previously scanned local sync path.
23
+ * @param operation - Operation name used in mutation diagnostics.
24
+ * @param options - Platform and ctime comparison overrides for controlled filesystem moves.
25
+ *
26
+ * @throws If the current file is not the scanned regular file.
27
+ *
28
+ * @internal
29
+ */
30
+ function assertSameScannedRegularFile(stats, path, operation = "upload", options = {}) {
31
+ const reason = `local file changed before ${operation}`;
32
+ if (!stats.isFile()) {
33
+ if (operation === "delete") throw Object.assign(/* @__PURE__ */ new Error(`${reason}: not a regular file`), { code: "EISDIR" });
34
+ throw new Error(`${reason}: not a regular file`);
35
+ }
36
+ if (stats.size !== path.size) throw new Error(`${reason}: size changed`);
37
+ const identity = path.fileIdentity;
38
+ if (identity === void 0) return;
39
+ if (!sameLocalIdentity(stats, identity, {
40
+ compareChangeTime: options.compareChangeTime,
41
+ platform: options.platform ?? currentPlatform()
42
+ })) throw new Error(reason);
43
+ }
44
+ function sameLocalIdentity(stats, identity, options) {
45
+ const compareChangeTime = options.compareChangeTime ?? shouldComparePosixChangeTime(options.platform);
46
+ return (!shouldComparePosixFileIdentity(options.platform) || stats.dev === identity.deviceId && stats.ino === identity.inode) && stats.size === identity.size && Math.floor(stats.mtimeMs) === identity.modTimeMillis && (!compareChangeTime || identity.changeTimeMillis === void 0 || Math.floor(stats.ctimeMs) === identity.changeTimeMillis);
47
+ }
48
+ function shouldComparePosixFileIdentity(platform) {
49
+ return platform !== "win32";
50
+ }
51
+ function shouldComparePosixChangeTime(platform) {
52
+ return platform !== "win32";
53
+ }
54
+ function currentPlatform() {
55
+ return globalThis.process?.platform;
56
+ }
57
+ //#endregion
58
+ exports.assertSameScannedRegularFile = assertSameScannedRegularFile;
59
+ exports.localFileIdentityFromStats = localFileIdentityFromStats;
60
+
61
+ //# sourceMappingURL=local-file-identity.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-file-identity.cjs","names":[],"sources":["../../src/sync/local-file-identity.ts"],"sourcesContent":["import type { LocalFileIdentity, LocalSyncPath } from './types.ts'\n\ninterface LocalFileStatsLike {\n readonly dev: number\n readonly ino: number\n readonly mtimeMs: number\n readonly ctimeMs: number\n readonly size: number\n}\n\ninterface LocalRegularFileStatsLike extends LocalFileStatsLike {\n isFile(): boolean\n}\n\n/**\n * Converts Node file stats into the sync scanner's persisted identity shape.\n * @param stats - Node file stats to convert.\n *\n * @returns The scanner identity stored with a local sync path.\n *\n * @internal\n */\nexport function localFileIdentityFromStats(stats: LocalFileStatsLike): LocalFileIdentity {\n return {\n deviceId: stats.dev,\n inode: stats.ino,\n size: stats.size,\n modTimeMillis: Math.floor(stats.mtimeMs),\n changeTimeMillis: Math.floor(stats.ctimeMs),\n }\n}\n\n/**\n * Verifies that current local stats still match a previously scanned regular file.\n * @param stats - Current filesystem stats for the candidate file.\n * @param path - Previously scanned local sync path.\n * @param operation - Operation name used in mutation diagnostics.\n * @param options - Platform and ctime comparison overrides for controlled filesystem moves.\n *\n * @throws If the current file is not the scanned regular file.\n *\n * @internal\n */\nexport function assertSameScannedRegularFile(\n stats: LocalRegularFileStatsLike,\n path: LocalSyncPath,\n operation: 'upload' | 'download' | 'delete' | 'sha1 comparison' = 'upload',\n options: {\n readonly compareChangeTime?: boolean | undefined\n readonly platform?: string | undefined\n } = {},\n): void {\n const reason = `local file changed before ${operation}`\n if (!stats.isFile()) {\n if (operation === 'delete') {\n throw Object.assign(new Error(`${reason}: not a regular file`), { code: 'EISDIR' })\n }\n throw new Error(`${reason}: not a regular file`)\n }\n if (stats.size !== path.size) {\n throw new Error(`${reason}: size changed`)\n }\n\n const identity = path.fileIdentity\n if (identity === undefined) return\n\n if (\n !sameLocalIdentity(stats, identity, {\n compareChangeTime: options.compareChangeTime,\n platform: options.platform ?? currentPlatform(),\n })\n ) {\n throw new Error(reason)\n }\n}\n\nfunction sameLocalIdentity(\n stats: LocalFileStatsLike,\n identity: LocalFileIdentity,\n options: {\n readonly compareChangeTime?: boolean | undefined\n readonly platform: string | undefined\n },\n): boolean {\n const compareChangeTime =\n options.compareChangeTime ?? shouldComparePosixChangeTime(options.platform)\n return (\n (!shouldComparePosixFileIdentity(options.platform) ||\n (stats.dev === identity.deviceId && stats.ino === identity.inode)) &&\n stats.size === identity.size &&\n Math.floor(stats.mtimeMs) === identity.modTimeMillis &&\n (!compareChangeTime ||\n identity.changeTimeMillis === undefined ||\n Math.floor(stats.ctimeMs) === identity.changeTimeMillis)\n )\n}\n\nfunction shouldComparePosixFileIdentity(platform: string | undefined): boolean {\n return platform !== 'win32'\n}\n\nfunction shouldComparePosixChangeTime(platform: string | undefined): boolean {\n return platform !== 'win32'\n}\n\nfunction currentPlatform(): string | undefined {\n const processLike = (globalThis as { process?: { platform?: string } }).process\n return processLike?.platform\n}\n"],"mappings":";;;;;;;;;AAsBA,SAAgB,2BAA2B,OAA8C;CACvF,OAAO;EACL,UAAU,MAAM;EAChB,OAAO,MAAM;EACb,MAAM,MAAM;EACZ,eAAe,KAAK,MAAM,MAAM,OAAO;EACvC,kBAAkB,KAAK,MAAM,MAAM,OAAO;CAC5C;AACF;;;;;;;;;;;;AAaA,SAAgB,6BACd,OACA,MACA,YAAkE,UAClE,UAGI,CAAC,GACC;CACN,MAAM,SAAS,6BAA6B;CAC5C,IAAI,CAAC,MAAM,OAAO,GAAG;EACnB,IAAI,cAAc,UAChB,MAAM,OAAO,uBAAO,IAAI,MAAM,GAAG,OAAO,qBAAqB,GAAG,EAAE,MAAM,SAAS,CAAC;EAEpF,MAAM,IAAI,MAAM,GAAG,OAAO,qBAAqB;CACjD;CACA,IAAI,MAAM,SAAS,KAAK,MACtB,MAAM,IAAI,MAAM,GAAG,OAAO,eAAe;CAG3C,MAAM,WAAW,KAAK;CACtB,IAAI,aAAa,KAAA,GAAW;CAE5B,IACE,CAAC,kBAAkB,OAAO,UAAU;EAClC,mBAAmB,QAAQ;EAC3B,UAAU,QAAQ,YAAY,gBAAgB;CAChD,CAAC,GAED,MAAM,IAAI,MAAM,MAAM;AAE1B;AAEA,SAAS,kBACP,OACA,UACA,SAIS;CACT,MAAM,oBACJ,QAAQ,qBAAqB,6BAA6B,QAAQ,QAAQ;CAC5E,QACG,CAAC,+BAA+B,QAAQ,QAAQ,KAC9C,MAAM,QAAQ,SAAS,YAAY,MAAM,QAAQ,SAAS,UAC7D,MAAM,SAAS,SAAS,QACxB,KAAK,MAAM,MAAM,OAAO,MAAM,SAAS,kBACtC,CAAC,qBACA,SAAS,qBAAqB,KAAA,KAC9B,KAAK,MAAM,MAAM,OAAO,MAAM,SAAS;AAE7C;AAEA,SAAS,+BAA+B,UAAuC;CAC7E,OAAO,aAAa;AACtB;AAEA,SAAS,6BAA6B,UAAuC;CAC3E,OAAO,aAAa;AACtB;AAEA,SAAS,kBAAsC;CAE7C,OADqB,WAAmD,SACpD;AACtB"}
@@ -0,0 +1,37 @@
1
+ import { LocalFileIdentity, LocalSyncPath } from './types.js';
2
+ interface LocalFileStatsLike {
3
+ readonly dev: number;
4
+ readonly ino: number;
5
+ readonly mtimeMs: number;
6
+ readonly ctimeMs: number;
7
+ readonly size: number;
8
+ }
9
+ interface LocalRegularFileStatsLike extends LocalFileStatsLike {
10
+ isFile(): boolean;
11
+ }
12
+ /**
13
+ * Converts Node file stats into the sync scanner's persisted identity shape.
14
+ * @param stats - Node file stats to convert.
15
+ *
16
+ * @returns The scanner identity stored with a local sync path.
17
+ *
18
+ * @internal
19
+ */
20
+ export declare function localFileIdentityFromStats(stats: LocalFileStatsLike): LocalFileIdentity;
21
+ /**
22
+ * Verifies that current local stats still match a previously scanned regular file.
23
+ * @param stats - Current filesystem stats for the candidate file.
24
+ * @param path - Previously scanned local sync path.
25
+ * @param operation - Operation name used in mutation diagnostics.
26
+ * @param options - Platform and ctime comparison overrides for controlled filesystem moves.
27
+ *
28
+ * @throws If the current file is not the scanned regular file.
29
+ *
30
+ * @internal
31
+ */
32
+ export declare function assertSameScannedRegularFile(stats: LocalRegularFileStatsLike, path: LocalSyncPath, operation?: 'upload' | 'download' | 'delete' | 'sha1 comparison', options?: {
33
+ readonly compareChangeTime?: boolean | undefined;
34
+ readonly platform?: string | undefined;
35
+ }): void;
36
+ export {};
37
+ //# sourceMappingURL=local-file-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-file-identity.d.ts","sourceRoot":"","sources":["../../src/sync/local-file-identity.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAElE,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,UAAU,yBAA0B,SAAQ,kBAAkB;IAC5D,MAAM,IAAI,OAAO,CAAA;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,CAQvF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,yBAAyB,EAChC,IAAI,EAAE,aAAa,EACnB,SAAS,GAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,iBAA4B,EAC1E,OAAO,GAAE;IACP,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC,GACL,IAAI,CAuBN"}
@@ -0,0 +1,37 @@
1
+ import { LocalFileIdentity, LocalSyncPath } from './types.js';
2
+ interface LocalFileStatsLike {
3
+ readonly dev: number;
4
+ readonly ino: number;
5
+ readonly mtimeMs: number;
6
+ readonly ctimeMs: number;
7
+ readonly size: number;
8
+ }
9
+ interface LocalRegularFileStatsLike extends LocalFileStatsLike {
10
+ isFile(): boolean;
11
+ }
12
+ /**
13
+ * Converts Node file stats into the sync scanner's persisted identity shape.
14
+ * @param stats - Node file stats to convert.
15
+ *
16
+ * @returns The scanner identity stored with a local sync path.
17
+ *
18
+ * @internal
19
+ */
20
+ export declare function localFileIdentityFromStats(stats: LocalFileStatsLike): LocalFileIdentity;
21
+ /**
22
+ * Verifies that current local stats still match a previously scanned regular file.
23
+ * @param stats - Current filesystem stats for the candidate file.
24
+ * @param path - Previously scanned local sync path.
25
+ * @param operation - Operation name used in mutation diagnostics.
26
+ * @param options - Platform and ctime comparison overrides for controlled filesystem moves.
27
+ *
28
+ * @throws If the current file is not the scanned regular file.
29
+ *
30
+ * @internal
31
+ */
32
+ export declare function assertSameScannedRegularFile(stats: LocalRegularFileStatsLike, path: LocalSyncPath, operation?: 'upload' | 'download' | 'delete' | 'sha1 comparison', options?: {
33
+ readonly compareChangeTime?: boolean | undefined;
34
+ readonly platform?: string | undefined;
35
+ }): void;
36
+ export {};
37
+ //# sourceMappingURL=local-file-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-file-identity.d.ts","sourceRoot":"","sources":["../../src/sync/local-file-identity.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAElE,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,UAAU,yBAA0B,SAAQ,kBAAkB;IAC5D,MAAM,IAAI,OAAO,CAAA;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,CAQvF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,yBAAyB,EAChC,IAAI,EAAE,aAAa,EACnB,SAAS,GAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,iBAA4B,EAC1E,OAAO,GAAE;IACP,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC,GACL,IAAI,CAuBN"}
@@ -0,0 +1,60 @@
1
+ //#region src/sync/local-file-identity.ts
2
+ /**
3
+ * Converts Node file stats into the sync scanner's persisted identity shape.
4
+ * @param stats - Node file stats to convert.
5
+ *
6
+ * @returns The scanner identity stored with a local sync path.
7
+ *
8
+ * @internal
9
+ */
10
+ function localFileIdentityFromStats(stats) {
11
+ return {
12
+ deviceId: stats.dev,
13
+ inode: stats.ino,
14
+ size: stats.size,
15
+ modTimeMillis: Math.floor(stats.mtimeMs),
16
+ changeTimeMillis: Math.floor(stats.ctimeMs)
17
+ };
18
+ }
19
+ /**
20
+ * Verifies that current local stats still match a previously scanned regular file.
21
+ * @param stats - Current filesystem stats for the candidate file.
22
+ * @param path - Previously scanned local sync path.
23
+ * @param operation - Operation name used in mutation diagnostics.
24
+ * @param options - Platform and ctime comparison overrides for controlled filesystem moves.
25
+ *
26
+ * @throws If the current file is not the scanned regular file.
27
+ *
28
+ * @internal
29
+ */
30
+ function assertSameScannedRegularFile(stats, path, operation = "upload", options = {}) {
31
+ const reason = `local file changed before ${operation}`;
32
+ if (!stats.isFile()) {
33
+ if (operation === "delete") throw Object.assign(/* @__PURE__ */ new Error(`${reason}: not a regular file`), { code: "EISDIR" });
34
+ throw new Error(`${reason}: not a regular file`);
35
+ }
36
+ if (stats.size !== path.size) throw new Error(`${reason}: size changed`);
37
+ const identity = path.fileIdentity;
38
+ if (identity === void 0) return;
39
+ if (!sameLocalIdentity(stats, identity, {
40
+ compareChangeTime: options.compareChangeTime,
41
+ platform: options.platform ?? currentPlatform()
42
+ })) throw new Error(reason);
43
+ }
44
+ function sameLocalIdentity(stats, identity, options) {
45
+ const compareChangeTime = options.compareChangeTime ?? shouldComparePosixChangeTime(options.platform);
46
+ return (!shouldComparePosixFileIdentity(options.platform) || stats.dev === identity.deviceId && stats.ino === identity.inode) && stats.size === identity.size && Math.floor(stats.mtimeMs) === identity.modTimeMillis && (!compareChangeTime || identity.changeTimeMillis === void 0 || Math.floor(stats.ctimeMs) === identity.changeTimeMillis);
47
+ }
48
+ function shouldComparePosixFileIdentity(platform) {
49
+ return platform !== "win32";
50
+ }
51
+ function shouldComparePosixChangeTime(platform) {
52
+ return platform !== "win32";
53
+ }
54
+ function currentPlatform() {
55
+ return globalThis.process?.platform;
56
+ }
57
+ //#endregion
58
+ export { assertSameScannedRegularFile, localFileIdentityFromStats };
59
+
60
+ //# sourceMappingURL=local-file-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-file-identity.js","names":[],"sources":["../../src/sync/local-file-identity.ts"],"sourcesContent":["import type { LocalFileIdentity, LocalSyncPath } from './types.ts'\n\ninterface LocalFileStatsLike {\n readonly dev: number\n readonly ino: number\n readonly mtimeMs: number\n readonly ctimeMs: number\n readonly size: number\n}\n\ninterface LocalRegularFileStatsLike extends LocalFileStatsLike {\n isFile(): boolean\n}\n\n/**\n * Converts Node file stats into the sync scanner's persisted identity shape.\n * @param stats - Node file stats to convert.\n *\n * @returns The scanner identity stored with a local sync path.\n *\n * @internal\n */\nexport function localFileIdentityFromStats(stats: LocalFileStatsLike): LocalFileIdentity {\n return {\n deviceId: stats.dev,\n inode: stats.ino,\n size: stats.size,\n modTimeMillis: Math.floor(stats.mtimeMs),\n changeTimeMillis: Math.floor(stats.ctimeMs),\n }\n}\n\n/**\n * Verifies that current local stats still match a previously scanned regular file.\n * @param stats - Current filesystem stats for the candidate file.\n * @param path - Previously scanned local sync path.\n * @param operation - Operation name used in mutation diagnostics.\n * @param options - Platform and ctime comparison overrides for controlled filesystem moves.\n *\n * @throws If the current file is not the scanned regular file.\n *\n * @internal\n */\nexport function assertSameScannedRegularFile(\n stats: LocalRegularFileStatsLike,\n path: LocalSyncPath,\n operation: 'upload' | 'download' | 'delete' | 'sha1 comparison' = 'upload',\n options: {\n readonly compareChangeTime?: boolean | undefined\n readonly platform?: string | undefined\n } = {},\n): void {\n const reason = `local file changed before ${operation}`\n if (!stats.isFile()) {\n if (operation === 'delete') {\n throw Object.assign(new Error(`${reason}: not a regular file`), { code: 'EISDIR' })\n }\n throw new Error(`${reason}: not a regular file`)\n }\n if (stats.size !== path.size) {\n throw new Error(`${reason}: size changed`)\n }\n\n const identity = path.fileIdentity\n if (identity === undefined) return\n\n if (\n !sameLocalIdentity(stats, identity, {\n compareChangeTime: options.compareChangeTime,\n platform: options.platform ?? currentPlatform(),\n })\n ) {\n throw new Error(reason)\n }\n}\n\nfunction sameLocalIdentity(\n stats: LocalFileStatsLike,\n identity: LocalFileIdentity,\n options: {\n readonly compareChangeTime?: boolean | undefined\n readonly platform: string | undefined\n },\n): boolean {\n const compareChangeTime =\n options.compareChangeTime ?? shouldComparePosixChangeTime(options.platform)\n return (\n (!shouldComparePosixFileIdentity(options.platform) ||\n (stats.dev === identity.deviceId && stats.ino === identity.inode)) &&\n stats.size === identity.size &&\n Math.floor(stats.mtimeMs) === identity.modTimeMillis &&\n (!compareChangeTime ||\n identity.changeTimeMillis === undefined ||\n Math.floor(stats.ctimeMs) === identity.changeTimeMillis)\n )\n}\n\nfunction shouldComparePosixFileIdentity(platform: string | undefined): boolean {\n return platform !== 'win32'\n}\n\nfunction shouldComparePosixChangeTime(platform: string | undefined): boolean {\n return platform !== 'win32'\n}\n\nfunction currentPlatform(): string | undefined {\n const processLike = (globalThis as { process?: { platform?: string } }).process\n return processLike?.platform\n}\n"],"mappings":";;;;;;;;;AAsBA,SAAgB,2BAA2B,OAA8C;CACvF,OAAO;EACL,UAAU,MAAM;EAChB,OAAO,MAAM;EACb,MAAM,MAAM;EACZ,eAAe,KAAK,MAAM,MAAM,OAAO;EACvC,kBAAkB,KAAK,MAAM,MAAM,OAAO;CAC5C;AACF;;;;;;;;;;;;AAaA,SAAgB,6BACd,OACA,MACA,YAAkE,UAClE,UAGI,CAAC,GACC;CACN,MAAM,SAAS,6BAA6B;CAC5C,IAAI,CAAC,MAAM,OAAO,GAAG;EACnB,IAAI,cAAc,UAChB,MAAM,OAAO,uBAAO,IAAI,MAAM,GAAG,OAAO,qBAAqB,GAAG,EAAE,MAAM,SAAS,CAAC;EAEpF,MAAM,IAAI,MAAM,GAAG,OAAO,qBAAqB;CACjD;CACA,IAAI,MAAM,SAAS,KAAK,MACtB,MAAM,IAAI,MAAM,GAAG,OAAO,eAAe;CAG3C,MAAM,WAAW,KAAK;CACtB,IAAI,aAAa,KAAA,GAAW;CAE5B,IACE,CAAC,kBAAkB,OAAO,UAAU;EAClC,mBAAmB,QAAQ;EAC3B,UAAU,QAAQ,YAAY,gBAAgB;CAChD,CAAC,GAED,MAAM,IAAI,MAAM,MAAM;AAE1B;AAEA,SAAS,kBACP,OACA,UACA,SAIS;CACT,MAAM,oBACJ,QAAQ,qBAAqB,6BAA6B,QAAQ,QAAQ;CAC5E,QACG,CAAC,+BAA+B,QAAQ,QAAQ,KAC9C,MAAM,QAAQ,SAAS,YAAY,MAAM,QAAQ,SAAS,UAC7D,MAAM,SAAS,SAAS,QACxB,KAAK,MAAM,MAAM,OAAO,MAAM,SAAS,kBACtC,CAAC,qBACA,SAAS,qBAAqB,KAAA,KAC9B,KAAK,MAAM,MAAM,OAAO,MAAM,SAAS;AAE7C;AAEA,SAAS,+BAA+B,UAAuC;CAC7E,OAAO,aAAa;AACtB;AAEA,SAAS,6BAA6B,UAAuC;CAC3E,OAAO,aAAa;AACtB;AAEA,SAAS,kBAAsC;CAE7C,OADqB,WAAmD,SACpD;AACtB"}