effect 4.0.0-beta.93 → 4.0.0-beta.97
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/dist/Array.d.ts.map +1 -1
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Channel.d.ts.map +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Config.d.ts +1 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +44 -6
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +63 -24
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts.map +1 -1
- package/dist/Context.d.ts.map +1 -1
- package/dist/Cron.d.ts +4 -1
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +98 -53
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Data.d.ts.map +1 -1
- package/dist/DateTime.d.ts +12 -12
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Effect.d.ts +130 -0
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +43 -0
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts.map +1 -1
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ExecutionPlan.d.ts +2 -2
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/FiberHandle.d.ts +8 -8
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberMap.d.ts +8 -8
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberSet.d.ts +4 -4
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FileSystem.d.ts +7 -0
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +3 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Function.d.ts.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/HashMap.d.ts.map +1 -1
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Layer.d.ts +1 -1
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +6 -3
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +1 -1
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +252 -0
- package/dist/LayerRef.d.ts.map +1 -0
- package/dist/LayerRef.js +171 -0
- package/dist/LayerRef.js.map +1 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/Logger.d.ts.map +1 -1
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/Metric.d.ts.map +1 -1
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/Number.d.ts.map +1 -1
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Option.d.ts.map +1 -1
- package/dist/Order.d.ts.map +1 -1
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/Record.d.ts.map +1 -1
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Result.d.ts.map +1 -1
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Schedule.d.ts +1206 -4013
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +244 -1348
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +123 -30
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +40 -0
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +1 -1
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +106 -106
- package/dist/SchemaTransformation.d.ts +38 -2
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +38 -2
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stream.d.ts +2 -2
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +1 -1
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts.map +1 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/Take.d.ts.map +1 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/Types.d.ts +1 -1
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/Utils.d.ts.map +1 -1
- package/dist/internal/effect.js +2 -0
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/schema/schema.d.ts.map +1 -1
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestConsole.d.ts.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.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +1 -1
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +2 -2
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +2 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +221 -221
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +2 -2
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Completions.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +2 -2
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +2 -2
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.d.ts.map +1 -1
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts.map +1 -1
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +5 -3
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityId.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityType.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/MachineId.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +25 -29
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +8 -8
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +6 -5
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts +6 -8
- package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts.map +1 -1
- package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/Singleton.d.ts.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +1 -1
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +14 -14
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js +39 -14
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/devtools/DevTools.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +2 -2
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +2 -2
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +21 -21
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +3 -4
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +1 -1
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +1 -1
- package/dist/unstable/http/HttpClientError.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +2 -2
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +4 -4
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +1 -1
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +8 -8
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +4 -3
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +2 -4
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +26 -26
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.d.ts +1 -1
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +3 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/internal/otlpEnv.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +2 -2
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +4 -4
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +2 -2
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +28 -37
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +2 -1
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +5 -5
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +7 -7
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +2 -2
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +8 -8
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +2 -2
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +5 -5
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/schema/Model.d.ts +24 -38
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +1 -1
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +2 -2
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlStream.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +1 -1
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +1 -1
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +1 -1
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
- package/package.json +11 -12
- package/src/Config.ts +1 -1
- package/src/ConfigProvider.ts +79 -27
- package/src/Cron.ts +109 -57
- package/src/Effect.ts +131 -0
- package/src/FileSystem.ts +13 -0
- package/src/Layer.ts +6 -6
- package/src/LayerMap.ts +1 -1
- package/src/LayerRef.ts +379 -0
- package/src/Schedule.ts +1437 -4445
- package/src/Schema.ts +133 -33
- package/src/SchemaParser.ts +2 -2
- package/src/SchemaTransformation.ts +42 -2
- package/src/Stream.ts +1 -1
- package/src/internal/effect.ts +19 -0
- package/src/testing/TestSchema.ts +2 -2
- package/src/unstable/ai/Chat.ts +1 -1
- package/src/unstable/ai/LanguageModel.ts +3 -3
- package/src/unstable/cli/Argument.ts +14 -7
- package/src/unstable/cli/Flag.ts +6 -3
- package/src/unstable/cli/Param.ts +6 -3
- package/src/unstable/cli/Primitive.ts +2 -2
- package/src/unstable/cluster/ClusterCron.ts +4 -3
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -3
- package/src/unstable/cluster/Entity.ts +13 -14
- package/src/unstable/cluster/Sharding.ts +137 -134
- package/src/unstable/cluster/Snowflake.ts +2 -2
- package/src/unstable/cluster/internal/entityManager.ts +27 -25
- package/src/unstable/cluster/internal/resourceMap.ts +59 -25
- package/src/unstable/encoding/Sse.ts +3 -3
- package/src/unstable/eventlog/EventLog.ts +4 -3
- package/src/unstable/http/HttpClientResponse.ts +2 -3
- package/src/unstable/http/HttpIncomingMessage.ts +4 -5
- package/src/unstable/http/HttpRouter.ts +8 -10
- package/src/unstable/http/HttpServerRequest.ts +20 -19
- package/src/unstable/http/HttpServerResponse.ts +2 -2
- package/src/unstable/http/Multipart.ts +3 -3
- package/src/unstable/httpapi/HttpApi.ts +2 -4
- package/src/unstable/httpapi/HttpApiClient.ts +2 -2
- package/src/unstable/httpapi/HttpApiEndpoint.ts +7 -7
- package/src/unstable/httpapi/HttpApiSchema.ts +1 -1
- package/src/unstable/observability/OtlpExporter.ts +1 -1
- package/src/unstable/reactivity/Atom.ts +10 -7
- package/src/unstable/reactivity/AtomRegistry.ts +35 -44
- package/src/unstable/rpc/RpcClient.ts +10 -9
- package/src/unstable/rpc/RpcMessage.ts +8 -9
- package/src/unstable/rpc/RpcSerialization.ts +16 -16
- package/src/unstable/rpc/RpcServer.ts +5 -5
- package/src/unstable/workflow/Activity.ts +6 -5
- package/src/unstable/workflow/DurableQueue.ts +4 -3
- package/src/unstable/workflow/WorkflowEngine.ts +4 -3
package/src/Cron.ts
CHANGED
|
@@ -110,6 +110,8 @@ export interface Cron extends Pipeable, Equal.Equal, Inspectable {
|
|
|
110
110
|
readonly months: ReadonlySet<number>
|
|
111
111
|
readonly weekdays: ReadonlySet<number>
|
|
112
112
|
/** @internal */
|
|
113
|
+
readonly and: boolean
|
|
114
|
+
/** @internal */
|
|
113
115
|
readonly first: {
|
|
114
116
|
readonly second: number
|
|
115
117
|
readonly minute: number
|
|
@@ -167,6 +169,7 @@ const CronProto = {
|
|
|
167
169
|
[Hash.symbol](this: Cron): number {
|
|
168
170
|
return pipe(
|
|
169
171
|
Hash.hash(this.tz),
|
|
172
|
+
Hash.combine(Hash.hash(this.and)),
|
|
170
173
|
Hash.combine(Hash.array(Arr.fromIterable(this.seconds))),
|
|
171
174
|
Hash.combine(Hash.array(Arr.fromIterable(this.minutes))),
|
|
172
175
|
Hash.combine(Hash.array(Arr.fromIterable(this.hours))),
|
|
@@ -252,7 +255,9 @@ export const isCron = (u: unknown): u is Cron => hasProperty(u, TypeId)
|
|
|
252
255
|
*
|
|
253
256
|
* Constructs a cron schedule by specifying which seconds, minutes, hours,
|
|
254
257
|
* days, months, and weekdays the schedule should match. Empty arrays mean
|
|
255
|
-
* "match all" for that time unit.
|
|
258
|
+
* "match all" for that time unit. When both days and weekdays are restricted,
|
|
259
|
+
* the default matches either field; set `and: true` to require both fields to
|
|
260
|
+
* match.
|
|
256
261
|
*
|
|
257
262
|
* **Example** (Creating schedules from constraints)
|
|
258
263
|
*
|
|
@@ -354,6 +359,7 @@ export const make = (values: {
|
|
|
354
359
|
readonly days: Iterable<number>
|
|
355
360
|
readonly months: Iterable<number>
|
|
356
361
|
readonly weekdays: Iterable<number>
|
|
362
|
+
readonly and?: boolean | undefined
|
|
357
363
|
readonly tz?: DateTime.TimeZone | undefined
|
|
358
364
|
}): Cron => {
|
|
359
365
|
const o: Mutable<Cron> = Object.create(CronProto)
|
|
@@ -363,6 +369,7 @@ export const make = (values: {
|
|
|
363
369
|
o.days = new Set(Arr.sort(values.days, N.Order))
|
|
364
370
|
o.months = new Set(Arr.sort(values.months, N.Order))
|
|
365
371
|
o.weekdays = new Set(Arr.sort(values.weekdays, N.Order))
|
|
372
|
+
o.and = values.and === true
|
|
366
373
|
o.tz = Option.fromUndefinedOr(values.tz)
|
|
367
374
|
|
|
368
375
|
const seconds = Array.from(o.seconds)
|
|
@@ -563,7 +570,7 @@ export const isCronParseError = (u: unknown): u is CronParseError => hasProperty
|
|
|
563
570
|
* @since 2.0.0
|
|
564
571
|
*/
|
|
565
572
|
export const parse = (cron: string, tz?: DateTime.TimeZone | string): Result.Result<Cron, CronParseError> => {
|
|
566
|
-
const segments = cron.split(
|
|
573
|
+
const segments = cron.trim().split(/\s+/).filter(String.isNonEmpty)
|
|
567
574
|
if (segments.length !== 5 && segments.length !== 6) {
|
|
568
575
|
return Result.fail(new CronParseError({ message: `Invalid number of segments in cron expression`, input: cron }))
|
|
569
576
|
}
|
|
@@ -588,7 +595,18 @@ export const parse = (cron: string, tz?: DateTime.TimeZone | string): Result.Res
|
|
|
588
595
|
days: parseSegment(days, dayOptions),
|
|
589
596
|
months: parseSegment(months, monthOptions),
|
|
590
597
|
weekdays: parseSegment(weekdays, weekdayOptions)
|
|
591
|
-
}).pipe(Result.map(
|
|
598
|
+
}).pipe(Result.map(({ tz, seconds, minutes, hours, days, months, weekdays }) =>
|
|
599
|
+
make({
|
|
600
|
+
tz,
|
|
601
|
+
seconds: seconds.values,
|
|
602
|
+
minutes: minutes.values,
|
|
603
|
+
hours: hours.values,
|
|
604
|
+
days: days.values,
|
|
605
|
+
months: months.values,
|
|
606
|
+
weekdays: weekdays.values,
|
|
607
|
+
and: (days.wildcard || weekdays.wildcard) && days.values.size !== 0 && weekdays.values.size !== 0
|
|
608
|
+
})
|
|
609
|
+
))
|
|
592
610
|
}
|
|
593
611
|
|
|
594
612
|
/**
|
|
@@ -682,6 +700,11 @@ export const match = (cron: Cron, date: DateTime.DateTime.Input): boolean => {
|
|
|
682
700
|
return true
|
|
683
701
|
}
|
|
684
702
|
|
|
703
|
+
if (cron.and) {
|
|
704
|
+
return (cron.days.size === 0 || cron.days.has(parts.day)) &&
|
|
705
|
+
(cron.weekdays.size === 0 || cron.weekdays.has(parts.weekDay))
|
|
706
|
+
}
|
|
707
|
+
|
|
685
708
|
if (cron.weekdays.size === 0) {
|
|
686
709
|
return cron.days.has(parts.day)
|
|
687
710
|
}
|
|
@@ -843,46 +866,59 @@ const stepCron = (cron: Cron, now: DateTime.DateTime.Input | undefined, directio
|
|
|
843
866
|
}
|
|
844
867
|
|
|
845
868
|
if (cron.weekdays.size !== 0 || cron.days.size !== 0) {
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
currentWeekday - 7 + boundary.weekday :
|
|
855
|
-
7 - currentWeekday + boundary.weekday
|
|
856
|
-
} else {
|
|
857
|
-
a = nextWeekday - currentWeekday
|
|
869
|
+
if (cron.and) {
|
|
870
|
+
const matchesDay = cron.days.size === 0 || cron.days.has(current.getUTCDate())
|
|
871
|
+
const matchesWeekday = cron.weekdays.size === 0 || cron.weekdays.has(current.getUTCDay())
|
|
872
|
+
if (!matchesDay || !matchesWeekday) {
|
|
873
|
+
current.setUTCDate(current.getUTCDate() + tick)
|
|
874
|
+
current.setUTCHours(boundary.hour, boundary.minute, boundary.second)
|
|
875
|
+
adjustDst(current)
|
|
876
|
+
continue
|
|
858
877
|
}
|
|
859
|
-
}
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
878
|
+
} else {
|
|
879
|
+
let a: number = reverse ? -Infinity : Infinity
|
|
880
|
+
let b: number = reverse ? -Infinity : Infinity
|
|
881
|
+
|
|
882
|
+
if (cron.weekdays.size !== 0) {
|
|
883
|
+
const currentWeekday = current.getUTCDay()
|
|
884
|
+
const nextWeekday = table.weekday[currentWeekday]
|
|
885
|
+
if (nextWeekday === undefined) {
|
|
886
|
+
a = reverse ?
|
|
887
|
+
currentWeekday - 7 + boundary.weekday :
|
|
888
|
+
7 - currentWeekday + boundary.weekday
|
|
868
889
|
} else {
|
|
890
|
+
a = nextWeekday - currentWeekday
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
if (cron.days.size !== 0 && a !== 0) {
|
|
895
|
+
const currentDay = current.getUTCDate()
|
|
896
|
+
const nextDay = table.day[currentDay]
|
|
897
|
+
if (nextDay === undefined) {
|
|
898
|
+
if (reverse) {
|
|
899
|
+
const prevMonthDays = daysInMonth(
|
|
900
|
+
new Date(Date.UTC(current.getUTCFullYear(), current.getUTCMonth(), 0))
|
|
901
|
+
)
|
|
902
|
+
b = -(currentDay + (prevMonthDays - boundary.day))
|
|
903
|
+
} else {
|
|
904
|
+
b = daysInMonth(current) - currentDay + boundary.day
|
|
905
|
+
}
|
|
906
|
+
} else if (!reverse && nextDay > daysInMonth(current)) {
|
|
907
|
+
// The next matching day does not exist in the current month. Setting it
|
|
908
|
+
// directly would overflow and skip earlier matching days next month.
|
|
869
909
|
b = daysInMonth(current) - currentDay + boundary.day
|
|
910
|
+
} else {
|
|
911
|
+
b = nextDay - currentDay
|
|
870
912
|
}
|
|
871
|
-
} else if (!reverse && nextDay > daysInMonth(current)) {
|
|
872
|
-
// The next matching day does not exist in the current month. Setting it
|
|
873
|
-
// directly would overflow and skip earlier matching days next month.
|
|
874
|
-
b = daysInMonth(current) - currentDay + boundary.day
|
|
875
|
-
} else {
|
|
876
|
-
b = nextDay - currentDay
|
|
877
913
|
}
|
|
878
|
-
}
|
|
879
914
|
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
915
|
+
const addDays = reverse ? Math.max(a, b) : Math.min(a, b)
|
|
916
|
+
if (addDays !== 0) {
|
|
917
|
+
current.setUTCDate(current.getUTCDate() + addDays)
|
|
918
|
+
current.setUTCHours(boundary.hour, boundary.minute, boundary.second)
|
|
919
|
+
adjustDst(current)
|
|
920
|
+
continue
|
|
921
|
+
}
|
|
886
922
|
}
|
|
887
923
|
}
|
|
888
924
|
|
|
@@ -890,11 +926,11 @@ const stepCron = (cron: Cron, now: DateTime.DateTime.Input | undefined, directio
|
|
|
890
926
|
const currentMonth = current.getUTCMonth() + 1
|
|
891
927
|
const nextMonth = table.month[currentMonth]
|
|
892
928
|
const clampBoundaryDay = (targetMonthIndex: number): number => {
|
|
893
|
-
if (cron.days.size !== 0) {
|
|
929
|
+
if (cron.days.size !== 0 && cron.weekdays.size === 0) {
|
|
894
930
|
return boundary.day
|
|
895
931
|
}
|
|
896
932
|
const maxDayInMonth = daysInMonth(new Date(Date.UTC(current.getUTCFullYear(), targetMonthIndex + 1, 0)))
|
|
897
|
-
return
|
|
933
|
+
return reverse ? maxDayInMonth : 1
|
|
898
934
|
}
|
|
899
935
|
if (nextMonth === undefined) {
|
|
900
936
|
current.setUTCFullYear(current.getUTCFullYear() + tick)
|
|
@@ -1004,6 +1040,7 @@ export const sequence = function*(cron: Cron, now?: DateTime.DateTime.Input): It
|
|
|
1004
1040
|
* @since 2.0.0
|
|
1005
1041
|
*/
|
|
1006
1042
|
export const Equivalence: Equ.Equivalence<Cron> = Equ.make((self, that) =>
|
|
1043
|
+
self.and === that.and &&
|
|
1007
1044
|
restrictionsEquals(self.seconds, that.seconds) &&
|
|
1008
1045
|
restrictionsEquals(self.minutes, that.minutes) &&
|
|
1009
1046
|
restrictionsEquals(self.hours, that.hours) &&
|
|
@@ -1154,6 +1191,12 @@ interface SegmentOptions {
|
|
|
1154
1191
|
min: number
|
|
1155
1192
|
max: number
|
|
1156
1193
|
aliases?: Record<string, number> | undefined
|
|
1194
|
+
normalize?: ((value: number) => number) | undefined
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1197
|
+
interface ParsedSegment {
|
|
1198
|
+
readonly values: Set<number>
|
|
1199
|
+
readonly wildcard: boolean
|
|
1157
1200
|
}
|
|
1158
1201
|
|
|
1159
1202
|
const secondOptions: SegmentOptions = {
|
|
@@ -1197,7 +1240,8 @@ const monthOptions: SegmentOptions = {
|
|
|
1197
1240
|
|
|
1198
1241
|
const weekdayOptions: SegmentOptions = {
|
|
1199
1242
|
min: 0,
|
|
1200
|
-
max:
|
|
1243
|
+
max: 7,
|
|
1244
|
+
normalize: (value) => value === 7 ? 0 : value,
|
|
1201
1245
|
aliases: {
|
|
1202
1246
|
sun: 0,
|
|
1203
1247
|
mon: 1,
|
|
@@ -1212,17 +1256,21 @@ const weekdayOptions: SegmentOptions = {
|
|
|
1212
1256
|
const parseSegment = (
|
|
1213
1257
|
input: string,
|
|
1214
1258
|
options: SegmentOptions
|
|
1215
|
-
): Result.Result<
|
|
1216
|
-
const capacity = options.max - options.min + 1
|
|
1259
|
+
): Result.Result<ParsedSegment, CronParseError> => {
|
|
1217
1260
|
const values = new Set<number>()
|
|
1218
1261
|
const fields = input.split(",")
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1262
|
+
const first = splitStep(fields[0]!)
|
|
1263
|
+
const wildcard = first[0] === "*"
|
|
1264
|
+
const normalize = options.normalize ?? ((value: number) => value)
|
|
1265
|
+
const add = wildcard && (first[1] === undefined || first[1] === 1) ?
|
|
1266
|
+
constVoid :
|
|
1267
|
+
(value: number) => {
|
|
1268
|
+
values.add(normalize(value))
|
|
1224
1269
|
}
|
|
1225
1270
|
|
|
1271
|
+
for (let index = 0; index < fields.length; index++) {
|
|
1272
|
+
const field = fields[index]!
|
|
1273
|
+
const [raw, step] = index === 0 ? first : splitStep(field)
|
|
1226
1274
|
if (step !== undefined) {
|
|
1227
1275
|
if (!Number.isInteger(step)) {
|
|
1228
1276
|
return Result.fail(new CronParseError({ message: `Expected step value to be a positive integer`, input }))
|
|
@@ -1236,8 +1284,11 @@ const parseSegment = (
|
|
|
1236
1284
|
}
|
|
1237
1285
|
|
|
1238
1286
|
if (raw === "*") {
|
|
1287
|
+
if (index === 0 && (step === undefined || step === 1)) {
|
|
1288
|
+
continue
|
|
1289
|
+
}
|
|
1239
1290
|
for (let i = options.min; i <= options.max; i += step ?? 1) {
|
|
1240
|
-
|
|
1291
|
+
add(i)
|
|
1241
1292
|
}
|
|
1242
1293
|
} else {
|
|
1243
1294
|
const [left, right] = splitRange(raw, options.aliases)
|
|
@@ -1251,7 +1302,9 @@ const parseSegment = (
|
|
|
1251
1302
|
}
|
|
1252
1303
|
|
|
1253
1304
|
if (right === undefined) {
|
|
1254
|
-
|
|
1305
|
+
for (let i = left; i <= (step === undefined ? left : options.max); i += step ?? 1) {
|
|
1306
|
+
add(i)
|
|
1307
|
+
}
|
|
1255
1308
|
} else {
|
|
1256
1309
|
if (!Number.isInteger(right)) {
|
|
1257
1310
|
return Result.fail(new CronParseError({ message: `Expected a positive integer`, input }))
|
|
@@ -1266,23 +1319,20 @@ const parseSegment = (
|
|
|
1266
1319
|
}
|
|
1267
1320
|
|
|
1268
1321
|
for (let i = left; i <= right; i += step ?? 1) {
|
|
1269
|
-
|
|
1322
|
+
add(i)
|
|
1270
1323
|
}
|
|
1271
1324
|
}
|
|
1272
1325
|
}
|
|
1273
|
-
|
|
1274
|
-
if (values.size >= capacity) {
|
|
1275
|
-
return Result.succeed(new Set())
|
|
1276
|
-
}
|
|
1277
1326
|
}
|
|
1278
1327
|
|
|
1279
|
-
return Result.succeed(values)
|
|
1328
|
+
return Result.succeed({ values, wildcard })
|
|
1280
1329
|
}
|
|
1281
1330
|
|
|
1282
1331
|
const splitStep = (input: string): [string, number | undefined] => {
|
|
1283
1332
|
const separator = input.indexOf("/")
|
|
1284
1333
|
if (separator !== -1) {
|
|
1285
|
-
|
|
1334
|
+
const step = input.slice(separator + 1)
|
|
1335
|
+
return [input.slice(0, separator), decimalRegex.test(step) ? Number(step) : NaN]
|
|
1286
1336
|
}
|
|
1287
1337
|
|
|
1288
1338
|
return [input, undefined]
|
|
@@ -1298,5 +1348,7 @@ const splitRange = (input: string, aliases?: Record<string, number>): [number, n
|
|
|
1298
1348
|
}
|
|
1299
1349
|
|
|
1300
1350
|
function aliasOrValue(field: string, aliases?: Record<string, number>): number {
|
|
1301
|
-
return aliases?.[field.toLocaleLowerCase()] ?? Number(field)
|
|
1351
|
+
return aliases?.[field.toLocaleLowerCase()] ?? (decimalRegex.test(field) ? Number(field) : NaN)
|
|
1302
1352
|
}
|
|
1353
|
+
|
|
1354
|
+
const decimalRegex = /^\d+$/
|
package/src/Effect.ts
CHANGED
|
@@ -11751,6 +11751,137 @@ export const provideContext: {
|
|
|
11751
11751
|
<A, E, R, XR>(self: Effect<A, E, R>, context: Context.Context<XR>): Effect<A, E, Exclude<R, XR>>
|
|
11752
11752
|
} = internal.provideContext
|
|
11753
11753
|
|
|
11754
|
+
/**
|
|
11755
|
+
* Runs an effect with the provided context as its complete environment.
|
|
11756
|
+
*
|
|
11757
|
+
* **When to use**
|
|
11758
|
+
*
|
|
11759
|
+
* Use when you already have a `Context` containing every service required by
|
|
11760
|
+
* the effect and want the wrapped effect to run with exactly that context.
|
|
11761
|
+
*
|
|
11762
|
+
* **Gotchas**
|
|
11763
|
+
*
|
|
11764
|
+
* `setContext` replaces the current context for the wrapped effect. Services
|
|
11765
|
+
* from an outer context are not inherited unless they are also present in the
|
|
11766
|
+
* context passed to `setContext`.
|
|
11767
|
+
*
|
|
11768
|
+
* **Example** (Running with a complete context)
|
|
11769
|
+
*
|
|
11770
|
+
* ```ts
|
|
11771
|
+
* import { Context, Effect } from "effect"
|
|
11772
|
+
*
|
|
11773
|
+
* class Config extends Context.Service<Config, {
|
|
11774
|
+
* readonly greeting: string
|
|
11775
|
+
* }>()("Config") {}
|
|
11776
|
+
*
|
|
11777
|
+
* const program = Effect.gen(function*() {
|
|
11778
|
+
* const config = yield* Effect.service(Config)
|
|
11779
|
+
* return `${config.greeting}, World!`
|
|
11780
|
+
* })
|
|
11781
|
+
*
|
|
11782
|
+
* const context = Context.make(Config, { greeting: "Hello" })
|
|
11783
|
+
*
|
|
11784
|
+
* const runnable = Effect.setContext(program, context)
|
|
11785
|
+
*
|
|
11786
|
+
* Effect.runPromise(runnable).then(console.log)
|
|
11787
|
+
* // Output: "Hello, World!"
|
|
11788
|
+
* ```
|
|
11789
|
+
*
|
|
11790
|
+
* @see {@link provideContext} for partially satisfying an effect's context requirements.
|
|
11791
|
+
* @see {@link updateContext} for deriving the required context from the current one.
|
|
11792
|
+
*
|
|
11793
|
+
* @category environment
|
|
11794
|
+
* @since 4.0.0
|
|
11795
|
+
*/
|
|
11796
|
+
export const setContext: {
|
|
11797
|
+
/**
|
|
11798
|
+
* Runs an effect with the provided context as its complete environment.
|
|
11799
|
+
*
|
|
11800
|
+
* **When to use**
|
|
11801
|
+
*
|
|
11802
|
+
* Use when you already have a `Context` containing every service required by
|
|
11803
|
+
* the effect and want the wrapped effect to run with exactly that context.
|
|
11804
|
+
*
|
|
11805
|
+
* **Gotchas**
|
|
11806
|
+
*
|
|
11807
|
+
* `setContext` replaces the current context for the wrapped effect. Services
|
|
11808
|
+
* from an outer context are not inherited unless they are also present in the
|
|
11809
|
+
* context passed to `setContext`.
|
|
11810
|
+
*
|
|
11811
|
+
* **Example** (Running with a complete context)
|
|
11812
|
+
*
|
|
11813
|
+
* ```ts
|
|
11814
|
+
* import { Context, Effect } from "effect"
|
|
11815
|
+
*
|
|
11816
|
+
* class Config extends Context.Service<Config, {
|
|
11817
|
+
* readonly greeting: string
|
|
11818
|
+
* }>()("Config") {}
|
|
11819
|
+
*
|
|
11820
|
+
* const program = Effect.gen(function*() {
|
|
11821
|
+
* const config = yield* Effect.service(Config)
|
|
11822
|
+
* return `${config.greeting}, World!`
|
|
11823
|
+
* })
|
|
11824
|
+
*
|
|
11825
|
+
* const context = Context.make(Config, { greeting: "Hello" })
|
|
11826
|
+
*
|
|
11827
|
+
* const runnable = Effect.setContext(program, context)
|
|
11828
|
+
*
|
|
11829
|
+
* Effect.runPromise(runnable).then(console.log)
|
|
11830
|
+
* // Output: "Hello, World!"
|
|
11831
|
+
* ```
|
|
11832
|
+
*
|
|
11833
|
+
* @see {@link provideContext} for partially satisfying an effect's context requirements.
|
|
11834
|
+
* @see {@link updateContext} for deriving the required context from the current one.
|
|
11835
|
+
*
|
|
11836
|
+
* @category environment
|
|
11837
|
+
* @since 4.0.0
|
|
11838
|
+
*/
|
|
11839
|
+
<R>(context: Context.Context<R>): <A, E>(self: Effect<A, E, R>) => Effect<A, E>
|
|
11840
|
+
/**
|
|
11841
|
+
* Runs an effect with the provided context as its complete environment.
|
|
11842
|
+
*
|
|
11843
|
+
* **When to use**
|
|
11844
|
+
*
|
|
11845
|
+
* Use when you already have a `Context` containing every service required by
|
|
11846
|
+
* the effect and want the wrapped effect to run with exactly that context.
|
|
11847
|
+
*
|
|
11848
|
+
* **Gotchas**
|
|
11849
|
+
*
|
|
11850
|
+
* `setContext` replaces the current context for the wrapped effect. Services
|
|
11851
|
+
* from an outer context are not inherited unless they are also present in the
|
|
11852
|
+
* context passed to `setContext`.
|
|
11853
|
+
*
|
|
11854
|
+
* **Example** (Running with a complete context)
|
|
11855
|
+
*
|
|
11856
|
+
* ```ts
|
|
11857
|
+
* import { Context, Effect } from "effect"
|
|
11858
|
+
*
|
|
11859
|
+
* class Config extends Context.Service<Config, {
|
|
11860
|
+
* readonly greeting: string
|
|
11861
|
+
* }>()("Config") {}
|
|
11862
|
+
*
|
|
11863
|
+
* const program = Effect.gen(function*() {
|
|
11864
|
+
* const config = yield* Effect.service(Config)
|
|
11865
|
+
* return `${config.greeting}, World!`
|
|
11866
|
+
* })
|
|
11867
|
+
*
|
|
11868
|
+
* const context = Context.make(Config, { greeting: "Hello" })
|
|
11869
|
+
*
|
|
11870
|
+
* const runnable = Effect.setContext(program, context)
|
|
11871
|
+
*
|
|
11872
|
+
* Effect.runPromise(runnable).then(console.log)
|
|
11873
|
+
* // Output: "Hello, World!"
|
|
11874
|
+
* ```
|
|
11875
|
+
*
|
|
11876
|
+
* @see {@link provideContext} for partially satisfying an effect's context requirements.
|
|
11877
|
+
* @see {@link updateContext} for deriving the required context from the current one.
|
|
11878
|
+
*
|
|
11879
|
+
* @category environment
|
|
11880
|
+
* @since 4.0.0
|
|
11881
|
+
*/
|
|
11882
|
+
<A, E, R>(self: Effect<A, E, R>, context: Context.Context<R>): Effect<A, E>
|
|
11883
|
+
} = internal.setContext
|
|
11884
|
+
|
|
11754
11885
|
/**
|
|
11755
11886
|
* Accesses a service from the context.
|
|
11756
11887
|
*
|
package/src/FileSystem.ts
CHANGED
|
@@ -118,6 +118,16 @@ export interface FileSystem {
|
|
|
118
118
|
uid: number,
|
|
119
119
|
gid: number
|
|
120
120
|
) => Effect.Effect<void, PlatformError>
|
|
121
|
+
/**
|
|
122
|
+
* Glob a directory.
|
|
123
|
+
*/
|
|
124
|
+
readonly glob: (
|
|
125
|
+
pattern: string,
|
|
126
|
+
options?: {
|
|
127
|
+
readonly root?: string | undefined
|
|
128
|
+
readonly exclude?: ReadonlyArray<string> | undefined
|
|
129
|
+
}
|
|
130
|
+
) => Effect.Effect<Array<string>, PlatformError>
|
|
121
131
|
/**
|
|
122
132
|
* Checks whether a path exists.
|
|
123
133
|
*/
|
|
@@ -917,6 +927,9 @@ export const makeNoop = (fileSystem: Partial<FileSystem>): FileSystem =>
|
|
|
917
927
|
copyFile(path) {
|
|
918
928
|
return Effect.fail(notFound("copyFile", path))
|
|
919
929
|
},
|
|
930
|
+
glob(pattern) {
|
|
931
|
+
return Effect.fail(notFound("glob", pattern))
|
|
932
|
+
},
|
|
920
933
|
exists() {
|
|
921
934
|
return Effect.succeed(false)
|
|
922
935
|
},
|
package/src/Layer.ts
CHANGED
|
@@ -565,10 +565,10 @@ export const forkMemoMap = (parent: MemoMap): Effect<MemoMap> => internalEffect.
|
|
|
565
565
|
* @since 3.13.0
|
|
566
566
|
*/
|
|
567
567
|
export class CurrentMemoMap extends Context.Service<CurrentMemoMap, MemoMap>()("effect/Layer/CurrentMemoMap") {
|
|
568
|
-
static
|
|
569
|
-
|
|
570
|
-
makeMemoMapUnsafe
|
|
571
|
-
|
|
568
|
+
static forkOrCreate<Services>(self: Context.Context<Services>): MemoMap {
|
|
569
|
+
const current = Context.getOrUndefined(self, CurrentMemoMap)
|
|
570
|
+
return current ? forkMemoMapUnsafe(current) : makeMemoMapUnsafe()
|
|
571
|
+
}
|
|
572
572
|
}
|
|
573
573
|
|
|
574
574
|
/**
|
|
@@ -766,7 +766,7 @@ export const build = <RIn, E, ROut>(
|
|
|
766
766
|
core.withFiber((fiber) =>
|
|
767
767
|
buildWithMemoMap(
|
|
768
768
|
self,
|
|
769
|
-
CurrentMemoMap.
|
|
769
|
+
CurrentMemoMap.forkOrCreate(fiber.context),
|
|
770
770
|
Context.getUnsafe(fiber.context, Scope.Scope)
|
|
771
771
|
)
|
|
772
772
|
)
|
|
@@ -922,7 +922,7 @@ export const buildWithScope: {
|
|
|
922
922
|
core.withFiber((fiber) =>
|
|
923
923
|
buildWithMemoMap(
|
|
924
924
|
self,
|
|
925
|
-
CurrentMemoMap.
|
|
925
|
+
CurrentMemoMap.forkOrCreate(fiber.context),
|
|
926
926
|
scope
|
|
927
927
|
)
|
|
928
928
|
))
|
package/src/LayerMap.ts
CHANGED
|
@@ -153,7 +153,7 @@ export const make: <
|
|
|
153
153
|
} | undefined
|
|
154
154
|
) {
|
|
155
155
|
const context = yield* Effect.context<never>()
|
|
156
|
-
const memoMap = Layer.CurrentMemoMap.
|
|
156
|
+
const memoMap = Layer.CurrentMemoMap.forkOrCreate(context)
|
|
157
157
|
|
|
158
158
|
const rcMap = yield* RcMap.make({
|
|
159
159
|
lookup: (key: K) =>
|