@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,111 @@
|
|
|
1
|
+
import { RetryOptions } from '../http/retry.js';
|
|
2
|
+
import { HttpTransport } from '../http/transport.js';
|
|
3
|
+
import { UrlGuard } from '../http/url-guard.js';
|
|
4
|
+
import { PartnerAuthorizeResponse } from '../types/partner.js';
|
|
5
|
+
import { PartnerAccountInfo } from './account-info.js';
|
|
6
|
+
import { PartnerRawClient } from './raw.js';
|
|
7
|
+
/** Shared Partner authorization options used by Partner and Backup facades. */
|
|
8
|
+
export interface PartnerAuthCoreOptions {
|
|
9
|
+
/** The Master Application Key ID for the partner administrator account. */
|
|
10
|
+
readonly masterKeyId: string;
|
|
11
|
+
/** The Master Application Key secret. */
|
|
12
|
+
readonly masterKey: string;
|
|
13
|
+
/** B2 realm alias or direct trusted realm URL. Defaults to `"production"`. */
|
|
14
|
+
readonly realm?: string;
|
|
15
|
+
/** Storage backend for Partner authorization state. */
|
|
16
|
+
readonly partnerAccountInfo?: PartnerAccountInfo;
|
|
17
|
+
/** Custom HTTP transport. Defaults to {@link FetchTransport}. */
|
|
18
|
+
readonly transport?: HttpTransport;
|
|
19
|
+
/** Override retry behavior for retryable requests. */
|
|
20
|
+
readonly retry?: Partial<RetryOptions>;
|
|
21
|
+
/** Custom user-agent string prepended to the SDK default. */
|
|
22
|
+
readonly userAgent?: string;
|
|
23
|
+
/** Extra trusted host suffixes to merge into the default SSRF guard. */
|
|
24
|
+
readonly additionalAllowedHostSuffixes?: readonly string[];
|
|
25
|
+
/** Explicitly disable default SSRF guard suffix locking. */
|
|
26
|
+
readonly disableSsrfGuard?: boolean;
|
|
27
|
+
/** Whether the default fetch transport may follow same-origin GET/HEAD redirects. */
|
|
28
|
+
readonly followSameOriginRedirects?: boolean;
|
|
29
|
+
/** Allow direct custom authorize realms for tests or private proxies. */
|
|
30
|
+
readonly allowCustomAuthorizeRealm?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/** Options for Partner authorization through {@link PartnerAuthCore}. */
|
|
33
|
+
export interface PartnerAuthCoreAuthorizeOptions {
|
|
34
|
+
/** Abort signal for cancelling the authorize request. */
|
|
35
|
+
readonly signal?: AbortSignal;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Internal Partner authorization state machine shared by public facades.
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare class PartnerAuthCore {
|
|
43
|
+
#private;
|
|
44
|
+
/** Low-level Partner raw client used for authorization and Partner endpoints. */
|
|
45
|
+
readonly raw: PartnerRawClient;
|
|
46
|
+
/** Partner authorization state storage. */
|
|
47
|
+
readonly partnerAccountInfo: PartnerAccountInfo;
|
|
48
|
+
/** Default transport URL guard, or null when a custom transport owns guarding. */
|
|
49
|
+
readonly urlGuard: UrlGuard | null;
|
|
50
|
+
/** Retry-wrapped transport shared by facade-specific raw clients. */
|
|
51
|
+
readonly transport: HttpTransport;
|
|
52
|
+
/** Endpoint suffixes validated from cached authorization during construction. */
|
|
53
|
+
readonly cachedEndpointSuffixes: readonly string[] | undefined;
|
|
54
|
+
/** Resolved Partner authorize realm URL. */
|
|
55
|
+
private readonly realmUrl;
|
|
56
|
+
/** Whether custom authorize realms are trusted. */
|
|
57
|
+
private readonly allowCustomAuthorizeRealm;
|
|
58
|
+
private readonly additionalAllowedSuffixes;
|
|
59
|
+
private readonly disableSsrfGuard;
|
|
60
|
+
/**
|
|
61
|
+
* Creates a shared Partner authorization core.
|
|
62
|
+
*
|
|
63
|
+
* @param options - Credentials, state storage, transport, retry, and guard settings.
|
|
64
|
+
*/
|
|
65
|
+
constructor(options: PartnerAuthCoreOptions);
|
|
66
|
+
/**
|
|
67
|
+
* Authenticates with B2 Partner authorization and stores the authorization state.
|
|
68
|
+
*
|
|
69
|
+
* @param options - Optional abort signal.
|
|
70
|
+
*
|
|
71
|
+
* @returns The normalized Partner authorization response.
|
|
72
|
+
*/
|
|
73
|
+
authorize(options?: PartnerAuthCoreAuthorizeOptions): Promise<PartnerAuthorizeResponse>;
|
|
74
|
+
/**
|
|
75
|
+
* Locks the default transport URL guard to suffixes from a validated auth response.
|
|
76
|
+
*
|
|
77
|
+
* @param auth - Partner authorization response to derive suffixes from.
|
|
78
|
+
*/
|
|
79
|
+
lockUrlGuard(auth: PartnerAuthorizeResponse): void;
|
|
80
|
+
/**
|
|
81
|
+
* Locks the default transport URL guard to previously validated endpoint suffixes.
|
|
82
|
+
*
|
|
83
|
+
* @param derived - Validated endpoint suffixes.
|
|
84
|
+
*/
|
|
85
|
+
private lockUrlGuardFromSuffixes;
|
|
86
|
+
/**
|
|
87
|
+
* Validates a Partner authorization snapshot and returns endpoint suffixes.
|
|
88
|
+
*
|
|
89
|
+
* @param auth - Partner authorization response to validate.
|
|
90
|
+
*
|
|
91
|
+
* @returns Host suffixes safe for Partner-token endpoint requests.
|
|
92
|
+
*
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
95
|
+
private validateEndpointSuffixes;
|
|
96
|
+
/**
|
|
97
|
+
* Validates an auth snapshot, locks the default URL guard, and returns endpoint suffixes.
|
|
98
|
+
*
|
|
99
|
+
* @param auth - Partner authorization response to validate and activate.
|
|
100
|
+
*
|
|
101
|
+
* @returns Host suffixes safe for Partner-token endpoint requests.
|
|
102
|
+
*
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
105
|
+
activateEndpointSuffixes(auth: PartnerAuthorizeResponse): readonly string[];
|
|
106
|
+
private validateCachedAuth;
|
|
107
|
+
private reauthorize;
|
|
108
|
+
private startReauthorize;
|
|
109
|
+
private doReauthorize;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=auth-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-core.d.ts","sourceRoot":"","sources":["../../src/partner/auth-core.js"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAEL,gBAAgB,EAEjB,MAAM,UAAU,CAAA;AAEjB,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IAChD,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAA;IAClC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACtC,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,6BAA6B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1D,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC,qFAAqF;IACrF,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAA;IAC5C,yEAAyE;IACzE,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAA;CAC7C;AAED,yEAAyE;AACzE,MAAM,WAAW,+BAA+B;IAC9C,yDAAyD;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AASD;;;;GAIG;AACH,qBAAa,eAAe;;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAA;IAC9B,2CAA2C;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAA;IAC/C,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IAClC,qEAAqE;IACrE,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,iFAAiF;IACjF,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC9D,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IAGnD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA+B;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAG1C;;;;OAIG;gBACS,OAAO,EAAE,sBAAsB;IA+C3C;;;;;;OAMG;IACG,SAAS,CAAC,OAAO,CAAC,EAAE,+BAA+B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAc7F;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI;IAIlD;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;;;;;;;OAQG;IACH,wBAAwB,CAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,MAAM,EAAE;IAM3E,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,gBAAgB;YAmBV,aAAa;CAI5B"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { RetryOptions } from '../http/retry.js';
|
|
2
|
+
import { HttpTransport } from '../http/transport.js';
|
|
3
|
+
import { UrlGuard } from '../http/url-guard.js';
|
|
4
|
+
import { PartnerAuthorizeResponse } from '../types/partner.js';
|
|
5
|
+
import { PartnerAccountInfo } from './account-info.js';
|
|
6
|
+
import { PartnerRawClient } from './raw.js';
|
|
7
|
+
/** Shared Partner authorization options used by Partner and Backup facades. */
|
|
8
|
+
export interface PartnerAuthCoreOptions {
|
|
9
|
+
/** The Master Application Key ID for the partner administrator account. */
|
|
10
|
+
readonly masterKeyId: string;
|
|
11
|
+
/** The Master Application Key secret. */
|
|
12
|
+
readonly masterKey: string;
|
|
13
|
+
/** B2 realm alias or direct trusted realm URL. Defaults to `"production"`. */
|
|
14
|
+
readonly realm?: string;
|
|
15
|
+
/** Storage backend for Partner authorization state. */
|
|
16
|
+
readonly partnerAccountInfo?: PartnerAccountInfo;
|
|
17
|
+
/** Custom HTTP transport. Defaults to {@link FetchTransport}. */
|
|
18
|
+
readonly transport?: HttpTransport;
|
|
19
|
+
/** Override retry behavior for retryable requests. */
|
|
20
|
+
readonly retry?: Partial<RetryOptions>;
|
|
21
|
+
/** Custom user-agent string prepended to the SDK default. */
|
|
22
|
+
readonly userAgent?: string;
|
|
23
|
+
/** Extra trusted host suffixes to merge into the default SSRF guard. */
|
|
24
|
+
readonly additionalAllowedHostSuffixes?: readonly string[];
|
|
25
|
+
/** Explicitly disable default SSRF guard suffix locking. */
|
|
26
|
+
readonly disableSsrfGuard?: boolean;
|
|
27
|
+
/** Whether the default fetch transport may follow same-origin GET/HEAD redirects. */
|
|
28
|
+
readonly followSameOriginRedirects?: boolean;
|
|
29
|
+
/** Allow direct custom authorize realms for tests or private proxies. */
|
|
30
|
+
readonly allowCustomAuthorizeRealm?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/** Options for Partner authorization through {@link PartnerAuthCore}. */
|
|
33
|
+
export interface PartnerAuthCoreAuthorizeOptions {
|
|
34
|
+
/** Abort signal for cancelling the authorize request. */
|
|
35
|
+
readonly signal?: AbortSignal;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Internal Partner authorization state machine shared by public facades.
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare class PartnerAuthCore {
|
|
43
|
+
#private;
|
|
44
|
+
/** Low-level Partner raw client used for authorization and Partner endpoints. */
|
|
45
|
+
readonly raw: PartnerRawClient;
|
|
46
|
+
/** Partner authorization state storage. */
|
|
47
|
+
readonly partnerAccountInfo: PartnerAccountInfo;
|
|
48
|
+
/** Default transport URL guard, or null when a custom transport owns guarding. */
|
|
49
|
+
readonly urlGuard: UrlGuard | null;
|
|
50
|
+
/** Retry-wrapped transport shared by facade-specific raw clients. */
|
|
51
|
+
readonly transport: HttpTransport;
|
|
52
|
+
/** Endpoint suffixes validated from cached authorization during construction. */
|
|
53
|
+
readonly cachedEndpointSuffixes: readonly string[] | undefined;
|
|
54
|
+
/** Resolved Partner authorize realm URL. */
|
|
55
|
+
private readonly realmUrl;
|
|
56
|
+
/** Whether custom authorize realms are trusted. */
|
|
57
|
+
private readonly allowCustomAuthorizeRealm;
|
|
58
|
+
private readonly additionalAllowedSuffixes;
|
|
59
|
+
private readonly disableSsrfGuard;
|
|
60
|
+
/**
|
|
61
|
+
* Creates a shared Partner authorization core.
|
|
62
|
+
*
|
|
63
|
+
* @param options - Credentials, state storage, transport, retry, and guard settings.
|
|
64
|
+
*/
|
|
65
|
+
constructor(options: PartnerAuthCoreOptions);
|
|
66
|
+
/**
|
|
67
|
+
* Authenticates with B2 Partner authorization and stores the authorization state.
|
|
68
|
+
*
|
|
69
|
+
* @param options - Optional abort signal.
|
|
70
|
+
*
|
|
71
|
+
* @returns The normalized Partner authorization response.
|
|
72
|
+
*/
|
|
73
|
+
authorize(options?: PartnerAuthCoreAuthorizeOptions): Promise<PartnerAuthorizeResponse>;
|
|
74
|
+
/**
|
|
75
|
+
* Locks the default transport URL guard to suffixes from a validated auth response.
|
|
76
|
+
*
|
|
77
|
+
* @param auth - Partner authorization response to derive suffixes from.
|
|
78
|
+
*/
|
|
79
|
+
lockUrlGuard(auth: PartnerAuthorizeResponse): void;
|
|
80
|
+
/**
|
|
81
|
+
* Locks the default transport URL guard to previously validated endpoint suffixes.
|
|
82
|
+
*
|
|
83
|
+
* @param derived - Validated endpoint suffixes.
|
|
84
|
+
*/
|
|
85
|
+
private lockUrlGuardFromSuffixes;
|
|
86
|
+
/**
|
|
87
|
+
* Validates a Partner authorization snapshot and returns endpoint suffixes.
|
|
88
|
+
*
|
|
89
|
+
* @param auth - Partner authorization response to validate.
|
|
90
|
+
*
|
|
91
|
+
* @returns Host suffixes safe for Partner-token endpoint requests.
|
|
92
|
+
*
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
95
|
+
private validateEndpointSuffixes;
|
|
96
|
+
/**
|
|
97
|
+
* Validates an auth snapshot, locks the default URL guard, and returns endpoint suffixes.
|
|
98
|
+
*
|
|
99
|
+
* @param auth - Partner authorization response to validate and activate.
|
|
100
|
+
*
|
|
101
|
+
* @returns Host suffixes safe for Partner-token endpoint requests.
|
|
102
|
+
*
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
105
|
+
activateEndpointSuffixes(auth: PartnerAuthorizeResponse): readonly string[];
|
|
106
|
+
private validateCachedAuth;
|
|
107
|
+
private reauthorize;
|
|
108
|
+
private startReauthorize;
|
|
109
|
+
private doReauthorize;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=auth-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-core.d.ts","sourceRoot":"","sources":["../../src/partner/auth-core.js"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAEL,gBAAgB,EAEjB,MAAM,UAAU,CAAA;AAEjB,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IAChD,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAA;IAClC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACtC,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,6BAA6B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1D,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC,qFAAqF;IACrF,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAA;IAC5C,yEAAyE;IACzE,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAA;CAC7C;AAED,yEAAyE;AACzE,MAAM,WAAW,+BAA+B;IAC9C,yDAAyD;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AASD;;;;GAIG;AACH,qBAAa,eAAe;;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAA;IAC9B,2CAA2C;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAA;IAC/C,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IAClC,qEAAqE;IACrE,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,iFAAiF;IACjF,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC9D,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IAGnD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA+B;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAG1C;;;;OAIG;gBACS,OAAO,EAAE,sBAAsB;IA+C3C;;;;;;OAMG;IACG,SAAS,CAAC,OAAO,CAAC,EAAE,+BAA+B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAc7F;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI;IAIlD;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;;;;;;;OAQG;IACH,wBAAwB,CAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,MAAM,EAAE;IAM3E,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,gBAAgB;YAmBV,aAAa;CAI5B"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { abortReason, raceWithAbort, throwIfSignalAborted } from "../util/abort.js";
|
|
2
|
+
import { DEFAULT_RETRY_OPTIONS } from "../http/retry.js";
|
|
3
|
+
import { getRealmUrl } from "../auth/realms.js";
|
|
4
|
+
import { UrlGuard } from "../http/url-guard.js";
|
|
5
|
+
import { FetchTransport, RetryTransport } from "../http/transport.js";
|
|
6
|
+
import { InMemoryPartnerAccountInfo } from "./in-memory.js";
|
|
7
|
+
import { PartnerRawClient, derivePartnerAllowedSuffixes, validatePartnerAuthorizeResponseEndpoints } from "./raw.js";
|
|
8
|
+
//#region src/partner/auth-core.ts
|
|
9
|
+
/**
|
|
10
|
+
* Internal Partner authorization state machine shared by public facades.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
var PartnerAuthCore = class {
|
|
15
|
+
/** Low-level Partner raw client used for authorization and Partner endpoints. */
|
|
16
|
+
raw;
|
|
17
|
+
/** Partner authorization state storage. */
|
|
18
|
+
partnerAccountInfo;
|
|
19
|
+
/** Default transport URL guard, or null when a custom transport owns guarding. */
|
|
20
|
+
urlGuard;
|
|
21
|
+
/** Retry-wrapped transport shared by facade-specific raw clients. */
|
|
22
|
+
transport;
|
|
23
|
+
/** Endpoint suffixes validated from cached authorization during construction. */
|
|
24
|
+
cachedEndpointSuffixes;
|
|
25
|
+
/** Resolved Partner authorize realm URL. */
|
|
26
|
+
realmUrl;
|
|
27
|
+
/** Whether custom authorize realms are trusted. */
|
|
28
|
+
allowCustomAuthorizeRealm;
|
|
29
|
+
#masterKeyId;
|
|
30
|
+
#masterKey;
|
|
31
|
+
additionalAllowedSuffixes;
|
|
32
|
+
disableSsrfGuard;
|
|
33
|
+
#inflightReauth = null;
|
|
34
|
+
/**
|
|
35
|
+
* Creates a shared Partner authorization core.
|
|
36
|
+
*
|
|
37
|
+
* @param options - Credentials, state storage, transport, retry, and guard settings.
|
|
38
|
+
*/
|
|
39
|
+
constructor(options) {
|
|
40
|
+
this.#masterKeyId = options.masterKeyId;
|
|
41
|
+
this.#masterKey = options.masterKey;
|
|
42
|
+
this.realmUrl = getRealmUrl(options.realm ?? "production");
|
|
43
|
+
this.partnerAccountInfo = options.partnerAccountInfo ?? new InMemoryPartnerAccountInfo();
|
|
44
|
+
this.additionalAllowedSuffixes = options.additionalAllowedHostSuffixes;
|
|
45
|
+
this.disableSsrfGuard = options.disableSsrfGuard ?? false;
|
|
46
|
+
this.allowCustomAuthorizeRealm = options.allowCustomAuthorizeRealm ?? false;
|
|
47
|
+
let baseTransport;
|
|
48
|
+
if (options.transport !== void 0) {
|
|
49
|
+
baseTransport = options.transport;
|
|
50
|
+
this.urlGuard = null;
|
|
51
|
+
} else {
|
|
52
|
+
const urlGuard = new UrlGuard();
|
|
53
|
+
baseTransport = new FetchTransport({
|
|
54
|
+
urlGuard,
|
|
55
|
+
...options.userAgent !== void 0 ? { userAgent: options.userAgent } : {},
|
|
56
|
+
...options.followSameOriginRedirects !== void 0 ? { followSameOriginRedirects: options.followSameOriginRedirects } : {}
|
|
57
|
+
});
|
|
58
|
+
this.urlGuard = urlGuard;
|
|
59
|
+
}
|
|
60
|
+
this.transport = new RetryTransport({
|
|
61
|
+
transport: baseTransport,
|
|
62
|
+
retry: {
|
|
63
|
+
...DEFAULT_RETRY_OPTIONS,
|
|
64
|
+
...options.retry
|
|
65
|
+
},
|
|
66
|
+
onReauth: (signal) => this.reauthorize(signal)
|
|
67
|
+
});
|
|
68
|
+
this.cachedEndpointSuffixes = this.validateCachedAuth();
|
|
69
|
+
if (this.cachedEndpointSuffixes !== void 0) this.lockUrlGuardFromSuffixes(this.cachedEndpointSuffixes);
|
|
70
|
+
this.raw = new PartnerRawClient({
|
|
71
|
+
transport: this.transport,
|
|
72
|
+
...this.cachedEndpointSuffixes !== void 0 ? { authorizedPartnerEndpointSuffixes: this.cachedEndpointSuffixes } : {},
|
|
73
|
+
...options.allowCustomAuthorizeRealm !== void 0 ? { allowCustomAuthorizeRealm: options.allowCustomAuthorizeRealm } : {}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Authenticates with B2 Partner authorization and stores the authorization state.
|
|
78
|
+
*
|
|
79
|
+
* @param options - Optional abort signal.
|
|
80
|
+
*
|
|
81
|
+
* @returns The normalized Partner authorization response.
|
|
82
|
+
*/
|
|
83
|
+
async authorize(options) {
|
|
84
|
+
throwIfSignalAborted(options?.signal);
|
|
85
|
+
const auth = await this.raw.authorizePartner(this.#masterKeyId, this.#masterKey, this.realmUrl, options?.signal !== void 0 ? { signal: options.signal } : void 0);
|
|
86
|
+
throwIfSignalAborted(options?.signal);
|
|
87
|
+
this.partnerAccountInfo.setAuth(auth);
|
|
88
|
+
this.lockUrlGuard(auth);
|
|
89
|
+
return auth;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Locks the default transport URL guard to suffixes from a validated auth response.
|
|
93
|
+
*
|
|
94
|
+
* @param auth - Partner authorization response to derive suffixes from.
|
|
95
|
+
*/
|
|
96
|
+
lockUrlGuard(auth) {
|
|
97
|
+
this.lockUrlGuardFromSuffixes(derivePartnerAllowedSuffixes(auth, this.realmUrl));
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Locks the default transport URL guard to previously validated endpoint suffixes.
|
|
101
|
+
*
|
|
102
|
+
* @param derived - Validated endpoint suffixes.
|
|
103
|
+
*/
|
|
104
|
+
lockUrlGuardFromSuffixes(derived) {
|
|
105
|
+
if (this.urlGuard === null) return;
|
|
106
|
+
const merged = this.disableSsrfGuard === true ? [] : this.additionalAllowedSuffixes !== void 0 ? Array.from(/* @__PURE__ */ new Set([...derived, ...this.additionalAllowedSuffixes])) : derived;
|
|
107
|
+
this.urlGuard.setAllowedSuffixes(merged);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Validates a Partner authorization snapshot and returns endpoint suffixes.
|
|
111
|
+
*
|
|
112
|
+
* @param auth - Partner authorization response to validate.
|
|
113
|
+
*
|
|
114
|
+
* @returns Host suffixes safe for Partner-token endpoint requests.
|
|
115
|
+
*
|
|
116
|
+
* @internal
|
|
117
|
+
*/
|
|
118
|
+
validateEndpointSuffixes(auth) {
|
|
119
|
+
return validatePartnerAuthorizeResponseEndpoints(auth, this.realmUrl, this.allowCustomAuthorizeRealm);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Validates an auth snapshot, locks the default URL guard, and returns endpoint suffixes.
|
|
123
|
+
*
|
|
124
|
+
* @param auth - Partner authorization response to validate and activate.
|
|
125
|
+
*
|
|
126
|
+
* @returns Host suffixes safe for Partner-token endpoint requests.
|
|
127
|
+
*
|
|
128
|
+
* @internal
|
|
129
|
+
*/
|
|
130
|
+
activateEndpointSuffixes(auth) {
|
|
131
|
+
const suffixes = this.validateEndpointSuffixes(auth);
|
|
132
|
+
this.lockUrlGuardFromSuffixes(suffixes);
|
|
133
|
+
return suffixes;
|
|
134
|
+
}
|
|
135
|
+
validateCachedAuth() {
|
|
136
|
+
const cachedAuth = this.partnerAccountInfo.getAuth();
|
|
137
|
+
if (cachedAuth === null) return void 0;
|
|
138
|
+
try {
|
|
139
|
+
return this.validateEndpointSuffixes(cachedAuth);
|
|
140
|
+
} catch {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
reauthorize(signal) {
|
|
145
|
+
throwIfSignalAborted(signal);
|
|
146
|
+
const inflight = this.#inflightReauth ?? this.startReauthorize();
|
|
147
|
+
inflight.waiters += 1;
|
|
148
|
+
return raceWithAbort(inflight.promise, signal).finally(() => {
|
|
149
|
+
inflight.waiters -= 1;
|
|
150
|
+
if (inflight.waiters === 0 && !inflight.settled && !inflight.controller.signal.aborted) inflight.controller.abort(signal?.aborted === true ? abortReason(signal) : void 0);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
startReauthorize() {
|
|
154
|
+
const controller = new AbortController();
|
|
155
|
+
const inflight = {
|
|
156
|
+
controller,
|
|
157
|
+
promise: raceWithAbort(this.doReauthorize(controller.signal), controller.signal).finally(() => {
|
|
158
|
+
if (this.#inflightReauth?.controller !== controller) return;
|
|
159
|
+
this.#inflightReauth.settled = true;
|
|
160
|
+
this.#inflightReauth = null;
|
|
161
|
+
}),
|
|
162
|
+
waiters: 0,
|
|
163
|
+
settled: false
|
|
164
|
+
};
|
|
165
|
+
this.#inflightReauth = inflight;
|
|
166
|
+
return inflight;
|
|
167
|
+
}
|
|
168
|
+
async doReauthorize(signal) {
|
|
169
|
+
return (await this.authorize({ signal })).authorizationToken;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
//#endregion
|
|
173
|
+
export { PartnerAuthCore };
|
|
174
|
+
|
|
175
|
+
//# sourceMappingURL=auth-core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-core.js","names":["#masterKeyId","#masterKey","#inflightReauth"],"sources":["../../src/partner/auth-core.ts"],"sourcesContent":["import { getRealmUrl } from '../auth/realms.ts'\nimport { DEFAULT_RETRY_OPTIONS, type RetryOptions } from '../http/retry.ts'\nimport type { HttpTransport } from '../http/transport.ts'\nimport { FetchTransport, RetryTransport } from '../http/transport.ts'\nimport { UrlGuard } from '../http/url-guard.ts'\nimport type { PartnerAuthorizeResponse } from '../types/partner.ts'\nimport { abortReason, raceWithAbort, throwIfSignalAborted } from '../util/abort.ts'\nimport type { PartnerAccountInfo } from './account-info.ts'\nimport { InMemoryPartnerAccountInfo } from './in-memory.ts'\nimport {\n derivePartnerAllowedSuffixes,\n PartnerRawClient,\n validatePartnerAuthorizeResponseEndpoints,\n} from './raw.ts'\n\n/** Shared Partner authorization options used by Partner and Backup facades. */\nexport interface PartnerAuthCoreOptions {\n /** The Master Application Key ID for the partner administrator account. */\n readonly masterKeyId: string\n /** The Master Application Key secret. */\n readonly masterKey: string\n /** B2 realm alias or direct trusted realm URL. Defaults to `\"production\"`. */\n readonly realm?: string\n /** Storage backend for Partner authorization state. */\n readonly partnerAccountInfo?: PartnerAccountInfo\n /** Custom HTTP transport. Defaults to {@link FetchTransport}. */\n readonly transport?: HttpTransport\n /** Override retry behavior for retryable requests. */\n readonly retry?: Partial<RetryOptions>\n /** Custom user-agent string prepended to the SDK default. */\n readonly userAgent?: string\n /** Extra trusted host suffixes to merge into the default SSRF guard. */\n readonly additionalAllowedHostSuffixes?: readonly string[]\n /** Explicitly disable default SSRF guard suffix locking. */\n readonly disableSsrfGuard?: boolean\n /** Whether the default fetch transport may follow same-origin GET/HEAD redirects. */\n readonly followSameOriginRedirects?: boolean\n /** Allow direct custom authorize realms for tests or private proxies. */\n readonly allowCustomAuthorizeRealm?: boolean\n}\n\n/** Options for Partner authorization through {@link PartnerAuthCore}. */\nexport interface PartnerAuthCoreAuthorizeOptions {\n /** Abort signal for cancelling the authorize request. */\n readonly signal?: AbortSignal\n}\n\ninterface InflightPartnerReauth {\n readonly controller: AbortController\n readonly promise: Promise<string>\n waiters: number\n settled: boolean\n}\n\n/**\n * Internal Partner authorization state machine shared by public facades.\n *\n * @internal\n */\nexport class PartnerAuthCore {\n /** Low-level Partner raw client used for authorization and Partner endpoints. */\n readonly raw: PartnerRawClient\n /** Partner authorization state storage. */\n readonly partnerAccountInfo: PartnerAccountInfo\n /** Default transport URL guard, or null when a custom transport owns guarding. */\n readonly urlGuard: UrlGuard | null\n /** Retry-wrapped transport shared by facade-specific raw clients. */\n readonly transport: HttpTransport\n /** Endpoint suffixes validated from cached authorization during construction. */\n readonly cachedEndpointSuffixes: readonly string[] | undefined\n /** Resolved Partner authorize realm URL. */\n private readonly realmUrl: string\n /** Whether custom authorize realms are trusted. */\n private readonly allowCustomAuthorizeRealm: boolean\n readonly #masterKeyId: string\n readonly #masterKey: string\n private readonly additionalAllowedSuffixes: readonly string[] | undefined\n private readonly disableSsrfGuard: boolean\n #inflightReauth: InflightPartnerReauth | null = null\n\n /**\n * Creates a shared Partner authorization core.\n *\n * @param options - Credentials, state storage, transport, retry, and guard settings.\n */\n constructor(options: PartnerAuthCoreOptions) {\n this.#masterKeyId = options.masterKeyId\n this.#masterKey = options.masterKey\n this.realmUrl = getRealmUrl(options.realm ?? 'production')\n this.partnerAccountInfo = options.partnerAccountInfo ?? new InMemoryPartnerAccountInfo()\n this.additionalAllowedSuffixes = options.additionalAllowedHostSuffixes\n this.disableSsrfGuard = options.disableSsrfGuard ?? false\n this.allowCustomAuthorizeRealm = options.allowCustomAuthorizeRealm ?? false\n\n let baseTransport: HttpTransport\n if (options.transport !== undefined) {\n baseTransport = options.transport\n this.urlGuard = null\n } else {\n const urlGuard = new UrlGuard()\n baseTransport = new FetchTransport({\n urlGuard,\n ...(options.userAgent !== undefined ? { userAgent: options.userAgent } : {}),\n ...(options.followSameOriginRedirects !== undefined\n ? { followSameOriginRedirects: options.followSameOriginRedirects }\n : {}),\n })\n this.urlGuard = urlGuard\n }\n\n this.transport = new RetryTransport({\n transport: baseTransport,\n retry: { ...DEFAULT_RETRY_OPTIONS, ...options.retry },\n onReauth: (signal) => this.reauthorize(signal),\n })\n\n this.cachedEndpointSuffixes = this.validateCachedAuth()\n if (this.cachedEndpointSuffixes !== undefined) {\n this.lockUrlGuardFromSuffixes(this.cachedEndpointSuffixes)\n }\n\n this.raw = new PartnerRawClient({\n transport: this.transport,\n ...(this.cachedEndpointSuffixes !== undefined\n ? { authorizedPartnerEndpointSuffixes: this.cachedEndpointSuffixes }\n : {}),\n ...(options.allowCustomAuthorizeRealm !== undefined\n ? { allowCustomAuthorizeRealm: options.allowCustomAuthorizeRealm }\n : {}),\n })\n }\n\n /**\n * Authenticates with B2 Partner authorization and stores the authorization state.\n *\n * @param options - Optional abort signal.\n *\n * @returns The normalized Partner authorization response.\n */\n async authorize(options?: PartnerAuthCoreAuthorizeOptions): Promise<PartnerAuthorizeResponse> {\n throwIfSignalAborted(options?.signal)\n const auth = await this.raw.authorizePartner(\n this.#masterKeyId,\n this.#masterKey,\n this.realmUrl,\n options?.signal !== undefined ? { signal: options.signal } : undefined,\n )\n throwIfSignalAborted(options?.signal)\n this.partnerAccountInfo.setAuth(auth)\n this.lockUrlGuard(auth)\n return auth\n }\n\n /**\n * Locks the default transport URL guard to suffixes from a validated auth response.\n *\n * @param auth - Partner authorization response to derive suffixes from.\n */\n lockUrlGuard(auth: PartnerAuthorizeResponse): void {\n this.lockUrlGuardFromSuffixes(derivePartnerAllowedSuffixes(auth, this.realmUrl))\n }\n\n /**\n * Locks the default transport URL guard to previously validated endpoint suffixes.\n *\n * @param derived - Validated endpoint suffixes.\n */\n private lockUrlGuardFromSuffixes(derived: readonly string[]): void {\n if (this.urlGuard === null) return\n const merged =\n this.disableSsrfGuard === true\n ? []\n : this.additionalAllowedSuffixes !== undefined\n ? Array.from(new Set([...derived, ...this.additionalAllowedSuffixes]))\n : derived\n this.urlGuard.setAllowedSuffixes(merged)\n }\n\n /**\n * Validates a Partner authorization snapshot and returns endpoint suffixes.\n *\n * @param auth - Partner authorization response to validate.\n *\n * @returns Host suffixes safe for Partner-token endpoint requests.\n *\n * @internal\n */\n private validateEndpointSuffixes(auth: PartnerAuthorizeResponse): readonly string[] {\n return validatePartnerAuthorizeResponseEndpoints(\n auth,\n this.realmUrl,\n this.allowCustomAuthorizeRealm,\n )\n }\n\n /**\n * Validates an auth snapshot, locks the default URL guard, and returns endpoint suffixes.\n *\n * @param auth - Partner authorization response to validate and activate.\n *\n * @returns Host suffixes safe for Partner-token endpoint requests.\n *\n * @internal\n */\n activateEndpointSuffixes(auth: PartnerAuthorizeResponse): readonly string[] {\n const suffixes = this.validateEndpointSuffixes(auth)\n this.lockUrlGuardFromSuffixes(suffixes)\n return suffixes\n }\n\n private validateCachedAuth(): readonly string[] | undefined {\n const cachedAuth = this.partnerAccountInfo.getAuth()\n if (cachedAuth === null) return undefined\n try {\n return this.validateEndpointSuffixes(cachedAuth)\n } catch {\n // Do not mutate a shared PartnerAccountInfo during construction. The\n // facade will ignore this auth locally until authorize() replaces it.\n return undefined\n }\n }\n\n private reauthorize(signal: AbortSignal | undefined): Promise<string> {\n throwIfSignalAborted(signal)\n const inflight = this.#inflightReauth ?? this.startReauthorize()\n inflight.waiters += 1\n return raceWithAbort(inflight.promise, signal).finally(() => {\n inflight.waiters -= 1\n if (inflight.waiters === 0 && !inflight.settled && !inflight.controller.signal.aborted) {\n inflight.controller.abort(signal?.aborted === true ? abortReason(signal) : undefined)\n }\n })\n }\n\n private startReauthorize(): InflightPartnerReauth {\n const controller = new AbortController()\n const promise = raceWithAbort(this.doReauthorize(controller.signal), controller.signal).finally(\n () => {\n if (this.#inflightReauth?.controller !== controller) return\n this.#inflightReauth.settled = true\n this.#inflightReauth = null\n },\n )\n const inflight: InflightPartnerReauth = {\n controller,\n promise,\n waiters: 0,\n settled: false,\n }\n this.#inflightReauth = inflight\n return inflight\n }\n\n private async doReauthorize(signal: AbortSignal): Promise<string> {\n const auth = await this.authorize({ signal })\n return auth.authorizationToken\n }\n}\n"],"mappings":";;;;;;;;;;;;;AA2DA,IAAa,kBAAb,MAA6B;;CAE3B;;CAEA;;CAEA;;CAEA;;CAEA;;CAEA;;CAEA;CACA;CACA;CACA;CACA;CACA,kBAAgD;;;;;;CAOhD,YAAY,SAAiC;EAC3C,KAAKA,eAAe,QAAQ;EAC5B,KAAKC,aAAa,QAAQ;EAC1B,KAAK,WAAW,YAAY,QAAQ,SAAS,YAAY;EACzD,KAAK,qBAAqB,QAAQ,sBAAsB,IAAI,2BAA2B;EACvF,KAAK,4BAA4B,QAAQ;EACzC,KAAK,mBAAmB,QAAQ,oBAAoB;EACpD,KAAK,4BAA4B,QAAQ,6BAA6B;EAEtE,IAAI;EACJ,IAAI,QAAQ,cAAc,KAAA,GAAW;GACnC,gBAAgB,QAAQ;GACxB,KAAK,WAAW;EAClB,OAAO;GACL,MAAM,WAAW,IAAI,SAAS;GAC9B,gBAAgB,IAAI,eAAe;IACjC;IACA,GAAI,QAAQ,cAAc,KAAA,IAAY,EAAE,WAAW,QAAQ,UAAU,IAAI,CAAC;IAC1E,GAAI,QAAQ,8BAA8B,KAAA,IACtC,EAAE,2BAA2B,QAAQ,0BAA0B,IAC/D,CAAC;GACP,CAAC;GACD,KAAK,WAAW;EAClB;EAEA,KAAK,YAAY,IAAI,eAAe;GAClC,WAAW;GACX,OAAO;IAAE,GAAG;IAAuB,GAAG,QAAQ;GAAM;GACpD,WAAW,WAAW,KAAK,YAAY,MAAM;EAC/C,CAAC;EAED,KAAK,yBAAyB,KAAK,mBAAmB;EACtD,IAAI,KAAK,2BAA2B,KAAA,GAClC,KAAK,yBAAyB,KAAK,sBAAsB;EAG3D,KAAK,MAAM,IAAI,iBAAiB;GAC9B,WAAW,KAAK;GAChB,GAAI,KAAK,2BAA2B,KAAA,IAChC,EAAE,mCAAmC,KAAK,uBAAuB,IACjE,CAAC;GACL,GAAI,QAAQ,8BAA8B,KAAA,IACtC,EAAE,2BAA2B,QAAQ,0BAA0B,IAC/D,CAAC;EACP,CAAC;CACH;;;;;;;;CASA,MAAM,UAAU,SAA8E;EAC5F,qBAAqB,SAAS,MAAM;EACpC,MAAM,OAAO,MAAM,KAAK,IAAI,iBAC1B,KAAKD,cACL,KAAKC,YACL,KAAK,UACL,SAAS,WAAW,KAAA,IAAY,EAAE,QAAQ,QAAQ,OAAO,IAAI,KAAA,CAC/D;EACA,qBAAqB,SAAS,MAAM;EACpC,KAAK,mBAAmB,QAAQ,IAAI;EACpC,KAAK,aAAa,IAAI;EACtB,OAAO;CACT;;;;;;CAOA,aAAa,MAAsC;EACjD,KAAK,yBAAyB,6BAA6B,MAAM,KAAK,QAAQ,CAAC;CACjF;;;;;;CAOA,yBAAiC,SAAkC;EACjE,IAAI,KAAK,aAAa,MAAM;EAC5B,MAAM,SACJ,KAAK,qBAAqB,OACtB,CAAC,IACD,KAAK,8BAA8B,KAAA,IACjC,MAAM,qBAAK,IAAI,IAAI,CAAC,GAAG,SAAS,GAAG,KAAK,yBAAyB,CAAC,CAAC,IACnE;EACR,KAAK,SAAS,mBAAmB,MAAM;CACzC;;;;;;;;;;CAWA,yBAAiC,MAAmD;EAClF,OAAO,0CACL,MACA,KAAK,UACL,KAAK,yBACP;CACF;;;;;;;;;;CAWA,yBAAyB,MAAmD;EAC1E,MAAM,WAAW,KAAK,yBAAyB,IAAI;EACnD,KAAK,yBAAyB,QAAQ;EACtC,OAAO;CACT;CAEA,qBAA4D;EAC1D,MAAM,aAAa,KAAK,mBAAmB,QAAQ;EACnD,IAAI,eAAe,MAAM,OAAO,KAAA;EAChC,IAAI;GACF,OAAO,KAAK,yBAAyB,UAAU;EACjD,QAAQ;GAGN;EACF;CACF;CAEA,YAAoB,QAAkD;EACpE,qBAAqB,MAAM;EAC3B,MAAM,WAAW,KAAKC,mBAAmB,KAAK,iBAAiB;EAC/D,SAAS,WAAW;EACpB,OAAO,cAAc,SAAS,SAAS,MAAM,CAAC,CAAC,cAAc;GAC3D,SAAS,WAAW;GACpB,IAAI,SAAS,YAAY,KAAK,CAAC,SAAS,WAAW,CAAC,SAAS,WAAW,OAAO,SAC7E,SAAS,WAAW,MAAM,QAAQ,YAAY,OAAO,YAAY,MAAM,IAAI,KAAA,CAAS;EAExF,CAAC;CACH;CAEA,mBAAkD;EAChD,MAAM,aAAa,IAAI,gBAAgB;EAQvC,MAAM,WAAkC;GACtC;GACA,SATc,cAAc,KAAK,cAAc,WAAW,MAAM,GAAG,WAAW,MAAM,CAAC,CAAC,cAChF;IACJ,IAAI,KAAKA,iBAAiB,eAAe,YAAY;IACrD,KAAKA,gBAAgB,UAAU;IAC/B,KAAKA,kBAAkB;GACzB,CAIA;GACA,SAAS;GACT,SAAS;EACX;EACA,KAAKA,kBAAkB;EACvB,OAAO;CACT;CAEA,MAAc,cAAc,QAAsC;EAEhE,QAAO,MADY,KAAK,UAAU,EAAE,OAAO,CAAC,EAAA,CAChC;CACd;AACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const require_errors_index = require("../errors/index.cjs");
|
|
2
|
+
require("./redaction-placeholders.cjs");
|
|
3
|
+
//#region src/partner/auth-shape.ts
|
|
4
|
+
function sameCapabilities(left, right) {
|
|
5
|
+
return left !== void 0 && left.length === right.length && left.every((cap, i) => cap === right[i]);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Validates that Partner authorize convenience fields mirror authoritative apiInfo suites.
|
|
9
|
+
*
|
|
10
|
+
* @param auth - Partner authorize response to validate.
|
|
11
|
+
*
|
|
12
|
+
* @throws B2PartnerAuthorizationError if suite and convenience fields disagree.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
function validatePartnerAuthorizeResponseShape(auth) {
|
|
17
|
+
if (auth.authorizationToken === "[redacted Partner token]") throw new require_errors_index.B2PartnerAuthorizationError("Partner authorization token was redacted; persist with partnerAuthorizeResponseForPersistence(auth) or reauthorize before reusing cached auth");
|
|
18
|
+
const { groupsApi, backupApi } = auth.apiInfo;
|
|
19
|
+
if (groupsApi === void 0 && backupApi === void 0) throw new require_errors_index.B2PartnerAuthorizationError("Partner authorization must include apiInfo.groupsApi or apiInfo.backupApi");
|
|
20
|
+
if (groupsApi === void 0) {
|
|
21
|
+
if (auth.groupsApiUrl !== void 0 || auth.groupsCapabilities !== void 0) throw new require_errors_index.B2PartnerAuthorizationError("Partner authorization groups convenience fields require apiInfo.groupsApi");
|
|
22
|
+
} else {
|
|
23
|
+
if (auth.groupsApiUrl !== void 0 && auth.groupsApiUrl !== groupsApi.groupsApiUrl) throw new require_errors_index.B2PartnerAuthorizationError("Partner authorization groupsApiUrl does not match apiInfo.groupsApi.groupsApiUrl");
|
|
24
|
+
if (auth.groupsCapabilities !== void 0 && !sameCapabilities(auth.groupsCapabilities, groupsApi.capabilities)) throw new require_errors_index.B2PartnerAuthorizationError("Partner authorization groupsCapabilities do not match apiInfo.groupsApi.capabilities");
|
|
25
|
+
}
|
|
26
|
+
if (backupApi === void 0) {
|
|
27
|
+
if (auth.backupApiUrl !== void 0 || auth.backupCapabilities !== void 0) throw new require_errors_index.B2PartnerAuthorizationError("Partner authorization backup convenience fields require apiInfo.backupApi");
|
|
28
|
+
} else {
|
|
29
|
+
if (auth.backupApiUrl !== void 0 && auth.backupApiUrl !== backupApi.backupApiUrl) throw new require_errors_index.B2PartnerAuthorizationError("Partner authorization backupApiUrl does not match apiInfo.backupApi.backupApiUrl");
|
|
30
|
+
if (auth.backupCapabilities !== void 0 && !sameCapabilities(auth.backupCapabilities, backupApi.capabilities)) throw new require_errors_index.B2PartnerAuthorizationError("Partner authorization backupCapabilities do not match apiInfo.backupApi.capabilities");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
exports.validatePartnerAuthorizeResponseShape = validatePartnerAuthorizeResponseShape;
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=auth-shape.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-shape.cjs","names":[],"sources":["../../src/partner/auth-shape.ts"],"sourcesContent":["import { B2PartnerAuthorizationError } from '../errors/index.ts'\nimport type { PartnerAuthorizeResponse, PartnerCapability } from '../types/partner.ts'\nimport { PARTNER_TOKEN_REDACTED } from './redaction-placeholders.ts'\n\nfunction sameCapabilities(\n left: readonly PartnerCapability[] | undefined,\n right: readonly PartnerCapability[],\n): boolean {\n return (\n left !== undefined && left.length === right.length && left.every((cap, i) => cap === right[i])\n )\n}\n\n/**\n * Validates that Partner authorize convenience fields mirror authoritative apiInfo suites.\n *\n * @param auth - Partner authorize response to validate.\n *\n * @throws B2PartnerAuthorizationError if suite and convenience fields disagree.\n *\n * @internal\n */\nexport function validatePartnerAuthorizeResponseShape(auth: PartnerAuthorizeResponse): void {\n if (auth.authorizationToken === PARTNER_TOKEN_REDACTED) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization token was redacted; persist with partnerAuthorizeResponseForPersistence(auth) or reauthorize before reusing cached auth',\n )\n }\n\n const { groupsApi, backupApi } = auth.apiInfo\n if (groupsApi === undefined && backupApi === undefined) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization must include apiInfo.groupsApi or apiInfo.backupApi',\n )\n }\n\n if (groupsApi === undefined) {\n if (auth.groupsApiUrl !== undefined || auth.groupsCapabilities !== undefined) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization groups convenience fields require apiInfo.groupsApi',\n )\n }\n } else {\n if (auth.groupsApiUrl !== undefined && auth.groupsApiUrl !== groupsApi.groupsApiUrl) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization groupsApiUrl does not match apiInfo.groupsApi.groupsApiUrl',\n )\n }\n if (\n auth.groupsCapabilities !== undefined &&\n !sameCapabilities(auth.groupsCapabilities, groupsApi.capabilities)\n ) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization groupsCapabilities do not match apiInfo.groupsApi.capabilities',\n )\n }\n }\n\n if (backupApi === undefined) {\n if (auth.backupApiUrl !== undefined || auth.backupCapabilities !== undefined) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization backup convenience fields require apiInfo.backupApi',\n )\n }\n } else {\n if (auth.backupApiUrl !== undefined && auth.backupApiUrl !== backupApi.backupApiUrl) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization backupApiUrl does not match apiInfo.backupApi.backupApiUrl',\n )\n }\n if (\n auth.backupCapabilities !== undefined &&\n !sameCapabilities(auth.backupCapabilities, backupApi.capabilities)\n ) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization backupCapabilities do not match apiInfo.backupApi.capabilities',\n )\n }\n }\n}\n"],"mappings":";;;AAIA,SAAS,iBACP,MACA,OACS;CACT,OACE,SAAS,KAAA,KAAa,KAAK,WAAW,MAAM,UAAU,KAAK,OAAO,KAAK,MAAM,QAAQ,MAAM,EAAE;AAEjG;;;;;;;;;;AAWA,SAAgB,sCAAsC,MAAsC;CAC1F,IAAI,KAAK,uBAAA,4BACP,MAAM,IAAI,qBAAA,4BACR,+IACF;CAGF,MAAM,EAAE,WAAW,cAAc,KAAK;CACtC,IAAI,cAAc,KAAA,KAAa,cAAc,KAAA,GAC3C,MAAM,IAAI,qBAAA,4BACR,2EACF;CAGF,IAAI,cAAc,KAAA,GACZ;MAAA,KAAK,iBAAiB,KAAA,KAAa,KAAK,uBAAuB,KAAA,GACjE,MAAM,IAAI,qBAAA,4BACR,2EACF;CAAA,OAEG;EACL,IAAI,KAAK,iBAAiB,KAAA,KAAa,KAAK,iBAAiB,UAAU,cACrE,MAAM,IAAI,qBAAA,4BACR,kFACF;EAEF,IACE,KAAK,uBAAuB,KAAA,KAC5B,CAAC,iBAAiB,KAAK,oBAAoB,UAAU,YAAY,GAEjE,MAAM,IAAI,qBAAA,4BACR,sFACF;CAEJ;CAEA,IAAI,cAAc,KAAA,GACZ;MAAA,KAAK,iBAAiB,KAAA,KAAa,KAAK,uBAAuB,KAAA,GACjE,MAAM,IAAI,qBAAA,4BACR,2EACF;CAAA,OAEG;EACL,IAAI,KAAK,iBAAiB,KAAA,KAAa,KAAK,iBAAiB,UAAU,cACrE,MAAM,IAAI,qBAAA,4BACR,kFACF;EAEF,IACE,KAAK,uBAAuB,KAAA,KAC5B,CAAC,iBAAiB,KAAK,oBAAoB,UAAU,YAAY,GAEjE,MAAM,IAAI,qBAAA,4BACR,sFACF;CAEJ;AACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PartnerAuthorizeResponse } from '../types/partner.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validates that Partner authorize convenience fields mirror authoritative apiInfo suites.
|
|
4
|
+
*
|
|
5
|
+
* @param auth - Partner authorize response to validate.
|
|
6
|
+
*
|
|
7
|
+
* @throws B2PartnerAuthorizationError if suite and convenience fields disagree.
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare function validatePartnerAuthorizeResponseShape(auth: PartnerAuthorizeResponse): void;
|
|
12
|
+
//# sourceMappingURL=auth-shape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-shape.d.ts","sourceRoot":"","sources":["../../src/partner/auth-shape.js"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAqB,MAAM,qBAAqB,CAAA;AAYtF;;;;;;;;GAQG;AACH,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAyD1F"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PartnerAuthorizeResponse } from '../types/partner.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validates that Partner authorize convenience fields mirror authoritative apiInfo suites.
|
|
4
|
+
*
|
|
5
|
+
* @param auth - Partner authorize response to validate.
|
|
6
|
+
*
|
|
7
|
+
* @throws B2PartnerAuthorizationError if suite and convenience fields disagree.
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare function validatePartnerAuthorizeResponseShape(auth: PartnerAuthorizeResponse): void;
|
|
12
|
+
//# sourceMappingURL=auth-shape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-shape.d.ts","sourceRoot":"","sources":["../../src/partner/auth-shape.js"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAqB,MAAM,qBAAqB,CAAA;AAYtF;;;;;;;;GAQG;AACH,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAyD1F"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { B2PartnerAuthorizationError } from "../errors/index.js";
|
|
2
|
+
import "./redaction-placeholders.js";
|
|
3
|
+
//#region src/partner/auth-shape.ts
|
|
4
|
+
function sameCapabilities(left, right) {
|
|
5
|
+
return left !== void 0 && left.length === right.length && left.every((cap, i) => cap === right[i]);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Validates that Partner authorize convenience fields mirror authoritative apiInfo suites.
|
|
9
|
+
*
|
|
10
|
+
* @param auth - Partner authorize response to validate.
|
|
11
|
+
*
|
|
12
|
+
* @throws B2PartnerAuthorizationError if suite and convenience fields disagree.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
function validatePartnerAuthorizeResponseShape(auth) {
|
|
17
|
+
if (auth.authorizationToken === "[redacted Partner token]") throw new B2PartnerAuthorizationError("Partner authorization token was redacted; persist with partnerAuthorizeResponseForPersistence(auth) or reauthorize before reusing cached auth");
|
|
18
|
+
const { groupsApi, backupApi } = auth.apiInfo;
|
|
19
|
+
if (groupsApi === void 0 && backupApi === void 0) throw new B2PartnerAuthorizationError("Partner authorization must include apiInfo.groupsApi or apiInfo.backupApi");
|
|
20
|
+
if (groupsApi === void 0) {
|
|
21
|
+
if (auth.groupsApiUrl !== void 0 || auth.groupsCapabilities !== void 0) throw new B2PartnerAuthorizationError("Partner authorization groups convenience fields require apiInfo.groupsApi");
|
|
22
|
+
} else {
|
|
23
|
+
if (auth.groupsApiUrl !== void 0 && auth.groupsApiUrl !== groupsApi.groupsApiUrl) throw new B2PartnerAuthorizationError("Partner authorization groupsApiUrl does not match apiInfo.groupsApi.groupsApiUrl");
|
|
24
|
+
if (auth.groupsCapabilities !== void 0 && !sameCapabilities(auth.groupsCapabilities, groupsApi.capabilities)) throw new B2PartnerAuthorizationError("Partner authorization groupsCapabilities do not match apiInfo.groupsApi.capabilities");
|
|
25
|
+
}
|
|
26
|
+
if (backupApi === void 0) {
|
|
27
|
+
if (auth.backupApiUrl !== void 0 || auth.backupCapabilities !== void 0) throw new B2PartnerAuthorizationError("Partner authorization backup convenience fields require apiInfo.backupApi");
|
|
28
|
+
} else {
|
|
29
|
+
if (auth.backupApiUrl !== void 0 && auth.backupApiUrl !== backupApi.backupApiUrl) throw new B2PartnerAuthorizationError("Partner authorization backupApiUrl does not match apiInfo.backupApi.backupApiUrl");
|
|
30
|
+
if (auth.backupCapabilities !== void 0 && !sameCapabilities(auth.backupCapabilities, backupApi.capabilities)) throw new B2PartnerAuthorizationError("Partner authorization backupCapabilities do not match apiInfo.backupApi.capabilities");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { validatePartnerAuthorizeResponseShape };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=auth-shape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-shape.js","names":[],"sources":["../../src/partner/auth-shape.ts"],"sourcesContent":["import { B2PartnerAuthorizationError } from '../errors/index.ts'\nimport type { PartnerAuthorizeResponse, PartnerCapability } from '../types/partner.ts'\nimport { PARTNER_TOKEN_REDACTED } from './redaction-placeholders.ts'\n\nfunction sameCapabilities(\n left: readonly PartnerCapability[] | undefined,\n right: readonly PartnerCapability[],\n): boolean {\n return (\n left !== undefined && left.length === right.length && left.every((cap, i) => cap === right[i])\n )\n}\n\n/**\n * Validates that Partner authorize convenience fields mirror authoritative apiInfo suites.\n *\n * @param auth - Partner authorize response to validate.\n *\n * @throws B2PartnerAuthorizationError if suite and convenience fields disagree.\n *\n * @internal\n */\nexport function validatePartnerAuthorizeResponseShape(auth: PartnerAuthorizeResponse): void {\n if (auth.authorizationToken === PARTNER_TOKEN_REDACTED) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization token was redacted; persist with partnerAuthorizeResponseForPersistence(auth) or reauthorize before reusing cached auth',\n )\n }\n\n const { groupsApi, backupApi } = auth.apiInfo\n if (groupsApi === undefined && backupApi === undefined) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization must include apiInfo.groupsApi or apiInfo.backupApi',\n )\n }\n\n if (groupsApi === undefined) {\n if (auth.groupsApiUrl !== undefined || auth.groupsCapabilities !== undefined) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization groups convenience fields require apiInfo.groupsApi',\n )\n }\n } else {\n if (auth.groupsApiUrl !== undefined && auth.groupsApiUrl !== groupsApi.groupsApiUrl) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization groupsApiUrl does not match apiInfo.groupsApi.groupsApiUrl',\n )\n }\n if (\n auth.groupsCapabilities !== undefined &&\n !sameCapabilities(auth.groupsCapabilities, groupsApi.capabilities)\n ) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization groupsCapabilities do not match apiInfo.groupsApi.capabilities',\n )\n }\n }\n\n if (backupApi === undefined) {\n if (auth.backupApiUrl !== undefined || auth.backupCapabilities !== undefined) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization backup convenience fields require apiInfo.backupApi',\n )\n }\n } else {\n if (auth.backupApiUrl !== undefined && auth.backupApiUrl !== backupApi.backupApiUrl) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization backupApiUrl does not match apiInfo.backupApi.backupApiUrl',\n )\n }\n if (\n auth.backupCapabilities !== undefined &&\n !sameCapabilities(auth.backupCapabilities, backupApi.capabilities)\n ) {\n throw new B2PartnerAuthorizationError(\n 'Partner authorization backupCapabilities do not match apiInfo.backupApi.capabilities',\n )\n }\n }\n}\n"],"mappings":";;;AAIA,SAAS,iBACP,MACA,OACS;CACT,OACE,SAAS,KAAA,KAAa,KAAK,WAAW,MAAM,UAAU,KAAK,OAAO,KAAK,MAAM,QAAQ,MAAM,EAAE;AAEjG;;;;;;;;;;AAWA,SAAgB,sCAAsC,MAAsC;CAC1F,IAAI,KAAK,uBAAA,4BACP,MAAM,IAAI,4BACR,+IACF;CAGF,MAAM,EAAE,WAAW,cAAc,KAAK;CACtC,IAAI,cAAc,KAAA,KAAa,cAAc,KAAA,GAC3C,MAAM,IAAI,4BACR,2EACF;CAGF,IAAI,cAAc,KAAA,GACZ;MAAA,KAAK,iBAAiB,KAAA,KAAa,KAAK,uBAAuB,KAAA,GACjE,MAAM,IAAI,4BACR,2EACF;CAAA,OAEG;EACL,IAAI,KAAK,iBAAiB,KAAA,KAAa,KAAK,iBAAiB,UAAU,cACrE,MAAM,IAAI,4BACR,kFACF;EAEF,IACE,KAAK,uBAAuB,KAAA,KAC5B,CAAC,iBAAiB,KAAK,oBAAoB,UAAU,YAAY,GAEjE,MAAM,IAAI,4BACR,sFACF;CAEJ;CAEA,IAAI,cAAc,KAAA,GACZ;MAAA,KAAK,iBAAiB,KAAA,KAAa,KAAK,uBAAuB,KAAA,GACjE,MAAM,IAAI,4BACR,2EACF;CAAA,OAEG;EACL,IAAI,KAAK,iBAAiB,KAAA,KAAa,KAAK,iBAAiB,UAAU,cACrE,MAAM,IAAI,4BACR,kFACF;EAEF,IACE,KAAK,uBAAuB,KAAA,KAC5B,CAAC,iBAAiB,KAAK,oBAAoB,UAAU,YAAY,GAEjE,MAAM,IAAI,4BACR,sFACF;CAEJ;AACF"}
|