effect 4.0.0-beta.3 → 4.0.0-beta.30

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 (983) hide show
  1. package/dist/Array.d.ts +126 -299
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +102 -62
  4. package/dist/Array.js.map +1 -1
  5. package/dist/Brand.d.ts +1 -1
  6. package/dist/Brand.d.ts.map +1 -1
  7. package/dist/Brand.js +1 -1
  8. package/dist/Brand.js.map +1 -1
  9. package/dist/Cache.d.ts +2 -2
  10. package/dist/Cache.d.ts.map +1 -1
  11. package/dist/Cache.js +6 -5
  12. package/dist/Cache.js.map +1 -1
  13. package/dist/Cause.d.ts +2 -2
  14. package/dist/Cause.d.ts.map +1 -1
  15. package/dist/Channel.d.ts +116 -30
  16. package/dist/Channel.d.ts.map +1 -1
  17. package/dist/Channel.js +82 -37
  18. package/dist/Channel.js.map +1 -1
  19. package/dist/Chunk.d.ts +54 -247
  20. package/dist/Chunk.d.ts.map +1 -1
  21. package/dist/Chunk.js +36 -67
  22. package/dist/Chunk.js.map +1 -1
  23. package/dist/Combiner.d.ts +280 -13
  24. package/dist/Combiner.d.ts.map +1 -1
  25. package/dist/Combiner.js +198 -7
  26. package/dist/Combiner.js.map +1 -1
  27. package/dist/Config.d.ts +165 -9
  28. package/dist/Config.d.ts.map +1 -1
  29. package/dist/Config.js +65 -10
  30. package/dist/Config.js.map +1 -1
  31. package/dist/ConfigProvider.d.ts +1 -1
  32. package/dist/Cron.d.ts +1 -1
  33. package/dist/Data.d.ts +535 -366
  34. package/dist/Data.d.ts.map +1 -1
  35. package/dist/Data.js +132 -79
  36. package/dist/Data.js.map +1 -1
  37. package/dist/DateTime.d.ts +23 -161
  38. package/dist/DateTime.d.ts.map +1 -1
  39. package/dist/DateTime.js +6 -51
  40. package/dist/DateTime.js.map +1 -1
  41. package/dist/Duration.d.ts +11 -11
  42. package/dist/Duration.d.ts.map +1 -1
  43. package/dist/Duration.js +11 -11
  44. package/dist/Duration.js.map +1 -1
  45. package/dist/Effect.d.ts +1206 -924
  46. package/dist/Effect.d.ts.map +1 -1
  47. package/dist/Effect.js +390 -329
  48. package/dist/Effect.js.map +1 -1
  49. package/dist/Encoding.d.ts +194 -0
  50. package/dist/Encoding.d.ts.map +1 -0
  51. package/dist/Encoding.js +352 -0
  52. package/dist/Encoding.js.map +1 -0
  53. package/dist/Equal.d.ts +276 -109
  54. package/dist/Equal.d.ts.map +1 -1
  55. package/dist/Equal.js +124 -48
  56. package/dist/Equal.js.map +1 -1
  57. package/dist/ErrorReporter.d.ts +374 -0
  58. package/dist/ErrorReporter.d.ts.map +1 -0
  59. package/dist/ErrorReporter.js +244 -0
  60. package/dist/ErrorReporter.js.map +1 -0
  61. package/dist/Exit.d.ts +24 -12
  62. package/dist/Exit.d.ts.map +1 -1
  63. package/dist/Exit.js +8 -4
  64. package/dist/Exit.js.map +1 -1
  65. package/dist/Fiber.d.ts +3 -2
  66. package/dist/Fiber.d.ts.map +1 -1
  67. package/dist/Fiber.js.map +1 -1
  68. package/dist/FileSystem.d.ts +1 -1
  69. package/dist/FileSystem.d.ts.map +1 -1
  70. package/dist/FileSystem.js +5 -5
  71. package/dist/FileSystem.js.map +1 -1
  72. package/dist/Filter.d.ts +34 -38
  73. package/dist/Filter.d.ts.map +1 -1
  74. package/dist/Filter.js +15 -13
  75. package/dist/Filter.js.map +1 -1
  76. package/dist/Formatter.d.ts +131 -47
  77. package/dist/Formatter.d.ts.map +1 -1
  78. package/dist/Formatter.js +229 -51
  79. package/dist/Formatter.js.map +1 -1
  80. package/dist/Function.d.ts +1 -9
  81. package/dist/Function.d.ts.map +1 -1
  82. package/dist/Function.js +2 -10
  83. package/dist/Function.js.map +1 -1
  84. package/dist/Graph.d.ts +1 -1
  85. package/dist/Graph.d.ts.map +1 -1
  86. package/dist/Graph.js +5 -8
  87. package/dist/Graph.js.map +1 -1
  88. package/dist/HashMap.d.ts +15 -14
  89. package/dist/HashMap.d.ts.map +1 -1
  90. package/dist/HashMap.js +4 -4
  91. package/dist/HashMap.js.map +1 -1
  92. package/dist/Iterable.d.ts +39 -39
  93. package/dist/Iterable.d.ts.map +1 -1
  94. package/dist/Iterable.js +94 -22
  95. package/dist/Iterable.js.map +1 -1
  96. package/dist/JsonSchema.d.ts +299 -10
  97. package/dist/JsonSchema.d.ts.map +1 -1
  98. package/dist/JsonSchema.js +323 -4
  99. package/dist/JsonSchema.js.map +1 -1
  100. package/dist/Latch.d.ts +109 -0
  101. package/dist/Latch.d.ts.map +1 -0
  102. package/dist/Latch.js +72 -0
  103. package/dist/Latch.js.map +1 -0
  104. package/dist/Layer.d.ts +121 -126
  105. package/dist/Layer.d.ts.map +1 -1
  106. package/dist/Layer.js +43 -44
  107. package/dist/Layer.js.map +1 -1
  108. package/dist/LayerMap.d.ts +8 -8
  109. package/dist/LayerMap.d.ts.map +1 -1
  110. package/dist/LayerMap.js +3 -3
  111. package/dist/LogLevel.d.ts +32 -0
  112. package/dist/LogLevel.d.ts.map +1 -1
  113. package/dist/LogLevel.js +28 -100
  114. package/dist/LogLevel.js.map +1 -1
  115. package/dist/Logger.d.ts +29 -95
  116. package/dist/Logger.d.ts.map +1 -1
  117. package/dist/Logger.js +2 -3
  118. package/dist/Logger.js.map +1 -1
  119. package/dist/ManagedRuntime.d.ts +2 -2
  120. package/dist/ManagedRuntime.js +2 -2
  121. package/dist/Metric.d.ts +4 -6
  122. package/dist/Metric.d.ts.map +1 -1
  123. package/dist/Metric.js +3 -5
  124. package/dist/Metric.js.map +1 -1
  125. package/dist/Newtype.d.ts +291 -0
  126. package/dist/Newtype.d.ts.map +1 -0
  127. package/dist/Newtype.js +161 -0
  128. package/dist/Newtype.js.map +1 -0
  129. package/dist/Optic.d.ts +947 -18
  130. package/dist/Optic.d.ts.map +1 -1
  131. package/dist/Optic.js +454 -5
  132. package/dist/Optic.js.map +1 -1
  133. package/dist/Option.d.ts +23 -16
  134. package/dist/Option.d.ts.map +1 -1
  135. package/dist/Option.js +15 -9
  136. package/dist/Option.js.map +1 -1
  137. package/dist/Pipeable.d.ts +17 -0
  138. package/dist/Pipeable.d.ts.map +1 -1
  139. package/dist/Pipeable.js +19 -1
  140. package/dist/Pipeable.js.map +1 -1
  141. package/dist/PlatformError.d.ts +10 -9
  142. package/dist/PlatformError.d.ts.map +1 -1
  143. package/dist/PlatformError.js +2 -2
  144. package/dist/PlatformError.js.map +1 -1
  145. package/dist/Pool.d.ts +6 -4
  146. package/dist/Pool.d.ts.map +1 -1
  147. package/dist/Pool.js +7 -5
  148. package/dist/Pool.js.map +1 -1
  149. package/dist/PubSub.d.ts +3 -2
  150. package/dist/PubSub.d.ts.map +1 -1
  151. package/dist/PubSub.js +3 -2
  152. package/dist/PubSub.js.map +1 -1
  153. package/dist/Pull.d.ts.map +1 -1
  154. package/dist/Pull.js +1 -1
  155. package/dist/Pull.js.map +1 -1
  156. package/dist/Queue.d.ts.map +1 -1
  157. package/dist/Queue.js +0 -1
  158. package/dist/Queue.js.map +1 -1
  159. package/dist/Random.d.ts +35 -1
  160. package/dist/Random.d.ts.map +1 -1
  161. package/dist/Random.js +46 -12
  162. package/dist/Random.js.map +1 -1
  163. package/dist/RcMap.d.ts +2 -2
  164. package/dist/RcMap.d.ts.map +1 -1
  165. package/dist/RcMap.js +1 -1
  166. package/dist/RcMap.js.map +1 -1
  167. package/dist/RcRef.d.ts +1 -1
  168. package/dist/RcRef.d.ts.map +1 -1
  169. package/dist/Record.d.ts +23 -120
  170. package/dist/Record.d.ts.map +1 -1
  171. package/dist/Record.js +21 -41
  172. package/dist/Record.js.map +1 -1
  173. package/dist/Reducer.d.ts +166 -7
  174. package/dist/Reducer.d.ts.map +1 -1
  175. package/dist/Reducer.js +135 -1
  176. package/dist/Reducer.js.map +1 -1
  177. package/dist/References.d.ts +9 -4
  178. package/dist/References.d.ts.map +1 -1
  179. package/dist/References.js +6 -1
  180. package/dist/References.js.map +1 -1
  181. package/dist/Request.d.ts +1 -1
  182. package/dist/Request.d.ts.map +1 -1
  183. package/dist/Request.js +2 -1
  184. package/dist/Request.js.map +1 -1
  185. package/dist/RequestResolver.d.ts +25 -45
  186. package/dist/RequestResolver.d.ts.map +1 -1
  187. package/dist/RequestResolver.js +10 -30
  188. package/dist/RequestResolver.js.map +1 -1
  189. package/dist/Result.d.ts +1 -1
  190. package/dist/Result.d.ts.map +1 -1
  191. package/dist/Result.js +1 -2
  192. package/dist/Result.js.map +1 -1
  193. package/dist/Runtime.d.ts +66 -0
  194. package/dist/Runtime.d.ts.map +1 -1
  195. package/dist/Runtime.js +79 -6
  196. package/dist/Runtime.js.map +1 -1
  197. package/dist/Schedule.d.ts +191 -102
  198. package/dist/Schedule.d.ts.map +1 -1
  199. package/dist/Schedule.js +152 -66
  200. package/dist/Schedule.js.map +1 -1
  201. package/dist/Scheduler.d.ts +9 -0
  202. package/dist/Scheduler.d.ts.map +1 -1
  203. package/dist/Scheduler.js +11 -0
  204. package/dist/Scheduler.js.map +1 -1
  205. package/dist/Schema.d.ts +309 -88
  206. package/dist/Schema.d.ts.map +1 -1
  207. package/dist/Schema.js +499 -109
  208. package/dist/Schema.js.map +1 -1
  209. package/dist/SchemaAST.d.ts.map +1 -1
  210. package/dist/SchemaAST.js +129 -23
  211. package/dist/SchemaAST.js.map +1 -1
  212. package/dist/SchemaGetter.d.ts +5 -5
  213. package/dist/SchemaGetter.d.ts.map +1 -1
  214. package/dist/SchemaGetter.js +12 -14
  215. package/dist/SchemaGetter.js.map +1 -1
  216. package/dist/SchemaParser.d.ts +5 -0
  217. package/dist/SchemaParser.d.ts.map +1 -1
  218. package/dist/SchemaParser.js +10 -0
  219. package/dist/SchemaParser.js.map +1 -1
  220. package/dist/SchemaRepresentation.d.ts +44 -43
  221. package/dist/SchemaRepresentation.d.ts.map +1 -1
  222. package/dist/SchemaRepresentation.js +49 -24
  223. package/dist/SchemaRepresentation.js.map +1 -1
  224. package/dist/SchemaTransformation.d.ts +107 -3
  225. package/dist/SchemaTransformation.d.ts.map +1 -1
  226. package/dist/SchemaTransformation.js +159 -4
  227. package/dist/SchemaTransformation.js.map +1 -1
  228. package/dist/ScopedCache.d.ts +2 -2
  229. package/dist/ScopedCache.d.ts.map +1 -1
  230. package/dist/ScopedCache.js +1 -1
  231. package/dist/ScopedCache.js.map +1 -1
  232. package/dist/Semaphore.d.ts +211 -0
  233. package/dist/Semaphore.d.ts.map +1 -0
  234. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  235. package/dist/Semaphore.js.map +1 -0
  236. package/dist/ServiceMap.d.ts +41 -31
  237. package/dist/ServiceMap.d.ts.map +1 -1
  238. package/dist/ServiceMap.js +3 -3
  239. package/dist/ServiceMap.js.map +1 -1
  240. package/dist/Sink.d.ts +13 -13
  241. package/dist/Sink.d.ts.map +1 -1
  242. package/dist/Sink.js +53 -6
  243. package/dist/Sink.js.map +1 -1
  244. package/dist/Stdio.d.ts +16 -4
  245. package/dist/Stdio.d.ts.map +1 -1
  246. package/dist/Stdio.js +18 -0
  247. package/dist/Stdio.js.map +1 -1
  248. package/dist/Stream.d.ts +250 -428
  249. package/dist/Stream.d.ts.map +1 -1
  250. package/dist/Stream.js +137 -82
  251. package/dist/Stream.js.map +1 -1
  252. package/dist/Struct.d.ts +16 -0
  253. package/dist/Struct.d.ts.map +1 -1
  254. package/dist/Struct.js +22 -0
  255. package/dist/Struct.js.map +1 -1
  256. package/dist/SubscriptionRef.d.ts +2 -1
  257. package/dist/SubscriptionRef.d.ts.map +1 -1
  258. package/dist/SubscriptionRef.js +2 -1
  259. package/dist/SubscriptionRef.js.map +1 -1
  260. package/dist/SynchronizedRef.d.ts +2 -1
  261. package/dist/SynchronizedRef.d.ts.map +1 -1
  262. package/dist/SynchronizedRef.js +2 -1
  263. package/dist/SynchronizedRef.js.map +1 -1
  264. package/dist/Trie.d.ts +18 -17
  265. package/dist/Trie.d.ts.map +1 -1
  266. package/dist/Trie.js +5 -5
  267. package/dist/Trie.js.map +1 -1
  268. package/dist/TxChunk.d.ts +37 -37
  269. package/dist/TxChunk.d.ts.map +1 -1
  270. package/dist/TxChunk.js +3 -3
  271. package/dist/TxChunk.js.map +1 -1
  272. package/dist/TxDeferred.d.ts +328 -0
  273. package/dist/TxDeferred.d.ts.map +1 -0
  274. package/dist/TxDeferred.js +196 -0
  275. package/dist/TxDeferred.js.map +1 -0
  276. package/dist/TxHashMap.d.ts +84 -83
  277. package/dist/TxHashMap.d.ts.map +1 -1
  278. package/dist/TxHashMap.js +24 -24
  279. package/dist/TxHashMap.js.map +1 -1
  280. package/dist/TxHashSet.d.ts +35 -35
  281. package/dist/TxHashSet.d.ts.map +1 -1
  282. package/dist/TxHashSet.js +14 -14
  283. package/dist/TxHashSet.js.map +1 -1
  284. package/dist/TxPriorityQueue.d.ts +609 -0
  285. package/dist/TxPriorityQueue.d.ts.map +1 -0
  286. package/dist/TxPriorityQueue.js +415 -0
  287. package/dist/TxPriorityQueue.js.map +1 -0
  288. package/dist/TxPubSub.d.ts +585 -0
  289. package/dist/TxPubSub.d.ts.map +1 -0
  290. package/dist/TxPubSub.js +521 -0
  291. package/dist/TxPubSub.js.map +1 -0
  292. package/dist/TxQueue.d.ts +32 -32
  293. package/dist/TxQueue.d.ts.map +1 -1
  294. package/dist/TxQueue.js +26 -26
  295. package/dist/TxQueue.js.map +1 -1
  296. package/dist/TxReentrantLock.d.ts +523 -0
  297. package/dist/TxReentrantLock.d.ts.map +1 -0
  298. package/dist/TxReentrantLock.js +504 -0
  299. package/dist/TxReentrantLock.js.map +1 -0
  300. package/dist/TxRef.d.ts +34 -34
  301. package/dist/TxRef.d.ts.map +1 -1
  302. package/dist/TxRef.js +21 -14
  303. package/dist/TxRef.js.map +1 -1
  304. package/dist/TxSemaphore.d.ts +8 -8
  305. package/dist/TxSemaphore.d.ts.map +1 -1
  306. package/dist/TxSemaphore.js +7 -7
  307. package/dist/TxSemaphore.js.map +1 -1
  308. package/dist/TxSubscriptionRef.d.ts +508 -0
  309. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  310. package/dist/TxSubscriptionRef.js +293 -0
  311. package/dist/TxSubscriptionRef.js.map +1 -0
  312. package/dist/Types.d.ts +80 -23
  313. package/dist/Types.d.ts.map +1 -1
  314. package/dist/Utils.d.ts +137 -65
  315. package/dist/Utils.d.ts.map +1 -1
  316. package/dist/Utils.js +38 -66
  317. package/dist/Utils.js.map +1 -1
  318. package/dist/index.d.ts +718 -23
  319. package/dist/index.d.ts.map +1 -1
  320. package/dist/index.js +718 -23
  321. package/dist/index.js.map +1 -1
  322. package/dist/internal/core.js +11 -3
  323. package/dist/internal/core.js.map +1 -1
  324. package/dist/internal/dateTime.js +3 -11
  325. package/dist/internal/dateTime.js.map +1 -1
  326. package/dist/internal/effect.js +264 -126
  327. package/dist/internal/effect.js.map +1 -1
  328. package/dist/internal/hashMap.js +5 -4
  329. package/dist/internal/hashMap.js.map +1 -1
  330. package/dist/internal/random.d.ts +2 -0
  331. package/dist/internal/random.d.ts.map +1 -0
  332. package/dist/internal/random.js +13 -0
  333. package/dist/internal/random.js.map +1 -0
  334. package/dist/internal/rcRef.js +3 -2
  335. package/dist/internal/rcRef.js.map +1 -1
  336. package/dist/internal/request.js +2 -2
  337. package/dist/internal/request.js.map +1 -1
  338. package/dist/internal/schema/annotations.js +2 -0
  339. package/dist/internal/schema/annotations.js.map +1 -1
  340. package/dist/internal/schema/representation.js +47 -106
  341. package/dist/internal/schema/representation.js.map +1 -1
  342. package/dist/internal/schema/schema.js +1 -0
  343. package/dist/internal/schema/schema.js.map +1 -1
  344. package/dist/internal/schema/to-codec.js +7 -10
  345. package/dist/internal/schema/to-codec.js.map +1 -1
  346. package/dist/internal/trie.js +5 -4
  347. package/dist/internal/trie.js.map +1 -1
  348. package/dist/testing/TestClock.d.ts +8 -7
  349. package/dist/testing/TestClock.d.ts.map +1 -1
  350. package/dist/testing/TestClock.js +6 -4
  351. package/dist/testing/TestClock.js.map +1 -1
  352. package/dist/testing/TestSchema.d.ts +266 -32
  353. package/dist/testing/TestSchema.d.ts.map +1 -1
  354. package/dist/testing/TestSchema.js +296 -23
  355. package/dist/testing/TestSchema.js.map +1 -1
  356. package/dist/testing/index.d.ts +64 -1
  357. package/dist/testing/index.d.ts.map +1 -1
  358. package/dist/testing/index.js +64 -1
  359. package/dist/testing/index.js.map +1 -1
  360. package/dist/unstable/ai/AiError.d.ts +134 -51
  361. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  362. package/dist/unstable/ai/AiError.js +19 -16
  363. package/dist/unstable/ai/AiError.js.map +1 -1
  364. package/dist/unstable/ai/Chat.d.ts +5 -5
  365. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  366. package/dist/unstable/ai/Chat.js +38 -44
  367. package/dist/unstable/ai/Chat.js.map +1 -1
  368. package/dist/unstable/ai/LanguageModel.d.ts +16 -30
  369. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  370. package/dist/unstable/ai/LanguageModel.js +97 -37
  371. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  372. package/dist/unstable/ai/McpSchema.d.ts +183 -88
  373. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  374. package/dist/unstable/ai/McpSchema.js +57 -12
  375. package/dist/unstable/ai/McpSchema.js.map +1 -1
  376. package/dist/unstable/ai/McpServer.d.ts +66 -13
  377. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  378. package/dist/unstable/ai/McpServer.js +193 -51
  379. package/dist/unstable/ai/McpServer.js.map +1 -1
  380. package/dist/unstable/ai/Model.d.ts +25 -7
  381. package/dist/unstable/ai/Model.d.ts.map +1 -1
  382. package/dist/unstable/ai/Model.js +22 -6
  383. package/dist/unstable/ai/Model.js.map +1 -1
  384. package/dist/unstable/ai/Prompt.d.ts +20 -20
  385. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  386. package/dist/unstable/ai/Response.d.ts +26 -26
  387. package/dist/unstable/ai/Response.d.ts.map +1 -1
  388. package/dist/unstable/ai/Response.js +1 -1
  389. package/dist/unstable/ai/Response.js.map +1 -1
  390. package/dist/unstable/ai/Tool.d.ts +20 -4
  391. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  392. package/dist/unstable/ai/Tool.js +14 -9
  393. package/dist/unstable/ai/Tool.js.map +1 -1
  394. package/dist/unstable/ai/Toolkit.d.ts +1 -1
  395. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  396. package/dist/unstable/ai/Toolkit.js +4 -11
  397. package/dist/unstable/ai/Toolkit.js.map +1 -1
  398. package/dist/unstable/ai/index.d.ts +1 -1
  399. package/dist/unstable/ai/index.js +1 -1
  400. package/dist/unstable/ai/internal/codec-transformer.js +0 -5
  401. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  402. package/dist/unstable/cli/CliError.d.ts +27 -60
  403. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  404. package/dist/unstable/cli/CliError.js +25 -57
  405. package/dist/unstable/cli/CliError.js.map +1 -1
  406. package/dist/unstable/cli/CliOutput.js +59 -6
  407. package/dist/unstable/cli/CliOutput.js.map +1 -1
  408. package/dist/unstable/cli/Command.d.ts +368 -56
  409. package/dist/unstable/cli/Command.d.ts.map +1 -1
  410. package/dist/unstable/cli/Command.js +325 -64
  411. package/dist/unstable/cli/Command.js.map +1 -1
  412. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  413. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  414. package/dist/unstable/cli/GlobalFlag.js +118 -0
  415. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  416. package/dist/unstable/cli/HelpDoc.d.ts +70 -2
  417. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  418. package/dist/unstable/cli/Primitive.d.ts +1 -1
  419. package/dist/unstable/cli/Primitive.js +1 -1
  420. package/dist/unstable/cli/Prompt.js +35 -8
  421. package/dist/unstable/cli/Prompt.js.map +1 -1
  422. package/dist/unstable/cli/index.d.ts +4 -0
  423. package/dist/unstable/cli/index.d.ts.map +1 -1
  424. package/dist/unstable/cli/index.js +4 -0
  425. package/dist/unstable/cli/index.js.map +1 -1
  426. package/dist/unstable/cli/internal/command.d.ts +40 -14
  427. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  428. package/dist/unstable/cli/internal/command.js +72 -46
  429. package/dist/unstable/cli/internal/command.js.map +1 -1
  430. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  431. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  432. package/dist/unstable/cli/internal/config.js +42 -0
  433. package/dist/unstable/cli/internal/config.js.map +1 -1
  434. package/dist/unstable/cli/internal/help.d.ts +33 -0
  435. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  436. package/dist/unstable/cli/internal/help.js +125 -0
  437. package/dist/unstable/cli/internal/help.js.map +1 -0
  438. package/dist/unstable/cli/internal/parser.js +55 -42
  439. package/dist/unstable/cli/internal/parser.js.map +1 -1
  440. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  441. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  442. package/dist/unstable/cluster/ClusterCron.js +1 -1
  443. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  444. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  445. package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
  446. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  447. package/dist/unstable/cluster/Entity.d.ts +7 -6
  448. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  449. package/dist/unstable/cluster/Entity.js.map +1 -1
  450. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  451. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  452. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  453. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  454. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  455. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  456. package/dist/unstable/cluster/Message.d.ts +10 -10
  457. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  458. package/dist/unstable/cluster/MessageStorage.js +2 -1
  459. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  460. package/dist/unstable/cluster/Reply.d.ts +6 -6
  461. package/dist/unstable/cluster/Runner.d.ts +1 -1
  462. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  463. package/dist/unstable/cluster/Runners.js +4 -3
  464. package/dist/unstable/cluster/Runners.js.map +1 -1
  465. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  466. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  467. package/dist/unstable/cluster/Sharding.js +9 -7
  468. package/dist/unstable/cluster/Sharding.js.map +1 -1
  469. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  470. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  471. package/dist/unstable/cluster/ShardingConfig.js +20 -20
  472. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  473. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  474. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  475. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  476. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  477. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  478. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  479. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  480. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  481. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  482. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  483. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  484. package/dist/unstable/encoding/Sse.d.ts +4 -4
  485. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  486. package/dist/unstable/encoding/Sse.js +1 -1
  487. package/dist/unstable/encoding/Sse.js.map +1 -1
  488. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  489. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  490. package/dist/unstable/eventlog/EventLog.js +2 -1
  491. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  492. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  493. package/dist/unstable/http/Cookies.d.ts +47 -3
  494. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  495. package/dist/unstable/http/Cookies.js +24 -2
  496. package/dist/unstable/http/Cookies.js.map +1 -1
  497. package/dist/unstable/http/Headers.d.ts +16 -0
  498. package/dist/unstable/http/Headers.d.ts.map +1 -1
  499. package/dist/unstable/http/Headers.js +38 -10
  500. package/dist/unstable/http/Headers.js.map +1 -1
  501. package/dist/unstable/http/HttpBody.d.ts +3 -3
  502. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  503. package/dist/unstable/http/HttpBody.js +6 -6
  504. package/dist/unstable/http/HttpBody.js.map +1 -1
  505. package/dist/unstable/http/HttpClient.d.ts +117 -15
  506. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  507. package/dist/unstable/http/HttpClient.js +189 -12
  508. package/dist/unstable/http/HttpClient.js.map +1 -1
  509. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  510. package/dist/unstable/http/HttpClientRequest.d.ts +16 -11
  511. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  512. package/dist/unstable/http/HttpClientRequest.js +31 -20
  513. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  514. package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
  515. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  516. package/dist/unstable/http/HttpClientResponse.js +4 -0
  517. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  518. package/dist/unstable/http/HttpEffect.d.ts +7 -5
  519. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  520. package/dist/unstable/http/HttpEffect.js +46 -54
  521. package/dist/unstable/http/HttpEffect.js.map +1 -1
  522. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  523. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  524. package/dist/unstable/http/HttpMethod.js +3 -3
  525. package/dist/unstable/http/HttpMethod.js.map +1 -1
  526. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  527. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  528. package/dist/unstable/http/HttpMiddleware.js +8 -17
  529. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  530. package/dist/unstable/http/HttpServerError.d.ts +20 -33
  531. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  532. package/dist/unstable/http/HttpServerError.js +37 -44
  533. package/dist/unstable/http/HttpServerError.js.map +1 -1
  534. package/dist/unstable/http/HttpServerRequest.d.ts +12 -1
  535. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  536. package/dist/unstable/http/HttpServerRequest.js +291 -1
  537. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  538. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  539. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  540. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  541. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  542. package/dist/unstable/http/HttpServerResponse.d.ts +50 -3
  543. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  544. package/dist/unstable/http/HttpServerResponse.js +234 -1
  545. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  546. package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
  547. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
  548. package/dist/unstable/http/HttpStaticServer.js +353 -0
  549. package/dist/unstable/http/HttpStaticServer.js.map +1 -0
  550. package/dist/unstable/http/Multipart.d.ts +3 -3
  551. package/dist/unstable/http/UrlParams.d.ts +14 -6
  552. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  553. package/dist/unstable/http/UrlParams.js +1 -1
  554. package/dist/unstable/http/UrlParams.js.map +1 -1
  555. package/dist/unstable/http/index.d.ts +4 -0
  556. package/dist/unstable/http/index.d.ts.map +1 -1
  557. package/dist/unstable/http/index.js +4 -0
  558. package/dist/unstable/http/index.js.map +1 -1
  559. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  560. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  561. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  562. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  563. package/dist/unstable/httpapi/HttpApi.d.ts +4 -4
  564. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  565. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  566. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  567. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  568. package/dist/unstable/httpapi/HttpApiBuilder.js +28 -18
  569. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  570. package/dist/unstable/httpapi/HttpApiClient.d.ts +66 -6
  571. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  572. package/dist/unstable/httpapi/HttpApiClient.js +40 -3
  573. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  574. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +41 -54
  575. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  576. package/dist/unstable/httpapi/HttpApiEndpoint.js +17 -26
  577. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  578. package/dist/unstable/httpapi/HttpApiError.d.ts +16 -14
  579. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  580. package/dist/unstable/httpapi/HttpApiError.js +44 -29
  581. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  582. package/dist/unstable/httpapi/HttpApiGroup.d.ts +4 -3
  583. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  584. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  585. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
  586. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  587. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  588. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  589. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  590. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  591. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  592. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  593. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  594. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  595. package/dist/unstable/httpapi/OpenApi.js +32 -21
  596. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  597. package/dist/unstable/observability/Otlp.d.ts +12 -12
  598. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  599. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  600. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  601. package/dist/unstable/observability/OtlpExporter.js +1 -1
  602. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  603. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  604. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  605. package/dist/unstable/observability/OtlpLogger.js +7 -4
  606. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  607. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  608. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  609. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  610. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  611. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  612. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  613. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  614. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  615. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  616. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  617. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  618. package/dist/unstable/persistence/PersistedCache.js +2 -1
  619. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  620. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  621. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  622. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  623. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  624. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  625. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  626. package/dist/unstable/persistence/Persistence.js +2 -2
  627. package/dist/unstable/persistence/Persistence.js.map +1 -1
  628. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  629. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  630. package/dist/unstable/persistence/RateLimiter.js +1 -1
  631. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  632. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  633. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  634. package/dist/unstable/process/ChildProcess.js +1 -65
  635. package/dist/unstable/process/ChildProcess.js.map +1 -1
  636. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  637. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  638. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  639. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  640. package/dist/unstable/reactivity/Atom.d.ts +73 -12
  641. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  642. package/dist/unstable/reactivity/Atom.js +107 -20
  643. package/dist/unstable/reactivity/Atom.js.map +1 -1
  644. package/dist/unstable/reactivity/AtomHttpApi.d.ts +10 -12
  645. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  646. package/dist/unstable/reactivity/AtomHttpApi.js +42 -12
  647. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  648. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  649. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  650. package/dist/unstable/reactivity/AtomRegistry.js +50 -9
  651. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  652. package/dist/unstable/reactivity/AtomRpc.d.ts +9 -9
  653. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  654. package/dist/unstable/reactivity/AtomRpc.js +47 -21
  655. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  656. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  657. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  658. package/dist/unstable/reactivity/Hydration.js +76 -0
  659. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  660. package/dist/unstable/reactivity/index.d.ts +4 -0
  661. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  662. package/dist/unstable/reactivity/index.js +4 -0
  663. package/dist/unstable/reactivity/index.js.map +1 -1
  664. package/dist/unstable/rpc/Rpc.d.ts +5 -5
  665. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  666. package/dist/unstable/rpc/Rpc.js.map +1 -1
  667. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  668. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  669. package/dist/unstable/rpc/RpcClient.js +6 -13
  670. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  671. package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
  672. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  673. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  674. package/dist/unstable/rpc/RpcMiddleware.d.ts +8 -8
  675. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  676. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  677. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  678. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  679. package/dist/unstable/rpc/RpcSchema.js +14 -0
  680. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  681. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  682. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  683. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  684. package/dist/unstable/rpc/RpcServer.d.ts +5 -9
  685. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  686. package/dist/unstable/rpc/RpcServer.js +17 -17
  687. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  688. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  689. package/dist/unstable/rpc/Utils.js +3 -2
  690. package/dist/unstable/rpc/Utils.js.map +1 -1
  691. package/dist/unstable/schema/Model.d.ts +22 -1
  692. package/dist/unstable/schema/Model.d.ts.map +1 -1
  693. package/dist/unstable/schema/Model.js +15 -0
  694. package/dist/unstable/schema/Model.js.map +1 -1
  695. package/dist/unstable/schema/VariantSchema.d.ts +5 -5
  696. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  697. package/dist/unstable/schema/VariantSchema.js +6 -6
  698. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  699. package/dist/unstable/socket/Socket.d.ts +4 -4
  700. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  701. package/dist/unstable/socket/Socket.js +6 -5
  702. package/dist/unstable/socket/Socket.js.map +1 -1
  703. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  704. package/dist/unstable/sql/Migrator.d.ts +1 -1
  705. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  706. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  707. package/dist/unstable/sql/SqlError.d.ts +14 -14
  708. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  709. package/dist/unstable/sql/SqlError.js +9 -3
  710. package/dist/unstable/sql/SqlError.js.map +1 -1
  711. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  712. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  713. package/dist/unstable/sql/SqlModel.js +3 -3
  714. package/dist/unstable/sql/SqlModel.js.map +1 -1
  715. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  716. package/dist/unstable/sql/SqlResolver.js +17 -8
  717. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  718. package/dist/unstable/sql/SqlSchema.d.ts +17 -6
  719. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  720. package/dist/unstable/sql/SqlSchema.js +17 -7
  721. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  722. package/dist/unstable/sql/Statement.js +0 -1
  723. package/dist/unstable/sql/Statement.js.map +1 -1
  724. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  725. package/dist/unstable/workers/Worker.js +2 -1
  726. package/dist/unstable/workers/Worker.js.map +1 -1
  727. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  728. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  729. package/dist/unstable/workflow/DurableClock.js +3 -3
  730. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  731. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  732. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  733. package/dist/unstable/workflow/Workflow.d.ts +3 -3
  734. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  735. package/dist/unstable/workflow/Workflow.js +1 -1
  736. package/dist/unstable/workflow/Workflow.js.map +1 -1
  737. package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
  738. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  739. package/dist/unstable/workflow/WorkflowEngine.js +137 -1
  740. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  741. package/package.json +2 -2
  742. package/src/Array.ts +192 -342
  743. package/src/Brand.ts +1 -1
  744. package/src/Cache.ts +9 -8
  745. package/src/Cause.ts +2 -2
  746. package/src/Channel.ts +554 -138
  747. package/src/Chunk.ts +81 -268
  748. package/src/Combiner.ts +280 -13
  749. package/src/Config.ts +186 -24
  750. package/src/Data.ts +539 -376
  751. package/src/DateTime.ts +24 -164
  752. package/src/Duration.ts +13 -13
  753. package/src/Effect.ts +1477 -1126
  754. package/src/Encoding.ts +879 -0
  755. package/src/Equal.ts +278 -111
  756. package/src/ErrorReporter.ts +457 -0
  757. package/src/Exit.ts +24 -12
  758. package/src/Fiber.ts +10 -2
  759. package/src/FileSystem.ts +7 -8
  760. package/src/Filter.ts +52 -63
  761. package/src/Formatter.ts +253 -51
  762. package/src/Function.ts +2 -10
  763. package/src/Graph.ts +24 -11
  764. package/src/HashMap.ts +15 -14
  765. package/src/Iterable.ts +104 -50
  766. package/src/JsonSchema.ts +383 -10
  767. package/src/Latch.ts +112 -0
  768. package/src/Layer.ts +123 -132
  769. package/src/LayerMap.ts +9 -9
  770. package/src/LogLevel.ts +37 -0
  771. package/src/Logger.ts +33 -100
  772. package/src/ManagedRuntime.ts +2 -2
  773. package/src/Metric.ts +6 -8
  774. package/src/Newtype.ts +308 -0
  775. package/src/Optic.ts +948 -19
  776. package/src/Option.ts +32 -24
  777. package/src/Pipeable.ts +32 -1
  778. package/src/PlatformError.ts +5 -5
  779. package/src/Pool.ts +13 -11
  780. package/src/PubSub.ts +10 -9
  781. package/src/Pull.ts +1 -1
  782. package/src/Queue.ts +0 -1
  783. package/src/Random.ts +51 -14
  784. package/src/RcMap.ts +5 -5
  785. package/src/RcRef.ts +1 -1
  786. package/src/Record.ts +42 -152
  787. package/src/Reducer.ts +166 -7
  788. package/src/References.ts +10 -5
  789. package/src/Request.ts +3 -2
  790. package/src/RequestResolver.ts +29 -49
  791. package/src/Result.ts +2 -4
  792. package/src/Runtime.ts +102 -6
  793. package/src/Schedule.ts +462 -242
  794. package/src/Scheduler.ts +12 -0
  795. package/src/Schema.ts +796 -194
  796. package/src/SchemaAST.ts +164 -31
  797. package/src/SchemaGetter.ts +15 -17
  798. package/src/SchemaParser.ts +11 -0
  799. package/src/SchemaRepresentation.ts +49 -24
  800. package/src/SchemaTransformation.ts +189 -4
  801. package/src/ScopedCache.ts +3 -3
  802. package/src/Semaphore.ts +356 -0
  803. package/src/ServiceMap.ts +50 -40
  804. package/src/Sink.ts +78 -26
  805. package/src/Stdio.ts +27 -4
  806. package/src/Stream.ts +586 -608
  807. package/src/Struct.ts +26 -0
  808. package/src/SubscriptionRef.ts +3 -2
  809. package/src/SynchronizedRef.ts +3 -2
  810. package/src/Trie.ts +18 -17
  811. package/src/TxChunk.ts +72 -53
  812. package/src/TxDeferred.ts +394 -0
  813. package/src/TxHashMap.ts +332 -285
  814. package/src/TxHashSet.ts +111 -116
  815. package/src/TxPriorityQueue.ts +767 -0
  816. package/src/TxPubSub.ts +789 -0
  817. package/src/TxQueue.ts +241 -251
  818. package/src/TxReentrantLock.ts +753 -0
  819. package/src/TxRef.ts +50 -38
  820. package/src/TxSemaphore.ts +29 -32
  821. package/src/TxSubscriptionRef.ts +639 -0
  822. package/src/Types.ts +73 -19
  823. package/src/Utils.ts +137 -111
  824. package/src/index.ts +728 -24
  825. package/src/internal/core.ts +12 -5
  826. package/src/internal/dateTime.ts +9 -30
  827. package/src/internal/effect.ts +774 -301
  828. package/src/internal/hashMap.ts +8 -7
  829. package/src/internal/random.ts +20 -0
  830. package/src/internal/rcRef.ts +4 -3
  831. package/src/internal/request.ts +2 -2
  832. package/src/internal/schema/annotations.ts +2 -0
  833. package/src/internal/schema/representation.ts +45 -94
  834. package/src/internal/schema/schema.ts +1 -0
  835. package/src/internal/schema/to-codec.ts +7 -17
  836. package/src/internal/trie.ts +15 -9
  837. package/src/testing/TestClock.ts +13 -11
  838. package/src/testing/TestSchema.ts +332 -35
  839. package/src/testing/index.ts +64 -1
  840. package/src/unstable/ai/AiError.ts +105 -48
  841. package/src/unstable/ai/Chat.ts +47 -61
  842. package/src/unstable/ai/LanguageModel.ts +153 -68
  843. package/src/unstable/ai/McpSchema.ts +73 -13
  844. package/src/unstable/ai/McpServer.ts +271 -61
  845. package/src/unstable/ai/Model.ts +40 -9
  846. package/src/unstable/ai/Prompt.ts +37 -37
  847. package/src/unstable/ai/Response.ts +25 -25
  848. package/src/unstable/ai/Tool.ts +20 -14
  849. package/src/unstable/ai/Toolkit.ts +5 -14
  850. package/src/unstable/ai/index.ts +1 -1
  851. package/src/unstable/ai/internal/codec-transformer.ts +0 -7
  852. package/src/unstable/cli/CliError.ts +47 -59
  853. package/src/unstable/cli/CliOutput.ts +75 -6
  854. package/src/unstable/cli/Command.ts +796 -187
  855. package/src/unstable/cli/GlobalFlag.ts +243 -0
  856. package/src/unstable/cli/HelpDoc.ts +80 -2
  857. package/src/unstable/cli/Primitive.ts +1 -1
  858. package/src/unstable/cli/Prompt.ts +31 -9
  859. package/src/unstable/cli/index.ts +5 -0
  860. package/src/unstable/cli/internal/command.ts +109 -63
  861. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  862. package/src/unstable/cli/internal/config.ts +49 -0
  863. package/src/unstable/cli/internal/help.ts +171 -0
  864. package/src/unstable/cli/internal/parser.ts +66 -61
  865. package/src/unstable/cluster/ClusterCron.ts +2 -2
  866. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
  867. package/src/unstable/cluster/Entity.ts +11 -10
  868. package/src/unstable/cluster/EntityResource.ts +4 -4
  869. package/src/unstable/cluster/Envelope.ts +1 -1
  870. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  871. package/src/unstable/cluster/MessageStorage.ts +3 -5
  872. package/src/unstable/cluster/Runners.ts +6 -5
  873. package/src/unstable/cluster/Sharding.ts +12 -10
  874. package/src/unstable/cluster/ShardingConfig.ts +30 -31
  875. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  876. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  877. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  878. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  879. package/src/unstable/encoding/Sse.ts +3 -5
  880. package/src/unstable/eventlog/EventLog.ts +2 -1
  881. package/src/unstable/http/Cookies.ts +87 -3
  882. package/src/unstable/http/Headers.ts +62 -13
  883. package/src/unstable/http/HttpBody.ts +6 -6
  884. package/src/unstable/http/HttpClient.ts +374 -33
  885. package/src/unstable/http/HttpClientRequest.ts +38 -30
  886. package/src/unstable/http/HttpClientResponse.ts +7 -2
  887. package/src/unstable/http/HttpEffect.ts +54 -68
  888. package/src/unstable/http/HttpMethod.ts +16 -4
  889. package/src/unstable/http/HttpMiddleware.ts +9 -24
  890. package/src/unstable/http/HttpServerError.ts +42 -45
  891. package/src/unstable/http/HttpServerRequest.ts +389 -2
  892. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  893. package/src/unstable/http/HttpServerResponse.ts +337 -4
  894. package/src/unstable/http/HttpStaticServer.ts +456 -0
  895. package/src/unstable/http/Multipart.ts +2 -2
  896. package/src/unstable/http/UrlParams.ts +20 -5
  897. package/src/unstable/http/index.ts +5 -0
  898. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  899. package/src/unstable/httpapi/HttpApi.ts +6 -6
  900. package/src/unstable/httpapi/HttpApiBuilder.ts +81 -28
  901. package/src/unstable/httpapi/HttpApiClient.ts +100 -11
  902. package/src/unstable/httpapi/HttpApiEndpoint.ts +71 -87
  903. package/src/unstable/httpapi/HttpApiError.ts +51 -28
  904. package/src/unstable/httpapi/HttpApiGroup.ts +7 -6
  905. package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
  906. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  907. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  908. package/src/unstable/httpapi/OpenApi.ts +41 -23
  909. package/src/unstable/observability/Otlp.ts +12 -12
  910. package/src/unstable/observability/OtlpExporter.ts +3 -3
  911. package/src/unstable/observability/OtlpLogger.ts +13 -9
  912. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  913. package/src/unstable/observability/OtlpTracer.ts +4 -4
  914. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  915. package/src/unstable/persistence/Persistable.ts +2 -2
  916. package/src/unstable/persistence/PersistedCache.ts +20 -9
  917. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  918. package/src/unstable/persistence/Persistence.ts +3 -3
  919. package/src/unstable/persistence/RateLimiter.ts +4 -4
  920. package/src/unstable/process/ChildProcess.ts +6 -208
  921. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  922. package/src/unstable/reactivity/Atom.ts +211 -50
  923. package/src/unstable/reactivity/AtomHttpApi.ts +66 -31
  924. package/src/unstable/reactivity/AtomRegistry.ts +61 -9
  925. package/src/unstable/reactivity/AtomRpc.ts +51 -20
  926. package/src/unstable/reactivity/Hydration.ts +112 -0
  927. package/src/unstable/reactivity/index.ts +5 -0
  928. package/src/unstable/rpc/Rpc.ts +7 -9
  929. package/src/unstable/rpc/RpcClient.ts +12 -54
  930. package/src/unstable/rpc/RpcGroup.ts +4 -4
  931. package/src/unstable/rpc/RpcMiddleware.ts +15 -9
  932. package/src/unstable/rpc/RpcSchema.ts +17 -0
  933. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  934. package/src/unstable/rpc/RpcServer.ts +28 -32
  935. package/src/unstable/rpc/Utils.ts +3 -2
  936. package/src/unstable/schema/Model.ts +31 -0
  937. package/src/unstable/schema/VariantSchema.ts +9 -9
  938. package/src/unstable/socket/Socket.ts +16 -17
  939. package/src/unstable/sql/SqlClient.ts +1 -1
  940. package/src/unstable/sql/SqlError.ts +11 -9
  941. package/src/unstable/sql/SqlModel.ts +5 -5
  942. package/src/unstable/sql/SqlResolver.ts +17 -7
  943. package/src/unstable/sql/SqlSchema.ts +42 -26
  944. package/src/unstable/sql/Statement.ts +0 -1
  945. package/src/unstable/workers/Worker.ts +2 -1
  946. package/src/unstable/workflow/DurableClock.ts +8 -8
  947. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  948. package/src/unstable/workflow/Workflow.ts +6 -2
  949. package/src/unstable/workflow/WorkflowEngine.ts +185 -2
  950. package/dist/PartitionedSemaphore.d.ts +0 -52
  951. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  952. package/dist/PartitionedSemaphore.js.map +0 -1
  953. package/dist/encoding/Base64.d.ts +0 -67
  954. package/dist/encoding/Base64.d.ts.map +0 -1
  955. package/dist/encoding/Base64.js +0 -146
  956. package/dist/encoding/Base64.js.map +0 -1
  957. package/dist/encoding/Base64Url.d.ts +0 -60
  958. package/dist/encoding/Base64Url.d.ts.map +0 -1
  959. package/dist/encoding/Base64Url.js +0 -89
  960. package/dist/encoding/Base64Url.js.map +0 -1
  961. package/dist/encoding/EncodingError.d.ts +0 -31
  962. package/dist/encoding/EncodingError.d.ts.map +0 -1
  963. package/dist/encoding/EncodingError.js +0 -22
  964. package/dist/encoding/EncodingError.js.map +0 -1
  965. package/dist/encoding/Hex.d.ts +0 -61
  966. package/dist/encoding/Hex.d.ts.map +0 -1
  967. package/dist/encoding/Hex.js +0 -115
  968. package/dist/encoding/Hex.js.map +0 -1
  969. package/dist/encoding/index.d.ts +0 -26
  970. package/dist/encoding/index.d.ts.map +0 -1
  971. package/dist/encoding/index.js +0 -27
  972. package/dist/encoding/index.js.map +0 -1
  973. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  974. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  975. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  976. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  977. package/src/PartitionedSemaphore.ts +0 -182
  978. package/src/encoding/Base64.ts +0 -366
  979. package/src/encoding/Base64Url.ts +0 -104
  980. package/src/encoding/EncodingError.ts +0 -35
  981. package/src/encoding/Hex.ts +0 -390
  982. package/src/encoding/index.ts +0 -31
  983. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
