@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,255 @@
|
|
|
1
|
+
const require_errors_index = require("../errors/index.cjs");
|
|
2
|
+
const require_paginator = require("../util/paginator.cjs");
|
|
3
|
+
const require_redaction_placeholders = require("./redaction-placeholders.cjs");
|
|
4
|
+
const require_auth_core = require("./auth-core.cjs");
|
|
5
|
+
//#region src/partner/client.ts
|
|
6
|
+
var MASTER_KEY_REDACTED = "[redacted Master Application Key]";
|
|
7
|
+
/**
|
|
8
|
+
* High-level Partner API client for groups, members, and B2 Reserve trials.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const partner = new PartnerClient({
|
|
13
|
+
* masterKeyId: process.env.B2_MASTER_KEY_ID,
|
|
14
|
+
* masterKey: process.env.B2_MASTER_KEY,
|
|
15
|
+
* })
|
|
16
|
+
* await partner.authorize()
|
|
17
|
+
* for await (const group of partner.paginateGroups()) {
|
|
18
|
+
* console.log(group.groupName)
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
23
|
+
*/
|
|
24
|
+
var PartnerClient = class {
|
|
25
|
+
/** Low-level client for direct Partner API calls. */
|
|
26
|
+
raw;
|
|
27
|
+
/** Partner authorization state storage (tokens, URLs, capabilities). */
|
|
28
|
+
partnerAccountInfo;
|
|
29
|
+
/**
|
|
30
|
+
* SSRF allow-list applied by the default transport. `null` when
|
|
31
|
+
* a custom transport was supplied; in that case the SDK does not own the
|
|
32
|
+
* guard.
|
|
33
|
+
*/
|
|
34
|
+
urlGuard;
|
|
35
|
+
authCore;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new PartnerClient. Call {@link authorize} before making API requests.
|
|
38
|
+
*
|
|
39
|
+
* @param options - Configuration including credentials, realm, and transport settings.
|
|
40
|
+
*/
|
|
41
|
+
constructor(options) {
|
|
42
|
+
this.authCore = new require_auth_core.PartnerAuthCore(options);
|
|
43
|
+
this.raw = this.authCore.raw;
|
|
44
|
+
this.partnerAccountInfo = this.authCore.partnerAccountInfo;
|
|
45
|
+
this.urlGuard = this.authCore.urlGuard;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Authenticates with B2 Partner authorization and stores the authorization state.
|
|
49
|
+
*
|
|
50
|
+
* @param options - Optional abort signal.
|
|
51
|
+
*
|
|
52
|
+
* @returns The Partner authorization response containing tokens, URLs, and capabilities.
|
|
53
|
+
*
|
|
54
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
55
|
+
*/
|
|
56
|
+
async authorize(options) {
|
|
57
|
+
return this.authCore.authorize(options);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Lists Partner groups for the authorized partner administrator account.
|
|
61
|
+
*
|
|
62
|
+
* @param options - Optional group filter and pagination settings.
|
|
63
|
+
*
|
|
64
|
+
* @returns A page of Partner groups with an optional continuation cursor.
|
|
65
|
+
*
|
|
66
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
67
|
+
*/
|
|
68
|
+
async listGroups(options) {
|
|
69
|
+
const { groupsApiUrl, authToken, adminAccountId } = this.groupsCoordinates(this.ensureGroupsAuthorization());
|
|
70
|
+
return this.raw.listGroups(groupsApiUrl, authToken, {
|
|
71
|
+
adminAccountId,
|
|
72
|
+
...options?.groupName !== void 0 ? { groupName: options.groupName } : {},
|
|
73
|
+
...options?.startGroupId !== void 0 ? { startGroupId: options.startGroupId } : {},
|
|
74
|
+
...options?.pageSize !== void 0 ? { maxGroupCount: options.pageSize } : {}
|
|
75
|
+
}, options?.signal !== void 0 ? { signal: options.signal } : void 0);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Async iterator that yields every Partner group for the authorized account.
|
|
79
|
+
*
|
|
80
|
+
* @param options - Optional group filter, page size, and abort signal.
|
|
81
|
+
*
|
|
82
|
+
* @returns An async iterable of {@link PartnerGroup} entries.
|
|
83
|
+
*
|
|
84
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
85
|
+
*/
|
|
86
|
+
paginateGroups(options) {
|
|
87
|
+
return require_paginator.paginateItems(async (cursor) => {
|
|
88
|
+
const resp = await this.listGroups({
|
|
89
|
+
...options?.groupName !== void 0 ? { groupName: options.groupName } : {},
|
|
90
|
+
...options?.pageSize !== void 0 ? { pageSize: options.pageSize } : {},
|
|
91
|
+
...cursor !== void 0 ? { startGroupId: cursor } : {},
|
|
92
|
+
...options?.signal !== void 0 ? { signal: options.signal } : {}
|
|
93
|
+
});
|
|
94
|
+
return {
|
|
95
|
+
page: resp,
|
|
96
|
+
nextCursor: resp.nextGroupId ?? void 0
|
|
97
|
+
};
|
|
98
|
+
}, (page) => page.groups, options?.signal);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Lists active members for a Partner group.
|
|
102
|
+
*
|
|
103
|
+
* @param options - Group ID plus optional pagination settings.
|
|
104
|
+
*
|
|
105
|
+
* @returns A page of group-member results with an optional continuation cursor.
|
|
106
|
+
*
|
|
107
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
108
|
+
*/
|
|
109
|
+
async listGroupMembers(options) {
|
|
110
|
+
const { groupsApiUrl, authToken, adminAccountId } = this.groupsCoordinates(this.ensureGroupsAuthorization());
|
|
111
|
+
return this.raw.listGroupMembers(groupsApiUrl, authToken, {
|
|
112
|
+
adminAccountId,
|
|
113
|
+
groupId: options.groupId,
|
|
114
|
+
...options.startEmail !== void 0 ? { startEmail: options.startEmail } : {},
|
|
115
|
+
...options.pageSize !== void 0 ? { maxMemberCount: options.pageSize } : {}
|
|
116
|
+
}, options.signal !== void 0 ? { signal: options.signal } : void 0);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Async iterator that yields every active member for a Partner group.
|
|
120
|
+
*
|
|
121
|
+
* @param options - Group ID plus optional page size and abort signal.
|
|
122
|
+
*
|
|
123
|
+
* @returns An async iterable of {@link ListedGroupMember} entries.
|
|
124
|
+
*
|
|
125
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
126
|
+
*/
|
|
127
|
+
paginateGroupMembers(options) {
|
|
128
|
+
return require_paginator.paginateItems(async (cursor) => {
|
|
129
|
+
const resp = await this.listGroupMembers({
|
|
130
|
+
groupId: options.groupId,
|
|
131
|
+
...options.pageSize !== void 0 ? { pageSize: options.pageSize } : {},
|
|
132
|
+
...cursor !== void 0 ? { startEmail: cursor } : {},
|
|
133
|
+
...options.signal !== void 0 ? { signal: options.signal } : {}
|
|
134
|
+
});
|
|
135
|
+
return {
|
|
136
|
+
page: resp,
|
|
137
|
+
nextCursor: resp[0]?.nextEmail ?? void 0
|
|
138
|
+
};
|
|
139
|
+
}, (page) => page.flatMap((result) => result.groupMembers), options.signal);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Creates a new Backblaze account and adds it to a Partner group.
|
|
143
|
+
*
|
|
144
|
+
* This mutation is non-idempotent. Automatic retries and expired-token
|
|
145
|
+
* reauthorization are disabled; long-running batch callers must catch token
|
|
146
|
+
* expiry, call {@link authorize}, and decide whether to issue a new request.
|
|
147
|
+
*
|
|
148
|
+
* @param options - Group ID, member email, and optional region.
|
|
149
|
+
*
|
|
150
|
+
* @returns The created member result array, including the member application key.
|
|
151
|
+
*
|
|
152
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
153
|
+
*/
|
|
154
|
+
async createGroupMember(options) {
|
|
155
|
+
const { groupsApiUrl, authToken, adminAccountId } = this.groupsCoordinates(this.ensureGroupsAuthorization());
|
|
156
|
+
return this.raw.createGroupMember(groupsApiUrl, authToken, {
|
|
157
|
+
adminAccountId,
|
|
158
|
+
groupId: options.groupId,
|
|
159
|
+
memberEmail: options.memberEmail,
|
|
160
|
+
...options.region !== void 0 ? { region: options.region } : {}
|
|
161
|
+
}, options.signal !== void 0 ? { signal: options.signal } : void 0);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Ejects an active member from a Partner group without deleting the account.
|
|
165
|
+
*
|
|
166
|
+
* This mutation is non-idempotent. Automatic retries and expired-token
|
|
167
|
+
* reauthorization are disabled; long-running batch callers must catch token
|
|
168
|
+
* expiry, call {@link authorize}, and decide whether to issue a new request.
|
|
169
|
+
*
|
|
170
|
+
* @param options - Group ID, member account ID, and optional replacement email.
|
|
171
|
+
*
|
|
172
|
+
* @returns The ejected member object.
|
|
173
|
+
*
|
|
174
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
175
|
+
*/
|
|
176
|
+
async ejectGroupMember(options) {
|
|
177
|
+
const { groupsApiUrl, authToken, adminAccountId } = this.groupsCoordinates(this.ensureGroupsAuthorization());
|
|
178
|
+
return this.raw.ejectGroupMember(groupsApiUrl, authToken, {
|
|
179
|
+
adminAccountId,
|
|
180
|
+
groupId: options.groupId,
|
|
181
|
+
memberAccountId: options.memberAccountId,
|
|
182
|
+
...options.email !== void 0 ? { email: options.email } : {}
|
|
183
|
+
}, options.signal !== void 0 ? { signal: options.signal } : void 0);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Reserves one or more new B2 Reserve trial accounts.
|
|
187
|
+
*
|
|
188
|
+
* This operation is non-idempotent and automatic retries/expired-token
|
|
189
|
+
* reauthorization are disabled at the raw layer. If the request fails after
|
|
190
|
+
* the server processes it, the returned application keys may be
|
|
191
|
+
* unrecoverable; reconcile account state before reissuing a batch.
|
|
192
|
+
*
|
|
193
|
+
* @param request - A single trial account request or a non-empty request array.
|
|
194
|
+
* @param options - Optional abort signal.
|
|
195
|
+
*
|
|
196
|
+
* @returns The created reserve-trial account result array.
|
|
197
|
+
*
|
|
198
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
199
|
+
*/
|
|
200
|
+
async reserveTrialAccounts(request, options) {
|
|
201
|
+
if (Array.isArray(request) && request.length === 0) throw new TypeError("reserveTrialAccounts request array must include at least one account request.");
|
|
202
|
+
const { groupsApiUrl, authToken } = this.groupsCoordinates(this.ensureGroupsAuthorization());
|
|
203
|
+
return this.raw.reserveTrialCreateAccount(groupsApiUrl, authToken, request, options?.signal !== void 0 ? { signal: options.signal } : void 0);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Hides credentials and Partner tokens from `JSON.stringify(client)`.
|
|
207
|
+
*
|
|
208
|
+
* @returns A redacted diagnostic object.
|
|
209
|
+
*/
|
|
210
|
+
toJSON() {
|
|
211
|
+
return {
|
|
212
|
+
type: "PartnerClient",
|
|
213
|
+
credentials: MASTER_KEY_REDACTED,
|
|
214
|
+
authorization: this.partnerAccountInfo.getAuth() === null ? "[unauthorized]" : require_redaction_placeholders.PARTNER_TOKEN_REDACTED,
|
|
215
|
+
authorized: this.partnerAccountInfo.getAuth() !== null,
|
|
216
|
+
urlGuardAllowedSuffixes: this.urlGuard?.getAllowedSuffixes() ?? null
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Hides credentials and Partner tokens from default stringification.
|
|
221
|
+
*
|
|
222
|
+
* @returns A short redacted label.
|
|
223
|
+
*/
|
|
224
|
+
toString() {
|
|
225
|
+
return `[PartnerClient ${MASTER_KEY_REDACTED}]`;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Hides credentials and Partner tokens from Node's `util.inspect`.
|
|
229
|
+
*
|
|
230
|
+
* @returns A short redacted label.
|
|
231
|
+
*/
|
|
232
|
+
[Symbol.for("nodejs.util.inspect.custom")]() {
|
|
233
|
+
return this.toString();
|
|
234
|
+
}
|
|
235
|
+
ensureGroupsAuthorization() {
|
|
236
|
+
const auth = this.partnerAccountInfo.getAuth();
|
|
237
|
+
if (auth === null) throw new require_errors_index.B2PartnerAuthorizationError("Not authorized. Call PartnerClient.authorize() first.");
|
|
238
|
+
const suffixes = this.authCore.activateEndpointSuffixes(auth);
|
|
239
|
+
this.raw.setAuthorizedEndpointSuffixes(suffixes);
|
|
240
|
+
return auth;
|
|
241
|
+
}
|
|
242
|
+
groupsCoordinates(auth) {
|
|
243
|
+
const groupsApiUrl = auth.apiInfo.groupsApi?.groupsApiUrl;
|
|
244
|
+
if (groupsApiUrl === void 0) throw new require_errors_index.B2PartnerAuthorizationError("Partner API is not available; PartnerClient.authorize() did not return apiInfo.groupsApi.");
|
|
245
|
+
return {
|
|
246
|
+
groupsApiUrl,
|
|
247
|
+
authToken: auth.authorizationToken,
|
|
248
|
+
adminAccountId: auth.accountId
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
//#endregion
|
|
253
|
+
exports.PartnerClient = PartnerClient;
|
|
254
|
+
|
|
255
|
+
//# sourceMappingURL=client.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.cjs","names":[],"sources":["../../src/partner/client.ts"],"sourcesContent":["import { B2PartnerAuthorizationError } from '../errors/index.ts'\nimport type { RetryOptions } from '../http/retry.ts'\nimport type { HttpTransport } from '../http/transport.ts'\nimport type { UrlGuard } from '../http/url-guard.ts'\nimport type { AccountId, GroupId, PartnerToken } from '../types/ids.ts'\nimport type {\n CreateGroupMemberResponse,\n EjectGroupMemberResponse,\n ListedGroupMember,\n ListGroupMembersResponse,\n ListGroupsResponse,\n PartnerAuthorizeResponse,\n PartnerGroup,\n Region,\n ReserveTrialCreateAccountRequest,\n ReserveTrialCreateAccountRequestEntry,\n ReserveTrialCreateAccountResponse,\n} from '../types/partner.ts'\nimport { paginateItems } from '../util/paginator.ts'\nimport type { PartnerAccountInfo } from './account-info.ts'\nimport { PartnerAuthCore } from './auth-core.ts'\nimport type { PartnerRawClient } from './raw.ts'\nimport { PARTNER_TOKEN_REDACTED } from './redaction.ts'\n\nconst MASTER_KEY_REDACTED = '[redacted Master Application Key]'\n\n/**\n * Configuration options for creating a {@link PartnerClient}.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\nexport interface PartnerClientOptions {\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 /**\n * B2 realm to authenticate against. Accepts a known realm-map key\n * (`\"production\"` or `\"staging\"`) or a direct base URL. Custom HTTPS hosts\n * are trusted with the Master Application Key during authorize, so never\n * derive `realm` from untrusted input. URL values must use HTTPS, or\n * loopback IP literal HTTP for local testing only; Master Application Key\n * credentials are sent unencrypted over loopback HTTP. Unsupported schemes,\n * malformed URLs, non-URL strings, plaintext HTTP hostnames such as\n * `localhost`, and non-loopback plaintext HTTP are rejected before\n * credentials are sent. URL values must not include userinfo, query strings,\n * or fragments. Defaults to `\"production\"`.\n */\n readonly realm?: string\n /**\n * Storage backend for Partner authorization state. Defaults to\n * {@link InMemoryPartnerAccountInfo}. Cached authorization whose endpoint\n * URLs fail the configured realm policy is ignored by this client until\n * `authorize()` replaces it; shared stores are not cleared during\n * construction.\n */\n readonly partnerAccountInfo?: PartnerAccountInfo\n /** Custom HTTP transport. Defaults to `FetchTransport`. Wrapped by `RetryTransport`. */\n readonly transport?: HttpTransport\n /** Override retry behavior (max retries, backoff, and per-attempt timeout). */\n readonly retry?: Partial<RetryOptions>\n /** Custom user-agent string prepended to the SDK default. */\n readonly userAgent?: string\n /**\n * Additional SSRF allow-list host suffixes. By default the SDK locks the\n * default transport to host suffixes derived from the Partner authorize\n * response. Pass an explicit list to add trusted hosts, for example a test\n * proxy. An empty array adds no hosts and leaves the default guard enabled.\n *\n * Only consulted when {@link PartnerClientOptions.transport} is unset; a\n * custom transport is the user's responsibility to harden.\n */\n readonly additionalAllowedHostSuffixes?: readonly string[]\n /**\n * Explicitly disable the default SSRF guard after authorize.\n *\n * This is intended only for controlled simulator/private-proxy tests. Never\n * enable it for URLs derived from untrusted input or production credentials.\n * Only consulted when {@link PartnerClientOptions.transport} is unset.\n */\n readonly disableSsrfGuard?: boolean\n /**\n * Follow same-origin GET/HEAD redirects in the default fetch transport after\n * checking each target with the SSRF guard. POST redirects remain blocked.\n * Defaults to true.\n */\n readonly followSameOriginRedirects?: boolean\n /**\n * Allow direct custom authorize realms for tests or private proxies.\n * Leave disabled unless the configured host is trusted with the Master\n * Application Key.\n */\n readonly allowCustomAuthorizeRealm?: boolean\n}\n\n/**\n * Options for Partner authorization.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\nexport interface PartnerAuthorizeOptions {\n /** Abort signal for cancelling the authorize request. */\n readonly signal?: AbortSignal\n}\n\n/**\n * Options for listing Partner groups.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\nexport interface ListGroupsOptions {\n /** Optional group name filter. Multiple groups may share the same name. */\n readonly groupName?: string\n /** Group ID to start listing from for pagination. */\n readonly startGroupId?: GroupId\n /** Maximum groups to return in this page. Forwarded to `maxGroupCount`. */\n readonly pageSize?: number\n /** Abort signal for cancelling the request. */\n readonly signal?: AbortSignal\n}\n\n/**\n * Options for paginating Partner groups.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\nexport interface PaginateGroupsOptions extends Omit<ListGroupsOptions, 'startGroupId'> {\n /**\n * Aborts the iteration between page fetches. The signal is also forwarded to\n * each underlying list request.\n */\n readonly signal?: AbortSignal\n}\n\n/**\n * Options for listing Partner group members.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\nexport interface ListGroupMembersOptions {\n /** Group ID whose active members should be listed. */\n readonly groupId: GroupId\n /** First member email address to return for pagination. */\n readonly startEmail?: string\n /** Maximum members to return in this page. Forwarded to `maxMemberCount`. */\n readonly pageSize?: number\n /** Abort signal for cancelling the request. */\n readonly signal?: AbortSignal\n}\n\n/**\n * Options for paginating Partner group members.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\nexport interface PaginateGroupMembersOptions extends Omit<ListGroupMembersOptions, 'startEmail'> {\n /**\n * Aborts the iteration between page fetches. The signal is also forwarded to\n * each underlying list request.\n */\n readonly signal?: AbortSignal\n}\n\n/**\n * Options for creating a Partner group member.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\nexport interface CreateGroupMemberOptions {\n /** Group ID that the new Backblaze account will join. */\n readonly groupId: GroupId\n /** Email address for the new group member account. */\n readonly memberEmail: string\n /** Region for the new account's data, or null to use the current default region. */\n readonly region?: Region | null\n /** Abort signal for cancelling the request. */\n readonly signal?: AbortSignal\n}\n\n/**\n * Options for ejecting a Partner group member.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\nexport interface EjectGroupMemberOptions {\n /** Group ID that currently contains the member. */\n readonly groupId: GroupId\n /** Account ID of the group member being ejected. */\n readonly memberAccountId: AccountId\n /** Replacement email for the ejected account, or null to keep the current email address. */\n readonly email?: string | null\n /** Abort signal for cancelling the request. */\n readonly signal?: AbortSignal\n}\n\n/**\n * Options for reserving B2 Reserve trial accounts.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\nexport interface ReserveTrialAccountsOptions {\n /** Abort signal for cancelling the request. */\n readonly signal?: AbortSignal\n}\n\n/** Coordinates needed for Partner groups API requests. */\ninterface PartnerGroupsCoordinates {\n readonly groupsApiUrl: string\n readonly authToken: PartnerToken\n readonly adminAccountId: AccountId\n}\n\n/** Redacted JSON diagnostic shape emitted by {@link PartnerClient.toJSON}. */\nexport interface PartnerClientJson {\n /** Object kind for log consumers. */\n readonly type: 'PartnerClient'\n /** Redacted Master Application Key credential placeholder. */\n readonly credentials: string\n /** Redacted Partner token placeholder, or unauthorized state. */\n readonly authorization: string\n /** Whether this client currently has Partner authorization state. */\n readonly authorized: boolean\n /** Current default URL guard suffixes, or null when a custom transport owns guarding. */\n readonly urlGuardAllowedSuffixes: readonly string[] | null\n}\n\n/**\n * High-level Partner API client for groups, members, and B2 Reserve trials.\n *\n * @example\n * ```ts\n * const partner = new PartnerClient({\n * masterKeyId: process.env.B2_MASTER_KEY_ID,\n * masterKey: process.env.B2_MASTER_KEY,\n * })\n * await partner.authorize()\n * for await (const group of partner.paginateGroups()) {\n * console.log(group.groupName)\n * }\n * ```\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\nexport class PartnerClient {\n /** Low-level client for direct Partner API calls. */\n readonly raw: PartnerRawClient\n /** Partner authorization state storage (tokens, URLs, capabilities). */\n readonly partnerAccountInfo: PartnerAccountInfo\n /**\n * SSRF allow-list applied by the default transport. `null` when\n * a custom transport was supplied; in that case the SDK does not own the\n * guard.\n */\n readonly urlGuard: UrlGuard | null\n private readonly authCore: PartnerAuthCore\n\n /**\n * Creates a new PartnerClient. Call {@link authorize} before making API requests.\n *\n * @param options - Configuration including credentials, realm, and transport settings.\n */\n constructor(options: PartnerClientOptions) {\n this.authCore = new PartnerAuthCore(options)\n this.raw = this.authCore.raw\n this.partnerAccountInfo = this.authCore.partnerAccountInfo\n this.urlGuard = this.authCore.urlGuard\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 Partner authorization response containing tokens, URLs, and capabilities.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\n async authorize(options?: PartnerAuthorizeOptions): Promise<PartnerAuthorizeResponse> {\n return this.authCore.authorize(options)\n }\n\n /**\n * Lists Partner groups for the authorized partner administrator account.\n *\n * @param options - Optional group filter and pagination settings.\n *\n * @returns A page of Partner groups with an optional continuation cursor.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\n async listGroups(options?: ListGroupsOptions): Promise<ListGroupsResponse> {\n const { groupsApiUrl, authToken, adminAccountId } = this.groupsCoordinates(\n this.ensureGroupsAuthorization(),\n )\n return this.raw.listGroups(\n groupsApiUrl,\n authToken,\n {\n adminAccountId,\n ...(options?.groupName !== undefined ? { groupName: options.groupName } : {}),\n ...(options?.startGroupId !== undefined ? { startGroupId: options.startGroupId } : {}),\n ...(options?.pageSize !== undefined ? { maxGroupCount: options.pageSize } : {}),\n },\n options?.signal !== undefined ? { signal: options.signal } : undefined,\n )\n }\n\n /**\n * Async iterator that yields every Partner group for the authorized account.\n *\n * @param options - Optional group filter, page size, and abort signal.\n *\n * @returns An async iterable of {@link PartnerGroup} entries.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\n paginateGroups(options?: PaginateGroupsOptions): AsyncIterableIterator<PartnerGroup> {\n return paginateItems(\n async (cursor: GroupId | undefined) => {\n const resp = await this.listGroups({\n ...(options?.groupName !== undefined ? { groupName: options.groupName } : {}),\n ...(options?.pageSize !== undefined ? { pageSize: options.pageSize } : {}),\n ...(cursor !== undefined ? { startGroupId: cursor } : {}),\n ...(options?.signal !== undefined ? { signal: options.signal } : {}),\n })\n return { page: resp, nextCursor: resp.nextGroupId ?? undefined }\n },\n (page) => page.groups,\n options?.signal,\n )\n }\n\n /**\n * Lists active members for a Partner group.\n *\n * @param options - Group ID plus optional pagination settings.\n *\n * @returns A page of group-member results with an optional continuation cursor.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\n async listGroupMembers(options: ListGroupMembersOptions): Promise<ListGroupMembersResponse> {\n const { groupsApiUrl, authToken, adminAccountId } = this.groupsCoordinates(\n this.ensureGroupsAuthorization(),\n )\n return this.raw.listGroupMembers(\n groupsApiUrl,\n authToken,\n {\n adminAccountId,\n groupId: options.groupId,\n ...(options.startEmail !== undefined ? { startEmail: options.startEmail } : {}),\n ...(options.pageSize !== undefined ? { maxMemberCount: options.pageSize } : {}),\n },\n options.signal !== undefined ? { signal: options.signal } : undefined,\n )\n }\n\n /**\n * Async iterator that yields every active member for a Partner group.\n *\n * @param options - Group ID plus optional page size and abort signal.\n *\n * @returns An async iterable of {@link ListedGroupMember} entries.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\n paginateGroupMembers(\n options: PaginateGroupMembersOptions,\n ): AsyncIterableIterator<ListedGroupMember> {\n return paginateItems(\n async (cursor: string | undefined) => {\n const resp = await this.listGroupMembers({\n groupId: options.groupId,\n ...(options.pageSize !== undefined ? { pageSize: options.pageSize } : {}),\n ...(cursor !== undefined ? { startEmail: cursor } : {}),\n ...(options.signal !== undefined ? { signal: options.signal } : {}),\n })\n // The API returns an array for consistency with batch-capable Partner\n // surfaces, but this request is scoped to one group ID.\n const result = resp[0]\n return {\n page: resp,\n nextCursor: result?.nextEmail ?? undefined,\n }\n },\n (page) => page.flatMap((result) => result.groupMembers),\n options.signal,\n )\n }\n\n /**\n * Creates a new Backblaze account and adds it to a Partner group.\n *\n * This mutation is non-idempotent. Automatic retries and expired-token\n * reauthorization are disabled; long-running batch callers must catch token\n * expiry, call {@link authorize}, and decide whether to issue a new request.\n *\n * @param options - Group ID, member email, and optional region.\n *\n * @returns The created member result array, including the member application key.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\n async createGroupMember(options: CreateGroupMemberOptions): Promise<CreateGroupMemberResponse> {\n const { groupsApiUrl, authToken, adminAccountId } = this.groupsCoordinates(\n this.ensureGroupsAuthorization(),\n )\n return this.raw.createGroupMember(\n groupsApiUrl,\n authToken,\n {\n adminAccountId,\n groupId: options.groupId,\n memberEmail: options.memberEmail,\n ...(options.region !== undefined ? { region: options.region } : {}),\n },\n options.signal !== undefined ? { signal: options.signal } : undefined,\n )\n }\n\n /**\n * Ejects an active member from a Partner group without deleting the account.\n *\n * This mutation is non-idempotent. Automatic retries and expired-token\n * reauthorization are disabled; long-running batch callers must catch token\n * expiry, call {@link authorize}, and decide whether to issue a new request.\n *\n * @param options - Group ID, member account ID, and optional replacement email.\n *\n * @returns The ejected member object.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\n async ejectGroupMember(options: EjectGroupMemberOptions): Promise<EjectGroupMemberResponse> {\n const { groupsApiUrl, authToken, adminAccountId } = this.groupsCoordinates(\n this.ensureGroupsAuthorization(),\n )\n return this.raw.ejectGroupMember(\n groupsApiUrl,\n authToken,\n {\n adminAccountId,\n groupId: options.groupId,\n memberAccountId: options.memberAccountId,\n ...(options.email !== undefined ? { email: options.email } : {}),\n },\n options.signal !== undefined ? { signal: options.signal } : undefined,\n )\n }\n\n /**\n * Reserves one or more new B2 Reserve trial accounts.\n *\n * This operation is non-idempotent and automatic retries/expired-token\n * reauthorization are disabled at the raw layer. If the request fails after\n * the server processes it, the returned application keys may be\n * unrecoverable; reconcile account state before reissuing a batch.\n *\n * @param request - A single trial account request or a non-empty request array.\n * @param options - Optional abort signal.\n *\n * @returns The created reserve-trial account result array.\n *\n * @experimental Partner API surface; shape may change as the Partner API docs evolve.\n */\n async reserveTrialAccounts(\n request: ReserveTrialCreateAccountRequestEntry | ReserveTrialCreateAccountRequest,\n options?: ReserveTrialAccountsOptions,\n ): Promise<ReserveTrialCreateAccountResponse> {\n if (Array.isArray(request) && request.length === 0) {\n throw new TypeError(\n 'reserveTrialAccounts request array must include at least one account request.',\n )\n }\n const { groupsApiUrl, authToken } = this.groupsCoordinates(this.ensureGroupsAuthorization())\n return this.raw.reserveTrialCreateAccount(\n groupsApiUrl,\n authToken,\n request,\n options?.signal !== undefined ? { signal: options.signal } : undefined,\n )\n }\n\n /**\n * Hides credentials and Partner tokens from `JSON.stringify(client)`.\n *\n * @returns A redacted diagnostic object.\n */\n toJSON(): PartnerClientJson {\n return {\n type: 'PartnerClient',\n credentials: MASTER_KEY_REDACTED,\n authorization:\n this.partnerAccountInfo.getAuth() === null ? '[unauthorized]' : PARTNER_TOKEN_REDACTED,\n authorized: this.partnerAccountInfo.getAuth() !== null,\n urlGuardAllowedSuffixes: this.urlGuard?.getAllowedSuffixes() ?? null,\n }\n }\n\n /**\n * Hides credentials and Partner tokens from default stringification.\n *\n * @returns A short redacted label.\n */\n toString(): string {\n return `[PartnerClient ${MASTER_KEY_REDACTED}]`\n }\n\n /**\n * Hides credentials and Partner tokens from Node's `util.inspect`.\n *\n * @returns A short redacted label.\n */\n [Symbol.for('nodejs.util.inspect.custom')](): string {\n return this.toString()\n }\n\n private ensureGroupsAuthorization(): PartnerAuthorizeResponse {\n const auth = this.partnerAccountInfo.getAuth()\n if (auth === null) {\n throw new B2PartnerAuthorizationError('Not authorized. Call PartnerClient.authorize() first.')\n }\n const suffixes = this.authCore.activateEndpointSuffixes(auth)\n this.raw.setAuthorizedEndpointSuffixes(suffixes)\n return auth\n }\n\n private groupsCoordinates(auth: PartnerAuthorizeResponse): PartnerGroupsCoordinates {\n const groupsApiUrl = auth.apiInfo.groupsApi?.groupsApiUrl\n if (groupsApiUrl === undefined) {\n throw new B2PartnerAuthorizationError(\n 'Partner API is not available; PartnerClient.authorize() did not return apiInfo.groupsApi.',\n )\n }\n return {\n groupsApiUrl,\n authToken: auth.authorizationToken,\n adminAccountId: auth.accountId,\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
import { RetryOptions } from '../http/retry.js';
|
|
2
|
+
import { HttpTransport } from '../http/transport.js';
|
|
3
|
+
import { UrlGuard } from '../http/url-guard.js';
|
|
4
|
+
import { AccountId, GroupId } from '../types/ids.js';
|
|
5
|
+
import { CreateGroupMemberResponse, EjectGroupMemberResponse, ListedGroupMember, ListGroupMembersResponse, ListGroupsResponse, PartnerAuthorizeResponse, PartnerGroup, Region, ReserveTrialCreateAccountRequest, ReserveTrialCreateAccountRequestEntry, ReserveTrialCreateAccountResponse } from '../types/partner.js';
|
|
6
|
+
import { PartnerAccountInfo } from './account-info.js';
|
|
7
|
+
import { PartnerRawClient } from './raw.js';
|
|
8
|
+
/**
|
|
9
|
+
* Configuration options for creating a {@link PartnerClient}.
|
|
10
|
+
*
|
|
11
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
12
|
+
*/
|
|
13
|
+
export interface PartnerClientOptions {
|
|
14
|
+
/** The Master Application Key ID for the partner administrator account. */
|
|
15
|
+
readonly masterKeyId: string;
|
|
16
|
+
/** The Master Application Key secret. */
|
|
17
|
+
readonly masterKey: string;
|
|
18
|
+
/**
|
|
19
|
+
* B2 realm to authenticate against. Accepts a known realm-map key
|
|
20
|
+
* (`"production"` or `"staging"`) or a direct base URL. Custom HTTPS hosts
|
|
21
|
+
* are trusted with the Master Application Key during authorize, so never
|
|
22
|
+
* derive `realm` from untrusted input. URL values must use HTTPS, or
|
|
23
|
+
* loopback IP literal HTTP for local testing only; Master Application Key
|
|
24
|
+
* credentials are sent unencrypted over loopback HTTP. Unsupported schemes,
|
|
25
|
+
* malformed URLs, non-URL strings, plaintext HTTP hostnames such as
|
|
26
|
+
* `localhost`, and non-loopback plaintext HTTP are rejected before
|
|
27
|
+
* credentials are sent. URL values must not include userinfo, query strings,
|
|
28
|
+
* or fragments. Defaults to `"production"`.
|
|
29
|
+
*/
|
|
30
|
+
readonly realm?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Storage backend for Partner authorization state. Defaults to
|
|
33
|
+
* {@link InMemoryPartnerAccountInfo}. Cached authorization whose endpoint
|
|
34
|
+
* URLs fail the configured realm policy is ignored by this client until
|
|
35
|
+
* `authorize()` replaces it; shared stores are not cleared during
|
|
36
|
+
* construction.
|
|
37
|
+
*/
|
|
38
|
+
readonly partnerAccountInfo?: PartnerAccountInfo;
|
|
39
|
+
/** Custom HTTP transport. Defaults to `FetchTransport`. Wrapped by `RetryTransport`. */
|
|
40
|
+
readonly transport?: HttpTransport;
|
|
41
|
+
/** Override retry behavior (max retries, backoff, and per-attempt timeout). */
|
|
42
|
+
readonly retry?: Partial<RetryOptions>;
|
|
43
|
+
/** Custom user-agent string prepended to the SDK default. */
|
|
44
|
+
readonly userAgent?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Additional SSRF allow-list host suffixes. By default the SDK locks the
|
|
47
|
+
* default transport to host suffixes derived from the Partner authorize
|
|
48
|
+
* response. Pass an explicit list to add trusted hosts, for example a test
|
|
49
|
+
* proxy. An empty array adds no hosts and leaves the default guard enabled.
|
|
50
|
+
*
|
|
51
|
+
* Only consulted when {@link PartnerClientOptions.transport} is unset; a
|
|
52
|
+
* custom transport is the user's responsibility to harden.
|
|
53
|
+
*/
|
|
54
|
+
readonly additionalAllowedHostSuffixes?: readonly string[];
|
|
55
|
+
/**
|
|
56
|
+
* Explicitly disable the default SSRF guard after authorize.
|
|
57
|
+
*
|
|
58
|
+
* This is intended only for controlled simulator/private-proxy tests. Never
|
|
59
|
+
* enable it for URLs derived from untrusted input or production credentials.
|
|
60
|
+
* Only consulted when {@link PartnerClientOptions.transport} is unset.
|
|
61
|
+
*/
|
|
62
|
+
readonly disableSsrfGuard?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Follow same-origin GET/HEAD redirects in the default fetch transport after
|
|
65
|
+
* checking each target with the SSRF guard. POST redirects remain blocked.
|
|
66
|
+
* Defaults to true.
|
|
67
|
+
*/
|
|
68
|
+
readonly followSameOriginRedirects?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Allow direct custom authorize realms for tests or private proxies.
|
|
71
|
+
* Leave disabled unless the configured host is trusted with the Master
|
|
72
|
+
* Application Key.
|
|
73
|
+
*/
|
|
74
|
+
readonly allowCustomAuthorizeRealm?: boolean;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Options for Partner authorization.
|
|
78
|
+
*
|
|
79
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
80
|
+
*/
|
|
81
|
+
export interface PartnerAuthorizeOptions {
|
|
82
|
+
/** Abort signal for cancelling the authorize request. */
|
|
83
|
+
readonly signal?: AbortSignal;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Options for listing Partner groups.
|
|
87
|
+
*
|
|
88
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
89
|
+
*/
|
|
90
|
+
export interface ListGroupsOptions {
|
|
91
|
+
/** Optional group name filter. Multiple groups may share the same name. */
|
|
92
|
+
readonly groupName?: string;
|
|
93
|
+
/** Group ID to start listing from for pagination. */
|
|
94
|
+
readonly startGroupId?: GroupId;
|
|
95
|
+
/** Maximum groups to return in this page. Forwarded to `maxGroupCount`. */
|
|
96
|
+
readonly pageSize?: number;
|
|
97
|
+
/** Abort signal for cancelling the request. */
|
|
98
|
+
readonly signal?: AbortSignal;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Options for paginating Partner groups.
|
|
102
|
+
*
|
|
103
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
104
|
+
*/
|
|
105
|
+
export interface PaginateGroupsOptions extends Omit<ListGroupsOptions, 'startGroupId'> {
|
|
106
|
+
/**
|
|
107
|
+
* Aborts the iteration between page fetches. The signal is also forwarded to
|
|
108
|
+
* each underlying list request.
|
|
109
|
+
*/
|
|
110
|
+
readonly signal?: AbortSignal;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Options for listing Partner group members.
|
|
114
|
+
*
|
|
115
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
116
|
+
*/
|
|
117
|
+
export interface ListGroupMembersOptions {
|
|
118
|
+
/** Group ID whose active members should be listed. */
|
|
119
|
+
readonly groupId: GroupId;
|
|
120
|
+
/** First member email address to return for pagination. */
|
|
121
|
+
readonly startEmail?: string;
|
|
122
|
+
/** Maximum members to return in this page. Forwarded to `maxMemberCount`. */
|
|
123
|
+
readonly pageSize?: number;
|
|
124
|
+
/** Abort signal for cancelling the request. */
|
|
125
|
+
readonly signal?: AbortSignal;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Options for paginating Partner group members.
|
|
129
|
+
*
|
|
130
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
131
|
+
*/
|
|
132
|
+
export interface PaginateGroupMembersOptions extends Omit<ListGroupMembersOptions, 'startEmail'> {
|
|
133
|
+
/**
|
|
134
|
+
* Aborts the iteration between page fetches. The signal is also forwarded to
|
|
135
|
+
* each underlying list request.
|
|
136
|
+
*/
|
|
137
|
+
readonly signal?: AbortSignal;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Options for creating a Partner group member.
|
|
141
|
+
*
|
|
142
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
143
|
+
*/
|
|
144
|
+
export interface CreateGroupMemberOptions {
|
|
145
|
+
/** Group ID that the new Backblaze account will join. */
|
|
146
|
+
readonly groupId: GroupId;
|
|
147
|
+
/** Email address for the new group member account. */
|
|
148
|
+
readonly memberEmail: string;
|
|
149
|
+
/** Region for the new account's data, or null to use the current default region. */
|
|
150
|
+
readonly region?: Region | null;
|
|
151
|
+
/** Abort signal for cancelling the request. */
|
|
152
|
+
readonly signal?: AbortSignal;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Options for ejecting a Partner group member.
|
|
156
|
+
*
|
|
157
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
158
|
+
*/
|
|
159
|
+
export interface EjectGroupMemberOptions {
|
|
160
|
+
/** Group ID that currently contains the member. */
|
|
161
|
+
readonly groupId: GroupId;
|
|
162
|
+
/** Account ID of the group member being ejected. */
|
|
163
|
+
readonly memberAccountId: AccountId;
|
|
164
|
+
/** Replacement email for the ejected account, or null to keep the current email address. */
|
|
165
|
+
readonly email?: string | null;
|
|
166
|
+
/** Abort signal for cancelling the request. */
|
|
167
|
+
readonly signal?: AbortSignal;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Options for reserving B2 Reserve trial accounts.
|
|
171
|
+
*
|
|
172
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
173
|
+
*/
|
|
174
|
+
export interface ReserveTrialAccountsOptions {
|
|
175
|
+
/** Abort signal for cancelling the request. */
|
|
176
|
+
readonly signal?: AbortSignal;
|
|
177
|
+
}
|
|
178
|
+
/** Redacted JSON diagnostic shape emitted by {@link PartnerClient.toJSON}. */
|
|
179
|
+
export interface PartnerClientJson {
|
|
180
|
+
/** Object kind for log consumers. */
|
|
181
|
+
readonly type: 'PartnerClient';
|
|
182
|
+
/** Redacted Master Application Key credential placeholder. */
|
|
183
|
+
readonly credentials: string;
|
|
184
|
+
/** Redacted Partner token placeholder, or unauthorized state. */
|
|
185
|
+
readonly authorization: string;
|
|
186
|
+
/** Whether this client currently has Partner authorization state. */
|
|
187
|
+
readonly authorized: boolean;
|
|
188
|
+
/** Current default URL guard suffixes, or null when a custom transport owns guarding. */
|
|
189
|
+
readonly urlGuardAllowedSuffixes: readonly string[] | null;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* High-level Partner API client for groups, members, and B2 Reserve trials.
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```ts
|
|
196
|
+
* const partner = new PartnerClient({
|
|
197
|
+
* masterKeyId: process.env.B2_MASTER_KEY_ID,
|
|
198
|
+
* masterKey: process.env.B2_MASTER_KEY,
|
|
199
|
+
* })
|
|
200
|
+
* await partner.authorize()
|
|
201
|
+
* for await (const group of partner.paginateGroups()) {
|
|
202
|
+
* console.log(group.groupName)
|
|
203
|
+
* }
|
|
204
|
+
* ```
|
|
205
|
+
*
|
|
206
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
207
|
+
*/
|
|
208
|
+
export declare class PartnerClient {
|
|
209
|
+
/** Low-level client for direct Partner API calls. */
|
|
210
|
+
readonly raw: PartnerRawClient;
|
|
211
|
+
/** Partner authorization state storage (tokens, URLs, capabilities). */
|
|
212
|
+
readonly partnerAccountInfo: PartnerAccountInfo;
|
|
213
|
+
/**
|
|
214
|
+
* SSRF allow-list applied by the default transport. `null` when
|
|
215
|
+
* a custom transport was supplied; in that case the SDK does not own the
|
|
216
|
+
* guard.
|
|
217
|
+
*/
|
|
218
|
+
readonly urlGuard: UrlGuard | null;
|
|
219
|
+
private readonly authCore;
|
|
220
|
+
/**
|
|
221
|
+
* Creates a new PartnerClient. Call {@link authorize} before making API requests.
|
|
222
|
+
*
|
|
223
|
+
* @param options - Configuration including credentials, realm, and transport settings.
|
|
224
|
+
*/
|
|
225
|
+
constructor(options: PartnerClientOptions);
|
|
226
|
+
/**
|
|
227
|
+
* Authenticates with B2 Partner authorization and stores the authorization state.
|
|
228
|
+
*
|
|
229
|
+
* @param options - Optional abort signal.
|
|
230
|
+
*
|
|
231
|
+
* @returns The Partner authorization response containing tokens, URLs, and capabilities.
|
|
232
|
+
*
|
|
233
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
234
|
+
*/
|
|
235
|
+
authorize(options?: PartnerAuthorizeOptions): Promise<PartnerAuthorizeResponse>;
|
|
236
|
+
/**
|
|
237
|
+
* Lists Partner groups for the authorized partner administrator account.
|
|
238
|
+
*
|
|
239
|
+
* @param options - Optional group filter and pagination settings.
|
|
240
|
+
*
|
|
241
|
+
* @returns A page of Partner groups with an optional continuation cursor.
|
|
242
|
+
*
|
|
243
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
244
|
+
*/
|
|
245
|
+
listGroups(options?: ListGroupsOptions): Promise<ListGroupsResponse>;
|
|
246
|
+
/**
|
|
247
|
+
* Async iterator that yields every Partner group for the authorized account.
|
|
248
|
+
*
|
|
249
|
+
* @param options - Optional group filter, page size, and abort signal.
|
|
250
|
+
*
|
|
251
|
+
* @returns An async iterable of {@link PartnerGroup} entries.
|
|
252
|
+
*
|
|
253
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
254
|
+
*/
|
|
255
|
+
paginateGroups(options?: PaginateGroupsOptions): AsyncIterableIterator<PartnerGroup>;
|
|
256
|
+
/**
|
|
257
|
+
* Lists active members for a Partner group.
|
|
258
|
+
*
|
|
259
|
+
* @param options - Group ID plus optional pagination settings.
|
|
260
|
+
*
|
|
261
|
+
* @returns A page of group-member results with an optional continuation cursor.
|
|
262
|
+
*
|
|
263
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
264
|
+
*/
|
|
265
|
+
listGroupMembers(options: ListGroupMembersOptions): Promise<ListGroupMembersResponse>;
|
|
266
|
+
/**
|
|
267
|
+
* Async iterator that yields every active member for a Partner group.
|
|
268
|
+
*
|
|
269
|
+
* @param options - Group ID plus optional page size and abort signal.
|
|
270
|
+
*
|
|
271
|
+
* @returns An async iterable of {@link ListedGroupMember} entries.
|
|
272
|
+
*
|
|
273
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
274
|
+
*/
|
|
275
|
+
paginateGroupMembers(options: PaginateGroupMembersOptions): AsyncIterableIterator<ListedGroupMember>;
|
|
276
|
+
/**
|
|
277
|
+
* Creates a new Backblaze account and adds it to a Partner group.
|
|
278
|
+
*
|
|
279
|
+
* This mutation is non-idempotent. Automatic retries and expired-token
|
|
280
|
+
* reauthorization are disabled; long-running batch callers must catch token
|
|
281
|
+
* expiry, call {@link authorize}, and decide whether to issue a new request.
|
|
282
|
+
*
|
|
283
|
+
* @param options - Group ID, member email, and optional region.
|
|
284
|
+
*
|
|
285
|
+
* @returns The created member result array, including the member application key.
|
|
286
|
+
*
|
|
287
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
288
|
+
*/
|
|
289
|
+
createGroupMember(options: CreateGroupMemberOptions): Promise<CreateGroupMemberResponse>;
|
|
290
|
+
/**
|
|
291
|
+
* Ejects an active member from a Partner group without deleting the account.
|
|
292
|
+
*
|
|
293
|
+
* This mutation is non-idempotent. Automatic retries and expired-token
|
|
294
|
+
* reauthorization are disabled; long-running batch callers must catch token
|
|
295
|
+
* expiry, call {@link authorize}, and decide whether to issue a new request.
|
|
296
|
+
*
|
|
297
|
+
* @param options - Group ID, member account ID, and optional replacement email.
|
|
298
|
+
*
|
|
299
|
+
* @returns The ejected member object.
|
|
300
|
+
*
|
|
301
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
302
|
+
*/
|
|
303
|
+
ejectGroupMember(options: EjectGroupMemberOptions): Promise<EjectGroupMemberResponse>;
|
|
304
|
+
/**
|
|
305
|
+
* Reserves one or more new B2 Reserve trial accounts.
|
|
306
|
+
*
|
|
307
|
+
* This operation is non-idempotent and automatic retries/expired-token
|
|
308
|
+
* reauthorization are disabled at the raw layer. If the request fails after
|
|
309
|
+
* the server processes it, the returned application keys may be
|
|
310
|
+
* unrecoverable; reconcile account state before reissuing a batch.
|
|
311
|
+
*
|
|
312
|
+
* @param request - A single trial account request or a non-empty request array.
|
|
313
|
+
* @param options - Optional abort signal.
|
|
314
|
+
*
|
|
315
|
+
* @returns The created reserve-trial account result array.
|
|
316
|
+
*
|
|
317
|
+
* @experimental Partner API surface; shape may change as the Partner API docs evolve.
|
|
318
|
+
*/
|
|
319
|
+
reserveTrialAccounts(request: ReserveTrialCreateAccountRequestEntry | ReserveTrialCreateAccountRequest, options?: ReserveTrialAccountsOptions): Promise<ReserveTrialCreateAccountResponse>;
|
|
320
|
+
/**
|
|
321
|
+
* Hides credentials and Partner tokens from `JSON.stringify(client)`.
|
|
322
|
+
*
|
|
323
|
+
* @returns A redacted diagnostic object.
|
|
324
|
+
*/
|
|
325
|
+
toJSON(): PartnerClientJson;
|
|
326
|
+
/**
|
|
327
|
+
* Hides credentials and Partner tokens from default stringification.
|
|
328
|
+
*
|
|
329
|
+
* @returns A short redacted label.
|
|
330
|
+
*/
|
|
331
|
+
toString(): string;
|
|
332
|
+
private ensureGroupsAuthorization;
|
|
333
|
+
private groupsCoordinates;
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/partner/client.js"],"names":[],"mappings":"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"}
|