@zshannon/streamstore 0.22.3
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/LICENSE +21 -0
- package/README.md +93 -0
- package/dist/cjs/accessTokens.d.ts +51 -0
- package/dist/cjs/accessTokens.d.ts.map +1 -0
- package/dist/cjs/accessTokens.js +127 -0
- package/dist/cjs/accessTokens.js.map +1 -0
- package/dist/cjs/auth/biscuit.d.ts +42 -0
- package/dist/cjs/auth/biscuit.d.ts.map +1 -0
- package/dist/cjs/auth/biscuit.js +72 -0
- package/dist/cjs/auth/biscuit.js.map +1 -0
- package/dist/cjs/auth/index.d.ts +5 -0
- package/dist/cjs/auth/index.d.ts.map +1 -0
- package/dist/cjs/auth/index.js +14 -0
- package/dist/cjs/auth/index.js.map +1 -0
- package/dist/cjs/auth/pki-auth.d.ts +60 -0
- package/dist/cjs/auth/pki-auth.d.ts.map +1 -0
- package/dist/cjs/auth/pki-auth.js +102 -0
- package/dist/cjs/auth/pki-auth.js.map +1 -0
- package/dist/cjs/auth/sign.d.ts +39 -0
- package/dist/cjs/auth/sign.d.ts.map +1 -0
- package/dist/cjs/auth/sign.js +128 -0
- package/dist/cjs/auth/sign.js.map +1 -0
- package/dist/cjs/auth/signing-key.d.ts +42 -0
- package/dist/cjs/auth/signing-key.d.ts.map +1 -0
- package/dist/cjs/auth/signing-key.js +66 -0
- package/dist/cjs/auth/signing-key.js.map +1 -0
- package/dist/cjs/basin.d.ts +33 -0
- package/dist/cjs/basin.d.ts.map +1 -0
- package/dist/cjs/basin.js +54 -0
- package/dist/cjs/basin.js.map +1 -0
- package/dist/cjs/basins.d.ts +62 -0
- package/dist/cjs/basins.d.ts.map +1 -0
- package/dist/cjs/basins.js +201 -0
- package/dist/cjs/basins.js.map +1 -0
- package/dist/cjs/batch-transform.d.ts +60 -0
- package/dist/cjs/batch-transform.d.ts.map +1 -0
- package/dist/cjs/batch-transform.js +171 -0
- package/dist/cjs/batch-transform.js.map +1 -0
- package/dist/cjs/common.d.ts +156 -0
- package/dist/cjs/common.d.ts.map +1 -0
- package/dist/cjs/common.js +54 -0
- package/dist/cjs/common.js.map +1 -0
- package/dist/cjs/endpoints.d.ts +63 -0
- package/dist/cjs/endpoints.d.ts.map +1 -0
- package/dist/cjs/endpoints.js +120 -0
- package/dist/cjs/endpoints.js.map +1 -0
- package/dist/cjs/error.d.ts +119 -0
- package/dist/cjs/error.d.ts.map +1 -0
- package/dist/cjs/error.js +373 -0
- package/dist/cjs/error.js.map +1 -0
- package/dist/cjs/generated/client/client.gen.d.ts +3 -0
- package/dist/cjs/generated/client/client.gen.d.ts.map +1 -0
- package/dist/cjs/generated/client/client.gen.js +209 -0
- package/dist/cjs/generated/client/client.gen.js.map +1 -0
- package/dist/cjs/generated/client/index.d.ts +9 -0
- package/dist/cjs/generated/client/index.d.ts.map +1 -0
- package/dist/cjs/generated/client/index.js +18 -0
- package/dist/cjs/generated/client/index.js.map +1 -0
- package/dist/cjs/generated/client/types.gen.d.ts +125 -0
- package/dist/cjs/generated/client/types.gen.d.ts.map +1 -0
- package/dist/cjs/generated/client/types.gen.js +4 -0
- package/dist/cjs/generated/client/types.gen.js.map +1 -0
- package/dist/cjs/generated/client/utils.gen.d.ts +34 -0
- package/dist/cjs/generated/client/utils.gen.d.ts.map +1 -0
- package/dist/cjs/generated/client/utils.gen.js +243 -0
- package/dist/cjs/generated/client/utils.gen.js.map +1 -0
- package/dist/cjs/generated/client.gen.d.ts +13 -0
- package/dist/cjs/generated/client.gen.d.ts.map +1 -0
- package/dist/cjs/generated/client.gen.js +9 -0
- package/dist/cjs/generated/client.gen.js.map +1 -0
- package/dist/cjs/generated/core/auth.gen.d.ts +19 -0
- package/dist/cjs/generated/core/auth.gen.d.ts.map +1 -0
- package/dist/cjs/generated/core/auth.gen.js +19 -0
- package/dist/cjs/generated/core/auth.gen.js.map +1 -0
- package/dist/cjs/generated/core/bodySerializer.gen.d.ts +26 -0
- package/dist/cjs/generated/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/cjs/generated/core/bodySerializer.gen.js +61 -0
- package/dist/cjs/generated/core/bodySerializer.gen.js.map +1 -0
- package/dist/cjs/generated/core/params.gen.d.ts +44 -0
- package/dist/cjs/generated/core/params.gen.d.ts.map +1 -0
- package/dist/cjs/generated/core/params.gen.js +105 -0
- package/dist/cjs/generated/core/params.gen.js.map +1 -0
- package/dist/cjs/generated/core/pathSerializer.gen.d.ts +34 -0
- package/dist/cjs/generated/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/cjs/generated/core/pathSerializer.gen.js +124 -0
- package/dist/cjs/generated/core/pathSerializer.gen.js.map +1 -0
- package/dist/cjs/generated/core/queryKeySerializer.gen.d.ts +19 -0
- package/dist/cjs/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/cjs/generated/core/queryKeySerializer.gen.js +106 -0
- package/dist/cjs/generated/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/cjs/generated/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/cjs/generated/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/cjs/generated/core/serverSentEvents.gen.js +140 -0
- package/dist/cjs/generated/core/serverSentEvents.gen.js.map +1 -0
- package/dist/cjs/generated/core/types.gen.d.ts +79 -0
- package/dist/cjs/generated/core/types.gen.d.ts.map +1 -0
- package/dist/cjs/generated/core/types.gen.js +4 -0
- package/dist/cjs/generated/core/types.gen.js.map +1 -0
- package/dist/cjs/generated/core/utils.gen.d.ts +20 -0
- package/dist/cjs/generated/core/utils.gen.d.ts.map +1 -0
- package/dist/cjs/generated/core/utils.gen.js +94 -0
- package/dist/cjs/generated/core/utils.gen.js.map +1 -0
- package/dist/cjs/generated/index.d.ts +3 -0
- package/dist/cjs/generated/index.d.ts.map +1 -0
- package/dist/cjs/generated/index.js +19 -0
- package/dist/cjs/generated/index.js.map +1 -0
- package/dist/cjs/generated/proto/s2.d.ts +250 -0
- package/dist/cjs/generated/proto/s2.d.ts.map +1 -0
- package/dist/cjs/generated/proto/s2.js +426 -0
- package/dist/cjs/generated/proto/s2.js.map +1 -0
- package/dist/cjs/generated/sdk.gen.d.ts +100 -0
- package/dist/cjs/generated/sdk.gen.d.ts.map +1 -0
- package/dist/cjs/generated/sdk.gen.js +374 -0
- package/dist/cjs/generated/sdk.gen.js.map +1 -0
- package/dist/cjs/generated/types.gen.d.ts +1064 -0
- package/dist/cjs/generated/types.gen.d.ts.map +1 -0
- package/dist/cjs/generated/types.gen.js +4 -0
- package/dist/cjs/generated/types.gen.js.map +1 -0
- package/dist/cjs/index.d.ts +42 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +81 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/case-transform.d.ts +59 -0
- package/dist/cjs/internal/case-transform.d.ts.map +1 -0
- package/dist/cjs/internal/case-transform.js +80 -0
- package/dist/cjs/internal/case-transform.js.map +1 -0
- package/dist/cjs/internal/mappers.d.ts +51 -0
- package/dist/cjs/internal/mappers.d.ts.map +1 -0
- package/dist/cjs/internal/mappers.js +225 -0
- package/dist/cjs/internal/mappers.js.map +1 -0
- package/dist/cjs/internal/sdk-types.d.ts +127 -0
- package/dist/cjs/internal/sdk-types.d.ts.map +1 -0
- package/dist/cjs/internal/sdk-types.js +9 -0
- package/dist/cjs/internal/sdk-types.js.map +1 -0
- package/dist/cjs/lib/base64.d.ts +12 -0
- package/dist/cjs/lib/base64.d.ts.map +1 -0
- package/dist/cjs/lib/base64.js +172 -0
- package/dist/cjs/lib/base64.js.map +1 -0
- package/dist/cjs/lib/event-stream.d.ts +26 -0
- package/dist/cjs/lib/event-stream.d.ts.map +1 -0
- package/dist/cjs/lib/event-stream.js +154 -0
- package/dist/cjs/lib/event-stream.js.map +1 -0
- package/dist/cjs/lib/paginate.d.ts +61 -0
- package/dist/cjs/lib/paginate.d.ts.map +1 -0
- package/dist/cjs/lib/paginate.js +51 -0
- package/dist/cjs/lib/paginate.js.map +1 -0
- package/dist/cjs/lib/redacted.d.ts +17 -0
- package/dist/cjs/lib/redacted.d.ts.map +1 -0
- package/dist/cjs/lib/redacted.js +34 -0
- package/dist/cjs/lib/redacted.js.map +1 -0
- package/dist/cjs/lib/result.d.ts +57 -0
- package/dist/cjs/lib/result.d.ts.map +1 -0
- package/dist/cjs/lib/result.js +43 -0
- package/dist/cjs/lib/result.js.map +1 -0
- package/dist/cjs/lib/retry.d.ts +167 -0
- package/dist/cjs/lib/retry.d.ts.map +1 -0
- package/dist/cjs/lib/retry.js +1011 -0
- package/dist/cjs/lib/retry.js.map +1 -0
- package/dist/cjs/lib/stream/factory.d.ts +14 -0
- package/dist/cjs/lib/stream/factory.d.ts.map +1 -0
- package/dist/cjs/lib/stream/factory.js +35 -0
- package/dist/cjs/lib/stream/factory.js.map +1 -0
- package/dist/cjs/lib/stream/runtime.d.ts +27 -0
- package/dist/cjs/lib/stream/runtime.d.ts.map +1 -0
- package/dist/cjs/lib/stream/runtime.js +70 -0
- package/dist/cjs/lib/stream/runtime.js.map +1 -0
- package/dist/cjs/lib/stream/transport/fetch/index.d.ts +64 -0
- package/dist/cjs/lib/stream/transport/fetch/index.d.ts.map +1 -0
- package/dist/cjs/lib/stream/transport/fetch/index.js +462 -0
- package/dist/cjs/lib/stream/transport/fetch/index.js.map +1 -0
- package/dist/cjs/lib/stream/transport/fetch/shared.d.ts +11 -0
- package/dist/cjs/lib/stream/transport/fetch/shared.d.ts.map +1 -0
- package/dist/cjs/lib/stream/transport/fetch/shared.js +118 -0
- package/dist/cjs/lib/stream/transport/fetch/shared.js.map +1 -0
- package/dist/cjs/lib/stream/transport/proto.d.ts +9 -0
- package/dist/cjs/lib/stream/transport/proto.d.ts.map +1 -0
- package/dist/cjs/lib/stream/transport/proto.js +118 -0
- package/dist/cjs/lib/stream/transport/proto.js.map +1 -0
- package/dist/cjs/lib/stream/transport/s2s/framing.d.ts +47 -0
- package/dist/cjs/lib/stream/transport/s2s/framing.d.ts.map +1 -0
- package/dist/cjs/lib/stream/transport/s2s/framing.js +123 -0
- package/dist/cjs/lib/stream/transport/s2s/framing.js.map +1 -0
- package/dist/cjs/lib/stream/transport/s2s/index.d.ts +24 -0
- package/dist/cjs/lib/stream/transport/s2s/index.d.ts.map +1 -0
- package/dist/cjs/lib/stream/transport/s2s/index.js +823 -0
- package/dist/cjs/lib/stream/transport/s2s/index.js.map +1 -0
- package/dist/cjs/lib/stream/types.d.ts +199 -0
- package/dist/cjs/lib/stream/types.d.ts.map +1 -0
- package/dist/cjs/lib/stream/types.js +21 -0
- package/dist/cjs/lib/stream/types.js.map +1 -0
- package/dist/cjs/metrics.d.ts +46 -0
- package/dist/cjs/metrics.d.ts.map +1 -0
- package/dist/cjs/metrics.js +127 -0
- package/dist/cjs/metrics.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/producer.d.ts +82 -0
- package/dist/cjs/producer.d.ts.map +1 -0
- package/dist/cjs/producer.js +305 -0
- package/dist/cjs/producer.js.map +1 -0
- package/dist/cjs/s2.d.ts +41 -0
- package/dist/cjs/s2.d.ts.map +1 -0
- package/dist/cjs/s2.js +119 -0
- package/dist/cjs/s2.js.map +1 -0
- package/dist/cjs/stream.d.ts +78 -0
- package/dist/cjs/stream.d.ts.map +1 -0
- package/dist/cjs/stream.js +176 -0
- package/dist/cjs/stream.js.map +1 -0
- package/dist/cjs/streams.d.ts +61 -0
- package/dist/cjs/streams.d.ts.map +1 -0
- package/dist/cjs/streams.js +201 -0
- package/dist/cjs/streams.js.map +1 -0
- package/dist/cjs/types.d.ts +633 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +129 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils.d.ts +25 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +108 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/cjs/version.d.ts +8 -0
- package/dist/cjs/version.d.ts.map +1 -0
- package/dist/cjs/version.js +11 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/accessTokens.d.ts +51 -0
- package/dist/esm/accessTokens.d.ts.map +1 -0
- package/dist/esm/accessTokens.js +123 -0
- package/dist/esm/accessTokens.js.map +1 -0
- package/dist/esm/auth/biscuit.d.ts +42 -0
- package/dist/esm/auth/biscuit.d.ts.map +1 -0
- package/dist/esm/auth/biscuit.js +68 -0
- package/dist/esm/auth/biscuit.js.map +1 -0
- package/dist/esm/auth/index.d.ts +5 -0
- package/dist/esm/auth/index.d.ts.map +1 -0
- package/dist/esm/auth/index.js +5 -0
- package/dist/esm/auth/index.js.map +1 -0
- package/dist/esm/auth/pki-auth.d.ts +60 -0
- package/dist/esm/auth/pki-auth.d.ts.map +1 -0
- package/dist/esm/auth/pki-auth.js +99 -0
- package/dist/esm/auth/pki-auth.js.map +1 -0
- package/dist/esm/auth/sign.d.ts +39 -0
- package/dist/esm/auth/sign.d.ts.map +1 -0
- package/dist/esm/auth/sign.js +125 -0
- package/dist/esm/auth/sign.js.map +1 -0
- package/dist/esm/auth/signing-key.d.ts +42 -0
- package/dist/esm/auth/signing-key.d.ts.map +1 -0
- package/dist/esm/auth/signing-key.js +62 -0
- package/dist/esm/auth/signing-key.js.map +1 -0
- package/dist/esm/basin.d.ts +33 -0
- package/dist/esm/basin.d.ts.map +1 -0
- package/dist/esm/basin.js +50 -0
- package/dist/esm/basin.js.map +1 -0
- package/dist/esm/basins.d.ts +62 -0
- package/dist/esm/basins.d.ts.map +1 -0
- package/dist/esm/basins.js +197 -0
- package/dist/esm/basins.js.map +1 -0
- package/dist/esm/batch-transform.d.ts +60 -0
- package/dist/esm/batch-transform.d.ts.map +1 -0
- package/dist/esm/batch-transform.js +167 -0
- package/dist/esm/batch-transform.js.map +1 -0
- package/dist/esm/common.d.ts +156 -0
- package/dist/esm/common.d.ts.map +1 -0
- package/dist/esm/common.js +49 -0
- package/dist/esm/common.js.map +1 -0
- package/dist/esm/endpoints.d.ts +63 -0
- package/dist/esm/endpoints.d.ts.map +1 -0
- package/dist/esm/endpoints.js +115 -0
- package/dist/esm/endpoints.js.map +1 -0
- package/dist/esm/error.d.ts +119 -0
- package/dist/esm/error.d.ts.map +1 -0
- package/dist/esm/error.js +358 -0
- package/dist/esm/error.js.map +1 -0
- package/dist/esm/generated/client/client.gen.d.ts +3 -0
- package/dist/esm/generated/client/client.gen.d.ts.map +1 -0
- package/dist/esm/generated/client/client.gen.js +205 -0
- package/dist/esm/generated/client/client.gen.js.map +1 -0
- package/dist/esm/generated/client/index.d.ts +9 -0
- package/dist/esm/generated/client/index.d.ts.map +1 -0
- package/dist/esm/generated/client/index.js +7 -0
- package/dist/esm/generated/client/index.js.map +1 -0
- package/dist/esm/generated/client/types.gen.d.ts +125 -0
- package/dist/esm/generated/client/types.gen.d.ts.map +1 -0
- package/dist/esm/generated/client/types.gen.js +3 -0
- package/dist/esm/generated/client/types.gen.js.map +1 -0
- package/dist/esm/generated/client/utils.gen.d.ts +34 -0
- package/dist/esm/generated/client/utils.gen.d.ts.map +1 -0
- package/dist/esm/generated/client/utils.gen.js +232 -0
- package/dist/esm/generated/client/utils.gen.js.map +1 -0
- package/dist/esm/generated/client.gen.d.ts +13 -0
- package/dist/esm/generated/client.gen.d.ts.map +1 -0
- package/dist/esm/generated/client.gen.js +6 -0
- package/dist/esm/generated/client.gen.js.map +1 -0
- package/dist/esm/generated/core/auth.gen.d.ts +19 -0
- package/dist/esm/generated/core/auth.gen.d.ts.map +1 -0
- package/dist/esm/generated/core/auth.gen.js +15 -0
- package/dist/esm/generated/core/auth.gen.js.map +1 -0
- package/dist/esm/generated/core/bodySerializer.gen.d.ts +26 -0
- package/dist/esm/generated/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/esm/generated/core/bodySerializer.gen.js +58 -0
- package/dist/esm/generated/core/bodySerializer.gen.js.map +1 -0
- package/dist/esm/generated/core/params.gen.d.ts +44 -0
- package/dist/esm/generated/core/params.gen.d.ts.map +1 -0
- package/dist/esm/generated/core/params.gen.js +101 -0
- package/dist/esm/generated/core/params.gen.js.map +1 -0
- package/dist/esm/generated/core/pathSerializer.gen.d.ts +34 -0
- package/dist/esm/generated/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/esm/generated/core/pathSerializer.gen.js +115 -0
- package/dist/esm/generated/core/pathSerializer.gen.js.map +1 -0
- package/dist/esm/generated/core/queryKeySerializer.gen.d.ts +19 -0
- package/dist/esm/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/esm/generated/core/queryKeySerializer.gen.js +100 -0
- package/dist/esm/generated/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/esm/generated/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/esm/generated/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/esm/generated/core/serverSentEvents.gen.js +136 -0
- package/dist/esm/generated/core/serverSentEvents.gen.js.map +1 -0
- package/dist/esm/generated/core/types.gen.d.ts +79 -0
- package/dist/esm/generated/core/types.gen.d.ts.map +1 -0
- package/dist/esm/generated/core/types.gen.js +3 -0
- package/dist/esm/generated/core/types.gen.js.map +1 -0
- package/dist/esm/generated/core/utils.gen.d.ts +20 -0
- package/dist/esm/generated/core/utils.gen.d.ts.map +1 -0
- package/dist/esm/generated/core/utils.gen.js +88 -0
- package/dist/esm/generated/core/utils.gen.js.map +1 -0
- package/dist/esm/generated/index.d.ts +3 -0
- package/dist/esm/generated/index.d.ts.map +1 -0
- package/dist/esm/generated/index.js +3 -0
- package/dist/esm/generated/index.js.map +1 -0
- package/dist/esm/generated/proto/s2.d.ts +250 -0
- package/dist/esm/generated/proto/s2.d.ts.map +1 -0
- package/dist/esm/generated/proto/s2.js +423 -0
- package/dist/esm/generated/proto/s2.js.map +1 -0
- package/dist/esm/generated/sdk.gen.d.ts +100 -0
- package/dist/esm/generated/sdk.gen.d.ts.map +1 -0
- package/dist/esm/generated/sdk.gen.js +350 -0
- package/dist/esm/generated/sdk.gen.js.map +1 -0
- package/dist/esm/generated/types.gen.d.ts +1064 -0
- package/dist/esm/generated/types.gen.d.ts.map +1 -0
- package/dist/esm/generated/types.gen.js +3 -0
- package/dist/esm/generated/types.gen.js.map +1 -0
- package/dist/esm/index.d.ts +42 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +47 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/case-transform.d.ts +59 -0
- package/dist/esm/internal/case-transform.d.ts.map +1 -0
- package/dist/esm/internal/case-transform.js +76 -0
- package/dist/esm/internal/case-transform.js.map +1 -0
- package/dist/esm/internal/mappers.d.ts +51 -0
- package/dist/esm/internal/mappers.d.ts.map +1 -0
- package/dist/esm/internal/mappers.js +218 -0
- package/dist/esm/internal/mappers.js.map +1 -0
- package/dist/esm/internal/sdk-types.d.ts +127 -0
- package/dist/esm/internal/sdk-types.d.ts.map +1 -0
- package/dist/esm/internal/sdk-types.js +8 -0
- package/dist/esm/internal/sdk-types.js.map +1 -0
- package/dist/esm/lib/base64.d.ts +12 -0
- package/dist/esm/lib/base64.d.ts.map +1 -0
- package/dist/esm/lib/base64.js +165 -0
- package/dist/esm/lib/base64.js.map +1 -0
- package/dist/esm/lib/event-stream.d.ts +26 -0
- package/dist/esm/lib/event-stream.d.ts.map +1 -0
- package/dist/esm/lib/event-stream.js +150 -0
- package/dist/esm/lib/event-stream.js.map +1 -0
- package/dist/esm/lib/paginate.d.ts +61 -0
- package/dist/esm/lib/paginate.d.ts.map +1 -0
- package/dist/esm/lib/paginate.js +48 -0
- package/dist/esm/lib/paginate.js.map +1 -0
- package/dist/esm/lib/redacted.d.ts +17 -0
- package/dist/esm/lib/redacted.d.ts.map +1 -0
- package/dist/esm/lib/redacted.js +28 -0
- package/dist/esm/lib/redacted.js.map +1 -0
- package/dist/esm/lib/result.d.ts +57 -0
- package/dist/esm/lib/result.d.ts.map +1 -0
- package/dist/esm/lib/result.js +37 -0
- package/dist/esm/lib/result.js.map +1 -0
- package/dist/esm/lib/retry.d.ts +167 -0
- package/dist/esm/lib/retry.d.ts.map +1 -0
- package/dist/esm/lib/retry.js +1003 -0
- package/dist/esm/lib/retry.js.map +1 -0
- package/dist/esm/lib/stream/factory.d.ts +14 -0
- package/dist/esm/lib/stream/factory.d.ts.map +1 -0
- package/dist/esm/lib/stream/factory.js +32 -0
- package/dist/esm/lib/stream/factory.js.map +1 -0
- package/dist/esm/lib/stream/runtime.d.ts +27 -0
- package/dist/esm/lib/stream/runtime.d.ts.map +1 -0
- package/dist/esm/lib/stream/runtime.js +71 -0
- package/dist/esm/lib/stream/runtime.js.map +1 -0
- package/dist/esm/lib/stream/transport/fetch/index.d.ts +64 -0
- package/dist/esm/lib/stream/transport/fetch/index.d.ts.map +1 -0
- package/dist/esm/lib/stream/transport/fetch/index.js +456 -0
- package/dist/esm/lib/stream/transport/fetch/index.js.map +1 -0
- package/dist/esm/lib/stream/transport/fetch/shared.d.ts +11 -0
- package/dist/esm/lib/stream/transport/fetch/shared.d.ts.map +1 -0
- package/dist/esm/lib/stream/transport/fetch/shared.js +114 -0
- package/dist/esm/lib/stream/transport/fetch/shared.js.map +1 -0
- package/dist/esm/lib/stream/transport/proto.d.ts +9 -0
- package/dist/esm/lib/stream/transport/proto.d.ts.map +1 -0
- package/dist/esm/lib/stream/transport/proto.js +110 -0
- package/dist/esm/lib/stream/transport/proto.js.map +1 -0
- package/dist/esm/lib/stream/transport/s2s/framing.d.ts +47 -0
- package/dist/esm/lib/stream/transport/s2s/framing.d.ts.map +1 -0
- package/dist/esm/lib/stream/transport/s2s/framing.js +118 -0
- package/dist/esm/lib/stream/transport/s2s/framing.js.map +1 -0
- package/dist/esm/lib/stream/transport/s2s/index.d.ts +24 -0
- package/dist/esm/lib/stream/transport/s2s/index.d.ts.map +1 -0
- package/dist/esm/lib/stream/transport/s2s/index.js +819 -0
- package/dist/esm/lib/stream/transport/s2s/index.js.map +1 -0
- package/dist/esm/lib/stream/types.d.ts +199 -0
- package/dist/esm/lib/stream/types.d.ts.map +1 -0
- package/dist/esm/lib/stream/types.js +18 -0
- package/dist/esm/lib/stream/types.js.map +1 -0
- package/dist/esm/metrics.d.ts +46 -0
- package/dist/esm/metrics.d.ts.map +1 -0
- package/dist/esm/metrics.js +122 -0
- package/dist/esm/metrics.js.map +1 -0
- package/dist/esm/producer.d.ts +82 -0
- package/dist/esm/producer.d.ts.map +1 -0
- package/dist/esm/producer.js +300 -0
- package/dist/esm/producer.js.map +1 -0
- package/dist/esm/s2.d.ts +41 -0
- package/dist/esm/s2.d.ts.map +1 -0
- package/dist/esm/s2.js +115 -0
- package/dist/esm/s2.js.map +1 -0
- package/dist/esm/stream.d.ts +78 -0
- package/dist/esm/stream.d.ts.map +1 -0
- package/dist/esm/stream.js +172 -0
- package/dist/esm/stream.js.map +1 -0
- package/dist/esm/streams.d.ts +61 -0
- package/dist/esm/streams.d.ts.map +1 -0
- package/dist/esm/streams.js +197 -0
- package/dist/esm/streams.js.map +1 -0
- package/dist/esm/types.d.ts +633 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +126 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils.d.ts +25 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +103 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/esm/version.d.ts +8 -0
- package/dist/esm/version.d.ts.map +1 -0
- package/dist/esm/version.js +8 -0
- package/dist/esm/version.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { SigningKey } from "./signing-key.js";
|
|
2
|
+
export type SignRequestOptions = {
|
|
3
|
+
/** Request to sign */
|
|
4
|
+
request: Request;
|
|
5
|
+
/** P256 signing key */
|
|
6
|
+
signingKey: SigningKey;
|
|
7
|
+
/** Duration until signature expires (default: 300 seconds) */
|
|
8
|
+
expiresIn?: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Signs a Request using RFC 9421 HTTP Message Signatures with a P256 key.
|
|
12
|
+
*
|
|
13
|
+
* Components signed: @method, @path, @authority, authorization, content-digest (if body present)
|
|
14
|
+
*
|
|
15
|
+
* @returns A new Request with signature headers added
|
|
16
|
+
*/
|
|
17
|
+
export declare function signRequest(options: SignRequestOptions): Promise<Request>;
|
|
18
|
+
export type SignHeadersOptions = {
|
|
19
|
+
/** HTTP method */
|
|
20
|
+
method: string;
|
|
21
|
+
/** Full URL */
|
|
22
|
+
url: string;
|
|
23
|
+
/** Headers to sign (will be mutated to add signature headers) */
|
|
24
|
+
headers: Record<string, string>;
|
|
25
|
+
/** P256 signing key */
|
|
26
|
+
signingKey: SigningKey;
|
|
27
|
+
/** Request body (optional, for content-digest) */
|
|
28
|
+
body?: Uint8Array;
|
|
29
|
+
/** Duration until signature expires (default: 300 seconds) */
|
|
30
|
+
expiresIn?: number;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Signs HTTP headers using RFC 9421 HTTP Message Signatures with a P256 key.
|
|
34
|
+
* Mutates the headers object to add signature headers.
|
|
35
|
+
*
|
|
36
|
+
* Components signed: @method, @path, @authority, authorization, content-digest (if body present)
|
|
37
|
+
*/
|
|
38
|
+
export declare function signHeaders(options: SignHeadersOptions): Promise<void>;
|
|
39
|
+
//# sourceMappingURL=sign.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../../src/auth/sign.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG;IAChC,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAoDF;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CA8D/E;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,uBAAuB;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,kDAAkD;IAClD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B5E"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.signRequest = signRequest;
|
|
4
|
+
exports.signHeaders = signHeaders;
|
|
5
|
+
const nist_js_1 = require("@noble/curves/nist.js");
|
|
6
|
+
const sha256_1 = require("@noble/hashes/sha256");
|
|
7
|
+
const base_1 = require("@scure/base");
|
|
8
|
+
/**
|
|
9
|
+
* Build the signature base string per RFC 9421.
|
|
10
|
+
* The @signature-params line uses the same parameter order as the Rust httpsig crate:
|
|
11
|
+
* created, alg, keyid (to ensure compatibility with server verification).
|
|
12
|
+
*/
|
|
13
|
+
function buildSignatureBase(method, path, authority, headers, components, created, keyid) {
|
|
14
|
+
const lines = [];
|
|
15
|
+
for (const component of components) {
|
|
16
|
+
let value;
|
|
17
|
+
if (component === "@method") {
|
|
18
|
+
value = method.toUpperCase();
|
|
19
|
+
}
|
|
20
|
+
else if (component === "@path") {
|
|
21
|
+
value = path;
|
|
22
|
+
}
|
|
23
|
+
else if (component === "@authority") {
|
|
24
|
+
value = authority;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// Regular header
|
|
28
|
+
value = headers.get(component) ?? "";
|
|
29
|
+
}
|
|
30
|
+
lines.push(`"${component}": ${value}`);
|
|
31
|
+
}
|
|
32
|
+
// Build signature-params with Rust httpsig order: created, alg, keyid
|
|
33
|
+
const componentsList = components.map((c) => `"${c}"`).join(" ");
|
|
34
|
+
const signatureParams = `(${componentsList});created=${created};alg="ecdsa-p256-sha256";keyid="${keyid}"`;
|
|
35
|
+
lines.push(`"@signature-params": ${signatureParams}`);
|
|
36
|
+
return lines.join("\n");
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Extract authority from URL, stripping default ports per RFC 9421.
|
|
40
|
+
*/
|
|
41
|
+
function getAuthority(url) {
|
|
42
|
+
const port = url.port ? parseInt(url.port, 10) : null;
|
|
43
|
+
if (port && ![80, 443].includes(port)) {
|
|
44
|
+
return `${url.hostname}:${port}`;
|
|
45
|
+
}
|
|
46
|
+
return url.hostname;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Signs a Request using RFC 9421 HTTP Message Signatures with a P256 key.
|
|
50
|
+
*
|
|
51
|
+
* Components signed: @method, @path, @authority, authorization, content-digest (if body present)
|
|
52
|
+
*
|
|
53
|
+
* @returns A new Request with signature headers added
|
|
54
|
+
*/
|
|
55
|
+
async function signRequest(options) {
|
|
56
|
+
const { request, signingKey } = options;
|
|
57
|
+
// Clone request headers
|
|
58
|
+
const headers = new Headers(request.headers);
|
|
59
|
+
// Determine components to sign
|
|
60
|
+
const components = ["@method", "@path", "@authority", "authorization"];
|
|
61
|
+
// Compute content-digest if body exists
|
|
62
|
+
const body = await request.clone().arrayBuffer();
|
|
63
|
+
if (body.byteLength > 0) {
|
|
64
|
+
const hash = (0, sha256_1.sha256)(new Uint8Array(body));
|
|
65
|
+
const hashBase64 = base_1.base64.encode(hash);
|
|
66
|
+
headers.set("Content-Digest", `sha-256=:${hashBase64}:`);
|
|
67
|
+
components.push("content-digest");
|
|
68
|
+
}
|
|
69
|
+
// Extract URL components
|
|
70
|
+
// Per RFC 9421: @path is the path without query string
|
|
71
|
+
const url = new URL(request.url);
|
|
72
|
+
const path = url.pathname;
|
|
73
|
+
const authority = getAuthority(url);
|
|
74
|
+
// Get signing parameters
|
|
75
|
+
const created = Math.floor(Date.now() / 1000);
|
|
76
|
+
const keyid = signingKey.publicKeyBase58();
|
|
77
|
+
const privateKeyBytes = signingKey.getPrivateKeyBytes();
|
|
78
|
+
// Build signature base (RFC 9421 format, Rust httpsig-compatible param order)
|
|
79
|
+
const signatureBase = buildSignatureBase(request.method, path, authority, headers, components, created, keyid);
|
|
80
|
+
// Sign the signature base
|
|
81
|
+
const signatureBytes = nist_js_1.p256.sign(new TextEncoder().encode(signatureBase), privateKeyBytes, { lowS: true });
|
|
82
|
+
const signatureB64 = base_1.base64.encode(signatureBytes);
|
|
83
|
+
// Build signature-input header (same param order as signature base)
|
|
84
|
+
const componentsList = components.map((c) => `"${c}"`).join(" ");
|
|
85
|
+
const signatureInput = `sig1=(${componentsList});created=${created};alg="ecdsa-p256-sha256";keyid="${keyid}"`;
|
|
86
|
+
// Apply signature headers
|
|
87
|
+
headers.set("Signature", `sig1=:${signatureB64}:`);
|
|
88
|
+
headers.set("Signature-Input", signatureInput);
|
|
89
|
+
// Create new request with signed headers
|
|
90
|
+
return new Request(request.url, {
|
|
91
|
+
body: body.byteLength > 0 ? body : undefined,
|
|
92
|
+
headers,
|
|
93
|
+
method: request.method,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Signs HTTP headers using RFC 9421 HTTP Message Signatures with a P256 key.
|
|
98
|
+
* Mutates the headers object to add signature headers.
|
|
99
|
+
*
|
|
100
|
+
* Components signed: @method, @path, @authority, authorization, content-digest (if body present)
|
|
101
|
+
*/
|
|
102
|
+
async function signHeaders(options) {
|
|
103
|
+
const { method, url, headers, signingKey, body, expiresIn = 300 } = options;
|
|
104
|
+
// Build headers (skip pseudo-headers for HTTP/2)
|
|
105
|
+
const requestHeaders = new Headers();
|
|
106
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
107
|
+
if (!key.startsWith(":")) {
|
|
108
|
+
requestHeaders.set(key, value);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const request = new Request(url, {
|
|
112
|
+
method,
|
|
113
|
+
headers: requestHeaders,
|
|
114
|
+
body: body && body.byteLength > 0 ? body.slice().buffer : undefined,
|
|
115
|
+
});
|
|
116
|
+
const signedRequest = await signRequest({ request, signingKey, expiresIn });
|
|
117
|
+
// Extract signature headers and apply to original headers object
|
|
118
|
+
const signature = signedRequest.headers.get("Signature");
|
|
119
|
+
const signatureInput = signedRequest.headers.get("Signature-Input");
|
|
120
|
+
const contentDigest = signedRequest.headers.get("Content-Digest");
|
|
121
|
+
if (signature)
|
|
122
|
+
headers["signature"] = signature;
|
|
123
|
+
if (signatureInput)
|
|
124
|
+
headers["signature-input"] = signatureInput;
|
|
125
|
+
if (contentDigest)
|
|
126
|
+
headers["content-digest"] = contentDigest;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=sign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/auth/sign.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* P-256 signing key for RFC 9421 HTTP message signatures.
|
|
3
|
+
*
|
|
4
|
+
* When configured, the SDK will sign every HTTP request per RFC 9421,
|
|
5
|
+
* binding the request to both the bearer token and this cryptographic key.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // Generate a new key
|
|
10
|
+
* const key = SigningKey.generate();
|
|
11
|
+
* console.log("Public key:", key.publicKeyBase58());
|
|
12
|
+
*
|
|
13
|
+
* // Import from base58
|
|
14
|
+
* const key = SigningKey.fromBase58("your-base58-encoded-private-key");
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare class SigningKey {
|
|
18
|
+
private readonly privateKeyBytes;
|
|
19
|
+
private constructor();
|
|
20
|
+
/**
|
|
21
|
+
* Generate a new random P-256 signing key.
|
|
22
|
+
*/
|
|
23
|
+
static generate(): SigningKey;
|
|
24
|
+
/**
|
|
25
|
+
* Create a signing key from a base58-encoded 32-byte private key.
|
|
26
|
+
*/
|
|
27
|
+
static fromBase58(encoded: string): SigningKey;
|
|
28
|
+
/**
|
|
29
|
+
* Export the private key as a base58-encoded string.
|
|
30
|
+
*/
|
|
31
|
+
toBase58(): string;
|
|
32
|
+
/**
|
|
33
|
+
* Get the public key as a base58-encoded compressed point (33 bytes).
|
|
34
|
+
*/
|
|
35
|
+
publicKeyBase58(): string;
|
|
36
|
+
/**
|
|
37
|
+
* Get the raw private key bytes (for internal use).
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
getPrivateKeyBytes(): Uint8Array;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=signing-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signing-key.d.ts","sourceRoot":"","sources":["../../../src/auth/signing-key.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,UAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAa;IAE7C,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,QAAQ,IAAI,UAAU;IAK7B;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAU9C;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,eAAe,IAAI,MAAM;IAKzB;;;OAGG;IACH,kBAAkB,IAAI,UAAU;CAGhC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SigningKey = void 0;
|
|
4
|
+
const nist_js_1 = require("@noble/curves/nist.js");
|
|
5
|
+
const base_1 = require("@scure/base");
|
|
6
|
+
/**
|
|
7
|
+
* P-256 signing key for RFC 9421 HTTP message signatures.
|
|
8
|
+
*
|
|
9
|
+
* When configured, the SDK will sign every HTTP request per RFC 9421,
|
|
10
|
+
* binding the request to both the bearer token and this cryptographic key.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // Generate a new key
|
|
15
|
+
* const key = SigningKey.generate();
|
|
16
|
+
* console.log("Public key:", key.publicKeyBase58());
|
|
17
|
+
*
|
|
18
|
+
* // Import from base58
|
|
19
|
+
* const key = SigningKey.fromBase58("your-base58-encoded-private-key");
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
class SigningKey {
|
|
23
|
+
privateKeyBytes;
|
|
24
|
+
constructor(privateKeyBytes) {
|
|
25
|
+
this.privateKeyBytes = privateKeyBytes;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Generate a new random P-256 signing key.
|
|
29
|
+
*/
|
|
30
|
+
static generate() {
|
|
31
|
+
const privateKey = nist_js_1.p256.utils.randomSecretKey();
|
|
32
|
+
return new SigningKey(privateKey);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a signing key from a base58-encoded 32-byte private key.
|
|
36
|
+
*/
|
|
37
|
+
static fromBase58(encoded) {
|
|
38
|
+
const privateKey = base_1.base58.decode(encoded);
|
|
39
|
+
if (privateKey.length !== 32) {
|
|
40
|
+
throw new Error(`Invalid signing key: expected 32 bytes, got ${privateKey.length}`);
|
|
41
|
+
}
|
|
42
|
+
return new SigningKey(privateKey);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Export the private key as a base58-encoded string.
|
|
46
|
+
*/
|
|
47
|
+
toBase58() {
|
|
48
|
+
return base_1.base58.encode(this.privateKeyBytes);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get the public key as a base58-encoded compressed point (33 bytes).
|
|
52
|
+
*/
|
|
53
|
+
publicKeyBase58() {
|
|
54
|
+
const publicKey = nist_js_1.p256.getPublicKey(this.privateKeyBytes, true);
|
|
55
|
+
return base_1.base58.encode(publicKey);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get the raw private key bytes (for internal use).
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
getPrivateKeyBytes() {
|
|
62
|
+
return this.privateKeyBytes;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.SigningKey = SigningKey;
|
|
66
|
+
//# sourceMappingURL=signing-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signing-key.js","sourceRoot":"","sources":["../../../src/auth/signing-key.ts"],"names":[],"mappings":";;;AAAA,mDAA6C;AAC7C,sCAAqC;AAErC;;;;;;;;;;;;;;;GAeG;AACH,MAAa,UAAU;IACL,eAAe,CAAa;IAE7C,YAAoB,eAA2B;QAC9C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ;QACd,MAAM,UAAU,GAAG,cAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAe;QAChC,MAAM,UAAU,GAAG,aAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,+CAA+C,UAAU,CAAC,MAAM,EAAE,CAClE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,QAAQ;QACP,OAAO,aAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,eAAe;QACd,MAAM,SAAS,GAAG,cAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAChE,OAAO,aAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,kBAAkB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;CACD;AAlDD,gCAkDC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type AuthProvider, type RetryConfig } from "./common.js";
|
|
2
|
+
import type { SessionTransports } from "./lib/stream/types.js";
|
|
3
|
+
import { S2Stream } from "./stream.js";
|
|
4
|
+
import { S2Streams } from "./streams.js";
|
|
5
|
+
export declare class S2Basin {
|
|
6
|
+
private readonly client;
|
|
7
|
+
private readonly transportConfig;
|
|
8
|
+
private readonly retryConfig?;
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly streams: S2Streams;
|
|
11
|
+
/**
|
|
12
|
+
* Create a basin-scoped client that talks to `https://{basin}.b.aws.s2.dev/v1`.
|
|
13
|
+
*
|
|
14
|
+
* Use this to work with streams inside a single basin.
|
|
15
|
+
* @param name Basin name
|
|
16
|
+
* @param options Configuration for the basin-scoped client
|
|
17
|
+
*/
|
|
18
|
+
constructor(name: string, options: {
|
|
19
|
+
authProvider: AuthProvider;
|
|
20
|
+
baseUrl: string;
|
|
21
|
+
includeBasinHeader: boolean;
|
|
22
|
+
retryConfig?: RetryConfig;
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Create a stream-scoped helper bound to `this` basin.
|
|
26
|
+
* @param name Stream name
|
|
27
|
+
*/
|
|
28
|
+
stream(name: string, options?: StreamOptions): S2Stream;
|
|
29
|
+
}
|
|
30
|
+
export interface StreamOptions {
|
|
31
|
+
forceTransport?: SessionTransports;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=basin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basin.d.ts","sourceRoot":"","sources":["../../src/basin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG7F,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,OAAO;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAc;IAC3C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,EAAE,SAAS,CAAC;IAEnC;;;;;;OAMG;gBAEF,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QACR,YAAY,EAAE,YAAY,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC1B;IAuBF;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;CAWnD;AAED,MAAM,WAAW,aAAa;IAC7B,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACnC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S2Basin = void 0;
|
|
4
|
+
const common_js_1 = require("./common.js");
|
|
5
|
+
const runtime_js_1 = require("./lib/stream/runtime.js");
|
|
6
|
+
const stream_js_1 = require("./stream.js");
|
|
7
|
+
const streams_js_1 = require("./streams.js");
|
|
8
|
+
class S2Basin {
|
|
9
|
+
client;
|
|
10
|
+
transportConfig;
|
|
11
|
+
retryConfig;
|
|
12
|
+
name;
|
|
13
|
+
streams;
|
|
14
|
+
/**
|
|
15
|
+
* Create a basin-scoped client that talks to `https://{basin}.b.aws.s2.dev/v1`.
|
|
16
|
+
*
|
|
17
|
+
* Use this to work with streams inside a single basin.
|
|
18
|
+
* @param name Basin name
|
|
19
|
+
* @param options Configuration for the basin-scoped client
|
|
20
|
+
*/
|
|
21
|
+
constructor(name, options) {
|
|
22
|
+
this.name = name;
|
|
23
|
+
this.retryConfig = options.retryConfig;
|
|
24
|
+
this.transportConfig = {
|
|
25
|
+
baseUrl: options.baseUrl,
|
|
26
|
+
authProvider: options.authProvider,
|
|
27
|
+
basinName: options.includeBasinHeader ? name : undefined,
|
|
28
|
+
connectionTimeoutMillis: options.retryConfig?.connectionTimeoutMillis,
|
|
29
|
+
requestTimeoutMillis: options.retryConfig?.requestTimeoutMillis,
|
|
30
|
+
retry: options.retryConfig,
|
|
31
|
+
};
|
|
32
|
+
const headers = {};
|
|
33
|
+
if (options.includeBasinHeader) {
|
|
34
|
+
headers["s2-basin"] = name;
|
|
35
|
+
}
|
|
36
|
+
if ((0, runtime_js_1.canSetUserAgentHeader)()) {
|
|
37
|
+
headers["user-agent"] = runtime_js_1.DEFAULT_USER_AGENT;
|
|
38
|
+
}
|
|
39
|
+
this.client = (0, common_js_1.createAuthenticatedClient)(options.baseUrl, options.authProvider, headers);
|
|
40
|
+
this.streams = new streams_js_1.S2Streams(this.client, this.retryConfig);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create a stream-scoped helper bound to `this` basin.
|
|
44
|
+
* @param name Stream name
|
|
45
|
+
*/
|
|
46
|
+
stream(name, options) {
|
|
47
|
+
return new stream_js_1.S2Stream(name, this.client, {
|
|
48
|
+
...this.transportConfig,
|
|
49
|
+
forceTransport: options?.forceTransport,
|
|
50
|
+
}, this.retryConfig);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.S2Basin = S2Basin;
|
|
54
|
+
//# sourceMappingURL=basin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basin.js","sourceRoot":"","sources":["../../src/basin.ts"],"names":[],"mappings":";;;AAAA,2CAA6F;AAE7F,wDAAoF;AAEpF,2CAAuC;AACvC,6CAAyC;AAEzC,MAAa,OAAO;IACF,MAAM,CAAS;IACf,eAAe,CAAkB;IACjC,WAAW,CAAe;IAC3B,IAAI,CAAS;IACb,OAAO,CAAY;IAEnC;;;;;;OAMG;IACH,YACC,IAAY,EACZ,OAKC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACxD,uBAAuB,EAAE,OAAO,CAAC,WAAW,EAAE,uBAAuB;YACrE,oBAAoB,EAAE,OAAO,CAAC,WAAW,EAAE,oBAAoB;YAC/D,KAAK,EAAE,OAAO,CAAC,WAAW;SAC1B,CAAC;QACF,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAChC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,IAAA,kCAAqB,GAAE,EAAE,CAAC;YAC7B,OAAO,CAAC,YAAY,CAAC,GAAG,+BAAkB,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAA,qCAAyB,EAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAY,EAAE,OAAuB;QAClD,OAAO,IAAI,oBAAQ,CAClB,IAAI,EACJ,IAAI,CAAC,MAAM,EACX;YACC,GAAG,IAAI,CAAC,eAAe;YACvB,cAAc,EAAE,OAAO,EAAE,cAAc;SACvC,EACD,IAAI,CAAC,WAAW,CAChB,CAAC;IACH,CAAC;CACD;AA3DD,0BA2DC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { RetryConfig, S2RequestOptions } from "./common.js";
|
|
2
|
+
import type { Client } from "./generated/client/types.gen.js";
|
|
3
|
+
import type * as Types from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Account-scoped helper for listing, creating, deleting, and reconfiguring basins.
|
|
6
|
+
*
|
|
7
|
+
* Retrieve this via {@link S2.basins}. Each method retries according to the client-level retry config.
|
|
8
|
+
*/
|
|
9
|
+
export declare class S2Basins {
|
|
10
|
+
private readonly client;
|
|
11
|
+
private readonly retryConfig;
|
|
12
|
+
constructor(client: Client, retryConfig: RetryConfig);
|
|
13
|
+
/**
|
|
14
|
+
* List basins.
|
|
15
|
+
*
|
|
16
|
+
* @param args.prefix Return basins whose names start with the given prefix
|
|
17
|
+
* @param args.startAfter Name to start after (for pagination)
|
|
18
|
+
* @param args.limit Max results (up to 1000)
|
|
19
|
+
*/
|
|
20
|
+
list(args?: Types.ListBasinsInput, options?: S2RequestOptions): Promise<Types.ListBasinsResponse>;
|
|
21
|
+
/**
|
|
22
|
+
* List all basins with automatic pagination.
|
|
23
|
+
* Returns a lazy async iterable that fetches pages as needed.
|
|
24
|
+
*
|
|
25
|
+
* @param args - Optional options: `prefix` to filter by name prefix, `limit` for max results per page, `includeDeleted` to include basins pending deletion
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* for await (const basin of s2.basins.listAll({ prefix: "my-" })) {
|
|
30
|
+
* console.log(basin.name);
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
listAll(args?: Types.ListAllBasinsInput, options?: S2RequestOptions): AsyncIterable<Types.BasinInfo>;
|
|
35
|
+
/**
|
|
36
|
+
* Create a basin.
|
|
37
|
+
*
|
|
38
|
+
* @param args.basin Globally unique basin name (8-48 chars, lowercase letters, numbers, hyphens; cannot begin or end with a hyphen)
|
|
39
|
+
* @param args.config Optional basin configuration (e.g. defaultStreamConfig)
|
|
40
|
+
* @param args.scope Basin scope
|
|
41
|
+
*/
|
|
42
|
+
create(args: Types.CreateBasinInput, options?: S2RequestOptions): Promise<Types.CreateBasinResponse>;
|
|
43
|
+
/**
|
|
44
|
+
* Get basin configuration.
|
|
45
|
+
*
|
|
46
|
+
* @param args.basin Basin name
|
|
47
|
+
*/
|
|
48
|
+
getConfig(args: Types.GetBasinConfigInput, options?: S2RequestOptions): Promise<Types.BasinConfig>;
|
|
49
|
+
/**
|
|
50
|
+
* Delete a basin.
|
|
51
|
+
*
|
|
52
|
+
* @param args.basin Basin name
|
|
53
|
+
*/
|
|
54
|
+
delete(args: Types.DeleteBasinInput, options?: S2RequestOptions): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Reconfigure a basin.
|
|
57
|
+
*
|
|
58
|
+
* @param args Configuration for the basin to reconfigure (including basin name and fields to change)
|
|
59
|
+
*/
|
|
60
|
+
reconfigure(args: Types.ReconfigureBasinInput, options?: S2RequestOptions): Promise<Types.ReconfigureBasinResponse>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=basins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basins.d.ts","sourceRoot":"","sources":["../../src/basins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAa9D,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAC;AAsEzC;;;;GAIG;AACH,qBAAa,QAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAE9B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;IAKpD;;;;;;OAMG;IACU,IAAI,CAChB,IAAI,CAAC,EAAE,KAAK,CAAC,eAAe,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAapC;;;;;;;;;;;;OAYG;IACI,OAAO,CACb,IAAI,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACxB,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;IAejC;;;;;;OAMG;IACU,MAAM,CAClB,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAoBrC;;;;OAIG;IACU,SAAS,CACrB,IAAI,EAAE,KAAK,CAAC,mBAAmB,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;IAc7B;;;;OAIG;IACU,MAAM,CAClB,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;OAIG;IACU,WAAW,CACvB,IAAI,EAAE,KAAK,CAAC,qBAAqB,EACjC,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC;CAmB1C"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S2Basins = void 0;
|
|
4
|
+
const error_js_1 = require("./error.js");
|
|
5
|
+
const index_js_1 = require("./generated/index.js");
|
|
6
|
+
const case_transform_js_1 = require("./internal/case-transform.js");
|
|
7
|
+
const base64_js_1 = require("./lib/base64.js");
|
|
8
|
+
const paginate_js_1 = require("./lib/paginate.js");
|
|
9
|
+
const retry_js_1 = require("./lib/retry.js");
|
|
10
|
+
/** Convert SDK RetentionPolicy (ageSecs) to API RetentionPolicy (age). */
|
|
11
|
+
function toAPIRetentionPolicy(policy) {
|
|
12
|
+
if (policy === null)
|
|
13
|
+
return null;
|
|
14
|
+
if (policy === undefined)
|
|
15
|
+
return undefined;
|
|
16
|
+
if ("ageSecs" in policy) {
|
|
17
|
+
return { age: Math.floor(policy.ageSecs) };
|
|
18
|
+
}
|
|
19
|
+
return policy; // { infinite: ... } passes through
|
|
20
|
+
}
|
|
21
|
+
/** Convert API RetentionPolicy (age) to SDK RetentionPolicy (ageSecs). */
|
|
22
|
+
function toSDKRetentionPolicy(policy) {
|
|
23
|
+
if (policy === null)
|
|
24
|
+
return null;
|
|
25
|
+
if (policy === undefined)
|
|
26
|
+
return undefined;
|
|
27
|
+
if ("age" in policy) {
|
|
28
|
+
return { ageSecs: policy.age };
|
|
29
|
+
}
|
|
30
|
+
return policy; // { infinite: ... } passes through
|
|
31
|
+
}
|
|
32
|
+
/** Convert SDK StreamConfig to API format (handles retentionPolicy.ageSecs → age). */
|
|
33
|
+
function toAPIStreamConfig(config) {
|
|
34
|
+
if (config === null || config === undefined)
|
|
35
|
+
return config;
|
|
36
|
+
return {
|
|
37
|
+
...config,
|
|
38
|
+
deleteOnEmpty: config.deleteOnEmpty
|
|
39
|
+
? {
|
|
40
|
+
...config.deleteOnEmpty,
|
|
41
|
+
minAgeSecs: config.deleteOnEmpty.minAgeSecs === undefined
|
|
42
|
+
? undefined
|
|
43
|
+
: Math.max(0, Math.floor(config.deleteOnEmpty.minAgeSecs)),
|
|
44
|
+
}
|
|
45
|
+
: config.deleteOnEmpty,
|
|
46
|
+
retentionPolicy: toAPIRetentionPolicy(config.retentionPolicy),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/** Convert API StreamConfig to SDK format (handles retentionPolicy.age → ageSecs). */
|
|
50
|
+
function toSDKStreamConfig(config) {
|
|
51
|
+
if (config === null || config === undefined)
|
|
52
|
+
return config;
|
|
53
|
+
return {
|
|
54
|
+
...config,
|
|
55
|
+
retentionPolicy: toSDKRetentionPolicy(config?.retentionPolicy),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** Convert SDK BasinConfig to API format. */
|
|
59
|
+
function toAPIBasinConfig(config) {
|
|
60
|
+
if (config === null || config === undefined)
|
|
61
|
+
return config;
|
|
62
|
+
return {
|
|
63
|
+
...config,
|
|
64
|
+
defaultStreamConfig: toAPIStreamConfig(config.defaultStreamConfig),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/** Convert API BasinConfig to SDK format. */
|
|
68
|
+
function toSDKBasinConfig(config) {
|
|
69
|
+
return {
|
|
70
|
+
...config,
|
|
71
|
+
defaultStreamConfig: toSDKStreamConfig(config?.defaultStreamConfig),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Account-scoped helper for listing, creating, deleting, and reconfiguring basins.
|
|
76
|
+
*
|
|
77
|
+
* Retrieve this via {@link S2.basins}. Each method retries according to the client-level retry config.
|
|
78
|
+
*/
|
|
79
|
+
class S2Basins {
|
|
80
|
+
client;
|
|
81
|
+
retryConfig;
|
|
82
|
+
constructor(client, retryConfig) {
|
|
83
|
+
this.client = client;
|
|
84
|
+
this.retryConfig = retryConfig;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* List basins.
|
|
88
|
+
*
|
|
89
|
+
* @param args.prefix Return basins whose names start with the given prefix
|
|
90
|
+
* @param args.startAfter Name to start after (for pagination)
|
|
91
|
+
* @param args.limit Max results (up to 1000)
|
|
92
|
+
*/
|
|
93
|
+
async list(args, options) {
|
|
94
|
+
const response = await (0, retry_js_1.withRetries)(this.retryConfig, async () => {
|
|
95
|
+
return await (0, error_js_1.withS2Data)(() => (0, index_js_1.listBasins)({
|
|
96
|
+
client: this.client,
|
|
97
|
+
query: (0, case_transform_js_1.toSnakeCase)(args),
|
|
98
|
+
...options,
|
|
99
|
+
}));
|
|
100
|
+
});
|
|
101
|
+
return (0, case_transform_js_1.toCamelCase)(response);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* List all basins with automatic pagination.
|
|
105
|
+
* Returns a lazy async iterable that fetches pages as needed.
|
|
106
|
+
*
|
|
107
|
+
* @param args - Optional options: `prefix` to filter by name prefix, `limit` for max results per page, `includeDeleted` to include basins pending deletion
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```ts
|
|
111
|
+
* for await (const basin of s2.basins.listAll({ prefix: "my-" })) {
|
|
112
|
+
* console.log(basin.name);
|
|
113
|
+
* }
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
listAll(args, options) {
|
|
117
|
+
const { includeDeleted, ...listArgs } = args ?? {};
|
|
118
|
+
return (0, paginate_js_1.paginate)((a) => this.list(a, options).then((r) => ({
|
|
119
|
+
items: r.basins.filter((b) => includeDeleted || b.state !== "deleting"),
|
|
120
|
+
hasMore: r.hasMore,
|
|
121
|
+
})), listArgs, (basin) => basin.name);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create a basin.
|
|
125
|
+
*
|
|
126
|
+
* @param args.basin Globally unique basin name (8-48 chars, lowercase letters, numbers, hyphens; cannot begin or end with a hyphen)
|
|
127
|
+
* @param args.config Optional basin configuration (e.g. defaultStreamConfig)
|
|
128
|
+
* @param args.scope Basin scope
|
|
129
|
+
*/
|
|
130
|
+
async create(args, options) {
|
|
131
|
+
const requestToken = (0, base64_js_1.randomToken)();
|
|
132
|
+
// Convert SDK config to API format (ageSecs → age)
|
|
133
|
+
const apiArgs = {
|
|
134
|
+
...args,
|
|
135
|
+
config: toAPIBasinConfig(args.config),
|
|
136
|
+
};
|
|
137
|
+
const response = await (0, retry_js_1.withRetries)(this.retryConfig, async () => {
|
|
138
|
+
return await (0, error_js_1.withS2Data)(() => (0, index_js_1.createBasin)({
|
|
139
|
+
client: this.client,
|
|
140
|
+
body: (0, case_transform_js_1.toSnakeCase)(apiArgs),
|
|
141
|
+
headers: { "s2-request-token": requestToken },
|
|
142
|
+
...options,
|
|
143
|
+
}));
|
|
144
|
+
});
|
|
145
|
+
return (0, case_transform_js_1.toCamelCase)(response);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get basin configuration.
|
|
149
|
+
*
|
|
150
|
+
* @param args.basin Basin name
|
|
151
|
+
*/
|
|
152
|
+
async getConfig(args, options) {
|
|
153
|
+
const response = await (0, retry_js_1.withRetries)(this.retryConfig, async () => {
|
|
154
|
+
return await (0, error_js_1.withS2Data)(() => (0, index_js_1.getBasinConfig)({
|
|
155
|
+
client: this.client,
|
|
156
|
+
path: args,
|
|
157
|
+
...options,
|
|
158
|
+
}));
|
|
159
|
+
});
|
|
160
|
+
// Convert API format to SDK (age → ageSecs)
|
|
161
|
+
return toSDKBasinConfig((0, case_transform_js_1.toCamelCase)(response));
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Delete a basin.
|
|
165
|
+
*
|
|
166
|
+
* @param args.basin Basin name
|
|
167
|
+
*/
|
|
168
|
+
async delete(args, options) {
|
|
169
|
+
await (0, retry_js_1.withRetries)(this.retryConfig, async () => {
|
|
170
|
+
return await (0, error_js_1.withS2Data)(() => (0, index_js_1.deleteBasin)({
|
|
171
|
+
client: this.client,
|
|
172
|
+
path: args,
|
|
173
|
+
...options,
|
|
174
|
+
}));
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Reconfigure a basin.
|
|
179
|
+
*
|
|
180
|
+
* @param args Configuration for the basin to reconfigure (including basin name and fields to change)
|
|
181
|
+
*/
|
|
182
|
+
async reconfigure(args, options) {
|
|
183
|
+
// Convert SDK config to API format (ageSecs → age)
|
|
184
|
+
const apiArgs = {
|
|
185
|
+
...args,
|
|
186
|
+
defaultStreamConfig: toAPIStreamConfig(args.defaultStreamConfig),
|
|
187
|
+
};
|
|
188
|
+
const response = await (0, retry_js_1.withRetries)(this.retryConfig, async () => {
|
|
189
|
+
return await (0, error_js_1.withS2Data)(() => (0, index_js_1.reconfigureBasin)({
|
|
190
|
+
client: this.client,
|
|
191
|
+
path: args,
|
|
192
|
+
body: (0, case_transform_js_1.toSnakeCase)(apiArgs),
|
|
193
|
+
...options,
|
|
194
|
+
}));
|
|
195
|
+
});
|
|
196
|
+
// Convert API format to SDK (age → ageSecs)
|
|
197
|
+
return toSDKBasinConfig((0, case_transform_js_1.toCamelCase)(response));
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.S2Basins = S2Basins;
|
|
201
|
+
//# sourceMappingURL=basins.js.map
|