@backblaze-labs/b2-sdk 0.2.0 → 0.4.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 +86 -1
- package/README.md +38 -7
- package/dist/_virtual/_b2-sdk-version-json.cjs +1 -1
- package/dist/_virtual/_b2-sdk-version-json.js +1 -1
- package/dist/auth/file.cjs.map +1 -1
- package/dist/auth/reauth-coalescer.cjs +65 -0
- package/dist/auth/reauth-coalescer.cjs.map +1 -0
- package/dist/auth/reauth-coalescer.d.cts +34 -0
- package/dist/auth/reauth-coalescer.d.cts.map +1 -0
- package/dist/auth/reauth-coalescer.d.ts +34 -0
- package/dist/auth/reauth-coalescer.d.ts.map +1 -0
- package/dist/auth/reauth-coalescer.js +65 -0
- package/dist/auth/reauth-coalescer.js.map +1 -0
- 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 +168 -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 +168 -0
- package/dist/backup/raw.js.map +1 -0
- package/dist/bucket-validation.cjs +111 -0
- package/dist/bucket-validation.cjs.map +1 -0
- package/dist/bucket-validation.d.cts +27 -0
- package/dist/bucket-validation.d.cts.map +1 -0
- package/dist/bucket-validation.d.ts +27 -0
- package/dist/bucket-validation.d.ts.map +1 -0
- package/dist/bucket-validation.js +109 -0
- package/dist/bucket-validation.js.map +1 -0
- package/dist/bucket.cjs +125 -74
- package/dist/bucket.cjs.map +1 -1
- package/dist/bucket.d.cts +156 -61
- package/dist/bucket.d.cts.map +1 -1
- package/dist/bucket.d.ts +156 -61
- package/dist/bucket.d.ts.map +1 -1
- package/dist/bucket.js +125 -74
- package/dist/bucket.js.map +1 -1
- package/dist/client.cjs +29 -8
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +30 -9
- package/dist/client.d.cts.map +1 -1
- package/dist/client.d.ts +30 -9
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +29 -8
- package/dist/client.js.map +1 -1
- package/dist/copy/large.cjs +5 -3
- package/dist/copy/large.cjs.map +1 -1
- package/dist/copy/large.d.cts.map +1 -1
- package/dist/copy/large.d.ts.map +1 -1
- package/dist/copy/large.js +5 -3
- package/dist/copy/large.js.map +1 -1
- package/dist/download/checksum.cjs +6 -2
- package/dist/download/checksum.cjs.map +1 -1
- package/dist/download/checksum.js +6 -2
- package/dist/download/checksum.js.map +1 -1
- package/dist/download/parallel.cjs +52 -15
- package/dist/download/parallel.cjs.map +1 -1
- package/dist/download/parallel.d.cts +8 -1
- package/dist/download/parallel.d.cts.map +1 -1
- package/dist/download/parallel.d.ts +8 -1
- package/dist/download/parallel.d.ts.map +1 -1
- package/dist/download/parallel.js +52 -15
- package/dist/download/parallel.js.map +1 -1
- package/dist/download/single.cjs +179 -19
- package/dist/download/single.cjs.map +1 -1
- package/dist/download/single.d.cts +10 -4
- package/dist/download/single.d.cts.map +1 -1
- package/dist/download/single.d.ts +10 -4
- package/dist/download/single.d.ts.map +1 -1
- package/dist/download/single.js +179 -19
- package/dist/download/single.js.map +1 -1
- package/dist/errors/index.cjs +196 -3
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.d.cts +134 -0
- package/dist/errors/index.d.cts.map +1 -1
- package/dist/errors/index.d.ts +134 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +183 -4
- package/dist/errors/index.js.map +1 -1
- package/dist/http/non-idempotent-mutations.cjs +38 -0
- package/dist/http/non-idempotent-mutations.cjs.map +1 -0
- package/dist/http/non-idempotent-mutations.d.cts +25 -0
- package/dist/http/non-idempotent-mutations.d.cts.map +1 -0
- package/dist/http/non-idempotent-mutations.d.ts +25 -0
- package/dist/http/non-idempotent-mutations.d.ts.map +1 -0
- package/dist/http/non-idempotent-mutations.js +35 -0
- package/dist/http/non-idempotent-mutations.js.map +1 -0
- package/dist/http/retry.cjs +1 -1
- package/dist/http/retry.cjs.map +1 -1
- package/dist/http/retry.js +1 -1
- package/dist/http/retry.js.map +1 -1
- package/dist/http/transport.cjs +62 -23
- package/dist/http/transport.cjs.map +1 -1
- package/dist/http/transport.d.cts +30 -3
- package/dist/http/transport.d.cts.map +1 -1
- package/dist/http/transport.d.ts +30 -3
- package/dist/http/transport.d.ts.map +1 -1
- package/dist/http/transport.js +60 -22
- package/dist/http/transport.js.map +1 -1
- package/dist/http/user-agent.cjs +12 -1
- package/dist/http/user-agent.cjs.map +1 -1
- package/dist/http/user-agent.d.cts +8 -0
- package/dist/http/user-agent.d.cts.map +1 -1
- package/dist/http/user-agent.d.ts +8 -0
- package/dist/http/user-agent.d.ts.map +1 -1
- package/dist/http/user-agent.js +13 -3
- package/dist/http/user-agent.js.map +1 -1
- package/dist/index.cjs +50 -2
- package/dist/index.d.cts +15 -12
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +15 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -10
- package/dist/notifications/index.cjs +3 -0
- package/dist/notifications/index.d.cts +2 -0
- package/dist/notifications/index.d.cts.map +1 -1
- package/dist/notifications/index.d.ts +2 -0
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +2 -1
- package/dist/object.cjs +13 -2
- package/dist/object.cjs.map +1 -1
- package/dist/object.d.cts +11 -3
- package/dist/object.d.cts.map +1 -1
- package/dist/object.d.ts +11 -3
- package/dist/object.d.ts.map +1 -1
- package/dist/object.js +13 -2
- 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 +156 -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 +156 -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 +270 -0
- package/dist/partner/client.cjs.map +1 -0
- package/dist/partner/client.d.cts +357 -0
- package/dist/partner/client.d.cts.map +1 -0
- package/dist/partner/client.d.ts +357 -0
- package/dist/partner/client.d.ts.map +1 -0
- package/dist/partner/client.js +270 -0
- package/dist/partner/client.js.map +1 -0
- package/dist/partner/endpoint-url.cjs +109 -0
- package/dist/partner/endpoint-url.cjs.map +1 -0
- package/dist/partner/endpoint-url.d.cts +74 -0
- package/dist/partner/endpoint-url.d.cts.map +1 -0
- package/dist/partner/endpoint-url.d.ts +74 -0
- package/dist/partner/endpoint-url.d.ts.map +1 -0
- package/dist/partner/endpoint-url.js +106 -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 +27 -0
- package/dist/partner/index.d.cts +32 -0
- package/dist/partner/index.d.cts.map +1 -0
- package/dist/partner/index.d.ts +32 -0
- package/dist/partner/index.d.ts.map +1 -0
- package/dist/partner/index.js +9 -0
- package/dist/partner/raw.cjs +400 -0
- package/dist/partner/raw.cjs.map +1 -0
- package/dist/partner/raw.d.cts +220 -0
- package/dist/partner/raw.d.cts.map +1 -0
- package/dist/partner/raw.d.ts +220 -0
- package/dist/partner/raw.d.ts.map +1 -0
- package/dist/partner/raw.js +398 -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 +292 -0
- package/dist/partner/redaction.cjs.map +1 -0
- package/dist/partner/redaction.d.cts +158 -0
- package/dist/partner/redaction.d.cts.map +1 -0
- package/dist/partner/redaction.d.ts +158 -0
- package/dist/partner/redaction.d.ts.map +1 -0
- package/dist/partner/redaction.js +281 -0
- package/dist/partner/redaction.js.map +1 -0
- package/dist/raw/encoding.cjs +29 -10
- package/dist/raw/encoding.cjs.map +1 -1
- package/dist/raw/encoding.d.cts +3 -2
- package/dist/raw/encoding.d.cts.map +1 -1
- package/dist/raw/encoding.d.ts +3 -2
- package/dist/raw/encoding.d.ts.map +1 -1
- package/dist/raw/encoding.js +29 -10
- package/dist/raw/encoding.js.map +1 -1
- package/dist/raw/index.cjs +131 -44
- package/dist/raw/index.cjs.map +1 -1
- package/dist/raw/index.d.cts +21 -15
- package/dist/raw/index.d.cts.map +1 -1
- package/dist/raw/index.d.ts +21 -15
- package/dist/raw/index.d.ts.map +1 -1
- package/dist/raw/index.js +114 -45
- 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/sigv4.cjs +15 -10
- package/dist/s3/sigv4.cjs.map +1 -1
- package/dist/s3/sigv4.js +15 -10
- package/dist/s3/sigv4.js.map +1 -1
- package/dist/simulator/index.cjs +1579 -257
- package/dist/simulator/index.cjs.map +1 -1
- package/dist/simulator/index.d.cts +124 -11
- package/dist/simulator/index.d.cts.map +1 -1
- package/dist/simulator/index.d.ts +124 -11
- package/dist/simulator/index.d.ts.map +1 -1
- package/dist/simulator/index.js +1568 -262
- package/dist/simulator/index.js.map +1 -1
- package/dist/simulator/partner-capabilities.cjs +77 -0
- package/dist/simulator/partner-capabilities.cjs.map +1 -0
- package/dist/simulator/partner-capabilities.d.cts +53 -0
- package/dist/simulator/partner-capabilities.d.cts.map +1 -0
- package/dist/simulator/partner-capabilities.d.ts +53 -0
- package/dist/simulator/partner-capabilities.d.ts.map +1 -0
- package/dist/simulator/partner-capabilities.js +73 -0
- package/dist/simulator/partner-capabilities.js.map +1 -0
- package/dist/simulator/partner.cjs +713 -0
- package/dist/simulator/partner.cjs.map +1 -0
- package/dist/simulator/partner.d.cts +186 -0
- package/dist/simulator/partner.d.cts.map +1 -0
- package/dist/simulator/partner.d.ts +186 -0
- package/dist/simulator/partner.d.ts.map +1 -0
- package/dist/simulator/partner.js +713 -0
- package/dist/simulator/partner.js.map +1 -0
- package/dist/simulator/validation.cjs +732 -25
- package/dist/simulator/validation.cjs.map +1 -1
- package/dist/simulator/validation.d.cts +145 -6
- package/dist/simulator/validation.d.cts.map +1 -1
- package/dist/simulator/validation.d.ts +145 -6
- package/dist/simulator/validation.d.ts.map +1 -1
- package/dist/simulator/validation.js +705 -26
- package/dist/simulator/validation.js.map +1 -1
- package/dist/streams/file-source.cjs +2 -2
- package/dist/streams/file-source.cjs.map +1 -1
- package/dist/streams/file-source.js +2 -2
- package/dist/streams/file-source.js.map +1 -1
- package/dist/streams/hash.cjs +246 -13
- package/dist/streams/hash.cjs.map +1 -1
- package/dist/streams/hash.d.cts +37 -12
- package/dist/streams/hash.d.cts.map +1 -1
- package/dist/streams/hash.d.ts +37 -12
- package/dist/streams/hash.d.ts.map +1 -1
- package/dist/streams/hash.js +246 -15
- package/dist/streams/hash.js.map +1 -1
- package/dist/streams/index.cjs +3 -1
- package/dist/streams/index.d.cts +1 -1
- package/dist/streams/index.d.cts.map +1 -1
- package/dist/streams/index.d.ts +1 -1
- package/dist/streams/index.d.ts.map +1 -1
- package/dist/streams/index.js +3 -3
- package/dist/streams/progress.cjs +63 -4
- package/dist/streams/progress.cjs.map +1 -1
- package/dist/streams/progress.d.cts +28 -2
- package/dist/streams/progress.d.cts.map +1 -1
- package/dist/streams/progress.d.ts +28 -2
- package/dist/streams/progress.d.ts.map +1 -1
- package/dist/streams/progress.js +63 -4
- package/dist/streams/progress.js.map +1 -1
- package/dist/streams/source.cjs +2 -1
- package/dist/streams/source.cjs.map +1 -1
- package/dist/streams/source.js +2 -1
- package/dist/streams/source.js.map +1 -1
- package/dist/sync/b2-sha1-reader.cjs +6 -2
- package/dist/sync/b2-sha1-reader.cjs.map +1 -1
- package/dist/sync/b2-sha1-reader.d.cts.map +1 -1
- package/dist/sync/b2-sha1-reader.d.ts.map +1 -1
- package/dist/sync/b2-sha1-reader.js +6 -2
- package/dist/sync/b2-sha1-reader.js.map +1 -1
- package/dist/sync/download-staging.cjs +156 -43
- package/dist/sync/download-staging.cjs.map +1 -1
- package/dist/sync/download-staging.d.cts +26 -2
- package/dist/sync/download-staging.d.cts.map +1 -1
- package/dist/sync/download-staging.d.ts +26 -2
- package/dist/sync/download-staging.d.ts.map +1 -1
- package/dist/sync/download-staging.js +155 -44
- package/dist/sync/download-staging.js.map +1 -1
- package/dist/sync/filters.cjs.map +1 -1
- package/dist/sync/filters.js.map +1 -1
- package/dist/sync/index.d.cts +1 -1
- package/dist/sync/index.d.cts.map +1 -1
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/local-file-io.cjs +15 -6
- package/dist/sync/local-file-io.cjs.map +1 -1
- package/dist/sync/local-file-io.d.cts +3 -0
- package/dist/sync/local-file-io.d.cts.map +1 -1
- package/dist/sync/local-file-io.d.ts +3 -0
- package/dist/sync/local-file-io.d.ts.map +1 -1
- package/dist/sync/local-file-io.js +15 -6
- package/dist/sync/local-file-io.js.map +1 -1
- package/dist/sync/local-sha1.cjs +6 -15
- package/dist/sync/local-sha1.cjs.map +1 -1
- package/dist/sync/local-sha1.d.cts +0 -8
- package/dist/sync/local-sha1.d.cts.map +1 -1
- package/dist/sync/local-sha1.d.ts +0 -8
- package/dist/sync/local-sha1.d.ts.map +1 -1
- package/dist/sync/local-sha1.js +7 -15
- package/dist/sync/local-sha1.js.map +1 -1
- package/dist/sync/pairing.cjs +1 -0
- package/dist/sync/pairing.cjs.map +1 -1
- package/dist/sync/pairing.js +1 -0
- package/dist/sync/pairing.js.map +1 -1
- package/dist/sync/policies/compare.cjs +5 -3
- package/dist/sync/policies/compare.cjs.map +1 -1
- package/dist/sync/policies/compare.d.cts.map +1 -1
- package/dist/sync/policies/compare.d.ts.map +1 -1
- package/dist/sync/policies/compare.js +6 -4
- package/dist/sync/policies/compare.js.map +1 -1
- package/dist/sync/policies/index.cjs +4 -10
- package/dist/sync/policies/index.cjs.map +1 -1
- package/dist/sync/policies/index.js +4 -10
- package/dist/sync/policies/index.js.map +1 -1
- package/dist/sync/scanners/b2.cjs +4 -2
- package/dist/sync/scanners/b2.cjs.map +1 -1
- package/dist/sync/scanners/b2.d.cts.map +1 -1
- package/dist/sync/scanners/b2.d.ts.map +1 -1
- package/dist/sync/scanners/b2.js +4 -2
- package/dist/sync/scanners/b2.js.map +1 -1
- package/dist/sync/scanners/local.cjs +150 -33
- package/dist/sync/scanners/local.cjs.map +1 -1
- package/dist/sync/scanners/local.d.cts +6 -0
- package/dist/sync/scanners/local.d.cts.map +1 -1
- package/dist/sync/scanners/local.d.ts +6 -0
- package/dist/sync/scanners/local.d.ts.map +1 -1
- package/dist/sync/scanners/local.js +150 -33
- package/dist/sync/scanners/local.js.map +1 -1
- package/dist/sync/synchronizer.cjs +79 -31
- package/dist/sync/synchronizer.cjs.map +1 -1
- package/dist/sync/synchronizer.d.cts +1 -0
- package/dist/sync/synchronizer.d.cts.map +1 -1
- package/dist/sync/synchronizer.d.ts +1 -0
- package/dist/sync/synchronizer.d.ts.map +1 -1
- package/dist/sync/synchronizer.js +79 -31
- package/dist/sync/synchronizer.js.map +1 -1
- package/dist/sync/types.d.cts +19 -3
- package/dist/sync/types.d.cts.map +1 -1
- package/dist/sync/types.d.ts +19 -3
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/types/auth.cjs +4 -0
- package/dist/types/auth.cjs.map +1 -1
- package/dist/types/auth.d.cts +4 -0
- package/dist/types/auth.d.cts.map +1 -1
- package/dist/types/auth.d.ts +4 -0
- package/dist/types/auth.d.ts.map +1 -1
- package/dist/types/auth.js +4 -0
- package/dist/types/auth.js.map +1 -1
- package/dist/types/backup.d.cts +85 -0
- package/dist/types/backup.d.cts.map +1 -0
- package/dist/types/backup.d.ts +85 -0
- package/dist/types/backup.d.ts.map +1 -0
- package/dist/types/bucket.cjs +81 -11
- package/dist/types/bucket.cjs.map +1 -1
- package/dist/types/bucket.d.cts +194 -41
- package/dist/types/bucket.d.cts.map +1 -1
- package/dist/types/bucket.d.ts +194 -41
- package/dist/types/bucket.d.ts.map +1 -1
- package/dist/types/bucket.js +67 -12
- 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 +100 -16
- package/dist/types/download.d.cts.map +1 -1
- package/dist/types/download.d.ts +100 -16
- 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 +76 -229
- package/dist/types/encryption.cjs.map +1 -1
- package/dist/types/encryption.d.cts +48 -6
- package/dist/types/encryption.d.cts.map +1 -1
- package/dist/types/encryption.d.ts +48 -6
- package/dist/types/encryption.d.ts.map +1 -1
- package/dist/types/encryption.js +74 -229
- package/dist/types/encryption.js.map +1 -1
- package/dist/types/errors.cjs +9 -0
- package/dist/types/errors.cjs.map +1 -1
- package/dist/types/errors.d.cts +1 -1
- package/dist/types/errors.d.cts.map +1 -1
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/errors.js +9 -0
- package/dist/types/errors.js.map +1 -1
- package/dist/types/file.cjs +3 -0
- package/dist/types/file.cjs.map +1 -1
- package/dist/types/file.d.cts +140 -18
- package/dist/types/file.d.cts.map +1 -1
- package/dist/types/file.d.ts +140 -18
- package/dist/types/file.d.ts.map +1 -1
- package/dist/types/file.js +3 -1
- package/dist/types/file.js.map +1 -1
- package/dist/types/ids.cjs +30 -0
- 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 +28 -1
- package/dist/types/ids.js.map +1 -1
- package/dist/types/index.d.cts +16 -12
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +16 -12
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/key.d.cts +4 -3
- package/dist/types/key.d.cts.map +1 -1
- package/dist/types/key.d.ts +4 -3
- package/dist/types/key.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/types/notifications.cjs +31 -1
- package/dist/types/notifications.cjs.map +1 -1
- package/dist/types/notifications.d.cts +31 -4
- package/dist/types/notifications.d.cts.map +1 -1
- package/dist/types/notifications.d.ts +31 -4
- package/dist/types/notifications.d.ts.map +1 -1
- package/dist/types/notifications.js +30 -2
- 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 +386 -0
- package/dist/types/partner.d.cts.map +1 -0
- package/dist/types/partner.d.ts +386 -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 +35 -18
- package/dist/types/upload.d.cts.map +1 -1
- package/dist/types/upload.d.ts +35 -18
- package/dist/types/upload.d.ts.map +1 -1
- package/dist/upload/abort-scope.cjs +0 -45
- package/dist/upload/abort-scope.cjs.map +1 -1
- package/dist/upload/abort-scope.d.cts +0 -22
- package/dist/upload/abort-scope.d.cts.map +1 -1
- package/dist/upload/abort-scope.d.ts +0 -22
- package/dist/upload/abort-scope.d.ts.map +1 -1
- package/dist/upload/abort-scope.js +1 -44
- package/dist/upload/abort-scope.js.map +1 -1
- package/dist/upload/finish.cjs +3 -8
- package/dist/upload/finish.cjs.map +1 -1
- package/dist/upload/finish.d.cts.map +1 -1
- package/dist/upload/finish.d.ts.map +1 -1
- package/dist/upload/finish.js +1 -6
- package/dist/upload/finish.js.map +1 -1
- package/dist/upload/large.cjs +15 -8
- package/dist/upload/large.cjs.map +1 -1
- package/dist/upload/large.d.cts +31 -8
- package/dist/upload/large.d.cts.map +1 -1
- package/dist/upload/large.d.ts +31 -8
- package/dist/upload/large.d.ts.map +1 -1
- package/dist/upload/large.js +15 -8
- package/dist/upload/large.js.map +1 -1
- package/dist/upload/options.cjs.map +1 -1
- package/dist/upload/options.d.cts +24 -0
- package/dist/upload/options.d.cts.map +1 -1
- package/dist/upload/options.d.ts +24 -0
- package/dist/upload/options.d.ts.map +1 -1
- package/dist/upload/options.js.map +1 -1
- package/dist/upload/resume.cjs +6 -4
- package/dist/upload/resume.cjs.map +1 -1
- package/dist/upload/resume.d.cts +9 -5
- package/dist/upload/resume.d.cts.map +1 -1
- package/dist/upload/resume.d.ts +9 -5
- package/dist/upload/resume.d.ts.map +1 -1
- package/dist/upload/resume.js +6 -4
- package/dist/upload/resume.js.map +1 -1
- package/dist/upload/retry.cjs +25 -13
- package/dist/upload/retry.cjs.map +1 -1
- package/dist/upload/retry.d.cts.map +1 -1
- package/dist/upload/retry.d.ts.map +1 -1
- package/dist/upload/retry.js +25 -13
- package/dist/upload/retry.js.map +1 -1
- package/dist/upload/single.cjs +35 -30
- package/dist/upload/single.cjs.map +1 -1
- package/dist/upload/single.d.cts +12 -0
- package/dist/upload/single.d.cts.map +1 -1
- package/dist/upload/single.d.ts +12 -0
- package/dist/upload/single.d.ts.map +1 -1
- package/dist/upload/single.js +35 -30
- package/dist/upload/single.js.map +1 -1
- package/dist/upload/stream.cjs +18 -5
- package/dist/upload/stream.cjs.map +1 -1
- package/dist/upload/stream.d.cts +12 -0
- package/dist/upload/stream.d.cts.map +1 -1
- package/dist/upload/stream.d.ts +12 -0
- package/dist/upload/stream.d.ts.map +1 -1
- package/dist/upload/stream.js +15 -2
- 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/defaults.cjs +3 -0
- 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 +3 -1
- package/dist/util/defaults.js.map +1 -1
- 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 +5 -5
- 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 +5 -5
- package/dist/util/normalize.js.map +1 -1
- package/dist/util/paginator.cjs +7 -1
- 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 +7 -1
- package/dist/util/paginator.js.map +1 -1
- package/dist/version.cjs +56 -4
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.cts +53 -4
- package/dist/version.d.cts.map +1 -1
- package/dist/version.d.ts +53 -4
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +52 -5
- package/dist/version.js.map +1 -1
- package/package.json +47 -18
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
const require_url = require("../raw/url.cjs");
|
|
2
|
+
const require_endpoint_url = require("../partner/endpoint-url.cjs");
|
|
3
|
+
//#region src/backup/raw.ts
|
|
4
|
+
var BACKUP_API = {
|
|
5
|
+
prefix: "api/backup",
|
|
6
|
+
version: "v1"
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Normalizes the `bz_delete_computer` wire response to the array-shaped schema.
|
|
10
|
+
*
|
|
11
|
+
* The Backblaze apidocs response *schema* declares a JSON array, but the
|
|
12
|
+
* accompanying *example* shows a single bare object. This tolerates both: an
|
|
13
|
+
* array passes through unchanged, and a lone object is wrapped in a
|
|
14
|
+
* single-element array, so callers always receive a {@link DeleteComputerResponse}
|
|
15
|
+
* regardless of which shape live B2 returns.
|
|
16
|
+
*
|
|
17
|
+
* @param raw - The parsed `bz_delete_computer` JSON body.
|
|
18
|
+
*
|
|
19
|
+
* @returns The response as the canonical array shape.
|
|
20
|
+
*
|
|
21
|
+
* @throws TypeError When the body is neither an array nor an object.
|
|
22
|
+
*/
|
|
23
|
+
function normalizeDeleteComputerResponse(raw) {
|
|
24
|
+
if (Array.isArray(raw)) return raw;
|
|
25
|
+
if (raw !== null && typeof raw === "object") return [raw];
|
|
26
|
+
throw new TypeError("bz_delete_computer returned an unexpected response body shape");
|
|
27
|
+
}
|
|
28
|
+
function backupEndpointAllowedSuffixes(transport, authorizedSuffixes) {
|
|
29
|
+
return require_endpoint_url.endpointAllowedSuffixes(transport, authorizedSuffixes, {
|
|
30
|
+
missingGuard: "Computer Backup endpoint requests require BackupClient.authorize() or a locked URL guard before sending Partner tokens",
|
|
31
|
+
unlockedGuard: "Computer Backup endpoint requests require a locked URL guard before sending Partner tokens"
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function backupEndpointUrl(backupApiUrl, endpoint) {
|
|
35
|
+
return require_url.b2Url(backupApiUrl, {
|
|
36
|
+
...BACKUP_API,
|
|
37
|
+
endpoint
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Low-level client for Computer Backup API endpoint bindings.
|
|
42
|
+
*
|
|
43
|
+
* Each method maps directly to one `bz_*` HTTP call under the
|
|
44
|
+
* `/api/backup/v1/` route using the `backupApiUrl` returned by Partner
|
|
45
|
+
* authorization.
|
|
46
|
+
*
|
|
47
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
48
|
+
*/
|
|
49
|
+
var BackupRawClient = class {
|
|
50
|
+
/** @internal */
|
|
51
|
+
transport;
|
|
52
|
+
authorizedEndpointSuffixes;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new BackupRawClient with the given transport.
|
|
55
|
+
*
|
|
56
|
+
* @param options - The constructor configuration.
|
|
57
|
+
*/
|
|
58
|
+
constructor(options) {
|
|
59
|
+
this.transport = options.transport;
|
|
60
|
+
this.authorizedEndpointSuffixes = Array.from(options.authorizedBackupEndpointSuffixes ?? []);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Replaces the validated Computer Backup endpoint host suffixes.
|
|
64
|
+
*
|
|
65
|
+
* @param suffixes - Host suffixes derived from Partner authorization.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
setAuthorizedEndpointSuffixes(suffixes) {
|
|
70
|
+
this.authorizedEndpointSuffixes = Array.from(suffixes);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Calls `bz_list_computers`.
|
|
74
|
+
*
|
|
75
|
+
* Uses the documented GET form. The wire response is a single JSON object
|
|
76
|
+
* with a `nextComputerId` cursor and active computer backup records.
|
|
77
|
+
*
|
|
78
|
+
* @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.
|
|
79
|
+
* @param authToken - The Partner authorization token.
|
|
80
|
+
* @param request - The computer listing query parameters.
|
|
81
|
+
* @param options - Optional abort and per-request retry settings.
|
|
82
|
+
*
|
|
83
|
+
* @returns The single-object computer backup wire response.
|
|
84
|
+
*
|
|
85
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
86
|
+
*/
|
|
87
|
+
async listComputers(backupApiUrl, authToken, request, options) {
|
|
88
|
+
return this.getJson(backupApiUrl, authToken, "bz_list_computers", {
|
|
89
|
+
accountId: request.accountId,
|
|
90
|
+
...request.startComputerId !== void 0 ? { startComputerId: request.startComputerId } : {},
|
|
91
|
+
...request.maxComputerCount !== void 0 ? { maxComputerCount: request.maxComputerCount } : {}
|
|
92
|
+
}, options);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Calls `bz_delete_computer`.
|
|
96
|
+
*
|
|
97
|
+
* The documented wire response is a JSON array of deletion records. This
|
|
98
|
+
* destructive mutation is not automatically retried or reauthorized in place.
|
|
99
|
+
*
|
|
100
|
+
* @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.
|
|
101
|
+
* @param authToken - The Partner authorization token.
|
|
102
|
+
* @param request - The computer deletion request body.
|
|
103
|
+
* @param options - Optional abort and per-request retry settings.
|
|
104
|
+
*
|
|
105
|
+
* @returns The deleted computer backup record array.
|
|
106
|
+
*
|
|
107
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
108
|
+
*/
|
|
109
|
+
async deleteComputer(backupApiUrl, authToken, request, options) {
|
|
110
|
+
return normalizeDeleteComputerResponse(await this.postNonRetryingMutationJson(backupApiUrl, authToken, "bz_delete_computer", {
|
|
111
|
+
accountId: request.accountId,
|
|
112
|
+
computerId: request.computerId
|
|
113
|
+
}, options));
|
|
114
|
+
}
|
|
115
|
+
safeBackupApiUrl(backupApiUrl) {
|
|
116
|
+
return require_endpoint_url.validatePartnerEndpointUrl(backupApiUrl, "backupApiUrl", backupEndpointAllowedSuffixes(this.transport, this.authorizedEndpointSuffixes));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Sends a JSON GET request to the specified Computer Backup API endpoint.
|
|
120
|
+
*
|
|
121
|
+
* @param backupApiUrl - The Computer Backup API base URL.
|
|
122
|
+
* @param authToken - The Partner authorization token.
|
|
123
|
+
* @param endpoint - The Computer Backup API endpoint name.
|
|
124
|
+
* @param query - The query-string parameters.
|
|
125
|
+
* @param options - Optional abort and per-request retry settings.
|
|
126
|
+
*
|
|
127
|
+
* @returns The parsed JSON response.
|
|
128
|
+
*/
|
|
129
|
+
async getJson(backupApiUrl, authToken, endpoint, query, options) {
|
|
130
|
+
return (await this.transport.send({
|
|
131
|
+
url: require_endpoint_url.withQueryString(backupEndpointUrl(this.safeBackupApiUrl(backupApiUrl), endpoint), query),
|
|
132
|
+
method: "GET",
|
|
133
|
+
headers: { Authorization: authToken },
|
|
134
|
+
...options?.signal !== void 0 ? { signal: options.signal } : {},
|
|
135
|
+
...options?.retry !== void 0 ? { retry: options.retry } : {}
|
|
136
|
+
})).json();
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Sends a non-retrying JSON mutation POST request to the specified Computer Backup API endpoint.
|
|
140
|
+
*
|
|
141
|
+
* @param backupApiUrl - The Computer Backup API base URL.
|
|
142
|
+
* @param authToken - The Partner authorization token.
|
|
143
|
+
* @param endpoint - The Computer Backup API endpoint name.
|
|
144
|
+
* @param body - The JSON request body.
|
|
145
|
+
* @param options - Optional abort and per-request retry settings.
|
|
146
|
+
*
|
|
147
|
+
* @returns The parsed JSON response.
|
|
148
|
+
*/
|
|
149
|
+
async postNonRetryingMutationJson(backupApiUrl, authToken, endpoint, body, options) {
|
|
150
|
+
const requestOptions = require_endpoint_url.nonRetryingMutationRequestOptions(options);
|
|
151
|
+
return (await this.transport.send({
|
|
152
|
+
url: backupEndpointUrl(this.safeBackupApiUrl(backupApiUrl), endpoint),
|
|
153
|
+
method: "POST",
|
|
154
|
+
headers: {
|
|
155
|
+
Authorization: authToken,
|
|
156
|
+
"Content-Type": "application/json"
|
|
157
|
+
},
|
|
158
|
+
body: JSON.stringify(body),
|
|
159
|
+
...requestOptions.signal !== void 0 ? { signal: requestOptions.signal } : {},
|
|
160
|
+
...requestOptions.idempotent !== void 0 ? { idempotent: requestOptions.idempotent } : {},
|
|
161
|
+
...requestOptions.retry !== void 0 ? { retry: requestOptions.retry } : {}
|
|
162
|
+
})).json();
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
//#endregion
|
|
166
|
+
exports.BackupRawClient = BackupRawClient;
|
|
167
|
+
|
|
168
|
+
//# sourceMappingURL=raw.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw.cjs","names":[],"sources":["../../src/backup/raw.ts"],"sourcesContent":["import type { BackupNonIdempotentMutationEndpoint } from '../http/non-idempotent-mutations.ts'\nimport type { RetryOptions } from '../http/retry.ts'\nimport type { HttpTransport } from '../http/transport.ts'\nimport {\n endpointAllowedSuffixes,\n nonRetryingMutationRequestOptions,\n type QueryParams,\n validatePartnerEndpointUrl,\n withQueryString,\n} from '../partner/endpoint-url.ts'\nimport { type B2EndpointUrlOptions, b2Url } from '../raw/url.ts'\nimport type {\n DeleteComputerRequest,\n DeleteComputerResponse,\n DeleteComputerResult,\n ListComputersRequest,\n ListComputersResponse,\n} from '../types/backup.ts'\n\nconst BACKUP_API: B2EndpointUrlOptions = { prefix: 'api/backup', version: 'v1' }\n\n/**\n * Normalizes the `bz_delete_computer` wire response to the array-shaped schema.\n *\n * The Backblaze apidocs response *schema* declares a JSON array, but the\n * accompanying *example* shows a single bare object. This tolerates both: an\n * array passes through unchanged, and a lone object is wrapped in a\n * single-element array, so callers always receive a {@link DeleteComputerResponse}\n * regardless of which shape live B2 returns.\n *\n * @param raw - The parsed `bz_delete_computer` JSON body.\n *\n * @returns The response as the canonical array shape.\n *\n * @throws TypeError When the body is neither an array nor an object.\n */\nfunction normalizeDeleteComputerResponse(raw: unknown): DeleteComputerResponse {\n if (Array.isArray(raw)) return raw as DeleteComputerResponse\n if (raw !== null && typeof raw === 'object') return [raw as DeleteComputerResult]\n throw new TypeError('bz_delete_computer returned an unexpected response body shape')\n}\n\n/** Configuration for constructing a {@link BackupRawClient}. */\nexport interface BackupRawClientOptions {\n /**\n * The HTTP transport used to send requests.\n *\n * Computer Backup endpoint calls validate URLs against suffixes recorded by\n * Partner authorization. A rehydrated client that skips authorization must\n * use `authorizedBackupEndpointSuffixes` or a transport with a locked\n * `urlGuard`. Because Partner authorize responses redact\n * `authorizationToken` under `JSON.stringify`, durable caches should persist\n * `partnerAuthorizeResponseForPersistence(auth)` only to encrypted or\n * otherwise credential-grade storage, or use another secure token-preserving\n * representation.\n */\n readonly transport: HttpTransport\n /**\n * Validated Computer Backup endpoint host suffixes restored from cached\n * Partner authorization. Facades normally manage this after authorization;\n * direct raw clients can pass trusted suffixes derived from\n * `derivePartnerAllowedSuffixes()`. Do not derive this cache with\n * `JSON.stringify(authorizePartner())`, which intentionally stores a redacted\n * token placeholder instead of a usable Partner token. Rehydrating that\n * placeholder fails fast.\n */\n readonly authorizedBackupEndpointSuffixes?: readonly string[]\n}\n\n/** Optional controls for raw Computer Backup API requests. */\nexport interface BackupRawRequestOptions {\n /** Abort signal for cancelling the request. */\n readonly signal?: AbortSignal\n /** Per-request retry override. */\n readonly retry?: Partial<RetryOptions>\n}\n\nfunction backupEndpointAllowedSuffixes(\n transport: HttpTransport,\n authorizedSuffixes: readonly string[],\n): readonly string[] {\n return endpointAllowedSuffixes(transport, authorizedSuffixes, {\n missingGuard:\n 'Computer Backup endpoint requests require BackupClient.authorize() or a locked URL guard before sending Partner tokens',\n unlockedGuard:\n 'Computer Backup endpoint requests require a locked URL guard before sending Partner tokens',\n })\n}\n\nfunction backupEndpointUrl(backupApiUrl: string, endpoint: string): string {\n return b2Url(backupApiUrl, { ...BACKUP_API, endpoint })\n}\n\n/**\n * Low-level client for Computer Backup API endpoint bindings.\n *\n * Each method maps directly to one `bz_*` HTTP call under the\n * `/api/backup/v1/` route using the `backupApiUrl` returned by Partner\n * authorization.\n *\n * @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.\n */\nexport class BackupRawClient {\n /** @internal */\n private readonly transport: HttpTransport\n private authorizedEndpointSuffixes: readonly string[]\n\n /**\n * Creates a new BackupRawClient with the given transport.\n *\n * @param options - The constructor configuration.\n */\n constructor(options: BackupRawClientOptions) {\n this.transport = options.transport\n this.authorizedEndpointSuffixes = Array.from(options.authorizedBackupEndpointSuffixes ?? [])\n }\n\n /**\n * Replaces the validated Computer Backup endpoint host suffixes.\n *\n * @param suffixes - Host suffixes derived from Partner authorization.\n *\n * @internal\n */\n setAuthorizedEndpointSuffixes(suffixes: readonly string[]): void {\n this.authorizedEndpointSuffixes = Array.from(suffixes)\n }\n\n /**\n * Calls `bz_list_computers`.\n *\n * Uses the documented GET form. The wire response is a single JSON object\n * with a `nextComputerId` cursor and active computer backup records.\n *\n * @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.\n * @param authToken - The Partner authorization token.\n * @param request - The computer listing query parameters.\n * @param options - Optional abort and per-request retry settings.\n *\n * @returns The single-object computer backup wire response.\n *\n * @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.\n */\n async listComputers(\n backupApiUrl: string,\n authToken: string,\n request: ListComputersRequest,\n options?: BackupRawRequestOptions,\n ): Promise<ListComputersResponse> {\n return this.getJson<ListComputersResponse>(\n backupApiUrl,\n authToken,\n 'bz_list_computers',\n {\n accountId: request.accountId,\n ...(request.startComputerId !== undefined\n ? { startComputerId: request.startComputerId }\n : {}),\n ...(request.maxComputerCount !== undefined\n ? { maxComputerCount: request.maxComputerCount }\n : {}),\n },\n options,\n )\n }\n\n /**\n * Calls `bz_delete_computer`.\n *\n * The documented wire response is a JSON array of deletion records. This\n * destructive mutation is not automatically retried or reauthorized in place.\n *\n * @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.\n * @param authToken - The Partner authorization token.\n * @param request - The computer deletion request body.\n * @param options - Optional abort and per-request retry settings.\n *\n * @returns The deleted computer backup record array.\n *\n * @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.\n */\n async deleteComputer(\n backupApiUrl: string,\n authToken: string,\n request: DeleteComputerRequest,\n options?: BackupRawRequestOptions,\n ): Promise<DeleteComputerResponse> {\n const response = await this.postNonRetryingMutationJson<unknown>(\n backupApiUrl,\n authToken,\n 'bz_delete_computer',\n {\n accountId: request.accountId,\n computerId: request.computerId,\n },\n options,\n )\n return normalizeDeleteComputerResponse(response)\n }\n\n private safeBackupApiUrl(backupApiUrl: string): string {\n return validatePartnerEndpointUrl(\n backupApiUrl,\n 'backupApiUrl',\n backupEndpointAllowedSuffixes(this.transport, this.authorizedEndpointSuffixes),\n )\n }\n\n /**\n * Sends a JSON GET request to the specified Computer Backup API endpoint.\n *\n * @param backupApiUrl - The Computer Backup API base URL.\n * @param authToken - The Partner authorization token.\n * @param endpoint - The Computer Backup API endpoint name.\n * @param query - The query-string parameters.\n * @param options - Optional abort and per-request retry settings.\n *\n * @returns The parsed JSON response.\n */\n private async getJson<T>(\n backupApiUrl: string,\n authToken: string,\n endpoint: string,\n query: QueryParams,\n options?: BackupRawRequestOptions,\n ): Promise<T> {\n const response = await this.transport.send({\n url: withQueryString(backupEndpointUrl(this.safeBackupApiUrl(backupApiUrl), endpoint), query),\n method: 'GET',\n headers: {\n Authorization: authToken,\n },\n ...(options?.signal !== undefined ? { signal: options.signal } : {}),\n ...(options?.retry !== undefined ? { retry: options.retry } : {}),\n })\n return response.json<T>()\n }\n\n /**\n * Sends a non-retrying JSON mutation POST request to the specified Computer Backup API endpoint.\n *\n * @param backupApiUrl - The Computer Backup API base URL.\n * @param authToken - The Partner authorization token.\n * @param endpoint - The Computer Backup API endpoint name.\n * @param body - The JSON request body.\n * @param options - Optional abort and per-request retry settings.\n *\n * @returns The parsed JSON response.\n */\n private async postNonRetryingMutationJson<T>(\n backupApiUrl: string,\n authToken: string,\n endpoint: BackupNonIdempotentMutationEndpoint,\n body: unknown,\n options?: BackupRawRequestOptions,\n ): Promise<T> {\n const requestOptions = nonRetryingMutationRequestOptions(options)\n const response = await this.transport.send({\n url: backupEndpointUrl(this.safeBackupApiUrl(backupApiUrl), endpoint),\n method: 'POST',\n headers: {\n Authorization: authToken,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n ...(requestOptions.signal !== undefined ? { signal: requestOptions.signal } : {}),\n ...(requestOptions.idempotent !== undefined ? { idempotent: requestOptions.idempotent } : {}),\n ...(requestOptions.retry !== undefined ? { retry: requestOptions.retry } : {}),\n })\n return response.json<T>()\n }\n}\n"],"mappings":";;;AAmBA,IAAM,aAAmC;CAAE,QAAQ;CAAc,SAAS;AAAK;;;;;;;;;;;;;;;;AAiB/E,SAAS,gCAAgC,KAAsC;CAC7E,IAAI,MAAM,QAAQ,GAAG,GAAG,OAAO;CAC/B,IAAI,QAAQ,QAAQ,OAAO,QAAQ,UAAU,OAAO,CAAC,GAA2B;CAChF,MAAM,IAAI,UAAU,+DAA+D;AACrF;AAqCA,SAAS,8BACP,WACA,oBACmB;CACnB,OAAO,qBAAA,wBAAwB,WAAW,oBAAoB;EAC5D,cACE;EACF,eACE;CACJ,CAAC;AACH;AAEA,SAAS,kBAAkB,cAAsB,UAA0B;CACzE,OAAO,YAAA,MAAM,cAAc;EAAE,GAAG;EAAY;CAAS,CAAC;AACxD;;;;;;;;;;AAWA,IAAa,kBAAb,MAA6B;;CAE3B;CACA;;;;;;CAOA,YAAY,SAAiC;EAC3C,KAAK,YAAY,QAAQ;EACzB,KAAK,6BAA6B,MAAM,KAAK,QAAQ,oCAAoC,CAAC,CAAC;CAC7F;;;;;;;;CASA,8BAA8B,UAAmC;EAC/D,KAAK,6BAA6B,MAAM,KAAK,QAAQ;CACvD;;;;;;;;;;;;;;;;CAiBA,MAAM,cACJ,cACA,WACA,SACA,SACgC;EAChC,OAAO,KAAK,QACV,cACA,WACA,qBACA;GACE,WAAW,QAAQ;GACnB,GAAI,QAAQ,oBAAoB,KAAA,IAC5B,EAAE,iBAAiB,QAAQ,gBAAgB,IAC3C,CAAC;GACL,GAAI,QAAQ,qBAAqB,KAAA,IAC7B,EAAE,kBAAkB,QAAQ,iBAAiB,IAC7C,CAAC;EACP,GACA,OACF;CACF;;;;;;;;;;;;;;;;CAiBA,MAAM,eACJ,cACA,WACA,SACA,SACiC;EAWjC,OAAO,gCAAgC,MAVhB,KAAK,4BAC1B,cACA,WACA,sBACA;GACE,WAAW,QAAQ;GACnB,YAAY,QAAQ;EACtB,GACA,OACF,CAC+C;CACjD;CAEA,iBAAyB,cAA8B;EACrD,OAAO,qBAAA,2BACL,cACA,gBACA,8BAA8B,KAAK,WAAW,KAAK,0BAA0B,CAC/E;CACF;;;;;;;;;;;;CAaA,MAAc,QACZ,cACA,WACA,UACA,OACA,SACY;EAUZ,QAAO,MATgB,KAAK,UAAU,KAAK;GACzC,KAAK,qBAAA,gBAAgB,kBAAkB,KAAK,iBAAiB,YAAY,GAAG,QAAQ,GAAG,KAAK;GAC5F,QAAQ;GACR,SAAS,EACP,eAAe,UACjB;GACA,GAAI,SAAS,WAAW,KAAA,IAAY,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;GAClE,GAAI,SAAS,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;EACjE,CAAC,EAAA,CACe,KAAQ;CAC1B;;;;;;;;;;;;CAaA,MAAc,4BACZ,cACA,WACA,UACA,MACA,SACY;EACZ,MAAM,iBAAiB,qBAAA,kCAAkC,OAAO;EAahE,QAAO,MAZgB,KAAK,UAAU,KAAK;GACzC,KAAK,kBAAkB,KAAK,iBAAiB,YAAY,GAAG,QAAQ;GACpE,QAAQ;GACR,SAAS;IACP,eAAe;IACf,gBAAgB;GAClB;GACA,MAAM,KAAK,UAAU,IAAI;GACzB,GAAI,eAAe,WAAW,KAAA,IAAY,EAAE,QAAQ,eAAe,OAAO,IAAI,CAAC;GAC/E,GAAI,eAAe,eAAe,KAAA,IAAY,EAAE,YAAY,eAAe,WAAW,IAAI,CAAC;GAC3F,GAAI,eAAe,UAAU,KAAA,IAAY,EAAE,OAAO,eAAe,MAAM,IAAI,CAAC;EAC9E,CAAC,EAAA,CACe,KAAQ;CAC1B;AACF"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { RetryOptions } from '../http/retry.js';
|
|
2
|
+
import { HttpTransport } from '../http/transport.js';
|
|
3
|
+
import { DeleteComputerRequest, DeleteComputerResponse, ListComputersRequest, ListComputersResponse } from '../types/backup.js';
|
|
4
|
+
/** Configuration for constructing a {@link BackupRawClient}. */
|
|
5
|
+
export interface BackupRawClientOptions {
|
|
6
|
+
/**
|
|
7
|
+
* The HTTP transport used to send requests.
|
|
8
|
+
*
|
|
9
|
+
* Computer Backup endpoint calls validate URLs against suffixes recorded by
|
|
10
|
+
* Partner authorization. A rehydrated client that skips authorization must
|
|
11
|
+
* use `authorizedBackupEndpointSuffixes` or a transport with a locked
|
|
12
|
+
* `urlGuard`. Because Partner authorize responses redact
|
|
13
|
+
* `authorizationToken` under `JSON.stringify`, durable caches should persist
|
|
14
|
+
* `partnerAuthorizeResponseForPersistence(auth)` only to encrypted or
|
|
15
|
+
* otherwise credential-grade storage, or use another secure token-preserving
|
|
16
|
+
* representation.
|
|
17
|
+
*/
|
|
18
|
+
readonly transport: HttpTransport;
|
|
19
|
+
/**
|
|
20
|
+
* Validated Computer Backup endpoint host suffixes restored from cached
|
|
21
|
+
* Partner authorization. Facades normally manage this after authorization;
|
|
22
|
+
* direct raw clients can pass trusted suffixes derived from
|
|
23
|
+
* `derivePartnerAllowedSuffixes()`. Do not derive this cache with
|
|
24
|
+
* `JSON.stringify(authorizePartner())`, which intentionally stores a redacted
|
|
25
|
+
* token placeholder instead of a usable Partner token. Rehydrating that
|
|
26
|
+
* placeholder fails fast.
|
|
27
|
+
*/
|
|
28
|
+
readonly authorizedBackupEndpointSuffixes?: readonly string[];
|
|
29
|
+
}
|
|
30
|
+
/** Optional controls for raw Computer Backup API requests. */
|
|
31
|
+
export interface BackupRawRequestOptions {
|
|
32
|
+
/** Abort signal for cancelling the request. */
|
|
33
|
+
readonly signal?: AbortSignal;
|
|
34
|
+
/** Per-request retry override. */
|
|
35
|
+
readonly retry?: Partial<RetryOptions>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Low-level client for Computer Backup API endpoint bindings.
|
|
39
|
+
*
|
|
40
|
+
* Each method maps directly to one `bz_*` HTTP call under the
|
|
41
|
+
* `/api/backup/v1/` route using the `backupApiUrl` returned by Partner
|
|
42
|
+
* authorization.
|
|
43
|
+
*
|
|
44
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
45
|
+
*/
|
|
46
|
+
export declare class BackupRawClient {
|
|
47
|
+
/** @internal */
|
|
48
|
+
private readonly transport;
|
|
49
|
+
private authorizedEndpointSuffixes;
|
|
50
|
+
/**
|
|
51
|
+
* Creates a new BackupRawClient with the given transport.
|
|
52
|
+
*
|
|
53
|
+
* @param options - The constructor configuration.
|
|
54
|
+
*/
|
|
55
|
+
constructor(options: BackupRawClientOptions);
|
|
56
|
+
/**
|
|
57
|
+
* Replaces the validated Computer Backup endpoint host suffixes.
|
|
58
|
+
*
|
|
59
|
+
* @param suffixes - Host suffixes derived from Partner authorization.
|
|
60
|
+
*
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
setAuthorizedEndpointSuffixes(suffixes: readonly string[]): void;
|
|
64
|
+
/**
|
|
65
|
+
* Calls `bz_list_computers`.
|
|
66
|
+
*
|
|
67
|
+
* Uses the documented GET form. The wire response is a single JSON object
|
|
68
|
+
* with a `nextComputerId` cursor and active computer backup records.
|
|
69
|
+
*
|
|
70
|
+
* @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.
|
|
71
|
+
* @param authToken - The Partner authorization token.
|
|
72
|
+
* @param request - The computer listing query parameters.
|
|
73
|
+
* @param options - Optional abort and per-request retry settings.
|
|
74
|
+
*
|
|
75
|
+
* @returns The single-object computer backup wire response.
|
|
76
|
+
*
|
|
77
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
78
|
+
*/
|
|
79
|
+
listComputers(backupApiUrl: string, authToken: string, request: ListComputersRequest, options?: BackupRawRequestOptions): Promise<ListComputersResponse>;
|
|
80
|
+
/**
|
|
81
|
+
* Calls `bz_delete_computer`.
|
|
82
|
+
*
|
|
83
|
+
* The documented wire response is a JSON array of deletion records. This
|
|
84
|
+
* destructive mutation is not automatically retried or reauthorized in place.
|
|
85
|
+
*
|
|
86
|
+
* @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.
|
|
87
|
+
* @param authToken - The Partner authorization token.
|
|
88
|
+
* @param request - The computer deletion request body.
|
|
89
|
+
* @param options - Optional abort and per-request retry settings.
|
|
90
|
+
*
|
|
91
|
+
* @returns The deleted computer backup record array.
|
|
92
|
+
*
|
|
93
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
94
|
+
*/
|
|
95
|
+
deleteComputer(backupApiUrl: string, authToken: string, request: DeleteComputerRequest, options?: BackupRawRequestOptions): Promise<DeleteComputerResponse>;
|
|
96
|
+
private safeBackupApiUrl;
|
|
97
|
+
/**
|
|
98
|
+
* Sends a JSON GET request to the specified Computer Backup API endpoint.
|
|
99
|
+
*
|
|
100
|
+
* @param backupApiUrl - The Computer Backup API base URL.
|
|
101
|
+
* @param authToken - The Partner authorization token.
|
|
102
|
+
* @param endpoint - The Computer Backup API endpoint name.
|
|
103
|
+
* @param query - The query-string parameters.
|
|
104
|
+
* @param options - Optional abort and per-request retry settings.
|
|
105
|
+
*
|
|
106
|
+
* @returns The parsed JSON response.
|
|
107
|
+
*/
|
|
108
|
+
private getJson;
|
|
109
|
+
/**
|
|
110
|
+
* Sends a non-retrying JSON mutation POST request to the specified Computer Backup API endpoint.
|
|
111
|
+
*
|
|
112
|
+
* @param backupApiUrl - The Computer Backup API base URL.
|
|
113
|
+
* @param authToken - The Partner authorization token.
|
|
114
|
+
* @param endpoint - The Computer Backup API endpoint name.
|
|
115
|
+
* @param body - The JSON request body.
|
|
116
|
+
* @param options - Optional abort and per-request retry settings.
|
|
117
|
+
*
|
|
118
|
+
* @returns The parsed JSON response.
|
|
119
|
+
*/
|
|
120
|
+
private postNonRetryingMutationJson;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=raw.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../../src/backup/raw.js"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AASzD,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EAEtB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,oBAAoB,CAAA;AAyB3B,gEAAgE;AAChE,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,gCAAgC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9D;AAED,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CACvC;AAkBD;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAC1B,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,0BAA0B,CAAmB;IAErD;;;;OAIG;gBACS,OAAO,EAAE,sBAAsB;IAK3C;;;;;;OAMG;IACH,6BAA6B,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAIhE;;;;;;;;;;;;;;OAcG;IACG,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,qBAAqB,CAAC;IAkBjC;;;;;;;;;;;;;;OAcG;IACG,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,sBAAsB,CAAC;IAclC,OAAO,CAAC,gBAAgB;IAQxB;;;;;;;;;;OAUG;YACW,OAAO;IAmBrB;;;;;;;;;;OAUG;YACW,2BAA2B;CAsB1C"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { RetryOptions } from '../http/retry.js';
|
|
2
|
+
import { HttpTransport } from '../http/transport.js';
|
|
3
|
+
import { DeleteComputerRequest, DeleteComputerResponse, ListComputersRequest, ListComputersResponse } from '../types/backup.js';
|
|
4
|
+
/** Configuration for constructing a {@link BackupRawClient}. */
|
|
5
|
+
export interface BackupRawClientOptions {
|
|
6
|
+
/**
|
|
7
|
+
* The HTTP transport used to send requests.
|
|
8
|
+
*
|
|
9
|
+
* Computer Backup endpoint calls validate URLs against suffixes recorded by
|
|
10
|
+
* Partner authorization. A rehydrated client that skips authorization must
|
|
11
|
+
* use `authorizedBackupEndpointSuffixes` or a transport with a locked
|
|
12
|
+
* `urlGuard`. Because Partner authorize responses redact
|
|
13
|
+
* `authorizationToken` under `JSON.stringify`, durable caches should persist
|
|
14
|
+
* `partnerAuthorizeResponseForPersistence(auth)` only to encrypted or
|
|
15
|
+
* otherwise credential-grade storage, or use another secure token-preserving
|
|
16
|
+
* representation.
|
|
17
|
+
*/
|
|
18
|
+
readonly transport: HttpTransport;
|
|
19
|
+
/**
|
|
20
|
+
* Validated Computer Backup endpoint host suffixes restored from cached
|
|
21
|
+
* Partner authorization. Facades normally manage this after authorization;
|
|
22
|
+
* direct raw clients can pass trusted suffixes derived from
|
|
23
|
+
* `derivePartnerAllowedSuffixes()`. Do not derive this cache with
|
|
24
|
+
* `JSON.stringify(authorizePartner())`, which intentionally stores a redacted
|
|
25
|
+
* token placeholder instead of a usable Partner token. Rehydrating that
|
|
26
|
+
* placeholder fails fast.
|
|
27
|
+
*/
|
|
28
|
+
readonly authorizedBackupEndpointSuffixes?: readonly string[];
|
|
29
|
+
}
|
|
30
|
+
/** Optional controls for raw Computer Backup API requests. */
|
|
31
|
+
export interface BackupRawRequestOptions {
|
|
32
|
+
/** Abort signal for cancelling the request. */
|
|
33
|
+
readonly signal?: AbortSignal;
|
|
34
|
+
/** Per-request retry override. */
|
|
35
|
+
readonly retry?: Partial<RetryOptions>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Low-level client for Computer Backup API endpoint bindings.
|
|
39
|
+
*
|
|
40
|
+
* Each method maps directly to one `bz_*` HTTP call under the
|
|
41
|
+
* `/api/backup/v1/` route using the `backupApiUrl` returned by Partner
|
|
42
|
+
* authorization.
|
|
43
|
+
*
|
|
44
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
45
|
+
*/
|
|
46
|
+
export declare class BackupRawClient {
|
|
47
|
+
/** @internal */
|
|
48
|
+
private readonly transport;
|
|
49
|
+
private authorizedEndpointSuffixes;
|
|
50
|
+
/**
|
|
51
|
+
* Creates a new BackupRawClient with the given transport.
|
|
52
|
+
*
|
|
53
|
+
* @param options - The constructor configuration.
|
|
54
|
+
*/
|
|
55
|
+
constructor(options: BackupRawClientOptions);
|
|
56
|
+
/**
|
|
57
|
+
* Replaces the validated Computer Backup endpoint host suffixes.
|
|
58
|
+
*
|
|
59
|
+
* @param suffixes - Host suffixes derived from Partner authorization.
|
|
60
|
+
*
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
setAuthorizedEndpointSuffixes(suffixes: readonly string[]): void;
|
|
64
|
+
/**
|
|
65
|
+
* Calls `bz_list_computers`.
|
|
66
|
+
*
|
|
67
|
+
* Uses the documented GET form. The wire response is a single JSON object
|
|
68
|
+
* with a `nextComputerId` cursor and active computer backup records.
|
|
69
|
+
*
|
|
70
|
+
* @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.
|
|
71
|
+
* @param authToken - The Partner authorization token.
|
|
72
|
+
* @param request - The computer listing query parameters.
|
|
73
|
+
* @param options - Optional abort and per-request retry settings.
|
|
74
|
+
*
|
|
75
|
+
* @returns The single-object computer backup wire response.
|
|
76
|
+
*
|
|
77
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
78
|
+
*/
|
|
79
|
+
listComputers(backupApiUrl: string, authToken: string, request: ListComputersRequest, options?: BackupRawRequestOptions): Promise<ListComputersResponse>;
|
|
80
|
+
/**
|
|
81
|
+
* Calls `bz_delete_computer`.
|
|
82
|
+
*
|
|
83
|
+
* The documented wire response is a JSON array of deletion records. This
|
|
84
|
+
* destructive mutation is not automatically retried or reauthorized in place.
|
|
85
|
+
*
|
|
86
|
+
* @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.
|
|
87
|
+
* @param authToken - The Partner authorization token.
|
|
88
|
+
* @param request - The computer deletion request body.
|
|
89
|
+
* @param options - Optional abort and per-request retry settings.
|
|
90
|
+
*
|
|
91
|
+
* @returns The deleted computer backup record array.
|
|
92
|
+
*
|
|
93
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
94
|
+
*/
|
|
95
|
+
deleteComputer(backupApiUrl: string, authToken: string, request: DeleteComputerRequest, options?: BackupRawRequestOptions): Promise<DeleteComputerResponse>;
|
|
96
|
+
private safeBackupApiUrl;
|
|
97
|
+
/**
|
|
98
|
+
* Sends a JSON GET request to the specified Computer Backup API endpoint.
|
|
99
|
+
*
|
|
100
|
+
* @param backupApiUrl - The Computer Backup API base URL.
|
|
101
|
+
* @param authToken - The Partner authorization token.
|
|
102
|
+
* @param endpoint - The Computer Backup API endpoint name.
|
|
103
|
+
* @param query - The query-string parameters.
|
|
104
|
+
* @param options - Optional abort and per-request retry settings.
|
|
105
|
+
*
|
|
106
|
+
* @returns The parsed JSON response.
|
|
107
|
+
*/
|
|
108
|
+
private getJson;
|
|
109
|
+
/**
|
|
110
|
+
* Sends a non-retrying JSON mutation POST request to the specified Computer Backup API endpoint.
|
|
111
|
+
*
|
|
112
|
+
* @param backupApiUrl - The Computer Backup API base URL.
|
|
113
|
+
* @param authToken - The Partner authorization token.
|
|
114
|
+
* @param endpoint - The Computer Backup API endpoint name.
|
|
115
|
+
* @param body - The JSON request body.
|
|
116
|
+
* @param options - Optional abort and per-request retry settings.
|
|
117
|
+
*
|
|
118
|
+
* @returns The parsed JSON response.
|
|
119
|
+
*/
|
|
120
|
+
private postNonRetryingMutationJson;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=raw.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../../src/backup/raw.js"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AASzD,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EAEtB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,oBAAoB,CAAA;AAyB3B,gEAAgE;AAChE,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,gCAAgC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9D;AAED,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CACvC;AAkBD;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAC1B,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,0BAA0B,CAAmB;IAErD;;;;OAIG;gBACS,OAAO,EAAE,sBAAsB;IAK3C;;;;;;OAMG;IACH,6BAA6B,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAIhE;;;;;;;;;;;;;;OAcG;IACG,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,qBAAqB,CAAC;IAkBjC;;;;;;;;;;;;;;OAcG;IACG,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,sBAAsB,CAAC;IAclC,OAAO,CAAC,gBAAgB;IAQxB;;;;;;;;;;OAUG;YACW,OAAO;IAmBrB;;;;;;;;;;OAUG;YACW,2BAA2B;CAsB1C"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { b2Url } from "../raw/url.js";
|
|
2
|
+
import { endpointAllowedSuffixes, nonRetryingMutationRequestOptions, validatePartnerEndpointUrl, withQueryString } from "../partner/endpoint-url.js";
|
|
3
|
+
//#region src/backup/raw.ts
|
|
4
|
+
var BACKUP_API = {
|
|
5
|
+
prefix: "api/backup",
|
|
6
|
+
version: "v1"
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Normalizes the `bz_delete_computer` wire response to the array-shaped schema.
|
|
10
|
+
*
|
|
11
|
+
* The Backblaze apidocs response *schema* declares a JSON array, but the
|
|
12
|
+
* accompanying *example* shows a single bare object. This tolerates both: an
|
|
13
|
+
* array passes through unchanged, and a lone object is wrapped in a
|
|
14
|
+
* single-element array, so callers always receive a {@link DeleteComputerResponse}
|
|
15
|
+
* regardless of which shape live B2 returns.
|
|
16
|
+
*
|
|
17
|
+
* @param raw - The parsed `bz_delete_computer` JSON body.
|
|
18
|
+
*
|
|
19
|
+
* @returns The response as the canonical array shape.
|
|
20
|
+
*
|
|
21
|
+
* @throws TypeError When the body is neither an array nor an object.
|
|
22
|
+
*/
|
|
23
|
+
function normalizeDeleteComputerResponse(raw) {
|
|
24
|
+
if (Array.isArray(raw)) return raw;
|
|
25
|
+
if (raw !== null && typeof raw === "object") return [raw];
|
|
26
|
+
throw new TypeError("bz_delete_computer returned an unexpected response body shape");
|
|
27
|
+
}
|
|
28
|
+
function backupEndpointAllowedSuffixes(transport, authorizedSuffixes) {
|
|
29
|
+
return endpointAllowedSuffixes(transport, authorizedSuffixes, {
|
|
30
|
+
missingGuard: "Computer Backup endpoint requests require BackupClient.authorize() or a locked URL guard before sending Partner tokens",
|
|
31
|
+
unlockedGuard: "Computer Backup endpoint requests require a locked URL guard before sending Partner tokens"
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function backupEndpointUrl(backupApiUrl, endpoint) {
|
|
35
|
+
return b2Url(backupApiUrl, {
|
|
36
|
+
...BACKUP_API,
|
|
37
|
+
endpoint
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Low-level client for Computer Backup API endpoint bindings.
|
|
42
|
+
*
|
|
43
|
+
* Each method maps directly to one `bz_*` HTTP call under the
|
|
44
|
+
* `/api/backup/v1/` route using the `backupApiUrl` returned by Partner
|
|
45
|
+
* authorization.
|
|
46
|
+
*
|
|
47
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
48
|
+
*/
|
|
49
|
+
var BackupRawClient = class {
|
|
50
|
+
/** @internal */
|
|
51
|
+
transport;
|
|
52
|
+
authorizedEndpointSuffixes;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new BackupRawClient with the given transport.
|
|
55
|
+
*
|
|
56
|
+
* @param options - The constructor configuration.
|
|
57
|
+
*/
|
|
58
|
+
constructor(options) {
|
|
59
|
+
this.transport = options.transport;
|
|
60
|
+
this.authorizedEndpointSuffixes = Array.from(options.authorizedBackupEndpointSuffixes ?? []);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Replaces the validated Computer Backup endpoint host suffixes.
|
|
64
|
+
*
|
|
65
|
+
* @param suffixes - Host suffixes derived from Partner authorization.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
setAuthorizedEndpointSuffixes(suffixes) {
|
|
70
|
+
this.authorizedEndpointSuffixes = Array.from(suffixes);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Calls `bz_list_computers`.
|
|
74
|
+
*
|
|
75
|
+
* Uses the documented GET form. The wire response is a single JSON object
|
|
76
|
+
* with a `nextComputerId` cursor and active computer backup records.
|
|
77
|
+
*
|
|
78
|
+
* @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.
|
|
79
|
+
* @param authToken - The Partner authorization token.
|
|
80
|
+
* @param request - The computer listing query parameters.
|
|
81
|
+
* @param options - Optional abort and per-request retry settings.
|
|
82
|
+
*
|
|
83
|
+
* @returns The single-object computer backup wire response.
|
|
84
|
+
*
|
|
85
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
86
|
+
*/
|
|
87
|
+
async listComputers(backupApiUrl, authToken, request, options) {
|
|
88
|
+
return this.getJson(backupApiUrl, authToken, "bz_list_computers", {
|
|
89
|
+
accountId: request.accountId,
|
|
90
|
+
...request.startComputerId !== void 0 ? { startComputerId: request.startComputerId } : {},
|
|
91
|
+
...request.maxComputerCount !== void 0 ? { maxComputerCount: request.maxComputerCount } : {}
|
|
92
|
+
}, options);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Calls `bz_delete_computer`.
|
|
96
|
+
*
|
|
97
|
+
* The documented wire response is a JSON array of deletion records. This
|
|
98
|
+
* destructive mutation is not automatically retried or reauthorized in place.
|
|
99
|
+
*
|
|
100
|
+
* @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.
|
|
101
|
+
* @param authToken - The Partner authorization token.
|
|
102
|
+
* @param request - The computer deletion request body.
|
|
103
|
+
* @param options - Optional abort and per-request retry settings.
|
|
104
|
+
*
|
|
105
|
+
* @returns The deleted computer backup record array.
|
|
106
|
+
*
|
|
107
|
+
* @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.
|
|
108
|
+
*/
|
|
109
|
+
async deleteComputer(backupApiUrl, authToken, request, options) {
|
|
110
|
+
return normalizeDeleteComputerResponse(await this.postNonRetryingMutationJson(backupApiUrl, authToken, "bz_delete_computer", {
|
|
111
|
+
accountId: request.accountId,
|
|
112
|
+
computerId: request.computerId
|
|
113
|
+
}, options));
|
|
114
|
+
}
|
|
115
|
+
safeBackupApiUrl(backupApiUrl) {
|
|
116
|
+
return validatePartnerEndpointUrl(backupApiUrl, "backupApiUrl", backupEndpointAllowedSuffixes(this.transport, this.authorizedEndpointSuffixes));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Sends a JSON GET request to the specified Computer Backup API endpoint.
|
|
120
|
+
*
|
|
121
|
+
* @param backupApiUrl - The Computer Backup API base URL.
|
|
122
|
+
* @param authToken - The Partner authorization token.
|
|
123
|
+
* @param endpoint - The Computer Backup API endpoint name.
|
|
124
|
+
* @param query - The query-string parameters.
|
|
125
|
+
* @param options - Optional abort and per-request retry settings.
|
|
126
|
+
*
|
|
127
|
+
* @returns The parsed JSON response.
|
|
128
|
+
*/
|
|
129
|
+
async getJson(backupApiUrl, authToken, endpoint, query, options) {
|
|
130
|
+
return (await this.transport.send({
|
|
131
|
+
url: withQueryString(backupEndpointUrl(this.safeBackupApiUrl(backupApiUrl), endpoint), query),
|
|
132
|
+
method: "GET",
|
|
133
|
+
headers: { Authorization: authToken },
|
|
134
|
+
...options?.signal !== void 0 ? { signal: options.signal } : {},
|
|
135
|
+
...options?.retry !== void 0 ? { retry: options.retry } : {}
|
|
136
|
+
})).json();
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Sends a non-retrying JSON mutation POST request to the specified Computer Backup API endpoint.
|
|
140
|
+
*
|
|
141
|
+
* @param backupApiUrl - The Computer Backup API base URL.
|
|
142
|
+
* @param authToken - The Partner authorization token.
|
|
143
|
+
* @param endpoint - The Computer Backup API endpoint name.
|
|
144
|
+
* @param body - The JSON request body.
|
|
145
|
+
* @param options - Optional abort and per-request retry settings.
|
|
146
|
+
*
|
|
147
|
+
* @returns The parsed JSON response.
|
|
148
|
+
*/
|
|
149
|
+
async postNonRetryingMutationJson(backupApiUrl, authToken, endpoint, body, options) {
|
|
150
|
+
const requestOptions = nonRetryingMutationRequestOptions(options);
|
|
151
|
+
return (await this.transport.send({
|
|
152
|
+
url: backupEndpointUrl(this.safeBackupApiUrl(backupApiUrl), endpoint),
|
|
153
|
+
method: "POST",
|
|
154
|
+
headers: {
|
|
155
|
+
Authorization: authToken,
|
|
156
|
+
"Content-Type": "application/json"
|
|
157
|
+
},
|
|
158
|
+
body: JSON.stringify(body),
|
|
159
|
+
...requestOptions.signal !== void 0 ? { signal: requestOptions.signal } : {},
|
|
160
|
+
...requestOptions.idempotent !== void 0 ? { idempotent: requestOptions.idempotent } : {},
|
|
161
|
+
...requestOptions.retry !== void 0 ? { retry: requestOptions.retry } : {}
|
|
162
|
+
})).json();
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
//#endregion
|
|
166
|
+
export { BackupRawClient };
|
|
167
|
+
|
|
168
|
+
//# sourceMappingURL=raw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw.js","names":[],"sources":["../../src/backup/raw.ts"],"sourcesContent":["import type { BackupNonIdempotentMutationEndpoint } from '../http/non-idempotent-mutations.ts'\nimport type { RetryOptions } from '../http/retry.ts'\nimport type { HttpTransport } from '../http/transport.ts'\nimport {\n endpointAllowedSuffixes,\n nonRetryingMutationRequestOptions,\n type QueryParams,\n validatePartnerEndpointUrl,\n withQueryString,\n} from '../partner/endpoint-url.ts'\nimport { type B2EndpointUrlOptions, b2Url } from '../raw/url.ts'\nimport type {\n DeleteComputerRequest,\n DeleteComputerResponse,\n DeleteComputerResult,\n ListComputersRequest,\n ListComputersResponse,\n} from '../types/backup.ts'\n\nconst BACKUP_API: B2EndpointUrlOptions = { prefix: 'api/backup', version: 'v1' }\n\n/**\n * Normalizes the `bz_delete_computer` wire response to the array-shaped schema.\n *\n * The Backblaze apidocs response *schema* declares a JSON array, but the\n * accompanying *example* shows a single bare object. This tolerates both: an\n * array passes through unchanged, and a lone object is wrapped in a\n * single-element array, so callers always receive a {@link DeleteComputerResponse}\n * regardless of which shape live B2 returns.\n *\n * @param raw - The parsed `bz_delete_computer` JSON body.\n *\n * @returns The response as the canonical array shape.\n *\n * @throws TypeError When the body is neither an array nor an object.\n */\nfunction normalizeDeleteComputerResponse(raw: unknown): DeleteComputerResponse {\n if (Array.isArray(raw)) return raw as DeleteComputerResponse\n if (raw !== null && typeof raw === 'object') return [raw as DeleteComputerResult]\n throw new TypeError('bz_delete_computer returned an unexpected response body shape')\n}\n\n/** Configuration for constructing a {@link BackupRawClient}. */\nexport interface BackupRawClientOptions {\n /**\n * The HTTP transport used to send requests.\n *\n * Computer Backup endpoint calls validate URLs against suffixes recorded by\n * Partner authorization. A rehydrated client that skips authorization must\n * use `authorizedBackupEndpointSuffixes` or a transport with a locked\n * `urlGuard`. Because Partner authorize responses redact\n * `authorizationToken` under `JSON.stringify`, durable caches should persist\n * `partnerAuthorizeResponseForPersistence(auth)` only to encrypted or\n * otherwise credential-grade storage, or use another secure token-preserving\n * representation.\n */\n readonly transport: HttpTransport\n /**\n * Validated Computer Backup endpoint host suffixes restored from cached\n * Partner authorization. Facades normally manage this after authorization;\n * direct raw clients can pass trusted suffixes derived from\n * `derivePartnerAllowedSuffixes()`. Do not derive this cache with\n * `JSON.stringify(authorizePartner())`, which intentionally stores a redacted\n * token placeholder instead of a usable Partner token. Rehydrating that\n * placeholder fails fast.\n */\n readonly authorizedBackupEndpointSuffixes?: readonly string[]\n}\n\n/** Optional controls for raw Computer Backup API requests. */\nexport interface BackupRawRequestOptions {\n /** Abort signal for cancelling the request. */\n readonly signal?: AbortSignal\n /** Per-request retry override. */\n readonly retry?: Partial<RetryOptions>\n}\n\nfunction backupEndpointAllowedSuffixes(\n transport: HttpTransport,\n authorizedSuffixes: readonly string[],\n): readonly string[] {\n return endpointAllowedSuffixes(transport, authorizedSuffixes, {\n missingGuard:\n 'Computer Backup endpoint requests require BackupClient.authorize() or a locked URL guard before sending Partner tokens',\n unlockedGuard:\n 'Computer Backup endpoint requests require a locked URL guard before sending Partner tokens',\n })\n}\n\nfunction backupEndpointUrl(backupApiUrl: string, endpoint: string): string {\n return b2Url(backupApiUrl, { ...BACKUP_API, endpoint })\n}\n\n/**\n * Low-level client for Computer Backup API endpoint bindings.\n *\n * Each method maps directly to one `bz_*` HTTP call under the\n * `/api/backup/v1/` route using the `backupApiUrl` returned by Partner\n * authorization.\n *\n * @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.\n */\nexport class BackupRawClient {\n /** @internal */\n private readonly transport: HttpTransport\n private authorizedEndpointSuffixes: readonly string[]\n\n /**\n * Creates a new BackupRawClient with the given transport.\n *\n * @param options - The constructor configuration.\n */\n constructor(options: BackupRawClientOptions) {\n this.transport = options.transport\n this.authorizedEndpointSuffixes = Array.from(options.authorizedBackupEndpointSuffixes ?? [])\n }\n\n /**\n * Replaces the validated Computer Backup endpoint host suffixes.\n *\n * @param suffixes - Host suffixes derived from Partner authorization.\n *\n * @internal\n */\n setAuthorizedEndpointSuffixes(suffixes: readonly string[]): void {\n this.authorizedEndpointSuffixes = Array.from(suffixes)\n }\n\n /**\n * Calls `bz_list_computers`.\n *\n * Uses the documented GET form. The wire response is a single JSON object\n * with a `nextComputerId` cursor and active computer backup records.\n *\n * @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.\n * @param authToken - The Partner authorization token.\n * @param request - The computer listing query parameters.\n * @param options - Optional abort and per-request retry settings.\n *\n * @returns The single-object computer backup wire response.\n *\n * @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.\n */\n async listComputers(\n backupApiUrl: string,\n authToken: string,\n request: ListComputersRequest,\n options?: BackupRawRequestOptions,\n ): Promise<ListComputersResponse> {\n return this.getJson<ListComputersResponse>(\n backupApiUrl,\n authToken,\n 'bz_list_computers',\n {\n accountId: request.accountId,\n ...(request.startComputerId !== undefined\n ? { startComputerId: request.startComputerId }\n : {}),\n ...(request.maxComputerCount !== undefined\n ? { maxComputerCount: request.maxComputerCount }\n : {}),\n },\n options,\n )\n }\n\n /**\n * Calls `bz_delete_computer`.\n *\n * The documented wire response is a JSON array of deletion records. This\n * destructive mutation is not automatically retried or reauthorized in place.\n *\n * @param backupApiUrl - The Computer Backup API base URL from `authorizePartner`.\n * @param authToken - The Partner authorization token.\n * @param request - The computer deletion request body.\n * @param options - Optional abort and per-request retry settings.\n *\n * @returns The deleted computer backup record array.\n *\n * @experimental Computer Backup API surface; shape may change as the Backup API docs evolve.\n */\n async deleteComputer(\n backupApiUrl: string,\n authToken: string,\n request: DeleteComputerRequest,\n options?: BackupRawRequestOptions,\n ): Promise<DeleteComputerResponse> {\n const response = await this.postNonRetryingMutationJson<unknown>(\n backupApiUrl,\n authToken,\n 'bz_delete_computer',\n {\n accountId: request.accountId,\n computerId: request.computerId,\n },\n options,\n )\n return normalizeDeleteComputerResponse(response)\n }\n\n private safeBackupApiUrl(backupApiUrl: string): string {\n return validatePartnerEndpointUrl(\n backupApiUrl,\n 'backupApiUrl',\n backupEndpointAllowedSuffixes(this.transport, this.authorizedEndpointSuffixes),\n )\n }\n\n /**\n * Sends a JSON GET request to the specified Computer Backup API endpoint.\n *\n * @param backupApiUrl - The Computer Backup API base URL.\n * @param authToken - The Partner authorization token.\n * @param endpoint - The Computer Backup API endpoint name.\n * @param query - The query-string parameters.\n * @param options - Optional abort and per-request retry settings.\n *\n * @returns The parsed JSON response.\n */\n private async getJson<T>(\n backupApiUrl: string,\n authToken: string,\n endpoint: string,\n query: QueryParams,\n options?: BackupRawRequestOptions,\n ): Promise<T> {\n const response = await this.transport.send({\n url: withQueryString(backupEndpointUrl(this.safeBackupApiUrl(backupApiUrl), endpoint), query),\n method: 'GET',\n headers: {\n Authorization: authToken,\n },\n ...(options?.signal !== undefined ? { signal: options.signal } : {}),\n ...(options?.retry !== undefined ? { retry: options.retry } : {}),\n })\n return response.json<T>()\n }\n\n /**\n * Sends a non-retrying JSON mutation POST request to the specified Computer Backup API endpoint.\n *\n * @param backupApiUrl - The Computer Backup API base URL.\n * @param authToken - The Partner authorization token.\n * @param endpoint - The Computer Backup API endpoint name.\n * @param body - The JSON request body.\n * @param options - Optional abort and per-request retry settings.\n *\n * @returns The parsed JSON response.\n */\n private async postNonRetryingMutationJson<T>(\n backupApiUrl: string,\n authToken: string,\n endpoint: BackupNonIdempotentMutationEndpoint,\n body: unknown,\n options?: BackupRawRequestOptions,\n ): Promise<T> {\n const requestOptions = nonRetryingMutationRequestOptions(options)\n const response = await this.transport.send({\n url: backupEndpointUrl(this.safeBackupApiUrl(backupApiUrl), endpoint),\n method: 'POST',\n headers: {\n Authorization: authToken,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n ...(requestOptions.signal !== undefined ? { signal: requestOptions.signal } : {}),\n ...(requestOptions.idempotent !== undefined ? { idempotent: requestOptions.idempotent } : {}),\n ...(requestOptions.retry !== undefined ? { retry: requestOptions.retry } : {}),\n })\n return response.json<T>()\n }\n}\n"],"mappings":";;;AAmBA,IAAM,aAAmC;CAAE,QAAQ;CAAc,SAAS;AAAK;;;;;;;;;;;;;;;;AAiB/E,SAAS,gCAAgC,KAAsC;CAC7E,IAAI,MAAM,QAAQ,GAAG,GAAG,OAAO;CAC/B,IAAI,QAAQ,QAAQ,OAAO,QAAQ,UAAU,OAAO,CAAC,GAA2B;CAChF,MAAM,IAAI,UAAU,+DAA+D;AACrF;AAqCA,SAAS,8BACP,WACA,oBACmB;CACnB,OAAO,wBAAwB,WAAW,oBAAoB;EAC5D,cACE;EACF,eACE;CACJ,CAAC;AACH;AAEA,SAAS,kBAAkB,cAAsB,UAA0B;CACzE,OAAO,MAAM,cAAc;EAAE,GAAG;EAAY;CAAS,CAAC;AACxD;;;;;;;;;;AAWA,IAAa,kBAAb,MAA6B;;CAE3B;CACA;;;;;;CAOA,YAAY,SAAiC;EAC3C,KAAK,YAAY,QAAQ;EACzB,KAAK,6BAA6B,MAAM,KAAK,QAAQ,oCAAoC,CAAC,CAAC;CAC7F;;;;;;;;CASA,8BAA8B,UAAmC;EAC/D,KAAK,6BAA6B,MAAM,KAAK,QAAQ;CACvD;;;;;;;;;;;;;;;;CAiBA,MAAM,cACJ,cACA,WACA,SACA,SACgC;EAChC,OAAO,KAAK,QACV,cACA,WACA,qBACA;GACE,WAAW,QAAQ;GACnB,GAAI,QAAQ,oBAAoB,KAAA,IAC5B,EAAE,iBAAiB,QAAQ,gBAAgB,IAC3C,CAAC;GACL,GAAI,QAAQ,qBAAqB,KAAA,IAC7B,EAAE,kBAAkB,QAAQ,iBAAiB,IAC7C,CAAC;EACP,GACA,OACF;CACF;;;;;;;;;;;;;;;;CAiBA,MAAM,eACJ,cACA,WACA,SACA,SACiC;EAWjC,OAAO,gCAAgC,MAVhB,KAAK,4BAC1B,cACA,WACA,sBACA;GACE,WAAW,QAAQ;GACnB,YAAY,QAAQ;EACtB,GACA,OACF,CAC+C;CACjD;CAEA,iBAAyB,cAA8B;EACrD,OAAO,2BACL,cACA,gBACA,8BAA8B,KAAK,WAAW,KAAK,0BAA0B,CAC/E;CACF;;;;;;;;;;;;CAaA,MAAc,QACZ,cACA,WACA,UACA,OACA,SACY;EAUZ,QAAO,MATgB,KAAK,UAAU,KAAK;GACzC,KAAK,gBAAgB,kBAAkB,KAAK,iBAAiB,YAAY,GAAG,QAAQ,GAAG,KAAK;GAC5F,QAAQ;GACR,SAAS,EACP,eAAe,UACjB;GACA,GAAI,SAAS,WAAW,KAAA,IAAY,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;GAClE,GAAI,SAAS,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;EACjE,CAAC,EAAA,CACe,KAAQ;CAC1B;;;;;;;;;;;;CAaA,MAAc,4BACZ,cACA,WACA,UACA,MACA,SACY;EACZ,MAAM,iBAAiB,kCAAkC,OAAO;EAahE,QAAO,MAZgB,KAAK,UAAU,KAAK;GACzC,KAAK,kBAAkB,KAAK,iBAAiB,YAAY,GAAG,QAAQ;GACpE,QAAQ;GACR,SAAS;IACP,eAAe;IACf,gBAAgB;GAClB;GACA,MAAM,KAAK,UAAU,IAAI;GACzB,GAAI,eAAe,WAAW,KAAA,IAAY,EAAE,QAAQ,eAAe,OAAO,IAAI,CAAC;GAC/E,GAAI,eAAe,eAAe,KAAA,IAAY,EAAE,YAAY,eAAe,WAAW,IAAI,CAAC;GAC3F,GAAI,eAAe,UAAU,KAAA,IAAY,EAAE,OAAO,eAAe,MAAM,IAAI,CAAC;EAC9E,CAAC,EAAA,CACe,KAAQ;CAC1B;AACF"}
|