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.
Files changed (532) 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 +5 -7
  61. package/dist/LayerRef.d.ts.map +1 -1
  62. package/dist/LayerRef.js +4 -6
  63. package/dist/LayerRef.js.map +1 -1
  64. package/dist/LogLevel.d.ts.map +1 -1
  65. package/dist/Logger.d.ts.map +1 -1
  66. package/dist/ManagedRuntime.d.ts.map +1 -1
  67. package/dist/Metric.d.ts.map +1 -1
  68. package/dist/MutableHashMap.d.ts.map +1 -1
  69. package/dist/MutableHashSet.d.ts.map +1 -1
  70. package/dist/MutableList.d.ts.map +1 -1
  71. package/dist/MutableRef.d.ts.map +1 -1
  72. package/dist/NonEmptyIterable.d.ts.map +1 -1
  73. package/dist/Number.d.ts.map +1 -1
  74. package/dist/Number.js +28 -10
  75. package/dist/Number.js.map +1 -1
  76. package/dist/Optic.d.ts.map +1 -1
  77. package/dist/Option.d.ts.map +1 -1
  78. package/dist/Order.d.ts.map +1 -1
  79. package/dist/Ordering.d.ts.map +1 -1
  80. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  81. package/dist/Pipeable.d.ts.map +1 -1
  82. package/dist/PlatformError.d.ts.map +1 -1
  83. package/dist/Pool.d.ts.map +1 -1
  84. package/dist/PrimaryKey.d.ts.map +1 -1
  85. package/dist/PubSub.d.ts.map +1 -1
  86. package/dist/Pull.d.ts.map +1 -1
  87. package/dist/Queue.d.ts.map +1 -1
  88. package/dist/Random.d.ts.map +1 -1
  89. package/dist/RcMap.d.ts.map +1 -1
  90. package/dist/Record.d.ts.map +1 -1
  91. package/dist/Redactable.d.ts.map +1 -1
  92. package/dist/Redacted.d.ts.map +1 -1
  93. package/dist/Ref.d.ts.map +1 -1
  94. package/dist/RegExp.d.ts.map +1 -1
  95. package/dist/Request.d.ts +1 -1
  96. package/dist/Request.d.ts.map +1 -1
  97. package/dist/RequestResolver.d.ts.map +1 -1
  98. package/dist/Resource.d.ts.map +1 -1
  99. package/dist/Result.d.ts.map +1 -1
  100. package/dist/Runtime.d.ts.map +1 -1
  101. package/dist/Schedule.d.ts +1206 -4013
  102. package/dist/Schedule.d.ts.map +1 -1
  103. package/dist/Schedule.js +244 -1348
  104. package/dist/Schedule.js.map +1 -1
  105. package/dist/Scheduler.d.ts.map +1 -1
  106. package/dist/Scheduler.js.map +1 -1
  107. package/dist/Schema.d.ts +71 -22
  108. package/dist/Schema.d.ts.map +1 -1
  109. package/dist/Schema.js +76 -33
  110. package/dist/Schema.js.map +1 -1
  111. package/dist/SchemaAST.d.ts.map +1 -1
  112. package/dist/SchemaAST.js +25 -10
  113. package/dist/SchemaAST.js.map +1 -1
  114. package/dist/SchemaError.d.ts +53 -0
  115. package/dist/SchemaError.d.ts.map +1 -0
  116. package/dist/SchemaError.js +61 -0
  117. package/dist/SchemaError.js.map +1 -0
  118. package/dist/SchemaGetter.d.ts.map +1 -1
  119. package/dist/SchemaGetter.js +17 -12
  120. package/dist/SchemaGetter.js.map +1 -1
  121. package/dist/SchemaIssue.d.ts.map +1 -1
  122. package/dist/SchemaIssue.js.map +1 -1
  123. package/dist/SchemaParser.d.ts.map +1 -1
  124. package/dist/SchemaRepresentation.d.ts +106 -106
  125. package/dist/SchemaRepresentation.d.ts.map +1 -1
  126. package/dist/SchemaRepresentation.js +186 -224
  127. package/dist/SchemaRepresentation.js.map +1 -1
  128. package/dist/SchemaTransformation.d.ts +38 -2
  129. package/dist/SchemaTransformation.d.ts.map +1 -1
  130. package/dist/SchemaTransformation.js +38 -2
  131. package/dist/SchemaTransformation.js.map +1 -1
  132. package/dist/ScopedCache.d.ts.map +1 -1
  133. package/dist/ScopedRef.d.ts.map +1 -1
  134. package/dist/Semaphore.d.ts.map +1 -1
  135. package/dist/Sink.d.ts.map +1 -1
  136. package/dist/Stdio.d.ts.map +1 -1
  137. package/dist/Stream.d.ts +2 -2
  138. package/dist/Stream.d.ts.map +1 -1
  139. package/dist/Stream.js +1 -1
  140. package/dist/String.d.ts.map +1 -1
  141. package/dist/String.js.map +1 -1
  142. package/dist/Struct.d.ts.map +1 -1
  143. package/dist/SubscriptionRef.d.ts.map +1 -1
  144. package/dist/SynchronizedRef.d.ts.map +1 -1
  145. package/dist/Take.d.ts.map +1 -1
  146. package/dist/Terminal.d.ts.map +1 -1
  147. package/dist/Tracer.d.ts.map +1 -1
  148. package/dist/Trie.d.ts.map +1 -1
  149. package/dist/Tuple.d.ts.map +1 -1
  150. package/dist/TxChunk.d.ts.map +1 -1
  151. package/dist/TxDeferred.d.ts.map +1 -1
  152. package/dist/TxHashMap.d.ts.map +1 -1
  153. package/dist/TxHashSet.d.ts.map +1 -1
  154. package/dist/TxPriorityQueue.d.ts.map +1 -1
  155. package/dist/TxPubSub.d.ts.map +1 -1
  156. package/dist/TxQueue.d.ts.map +1 -1
  157. package/dist/TxReentrantLock.d.ts.map +1 -1
  158. package/dist/TxRef.d.ts.map +1 -1
  159. package/dist/TxSemaphore.d.ts.map +1 -1
  160. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  161. package/dist/Types.d.ts +1 -1
  162. package/dist/Types.d.ts.map +1 -1
  163. package/dist/UndefinedOr.d.ts.map +1 -1
  164. package/dist/Utils.d.ts.map +1 -1
  165. package/dist/index.d.ts +8 -0
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +8 -0
  168. package/dist/index.js.map +1 -1
  169. package/dist/internal/effect.js +26 -8
  170. package/dist/internal/effect.js.map +1 -1
  171. package/dist/internal/schema/equivalence.js +1 -2
  172. package/dist/internal/schema/equivalence.js.map +1 -1
  173. package/dist/internal/schema/representation.js +1 -3
  174. package/dist/internal/schema/representation.js.map +1 -1
  175. package/dist/internal/schema/schema.d.ts +0 -13
  176. package/dist/internal/schema/schema.d.ts.map +1 -1
  177. package/dist/internal/schema/schema.js +4 -29
  178. package/dist/internal/schema/schema.js.map +1 -1
  179. package/dist/testing/TestClock.d.ts.map +1 -1
  180. package/dist/testing/TestConsole.d.ts.map +1 -1
  181. package/dist/testing/TestSchema.d.ts.map +1 -1
  182. package/dist/unstable/ai/AiError.d.ts +1 -1
  183. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  184. package/dist/unstable/ai/Chat.d.ts +1 -1
  185. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  186. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  187. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  188. package/dist/unstable/ai/McpSchema.d.ts +278 -278
  189. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  190. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  191. package/dist/unstable/ai/Model.d.ts.map +1 -1
  192. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  193. package/dist/unstable/ai/Response.d.ts.map +1 -1
  194. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  195. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  196. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  197. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  198. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  199. package/dist/unstable/cli/CliError.d.ts +8 -16
  200. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  201. package/dist/unstable/cli/CliError.js +8 -16
  202. package/dist/unstable/cli/CliError.js.map +1 -1
  203. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  204. package/dist/unstable/cli/Command.d.ts +4 -3
  205. package/dist/unstable/cli/Command.d.ts.map +1 -1
  206. package/dist/unstable/cli/Command.js +3 -3
  207. package/dist/unstable/cli/Command.js.map +1 -1
  208. package/dist/unstable/cli/Completions.d.ts.map +1 -1
  209. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  210. package/dist/unstable/cli/GlobalFlag.d.ts +6 -8
  211. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  212. package/dist/unstable/cli/GlobalFlag.js +6 -6
  213. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  214. package/dist/unstable/cli/Param.d.ts.map +1 -1
  215. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  216. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  217. package/dist/unstable/cli/Prompt.js.map +1 -1
  218. package/dist/unstable/cli/internal/ansi.d.ts.map +1 -1
  219. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  220. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  221. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  222. package/dist/unstable/cli/internal/parser.js.map +1 -1
  223. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  224. package/dist/unstable/cluster/ClusterCron.js +1 -1
  225. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  226. package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
  227. package/dist/unstable/cluster/ClusterSchema.d.ts +1 -1
  228. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  229. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +1 -1
  230. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  231. package/dist/unstable/cluster/ClusterWorkflowEngine.js +1 -1
  232. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  233. package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
  234. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  235. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  236. package/dist/unstable/cluster/EntityId.d.ts.map +1 -1
  237. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  238. package/dist/unstable/cluster/EntityProxyServer.d.ts +1 -1
  239. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  240. package/dist/unstable/cluster/EntityProxyServer.js +2 -4
  241. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  242. package/dist/unstable/cluster/EntityType.d.ts.map +1 -1
  243. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  244. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  245. package/dist/unstable/cluster/MachineId.d.ts.map +1 -1
  246. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  247. package/dist/unstable/cluster/MessageStorage.d.ts +25 -29
  248. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  249. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  250. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  251. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  252. package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
  253. package/dist/unstable/cluster/RunnerServer.d.ts +1 -1
  254. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  255. package/dist/unstable/cluster/Runners.d.ts +8 -8
  256. package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
  257. package/dist/unstable/cluster/Sharding.js +3 -4
  258. package/dist/unstable/cluster/Sharding.js.map +1 -1
  259. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  260. package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts +6 -8
  261. package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts.map +1 -1
  262. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  263. package/dist/unstable/cluster/Singleton.d.ts.map +1 -1
  264. package/dist/unstable/cluster/SingletonAddress.d.ts.map +1 -1
  265. package/dist/unstable/cluster/Snowflake.d.ts +1 -1
  266. package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
  267. package/dist/unstable/cluster/Snowflake.js +1 -1
  268. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  269. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  270. package/dist/unstable/cluster/SqlRunnerStorage.d.ts +1 -1
  271. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  272. package/dist/unstable/cluster/internal/entityManager.js +26 -24
  273. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  274. package/dist/unstable/devtools/DevTools.d.ts.map +1 -1
  275. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  276. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  277. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  278. package/dist/unstable/eventlog/Event.d.ts.map +1 -1
  279. package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
  280. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  281. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  282. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  283. package/dist/unstable/eventlog/EventLog.js +2 -2
  284. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  285. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  286. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  287. package/dist/unstable/eventlog/EventLogRemote.d.ts +21 -21
  288. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  289. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +1 -1
  290. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +3 -4
  291. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  292. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  293. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  294. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  295. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  296. package/dist/unstable/http/Cookies.d.ts +1 -1
  297. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  298. package/dist/unstable/http/Etag.d.ts.map +1 -1
  299. package/dist/unstable/http/Headers.d.ts.map +1 -1
  300. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  301. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  302. package/dist/unstable/http/HttpClientError.d.ts +1 -1
  303. package/dist/unstable/http/HttpClientError.d.ts.map +1 -1
  304. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  305. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  306. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  307. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  308. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  309. package/dist/unstable/http/HttpMiddleware.d.ts +1 -1
  310. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  311. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  312. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  313. package/dist/unstable/http/HttpServerError.d.ts +1 -1
  314. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  315. package/dist/unstable/http/HttpServerRequest.d.ts +2 -2
  316. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  317. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  318. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  319. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  320. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  321. package/dist/unstable/http/Multipart.d.ts +2 -1
  322. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  323. package/dist/unstable/http/Url.d.ts.map +1 -1
  324. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  325. package/dist/unstable/httpapi/HttpApi.d.ts +36 -15
  326. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  327. package/dist/unstable/httpapi/HttpApi.js +19 -20
  328. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  329. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +51 -62
  330. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  331. package/dist/unstable/httpapi/HttpApiBuilder.js +68 -58
  332. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  333. package/dist/unstable/httpapi/HttpApiClient.d.ts +53 -53
  334. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  335. package/dist/unstable/httpapi/HttpApiClient.js +40 -30
  336. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  337. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +171 -170
  338. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  339. package/dist/unstable/httpapi/HttpApiEndpoint.js +31 -19
  340. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  341. package/dist/unstable/httpapi/HttpApiError.d.ts +23 -1
  342. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  343. package/dist/unstable/httpapi/HttpApiError.js +31 -0
  344. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  345. package/dist/unstable/httpapi/HttpApiGroup.d.ts +55 -30
  346. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  347. package/dist/unstable/httpapi/HttpApiGroup.js +22 -29
  348. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  349. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +8 -8
  350. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  351. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  352. package/dist/unstable/httpapi/HttpApiScalar.d.ts +2 -2
  353. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  354. package/dist/unstable/httpapi/HttpApiScalar.js +4 -3
  355. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  356. package/dist/unstable/httpapi/HttpApiSchema.d.ts +8 -0
  357. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  358. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  359. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  360. package/dist/unstable/httpapi/HttpApiSwagger.d.ts +1 -1
  361. package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
  362. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  363. package/dist/unstable/httpapi/HttpApiTest.d.ts +4 -4
  364. package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
  365. package/dist/unstable/httpapi/HttpApiTest.js +9 -8
  366. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  367. package/dist/unstable/httpapi/OpenApi.d.ts +1 -1
  368. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  369. package/dist/unstable/httpapi/OpenApi.js +77 -37
  370. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  371. package/dist/unstable/httpapi/internal/html.js +6 -2
  372. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  373. package/dist/unstable/httpapi/internal/mediaType.d.ts +2 -0
  374. package/dist/unstable/httpapi/internal/mediaType.d.ts.map +1 -0
  375. package/dist/unstable/httpapi/internal/mediaType.js +7 -0
  376. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -0
  377. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  378. package/dist/unstable/observability/OtlpExporter.js +3 -1
  379. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  380. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  381. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  382. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  383. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  384. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  385. package/dist/unstable/observability/internal/otlpEnv.d.ts.map +1 -1
  386. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  387. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  388. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  389. package/dist/unstable/persistence/PersistedQueue.d.ts +1 -1
  390. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  391. package/dist/unstable/persistence/PersistedQueue.js +16 -12
  392. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  393. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  394. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  395. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  396. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  397. package/dist/unstable/process/ChildProcess.js.map +1 -1
  398. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  399. package/dist/unstable/reactivity/AsyncResult.d.ts +2 -2
  400. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  401. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  402. package/dist/unstable/reactivity/Atom.js +1 -1
  403. package/dist/unstable/reactivity/Atom.js.map +1 -1
  404. package/dist/unstable/reactivity/AtomHttpApi.d.ts +7 -7
  405. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  406. package/dist/unstable/reactivity/AtomHttpApi.js +3 -2
  407. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  408. package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
  409. package/dist/unstable/reactivity/AtomRegistry.d.ts +2 -2
  410. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  411. package/dist/unstable/reactivity/AtomRegistry.js +28 -37
  412. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  413. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  414. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
  415. package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
  416. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  417. package/dist/unstable/rpc/RpcClient.d.ts +2 -1
  418. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  419. package/dist/unstable/rpc/RpcClient.js +5 -5
  420. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  421. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  422. package/dist/unstable/rpc/RpcMessage.d.ts +7 -7
  423. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  424. package/dist/unstable/rpc/RpcMessage.js +2 -2
  425. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  426. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  427. package/dist/unstable/rpc/RpcSchema.d.ts +1 -1
  428. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  429. package/dist/unstable/rpc/RpcSerialization.js +8 -8
  430. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  431. package/dist/unstable/rpc/RpcServer.d.ts +5 -3
  432. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  433. package/dist/unstable/rpc/RpcServer.js +11 -8
  434. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  435. package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
  436. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  437. package/dist/unstable/schema/Model.d.ts +24 -38
  438. package/dist/unstable/schema/Model.d.ts.map +1 -1
  439. package/dist/unstable/schema/VariantSchema.d.ts +1 -1
  440. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  441. package/dist/unstable/socket/Socket.d.ts +1 -1
  442. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  443. package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
  444. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  445. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  446. package/dist/unstable/sql/SqlError.d.ts +2 -2
  447. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  448. package/dist/unstable/sql/SqlError.js.map +1 -1
  449. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  450. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  451. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  452. package/dist/unstable/sql/SqlStream.d.ts.map +1 -1
  453. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  454. package/dist/unstable/workers/Transferable.d.ts.map +1 -1
  455. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  456. package/dist/unstable/workers/WorkerError.d.ts.map +1 -1
  457. package/dist/unstable/workflow/Activity.d.ts +1 -1
  458. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  459. package/dist/unstable/workflow/Activity.js +1 -1
  460. package/dist/unstable/workflow/Activity.js.map +1 -1
  461. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  462. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  463. package/dist/unstable/workflow/DurableDeferred.js +1 -1
  464. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  465. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  466. package/dist/unstable/workflow/DurableQueue.js +1 -1
  467. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  468. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  469. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  470. package/dist/unstable/workflow/WorkflowEngine.js +1 -1
  471. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  472. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  473. package/dist/unstable/workflow/WorkflowProxyServer.d.ts +1 -1
  474. package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
  475. package/dist/unstable/workflow/WorkflowProxyServer.js +1 -2
  476. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  477. package/package.json +11 -12
  478. package/src/ConfigProvider.ts +79 -27
  479. package/src/Cron.ts +109 -57
  480. package/src/LayerRef.ts +4 -6
  481. package/src/Number.ts +29 -10
  482. package/src/Schedule.ts +1437 -4445
  483. package/src/Schema.ts +95 -34
  484. package/src/SchemaAST.ts +25 -13
  485. package/src/SchemaError.ts +64 -0
  486. package/src/SchemaGetter.ts +22 -16
  487. package/src/SchemaRepresentation.ts +165 -202
  488. package/src/SchemaTransformation.ts +42 -2
  489. package/src/Stream.ts +1 -1
  490. package/src/index.ts +10 -0
  491. package/src/internal/effect.ts +39 -22
  492. package/src/internal/schema/equivalence.ts +1 -2
  493. package/src/internal/schema/representation.ts +4 -4
  494. package/src/internal/schema/schema.ts +4 -37
  495. package/src/unstable/cli/CliError.ts +24 -16
  496. package/src/unstable/cli/Command.ts +8 -8
  497. package/src/unstable/cli/GlobalFlag.ts +22 -33
  498. package/src/unstable/cluster/ClusterCron.ts +4 -3
  499. package/src/unstable/cluster/ClusterWorkflowEngine.ts +4 -3
  500. package/src/unstable/cluster/EntityProxyServer.ts +15 -17
  501. package/src/unstable/cluster/Sharding.ts +4 -4
  502. package/src/unstable/cluster/Snowflake.ts +2 -2
  503. package/src/unstable/cluster/internal/entityManager.ts +61 -47
  504. package/src/unstable/eventlog/EventLog.ts +4 -3
  505. package/src/unstable/httpapi/HttpApi.ts +72 -47
  506. package/src/unstable/httpapi/HttpApiBuilder.ts +320 -217
  507. package/src/unstable/httpapi/HttpApiClient.ts +196 -151
  508. package/src/unstable/httpapi/HttpApiEndpoint.ts +251 -447
  509. package/src/unstable/httpapi/HttpApiError.ts +33 -0
  510. package/src/unstable/httpapi/HttpApiGroup.ts +95 -74
  511. package/src/unstable/httpapi/HttpApiMiddleware.ts +10 -7
  512. package/src/unstable/httpapi/HttpApiScalar.ts +15 -12
  513. package/src/unstable/httpapi/HttpApiSchema.ts +8 -0
  514. package/src/unstable/httpapi/HttpApiSwagger.ts +2 -2
  515. package/src/unstable/httpapi/HttpApiTest.ts +15 -14
  516. package/src/unstable/httpapi/OpenApi.ts +74 -36
  517. package/src/unstable/httpapi/internal/html.ts +9 -2
  518. package/src/unstable/httpapi/internal/mediaType.ts +6 -0
  519. package/src/unstable/observability/OtlpExporter.ts +1 -1
  520. package/src/unstable/persistence/PersistedQueue.ts +16 -14
  521. package/src/unstable/reactivity/Atom.ts +1 -1
  522. package/src/unstable/reactivity/AtomHttpApi.ts +164 -162
  523. package/src/unstable/reactivity/AtomRegistry.ts +35 -44
  524. package/src/unstable/rpc/RpcClient.ts +10 -9
  525. package/src/unstable/rpc/RpcMessage.ts +8 -9
  526. package/src/unstable/rpc/RpcSerialization.ts +16 -16
  527. package/src/unstable/rpc/RpcServer.ts +15 -9
  528. package/src/unstable/workflow/Activity.ts +6 -5
  529. package/src/unstable/workflow/DurableDeferred.ts +1 -1
  530. package/src/unstable/workflow/DurableQueue.ts +4 -3
  531. package/src/unstable/workflow/WorkflowEngine.ts +4 -3
  532. 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.Any>
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
- GroupName extends HttpApiGroup.Name<Groups>,
52
- Name extends HttpApiEndpoint.Name<HttpApiGroup.Endpoints<Group>>,
53
- Group extends HttpApiGroup.Any = HttpApiGroup.WithName<Groups, GroupName>,
54
- Endpoint extends HttpApiEndpoint.Any = HttpApiEndpoint.WithName<
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
- Name
56
+ EndpointIdentifier
57
57
  >,
