@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,172 @@
|
|
|
1
|
+
import { S2Error, withS2Data } from "./error.js";
|
|
2
|
+
import { checkTail } from "./generated/index.js";
|
|
3
|
+
import { fromAPIReadBatchBytes, fromAPIReadBatchString, fromAPITailResponse, toAPIReadQuery, } from "./internal/mappers.js";
|
|
4
|
+
import { withRetries } from "./lib/retry.js";
|
|
5
|
+
import { createSessionTransport } from "./lib/stream/factory.js";
|
|
6
|
+
import { streamAppend, streamRead, } from "./lib/stream/transport/fetch/shared.js";
|
|
7
|
+
/**
|
|
8
|
+
* Basin-scoped stream helper for append/read operations.
|
|
9
|
+
*
|
|
10
|
+
* Created via {@link S2Basin.stream}. Provides direct methods plus factories for read/append sessions.
|
|
11
|
+
*/
|
|
12
|
+
export class S2Stream {
|
|
13
|
+
client;
|
|
14
|
+
transportConfig;
|
|
15
|
+
retryConfig;
|
|
16
|
+
_transport;
|
|
17
|
+
closed = false;
|
|
18
|
+
closePromise;
|
|
19
|
+
name;
|
|
20
|
+
constructor(name, client, transportConfig, retryConfig) {
|
|
21
|
+
this.name = name;
|
|
22
|
+
this.client = client;
|
|
23
|
+
this.transportConfig = transportConfig;
|
|
24
|
+
this.retryConfig = retryConfig;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get or create the transport instance
|
|
28
|
+
*/
|
|
29
|
+
async getTransport() {
|
|
30
|
+
this.ensureOpen();
|
|
31
|
+
if (!this._transport) {
|
|
32
|
+
this._transport = await createSessionTransport(this.transportConfig);
|
|
33
|
+
}
|
|
34
|
+
return this._transport;
|
|
35
|
+
}
|
|
36
|
+
ensureOpen() {
|
|
37
|
+
if (this.closed) {
|
|
38
|
+
throw new S2Error({ message: "S2Stream is closed" });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Check the tail of the stream.
|
|
43
|
+
*
|
|
44
|
+
* Returns the next sequence number and timestamp to be assigned (`tail`).
|
|
45
|
+
*/
|
|
46
|
+
async checkTail(options) {
|
|
47
|
+
this.ensureOpen();
|
|
48
|
+
return await withRetries(this.retryConfig, async () => {
|
|
49
|
+
const response = await withS2Data(() => checkTail({
|
|
50
|
+
client: this.client,
|
|
51
|
+
path: {
|
|
52
|
+
stream: this.name,
|
|
53
|
+
},
|
|
54
|
+
...options,
|
|
55
|
+
}));
|
|
56
|
+
return fromAPITailResponse(response);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Read records from the stream.
|
|
61
|
+
*
|
|
62
|
+
* - When `as: "bytes"` is provided, bodies and headers are decoded from base64 to `Uint8Array`.
|
|
63
|
+
* - Supports starting position by `seq_num`, `timestamp`, or `tail_offset` and can clamp to the tail.
|
|
64
|
+
* - Non-streaming reads are bounded by `count` and `bytes` (defaults 1000 and 1 MiB).
|
|
65
|
+
* - Use `readSession` for streaming reads
|
|
66
|
+
*/
|
|
67
|
+
async read(input, options) {
|
|
68
|
+
this.ensureOpen();
|
|
69
|
+
const { as, ...requestOptions } = options ?? {};
|
|
70
|
+
return await withRetries(this.retryConfig, async () => {
|
|
71
|
+
// Convert ReadInput to ReadArgs using mapper
|
|
72
|
+
const readArgs = {
|
|
73
|
+
...toAPIReadQuery(input),
|
|
74
|
+
as,
|
|
75
|
+
};
|
|
76
|
+
const genBatch = await streamRead(this.name, this.client, readArgs, requestOptions);
|
|
77
|
+
// Convert from API to SDK ReadBatch
|
|
78
|
+
return (as === "bytes"
|
|
79
|
+
? fromAPIReadBatchBytes(genBatch)
|
|
80
|
+
: fromAPIReadBatchString(genBatch));
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Append a batch of records to the stream.
|
|
85
|
+
*
|
|
86
|
+
* - Automatically base64-encodes when format is "bytes".
|
|
87
|
+
* - Supports conditional appends via `fencingToken` and `matchSeqNum` in the input.
|
|
88
|
+
* - Returns the acknowledged range and the stream tail after the append.
|
|
89
|
+
* - All records in a batch must use the same format (either all string or all bytes).
|
|
90
|
+
*
|
|
91
|
+
* Use {@link AppendInput.create} to construct a validated AppendInput.
|
|
92
|
+
* For high-throughput sequential appends, use `appendSession()` instead.
|
|
93
|
+
*
|
|
94
|
+
* @param input The append input containing records and optional conditions
|
|
95
|
+
* @param options Optional request options
|
|
96
|
+
*/
|
|
97
|
+
async append(input, options) {
|
|
98
|
+
this.ensureOpen();
|
|
99
|
+
return await withRetries(this.retryConfig, async () => {
|
|
100
|
+
return await streamAppend(this.name, this.client, input, options);
|
|
101
|
+
}, (config, error) => {
|
|
102
|
+
if ((config.appendRetryPolicy ?? "all") === "noSideEffects") {
|
|
103
|
+
// Allow retry only when the append is naturally idempotent by containing
|
|
104
|
+
// a match_seq_num condition.
|
|
105
|
+
return input.matchSeqNum !== undefined;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Open a streaming read session
|
|
114
|
+
*
|
|
115
|
+
* Use the returned session as an async iterable or as a readable stream.
|
|
116
|
+
* When `as: "bytes"` is provided, bodies and headers are decoded to `Uint8Array`.
|
|
117
|
+
*/
|
|
118
|
+
async readSession(input, options) {
|
|
119
|
+
this.ensureOpen();
|
|
120
|
+
const { as, ...requestOptions } = options ?? {};
|
|
121
|
+
const transport = await this.getTransport();
|
|
122
|
+
// Convert ReadInput to ReadArgs using mapper
|
|
123
|
+
const readArgs = {
|
|
124
|
+
...toAPIReadQuery(input),
|
|
125
|
+
as,
|
|
126
|
+
};
|
|
127
|
+
return await transport.makeReadSession(this.name, readArgs, requestOptions);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Create an append session that guarantees ordering of submissions.
|
|
131
|
+
*
|
|
132
|
+
* Use this to coordinate high-throughput, sequential appends with backpressure.
|
|
133
|
+
* Records can be either string or bytes format - the format is specified in each record.
|
|
134
|
+
*
|
|
135
|
+
* @param sessionOptions Options that control append session behavior
|
|
136
|
+
* @param requestOptions Optional request options
|
|
137
|
+
*/
|
|
138
|
+
async appendSession(sessionOptions, requestOptions) {
|
|
139
|
+
this.ensureOpen();
|
|
140
|
+
const transport = await this.getTransport();
|
|
141
|
+
return await transport.makeAppendSession(this.name, sessionOptions, requestOptions);
|
|
142
|
+
}
|
|
143
|
+
async close() {
|
|
144
|
+
if (this.closePromise) {
|
|
145
|
+
return this.closePromise;
|
|
146
|
+
}
|
|
147
|
+
this.closePromise = (async () => {
|
|
148
|
+
if (this.closed) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
this.closed = true;
|
|
152
|
+
if (this._transport) {
|
|
153
|
+
try {
|
|
154
|
+
await this._transport.close();
|
|
155
|
+
}
|
|
156
|
+
finally {
|
|
157
|
+
this._transport = undefined;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
})();
|
|
161
|
+
try {
|
|
162
|
+
await this.closePromise;
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
this.closePromise = undefined;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
async [Symbol.asyncDispose]() {
|
|
169
|
+
await this.close();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
* Basin-scoped helper for listing and configuring streams.
|
|
6
|
+
*
|
|
7
|
+
* Access via {@link S2Basin.streams}. Methods inherit the basin's retry configuration.
|
|
8
|
+
*/
|
|
9
|
+
export declare class S2Streams {
|
|
10
|
+
private readonly client;
|
|
11
|
+
private readonly retryConfig?;
|
|
12
|
+
constructor(client: Client, retryConfig?: RetryConfig);
|
|
13
|
+
/**
|
|
14
|
+
* List streams in the basin.
|
|
15
|
+
*
|
|
16
|
+
* @param args.prefix Return streams 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.ListStreamsInput, options?: S2RequestOptions): Promise<Types.ListStreamsResponse>;
|
|
21
|
+
/**
|
|
22
|
+
* List all streams in the basin 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 streams pending deletion
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* for await (const stream of basin.streams.listAll({ prefix: "events-" })) {
|
|
30
|
+
* console.log(stream.name);
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
listAll(args?: Types.ListAllStreamsInput, options?: S2RequestOptions): AsyncIterable<Types.StreamInfo>;
|
|
35
|
+
/**
|
|
36
|
+
* Create a stream.
|
|
37
|
+
*
|
|
38
|
+
* @param args.stream Stream name (1-512 bytes, unique within the basin)
|
|
39
|
+
* @param args.config Stream configuration (retentionPolicy, storageClass, timestamping, deleteOnEmpty)
|
|
40
|
+
*/
|
|
41
|
+
create(args: Types.CreateStreamInput, options?: S2RequestOptions): Promise<Types.CreateStreamResponse>;
|
|
42
|
+
/**
|
|
43
|
+
* Get stream configuration.
|
|
44
|
+
*
|
|
45
|
+
* @param args.stream Stream name
|
|
46
|
+
*/
|
|
47
|
+
getConfig(args: Types.GetStreamConfigInput, options?: S2RequestOptions): Promise<Types.StreamConfig>;
|
|
48
|
+
/**
|
|
49
|
+
* Delete a stream.
|
|
50
|
+
*
|
|
51
|
+
* @param args.stream Stream name
|
|
52
|
+
*/
|
|
53
|
+
delete(args: Types.DeleteStreamInput, options?: S2RequestOptions): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Reconfigure a stream.
|
|
56
|
+
*
|
|
57
|
+
* @param args Configuration for the stream to reconfigure (including stream name and fields to change)
|
|
58
|
+
*/
|
|
59
|
+
reconfigure(args: Types.ReconfigureStreamInput, options?: S2RequestOptions): Promise<Types.ReconfigureStreamResponse>;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=streams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/streams.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;AAkEzC;;;;GAIG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAc;gBAE/B,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;IAKrD;;;;;;OAMG;IACU,IAAI,CAChB,IAAI,CAAC,EAAE,KAAK,CAAC,gBAAgB,EAC7B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAiBrC;;;;;;;;;;;;OAYG;IACI,OAAO,CACb,IAAI,CAAC,EAAE,KAAK,CAAC,mBAAmB,EAChC,OAAO,CAAC,EAAE,gBAAgB,GACxB,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;IAalC;;;;;OAKG;IACU,MAAM,CAClB,IAAI,EAAE,KAAK,CAAC,iBAAiB,EAC7B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAoBtC;;;;OAIG;IACU,SAAS,CACrB,IAAI,EAAE,KAAK,CAAC,oBAAoB,EAChC,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;IAc9B;;;;OAIG;IACU,MAAM,CAClB,IAAI,EAAE,KAAK,CAAC,iBAAiB,EAC7B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;OAIG;IACU,WAAW,CACvB,IAAI,EAAE,KAAK,CAAC,sBAAsB,EAClC,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC;CAoB3C"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { withS2Data } from "./error.js";
|
|
2
|
+
import { createStream, deleteStream, getStreamConfig, listStreams, reconfigureStream, } from "./generated/index.js";
|
|
3
|
+
import { toCamelCase, toSnakeCase } from "./internal/case-transform.js";
|
|
4
|
+
import { randomToken } from "./lib/base64.js";
|
|
5
|
+
import { paginate } from "./lib/paginate.js";
|
|
6
|
+
import { withRetries } from "./lib/retry.js";
|
|
7
|
+
function toDate(value) {
|
|
8
|
+
if (value === null)
|
|
9
|
+
return null;
|
|
10
|
+
if (value === undefined)
|
|
11
|
+
return undefined;
|
|
12
|
+
return new Date(value);
|
|
13
|
+
}
|
|
14
|
+
function transformStreamInfo(stream) {
|
|
15
|
+
return {
|
|
16
|
+
...stream,
|
|
17
|
+
createdAt: toDate(stream.createdAt),
|
|
18
|
+
deletedAt: toDate(stream.deletedAt),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** Convert SDK RetentionPolicy (ageSecs) to API RetentionPolicy (age). */
|
|
22
|
+
function toAPIRetentionPolicy(policy) {
|
|
23
|
+
if (policy === null)
|
|
24
|
+
return null;
|
|
25
|
+
if (policy === undefined)
|
|
26
|
+
return undefined;
|
|
27
|
+
if ("ageSecs" in policy) {
|
|
28
|
+
return { age: Math.floor(policy.ageSecs) };
|
|
29
|
+
}
|
|
30
|
+
return policy; // { infinite: ... } passes through
|
|
31
|
+
}
|
|
32
|
+
/** Convert API RetentionPolicy (age) to SDK RetentionPolicy (ageSecs). */
|
|
33
|
+
function toSDKRetentionPolicy(policy) {
|
|
34
|
+
if (policy === null)
|
|
35
|
+
return null;
|
|
36
|
+
if (policy === undefined)
|
|
37
|
+
return undefined;
|
|
38
|
+
if ("age" in policy) {
|
|
39
|
+
return { ageSecs: policy.age };
|
|
40
|
+
}
|
|
41
|
+
return policy; // { infinite: ... } passes through
|
|
42
|
+
}
|
|
43
|
+
/** Convert SDK StreamConfig to API format (handles retentionPolicy.ageSecs → age). */
|
|
44
|
+
function toAPIStreamConfig(config) {
|
|
45
|
+
if (config === null || config === undefined)
|
|
46
|
+
return config;
|
|
47
|
+
return {
|
|
48
|
+
...config,
|
|
49
|
+
deleteOnEmpty: config.deleteOnEmpty
|
|
50
|
+
? {
|
|
51
|
+
...config.deleteOnEmpty,
|
|
52
|
+
minAgeSecs: config.deleteOnEmpty.minAgeSecs === undefined
|
|
53
|
+
? undefined
|
|
54
|
+
: Math.max(0, Math.floor(config.deleteOnEmpty.minAgeSecs)),
|
|
55
|
+
}
|
|
56
|
+
: config.deleteOnEmpty,
|
|
57
|
+
retentionPolicy: toAPIRetentionPolicy(config.retentionPolicy),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** Convert API StreamConfig to SDK format (handles retentionPolicy.age → ageSecs). */
|
|
61
|
+
function toSDKStreamConfig(config) {
|
|
62
|
+
return {
|
|
63
|
+
...config,
|
|
64
|
+
retentionPolicy: toSDKRetentionPolicy(config?.retentionPolicy),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Basin-scoped helper for listing and configuring streams.
|
|
69
|
+
*
|
|
70
|
+
* Access via {@link S2Basin.streams}. Methods inherit the basin's retry configuration.
|
|
71
|
+
*/
|
|
72
|
+
export class S2Streams {
|
|
73
|
+
client;
|
|
74
|
+
retryConfig;
|
|
75
|
+
constructor(client, retryConfig) {
|
|
76
|
+
this.client = client;
|
|
77
|
+
this.retryConfig = retryConfig;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* List streams in the basin.
|
|
81
|
+
*
|
|
82
|
+
* @param args.prefix Return streams whose names start with the given prefix
|
|
83
|
+
* @param args.startAfter Name to start after (for pagination)
|
|
84
|
+
* @param args.limit Max results (up to 1000)
|
|
85
|
+
*/
|
|
86
|
+
async list(args, options) {
|
|
87
|
+
const response = await withRetries(this.retryConfig, async () => {
|
|
88
|
+
return await withS2Data(() => listStreams({
|
|
89
|
+
client: this.client,
|
|
90
|
+
query: toSnakeCase(args),
|
|
91
|
+
...options,
|
|
92
|
+
}));
|
|
93
|
+
});
|
|
94
|
+
const camelCased = toCamelCase(response);
|
|
95
|
+
return {
|
|
96
|
+
...camelCased,
|
|
97
|
+
streams: camelCased.streams.map(transformStreamInfo),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* List all streams in the basin with automatic pagination.
|
|
102
|
+
* Returns a lazy async iterable that fetches pages as needed.
|
|
103
|
+
*
|
|
104
|
+
* @param args - Optional options: `prefix` to filter by name prefix, `limit` for max results per page, `includeDeleted` to include streams pending deletion
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```ts
|
|
108
|
+
* for await (const stream of basin.streams.listAll({ prefix: "events-" })) {
|
|
109
|
+
* console.log(stream.name);
|
|
110
|
+
* }
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
listAll(args, options) {
|
|
114
|
+
const { includeDeleted, ...listArgs } = args ?? {};
|
|
115
|
+
return paginate((a) => this.list(a, options).then((r) => ({
|
|
116
|
+
items: r.streams.filter((s) => includeDeleted || !s.deletedAt),
|
|
117
|
+
hasMore: r.hasMore,
|
|
118
|
+
})), listArgs, (stream) => stream.name);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Create a stream.
|
|
122
|
+
*
|
|
123
|
+
* @param args.stream Stream name (1-512 bytes, unique within the basin)
|
|
124
|
+
* @param args.config Stream configuration (retentionPolicy, storageClass, timestamping, deleteOnEmpty)
|
|
125
|
+
*/
|
|
126
|
+
async create(args, options) {
|
|
127
|
+
const requestToken = randomToken();
|
|
128
|
+
// Convert SDK config to API format (ageSecs → age)
|
|
129
|
+
const apiArgs = {
|
|
130
|
+
...args,
|
|
131
|
+
config: toAPIStreamConfig(args.config),
|
|
132
|
+
};
|
|
133
|
+
const response = await withRetries(this.retryConfig, async () => {
|
|
134
|
+
return await withS2Data(() => createStream({
|
|
135
|
+
client: this.client,
|
|
136
|
+
body: toSnakeCase(apiArgs),
|
|
137
|
+
headers: { "s2-request-token": requestToken },
|
|
138
|
+
...options,
|
|
139
|
+
}));
|
|
140
|
+
});
|
|
141
|
+
return toCamelCase(response);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get stream configuration.
|
|
145
|
+
*
|
|
146
|
+
* @param args.stream Stream name
|
|
147
|
+
*/
|
|
148
|
+
async getConfig(args, options) {
|
|
149
|
+
const response = await withRetries(this.retryConfig, async () => {
|
|
150
|
+
return await withS2Data(() => getStreamConfig({
|
|
151
|
+
client: this.client,
|
|
152
|
+
path: args,
|
|
153
|
+
...options,
|
|
154
|
+
}));
|
|
155
|
+
});
|
|
156
|
+
// Convert API format to SDK (age → ageSecs)
|
|
157
|
+
return toSDKStreamConfig(toCamelCase(response));
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Delete a stream.
|
|
161
|
+
*
|
|
162
|
+
* @param args.stream Stream name
|
|
163
|
+
*/
|
|
164
|
+
async delete(args, options) {
|
|
165
|
+
await withRetries(this.retryConfig, async () => {
|
|
166
|
+
return await withS2Data(() => deleteStream({
|
|
167
|
+
client: this.client,
|
|
168
|
+
path: args,
|
|
169
|
+
...options,
|
|
170
|
+
}));
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Reconfigure a stream.
|
|
175
|
+
*
|
|
176
|
+
* @param args Configuration for the stream to reconfigure (including stream name and fields to change)
|
|
177
|
+
*/
|
|
178
|
+
async reconfigure(args, options) {
|
|
179
|
+
// Convert SDK config to API format (ageSecs → age)
|
|
180
|
+
const apiArgs = {
|
|
181
|
+
...args,
|
|
182
|
+
retentionPolicy: toAPIRetentionPolicy(args.retentionPolicy),
|
|
183
|
+
};
|
|
184
|
+
const response = await withRetries(this.retryConfig, async () => {
|
|
185
|
+
return await withS2Data(() => reconfigureStream({
|
|
186
|
+
client: this.client,
|
|
187
|
+
path: args,
|
|
188
|
+
body: toSnakeCase(apiArgs),
|
|
189
|
+
...options,
|
|
190
|
+
}));
|
|
191
|
+
});
|
|
192
|
+
// Convert API format to SDK (age → ageSecs)
|
|
193
|
+
const camelCased = toCamelCase(response);
|
|
194
|
+
return toSDKStreamConfig(camelCased);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=streams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../../src/streams.ts"],"names":[],"mappings":"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"}
|