effect 4.0.0-beta.2 → 4.0.0-beta.21

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 (881) hide show
  1. package/dist/Array.d.ts +127 -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/Cache.d.ts +2 -2
  6. package/dist/Cache.d.ts.map +1 -1
  7. package/dist/Cache.js +6 -5
  8. package/dist/Cache.js.map +1 -1
  9. package/dist/Cause.d.ts +1 -1
  10. package/dist/Cause.d.ts.map +1 -1
  11. package/dist/Channel.d.ts +116 -30
  12. package/dist/Channel.d.ts.map +1 -1
  13. package/dist/Channel.js +82 -37
  14. package/dist/Channel.js.map +1 -1
  15. package/dist/Chunk.d.ts +54 -247
  16. package/dist/Chunk.d.ts.map +1 -1
  17. package/dist/Chunk.js +36 -67
  18. package/dist/Chunk.js.map +1 -1
  19. package/dist/Combiner.d.ts +280 -13
  20. package/dist/Combiner.d.ts.map +1 -1
  21. package/dist/Combiner.js +198 -7
  22. package/dist/Combiner.js.map +1 -1
  23. package/dist/Config.d.ts +165 -9
  24. package/dist/Config.d.ts.map +1 -1
  25. package/dist/Config.js +62 -7
  26. package/dist/Config.js.map +1 -1
  27. package/dist/ConfigProvider.d.ts +1 -1
  28. package/dist/Cron.d.ts +1 -1
  29. package/dist/Data.d.ts +534 -365
  30. package/dist/Data.d.ts.map +1 -1
  31. package/dist/Data.js +132 -79
  32. package/dist/Data.js.map +1 -1
  33. package/dist/DateTime.d.ts +23 -161
  34. package/dist/DateTime.d.ts.map +1 -1
  35. package/dist/DateTime.js +6 -51
  36. package/dist/DateTime.js.map +1 -1
  37. package/dist/Duration.d.ts +12 -12
  38. package/dist/Duration.d.ts.map +1 -1
  39. package/dist/Duration.js +12 -12
  40. package/dist/Duration.js.map +1 -1
  41. package/dist/Effect.d.ts +829 -692
  42. package/dist/Effect.d.ts.map +1 -1
  43. package/dist/Effect.js +263 -251
  44. package/dist/Effect.js.map +1 -1
  45. package/dist/Encoding.d.ts +194 -0
  46. package/dist/Encoding.d.ts.map +1 -0
  47. package/dist/Encoding.js +352 -0
  48. package/dist/Encoding.js.map +1 -0
  49. package/dist/Equal.d.ts +276 -109
  50. package/dist/Equal.d.ts.map +1 -1
  51. package/dist/Equal.js +124 -48
  52. package/dist/Equal.js.map +1 -1
  53. package/dist/ErrorReporter.d.ts +376 -0
  54. package/dist/ErrorReporter.d.ts.map +1 -0
  55. package/dist/ErrorReporter.js +246 -0
  56. package/dist/ErrorReporter.js.map +1 -0
  57. package/dist/Fiber.d.ts +2 -2
  58. package/dist/Fiber.d.ts.map +1 -1
  59. package/dist/Fiber.js.map +1 -1
  60. package/dist/FileSystem.d.ts +1 -1
  61. package/dist/FileSystem.d.ts.map +1 -1
  62. package/dist/FileSystem.js +5 -5
  63. package/dist/FileSystem.js.map +1 -1
  64. package/dist/Filter.d.ts +30 -34
  65. package/dist/Filter.d.ts.map +1 -1
  66. package/dist/Filter.js +15 -13
  67. package/dist/Filter.js.map +1 -1
  68. package/dist/Formatter.d.ts +131 -47
  69. package/dist/Formatter.d.ts.map +1 -1
  70. package/dist/Formatter.js +229 -51
  71. package/dist/Formatter.js.map +1 -1
  72. package/dist/Graph.d.ts +1 -1
  73. package/dist/Graph.d.ts.map +1 -1
  74. package/dist/Graph.js +5 -8
  75. package/dist/Graph.js.map +1 -1
  76. package/dist/HashMap.d.ts +15 -14
  77. package/dist/HashMap.d.ts.map +1 -1
  78. package/dist/HashMap.js +4 -4
  79. package/dist/HashMap.js.map +1 -1
  80. package/dist/Iterable.d.ts +40 -39
  81. package/dist/Iterable.d.ts.map +1 -1
  82. package/dist/Iterable.js +94 -22
  83. package/dist/Iterable.js.map +1 -1
  84. package/dist/JsonSchema.d.ts +299 -10
  85. package/dist/JsonSchema.d.ts.map +1 -1
  86. package/dist/JsonSchema.js +323 -4
  87. package/dist/JsonSchema.js.map +1 -1
  88. package/dist/Latch.d.ts +109 -0
  89. package/dist/Latch.d.ts.map +1 -0
  90. package/dist/Latch.js +72 -0
  91. package/dist/Latch.js.map +1 -0
  92. package/dist/Layer.d.ts +9 -9
  93. package/dist/Layer.d.ts.map +1 -1
  94. package/dist/Layer.js.map +1 -1
  95. package/dist/LayerMap.d.ts +4 -4
  96. package/dist/LayerMap.d.ts.map +1 -1
  97. package/dist/LogLevel.d.ts +32 -0
  98. package/dist/LogLevel.d.ts.map +1 -1
  99. package/dist/LogLevel.js +28 -100
  100. package/dist/LogLevel.js.map +1 -1
  101. package/dist/Logger.d.ts +29 -95
  102. package/dist/Logger.d.ts.map +1 -1
  103. package/dist/Logger.js +2 -3
  104. package/dist/Logger.js.map +1 -1
  105. package/dist/ManagedRuntime.d.ts +1 -1
  106. package/dist/ManagedRuntime.js +1 -1
  107. package/dist/Metric.d.ts +2 -2
  108. package/dist/Metric.d.ts.map +1 -1
  109. package/dist/Metric.js +1 -1
  110. package/dist/Metric.js.map +1 -1
  111. package/dist/Optic.d.ts +947 -18
  112. package/dist/Optic.d.ts.map +1 -1
  113. package/dist/Optic.js +454 -5
  114. package/dist/Optic.js.map +1 -1
  115. package/dist/Option.d.ts +22 -15
  116. package/dist/Option.d.ts.map +1 -1
  117. package/dist/Option.js +14 -7
  118. package/dist/Option.js.map +1 -1
  119. package/dist/Pipeable.d.ts +17 -0
  120. package/dist/Pipeable.d.ts.map +1 -1
  121. package/dist/Pipeable.js +19 -1
  122. package/dist/Pipeable.js.map +1 -1
  123. package/dist/PlatformError.d.ts +10 -9
  124. package/dist/PlatformError.d.ts.map +1 -1
  125. package/dist/PlatformError.js +2 -2
  126. package/dist/PlatformError.js.map +1 -1
  127. package/dist/Pool.d.ts +6 -4
  128. package/dist/Pool.d.ts.map +1 -1
  129. package/dist/Pool.js +7 -5
  130. package/dist/Pool.js.map +1 -1
  131. package/dist/PubSub.d.ts +3 -2
  132. package/dist/PubSub.d.ts.map +1 -1
  133. package/dist/PubSub.js +3 -2
  134. package/dist/PubSub.js.map +1 -1
  135. package/dist/Pull.d.ts.map +1 -1
  136. package/dist/Pull.js +1 -1
  137. package/dist/Pull.js.map +1 -1
  138. package/dist/Queue.d.ts.map +1 -1
  139. package/dist/Queue.js +0 -1
  140. package/dist/Queue.js.map +1 -1
  141. package/dist/Random.d.ts +35 -1
  142. package/dist/Random.d.ts.map +1 -1
  143. package/dist/Random.js +46 -12
  144. package/dist/Random.js.map +1 -1
  145. package/dist/RcMap.d.ts +2 -2
  146. package/dist/RcMap.d.ts.map +1 -1
  147. package/dist/RcMap.js +1 -1
  148. package/dist/RcMap.js.map +1 -1
  149. package/dist/RcRef.d.ts +1 -1
  150. package/dist/RcRef.d.ts.map +1 -1
  151. package/dist/Record.d.ts +24 -120
  152. package/dist/Record.d.ts.map +1 -1
  153. package/dist/Record.js +21 -41
  154. package/dist/Record.js.map +1 -1
  155. package/dist/Reducer.d.ts +166 -7
  156. package/dist/Reducer.d.ts.map +1 -1
  157. package/dist/Reducer.js +135 -1
  158. package/dist/Reducer.js.map +1 -1
  159. package/dist/References.d.ts +3 -3
  160. package/dist/References.d.ts.map +1 -1
  161. package/dist/Request.d.ts +1 -1
  162. package/dist/Request.d.ts.map +1 -1
  163. package/dist/Request.js +2 -1
  164. package/dist/Request.js.map +1 -1
  165. package/dist/RequestResolver.d.ts +6 -26
  166. package/dist/RequestResolver.d.ts.map +1 -1
  167. package/dist/RequestResolver.js +0 -20
  168. package/dist/RequestResolver.js.map +1 -1
  169. package/dist/Result.d.ts +12 -0
  170. package/dist/Result.d.ts.map +1 -1
  171. package/dist/Result.js +12 -0
  172. package/dist/Result.js.map +1 -1
  173. package/dist/Schedule.d.ts +47 -20
  174. package/dist/Schedule.d.ts.map +1 -1
  175. package/dist/Schedule.js +94 -34
  176. package/dist/Schedule.js.map +1 -1
  177. package/dist/Schema.d.ts +266 -50
  178. package/dist/Schema.d.ts.map +1 -1
  179. package/dist/Schema.js +426 -74
  180. package/dist/Schema.js.map +1 -1
  181. package/dist/SchemaAST.d.ts.map +1 -1
  182. package/dist/SchemaAST.js +7 -6
  183. package/dist/SchemaAST.js.map +1 -1
  184. package/dist/SchemaGetter.d.ts +2 -2
  185. package/dist/SchemaGetter.d.ts.map +1 -1
  186. package/dist/SchemaGetter.js +12 -14
  187. package/dist/SchemaGetter.js.map +1 -1
  188. package/dist/SchemaParser.d.ts +5 -0
  189. package/dist/SchemaParser.d.ts.map +1 -1
  190. package/dist/SchemaParser.js +10 -0
  191. package/dist/SchemaParser.js.map +1 -1
  192. package/dist/SchemaRepresentation.d.ts +44 -43
  193. package/dist/SchemaRepresentation.d.ts.map +1 -1
  194. package/dist/SchemaRepresentation.js +43 -24
  195. package/dist/SchemaRepresentation.js.map +1 -1
  196. package/dist/SchemaTransformation.d.ts +107 -3
  197. package/dist/SchemaTransformation.d.ts.map +1 -1
  198. package/dist/SchemaTransformation.js +159 -4
  199. package/dist/SchemaTransformation.js.map +1 -1
  200. package/dist/ScopedCache.d.ts +2 -2
  201. package/dist/ScopedCache.d.ts.map +1 -1
  202. package/dist/ScopedCache.js +1 -1
  203. package/dist/ScopedCache.js.map +1 -1
  204. package/dist/Semaphore.d.ts +211 -0
  205. package/dist/Semaphore.d.ts.map +1 -0
  206. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  207. package/dist/Semaphore.js.map +1 -0
  208. package/dist/ServiceMap.d.ts +39 -30
  209. package/dist/ServiceMap.d.ts.map +1 -1
  210. package/dist/ServiceMap.js +3 -3
  211. package/dist/ServiceMap.js.map +1 -1
  212. package/dist/Sink.d.ts +13 -13
  213. package/dist/Sink.d.ts.map +1 -1
  214. package/dist/Sink.js +53 -6
  215. package/dist/Sink.js.map +1 -1
  216. package/dist/Stream.d.ts +235 -423
  217. package/dist/Stream.d.ts.map +1 -1
  218. package/dist/Stream.js +124 -77
  219. package/dist/Stream.js.map +1 -1
  220. package/dist/Struct.d.ts +16 -0
  221. package/dist/Struct.d.ts.map +1 -1
  222. package/dist/Struct.js +22 -0
  223. package/dist/Struct.js.map +1 -1
  224. package/dist/SubscriptionRef.d.ts +2 -1
  225. package/dist/SubscriptionRef.d.ts.map +1 -1
  226. package/dist/SubscriptionRef.js +2 -1
  227. package/dist/SubscriptionRef.js.map +1 -1
  228. package/dist/SynchronizedRef.d.ts +2 -1
  229. package/dist/SynchronizedRef.d.ts.map +1 -1
  230. package/dist/SynchronizedRef.js +2 -1
  231. package/dist/SynchronizedRef.js.map +1 -1
  232. package/dist/Trie.d.ts +18 -17
  233. package/dist/Trie.d.ts.map +1 -1
  234. package/dist/Trie.js +5 -5
  235. package/dist/Trie.js.map +1 -1
  236. package/dist/TxChunk.d.ts +37 -37
  237. package/dist/TxChunk.d.ts.map +1 -1
  238. package/dist/TxChunk.js +3 -3
  239. package/dist/TxChunk.js.map +1 -1
  240. package/dist/TxDeferred.d.ts +328 -0
  241. package/dist/TxDeferred.d.ts.map +1 -0
  242. package/dist/TxDeferred.js +196 -0
  243. package/dist/TxDeferred.js.map +1 -0
  244. package/dist/TxHashMap.d.ts +84 -83
  245. package/dist/TxHashMap.d.ts.map +1 -1
  246. package/dist/TxHashMap.js +24 -24
  247. package/dist/TxHashMap.js.map +1 -1
  248. package/dist/TxHashSet.d.ts +35 -35
  249. package/dist/TxHashSet.d.ts.map +1 -1
  250. package/dist/TxHashSet.js +14 -14
  251. package/dist/TxHashSet.js.map +1 -1
  252. package/dist/TxPriorityQueue.d.ts +609 -0
  253. package/dist/TxPriorityQueue.d.ts.map +1 -0
  254. package/dist/TxPriorityQueue.js +415 -0
  255. package/dist/TxPriorityQueue.js.map +1 -0
  256. package/dist/TxPubSub.d.ts +585 -0
  257. package/dist/TxPubSub.d.ts.map +1 -0
  258. package/dist/TxPubSub.js +521 -0
  259. package/dist/TxPubSub.js.map +1 -0
  260. package/dist/TxQueue.d.ts +32 -32
  261. package/dist/TxQueue.d.ts.map +1 -1
  262. package/dist/TxQueue.js +26 -26
  263. package/dist/TxQueue.js.map +1 -1
  264. package/dist/TxReentrantLock.d.ts +523 -0
  265. package/dist/TxReentrantLock.d.ts.map +1 -0
  266. package/dist/TxReentrantLock.js +504 -0
  267. package/dist/TxReentrantLock.js.map +1 -0
  268. package/dist/TxRef.d.ts +34 -34
  269. package/dist/TxRef.d.ts.map +1 -1
  270. package/dist/TxRef.js +21 -14
  271. package/dist/TxRef.js.map +1 -1
  272. package/dist/TxSemaphore.d.ts +8 -8
  273. package/dist/TxSemaphore.d.ts.map +1 -1
  274. package/dist/TxSemaphore.js +7 -7
  275. package/dist/TxSemaphore.js.map +1 -1
  276. package/dist/TxSubscriptionRef.d.ts +508 -0
  277. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  278. package/dist/TxSubscriptionRef.js +293 -0
  279. package/dist/TxSubscriptionRef.js.map +1 -0
  280. package/dist/Types.d.ts +84 -6
  281. package/dist/Types.d.ts.map +1 -1
  282. package/dist/index.d.ts +591 -20
  283. package/dist/index.d.ts.map +1 -1
  284. package/dist/index.js +591 -20
  285. package/dist/index.js.map +1 -1
  286. package/dist/internal/core.js +11 -3
  287. package/dist/internal/core.js.map +1 -1
  288. package/dist/internal/dateTime.js +3 -11
  289. package/dist/internal/dateTime.js.map +1 -1
  290. package/dist/internal/effect.js +263 -99
  291. package/dist/internal/effect.js.map +1 -1
  292. package/dist/internal/hashMap.js +5 -4
  293. package/dist/internal/hashMap.js.map +1 -1
  294. package/dist/internal/random.d.ts +2 -0
  295. package/dist/internal/random.d.ts.map +1 -0
  296. package/dist/internal/random.js +13 -0
  297. package/dist/internal/random.js.map +1 -0
  298. package/dist/internal/rcRef.js +3 -2
  299. package/dist/internal/rcRef.js.map +1 -1
  300. package/dist/internal/request.js +2 -2
  301. package/dist/internal/request.js.map +1 -1
  302. package/dist/internal/schema/annotations.js +2 -0
  303. package/dist/internal/schema/annotations.js.map +1 -1
  304. package/dist/internal/schema/schema.js +1 -0
  305. package/dist/internal/schema/schema.js.map +1 -1
  306. package/dist/internal/trie.js +5 -4
  307. package/dist/internal/trie.js.map +1 -1
  308. package/dist/testing/TestClock.d.ts +7 -6
  309. package/dist/testing/TestClock.d.ts.map +1 -1
  310. package/dist/testing/TestClock.js +6 -4
  311. package/dist/testing/TestClock.js.map +1 -1
  312. package/dist/testing/TestSchema.d.ts +8 -8
  313. package/dist/testing/TestSchema.d.ts.map +1 -1
  314. package/dist/testing/TestSchema.js.map +1 -1
  315. package/dist/unstable/ai/AiError.d.ts +128 -48
  316. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  317. package/dist/unstable/ai/AiError.js +11 -12
  318. package/dist/unstable/ai/AiError.js.map +1 -1
  319. package/dist/unstable/ai/Chat.d.ts +3 -3
  320. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  321. package/dist/unstable/ai/Chat.js +4 -3
  322. package/dist/unstable/ai/Chat.js.map +1 -1
  323. package/dist/unstable/ai/LanguageModel.d.ts +4 -2
  324. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  325. package/dist/unstable/ai/LanguageModel.js +86 -14
  326. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  327. package/dist/unstable/ai/McpSchema.d.ts +163 -87
  328. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  329. package/dist/unstable/ai/McpSchema.js +49 -12
  330. package/dist/unstable/ai/McpSchema.js.map +1 -1
  331. package/dist/unstable/ai/McpServer.d.ts +1 -1
  332. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  333. package/dist/unstable/ai/McpServer.js +35 -7
  334. package/dist/unstable/ai/McpServer.js.map +1 -1
  335. package/dist/unstable/ai/Model.d.ts +25 -7
  336. package/dist/unstable/ai/Model.d.ts.map +1 -1
  337. package/dist/unstable/ai/Model.js +22 -6
  338. package/dist/unstable/ai/Model.js.map +1 -1
  339. package/dist/unstable/ai/Prompt.d.ts +20 -20
  340. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  341. package/dist/unstable/ai/Response.d.ts +26 -26
  342. package/dist/unstable/ai/Response.d.ts.map +1 -1
  343. package/dist/unstable/ai/Response.js +1 -1
  344. package/dist/unstable/ai/Response.js.map +1 -1
  345. package/dist/unstable/ai/Tool.d.ts +19 -3
  346. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  347. package/dist/unstable/ai/Tool.js +14 -9
  348. package/dist/unstable/ai/Tool.js.map +1 -1
  349. package/dist/unstable/ai/index.d.ts +1 -1
  350. package/dist/unstable/ai/index.js +1 -1
  351. package/dist/unstable/cli/CliError.d.ts +5 -5
  352. package/dist/unstable/cli/CliOutput.js +59 -6
  353. package/dist/unstable/cli/CliOutput.js.map +1 -1
  354. package/dist/unstable/cli/Command.d.ts +276 -19
  355. package/dist/unstable/cli/Command.d.ts.map +1 -1
  356. package/dist/unstable/cli/Command.js +234 -36
  357. package/dist/unstable/cli/Command.js.map +1 -1
  358. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  359. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  360. package/dist/unstable/cli/GlobalFlag.js +118 -0
  361. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  362. package/dist/unstable/cli/HelpDoc.d.ts +70 -2
  363. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  364. package/dist/unstable/cli/index.d.ts +4 -0
  365. package/dist/unstable/cli/index.d.ts.map +1 -1
  366. package/dist/unstable/cli/index.js +4 -0
  367. package/dist/unstable/cli/index.js.map +1 -1
  368. package/dist/unstable/cli/internal/command.d.ts +17 -8
  369. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  370. package/dist/unstable/cli/internal/command.js +32 -23
  371. package/dist/unstable/cli/internal/command.js.map +1 -1
  372. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  373. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  374. package/dist/unstable/cli/internal/help.d.ts +33 -0
  375. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  376. package/dist/unstable/cli/internal/help.js +107 -0
  377. package/dist/unstable/cli/internal/help.js.map +1 -0
  378. package/dist/unstable/cli/internal/parser.js +29 -36
  379. package/dist/unstable/cli/internal/parser.js.map +1 -1
  380. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  381. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  382. package/dist/unstable/cluster/ClusterCron.js +1 -1
  383. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  384. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  385. package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
  386. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  387. package/dist/unstable/cluster/Entity.d.ts +7 -6
  388. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  389. package/dist/unstable/cluster/Entity.js.map +1 -1
  390. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  391. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  392. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  393. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  394. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  395. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  396. package/dist/unstable/cluster/Message.d.ts +10 -10
  397. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  398. package/dist/unstable/cluster/MessageStorage.js +2 -1
  399. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  400. package/dist/unstable/cluster/Reply.d.ts +6 -6
  401. package/dist/unstable/cluster/Runner.d.ts +1 -1
  402. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  403. package/dist/unstable/cluster/Runners.js +4 -3
  404. package/dist/unstable/cluster/Runners.js.map +1 -1
  405. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  406. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  407. package/dist/unstable/cluster/Sharding.js +9 -7
  408. package/dist/unstable/cluster/Sharding.js.map +1 -1
  409. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  410. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  411. package/dist/unstable/cluster/ShardingConfig.js +20 -20
  412. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  413. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  414. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  415. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  416. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  417. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  418. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  419. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  420. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  421. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  422. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  423. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  424. package/dist/unstable/encoding/Sse.d.ts +4 -4
  425. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  426. package/dist/unstable/encoding/Sse.js +1 -1
  427. package/dist/unstable/encoding/Sse.js.map +1 -1
  428. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  429. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  430. package/dist/unstable/eventlog/EventLog.js +2 -1
  431. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  432. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  433. package/dist/unstable/http/Cookies.d.ts +3 -3
  434. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  435. package/dist/unstable/http/Cookies.js +2 -2
  436. package/dist/unstable/http/Cookies.js.map +1 -1
  437. package/dist/unstable/http/Headers.d.ts.map +1 -1
  438. package/dist/unstable/http/Headers.js +27 -10
  439. package/dist/unstable/http/Headers.js.map +1 -1
  440. package/dist/unstable/http/HttpBody.d.ts +17 -2
  441. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  442. package/dist/unstable/http/HttpBody.js +28 -1
  443. package/dist/unstable/http/HttpBody.js.map +1 -1
  444. package/dist/unstable/http/HttpClient.d.ts +37 -13
  445. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  446. package/dist/unstable/http/HttpClient.js +4 -4
  447. package/dist/unstable/http/HttpClient.js.map +1 -1
  448. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  449. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  450. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  451. package/dist/unstable/http/HttpClientRequest.js +15 -3
  452. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  453. package/dist/unstable/http/HttpEffect.d.ts +3 -8
  454. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  455. package/dist/unstable/http/HttpEffect.js +42 -56
  456. package/dist/unstable/http/HttpEffect.js.map +1 -1
  457. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  458. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  459. package/dist/unstable/http/HttpMethod.js +3 -3
  460. package/dist/unstable/http/HttpMethod.js.map +1 -1
  461. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  462. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  463. package/dist/unstable/http/HttpMiddleware.js +8 -17
  464. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  465. package/dist/unstable/http/HttpServerError.d.ts +20 -33
  466. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  467. package/dist/unstable/http/HttpServerError.js +37 -44
  468. package/dist/unstable/http/HttpServerError.js.map +1 -1
  469. package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
  470. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  471. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  472. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  473. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  474. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  475. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  476. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  477. package/dist/unstable/http/HttpServerResponse.js +3 -1
  478. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  479. package/dist/unstable/http/Multipart.d.ts +3 -3
  480. package/dist/unstable/http/UrlParams.d.ts +14 -6
  481. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  482. package/dist/unstable/http/UrlParams.js +1 -1
  483. package/dist/unstable/http/UrlParams.js.map +1 -1
  484. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  485. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  486. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  487. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  488. package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
  489. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  490. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  491. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  492. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  493. package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
  494. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  495. package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
  496. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  497. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  498. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  499. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
  500. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  501. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  502. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  503. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  504. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  505. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  506. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  507. package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
  508. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  509. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  510. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
  511. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  512. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  513. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  514. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  515. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  516. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  517. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  518. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  519. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  520. package/dist/unstable/httpapi/OpenApi.js +32 -21
  521. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  522. package/dist/unstable/observability/Otlp.d.ts +12 -12
  523. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  524. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  525. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  526. package/dist/unstable/observability/OtlpExporter.js +1 -1
  527. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  528. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  529. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  530. package/dist/unstable/observability/OtlpLogger.js +7 -4
  531. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  532. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  533. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  534. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  535. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  536. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  537. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  538. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  539. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  540. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  541. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  542. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  543. package/dist/unstable/persistence/PersistedCache.js +2 -1
  544. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  545. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  546. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  547. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  548. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  549. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  550. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  551. package/dist/unstable/persistence/Persistence.js +2 -2
  552. package/dist/unstable/persistence/Persistence.js.map +1 -1
  553. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  554. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  555. package/dist/unstable/persistence/RateLimiter.js +1 -1
  556. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  557. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  558. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  559. package/dist/unstable/process/ChildProcess.js +1 -65
  560. package/dist/unstable/process/ChildProcess.js.map +1 -1
  561. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  562. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  563. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  564. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  565. package/dist/unstable/reactivity/Atom.d.ts +10 -10
  566. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  567. package/dist/unstable/reactivity/Atom.js +16 -13
  568. package/dist/unstable/reactivity/Atom.js.map +1 -1
  569. package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
  570. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  571. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  572. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  573. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  574. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  575. package/dist/unstable/reactivity/AtomRegistry.js +24 -7
  576. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  577. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  578. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  579. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  580. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  581. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  582. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  583. package/dist/unstable/reactivity/Hydration.js +76 -0
  584. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  585. package/dist/unstable/reactivity/index.d.ts +4 -0
  586. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  587. package/dist/unstable/reactivity/index.js +4 -0
  588. package/dist/unstable/reactivity/index.js.map +1 -1
  589. package/dist/unstable/rpc/Rpc.d.ts +4 -4
  590. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  591. package/dist/unstable/rpc/Rpc.js.map +1 -1
  592. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  593. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  594. package/dist/unstable/rpc/RpcClient.js +6 -13
  595. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  596. package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
  597. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  598. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  599. package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
  600. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  601. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  602. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  603. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  604. package/dist/unstable/rpc/RpcSchema.js +14 -0
  605. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  606. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  607. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  608. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  609. package/dist/unstable/rpc/RpcServer.d.ts +0 -7
  610. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  611. package/dist/unstable/rpc/RpcServer.js +15 -15
  612. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  613. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  614. package/dist/unstable/rpc/Utils.js +2 -1
  615. package/dist/unstable/rpc/Utils.js.map +1 -1
  616. package/dist/unstable/schema/Model.d.ts +1 -1
  617. package/dist/unstable/schema/Model.d.ts.map +1 -1
  618. package/dist/unstable/schema/VariantSchema.d.ts +3 -3
  619. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  620. package/dist/unstable/schema/VariantSchema.js +3 -3
  621. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  622. package/dist/unstable/socket/Socket.d.ts +4 -4
  623. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  624. package/dist/unstable/socket/Socket.js +6 -5
  625. package/dist/unstable/socket/Socket.js.map +1 -1
  626. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  627. package/dist/unstable/sql/Migrator.d.ts +1 -1
  628. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  629. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  630. package/dist/unstable/sql/SqlError.d.ts +14 -14
  631. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  632. package/dist/unstable/sql/SqlError.js +9 -3
  633. package/dist/unstable/sql/SqlError.js.map +1 -1
  634. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  635. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  636. package/dist/unstable/sql/SqlModel.js +3 -3
  637. package/dist/unstable/sql/SqlModel.js.map +1 -1
  638. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  639. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  640. package/dist/unstable/sql/SqlSchema.js +17 -7
  641. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  642. package/dist/unstable/sql/Statement.js +0 -1
  643. package/dist/unstable/sql/Statement.js.map +1 -1
  644. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  645. package/dist/unstable/workers/Worker.js +2 -1
  646. package/dist/unstable/workers/Worker.js.map +1 -1
  647. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  648. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  649. package/dist/unstable/workflow/DurableClock.js +3 -3
  650. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  651. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  652. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  653. package/dist/unstable/workflow/Workflow.d.ts +3 -3
  654. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  655. package/dist/unstable/workflow/Workflow.js +1 -1
  656. package/dist/unstable/workflow/Workflow.js.map +1 -1
  657. package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
  658. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  659. package/dist/unstable/workflow/WorkflowEngine.js +137 -1
  660. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  661. package/package.json +2 -2
  662. package/src/Array.ts +190 -342
  663. package/src/Cache.ts +9 -8
  664. package/src/Cause.ts +1 -1
  665. package/src/Channel.ts +554 -138
  666. package/src/Chunk.ts +81 -268
  667. package/src/Combiner.ts +280 -13
  668. package/src/Config.ts +183 -21
  669. package/src/Data.ts +538 -374
  670. package/src/DateTime.ts +24 -164
  671. package/src/Duration.ts +15 -15
  672. package/src/Effect.ts +991 -800
  673. package/src/Encoding.ts +879 -0
  674. package/src/Equal.ts +278 -111
  675. package/src/ErrorReporter.ts +459 -0
  676. package/src/Fiber.ts +9 -2
  677. package/src/FileSystem.ts +7 -8
  678. package/src/Filter.ts +48 -58
  679. package/src/Formatter.ts +253 -51
  680. package/src/Graph.ts +24 -11
  681. package/src/HashMap.ts +15 -14
  682. package/src/Iterable.ts +105 -50
  683. package/src/JsonSchema.ts +383 -10
  684. package/src/Latch.ts +112 -0
  685. package/src/Layer.ts +11 -15
  686. package/src/LayerMap.ts +5 -5
  687. package/src/LogLevel.ts +37 -0
  688. package/src/Logger.ts +33 -100
  689. package/src/ManagedRuntime.ts +1 -1
  690. package/src/Metric.ts +4 -4
  691. package/src/Optic.ts +948 -19
  692. package/src/Option.ts +30 -20
  693. package/src/Pipeable.ts +32 -1
  694. package/src/PlatformError.ts +5 -5
  695. package/src/Pool.ts +13 -11
  696. package/src/PubSub.ts +10 -9
  697. package/src/Pull.ts +1 -1
  698. package/src/Queue.ts +0 -1
  699. package/src/Random.ts +51 -14
  700. package/src/RcMap.ts +5 -5
  701. package/src/RcRef.ts +1 -1
  702. package/src/Record.ts +43 -152
  703. package/src/Reducer.ts +166 -7
  704. package/src/References.ts +4 -4
  705. package/src/Request.ts +3 -2
  706. package/src/RequestResolver.ts +9 -29
  707. package/src/Result.ts +13 -0
  708. package/src/Schedule.ts +318 -160
  709. package/src/Schema.ts +661 -116
  710. package/src/SchemaAST.ts +7 -6
  711. package/src/SchemaGetter.ts +12 -14
  712. package/src/SchemaParser.ts +11 -0
  713. package/src/SchemaRepresentation.ts +43 -24
  714. package/src/SchemaTransformation.ts +189 -4
  715. package/src/ScopedCache.ts +3 -3
  716. package/src/Semaphore.ts +356 -0
  717. package/src/ServiceMap.ts +47 -38
  718. package/src/Sink.ts +78 -26
  719. package/src/Stream.ts +566 -601
  720. package/src/Struct.ts +26 -0
  721. package/src/SubscriptionRef.ts +3 -2
  722. package/src/SynchronizedRef.ts +3 -2
  723. package/src/Trie.ts +18 -17
  724. package/src/TxChunk.ts +72 -53
  725. package/src/TxDeferred.ts +394 -0
  726. package/src/TxHashMap.ts +332 -285
  727. package/src/TxHashSet.ts +111 -116
  728. package/src/TxPriorityQueue.ts +767 -0
  729. package/src/TxPubSub.ts +789 -0
  730. package/src/TxQueue.ts +241 -251
  731. package/src/TxReentrantLock.ts +753 -0
  732. package/src/TxRef.ts +50 -38
  733. package/src/TxSemaphore.ts +29 -32
  734. package/src/TxSubscriptionRef.ts +639 -0
  735. package/src/Types.ts +78 -2
  736. package/src/index.ts +600 -21
  737. package/src/internal/core.ts +12 -5
  738. package/src/internal/dateTime.ts +9 -30
  739. package/src/internal/effect.ts +744 -265
  740. package/src/internal/hashMap.ts +9 -7
  741. package/src/internal/random.ts +20 -0
  742. package/src/internal/rcRef.ts +4 -3
  743. package/src/internal/request.ts +2 -2
  744. package/src/internal/schema/annotations.ts +2 -0
  745. package/src/internal/schema/schema.ts +1 -0
  746. package/src/internal/trie.ts +16 -9
  747. package/src/testing/TestClock.ts +13 -11
  748. package/src/testing/TestSchema.ts +10 -10
  749. package/src/unstable/ai/AiError.ts +97 -44
  750. package/src/unstable/ai/Chat.ts +12 -11
  751. package/src/unstable/ai/LanguageModel.ts +129 -25
  752. package/src/unstable/ai/McpSchema.ts +59 -13
  753. package/src/unstable/ai/McpServer.ts +48 -9
  754. package/src/unstable/ai/Model.ts +40 -9
  755. package/src/unstable/ai/Prompt.ts +37 -37
  756. package/src/unstable/ai/Response.ts +25 -25
  757. package/src/unstable/ai/Tool.ts +19 -13
  758. package/src/unstable/ai/index.ts +1 -1
  759. package/src/unstable/cli/CliOutput.ts +75 -6
  760. package/src/unstable/cli/Command.ts +501 -60
  761. package/src/unstable/cli/GlobalFlag.ts +243 -0
  762. package/src/unstable/cli/HelpDoc.ts +80 -2
  763. package/src/unstable/cli/index.ts +5 -0
  764. package/src/unstable/cli/internal/command.ts +50 -34
  765. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  766. package/src/unstable/cli/internal/help.ts +146 -0
  767. package/src/unstable/cli/internal/parser.ts +33 -54
  768. package/src/unstable/cluster/ClusterCron.ts +2 -2
  769. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
  770. package/src/unstable/cluster/Entity.ts +11 -10
  771. package/src/unstable/cluster/EntityResource.ts +4 -4
  772. package/src/unstable/cluster/Envelope.ts +1 -1
  773. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  774. package/src/unstable/cluster/MessageStorage.ts +3 -5
  775. package/src/unstable/cluster/Runners.ts +6 -5
  776. package/src/unstable/cluster/Sharding.ts +12 -10
  777. package/src/unstable/cluster/ShardingConfig.ts +30 -31
  778. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  779. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  780. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  781. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  782. package/src/unstable/encoding/Sse.ts +3 -5
  783. package/src/unstable/eventlog/EventLog.ts +2 -1
  784. package/src/unstable/http/Cookies.ts +3 -3
  785. package/src/unstable/http/Headers.ts +28 -13
  786. package/src/unstable/http/HttpBody.ts +42 -1
  787. package/src/unstable/http/HttpClient.ts +58 -23
  788. package/src/unstable/http/HttpClientRequest.ts +38 -13
  789. package/src/unstable/http/HttpEffect.ts +46 -68
  790. package/src/unstable/http/HttpMethod.ts +16 -4
  791. package/src/unstable/http/HttpMiddleware.ts +9 -24
  792. package/src/unstable/http/HttpServerError.ts +42 -45
  793. package/src/unstable/http/HttpServerRequest.ts +1 -1
  794. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  795. package/src/unstable/http/HttpServerResponse.ts +4 -2
  796. package/src/unstable/http/Multipart.ts +2 -2
  797. package/src/unstable/http/UrlParams.ts +20 -5
  798. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  799. package/src/unstable/httpapi/HttpApi.ts +5 -5
  800. package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
  801. package/src/unstable/httpapi/HttpApiClient.ts +14 -6
  802. package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
  803. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  804. package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
  805. package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
  806. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  807. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  808. package/src/unstable/httpapi/OpenApi.ts +41 -23
  809. package/src/unstable/observability/Otlp.ts +12 -12
  810. package/src/unstable/observability/OtlpExporter.ts +3 -3
  811. package/src/unstable/observability/OtlpLogger.ts +13 -9
  812. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  813. package/src/unstable/observability/OtlpTracer.ts +4 -4
  814. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  815. package/src/unstable/persistence/Persistable.ts +2 -2
  816. package/src/unstable/persistence/PersistedCache.ts +20 -9
  817. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  818. package/src/unstable/persistence/Persistence.ts +3 -3
  819. package/src/unstable/persistence/RateLimiter.ts +4 -4
  820. package/src/unstable/process/ChildProcess.ts +6 -208
  821. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  822. package/src/unstable/reactivity/Atom.ts +27 -25
  823. package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
  824. package/src/unstable/reactivity/AtomRegistry.ts +31 -7
  825. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  826. package/src/unstable/reactivity/Hydration.ts +112 -0
  827. package/src/unstable/reactivity/index.ts +5 -0
  828. package/src/unstable/rpc/Rpc.ts +6 -6
  829. package/src/unstable/rpc/RpcClient.ts +12 -54
  830. package/src/unstable/rpc/RpcGroup.ts +4 -4
  831. package/src/unstable/rpc/RpcMiddleware.ts +3 -3
  832. package/src/unstable/rpc/RpcSchema.ts +17 -0
  833. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  834. package/src/unstable/rpc/RpcServer.ts +21 -30
  835. package/src/unstable/rpc/Utils.ts +2 -1
  836. package/src/unstable/schema/VariantSchema.ts +6 -6
  837. package/src/unstable/socket/Socket.ts +16 -17
  838. package/src/unstable/sql/SqlClient.ts +1 -1
  839. package/src/unstable/sql/SqlError.ts +11 -9
  840. package/src/unstable/sql/SqlModel.ts +5 -5
  841. package/src/unstable/sql/SqlSchema.ts +41 -25
  842. package/src/unstable/sql/Statement.ts +0 -1
  843. package/src/unstable/workers/Worker.ts +2 -1
  844. package/src/unstable/workflow/DurableClock.ts +8 -8
  845. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  846. package/src/unstable/workflow/Workflow.ts +6 -2
  847. package/src/unstable/workflow/WorkflowEngine.ts +185 -2
  848. package/dist/PartitionedSemaphore.d.ts +0 -52
  849. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  850. package/dist/PartitionedSemaphore.js.map +0 -1
  851. package/dist/encoding/Base64.d.ts +0 -67
  852. package/dist/encoding/Base64.d.ts.map +0 -1
  853. package/dist/encoding/Base64.js +0 -146
  854. package/dist/encoding/Base64.js.map +0 -1
  855. package/dist/encoding/Base64Url.d.ts +0 -60
  856. package/dist/encoding/Base64Url.d.ts.map +0 -1
  857. package/dist/encoding/Base64Url.js +0 -89
  858. package/dist/encoding/Base64Url.js.map +0 -1
  859. package/dist/encoding/EncodingError.d.ts +0 -31
  860. package/dist/encoding/EncodingError.d.ts.map +0 -1
  861. package/dist/encoding/EncodingError.js +0 -22
  862. package/dist/encoding/EncodingError.js.map +0 -1
  863. package/dist/encoding/Hex.d.ts +0 -61
  864. package/dist/encoding/Hex.d.ts.map +0 -1
  865. package/dist/encoding/Hex.js +0 -115
  866. package/dist/encoding/Hex.js.map +0 -1
  867. package/dist/encoding/index.d.ts +0 -26
  868. package/dist/encoding/index.d.ts.map +0 -1
  869. package/dist/encoding/index.js +0 -27
  870. package/dist/encoding/index.js.map +0 -1
  871. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  872. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  873. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  874. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  875. package/src/PartitionedSemaphore.ts +0 -182
  876. package/src/encoding/Base64.ts +0 -366
  877. package/src/encoding/Base64Url.ts +0 -104
  878. package/src/encoding/EncodingError.ts +0 -35
  879. package/src/encoding/Hex.ts +0 -390
  880. package/src/encoding/index.ts +0 -31
  881. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
