@backblaze-labs/b2-sdk 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +151 -5
- package/README.md +163 -34
- 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/backup/client.cjs +206 -0
- package/dist/backup/client.cjs.map +1 -0
- package/dist/backup/client.d.cts +238 -0
- package/dist/backup/client.d.cts.map +1 -0
- package/dist/backup/client.d.ts +238 -0
- package/dist/backup/client.d.ts.map +1 -0
- package/dist/backup/client.js +206 -0
- package/dist/backup/client.js.map +1 -0
- package/dist/backup/index.cjs +15 -0
- package/dist/backup/index.d.cts +22 -0
- package/dist/backup/index.d.cts.map +1 -0
- package/dist/backup/index.d.ts +22 -0
- package/dist/backup/index.d.ts.map +1 -0
- package/dist/backup/index.js +7 -0
- package/dist/backup/raw.cjs +146 -0
- package/dist/backup/raw.cjs.map +1 -0
- package/dist/backup/raw.d.cts +122 -0
- package/dist/backup/raw.d.cts.map +1 -0
- package/dist/backup/raw.d.ts +122 -0
- package/dist/backup/raw.d.ts.map +1 -0
- package/dist/backup/raw.js +146 -0
- package/dist/backup/raw.js.map +1 -0
- package/dist/bucket.cjs +786 -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 +781 -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 +116 -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 +114 -69
- package/dist/copy/large.js.map +1 -1
- package/dist/download/checksum.cjs +93 -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 +91 -0
- package/dist/download/checksum.js.map +1 -0
- package/dist/download/parallel.cjs +251 -118
- package/dist/download/parallel.cjs.map +1 -1
- package/dist/download/parallel.d.cts +13 -2
- package/dist/download/parallel.d.cts.map +1 -1
- package/dist/download/parallel.d.ts +13 -2
- package/dist/download/parallel.d.ts.map +1 -1
- package/dist/download/parallel.js +249 -116
- package/dist/download/parallel.js.map +1 -1
- package/dist/download/single.cjs +323 -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 +322 -99
- package/dist/download/single.js.map +1 -1
- package/dist/errors/index.cjs +869 -243
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.d.cts +404 -82
- package/dist/errors/index.d.cts.map +1 -1
- package/dist/errors/index.d.ts +404 -82
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +835 -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 +476 -140
- package/dist/http/transport.cjs.map +1 -1
- package/dist/http/transport.d.cts +46 -5
- package/dist/http/transport.d.cts.map +1 -1
- package/dist/http/transport.d.ts +46 -5
- package/dist/http/transport.d.ts.map +1 -1
- package/dist/http/transport.js +474 -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 +124 -77
- package/dist/index.d.cts +29 -21
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +29 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -72
- 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 +13 -57
- package/dist/object.d.cts.map +1 -1
- package/dist/object.d.ts +13 -57
- package/dist/object.d.ts.map +1 -1
- package/dist/object.js +249 -206
- package/dist/object.js.map +1 -1
- package/dist/partner/account-info.d.cts +43 -0
- package/dist/partner/account-info.d.cts.map +1 -0
- package/dist/partner/account-info.d.ts +43 -0
- package/dist/partner/account-info.d.ts.map +1 -0
- package/dist/partner/auth-clone.cjs +64 -0
- package/dist/partner/auth-clone.cjs.map +1 -0
- package/dist/partner/auth-clone.d.cts +27 -0
- package/dist/partner/auth-clone.d.cts.map +1 -0
- package/dist/partner/auth-clone.d.ts +27 -0
- package/dist/partner/auth-clone.d.ts.map +1 -0
- package/dist/partner/auth-clone.js +63 -0
- package/dist/partner/auth-clone.js.map +1 -0
- package/dist/partner/auth-core.cjs +175 -0
- package/dist/partner/auth-core.cjs.map +1 -0
- package/dist/partner/auth-core.d.cts +111 -0
- package/dist/partner/auth-core.d.cts.map +1 -0
- package/dist/partner/auth-core.d.ts +111 -0
- package/dist/partner/auth-core.d.ts.map +1 -0
- package/dist/partner/auth-core.js +175 -0
- package/dist/partner/auth-core.js.map +1 -0
- package/dist/partner/auth-shape.cjs +36 -0
- package/dist/partner/auth-shape.cjs.map +1 -0
- package/dist/partner/auth-shape.d.cts +12 -0
- package/dist/partner/auth-shape.d.cts.map +1 -0
- package/dist/partner/auth-shape.d.ts +12 -0
- package/dist/partner/auth-shape.d.ts.map +1 -0
- package/dist/partner/auth-shape.js +36 -0
- package/dist/partner/auth-shape.js.map +1 -0
- package/dist/partner/client.cjs +255 -0
- package/dist/partner/client.cjs.map +1 -0
- package/dist/partner/client.d.cts +335 -0
- package/dist/partner/client.d.cts.map +1 -0
- package/dist/partner/client.d.ts +335 -0
- package/dist/partner/client.d.ts.map +1 -0
- package/dist/partner/client.js +255 -0
- package/dist/partner/client.js.map +1 -0
- package/dist/partner/endpoint-url.cjs +108 -0
- package/dist/partner/endpoint-url.cjs.map +1 -0
- package/dist/partner/endpoint-url.d.cts +72 -0
- package/dist/partner/endpoint-url.d.cts.map +1 -0
- package/dist/partner/endpoint-url.d.ts +72 -0
- package/dist/partner/endpoint-url.d.ts.map +1 -0
- package/dist/partner/endpoint-url.js +105 -0
- package/dist/partner/endpoint-url.js.map +1 -0
- package/dist/partner/in-memory.cjs +135 -0
- package/dist/partner/in-memory.cjs.map +1 -0
- package/dist/partner/in-memory.d.cts +99 -0
- package/dist/partner/in-memory.d.cts.map +1 -0
- package/dist/partner/in-memory.d.ts +99 -0
- package/dist/partner/in-memory.d.ts.map +1 -0
- package/dist/partner/in-memory.js +135 -0
- package/dist/partner/in-memory.js.map +1 -0
- package/dist/partner/index.cjs +18 -0
- package/dist/partner/index.d.cts +23 -0
- package/dist/partner/index.d.cts.map +1 -0
- package/dist/partner/index.d.ts +23 -0
- package/dist/partner/index.d.ts.map +1 -0
- package/dist/partner/index.js +7 -0
- package/dist/partner/raw.cjs +392 -0
- package/dist/partner/raw.cjs.map +1 -0
- package/dist/partner/raw.d.cts +223 -0
- package/dist/partner/raw.d.cts.map +1 -0
- package/dist/partner/raw.d.ts +223 -0
- package/dist/partner/raw.d.ts.map +1 -0
- package/dist/partner/raw.js +390 -0
- package/dist/partner/raw.js.map +1 -0
- package/dist/partner/redaction-placeholders.cjs +10 -0
- package/dist/partner/redaction-placeholders.cjs.map +1 -0
- package/dist/partner/redaction-placeholders.d.cts +5 -0
- package/dist/partner/redaction-placeholders.d.cts.map +1 -0
- package/dist/partner/redaction-placeholders.d.ts +5 -0
- package/dist/partner/redaction-placeholders.d.ts.map +1 -0
- package/dist/partner/redaction-placeholders.js +9 -0
- package/dist/partner/redaction-placeholders.js.map +1 -0
- package/dist/partner/redaction.cjs +267 -0
- package/dist/partner/redaction.cjs.map +1 -0
- package/dist/partner/redaction.d.cts +124 -0
- package/dist/partner/redaction.d.cts.map +1 -0
- package/dist/partner/redaction.d.ts +124 -0
- package/dist/partner/redaction.d.ts.map +1 -0
- package/dist/partner/redaction.js +257 -0
- package/dist/partner/redaction.js.map +1 -0
- 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 +740 -587
- package/dist/raw/index.cjs.map +1 -1
- package/dist/raw/index.d.cts +126 -19
- package/dist/raw/index.d.cts.map +1 -1
- package/dist/raw/index.d.ts +126 -19
- package/dist/raw/index.d.ts.map +1 -1
- package/dist/raw/index.js +736 -589
- package/dist/raw/index.js.map +1 -1
- package/dist/raw/url.cjs +111 -0
- package/dist/raw/url.cjs.map +1 -0
- package/dist/raw/url.d.cts +41 -0
- package/dist/raw/url.d.cts.map +1 -0
- package/dist/raw/url.d.ts +41 -0
- package/dist/raw/url.d.ts.map +1 -0
- package/dist/raw/url.js +110 -0
- package/dist/raw/url.js.map +1 -0
- 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 +154 -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 +153 -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 +3114 -1547
- package/dist/simulator/index.cjs.map +1 -1
- package/dist/simulator/index.d.cts +186 -20
- package/dist/simulator/index.d.cts.map +1 -1
- package/dist/simulator/index.d.ts +186 -20
- package/dist/simulator/index.d.ts.map +1 -1
- package/dist/simulator/index.js +3098 -1545
- package/dist/simulator/index.js.map +1 -1
- package/dist/simulator/partner.cjs +719 -0
- package/dist/simulator/partner.cjs.map +1 -0
- package/dist/simulator/partner.d.cts +183 -0
- package/dist/simulator/partner.d.cts.map +1 -0
- package/dist/simulator/partner.d.ts +183 -0
- package/dist/simulator/partner.d.ts.map +1 -0
- package/dist/simulator/partner.js +718 -0
- package/dist/simulator/partner.js.map +1 -0
- package/dist/simulator/validation.cjs +772 -157
- package/dist/simulator/validation.cjs.map +1 -1
- package/dist/simulator/validation.d.cts +120 -21
- package/dist/simulator/validation.d.cts.map +1 -1
- package/dist/simulator/validation.d.ts +120 -21
- package/dist/simulator/validation.d.ts.map +1 -1
- package/dist/simulator/validation.js +755 -167
- 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 +3 -11
- 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 +317 -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 +313 -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 +152 -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 +149 -0
- package/dist/sync/b2-sha1-reader.js.map +1 -0
- package/dist/sync/download-staging.cjs +266 -0
- package/dist/sync/download-staging.cjs.map +1 -0
- package/dist/sync/download-staging.d.cts +55 -0
- package/dist/sync/download-staging.d.cts.map +1 -0
- package/dist/sync/download-staging.d.ts +55 -0
- package/dist/sync/download-staging.d.ts.map +1 -0
- package/dist/sync/download-staging.js +260 -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 +369 -0
- package/dist/sync/local-file-io.cjs.map +1 -0
- package/dist/sync/local-file-io.d.cts +76 -0
- package/dist/sync/local-file-io.d.cts.map +1 -0
- package/dist/sync/local-file-io.d.ts +76 -0
- package/dist/sync/local-file-io.d.ts.map +1 -0
- package/dist/sync/local-file-io.js +365 -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 +110 -0
- package/dist/sync/local-sha1.cjs.map +1 -0
- package/dist/sync/local-sha1.d.cts +31 -0
- package/dist/sync/local-sha1.d.cts.map +1 -0
- package/dist/sync/local-sha1.d.ts +31 -0
- package/dist/sync/local-sha1.d.ts.map +1 -0
- package/dist/sync/local-sha1.js +109 -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 +391 -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 +389 -13
- package/dist/sync/policies/compare.js.map +1 -1
- package/dist/sync/policies/index.cjs +70 -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 +70 -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 +783 -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 +780 -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 +80 -56
- package/dist/types/auth.cjs.map +1 -1
- package/dist/types/auth.d.cts +71 -9
- package/dist/types/auth.d.cts.map +1 -1
- package/dist/types/auth.d.ts +71 -9
- package/dist/types/auth.d.ts.map +1 -1
- package/dist/types/auth.js +81 -57
- package/dist/types/auth.js.map +1 -1
- package/dist/types/backup.d.cts +80 -0
- package/dist/types/backup.d.cts.map +1 -0
- package/dist/types/backup.d.ts +80 -0
- package/dist/types/backup.d.ts.map +1 -0
- package/dist/types/bucket.cjs +74 -38
- package/dist/types/bucket.cjs.map +1 -1
- package/dist/types/bucket.d.cts +4 -2
- package/dist/types/bucket.d.cts.map +1 -1
- package/dist/types/bucket.d.ts +4 -2
- package/dist/types/bucket.d.ts.map +1 -1
- package/dist/types/bucket.js +75 -41
- package/dist/types/bucket.js.map +1 -1
- package/dist/types/download.cjs +62 -0
- package/dist/types/download.cjs.map +1 -0
- package/dist/types/download.d.cts +98 -0
- package/dist/types/download.d.cts.map +1 -1
- package/dist/types/download.d.ts +98 -0
- package/dist/types/download.d.ts.map +1 -1
- package/dist/types/download.js +61 -0
- package/dist/types/download.js.map +1 -0
- package/dist/types/encryption.cjs +194 -328
- package/dist/types/encryption.cjs.map +1 -1
- package/dist/types/encryption.d.cts +48 -0
- package/dist/types/encryption.d.cts.map +1 -1
- package/dist/types/encryption.d.ts +48 -0
- package/dist/types/encryption.d.ts.map +1 -1
- package/dist/types/encryption.js +192 -311
- package/dist/types/encryption.js.map +1 -1
- package/dist/types/errors.cjs +56 -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 +56 -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 +17 -4
- package/dist/types/file.d.cts.map +1 -1
- package/dist/types/file.d.ts +17 -4
- 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 +83 -9
- package/dist/types/ids.cjs.map +1 -1
- package/dist/types/ids.d.cts +32 -0
- package/dist/types/ids.d.cts.map +1 -1
- package/dist/types/ids.d.ts +32 -0
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +82 -16
- package/dist/types/ids.js.map +1 -1
- package/dist/types/index.d.cts +18 -13
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +18 -13
- 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.d.cts +14 -0
- package/dist/types/lock.d.cts.map +1 -1
- package/dist/types/lock.d.ts +14 -0
- package/dist/types/lock.d.ts.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.d.cts +5 -3
- package/dist/types/notifications.d.cts.map +1 -1
- package/dist/types/notifications.d.ts +5 -3
- package/dist/types/notifications.d.ts.map +1 -1
- package/dist/types/notifications.js +45 -23
- package/dist/types/notifications.js.map +1 -1
- package/dist/types/partner.cjs +32 -0
- package/dist/types/partner.cjs.map +1 -0
- package/dist/types/partner.d.cts +394 -0
- package/dist/types/partner.d.cts.map +1 -0
- package/dist/types/partner.d.ts +394 -0
- package/dist/types/partner.d.ts.map +1 -0
- package/dist/types/partner.js +29 -0
- package/dist/types/partner.js.map +1 -0
- package/dist/types/upload.d.cts +53 -6
- package/dist/types/upload.d.cts.map +1 -1
- package/dist/types/upload.d.ts +53 -6
- package/dist/types/upload.d.ts.map +1 -1
- package/dist/upload/abort-scope.cjs +46 -0
- package/dist/upload/abort-scope.cjs.map +1 -0
- package/dist/upload/abort-scope.d.cts +26 -0
- package/dist/upload/abort-scope.d.cts.map +1 -0
- package/dist/upload/abort-scope.d.ts +26 -0
- package/dist/upload/abort-scope.d.ts.map +1 -0
- package/dist/upload/abort-scope.js +45 -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 +54 -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 +54 -0
- package/dist/upload/finish.js.map +1 -0
- package/dist/upload/large.cjs +305 -218
- package/dist/upload/large.cjs.map +1 -1
- package/dist/upload/large.d.cts +90 -9
- package/dist/upload/large.d.cts.map +1 -1
- package/dist/upload/large.d.ts +90 -9
- package/dist/upload/large.d.ts.map +1 -1
- package/dist/upload/large.js +305 -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 +116 -0
- package/dist/upload/options.d.cts.map +1 -0
- package/dist/upload/options.d.ts +116 -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 +334 -33
- package/dist/upload/resume.cjs.map +1 -1
- package/dist/upload/resume.d.cts +84 -12
- package/dist/upload/resume.d.cts.map +1 -1
- package/dist/upload/resume.d.ts +84 -12
- package/dist/upload/resume.d.ts.map +1 -1
- package/dist/upload/resume.js +331 -33
- package/dist/upload/resume.js.map +1 -1
- package/dist/upload/retry.cjs +191 -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 +187 -0
- package/dist/upload/retry.js.map +1 -0
- package/dist/upload/single.cjs +69 -44
- package/dist/upload/single.cjs.map +1 -1
- package/dist/upload/single.d.cts +8 -1
- package/dist/upload/single.d.cts.map +1 -1
- package/dist/upload/single.d.ts +8 -1
- package/dist/upload/single.d.ts.map +1 -1
- package/dist/upload/single.js +69 -44
- package/dist/upload/single.js.map +1 -1
- package/dist/upload/stream.cjs +319 -193
- package/dist/upload/stream.cjs.map +1 -1
- package/dist/upload/stream.d.cts +9 -1
- package/dist/upload/stream.d.cts.map +1 -1
- package/dist/upload/stream.d.ts +9 -1
- package/dist/upload/stream.d.ts.map +1 -1
- package/dist/upload/stream.js +318 -192
- package/dist/upload/stream.js.map +1 -1
- package/dist/util/abort.cjs +114 -0
- package/dist/util/abort.cjs.map +1 -0
- package/dist/util/abort.d.cts +65 -0
- package/dist/util/abort.d.cts.map +1 -0
- package/dist/util/abort.d.ts +65 -0
- package/dist/util/abort.d.ts.map +1 -0
- package/dist/util/abort.js +109 -0
- package/dist/util/abort.js.map +1 -0
- 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 +28 -9
- package/dist/util/defaults.cjs.map +1 -1
- package/dist/util/defaults.d.cts +2 -0
- package/dist/util/defaults.d.cts.map +1 -1
- package/dist/util/defaults.d.ts +2 -0
- package/dist/util/defaults.d.ts.map +1 -1
- package/dist/util/defaults.js +28 -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/md5.cjs +211 -0
- package/dist/util/md5.cjs.map +1 -0
- package/dist/util/md5.d.cts +43 -0
- package/dist/util/md5.d.cts.map +1 -0
- package/dist/util/md5.d.ts +43 -0
- package/dist/util/md5.d.ts.map +1 -0
- package/dist/util/md5.js +209 -0
- package/dist/util/md5.js.map +1 -0
- package/dist/util/normalize.cjs +66 -7
- package/dist/util/normalize.cjs.map +1 -1
- package/dist/util/normalize.d.cts +7 -7
- package/dist/util/normalize.d.cts.map +1 -1
- package/dist/util/normalize.d.ts +7 -7
- package/dist/util/normalize.d.ts.map +1 -1
- package/dist/util/normalize.js +67 -10
- package/dist/util/normalize.js.map +1 -1
- package/dist/util/paginator.cjs +69 -14
- package/dist/util/paginator.cjs.map +1 -1
- package/dist/util/paginator.d.cts +3 -1
- package/dist/util/paginator.d.cts.map +1 -1
- package/dist/util/paginator.d.ts +3 -1
- package/dist/util/paginator.d.ts.map +1 -1
- package/dist/util/paginator.js +70 -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 +45 -20
- 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
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const require_errors_index = require("../errors/index.cjs");
|
|
2
|
+
const require_hash = require("../streams/hash.cjs");
|
|
3
|
+
const require_sha1 = require("../util/sha1.cjs");
|
|
4
|
+
//#region src/download/checksum.ts
|
|
5
|
+
/**
|
|
6
|
+
* Client-side checksum helpers for download streams.
|
|
7
|
+
*
|
|
8
|
+
* B2 sends `X-Bz-Content-Sha1` on download responses when a whole-file
|
|
9
|
+
* checksum is available. These helpers verify streamed bytes against that
|
|
10
|
+
* header without buffering the full response in memory.
|
|
11
|
+
*
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Builds the typed error used when downloaded bytes fail SHA-1 verification.
|
|
16
|
+
*
|
|
17
|
+
* @param expectedSha1 - SHA-1 digest advertised by the download response.
|
|
18
|
+
* @param actualSha1 - SHA-1 digest computed from the downloaded bytes.
|
|
19
|
+
*
|
|
20
|
+
* @returns A typed checksum mismatch error.
|
|
21
|
+
*/
|
|
22
|
+
function createDownloadChecksumMismatchError(expectedSha1, actualSha1) {
|
|
23
|
+
const expected = expectedSha1.toLowerCase();
|
|
24
|
+
const actual = actualSha1.toLowerCase();
|
|
25
|
+
return new require_errors_index.ChecksumMismatchError({
|
|
26
|
+
status: 400,
|
|
27
|
+
code: "bad_sha1_checksum",
|
|
28
|
+
message: `Downloaded content SHA-1 mismatch: expected ${expected}, got ${actual}`
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Throws when a computed download SHA-1 does not match the expected value.
|
|
33
|
+
*
|
|
34
|
+
* @param expectedSha1 - SHA-1 digest advertised by the download response.
|
|
35
|
+
* @param actualSha1 - SHA-1 digest computed from the downloaded bytes.
|
|
36
|
+
*
|
|
37
|
+
* @throws ChecksumMismatchError when the two digests differ.
|
|
38
|
+
*/
|
|
39
|
+
function assertDownloadSha1(expectedSha1, actualSha1) {
|
|
40
|
+
if (actualSha1.toLowerCase() !== expectedSha1.toLowerCase()) throw createDownloadChecksumMismatchError(expectedSha1, actualSha1);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Throws when two range responses disagree about the expected whole-file SHA-1.
|
|
44
|
+
*
|
|
45
|
+
* @param expectedSha1 - The first range's verifiable SHA-1, or null when unavailable.
|
|
46
|
+
* @param actualSha1 - The current range's verifiable SHA-1, or null when unavailable.
|
|
47
|
+
*
|
|
48
|
+
* @throws ChecksumMismatchError when the two header states differ.
|
|
49
|
+
*/
|
|
50
|
+
function assertDownloadSha1HeaderAgreement(expectedSha1, actualSha1) {
|
|
51
|
+
if (expectedSha1 === actualSha1) return;
|
|
52
|
+
const expected = formatSha1ForMessage(expectedSha1);
|
|
53
|
+
const actual = formatSha1ForMessage(actualSha1);
|
|
54
|
+
throw new require_errors_index.ChecksumMismatchError({
|
|
55
|
+
status: 400,
|
|
56
|
+
code: "bad_sha1_checksum",
|
|
57
|
+
message: `Downloaded content SHA-1 header mismatch: expected ${expected}, got ${actual}`
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Wraps a download stream with whole-body SHA-1 verification.
|
|
62
|
+
*
|
|
63
|
+
* If B2 did not provide a verifiable whole-file SHA-1 (for example,
|
|
64
|
+
* multipart-finished files report `none`), the original stream is returned.
|
|
65
|
+
*
|
|
66
|
+
* @param body - Download response body.
|
|
67
|
+
* @param expectedSha1 - Normalized SHA-1 header value, or null when unavailable.
|
|
68
|
+
*
|
|
69
|
+
* @returns A stream that emits the same bytes and errors on checksum mismatch.
|
|
70
|
+
*/
|
|
71
|
+
function verifyDownloadStream(body, expectedSha1) {
|
|
72
|
+
if (!require_sha1.isVerifiableSha1(expectedSha1)) return body;
|
|
73
|
+
const sha1 = new require_hash.IncrementalSha1();
|
|
74
|
+
const transform = new TransformStream({
|
|
75
|
+
async transform(chunk, controller) {
|
|
76
|
+
await sha1.update(chunk);
|
|
77
|
+
controller.enqueue(chunk);
|
|
78
|
+
},
|
|
79
|
+
async flush() {
|
|
80
|
+
assertDownloadSha1(expectedSha1, await sha1.digest());
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
return body.pipeThrough(transform);
|
|
84
|
+
}
|
|
85
|
+
function formatSha1ForMessage(sha1) {
|
|
86
|
+
return sha1 === null ? "missing or unverifiable" : sha1.toLowerCase();
|
|
87
|
+
}
|
|
88
|
+
//#endregion
|
|
89
|
+
exports.assertDownloadSha1 = assertDownloadSha1;
|
|
90
|
+
exports.assertDownloadSha1HeaderAgreement = assertDownloadSha1HeaderAgreement;
|
|
91
|
+
exports.verifyDownloadStream = verifyDownloadStream;
|
|
92
|
+
|
|
93
|
+
//# sourceMappingURL=checksum.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checksum.cjs","names":[],"sources":["../../src/download/checksum.ts"],"sourcesContent":["/**\n * Client-side checksum helpers for download streams.\n *\n * B2 sends `X-Bz-Content-Sha1` on download responses when a whole-file\n * checksum is available. These helpers verify streamed bytes against that\n * header without buffering the full response in memory.\n *\n * @packageDocumentation\n */\n\nimport { ChecksumMismatchError } from '../errors/index.ts'\nimport { IncrementalSha1 } from '../streams/hash.ts'\nimport { isVerifiableSha1 } from '../util/sha1.ts'\n\n/**\n * Builds the typed error used when downloaded bytes fail SHA-1 verification.\n *\n * @param expectedSha1 - SHA-1 digest advertised by the download response.\n * @param actualSha1 - SHA-1 digest computed from the downloaded bytes.\n *\n * @returns A typed checksum mismatch error.\n */\nfunction createDownloadChecksumMismatchError(\n expectedSha1: string,\n actualSha1: string,\n): ChecksumMismatchError {\n const expected = expectedSha1.toLowerCase()\n const actual = actualSha1.toLowerCase()\n return new ChecksumMismatchError({\n status: 400,\n code: 'bad_sha1_checksum',\n message: `Downloaded content SHA-1 mismatch: expected ${expected}, got ${actual}`,\n })\n}\n\n/**\n * Throws when a computed download SHA-1 does not match the expected value.\n *\n * @param expectedSha1 - SHA-1 digest advertised by the download response.\n * @param actualSha1 - SHA-1 digest computed from the downloaded bytes.\n *\n * @throws ChecksumMismatchError when the two digests differ.\n */\nexport function assertDownloadSha1(expectedSha1: string, actualSha1: string): void {\n if (actualSha1.toLowerCase() !== expectedSha1.toLowerCase()) {\n throw createDownloadChecksumMismatchError(expectedSha1, actualSha1)\n }\n}\n\n/**\n * Throws when two range responses disagree about the expected whole-file SHA-1.\n *\n * @param expectedSha1 - The first range's verifiable SHA-1, or null when unavailable.\n * @param actualSha1 - The current range's verifiable SHA-1, or null when unavailable.\n *\n * @throws ChecksumMismatchError when the two header states differ.\n */\nexport function assertDownloadSha1HeaderAgreement(\n expectedSha1: string | null,\n actualSha1: string | null,\n): void {\n if (expectedSha1 === actualSha1) return\n const expected = formatSha1ForMessage(expectedSha1)\n const actual = formatSha1ForMessage(actualSha1)\n throw new ChecksumMismatchError({\n status: 400,\n code: 'bad_sha1_checksum',\n message: `Downloaded content SHA-1 header mismatch: expected ${expected}, got ${actual}`,\n })\n}\n\n/**\n * Wraps a download stream with whole-body SHA-1 verification.\n *\n * If B2 did not provide a verifiable whole-file SHA-1 (for example,\n * multipart-finished files report `none`), the original stream is returned.\n *\n * @param body - Download response body.\n * @param expectedSha1 - Normalized SHA-1 header value, or null when unavailable.\n *\n * @returns A stream that emits the same bytes and errors on checksum mismatch.\n */\nexport function verifyDownloadStream(\n body: ReadableStream<Uint8Array>,\n expectedSha1: string | null,\n): ReadableStream<Uint8Array> {\n if (!isVerifiableSha1(expectedSha1)) return body\n\n const sha1 = new IncrementalSha1()\n const transform = new TransformStream<Uint8Array, Uint8Array>({\n async transform(chunk, controller) {\n await sha1.update(chunk)\n controller.enqueue(chunk)\n },\n async flush() {\n assertDownloadSha1(expectedSha1, await sha1.digest())\n },\n })\n return body.pipeThrough(transform)\n}\n\nfunction formatSha1ForMessage(sha1: string | null): string {\n return sha1 === null ? 'missing or unverifiable' : sha1.toLowerCase()\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsBA,SAAS,oCACP,cACA,YACuB;CACvB,MAAM,WAAW,aAAa,YAAY;CAC1C,MAAM,SAAS,WAAW,YAAY;CACtC,OAAO,IAAI,qBAAA,sBAAsB;EAC/B,QAAQ;EACR,MAAM;EACN,SAAS,+CAA+C,SAAS,QAAQ;CAC3E,CAAC;AACH;;;;;;;;;AAUA,SAAgB,mBAAmB,cAAsB,YAA0B;CACjF,IAAI,WAAW,YAAY,MAAM,aAAa,YAAY,GACxD,MAAM,oCAAoC,cAAc,UAAU;AAEtE;;;;;;;;;AAUA,SAAgB,kCACd,cACA,YACM;CACN,IAAI,iBAAiB,YAAY;CACjC,MAAM,WAAW,qBAAqB,YAAY;CAClD,MAAM,SAAS,qBAAqB,UAAU;CAC9C,MAAM,IAAI,qBAAA,sBAAsB;EAC9B,QAAQ;EACR,MAAM;EACN,SAAS,sDAAsD,SAAS,QAAQ;CAClF,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,qBACd,MACA,cAC4B;CAC5B,IAAI,CAAC,aAAA,iBAAiB,YAAY,GAAG,OAAO;CAE5C,MAAM,OAAO,IAAI,aAAA,gBAAgB;CACjC,MAAM,YAAY,IAAI,gBAAwC;EAC5D,MAAM,UAAU,OAAO,YAAY;GACjC,MAAM,KAAK,OAAO,KAAK;GACvB,WAAW,QAAQ,KAAK;EAC1B;EACA,MAAM,QAAQ;GACZ,mBAAmB,cAAc,MAAM,KAAK,OAAO,CAAC;EACtD;CACF,CAAC;CACD,OAAO,KAAK,YAAY,SAAS;AACnC;AAEA,SAAS,qBAAqB,MAA6B;CACzD,OAAO,SAAS,OAAO,4BAA4B,KAAK,YAAY;AACtE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side checksum helpers for download streams.
|
|
3
|
+
*
|
|
4
|
+
* B2 sends `X-Bz-Content-Sha1` on download responses when a whole-file
|
|
5
|
+
* checksum is available. These helpers verify streamed bytes against that
|
|
6
|
+
* header without buffering the full response in memory.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Throws when a computed download SHA-1 does not match the expected value.
|
|
12
|
+
*
|
|
13
|
+
* @param expectedSha1 - SHA-1 digest advertised by the download response.
|
|
14
|
+
* @param actualSha1 - SHA-1 digest computed from the downloaded bytes.
|
|
15
|
+
*
|
|
16
|
+
* @throws ChecksumMismatchError when the two digests differ.
|
|
17
|
+
*/
|
|
18
|
+
export declare function assertDownloadSha1(expectedSha1: string, actualSha1: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Throws when two range responses disagree about the expected whole-file SHA-1.
|
|
21
|
+
*
|
|
22
|
+
* @param expectedSha1 - The first range's verifiable SHA-1, or null when unavailable.
|
|
23
|
+
* @param actualSha1 - The current range's verifiable SHA-1, or null when unavailable.
|
|
24
|
+
*
|
|
25
|
+
* @throws ChecksumMismatchError when the two header states differ.
|
|
26
|
+
*/
|
|
27
|
+
export declare function assertDownloadSha1HeaderAgreement(expectedSha1: string | null, actualSha1: string | null): void;
|
|
28
|
+
/**
|
|
29
|
+
* Wraps a download stream with whole-body SHA-1 verification.
|
|
30
|
+
*
|
|
31
|
+
* If B2 did not provide a verifiable whole-file SHA-1 (for example,
|
|
32
|
+
* multipart-finished files report `none`), the original stream is returned.
|
|
33
|
+
*
|
|
34
|
+
* @param body - Download response body.
|
|
35
|
+
* @param expectedSha1 - Normalized SHA-1 header value, or null when unavailable.
|
|
36
|
+
*
|
|
37
|
+
* @returns A stream that emits the same bytes and errors on checksum mismatch.
|
|
38
|
+
*/
|
|
39
|
+
export declare function verifyDownloadStream(body: ReadableStream<Uint8Array>, expectedSha1: string | null): ReadableStream<Uint8Array>;
|
|
40
|
+
//# sourceMappingURL=checksum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../src/download/checksum.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2BH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAIjF;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,IAAI,CASN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,cAAc,CAAC,UAAU,CAAC,CAc5B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side checksum helpers for download streams.
|
|
3
|
+
*
|
|
4
|
+
* B2 sends `X-Bz-Content-Sha1` on download responses when a whole-file
|
|
5
|
+
* checksum is available. These helpers verify streamed bytes against that
|
|
6
|
+
* header without buffering the full response in memory.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Throws when a computed download SHA-1 does not match the expected value.
|
|
12
|
+
*
|
|
13
|
+
* @param expectedSha1 - SHA-1 digest advertised by the download response.
|
|
14
|
+
* @param actualSha1 - SHA-1 digest computed from the downloaded bytes.
|
|
15
|
+
*
|
|
16
|
+
* @throws ChecksumMismatchError when the two digests differ.
|
|
17
|
+
*/
|
|
18
|
+
export declare function assertDownloadSha1(expectedSha1: string, actualSha1: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Throws when two range responses disagree about the expected whole-file SHA-1.
|
|
21
|
+
*
|
|
22
|
+
* @param expectedSha1 - The first range's verifiable SHA-1, or null when unavailable.
|
|
23
|
+
* @param actualSha1 - The current range's verifiable SHA-1, or null when unavailable.
|
|
24
|
+
*
|
|
25
|
+
* @throws ChecksumMismatchError when the two header states differ.
|
|
26
|
+
*/
|
|
27
|
+
export declare function assertDownloadSha1HeaderAgreement(expectedSha1: string | null, actualSha1: string | null): void;
|
|
28
|
+
/**
|
|
29
|
+
* Wraps a download stream with whole-body SHA-1 verification.
|
|
30
|
+
*
|
|
31
|
+
* If B2 did not provide a verifiable whole-file SHA-1 (for example,
|
|
32
|
+
* multipart-finished files report `none`), the original stream is returned.
|
|
33
|
+
*
|
|
34
|
+
* @param body - Download response body.
|
|
35
|
+
* @param expectedSha1 - Normalized SHA-1 header value, or null when unavailable.
|
|
36
|
+
*
|
|
37
|
+
* @returns A stream that emits the same bytes and errors on checksum mismatch.
|
|
38
|
+
*/
|
|
39
|
+
export declare function verifyDownloadStream(body: ReadableStream<Uint8Array>, expectedSha1: string | null): ReadableStream<Uint8Array>;
|
|
40
|
+
//# sourceMappingURL=checksum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../src/download/checksum.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2BH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAIjF;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,IAAI,CASN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,cAAc,CAAC,UAAU,CAAC,CAc5B"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ChecksumMismatchError } from "../errors/index.js";
|
|
2
|
+
import { IncrementalSha1 } from "../streams/hash.js";
|
|
3
|
+
import { isVerifiableSha1 } from "../util/sha1.js";
|
|
4
|
+
//#region src/download/checksum.ts
|
|
5
|
+
/**
|
|
6
|
+
* Client-side checksum helpers for download streams.
|
|
7
|
+
*
|
|
8
|
+
* B2 sends `X-Bz-Content-Sha1` on download responses when a whole-file
|
|
9
|
+
* checksum is available. These helpers verify streamed bytes against that
|
|
10
|
+
* header without buffering the full response in memory.
|
|
11
|
+
*
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Builds the typed error used when downloaded bytes fail SHA-1 verification.
|
|
16
|
+
*
|
|
17
|
+
* @param expectedSha1 - SHA-1 digest advertised by the download response.
|
|
18
|
+
* @param actualSha1 - SHA-1 digest computed from the downloaded bytes.
|
|
19
|
+
*
|
|
20
|
+
* @returns A typed checksum mismatch error.
|
|
21
|
+
*/
|
|
22
|
+
function createDownloadChecksumMismatchError(expectedSha1, actualSha1) {
|
|
23
|
+
const expected = expectedSha1.toLowerCase();
|
|
24
|
+
const actual = actualSha1.toLowerCase();
|
|
25
|
+
return new ChecksumMismatchError({
|
|
26
|
+
status: 400,
|
|
27
|
+
code: "bad_sha1_checksum",
|
|
28
|
+
message: `Downloaded content SHA-1 mismatch: expected ${expected}, got ${actual}`
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Throws when a computed download SHA-1 does not match the expected value.
|
|
33
|
+
*
|
|
34
|
+
* @param expectedSha1 - SHA-1 digest advertised by the download response.
|
|
35
|
+
* @param actualSha1 - SHA-1 digest computed from the downloaded bytes.
|
|
36
|
+
*
|
|
37
|
+
* @throws ChecksumMismatchError when the two digests differ.
|
|
38
|
+
*/
|
|
39
|
+
function assertDownloadSha1(expectedSha1, actualSha1) {
|
|
40
|
+
if (actualSha1.toLowerCase() !== expectedSha1.toLowerCase()) throw createDownloadChecksumMismatchError(expectedSha1, actualSha1);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Throws when two range responses disagree about the expected whole-file SHA-1.
|
|
44
|
+
*
|
|
45
|
+
* @param expectedSha1 - The first range's verifiable SHA-1, or null when unavailable.
|
|
46
|
+
* @param actualSha1 - The current range's verifiable SHA-1, or null when unavailable.
|
|
47
|
+
*
|
|
48
|
+
* @throws ChecksumMismatchError when the two header states differ.
|
|
49
|
+
*/
|
|
50
|
+
function assertDownloadSha1HeaderAgreement(expectedSha1, actualSha1) {
|
|
51
|
+
if (expectedSha1 === actualSha1) return;
|
|
52
|
+
const expected = formatSha1ForMessage(expectedSha1);
|
|
53
|
+
const actual = formatSha1ForMessage(actualSha1);
|
|
54
|
+
throw new ChecksumMismatchError({
|
|
55
|
+
status: 400,
|
|
56
|
+
code: "bad_sha1_checksum",
|
|
57
|
+
message: `Downloaded content SHA-1 header mismatch: expected ${expected}, got ${actual}`
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Wraps a download stream with whole-body SHA-1 verification.
|
|
62
|
+
*
|
|
63
|
+
* If B2 did not provide a verifiable whole-file SHA-1 (for example,
|
|
64
|
+
* multipart-finished files report `none`), the original stream is returned.
|
|
65
|
+
*
|
|
66
|
+
* @param body - Download response body.
|
|
67
|
+
* @param expectedSha1 - Normalized SHA-1 header value, or null when unavailable.
|
|
68
|
+
*
|
|
69
|
+
* @returns A stream that emits the same bytes and errors on checksum mismatch.
|
|
70
|
+
*/
|
|
71
|
+
function verifyDownloadStream(body, expectedSha1) {
|
|
72
|
+
if (!isVerifiableSha1(expectedSha1)) return body;
|
|
73
|
+
const sha1 = new IncrementalSha1();
|
|
74
|
+
const transform = new TransformStream({
|
|
75
|
+
async transform(chunk, controller) {
|
|
76
|
+
await sha1.update(chunk);
|
|
77
|
+
controller.enqueue(chunk);
|
|
78
|
+
},
|
|
79
|
+
async flush() {
|
|
80
|
+
assertDownloadSha1(expectedSha1, await sha1.digest());
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
return body.pipeThrough(transform);
|
|
84
|
+
}
|
|
85
|
+
function formatSha1ForMessage(sha1) {
|
|
86
|
+
return sha1 === null ? "missing or unverifiable" : sha1.toLowerCase();
|
|
87
|
+
}
|
|
88
|
+
//#endregion
|
|
89
|
+
export { assertDownloadSha1, assertDownloadSha1HeaderAgreement, verifyDownloadStream };
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=checksum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checksum.js","names":[],"sources":["../../src/download/checksum.ts"],"sourcesContent":["/**\n * Client-side checksum helpers for download streams.\n *\n * B2 sends `X-Bz-Content-Sha1` on download responses when a whole-file\n * checksum is available. These helpers verify streamed bytes against that\n * header without buffering the full response in memory.\n *\n * @packageDocumentation\n */\n\nimport { ChecksumMismatchError } from '../errors/index.ts'\nimport { IncrementalSha1 } from '../streams/hash.ts'\nimport { isVerifiableSha1 } from '../util/sha1.ts'\n\n/**\n * Builds the typed error used when downloaded bytes fail SHA-1 verification.\n *\n * @param expectedSha1 - SHA-1 digest advertised by the download response.\n * @param actualSha1 - SHA-1 digest computed from the downloaded bytes.\n *\n * @returns A typed checksum mismatch error.\n */\nfunction createDownloadChecksumMismatchError(\n expectedSha1: string,\n actualSha1: string,\n): ChecksumMismatchError {\n const expected = expectedSha1.toLowerCase()\n const actual = actualSha1.toLowerCase()\n return new ChecksumMismatchError({\n status: 400,\n code: 'bad_sha1_checksum',\n message: `Downloaded content SHA-1 mismatch: expected ${expected}, got ${actual}`,\n })\n}\n\n/**\n * Throws when a computed download SHA-1 does not match the expected value.\n *\n * @param expectedSha1 - SHA-1 digest advertised by the download response.\n * @param actualSha1 - SHA-1 digest computed from the downloaded bytes.\n *\n * @throws ChecksumMismatchError when the two digests differ.\n */\nexport function assertDownloadSha1(expectedSha1: string, actualSha1: string): void {\n if (actualSha1.toLowerCase() !== expectedSha1.toLowerCase()) {\n throw createDownloadChecksumMismatchError(expectedSha1, actualSha1)\n }\n}\n\n/**\n * Throws when two range responses disagree about the expected whole-file SHA-1.\n *\n * @param expectedSha1 - The first range's verifiable SHA-1, or null when unavailable.\n * @param actualSha1 - The current range's verifiable SHA-1, or null when unavailable.\n *\n * @throws ChecksumMismatchError when the two header states differ.\n */\nexport function assertDownloadSha1HeaderAgreement(\n expectedSha1: string | null,\n actualSha1: string | null,\n): void {\n if (expectedSha1 === actualSha1) return\n const expected = formatSha1ForMessage(expectedSha1)\n const actual = formatSha1ForMessage(actualSha1)\n throw new ChecksumMismatchError({\n status: 400,\n code: 'bad_sha1_checksum',\n message: `Downloaded content SHA-1 header mismatch: expected ${expected}, got ${actual}`,\n })\n}\n\n/**\n * Wraps a download stream with whole-body SHA-1 verification.\n *\n * If B2 did not provide a verifiable whole-file SHA-1 (for example,\n * multipart-finished files report `none`), the original stream is returned.\n *\n * @param body - Download response body.\n * @param expectedSha1 - Normalized SHA-1 header value, or null when unavailable.\n *\n * @returns A stream that emits the same bytes and errors on checksum mismatch.\n */\nexport function verifyDownloadStream(\n body: ReadableStream<Uint8Array>,\n expectedSha1: string | null,\n): ReadableStream<Uint8Array> {\n if (!isVerifiableSha1(expectedSha1)) return body\n\n const sha1 = new IncrementalSha1()\n const transform = new TransformStream<Uint8Array, Uint8Array>({\n async transform(chunk, controller) {\n await sha1.update(chunk)\n controller.enqueue(chunk)\n },\n async flush() {\n assertDownloadSha1(expectedSha1, await sha1.digest())\n },\n })\n return body.pipeThrough(transform)\n}\n\nfunction formatSha1ForMessage(sha1: string | null): string {\n return sha1 === null ? 'missing or unverifiable' : sha1.toLowerCase()\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsBA,SAAS,oCACP,cACA,YACuB;CACvB,MAAM,WAAW,aAAa,YAAY;CAC1C,MAAM,SAAS,WAAW,YAAY;CACtC,OAAO,IAAI,sBAAsB;EAC/B,QAAQ;EACR,MAAM;EACN,SAAS,+CAA+C,SAAS,QAAQ;CAC3E,CAAC;AACH;;;;;;;;;AAUA,SAAgB,mBAAmB,cAAsB,YAA0B;CACjF,IAAI,WAAW,YAAY,MAAM,aAAa,YAAY,GACxD,MAAM,oCAAoC,cAAc,UAAU;AAEtE;;;;;;;;;AAUA,SAAgB,kCACd,cACA,YACM;CACN,IAAI,iBAAiB,YAAY;CACjC,MAAM,WAAW,qBAAqB,YAAY;CAClD,MAAM,SAAS,qBAAqB,UAAU;CAC9C,MAAM,IAAI,sBAAsB;EAC9B,QAAQ;EACR,MAAM;EACN,SAAS,sDAAsD,SAAS,QAAQ;CAClF,CAAC;AACH;;;;;;;;;;;;AAaA,SAAgB,qBACd,MACA,cAC4B;CAC5B,IAAI,CAAC,iBAAiB,YAAY,GAAG,OAAO;CAE5C,MAAM,OAAO,IAAI,gBAAgB;CACjC,MAAM,YAAY,IAAI,gBAAwC;EAC5D,MAAM,UAAU,OAAO,YAAY;GACjC,MAAM,KAAK,OAAO,KAAK;GACvB,WAAW,QAAQ,KAAK;EAC1B;EACA,MAAM,QAAQ;GACZ,mBAAmB,cAAc,MAAM,KAAK,OAAO,CAAC;EACtD;CACF,CAAC;CACD,OAAO,KAAK,YAAY,SAAS;AACnC;AAEA,SAAS,qBAAqB,MAA6B;CACzD,OAAO,SAAS,OAAO,4BAA4B,KAAK,YAAY;AACtE"}
|