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
package/src/Metric.ts
CHANGED
|
@@ -17,7 +17,7 @@ import * as Context from "./Context.ts"
|
|
|
17
17
|
import * as Duration from "./Duration.ts"
|
|
18
18
|
import type { Effect } from "./Effect.ts"
|
|
19
19
|
import type { Exit } from "./Exit.ts"
|
|
20
|
-
import { constUndefined, dual } from "./Function.ts"
|
|
20
|
+
import { constUndefined, constVoid, dual, identity } from "./Function.ts"
|
|
21
21
|
import * as InternalEffect from "./internal/effect.ts"
|
|
22
22
|
import * as InternalMetric from "./internal/metric.ts"
|
|
23
23
|
import * as InternalRecord from "./internal/record.ts"
|
|
@@ -576,7 +576,7 @@ export interface GaugeState<in Input extends number | bigint> {
|
|
|
576
576
|
* start: 1,
|
|
577
577
|
* factor: 2,
|
|
578
578
|
* count: 10
|
|
579
|
-
* }) // 1, 2, 4, 8, ...,
|
|
579
|
+
* }) // 1, 2, 4, 8, ..., 256, Infinity
|
|
580
580
|
* }
|
|
581
581
|
* )
|
|
582
582
|
*
|
|
@@ -696,8 +696,8 @@ export interface Histogram<Input> extends Metric<Input, HistogramState> {}
|
|
|
696
696
|
* totalRequests: state.count, // 5
|
|
697
697
|
* fastestResponse: state.min, // 50
|
|
698
698
|
* slowestResponse: state.max, // 750
|
|
699
|
-
* averageResponse: state.sum / state.count, //
|
|
700
|
-
* totalTime: state.sum, //
|
|
699
|
+
* averageResponse: state.sum / state.count, // 259
|
|
700
|
+
* totalTime: state.sum, // 1295
|
|
701
701
|
* distribution: bucketAnalysis
|
|
702
702
|
* // Example distribution:
|
|
703
703
|
* // [{ range: "0-100ms", count: 2, percentage: 40.0 },
|
|
@@ -1678,6 +1678,7 @@ abstract class Metric$<in Input, out State> implements Metric<Input, State> {
|
|
|
1678
1678
|
declare readonly State: Covariant<State>
|
|
1679
1679
|
|
|
1680
1680
|
#extraAttributes: Metric.AttributeSet | undefined
|
|
1681
|
+
#mergedAttributes: Metric.AttributeSet | undefined
|
|
1681
1682
|
#key = ""
|
|
1682
1683
|
|
|
1683
1684
|
readonly id: string
|
|
@@ -1709,29 +1710,61 @@ abstract class Metric$<in Input, out State> implements Metric<Input, State> {
|
|
|
1709
1710
|
abstract createHooks(): Metric.Hooks<Input, State>
|
|
1710
1711
|
|
|
1711
1712
|
hook(context: Context.Context<never>): Metric.Hooks<Input, State> {
|
|
1712
|
-
const
|
|
1713
|
-
if (extraAttributes !== this.#extraAttributes) {
|
|
1714
|
-
this.#extraAttributes = extraAttributes
|
|
1715
|
-
this.#key = makeKey(this, mergeAttributes(this.attributes, extraAttributes))
|
|
1716
|
-
}
|
|
1713
|
+
const key = this.key(context)
|
|
1717
1714
|
// The registry owns the series, so it is looked up on every update.
|
|
1718
1715
|
const registry = Context.get(context, MetricRegistry)
|
|
1719
|
-
let metadata = registry.get(
|
|
1716
|
+
let metadata = registry.get(key)
|
|
1720
1717
|
if (Predicate.isUndefined(metadata)) {
|
|
1721
|
-
metadata =
|
|
1722
|
-
|
|
1723
|
-
type: this.type,
|
|
1724
|
-
description: this.description,
|
|
1725
|
-
attributes: Object.keys(extraAttributes).length > 0
|
|
1726
|
-
? mergeAttributes(this.attributes, extraAttributes)
|
|
1727
|
-
: this.attributes,
|
|
1728
|
-
hooks: this.createHooks()
|
|
1729
|
-
}
|
|
1730
|
-
registry.set(this.#key, metadata)
|
|
1718
|
+
metadata = this.metadata(this.createHooks())
|
|
1719
|
+
registry.set(key, metadata)
|
|
1731
1720
|
}
|
|
1732
1721
|
return metadata.hooks
|
|
1733
1722
|
}
|
|
1734
1723
|
|
|
1724
|
+
removeUnsafe(context: Context.Context<never>): void {
|
|
1725
|
+
Context.get(context, MetricRegistry).delete(this.key(context))
|
|
1726
|
+
}
|
|
1727
|
+
|
|
1728
|
+
registerUnsafe(context: Context.Context<never>, hooks: Metric.Hooks<Input, State>): Registration {
|
|
1729
|
+
const key = this.key(context)
|
|
1730
|
+
// Keep the registry from registration time, so removal does not depend on
|
|
1731
|
+
// the context it is called from.
|
|
1732
|
+
const registry = Context.get(context, MetricRegistry)
|
|
1733
|
+
const metadata = this.metadata({ get: hooks.get, update: constVoid, modify: constVoid })
|
|
1734
|
+
registry.set(key, metadata)
|
|
1735
|
+
return {
|
|
1736
|
+
remove() {
|
|
1737
|
+
if (registry.get(key) === metadata) {
|
|
1738
|
+
registry.delete(key)
|
|
1739
|
+
}
|
|
1740
|
+
}
|
|
1741
|
+
}
|
|
1742
|
+
}
|
|
1743
|
+
|
|
1744
|
+
// Merges the attributes once per contextual attribute set, so series key and
|
|
1745
|
+
// metadata share the result.
|
|
1746
|
+
private key(context: Context.Context<never>): string {
|
|
1747
|
+
const extraAttributes = Context.get(context, CurrentMetricAttributes)
|
|
1748
|
+
if (extraAttributes !== this.#extraAttributes) {
|
|
1749
|
+
this.#extraAttributes = extraAttributes
|
|
1750
|
+
const merged = mergeAttributes(this.attributes, extraAttributes)
|
|
1751
|
+
this.#mergedAttributes = Object.keys(extraAttributes).length > 0 ? merged : this.attributes
|
|
1752
|
+
this.#key = makeKey(this, merged)
|
|
1753
|
+
}
|
|
1754
|
+
return this.#key
|
|
1755
|
+
}
|
|
1756
|
+
|
|
1757
|
+
// Must follow `key(context)`, which computes the merged attributes.
|
|
1758
|
+
private metadata(hooks: Metric.Hooks<Input, State>): Metric.Metadata<Input, State> {
|
|
1759
|
+
return {
|
|
1760
|
+
id: this.id,
|
|
1761
|
+
type: this.type,
|
|
1762
|
+
description: this.description,
|
|
1763
|
+
attributes: this.#mergedAttributes,
|
|
1764
|
+
hooks
|
|
1765
|
+
}
|
|
1766
|
+
}
|
|
1767
|
+
|
|
1735
1768
|
pipe() {
|
|
1736
1769
|
return pipeArguments(this, arguments)
|
|
1737
1770
|
}
|
|
@@ -1992,29 +2025,50 @@ class SummaryMetric extends Metric$<readonly [value: number, timestamp: number],
|
|
|
1992
2025
|
}
|
|
1993
2026
|
}
|
|
1994
2027
|
|
|
1995
|
-
|
|
2028
|
+
// Every operation maps the context first and the input second, so wrappers
|
|
2029
|
+
// such as `withAttributes` address the same series for update, remove and
|
|
2030
|
+
// register.
|
|
2031
|
+
class MetricTransform<Input, out State, in Input2> extends Metric$<Input2, State> {
|
|
1996
2032
|
type: Metric.Type
|
|
1997
2033
|
readonly metric: Metric<Input, State>
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
override readonly modifyUnsafe: (input: Input2, context: Context.Context<never>) => void
|
|
2034
|
+
readonly mapInput: (input: Input2, context: Context.Context<never>) => Input
|
|
2035
|
+
readonly mapContext: (context: Context.Context<never>) => Context.Context<never>
|
|
2001
2036
|
|
|
2002
2037
|
constructor(
|
|
2003
2038
|
metric: Metric<Input, State>,
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
modifyUnsafe: (input: Input2, context: Context.Context<never>) => void
|
|
2039
|
+
mapInput: (input: Input2, context: Context.Context<never>) => Input,
|
|
2040
|
+
mapContext: (context: Context.Context<never>) => Context.Context<never>
|
|
2007
2041
|
) {
|
|
2008
2042
|
super(metric.id, metric.description, metric.attributes)
|
|
2009
2043
|
this.metric = metric
|
|
2010
|
-
this.
|
|
2011
|
-
this.
|
|
2012
|
-
this.modifyUnsafe = modifyUnsafe
|
|
2044
|
+
this.mapInput = mapInput
|
|
2045
|
+
this.mapContext = mapContext
|
|
2013
2046
|
this.type = metric.type
|
|
2014
2047
|
}
|
|
2015
2048
|
createHooks(): Metric.Hooks<Input2, State> {
|
|
2016
2049
|
return (this.metric as any).createHooks()
|
|
2017
2050
|
}
|
|
2051
|
+
override valueUnsafe(context: Context.Context<never>): State {
|
|
2052
|
+
return this.metric.valueUnsafe(this.mapContext(context))
|
|
2053
|
+
}
|
|
2054
|
+
override updateUnsafe(input: Input2, context: Context.Context<never>): void {
|
|
2055
|
+
const mapped = this.mapContext(context)
|
|
2056
|
+
this.metric.updateUnsafe(this.mapInput(input, mapped), mapped)
|
|
2057
|
+
}
|
|
2058
|
+
override modifyUnsafe(input: Input2, context: Context.Context<never>): void {
|
|
2059
|
+
const mapped = this.mapContext(context)
|
|
2060
|
+
this.metric.modifyUnsafe(this.mapInput(input, mapped), mapped)
|
|
2061
|
+
}
|
|
2062
|
+
override removeUnsafe(context: Context.Context<never>): void {
|
|
2063
|
+
removeUnsafe(this.metric, this.mapContext(context))
|
|
2064
|
+
}
|
|
2065
|
+
override registerUnsafe(context: Context.Context<never>, hooks: Metric.Hooks<Input2, State>): Registration {
|
|
2066
|
+
return registerUnsafe(this.metric, this.mapContext(context), {
|
|
2067
|
+
get: hooks.get,
|
|
2068
|
+
update: constVoid,
|
|
2069
|
+
modify: constVoid
|
|
2070
|
+
})
|
|
2071
|
+
}
|
|
2018
2072
|
}
|
|
2019
2073
|
|
|
2020
2074
|
/**
|
|
@@ -3001,93 +3055,7 @@ export const modify: {
|
|
|
3001
3055
|
*/
|
|
3002
3056
|
<Input, State>(self: Metric<Input, State>, input: Input): Effect<void>
|
|
3003
3057
|
} = dual<
|
|
3004
|
-
/**
|
|
3005
|
-
* Modifies the metric with the specified input.
|
|
3006
|
-
*
|
|
3007
|
-
* **Details**
|
|
3008
|
-
*
|
|
3009
|
-
* The behavior of `modify` depends on the metric type. Counters add the input
|
|
3010
|
-
* value to the current count, gauges add the input value to the current gauge
|
|
3011
|
-
* value, frequencies increment the occurrence count for the input string,
|
|
3012
|
-
* histograms record the input value in the appropriate bucket, and summaries
|
|
3013
|
-
* record the input observation.
|
|
3014
|
-
*
|
|
3015
|
-
* **Example** (Modifying metric values)
|
|
3016
|
-
*
|
|
3017
|
-
* ```ts import.meta.vitest
|
|
3018
|
-
* import { Effect, Metric } from "effect"
|
|
3019
|
-
*
|
|
3020
|
-
* const temperatureGauge = Metric.gauge("temperature")
|
|
3021
|
-
* const requestCounter = Metric.counter("requests")
|
|
3022
|
-
*
|
|
3023
|
-
* const program = Effect.gen(function*() {
|
|
3024
|
-
* // Set initial temperature
|
|
3025
|
-
* yield* Metric.update(temperatureGauge, 20)
|
|
3026
|
-
*
|
|
3027
|
-
* // Modify by adding/subtracting values
|
|
3028
|
-
* yield* Metric.modify(temperatureGauge, 5) // Now 25
|
|
3029
|
-
* yield* Metric.modify(temperatureGauge, -3) // Now 22
|
|
3030
|
-
*
|
|
3031
|
-
* // For counters, modify increments by the specified amount
|
|
3032
|
-
* yield* Metric.modify(requestCounter, 10) // Add 10 to counter
|
|
3033
|
-
* yield* Metric.modify(requestCounter, 5) // Add 5 more (total: 15)
|
|
3034
|
-
*
|
|
3035
|
-
* const temp = yield* Metric.value(temperatureGauge)
|
|
3036
|
-
* const requests = yield* Metric.value(requestCounter)
|
|
3037
|
-
* return [temp.value, requests.count] as const
|
|
3038
|
-
* })
|
|
3039
|
-
*
|
|
3040
|
-
* await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map())) // => [22, 15]
|
|
3041
|
-
* ```
|
|
3042
|
-
*
|
|
3043
|
-
* @stability stable
|
|
3044
|
-
* @category mutations
|
|
3045
|
-
* @since 3.6.5
|
|
3046
|
-
*/
|
|
3047
3058
|
<Input>(input: Input) => <State>(self: Metric<Input, State>) => Effect<void>,
|
|
3048
|
-
/**
|
|
3049
|
-
* Modifies the metric with the specified input.
|
|
3050
|
-
*
|
|
3051
|
-
* **Details**
|
|
3052
|
-
*
|
|
3053
|
-
* The behavior of `modify` depends on the metric type. Counters add the input
|
|
3054
|
-
* value to the current count, gauges add the input value to the current gauge
|
|
3055
|
-
* value, frequencies increment the occurrence count for the input string,
|
|
3056
|
-
* histograms record the input value in the appropriate bucket, and summaries
|
|
3057
|
-
* record the input observation.
|
|
3058
|
-
*
|
|
3059
|
-
* **Example** (Modifying metric values)
|
|
3060
|
-
*
|
|
3061
|
-
* ```ts import.meta.vitest
|
|
3062
|
-
* import { Effect, Metric } from "effect"
|
|
3063
|
-
*
|
|
3064
|
-
* const temperatureGauge = Metric.gauge("temperature")
|
|
3065
|
-
* const requestCounter = Metric.counter("requests")
|
|
3066
|
-
*
|
|
3067
|
-
* const program = Effect.gen(function*() {
|
|
3068
|
-
* // Set initial temperature
|
|
3069
|
-
* yield* Metric.update(temperatureGauge, 20)
|
|
3070
|
-
*
|
|
3071
|
-
* // Modify by adding/subtracting values
|
|
3072
|
-
* yield* Metric.modify(temperatureGauge, 5) // Now 25
|
|
3073
|
-
* yield* Metric.modify(temperatureGauge, -3) // Now 22
|
|
3074
|
-
*
|
|
3075
|
-
* // For counters, modify increments by the specified amount
|
|
3076
|
-
* yield* Metric.modify(requestCounter, 10) // Add 10 to counter
|
|
3077
|
-
* yield* Metric.modify(requestCounter, 5) // Add 5 more (total: 15)
|
|
3078
|
-
*
|
|
3079
|
-
* const temp = yield* Metric.value(temperatureGauge)
|
|
3080
|
-
* const requests = yield* Metric.value(requestCounter)
|
|
3081
|
-
* return [temp.value, requests.count] as const
|
|
3082
|
-
* })
|
|
3083
|
-
*
|
|
3084
|
-
* await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map())) // => [22, 15]
|
|
3085
|
-
* ```
|
|
3086
|
-
*
|
|
3087
|
-
* @stability stable
|
|
3088
|
-
* @category mutations
|
|
3089
|
-
* @since 3.6.5
|
|
3090
|
-
*/
|
|
3091
3059
|
<Input, State>(self: Metric<Input, State>, input: Input) => Effect<void>
|
|
3092
3060
|
>(2, (self, input) =>
|
|
3093
3061
|
InternalEffect.flatMap(
|
|
@@ -3252,109 +3220,7 @@ export const update: {
|
|
|
3252
3220
|
*/
|
|
3253
3221
|
<Input, State>(self: Metric<Input, State>, input: Input): Effect<void>
|
|
3254
3222
|
} = dual<
|
|
3255
|
-
/**
|
|
3256
|
-
* Updates the metric with the specified input.
|
|
3257
|
-
*
|
|
3258
|
-
* **Details**
|
|
3259
|
-
*
|
|
3260
|
-
* The behavior of `update` depends on the metric type. Counters add the input
|
|
3261
|
-
* value to the current count, gauges replace the current value with the input
|
|
3262
|
-
* value, frequencies increment the occurrence count for the input string,
|
|
3263
|
-
* histograms record the input value in the appropriate bucket, and summaries
|
|
3264
|
-
* record the input value as a new observation.
|
|
3265
|
-
*
|
|
3266
|
-
* **Example** (Updating metric values)
|
|
3267
|
-
*
|
|
3268
|
-
* ```ts import.meta.vitest
|
|
3269
|
-
* import { Effect, Metric } from "effect"
|
|
3270
|
-
*
|
|
3271
|
-
* const cpuUsage = Metric.gauge("cpu_usage_percent")
|
|
3272
|
-
* const httpStatus = Metric.frequency("http_status_codes")
|
|
3273
|
-
* const responseTime = Metric.histogram("response_time_ms", {
|
|
3274
|
-
* boundaries: [100, 500, 1000, 2000]
|
|
3275
|
-
* })
|
|
3276
|
-
*
|
|
3277
|
-
* const program = Effect.gen(function*() {
|
|
3278
|
-
* // Update gauge to specific values
|
|
3279
|
-
* yield* Metric.update(cpuUsage, 45.2)
|
|
3280
|
-
* yield* Metric.update(cpuUsage, 67.8) // Replaces previous value
|
|
3281
|
-
*
|
|
3282
|
-
* // Track HTTP status code occurrences
|
|
3283
|
-
* yield* Metric.update(httpStatus, "200")
|
|
3284
|
-
* yield* Metric.update(httpStatus, "404")
|
|
3285
|
-
* yield* Metric.update(httpStatus, "200") // Increments 200 count
|
|
3286
|
-
*
|
|
3287
|
-
* // Record response times
|
|
3288
|
-
* yield* Metric.update(responseTime, 250)
|
|
3289
|
-
* yield* Metric.update(responseTime, 750)
|
|
3290
|
-
* yield* Metric.update(responseTime, 1500)
|
|
3291
|
-
*
|
|
3292
|
-
* // Check current states
|
|
3293
|
-
* const cpu = yield* Metric.value(cpuUsage)
|
|
3294
|
-
* const statuses = yield* Metric.value(httpStatus)
|
|
3295
|
-
* const times = yield* Metric.value(responseTime)
|
|
3296
|
-
* return [cpu.value, statuses.occurrences.get("200"), times.count] as const
|
|
3297
|
-
* })
|
|
3298
|
-
*
|
|
3299
|
-
* await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map())) // => [67.8, 2, 3]
|
|
3300
|
-
* ```
|
|
3301
|
-
*
|
|
3302
|
-
* @stability stable
|
|
3303
|
-
* @category mutations
|
|
3304
|
-
* @since 2.0.0
|
|
3305
|
-
*/
|
|
3306
3223
|
<Input>(input: Input) => <State>(self: Metric<Input, State>) => Effect<void>,
|
|
3307
|
-
/**
|
|
3308
|
-
* Updates the metric with the specified input.
|
|
3309
|
-
*
|
|
3310
|
-
* **Details**
|
|
3311
|
-
*
|
|
3312
|
-
* The behavior of `update` depends on the metric type. Counters add the input
|
|
3313
|
-
* value to the current count, gauges replace the current value with the input
|
|
3314
|
-
* value, frequencies increment the occurrence count for the input string,
|
|
3315
|
-
* histograms record the input value in the appropriate bucket, and summaries
|
|
3316
|
-
* record the input value as a new observation.
|
|
3317
|
-
*
|
|
3318
|
-
* **Example** (Updating metric values)
|
|
3319
|
-
*
|
|
3320
|
-
* ```ts import.meta.vitest
|
|
3321
|
-
* import { Effect, Metric } from "effect"
|
|
3322
|
-
*
|
|
3323
|
-
* const cpuUsage = Metric.gauge("cpu_usage_percent")
|
|
3324
|
-
* const httpStatus = Metric.frequency("http_status_codes")
|
|
3325
|
-
* const responseTime = Metric.histogram("response_time_ms", {
|
|
3326
|
-
* boundaries: [100, 500, 1000, 2000]
|
|
3327
|
-
* })
|
|
3328
|
-
*
|
|
3329
|
-
* const program = Effect.gen(function*() {
|
|
3330
|
-
* // Update gauge to specific values
|
|
3331
|
-
* yield* Metric.update(cpuUsage, 45.2)
|
|
3332
|
-
* yield* Metric.update(cpuUsage, 67.8) // Replaces previous value
|
|
3333
|
-
*
|
|
3334
|
-
* // Track HTTP status code occurrences
|
|
3335
|
-
* yield* Metric.update(httpStatus, "200")
|
|
3336
|
-
* yield* Metric.update(httpStatus, "404")
|
|
3337
|
-
* yield* Metric.update(httpStatus, "200") // Increments 200 count
|
|
3338
|
-
*
|
|
3339
|
-
* // Record response times
|
|
3340
|
-
* yield* Metric.update(responseTime, 250)
|
|
3341
|
-
* yield* Metric.update(responseTime, 750)
|
|
3342
|
-
* yield* Metric.update(responseTime, 1500)
|
|
3343
|
-
*
|
|
3344
|
-
* // Check current states
|
|
3345
|
-
* const cpu = yield* Metric.value(cpuUsage)
|
|
3346
|
-
* const statuses = yield* Metric.value(httpStatus)
|
|
3347
|
-
* const times = yield* Metric.value(responseTime)
|
|
3348
|
-
* return [cpu.value, statuses.occurrences.get("200"), times.count] as const
|
|
3349
|
-
* })
|
|
3350
|
-
*
|
|
3351
|
-
* await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map())) // => [67.8, 2, 3]
|
|
3352
|
-
* ```
|
|
3353
|
-
*
|
|
3354
|
-
* @stability stable
|
|
3355
|
-
* @category mutations
|
|
3356
|
-
* @since 2.0.0
|
|
3357
|
-
*/
|
|
3358
3224
|
<Input, State>(self: Metric<Input, State>, input: Input) => Effect<void>
|
|
3359
3225
|
>(
|
|
3360
3226
|
2,
|
|
@@ -3363,38 +3229,180 @@ export const update: {
|
|
|
3363
3229
|
)
|
|
3364
3230
|
|
|
3365
3231
|
/**
|
|
3366
|
-
*
|
|
3367
|
-
* of the specified new type, which must be transformable to the input type of
|
|
3368
|
-
* this metric.
|
|
3232
|
+
* Handle for a series registered with `Metric.registerUnsafe`.
|
|
3369
3233
|
*
|
|
3370
|
-
* **
|
|
3234
|
+
* **Details**
|
|
3235
|
+
*
|
|
3236
|
+
* `remove` deletes the series from the registry it was registered into, but
|
|
3237
|
+
* only while the registry still holds this registration. Calling it again, or
|
|
3238
|
+
* after another registration has replaced the series, does nothing.
|
|
3239
|
+
*
|
|
3240
|
+
* @stability unstable
|
|
3241
|
+
* @category models
|
|
3242
|
+
* @since 4.0.6
|
|
3243
|
+
*/
|
|
3244
|
+
export interface Registration {
|
|
3245
|
+
readonly remove: () => void
|
|
3246
|
+
}
|
|
3247
|
+
|
|
3248
|
+
/**
|
|
3249
|
+
* Removes the series of a metric for the current attributes from the metric
|
|
3250
|
+
* registry.
|
|
3251
|
+
*
|
|
3252
|
+
* **When to use**
|
|
3253
|
+
*
|
|
3254
|
+
* Use when a series describes something that has gone away, such as a
|
|
3255
|
+
* connection or an entity, so the registry and exporters stop tracking it.
|
|
3256
|
+
*
|
|
3257
|
+
* **Details**
|
|
3258
|
+
*
|
|
3259
|
+
* The series is identified the same way `update` identifies it: by the metric
|
|
3260
|
+
* and its attributes merged with `CurrentMetricAttributes`. Other series of the
|
|
3261
|
+
* same metric are left alone. A later update creates the series again from its
|
|
3262
|
+
* initial state. Removing a series that does not exist does nothing.
|
|
3263
|
+
*
|
|
3264
|
+
* **Example** (Removing a series)
|
|
3371
3265
|
*
|
|
3372
3266
|
* ```ts import.meta.vitest
|
|
3373
3267
|
* import { Effect, Metric } from "effect"
|
|
3374
3268
|
*
|
|
3375
|
-
* const
|
|
3376
|
-
* description: "Request duration in milliseconds",
|
|
3377
|
-
* boundaries: Metric.linearBoundaries({ start: 0, width: 100, count: 10 })
|
|
3378
|
-
* })
|
|
3379
|
-
*
|
|
3380
|
-
* // Accept duration strings while recording numeric milliseconds
|
|
3381
|
-
* const durationStringHistogram = Metric.mapInput(
|
|
3382
|
-
* durationHistogram,
|
|
3383
|
-
* (input: string) => Number(input)
|
|
3384
|
-
* )
|
|
3269
|
+
* const connections = Metric.gauge("connections")
|
|
3385
3270
|
*
|
|
3386
3271
|
* const program = Effect.gen(function*() {
|
|
3387
|
-
* yield* Metric.update(
|
|
3388
|
-
*
|
|
3272
|
+
* yield* Metric.update(connections, 3).pipe(
|
|
3273
|
+
* Effect.provideService(Metric.CurrentMetricAttributes, { pool: "a" })
|
|
3274
|
+
* )
|
|
3275
|
+
* yield* Metric.update(connections, 5).pipe(
|
|
3276
|
+
* Effect.provideService(Metric.CurrentMetricAttributes, { pool: "b" })
|
|
3277
|
+
* )
|
|
3278
|
+
* yield* Metric.remove(connections).pipe(
|
|
3279
|
+
* Effect.provideService(Metric.CurrentMetricAttributes, { pool: "a" })
|
|
3280
|
+
* )
|
|
3281
|
+
* const snapshots = yield* Metric.snapshot
|
|
3282
|
+
* return snapshots.map((snapshot) => snapshot.attributes)
|
|
3389
3283
|
* })
|
|
3390
3284
|
*
|
|
3391
|
-
*
|
|
3392
|
-
* const values = [value.count, value.sum] // => [1, 250]
|
|
3285
|
+
* await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map())) // => [{ pool: "b" }]
|
|
3393
3286
|
* ```
|
|
3394
3287
|
*
|
|
3395
|
-
* @
|
|
3396
|
-
*
|
|
3397
|
-
* @
|
|
3288
|
+
* @see {@link removeUnsafe} for removing a series with an explicit `Context`
|
|
3289
|
+
*
|
|
3290
|
+
* @stability unstable
|
|
3291
|
+
* @category mutations
|
|
3292
|
+
* @since 4.0.6
|
|
3293
|
+
*/
|
|
3294
|
+
export const remove = <Input, State>(self: Metric<Input, State>): Effect<void> =>
|
|
3295
|
+
InternalEffect.contextWith((context) => InternalEffect.sync(() => removeUnsafe(self, context)))
|
|
3296
|
+
|
|
3297
|
+
/**
|
|
3298
|
+
* Removes the series of a metric for the attributes in the provided `Context`
|
|
3299
|
+
* from the metric registry in that `Context`.
|
|
3300
|
+
*
|
|
3301
|
+
* **When to use**
|
|
3302
|
+
*
|
|
3303
|
+
* Use when a low-level integration already holds a `Context`. Use `remove`
|
|
3304
|
+
* in application code.
|
|
3305
|
+
*
|
|
3306
|
+
* @see {@link remove} for the `Effect` version
|
|
3307
|
+
*
|
|
3308
|
+
* @stability unstable
|
|
3309
|
+
* @category mutations
|
|
3310
|
+
* @since 4.0.6
|
|
3311
|
+
*/
|
|
3312
|
+
export const removeUnsafe = <Input, State>(self: Metric<Input, State>, context: Context.Context<never>): void =>
|
|
3313
|
+
(self as Metric$<Input, State>).removeUnsafe(context)
|
|
3314
|
+
|
|
3315
|
+
/**
|
|
3316
|
+
* Registers a series backed by caller-supplied hooks, for gauges whose value is
|
|
3317
|
+
* read when metrics are snapshotted rather than pushed with updates.
|
|
3318
|
+
*
|
|
3319
|
+
* **When to use**
|
|
3320
|
+
*
|
|
3321
|
+
* Use when the value already lives in some data structure, such as a queue
|
|
3322
|
+
* size, and updating a metric on every change would cost more than reading the
|
|
3323
|
+
* value at export time.
|
|
3324
|
+
*
|
|
3325
|
+
* **Details**
|
|
3326
|
+
*
|
|
3327
|
+
* The series is identified as in `remove`, using the attributes and registry
|
|
3328
|
+
* from `context`, and replaces any series with the same identity. `hooks.get`
|
|
3329
|
+
* is called each time the series is read, for example by `snapshot` or an
|
|
3330
|
+
* exporter. The returned {@link Registration} removes it again.
|
|
3331
|
+
* `update` and `modify` on this series do nothing; the supplied mutation hooks
|
|
3332
|
+
* are ignored.
|
|
3333
|
+
*
|
|
3334
|
+
* **Gotchas**
|
|
3335
|
+
*
|
|
3336
|
+
* The registry keeps `hooks.get` reachable until the series is removed, along
|
|
3337
|
+
* with anything it closes over. Call `remove` once the source goes away.
|
|
3338
|
+
*
|
|
3339
|
+
* **Example** (Reporting a queue size on snapshot)
|
|
3340
|
+
*
|
|
3341
|
+
* ```ts import.meta.vitest
|
|
3342
|
+
* import { Context, Metric } from "effect"
|
|
3343
|
+
*
|
|
3344
|
+
* const context = Context.make(Metric.MetricRegistry, new Map())
|
|
3345
|
+
* const queueSize = Metric.gauge("queue_size")
|
|
3346
|
+
* const queue: Array<string> = ["a", "b"]
|
|
3347
|
+
*
|
|
3348
|
+
* const registration = Metric.registerUnsafe(queueSize, context, {
|
|
3349
|
+
* get: () => ({ value: queue.length }),
|
|
3350
|
+
* update: () => {},
|
|
3351
|
+
* modify: () => {}
|
|
3352
|
+
* })
|
|
3353
|
+
* queue.push("c")
|
|
3354
|
+
* const sizes = Metric.snapshotUnsafe(context).map((snapshot) => snapshot.state)
|
|
3355
|
+
* registration.remove()
|
|
3356
|
+
*
|
|
3357
|
+
* sizes // => [{ value: 3 }]
|
|
3358
|
+
* Metric.snapshotUnsafe(context).length // => 0
|
|
3359
|
+
* ```
|
|
3360
|
+
*
|
|
3361
|
+
* @see {@link remove} for removing a series updated with `update`
|
|
3362
|
+
*
|
|
3363
|
+
* @stability unstable
|
|
3364
|
+
* @category mutations
|
|
3365
|
+
* @since 4.0.6
|
|
3366
|
+
*/
|
|
3367
|
+
export const registerUnsafe = <Input, State>(
|
|
3368
|
+
self: Metric<Input, State>,
|
|
3369
|
+
context: Context.Context<never>,
|
|
3370
|
+
hooks: Metric.Hooks<Input, State>
|
|
3371
|
+
): Registration => (self as Metric$<Input, State>).registerUnsafe(context, hooks)
|
|
3372
|
+
|
|
3373
|
+
/**
|
|
3374
|
+
* Returns a new metric that is powered by this one, but which accepts updates
|
|
3375
|
+
* of the specified new type, which must be transformable to the input type of
|
|
3376
|
+
* this metric.
|
|
3377
|
+
*
|
|
3378
|
+
* **Example** (Mapping metric inputs)
|
|
3379
|
+
*
|
|
3380
|
+
* ```ts import.meta.vitest
|
|
3381
|
+
* import { Effect, Metric } from "effect"
|
|
3382
|
+
*
|
|
3383
|
+
* const durationHistogram = Metric.histogram("request_duration_ms", {
|
|
3384
|
+
* description: "Request duration in milliseconds",
|
|
3385
|
+
* boundaries: Metric.linearBoundaries({ start: 0, width: 100, count: 10 })
|
|
3386
|
+
* })
|
|
3387
|
+
*
|
|
3388
|
+
* // Accept duration strings while recording numeric milliseconds
|
|
3389
|
+
* const durationStringHistogram = Metric.mapInput(
|
|
3390
|
+
* durationHistogram,
|
|
3391
|
+
* (input: string) => Number(input)
|
|
3392
|
+
* )
|
|
3393
|
+
*
|
|
3394
|
+
* const program = Effect.gen(function*() {
|
|
3395
|
+
* yield* Metric.update(durationStringHistogram, "250")
|
|
3396
|
+
* return yield* Metric.value(durationStringHistogram)
|
|
3397
|
+
* })
|
|
3398
|
+
*
|
|
3399
|
+
* const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
|
|
3400
|
+
* const values = [value.count, value.sum] // => [1, 250]
|
|
3401
|
+
* ```
|
|
3402
|
+
*
|
|
3403
|
+
* @stability stable
|
|
3404
|
+
* @category annotations
|
|
3405
|
+
* @since 2.0.0
|
|
3398
3406
|
*/
|
|
3399
3407
|
export const mapInput: {
|
|
3400
3408
|
/**
|
|
@@ -3471,75 +3479,9 @@ export const mapInput: {
|
|
|
3471
3479
|
f: (input: Input2, context: Context.Context<never>) => Input
|
|
3472
3480
|
): Metric<Input2, State>
|
|
3473
3481
|
} = dual<
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
* this metric.
|
|
3478
|
-
*
|
|
3479
|
-
* **Example** (Mapping metric inputs)
|
|
3480
|
-
*
|
|
3481
|
-
* ```ts import.meta.vitest
|
|
3482
|
-
* import { Effect, Metric } from "effect"
|
|
3483
|
-
*
|
|
3484
|
-
* const durationHistogram = Metric.histogram("request_duration_ms", {
|
|
3485
|
-
* description: "Request duration in milliseconds",
|
|
3486
|
-
* boundaries: Metric.linearBoundaries({ start: 0, width: 100, count: 10 })
|
|
3487
|
-
* })
|
|
3488
|
-
*
|
|
3489
|
-
* // Accept duration strings while recording numeric milliseconds
|
|
3490
|
-
* const durationStringHistogram = Metric.mapInput(
|
|
3491
|
-
* durationHistogram,
|
|
3492
|
-
* (input: string) => Number(input)
|
|
3493
|
-
* )
|
|
3494
|
-
*
|
|
3495
|
-
* const program = Effect.gen(function*() {
|
|
3496
|
-
* yield* Metric.update(durationStringHistogram, "250")
|
|
3497
|
-
* return yield* Metric.value(durationStringHistogram)
|
|
3498
|
-
* })
|
|
3499
|
-
*
|
|
3500
|
-
* const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
|
|
3501
|
-
* const values = [value.count, value.sum] // => [1, 250]
|
|
3502
|
-
* ```
|
|
3503
|
-
*
|
|
3504
|
-
* @stability stable
|
|
3505
|
-
* @category annotations
|
|
3506
|
-
* @since 2.0.0
|
|
3507
|
-
*/
|
|
3508
|
-
<Input, Input2 extends Input>(f: (input: Input2, context: Context.Context<never>) => Input) => <State>(self: Metric<Input, State>) => Metric<Input2, State>,
|
|
3509
|
-
/**
|
|
3510
|
-
* Returns a new metric that is powered by this one, but which accepts updates
|
|
3511
|
-
* of the specified new type, which must be transformable to the input type of
|
|
3512
|
-
* this metric.
|
|
3513
|
-
*
|
|
3514
|
-
* **Example** (Mapping metric inputs)
|
|
3515
|
-
*
|
|
3516
|
-
* ```ts import.meta.vitest
|
|
3517
|
-
* import { Effect, Metric } from "effect"
|
|
3518
|
-
*
|
|
3519
|
-
* const durationHistogram = Metric.histogram("request_duration_ms", {
|
|
3520
|
-
* description: "Request duration in milliseconds",
|
|
3521
|
-
* boundaries: Metric.linearBoundaries({ start: 0, width: 100, count: 10 })
|
|
3522
|
-
* })
|
|
3523
|
-
*
|
|
3524
|
-
* // Accept duration strings while recording numeric milliseconds
|
|
3525
|
-
* const durationStringHistogram = Metric.mapInput(
|
|
3526
|
-
* durationHistogram,
|
|
3527
|
-
* (input: string) => Number(input)
|
|
3528
|
-
* )
|
|
3529
|
-
*
|
|
3530
|
-
* const program = Effect.gen(function*() {
|
|
3531
|
-
* yield* Metric.update(durationStringHistogram, "250")
|
|
3532
|
-
* return yield* Metric.value(durationStringHistogram)
|
|
3533
|
-
* })
|
|
3534
|
-
*
|
|
3535
|
-
* const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
|
|
3536
|
-
* const values = [value.count, value.sum] // => [1, 250]
|
|
3537
|
-
* ```
|
|
3538
|
-
*
|
|
3539
|
-
* @stability stable
|
|
3540
|
-
* @category annotations
|
|
3541
|
-
* @since 2.0.0
|
|
3542
|
-
*/
|
|
3482
|
+
<Input, Input2 extends Input>(
|
|
3483
|
+
f: (input: Input2, context: Context.Context<never>) => Input
|
|
3484
|
+
) => <State>(self: Metric<Input, State>) => Metric<Input2, State>,
|
|
3543
3485
|
<Input, State, Input2>(
|
|
3544
3486
|
self: Metric<Input, State>,
|
|
3545
3487
|
f: (input: Input2, context: Context.Context<never>) => Input
|
|
@@ -3547,13 +3489,7 @@ export const mapInput: {
|
|
|
3547
3489
|
>(2, <Input, State, Input2>(
|
|
3548
3490
|
self: Metric<Input, State>,
|
|
3549
3491
|
f: (input: Input2, context: Context.Context<never>) => Input
|
|
3550
|
-
): Metric<Input2, State> =>
|
|
3551
|
-
new MetricTransform(
|
|
3552
|
-
self,
|
|
3553
|
-
(context) => self.valueUnsafe(context),
|
|
3554
|
-
(input, context) => self.updateUnsafe(f(input, context), context),
|
|
3555
|
-
(input, context) => self.modifyUnsafe(f(input, context), context)
|
|
3556
|
-
))
|
|
3492
|
+
): Metric<Input2, State> => new MetricTransform(self, f, identity))
|
|
3557
3493
|
|
|
3558
3494
|
/**
|
|
3559
3495
|
* Returns a new metric that is powered by this one, but which accepts updates
|
|
@@ -3667,79 +3603,7 @@ export const withConstantInput: {
|
|
|
3667
3603
|
*/
|
|
3668
3604
|
<Input, State>(self: Metric<Input, State>, input: Input): Metric<unknown, State>
|
|
3669
3605
|
} = dual<
|
|
3670
|
-
/**
|
|
3671
|
-
* Returns a new metric that is powered by this one, but which accepts updates
|
|
3672
|
-
* of any type, and translates them to updates with the specified constant
|
|
3673
|
-
* update value.
|
|
3674
|
-
*
|
|
3675
|
-
* **Example** (Ignoring inputs with a constant value)
|
|
3676
|
-
*
|
|
3677
|
-
* ```ts import.meta.vitest
|
|
3678
|
-
* import { Effect, Metric } from "effect"
|
|
3679
|
-
*
|
|
3680
|
-
* // Create a counter that normally expects a number increment
|
|
3681
|
-
* const requestCounter = Metric.counter("total_requests", {
|
|
3682
|
-
* description: "Total number of requests processed"
|
|
3683
|
-
* })
|
|
3684
|
-
*
|
|
3685
|
-
* // Create a version that always increments by 1, regardless of input
|
|
3686
|
-
* const simpleRequestCounter = Metric.withConstantInput(requestCounter, 1)
|
|
3687
|
-
*
|
|
3688
|
-
* const program = Effect.gen(function*() {
|
|
3689
|
-
* // These all increment the counter by 1, ignoring the input value
|
|
3690
|
-
* yield* Metric.update(simpleRequestCounter, "any string")
|
|
3691
|
-
* yield* Metric.update(simpleRequestCounter, { complex: "object" })
|
|
3692
|
-
* yield* Metric.update(simpleRequestCounter, 999) // Still increments by 1
|
|
3693
|
-
*
|
|
3694
|
-
* const value = yield* Metric.value(simpleRequestCounter)
|
|
3695
|
-
* return value // Counter state will show count: 3
|
|
3696
|
-
* })
|
|
3697
|
-
*
|
|
3698
|
-
* const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
|
|
3699
|
-
* const count = value.count // => 3
|
|
3700
|
-
* ```
|
|
3701
|
-
*
|
|
3702
|
-
* @stability stable
|
|
3703
|
-
* @category mapping
|
|
3704
|
-
* @since 2.0.0
|
|
3705
|
-
*/
|
|
3706
3606
|
<Input>(input: Input) => <State>(self: Metric<Input, State>) => Metric<unknown, State>,
|
|
3707
|
-
/**
|
|
3708
|
-
* Returns a new metric that is powered by this one, but which accepts updates
|
|
3709
|
-
* of any type, and translates them to updates with the specified constant
|
|
3710
|
-
* update value.
|
|
3711
|
-
*
|
|
3712
|
-
* **Example** (Ignoring inputs with a constant value)
|
|
3713
|
-
*
|
|
3714
|
-
* ```ts import.meta.vitest
|
|
3715
|
-
* import { Effect, Metric } from "effect"
|
|
3716
|
-
*
|
|
3717
|
-
* // Create a counter that normally expects a number increment
|
|
3718
|
-
* const requestCounter = Metric.counter("total_requests", {
|
|
3719
|
-
* description: "Total number of requests processed"
|
|
3720
|
-
* })
|
|
3721
|
-
*
|
|
3722
|
-
* // Create a version that always increments by 1, regardless of input
|
|
3723
|
-
* const simpleRequestCounter = Metric.withConstantInput(requestCounter, 1)
|
|
3724
|
-
*
|
|
3725
|
-
* const program = Effect.gen(function*() {
|
|
3726
|
-
* // These all increment the counter by 1, ignoring the input value
|
|
3727
|
-
* yield* Metric.update(simpleRequestCounter, "any string")
|
|
3728
|
-
* yield* Metric.update(simpleRequestCounter, { complex: "object" })
|
|
3729
|
-
* yield* Metric.update(simpleRequestCounter, 999) // Still increments by 1
|
|
3730
|
-
*
|
|
3731
|
-
* const value = yield* Metric.value(simpleRequestCounter)
|
|
3732
|
-
* return value // Counter state will show count: 3
|
|
3733
|
-
* })
|
|
3734
|
-
*
|
|
3735
|
-
* const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
|
|
3736
|
-
* const count = value.count // => 3
|
|
3737
|
-
* ```
|
|
3738
|
-
*
|
|
3739
|
-
* @stability stable
|
|
3740
|
-
* @category mapping
|
|
3741
|
-
* @since 2.0.0
|
|
3742
|
-
*/
|
|
3743
3607
|
<Input, State>(self: Metric<Input, State>, input: Input) => Metric<unknown, State>
|
|
3744
3608
|
>(2, (self, input) => mapInput(self, () => input))
|
|
3745
3609
|
|
|
@@ -3921,135 +3785,13 @@ export const withAttributes: {
|
|
|
3921
3785
|
*/
|
|
3922
3786
|
<Input, State>(self: Metric<Input, State>, attributes: Metric.Attributes): Metric<Input, State>
|
|
3923
3787
|
} = dual<
|
|
3924
|
-
/**
|
|
3925
|
-
* Returns a new metric that applies the specified attributes to all operations.
|
|
3926
|
-
*
|
|
3927
|
-
* **Details**
|
|
3928
|
-
*
|
|
3929
|
-
* Attributes are key-value pairs that provide additional context for metrics,
|
|
3930
|
-
* enabling filtering, grouping, and more detailed analysis. Each combination
|
|
3931
|
-
* of attribute values creates a separate metric series.
|
|
3932
|
-
*
|
|
3933
|
-
* **Example** (Applying metric attributes)
|
|
3934
|
-
*
|
|
3935
|
-
* ```ts import.meta.vitest
|
|
3936
|
-
* import { Effect, Metric } from "effect"
|
|
3937
|
-
*
|
|
3938
|
-
* const requestCounter = Metric.counter("http_requests_total", {
|
|
3939
|
-
* description: "Total HTTP requests"
|
|
3940
|
-
* })
|
|
3941
|
-
*
|
|
3942
|
-
* // Create tagged versions of the metric
|
|
3943
|
-
* const getRequests = Metric.withAttributes(requestCounter, {
|
|
3944
|
-
* method: "GET",
|
|
3945
|
-
* endpoint: "/api/users"
|
|
3946
|
-
* })
|
|
3947
|
-
*
|
|
3948
|
-
* const postRequests = Metric.withAttributes(requestCounter, {
|
|
3949
|
-
* method: "POST",
|
|
3950
|
-
* endpoint: "/api/users"
|
|
3951
|
-
* })
|
|
3952
|
-
*
|
|
3953
|
-
* const program = Effect.gen(function*() {
|
|
3954
|
-
* // These will be tracked as separate metric series
|
|
3955
|
-
* yield* Metric.update(getRequests, 1) // http_requests_total{method="GET", endpoint="/api/users"}
|
|
3956
|
-
* yield* Metric.update(postRequests, 1) // http_requests_total{method="POST", endpoint="/api/users"}
|
|
3957
|
-
* yield* Metric.update(getRequests, 1) // Increments the GET counter
|
|
3958
|
-
*
|
|
3959
|
-
* // You can also chain attributes
|
|
3960
|
-
* const taggedMetric = requestCounter.pipe(
|
|
3961
|
-
* Metric.withAttributes({ service: "user-api" }),
|
|
3962
|
-
* Metric.withAttributes({ version: "v1" })
|
|
3963
|
-
* )
|
|
3964
|
-
*
|
|
3965
|
-
* yield* Metric.update(taggedMetric, 1) // http_requests_total{service="user-api", version="v1"}
|
|
3966
|
-
* })
|
|
3967
|
-
*
|
|
3968
|
-
* const result = Effect.gen(function*() {
|
|
3969
|
-
* yield* program
|
|
3970
|
-
* const get = yield* Metric.value(getRequests)
|
|
3971
|
-
* const post = yield* Metric.value(postRequests)
|
|
3972
|
-
* return [get.count, post.count] as const
|
|
3973
|
-
* })
|
|
3974
|
-
*
|
|
3975
|
-
* await Effect.runPromise(Effect.provideService(result, Metric.MetricRegistry, new Map())) // => [2, 1]
|
|
3976
|
-
* ```
|
|
3977
|
-
*
|
|
3978
|
-
* @stability stable
|
|
3979
|
-
* @category mapping
|
|
3980
|
-
* @since 4.0.0
|
|
3981
|
-
*/
|
|
3982
3788
|
(attributes: Metric.Attributes) => <Input, State>(self: Metric<Input, State>) => Metric<Input, State>,
|
|
3983
|
-
/**
|
|
3984
|
-
* Returns a new metric that applies the specified attributes to all operations.
|
|
3985
|
-
*
|
|
3986
|
-
* **Details**
|
|
3987
|
-
*
|
|
3988
|
-
* Attributes are key-value pairs that provide additional context for metrics,
|
|
3989
|
-
* enabling filtering, grouping, and more detailed analysis. Each combination
|
|
3990
|
-
* of attribute values creates a separate metric series.
|
|
3991
|
-
*
|
|
3992
|
-
* **Example** (Applying metric attributes)
|
|
3993
|
-
*
|
|
3994
|
-
* ```ts import.meta.vitest
|
|
3995
|
-
* import { Effect, Metric } from "effect"
|
|
3996
|
-
*
|
|
3997
|
-
* const requestCounter = Metric.counter("http_requests_total", {
|
|
3998
|
-
* description: "Total HTTP requests"
|
|
3999
|
-
* })
|
|
4000
|
-
*
|
|
4001
|
-
* // Create tagged versions of the metric
|
|
4002
|
-
* const getRequests = Metric.withAttributes(requestCounter, {
|
|
4003
|
-
* method: "GET",
|
|
4004
|
-
* endpoint: "/api/users"
|
|
4005
|
-
* })
|
|
4006
|
-
*
|
|
4007
|
-
* const postRequests = Metric.withAttributes(requestCounter, {
|
|
4008
|
-
* method: "POST",
|
|
4009
|
-
* endpoint: "/api/users"
|
|
4010
|
-
* })
|
|
4011
|
-
*
|
|
4012
|
-
* const program = Effect.gen(function*() {
|
|
4013
|
-
* // These will be tracked as separate metric series
|
|
4014
|
-
* yield* Metric.update(getRequests, 1) // http_requests_total{method="GET", endpoint="/api/users"}
|
|
4015
|
-
* yield* Metric.update(postRequests, 1) // http_requests_total{method="POST", endpoint="/api/users"}
|
|
4016
|
-
* yield* Metric.update(getRequests, 1) // Increments the GET counter
|
|
4017
|
-
*
|
|
4018
|
-
* // You can also chain attributes
|
|
4019
|
-
* const taggedMetric = requestCounter.pipe(
|
|
4020
|
-
* Metric.withAttributes({ service: "user-api" }),
|
|
4021
|
-
* Metric.withAttributes({ version: "v1" })
|
|
4022
|
-
* )
|
|
4023
|
-
*
|
|
4024
|
-
* yield* Metric.update(taggedMetric, 1) // http_requests_total{service="user-api", version="v1"}
|
|
4025
|
-
* })
|
|
4026
|
-
*
|
|
4027
|
-
* const result = Effect.gen(function*() {
|
|
4028
|
-
* yield* program
|
|
4029
|
-
* const get = yield* Metric.value(getRequests)
|
|
4030
|
-
* const post = yield* Metric.value(postRequests)
|
|
4031
|
-
* return [get.count, post.count] as const
|
|
4032
|
-
* })
|
|
4033
|
-
*
|
|
4034
|
-
* await Effect.runPromise(Effect.provideService(result, Metric.MetricRegistry, new Map())) // => [2, 1]
|
|
4035
|
-
* ```
|
|
4036
|
-
*
|
|
4037
|
-
* @stability stable
|
|
4038
|
-
* @category mapping
|
|
4039
|
-
* @since 4.0.0
|
|
4040
|
-
*/
|
|
4041
3789
|
<Input, State>(self: Metric<Input, State>, attributes: Metric.Attributes) => Metric<Input, State>
|
|
4042
3790
|
>(2, <Input, State>(
|
|
4043
3791
|
self: Metric<Input, State>,
|
|
4044
3792
|
attributes: Metric.Attributes
|
|
4045
3793
|
): Metric<Input, State> => {
|
|
4046
|
-
|
|
4047
|
-
return new MetricTransform(
|
|
4048
|
-
self,
|
|
4049
|
-
(context) => self.valueUnsafe(attributed(context)),
|
|
4050
|
-
(input, context) => self.updateUnsafe(input, attributed(context)),
|
|
4051
|
-
(input, context) => self.modifyUnsafe(input, attributed(context))
|
|
4052
|
-
)
|
|
3794
|
+
return new MetricTransform(self, identity, addAttributesToContext(attributes))
|
|
4053
3795
|
})
|
|
4054
3796
|
|
|
4055
3797
|
// Metric Snapshots
|