effect 4.0.0-beta.94 → 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.
Files changed (410) hide show
  1. package/dist/Array.d.ts.map +1 -1
  2. package/dist/BigDecimal.d.ts.map +1 -1
  3. package/dist/BigDecimal.js.map +1 -1
  4. package/dist/BigInt.d.ts.map +1 -1
  5. package/dist/Boolean.d.ts.map +1 -1
  6. package/dist/Brand.d.ts.map +1 -1
  7. package/dist/Cache.d.ts.map +1 -1
  8. package/dist/Cause.d.ts.map +1 -1
  9. package/dist/Channel.d.ts.map +1 -1
  10. package/dist/ChannelSchema.d.ts.map +1 -1
  11. package/dist/Chunk.d.ts.map +1 -1
  12. package/dist/Combiner.d.ts.map +1 -1
  13. package/dist/Config.d.ts.map +1 -1
  14. package/dist/Config.js.map +1 -1
  15. package/dist/ConfigProvider.d.ts +44 -6
  16. package/dist/ConfigProvider.d.ts.map +1 -1
  17. package/dist/ConfigProvider.js +63 -24
  18. package/dist/ConfigProvider.js.map +1 -1
  19. package/dist/Console.d.ts.map +1 -1
  20. package/dist/Context.d.ts.map +1 -1
  21. package/dist/Cron.d.ts +4 -1
  22. package/dist/Cron.d.ts.map +1 -1
  23. package/dist/Cron.js +98 -53
  24. package/dist/Cron.js.map +1 -1
  25. package/dist/Crypto.d.ts.map +1 -1
  26. package/dist/Data.d.ts.map +1 -1
  27. package/dist/DateTime.d.ts +12 -12
  28. package/dist/DateTime.d.ts.map +1 -1
  29. package/dist/Deferred.d.ts.map +1 -1
  30. package/dist/Duration.d.ts.map +1 -1
  31. package/dist/Effect.d.ts.map +1 -1
  32. package/dist/Effectable.d.ts.map +1 -1
  33. package/dist/Encoding.d.ts.map +1 -1
  34. package/dist/Equal.d.ts.map +1 -1
  35. package/dist/Equivalence.d.ts.map +1 -1
  36. package/dist/ErrorReporter.d.ts.map +1 -1
  37. package/dist/ExecutionPlan.d.ts +2 -2
  38. package/dist/ExecutionPlan.d.ts.map +1 -1
  39. package/dist/Fiber.d.ts.map +1 -1
  40. package/dist/FiberHandle.d.ts +8 -8
  41. package/dist/FiberHandle.d.ts.map +1 -1
  42. package/dist/FiberMap.d.ts +8 -8
  43. package/dist/FiberMap.d.ts.map +1 -1
  44. package/dist/FiberSet.d.ts +4 -4
  45. package/dist/FiberSet.d.ts.map +1 -1
  46. package/dist/FileSystem.d.ts.map +1 -1
  47. package/dist/Filter.d.ts.map +1 -1
  48. package/dist/Function.d.ts.map +1 -1
  49. package/dist/Graph.d.ts.map +1 -1
  50. package/dist/Graph.js.map +1 -1
  51. package/dist/Hash.d.ts.map +1 -1
  52. package/dist/HashMap.d.ts.map +1 -1
  53. package/dist/HashRing.d.ts.map +1 -1
  54. package/dist/Inspectable.d.ts.map +1 -1
  55. package/dist/Inspectable.js.map +1 -1
  56. package/dist/Iterable.d.ts.map +1 -1
  57. package/dist/Latch.d.ts.map +1 -1
  58. package/dist/Layer.d.ts.map +1 -1
  59. package/dist/LayerMap.d.ts.map +1 -1
  60. package/dist/LayerRef.d.ts +1 -1
  61. package/dist/LayerRef.d.ts.map +1 -1
  62. package/dist/LogLevel.d.ts.map +1 -1
  63. package/dist/Logger.d.ts.map +1 -1
  64. package/dist/ManagedRuntime.d.ts.map +1 -1
  65. package/dist/Metric.d.ts.map +1 -1
  66. package/dist/MutableHashMap.d.ts.map +1 -1
  67. package/dist/MutableHashSet.d.ts.map +1 -1
  68. package/dist/MutableList.d.ts.map +1 -1
  69. package/dist/MutableRef.d.ts.map +1 -1
  70. package/dist/NonEmptyIterable.d.ts.map +1 -1
  71. package/dist/Number.d.ts.map +1 -1
  72. package/dist/Optic.d.ts.map +1 -1
  73. package/dist/Option.d.ts.map +1 -1
  74. package/dist/Order.d.ts.map +1 -1
  75. package/dist/Ordering.d.ts.map +1 -1
  76. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  77. package/dist/Pipeable.d.ts.map +1 -1
  78. package/dist/PlatformError.d.ts.map +1 -1
  79. package/dist/Pool.d.ts.map +1 -1
  80. package/dist/PrimaryKey.d.ts.map +1 -1
  81. package/dist/PubSub.d.ts.map +1 -1
  82. package/dist/Pull.d.ts.map +1 -1
  83. package/dist/Queue.d.ts.map +1 -1
  84. package/dist/Random.d.ts.map +1 -1
  85. package/dist/RcMap.d.ts.map +1 -1
  86. package/dist/Record.d.ts.map +1 -1
  87. package/dist/Redactable.d.ts.map +1 -1
  88. package/dist/Redacted.d.ts.map +1 -1
  89. package/dist/Ref.d.ts.map +1 -1
  90. package/dist/RegExp.d.ts.map +1 -1
  91. package/dist/Request.d.ts +1 -1
  92. package/dist/Request.d.ts.map +1 -1
  93. package/dist/RequestResolver.d.ts.map +1 -1
  94. package/dist/Resource.d.ts.map +1 -1
  95. package/dist/Result.d.ts.map +1 -1
  96. package/dist/Runtime.d.ts.map +1 -1
  97. package/dist/Schedule.d.ts +1206 -4013
  98. package/dist/Schedule.d.ts.map +1 -1
  99. package/dist/Schedule.js +244 -1348
  100. package/dist/Schedule.js.map +1 -1
  101. package/dist/Scheduler.d.ts.map +1 -1
  102. package/dist/Scheduler.js.map +1 -1
  103. package/dist/Schema.d.ts +49 -0
  104. package/dist/Schema.d.ts.map +1 -1
  105. package/dist/Schema.js +40 -0
  106. package/dist/Schema.js.map +1 -1
  107. package/dist/SchemaAST.d.ts.map +1 -1
  108. package/dist/SchemaAST.js.map +1 -1
  109. package/dist/SchemaGetter.d.ts.map +1 -1
  110. package/dist/SchemaIssue.d.ts.map +1 -1
  111. package/dist/SchemaIssue.js.map +1 -1
  112. package/dist/SchemaParser.d.ts.map +1 -1
  113. package/dist/SchemaRepresentation.d.ts +106 -106
  114. package/dist/SchemaTransformation.d.ts +38 -2
  115. package/dist/SchemaTransformation.d.ts.map +1 -1
  116. package/dist/SchemaTransformation.js +38 -2
  117. package/dist/SchemaTransformation.js.map +1 -1
  118. package/dist/ScopedCache.d.ts.map +1 -1
  119. package/dist/ScopedRef.d.ts.map +1 -1
  120. package/dist/Semaphore.d.ts.map +1 -1
  121. package/dist/Sink.d.ts.map +1 -1
  122. package/dist/Stdio.d.ts.map +1 -1
  123. package/dist/Stream.d.ts +2 -2
  124. package/dist/Stream.d.ts.map +1 -1
  125. package/dist/Stream.js +1 -1
  126. package/dist/String.d.ts.map +1 -1
  127. package/dist/String.js.map +1 -1
  128. package/dist/Struct.d.ts.map +1 -1
  129. package/dist/SubscriptionRef.d.ts.map +1 -1
  130. package/dist/SynchronizedRef.d.ts.map +1 -1
  131. package/dist/Take.d.ts.map +1 -1
  132. package/dist/Terminal.d.ts.map +1 -1
  133. package/dist/Tracer.d.ts.map +1 -1
  134. package/dist/Trie.d.ts.map +1 -1
  135. package/dist/Tuple.d.ts.map +1 -1
  136. package/dist/TxChunk.d.ts.map +1 -1
  137. package/dist/TxDeferred.d.ts.map +1 -1
  138. package/dist/TxHashMap.d.ts.map +1 -1
  139. package/dist/TxHashSet.d.ts.map +1 -1
  140. package/dist/TxPriorityQueue.d.ts.map +1 -1
  141. package/dist/TxPubSub.d.ts.map +1 -1
  142. package/dist/TxQueue.d.ts.map +1 -1
  143. package/dist/TxReentrantLock.d.ts.map +1 -1
  144. package/dist/TxRef.d.ts.map +1 -1
  145. package/dist/TxSemaphore.d.ts.map +1 -1
  146. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  147. package/dist/Types.d.ts +1 -1
  148. package/dist/Types.d.ts.map +1 -1
  149. package/dist/UndefinedOr.d.ts.map +1 -1
  150. package/dist/Utils.d.ts.map +1 -1
  151. package/dist/internal/effect.js.map +1 -1
  152. package/dist/internal/schema/schema.d.ts.map +1 -1
  153. package/dist/testing/TestClock.d.ts.map +1 -1
  154. package/dist/testing/TestConsole.d.ts.map +1 -1
  155. package/dist/testing/TestSchema.d.ts.map +1 -1
  156. package/dist/unstable/ai/AiError.d.ts +1 -1
  157. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  158. package/dist/unstable/ai/Chat.d.ts +1 -1
  159. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  160. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  161. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  162. package/dist/unstable/ai/McpSchema.d.ts +221 -221
  163. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  164. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  165. package/dist/unstable/ai/Model.d.ts.map +1 -1
  166. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  167. package/dist/unstable/ai/Response.d.ts.map +1 -1
  168. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  169. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  170. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  171. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  172. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  173. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  174. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  175. package/dist/unstable/cli/Command.d.ts.map +1 -1
  176. package/dist/unstable/cli/Completions.d.ts.map +1 -1
  177. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  178. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  179. package/dist/unstable/cli/Param.d.ts.map +1 -1
  180. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  181. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  182. package/dist/unstable/cli/Prompt.js.map +1 -1
  183. package/dist/unstable/cli/internal/ansi.d.ts.map +1 -1
  184. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  185. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  186. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  187. package/dist/unstable/cli/internal/parser.js.map +1 -1
  188. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  189. package/dist/unstable/cluster/ClusterCron.js +1 -1
  190. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  191. package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
  192. package/dist/unstable/cluster/ClusterSchema.d.ts +1 -1
  193. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  194. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +1 -1
  195. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  196. package/dist/unstable/cluster/ClusterWorkflowEngine.js +1 -1
  197. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  198. package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
  199. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  200. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  201. package/dist/unstable/cluster/EntityId.d.ts.map +1 -1
  202. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  203. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  204. package/dist/unstable/cluster/EntityType.d.ts.map +1 -1
  205. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  206. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  207. package/dist/unstable/cluster/MachineId.d.ts.map +1 -1
  208. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  209. package/dist/unstable/cluster/MessageStorage.d.ts +25 -29
  210. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  211. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  212. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  213. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  214. package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
  215. package/dist/unstable/cluster/RunnerServer.d.ts +1 -1
  216. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  217. package/dist/unstable/cluster/Runners.d.ts +8 -8
  218. package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
  219. package/dist/unstable/cluster/Sharding.js +3 -4
  220. package/dist/unstable/cluster/Sharding.js.map +1 -1
  221. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  222. package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts +6 -8
  223. package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts.map +1 -1
  224. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  225. package/dist/unstable/cluster/Singleton.d.ts.map +1 -1
  226. package/dist/unstable/cluster/SingletonAddress.d.ts.map +1 -1
  227. package/dist/unstable/cluster/Snowflake.d.ts +1 -1
  228. package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
  229. package/dist/unstable/cluster/Snowflake.js +1 -1
  230. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  231. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  232. package/dist/unstable/cluster/SqlRunnerStorage.d.ts +1 -1
  233. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  234. package/dist/unstable/cluster/internal/entityManager.js +11 -12
  235. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  236. package/dist/unstable/devtools/DevTools.d.ts.map +1 -1
  237. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  238. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  239. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  240. package/dist/unstable/eventlog/Event.d.ts.map +1 -1
  241. package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
  242. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  243. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  244. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  245. package/dist/unstable/eventlog/EventLog.js +2 -2
  246. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  247. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  248. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  249. package/dist/unstable/eventlog/EventLogRemote.d.ts +21 -21
  250. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  251. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +1 -1
  252. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +3 -4
  253. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  254. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  255. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  256. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  257. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  258. package/dist/unstable/http/Cookies.d.ts +1 -1
  259. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  260. package/dist/unstable/http/Etag.d.ts.map +1 -1
  261. package/dist/unstable/http/Headers.d.ts.map +1 -1
  262. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  263. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  264. package/dist/unstable/http/HttpClientError.d.ts +1 -1
  265. package/dist/unstable/http/HttpClientError.d.ts.map +1 -1
  266. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  267. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  268. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  269. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  270. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  271. package/dist/unstable/http/HttpMiddleware.d.ts +1 -1
  272. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  273. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  274. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  275. package/dist/unstable/http/HttpServerError.d.ts +1 -1
  276. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  277. package/dist/unstable/http/HttpServerRequest.d.ts +2 -2
  278. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  279. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  280. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  281. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  282. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  283. package/dist/unstable/http/Multipart.d.ts +2 -1
  284. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  285. package/dist/unstable/http/Url.d.ts.map +1 -1
  286. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  287. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  288. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  289. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  290. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +22 -22
  291. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  292. package/dist/unstable/httpapi/HttpApiError.d.ts +1 -1
  293. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  294. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  295. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  296. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  297. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  298. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  299. package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
  300. package/dist/unstable/httpapi/HttpApiTest.d.ts +1 -1
  301. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  302. package/dist/unstable/observability/OtlpExporter.js +3 -1
  303. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  304. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  305. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  306. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  307. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  308. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  309. package/dist/unstable/observability/internal/otlpEnv.d.ts.map +1 -1
  310. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  311. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  312. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  313. package/dist/unstable/persistence/PersistedQueue.d.ts +1 -1
  314. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  315. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  316. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  317. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  318. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  319. package/dist/unstable/process/ChildProcess.js.map +1 -1
  320. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  321. package/dist/unstable/reactivity/AsyncResult.d.ts +2 -2
  322. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  323. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  324. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  325. package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
  326. package/dist/unstable/reactivity/AtomRegistry.d.ts +2 -2
  327. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  328. package/dist/unstable/reactivity/AtomRegistry.js +28 -37
  329. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  330. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  331. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
  332. package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
  333. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  334. package/dist/unstable/rpc/RpcClient.d.ts +2 -1
  335. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  336. package/dist/unstable/rpc/RpcClient.js +5 -5
  337. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  338. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  339. package/dist/unstable/rpc/RpcMessage.d.ts +7 -7
  340. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  341. package/dist/unstable/rpc/RpcMessage.js +2 -2
  342. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  343. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  344. package/dist/unstable/rpc/RpcSchema.d.ts +1 -1
  345. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  346. package/dist/unstable/rpc/RpcSerialization.js +8 -8
  347. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  348. package/dist/unstable/rpc/RpcServer.d.ts +2 -2
  349. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  350. package/dist/unstable/rpc/RpcServer.js +5 -5
  351. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  352. package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
  353. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  354. package/dist/unstable/schema/Model.d.ts +24 -38
  355. package/dist/unstable/schema/Model.d.ts.map +1 -1
  356. package/dist/unstable/schema/VariantSchema.d.ts +1 -1
  357. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  358. package/dist/unstable/socket/Socket.d.ts +1 -1
  359. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  360. package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
  361. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  362. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  363. package/dist/unstable/sql/SqlError.d.ts +2 -2
  364. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  365. package/dist/unstable/sql/SqlError.js.map +1 -1
  366. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  367. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  368. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  369. package/dist/unstable/sql/SqlStream.d.ts.map +1 -1
  370. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  371. package/dist/unstable/workers/Transferable.d.ts.map +1 -1
  372. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  373. package/dist/unstable/workers/WorkerError.d.ts.map +1 -1
  374. package/dist/unstable/workflow/Activity.d.ts +1 -1
  375. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  376. package/dist/unstable/workflow/Activity.js +1 -1
  377. package/dist/unstable/workflow/Activity.js.map +1 -1
  378. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  379. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  380. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  381. package/dist/unstable/workflow/DurableQueue.js +1 -1
  382. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  383. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  384. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  385. package/dist/unstable/workflow/WorkflowEngine.js +1 -1
  386. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  387. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  388. package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
  389. package/package.json +11 -12
  390. package/src/ConfigProvider.ts +79 -27
  391. package/src/Cron.ts +109 -57
  392. package/src/Schedule.ts +1437 -4445
  393. package/src/Schema.ts +53 -0
  394. package/src/SchemaTransformation.ts +42 -2
  395. package/src/Stream.ts +1 -1
  396. package/src/unstable/cluster/ClusterCron.ts +4 -3
  397. package/src/unstable/cluster/ClusterWorkflowEngine.ts +4 -3
  398. package/src/unstable/cluster/Sharding.ts +4 -4
  399. package/src/unstable/cluster/Snowflake.ts +2 -2
  400. package/src/unstable/cluster/internal/entityManager.ts +16 -16
  401. package/src/unstable/eventlog/EventLog.ts +4 -3
  402. package/src/unstable/observability/OtlpExporter.ts +1 -1
  403. package/src/unstable/reactivity/AtomRegistry.ts +35 -44
  404. package/src/unstable/rpc/RpcClient.ts +10 -9
  405. package/src/unstable/rpc/RpcMessage.ts +8 -9
  406. package/src/unstable/rpc/RpcSerialization.ts +16 -16
  407. package/src/unstable/rpc/RpcServer.ts +5 -5
  408. package/src/unstable/workflow/Activity.ts +6 -5
  409. package/src/unstable/workflow/DurableQueue.ts +4 -3
  410. 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(" ").filter(String.isNonEmpty)
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(make))
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
- let a: number = reverse ? -Infinity : Infinity
847
- let b: number = reverse ? -Infinity : Infinity
848
-
849
- if (cron.weekdays.size !== 0) {
850
- const currentWeekday = current.getUTCDay()
851
- const nextWeekday = table.weekday[currentWeekday]
852
- if (nextWeekday === undefined) {
853
- a = reverse ?
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
- if (cron.days.size !== 0 && a !== 0) {
862
- const currentDay = current.getUTCDate()
863
- const nextDay = table.day[currentDay]
864
- if (nextDay === undefined) {
865
- if (reverse) {
866
- const prevMonthDays = daysInMonth(new Date(Date.UTC(current.getUTCFullYear(), current.getUTCMonth(), 0)))
867
- b = -(currentDay + (prevMonthDays - boundary.day))
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
- const addDays = reverse ? Math.max(a, b) : Math.min(a, b)
881
- if (addDays !== 0) {
882
- current.setUTCDate(current.getUTCDate() + addDays)
883
- current.setUTCHours(boundary.hour, boundary.minute, boundary.second)
884
- adjustDst(current)
885
- continue
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 Math.min(boundary.day, maxDayInMonth)
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: 6,
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<ReadonlySet<number>, CronParseError> => {
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
- for (const field of fields) {
1221
- const [raw, step] = splitStep(field)
1222
- if (raw === "*" && step === undefined) {
1223
- return Result.succeed(new Set())
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
- values.add(i)
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
- values.add(left)
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
- values.add(i)
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
- return [input.slice(0, separator), Number(input.slice(separator + 1))]
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+$/