effect 4.0.5 → 4.0.7
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/ai-docs/package.json +1 -1
- package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
- package/ai-docs/tsconfig.json +3 -1
- package/dist/Arbitrary.d.ts +10 -2
- package/dist/Arbitrary.d.ts.map +1 -1
- package/dist/Arbitrary.js +2 -1
- package/dist/Arbitrary.js.map +1 -1
- package/dist/Array.d.ts +117 -52
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +41 -20
- package/dist/Array.js.map +1 -1
- package/dist/Bytes.d.ts +79 -0
- package/dist/Bytes.d.ts.map +1 -0
- package/dist/Bytes.js +109 -0
- package/dist/Bytes.js.map +1 -0
- package/dist/Channel.d.ts +181 -13
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +144 -34
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +39 -21
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +26 -17
- package/dist/Chunk.js.map +1 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +8 -3
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +2 -1
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Cron.d.ts +2 -2
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +6 -3
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +54 -235
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +56 -16
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +488 -164
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +204 -38
- package/dist/Effect.js.map +1 -1
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +8 -1
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +2 -1
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +12 -8
- package/dist/Equivalence.js.map +1 -1
- package/dist/Exit.d.ts +27 -12
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +8 -3
- package/dist/Exit.js.map +1 -1
- package/dist/FiberHandle.d.ts +2 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +9 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +2 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +5 -2
- package/dist/FiberMap.js.map +1 -1
- package/dist/FileSystem.d.ts +5 -0
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +3 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +27 -13
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js.map +1 -1
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +4 -1
- package/dist/Hash.js.map +1 -1
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +18 -17
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.js +4 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonSchema.d.ts +9 -3
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +32 -43
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +2 -2
- package/dist/Layer.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +19 -1
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +62 -6
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +135 -3
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +197 -25
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableList.d.ts +5 -2
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +7 -5
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +7 -0
- package/dist/MutableRef.js.map +1 -1
- package/dist/Number.js +2 -2
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +2 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +22 -12
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +8 -1
- package/dist/Path.js.map +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +77 -27
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +17 -13
- package/dist/PubSub.js.map +1 -1
- package/dist/Queue.d.ts +4 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +4 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +1 -1
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +12 -7
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +9 -6
- package/dist/RcMap.js.map +1 -1
- package/dist/Record.d.ts +51 -0
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +17 -0
- package/dist/Record.js.map +1 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +8 -0
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +5 -4
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +5 -4
- package/dist/References.js.map +1 -1
- package/dist/RequestResolver.d.ts +31 -1
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +39 -4
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Runtime.d.ts +3 -3
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +18 -15
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +1 -1
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +408 -340
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +370 -47
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +9 -7
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +38 -25
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +8 -3
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +15 -5
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +4 -4
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +29 -51
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +48 -22
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +75 -11
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +41 -13
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +5 -2
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +10 -3
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +12 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +5 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +10 -7
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +9 -5
- package/dist/ScopedCache.js.map +1 -1
- package/dist/SemVer.d.ts +1196 -0
- package/dist/SemVer.d.ts.map +1 -0
- package/dist/SemVer.js +756 -0
- package/dist/SemVer.js.map +1 -0
- package/dist/SemVerRange.d.ts +559 -0
- package/dist/SemVerRange.d.ts.map +1 -0
- package/dist/SemVerRange.js +551 -0
- package/dist/SemVerRange.js.map +1 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +54 -35
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +13 -4
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -8
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +167 -70
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +7 -2
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +11 -6
- package/dist/String.js.map +1 -1
- package/dist/TextDiff.d.ts +399 -0
- package/dist/TextDiff.d.ts.map +1 -0
- package/dist/TextDiff.js +634 -0
- package/dist/TextDiff.js.map +1 -0
- package/dist/Tracer.d.ts +11 -1
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +6 -1
- package/dist/Tracer.js.map +1 -1
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js.map +1 -1
- package/dist/ai/AiError.d.ts +68 -4
- package/dist/ai/AiError.d.ts.map +1 -1
- package/dist/ai/AiError.js +50 -2
- package/dist/ai/AiError.js.map +1 -1
- package/dist/ai/Chat.d.ts +1 -2
- package/dist/ai/Chat.d.ts.map +1 -1
- package/dist/ai/Chat.js +6 -3
- package/dist/ai/Chat.js.map +1 -1
- package/dist/ai/Decision.d.ts +46 -1
- package/dist/ai/Decision.d.ts.map +1 -1
- package/dist/ai/Decision.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +129 -11
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +182 -94
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/EmbeddingModel.d.ts +10 -0
- package/dist/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/ai/EmbeddingModel.js +21 -7
- package/dist/ai/EmbeddingModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +9 -0
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpClient.d.ts +289 -0
- package/dist/ai/McpClient.d.ts.map +1 -0
- package/dist/ai/McpClient.js +819 -0
- package/dist/ai/McpClient.js.map +1 -0
- package/dist/ai/McpClientError.d.ts +254 -0
- package/dist/ai/McpClientError.d.ts.map +1 -0
- package/dist/ai/McpClientError.js +260 -0
- package/dist/ai/McpClientError.js.map +1 -0
- package/dist/ai/McpProtocol.d.ts +2 -2
- package/dist/ai/McpProtocol.d.ts.map +1 -1
- package/dist/ai/McpSchema.d.ts +258 -125
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +94 -24
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +46 -37
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Prompt.d.ts +74 -20
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +61 -1
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +160 -3
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +39 -37
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Tool.d.ts +36 -4
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js +5 -2
- package/dist/ai/Tool.js.map +1 -1
- package/dist/ai/Toolkit.d.ts +48 -1
- package/dist/ai/Toolkit.d.ts.map +1 -1
- package/dist/ai/Toolkit.js +73 -13
- package/dist/ai/Toolkit.js.map +1 -1
- package/dist/ai/index.d.ts +10 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +10 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +16 -2
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +3 -4
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
- package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
- package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
- package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
- package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
- package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
- package/dist/cli/Argument.d.ts +15 -0
- package/dist/cli/Argument.d.ts.map +1 -1
- package/dist/cli/Argument.js +5 -0
- package/dist/cli/Argument.js.map +1 -1
- package/dist/cli/CliError.d.ts +120 -2
- package/dist/cli/CliError.d.ts.map +1 -1
- package/dist/cli/CliError.js +106 -5
- package/dist/cli/CliError.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +155 -6
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +62 -6
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts +310 -18
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +164 -33
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +63 -0
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +49 -9
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/Flag.d.ts +130 -0
- package/dist/cli/Flag.d.ts.map +1 -1
- package/dist/cli/Flag.js +61 -0
- package/dist/cli/Flag.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +14 -6
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Param.d.ts +116 -0
- package/dist/cli/Param.d.ts.map +1 -1
- package/dist/cli/Param.js +77 -2
- package/dist/cli/Param.js.map +1 -1
- package/dist/cli/TerminalCapabilities.d.ts +85 -0
- package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
- package/dist/cli/TerminalCapabilities.js +124 -0
- package/dist/cli/TerminalCapabilities.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/internal/command.d.ts +2 -1
- package/dist/cli/internal/command.d.ts.map +1 -1
- package/dist/cli/internal/command.js +5 -2
- package/dist/cli/internal/command.js.map +1 -1
- package/dist/cli/internal/completions/bash.js +77 -30
- package/dist/cli/internal/completions/bash.js.map +1 -1
- package/dist/cli/internal/completions/descriptor.js +9 -1
- package/dist/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/cli/internal/completions/fish.js +10 -8
- package/dist/cli/internal/completions/fish.js.map +1 -1
- package/dist/cli/internal/completions/powershell.js +18 -9
- package/dist/cli/internal/completions/powershell.js.map +1 -1
- package/dist/cli/internal/completions/zsh.js +8 -5
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/formatter.d.ts +2 -0
- package/dist/cli/internal/formatter.d.ts.map +1 -0
- package/dist/cli/internal/formatter.js +15 -0
- package/dist/cli/internal/formatter.js.map +1 -0
- package/dist/cli/internal/lexer.js +24 -10
- package/dist/cli/internal/lexer.js.map +1 -1
- package/dist/cli/internal/parser.js +24 -12
- package/dist/cli/internal/parser.js.map +1 -1
- package/dist/cluster/ClusterCron.d.ts +29 -1
- package/dist/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/cluster/ClusterCron.js +64 -32
- package/dist/cluster/ClusterCron.js.map +1 -1
- package/dist/cluster/ClusterMetrics.d.ts +143 -7
- package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
- package/dist/cluster/ClusterMetrics.js +151 -7
- package/dist/cluster/ClusterMetrics.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +82 -21
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/Entity.d.ts +2 -0
- package/dist/cluster/Entity.d.ts.map +1 -1
- package/dist/cluster/Entity.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +44 -45
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +6 -7
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +54 -15
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts +1 -0
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +155 -52
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/ShardingConfig.d.ts +30 -0
- package/dist/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/cluster/ShardingConfig.js +4 -0
- package/dist/cluster/ShardingConfig.js.map +1 -1
- package/dist/cluster/Snowflake.d.ts.map +1 -1
- package/dist/cluster/Snowflake.js +3 -7
- package/dist/cluster/Snowflake.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +40 -50
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +97 -43
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +119 -28
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/devtools/DevTools.d.ts +3 -2
- package/dist/devtools/DevTools.d.ts.map +1 -1
- package/dist/devtools/DevTools.js +3 -2
- package/dist/devtools/DevTools.js.map +1 -1
- package/dist/devtools/DevToolsClient.d.ts +11 -0
- package/dist/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/devtools/DevToolsClient.js +33 -4
- package/dist/devtools/DevToolsClient.js.map +1 -1
- package/dist/encoding/Base64.js +36 -0
- package/dist/encoding/Base64.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts +29 -0
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +29 -0
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Ini.d.ts.map +1 -1
- package/dist/encoding/Ini.js +3 -0
- package/dist/encoding/Ini.js.map +1 -1
- package/dist/encoding/JsonArray.d.ts +270 -0
- package/dist/encoding/JsonArray.d.ts.map +1 -0
- package/dist/encoding/JsonArray.js +691 -0
- package/dist/encoding/JsonArray.js.map +1 -0
- package/dist/encoding/Ndjson.d.ts +43 -4
- package/dist/encoding/Ndjson.d.ts.map +1 -1
- package/dist/encoding/Ndjson.js +169 -18
- package/dist/encoding/Ndjson.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts +9 -1
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +12 -19
- package/dist/encoding/SchemaBinary.js.map +1 -1
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +3 -3
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/encoding/Tar.d.ts +309 -0
- package/dist/encoding/Tar.d.ts.map +1 -0
- package/dist/encoding/Tar.js +1182 -0
- package/dist/encoding/Tar.js.map +1 -0
- package/dist/encoding/Toml.d.ts.map +1 -1
- package/dist/encoding/Toml.js +24 -19
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Xml.d.ts +464 -0
- package/dist/encoding/Xml.d.ts.map +1 -0
- package/dist/encoding/Xml.js +1619 -0
- package/dist/encoding/Xml.js.map +1 -0
- package/dist/encoding/Yaml.d.ts +6 -2
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +97 -34
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/Zip.d.ts +413 -0
- package/dist/encoding/Zip.d.ts.map +1 -0
- package/dist/encoding/Zip.js +1255 -0
- package/dist/encoding/Zip.js.map +1 -0
- package/dist/encoding/index.d.ts +20 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +20 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventJournal.d.ts +90 -5
- package/dist/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/eventlog/EventJournal.js +488 -228
- package/dist/eventlog/EventJournal.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +180 -12
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +394 -146
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogEncryption.d.ts +36 -30
- package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/eventlog/EventLogEncryption.js +97 -38
- package/dist/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/eventlog/EventLogMessage.d.ts +74 -34
- package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/eventlog/EventLogMessage.js +45 -11
- package/dist/eventlog/EventLogMessage.js.map +1 -1
- package/dist/eventlog/EventLogRemote.d.ts +45 -8
- package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/eventlog/EventLogRemote.js +51 -14
- package/dist/eventlog/EventLogRemote.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +46 -3
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +119 -19
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js +97 -70
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
- package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
- package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/EventRow.d.ts +288 -0
- package/dist/eventlog/EventRow.d.ts.map +1 -0
- package/dist/eventlog/EventRow.js +435 -0
- package/dist/eventlog/EventRow.js.map +1 -0
- package/dist/eventlog/SqlEventJournal.d.ts +18 -18
- package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +417 -169
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
- package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
- package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/index.d.ts +5 -0
- package/dist/eventlog/index.d.ts.map +1 -1
- package/dist/eventlog/index.js +5 -0
- package/dist/eventlog/index.js.map +1 -1
- package/dist/eventlog/internal/conflicts.d.ts +46 -0
- package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
- package/dist/eventlog/internal/conflicts.js +89 -0
- package/dist/eventlog/internal/conflicts.js.map +1 -0
- package/dist/graphql/GraphQLClientError.d.ts +2 -2
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
- package/dist/graphql/GraphQLClientError.js +4 -18
- package/dist/graphql/GraphQLClientError.js.map +1 -1
- package/dist/graphql/GraphQLProtocol.d.ts +12 -9
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +4 -3
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/graphql/GraphQLResolver.d.ts +2 -0
- package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
- package/dist/graphql/GraphQLResolver.js +74 -32
- package/dist/graphql/GraphQLResolver.js.map +1 -1
- package/dist/http/Cookies.d.ts.map +1 -1
- package/dist/http/Cookies.js +10 -9
- package/dist/http/Cookies.js.map +1 -1
- package/dist/http/FetchHttpClient.d.ts +8 -1
- package/dist/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/http/FetchHttpClient.js +51 -4
- package/dist/http/FetchHttpClient.js.map +1 -1
- package/dist/http/FindMyWay/internal/router.js +10 -0
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/Headers.d.ts +227 -0
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +261 -0
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +516 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +286 -23
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientError.d.ts +8 -1
- package/dist/http/HttpClientError.d.ts.map +1 -1
- package/dist/http/HttpClientError.js +37 -1
- package/dist/http/HttpClientError.js.map +1 -1
- package/dist/http/HttpClientRequest.d.ts +127 -3
- package/dist/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/http/HttpClientRequest.js +45 -3
- package/dist/http/HttpClientRequest.js.map +1 -1
- package/dist/http/HttpClientResponse.d.ts +53 -0
- package/dist/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/http/HttpClientResponse.js +47 -0
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpEffect.d.ts +6 -2
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +21 -17
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpIncomingMessage.d.ts +2 -1
- package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/http/HttpIncomingMessage.js +3 -23
- package/dist/http/HttpIncomingMessage.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +119 -2
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +173 -29
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +9 -3
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerError.d.ts +5 -2
- package/dist/http/HttpServerError.d.ts.map +1 -1
- package/dist/http/HttpServerError.js +7 -5
- package/dist/http/HttpServerError.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts +30 -5
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +109 -20
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts +17 -8
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +37 -21
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpStaticServer.d.ts +0 -12
- package/dist/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +65 -24
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
- package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/contentType.js +89 -7
- package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
- package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/headers.js +4 -12
- package/dist/http/MultipartParser/internal/headers.js.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
- package/dist/http/MultipartParser/internal/multipart.js +6 -27
- package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
- package/dist/http/Url.d.ts.map +1 -1
- package/dist/http/Url.js +6 -1
- package/dist/http/Url.js.map +1 -1
- package/dist/http/UrlParams.d.ts +3 -1
- package/dist/http/UrlParams.d.ts.map +1 -1
- package/dist/http/UrlParams.js +4 -2
- package/dist/http/UrlParams.js.map +1 -1
- package/dist/http/internal/compression.js +4 -5
- package/dist/http/internal/compression.js.map +1 -1
- package/dist/http/internal/decompression.js +20 -11
- package/dist/http/internal/decompression.js.map +1 -1
- package/dist/http/internal/httpBody.js +8 -1
- package/dist/http/internal/httpBody.js.map +1 -1
- package/dist/http/internal/lazyStream.d.ts +2 -0
- package/dist/http/internal/lazyStream.d.ts.map +1 -0
- package/dist/http/internal/lazyStream.js +18 -0
- package/dist/http/internal/lazyStream.js.map +1 -0
- package/dist/http/internal/requestState.d.ts +2 -0
- package/dist/http/internal/requestState.d.ts.map +1 -0
- package/dist/http/internal/requestState.js +28 -0
- package/dist/http/internal/requestState.js.map +1 -0
- package/dist/http/internal/urlParams.js +25 -0
- package/dist/http/internal/urlParams.js.map +1 -1
- package/dist/http/internal/webResponse.d.ts +2 -0
- package/dist/http/internal/webResponse.d.ts.map +1 -0
- package/dist/http/internal/webResponse.js +12 -0
- package/dist/http/internal/webResponse.js.map +1 -0
- package/dist/http-api/HttpApi.d.ts +3 -6
- package/dist/http-api/HttpApi.d.ts.map +1 -1
- package/dist/http-api/HttpApi.js +4 -7
- package/dist/http-api/HttpApi.js.map +1 -1
- package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
- package/dist/http-api/HttpApiBuilder.js +142 -23
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +99 -4
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js +218 -60
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiEndpoint.d.ts +72 -29
- package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/http-api/HttpApiEndpoint.js +140 -14
- package/dist/http-api/HttpApiEndpoint.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +58 -0
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +38 -12
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiScalar.d.ts +2 -1
- package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
- package/dist/http-api/HttpApiScalar.js +6 -3
- package/dist/http-api/HttpApiScalar.js.map +1 -1
- package/dist/http-api/HttpApiSchema.d.ts +242 -13
- package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
- package/dist/http-api/HttpApiSchema.js +149 -5
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/http-api/HttpApiSwagger.d.ts +5 -0
- package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
- package/dist/http-api/HttpApiSwagger.js +14 -4
- package/dist/http-api/HttpApiSwagger.js.map +1 -1
- package/dist/http-api/HttpApiTest.d.ts +13 -2
- package/dist/http-api/HttpApiTest.d.ts.map +1 -1
- package/dist/http-api/HttpApiTest.js +33 -11
- package/dist/http-api/HttpApiTest.js.map +1 -1
- package/dist/http-api/OpenApi.d.ts +17 -3
- package/dist/http-api/OpenApi.d.ts.map +1 -1
- package/dist/http-api/OpenApi.js +81 -47
- package/dist/http-api/OpenApi.js.map +1 -1
- package/dist/http-api/internal/path.js +35 -10
- package/dist/http-api/internal/path.js.map +1 -1
- package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
- package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
- package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
- package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/runner.d.ts.map +1 -1
- package/dist/internal/arbitrary/runner.js +120 -44
- package/dist/internal/arbitrary/runner.js.map +1 -1
- package/dist/internal/core.js +3 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +19 -7
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +106 -87
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js +14 -0
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/hashMap.js +2 -2
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hydration.d.ts +2 -0
- package/dist/internal/hydration.d.ts.map +1 -0
- package/dist/internal/hydration.js +15 -0
- package/dist/internal/hydration.js.map +1 -0
- package/dist/internal/inflate.d.ts +2 -0
- package/dist/internal/inflate.d.ts.map +1 -0
- package/dist/internal/inflate.js +680 -0
- package/dist/internal/inflate.js.map +1 -0
- package/dist/internal/jsonSchema.d.ts +2 -0
- package/dist/internal/jsonSchema.d.ts.map +1 -0
- package/dist/internal/jsonSchema.js +28 -0
- package/dist/internal/jsonSchema.js.map +1 -0
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/record.js +6 -0
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/request.js +20 -7
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schedule.js +17 -22
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/compilerRegistry.js +4 -1
- package/dist/internal/schema/compilerRegistry.js.map +1 -1
- package/dist/internal/schema/content.d.ts +2 -0
- package/dist/internal/schema/content.d.ts.map +1 -0
- package/dist/internal/schema/content.js +13 -0
- package/dist/internal/schema/content.js.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +253 -255
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +2 -1
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/interpreter.js +51 -36
- package/dist/internal/schema/interpreter.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +42 -35
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +10 -5
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.js +99 -17
- package/dist/internal/schema/toCodec.js.map +1 -1
- package/dist/internal/schema/toFormatter.js +5 -5
- package/dist/internal/schema/toFormatter.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +257 -170
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +107 -129
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/sql.d.ts +2 -0
- package/dist/internal/sql.d.ts.map +1 -0
- package/dist/internal/sql.js +13 -0
- package/dist/internal/sql.js.map +1 -0
- package/dist/internal/trie.js +1 -3
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/uuid.js +7 -3
- package/dist/internal/uuid.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +2 -8
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +5 -12
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +5 -3
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/OtlpProxy.d.ts +154 -0
- package/dist/observability/OtlpProxy.d.ts.map +1 -0
- package/dist/observability/OtlpProxy.js +235 -0
- package/dist/observability/OtlpProxy.js.map +1 -0
- package/dist/observability/OtlpResource.d.ts +3 -1
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +11 -4
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpSerialization.d.ts +5 -0
- package/dist/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/observability/OtlpSerialization.js +14 -3
- package/dist/observability/OtlpSerialization.js.map +1 -1
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +4 -0
- package/dist/observability/OtlpTracer.js.map +1 -1
- package/dist/observability/index.d.ts +5 -0
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/internal/protobuf.d.ts +0 -9
- package/dist/observability/internal/protobuf.d.ts.map +1 -1
- package/dist/observability/internal/protobuf.js +2 -10
- package/dist/observability/internal/protobuf.js.map +1 -1
- package/dist/persistence/CircuitBreaker.d.ts +897 -0
- package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
- package/dist/persistence/CircuitBreaker.js +1165 -0
- package/dist/persistence/CircuitBreaker.js.map +1 -0
- package/dist/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/persistence/PersistedCache.js +1 -1
- package/dist/persistence/PersistedCache.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +6 -2
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +162 -84
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/persistence/Persistence.d.ts +28 -0
- package/dist/persistence/Persistence.d.ts.map +1 -1
- package/dist/persistence/Persistence.js +36 -8
- package/dist/persistence/Persistence.js.map +1 -1
- package/dist/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/persistence/RateLimiter.js +8 -12
- package/dist/persistence/RateLimiter.js.map +1 -1
- package/dist/persistence/Redis.d.ts +78 -2
- package/dist/persistence/Redis.d.ts.map +1 -1
- package/dist/persistence/Redis.js +62 -7
- package/dist/persistence/Redis.js.map +1 -1
- package/dist/persistence/UserDirectories.d.ts +129 -0
- package/dist/persistence/UserDirectories.d.ts.map +1 -0
- package/dist/persistence/UserDirectories.js +178 -0
- package/dist/persistence/UserDirectories.js.map +1 -0
- package/dist/persistence/index.d.ts +10 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +10 -0
- package/dist/persistence/index.js.map +1 -1
- package/dist/process/ChildProcess.d.ts +32 -5
- package/dist/process/ChildProcess.d.ts.map +1 -1
- package/dist/process/ChildProcess.js.map +1 -1
- package/dist/process/ChildProcessSpawner.d.ts +30 -0
- package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/process/ChildProcessSpawner.js +5 -2
- package/dist/process/ChildProcessSpawner.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/reactivity/AsyncResult.js +1 -1
- package/dist/reactivity/AsyncResult.js.map +1 -1
- package/dist/reactivity/Atom.d.ts +69 -30
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +40 -15
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomHttpApi.d.ts +5 -5
- package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/reactivity/AtomHttpApi.js +1 -1
- package/dist/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/reactivity/AtomRegistry.d.ts +2 -2
- package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.js +44 -9
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/reactivity/AtomRpc.d.ts +3 -3
- package/dist/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/reactivity/AtomRpc.js +1 -1
- package/dist/reactivity/AtomRpc.js.map +1 -1
- package/dist/reactivity/Hydration.d.ts.map +1 -1
- package/dist/reactivity/Hydration.js +46 -12
- package/dist/reactivity/Hydration.js.map +1 -1
- package/dist/reactivity/Reactivity.d.ts +71 -7
- package/dist/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/reactivity/Reactivity.js +21 -12
- package/dist/reactivity/Reactivity.js.map +1 -1
- package/dist/rpc/Rpc.d.ts +18 -0
- package/dist/rpc/Rpc.d.ts.map +1 -1
- package/dist/rpc/Rpc.js +20 -0
- package/dist/rpc/Rpc.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +26 -2
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +198 -61
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcSerialization.d.ts +29 -0
- package/dist/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/rpc/RpcSerialization.js +41 -13
- package/dist/rpc/RpcSerialization.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +20 -19
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/RpcTest.d.ts +1 -0
- package/dist/rpc/RpcTest.d.ts.map +1 -1
- package/dist/rpc/RpcTest.js +1 -0
- package/dist/rpc/RpcTest.js.map +1 -1
- package/dist/schema/Model.d.ts +1 -1
- package/dist/schema/VariantSchema.d.ts +22 -3
- package/dist/schema/VariantSchema.d.ts.map +1 -1
- package/dist/schema/VariantSchema.js +32 -18
- package/dist/schema/VariantSchema.js.map +1 -1
- package/dist/socket/Socket.d.ts +23 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +36 -3
- package/dist/socket/Socket.js.map +1 -1
- package/dist/sql/Migrator.d.ts +2 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +21 -6
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +148 -5
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +155 -27
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/SqlResolver.d.ts +13 -0
- package/dist/sql/SqlResolver.d.ts.map +1 -1
- package/dist/sql/SqlResolver.js +27 -4
- package/dist/sql/SqlResolver.js.map +1 -1
- package/dist/sql/Statement.d.ts +10 -1
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +45 -7
- package/dist/sql/Statement.js.map +1 -1
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +4 -2
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +7 -1
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +9 -3
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +21 -2
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +18 -4
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +13 -3
- package/src/Arbitrary.ts +10 -2
- package/src/Array.ts +128 -55
- package/src/Bytes.ts +111 -0
- package/src/Channel.ts +308 -452
- package/src/ChannelSchema.ts +1 -49
- package/src/Chunk.ts +55 -61
- package/src/Config.ts +12 -86
- package/src/ConfigProvider.ts +2 -1
- package/src/Cron.ts +6 -3
- package/src/Data.ts +60 -265
- package/src/Duration.ts +66 -16
- package/src/Effect.ts +503 -168
- package/src/Equal.ts +8 -1
- package/src/Equivalence.ts +7 -4
- package/src/Exit.ts +27 -12
- package/src/FiberHandle.ts +10 -9
- package/src/FiberMap.ts +13 -66
- package/src/FileSystem.ts +10 -0
- package/src/Formatter.ts +28 -13
- package/src/Graph.ts +171 -1263
- package/src/Hash.ts +4 -1
- package/src/HashSet.ts +0 -60
- package/src/Iterable.ts +15 -14
- package/src/JsonPatch.ts +4 -0
- package/src/JsonSchema.ts +40 -43
- package/src/Layer.ts +2 -2
- package/src/ManagedRuntime.ts +72 -6
- package/src/Metric.ts +252 -510
- package/src/MutableHashMap.ts +4 -473
- package/src/MutableList.ts +7 -5
- package/src/MutableRef.ts +8 -1
- package/src/Number.ts +2 -2
- package/src/Optic.ts +17 -332
- package/src/PartitionedSemaphore.ts +24 -13
- package/src/Path.ts +9 -1
- package/src/Pool.ts +109 -37
- package/src/PubSub.ts +17 -13
- package/src/Queue.ts +5 -37
- package/src/Random.ts +1 -1
- package/src/RcMap.ts +14 -8
- package/src/Record.ts +51 -0
- package/src/Ref.ts +15 -104
- package/src/References.ts +5 -4
- package/src/RequestResolver.ts +46 -87
- package/src/Resource.ts +1 -1
- package/src/Runtime.ts +19 -18
- package/src/Schedule.ts +3 -95
- package/src/Schema.ts +639 -381
- package/src/SchemaAST.ts +40 -29
- package/src/SchemaGetter.ts +22 -5
- package/src/SchemaIssue.ts +44 -53
- package/src/SchemaParser.ts +51 -18
- package/src/SchemaRepresentation.ts +95 -35
- package/src/SchemaTransformation.ts +10 -3
- package/src/Scope.ts +12 -2
- package/src/ScopedCache.ts +17 -142
- package/src/SemVer.ts +1528 -0
- package/src/SemVerRange.ts +883 -0
- package/src/Semaphore.ts +67 -40
- package/src/Sink.ts +21 -4
- package/src/Stream.ts +367 -1027
- package/src/String.ts +11 -8
- package/src/TextDiff.ts +766 -0
- package/src/Tracer.ts +15 -1
- package/src/TxHashMap.ts +1 -103
- package/src/TxHashSet.ts +48 -753
- package/src/ai/AiError.ts +66 -4
- package/src/ai/Chat.ts +10 -5
- package/src/ai/Decision.ts +49 -1
- package/src/ai/DecisionModel.ts +264 -108
- package/src/ai/EmbeddingModel.ts +25 -13
- package/src/ai/LanguageModel.ts +9 -0
- package/src/ai/McpClient.ts +1211 -0
- package/src/ai/McpClientError.ts +329 -0
- package/src/ai/McpProtocol.ts +2 -2
- package/src/ai/McpSchema.ts +153 -35
- package/src/ai/McpServer.ts +231 -233
- package/src/ai/Prompt.ts +114 -35
- package/src/ai/Response.ts +220 -65
- package/src/ai/Tool.ts +50 -6
- package/src/ai/Toolkit.ts +82 -11
- package/src/ai/index.ts +12 -0
- package/src/ai/internal/mcpCore.ts +13 -14
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
- package/src/ai/internal/mcpProtocol.ts +22 -2
- package/src/ai/internal/mcpRuntime.ts +3 -4
- package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
- package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
- package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
- package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
- package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
- package/src/cli/Argument.ts +15 -0
- package/src/cli/CliError.ts +136 -4
- package/src/cli/CliOutput.ts +183 -6
- package/src/cli/Command.ts +367 -48
- package/src/cli/Completions.ts +56 -0
- package/src/cli/Flag.ts +132 -0
- package/src/cli/GlobalFlag.ts +5 -6
- package/src/cli/Param.ts +151 -6
- package/src/cli/TerminalCapabilities.ts +159 -0
- package/src/cli/index.ts +6 -0
- package/src/cli/internal/command.ts +8 -3
- package/src/cli/internal/completions/bash.ts +83 -32
- package/src/cli/internal/completions/descriptor.ts +11 -1
- package/src/cli/internal/completions/fish.ts +10 -8
- package/src/cli/internal/completions/powershell.ts +23 -14
- package/src/cli/internal/completions/zsh.ts +8 -5
- package/src/cli/internal/formatter.ts +18 -0
- package/src/cli/internal/lexer.ts +12 -5
- package/src/cli/internal/parser.ts +31 -11
- package/src/cluster/ClusterCron.ts +94 -35
- package/src/cluster/ClusterMetrics.ts +149 -7
- package/src/cluster/ClusterWorkflowEngine.ts +130 -57
- package/src/cluster/Entity.ts +4 -0
- package/src/cluster/MessageStorage.ts +26 -14
- package/src/cluster/Runners.ts +76 -25
- package/src/cluster/Sharding.ts +200 -58
- package/src/cluster/ShardingConfig.ts +20 -0
- package/src/cluster/Snowflake.ts +3 -7
- package/src/cluster/SqlMessageStorage.ts +58 -55
- package/src/cluster/SqlRunnerStorage.ts +120 -51
- package/src/cluster/internal/entityManager.ts +155 -32
- package/src/devtools/DevTools.ts +3 -2
- package/src/devtools/DevToolsClient.ts +29 -10
- package/src/encoding/Base64.ts +38 -0
- package/src/encoding/Base64Url.ts +31 -0
- package/src/encoding/Ini.ts +3 -0
- package/src/encoding/JsonArray.ts +849 -0
- package/src/encoding/Ndjson.ts +211 -20
- package/src/encoding/SchemaBinary.ts +14 -48
- package/src/encoding/Sse.ts +4 -3
- package/src/encoding/Tar.ts +1417 -0
- package/src/encoding/Toml.ts +36 -19
- package/src/encoding/Xml.ts +2037 -0
- package/src/encoding/Yaml.ts +108 -36
- package/src/encoding/Zip.ts +1558 -0
- package/src/encoding/index.ts +24 -0
- package/src/eventlog/EventJournal.ts +611 -227
- package/src/eventlog/EventLog.ts +496 -196
- package/src/eventlog/EventLogEncryption.ts +128 -43
- package/src/eventlog/EventLogMessage.ts +62 -11
- package/src/eventlog/EventLogRemote.ts +77 -21
- package/src/eventlog/EventLogServer.ts +162 -20
- package/src/eventlog/EventLogServerEncrypted.ts +121 -80
- package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
- package/src/eventlog/EventRow.ts +706 -0
- package/src/eventlog/SqlEventJournal.ts +496 -193
- package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
- package/src/eventlog/index.ts +6 -0
- package/src/eventlog/internal/conflicts.ts +119 -0
- package/src/graphql/GraphQLClientError.ts +5 -12
- package/src/graphql/GraphQLProtocol.ts +12 -9
- package/src/graphql/GraphQLResolver.ts +90 -239
- package/src/http/Cookies.ts +10 -11
- package/src/http/FetchHttpClient.ts +56 -6
- package/src/http/FindMyWay/internal/router.ts +11 -0
- package/src/http/Headers.ts +337 -154
- package/src/http/HttpClient.ts +673 -142
- package/src/http/HttpClientError.ts +35 -1
- package/src/http/HttpClientRequest.ts +151 -5
- package/src/http/HttpClientResponse.ts +71 -0
- package/src/http/HttpEffect.ts +25 -33
- package/src/http/HttpIncomingMessage.ts +3 -23
- package/src/http/HttpMiddleware.ts +194 -40
- package/src/http/HttpRouter.ts +10 -3
- package/src/http/HttpServerError.ts +8 -5
- package/src/http/HttpServerRequest.ts +172 -27
- package/src/http/HttpServerResponse.ts +49 -23
- package/src/http/HttpStaticServer.ts +71 -26
- package/src/http/MultipartParser/internal/contentType.ts +109 -8
- package/src/http/MultipartParser/internal/headers.ts +4 -16
- package/src/http/MultipartParser/internal/multipart.ts +10 -32
- package/src/http/Url.ts +6 -1
- package/src/http/UrlParams.ts +6 -1
- package/src/http/internal/compression.ts +4 -5
- package/src/http/internal/decompression.ts +32 -17
- package/src/http/internal/httpBody.ts +10 -2
- package/src/http/internal/lazyStream.ts +25 -0
- package/src/http/internal/requestState.ts +33 -0
- package/src/http/internal/urlParams.ts +29 -0
- package/src/http/internal/webResponse.ts +20 -0
- package/src/http-api/HttpApi.ts +4 -7
- package/src/http-api/HttpApiBuilder.ts +190 -32
- package/src/http-api/HttpApiClient.ts +364 -90
- package/src/http-api/HttpApiEndpoint.ts +248 -46
- package/src/http-api/HttpApiError.ts +55 -0
- package/src/http-api/HttpApiScalar.ts +4 -3
- package/src/http-api/HttpApiSchema.ts +373 -18
- package/src/http-api/HttpApiSwagger.ts +11 -4
- package/src/http-api/HttpApiTest.ts +36 -11
- package/src/http-api/OpenApi.ts +103 -58
- package/src/http-api/internal/path.ts +40 -12
- package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
- package/src/index.ts +24 -0
- package/src/internal/arbitrary/runner.ts +133 -36
- package/src/internal/core.ts +3 -1
- package/src/internal/dateTime.ts +20 -7
- package/src/internal/effect.ts +144 -100
- package/src/internal/equal.ts +17 -0
- package/src/internal/hashMap.ts +2 -2
- package/src/internal/hydration.ts +15 -0
- package/src/internal/inflate.ts +710 -0
- package/src/internal/jsonSchema.ts +27 -0
- package/src/internal/matcher.ts +1 -1
- package/src/internal/record.ts +6 -0
- package/src/internal/request.ts +21 -6
- package/src/internal/schedule.ts +20 -39
- package/src/internal/schema/compilerRegistry.ts +6 -1
- package/src/internal/schema/content.ts +18 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +458 -351
- package/src/internal/schema/fromRepresentation.ts +2 -1
- package/src/internal/schema/interpreter.ts +58 -45
- package/src/internal/schema/standardSchema.ts +34 -32
- package/src/internal/schema/toCodeDocument.ts +12 -7
- package/src/internal/schema/toCodec.ts +134 -15
- package/src/internal/schema/toFormatter.ts +6 -6
- package/src/internal/schema/toJsonSchemaDocument.ts +246 -194
- package/src/internal/schema/toRepresentation.ts +122 -140
- package/src/internal/sql.ts +14 -0
- package/src/internal/trie.ts +1 -3
- package/src/internal/uuid.ts +15 -10
- package/src/internal/version.ts +1 -1
- package/src/net/NetAddress.ts +2 -9
- package/src/observability/OtlpExporter.ts +5 -12
- package/src/observability/OtlpMetrics.ts +5 -3
- package/src/observability/OtlpProxy.ts +314 -0
- package/src/observability/OtlpResource.ts +16 -6
- package/src/observability/OtlpSerialization.ts +17 -3
- package/src/observability/OtlpTracer.ts +4 -0
- package/src/observability/index.ts +6 -0
- package/src/observability/internal/protobuf.ts +2 -10
- package/src/persistence/CircuitBreaker.ts +1678 -0
- package/src/persistence/PersistedCache.ts +3 -1
- package/src/persistence/PersistedQueue.ts +223 -153
- package/src/persistence/Persistence.ts +64 -30
- package/src/persistence/RateLimiter.ts +18 -21
- package/src/persistence/Redis.ts +129 -8
- package/src/persistence/UserDirectories.ts +273 -0
- package/src/persistence/index.ts +12 -0
- package/src/process/ChildProcess.ts +32 -5
- package/src/process/ChildProcessSpawner.ts +41 -2
- package/src/reactivity/AsyncResult.ts +5 -39
- package/src/reactivity/Atom.ts +134 -166
- package/src/reactivity/AtomHttpApi.ts +10 -16
- package/src/reactivity/AtomRegistry.ts +50 -29
- package/src/reactivity/AtomRpc.ts +6 -22
- package/src/reactivity/Hydration.ts +53 -12
- package/src/reactivity/Reactivity.ts +97 -39
- package/src/rpc/Rpc.ts +21 -0
- package/src/rpc/RpcClient.ts +283 -104
- package/src/rpc/RpcSerialization.ts +53 -14
- package/src/rpc/RpcServer.ts +27 -21
- package/src/rpc/RpcTest.ts +3 -0
- package/src/schema/VariantSchema.ts +86 -22
- package/src/socket/Socket.ts +45 -20
- package/src/sql/Migrator.ts +26 -11
- package/src/sql/SqlClient.ts +273 -29
- package/src/sql/SqlResolver.ts +32 -9
- package/src/sql/Statement.ts +65 -10
- package/src/testing/TestClock.ts +4 -1
- package/src/testing/TestSchema.ts +9 -3
- package/src/workflow/DurableDeferred.ts +23 -6
- package/src/workflow/WorkflowEngine.ts +34 -10
- package/dist/http/internal/preResponseHandler.d.ts +0 -2
- package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
- package/dist/http/internal/preResponseHandler.js +0 -14
- package/dist/http/internal/preResponseHandler.js.map +0 -1
- package/src/http/internal/preResponseHandler.ts +0 -19
|
@@ -876,28 +876,30 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
|
|
|
876
876
|
})
|
|
877
877
|
)
|
|
878
878
|
|
|
879
|
-
const scanKeys = (pattern: string)
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
})
|
|
879
|
+
const scanKeys = Effect.fnUntraced(function*(pattern: string) {
|
|
880
|
+
const keys: Array<string> = []
|
|
881
|
+
let cursor = "0"
|
|
882
|
+
do {
|
|
883
|
+
const [next, batch] = yield* redis.send<[string, Array<string>]>(
|
|
884
|
+
"SCAN",
|
|
885
|
+
cursor,
|
|
886
|
+
"MATCH",
|
|
887
|
+
pattern,
|
|
888
|
+
"COUNT",
|
|
889
|
+
"100"
|
|
890
|
+
)
|
|
891
|
+
cursor = next
|
|
892
|
+
for (const key of batch) keys.push(key)
|
|
893
|
+
} while (cursor !== "0")
|
|
894
|
+
return keys
|
|
895
|
+
})
|
|
897
896
|
|
|
898
897
|
return PersistedQueueStore.of({
|
|
899
898
|
offer: ({ delay, element, id, isCustomId, name }) => {
|
|
900
899
|
const keys = keysFor(name)
|
|
900
|
+
// replace lone surrogates like Redis' UTF-8 encoding does, so the id in
|
|
901
|
+
// the payload matches the id keys
|
|
902
|
+
id = id.replace(/[\uD800-\uDFFF]/gu, "\uFFFD")
|
|
901
903
|
const payload = JSON.stringify({ id, element })
|
|
902
904
|
const send = Effect.suspend(() => {
|
|
903
905
|
if (delay === undefined) {
|
|
@@ -1004,8 +1006,8 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
|
|
|
1004
1006
|
})
|
|
1005
1007
|
)
|
|
1006
1008
|
}),
|
|
1007
|
-
cleanup: (
|
|
1008
|
-
|
|
1009
|
+
cleanup: Effect.fnUntraced(
|
|
1010
|
+
function*({ failedTimeToLive, timeToLive }) {
|
|
1009
1011
|
const now = clock.currentTimeMillisUnsafe()
|
|
1010
1012
|
const idsKeys = yield* scanKeys(`${prefix}*:ids`)
|
|
1011
1013
|
const cutoff = now - Duration.toMillis(timeToLive)
|
|
@@ -1027,15 +1029,15 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
|
|
|
1027
1029
|
{ concurrency: 16, discard: true }
|
|
1028
1030
|
)
|
|
1029
1031
|
}
|
|
1030
|
-
}
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
)
|
|
1032
|
+
},
|
|
1033
|
+
Effect.mapError(({ cause }) =>
|
|
1034
|
+
new PersistedQueueError({
|
|
1035
|
+
message: "Failed to clean up persisted queue",
|
|
1036
|
+
cause
|
|
1037
|
+
})
|
|
1037
1038
|
)
|
|
1038
|
-
|
|
1039
|
+
)
|
|
1040
|
+
});
|
|
1039
1041
|
})
|
|
1040
1042
|
|
|
1041
1043
|
const offerRedis = Redis.script(
|
|
@@ -1231,6 +1233,27 @@ redis.call("ZADD", key_ids, "XX", "+inf", id)
|
|
|
1231
1233
|
}
|
|
1232
1234
|
)
|
|
1233
1235
|
|
|
1236
|
+
// Every record starts with {"id":"...". Decode only the id, since Redis cjson
|
|
1237
|
+
// rejects lone UTF-16 surrogates that JSON.stringify can emit in the element.
|
|
1238
|
+
const queueRecordIdRedis = `
|
|
1239
|
+
local function record_id(payload)
|
|
1240
|
+
assert(string.sub(payload, 1, 7) == '{"id":"', "Invalid queue record id")
|
|
1241
|
+
local i = 8
|
|
1242
|
+
while i <= #payload do
|
|
1243
|
+
local byte = string.byte(payload, i)
|
|
1244
|
+
if byte == 92 then
|
|
1245
|
+
-- Skip escaped characters, including escaped quotes and backslashes.
|
|
1246
|
+
i = i + 2
|
|
1247
|
+
elseif byte == 34 then
|
|
1248
|
+
return cjson.decode(string.sub(payload, 7, i))
|
|
1249
|
+
else
|
|
1250
|
+
i = i + 1
|
|
1251
|
+
end
|
|
1252
|
+
end
|
|
1253
|
+
error("Unterminated queue record id")
|
|
1254
|
+
end
|
|
1255
|
+
`
|
|
1256
|
+
|
|
1234
1257
|
const takeRedis = Redis.script(
|
|
1235
1258
|
(
|
|
1236
1259
|
...args: [
|
|
@@ -1257,6 +1280,8 @@ local batch_size = tonumber(ARGV[3])
|
|
|
1257
1280
|
local pttl = ARGV[4]
|
|
1258
1281
|
local now = ARGV[5]
|
|
1259
1282
|
|
|
1283
|
+
${queueRecordIdRedis}
|
|
1284
|
+
|
|
1260
1285
|
local due = redis.call("ZRANGEBYSCORE", key_delayed, "-inf", now, "LIMIT", 0, 100)
|
|
1261
1286
|
if #due > 0 then
|
|
1262
1287
|
for i, payload in ipairs(due) do
|
|
@@ -1265,14 +1290,21 @@ if #due > 0 then
|
|
|
1265
1290
|
redis.call("ZREM", key_delayed, unpack(due))
|
|
1266
1291
|
end
|
|
1267
1292
|
|
|
1268
|
-
local payloads = redis.call("
|
|
1269
|
-
if
|
|
1293
|
+
local payloads = redis.call("LRANGE", key_queue, 0, batch_size - 1)
|
|
1294
|
+
if #payloads == 0 then
|
|
1270
1295
|
return nil
|
|
1271
1296
|
end
|
|
1272
1297
|
|
|
1273
|
-
|
|
1298
|
+
-- read every id before removing the batch, as script errors do not roll back
|
|
1299
|
+
local ids = {}
|
|
1274
1300
|
for i, payload in ipairs(payloads) do
|
|
1275
|
-
|
|
1301
|
+
ids[i] = record_id(payload)
|
|
1302
|
+
end
|
|
1303
|
+
redis.call("LTRIM", key_queue, #payloads, -1)
|
|
1304
|
+
|
|
1305
|
+
local result = {}
|
|
1306
|
+
for i, id in ipairs(ids) do
|
|
1307
|
+
local payload = payloads[i]
|
|
1276
1308
|
local key_lock = prefix .. id .. ":lock"
|
|
1277
1309
|
redis.call("SET", key_lock, worker_id, "PX", pttl)
|
|
1278
1310
|
redis.call("HSET", key_pending, id, payload)
|
|
@@ -1311,21 +1343,20 @@ local key_ids = KEYS[2]
|
|
|
1311
1343
|
local cutoff = tonumber(ARGV[1])
|
|
1312
1344
|
local removed = 0
|
|
1313
1345
|
|
|
1346
|
+
${queueRecordIdRedis}
|
|
1347
|
+
|
|
1314
1348
|
while removed < ${trimFailedBatchSize} do
|
|
1315
1349
|
local head = redis.call("LINDEX", key_failed, 0)
|
|
1316
1350
|
if not head then break end
|
|
1317
|
-
local ok,
|
|
1351
|
+
local ok, id = pcall(record_id, head)
|
|
1318
1352
|
if ok then
|
|
1319
|
-
|
|
1353
|
+
-- failedAt is always the last field of a failed record
|
|
1354
|
+
local failed_at = tonumber(string.match(head, ',"failedAt":([^,}]+)%}$'))
|
|
1320
1355
|
if failed_at ~= nil and failed_at >= cutoff then break end
|
|
1321
|
-
redis.call("
|
|
1322
|
-
if decoded.id ~= nil then
|
|
1323
|
-
redis.call("ZREM", key_ids, decoded.id)
|
|
1324
|
-
end
|
|
1325
|
-
else
|
|
1326
|
-
-- a corrupt head would otherwise block trimming of the whole list
|
|
1327
|
-
redis.call("LPOP", key_failed)
|
|
1356
|
+
redis.call("ZREM", key_ids, id)
|
|
1328
1357
|
end
|
|
1358
|
+
-- a corrupt head would otherwise block trimming of the whole list
|
|
1359
|
+
redis.call("LPOP", key_failed)
|
|
1329
1360
|
removed = removed + 1
|
|
1330
1361
|
end
|
|
1331
1362
|
|
|
@@ -1361,8 +1392,12 @@ export const layerStoreRedis: (
|
|
|
1361
1392
|
* **Details**
|
|
1362
1393
|
*
|
|
1363
1394
|
* The store creates the queue table and indexes, acquires rows with
|
|
1364
|
-
* per-
|
|
1365
|
-
* retries or completes rows according to the processing exit.
|
|
1395
|
+
* per-acquisition locks, refreshes active locks while scoped takes are running,
|
|
1396
|
+
* and retries or completes rows according to the processing exit.
|
|
1397
|
+
*
|
|
1398
|
+
* Settlements and refreshes only apply to the acquisition a handler received,
|
|
1399
|
+
* so a handler whose lock lapsed can still settle or renew its claim until
|
|
1400
|
+
* another poll re-claims the row.
|
|
1366
1401
|
*
|
|
1367
1402
|
* Offer and retry delays are measured with the database clock and rounded up
|
|
1368
1403
|
* to whole seconds.
|
|
@@ -1398,8 +1433,6 @@ export const makeStoreSql: (
|
|
|
1398
1433
|
options?.lockExpiration ? Duration.fromInputUnsafe(options.lockExpiration) : Duration.minutes(2),
|
|
1399
1434
|
Duration.millis(1)
|
|
1400
1435
|
)
|
|
1401
|
-
const workerId = crypto.randomUUID()
|
|
1402
|
-
|
|
1403
1436
|
const ackRetrySchedule = makeAckRetrySchedule(lockExpiration)
|
|
1404
1437
|
|
|
1405
1438
|
yield* Effect.orDie(
|
|
@@ -1457,15 +1490,44 @@ export const makeStoreSql: (
|
|
|
1457
1490
|
INSERT IGNORE INTO ${tableNameSql} (id, queue_name, element, state, attempts, visible_at, created_at, updated_at)
|
|
1458
1491
|
VALUES (${id}, ${name}, ${element}, 'pending', 0, ${visibleAt}, ${sqlNow}, ${sqlNow})
|
|
1459
1492
|
`,
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1493
|
+
// Avoids MERGE WITH (HOLDLOCK), whose range locks deadlock concurrent offers.
|
|
1494
|
+
// - READCOMMITTEDLOCK makes the check wait for an uncommitted duplicate, even
|
|
1495
|
+
// under read committed snapshot.
|
|
1496
|
+
// - A duplicate inserted after the check raises 2601/2627. XACT_ABORT is off
|
|
1497
|
+
// so that error doesn't doom the caller's transaction; it is restored
|
|
1498
|
+
// before rethrowing any other error.
|
|
1499
|
+
// - The nested sp_executesql restores XACT_ABORT on exit, including on
|
|
1500
|
+
// cancellation.
|
|
1501
|
+
mssql: () => {
|
|
1502
|
+
// matches the SQL Server compiler's identifier escaping
|
|
1503
|
+
const escape = (name: string) => `[${name.replace(/\]/g, "]]").replace(/\./g, "].[")}]`
|
|
1504
|
+
const table = escape(tableName)
|
|
1505
|
+
const offerSql = `
|
|
1506
|
+
SET XACT_ABORT OFF;
|
|
1507
|
+
BEGIN TRY
|
|
1508
|
+
IF NOT EXISTS (
|
|
1509
|
+
SELECT 1 FROM ${table} WITH (READCOMMITTEDLOCK, FORCESEEK, INDEX(${escape(`idx_${tableName}_id`)}))
|
|
1510
|
+
WHERE id = @id AND queue_name = @name
|
|
1511
|
+
)
|
|
1512
|
+
INSERT INTO ${table} (id, queue_name, element, state, attempts, visible_at, created_at, updated_at)
|
|
1513
|
+
VALUES (@id, @name, @element, 'pending', 0, @visible_at, SYSDATETIME(), SYSDATETIME());
|
|
1514
|
+
END TRY
|
|
1515
|
+
BEGIN CATCH
|
|
1516
|
+
IF ERROR_NUMBER() NOT IN (2601, 2627) OR XACT_STATE() = -1
|
|
1517
|
+
BEGIN
|
|
1518
|
+
IF @xact_abort <> 0 SET XACT_ABORT ON;
|
|
1519
|
+
THROW;
|
|
1520
|
+
END
|
|
1521
|
+
END CATCH`
|
|
1522
|
+
return (id: string, name: string, element: string, visibleAt: Fragment) =>
|
|
1523
|
+
sql`
|
|
1524
|
+
DECLARE @visible_at DATETIME2 = ${visibleAt};
|
|
1525
|
+
DECLARE @xact_abort INT = @@OPTIONS & 16384;
|
|
1526
|
+
EXEC sp_executesql ${offerSql},
|
|
1527
|
+
N'@id NVARCHAR(MAX), @name NVARCHAR(MAX), @element NVARCHAR(MAX), @visible_at DATETIME2, @xact_abort INT',
|
|
1528
|
+
@id = ${id}, @name = ${name}, @element = ${element}, @visible_at = @visible_at, @xact_abort = @xact_abort;
|
|
1529
|
+
`
|
|
1530
|
+
},
|
|
1469
1531
|
// sqlite
|
|
1470
1532
|
orElse: () => (id: string, name: string, element: string, visibleAt: Fragment) =>
|
|
1471
1533
|
sql`
|
|
@@ -1480,75 +1542,80 @@ export const makeStoreSql: (
|
|
|
1480
1542
|
})
|
|
1481
1543
|
const stringLiteral = (s: string) => sql.literal(wrapString(s))
|
|
1482
1544
|
|
|
1483
|
-
|
|
1484
|
-
|
|
1545
|
+
// Elements this store has claimed and not yet settled. Each poll claims its
|
|
1546
|
+
// rows under a fresh lock, so a settlement only matches the acquisition it
|
|
1547
|
+
// belongs to, even after the same store re-claims a lapsed row.
|
|
1548
|
+
const held = new Set<Element>()
|
|
1485
1549
|
const refreshLocks: Effect.Effect<void, SqlError> = Effect.suspend((): Effect.Effect<void, SqlError> => {
|
|
1486
|
-
if (
|
|
1487
|
-
const
|
|
1550
|
+
if (held.size === 0) return Effect.void
|
|
1551
|
+
const sequences = new Set<number | string>()
|
|
1552
|
+
const locks = new Set<string>()
|
|
1553
|
+
for (const element of held) {
|
|
1554
|
+
sequences.add(element.sequence)
|
|
1555
|
+
locks.add(wrapString(element.lock))
|
|
1556
|
+
}
|
|
1557
|
+
// A row only ever carries the lock of the poll that claimed it, so matching
|
|
1558
|
+
// every held sequence against every live lock renews just this store's own
|
|
1559
|
+
// claims while keeping the statement flat
|
|
1488
1560
|
return sql`
|
|
1489
1561
|
UPDATE ${tableNameSql}
|
|
1490
1562
|
SET acquired_at = ${sqlNow}
|
|
1491
|
-
WHERE sequence IN (${sql.literal(
|
|
1492
|
-
AND acquired_by
|
|
1563
|
+
WHERE sequence IN (${sql.literal(Array.from(sequences).join(","))})
|
|
1564
|
+
AND acquired_by IN (${sql.literal(Array.from(locks).join(","))})
|
|
1493
1565
|
`
|
|
1494
1566
|
})
|
|
1495
|
-
const ack = (
|
|
1496
|
-
statement: Effect.Effect<unknown, SqlError>,
|
|
1497
|
-
sequences: ReadonlyArray<number | string>
|
|
1498
|
-
): Effect.Effect<void> =>
|
|
1567
|
+
const ack = (statement: Effect.Effect<unknown, SqlError>, element: Element): Effect.Effect<void> =>
|
|
1499
1568
|
statement.pipe(
|
|
1500
1569
|
Effect.retry(ackRetrySchedule),
|
|
1501
1570
|
Effect.orDie,
|
|
1502
1571
|
Effect.ensuring(Effect.sync(() => {
|
|
1503
|
-
|
|
1504
|
-
elementIds.delete(sequence)
|
|
1505
|
-
}
|
|
1572
|
+
held.delete(element)
|
|
1506
1573
|
})),
|
|
1507
1574
|
Effect.asVoid
|
|
1508
1575
|
)
|
|
1509
|
-
const complete = (
|
|
1576
|
+
const complete = (element: Element) =>
|
|
1510
1577
|
ack(
|
|
1511
1578
|
sql`
|
|
1512
1579
|
UPDATE ${tableNameSql}
|
|
1513
1580
|
SET acquired_at = NULL, acquired_by = NULL, updated_at = ${sqlNow}, state = 'completed'
|
|
1514
|
-
WHERE sequence = ${sequence}
|
|
1515
|
-
AND acquired_by = ${
|
|
1581
|
+
WHERE sequence = ${element.sequence}
|
|
1582
|
+
AND acquired_by = ${stringLiteral(element.lock)}
|
|
1516
1583
|
`,
|
|
1517
|
-
|
|
1584
|
+
element
|
|
1518
1585
|
)
|
|
1519
|
-
const fail = (
|
|
1586
|
+
const fail = (element: Element, cause: Cause.Cause<any>) =>
|
|
1520
1587
|
ack(
|
|
1521
1588
|
sql`
|
|
1522
1589
|
UPDATE ${tableNameSql}
|
|
1523
1590
|
SET acquired_at = NULL, acquired_by = NULL, updated_at = ${sqlNow}, state = 'failed', last_failure = ${
|
|
1524
1591
|
Cause.pretty(cause)
|
|
1525
1592
|
}
|
|
1526
|
-
WHERE sequence = ${sequence}
|
|
1527
|
-
AND acquired_by = ${
|
|
1593
|
+
WHERE sequence = ${element.sequence}
|
|
1594
|
+
AND acquired_by = ${stringLiteral(element.lock)}
|
|
1528
1595
|
`,
|
|
1529
|
-
|
|
1596
|
+
element
|
|
1530
1597
|
)
|
|
1531
|
-
const retry = (
|
|
1598
|
+
const retry = (element: Element, delay: Duration.Duration, cause: Cause.Cause<any>) =>
|
|
1532
1599
|
ack(
|
|
1533
1600
|
sql`
|
|
1534
1601
|
UPDATE ${tableNameSql}
|
|
1535
1602
|
SET acquired_at = NULL, acquired_by = NULL, updated_at = ${sqlNow}, visible_at = ${
|
|
1536
1603
|
secondsFromNow(Duration.toSeconds(delay))
|
|
1537
1604
|
}, last_failure = ${Cause.pretty(cause)}
|
|
1538
|
-
WHERE sequence = ${sequence}
|
|
1539
|
-
AND acquired_by = ${
|
|
1605
|
+
WHERE sequence = ${element.sequence}
|
|
1606
|
+
AND acquired_by = ${stringLiteral(element.lock)}
|
|
1540
1607
|
`,
|
|
1541
|
-
|
|
1608
|
+
element
|
|
1542
1609
|
)
|
|
1543
|
-
const interrupt = (
|
|
1610
|
+
const interrupt = (element: Element) =>
|
|
1544
1611
|
ack(
|
|
1545
1612
|
sql`
|
|
1546
1613
|
UPDATE ${tableNameSql}
|
|
1547
1614
|
SET acquired_at = NULL, acquired_by = NULL, attempts = attempts - 1
|
|
1548
|
-
WHERE sequence
|
|
1549
|
-
AND acquired_by = ${
|
|
1615
|
+
WHERE sequence = ${element.sequence}
|
|
1616
|
+
AND acquired_by = ${stringLiteral(element.lock)}
|
|
1550
1617
|
`,
|
|
1551
|
-
|
|
1618
|
+
element
|
|
1552
1619
|
)
|
|
1553
1620
|
|
|
1554
1621
|
yield* refreshLocks.pipe(
|
|
@@ -1568,6 +1635,7 @@ export const makeStoreSql: (
|
|
|
1568
1635
|
readonly sequence: number | string
|
|
1569
1636
|
readonly element: string
|
|
1570
1637
|
attempts: number
|
|
1638
|
+
lock: string
|
|
1571
1639
|
}
|
|
1572
1640
|
const queueStates = makeQueueStates()
|
|
1573
1641
|
const mailboxes = yield* RcMap.make({
|
|
@@ -1581,10 +1649,10 @@ export const makeStoreSql: (
|
|
|
1581
1649
|
const nudge = state.nudge
|
|
1582
1650
|
|
|
1583
1651
|
yield* Effect.addFinalizer(() =>
|
|
1584
|
-
Effect.flatMap(
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1652
|
+
Effect.flatMap(
|
|
1653
|
+
Queue.clear(queue),
|
|
1654
|
+
(elements) => Effect.forEach(elements, interrupt, { concurrency: "unbounded", discard: true })
|
|
1655
|
+
)
|
|
1588
1656
|
)
|
|
1589
1657
|
|
|
1590
1658
|
// flip exhausted rows whose lock expired (worker crashed on the final
|
|
@@ -1606,11 +1674,11 @@ export const makeStoreSql: (
|
|
|
1606
1674
|
)
|
|
1607
1675
|
|
|
1608
1676
|
const poll = sql.onDialectOrElse({
|
|
1609
|
-
pg: () => (size: number) =>
|
|
1677
|
+
pg: () => (size: number, lockSql: Fragment) =>
|
|
1610
1678
|
sql<Element>`
|
|
1611
1679
|
WITH cte AS (
|
|
1612
1680
|
UPDATE ${tableNameSql}
|
|
1613
|
-
SET acquired_at = ${sqlNow}, acquired_by = ${
|
|
1681
|
+
SET acquired_at = ${sqlNow}, acquired_by = ${lockSql}, attempts = attempts + 1
|
|
1614
1682
|
WHERE sequence IN (
|
|
1615
1683
|
SELECT sequence FROM ${tableNameSql}
|
|
1616
1684
|
WHERE queue_name = ${name}
|
|
@@ -1627,7 +1695,7 @@ export const makeStoreSql: (
|
|
|
1627
1695
|
SELECT sequence, id, element, attempts FROM cte
|
|
1628
1696
|
ORDER BY visible_at ASC, sequence ASC
|
|
1629
1697
|
`,
|
|
1630
|
-
mysql: () => (size: number) =>
|
|
1698
|
+
mysql: () => (size: number, lockSql: Fragment) =>
|
|
1631
1699
|
sql<Element>`
|
|
1632
1700
|
SELECT sequence, id, element, attempts FROM ${tableNameSql} q
|
|
1633
1701
|
WHERE queue_name = ${name}
|
|
@@ -1643,7 +1711,7 @@ export const makeStoreSql: (
|
|
|
1643
1711
|
if (rows.length === 0) return Effect.void
|
|
1644
1712
|
return sql`
|
|
1645
1713
|
UPDATE ${tableNameSql}
|
|
1646
|
-
SET acquired_at = ${sqlNow}, acquired_by = ${
|
|
1714
|
+
SET acquired_at = ${sqlNow}, acquired_by = ${lockSql}, attempts = attempts + 1
|
|
1647
1715
|
WHERE sequence IN (${sql.literal(rows.map((r) => r.sequence).join(","))})
|
|
1648
1716
|
`.unprepared
|
|
1649
1717
|
}),
|
|
@@ -1655,10 +1723,13 @@ export const makeStoreSql: (
|
|
|
1655
1723
|
}),
|
|
1656
1724
|
sql.withTransaction
|
|
1657
1725
|
),
|
|
1658
|
-
|
|
1726
|
+
// READPAST skips rows locked by another claim or a settlement instead
|
|
1727
|
+
// of deadlocking with them
|
|
1728
|
+
mssql: () => (size: number, lockSql: Fragment) =>
|
|
1659
1729
|
sql<Element>`
|
|
1660
1730
|
WITH cte AS (
|
|
1661
|
-
SELECT TOP ${sql.literal(size.toString())} sequence
|
|
1731
|
+
SELECT TOP ${sql.literal(size.toString())} sequence
|
|
1732
|
+
FROM ${tableNameSql} WITH (UPDLOCK, READPAST, ROWLOCK)
|
|
1662
1733
|
WHERE queue_name = ${name}
|
|
1663
1734
|
AND state = 'pending'
|
|
1664
1735
|
AND attempts < ${maxAttempts}
|
|
@@ -1667,16 +1738,16 @@ export const makeStoreSql: (
|
|
|
1667
1738
|
ORDER BY visible_at ASC, sequence ASC
|
|
1668
1739
|
)
|
|
1669
1740
|
UPDATE q
|
|
1670
|
-
SET acquired_at = ${sqlNow}, acquired_by = ${
|
|
1741
|
+
SET acquired_at = ${sqlNow}, acquired_by = ${lockSql}, attempts = q.attempts + 1
|
|
1671
1742
|
OUTPUT inserted.sequence, inserted.id, inserted.element, inserted.attempts
|
|
1672
1743
|
FROM ${tableNameSql} AS q
|
|
1673
1744
|
INNER JOIN cte ON q.sequence = cte.sequence
|
|
1674
1745
|
`,
|
|
1675
1746
|
// sqlite
|
|
1676
|
-
orElse: () => (size: number) =>
|
|
1747
|
+
orElse: () => (size: number, lockSql: Fragment) =>
|
|
1677
1748
|
sql<Element>`
|
|
1678
1749
|
UPDATE ${tableNameSql}
|
|
1679
|
-
SET acquired_at = ${sqlNow}, acquired_by = ${
|
|
1750
|
+
SET acquired_at = ${sqlNow}, acquired_by = ${lockSql}, attempts = attempts + 1
|
|
1680
1751
|
WHERE sequence IN (
|
|
1681
1752
|
SELECT sequence FROM ${tableNameSql}
|
|
1682
1753
|
WHERE queue_name = ${name}
|
|
@@ -1696,7 +1767,8 @@ export const makeStoreSql: (
|
|
|
1696
1767
|
yield* pollLatch.await
|
|
1697
1768
|
yield* Effect.yieldNow
|
|
1698
1769
|
nudge.closeUnsafe()
|
|
1699
|
-
const
|
|
1770
|
+
const lock = crypto.randomUUID()
|
|
1771
|
+
const results = takers.current === 0 ? [] : yield* poll(takers.current, stringLiteral(lock))
|
|
1700
1772
|
if (results.length === 0) {
|
|
1701
1773
|
yield* Effect.race(Effect.sleep(pollInterval), nudge.await)
|
|
1702
1774
|
continue
|
|
@@ -1704,7 +1776,8 @@ export const makeStoreSql: (
|
|
|
1704
1776
|
takenLatch.closeUnsafe()
|
|
1705
1777
|
for (const row of results) {
|
|
1706
1778
|
row.attempts = Number(row.attempts)
|
|
1707
|
-
|
|
1779
|
+
row.lock = lock
|
|
1780
|
+
held.add(row)
|
|
1708
1781
|
}
|
|
1709
1782
|
yield* Queue.offerAll(queue, results)
|
|
1710
1783
|
yield* takenLatch.await
|
|
@@ -1797,10 +1870,11 @@ export const makeStoreSql: (
|
|
|
1797
1870
|
})
|
|
1798
1871
|
)
|
|
1799
1872
|
).pipe(
|
|
1873
|
+
// Wake takers once the offer is committed.
|
|
1800
1874
|
Effect.tap(() =>
|
|
1801
|
-
Effect.sync(() => {
|
|
1875
|
+
sql.afterCommit(Effect.sync(() => {
|
|
1802
1876
|
queueStates.peek(name)?.nudge.openUnsafe()
|
|
1803
|
-
})
|
|
1877
|
+
}))
|
|
1804
1878
|
)
|
|
1805
1879
|
),
|
|
1806
1880
|
take: (options) => {
|
|
@@ -1843,26 +1917,26 @@ export const makeStoreSql: (
|
|
|
1843
1917
|
} catch (defect) {
|
|
1844
1918
|
// a row that cannot be parsed will never succeed, so dead-letter
|
|
1845
1919
|
// it and take the next element
|
|
1846
|
-
return Effect.andThen(fail(element
|
|
1920
|
+
return Effect.andThen(fail(element, Cause.die(defect)), loop)
|
|
1847
1921
|
}
|
|
1848
1922
|
return Effect.as(
|
|
1849
1923
|
Effect.addFinalizer((exit) => {
|
|
1850
1924
|
if (exit._tag === "Success") {
|
|
1851
|
-
return complete(element
|
|
1925
|
+
return complete(element)
|
|
1852
1926
|
}
|
|
1853
1927
|
const dead = deadLetterFromCause(exit.cause)
|
|
1854
1928
|
if (dead !== undefined) {
|
|
1855
|
-
return fail(element
|
|
1929
|
+
return fail(element, dead.cause)
|
|
1856
1930
|
}
|
|
1857
1931
|
if (Cause.hasInterruptsOnly(exit.cause)) {
|
|
1858
|
-
return interrupt(
|
|
1932
|
+
return interrupt(element)
|
|
1859
1933
|
}
|
|
1860
1934
|
if (element.attempts >= options.maxAttempts) {
|
|
1861
|
-
return fail(element
|
|
1935
|
+
return fail(element, exit.cause)
|
|
1862
1936
|
}
|
|
1863
1937
|
return Effect.flatMap(
|
|
1864
1938
|
options.retryDelay(element.attempts),
|
|
1865
|
-
(delay) => retry(element
|
|
1939
|
+
(delay) => retry(element, delay, exit.cause)
|
|
1866
1940
|
)
|
|
1867
1941
|
}),
|
|
1868
1942
|
{ id: element.id, attempts: element.attempts, element: parsed }
|
|
@@ -1872,22 +1946,22 @@ export const makeStoreSql: (
|
|
|
1872
1946
|
)
|
|
1873
1947
|
return loop
|
|
1874
1948
|
},
|
|
1875
|
-
cleanup: (
|
|
1876
|
-
|
|
1949
|
+
cleanup: Effect.fnUntraced(
|
|
1950
|
+
function*({ failedTimeToLive, timeToLive }) {
|
|
1877
1951
|
yield* cleanupState("completed", timeToLive)
|
|
1878
1952
|
if (failedTimeToLive !== undefined) {
|
|
1879
1953
|
yield* cleanupState("failed", failedTimeToLive)
|
|
1880
1954
|
}
|
|
1881
|
-
}
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
)
|
|
1955
|
+
},
|
|
1956
|
+
Effect.catchCause((cause) =>
|
|
1957
|
+
Effect.fail(
|
|
1958
|
+
new PersistedQueueError({
|
|
1959
|
+
message: "Failed to clean up persisted queue",
|
|
1960
|
+
cause
|
|
1961
|
+
})
|
|
1889
1962
|
)
|
|
1890
1963
|
)
|
|
1964
|
+
)
|
|
1891
1965
|
})
|
|
1892
1966
|
})
|
|
1893
1967
|
|
|
@@ -2005,46 +2079,43 @@ const sqlMigrations = (tableName: string) =>
|
|
|
2005
2079
|
const takeIndex = sql(`idx_${tableName}_take`)
|
|
2006
2080
|
|
|
2007
2081
|
yield* sql.onDialectOrElse({
|
|
2008
|
-
pg: ()
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
yield* sql`ALTER TABLE ${tableNameSql}
|
|
2082
|
+
pg: Effect.fnUntraced(function*() {
|
|
2083
|
+
yield* sql`DROP INDEX IF EXISTS ${takeIndex}`
|
|
2084
|
+
yield* sql`ALTER TABLE ${tableNameSql}
|
|
2012
2085
|
ADD COLUMN state VARCHAR(10),
|
|
2013
2086
|
ADD COLUMN visible_at TIMESTAMP`
|
|
2014
|
-
|
|
2087
|
+
yield* sql`UPDATE ${tableNameSql}
|
|
2015
2088
|
SET state = CASE WHEN completed THEN 'completed' ELSE 'pending' END,
|
|
2016
2089
|
visible_at = updated_at`
|
|
2017
|
-
|
|
2090
|
+
yield* sql`ALTER TABLE ${tableNameSql}
|
|
2018
2091
|
ALTER COLUMN sequence TYPE BIGINT,
|
|
2019
2092
|
ALTER COLUMN id TYPE VARCHAR(255),
|
|
2020
2093
|
ALTER COLUMN queue_name TYPE VARCHAR(255),
|
|
2021
2094
|
ALTER COLUMN state SET NOT NULL,
|
|
2022
2095
|
ALTER COLUMN visible_at SET NOT NULL,
|
|
2023
2096
|
DROP COLUMN completed`
|
|
2024
|
-
|
|
2025
|
-
mysql: ()
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
yield* sql`ALTER TABLE ${tableNameSql}
|
|
2097
|
+
}),
|
|
2098
|
+
mysql: Effect.fnUntraced(function*() {
|
|
2099
|
+
yield* sql`DROP INDEX ${takeIndex} ON ${tableNameSql}`
|
|
2100
|
+
yield* sql`ALTER TABLE ${tableNameSql}
|
|
2029
2101
|
MODIFY COLUMN id VARCHAR(255) NOT NULL,
|
|
2030
2102
|
MODIFY COLUMN queue_name VARCHAR(255) NOT NULL,
|
|
2031
2103
|
MODIFY COLUMN element MEDIUMTEXT NOT NULL,
|
|
2032
2104
|
MODIFY COLUMN last_failure MEDIUMTEXT NULL,
|
|
2033
2105
|
ADD COLUMN state VARCHAR(10) NULL,
|
|
2034
2106
|
ADD COLUMN visible_at DATETIME NULL`
|
|
2035
|
-
|
|
2107
|
+
yield* sql`UPDATE ${tableNameSql}
|
|
2036
2108
|
SET state = CASE WHEN completed THEN 'completed' ELSE 'pending' END,
|
|
2037
2109
|
visible_at = updated_at`
|
|
2038
|
-
|
|
2110
|
+
yield* sql`ALTER TABLE ${tableNameSql}
|
|
2039
2111
|
MODIFY COLUMN state VARCHAR(10) NOT NULL,
|
|
2040
2112
|
MODIFY COLUMN visible_at DATETIME NOT NULL,
|
|
2041
2113
|
DROP COLUMN completed`
|
|
2042
|
-
|
|
2043
|
-
mssql: ()
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
yield* sql`CREATE TABLE ${upgradedTable} (
|
|
2114
|
+
}),
|
|
2115
|
+
mssql: Effect.fnUntraced(function*() {
|
|
2116
|
+
const upgradedTableName = `${tableName}_upgrade`
|
|
2117
|
+
const upgradedTable = sql(upgradedTableName)
|
|
2118
|
+
yield* sql`CREATE TABLE ${upgradedTable} (
|
|
2048
2119
|
sequence BIGINT IDENTITY(1,1) PRIMARY KEY,
|
|
2049
2120
|
id NVARCHAR(255) NOT NULL,
|
|
2050
2121
|
queue_name NVARCHAR(255) NOT NULL,
|
|
@@ -2058,7 +2129,7 @@ const sqlMigrations = (tableName: string) =>
|
|
|
2058
2129
|
created_at DATETIME2 NOT NULL,
|
|
2059
2130
|
updated_at DATETIME2 NOT NULL
|
|
2060
2131
|
)`
|
|
2061
|
-
|
|
2132
|
+
yield* sql`SET IDENTITY_INSERT ${upgradedTable} ON;
|
|
2062
2133
|
INSERT INTO ${upgradedTable}
|
|
2063
2134
|
(sequence, id, queue_name, element, state, attempts, last_failure, visible_at,
|
|
2064
2135
|
acquired_at, acquired_by, created_at, updated_at)
|
|
@@ -2067,19 +2138,18 @@ const sqlMigrations = (tableName: string) =>
|
|
|
2067
2138
|
attempts, last_failure, updated_at, acquired_at, acquired_by, created_at, updated_at
|
|
2068
2139
|
FROM ${tableNameSql};
|
|
2069
2140
|
SET IDENTITY_INSERT ${upgradedTable} OFF`
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2141
|
+
yield* sql`DROP TABLE ${tableNameSql}`
|
|
2142
|
+
yield* sql`EXEC sp_rename ${upgradedTableName}, ${tableName}`
|
|
2143
|
+
yield* sql`CREATE UNIQUE INDEX ${sql(`idx_${tableName}_id`)} ON ${tableNameSql} (id, queue_name)`
|
|
2144
|
+
yield* sql`CREATE INDEX ${sql(`idx_${tableName}_update`)} ON ${tableNameSql} (sequence, acquired_by)`
|
|
2145
|
+
}),
|
|
2075
2146
|
// sqlite rebuilds the table because altering or dropping constrained
|
|
2076
2147
|
// columns is not portable across supported SQLite versions.
|
|
2077
|
-
orElse: ()
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
yield* sql`CREATE TABLE ${upgradedTable} (
|
|
2148
|
+
orElse: Effect.fnUntraced(function*() {
|
|
2149
|
+
const upgradedTableName = `${tableName}_upgrade`
|
|
2150
|
+
const upgradedTable = sql(upgradedTableName)
|
|
2151
|
+
yield* sql`DROP INDEX IF EXISTS ${takeIndex}`
|
|
2152
|
+
yield* sql`CREATE TABLE ${upgradedTable} (
|
|
2083
2153
|
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
2084
2154
|
id TEXT NOT NULL,
|
|
2085
2155
|
queue_name TEXT NOT NULL,
|
|
@@ -2093,18 +2163,18 @@ const sqlMigrations = (tableName: string) =>
|
|
|
2093
2163
|
created_at DATETIME NOT NULL,
|
|
2094
2164
|
updated_at DATETIME NOT NULL
|
|
2095
2165
|
)`
|
|
2096
|
-
|
|
2166
|
+
yield* sql`INSERT INTO ${upgradedTable}
|
|
2097
2167
|
(sequence, id, queue_name, element, state, attempts, last_failure, visible_at,
|
|
2098
2168
|
acquired_at, acquired_by, created_at, updated_at)
|
|
2099
2169
|
SELECT sequence, id, queue_name, element,
|
|
2100
2170
|
CASE WHEN completed THEN 'completed' ELSE 'pending' END,
|
|
2101
2171
|
attempts, last_failure, updated_at, acquired_at, acquired_by, created_at, updated_at
|
|
2102
2172
|
FROM ${tableNameSql}`
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2173
|
+
yield* sql`DROP TABLE ${tableNameSql}`
|
|
2174
|
+
yield* sql`ALTER TABLE ${upgradedTable} RENAME TO ${tableNameSql}`
|
|
2175
|
+
yield* sql`CREATE UNIQUE INDEX ${sql(`idx_${tableName}_id`)} ON ${tableNameSql} (id, queue_name)`
|
|
2176
|
+
yield* sql`CREATE INDEX ${sql(`idx_${tableName}_update`)} ON ${tableNameSql} (sequence, acquired_by)`
|
|
2177
|
+
})
|
|
2108
2178
|
})
|
|
2109
2179
|
|
|
2110
2180
|
// partial index where supported, so pollers never scan completed rows
|