package/src/JsonSchema.ts CHANGED
@@ -1,4 +1,87 @@
1
1
  /**
2
+ * Convert JSON Schema documents between dialects (Draft-07, Draft-2020-12,
3
+ * OpenAPI 3.0, OpenAPI 3.1). All dialects are normalized to an internal
4
+ * `Document<"draft-2020-12">` representation before optional conversion to
5
+ * an output dialect.
6
+ *
7
+ * ## Mental model
8
+ *
9
+ * - **JsonSchema** — a plain object with string keys; represents any single
10
+ * JSON Schema node.
11
+ * - **Dialect** — one of `"draft-07"`, `"draft-2020-12"`, `"openapi-3.1"`,
12
+ * or `"openapi-3.0"`.
13
+ * - **Document** — a structured container holding a root `schema`, its
14
+ * companion `definitions`, and the target `dialect`. Definitions are
15
+ * stored separately from the root schema so they can be relocated when
16
+ * converting between dialects.
17
+ * - **MultiDocument** — same as `Document` but carries multiple root
18
+ * schemas (at least one). Useful when generating several schemas that
19
+ * share a single definitions pool.
20
+ * - **Definitions** — a `Record<string, JsonSchema>` keyed by definition
21
+ * name. The ref pointer prefix depends on the dialect.
22
+ * - **`from*` functions** — parse a raw JSON Schema object into the
23
+ * canonical `Document<"draft-2020-12">`.
24
+ * - **`to*` functions** — convert from the canonical representation to a
25
+ * specific output dialect.
26
+ *
27
+ * ## Common tasks
28
+ *
29
+ * - Parse a Draft-07 schema → {@link fromSchemaDraft07}
30
+ * - Parse a Draft-2020-12 schema → {@link fromSchemaDraft2020_12}
31
+ * - Parse an OpenAPI 3.1 schema → {@link fromSchemaOpenApi3_1}
32
+ * - Parse an OpenAPI 3.0 schema → {@link fromSchemaOpenApi3_0}
33
+ * - Convert to Draft-07 output → {@link toDocumentDraft07}
34
+ * - Convert to OpenAPI 3.1 output → {@link toMultiDocumentOpenApi3_1}
35
+ * - Resolve a `$ref` against definitions → {@link resolve$ref}
36
+ * - Inline the root `$ref` of a document → {@link resolveTopLevel$ref}
37
+ *
38
+ * ## Gotchas
39
+ *
40
+ * - All `from*` functions normalize to `Document<"draft-2020-12">`
41
+ * regardless of the input dialect.
42
+ * - Unsupported or unrecognized JSON Schema keywords are silently dropped
43
+ * during conversion.
44
+ * - Draft-07 tuple syntax (`items` as array + `additionalItems`) is
45
+ * converted to 2020-12 form (`prefixItems` + `items`), and vice-versa.
46
+ * - OpenAPI 3.0 `nullable: true` is expanded into `type` arrays or
47
+ * `anyOf` unions. The `nullable` keyword is removed.
48
+ * - OpenAPI 3.0 singular `example` is converted to `examples` (array).
49
+ * - {@link resolve$ref} only looks up the last segment of the ref path in
50
+ * the definitions map; it does not follow arbitrary JSON Pointer paths.
51
+ *
52
+ * ## Quickstart
53
+ *
54
+ * **Example** (Parse a Draft-07 schema and convert to Draft-07 output)
55
+ *
56
+ * ```ts
57
+ * import { JsonSchema } from "effect"
58
+ *
59
+ * const raw: JsonSchema.JsonSchema = {
60
+ * type: "object",
61
+ * properties: {
62
+ * name: { type: "string" }
63
+ * },
64
+ * required: ["name"]
65
+ * }
66
+ *
67
+ * // Parse into canonical form
68
+ * const doc = JsonSchema.fromSchemaDraft07(raw)
69
+ *
70
+ * // Convert back to Draft-07
71
+ * const draft07 = JsonSchema.toDocumentDraft07(doc)
72
+ *
73
+ * console.log(draft07.dialect) // "draft-07"
74
+ * console.log(draft07.schema) // { type: "object", properties: { name: { type: "string" } }, required: ["name"] }
75
+ * ```
76
+ *
77
+ * ## See also
78
+ *
79
+ * - {@link Document}
80
+ * - {@link MultiDocument}
81
+ * - {@link fromSchemaDraft07}
82
+ * - {@link toDocumentDraft07}
83
+ * - {@link resolve$ref}
84
+ *
2
85
  * @since 4.0.0
3
86
  */
