effect 4.0.0-beta.103 → 4.0.0-beta.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +381 -0
- package/CLAUDE.md +381 -0
- package/ai-docs/README.md +44 -0
- package/ai-docs/package.json +36 -0
- package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
- package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
- package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
- package/ai-docs/src/01_effect/01_basics/index.md +5 -0
- package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
- package/ai-docs/src/01_effect/02_schema/index.md +7 -0
- package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
- package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
- package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
- package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
- package/ai-docs/src/01_effect/03_services/index.md +5 -0
- package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
- package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
- package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
- package/ai-docs/src/01_effect/04_errors/index.md +1 -0
- package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
- package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
- package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
- package/ai-docs/src/01_effect/05_resources/index.md +3 -0
- package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
- package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
- package/ai-docs/src/01_effect/06_running/index.md +1 -0
- package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
- package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
- package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
- package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
- package/ai-docs/src/03_stream/30_encoding.ts +165 -0
- package/ai-docs/src/03_stream/index.md +4 -0
- package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
- package/ai-docs/src/04_integration/index.md +5 -0
- package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
- package/ai-docs/src/05_batching/index.md +3 -0
- package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
- package/ai-docs/src/06_schedule/index.md +3 -0
- package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
- package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
- package/ai-docs/src/07_datetime/index.md +5 -0
- package/ai-docs/src/08_observability/10_logging.ts +66 -0
- package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
- package/ai-docs/src/08_observability/index.md +7 -0
- package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
- package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
- package/ai-docs/src/09_testing/index.md +1 -0
- package/ai-docs/src/10_predicate/01_basics.ts +14 -0
- package/ai-docs/src/10_predicate/index.md +9 -0
- package/ai-docs/src/50_http-client/10_basics.ts +102 -0
- package/ai-docs/src/50_http-client/index.md +3 -0
- package/ai-docs/src/51_http-server/10_basics.ts +116 -0
- package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
- package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
- package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
- package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
- package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
- package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
- package/ai-docs/src/51_http-server/index.md +3 -0
- package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
- package/ai-docs/src/60_child-process/index.md +3 -0
- package/ai-docs/src/70_cli/10_basics.ts +136 -0
- package/ai-docs/src/70_cli/index.md +5 -0
- package/ai-docs/src/71_ai/10_language-model.ts +156 -0
- package/ai-docs/src/71_ai/20_tools.ts +226 -0
- package/ai-docs/src/71_ai/30_chat.ts +158 -0
- package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
- package/ai-docs/src/71_ai/index.md +5 -0
- package/ai-docs/src/80_cluster/10_entities.ts +97 -0
- package/ai-docs/src/80_cluster/index.md +4 -0
- package/ai-docs/src/index.md +10 -0
- package/ai-docs/tsconfig.json +24 -0
- package/dist/Brand.d.ts +3 -3
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +4 -3
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.js +1 -1
- package/dist/Cache.js.map +1 -1
- package/dist/Channel.d.ts +1 -1
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js.map +1 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +30 -8
- 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/Context.d.ts +2 -3
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +1 -22
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +31 -0
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +58 -2
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +13 -5
- package/dist/Crypto.js.map +1 -1
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +12 -1
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +132 -14
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +38 -0
- package/dist/Effect.js.map +1 -1
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +10 -2
- package/dist/Equal.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +73 -0
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +1 -1
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/FiberSet.js +1 -1
- package/dist/FileSystem.d.ts +2 -2
- package/dist/Function.d.ts +4 -3
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +5 -5
- package/dist/Function.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +11 -10
- package/dist/Iterable.js.map +1 -1
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +7 -5
- package/dist/Layer.js.map +1 -1
- package/dist/Optic.d.ts +35 -21
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +33 -34
- package/dist/Optic.js.map +1 -1
- package/dist/Schedule.d.ts +8 -8
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +4 -4
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +105 -57
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +105 -67
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +33 -3
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +87 -63
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaError.d.ts +8 -8
- package/dist/SchemaError.d.ts.map +1 -1
- package/dist/SchemaError.js +7 -6
- package/dist/SchemaError.js.map +1 -1
- package/dist/SchemaGetter.d.ts +8 -5
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +41 -37
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +195 -38
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +243 -68
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +30 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +74 -62
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +2 -2
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +26 -26
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Sink.d.ts +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Stdio.d.ts +17 -4
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +6 -3
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +27 -4
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +27 -2
- package/dist/Stream.js.map +1 -1
- package/dist/SynchronizedRef.js +1 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Terminal.js +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tuple.d.ts +6 -4
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +0 -56
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +8 -8
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/internal/dateTime.js +1 -1
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/executionPlan.js +51 -3
- package/dist/internal/executionPlan.js.map +1 -1
- package/dist/internal/hashMap.js +12 -8
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/annotations.js +2 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/schema.js +1 -9
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/toArbitrary.js +1 -1
- package/dist/internal/schema/toArbitrary.js.map +1 -1
- package/dist/internal/trie.js +13 -3
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +11 -1
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +2 -2
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +8 -7
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.js +19 -19
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/Chat.js +1 -1
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +4 -2
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +132 -132
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +8 -8
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.js +1 -1
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +15 -3
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +10 -7
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +3 -3
- package/dist/unstable/cli/CliError.js +11 -11
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +9 -9
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +8 -6
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Param.d.ts +7 -5
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +15 -11
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +31 -24
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +31 -17
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.js +2 -2
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +2 -2
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +10 -9
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js +69 -9
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/completions/fish.js +5 -5
- package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts.map +1 -1
- package/dist/unstable/cli/internal/help.js +4 -2
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +3 -3
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cli/internal/wizard.js +2 -2
- package/dist/unstable/cli/internal/wizard.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.js +7 -7
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +8 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +8 -0
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +16 -4
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +4 -2
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +1 -2
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +7 -6
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +22 -4
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +1 -1
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js +2 -2
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +17 -0
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +7 -2
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/encoding/Ini.d.ts +20 -0
- package/dist/unstable/encoding/Ini.d.ts.map +1 -0
- package/dist/unstable/encoding/Ini.js +153 -0
- package/dist/unstable/encoding/Ini.js.map +1 -0
- package/dist/unstable/encoding/Msgpack.d.ts +2 -1
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +27 -13
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js +7 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +14 -23
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/Toml.d.ts +19 -0
- package/dist/unstable/encoding/Toml.d.ts.map +1 -0
- package/dist/unstable/encoding/Toml.js +434 -0
- package/dist/unstable/encoding/Toml.js.map +1 -0
- package/dist/unstable/encoding/Yaml.d.ts +19 -0
- package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
- package/dist/unstable/encoding/Yaml.js +461 -0
- package/dist/unstable/encoding/Yaml.js.map +1 -0
- package/dist/unstable/encoding/index.d.ts +12 -0
- package/dist/unstable/encoding/index.d.ts.map +1 -1
- package/dist/unstable/encoding/index.js +12 -0
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +13 -5
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +1 -4
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
- package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
- package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
- package/dist/unstable/http/FindMyWay.d.ts +33 -8
- package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
- package/dist/unstable/http/FindMyWay.js +4 -7
- package/dist/unstable/http/FindMyWay.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +59 -3
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +33 -19
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.js +1 -1
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +2 -14
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +1 -16
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +21 -3
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +7 -6
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +8 -6
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +1 -1
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +9 -2
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
- package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
- package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/Search.js +14 -0
- package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
- package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/headers.js +194 -0
- package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.js +226 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
- package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
- package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
- package/dist/unstable/http/MultipartParser.d.ts +98 -0
- package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser.js +23 -0
- package/dist/unstable/http/MultipartParser.js.map +1 -0
- package/dist/unstable/http/Template.d.ts.map +1 -1
- package/dist/unstable/http/Template.js +2 -2
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/index.d.ts +1 -1
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +1 -1
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/httpBody.d.ts +2 -0
- package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
- package/dist/unstable/http/internal/httpBody.js +10 -0
- package/dist/unstable/http/internal/httpBody.js.map +1 -0
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +5 -5
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +73 -20
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +74 -34
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +6 -4
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +5 -5
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +17 -17
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +219 -0
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +170 -0
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +8 -0
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +45 -18
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +2 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +2 -2
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +2 -2
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +28 -15
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +1 -1
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +9 -9
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +17 -7
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +22 -12
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +15 -42
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.js +1 -1
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +4 -4
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +26 -11
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +9 -22
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +14 -0
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +21 -10
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js +2 -2
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +3 -1
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +3 -2
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +1 -1
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +5 -5
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +17 -9
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +28 -12
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +7 -3
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlError.js +13 -13
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +8 -6
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +8 -6
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/WorkerError.js +5 -5
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +2 -2
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +3 -3
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +6 -9
- package/src/Brand.ts +4 -4
- package/src/Cache.ts +1 -1
- package/src/Channel.ts +1 -1
- package/src/Config.ts +31 -8
- package/src/ConfigProvider.ts +4 -1
- package/src/Context.ts +6 -28
- package/src/Cron.ts +65 -2
- package/src/Crypto.ts +17 -8
- package/src/Duration.ts +16 -2
- package/src/Effect.ts +141 -17
- package/src/Equal.ts +10 -2
- package/src/ExecutionPlan.ts +78 -1
- package/src/FiberSet.ts +1 -1
- package/src/FileSystem.ts +2 -2
- package/src/Function.ts +6 -6
- package/src/Iterable.ts +11 -10
- package/src/Layer.ts +7 -5
- package/src/Optic.ts +59 -58
- package/src/Schedule.ts +13 -13
- package/src/Schema.ts +195 -112
- package/src/SchemaAST.ts +154 -85
- package/src/SchemaError.ts +9 -9
- package/src/SchemaGetter.ts +89 -30
- package/src/SchemaIssue.ts +285 -80
- package/src/SchemaParser.ts +126 -86
- package/src/SchemaTransformation.ts +66 -18
- package/src/ScopedCache.ts +1 -1
- package/src/Sink.ts +1 -1
- package/src/Stdio.ts +23 -4
- package/src/Stream.ts +77 -10
- package/src/SynchronizedRef.ts +1 -1
- package/src/Terminal.ts +1 -1
- package/src/Tuple.ts +7 -4
- package/src/TxReentrantLock.ts +39 -35
- package/src/internal/dateTime.ts +1 -1
- package/src/internal/executionPlan.ts +105 -10
- package/src/internal/hashMap.ts +20 -14
- package/src/internal/matcher.ts +2 -2
- package/src/internal/schedule.ts +4 -4
- package/src/internal/schema/annotations.ts +3 -0
- package/src/internal/schema/schema.ts +1 -17
- package/src/internal/schema/toArbitrary.ts +3 -1
- package/src/internal/trie.ts +12 -2
- package/src/testing/TestClock.ts +13 -1
- package/src/testing/TestSchema.ts +9 -9
- package/src/unstable/ai/AiError.ts +19 -19
- package/src/unstable/ai/Chat.ts +1 -1
- package/src/unstable/ai/LanguageModel.ts +4 -2
- package/src/unstable/ai/McpSchema.ts +17 -16
- package/src/unstable/ai/McpServer.ts +1 -1
- package/src/unstable/ai/Prompt.ts +35 -10
- package/src/unstable/cli/CliError.ts +12 -12
- package/src/unstable/cli/Command.ts +12 -10
- package/src/unstable/cli/Param.ts +41 -19
- package/src/unstable/cli/Primitive.ts +11 -5
- package/src/unstable/cli/Prompt.ts +36 -20
- package/src/unstable/cli/internal/ansi.ts +2 -2
- package/src/unstable/cli/internal/command.ts +15 -10
- package/src/unstable/cli/internal/completions/bash.ts +59 -9
- package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
- package/src/unstable/cli/internal/completions/fish.ts +5 -7
- package/src/unstable/cli/internal/help.ts +4 -2
- package/src/unstable/cli/internal/parser.ts +3 -3
- package/src/unstable/cli/internal/wizard.ts +2 -2
- package/src/unstable/cluster/ClusterError.ts +7 -7
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +4 -1
- package/src/unstable/cluster/MessageStorage.ts +9 -5
- package/src/unstable/cluster/Reply.ts +25 -4
- package/src/unstable/cluster/RunnerServer.ts +4 -10
- package/src/unstable/cluster/RunnerStorage.ts +9 -7
- package/src/unstable/cluster/Sharding.ts +35 -7
- package/src/unstable/cluster/internal/entityManager.ts +1 -1
- package/src/unstable/cluster/internal/resourceMap.ts +5 -2
- package/src/unstable/cluster/internal/resourceRef.ts +27 -5
- package/src/unstable/devtools/DevToolsClient.ts +3 -2
- package/src/unstable/encoding/Ini.ts +174 -0
- package/src/unstable/encoding/Msgpack.ts +59 -36
- package/src/unstable/encoding/Ndjson.ts +9 -1
- package/src/unstable/encoding/Sse.ts +11 -21
- package/src/unstable/encoding/Toml.ts +504 -0
- package/src/unstable/encoding/Yaml.ts +541 -0
- package/src/unstable/encoding/index.ts +15 -0
- package/src/unstable/eventlog/EventJournal.ts +14 -6
- package/src/unstable/eventlog/EventLogMessage.ts +1 -1
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +1 -1
- package/src/unstable/eventlog/SqlEventJournal.ts +6 -4
- package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
- package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
- package/src/unstable/http/FindMyWay.ts +65 -6
- package/src/unstable/http/HttpClient.ts +132 -23
- package/src/unstable/http/HttpClientError.ts +1 -1
- package/src/unstable/http/HttpClientRequest.ts +2 -14
- package/src/unstable/http/HttpClientResponse.ts +1 -17
- package/src/unstable/http/HttpPlatform.ts +34 -6
- package/src/unstable/http/HttpServerRequest.ts +14 -6
- package/src/unstable/http/HttpServerResponse.ts +9 -7
- package/src/unstable/http/Multipart.ts +9 -2
- package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
- package/src/unstable/http/MultipartParser/Search.ts +17 -0
- package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
- package/src/unstable/http/MultipartParser/internal/headers.ts +615 -0
- package/src/unstable/http/MultipartParser/internal/multipart.ts +262 -0
- package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
- package/src/unstable/http/MultipartParser.ts +115 -0
- package/src/unstable/http/Template.ts +6 -5
- package/src/unstable/http/index.ts +1 -1
- package/src/unstable/http/internal/httpBody.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +6 -7
- package/src/unstable/httpapi/HttpApiBuilder.ts +142 -25
- package/src/unstable/httpapi/HttpApiClient.ts +130 -49
- package/src/unstable/httpapi/HttpApiEndpoint.ts +117 -29
- package/src/unstable/httpapi/HttpApiError.ts +33 -39
- package/src/unstable/httpapi/HttpApiMiddleware.ts +1 -1
- package/src/unstable/httpapi/HttpApiSchema.ts +353 -0
- package/src/unstable/httpapi/OpenApi.ts +70 -20
- package/src/unstable/observability/OtlpExporter.ts +4 -2
- package/src/unstable/observability/OtlpLogger.ts +3 -1
- package/src/unstable/observability/OtlpMetrics.ts +32 -18
- package/src/unstable/observability/OtlpTracer.ts +1 -1
- package/src/unstable/persistence/PersistedQueue.ts +12 -9
- package/src/unstable/persistence/Persistence.ts +27 -7
- package/src/unstable/persistence/RateLimiter.ts +54 -31
- package/src/unstable/persistence/Redis.ts +1 -1
- package/src/unstable/reactivity/AsyncResult.ts +11 -6
- package/src/unstable/reactivity/Atom.ts +44 -25
- package/src/unstable/rpc/RpcClient.ts +42 -13
- package/src/unstable/rpc/RpcClientError.ts +2 -2
- package/src/unstable/rpc/RpcSerialization.ts +1 -1
- package/src/unstable/rpc/RpcServer.ts +4 -2
- package/src/unstable/schema/VariantSchema.ts +36 -18
- package/src/unstable/socket/Socket.ts +24 -14
- package/src/unstable/sql/SqlClient.ts +65 -56
- package/src/unstable/sql/SqlError.ts +13 -13
- package/src/unstable/sql/SqlResolver.ts +8 -6
- package/src/unstable/sql/Statement.ts +13 -8
- package/src/unstable/workers/WorkerError.ts +5 -5
- package/src/unstable/workflow/Workflow.ts +2 -5
- package/src/unstable/workflow/WorkflowEngine.ts +8 -3
- package/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
- package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
- package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
- package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Node.js +0 -14
- package/dist/unstable/http/Multipasta/Node.js.map +0 -1
- package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Search.js +0 -14
- package/dist/unstable/http/Multipasta/Search.js.map +0 -1
- package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Web.js +0 -14
- package/dist/unstable/http/Multipasta/Web.js.map +0 -1
- package/dist/unstable/http/Multipasta.d.ts +0 -15
- package/dist/unstable/http/Multipasta.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta.js +0 -15
- package/dist/unstable/http/Multipasta.js.map +0 -1
- package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
- package/src/unstable/http/Multipasta/Node.ts +0 -14
- package/src/unstable/http/Multipasta/Search.ts +0 -14
- package/src/unstable/http/Multipasta/Web.ts +0 -14
- package/src/unstable/http/Multipasta.ts +0 -15
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type * as Cause from "../../../Cause.ts"
|
|
1
2
|
import * as Effect from "../../../Effect.ts"
|
|
2
3
|
import * as Exit from "../../../Exit.ts"
|
|
3
4
|
import * as Latch from "../../../Latch.ts"
|
|
@@ -7,7 +8,7 @@ import * as Scope from "../../../Scope.ts"
|
|
|
7
8
|
import { internalInterruptors } from "./interruptors.ts"
|
|
8
9
|
|
|
9
10
|
/** @internal */
|
|
10
|
-
export type State<A> = {
|
|
11
|
+
export type State<A, E> = {
|
|
11
12
|
readonly _tag: "Closed"
|
|
12
13
|
} | {
|
|
13
14
|
readonly _tag: "Acquiring"
|
|
@@ -16,6 +17,10 @@ export type State<A> = {
|
|
|
16
17
|
readonly _tag: "Acquired"
|
|
17
18
|
readonly scope: Scope.Closeable
|
|
18
19
|
readonly value: A
|
|
20
|
+
} | {
|
|
21
|
+
readonly _tag: "Failed"
|
|
22
|
+
readonly scope: Scope.Closeable
|
|
23
|
+
readonly cause: Cause.Cause<E>
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
/** @internal */
|
|
@@ -24,7 +29,7 @@ export class ResourceRef<A, E = never> {
|
|
|
24
29
|
parentScope: Scope.Scope,
|
|
25
30
|
acquire: (scope: Scope.Scope) => Effect.Effect<A, E>
|
|
26
31
|
) {
|
|
27
|
-
const state = MutableRef.make<State<A>>({ _tag: "Closed" })
|
|
32
|
+
const state = MutableRef.make<State<A, E>>({ _tag: "Closed" })
|
|
28
33
|
|
|
29
34
|
yield* Scope.addFinalizerExit(parentScope, (exit) => {
|
|
30
35
|
const s = MutableRef.get(state)
|
|
@@ -44,10 +49,10 @@ export class ResourceRef<A, E = never> {
|
|
|
44
49
|
return new ResourceRef(state, acquire)
|
|
45
50
|
})
|
|
46
51
|
|
|
47
|
-
readonly state: MutableRef.MutableRef<State<A>>
|
|
52
|
+
readonly state: MutableRef.MutableRef<State<A, E>>
|
|
48
53
|
readonly acquire: (scope: Scope.Scope) => Effect.Effect<A, E>
|
|
49
54
|
constructor(
|
|
50
|
-
state: MutableRef.MutableRef<State<A>>,
|
|
55
|
+
state: MutableRef.MutableRef<State<A, E>>,
|
|
51
56
|
acquire: (scope: Scope.Scope) => Effect.Effect<A, E>
|
|
52
57
|
) {
|
|
53
58
|
this.state = state
|
|
@@ -84,15 +89,32 @@ export class ResourceRef<A, E = never> {
|
|
|
84
89
|
MutableRef.set(this.state, { _tag: "Acquired", scope, value })
|
|
85
90
|
return this.latch.open
|
|
86
91
|
})
|
|
92
|
+
).pipe(
|
|
93
|
+
Effect.onExit((exit) => {
|
|
94
|
+
if (Exit.isSuccess(exit)) {
|
|
95
|
+
return Effect.void
|
|
96
|
+
}
|
|
97
|
+
return Scope.close(scope, exit).pipe(
|
|
98
|
+
Effect.ensuring(Effect.sync(() => {
|
|
99
|
+
const state = this.state.current
|
|
100
|
+
if (state._tag === "Acquiring" && state.scope === scope) {
|
|
101
|
+
MutableRef.set(this.state, { _tag: "Failed", scope, cause: exit.cause })
|
|
102
|
+
this.latch.openUnsafe()
|
|
103
|
+
}
|
|
104
|
+
}))
|
|
105
|
+
)
|
|
106
|
+
})
|
|
87
107
|
)
|
|
88
108
|
}
|
|
89
109
|
|
|
90
|
-
await: Effect.Effect<A> = Effect.suspend(() => {
|
|
110
|
+
await: Effect.Effect<A, E> = Effect.suspend(() => {
|
|
91
111
|
const s = this.state.current
|
|
92
112
|
if (s._tag === "Closed") {
|
|
93
113
|
return Effect.interrupt
|
|
94
114
|
} else if (s._tag === "Acquired") {
|
|
95
115
|
return Effect.succeed(s.value)
|
|
116
|
+
} else if (s._tag === "Failed") {
|
|
117
|
+
return Effect.failCause(s.cause)
|
|
96
118
|
}
|
|
97
119
|
return Effect.flatMap(this.latch.await, () => this.await)
|
|
98
120
|
})
|
|
@@ -184,7 +184,8 @@ const makeTracerEffect = Effect.gen(function*() {
|
|
|
184
184
|
return Tracer.make({
|
|
185
185
|
span(options) {
|
|
186
186
|
const span = currentTracer.span(options)
|
|
187
|
-
|
|
187
|
+
// the span is mutated in place, so send a snapshot of its current state
|
|
188
|
+
client.sendUnsafe({ ...span })
|
|
188
189
|
const oldEvent = span.event
|
|
189
190
|
span.event = function(this: Tracer.Span, name, startTime, attributes) {
|
|
190
191
|
client.sendUnsafe({
|
|
@@ -201,7 +202,7 @@ const makeTracerEffect = Effect.gen(function*() {
|
|
|
201
202
|
const oldEnd = span.end
|
|
202
203
|
span.end = function(this: Tracer.Span, endTime, exit) {
|
|
203
204
|
oldEnd.call(this, endTime, exit)
|
|
204
|
-
client.sendUnsafe(span)
|
|
205
|
+
client.sendUnsafe({ ...span })
|
|
205
206
|
}
|
|
206
207
|
|
|
207
208
|
return span
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses INI configuration files.
|
|
3
|
+
*
|
|
4
|
+
* This module contains the decoding surface used by Effect's CLI without
|
|
5
|
+
* pulling in the complete `ini` package.
|
|
6
|
+
*
|
|
7
|
+
* @since 4.0.0
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
* The parser is adapted from `ini` 7.0.0.
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Isaac Z. Schlueter and Contributors
|
|
14
|
+
*
|
|
15
|
+
* Permission to use, copy, modify, and/or distribute this software for any
|
|
16
|
+
* purpose with or without fee is hereby granted, provided that the above
|
|
17
|
+
* copyright notice and this permission notice appear in all copies.
|
|
18
|
+
*
|
|
19
|
+
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
20
|
+
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
21
|
+
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
|
22
|
+
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
23
|
+
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
|
24
|
+
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
|
25
|
+
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
const hasOwn = Object.prototype.hasOwnProperty
|
|
29
|
+
|
|
30
|
+
const splitSections = (value: string): Array<string> => {
|
|
31
|
+
const sections: Array<string> = []
|
|
32
|
+
let start = 0
|
|
33
|
+
let index = 0
|
|
34
|
+
while ((index = value.indexOf(".", index)) !== -1) {
|
|
35
|
+
if (index === 0 || value[index - 1] !== "\\") {
|
|
36
|
+
sections.push(value.slice(start, index))
|
|
37
|
+
start = index + 1
|
|
38
|
+
}
|
|
39
|
+
index++
|
|
40
|
+
}
|
|
41
|
+
sections.push(value.slice(start))
|
|
42
|
+
return sections
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const isQuoted = (value: string): boolean =>
|
|
46
|
+
value.length >= 2 &&
|
|
47
|
+
((value.startsWith("\"") && value.endsWith("\"")) ||
|
|
48
|
+
(value.startsWith("'") && value.endsWith("'")))
|
|
49
|
+
|
|
50
|
+
const unquote = (input: string | undefined): string => {
|
|
51
|
+
let value = (input ?? "").trim()
|
|
52
|
+
if (isQuoted(value)) {
|
|
53
|
+
if (value[0] === "'") {
|
|
54
|
+
value = value.slice(1, -1)
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
return JSON.parse(value)
|
|
58
|
+
} catch {
|
|
59
|
+
return value
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
let escaped = false
|
|
64
|
+
let output = ""
|
|
65
|
+
for (const character of value) {
|
|
66
|
+
if (escaped) {
|
|
67
|
+
output += character === ";" || character === "#" || character === "\\"
|
|
68
|
+
? character
|
|
69
|
+
: `\\${character}`
|
|
70
|
+
escaped = false
|
|
71
|
+
} else if (character === ";" || character === "#") {
|
|
72
|
+
break
|
|
73
|
+
} else if (character === "\\") {
|
|
74
|
+
escaped = true
|
|
75
|
+
} else {
|
|
76
|
+
output += character
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return output.trim()
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Parses an INI document into a null-prototype record.
|
|
84
|
+
*
|
|
85
|
+
* Section names separated by dots become nested records, repeated keys ending
|
|
86
|
+
* in `[]` become arrays, and the scalar values `true`, `false`, and `null` are
|
|
87
|
+
* decoded. Other scalar values remain strings.
|
|
88
|
+
*
|
|
89
|
+
* @category decoding
|
|
90
|
+
* @since 4.0.0
|
|
91
|
+
*/
|
|
92
|
+
export const parse = (input: string): Record<string, unknown> => {
|
|
93
|
+
const output: Record<string, any> = Object.create(null)
|
|
94
|
+
let current = output
|
|
95
|
+
const sectionPattern = /^\[([^\]]*)\]\s*$/
|
|
96
|
+
const propertyPattern = /^([^=]+)(=(.*))?$/
|
|
97
|
+
|
|
98
|
+
for (const line of input.split(/[\r\n]+/g)) {
|
|
99
|
+
if (line.length === 0 || /^\s*(?:[;#]|$)/.test(line)) {
|
|
100
|
+
continue
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const sectionMatch = sectionPattern.exec(line)
|
|
104
|
+
if (sectionMatch !== null) {
|
|
105
|
+
const section = unquote(sectionMatch[1])
|
|
106
|
+
if (section === "__proto__") {
|
|
107
|
+
current = Object.create(null)
|
|
108
|
+
} else {
|
|
109
|
+
current = output[section] ??= Object.create(null)
|
|
110
|
+
}
|
|
111
|
+
continue
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const propertyMatch = propertyPattern.exec(line)
|
|
115
|
+
if (propertyMatch === null) {
|
|
116
|
+
continue
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const rawKey = unquote(propertyMatch[1])
|
|
120
|
+
const array = rawKey.length > 2 && rawKey.endsWith("[]")
|
|
121
|
+
const key = array ? rawKey.slice(0, -2) : rawKey
|
|
122
|
+
if (key === "__proto__") {
|
|
123
|
+
continue
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const rawValue = propertyMatch[2] === undefined ? true : unquote(propertyMatch[3])
|
|
127
|
+
const value = rawValue === "true" || rawValue === "false" || rawValue === "null"
|
|
128
|
+
? JSON.parse(rawValue)
|
|
129
|
+
: rawValue
|
|
130
|
+
|
|
131
|
+
if (array) {
|
|
132
|
+
if (!hasOwn.call(current, key)) {
|
|
133
|
+
current[key] = []
|
|
134
|
+
} else if (!Array.isArray(current[key])) {
|
|
135
|
+
current[key] = [current[key]]
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (Array.isArray(current[key])) {
|
|
139
|
+
current[key].push(value)
|
|
140
|
+
} else {
|
|
141
|
+
current[key] = value
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const remove: Array<string> = []
|
|
146
|
+
for (const section of Object.keys(output)) {
|
|
147
|
+
if (typeof output[section] !== "object" || output[section] === null || Array.isArray(output[section])) {
|
|
148
|
+
continue
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
const parts = splitSections(section)
|
|
152
|
+
const last = parts.pop()!
|
|
153
|
+
const key = last.replace(/\\\./g, ".")
|
|
154
|
+
current = output
|
|
155
|
+
for (const part of parts) {
|
|
156
|
+
if (part === "__proto__") {
|
|
157
|
+
continue
|
|
158
|
+
}
|
|
159
|
+
if (!hasOwn.call(current, part) || typeof current[part] !== "object" || current[part] === null) {
|
|
160
|
+
current[part] = Object.create(null)
|
|
161
|
+
}
|
|
162
|
+
current = current[part]
|
|
163
|
+
}
|
|
164
|
+
if (current === output && key === last) {
|
|
165
|
+
continue
|
|
166
|
+
}
|
|
167
|
+
current[key] = output[section]
|
|
168
|
+
remove.push(section)
|
|
169
|
+
}
|
|
170
|
+
for (const section of remove) {
|
|
171
|
+
delete output[section]
|
|
172
|
+
}
|
|
173
|
+
return output
|
|
174
|
+
}
|
|
@@ -12,12 +12,13 @@
|
|
|
12
12
|
import { Packr, Unpackr } from "msgpackr"
|
|
13
13
|
import * as Msgpackr from "msgpackr"
|
|
14
14
|
import * as Arr from "../../Array.ts"
|
|
15
|
+
import * as Cause from "../../Cause.ts"
|
|
15
16
|
import * as Channel from "../../Channel.ts"
|
|
16
17
|
import * as ChannelSchema from "../../ChannelSchema.ts"
|
|
17
18
|
import * as Data from "../../Data.ts"
|
|
18
19
|
import * as Effect from "../../Effect.ts"
|
|
19
20
|
import { dual } from "../../Function.ts"
|
|
20
|
-
import
|
|
21
|
+
import * as Pull from "../../Pull.ts"
|
|
21
22
|
import * as Schema from "../../Schema.ts"
|
|
22
23
|
import * as SchemaIssue from "../../SchemaIssue.ts"
|
|
23
24
|
import * as SchemaTransformation from "../../SchemaTransformation.ts"
|
|
@@ -134,37 +135,55 @@ export const decode = <IE = never, Done = unknown>(): Channel.Channel<
|
|
|
134
135
|
Channel.fromTransform((upstream, _scope) =>
|
|
135
136
|
Effect.sync(() => {
|
|
136
137
|
const unpackr = new Unpackr()
|
|
137
|
-
let incomplete:
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
incomplete
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
138
|
+
let incomplete: {
|
|
139
|
+
readonly bytes: Uint8Array<ArrayBuffer>
|
|
140
|
+
readonly cause: unknown
|
|
141
|
+
} | undefined = undefined
|
|
142
|
+
|
|
143
|
+
const pull = Effect.suspend((): Pull.Pull<Arr.NonEmptyReadonlyArray<unknown>, IE | MsgPackError, Done> =>
|
|
144
|
+
Pull.matchEffect(upstream, {
|
|
145
|
+
onSuccess: loop,
|
|
146
|
+
onFailure: Effect.failCause,
|
|
147
|
+
onDone: (done): Pull.Pull<never, MsgPackError, Done> =>
|
|
148
|
+
incomplete === undefined
|
|
149
|
+
? Cause.done(done)
|
|
150
|
+
: Effect.fail(new MsgPackError({ kind: "Unpack", cause: incomplete.cause }))
|
|
151
|
+
})
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
function loop(chunk: Arr.NonEmptyReadonlyArray<Uint8Array<ArrayBuffer>>): Pull.Pull<
|
|
155
|
+
Arr.NonEmptyReadonlyArray<unknown>,
|
|
156
|
+
IE | MsgPackError,
|
|
157
|
+
Done
|
|
158
|
+
> {
|
|
159
|
+
const out = Arr.empty<unknown>()
|
|
160
|
+
for (let i = 0; i < chunk.length; i++) {
|
|
161
|
+
let buf = chunk[i]
|
|
162
|
+
if (incomplete !== undefined) {
|
|
163
|
+
const prev = buf
|
|
164
|
+
buf = new Uint8Array(incomplete.bytes.length + buf.length)
|
|
165
|
+
buf.set(incomplete.bytes)
|
|
166
|
+
buf.set(prev, incomplete.bytes.length)
|
|
167
|
+
incomplete = undefined
|
|
168
|
+
}
|
|
169
|
+
try {
|
|
170
|
+
out.push(...unpackr.unpackMultiple(buf))
|
|
171
|
+
} catch (cause) {
|
|
172
|
+
const error: any = cause
|
|
173
|
+
if (error.incomplete) {
|
|
174
|
+
incomplete = { bytes: buf.subarray(error.lastPosition), cause }
|
|
175
|
+
if (error.values) {
|
|
176
|
+
out.push(...error.values)
|
|
162
177
|
}
|
|
178
|
+
} else {
|
|
179
|
+
return Effect.fail(new MsgPackError({ kind: "Unpack", cause }))
|
|
163
180
|
}
|
|
164
181
|
}
|
|
165
|
-
return Arr.isReadonlyArrayNonEmpty(out) ? Effect.succeed(out) : Effect.flatMap(upstream, loop)
|
|
166
182
|
}
|
|
167
|
-
|
|
183
|
+
return Arr.isReadonlyArrayNonEmpty(out) ? Effect.succeed(out) : pull
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return pull
|
|
168
187
|
})
|
|
169
188
|
)
|
|
170
189
|
|
|
@@ -368,25 +387,29 @@ export const transformation: SchemaTransformation.Transformation<
|
|
|
368
387
|
unknown,
|
|
369
388
|
Uint8Array<ArrayBuffer>
|
|
370
389
|
> = SchemaTransformation.transformOrFail({
|
|
371
|
-
decode(e,
|
|
390
|
+
decode(e, options) {
|
|
372
391
|
try {
|
|
373
392
|
return Effect.succeed(Msgpackr.decode(e))
|
|
374
393
|
} catch {
|
|
375
394
|
return Effect.fail(
|
|
376
|
-
new SchemaIssue.InvalidValue(
|
|
377
|
-
|
|
378
|
-
|
|
395
|
+
new SchemaIssue.InvalidValue(
|
|
396
|
+
{ expected: "valid MessagePack bytes" },
|
|
397
|
+
e,
|
|
398
|
+
options
|
|
399
|
+
)
|
|
379
400
|
)
|
|
380
401
|
}
|
|
381
402
|
},
|
|
382
|
-
encode(t,
|
|
403
|
+
encode(t, options) {
|
|
383
404
|
try {
|
|
384
405
|
return Effect.succeed(Msgpackr.encode(t) as Uint8Array<ArrayBuffer>)
|
|
385
406
|
} catch {
|
|
386
407
|
return Effect.fail(
|
|
387
|
-
new SchemaIssue.InvalidValue(
|
|
388
|
-
|
|
389
|
-
|
|
408
|
+
new SchemaIssue.InvalidValue(
|
|
409
|
+
{ expected: "a MessagePack-serializable value" },
|
|
410
|
+
t,
|
|
411
|
+
options
|
|
412
|
+
)
|
|
390
413
|
)
|
|
391
414
|
}
|
|
392
415
|
}
|
|
@@ -73,7 +73,15 @@ export const encodeString = <IE = never, Done = unknown>(): Channel.Channel<
|
|
|
73
73
|
Channel.fromTransform((upstream, _scope) =>
|
|
74
74
|
Effect.succeed(Effect.flatMap(upstream, (input) => {
|
|
75
75
|
try {
|
|
76
|
-
return Effect.succeed(Arr.of(
|
|
76
|
+
return Effect.succeed(Arr.of(
|
|
77
|
+
input.map((item) => {
|
|
78
|
+
const output = JSON.stringify(item)
|
|
79
|
+
if (output === undefined) {
|
|
80
|
+
throw new TypeError("Value cannot be represented as JSON")
|
|
81
|
+
}
|
|
82
|
+
return output
|
|
83
|
+
}).join("\n") + "\n"
|
|
84
|
+
))
|
|
77
85
|
} catch (cause) {
|
|
78
86
|
return Effect.fail(new NdjsonError({ kind: "Pack", cause }))
|
|
79
87
|
}
|
|
@@ -255,9 +255,9 @@ export function makeParser(onParse: (event: AnyEvent) => void, options?: DecodeO
|
|
|
255
255
|
let buffer: string
|
|
256
256
|
let startingPosition: number
|
|
257
257
|
let startingFieldLength: number
|
|
258
|
+
let discardTrailingNewline: boolean
|
|
258
259
|
|
|
259
260
|
// Event state
|
|
260
|
-
let eventId: string | undefined
|
|
261
261
|
let lastEventId: string | undefined
|
|
262
262
|
let eventName: string | undefined
|
|
263
263
|
let data: string
|
|
@@ -270,8 +270,9 @@ export function makeParser(onParse: (event: AnyEvent) => void, options?: DecodeO
|
|
|
270
270
|
buffer = ""
|
|
271
271
|
startingPosition = 0
|
|
272
272
|
startingFieldLength = -1
|
|
273
|
+
discardTrailingNewline = false
|
|
273
274
|
|
|
274
|
-
|
|
275
|
+
lastEventId = undefined
|
|
275
276
|
eventName = undefined
|
|
276
277
|
data = ""
|
|
277
278
|
}
|
|
@@ -279,10 +280,10 @@ export function makeParser(onParse: (event: AnyEvent) => void, options?: DecodeO
|
|
|
279
280
|
function feed(chunk: string): SseError | undefined {
|
|
280
281
|
buffer = buffer ? buffer + chunk : chunk
|
|
281
282
|
|
|
282
|
-
// Strip any
|
|
283
|
+
// Strip any UTF-8 byte order mark (BOM) at the start of the stream.
|
|
283
284
|
// Note that we do not strip any non - UTF8 BOM, as eventsource streams are
|
|
284
285
|
// always decoded as UTF8 as per the specification.
|
|
285
|
-
if (isFirstChunk &&
|
|
286
|
+
if (isFirstChunk && buffer.startsWith(BOM)) {
|
|
286
287
|
buffer = buffer.slice(BOM.length)
|
|
287
288
|
}
|
|
288
289
|
|
|
@@ -291,7 +292,6 @@ export function makeParser(onParse: (event: AnyEvent) => void, options?: DecodeO
|
|
|
291
292
|
// Set up chunk-specific processing state
|
|
292
293
|
const length = buffer.length
|
|
293
294
|
let position = 0
|
|
294
|
-
let discardTrailingNewline = false
|
|
295
295
|
|
|
296
296
|
// Read the current buffer byte by byte
|
|
297
297
|
while (position < length) {
|
|
@@ -364,12 +364,11 @@ export function makeParser(onParse: (event: AnyEvent) => void, options?: DecodeO
|
|
|
364
364
|
if (data.length > 0) {
|
|
365
365
|
onParse({
|
|
366
366
|
_tag: "Event",
|
|
367
|
-
id:
|
|
368
|
-
event: eventName
|
|
367
|
+
id: lastEventId,
|
|
368
|
+
event: eventName || "message",
|
|
369
369
|
data: data.slice(0, -1) // remove trailing newline
|
|
370
370
|
})
|
|
371
371
|
data = ""
|
|
372
|
-
eventId = undefined
|
|
373
372
|
}
|
|
374
373
|
eventName = undefined
|
|
375
374
|
return
|
|
@@ -396,22 +395,15 @@ export function makeParser(onParse: (event: AnyEvent) => void, options?: DecodeO
|
|
|
396
395
|
} else if (field === "event") {
|
|
397
396
|
eventName = value
|
|
398
397
|
} else if (field === "id" && !value.includes("\u0000")) {
|
|
399
|
-
eventId = value
|
|
400
398
|
lastEventId = value
|
|
401
|
-
} else if (field === "retry") {
|
|
399
|
+
} else if (field === "retry" && /^\d+$/.test(value)) {
|
|
402
400
|
const retry = parseInt(value, 10)
|
|
403
|
-
|
|
404
|
-
onParse(new Retry({ duration: Duration.millis(retry), lastEventId }))
|
|
405
|
-
}
|
|
401
|
+
onParse(new Retry({ duration: Duration.millis(retry), lastEventId }))
|
|
406
402
|
}
|
|
407
403
|
}
|
|
408
404
|
}
|
|
409
405
|
|
|
410
|
-
const BOM =
|
|
411
|
-
|
|
412
|
-
function hasBom(buffer: string) {
|
|
413
|
-
return BOM.every((charCode: number, index: number) => buffer.charCodeAt(index) === charCode)
|
|
414
|
-
}
|
|
406
|
+
const BOM = "\uFEFF"
|
|
415
407
|
|
|
416
408
|
/**
|
|
417
409
|
* Stateful Server-Sent Events parser returned by `makeParser`.
|
|
@@ -662,9 +654,7 @@ export const encoder: Encoder = {
|
|
|
662
654
|
if (event.event !== "message") {
|
|
663
655
|
data += `event: ${event.event}\n`
|
|
664
656
|
}
|
|
665
|
-
|
|
666
|
-
data += `data: ${event.data.replace(/\n/g, "\ndata: ")}\n`
|
|
667
|
-
}
|
|
657
|
+
data += `data: ${event.data.replace(/\n/g, "\ndata: ")}\n`
|
|
668
658
|
return data + "\n"
|
|
669
659
|
}
|
|
670
660
|
case "Retry": {
|