58
58
  const ResponseMode extends HttpApiEndpoint.ClientResponseMode = HttpApiEndpoint.ClientResponseMode
59
59
  >(
60
- group: GroupName,
61
- endpoint: Name,
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 _Name,
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
- GroupName extends HttpApiGroup.Name<Groups>,
92
- Name extends HttpApiEndpoint.Name<HttpApiGroup.Endpoints<Group>>,
93
- Group extends HttpApiGroup.Any = HttpApiGroup.WithName<Groups, GroupName>,
94
- Endpoint extends HttpApiEndpoint.Any = HttpApiEndpoint.WithName<
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
- Name
96
+ EndpointIdentifier
97
97
  >,
98
98
  const ResponseMode extends HttpApiEndpoint.ClientResponseMode = "decoded-only"
99
99
  >(
100
- group: GroupName,
101
- endpoint: Name,
100
+ group: GroupIdentifier,
101
+ endpoint: EndpointIdentifier,
102
102
  request: [Endpoint] extends [
103
103
  HttpApiEndpoint.HttpApiEndpoint<
104
- infer _Name,
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 _Name,
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 = <Self>() =>
170
- <const Id extends string, ApiId extends string, Groups extends HttpApiGroup.Any>(
171
- id: Id,
172
- options: {
173
- readonly api: HttpApi.HttpApi<ApiId, Groups>
174
- readonly httpClient:
175
- | Layer.Layer<
176
- | HttpApiGroup.ClientServices<Groups>
177
- | HttpClient.HttpClient
178
- >
179
- | ((get: Atom.AtomContext) => Layer.Layer<
180
- | HttpApiGroup.ClientServices<Groups>
181
- | HttpClient.HttpClient
182
- >)
183
- readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined
184
- readonly transformResponse?:
185
- | ((effect: Effect.Effect<unknown, unknown, unknown>) => Effect.Effect<unknown, unknown, unknown>)
186
- | undefined
187
- readonly baseUrl?: URL | string | undefined
188
- readonly runtime?: Atom.RuntimeFactory | undefined
189
- }
190
- ): AtomHttpApiClient<Self, Id, Groups> => {
191
- const self: Mutable<AtomHttpApiClient<Self, Id, Groups>> = Context.Service<
192
- Self,
193
- HttpApiClient.Client<Groups, never, never>
194
- >()(id) as any
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
- const catchErrors = Effect.catch((e: unknown) =>
215
- Schema.isSchemaError(e) || HttpClientError.isHttpClientError(e) ? Effect.die(e) : Effect.fail(e)
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
- const mutationFamily = Atom.family(({ endpoint, group, responseMode }: MutationKey) => {
219
- const atom = self.runtime.fn<{
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
- if (responseMode === "decoded-only") {
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
- self.mutation = ((group: string, endpoint: string, options?: {
251
- readonly responseMode?: HttpApiEndpoint.ClientResponseMode | undefined
252
- }) =>
253
- mutationFamily({
254
- group,
255
- endpoint,
256
- responseMode: options?.responseMode ?? "decoded-only"
257
- })) as any
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
- const queryFamily = Atom.family((opts: QueryKey) => {
260
- let atom = self.runtime.atom(self.use((client_) => {
261
- const client = client_ as any
262
- return catchErrors(client[opts.group][opts.endpoint](opts) as Effect.Effect<
263
- any,
264
- HttpClientError.HttpClientError | SchemaError
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
- self.query = ((
288
- group: string,
289
- endpoint: string,
290
- request: {
291
- readonly params?: any
292
- readonly query?: any
293
- readonly payload?: any
294
- readonly headers?: any
295
- readonly responseMode?: HttpApiEndpoint.ClientResponseMode
296
- readonly reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
297
- readonly timeToLive?: Duration.Input | undefined
298
- readonly serializationKey?: string | undefined
299
- }
300
- ) => {
301
- const key: QueryKey = {
302
- group,
303
- endpoint,
304
- params: request.params,
305
- query: request.query,
306
- payload: request.payload,
307
- headers: request.headers,
308
- responseMode: request.responseMode ?? "decoded-only",
309
- reactivityKeys: request.reactivityKeys,
310
- timeToLive: request.timeToLive
311
- ? Duration.fromInputUnsafe(request.timeToLive)
312
- : undefined,
313
- serializationKey: request.serializationKey
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
- return self as AtomHttpApiClient<Self, Id, Groups>
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: Array<Node<any>>
100
- children: Array<Node<any>>
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: Array<NodeImpl<any>> = []
717
- previousParents: Array<NodeImpl<any>> | undefined
718
- children: Array<NodeImpl<any>> = []
719
- listeners: Set<() => void> = new Set()
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.length === 0 && this.state !== 0
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 (let i = 0; i < parents.length; i++) {
757
- parents[i].removeChild(this)
758
- if (parents[i].canBeRemoved) {
759
- this.registry.scheduleNodeRemoval(parents[i])
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.push(parent)
829
+ this.parents.add(parent)
830
830
  if (this.previousParents !== undefined) {
831
- const index = this.previousParents.indexOf(parent)
832
- if (index !== -1) {
833
- this.previousParents[index] = this.previousParents[this.previousParents.length - 1]
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.indexOf(this) === -1) {
841
- parent.children.push(this)
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
- const index = this.children.indexOf(child)
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.length === 0) {
866
+ if (this.children.size === 0) {
874
867
  return
875
868
  }
876
869
 
877
870
  const children = this.children
878
- this.children = []
879
- for (let i = 0; i < children.length; i++) {
880
- children[i].invalidate()
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.length !== 0) {
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 (let i = 0; i < parents.length; i++) {
921
- parents[i].removeChild(this)
922
- if (parents[i].canBeRemoved) {
923
- this.registry.removeNode(parents[i])
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: Array<NodeImpl<any>>): boolean {
935
- if (children.length === 0) {
927
+ function childrenAreActive(children: Set<NodeImpl<any>>): boolean {
928
+ if (children.size === 0) {
936
929
  return false
937
930
  }
938
- let current: Array<NodeImpl<any>> | undefined = children
939
- let stack: Array<Array<NodeImpl<any>>> | undefined
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 (let i = 0, len = current.length; i < len; i++) {
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.length > 0) {
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 (let i = 0; i < node.parents.length; i++) {
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 = BigInt(0)
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: String(message.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: String(message.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: String(message.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.exponential(500, 1.5).pipe(
1154
- Schedule.either(Schedule.spaced(5000))
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