@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,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Producer = exports.RecordSubmitTicket = exports.IndexedAppendAck = void 0;
|
|
4
|
+
const debug_1 = require("debug");
|
|
5
|
+
const error_js_1 = require("./error.js");
|
|
6
|
+
const types_js_1 = require("./types.js");
|
|
7
|
+
const debugProducer = (0, debug_1.default)("s2:producer");
|
|
8
|
+
const toS2Error = (err) => err instanceof error_js_1.S2Error
|
|
9
|
+
? err
|
|
10
|
+
: new error_js_1.S2Error({
|
|
11
|
+
message: String(err),
|
|
12
|
+
status: 500,
|
|
13
|
+
origin: "sdk",
|
|
14
|
+
});
|
|
15
|
+
class IndexedAppendAck {
|
|
16
|
+
index;
|
|
17
|
+
ack;
|
|
18
|
+
constructor(index, ack) {
|
|
19
|
+
this.index = index;
|
|
20
|
+
this.ack = ack;
|
|
21
|
+
}
|
|
22
|
+
batchAppendAck() {
|
|
23
|
+
return this.ack;
|
|
24
|
+
}
|
|
25
|
+
seqNum() {
|
|
26
|
+
return this.ack.start.seqNum + this.index;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.IndexedAppendAck = IndexedAppendAck;
|
|
30
|
+
class RecordSubmitTicket {
|
|
31
|
+
ackPromise;
|
|
32
|
+
constructor(ackPromise) {
|
|
33
|
+
this.ackPromise = ackPromise;
|
|
34
|
+
// Avoid unhandled rejections if the caller never awaits ack().
|
|
35
|
+
this.ackPromise.catch(() => { });
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Returns a promise that resolves with the IndexedAppendAck once the record is durable.
|
|
39
|
+
*/
|
|
40
|
+
ack() {
|
|
41
|
+
return this.ackPromise;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.RecordSubmitTicket = RecordSubmitTicket;
|
|
45
|
+
/**
|
|
46
|
+
* Producer provides per-record append semantics on top of a batched AppendSession.
|
|
47
|
+
*
|
|
48
|
+
* - submit(record) returns a Promise<RecordSubmitTicket> that resolves once the record
|
|
49
|
+
* has been accepted (written to the batch transform). Backpressure is applied
|
|
50
|
+
* automatically via the transform stream when the AppendSession is at capacity.
|
|
51
|
+
* - ticket.ack() returns a Promise<IndexedAppendAck> that resolves once the record is durable.
|
|
52
|
+
*
|
|
53
|
+
* See the "Producer API" section of the root README for guidance on sizing batches,
|
|
54
|
+
* wiring transforms, and handling application-level ids.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* const appendSession = await stream.appendSession();
|
|
59
|
+
* const producer = new Producer(new BatchTransform(), appendSession);
|
|
60
|
+
* const writer = producer.writable.getWriter();
|
|
61
|
+
* await writer.write(AppendRecord.string({ body: "hello" }));
|
|
62
|
+
* await writer.close();
|
|
63
|
+
*
|
|
64
|
+
* for await (const ack of producer.readable) {
|
|
65
|
+
* console.log("record durable at seq", ack.seqNum());
|
|
66
|
+
* }
|
|
67
|
+
*
|
|
68
|
+
* await producer.close();
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
class Producer {
|
|
72
|
+
batchTransform;
|
|
73
|
+
transformWriter;
|
|
74
|
+
transformReader;
|
|
75
|
+
pump;
|
|
76
|
+
appendSession;
|
|
77
|
+
readable;
|
|
78
|
+
writable;
|
|
79
|
+
inflightRecords = [];
|
|
80
|
+
pumpError = null;
|
|
81
|
+
readableController = null;
|
|
82
|
+
debugName;
|
|
83
|
+
submitCounter = 0;
|
|
84
|
+
constructor(batchTransform, appendSession, debugName) {
|
|
85
|
+
this.debugName = debugName ?? `producer-${Date.now()}`;
|
|
86
|
+
this.batchTransform = batchTransform;
|
|
87
|
+
this.transformWriter = batchTransform.writable.getWriter();
|
|
88
|
+
this.transformReader = batchTransform.readable.getReader();
|
|
89
|
+
this.appendSession = appendSession;
|
|
90
|
+
debugProducer("[%s] created", this.debugName);
|
|
91
|
+
// Create readable stream that emits individual record acknowledgements
|
|
92
|
+
this.readable = new ReadableStream({
|
|
93
|
+
start: (controller) => {
|
|
94
|
+
this.readableController = controller;
|
|
95
|
+
},
|
|
96
|
+
cancel: () => {
|
|
97
|
+
this.close().catch(() => {
|
|
98
|
+
// Ignore errors during cleanup
|
|
99
|
+
});
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
// Create writable stream that accepts individual records
|
|
103
|
+
this.writable = new WritableStream({
|
|
104
|
+
write: async (record) => {
|
|
105
|
+
await this.submit(record);
|
|
106
|
+
},
|
|
107
|
+
close: async () => {
|
|
108
|
+
await this.close();
|
|
109
|
+
},
|
|
110
|
+
abort: async (reason) => {
|
|
111
|
+
this.pumpError = toS2Error(reason);
|
|
112
|
+
await this.close();
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
this.pump = this.runPump();
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Main pump loop: reads batches from transform, submits to session, handles acks.
|
|
119
|
+
*/
|
|
120
|
+
async runPump() {
|
|
121
|
+
debugProducer("[%s] pump started", this.debugName);
|
|
122
|
+
try {
|
|
123
|
+
while (true) {
|
|
124
|
+
const { value: batch, done } = await this.transformReader.read();
|
|
125
|
+
if (done) {
|
|
126
|
+
debugProducer("[%s] pump done (transform closed)", this.debugName);
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
debugProducer("[%s] pump got batch: records=%d, match_seq_num=%s, inflightRecords=%d", this.debugName, batch.records.length, batch.matchSeqNum ?? "none", this.inflightRecords.length);
|
|
130
|
+
// Associate records with this batch (FIFO correspondence)
|
|
131
|
+
const recordCount = batch.records.length;
|
|
132
|
+
const associatedRecords = this.inflightRecords.splice(0, recordCount);
|
|
133
|
+
if (associatedRecords.length !== recordCount) {
|
|
134
|
+
throw new error_js_1.S2Error({
|
|
135
|
+
message: `Internal error: flushed ${recordCount} records but only ${associatedRecords.length} inflight entries`,
|
|
136
|
+
status: 500,
|
|
137
|
+
origin: "sdk",
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
// Submit to AppendSession (blocks on capacity)
|
|
141
|
+
let ticket;
|
|
142
|
+
try {
|
|
143
|
+
debugProducer("[%s] pump submitting to session: records=%d, match_seq_num=%s", this.debugName, batch.records.length, batch.matchSeqNum ?? "none");
|
|
144
|
+
const input = types_js_1.AppendInput.create(batch.records, {
|
|
145
|
+
fencingToken: batch.fencingToken,
|
|
146
|
+
matchSeqNum: batch.matchSeqNum,
|
|
147
|
+
});
|
|
148
|
+
ticket = await this.appendSession.submit(input);
|
|
149
|
+
debugProducer("[%s] pump submit returned ticket", this.debugName);
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
const error = toS2Error(err);
|
|
153
|
+
debugProducer("[%s] pump submit error: %s", this.debugName, error.message);
|
|
154
|
+
if (!this.pumpError) {
|
|
155
|
+
this.pumpError = error;
|
|
156
|
+
}
|
|
157
|
+
// Reject acks for records in this batch
|
|
158
|
+
for (const record of associatedRecords) {
|
|
159
|
+
record.rejectAck(error);
|
|
160
|
+
}
|
|
161
|
+
if (this.readableController) {
|
|
162
|
+
this.readableController.error(error);
|
|
163
|
+
}
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
// Handle ack asynchronously (non-blocking)
|
|
167
|
+
ticket
|
|
168
|
+
.ack()
|
|
169
|
+
.then((ack) => {
|
|
170
|
+
debugProducer("[%s] pump ack received: seq_num=%d-%d", this.debugName, ack.start.seqNum, ack.end.seqNum);
|
|
171
|
+
for (const [i, record] of associatedRecords.entries()) {
|
|
172
|
+
const indexedAck = new IndexedAppendAck(i, ack);
|
|
173
|
+
record.resolveAck(indexedAck);
|
|
174
|
+
if (this.readableController) {
|
|
175
|
+
this.readableController.enqueue(indexedAck);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
})
|
|
179
|
+
.catch((err) => {
|
|
180
|
+
const error = toS2Error(err);
|
|
181
|
+
debugProducer("[%s] pump ack error: %s", this.debugName, error.message);
|
|
182
|
+
if (!this.pumpError) {
|
|
183
|
+
this.pumpError = error;
|
|
184
|
+
}
|
|
185
|
+
for (const record of associatedRecords) {
|
|
186
|
+
record.rejectAck(error);
|
|
187
|
+
}
|
|
188
|
+
if (this.readableController) {
|
|
189
|
+
this.readableController.error(error);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
const error = toS2Error(err);
|
|
196
|
+
debugProducer("[%s] pump caught error: %s", this.debugName, error.message);
|
|
197
|
+
if (!this.pumpError) {
|
|
198
|
+
this.pumpError = error;
|
|
199
|
+
}
|
|
200
|
+
// Reject all remaining inflight records
|
|
201
|
+
for (const record of this.inflightRecords.splice(0)) {
|
|
202
|
+
record.rejectAck(error);
|
|
203
|
+
}
|
|
204
|
+
// Error the readable stream
|
|
205
|
+
if (this.readableController) {
|
|
206
|
+
this.readableController.error(error);
|
|
207
|
+
this.readableController = null;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Submit a single record for appending.
|
|
213
|
+
*
|
|
214
|
+
* Returns a promise that resolves to a RecordSubmitTicket once the record has been
|
|
215
|
+
* accepted. The promise blocks if the underlying AppendSession is at capacity
|
|
216
|
+
* (backpressure is applied via the transform stream).
|
|
217
|
+
*
|
|
218
|
+
* @throws S2Error if the Producer has failed
|
|
219
|
+
*/
|
|
220
|
+
async submit(record) {
|
|
221
|
+
const submitId = ++this.submitCounter;
|
|
222
|
+
debugProducer("[%s] submit #%d: inflightRecords=%d", this.debugName, submitId, this.inflightRecords.length);
|
|
223
|
+
// Check if pump has already failed
|
|
224
|
+
if (this.pumpError) {
|
|
225
|
+
debugProducer("[%s] submit #%d: pump already failed", this.debugName, submitId);
|
|
226
|
+
throw new error_js_1.S2Error({
|
|
227
|
+
message: `Cannot submit: producer has failed: ${this.pumpError.message}`,
|
|
228
|
+
status: 500,
|
|
229
|
+
origin: "sdk",
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
// Create the ack promise (resolved later by pump)
|
|
233
|
+
let resolveAck;
|
|
234
|
+
let rejectAck;
|
|
235
|
+
const ackPromise = new Promise((resolve, reject) => {
|
|
236
|
+
resolveAck = resolve;
|
|
237
|
+
rejectAck = reject;
|
|
238
|
+
});
|
|
239
|
+
// Suppress unhandled rejection if write fails before we return the ticket
|
|
240
|
+
ackPromise.catch(() => { });
|
|
241
|
+
// Track this record
|
|
242
|
+
const entry = { resolveAck, rejectAck };
|
|
243
|
+
this.inflightRecords.push(entry);
|
|
244
|
+
debugProducer("[%s] submit #%d: pushed to inflightRecords (now %d), writing to transform", this.debugName, submitId, this.inflightRecords.length);
|
|
245
|
+
try {
|
|
246
|
+
// Write to transform - BLOCKS on backpressure
|
|
247
|
+
await this.transformWriter.write(record);
|
|
248
|
+
debugProducer("[%s] submit #%d: write completed", this.debugName, submitId);
|
|
249
|
+
}
|
|
250
|
+
catch (err) {
|
|
251
|
+
debugProducer("[%s] submit #%d: write failed: %s", this.debugName, submitId, err);
|
|
252
|
+
// Remove from inflight if the write failed
|
|
253
|
+
const idx = this.inflightRecords.indexOf(entry);
|
|
254
|
+
if (idx >= 0) {
|
|
255
|
+
this.inflightRecords.splice(idx, 1);
|
|
256
|
+
}
|
|
257
|
+
const error = toS2Error(err);
|
|
258
|
+
rejectAck(error);
|
|
259
|
+
throw error;
|
|
260
|
+
}
|
|
261
|
+
// Write succeeded - return ticket immediately
|
|
262
|
+
return new RecordSubmitTicket(ackPromise);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Close the Producer gracefully.
|
|
266
|
+
*
|
|
267
|
+
* Waits for all pending records to be flushed, submitted, and acknowledged.
|
|
268
|
+
* If any error occurred during the Producer's lifetime, this method throws it.
|
|
269
|
+
*/
|
|
270
|
+
async close() {
|
|
271
|
+
debugProducer("[%s] close requested", this.debugName);
|
|
272
|
+
// Close the writer to signal no more records
|
|
273
|
+
await this.transformWriter.close();
|
|
274
|
+
// Wait for the pump to finish processing all batches
|
|
275
|
+
await this.pump;
|
|
276
|
+
// Close the underlying session
|
|
277
|
+
await this.appendSession.close();
|
|
278
|
+
// Reject any remaining inflight records (shouldn't happen in normal operation)
|
|
279
|
+
if (this.inflightRecords.length > 0) {
|
|
280
|
+
const closingError = new error_js_1.S2Error({
|
|
281
|
+
message: "Producer closed with pending records",
|
|
282
|
+
status: 499,
|
|
283
|
+
origin: "sdk",
|
|
284
|
+
});
|
|
285
|
+
for (const record of this.inflightRecords.splice(0)) {
|
|
286
|
+
record.rejectAck(closingError);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
// Close the readable stream
|
|
290
|
+
if (this.readableController) {
|
|
291
|
+
this.readableController.close();
|
|
292
|
+
this.readableController = null;
|
|
293
|
+
}
|
|
294
|
+
debugProducer("[%s] close complete", this.debugName);
|
|
295
|
+
// If an error occurred, throw it
|
|
296
|
+
if (this.pumpError) {
|
|
297
|
+
throw this.pumpError;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
async [Symbol.asyncDispose]() {
|
|
301
|
+
await this.close();
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
exports.Producer = Producer;
|
|
305
|
+
//# sourceMappingURL=producer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"producer.js","sourceRoot":"","sources":["../../src/producer.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/s2.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { S2AccessTokens } from "./accessTokens.js";
|
|
2
|
+
import { S2Basin } from "./basin.js";
|
|
3
|
+
import { S2Basins } from "./basins.js";
|
|
4
|
+
import { type S2ClientOptions } from "./common.js";
|
|
5
|
+
import { S2Metrics } from "./metrics.js";
|
|
6
|
+
/**
|
|
7
|
+
* Top-level S2 SDK client.
|
|
8
|
+
*
|
|
9
|
+
* - Authenticates with an access token or PKI root key.
|
|
10
|
+
* - Exposes account-scoped helpers for basins, streams, access tokens and metrics.
|
|
11
|
+
*/
|
|
12
|
+
export declare class S2 {
|
|
13
|
+
private readonly authProvider;
|
|
14
|
+
private readonly client;
|
|
15
|
+
private readonly endpoints;
|
|
16
|
+
private readonly retryConfig;
|
|
17
|
+
/**
|
|
18
|
+
* Account-scoped basin management operations.
|
|
19
|
+
*
|
|
20
|
+
* - List, create, delete and reconfigure basins.
|
|
21
|
+
*/
|
|
22
|
+
readonly basins: S2Basins;
|
|
23
|
+
/** Manage access tokens for the account (list, issue, revoke). */
|
|
24
|
+
readonly accessTokens: S2AccessTokens;
|
|
25
|
+
/** Account, basin and stream level metrics. */
|
|
26
|
+
readonly metrics: S2Metrics;
|
|
27
|
+
/**
|
|
28
|
+
* Create a new S2 client.
|
|
29
|
+
*
|
|
30
|
+
* @param options Auth configuration (either accessToken or rootKey).
|
|
31
|
+
*/
|
|
32
|
+
constructor(options: S2ClientOptions);
|
|
33
|
+
/**
|
|
34
|
+
* Create a basin-scoped client bound to a specific basin name.
|
|
35
|
+
*
|
|
36
|
+
* @param name Basin name (8-48 characters, lowercase alphanumeric and hyphens, no leading/trailing hyphens).
|
|
37
|
+
* @throws {S2Error} If the basin name is invalid.
|
|
38
|
+
*/
|
|
39
|
+
basin(name: string): S2Basin;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=s2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s2.d.ts","sourceRoot":"","sources":["../../src/s2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAkE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAKnH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzC;;;;;GAKG;AACH,qBAAa,EAAE;IACd,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAE1C;;;;OAIG;IACH,SAAgB,MAAM,EAAE,QAAQ,CAAC;IACjC,kEAAkE;IAClE,SAAgB,YAAY,EAAE,cAAc,CAAC;IAC7C,+CAA+C;IAC/C,SAAgB,OAAO,EAAE,SAAS,CAAC;IAEnC;;;;OAIG;gBACS,OAAO,EAAE,eAAe;IA0DpC;;;;;OAKG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM;CAgBzB"}
|
package/dist/cjs/s2.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S2 = void 0;
|
|
4
|
+
const accessTokens_js_1 = require("./accessTokens.js");
|
|
5
|
+
const pki_auth_js_1 = require("./auth/pki-auth.js");
|
|
6
|
+
const basin_js_1 = require("./basin.js");
|
|
7
|
+
const basins_js_1 = require("./basins.js");
|
|
8
|
+
const common_js_1 = require("./common.js");
|
|
9
|
+
const endpoints_js_1 = require("./endpoints.js");
|
|
10
|
+
const error_js_1 = require("./error.js");
|
|
11
|
+
const runtime_js_1 = require("./lib/stream/runtime.js");
|
|
12
|
+
const metrics_js_1 = require("./metrics.js");
|
|
13
|
+
/**
|
|
14
|
+
* Basin names must be 8-48 characters, lowercase alphanumeric and hyphens,
|
|
15
|
+
* cannot start or end with a hyphen.
|
|
16
|
+
*/
|
|
17
|
+
const BASIN_NAME_REGEX = /^[a-z0-9][a-z0-9-]{6,46}[a-z0-9]$/;
|
|
18
|
+
/**
|
|
19
|
+
* Top-level S2 SDK client.
|
|
20
|
+
*
|
|
21
|
+
* - Authenticates with an access token or PKI root key.
|
|
22
|
+
* - Exposes account-scoped helpers for basins, streams, access tokens and metrics.
|
|
23
|
+
*/
|
|
24
|
+
class S2 {
|
|
25
|
+
authProvider;
|
|
26
|
+
client;
|
|
27
|
+
endpoints;
|
|
28
|
+
retryConfig;
|
|
29
|
+
/**
|
|
30
|
+
* Account-scoped basin management operations.
|
|
31
|
+
*
|
|
32
|
+
* - List, create, delete and reconfigure basins.
|
|
33
|
+
*/
|
|
34
|
+
basins;
|
|
35
|
+
/** Manage access tokens for the account (list, issue, revoke). */
|
|
36
|
+
accessTokens;
|
|
37
|
+
/** Account, basin and stream level metrics. */
|
|
38
|
+
metrics;
|
|
39
|
+
/**
|
|
40
|
+
* Create a new S2 client.
|
|
41
|
+
*
|
|
42
|
+
* @param options Auth configuration (either accessToken or rootKey).
|
|
43
|
+
*/
|
|
44
|
+
constructor(options) {
|
|
45
|
+
// Validate auth options - exactly one must be specified
|
|
46
|
+
const authCount = [options.accessToken, options.rootKey, options.authContext].filter(Boolean).length;
|
|
47
|
+
if (authCount === 0) {
|
|
48
|
+
throw new error_js_1.S2Error({
|
|
49
|
+
message: "Must specify one of: accessToken, rootKey, or authContext for authentication.",
|
|
50
|
+
origin: "sdk",
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
if (authCount > 1) {
|
|
54
|
+
throw new error_js_1.S2Error({
|
|
55
|
+
message: "Specify only one of: accessToken, rootKey, or authContext.",
|
|
56
|
+
origin: "sdk",
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// Create auth provider
|
|
60
|
+
if (options.authContext) {
|
|
61
|
+
this.authProvider = { type: "pki", context: options.authContext };
|
|
62
|
+
}
|
|
63
|
+
else if (options.rootKey) {
|
|
64
|
+
const pkiAuth = (0, pki_auth_js_1.createPkiAuth)({ rootKey: options.rootKey });
|
|
65
|
+
this.authProvider = { type: "pki", context: pkiAuth };
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this.authProvider = { type: "token", token: options.accessToken };
|
|
69
|
+
}
|
|
70
|
+
// Merge timeout config: top-level options take precedence over retry.* for backwards compatibility
|
|
71
|
+
this.retryConfig = {
|
|
72
|
+
...options.retry,
|
|
73
|
+
...(options.requestTimeoutMillis !== undefined && {
|
|
74
|
+
requestTimeoutMillis: options.requestTimeoutMillis,
|
|
75
|
+
}),
|
|
76
|
+
...(options.connectionTimeoutMillis !== undefined && {
|
|
77
|
+
connectionTimeoutMillis: options.connectionTimeoutMillis,
|
|
78
|
+
}),
|
|
79
|
+
};
|
|
80
|
+
this.endpoints =
|
|
81
|
+
options.endpoints instanceof endpoints_js_1.S2Endpoints
|
|
82
|
+
? options.endpoints
|
|
83
|
+
: new endpoints_js_1.S2Endpoints(options.endpoints);
|
|
84
|
+
const headers = {};
|
|
85
|
+
if ((0, runtime_js_1.canSetUserAgentHeader)()) {
|
|
86
|
+
headers["user-agent"] = runtime_js_1.DEFAULT_USER_AGENT;
|
|
87
|
+
}
|
|
88
|
+
this.client = (0, common_js_1.createAuthenticatedClient)(this.endpoints.accountBaseUrl(), this.authProvider, headers);
|
|
89
|
+
this.client.interceptors.error.use((err, res) => {
|
|
90
|
+
return (0, error_js_1.makeServerError)(res, err);
|
|
91
|
+
});
|
|
92
|
+
this.basins = new basins_js_1.S2Basins(this.client, this.retryConfig);
|
|
93
|
+
this.accessTokens = new accessTokens_js_1.S2AccessTokens(this.client, this.retryConfig);
|
|
94
|
+
this.metrics = new metrics_js_1.S2Metrics(this.client, this.retryConfig);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create a basin-scoped client bound to a specific basin name.
|
|
98
|
+
*
|
|
99
|
+
* @param name Basin name (8-48 characters, lowercase alphanumeric and hyphens, no leading/trailing hyphens).
|
|
100
|
+
* @throws {S2Error} If the basin name is invalid.
|
|
101
|
+
*/
|
|
102
|
+
basin(name) {
|
|
103
|
+
if (!BASIN_NAME_REGEX.test(name)) {
|
|
104
|
+
throw new error_js_1.S2Error({
|
|
105
|
+
message: `Invalid basin name: "${name}". Basin names must be 8-48 characters, ` +
|
|
106
|
+
`contain only lowercase letters, numbers, and hyphens, and cannot start or end with a hyphen.`,
|
|
107
|
+
origin: "sdk",
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return new basin_js_1.S2Basin(name, {
|
|
111
|
+
authProvider: this.authProvider,
|
|
112
|
+
baseUrl: this.endpoints.basinBaseUrl(name),
|
|
113
|
+
includeBasinHeader: this.endpoints.includeBasinHeader,
|
|
114
|
+
retryConfig: this.retryConfig,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
exports.S2 = S2;
|
|
119
|
+
//# sourceMappingURL=s2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s2.js","sourceRoot":"","sources":["../../src/s2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { RetryConfig, S2RequestOptions } from "./common.js";
|
|
2
|
+
import type { Client } from "./generated/client/types.gen.js";
|
|
3
|
+
import type { AppendSession, ReadSession, TransportConfig } from "./lib/stream/types.js";
|
|
4
|
+
import type * as Types from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Basin-scoped stream helper for append/read operations.
|
|
7
|
+
*
|
|
8
|
+
* Created via {@link S2Basin.stream}. Provides direct methods plus factories for read/append sessions.
|
|
9
|
+
*/
|
|
10
|
+
export declare class S2Stream {
|
|
11
|
+
private readonly client;
|
|
12
|
+
private readonly transportConfig;
|
|
13
|
+
private readonly retryConfig?;
|
|
14
|
+
private _transport?;
|
|
15
|
+
private closed;
|
|
16
|
+
private closePromise?;
|
|
17
|
+
readonly name: string;
|
|
18
|
+
constructor(name: string, client: Client, transportConfig: TransportConfig, retryConfig?: RetryConfig);
|
|
19
|
+
/**
|
|
20
|
+
* Get or create the transport instance
|
|
21
|
+
*/
|
|
22
|
+
private getTransport;
|
|
23
|
+
private ensureOpen;
|
|
24
|
+
/**
|
|
25
|
+
* Check the tail of the stream.
|
|
26
|
+
*
|
|
27
|
+
* Returns the next sequence number and timestamp to be assigned (`tail`).
|
|
28
|
+
*/
|
|
29
|
+
checkTail(options?: S2RequestOptions): Promise<Types.TailResponse>;
|
|
30
|
+
/**
|
|
31
|
+
* Read records from the stream.
|
|
32
|
+
*
|
|
33
|
+
* - When `as: "bytes"` is provided, bodies and headers are decoded from base64 to `Uint8Array`.
|
|
34
|
+
* - Supports starting position by `seq_num`, `timestamp`, or `tail_offset` and can clamp to the tail.
|
|
35
|
+
* - Non-streaming reads are bounded by `count` and `bytes` (defaults 1000 and 1 MiB).
|
|
36
|
+
* - Use `readSession` for streaming reads
|
|
37
|
+
*/
|
|
38
|
+
read<Format extends "string" | "bytes" = "string">(input?: Types.ReadInput, options?: S2RequestOptions & {
|
|
39
|
+
as?: Format;
|
|
40
|
+
}): Promise<Types.ReadBatch<Format>>;
|
|
41
|
+
/**
|
|
42
|
+
* Append a batch of records to the stream.
|
|
43
|
+
*
|
|
44
|
+
* - Automatically base64-encodes when format is "bytes".
|
|
45
|
+
* - Supports conditional appends via `fencingToken` and `matchSeqNum` in the input.
|
|
46
|
+
* - Returns the acknowledged range and the stream tail after the append.
|
|
47
|
+
* - All records in a batch must use the same format (either all string or all bytes).
|
|
48
|
+
*
|
|
49
|
+
* Use {@link AppendInput.create} to construct a validated AppendInput.
|
|
50
|
+
* For high-throughput sequential appends, use `appendSession()` instead.
|
|
51
|
+
*
|
|
52
|
+
* @param input The append input containing records and optional conditions
|
|
53
|
+
* @param options Optional request options
|
|
54
|
+
*/
|
|
55
|
+
append(input: Types.AppendInput, options?: S2RequestOptions): Promise<Types.AppendAck>;
|
|
56
|
+
/**
|
|
57
|
+
* Open a streaming read session
|
|
58
|
+
*
|
|
59
|
+
* Use the returned session as an async iterable or as a readable stream.
|
|
60
|
+
* When `as: "bytes"` is provided, bodies and headers are decoded to `Uint8Array`.
|
|
61
|
+
*/
|
|
62
|
+
readSession<Format extends "string" | "bytes" = "string">(input?: Types.ReadInput, options?: S2RequestOptions & {
|
|
63
|
+
as?: Format;
|
|
64
|
+
}): Promise<ReadSession<Format>>;
|
|
65
|
+
/**
|
|
66
|
+
* Create an append session that guarantees ordering of submissions.
|
|
67
|
+
*
|
|
68
|
+
* Use this to coordinate high-throughput, sequential appends with backpressure.
|
|
69
|
+
* Records can be either string or bytes format - the format is specified in each record.
|
|
70
|
+
*
|
|
71
|
+
* @param sessionOptions Options that control append session behavior
|
|
72
|
+
* @param requestOptions Optional request options
|
|
73
|
+
*/
|
|
74
|
+
appendSession(sessionOptions?: Types.AppendSessionOptions, requestOptions?: S2RequestOptions): Promise<AppendSession>;
|
|
75
|
+
close(): Promise<void>;
|
|
76
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAc9D,OAAO,KAAK,EACX,aAAa,EAEb,WAAW,EAEX,eAAe,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAC;AAEzC;;;;GAIG;AACH,qBAAa,QAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAc;IAC3C,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAC,CAAgB;IAErC,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAG5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,WAAW,CAAC,EAAE,WAAW;IAQ1B;;OAEG;YACW,YAAY;IAQ1B,OAAO,CAAC,UAAU;IAMlB;;;;OAIG;IACU,SAAS,CACrB,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;IAgB9B;;;;;;;OAOG;IACU,IAAI,CAAC,MAAM,SAAS,QAAQ,GAAG,OAAO,GAAG,QAAQ,EAC7D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,EACvB,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAuBnC;;;;;;;;;;;;;OAaG;IACU,MAAM,CAClB,KAAK,EAAE,KAAK,CAAC,WAAW,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;IAkB3B;;;;;OAKG;IACU,WAAW,CAAC,MAAM,SAAS,QAAQ,GAAG,OAAO,GAAG,QAAQ,EACpE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,EACvB,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAW/B;;;;;;;;OAQG;IACU,aAAa,CACzB,cAAc,CAAC,EAAE,KAAK,CAAC,oBAAoB,EAC3C,cAAc,CAAC,EAAE,gBAAgB,GAC/B,OAAO,CAAC,aAAa,CAAC;IASZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B7B,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5C"}
|