@@ -1,17 +1,17 @@
1
1
  /**
2
2
  * @since 4.0.0
3
3
  */
4
- import * as Data from "../../Data.ts"
4
+ import * as Schema from "../../Schema.ts"
5
5
 
6
6
  const TypeId = "~effect/sql/SqlError"
7
7
 
8
8
  /**
9
9
  * @since 4.0.0
10
10
  */
11
- export class SqlError extends Data.TaggedError("SqlError")<{
12
- cause: unknown
13
- message?: string
14
- }> {
11
+ export class SqlError extends Schema.TaggedErrorClass<SqlError>("effect/sql/SqlError")("SqlError", {
12
+ cause: Schema.Defect,
13
+ message: Schema.optional(Schema.String)
14
+ }) {
15
15
  /**
16
16
  * @since 4.0.0
17
17
  */
@@ -21,10 +21,12 @@ export class SqlError extends Data.TaggedError("SqlError")<{
21
21
  /**
22
22
  * @since 4.0.0
23
23
  */
24
- export class ResultLengthMismatch extends Data.TaggedError("ResultLengthMismatch")<{
25
- readonly expected: number
26
- readonly actual: number
27
- }> {
24
+ export class ResultLengthMismatch
25
+ extends Schema.TaggedErrorClass<ResultLengthMismatch>("effect/sql/ResultLengthMismatch")("ResultLengthMismatch", {
26
+ expected: Schema.Number,
27
+ actual: Schema.Number
28
+ })
29
+ {
28
30
  /**
29
31
  * @since 4.0.0
30
32
  */
@@ -3,7 +3,7 @@
3
3
  * @category models
4
4
  */
5
5
  import type * as Cause from "../../Cause.ts"
6
- import type { DurationInput } from "../../Duration.ts"
6
+ import type { Input } from "../../Duration.ts"
7
7
  import * as Effect from "../../Effect.ts"
8
8
  import { identity } from "../../Function.ts"
9
9
  import * as RequestResolver from "../../RequestResolver.ts"
@@ -69,7 +69,7 @@ export const makeRepository = <
69
69
  const idSchema = Model.fields[options.idColumn] as Schema.Top
70
70
  const idColumn = options.idColumn as string
71
71
 
72
- const insertSchema = SqlSchema.single({
72
+ const insertSchema = SqlSchema.findOne({
73
73
  Request: Model.insert,
74
74
  Result: Model,
75
75
  execute: (request) =>
@@ -107,7 +107,7 @@ select * from ${sql(options.tableName)} where ${sql(idColumn)} = LAST_INSERT_ID(
107
107
  })
108
108
  ) as any
109
109
 
110
- const updateSchema = SqlSchema.single({
110
+ const updateSchema = SqlSchema.findOne({
111
111
  Request: Model.update,
112
112
  Result: Model,
113
113
  execute: (request: any) =>
@@ -159,7 +159,7 @@ select * from ${sql(options.tableName)} where ${sql(idColumn)} = ${request[idCol
159
159
  })
160
160
  ) as any
161
161
 
162
- const findByIdSchema = SqlSchema.single({
162
+ const findByIdSchema = SqlSchema.findOne({
163
163
  Request: idSchema,
164
164
  Result: Model,
165
165
  execute: (id: any) => sql`select * from ${sql(options.tableName)} where ${sql(idColumn)} = ${id}`
@@ -210,7 +210,7 @@ export const makeDataLoaders = <
210
210
  readonly tableName: string
211
211
  readonly spanPrefix: string
212
212
  readonly idColumn: Id
213
- readonly window: DurationInput
213
+ readonly window: Input
214
214
  readonly maxBatchSize?: number | undefined
215
215
  }
216
216
  ): Effect.Effect<
@@ -57,9 +57,9 @@ export const request: {
57
57
  } = function() {
58
58
  if (arguments.length === 1) {
59
59
  const resolver = arguments[0]
60
- return (payload: any) => Effect.request(SqlRequest(payload), Effect.succeed(resolver))
60
+ return (payload: any) => Effect.request(SqlRequest(payload), resolver)
61
61
  }
62
- return Effect.request(SqlRequest(arguments[0]), Effect.succeed(arguments[1]))
62
+ return Effect.request(SqlRequest(arguments[0]), arguments[1])
63
63
  } as any
64
64
 
65
65
  /**
@@ -104,14 +104,14 @@ export const ordered = <Req extends Schema.Top, Res extends Schema.Top, _, E, R>
104
104
  >,
105
105
  SqlClient.TransactionConnection["Service"] | undefined
106
106
  >({
107
- key: (entry) => entry.services.mapUnsafe.get(SqlClient.TransactionConnection.key),
107
+ key: transactionKey,
108
108
  resolver: Effect.fnUntraced(function*(entries) {
109
109
  const inputs = yield* partitionRequests(entries, options.Request)
110
110
  const results = yield* options.execute(inputs as any).pipe(
111
111
  Effect.provideServices(entries[0].services)
112
112
  )
113
113
  if (results.length !== inputs.length) {
114
- return yield* Effect.fail(new ResultLengthMismatch({ expected: inputs.length, actual: results.length }))
114
+ return yield* new ResultLengthMismatch({ expected: inputs.length, actual: results.length })
115
115
  }
116
116
  const decodedResults = yield* decodeArray(results).pipe(
117
117
  Effect.provideServices(entries[0].services)
@@ -160,7 +160,7 @@ export const grouped = <Req extends Schema.Top, Res extends Schema.Top, K, Row,
160
160
  >,
161
161
  SqlClient.TransactionConnection["Service"] | undefined
162
162
  >({
163
- key: (entry) => entry.services.mapUnsafe.get(SqlClient.TransactionConnection.key),
163
+ key: transactionKey,
164
164
  resolver: Effect.fnUntraced(function*(entries) {
165
165
  const inputs = yield* partitionRequests(entries, options.Request)
166
166
  const resultMap = MutableHashMap.empty<K, Arr.NonEmptyArray<Res["Type"]>>()
@@ -226,7 +226,11 @@ export const findById = <Id extends Schema.Top, Res extends Schema.Top, Row, E,
226
226
  >,
227
227
  SqlClient.TransactionConnection["Service"] | undefined
228
228
  >({
229
- key: (entry) => entry.services.mapUnsafe.get(SqlClient.TransactionConnection.key),
229
+ key(entry) {
230
+ const conn = entry.services.mapUnsafe.get(SqlClient.TransactionConnection.key)
231
+ if (!conn) return undefined
232
+ return Equal.byReferenceUnsafe(conn)
233
+ },
230
234
  resolver: Effect.fnUntraced(function*(entries) {
231
235
  const [inputs, idMap] = yield* partitionRequestsById(entries, options.Id)
232
236
  const results = yield* options.execute(inputs as any).pipe(
@@ -279,7 +283,7 @@ const void_ = <Req extends Schema.Top, _, E, R>(
279
283
  >,
280
284
  SqlClient.TransactionConnection["Service"] | undefined
281
285
  >({
282
- key: (entry) => entry.services.mapUnsafe.get(SqlClient.TransactionConnection.key),
286
+ key: transactionKey,
283
287
  resolver: Effect.fnUntraced(function*(entries) {
284
288
  const inputs = yield* partitionRequests(entries, options.Request)
285
289
  yield* options.execute(inputs as any).pipe(
@@ -354,3 +358,9 @@ const partitionRequestsById = function*<In, A, E, R, InE>(
354
358
 
355
359
  return [inputs, byIdMap] as const
356
360
  }
361
+
362
+ function transactionKey<A>(entry: Request.Entry<A>): SqlClient.TransactionConnection["Service"] | undefined {
363
+ const conn = entry.services.mapUnsafe.get(SqlClient.TransactionConnection.key)
364
+ if (!conn) return undefined
365
+ return Equal.byReferenceUnsafe(conn)
366
+ }
@@ -13,7 +13,7 @@ import * as Schema from "../../Schema.ts"
13
13
  * @since 4.0.0
14
14
  * @category constructor
15
15
  */
16
- export const findMany = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
16
+ export const findAll = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
17
17
  options: {
18
18
  readonly Request: Req
19
19
  readonly Result: Res
@@ -21,25 +21,41 @@ export const findMany = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
21
21
  }
22
22
  ) => {
23
23
  const encodeRequest = Schema.encodeEffect(options.Request)
24
- const decode = Schema.decodeUnknownEffect(Schema.Array(options.Result))
24
+ const decode = Schema.decodeUnknownEffect(Schema.mutable(Schema.Array(options.Result)))
25
25
  return (
26
- request: Req["Encoded"]
26
+ request: Req["Type"]
27
+ ): Effect.Effect<
28
+ Array<Res["Type"]>,
29
+ E | Schema.SchemaError,
30
+ Req["EncodingServices"] | Res["DecodingServices"] | R
31
+ > => Effect.flatMap(Effect.flatMap(encodeRequest(request), options.execute), decode)
32
+ }
33
+
34
+ /**
35
+ * Run a sql query with a request schema and a result schema.
36
+ *
37
+ * @since 4.0.0
38
+ * @category constructor
39
+ */
40
+ export const findNonEmpty = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
41
+ options: {
42
+ readonly Request: Req
43
+ readonly Result: Res
44
+ readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>
45
+ }
46
+ ) => {
47
+ const find = findAll(options)
48
+ return (
49
+ request: Req["Type"]
27
50
  ): Effect.Effect<
28
51
  Arr.NonEmptyArray<Res["Type"]>,
29
52
  E | Schema.SchemaError | Cause.NoSuchElementError,
30
53
  Req["EncodingServices"] | Res["DecodingServices"] | R
31
54
  > =>
32
- Effect.flatMap(
33
- Effect.flatMap(encodeRequest(request), options.execute),
34
- (results): Effect.Effect<
35
- Arr.NonEmptyArray<Res["Type"]>,
36
- Schema.SchemaError | Cause.NoSuchElementError,
37
- Req["EncodingServices"] | Res["DecodingServices"]
38
- > =>
39
- Arr.isReadonlyArrayNonEmpty(results)
40
- ? decode(results) as Effect.Effect<Arr.NonEmptyArray<Res["Type"]>, Schema.SchemaError>
41
- : Effect.fail(new Cause.NoSuchElementError())
42
- )
55
+ Effect.flatMap(find(request), (results) =>
56
+ Arr.isArrayNonEmpty(results)
57
+ ? Effect.succeed(results)
58
+ : Effect.fail(new Cause.NoSuchElementError()))
43
59
  }
44
60
 
45
61
  const void_ = <Req extends Schema.Top, E, R>(
@@ -65,7 +81,7 @@ export {
65
81
  }
66
82
 
67
83
  /**
68
- * Run a sql query with a request schema and a result schema and return the first result, if any.
84
+ * Run a sql query with a request schema and a result schema and return the first result.
69
85
  *
70
86
  * @since 4.0.0
71
87
  * @category constructor
@@ -82,17 +98,17 @@ export const findOne = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
82
98
  return (
83
99
  request: Req["Type"]
84
100
  ): Effect.Effect<
85
- Option.Option<Res["Type"]>,
86
- E | Schema.SchemaError,
101
+ Res["Type"],
102
+ E | Schema.SchemaError | Cause.NoSuchElementError,
87
103
  R | Req["EncodingServices"] | Res["DecodingServices"]
88
104
  > =>
89
105
  Effect.flatMap(
90
106
  Effect.flatMap(encodeRequest(request), options.execute),
91
107
  (arr): Effect.Effect<
92
- Option.Option<Res["Type"]>,
93
- Schema.SchemaError,
108
+ Res["Type"],
109
+ Schema.SchemaError | Cause.NoSuchElementError,
94
110
  Req["EncodingServices"] | Res["DecodingServices"]
95
- > => Arr.isReadonlyArrayNonEmpty(arr) ? Effect.asSome(decode(arr[0])) : Effect.succeedNone
111
+ > => Arr.isReadonlyArrayNonEmpty(arr) ? decode(arr[0]) : Effect.fail(new Cause.NoSuchElementError())
96
112
  )
97
113
  }
98
114
 
@@ -102,7 +118,7 @@ export const findOne = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
102
118
  * @since 4.0.0
103
119
  * @category constructor
104
120
  */
105
- export const single = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
121
+ export const findOneOption = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
106
122
  options: {
107
123
  readonly Request: Req
108
124
  readonly Result: Res
@@ -114,16 +130,16 @@ export const single = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
114
130
  return (
115
131
  request: Req["Type"]
116
132
  ): Effect.Effect<
117
- Res["Type"],
118
- E | Schema.SchemaError | Cause.NoSuchElementError,
133
+ Option.Option<Res["Type"]>,
134
+ E | Schema.SchemaError,
119
135
  R | Req["EncodingServices"] | Res["DecodingServices"]
120
136
  > =>
121
137
  Effect.flatMap(
122
138
  Effect.flatMap(encodeRequest(request), options.execute),
123
139
  (arr): Effect.Effect<
124
- Res["Type"],
125
- Schema.SchemaError | Cause.NoSuchElementError,
140
+ Option.Option<Res["Type"]>,
141
+ Schema.SchemaError,
126
142
  Req["EncodingServices"] | Res["DecodingServices"]
127
- > => Arr.isReadonlyArrayNonEmpty(arr) ? decode(arr[0]) : Effect.fail(new Cause.NoSuchElementError())
143
+ > => Arr.isReadonlyArrayNonEmpty(arr) ? Effect.asSome(decode(arr[0])) : Effect.succeedNone
128
144
  )
129
145
  }
@@ -1124,7 +1124,6 @@ const makeUnsafe = <A = Row>(
1124
1124
  }
1125
1125
 
1126
1126
  // TODO: figure out why these diagnostics are emitted
1127
- // @effect-diagnostics-next-line missingEffectContext:off missingEffectError:off
1128
1127
  const StatementProto: Omit<
1129
1128
  StatementImpl<any>,
1130
1129
  "segments" | "acquirer" | "compiler" | "spanAttributes" | "transformRows"
@@ -4,6 +4,7 @@
4
4
  import type * as Deferred from "../../Deferred.ts"
5
5
  import * as Effect from "../../Effect.ts"
6
6
  import * as FiberSet from "../../FiberSet.ts"
7
+ import * as Latch from "../../Latch.ts"
7
8
  import * as Layer from "../../Layer.ts"
8
9
  import * as Scope from "../../Scope.ts"
9
10
  import * as ServiceMap from "../../ServiceMap.ts"
@@ -149,7 +150,7 @@ export const makePlatform = <W>() =>
149
150
  WorkerError | E
150
151
  >().pipe(Scope.provide(scope))
151
152
  const run = yield* FiberSet.runtime(fiberSet)<R>()
152
- const ready = Effect.makeLatchUnsafe()
153
+ const ready = Latch.makeUnsafe()
153
154
  yield* options.listen({
154
155
  port,
155
156
  scope,
@@ -28,11 +28,11 @@ export interface DurableClock {
28
28
  */
29
29
  export const make = (options: {
30
30
  readonly name: string
31
- readonly duration: Duration.DurationInput
31
+ readonly duration: Duration.Input
32
32
  }): DurableClock => ({
33
33
  [TypeId]: TypeId,
34
34
  name: options.name,
35
- duration: Duration.fromDurationInputUnsafe(options.duration),
35
+ duration: Duration.fromInputUnsafe(options.duration),
36
36
  deferred: DurableDeferred.make(`DurableClock/${options.name}`)
37
37
  })
38
38
 
@@ -54,14 +54,14 @@ const InstanceTag = ServiceMap.Service<
54
54
  export const sleep: (
55
55
  options: {
56
56
  readonly name: string
57
- readonly duration: Duration.DurationInput
57
+ readonly duration: Duration.Input
58
58
  /**
59
59
  * If the duration is less than or equal to this threshold, the clock will
60
60
  * be executed in memory.
61
61
  *
62
62
  * Defaults to 60 seconds.
63
63
  */
64
- readonly inMemoryThreshold?: Duration.DurationInput | undefined
64
+ readonly inMemoryThreshold?: Duration.Input | undefined
65
65
  }
66
66
  ) => Effect.Effect<
67
67
  void,
@@ -69,16 +69,16 @@ export const sleep: (
69
69
  WorkflowEngine | WorkflowInstance
70
70
  > = Effect.fnUntraced(function*(options: {
71
71
  readonly name: string
72
- readonly duration: Duration.DurationInput
73
- readonly inMemoryThreshold?: Duration.DurationInput | undefined
72
+ readonly duration: Duration.Input
73
+ readonly inMemoryThreshold?: Duration.Input | undefined
74
74
  }) {
75
- const duration = Duration.fromDurationInputUnsafe(options.duration)
75
+ const duration = Duration.fromInputUnsafe(options.duration)
76
76
  if (Duration.isZero(duration)) {
77
77
  return
78
78
  }
79
79
 
80
80
  const inMemoryThreshold = options.inMemoryThreshold
81
- ? Duration.fromDurationInputUnsafe(options.inMemoryThreshold)
81
+ ? Duration.fromInputUnsafe(options.inMemoryThreshold)
82
82
  : defaultInMemoryThreshold
83
83
 
84
84
  if (Duration.isLessThanOrEqualTo(duration, inMemoryThreshold)) {
@@ -5,7 +5,7 @@ import type { NonEmptyReadonlyArray } from "../../Array.ts"
5
5
  import type * as Brand from "../../Brand.ts"
6
6
  import type * as Cause from "../../Cause.ts"
7
7
  import * as Effect from "../../Effect.ts"
8
- import * as Base64Url from "../../encoding/Base64Url.ts"
8
+ import * as Encoding from "../../Encoding.ts"
9
9
  import * as Exit from "../../Exit.ts"
10
10
  import { dual } from "../../Function.ts"
11
11
  import * as Predicate from "../../Predicate.ts"
@@ -285,7 +285,7 @@ export class TokenParsed extends Schema.Class<TokenParsed>(
285
285
  * @since 4.0.0
286
286
  */
287
287
  get asToken(): Token {
288
- return Base64Url.encode(
288
+ return Encoding.encodeBase64Url(
289
289
  JSON.stringify([this.workflowName, this.executionId, this.deferredName])
290
290
  ) as Token
291
291
  }
@@ -44,7 +44,7 @@ export interface Workflow<
44
44
  * Add an annotation to the workflow.
45
45
  */
46
46
  annotate<I, S>(
47
- key: ServiceMap.Service<I, S>,
47
+ key: ServiceMap.Key<I, S>,
48
48
  value: S
49
49
  ): Workflow<Name, Payload, Success, Error>
50
50
 
@@ -374,7 +374,11 @@ export const make = <
374
374
  return yield* engine.register(self, execute)
375
375
  })
376
376
  ),
377
- executionId: (payload) => makeExecutionId(self.payloadSchema.make(payload)),
377
+ executionId: (payload) =>
378
+ Effect.flatMap(
379
+ Effect.sync(() => self.payloadSchema.makeUnsafe(payload)),
380
+ makeExecutionId
381
+ ),
378
382
  withCompensation
379
383
  }
380
384
 
@@ -4,6 +4,10 @@
4
4
  import type * as Cause from "../../Cause.ts"
5
5
  import * as Effect from "../../Effect.ts"
6
6
  import * as Exit from "../../Exit.ts"
7
+ import * as Fiber from "../../Fiber.ts"
8
+ import * as FiberMap from "../../FiberMap.ts"
9
+ import * as Latch from "../../Latch.ts"
10
+ import * as Layer from "../../Layer.ts"
7
11
  import * as Option from "../../Option.ts"
8
12
  import * as Schedule from "../../Schedule.ts"
9
13
  import * as Schema from "../../Schema.ts"
@@ -224,7 +228,7 @@ export class WorkflowInstance extends ServiceMap.Service<
224
228
 
225
229
  readonly activityState: {
226
230
  count: number
227
- readonly latch: Effect.Latch
231
+ readonly latch: Latch.Latch
228
232
  }
229
233
  }
230
234
  >()("effect/workflow/WorkflowEngine/WorkflowInstance") {
@@ -241,7 +245,7 @@ export class WorkflowInstance extends ServiceMap.Service<
241
245
  cause: undefined,
242
246
  activityState: {
243
247
  count: 0,
244
- latch: Effect.makeLatchUnsafe()
248
+ latch: Latch.makeUnsafe()
245
249
  }
246
250
  })
247
251
  }
@@ -497,4 +501,183 @@ const defaultRetrySchedule = Schedule.exponential(200, 1.5).pipe(
497
501
  Schedule.either(Schedule.spaced(30000))
498
502
  )
499
503
 
504
+ /**
505
+ * A in-memory implementation of the WorkflowEngine. This is useful for testing
506
+ * and local development, but is not suitable for production use as it does not
507
+ * provide durability guarantees.
508
+ *
509
+ * @since 4.0.0
510
+ * @category Layers
511
+ */
512
+ export const layerMemory: Layer.Layer<WorkflowEngine> = Layer.effect(WorkflowEngine)(
513
+ Effect.gen(function*() {
514
+ const scope = yield* Effect.scope
515
+
516
+ const workflows = new Map<string, {
517
+ readonly workflow: Workflow.Any
518
+ readonly execute: (
519
+ payload: object,
520
+ executionId: string
521
+ ) => Effect.Effect<unknown, unknown, WorkflowInstance | WorkflowEngine>
522
+ readonly scope: Scope.Scope
523
+ }>()
524
+
525
+ type ExecutionState = {
526
+ readonly payload: object
527
+ readonly execute: (
528
+ payload: object,
529
+ executionId: string
530
+ ) => Effect.Effect<unknown, unknown, WorkflowInstance | WorkflowEngine>
531
+ readonly parent: string | undefined
532
+ instance: WorkflowInstance["Service"]
533
+ fiber: Fiber.Fiber<Workflow.Result<unknown, unknown>> | undefined
534
+ }
535
+ const executions = new Map<string, ExecutionState>()
536
+
537
+ type ActivityState = {
538
+ exit: Exit.Exit<Workflow.Result<unknown, unknown>> | undefined
539
+ }
540
+ const activities = new Map<string, ActivityState>()
541
+
542
+ const resume = Effect.fnUntraced(function*(executionId: string): Effect.fn.Return<void> {
543
+ const state = executions.get(executionId)
544
+ if (!state) return
545
+ const exit = state.fiber?.pollUnsafe()
546
+ if (exit && exit._tag === "Success" && exit.value._tag === "Complete") {
547
+ return
548
+ } else if (state.fiber && !exit) {
549
+ return
550
+ }
551
+
552
+ const entry = workflows.get(state.instance.workflow.name)!
553
+ const instance = WorkflowInstance.initial(state.instance.workflow, state.instance.executionId)
554
+ instance.interrupted = state.instance.interrupted
555
+ state.instance = instance
556
+ state.fiber = yield* state.execute(state.payload, state.instance.executionId).pipe(
557
+ Effect.onExit(() => {
558
+ if (!instance.interrupted) {
559
+ return Effect.void
560
+ }
561
+ instance.suspended = false
562
+ return Effect.withFiber((fiber) => Effect.interruptible(Fiber.interrupt(fiber)))
563
+ }),
564
+ Workflow.intoResult,
565
+ Effect.provideService(WorkflowInstance, instance),
566
+ Effect.provideService(WorkflowEngine, engine),
567
+ Effect.tap((result) => {
568
+ if (!state.parent || result._tag !== "Complete") {
569
+ return Effect.void
570
+ }
571
+ return Effect.forkIn(resume(state.parent), scope)
572
+ }),
573
+ Effect.forkIn(entry.scope)
574
+ )
575
+ })
576
+
577
+ const deferredResults = new Map<string, Exit.Exit<any, any>>()
578
+
579
+ const clocks = yield* FiberMap.make<string>()
580
+
581
+ const engine = makeUnsafe({
582
+ register: Effect.fnUntraced(function*(workflow, execute) {
583
+ workflows.set(workflow.name, {
584
+ workflow,
585
+ execute,
586
+ scope: yield* Effect.scope
587
+ })
588
+ }),
589
+ execute: Effect.fnUntraced(function*(workflow, options) {
590
+ const entry = workflows.get(workflow.name)
591
+ if (!entry) {
592
+ return yield* Effect.orDie(Effect.fail(`Workflow ${workflow.name} is not registered`))
593
+ }
594
+
595
+ let state = executions.get(options.executionId)
596
+ if (!state) {
597
+ state = {
598
+ payload: options.payload,
599
+ execute: entry.execute,
600
+ instance: WorkflowInstance.initial(workflow, options.executionId),
601
+ fiber: undefined,
602
+ parent: options.parent?.executionId
603
+ }
604
+ executions.set(options.executionId, state)
605
+ yield* resume(options.executionId)
606
+ }
607
+ if (options.discard) return
608
+ return (yield* Fiber.join(state.fiber!)) as any
609
+ }),
610
+ interrupt: Effect.fnUntraced(function*(_workflow, executionId) {
611
+ const state = executions.get(executionId)
612
+ if (!state) return
613
+ state.instance.interrupted = true
614
+ yield* resume(executionId)
615
+ }),
616
+ resume(_workflow, executionId) {
617
+ return resume(executionId)
618
+ },
619
+ activityExecute: Effect.fnUntraced(function*(activity, attempt) {
620
+ const instance = yield* WorkflowInstance
621
+ const activityId = `${instance.executionId}/${activity.name}/${attempt}`
622
+ let state = activities.get(activityId)
623
+ if (state) {
624
+ const exit = state.exit
625
+ if (exit && exit._tag === "Success" && exit.value._tag === "Suspended") {
626
+ state.exit = undefined
627
+ } else if (exit) {
628
+ return yield* exit
629
+ }
630
+ } else {
631
+ state = { exit: undefined }
632
+ activities.set(activityId, state)
633
+ }
634
+ const activityInstance = WorkflowInstance.initial(instance.workflow, instance.executionId)
635
+ activityInstance.interrupted = instance.interrupted
636
+ return yield* activity.executeEncoded.pipe(
637
+ Workflow.intoResult,
638
+ Effect.provideService(WorkflowInstance, activityInstance),
639
+ Effect.onExit((exit) => {
640
+ state.exit = exit
641
+ return Effect.void
642
+ })
643
+ )
644
+ }),
645
+ poll: (_workflow, executionId) =>
646
+ Effect.suspend(() => {
647
+ const state = executions.get(executionId)
648
+ if (!state) {
649
+ return Effect.succeed(undefined)
650
+ }
651
+ const exit = state.fiber?.pollUnsafe()
652
+ return exit ?? Effect.succeed(undefined)
653
+ }),
654
+ deferredResult: Effect.fnUntraced(function*(deferred) {
655
+ const instance = yield* WorkflowInstance
656
+ const id = `${instance.executionId}/${deferred.name}`
657
+ return deferredResults.get(id)
658
+ }),
659
+ deferredDone: (options) =>
660
+ Effect.suspend(() => {
661
+ const id = `${options.executionId}/${options.deferredName}`
662
+ if (deferredResults.has(id)) return Effect.void
663
+ deferredResults.set(id, options.exit)
664
+ return resume(options.executionId)
665
+ }),
666
+ scheduleClock: (workflow, options) =>
667
+ engine.deferredDone(options.clock.deferred, {
668
+ workflowName: workflow.name,
669
+ executionId: options.executionId,
670
+ deferredName: options.clock.deferred.name,
671
+ exit: Exit.void
672
+ }).pipe(
673
+ Effect.delay(options.clock.duration),
674
+ FiberMap.run(clocks, `${options.executionId}/${options.clock.name}`, { onlyIfMissing: true }),
675
+ Effect.asVoid
676
+ )
677
+ })
678
+
679
+ return engine
680
+ })
681
+ )
682
+
500
683
  const toJsonExit = Exit.map((value: any) => value ?? null)
@@ -1,52 +0,0 @@
1
- /**
2
- * @since 3.19.4
3
- * @experimental
4
- */
5
- import * as Effect from "./Effect.ts";
6
- /**
7
- * @since 3.19.4
8
- * @category models
9
- * @experimental
10
- */
11
- export declare const TypeId: TypeId;
12
- /**
13
- * @since 3.19.4
14
- * @category models
15
- * @experimental
16
- */
17
- export type TypeId = "~effect/PartitionedSemaphore";
18
- /**
19
- * A `PartitionedSemaphore` controls access to a shared permit pool while
20
- * tracking waiters by partition key.
21
- *
22
- * Waiting permits are distributed across partitions in round-robin order.
23
- *
24
- * @since 3.19.4
25
- * @category models
26
- * @experimental
27
- */
28
- export interface PartitionedSemaphore<in K> {
29
- readonly [TypeId]: TypeId;
30
- readonly withPermits: (key: K, permits: number) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
31
- }
32
- /**
33
- * Creates a `PartitionedSemaphore` unsafely.
34
- *
35
- * @since 3.19.4
36
- * @category constructors
37
- * @experimental
38
- */
39
- export declare const makeUnsafe: <K = unknown>(options: {
40
- readonly permits: number;
41
- }) => PartitionedSemaphore<K>;
42
- /**
43
- * Creates a `PartitionedSemaphore`.
44
- *
45
- * @since 3.19.4
46
- * @category constructors
47
- * @experimental
48
- */
49
- export declare const make: <K = unknown>(options: {
50
- readonly permits: number;
51
- }) => Effect.Effect<PartitionedSemaphore<K>>;
52
- //# sourceMappingURL=PartitionedSemaphore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PartitionedSemaphore.d.ts","sourceRoot":"","sources":["../src/PartitionedSemaphore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAIrC;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,MAAuC,CAAA;AAE5D;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,8BAA8B,CAAA;AAEnD;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,CACpB,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,MAAM,KACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACzE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,GAAG,OAAO,EAAE,SAAS;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,KAAG,oBAAoB,CAAC,CAAC,CAyHzB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,GAAG,OAAO,EAAE,SAAS;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,KAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAA8C,CAAA"}