effect 4.0.2 → 4.0.4
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/AGENTS.md +24 -0
- package/CLAUDE.md +24 -0
- package/ai-docs/package.json +2 -2
- package/ai-docs/src/52_graphql/10_basics.ts +111 -0
- package/ai-docs/src/52_graphql/20_testing.ts +45 -0
- package/ai-docs/src/52_graphql/30_batching.ts +116 -0
- package/ai-docs/src/52_graphql/40_aliased-batching.ts +122 -0
- package/ai-docs/src/52_graphql/50_errors-and-retries.ts +74 -0
- package/ai-docs/src/52_graphql/index.md +6 -0
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +12 -3
- package/dist/Context.js.map +1 -1
- package/dist/Crypto.d.ts +33 -5
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +8 -2
- package/dist/Crypto.js.map +1 -1
- package/dist/DateTime.d.ts +9 -6
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +9 -6
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +6 -6
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +27 -8
- package/dist/Duration.js.map +1 -1
- package/dist/FileSystem.d.ts +44 -2
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js.map +1 -1
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +4 -10
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Scheduler.d.ts +9 -0
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +9 -0
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +481 -1
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +362 -4
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaGetter.d.ts +4 -0
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +52 -33
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +38 -17
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +7 -1
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +1 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +22 -11
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +21 -6
- package/dist/Stream.js.map +1 -1
- package/dist/Utils.js +8 -3
- package/dist/Utils.js.map +1 -1
- package/dist/ai/AnthropicStructuredOutput.js +0 -2
- package/dist/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/ai/Chat.d.ts +2 -2
- package/dist/ai/Chat.d.ts.map +1 -1
- package/dist/ai/LanguageModel.d.ts +38 -7
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +25 -7
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpServer.d.ts +61 -0
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +196 -44
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +28 -5
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +4 -3
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +5 -0
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +1 -0
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +27 -0
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +33 -10
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +6 -3
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +3 -3
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +8 -5
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts +5 -4
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +3 -3
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Prompt.d.ts +17 -1
- package/dist/cli/Prompt.d.ts.map +1 -1
- package/dist/cli/Prompt.js +119 -114
- package/dist/cli/Prompt.js.map +1 -1
- package/dist/cli/internal/ansi.d.ts +0 -1
- package/dist/cli/internal/ansi.d.ts.map +1 -1
- package/dist/cli/internal/ansi.js +20 -3
- package/dist/cli/internal/ansi.js.map +1 -1
- package/dist/cli/internal/completions/powershell.d.ts +2 -0
- package/dist/cli/internal/completions/powershell.d.ts.map +1 -0
- package/dist/cli/internal/completions/powershell.js +273 -0
- package/dist/cli/internal/completions/powershell.js.map +1 -0
- package/dist/cli/internal/completions/zsh.js +3 -2
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/wizard.d.ts +3 -3
- package/dist/cli/internal/wizard.d.ts.map +1 -1
- package/dist/cli/internal/wizard.js +21 -18
- package/dist/cli/internal/wizard.js.map +1 -1
- package/dist/cluster/ClusterSchema.d.ts +28 -0
- package/dist/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/cluster/ClusterSchema.js +30 -0
- package/dist/cluster/ClusterSchema.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +56 -26
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +18 -3
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +31 -11
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +8 -2
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +187 -66
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts +59 -19
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +84 -55
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +68 -19
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +191 -113
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +104 -37
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/encoding/Sse.d.ts +6 -0
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +62 -70
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/graphql/GraphQL.d.ts +349 -0
- package/dist/graphql/GraphQL.d.ts.map +1 -0
- package/dist/graphql/GraphQL.js +207 -0
- package/dist/graphql/GraphQL.js.map +1 -0
- package/dist/graphql/GraphQLClient.d.ts +562 -0
- package/dist/graphql/GraphQLClient.d.ts.map +1 -0
- package/dist/graphql/GraphQLClient.js +498 -0
- package/dist/graphql/GraphQLClient.js.map +1 -0
- package/dist/graphql/GraphQLClientError.d.ts +445 -0
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -0
- package/dist/graphql/GraphQLClientError.js +479 -0
- package/dist/graphql/GraphQLClientError.js.map +1 -0
- package/dist/graphql/GraphQLGroup.d.ts +118 -0
- package/dist/graphql/GraphQLGroup.d.ts.map +1 -0
- package/dist/graphql/GraphQLGroup.js +109 -0
- package/dist/graphql/GraphQLGroup.js.map +1 -0
- package/dist/graphql/GraphQLMiddleware.d.ts +249 -0
- package/dist/graphql/GraphQLMiddleware.d.ts.map +1 -0
- package/dist/graphql/GraphQLMiddleware.js +130 -0
- package/dist/graphql/GraphQLMiddleware.js.map +1 -0
- package/dist/graphql/GraphQLProtocol.d.ts +731 -0
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -0
- package/dist/graphql/GraphQLProtocol.js +719 -0
- package/dist/graphql/GraphQLProtocol.js.map +1 -0
- package/dist/graphql/GraphQLResolver.d.ts +453 -0
- package/dist/graphql/GraphQLResolver.d.ts.map +1 -0
- package/dist/graphql/GraphQLResolver.js +552 -0
- package/dist/graphql/GraphQLResolver.js.map +1 -0
- package/dist/graphql/index.d.ts +40 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js +41 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/http/FindMyWay/internal/router.js +3 -6
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/HttpClient.d.ts +21 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +63 -12
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +14 -7
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +31 -32
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts +35 -0
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +35 -0
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts +8 -6
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +27 -16
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +4 -2
- package/dist/http/HttpTraceContext.js.map +1 -1
- package/dist/http/Multipart.d.ts.map +1 -1
- package/dist/http/Multipart.js +15 -1
- package/dist/http/Multipart.js.map +1 -1
- package/dist/http-api/HttpApiScalar.d.ts +5 -0
- package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
- package/dist/http-api/HttpApiScalar.js.map +1 -1
- package/dist/internal/dateTime.js +40 -35
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +19 -9
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/graphql.d.ts +2 -0
- package/dist/internal/graphql.d.ts.map +1 -0
- package/dist/internal/graphql.js +195 -0
- package/dist/internal/graphql.js.map +1 -0
- package/dist/internal/graphqlHeaders.d.ts +4 -0
- package/dist/internal/graphqlHeaders.d.ts.map +1 -0
- package/dist/internal/graphqlHeaders.js +11 -0
- package/dist/internal/graphqlHeaders.js.map +1 -0
- package/dist/internal/request.js +20 -1
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +4 -1
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +29 -5
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/net/AddressResolver.d.ts +145 -0
- package/dist/net/AddressResolver.d.ts.map +1 -0
- package/dist/net/AddressResolver.js +114 -0
- package/dist/net/AddressResolver.js.map +1 -0
- package/dist/net/Dns.d.ts +596 -0
- package/dist/net/Dns.d.ts.map +1 -0
- package/dist/net/Dns.js +549 -0
- package/dist/net/Dns.js.map +1 -0
- package/dist/net/Host.d.ts +369 -0
- package/dist/net/Host.d.ts.map +1 -0
- package/dist/net/Host.js +397 -0
- package/dist/net/Host.js.map +1 -0
- package/dist/net/IpInterface.d.ts +76 -3
- package/dist/net/IpInterface.d.ts.map +1 -1
- package/dist/net/IpInterface.js +53 -4
- package/dist/net/IpInterface.js.map +1 -1
- package/dist/net/IpNetwork.d.ts +82 -8
- package/dist/net/IpNetwork.d.ts.map +1 -1
- package/dist/net/IpNetwork.js +60 -4
- package/dist/net/IpNetwork.js.map +1 -1
- package/dist/net/NetAddress.d.ts +396 -35
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +358 -34
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/net/index.d.ts +15 -0
- package/dist/net/index.d.ts.map +1 -1
- package/dist/net/index.js +15 -0
- package/dist/net/index.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +15 -21
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/PrometheusMetrics.js +1 -0
- package/dist/observability/PrometheusMetrics.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +32 -3
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +75 -16
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +22 -6
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +12 -5
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts +6 -0
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +78 -29
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/socket/DatagramSocket.d.ts +456 -0
- package/dist/socket/DatagramSocket.d.ts.map +1 -0
- package/dist/socket/DatagramSocket.js +535 -0
- package/dist/socket/DatagramSocket.js.map +1 -0
- package/dist/socket/Socket.d.ts +20 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +9 -1
- package/dist/socket/Socket.js.map +1 -1
- package/dist/socket/index.d.ts +5 -0
- package/dist/socket/index.d.ts.map +1 -1
- package/dist/socket/index.js +5 -0
- package/dist/socket/index.js.map +1 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +7 -2
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +7 -1
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +31 -6
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/testing/TestCrypto.d.ts +73 -0
- package/dist/testing/TestCrypto.d.ts.map +1 -0
- package/dist/testing/TestCrypto.js +87 -0
- package/dist/testing/TestCrypto.js.map +1 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +5 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts +54 -0
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +108 -50
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts +24 -2
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +13 -3
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +6 -3
- package/src/Context.ts +12 -3
- package/src/Crypto.ts +43 -9
- package/src/DateTime.ts +9 -6
- package/src/Duration.ts +36 -16
- package/src/FileSystem.ts +48 -2
- package/src/RequestResolver.ts +4 -10
- package/src/Scheduler.ts +9 -0
- package/src/Schema.ts +677 -5
- package/src/SchemaGetter.ts +47 -35
- package/src/Sink.ts +45 -18
- package/src/Stdio.ts +9 -2
- package/src/Stream.ts +44 -15
- package/src/Utils.ts +8 -5
- package/src/ai/AnthropicStructuredOutput.ts +2 -2
- package/src/ai/Chat.ts +2 -2
- package/src/ai/LanguageModel.ts +96 -24
- package/src/ai/McpServer.ts +288 -94
- package/src/ai/Prompt.ts +24 -10
- package/src/ai/Response.ts +6 -3
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +5 -0
- package/src/ai/internal/mcpProtocol.ts +3 -0
- package/src/ai/internal/mcpRuntime.ts +2 -0
- package/src/cli/CliOutput.ts +33 -16
- package/src/cli/Command.ts +4 -3
- package/src/cli/Completions.ts +9 -6
- package/src/cli/GlobalFlag.ts +19 -11
- package/src/cli/Prompt.ts +159 -149
- package/src/cli/internal/ansi.ts +26 -3
- package/src/cli/internal/completions/powershell.ts +322 -0
- package/src/cli/internal/completions/zsh.ts +4 -2
- package/src/cli/internal/wizard.ts +34 -26
- package/src/cluster/ClusterSchema.ts +32 -0
- package/src/cluster/ClusterWorkflowEngine.ts +64 -36
- package/src/cluster/MessageStorage.ts +45 -14
- package/src/cluster/Runners.ts +8 -2
- package/src/cluster/Sharding.ts +219 -58
- package/src/cluster/SqlMessageStorage.ts +118 -84
- package/src/cluster/SqlRunnerStorage.ts +224 -128
- package/src/cluster/internal/entityManager.ts +151 -55
- package/src/encoding/Sse.ts +69 -79
- package/src/graphql/GraphQL.ts +494 -0
- package/src/graphql/GraphQLClient.ts +912 -0
- package/src/graphql/GraphQLClientError.ts +542 -0
- package/src/graphql/GraphQLGroup.ts +167 -0
- package/src/graphql/GraphQLMiddleware.ts +253 -0
- package/src/graphql/GraphQLProtocol.ts +1286 -0
- package/src/graphql/GraphQLResolver.ts +1010 -0
- package/src/graphql/index.ts +48 -0
- package/src/http/FindMyWay/internal/router.ts +4 -7
- package/src/http/HttpClient.ts +110 -12
- package/src/http/HttpEffect.ts +11 -5
- package/src/http/HttpMiddleware.ts +33 -34
- package/src/http/HttpRouter.ts +35 -0
- package/src/http/HttpServerResponse.ts +28 -16
- package/src/http/HttpTraceContext.ts +8 -2
- package/src/http/Multipart.ts +17 -1
- package/src/http-api/HttpApiScalar.ts +5 -0
- package/src/internal/dateTime.ts +13 -10
- package/src/internal/effect.ts +22 -15
- package/src/internal/graphql.ts +263 -0
- package/src/internal/graphqlHeaders.ts +11 -0
- package/src/internal/request.ts +31 -3
- package/src/internal/schema/toCodeDocument.ts +7 -1
- package/src/internal/schema/toJsonSchemaDocument.ts +34 -2
- package/src/internal/version.ts +1 -1
- package/src/net/AddressResolver.ts +222 -0
- package/src/net/Dns.ts +1035 -0
- package/src/net/Host.ts +544 -0
- package/src/net/IpInterface.ts +117 -7
- package/src/net/IpNetwork.ts +116 -17
- package/src/net/NetAddress.ts +620 -76
- package/src/net/index.ts +18 -0
- package/src/observability/OtlpMetrics.ts +12 -23
- package/src/observability/PrometheusMetrics.ts +1 -0
- package/src/persistence/PersistedQueue.ts +146 -53
- package/src/rpc/RpcClient.ts +41 -19
- package/src/rpc/RpcServer.ts +115 -40
- package/src/socket/DatagramSocket.ts +919 -0
- package/src/socket/Socket.ts +28 -2
- package/src/socket/index.ts +6 -0
- package/src/sql/Migrator.ts +21 -5
- package/src/sql/SqlClient.ts +39 -15
- package/src/testing/TestCrypto.ts +94 -0
- package/src/testing/index.ts +6 -0
- package/src/workflow/DurableDeferred.ts +160 -47
- package/src/workflow/WorkflowEngine.ts +50 -5
package/dist/encoding/Sse.js
CHANGED
|
@@ -146,12 +146,15 @@ export const decodeDataSchema = (schema, options) => {
|
|
|
146
146
|
*/
|
|
147
147
|
export function makeParser(onParse, options) {
|
|
148
148
|
const maxEventSize = options?.maxEventSize ?? defaultMaxEventSize;
|
|
149
|
+
const dispatchEmptyNamedEvents = options?.dispatchEmptyNamedEvents === true;
|
|
149
150
|
// Processing state
|
|
150
151
|
let isFirstChunk;
|
|
151
|
-
|
|
152
|
-
let
|
|
153
|
-
let
|
|
152
|
+
// Pieces of the unterminated line, joined once when the line ends
|
|
153
|
+
let pending;
|
|
154
|
+
let pendingLength;
|
|
154
155
|
let discardTrailingNewline;
|
|
156
|
+
// Incremented by `reset`, so `feed` can stop if `onParse` resets the parser
|
|
157
|
+
let generation = 0;
|
|
155
158
|
// Event state
|
|
156
159
|
let lastEventId;
|
|
157
160
|
let eventName;
|
|
@@ -162,74 +165,62 @@ export function makeParser(onParse, options) {
|
|
|
162
165
|
reset
|
|
163
166
|
};
|
|
164
167
|
function reset() {
|
|
168
|
+
generation++;
|
|
165
169
|
isFirstChunk = true;
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
startingFieldLength = -1;
|
|
170
|
+
pending = [];
|
|
171
|
+
pendingLength = 0;
|
|
169
172
|
discardTrailingNewline = false;
|
|
170
173
|
lastEventId = undefined;
|
|
171
174
|
eventName = undefined;
|
|
172
175
|
data = "";
|
|
173
176
|
}
|
|
174
177
|
function feed(chunk) {
|
|
175
|
-
buffer = buffer ? buffer + chunk : chunk;
|
|
176
178
|
// Strip any UTF-8 byte order mark (BOM) at the start of the stream.
|
|
177
179
|
// Note that we do not strip any non - UTF8 BOM, as eventsource streams are
|
|
178
180
|
// always decoded as UTF8 as per the specification.
|
|
179
|
-
if (isFirstChunk &&
|
|
180
|
-
|
|
181
|
+
if (isFirstChunk && chunk.startsWith(BOM)) {
|
|
182
|
+
chunk = chunk.slice(BOM.length);
|
|
181
183
|
}
|
|
182
184
|
isFirstChunk = false;
|
|
183
|
-
|
|
184
|
-
const
|
|
185
|
+
const length = chunk.length;
|
|
186
|
+
const currentGeneration = generation;
|
|
185
187
|
let position = 0;
|
|
186
|
-
// Read the current buffer byte by byte
|
|
187
188
|
while (position < length) {
|
|
188
|
-
//
|
|
189
|
-
// need to ignore a linefeed character if the previous character was a
|
|
190
|
-
// carriage return
|
|
191
|
-
// @todo refactor to reduce nesting, consider checking previous byte?
|
|
192
|
-
// @todo but consider multiple chunks etc
|
|
189
|
+
// Skip the LF of a CRLF, whose CR may have ended the previous chunk
|
|
193
190
|
if (discardTrailingNewline) {
|
|
194
|
-
|
|
191
|
+
discardTrailingNewline = false;
|
|
192
|
+
if (chunk.charCodeAt(position) === LF) {
|
|
195
193
|
++position;
|
|
194
|
+
continue;
|
|
196
195
|
}
|
|
197
|
-
discardTrailingNewline = false;
|
|
198
196
|
}
|
|
199
|
-
let
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
if (character === ":" && fieldLength < 0) {
|
|
205
|
-
fieldLength = index - position;
|
|
206
|
-
} else if (character === "\r") {
|
|
207
|
-
discardTrailingNewline = true;
|
|
208
|
-
lineLength = index - position;
|
|
209
|
-
} else if (character === "\n") {
|
|
210
|
-
lineLength = index - position;
|
|
211
|
-
}
|
|
197
|
+
let lineEnd = position;
|
|
198
|
+
while (lineEnd < length) {
|
|
199
|
+
const code = chunk.charCodeAt(lineEnd);
|
|
200
|
+
if (code === CR || code === LF) break;
|
|
201
|
+
++lineEnd;
|
|
212
202
|
}
|
|
213
|
-
if (
|
|
214
|
-
|
|
215
|
-
|
|
203
|
+
if (lineEnd === length) {
|
|
204
|
+
pending.push(chunk.slice(position));
|
|
205
|
+
pendingLength += length - position;
|
|
216
206
|
break;
|
|
217
|
-
} else {
|
|
218
|
-
startingPosition = 0;
|
|
219
|
-
startingFieldLength = -1;
|
|
220
207
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
208
|
+
discardTrailingNewline = chunk.charCodeAt(lineEnd) === CR;
|
|
209
|
+
let line = chunk.slice(position, lineEnd);
|
|
210
|
+
if (pending.length > 0) {
|
|
211
|
+
pending.push(line);
|
|
212
|
+
line = pending.join("");
|
|
213
|
+
pending = [];
|
|
214
|
+
pendingLength = 0;
|
|
215
|
+
}
|
|
216
|
+
parseLine(line);
|
|
217
|
+
if (generation !== currentGeneration) {
|
|
218
|
+
// `onParse` reset the parser, so drop the rest of this chunk
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
position = lineEnd + 1;
|
|
231
222
|
}
|
|
232
|
-
if (
|
|
223
|
+
if (pendingLength + data.length > maxEventSize) {
|
|
233
224
|
const error = new SseError({
|
|
234
225
|
reason: new EventTooLarge({
|
|
235
226
|
maxEventSize
|
|
@@ -239,36 +230,34 @@ export function makeParser(onParse, options) {
|
|
|
239
230
|
return error;
|
|
240
231
|
}
|
|
241
232
|
}
|
|
242
|
-
function
|
|
243
|
-
if (
|
|
244
|
-
//
|
|
245
|
-
|
|
233
|
+
function parseLine(line) {
|
|
234
|
+
if (line.length === 0) {
|
|
235
|
+
// End of event. Clear the state first so a throwing `onParse` cannot
|
|
236
|
+
// leak it into the next event
|
|
237
|
+
const named = eventName !== undefined && eventName !== "";
|
|
238
|
+
const event = eventName || "message";
|
|
239
|
+
const eventData = data;
|
|
240
|
+
eventName = undefined;
|
|
241
|
+
data = "";
|
|
242
|
+
if (eventData.length > 0 || dispatchEmptyNamedEvents && named) {
|
|
246
243
|
onParse({
|
|
247
244
|
_tag: "Event",
|
|
248
245
|
id: lastEventId,
|
|
249
|
-
event
|
|
250
|
-
data:
|
|
246
|
+
event,
|
|
247
|
+
data: eventData.slice(0, -1) // remove trailing newline
|
|
251
248
|
});
|
|
252
|
-
data = "";
|
|
253
249
|
}
|
|
254
|
-
eventName = undefined;
|
|
255
250
|
return;
|
|
256
251
|
}
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
let
|
|
260
|
-
if (
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
step = fieldLength + 2;
|
|
264
|
-
} else {
|
|
265
|
-
step = fieldLength + 1;
|
|
252
|
+
const colon = line.indexOf(":");
|
|
253
|
+
let field = line;
|
|
254
|
+
let value = "";
|
|
255
|
+
if (colon >= 0) {
|
|
256
|
+
field = line.slice(0, colon);
|
|
257
|
+
value = line.slice(line.charCodeAt(colon + 1) === SPACE ? colon + 2 : colon + 1);
|
|
266
258
|
}
|
|
267
|
-
const position = index + step;
|
|
268
|
-
const valueLength = lineLength - step;
|
|
269
|
-
const value = lineBuffer.slice(position, position + valueLength).toString();
|
|
270
259
|
if (field === "data") {
|
|
271
|
-
data += value
|
|
260
|
+
data += value + "\n";
|
|
272
261
|
} else if (field === "event") {
|
|
273
262
|
eventName = value;
|
|
274
263
|
} else if (field === "id" && !value.includes("\u0000")) {
|
|
@@ -283,6 +272,9 @@ export function makeParser(onParse, options) {
|
|
|
283
272
|
}
|
|
284
273
|
}
|
|
285
274
|
const BOM = "\uFEFF";
|
|
275
|
+
const LF = 10;
|
|
276
|
+
const CR = 13;
|
|
277
|
+
const SPACE = 32;
|
|
286
278
|
/**
|
|
287
279
|
* Creates a channel that encodes `Event` values as Server-Sent Events text.
|
|
288
280
|
*
|
package/dist/encoding/Sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sse.js","names":[],"sources":["../../src/encoding/Sse.ts"],"sourcesContent":[null],"mappings":"AAYA,OAAO,KAAK,GAAG,MAAM,aAAa;AAClC,OAAO,KAAK,KAAK,MAAM,aAAa;AACpC,OAAO,KAAK,OAAO,MAAM,eAAe;AACxC,OAAO,KAAK,aAAa,MAAM,qBAAqB;AACpD,OAAO,KAAK,IAAI,MAAM,YAAY;AAClC,OAAO,KAAK,QAAQ,MAAM,gBAAgB;AAC1C,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,SAAS,WAAW,QAAQ,iBAAiB;AAC7C,OAAO,KAAK,IAAI,MAAM,YAAY;AAClC,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc;AAEtC,OAAO,KAAK,oBAAoB,MAAM,4BAA4B;AAElE,MAAM,cAAc,GAAG,+BAA+B;AAEtD;;;;;;;;AAQA,OAAM,MAAO,aAAc,sBAAQ,IAAI,CAAC,WAAW,CAAC,eAAe,CAEjE;EACA,IAAa,OAAO;IAClB,OAAO,kDAAkD,IAAI,CAAC,YAAY,EAAE;EAC9E;;AAYF;;;;;;;AAOA,OAAM,MAAO,QAAS,sBAAQ,IAAI,CAAC,WAAW,CAAC,UAAU,CAEvD;EACA;;;;;;EAMS,CAAC,cAAc,IAAI,cAAc;EAE1C;;;;;;EAMA,IAAa,OAAO;IAClB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO;EAC5B;;
|
|
1
|
+
{"version":3,"file":"Sse.js","names":[],"sources":["../../src/encoding/Sse.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import { type Pipeable } from "../Pipeable.ts";
|
|
2
|
+
import * as Schema from "../Schema.ts";
|
|
3
|
+
import type { GraphQLClientError } from "./GraphQLClientError.ts";
|
|
4
|
+
import type * as GraphQLMiddleware from "./GraphQLMiddleware.ts";
|
|
5
|
+
declare const TypeId = "~effect/graphql/GraphQL";
|
|
6
|
+
/**
|
|
7
|
+
* The three kinds of GraphQL operation.
|
|
8
|
+
*
|
|
9
|
+
* @stability experimental
|
|
10
|
+
* @category models
|
|
11
|
+
* @since 4.0.0
|
|
12
|
+
*/
|
|
13
|
+
export type Kind = "query" | "mutation" | "subscription";
|
|
14
|
+
/**
|
|
15
|
+
* An operation document split into the pieces needed to rename and alias it
|
|
16
|
+
* without a GraphQL parser. The generator emits one for every query and
|
|
17
|
+
* mutation.
|
|
18
|
+
*
|
|
19
|
+
* **Details**
|
|
20
|
+
*
|
|
21
|
+
* A `body` is a {@link DocumentTemplate.Parts} array: literal text at even
|
|
22
|
+
* indices and, at odd indices, the variable names and fragment names that
|
|
23
|
+
* would be renamed if the operation were repeated under a prefix. Joining the
|
|
24
|
+
* pieces gives the printed document, which is what the operation sends.
|
|
25
|
+
*
|
|
26
|
+
* A fragment whose `body` has a name in it is per-slice: it references a
|
|
27
|
+
* variable, directly or through a fragment it spreads. Every other fragment is
|
|
28
|
+
* shared.
|
|
29
|
+
*
|
|
30
|
+
* @stability experimental
|
|
31
|
+
* @category models
|
|
32
|
+
* @since 4.0.0
|
|
33
|
+
*/
|
|
34
|
+
export interface DocumentTemplate {
|
|
35
|
+
/** The variable definitions, in document order. */
|
|
36
|
+
readonly variables: ReadonlyArray<DocumentTemplate.Variable>;
|
|
37
|
+
/** The operation's directives, if it has any. */
|
|
38
|
+
readonly directives?: DocumentTemplate.Parts | undefined;
|
|
39
|
+
/** The root selections, in document order. */
|
|
40
|
+
readonly selections: ReadonlyArray<DocumentTemplate.Selection>;
|
|
41
|
+
/** The fragments the operation uses, in the order they follow it. */
|
|
42
|
+
readonly fragments: ReadonlyArray<DocumentTemplate.Fragment>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The pieces of a {@link DocumentTemplate}.
|
|
46
|
+
*
|
|
47
|
+
* @stability experimental
|
|
48
|
+
* @since 4.0.0
|
|
49
|
+
*/
|
|
50
|
+
export declare namespace DocumentTemplate {
|
|
51
|
+
/**
|
|
52
|
+
* Literal text at even indices and names to rename at odd indices.
|
|
53
|
+
*
|
|
54
|
+
* @stability experimental
|
|
55
|
+
* @category models
|
|
56
|
+
* @since 4.0.0
|
|
57
|
+
*/
|
|
58
|
+
type Parts = ReadonlyArray<string>;
|
|
59
|
+
/**
|
|
60
|
+
* A variable definition: `$name:` followed by `body`, the type, default
|
|
61
|
+
* value and directives as printed.
|
|
62
|
+
*
|
|
63
|
+
* @stability experimental
|
|
64
|
+
* @category models
|
|
65
|
+
* @since 4.0.0
|
|
66
|
+
*/
|
|
67
|
+
interface Variable {
|
|
68
|
+
readonly name: string;
|
|
69
|
+
readonly body: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A root selection. For a field, `body` is everything after its name and
|
|
73
|
+
* the response key is `alias ?? name`. A fragment spread or inline fragment
|
|
74
|
+
* has no `name`, and `body` is the whole selection.
|
|
75
|
+
*
|
|
76
|
+
* @stability experimental
|
|
77
|
+
* @category models
|
|
78
|
+
* @since 4.0.0
|
|
79
|
+
*/
|
|
80
|
+
interface Selection {
|
|
81
|
+
readonly alias?: string | undefined;
|
|
82
|
+
readonly name?: string | undefined;
|
|
83
|
+
readonly body: Parts;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* A fragment definition: `fragment` and `name`, followed by `body`, which
|
|
87
|
+
* starts at its type condition.
|
|
88
|
+
*
|
|
89
|
+
* @stability experimental
|
|
90
|
+
* @category models
|
|
91
|
+
* @since 4.0.0
|
|
92
|
+
*/
|
|
93
|
+
interface Fragment {
|
|
94
|
+
readonly name: string;
|
|
95
|
+
readonly body: Parts;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* A named GraphQL document with variable and result schemas and middleware.
|
|
100
|
+
* Variables are encoded before sending; results are decoded from `data`.
|
|
101
|
+
*
|
|
102
|
+
* @stability experimental
|
|
103
|
+
* @category models
|
|
104
|
+
* @since 4.0.0
|
|
105
|
+
*/
|
|
106
|
+
export interface Operation<out K extends Kind, out Name extends string, out Variables extends Schema.Top, out Result extends Schema.Top, out Middleware = never> extends Pipeable {
|
|
107
|
+
readonly [TypeId]: typeof TypeId;
|
|
108
|
+
readonly kind: K;
|
|
109
|
+
readonly name: Name;
|
|
110
|
+
/** The printed document, sent as-is. It is never parsed at runtime. */
|
|
111
|
+
readonly document: string;
|
|
112
|
+
/** The template the document was joined from, if it was given as one. */
|
|
113
|
+
readonly template: DocumentTemplate | undefined;
|
|
114
|
+
readonly variables: Variables;
|
|
115
|
+
readonly result: Result;
|
|
116
|
+
/** Middleware attached to this operation, outermost first. */
|
|
117
|
+
readonly middlewares: ReadonlyArray<GraphQLMiddleware.AnyService>;
|
|
118
|
+
readonly "~middleware"?: Middleware;
|
|
119
|
+
/**
|
|
120
|
+
* Returns a copy of this operation with `middleware` attached. Operation
|
|
121
|
+
* middleware runs inside any group middleware; within the operation,
|
|
122
|
+
* middleware run in the order they were attached.
|
|
123
|
+
*/
|
|
124
|
+
middleware<M extends GraphQLMiddleware.AnyService>(middleware: M): Operation<K, Name, Variables, Result, Middleware | M>;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Any operation, with its type parameters erased.
|
|
128
|
+
*
|
|
129
|
+
* @stability experimental
|
|
130
|
+
* @category utility types
|
|
131
|
+
* @since 4.0.0
|
|
132
|
+
*/
|
|
133
|
+
export type Any = Operation<Kind, string, Schema.Top, Schema.Top, any>;
|
|
134
|
+
/**
|
|
135
|
+
* Extracts the union of middleware attached to an operation.
|
|
136
|
+
*
|
|
137
|
+
* @stability experimental
|
|
138
|
+
* @category utility types
|
|
139
|
+
* @since 4.0.0
|
|
140
|
+
*/
|
|
141
|
+
export type Middleware<Op> = Op extends Operation<any, any, any, any, infer M> ? M : never;
|
|
142
|
+
/**
|
|
143
|
+
* The decoded variables type of an operation, which is what a client method
|
|
144
|
+
* takes.
|
|
145
|
+
*
|
|
146
|
+
* @stability experimental
|
|
147
|
+
* @category utility types
|
|
148
|
+
* @since 4.0.0
|
|
149
|
+
*/
|
|
150
|
+
export type Variables<Op extends Any> = Op["variables"]["Type"];
|
|
151
|
+
/**
|
|
152
|
+
* The decoded result type of an operation.
|
|
153
|
+
*
|
|
154
|
+
* @stability experimental
|
|
155
|
+
* @category utility types
|
|
156
|
+
* @since 4.0.0
|
|
157
|
+
*/
|
|
158
|
+
export type Result<Op extends Any> = Op["result"]["Type"];
|
|
159
|
+
/**
|
|
160
|
+
* The error type of a client method for an operation: `GraphQLClientError`
|
|
161
|
+
* plus the errors of every attached middleware.
|
|
162
|
+
*
|
|
163
|
+
* @stability experimental
|
|
164
|
+
* @category utility types
|
|
165
|
+
* @since 4.0.0
|
|
166
|
+
*/
|
|
167
|
+
export type Error<Op extends Any> = GraphQLClientError | GraphQLMiddleware.Error<Middleware<Op>>;
|
|
168
|
+
/**
|
|
169
|
+
* The services a client method for an operation requires: the Schemas'
|
|
170
|
+
* encoding and decoding services plus the requirements of every attached
|
|
171
|
+
* middleware.
|
|
172
|
+
*
|
|
173
|
+
* @stability experimental
|
|
174
|
+
* @category utility types
|
|
175
|
+
* @since 4.0.0
|
|
176
|
+
*/
|
|
177
|
+
export type Services<Op extends Any> = Op["variables"]["EncodingServices"] | Op["result"]["DecodingServices"] | GraphQLMiddleware.Requires<Middleware<Op>>;
|
|
178
|
+
/**
|
|
179
|
+
* The type of an operation after attaching middleware `M`.
|
|
180
|
+
*
|
|
181
|
+
* @stability experimental
|
|
182
|
+
* @category utility types
|
|
183
|
+
* @since 4.0.0
|
|
184
|
+
*/
|
|
185
|
+
export type AddMiddleware<Op, M> = Op extends Operation<infer K, infer N, infer V, infer R, infer Old> ? Operation<K, N, V, R, Old | M> : never;
|
|
186
|
+
/**
|
|
187
|
+
* Tests whether a value is an {@link Operation}.
|
|
188
|
+
*
|
|
189
|
+
* @stability experimental
|
|
190
|
+
* @category guards
|
|
191
|
+
* @since 4.0.0
|
|
192
|
+
*/
|
|
193
|
+
export declare const isOperation: (u: unknown) => u is Any;
|
|
194
|
+
/**
|
|
195
|
+
* Defines a query. The client accepts decoded variables and encodes them
|
|
196
|
+
* through their Schema, including custom scalar codecs. `variables` accepts
|
|
197
|
+
* struct fields or a Schema; omit it for an operation without variables.
|
|
198
|
+
* `document` accepts printed text or a {@link DocumentTemplate}, joined once
|
|
199
|
+
* when the operation is defined.
|
|
200
|
+
*
|
|
201
|
+
* **Example** (A query with variables)
|
|
202
|
+
*
|
|
203
|
+
* ```ts import.meta.vitest
|
|
204
|
+
* import { Schema } from "effect"
|
|
205
|
+
* import { GraphQL } from "effect/graphql"
|
|
206
|
+
*
|
|
207
|
+
* const RepoIssues = GraphQL.query("RepoIssues", {
|
|
208
|
+
* document: "query RepoIssues($owner:String!,$name:String!){repository(owner:$owner,name:$name){issues(first:10){nodes{number title}}}}",
|
|
209
|
+
* variables: { owner: Schema.String, name: Schema.String },
|
|
210
|
+
* result: Schema.Struct({
|
|
211
|
+
* repository: Schema.NullOr(Schema.Struct({
|
|
212
|
+
* issues: Schema.Struct({
|
|
213
|
+
* nodes: Schema.NullOr(Schema.Array(Schema.NullOr(Schema.Struct({ number: Schema.Int, title: Schema.String }))))
|
|
214
|
+
* })
|
|
215
|
+
* }))
|
|
216
|
+
* })
|
|
217
|
+
* })
|
|
218
|
+
*
|
|
219
|
+
* RepoIssues.kind // => "query"
|
|
220
|
+
* RepoIssues.name // => "RepoIssues"
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* @stability experimental
|
|
224
|
+
* @category constructors
|
|
225
|
+
* @since 4.0.0
|
|
226
|
+
*/
|
|
227
|
+
export declare const query: <const Name extends string, Result extends Schema.Top, Variables extends Schema.Top | Schema.Struct.Fields = Schema.Struct<{}>>(name: Name, options: {
|
|
228
|
+
readonly document: string | DocumentTemplate;
|
|
229
|
+
readonly variables?: Variables | undefined;
|
|
230
|
+
readonly result: Result;
|
|
231
|
+
}) => Operation<"query", Name, Variables extends Schema.Struct.Fields ? Schema.Struct<Variables> : Variables, Result>;
|
|
232
|
+
/**
|
|
233
|
+
* Defines a mutation. Same shape as {@link query}.
|
|
234
|
+
*
|
|
235
|
+
* **Example** (A mutation)
|
|
236
|
+
*
|
|
237
|
+
* ```ts import.meta.vitest
|
|
238
|
+
* import { Schema } from "effect"
|
|
239
|
+
* import { GraphQL } from "effect/graphql"
|
|
240
|
+
*
|
|
241
|
+
* const AddComment = GraphQL.mutation("AddComment", {
|
|
242
|
+
* document: "mutation AddComment($subjectId:ID!,$body:String!){addComment(input:{subjectId:$subjectId,body:$body}){clientMutationId}}",
|
|
243
|
+
* variables: { subjectId: Schema.String, body: Schema.String },
|
|
244
|
+
* result: Schema.Struct({ addComment: Schema.NullOr(Schema.Struct({ clientMutationId: Schema.NullOr(Schema.String) })) })
|
|
245
|
+
* })
|
|
246
|
+
*
|
|
247
|
+
* AddComment.kind // => "mutation"
|
|
248
|
+
* ```
|
|
249
|
+
*
|
|
250
|
+
* @stability experimental
|
|
251
|
+
* @category constructors
|
|
252
|
+
* @since 4.0.0
|
|
253
|
+
*/
|
|
254
|
+
export declare const mutation: <const Name extends string, Result extends Schema.Top, Variables extends Schema.Top | Schema.Struct.Fields = Schema.Struct<{}>>(name: Name, options: {
|
|
255
|
+
readonly document: string | DocumentTemplate;
|
|
256
|
+
readonly variables?: Variables | undefined;
|
|
257
|
+
readonly result: Result;
|
|
258
|
+
}) => Operation<"mutation", Name, Variables extends Schema.Struct.Fields ? Schema.Struct<Variables> : Variables, Result>;
|
|
259
|
+
/**
|
|
260
|
+
* Defines a subscription. The client method for a subscription returns a
|
|
261
|
+
* `Stream` of decoded events instead of an `Effect`.
|
|
262
|
+
*
|
|
263
|
+
* **Example** (A subscription)
|
|
264
|
+
*
|
|
265
|
+
* ```ts import.meta.vitest
|
|
266
|
+
* import { Schema } from "effect"
|
|
267
|
+
* import { GraphQL } from "effect/graphql"
|
|
268
|
+
*
|
|
269
|
+
* const IssueUpdated = GraphQL.subscription("IssueUpdated", {
|
|
270
|
+
* document: "subscription IssueUpdated($id:ID!){issueUpdated(id:$id){title}}",
|
|
271
|
+
* variables: { id: Schema.String },
|
|
272
|
+
* result: Schema.Struct({ issueUpdated: Schema.Struct({ title: Schema.String }) })
|
|
273
|
+
* })
|
|
274
|
+
*
|
|
275
|
+
* IssueUpdated.kind // => "subscription"
|
|
276
|
+
* ```
|
|
277
|
+
*
|
|
278
|
+
* @stability experimental
|
|
279
|
+
* @category constructors
|
|
280
|
+
* @since 4.0.0
|
|
281
|
+
*/
|
|
282
|
+
export declare const subscription: <const Name extends string, Result extends Schema.Top, Variables extends Schema.Top | Schema.Struct.Fields = Schema.Struct<{}>>(name: Name, options: {
|
|
283
|
+
readonly document: string | DocumentTemplate;
|
|
284
|
+
readonly variables?: Variables | undefined;
|
|
285
|
+
readonly result: Result;
|
|
286
|
+
}) => Operation<"subscription", Name, Variables extends Schema.Struct.Fields ? Schema.Struct<Variables> : Variables, Result>;
|
|
287
|
+
/**
|
|
288
|
+
* The `__typename` Schema for the "every other type" member of a generated
|
|
289
|
+
* union.
|
|
290
|
+
*
|
|
291
|
+
* **Details**
|
|
292
|
+
*
|
|
293
|
+
* The type excludes selected names, allowing `__typename` narrowing. The
|
|
294
|
+
* decoder accepts any other string, including types added by the server
|
|
295
|
+
* later. Selected names are rejected so malformed selected results cannot
|
|
296
|
+
* fall through to the catch-all member.
|
|
297
|
+
*
|
|
298
|
+
* **Example** (The catch-all member of a union)
|
|
299
|
+
*
|
|
300
|
+
* ```ts import.meta.vitest
|
|
301
|
+
* import { Schema } from "effect"
|
|
302
|
+
* import { GraphQL } from "effect/graphql"
|
|
303
|
+
*
|
|
304
|
+
* type Node = "Issue" | "PullRequest" | "Repository"
|
|
305
|
+
*
|
|
306
|
+
* const OtherNode = Schema.Struct({
|
|
307
|
+
* __typename: GraphQL.otherTypename<Node>()(["Issue"]),
|
|
308
|
+
* id: Schema.String
|
|
309
|
+
* })
|
|
310
|
+
*
|
|
311
|
+
* Schema.decodeUnknownSync(OtherNode)({ __typename: "PullRequest", id: "1" }).__typename // => "PullRequest"
|
|
312
|
+
* Schema.decodeUnknownSync(OtherNode)({ __typename: "AddedLater", id: "2" }).__typename // => "AddedLater"
|
|
313
|
+
* Schema.is(OtherNode)({ __typename: "Issue", id: "3" }) // => false
|
|
314
|
+
* ```
|
|
315
|
+
*
|
|
316
|
+
* @stability experimental
|
|
317
|
+
* @category schemas
|
|
318
|
+
* @since 4.0.0
|
|
319
|
+
*/
|
|
320
|
+
export declare const otherTypename: <All extends string>() => <const Selected extends ReadonlyArray<All>>(selected: Selected) => Schema.refine<Exclude<All, Selected[number]>, Schema.String>;
|
|
321
|
+
/**
|
|
322
|
+
* The Schema for a GraphQL enum in a result position.
|
|
323
|
+
*
|
|
324
|
+
* **Details**
|
|
325
|
+
*
|
|
326
|
+
* It is typed as the declared literals but decodes any string, so a value the
|
|
327
|
+
* server adds later does not fail the whole query. Inputs stay strict: the
|
|
328
|
+
* generator uses `Schema.Literals` for enums in variables and input objects.
|
|
329
|
+
*
|
|
330
|
+
* **Example** (An enum that tolerates new values)
|
|
331
|
+
*
|
|
332
|
+
* ```ts import.meta.vitest
|
|
333
|
+
* import { Schema } from "effect"
|
|
334
|
+
* import { GraphQL } from "effect/graphql"
|
|
335
|
+
*
|
|
336
|
+
* const IssueState = GraphQL.enumLiterals(["OPEN", "CLOSED"])
|
|
337
|
+
*
|
|
338
|
+
* Schema.decodeUnknownSync(IssueState)("OPEN") // => "OPEN"
|
|
339
|
+
* Schema.decodeUnknownSync(IssueState)("MERGED") // => "MERGED"
|
|
340
|
+
* Schema.is(IssueState)(42) // => false
|
|
341
|
+
* ```
|
|
342
|
+
*
|
|
343
|
+
* @stability experimental
|
|
344
|
+
* @category schemas
|
|
345
|
+
* @since 4.0.0
|
|
346
|
+
*/
|
|
347
|
+
export declare const enumLiterals: <const Literals extends ReadonlyArray<string>>(literals: Literals) => Schema.refine<Literals[number], Schema.String>;
|
|
348
|
+
export {};
|
|
349
|
+
//# sourceMappingURL=GraphQL.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphQL.d.ts","sourceRoot":"","sources":["../../src/graphql/GraphQL.ts"],"names":[],"mappings":"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"}
|