4
87
  import * as Arr from "./Array.ts"
@@ -7,6 +90,12 @@ import * as Predicate from "./Predicate.ts"
7
90
  import * as Rec from "./Record.ts"
8
91
 
9
92
  /**
93
+ * A plain object representing a single JSON Schema node.
94
+ *
95
+ * This is an open record type (`[x: string]: unknown`) so it can hold any
96
+ * JSON Schema keyword. Most functions in this module accept or return this
97
+ * type.
98
+ *
10
99
  * @since 4.0.0
11
100
  */
12
101
  export interface JsonSchema {
@@ -14,27 +103,65 @@ export interface JsonSchema {
14
103
  }
15
104
 
16
105
  /**
106
+ * The set of JSON Schema dialects supported by this module.
107
+ *
108
+ * - `"draft-07"` — JSON Schema Draft-07
109
+ * - `"draft-2020-12"` — JSON Schema Draft 2020-12 (canonical internal form)
110
+ * - `"openapi-3.1"` — OpenAPI 3.1 (uses Draft 2020-12 as its schema dialect)
111
+ * - `"openapi-3.0"` — OpenAPI 3.0 (uses a Draft-04/07 subset with extensions)
112
+ *
17
113
  * @since 4.0.0
18
114
  */
19
115
  export type Dialect = "draft-07" | "draft-2020-12" | "openapi-3.1" | "openapi-3.0"
20
116
 
21
117
  /**
118
+ * The JSON Schema primitive type names.
119
+ *
22
120
  * @since 4.0.0
23
121
  */
24
122
  export type Type = "string" | "number" | "boolean" | "array" | "object" | "null" | "integer"
25
123
 
26
124
  /**
125
+ * A record of named JSON Schema definitions, keyed by definition name.
126
+ *
27
127
  * @since 4.0.0
28
128
  */
29
129
  export interface Definitions extends Record<string, JsonSchema> {}
30
130
 
31
131
  /**
32
- * Internal representation:
33
- * - `schema` is the root schema *without* the root definitions collection.
34
- * - Root definitions are stored in `definitions` and referenced via:
35
- * - `#/$defs/<name>` for Draft-2020-12
36
- * - `#/definitions/<name>` for Draft-07
37
- * - `#/components/schemas/<name>` for OpenAPI 3.1 and OpenAPI 3.0
132
+ * A structured container for a single JSON Schema and its associated
133
+ * definitions.
134
+ *
135
+ * - Use when you need to carry a root schema together with its
136
+ * shared definitions.
137
+ * - Use when converting between dialects via the `from*` / `to*` functions.
138
+ *
139
+ * The `schema` field holds the root schema *without* the definitions
140
+ * collection. Root definitions are stored separately in `definitions` and
141
+ * referenced via:
142
+ * - `#/$defs/<name>` for Draft-2020-12
143
+ * - `#/definitions/<name>` for Draft-07
144
+ * - `#/components/schemas/<name>` for OpenAPI 3.1 and OpenAPI 3.0
145
+ *
146
+ * **Example** (Inspecting a parsed document)
147
+ *
148
+ * ```ts
149
+ * import { JsonSchema } from "effect"
150
+ *
151
+ * const raw: JsonSchema.JsonSchema = {
152
+ * type: "string",
153
+ * $defs: { Trimmed: { type: "string", minLength: 1 } }
154
+ * }
155
+ *
156
+ * const doc = JsonSchema.fromSchemaDraft2020_12(raw)
157
+ *
158
+ * console.log(doc.dialect) // "draft-2020-12"
159
+ * console.log(doc.schema) // { type: "string" }
160
+ * console.log(doc.definitions) // { Trimmed: { type: "string", minLength: 1 } }
161
+ * ```
162
+ *
163
+ * @see {@link MultiDocument}
164
+ * @see {@link fromSchemaDraft2020_12}
38
165
  *
39
166
  * @since 4.0.0
40
167
  */
@@ -45,6 +172,16 @@ export interface Document<D extends Dialect> {
45
172
  }
46
173
 
47
174
  /**
175
+ * Like {@link Document}, but carries multiple root schemas that share a
176
+ * single definitions pool. The `schemas` tuple is non-empty (at least one
177
+ * element).
178
+ *
179
+ * - Use when generating several schemas (e.g. request body + response body)
180
+ * that reference the same set of definitions.
181
+ *
182
+ * @see {@link Document}
183
+ * @see {@link toMultiDocumentOpenApi3_1}
184
+ *
48
185
  * @since 4.0.0
49
186
  */
50
187
  export interface MultiDocument<D extends Dialect> {
@@ -54,11 +191,15 @@ export interface MultiDocument<D extends Dialect> {
54
191
  }
55
192
 
56
193
  /**
194
+ * The `$schema` meta-schema URI for JSON Schema Draft-07.
195
+ *
57
196
  * @since 4.0.0
58
197
  */
59
198
  export const META_SCHEMA_URI_DRAFT_07 = "http://json-schema.org/draft-07/schema"
60
199
 
61
200
  /**
201
+ * The `$schema` meta-schema URI for JSON Schema Draft 2020-12.
202
+ *
62
203
  * @since 4.0.0
63
204
  */
64
205
  export const META_SCHEMA_URI_DRAFT_2020_12 = "https://json-schema.org/draft/2020-12/schema"
@@ -68,6 +209,40 @@ const RE_DEFS = /^#\/\$defs(?=\/|$)/
68
209
  const RE_COMPONENTS_SCHEMAS = /^#\/components\/schemas(?=\/|$)/
69
210
 
70
211
  /**
212
+ * Parses a raw Draft-07 JSON Schema into a `Document<"draft-2020-12">`.
213
+ *
214
+ * - Use when you have a JSON Schema that follows Draft-07 conventions.
215
+ * - Converts Draft-07 tuple syntax (`items` as array + `additionalItems`)
216
+ * to Draft-2020-12 form (`prefixItems` + `items`).
217
+ * - Rewrites `#/definitions/...` refs to `#/$defs/...`.
218
+ * - Extracts root-level `definitions` into the `definitions` field.
219
+ * - Does not mutate the input. Allocates a new `Document`.
220
+ * - Unsupported keywords (e.g. `if`/`then`/`else`, `$id`) are dropped.
221
+ *
222
+ * **Example** (Parsing a Draft-07 schema)
223
+ *
224
+ * ```ts
225
+ * import { JsonSchema } from "effect"
226
+ *
227
+ * const raw: JsonSchema.JsonSchema = {
228
+ * type: "object",
229
+ * properties: {
230
+ * tags: {
231
+ * type: "array",
232
+ * items: { type: "string" }
233
+ * }
234
+ * }
235
+ * }
236
+ *
237
+ * const doc = JsonSchema.fromSchemaDraft07(raw)
238
+ * console.log(doc.dialect) // "draft-2020-12"
239
+ * console.log(doc.schema.properties) // { tags: { type: "array", items: { type: "string" } } }
240
+ * ```
241
+ *
242
+ * @see {@link fromSchemaDraft2020_12}
243
+ * @see {@link fromSchemaOpenApi3_0}
244
+ * @see {@link toDocumentDraft07}
245
+ *
71
246
  * @since 4.0.0
72
247
  */
73
248
  export function fromSchemaDraft07(js: JsonSchema): Document<"draft-2020-12"> {
@@ -179,6 +354,32 @@ export function fromSchemaDraft07(js: JsonSchema): Document<"draft-2020-12"> {
179
354
  }
180
355
 
181
356
  /**
357
+ * Parses a raw Draft-2020-12 JSON Schema into a `Document<"draft-2020-12">`.
358
+ *
359
+ * - Use when you already have a schema in Draft-2020-12 format.
360
+ * - Separates `$defs` from the root schema into the `definitions` field.
361
+ * - Does not mutate the input. Allocates a new `Document`.
362
+ * - Unlike {@link fromSchemaDraft07}, this performs no keyword rewriting.
363
+ *
364
+ * **Example** (Parsing a Draft-2020-12 schema)
365
+ *
366
+ * ```ts
367
+ * import { JsonSchema } from "effect"
368
+ *
369
+ * const raw: JsonSchema.JsonSchema = {
370
+ * type: "number",
371
+ * minimum: 0,
372
+ * $defs: { PositiveInt: { type: "integer", minimum: 1 } }
373
+ * }
374
+ *
375
+ * const doc = JsonSchema.fromSchemaDraft2020_12(raw)
376
+ * console.log(doc.schema) // { type: "number", minimum: 0 }
377
+ * console.log(doc.definitions) // { PositiveInt: { type: "integer", minimum: 1 } }
378
+ * ```
379
+ *
380
+ * @see {@link fromSchemaDraft07}
381
+ * @see {@link fromSchemaOpenApi3_1}
382
+ *
182
383
  * @since 4.0.0
183
384
  */
184
385
  export function fromSchemaDraft2020_12(js: JsonSchema): Document<"draft-2020-12"> {
@@ -191,6 +392,33 @@ export function fromSchemaDraft2020_12(js: JsonSchema): Document<"draft-2020-12"
191
392
  }
192
393
 
193
394
  /**
395
+ * Parses a raw OpenAPI 3.1 JSON Schema into a `Document<"draft-2020-12">`.
396
+ *
397
+ * - Use when consuming schemas from an OpenAPI 3.1 specification.
398
+ * - Rewrites `#/components/schemas/...` refs to `#/$defs/...`.
399
+ * - Delegates to {@link fromSchemaDraft2020_12} after rewriting refs.
400
+ * - Does not mutate the input. Allocates a new `Document`.
401
+ *
402
+ * **Example** (Parsing an OpenAPI 3.1 schema)
403
+ *
404
+ * ```ts
405
+ * import { JsonSchema } from "effect"
406
+ *
407
+ * const raw: JsonSchema.JsonSchema = {
408
+ * type: "object",
409
+ * properties: {
410
+ * user: { $ref: "#/components/schemas/User" }
411
+ * }
412
+ * }
413
+ *
414
+ * const doc = JsonSchema.fromSchemaOpenApi3_1(raw)
415
+ * // $ref is rewritten to Draft-2020-12 form
416
+ * console.log(doc.schema.properties) // { user: { $ref: "#/$defs/User" } }
417
+ * ```
418
+ *
419
+ * @see {@link fromSchemaOpenApi3_0}
420
+ * @see {@link toMultiDocumentOpenApi3_1}
421
+ *
194
422
  * @since 4.0.0
195
423
  */
196
424
  export function fromSchemaOpenApi3_1(js: JsonSchema): Document<"draft-2020-12"> {
@@ -199,6 +427,33 @@ export function fromSchemaOpenApi3_1(js: JsonSchema): Document<"draft-2020-12">
199
427
  }
200
428
 
201
429
  /**
430
+ * Parses a raw OpenAPI 3.0 JSON Schema into a `Document<"draft-2020-12">`.
431
+ *
432
+ * - Use when consuming schemas from an OpenAPI 3.0 specification.
433
+ * - Handles OpenAPI 3.0 extensions: `nullable`, singular `example`,
434
+ * boolean `exclusiveMinimum`/`exclusiveMaximum`.
435
+ * - Normalizes the schema to Draft-07 first, then converts to
436
+ * Draft-2020-12 via {@link fromSchemaDraft07}.
437
+ * - Does not mutate the input. Allocates a new `Document`.
438
+ *
439
+ * **Example** (Parsing an OpenAPI 3.0 nullable schema)
440
+ *
441
+ * ```ts
442
+ * import { JsonSchema } from "effect"
443
+ *
444
+ * const raw: JsonSchema.JsonSchema = {
445
+ * type: "string",
446
+ * nullable: true
447
+ * }
448
+ *
449
+ * const doc = JsonSchema.fromSchemaOpenApi3_0(raw)
450
+ * // nullable is expanded into a type array
451
+ * console.log(doc.schema.type) // ["string", "null"]
452
+ * ```
453
+ *
454
+ * @see {@link fromSchemaOpenApi3_1}
455
+ * @see {@link fromSchemaDraft07}
456
+ *
202
457
  * @since 4.0.0
203
458
  */
204
459
  export function fromSchemaOpenApi3_0(schema: JsonSchema): Document<"draft-2020-12"> {
@@ -207,6 +462,36 @@ export function fromSchemaOpenApi3_0(schema: JsonSchema): Document<"draft-2020-1
207
462
  }
208
463
 
209
464
  /**
465
+ * Converts a `Document<"draft-2020-12">` to a `Document<"draft-07">`.
466
+ *
467
+ * - Use when you need to output a schema in Draft-07 format.
468
+ * - Rewrites `#/$defs/...` refs to `#/definitions/...`.
469
+ * - Converts Draft-2020-12 tuple syntax (`prefixItems` + `items`) to
470
+ * Draft-07 form (`items` as array + `additionalItems`).
471
+ * - Converts both the root schema and all definitions.
472
+ * - Does not mutate the input. Allocates a new `Document`.
473
+ * - Unsupported Draft-2020-12 keywords are dropped.
474
+ *
475
+ * **Example** (Converting to Draft-07)
476
+ *
477
+ * ```ts
478
+ * import { JsonSchema } from "effect"
479
+ *
480
+ * const doc = JsonSchema.fromSchemaDraft2020_12({
481
+ * type: "array",
482
+ * prefixItems: [{ type: "string" }, { type: "number" }],
483
+ * items: { type: "boolean" }
484
+ * })
485
+ *
486
+ * const draft07 = JsonSchema.toDocumentDraft07(doc)
487
+ * console.log(draft07.dialect) // "draft-07"
488
+ * console.log(draft07.schema.items) // [{ type: "string" }, { type: "number" }]
489
+ * console.log(draft07.schema.additionalItems) // { type: "boolean" }
490
+ * ```
491
+ *
492
+ * @see {@link fromSchemaDraft07}
493
+ * @see {@link toMultiDocumentOpenApi3_1}
494
+ *
210
495
  * @since 4.0.0
211
496
  */
212
497
  export function toDocumentDraft07(document: Document<"draft-2020-12">): Document<"draft-07"> {
@@ -217,10 +502,7 @@ export function toDocumentDraft07(document: Document<"draft-2020-12">): Document
217
502
  }
218
503
  }
219
504
 
220
- /**
221
- * @since 4.0.0
222
- */
223
- export function toSchemaDraft07(schema: JsonSchema): JsonSchema {
505
+ function toSchemaDraft07(schema: JsonSchema): JsonSchema {
224
506
  return rewrite(schema)
225
507
 
226
508
  function rewrite(node: unknown): JsonSchema {
@@ -322,6 +604,38 @@ export function toSchemaDraft07(schema: JsonSchema): JsonSchema {
322
604
  }
323
605
 
324
606
  /**
607
+ * Converts a `MultiDocument<"draft-2020-12">` to a
608
+ * `MultiDocument<"openapi-3.1">`.
609
+ *
610
+ * - Use when generating an OpenAPI 3.1 specification from internal schemas.
611
+ * - Rewrites `#/$defs/...` refs to `#/components/schemas/...`.
612
+ * - Sanitizes definition keys to match the OpenAPI component key pattern
613
+ * (`^[a-zA-Z0-9.\-_]+$`), replacing invalid characters with `_`.
614
+ * - Updates all `$ref` pointers to use the sanitized keys.
615
+ * - Converts all schemas and definitions in the multi-document.
616
+ * - Does not mutate the input. Allocates a new `MultiDocument`.
617
+ *
618
+ * **Example** (Converting to OpenAPI 3.1)
619
+ *
620
+ * ```ts
621
+ * import { JsonSchema } from "effect"
622
+ *
623
+ * const multi: JsonSchema.MultiDocument<"draft-2020-12"> = {
624
+ * dialect: "draft-2020-12",
625
+ * schemas: [{ $ref: "#/$defs/User" }],
626
+ * definitions: {
627
+ * User: { type: "object", properties: { name: { type: "string" } } }
628
+ * }
629
+ * }
630
+ *
631
+ * const openapi = JsonSchema.toMultiDocumentOpenApi3_1(multi)
632
+ * console.log(openapi.dialect) // "openapi-3.1"
633
+ * console.log(openapi.schemas[0]) // { $ref: "#/components/schemas/User" }
634
+ * ```
635
+ *
636
+ * @see {@link toDocumentDraft07}
637
+ * @see {@link MultiDocument}
638
+ *
325
639
  * @since 4.0.0
326
640
  */
327
641
  export function toMultiDocumentOpenApi3_1(multiDocument: MultiDocument<"draft-2020-12">): MultiDocument<"openapi-3.1"> {
@@ -510,6 +824,35 @@ function widen_type(node: Record<string, unknown>): Record<string, unknown> {
510
824
  }
511
825
 
512
826
  /**
827
+ * Resolves a `$ref` string by looking up the last path segment in a
828
+ * definitions map.
829
+ *
830
+ * - Use when you need to dereference a `$ref` pointer to get the
831
+ * actual schema it points to.
832
+ * - Only resolves the final segment of the ref path (e.g. `"User"` from
833
+ * `"#/$defs/User"`); does not follow arbitrary JSON Pointer paths.
834
+ * - Returns `undefined` if the definition is not found.
835
+ * - Does not mutate anything. Pure function.
836
+ *
837
+ * **Example** (Resolving a $ref)
838
+ *
839
+ * ```ts
840
+ * import { JsonSchema } from "effect"
841
+ *
842
+ * const definitions: JsonSchema.Definitions = {
843
+ * User: { type: "object", properties: { name: { type: "string" } } }
844
+ * }
845
+ *
846
+ * const result = JsonSchema.resolve$ref("#/$defs/User", definitions)
847
+ * console.log(result) // { type: "object", properties: { name: { type: "string" } } }
848
+ *
849
+ * const missing = JsonSchema.resolve$ref("#/$defs/Unknown", definitions)
850
+ * console.log(missing) // undefined
851
+ * ```
852
+ *
853
+ * @see {@link resolveTopLevel$ref}
854
+ * @see {@link Definitions}
855
+ *
513
856
  * @since 4.0.0
514
857
  */
515
858
  export function resolve$ref($ref: string, definitions: Definitions): JsonSchema | undefined {
@@ -524,6 +867,36 @@ export function resolve$ref($ref: string, definitions: Definitions): JsonSchema
524
867
  }
525
868
 
526
869
  /**
870
+ * If the root schema of a document is a `$ref`, resolves it against the
871
+ * document's definitions and returns a new document with the inlined
872
+ * schema. Returns the original document unchanged if the root schema is
873
+ * not a `$ref` or if the referenced definition is not found.
874
+ *
875
+ * - Use to dereference a top-level `$ref` before inspecting the root
876
+ * schema's properties directly.
877
+ * - Does not mutate the input. Returns the same object if no change is
878
+ * needed, or a shallow copy with the resolved schema.
879
+ *
880
+ * **Example** (Resolving a top-level $ref)
881
+ *
882
+ * ```ts
883
+ * import { JsonSchema } from "effect"
884
+ *
885
+ * const doc: JsonSchema.Document<"draft-2020-12"> = {
886
+ * dialect: "draft-2020-12",
887
+ * schema: { $ref: "#/$defs/User" },
888
+ * definitions: {
889
+ * User: { type: "object", properties: { name: { type: "string" } } }
890
+ * }
891
+ * }
892
+ *
893
+ * const resolved = JsonSchema.resolveTopLevel$ref(doc)
894
+ * console.log(resolved.schema) // { type: "object", properties: { name: { type: "string" } } }
895
+ * ```
896
+ *
897
+ * @see {@link resolve$ref}
898
+ * @see {@link Document}
899
+ *
527
900
  * @since 4.0.0
528
901
  */
529
902
  export function resolveTopLevel$ref(document: Document<"draft-2020-12">): Document<"draft-2020-12"> {
package/src/Latch.ts ADDED
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @since 3.8.0
3
+ */
4
+ import type * as Effect from "./Effect.ts"
5
+ import * as internal from "./internal/effect.ts"
6
+
7
+ /**
8
+ * @category models
9
+ * @since 3.8.0
10
+ * @example
11
+ * ```ts
12
+ * import { Effect, Latch } from "effect"
13
+ *
14
+ * // Create and use a latch for coordination between fibers
15
+ * const program = Effect.gen(function*() {
16
+ * const latch = yield* Latch.make()
17
+ *
18
+ * // Wait for the latch to be opened
19
+ * yield* latch.await
20
+ *
21
+ * return "Latch was opened!"
22
+ * })
23
+ * ```
24
+ */
25
+ export interface Latch {
26
+ /** open the latch, releasing all fibers waiting on it */
27
+ readonly open: Effect.Effect<boolean>
28
+ /** open the latch, releasing all fibers waiting on it */
29
+ readonly openUnsafe: () => boolean
30
+ /** release all fibers waiting on the latch, without opening it */
31
+ readonly release: Effect.Effect<boolean>
32
+ /** wait for the latch to be opened */
33
+ readonly await: Effect.Effect<void>
34
+ /** close the latch */
35
+ readonly close: Effect.Effect<boolean>
36
+ /** close the latch */
37
+ readonly closeUnsafe: () => boolean
38
+ /** only run the given effect when the latch is open */
39
+ readonly whenOpen: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
40
+ }
41
+
42
+ /**
43
+ * Creates a new Latch unsafely.
44
+ *
45
+ * **Previously Known As**
46
+ *
47
+ * This API replaces the following from Effect 3.x:
48
+ *
49
+ * - `Effect.makeLatchUnsafe`
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * import { Effect, Latch } from "effect"
54
+ *
55
+ * const latch = Latch.makeUnsafe(false)
56
+ *
57
+ * const waiter = Effect.gen(function*() {
58
+ * yield* Effect.log("Waiting for latch to open...")
59
+ * yield* latch.await
60
+ * yield* Effect.log("Latch opened! Continuing...")
61
+ * })
62
+ *
63
+ * const opener = Effect.gen(function*() {
64
+ * yield* Effect.sleep("2 seconds")
65
+ * yield* Effect.log("Opening latch...")
66
+ * yield* latch.open
67
+ * })
68
+ *
69
+ * const program = Effect.all([waiter, opener])
70
+ * ```
71
+ *
72
+ * @category constructors
73
+ * @since 3.8.0
74
+ */
75
+ export const makeUnsafe: (open?: boolean | undefined) => Latch = internal.makeLatchUnsafe
76
+
77
+ /**
78
+ * Creates a new Latch.
79
+ *
80
+ * **Previously Known As**
81
+ *
82
+ * This API replaces the following from Effect 3.x:
83
+ *
84
+ * - `Effect.makeLatch`
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * import { Effect, Latch } from "effect"
89
+ *
90
+ * const program = Effect.gen(function*() {
91
+ * const latch = yield* Latch.make(false)
92
+ *
93
+ * const waiter = Effect.gen(function*() {
94
+ * yield* Effect.log("Waiting for latch to open...")
95
+ * yield* latch.await
96
+ * yield* Effect.log("Latch opened! Continuing...")
97
+ * })
98
+ *
99
+ * const opener = Effect.gen(function*() {
100
+ * yield* Effect.sleep("2 seconds")
101
+ * yield* Effect.log("Opening latch...")
102
+ * yield* latch.open
103
+ * })
104
+ *
105
+ * yield* Effect.all([waiter, opener])
106
+ * })
107
+ * ```
108
+ *
109
+ * @category constructors
110
+ * @since 3.8.0
111
+ */
112
+ export const make: (open?: boolean | undefined) => Effect.Effect<Latch> = internal.makeLatch