@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.
- package/CHANGELOG.md +110 -5
- package/README.md +144 -33
- package/dist/_virtual/_b2-sdk-version-json.cjs +4 -0
- package/dist/_virtual/_b2-sdk-version-json.js +4 -0
- package/dist/auth/account-info.d.cts +32 -0
- package/dist/auth/account-info.d.cts.map +1 -1
- package/dist/auth/account-info.d.ts +32 -0
- package/dist/auth/account-info.d.ts.map +1 -1
- package/dist/auth/file.cjs +408 -207
- package/dist/auth/file.cjs.map +1 -1
- package/dist/auth/file.d.cts +77 -3
- package/dist/auth/file.d.cts.map +1 -1
- package/dist/auth/file.d.ts +77 -3
- package/dist/auth/file.d.ts.map +1 -1
- package/dist/auth/file.js +407 -207
- package/dist/auth/file.js.map +1 -1
- package/dist/auth/in-memory.cjs +212 -183
- package/dist/auth/in-memory.cjs.map +1 -1
- package/dist/auth/in-memory.d.cts +8 -0
- package/dist/auth/in-memory.d.cts.map +1 -1
- package/dist/auth/in-memory.d.ts +8 -0
- package/dist/auth/in-memory.d.ts.map +1 -1
- package/dist/auth/in-memory.js +211 -182
- package/dist/auth/in-memory.js.map +1 -1
- package/dist/auth/index.cjs +7 -9
- package/dist/auth/index.d.cts +3 -2
- package/dist/auth/index.d.cts.map +1 -1
- package/dist/auth/index.d.ts +3 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +2 -8
- package/dist/auth/realms.cjs +80 -7
- package/dist/auth/realms.cjs.map +1 -1
- package/dist/auth/realms.d.cts +27 -4
- package/dist/auth/realms.d.cts.map +1 -1
- package/dist/auth/realms.d.ts +27 -4
- package/dist/auth/realms.d.ts.map +1 -1
- package/dist/auth/realms.js +80 -9
- package/dist/auth/realms.js.map +1 -1
- package/dist/auth/upload-url-pool.cjs +55 -51
- package/dist/auth/upload-url-pool.cjs.map +1 -1
- package/dist/auth/upload-url-pool.js +55 -51
- package/dist/auth/upload-url-pool.js.map +1 -1
- package/dist/bucket.cjs +785 -787
- package/dist/bucket.cjs.map +1 -1
- package/dist/bucket.d.cts +35 -47
- package/dist/bucket.d.cts.map +1 -1
- package/dist/bucket.d.ts +35 -47
- package/dist/bucket.d.ts.map +1 -1
- package/dist/bucket.js +780 -782
- package/dist/bucket.js.map +1 -1
- package/dist/client.cjs +246 -228
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +25 -17
- package/dist/client.d.cts.map +1 -1
- package/dist/client.d.ts +25 -17
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +243 -225
- package/dist/client.js.map +1 -1
- package/dist/copy/large.cjs +114 -71
- package/dist/copy/large.cjs.map +1 -1
- package/dist/copy/large.d.cts +6 -0
- package/dist/copy/large.d.cts.map +1 -1
- package/dist/copy/large.d.ts +6 -0
- package/dist/copy/large.d.ts.map +1 -1
- package/dist/copy/large.js +112 -69
- package/dist/copy/large.js.map +1 -1
- package/dist/download/checksum.cjs +89 -0
- package/dist/download/checksum.cjs.map +1 -0
- package/dist/download/checksum.d.cts +40 -0
- package/dist/download/checksum.d.cts.map +1 -0
- package/dist/download/checksum.d.ts +40 -0
- package/dist/download/checksum.d.ts.map +1 -0
- package/dist/download/checksum.js +87 -0
- package/dist/download/checksum.js.map +1 -0
- package/dist/download/parallel.cjs +214 -118
- package/dist/download/parallel.cjs.map +1 -1
- package/dist/download/parallel.d.cts +5 -1
- package/dist/download/parallel.d.cts.map +1 -1
- package/dist/download/parallel.d.ts +5 -1
- package/dist/download/parallel.d.ts.map +1 -1
- package/dist/download/parallel.js +212 -116
- package/dist/download/parallel.js.map +1 -1
- package/dist/download/single.cjs +188 -97
- package/dist/download/single.cjs.map +1 -1
- package/dist/download/single.d.cts +6 -1
- package/dist/download/single.d.cts.map +1 -1
- package/dist/download/single.d.ts +6 -1
- package/dist/download/single.d.ts.map +1 -1
- package/dist/download/single.js +186 -98
- package/dist/download/single.js.map +1 -1
- package/dist/errors/index.cjs +699 -243
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.d.cts +285 -82
- package/dist/errors/index.d.cts.map +1 -1
- package/dist/errors/index.d.ts +285 -82
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +678 -261
- package/dist/errors/index.js.map +1 -1
- package/dist/http/retry.cjs +45 -28
- package/dist/http/retry.cjs.map +1 -1
- package/dist/http/retry.d.cts +15 -2
- package/dist/http/retry.d.cts.map +1 -1
- package/dist/http/retry.d.ts +15 -2
- package/dist/http/retry.d.ts.map +1 -1
- package/dist/http/retry.js +46 -31
- package/dist/http/retry.js.map +1 -1
- package/dist/http/transport.cjs +438 -140
- package/dist/http/transport.cjs.map +1 -1
- package/dist/http/transport.d.cts +21 -2
- package/dist/http/transport.d.cts.map +1 -1
- package/dist/http/transport.d.ts +21 -2
- package/dist/http/transport.d.ts.map +1 -1
- package/dist/http/transport.js +437 -140
- package/dist/http/transport.js.map +1 -1
- package/dist/http/url-guard.cjs +154 -89
- package/dist/http/url-guard.cjs.map +1 -1
- package/dist/http/url-guard.d.cts +25 -3
- package/dist/http/url-guard.d.cts.map +1 -1
- package/dist/http/url-guard.d.ts +25 -3
- package/dist/http/url-guard.d.ts.map +1 -1
- package/dist/http/url-guard.js +152 -90
- package/dist/http/url-guard.js.map +1 -1
- package/dist/http/user-agent.cjs +84 -44
- package/dist/http/user-agent.cjs.map +1 -1
- package/dist/http/user-agent.js +84 -46
- package/dist/http/user-agent.js.map +1 -1
- package/dist/index.cjs +101 -77
- package/dist/index.d.cts +27 -21
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +27 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -71
- package/dist/internal/b2-naming.cjs +66 -0
- package/dist/internal/b2-naming.cjs.map +1 -0
- package/dist/internal/b2-naming.d.cts +43 -0
- package/dist/internal/b2-naming.d.cts.map +1 -0
- package/dist/internal/b2-naming.d.ts +43 -0
- package/dist/internal/b2-naming.d.ts.map +1 -0
- package/dist/internal/b2-naming.js +60 -0
- package/dist/internal/b2-naming.js.map +1 -0
- package/dist/internal/upload-retry-options.cjs +21 -0
- package/dist/internal/upload-retry-options.cjs.map +1 -0
- package/dist/internal/upload-retry-options.d.cts +12 -0
- package/dist/internal/upload-retry-options.d.cts.map +1 -0
- package/dist/internal/upload-retry-options.d.ts +12 -0
- package/dist/internal/upload-retry-options.d.ts.map +1 -0
- package/dist/internal/upload-retry-options.js +21 -0
- package/dist/internal/upload-retry-options.js.map +1 -0
- package/dist/internal/url-redaction.cjs +31 -0
- package/dist/internal/url-redaction.cjs.map +1 -0
- package/dist/internal/url-redaction.d.cts +17 -0
- package/dist/internal/url-redaction.d.cts.map +1 -0
- package/dist/internal/url-redaction.d.ts +17 -0
- package/dist/internal/url-redaction.d.ts.map +1 -0
- package/dist/internal/url-redaction.js +31 -0
- package/dist/internal/url-redaction.js.map +1 -0
- package/dist/notifications/index.cjs +4 -6
- package/dist/notifications/index.d.cts +1 -1
- package/dist/notifications/index.d.cts.map +1 -1
- package/dist/notifications/index.d.ts +1 -1
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +1 -6
- package/dist/notifications/webhook.cjs +195 -85
- package/dist/notifications/webhook.cjs.map +1 -1
- package/dist/notifications/webhook.d.cts.map +1 -1
- package/dist/notifications/webhook.d.ts.map +1 -1
- package/dist/notifications/webhook.js +195 -87
- package/dist/notifications/webhook.js.map +1 -1
- package/dist/object.cjs +253 -210
- package/dist/object.cjs.map +1 -1
- package/dist/object.d.cts +9 -55
- package/dist/object.d.cts.map +1 -1
- package/dist/object.d.ts +9 -55
- package/dist/object.d.ts.map +1 -1
- package/dist/object.js +249 -206
- package/dist/object.js.map +1 -1
- package/dist/raw/encoding.cjs +74 -35
- package/dist/raw/encoding.cjs.map +1 -1
- package/dist/raw/encoding.js +74 -38
- package/dist/raw/encoding.js.map +1 -1
- package/dist/raw/index.cjs +678 -587
- package/dist/raw/index.cjs.map +1 -1
- package/dist/raw/index.d.cts +121 -18
- package/dist/raw/index.d.cts.map +1 -1
- package/dist/raw/index.d.ts +121 -18
- package/dist/raw/index.d.ts.map +1 -1
- package/dist/raw/index.js +674 -589
- package/dist/raw/index.js.map +1 -1
- package/dist/s3/index.cjs +355 -18
- package/dist/s3/index.cjs.map +1 -1
- package/dist/s3/index.d.cts +233 -5
- package/dist/s3/index.d.cts.map +1 -1
- package/dist/s3/index.d.ts +233 -5
- package/dist/s3/index.d.ts.map +1 -1
- package/dist/s3/index.js +351 -22
- package/dist/s3/index.js.map +1 -1
- package/dist/s3/sigv4.cjs +149 -0
- package/dist/s3/sigv4.cjs.map +1 -0
- package/dist/s3/sigv4.d.cts +43 -0
- package/dist/s3/sigv4.d.cts.map +1 -0
- package/dist/s3/sigv4.d.ts +43 -0
- package/dist/s3/sigv4.d.ts.map +1 -0
- package/dist/s3/sigv4.js +148 -0
- package/dist/s3/sigv4.js.map +1 -0
- package/dist/s3/validation.cjs +69 -0
- package/dist/s3/validation.cjs.map +1 -0
- package/dist/s3/validation.d.cts +43 -0
- package/dist/s3/validation.d.cts.map +1 -0
- package/dist/s3/validation.d.ts +43 -0
- package/dist/s3/validation.d.ts.map +1 -0
- package/dist/s3/validation.js +66 -0
- package/dist/s3/validation.js.map +1 -0
- package/dist/simulator/capabilities.cjs +63 -48
- package/dist/simulator/capabilities.cjs.map +1 -1
- package/dist/simulator/capabilities.js +63 -49
- package/dist/simulator/capabilities.js.map +1 -1
- package/dist/simulator/index.cjs +2124 -1548
- package/dist/simulator/index.cjs.map +1 -1
- package/dist/simulator/index.d.cts +79 -11
- package/dist/simulator/index.d.cts.map +1 -1
- package/dist/simulator/index.d.ts +79 -11
- package/dist/simulator/index.d.ts.map +1 -1
- package/dist/simulator/index.js +2112 -1546
- package/dist/simulator/index.js.map +1 -1
- package/dist/simulator/validation.cjs +191 -153
- package/dist/simulator/validation.cjs.map +1 -1
- package/dist/simulator/validation.d.cts +3 -21
- package/dist/simulator/validation.d.cts.map +1 -1
- package/dist/simulator/validation.d.ts +3 -21
- package/dist/simulator/validation.d.ts.map +1 -1
- package/dist/simulator/validation.js +188 -162
- package/dist/simulator/validation.js.map +1 -1
- package/dist/streams/collect.cjs +74 -24
- package/dist/streams/collect.cjs.map +1 -1
- package/dist/streams/collect.d.cts +14 -1
- package/dist/streams/collect.d.cts.map +1 -1
- package/dist/streams/collect.d.ts +14 -1
- package/dist/streams/collect.d.ts.map +1 -1
- package/dist/streams/collect.js +74 -25
- package/dist/streams/collect.js.map +1 -1
- package/dist/streams/file-source.cjs +287 -0
- package/dist/streams/file-source.cjs.map +1 -0
- package/dist/streams/file-source.d.cts +96 -0
- package/dist/streams/file-source.d.cts.map +1 -0
- package/dist/streams/file-source.d.ts +96 -0
- package/dist/streams/file-source.d.ts.map +1 -0
- package/dist/streams/file-source.js +286 -0
- package/dist/streams/file-source.js.map +1 -0
- package/dist/streams/hash.cjs +207 -115
- package/dist/streams/hash.cjs.map +1 -1
- package/dist/streams/hash.d.cts +5 -4
- package/dist/streams/hash.d.cts.map +1 -1
- package/dist/streams/hash.d.ts +5 -4
- package/dist/streams/hash.d.ts.map +1 -1
- package/dist/streams/hash.js +208 -95
- package/dist/streams/hash.js.map +1 -1
- package/dist/streams/index.cjs +12 -12
- package/dist/streams/index.d.cts +3 -3
- package/dist/streams/index.d.cts.map +1 -1
- package/dist/streams/index.d.ts +3 -3
- package/dist/streams/index.d.ts.map +1 -1
- package/dist/streams/index.js +2 -10
- package/dist/streams/progress.cjs +60 -46
- package/dist/streams/progress.cjs.map +1 -1
- package/dist/streams/progress.js +60 -46
- package/dist/streams/progress.js.map +1 -1
- package/dist/streams/source.cjs +316 -146
- package/dist/streams/source.cjs.map +1 -1
- package/dist/streams/source.d.cts +56 -18
- package/dist/streams/source.d.cts.map +1 -1
- package/dist/streams/source.d.ts +56 -18
- package/dist/streams/source.d.ts.map +1 -1
- package/dist/streams/source.js +312 -149
- package/dist/streams/source.js.map +1 -1
- package/dist/sync/actions/index.cjs +236 -184
- package/dist/sync/actions/index.cjs.map +1 -1
- package/dist/sync/actions/index.d.cts +29 -21
- package/dist/sync/actions/index.d.cts.map +1 -1
- package/dist/sync/actions/index.d.ts +29 -21
- package/dist/sync/actions/index.d.ts.map +1 -1
- package/dist/sync/actions/index.js +236 -190
- package/dist/sync/actions/index.js.map +1 -1
- package/dist/sync/b2-sha1-reader.cjs +148 -0
- package/dist/sync/b2-sha1-reader.cjs.map +1 -0
- package/dist/sync/b2-sha1-reader.d.cts +58 -0
- package/dist/sync/b2-sha1-reader.d.cts.map +1 -0
- package/dist/sync/b2-sha1-reader.d.ts +58 -0
- package/dist/sync/b2-sha1-reader.d.ts.map +1 -0
- package/dist/sync/b2-sha1-reader.js +145 -0
- package/dist/sync/b2-sha1-reader.js.map +1 -0
- package/dist/sync/download-staging.cjs +265 -0
- package/dist/sync/download-staging.cjs.map +1 -0
- package/dist/sync/download-staging.d.cts +54 -0
- package/dist/sync/download-staging.d.cts.map +1 -0
- package/dist/sync/download-staging.d.ts +54 -0
- package/dist/sync/download-staging.d.ts.map +1 -0
- package/dist/sync/download-staging.js +259 -0
- package/dist/sync/download-staging.js.map +1 -0
- package/dist/sync/filesystem-errors.cjs +32 -0
- package/dist/sync/filesystem-errors.cjs.map +1 -0
- package/dist/sync/filesystem-errors.d.cts +8 -0
- package/dist/sync/filesystem-errors.d.cts.map +1 -0
- package/dist/sync/filesystem-errors.d.ts +8 -0
- package/dist/sync/filesystem-errors.d.ts.map +1 -0
- package/dist/sync/filesystem-errors.js +32 -0
- package/dist/sync/filesystem-errors.js.map +1 -0
- package/dist/sync/filters.cjs +217 -0
- package/dist/sync/filters.cjs.map +1 -0
- package/dist/sync/filters.d.cts +51 -0
- package/dist/sync/filters.d.cts.map +1 -0
- package/dist/sync/filters.d.ts +51 -0
- package/dist/sync/filters.d.ts.map +1 -0
- package/dist/sync/filters.js +213 -0
- package/dist/sync/filters.js.map +1 -0
- package/dist/sync/index.cjs +39 -22
- package/dist/sync/index.d.cts +14 -9
- package/dist/sync/index.d.cts.map +1 -1
- package/dist/sync/index.d.ts +14 -9
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +9 -20
- package/dist/sync/local-file-identity.cjs +61 -0
- package/dist/sync/local-file-identity.cjs.map +1 -0
- package/dist/sync/local-file-identity.d.cts +37 -0
- package/dist/sync/local-file-identity.d.cts.map +1 -0
- package/dist/sync/local-file-identity.d.ts +37 -0
- package/dist/sync/local-file-identity.d.ts.map +1 -0
- package/dist/sync/local-file-identity.js +60 -0
- package/dist/sync/local-file-identity.js.map +1 -0
- package/dist/sync/local-file-io.cjs +364 -0
- package/dist/sync/local-file-io.cjs.map +1 -0
- package/dist/sync/local-file-io.d.cts +75 -0
- package/dist/sync/local-file-io.d.cts.map +1 -0
- package/dist/sync/local-file-io.d.ts +75 -0
- package/dist/sync/local-file-io.d.ts.map +1 -0
- package/dist/sync/local-file-io.js +360 -0
- package/dist/sync/local-file-io.js.map +1 -0
- package/dist/sync/local-filesystem-root.cjs +27 -0
- package/dist/sync/local-filesystem-root.cjs.map +1 -0
- package/dist/sync/local-filesystem-root.d.cts +18 -0
- package/dist/sync/local-filesystem-root.d.cts.map +1 -0
- package/dist/sync/local-filesystem-root.d.ts +18 -0
- package/dist/sync/local-filesystem-root.d.ts.map +1 -0
- package/dist/sync/local-filesystem-root.js +26 -0
- package/dist/sync/local-filesystem-root.js.map +1 -0
- package/dist/sync/local-sha1.cjs +119 -0
- package/dist/sync/local-sha1.cjs.map +1 -0
- package/dist/sync/local-sha1.d.cts +39 -0
- package/dist/sync/local-sha1.d.cts.map +1 -0
- package/dist/sync/local-sha1.d.ts +39 -0
- package/dist/sync/local-sha1.d.ts.map +1 -0
- package/dist/sync/local-sha1.js +117 -0
- package/dist/sync/local-sha1.js.map +1 -0
- package/dist/sync/pairing.cjs +118 -29
- package/dist/sync/pairing.cjs.map +1 -1
- package/dist/sync/pairing.d.cts +7 -2
- package/dist/sync/pairing.d.cts.map +1 -1
- package/dist/sync/pairing.d.ts +7 -2
- package/dist/sync/pairing.d.ts.map +1 -1
- package/dist/sync/pairing.js +120 -31
- package/dist/sync/pairing.js.map +1 -1
- package/dist/sync/path-order.cjs +30 -0
- package/dist/sync/path-order.cjs.map +1 -0
- package/dist/sync/path-order.d.cts +28 -0
- package/dist/sync/path-order.d.cts.map +1 -0
- package/dist/sync/path-order.d.ts +28 -0
- package/dist/sync/path-order.d.ts.map +1 -0
- package/dist/sync/path-order.js +29 -0
- package/dist/sync/path-order.js.map +1 -0
- package/dist/sync/path-safety.cjs +111 -0
- package/dist/sync/path-safety.cjs.map +1 -0
- package/dist/sync/path-safety.d.cts +78 -0
- package/dist/sync/path-safety.d.cts.map +1 -0
- package/dist/sync/path-safety.d.ts +78 -0
- package/dist/sync/path-safety.d.ts.map +1 -0
- package/dist/sync/path-safety.js +105 -0
- package/dist/sync/path-safety.js.map +1 -0
- package/dist/sync/paths.d.cts +19 -0
- package/dist/sync/paths.d.cts.map +1 -0
- package/dist/sync/paths.d.ts +19 -0
- package/dist/sync/paths.d.ts.map +1 -0
- package/dist/sync/policies/compare.cjs +389 -11
- package/dist/sync/policies/compare.cjs.map +1 -1
- package/dist/sync/policies/compare.d.cts +100 -2
- package/dist/sync/policies/compare.d.cts.map +1 -1
- package/dist/sync/policies/compare.d.ts +100 -2
- package/dist/sync/policies/compare.d.ts.map +1 -1
- package/dist/sync/policies/compare.js +387 -13
- package/dist/sync/policies/compare.js.map +1 -1
- package/dist/sync/policies/index.cjs +76 -65
- package/dist/sync/policies/index.cjs.map +1 -1
- package/dist/sync/policies/index.d.cts +35 -6
- package/dist/sync/policies/index.d.cts.map +1 -1
- package/dist/sync/policies/index.d.ts +35 -6
- package/dist/sync/policies/index.d.ts.map +1 -1
- package/dist/sync/policies/index.js +76 -65
- package/dist/sync/policies/index.js.map +1 -1
- package/dist/sync/prefix.cjs +96 -0
- package/dist/sync/prefix.cjs.map +1 -0
- package/dist/sync/prefix.d.cts +55 -0
- package/dist/sync/prefix.d.cts.map +1 -0
- package/dist/sync/prefix.d.ts +55 -0
- package/dist/sync/prefix.d.ts.map +1 -0
- package/dist/sync/prefix.js +92 -0
- package/dist/sync/prefix.js.map +1 -0
- package/dist/sync/regexp-safety.cjs +192 -0
- package/dist/sync/regexp-safety.cjs.map +1 -0
- package/dist/sync/regexp-safety.d.cts +29 -0
- package/dist/sync/regexp-safety.d.cts.map +1 -0
- package/dist/sync/regexp-safety.d.ts +29 -0
- package/dist/sync/regexp-safety.d.ts.map +1 -0
- package/dist/sync/regexp-safety.js +190 -0
- package/dist/sync/regexp-safety.js.map +1 -0
- package/dist/sync/scan-events.cjs +33 -0
- package/dist/sync/scan-events.cjs.map +1 -0
- package/dist/sync/scan-events.d.cts +17 -0
- package/dist/sync/scan-events.d.cts.map +1 -0
- package/dist/sync/scan-events.d.ts +17 -0
- package/dist/sync/scan-events.d.ts.map +1 -0
- package/dist/sync/scan-events.js +32 -0
- package/dist/sync/scan-events.js.map +1 -0
- package/dist/sync/scan-limit.cjs +33 -0
- package/dist/sync/scan-limit.cjs.map +1 -0
- package/dist/sync/scan-limit.d.cts +21 -0
- package/dist/sync/scan-limit.d.cts.map +1 -0
- package/dist/sync/scan-limit.d.ts +21 -0
- package/dist/sync/scan-limit.d.ts.map +1 -0
- package/dist/sync/scan-limit.js +31 -0
- package/dist/sync/scan-limit.js.map +1 -0
- package/dist/sync/scanners/b2.cjs +239 -55
- package/dist/sync/scanners/b2.cjs.map +1 -1
- package/dist/sync/scanners/b2.d.cts +26 -7
- package/dist/sync/scanners/b2.d.cts.map +1 -1
- package/dist/sync/scanners/b2.d.ts +26 -7
- package/dist/sync/scanners/b2.d.ts.map +1 -1
- package/dist/sync/scanners/b2.js +239 -55
- package/dist/sync/scanners/b2.js.map +1 -1
- package/dist/sync/scanners/local.cjs +215 -56
- package/dist/sync/scanners/local.cjs.map +1 -1
- package/dist/sync/scanners/local.d.cts +22 -7
- package/dist/sync/scanners/local.d.cts.map +1 -1
- package/dist/sync/scanners/local.d.ts +22 -7
- package/dist/sync/scanners/local.d.ts.map +1 -1
- package/dist/sync/scanners/local.js +216 -57
- package/dist/sync/scanners/local.js.map +1 -1
- package/dist/sync/sha1-metadata.cjs +94 -0
- package/dist/sync/sha1-metadata.cjs.map +1 -0
- package/dist/sync/sha1-metadata.d.cts +82 -0
- package/dist/sync/sha1-metadata.d.cts.map +1 -0
- package/dist/sync/sha1-metadata.d.ts +82 -0
- package/dist/sync/sha1-metadata.d.ts.map +1 -0
- package/dist/sync/sha1-metadata.js +89 -0
- package/dist/sync/sha1-metadata.js.map +1 -0
- package/dist/sync/sha1-options.cjs +23 -0
- package/dist/sync/sha1-options.cjs.map +1 -0
- package/dist/sync/sha1-options.d.cts +14 -0
- package/dist/sync/sha1-options.d.cts.map +1 -0
- package/dist/sync/sha1-options.d.ts +14 -0
- package/dist/sync/sha1-options.d.ts.map +1 -0
- package/dist/sync/sha1-options.js +21 -0
- package/dist/sync/sha1-options.js.map +1 -0
- package/dist/sync/synchronizer.cjs +782 -197
- package/dist/sync/synchronizer.cjs.map +1 -1
- package/dist/sync/synchronizer.d.cts +47 -1
- package/dist/sync/synchronizer.d.cts.map +1 -1
- package/dist/sync/synchronizer.d.ts +47 -1
- package/dist/sync/synchronizer.d.ts.map +1 -1
- package/dist/sync/synchronizer.js +779 -173
- package/dist/sync/synchronizer.js.map +1 -1
- package/dist/sync/types.d.cts +208 -16
- package/dist/sync/types.d.cts.map +1 -1
- package/dist/sync/types.d.ts +208 -16
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/types/auth.cjs +76 -56
- package/dist/types/auth.cjs.map +1 -1
- package/dist/types/auth.d.cts +67 -9
- package/dist/types/auth.d.cts.map +1 -1
- package/dist/types/auth.d.ts +67 -9
- package/dist/types/auth.d.ts.map +1 -1
- package/dist/types/auth.js +77 -57
- package/dist/types/auth.js.map +1 -1
- package/dist/types/bucket.cjs +74 -38
- package/dist/types/bucket.cjs.map +1 -1
- package/dist/types/bucket.js +75 -41
- package/dist/types/bucket.js.map +1 -1
- package/dist/types/encryption.cjs +364 -327
- package/dist/types/encryption.cjs.map +1 -1
- package/dist/types/encryption.d.cts +16 -0
- package/dist/types/encryption.d.cts.map +1 -1
- package/dist/types/encryption.d.ts +16 -0
- package/dist/types/encryption.d.ts.map +1 -1
- package/dist/types/encryption.js +364 -310
- package/dist/types/encryption.js.map +1 -1
- package/dist/types/errors.cjs +47 -0
- package/dist/types/errors.cjs.map +1 -0
- package/dist/types/errors.d.cts +13 -4
- package/dist/types/errors.d.cts.map +1 -1
- package/dist/types/errors.d.ts +13 -4
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/errors.js +47 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/file.cjs +36 -19
- package/dist/types/file.cjs.map +1 -1
- package/dist/types/file.d.cts +2 -2
- package/dist/types/file.d.cts.map +1 -1
- package/dist/types/file.d.ts +2 -2
- package/dist/types/file.d.ts.map +1 -1
- package/dist/types/file.js +37 -21
- package/dist/types/file.js.map +1 -1
- package/dist/types/ids.cjs +53 -9
- package/dist/types/ids.cjs.map +1 -1
- package/dist/types/ids.js +54 -15
- package/dist/types/ids.js.map +1 -1
- package/dist/types/index.d.cts +12 -11
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +12 -11
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/key.d.cts +44 -8
- package/dist/types/key.d.cts.map +1 -1
- package/dist/types/key.d.ts +44 -8
- package/dist/types/key.d.ts.map +1 -1
- package/dist/types/lock.cjs +33 -13
- package/dist/types/lock.cjs.map +1 -1
- package/dist/types/lock.js +34 -15
- package/dist/types/lock.js.map +1 -1
- package/dist/types/notifications.cjs +44 -22
- package/dist/types/notifications.cjs.map +1 -1
- package/dist/types/notifications.js +45 -23
- package/dist/types/notifications.js.map +1 -1
- package/dist/types/upload.d.cts +39 -5
- package/dist/types/upload.d.cts.map +1 -1
- package/dist/types/upload.d.ts +39 -5
- package/dist/types/upload.d.ts.map +1 -1
- package/dist/upload/abort-scope.cjs +91 -0
- package/dist/upload/abort-scope.cjs.map +1 -0
- package/dist/upload/abort-scope.d.cts +48 -0
- package/dist/upload/abort-scope.d.cts.map +1 -0
- package/dist/upload/abort-scope.d.ts +48 -0
- package/dist/upload/abort-scope.d.ts.map +1 -0
- package/dist/upload/abort-scope.js +88 -0
- package/dist/upload/abort-scope.js.map +1 -0
- package/dist/upload/cancel.cjs +183 -8
- package/dist/upload/cancel.cjs.map +1 -1
- package/dist/upload/cancel.d.cts +110 -2
- package/dist/upload/cancel.d.cts.map +1 -1
- package/dist/upload/cancel.d.ts +110 -2
- package/dist/upload/cancel.d.ts.map +1 -1
- package/dist/upload/cancel.js +178 -9
- package/dist/upload/cancel.js.map +1 -1
- package/dist/upload/concurrency.cjs +79 -52
- package/dist/upload/concurrency.cjs.map +1 -1
- package/dist/upload/concurrency.js +79 -53
- package/dist/upload/concurrency.js.map +1 -1
- package/dist/upload/finish.cjs +59 -0
- package/dist/upload/finish.cjs.map +1 -0
- package/dist/upload/finish.d.cts +26 -0
- package/dist/upload/finish.d.cts.map +1 -0
- package/dist/upload/finish.d.ts +26 -0
- package/dist/upload/finish.d.ts.map +1 -0
- package/dist/upload/finish.js +59 -0
- package/dist/upload/finish.js.map +1 -0
- package/dist/upload/large.cjs +301 -218
- package/dist/upload/large.cjs.map +1 -1
- package/dist/upload/large.d.cts +76 -9
- package/dist/upload/large.d.cts.map +1 -1
- package/dist/upload/large.d.ts +76 -9
- package/dist/upload/large.d.ts.map +1 -1
- package/dist/upload/large.js +301 -218
- package/dist/upload/large.js.map +1 -1
- package/dist/upload/options.cjs +28 -0
- package/dist/upload/options.cjs.map +1 -0
- package/dist/upload/options.d.cts +104 -0
- package/dist/upload/options.d.cts.map +1 -0
- package/dist/upload/options.d.ts +104 -0
- package/dist/upload/options.d.ts.map +1 -0
- package/dist/upload/options.js +27 -0
- package/dist/upload/options.js.map +1 -0
- package/dist/upload/resume.cjs +333 -33
- package/dist/upload/resume.cjs.map +1 -1
- package/dist/upload/resume.d.cts +82 -12
- package/dist/upload/resume.d.cts.map +1 -1
- package/dist/upload/resume.d.ts +82 -12
- package/dist/upload/resume.d.ts.map +1 -1
- package/dist/upload/resume.js +330 -33
- package/dist/upload/resume.js.map +1 -1
- package/dist/upload/retry.cjs +186 -0
- package/dist/upload/retry.cjs.map +1 -0
- package/dist/upload/retry.d.cts +127 -0
- package/dist/upload/retry.d.cts.map +1 -0
- package/dist/upload/retry.d.ts +127 -0
- package/dist/upload/retry.d.ts.map +1 -0
- package/dist/upload/retry.js +182 -0
- package/dist/upload/retry.js.map +1 -0
- package/dist/upload/single.cjs +68 -44
- package/dist/upload/single.cjs.map +1 -1
- package/dist/upload/single.d.cts +2 -1
- package/dist/upload/single.d.cts.map +1 -1
- package/dist/upload/single.d.ts +2 -1
- package/dist/upload/single.d.ts.map +1 -1
- package/dist/upload/single.js +68 -44
- package/dist/upload/single.js.map +1 -1
- package/dist/upload/stream.cjs +317 -193
- package/dist/upload/stream.cjs.map +1 -1
- package/dist/upload/stream.d.cts +3 -1
- package/dist/upload/stream.d.cts.map +1 -1
- package/dist/upload/stream.d.ts +3 -1
- package/dist/upload/stream.d.ts.map +1 -1
- package/dist/upload/stream.js +316 -192
- package/dist/upload/stream.js.map +1 -1
- package/dist/util/best-effort.cjs +42 -8
- package/dist/util/best-effort.cjs.map +1 -1
- package/dist/util/best-effort.d.cts +2 -1
- package/dist/util/best-effort.d.cts.map +1 -1
- package/dist/util/best-effort.d.ts +2 -1
- package/dist/util/best-effort.d.ts.map +1 -1
- package/dist/util/best-effort.js +43 -9
- package/dist/util/best-effort.js.map +1 -1
- package/dist/util/bytes.cjs +23 -0
- package/dist/util/bytes.cjs.map +1 -0
- package/dist/util/bytes.d.cts +15 -0
- package/dist/util/bytes.d.cts.map +1 -0
- package/dist/util/bytes.d.ts +15 -0
- package/dist/util/bytes.d.ts.map +1 -0
- package/dist/util/bytes.js +23 -0
- package/dist/util/bytes.js.map +1 -0
- package/dist/util/crypto.cjs +68 -0
- package/dist/util/crypto.cjs.map +1 -0
- package/dist/util/crypto.d.cts +26 -0
- package/dist/util/crypto.d.cts.map +1 -0
- package/dist/util/crypto.d.ts +26 -0
- package/dist/util/crypto.d.ts.map +1 -0
- package/dist/util/crypto.js +66 -0
- package/dist/util/crypto.js.map +1 -0
- package/dist/util/defaults.cjs +25 -9
- package/dist/util/defaults.cjs.map +1 -1
- package/dist/util/defaults.js +26 -11
- package/dist/util/defaults.js.map +1 -1
- package/dist/util/error-reason.cjs +41 -0
- package/dist/util/error-reason.cjs.map +1 -0
- package/dist/util/error-reason.d.cts +9 -0
- package/dist/util/error-reason.d.cts.map +1 -0
- package/dist/util/error-reason.d.ts +9 -0
- package/dist/util/error-reason.d.ts.map +1 -0
- package/dist/util/error-reason.js +41 -0
- package/dist/util/error-reason.js.map +1 -0
- package/dist/util/http.cjs +23 -0
- package/dist/util/http.cjs.map +1 -0
- package/dist/util/http.d.cts +13 -0
- package/dist/util/http.d.cts.map +1 -0
- package/dist/util/http.d.ts +13 -0
- package/dist/util/http.d.ts.map +1 -0
- package/dist/util/http.js +23 -0
- package/dist/util/http.js.map +1 -0
- package/dist/util/normalize.cjs +66 -7
- package/dist/util/normalize.cjs.map +1 -1
- package/dist/util/normalize.js +67 -10
- package/dist/util/normalize.js.map +1 -1
- package/dist/util/paginator.cjs +63 -14
- package/dist/util/paginator.cjs.map +1 -1
- package/dist/util/paginator.js +64 -16
- package/dist/util/paginator.js.map +1 -1
- package/dist/util/plan-ranges.cjs +47 -22
- package/dist/util/plan-ranges.cjs.map +1 -1
- package/dist/util/plan-ranges.js +48 -24
- package/dist/util/plan-ranges.js.map +1 -1
- package/dist/util/sha1.cjs +27 -0
- package/dist/util/sha1.cjs.map +1 -0
- package/dist/util/sha1.d.cts +17 -0
- package/dist/util/sha1.d.cts.map +1 -0
- package/dist/util/sha1.d.ts +17 -0
- package/dist/util/sha1.d.ts.map +1 -0
- package/dist/util/sha1.js +26 -0
- package/dist/util/sha1.js.map +1 -0
- package/dist/util/text-codec.cjs +29 -5
- package/dist/util/text-codec.cjs.map +1 -1
- package/dist/util/text-codec.js +30 -7
- package/dist/util/text-codec.js.map +1 -1
- package/dist/util/to-error.cjs +18 -4
- package/dist/util/to-error.cjs.map +1 -1
- package/dist/util/to-error.js +19 -5
- package/dist/util/to-error.js.map +1 -1
- package/dist/version.cjs +17 -5
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.cts +3 -3
- package/dist/version.d.ts +3 -3
- package/dist/version.js +19 -6
- package/dist/version.js.map +1 -1
- package/package.json +19 -16
- package/dist/auth/index.cjs.map +0 -1
- package/dist/auth/index.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/notifications/index.cjs.map +0 -1
- package/dist/notifications/index.js.map +0 -1
- package/dist/package.json.cjs +0 -9
- package/dist/package.json.cjs.map +0 -1
- package/dist/package.json.js +0 -9
- package/dist/package.json.js.map +0 -1
- package/dist/streams/index.cjs.map +0 -1
- package/dist/streams/index.js.map +0 -1
- package/dist/sync/index.cjs.map +0 -1
- package/dist/sync/index.js.map +0 -1
package/dist/sync/index.cjs
CHANGED
|
@@ -1,23 +1,40 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
exports.
|
|
15
|
-
exports.
|
|
16
|
-
exports.
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
19
|
-
exports.
|
|
20
|
-
exports.
|
|
21
|
-
exports.SkipAction =
|
|
22
|
-
exports.UploadAction =
|
|
23
|
-
|
|
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;
|
package/dist/sync/index.d.cts
CHANGED
|
@@ -6,16 +6,21 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
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 {
|
|
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
|
|
20
|
-
export
|
|
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,
|
|
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"}
|
package/dist/sync/index.d.ts
CHANGED
|
@@ -6,16 +6,21 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
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 {
|
|
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
|
|
20
|
-
export
|
|
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
|
package/dist/sync/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,
|
|
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"}
|
package/dist/sync/index.js
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
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 {
|
|
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
|
-
|
|
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"}
|