effect 4.0.0-beta.94 → 4.0.0-beta.98
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.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.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.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.map +1 -1
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerRef.d.ts +5 -7
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +4 -6
- package/dist/LayerRef.js.map +1 -1
- 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/Number.js +28 -10
- package/dist/Number.js.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 +71 -22
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +76 -33
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +25 -10
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaError.d.ts +53 -0
- package/dist/SchemaError.d.ts.map +1 -0
- package/dist/SchemaError.js +61 -0
- package/dist/SchemaError.js.map +1 -0
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +17 -12
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaRepresentation.d.ts +106 -106
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +186 -224
- package/dist/SchemaRepresentation.js.map +1 -1
- 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/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/effect.js +26 -8
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/schema/equivalence.js +1 -2
- package/dist/internal/schema/equivalence.js.map +1 -1
- package/dist/internal/schema/representation.js +1 -3
- package/dist/internal/schema/representation.js.map +1 -1
- package/dist/internal/schema/schema.d.ts +0 -13
- package/dist/internal/schema/schema.d.ts.map +1 -1
- package/dist/internal/schema/schema.js +4 -29
- package/dist/internal/schema/schema.js.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.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 +1 -1
- 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.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +278 -278
- 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.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +8 -16
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +8 -16
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/Command.d.ts +4 -3
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +3 -3
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +6 -8
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/GlobalFlag.js +6 -6
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts.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 +1 -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/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 +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +2 -4
- package/dist/unstable/cluster/EntityProxyServer.js.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.js +3 -4
- 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 +26 -24
- package/dist/unstable/cluster/internal/entityManager.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.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.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts.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.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 +2 -2
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts.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 +2 -1
- package/dist/unstable/http/Multipart.d.ts.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 +36 -15
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +19 -20
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +51 -62
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +68 -58
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +53 -53
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +40 -30
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +171 -170
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +31 -19
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +23 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +31 -0
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +55 -30
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js +22 -29
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +8 -8
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js +4 -3
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +8 -0
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.d.ts +4 -4
- package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js +9 -8
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +77 -37
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/httpapi/internal/html.js +6 -2
- package/dist/unstable/httpapi/internal/html.js.map +1 -1
- package/dist/unstable/httpapi/internal/mediaType.d.ts +2 -0
- package/dist/unstable/httpapi/internal/mediaType.d.ts.map +1 -0
- package/dist/unstable/httpapi/internal/mediaType.js +7 -0
- package/dist/unstable/httpapi/internal/mediaType.js.map +1 -0
- 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/PersistedQueue.js +16 -12
- package/dist/unstable/persistence/PersistedQueue.js.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.map +1 -1
- package/dist/unstable/reactivity/Atom.js +1 -1
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +7 -7
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +3 -2
- package/dist/unstable/reactivity/AtomHttpApi.js.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 +5 -3
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +11 -8
- 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/DurableDeferred.js +1 -1
- package/dist/unstable/workflow/DurableDeferred.js.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 +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js +1 -2
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/package.json +11 -12
- package/src/ConfigProvider.ts +79 -27
- package/src/Cron.ts +109 -57
- package/src/LayerRef.ts +4 -6
- package/src/Number.ts +29 -10
- package/src/Schedule.ts +1437 -4445
- package/src/Schema.ts +95 -34
- package/src/SchemaAST.ts +25 -13
- package/src/SchemaError.ts +64 -0
- package/src/SchemaGetter.ts +22 -16
- package/src/SchemaRepresentation.ts +165 -202
- package/src/SchemaTransformation.ts +42 -2
- package/src/Stream.ts +1 -1
- package/src/index.ts +10 -0
- package/src/internal/effect.ts +39 -22
- package/src/internal/schema/equivalence.ts +1 -2
- package/src/internal/schema/representation.ts +4 -4
- package/src/internal/schema/schema.ts +4 -37
- package/src/unstable/cli/CliError.ts +24 -16
- package/src/unstable/cli/Command.ts +8 -8
- package/src/unstable/cli/GlobalFlag.ts +22 -33
- package/src/unstable/cluster/ClusterCron.ts +4 -3
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +4 -3
- package/src/unstable/cluster/EntityProxyServer.ts +15 -17
- package/src/unstable/cluster/Sharding.ts +4 -4
- package/src/unstable/cluster/Snowflake.ts +2 -2
- package/src/unstable/cluster/internal/entityManager.ts +61 -47
- package/src/unstable/eventlog/EventLog.ts +4 -3
- package/src/unstable/httpapi/HttpApi.ts +72 -47
- package/src/unstable/httpapi/HttpApiBuilder.ts +320 -217
- package/src/unstable/httpapi/HttpApiClient.ts +196 -151
- package/src/unstable/httpapi/HttpApiEndpoint.ts +251 -447
- package/src/unstable/httpapi/HttpApiError.ts +33 -0
- package/src/unstable/httpapi/HttpApiGroup.ts +95 -74
- package/src/unstable/httpapi/HttpApiMiddleware.ts +10 -7
- package/src/unstable/httpapi/HttpApiScalar.ts +15 -12
- package/src/unstable/httpapi/HttpApiSchema.ts +8 -0
- package/src/unstable/httpapi/HttpApiSwagger.ts +2 -2
- package/src/unstable/httpapi/HttpApiTest.ts +15 -14
- package/src/unstable/httpapi/OpenApi.ts +74 -36
- package/src/unstable/httpapi/internal/html.ts +9 -2
- package/src/unstable/httpapi/internal/mediaType.ts +6 -0
- package/src/unstable/observability/OtlpExporter.ts +1 -1
- package/src/unstable/persistence/PersistedQueue.ts +16 -14
- package/src/unstable/reactivity/Atom.ts +1 -1
- package/src/unstable/reactivity/AtomHttpApi.ts +164 -162
- 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 +15 -9
- package/src/unstable/workflow/Activity.ts +6 -5
- package/src/unstable/workflow/DurableDeferred.ts +1 -1
- package/src/unstable/workflow/DurableQueue.ts +4 -3
- package/src/unstable/workflow/WorkflowEngine.ts +4 -3
- package/src/unstable/workflow/WorkflowProxyServer.ts +11 -12
|
@@ -40,7 +40,7 @@ import * as Reactivity from "./Reactivity.ts"
|
|
|
40
40
|
* @category models
|
|
41
41
|
* @since 4.0.0
|
|
42
42
|
*/
|
|
43
|
-
export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpApiGroup.
|
|
43
|
+
export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpApiGroup.Constraint>
|
|
44
44
|
extends Context.Service<Self, HttpApiClient.Client<Groups, never, never>>
|
|
45
45
|
{
|
|
46
46
|
new(_: never): Context.ServiceClass.Shape<Id, HttpApiClient.Client<Groups, never, never>>
|
|
@@ -48,23 +48,23 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
48
48
|
readonly runtime: Atom.AtomRuntime<Self>
|
|
49
49
|
|
|
50
50
|
readonly mutation: <
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
Group extends HttpApiGroup.
|
|
54
|
-
Endpoint extends HttpApiEndpoint.
|
|
51
|
+
GroupIdentifier extends HttpApiGroup.Identifier<Groups>,
|
|
52
|
+
EndpointIdentifier extends HttpApiEndpoint.Identifier<HttpApiGroup.Endpoints<Group>>,
|
|
53
|
+
Group extends HttpApiGroup.Constraint = HttpApiGroup.WithIdentifier<Groups, GroupIdentifier>,
|
|
54
|
+
Endpoint extends HttpApiEndpoint.Constraint = HttpApiEndpoint.WithIdentifier<
|
|
55
55
|
HttpApiGroup.Endpoints<Group>,
|
|
56
|
-
|
|
56
|
+
EndpointIdentifier
|
|
57
57
|
>,
|
|
58
58
|
const ResponseMode extends HttpApiEndpoint.ClientResponseMode = HttpApiEndpoint.ClientResponseMode
|
|
59
59
|
>(
|
|
60
|
-
group:
|
|
61
|
-
endpoint:
|
|
60
|
+
group: GroupIdentifier,
|
|
61
|
+
endpoint: EndpointIdentifier,
|
|
62
62
|
options?: {
|
|
63
63
|
readonly responseMode?: ResponseMode | undefined
|
|
64
64
|
}
|
|
65
65
|
) => [Endpoint] extends [
|
|
66
66
|
HttpApiEndpoint.HttpApiEndpoint<
|
|
67
|
-
infer
|
|
67
|
+
infer _Identifier,
|
|
68
68
|
infer _Method,
|
|
69
69
|
infer _Path,
|
|
70
70
|
infer _Params,
|
|
@@ -88,20 +88,20 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
88
88
|
: never
|
|
89
89
|
|
|
90
90
|
readonly query: <
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
Group extends HttpApiGroup.
|
|
94
|
-
Endpoint extends HttpApiEndpoint.
|
|
91
|
+
GroupIdentifier extends HttpApiGroup.Identifier<Groups>,
|
|
92
|
+
EndpointIdentifier extends HttpApiEndpoint.Identifier<HttpApiGroup.Endpoints<Group>>,
|
|
93
|
+
Group extends HttpApiGroup.Constraint = HttpApiGroup.WithIdentifier<Groups, GroupIdentifier>,
|
|
94
|
+
Endpoint extends HttpApiEndpoint.Constraint = HttpApiEndpoint.WithIdentifier<
|
|
95
95
|
HttpApiGroup.Endpoints<Group>,
|
|
96
|
-
|
|
96
|
+
EndpointIdentifier
|
|
97
97
|
>,
|
|
98
98
|
const ResponseMode extends HttpApiEndpoint.ClientResponseMode = "decoded-only"
|
|
99
99
|
>(
|
|
100
|
-
group:
|
|
101
|
-
endpoint:
|
|
100
|
+
group: GroupIdentifier,
|
|
101
|
+
endpoint: EndpointIdentifier,
|
|
102
102
|
request: [Endpoint] extends [
|
|
103
103
|
HttpApiEndpoint.HttpApiEndpoint<
|
|
104
|
-
infer
|
|
104
|
+
infer _Identifier,
|
|
105
105
|
infer _Method,
|
|
106
106
|
infer _Path,
|
|
107
107
|
infer _Params,
|
|
@@ -126,7 +126,7 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
126
126
|
: never
|
|
127
127
|
) => [Endpoint] extends [
|
|
128
128
|
HttpApiEndpoint.HttpApiEndpoint<
|
|
129
|
-
infer
|
|
129
|
+
infer _Identifier,
|
|
130
130
|
infer _Method,
|
|
131
131
|
infer _Path,
|
|
132
132
|
infer _Params,
|
|
@@ -166,157 +166,159 @@ declare global {
|
|
|
166
166
|
* @category constructors
|
|
167
167
|
* @since 4.0.0
|
|
168
168
|
*/
|
|
169
|
-
export const Service =
|
|
170
|
-
<
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
Self,
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const layer = Layer.effect(
|
|
197
|
-
self,
|
|
198
|
-
HttpApiClient.make(options.api, options)
|
|
199
|
-
)
|
|
200
|
-
const runtimeFactory = options.runtime ?? Atom.runtime
|
|
201
|
-
self.runtime = runtimeFactory(
|
|
202
|
-
typeof options.httpClient === "function" ?
|
|
203
|
-
(get) =>
|
|
204
|
-
Layer.provide(
|
|
205
|
-
layer,
|
|
206
|
-
(options.httpClient as (get: Atom.AtomContext) => Layer.Layer<
|
|
207
|
-
| HttpApiGroup.ClientServices<Groups>
|
|
208
|
-
| HttpClient.HttpClient
|
|
209
|
-
>)(get)
|
|
210
|
-
) as Layer.Layer<Self> :
|
|
211
|
-
Layer.provide(layer, options.httpClient) as Layer.Layer<Self>
|
|
212
|
-
)
|
|
169
|
+
export const Service =
|
|
170
|
+
<Self>() =>
|
|
171
|
+
<const Id extends string, ApiId extends string, Groups extends HttpApiGroup.Constraint>(
|
|
172
|
+
id: Id,
|
|
173
|
+
options: {
|
|
174
|
+
readonly api: HttpApi.HttpApi<ApiId, Groups>
|
|
175
|
+
readonly httpClient:
|
|
176
|
+
| Layer.Layer<
|
|
177
|
+
| HttpApiGroup.ClientServices<Groups>
|
|
178
|
+
| HttpClient.HttpClient
|
|
179
|
+
>
|
|
180
|
+
| ((get: Atom.AtomContext) => Layer.Layer<
|
|
181
|
+
| HttpApiGroup.ClientServices<Groups>
|
|
182
|
+
| HttpClient.HttpClient
|
|
183
|
+
>)
|
|
184
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined
|
|
185
|
+
readonly transformResponse?:
|
|
186
|
+
| ((effect: Effect.Effect<unknown, unknown, unknown>) => Effect.Effect<unknown, unknown, unknown>)
|
|
187
|
+
| undefined
|
|
188
|
+
readonly baseUrl?: URL | string | undefined
|
|
189
|
+
readonly runtime?: Atom.RuntimeFactory | undefined
|
|
190
|
+
}
|
|
191
|
+
): AtomHttpApiClient<Self, Id, Groups> => {
|
|
192
|
+
const self: Mutable<AtomHttpApiClient<Self, Id, Groups>> = Context.Service<
|
|
193
|
+
Self,
|
|
194
|
+
HttpApiClient.Client<Groups, never, never>
|
|
195
|
+
>()(id) as any
|
|
213
196
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
197
|
+
const layer = Layer.effect(
|
|
198
|
+
self,
|
|
199
|
+
HttpApiClient.make(options.api, options)
|
|
200
|
+
)
|
|
201
|
+
const runtimeFactory = options.runtime ?? Atom.runtime
|
|
202
|
+
self.runtime = runtimeFactory(
|
|
203
|
+
typeof options.httpClient === "function" ?
|
|
204
|
+
(get) =>
|
|
205
|
+
Layer.provide(
|
|
206
|
+
layer,
|
|
207
|
+
(options.httpClient as (get: Atom.AtomContext) => Layer.Layer<
|
|
208
|
+
| HttpApiGroup.ClientServices<Groups>
|
|
209
|
+
| HttpClient.HttpClient
|
|
210
|
+
>)(get)
|
|
211
|
+
) as Layer.Layer<Self> :
|
|
212
|
+
Layer.provide(layer, options.httpClient) as Layer.Layer<Self>
|
|
213
|
+
)
|
|
217
214
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
params: any
|
|
221
|
-
query: any
|
|
222
|
-
headers: any
|
|
223
|
-
payload: any
|
|
224
|
-
reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
|
|
225
|
-
}>()(
|
|
226
|
-
Effect.fnUntraced(function*(opts) {
|
|
227
|
-
const client = (yield* self) as any
|
|
228
|
-
const effect = catchErrors(client[group][endpoint]({
|
|
229
|
-
...opts,
|
|
230
|
-
responseMode
|
|
231
|
-
}) as Effect.Effect<any>)
|
|
232
|
-
return yield* opts.reactivityKeys
|
|
233
|
-
? Reactivity.mutation(effect, opts.reactivityKeys)
|
|
234
|
-
: effect
|
|
235
|
-
})
|
|
215
|
+
const catchErrors = Effect.catch((e: unknown) =>
|
|
216
|
+
Schema.isSchemaError(e) || HttpClientError.isHttpClientError(e) ? Effect.die(e) : Effect.fail(e)
|
|
236
217
|
)
|
|
237
|
-
|
|
238
|
-
const definition = options.api.groups[group]!.endpoints[endpoint]! as HttpApiEndpoint.AnyWithProps
|
|
239
|
-
return Atom.serializable(atom, {
|
|
240
|
-
key: `AtomHttpApi:mutation:${group}:${endpoint}`,
|
|
241
|
-
schema: AsyncResult.Schema({
|
|
242
|
-
success: Schema.Union(HttpApiEndpoint.getSuccessSchemas(definition)),
|
|
243
|
-
error: Schema.Union(HttpApiEndpoint.getErrorSchemas(definition))
|
|
244
|
-
}) as any
|
|
245
|
-
})
|
|
246
|
-
}
|
|
247
|
-
return atom
|
|
248
|
-
}) as any
|
|
218
|
+
const groups = options.api.groups as unknown as Record<string, HttpApiGroup.Top>
|
|
249
219
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
220
|
+
const mutationFamily = Atom.family(({ endpoint, group, responseMode }: MutationKey) => {
|
|
221
|
+
const atom = self.runtime.fn<{
|
|
222
|
+
params: any
|
|
223
|
+
query: any
|
|
224
|
+
headers: any
|
|
225
|
+
payload: any
|
|
226
|
+
reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
|
|
227
|
+
}>()(
|
|
228
|
+
Effect.fnUntraced(function*(opts) {
|
|
229
|
+
const client = (yield* self) as any
|
|
230
|
+
const effect = catchErrors(client[group][endpoint]({
|
|
231
|
+
...opts,
|
|
232
|
+
responseMode
|
|
233
|
+
}) as Effect.Effect<any>)
|
|
234
|
+
return yield* opts.reactivityKeys
|
|
235
|
+
? Reactivity.mutation(effect, opts.reactivityKeys)
|
|
236
|
+
: effect
|
|
237
|
+
})
|
|
238
|
+
)
|
|
239
|
+
if (responseMode === "decoded-only") {
|
|
240
|
+
const definition = groups[group].endpoints[endpoint]
|
|
241
|
+
return Atom.serializable(atom, {
|
|
242
|
+
key: `AtomHttpApi:mutation:${group}:${endpoint}`,
|
|
243
|
+
schema: AsyncResult.Schema({
|
|
244
|
+
success: Schema.Union(HttpApiEndpoint.getSuccessSchemas(definition)),
|
|
245
|
+
error: Schema.Union(HttpApiEndpoint.getErrorSchemas(definition))
|
|
246
|
+
}) as any
|
|
247
|
+
})
|
|
248
|
+
}
|
|
249
|
+
return atom
|
|
250
|
+
}) as any
|
|
258
251
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
if (opts.responseMode === "decoded-only" && opts.serializationKey) {
|
|
268
|
-
const endpoint = options.api.groups[opts.group]!.endpoints[opts.endpoint]! as HttpApiEndpoint.AnyWithProps
|
|
269
|
-
atom = Atom.serializable(atom, {
|
|
270
|
-
key: `AtomHttpApi:${opts.group}:${opts.endpoint}:${opts.serializationKey}`,
|
|
271
|
-
schema: AsyncResult.Schema({
|
|
272
|
-
success: Schema.Union(HttpApiEndpoint.getSuccessSchemas(endpoint)),
|
|
273
|
-
error: Schema.Union(HttpApiEndpoint.getErrorSchemas(endpoint))
|
|
274
|
-
}) as any
|
|
275
|
-
})
|
|
276
|
-
}
|
|
277
|
-
if (opts.timeToLive) {
|
|
278
|
-
atom = Duration.isFinite(opts.timeToLive)
|
|
279
|
-
? Atom.setIdleTTL(atom, opts.timeToLive)
|
|
280
|
-
: Atom.keepAlive(atom)
|
|
281
|
-
}
|
|
282
|
-
return opts.reactivityKeys
|
|
283
|
-
? self.runtime.factory.withReactivity(opts.reactivityKeys)(atom)
|
|
284
|
-
: atom
|
|
285
|
-
})
|
|
252
|
+
self.mutation = ((group: string, endpoint: string, options?: {
|
|
253
|
+
readonly responseMode?: HttpApiEndpoint.ClientResponseMode | undefined
|
|
254
|
+
}) =>
|
|
255
|
+
mutationFamily({
|
|
256
|
+
group,
|
|
257
|
+
endpoint,
|
|
258
|
+
responseMode: options?.responseMode ?? "decoded-only"
|
|
259
|
+
})) as any
|
|
286
260
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
?
|
|
312
|
-
:
|
|
313
|
-
|
|
314
|
-
}
|
|
315
|
-
return queryFamily(key)
|
|
316
|
-
}) as any
|
|
261
|
+
const queryFamily = Atom.family((opts: QueryKey) => {
|
|
262
|
+
let atom = self.runtime.atom(self.use((client_) => {
|
|
263
|
+
const client = client_ as any
|
|
264
|
+
return catchErrors(client[opts.group][opts.endpoint](opts) as Effect.Effect<
|
|
265
|
+
any,
|
|
266
|
+
HttpClientError.HttpClientError | SchemaError
|
|
267
|
+
>)
|
|
268
|
+
}))
|
|
269
|
+
if (opts.responseMode === "decoded-only" && opts.serializationKey) {
|
|
270
|
+
const endpoint = groups[opts.group].endpoints[opts.endpoint]
|
|
271
|
+
atom = Atom.serializable(atom, {
|
|
272
|
+
key: `AtomHttpApi:${opts.group}:${opts.endpoint}:${opts.serializationKey}`,
|
|
273
|
+
schema: AsyncResult.Schema({
|
|
274
|
+
success: Schema.Union(HttpApiEndpoint.getSuccessSchemas(endpoint)),
|
|
275
|
+
error: Schema.Union(HttpApiEndpoint.getErrorSchemas(endpoint))
|
|
276
|
+
}) as any
|
|
277
|
+
})
|
|
278
|
+
}
|
|
279
|
+
if (opts.timeToLive) {
|
|
280
|
+
atom = Duration.isFinite(opts.timeToLive)
|
|
281
|
+
? Atom.setIdleTTL(atom, opts.timeToLive)
|
|
282
|
+
: Atom.keepAlive(atom)
|
|
283
|
+
}
|
|
284
|
+
return opts.reactivityKeys
|
|
285
|
+
? self.runtime.factory.withReactivity(opts.reactivityKeys)(atom)
|
|
286
|
+
: atom
|
|
287
|
+
})
|
|
317
288
|
|
|
318
|
-
|
|
319
|
-
|
|
289
|
+
self.query = ((
|
|
290
|
+
group: string,
|
|
291
|
+
endpoint: string,
|
|
292
|
+
request: {
|
|
293
|
+
readonly params?: any
|
|
294
|
+
readonly query?: any
|
|
295
|
+
readonly payload?: any
|
|
296
|
+
readonly headers?: any
|
|
297
|
+
readonly responseMode?: HttpApiEndpoint.ClientResponseMode
|
|
298
|
+
readonly reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
|
|
299
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
300
|
+
readonly serializationKey?: string | undefined
|
|
301
|
+
}
|
|
302
|
+
) => {
|
|
303
|
+
const key: QueryKey = {
|
|
304
|
+
group,
|
|
305
|
+
endpoint,
|
|
306
|
+
params: request.params,
|
|
307
|
+
query: request.query,
|
|
308
|
+
payload: request.payload,
|
|
309
|
+
headers: request.headers,
|
|
310
|
+
responseMode: request.responseMode ?? "decoded-only",
|
|
311
|
+
reactivityKeys: request.reactivityKeys,
|
|
312
|
+
timeToLive: request.timeToLive
|
|
313
|
+
? Duration.fromInputUnsafe(request.timeToLive)
|
|
314
|
+
: undefined,
|
|
315
|
+
serializationKey: request.serializationKey
|
|
316
|
+
}
|
|
317
|
+
return queryFamily(key)
|
|
318
|
+
}) as any
|
|
319
|
+
|
|
320
|
+
return self as AtomHttpApiClient<Self, Id, Groups>
|
|
321
|
+
}
|
|
320
322
|
|
|
321
323
|
interface MutationKey {
|
|
322
324
|
group: string
|
|
@@ -96,8 +96,8 @@ export interface AtomRegistry {
|
|
|
96
96
|
export interface Node<A> {
|
|
97
97
|
readonly atom: Atom.Atom<A>
|
|
98
98
|
readonly value: () => A
|
|
99
|
-
parents:
|
|
100
|
-
children:
|
|
99
|
+
parents: Set<Node<any>>
|
|
100
|
+
children: Set<Node<any>>
|
|
101
101
|
listeners: Set<() => void>
|
|
102
102
|
currentState(): "uninitialized" | "stale" | "valid" | "removed"
|
|
103
103
|
}
|
|
@@ -713,10 +713,10 @@ class NodeImpl<A> {
|
|
|
713
713
|
writeContext: WriteContextImpl<A>
|
|
714
714
|
preserveInitialValueOnBuild = false
|
|
715
715
|
|
|
716
|
-
parents
|
|
717
|
-
previousParents:
|
|
718
|
-
children
|
|
719
|
-
listeners
|
|
716
|
+
parents = new Set<NodeImpl<any>>()
|
|
717
|
+
previousParents: Set<NodeImpl<any>> | undefined
|
|
718
|
+
children = new Set<NodeImpl<any>>()
|
|
719
|
+
listeners = new Set<() => void>()
|
|
720
720
|
skipInvalidation = false
|
|
721
721
|
|
|
722
722
|
currentState() {
|
|
@@ -733,7 +733,7 @@ class NodeImpl<A> {
|
|
|
733
733
|
}
|
|
734
734
|
|
|
735
735
|
get canBeRemoved(): boolean {
|
|
736
|
-
return !this.atom.keepAlive && this.listeners.size === 0 && this.children.
|
|
736
|
+
return !this.atom.keepAlive && this.listeners.size === 0 && this.children.size === 0 && this.state !== 0
|
|
737
737
|
}
|
|
738
738
|
|
|
739
739
|
_value: A = undefined as any
|
|
@@ -753,10 +753,10 @@ class NodeImpl<A> {
|
|
|
753
753
|
if (this.previousParents) {
|
|
754
754
|
const parents = this.previousParents
|
|
755
755
|
this.previousParents = undefined
|
|
756
|
-
for (
|
|
757
|
-
|
|
758
|
-
if (
|
|
759
|
-
this.registry.scheduleNodeRemoval(
|
|
756
|
+
for (const parent of parents) {
|
|
757
|
+
parent.removeChild(this)
|
|
758
|
+
if (parent.canBeRemoved) {
|
|
759
|
+
this.registry.scheduleNodeRemoval(parent)
|
|
760
760
|
}
|
|
761
761
|
}
|
|
762
762
|
}
|
|
@@ -826,19 +826,16 @@ class NodeImpl<A> {
|
|
|
826
826
|
}
|
|
827
827
|
|
|
828
828
|
addParent(parent: NodeImpl<any>): void {
|
|
829
|
-
this.parents.
|
|
829
|
+
this.parents.add(parent)
|
|
830
830
|
if (this.previousParents !== undefined) {
|
|
831
|
-
|
|
832
|
-
if (
|
|
833
|
-
this.previousParents
|
|
834
|
-
if (this.previousParents.pop() === undefined) {
|
|
835
|
-
this.previousParents = undefined
|
|
836
|
-
}
|
|
831
|
+
this.previousParents.delete(parent)
|
|
832
|
+
if (this.previousParents.size === 0) {
|
|
833
|
+
this.previousParents = undefined
|
|
837
834
|
}
|
|
838
835
|
}
|
|
839
836
|
|
|
840
|
-
if (parent.children.
|
|
841
|
-
parent.children.
|
|
837
|
+
if (!parent.children.has(this)) {
|
|
838
|
+
parent.children.add(this)
|
|
842
839
|
if (parent.skipInvalidation) {
|
|
843
840
|
parent.skipInvalidation = false
|
|
844
841
|
}
|
|
@@ -846,11 +843,7 @@ class NodeImpl<A> {
|
|
|
846
843
|
}
|
|
847
844
|
|
|
848
845
|
removeChild(child: NodeImpl<any>): void {
|
|
849
|
-
|
|
850
|
-
if (index !== -1) {
|
|
851
|
-
this.children[index] = this.children[this.children.length - 1]
|
|
852
|
-
this.children.pop()
|
|
853
|
-
}
|
|
846
|
+
this.children.delete(child)
|
|
854
847
|
}
|
|
855
848
|
|
|
856
849
|
invalidate(): void {
|
|
@@ -870,14 +863,14 @@ class NodeImpl<A> {
|
|
|
870
863
|
}
|
|
871
864
|
|
|
872
865
|
invalidateChildren(): void {
|
|
873
|
-
if (this.children.
|
|
866
|
+
if (this.children.size === 0) {
|
|
874
867
|
return
|
|
875
868
|
}
|
|
876
869
|
|
|
877
870
|
const children = this.children
|
|
878
|
-
this.children =
|
|
879
|
-
for (
|
|
880
|
-
|
|
871
|
+
this.children = new Set()
|
|
872
|
+
for (const child of children) {
|
|
873
|
+
child.invalidate()
|
|
881
874
|
}
|
|
882
875
|
}
|
|
883
876
|
|
|
@@ -895,9 +888,9 @@ class NodeImpl<A> {
|
|
|
895
888
|
this.lifetime = undefined
|
|
896
889
|
}
|
|
897
890
|
|
|
898
|
-
if (this.parents.
|
|
891
|
+
if (this.parents.size !== 0) {
|
|
899
892
|
this.previousParents = this.parents
|
|
900
|
-
this.parents =
|
|
893
|
+
this.parents = new Set()
|
|
901
894
|
}
|
|
902
895
|
}
|
|
903
896
|
|
|
@@ -917,10 +910,10 @@ class NodeImpl<A> {
|
|
|
917
910
|
|
|
918
911
|
const parents = this.previousParents
|
|
919
912
|
this.previousParents = undefined
|
|
920
|
-
for (
|
|
921
|
-
|
|
922
|
-
if (
|
|
923
|
-
this.registry.removeNode(
|
|
913
|
+
for (const parent of parents) {
|
|
914
|
+
parent.removeChild(this)
|
|
915
|
+
if (parent.canBeRemoved) {
|
|
916
|
+
this.registry.removeNode(parent)
|
|
924
917
|
}
|
|
925
918
|
}
|
|
926
919
|
}
|
|
@@ -931,19 +924,18 @@ class NodeImpl<A> {
|
|
|
931
924
|
}
|
|
932
925
|
}
|
|
933
926
|
|
|
934
|
-
function childrenAreActive(children:
|
|
935
|
-
if (children.
|
|
927
|
+
function childrenAreActive(children: Set<NodeImpl<any>>): boolean {
|
|
928
|
+
if (children.size === 0) {
|
|
936
929
|
return false
|
|
937
930
|
}
|
|
938
|
-
let current:
|
|
939
|
-
let stack: Array<
|
|
931
|
+
let current: Set<NodeImpl<any>> | undefined = children
|
|
932
|
+
let stack: Array<Set<NodeImpl<any>>> | undefined
|
|
940
933
|
let stackIndex = 0
|
|
941
934
|
while (current !== undefined) {
|
|
942
|
-
for (
|
|
943
|
-
const child = current[i]
|
|
935
|
+
for (const child of current) {
|
|
944
936
|
if (!child.atom.lazy || child.listeners.size > 0) {
|
|
945
937
|
return true
|
|
946
|
-
} else if (child.children.
|
|
938
|
+
} else if (child.children.size > 0) {
|
|
947
939
|
if (stack === undefined) {
|
|
948
940
|
stack = [child.children]
|
|
949
941
|
} else {
|
|
@@ -1233,8 +1225,7 @@ function batchRebuildNode(node: NodeImpl<any>) {
|
|
|
1233
1225
|
return
|
|
1234
1226
|
}
|
|
1235
1227
|
|
|
1236
|
-
for (
|
|
1237
|
-
const parent = node.parents[i]
|
|
1228
|
+
for (const parent of node.parents) {
|
|
1238
1229
|
if (parent.state !== NodeState.valid) {
|
|
1239
1230
|
batchRebuildNode(parent)
|
|
1240
1231
|
}
|
|
@@ -204,7 +204,7 @@ export declare namespace RpcClient {
|
|
|
204
204
|
*/
|
|
205
205
|
export type FromGroup<Group, E = never> = RpcClient<RpcGroup.Rpcs<Group>, E>
|
|
206
206
|
|
|
207
|
-
let requestIdCounter =
|
|
207
|
+
let requestIdCounter = 0
|
|
208
208
|
|
|
209
209
|
/**
|
|
210
210
|
* Creates an RPC client for an already-decoded message channel, returning the
|
|
@@ -681,7 +681,7 @@ export const make: <Rpcs extends Rpc.Any, const Flatten extends boolean = false>
|
|
|
681
681
|
Effect.flatMap((payload) =>
|
|
682
682
|
send(clientId, {
|
|
683
683
|
...message,
|
|
684
|
-
id:
|
|
684
|
+
id: message.id,
|
|
685
685
|
payload,
|
|
686
686
|
headers: Object.entries(message.headers)
|
|
687
687
|
}, collector && collector.readUnsafe())
|
|
@@ -693,7 +693,7 @@ export const make: <Rpcs extends Rpc.Any, const Flatten extends boolean = false>
|
|
|
693
693
|
if (!entry) return Effect.void
|
|
694
694
|
return send(clientId, {
|
|
695
695
|
_tag: "Ack",
|
|
696
|
-
requestId:
|
|
696
|
+
requestId: message.requestId
|
|
697
697
|
}) as Effect.Effect<void, RpcClientError>
|
|
698
698
|
}
|
|
699
699
|
case "Interrupt": {
|
|
@@ -702,7 +702,7 @@ export const make: <Rpcs extends Rpc.Any, const Flatten extends boolean = false>
|
|
|
702
702
|
entries.delete(message.requestId)
|
|
703
703
|
return send(clientId, {
|
|
704
704
|
_tag: "Interrupt",
|
|
705
|
-
requestId:
|
|
705
|
+
requestId: message.requestId
|
|
706
706
|
}) as Effect.Effect<void, RpcClientError>
|
|
707
707
|
}
|
|
708
708
|
case "Eof": {
|
|
@@ -1030,7 +1030,7 @@ export const makeProtocolSocket = (options?: {
|
|
|
1030
1030
|
const socket = yield* Socket.Socket
|
|
1031
1031
|
const serialization = yield* RpcSerialization.RpcSerialization
|
|
1032
1032
|
const hooks = yield* Effect.serviceOption(ConnectionHooks)
|
|
1033
|
-
const requestClientMap = new Map<string, number>()
|
|
1033
|
+
const requestClientMap = new Map<string | number, number>()
|
|
1034
1034
|
|
|
1035
1035
|
const write = yield* socket.writer
|
|
1036
1036
|
|
|
@@ -1150,9 +1150,10 @@ export const makeProtocolSocket = (options?: {
|
|
|
1150
1150
|
}
|
|
1151
1151
|
}))
|
|
1152
1152
|
|
|
1153
|
-
const defaultRetryPolicy = Schedule.
|
|
1154
|
-
Schedule.
|
|
1155
|
-
)
|
|
1153
|
+
const defaultRetryPolicy = Schedule.min([
|
|
1154
|
+
Schedule.exponential(500, 1.5),
|
|
1155
|
+
Schedule.spaced(5000)
|
|
1156
|
+
])
|
|
1156
1157
|
|
|
1157
1158
|
const makePinger = Effect.fnUntraced(function*<A, E, R>(writePing: Effect.Effect<A, E, R>) {
|
|
1158
1159
|
let recievedPong = true
|
|
@@ -1224,7 +1225,7 @@ export const makeProtocolWorker = (
|
|
|
1224
1225
|
const initialMessage = yield* Effect.serviceOption(RpcWorker.InitialMessage)
|
|
1225
1226
|
const hooks = yield* Effect.serviceOption(ConnectionHooks)
|
|
1226
1227
|
|
|
1227
|
-
const entries = new Map<string, {
|
|
1228
|
+
const entries = new Map<string | number, {
|
|
1228
1229
|
readonly clientId: number
|
|
1229
1230
|
readonly worker: Worker.Worker<FromServerEncoded, FromClientEncoded | RpcWorker.InitialMessage.Encoded>
|
|
1230
1231
|
readonly latch: Latch.Latch
|