effect 4.0.0-beta.0 → 4.0.0-beta.10

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 (571) hide show
  1. package/dist/Cache.d.ts +2 -2
  2. package/dist/Cache.d.ts.map +1 -1
  3. package/dist/Cache.js +1 -1
  4. package/dist/Cache.js.map +1 -1
  5. package/dist/Cause.d.ts +1 -1
  6. package/dist/Cause.d.ts.map +1 -1
  7. package/dist/Channel.d.ts.map +1 -1
  8. package/dist/Channel.js +6 -4
  9. package/dist/Channel.js.map +1 -1
  10. package/dist/Combiner.d.ts +280 -13
  11. package/dist/Combiner.d.ts.map +1 -1
  12. package/dist/Combiner.js +198 -7
  13. package/dist/Combiner.js.map +1 -1
  14. package/dist/Config.d.ts +3 -3
  15. package/dist/Config.js +3 -3
  16. package/dist/Config.js.map +1 -1
  17. package/dist/ConfigProvider.d.ts +1 -1
  18. package/dist/Cron.d.ts +1 -1
  19. package/dist/Data.d.ts +534 -365
  20. package/dist/Data.d.ts.map +1 -1
  21. package/dist/Data.js +132 -79
  22. package/dist/Data.js.map +1 -1
  23. package/dist/DateTime.d.ts +23 -161
  24. package/dist/DateTime.d.ts.map +1 -1
  25. package/dist/DateTime.js +6 -51
  26. package/dist/DateTime.js.map +1 -1
  27. package/dist/Duration.d.ts +12 -12
  28. package/dist/Duration.d.ts.map +1 -1
  29. package/dist/Duration.js +12 -12
  30. package/dist/Duration.js.map +1 -1
  31. package/dist/Effect.d.ts +175 -240
  32. package/dist/Effect.d.ts.map +1 -1
  33. package/dist/Effect.js +73 -119
  34. package/dist/Effect.js.map +1 -1
  35. package/dist/Encoding.d.ts +194 -0
  36. package/dist/Encoding.d.ts.map +1 -0
  37. package/dist/Encoding.js +352 -0
  38. package/dist/Encoding.js.map +1 -0
  39. package/dist/Equal.d.ts +276 -109
  40. package/dist/Equal.d.ts.map +1 -1
  41. package/dist/Equal.js +124 -48
  42. package/dist/Equal.js.map +1 -1
  43. package/dist/FileSystem.d.ts +1 -1
  44. package/dist/FileSystem.d.ts.map +1 -1
  45. package/dist/FileSystem.js +5 -5
  46. package/dist/FileSystem.js.map +1 -1
  47. package/dist/Filter.d.ts +30 -1
  48. package/dist/Filter.d.ts.map +1 -1
  49. package/dist/Filter.js +15 -0
  50. package/dist/Filter.js.map +1 -1
  51. package/dist/Formatter.d.ts +131 -47
  52. package/dist/Formatter.d.ts.map +1 -1
  53. package/dist/Formatter.js +229 -51
  54. package/dist/Formatter.js.map +1 -1
  55. package/dist/Graph.d.ts +1 -1
  56. package/dist/Graph.d.ts.map +1 -1
  57. package/dist/Graph.js +2 -2
  58. package/dist/Graph.js.map +1 -1
  59. package/dist/JsonSchema.d.ts +299 -10
  60. package/dist/JsonSchema.d.ts.map +1 -1
  61. package/dist/JsonSchema.js +323 -4
  62. package/dist/JsonSchema.js.map +1 -1
  63. package/dist/Latch.d.ts +109 -0
  64. package/dist/Latch.d.ts.map +1 -0
  65. package/dist/Latch.js +72 -0
  66. package/dist/Latch.js.map +1 -0
  67. package/dist/LayerMap.d.ts +4 -4
  68. package/dist/LayerMap.d.ts.map +1 -1
  69. package/dist/LogLevel.d.ts +27 -0
  70. package/dist/LogLevel.d.ts.map +1 -1
  71. package/dist/LogLevel.js +28 -100
  72. package/dist/LogLevel.js.map +1 -1
  73. package/dist/Logger.d.ts +4 -4
  74. package/dist/Logger.d.ts.map +1 -1
  75. package/dist/Metric.d.ts +2 -2
  76. package/dist/Metric.d.ts.map +1 -1
  77. package/dist/Metric.js +1 -1
  78. package/dist/Metric.js.map +1 -1
  79. package/dist/Optic.d.ts +947 -18
  80. package/dist/Optic.d.ts.map +1 -1
  81. package/dist/Optic.js +454 -5
  82. package/dist/Optic.js.map +1 -1
  83. package/dist/Pipeable.d.ts +17 -0
  84. package/dist/Pipeable.d.ts.map +1 -1
  85. package/dist/Pipeable.js +19 -1
  86. package/dist/Pipeable.js.map +1 -1
  87. package/dist/PlatformError.d.ts +10 -9
  88. package/dist/PlatformError.d.ts.map +1 -1
  89. package/dist/PlatformError.js +2 -2
  90. package/dist/PlatformError.js.map +1 -1
  91. package/dist/Pool.d.ts +6 -4
  92. package/dist/Pool.d.ts.map +1 -1
  93. package/dist/Pool.js +7 -5
  94. package/dist/Pool.js.map +1 -1
  95. package/dist/PubSub.d.ts +3 -2
  96. package/dist/PubSub.d.ts.map +1 -1
  97. package/dist/PubSub.js +3 -2
  98. package/dist/PubSub.js.map +1 -1
  99. package/dist/Random.d.ts +18 -1
  100. package/dist/Random.d.ts.map +1 -1
  101. package/dist/Random.js +29 -12
  102. package/dist/Random.js.map +1 -1
  103. package/dist/RcMap.d.ts +2 -2
  104. package/dist/RcMap.d.ts.map +1 -1
  105. package/dist/RcMap.js +1 -1
  106. package/dist/RcMap.js.map +1 -1
  107. package/dist/RcRef.d.ts +1 -1
  108. package/dist/RcRef.d.ts.map +1 -1
  109. package/dist/Reducer.d.ts +166 -7
  110. package/dist/Reducer.d.ts.map +1 -1
  111. package/dist/Reducer.js +135 -1
  112. package/dist/Reducer.js.map +1 -1
  113. package/dist/Request.d.ts +1 -1
  114. package/dist/Request.d.ts.map +1 -1
  115. package/dist/Request.js +2 -1
  116. package/dist/Request.js.map +1 -1
  117. package/dist/RequestResolver.d.ts +6 -26
  118. package/dist/RequestResolver.d.ts.map +1 -1
  119. package/dist/RequestResolver.js +0 -20
  120. package/dist/RequestResolver.js.map +1 -1
  121. package/dist/Result.d.ts +12 -0
  122. package/dist/Result.d.ts.map +1 -1
  123. package/dist/Result.js +12 -0
  124. package/dist/Result.js.map +1 -1
  125. package/dist/Schedule.d.ts +33 -14
  126. package/dist/Schedule.d.ts.map +1 -1
  127. package/dist/Schedule.js +65 -24
  128. package/dist/Schedule.js.map +1 -1
  129. package/dist/Schema.d.ts +199 -49
  130. package/dist/Schema.d.ts.map +1 -1
  131. package/dist/Schema.js +386 -72
  132. package/dist/Schema.js.map +1 -1
  133. package/dist/SchemaGetter.d.ts +2 -2
  134. package/dist/SchemaGetter.d.ts.map +1 -1
  135. package/dist/SchemaGetter.js +12 -14
  136. package/dist/SchemaGetter.js.map +1 -1
  137. package/dist/SchemaRepresentation.d.ts +44 -43
  138. package/dist/SchemaRepresentation.d.ts.map +1 -1
  139. package/dist/SchemaRepresentation.js +43 -24
  140. package/dist/SchemaRepresentation.js.map +1 -1
  141. package/dist/SchemaTransformation.d.ts +37 -0
  142. package/dist/SchemaTransformation.d.ts.map +1 -1
  143. package/dist/SchemaTransformation.js +80 -0
  144. package/dist/SchemaTransformation.js.map +1 -1
  145. package/dist/ScopedCache.d.ts +2 -2
  146. package/dist/ScopedCache.d.ts.map +1 -1
  147. package/dist/ScopedCache.js +1 -1
  148. package/dist/ScopedCache.js.map +1 -1
  149. package/dist/Semaphore.d.ts +211 -0
  150. package/dist/Semaphore.d.ts.map +1 -0
  151. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  152. package/dist/Semaphore.js.map +1 -0
  153. package/dist/Stream.d.ts +19 -19
  154. package/dist/Stream.d.ts.map +1 -1
  155. package/dist/Stream.js +12 -11
  156. package/dist/Stream.js.map +1 -1
  157. package/dist/Struct.d.ts +16 -0
  158. package/dist/Struct.d.ts.map +1 -1
  159. package/dist/Struct.js +22 -0
  160. package/dist/Struct.js.map +1 -1
  161. package/dist/SubscriptionRef.d.ts +2 -1
  162. package/dist/SubscriptionRef.d.ts.map +1 -1
  163. package/dist/SubscriptionRef.js +2 -1
  164. package/dist/SubscriptionRef.js.map +1 -1
  165. package/dist/SynchronizedRef.d.ts +2 -1
  166. package/dist/SynchronizedRef.d.ts.map +1 -1
  167. package/dist/SynchronizedRef.js +2 -1
  168. package/dist/SynchronizedRef.js.map +1 -1
  169. package/dist/Types.d.ts +14 -6
  170. package/dist/Types.d.ts.map +1 -1
  171. package/dist/index.d.ts +499 -19
  172. package/dist/index.d.ts.map +1 -1
  173. package/dist/index.js +499 -19
  174. package/dist/index.js.map +1 -1
  175. package/dist/internal/core.js +11 -3
  176. package/dist/internal/core.js.map +1 -1
  177. package/dist/internal/dateTime.js +3 -11
  178. package/dist/internal/dateTime.js.map +1 -1
  179. package/dist/internal/effect.js +37 -22
  180. package/dist/internal/effect.js.map +1 -1
  181. package/dist/internal/random.d.ts +2 -0
  182. package/dist/internal/random.d.ts.map +1 -0
  183. package/dist/internal/random.js +13 -0
  184. package/dist/internal/random.js.map +1 -0
  185. package/dist/internal/rcRef.js +3 -2
  186. package/dist/internal/rcRef.js.map +1 -1
  187. package/dist/testing/TestClock.d.ts +7 -6
  188. package/dist/testing/TestClock.d.ts.map +1 -1
  189. package/dist/testing/TestClock.js +6 -4
  190. package/dist/testing/TestClock.js.map +1 -1
  191. package/dist/testing/TestSchema.d.ts +6 -6
  192. package/dist/testing/TestSchema.d.ts.map +1 -1
  193. package/dist/unstable/ai/AiError.d.ts +48 -48
  194. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  195. package/dist/unstable/ai/Chat.d.ts +3 -3
  196. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  197. package/dist/unstable/ai/Chat.js +4 -3
  198. package/dist/unstable/ai/Chat.js.map +1 -1
  199. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  200. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  201. package/dist/unstable/ai/McpSchema.d.ts +51 -51
  202. package/dist/unstable/ai/McpServer.d.ts +1 -1
  203. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  204. package/dist/unstable/ai/McpServer.js.map +1 -1
  205. package/dist/unstable/ai/Prompt.d.ts +20 -20
  206. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  207. package/dist/unstable/ai/Response.d.ts +26 -26
  208. package/dist/unstable/ai/Response.d.ts.map +1 -1
  209. package/dist/unstable/ai/Response.js +1 -1
  210. package/dist/unstable/ai/Response.js.map +1 -1
  211. package/dist/unstable/cli/CliError.d.ts +5 -5
  212. package/dist/unstable/cli/Prompt.js +2 -2
  213. package/dist/unstable/cli/Prompt.js.map +1 -1
  214. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  215. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  216. package/dist/unstable/cluster/ClusterCron.js +1 -1
  217. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  218. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  219. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
  220. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  221. package/dist/unstable/cluster/Entity.d.ts +5 -4
  222. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  223. package/dist/unstable/cluster/Entity.js.map +1 -1
  224. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  225. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  226. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  227. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  228. package/dist/unstable/cluster/K8sHttpClient.js +1 -1
  229. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  230. package/dist/unstable/cluster/Message.d.ts +10 -10
  231. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  232. package/dist/unstable/cluster/MessageStorage.js +2 -1
  233. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  234. package/dist/unstable/cluster/Reply.d.ts +6 -6
  235. package/dist/unstable/cluster/Runner.d.ts +1 -1
  236. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  237. package/dist/unstable/cluster/Runners.js +4 -3
  238. package/dist/unstable/cluster/Runners.js.map +1 -1
  239. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  240. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  241. package/dist/unstable/cluster/Sharding.js +8 -6
  242. package/dist/unstable/cluster/Sharding.js.map +1 -1
  243. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  244. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  245. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  246. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  247. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  248. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  249. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  250. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  251. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  252. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  253. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  254. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  255. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  256. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  257. package/dist/unstable/encoding/Sse.d.ts +4 -4
  258. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  259. package/dist/unstable/encoding/Sse.js.map +1 -1
  260. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  261. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  262. package/dist/unstable/eventlog/EventLog.js +2 -1
  263. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  264. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  265. package/dist/unstable/http/Cookies.d.ts +3 -3
  266. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  267. package/dist/unstable/http/Cookies.js +2 -2
  268. package/dist/unstable/http/Cookies.js.map +1 -1
  269. package/dist/unstable/http/HttpBody.d.ts +17 -2
  270. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  271. package/dist/unstable/http/HttpBody.js +28 -1
  272. package/dist/unstable/http/HttpBody.js.map +1 -1
  273. package/dist/unstable/http/HttpClient.d.ts +11 -11
  274. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  275. package/dist/unstable/http/HttpClient.js +4 -4
  276. package/dist/unstable/http/HttpClient.js.map +1 -1
  277. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  278. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  279. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  280. package/dist/unstable/http/HttpClientRequest.js +15 -3
  281. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  282. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  283. package/dist/unstable/http/HttpEffect.js +18 -26
  284. package/dist/unstable/http/HttpEffect.js.map +1 -1
  285. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  286. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  287. package/dist/unstable/http/HttpMethod.js +3 -3
  288. package/dist/unstable/http/HttpMethod.js.map +1 -1
  289. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  290. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  291. package/dist/unstable/http/HttpMiddleware.js +4 -9
  292. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  293. package/dist/unstable/http/HttpServerError.d.ts +6 -6
  294. package/dist/unstable/http/HttpServerResponse.js +1 -1
  295. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  296. package/dist/unstable/http/Multipart.d.ts +3 -3
  297. package/dist/unstable/http/UrlParams.d.ts +14 -6
  298. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  299. package/dist/unstable/http/UrlParams.js +1 -1
  300. package/dist/unstable/http/UrlParams.js.map +1 -1
  301. package/dist/unstable/httpapi/HttpApiBuilder.js +5 -5
  302. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  303. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  304. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  305. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +21 -39
  306. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  307. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  308. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  309. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  310. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  311. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  312. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  313. package/dist/unstable/httpapi/OpenApi.js +18 -16
  314. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  315. package/dist/unstable/observability/Otlp.d.ts +12 -12
  316. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  317. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  318. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  319. package/dist/unstable/observability/OtlpExporter.js +1 -1
  320. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  321. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  322. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  323. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  324. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  325. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  326. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  327. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  328. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  329. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  330. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  331. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  332. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  333. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  334. package/dist/unstable/persistence/PersistedCache.js +2 -1
  335. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  336. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  337. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  338. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  339. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  340. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  341. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  342. package/dist/unstable/persistence/Persistence.js +2 -2
  343. package/dist/unstable/persistence/Persistence.js.map +1 -1
  344. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  345. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  346. package/dist/unstable/persistence/RateLimiter.js +1 -1
  347. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  348. package/dist/unstable/process/ChildProcess.d.ts +2 -2
  349. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  350. package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
  351. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  352. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  353. package/dist/unstable/reactivity/Atom.d.ts +6 -6
  354. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  355. package/dist/unstable/reactivity/Atom.js +15 -12
  356. package/dist/unstable/reactivity/Atom.js.map +1 -1
  357. package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
  358. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  359. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  360. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  361. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  362. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  363. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  364. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  365. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  366. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  367. package/dist/unstable/reactivity/Hydration.js +76 -0
  368. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  369. package/dist/unstable/reactivity/index.d.ts +4 -0
  370. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  371. package/dist/unstable/reactivity/index.js +4 -0
  372. package/dist/unstable/reactivity/index.js.map +1 -1
  373. package/dist/unstable/rpc/Rpc.d.ts +2 -2
  374. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  375. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  376. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  377. package/dist/unstable/rpc/RpcClient.js +6 -13
  378. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  379. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  380. package/dist/unstable/rpc/RpcServer.js +5 -3
  381. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  382. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  383. package/dist/unstable/rpc/Utils.js +2 -1
  384. package/dist/unstable/rpc/Utils.js.map +1 -1
  385. package/dist/unstable/schema/Model.d.ts +4 -4
  386. package/dist/unstable/schema/Model.d.ts.map +1 -1
  387. package/dist/unstable/schema/VariantSchema.d.ts +2 -2
  388. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  389. package/dist/unstable/schema/VariantSchema.js +13 -2
  390. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  391. package/dist/unstable/socket/Socket.d.ts +4 -4
  392. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  393. package/dist/unstable/socket/Socket.js +3 -2
  394. package/dist/unstable/socket/Socket.js.map +1 -1
  395. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  396. package/dist/unstable/sql/Migrator.d.ts +1 -1
  397. package/dist/unstable/sql/SqlError.d.ts +2 -2
  398. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  399. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  400. package/dist/unstable/sql/SqlSchema.d.ts +24 -1
  401. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  402. package/dist/unstable/sql/SqlSchema.js +24 -3
  403. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  404. package/dist/unstable/sql/Statement.js +0 -1
  405. package/dist/unstable/sql/Statement.js.map +1 -1
  406. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  407. package/dist/unstable/workers/Worker.js +2 -1
  408. package/dist/unstable/workers/Worker.js.map +1 -1
  409. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  410. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  411. package/dist/unstable/workflow/DurableClock.js +3 -3
  412. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  413. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  414. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  415. package/dist/unstable/workflow/Workflow.d.ts +2 -2
  416. package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
  417. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  418. package/dist/unstable/workflow/WorkflowEngine.js +2 -1
  419. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  420. package/package.json +2 -2
  421. package/src/Cache.ts +3 -3
  422. package/src/Cause.ts +1 -1
  423. package/src/Channel.ts +6 -4
  424. package/src/Combiner.ts +280 -13
  425. package/src/Config.ts +3 -3
  426. package/src/Data.ts +538 -374
  427. package/src/DateTime.ts +24 -164
  428. package/src/Duration.ts +15 -15
  429. package/src/Effect.ts +202 -261
  430. package/src/Encoding.ts +879 -0
  431. package/src/Equal.ts +278 -111
  432. package/src/FileSystem.ts +7 -8
  433. package/src/Filter.ts +48 -1
  434. package/src/Formatter.ts +253 -51
  435. package/src/Graph.ts +8 -5
  436. package/src/JsonSchema.ts +383 -10
  437. package/src/Latch.ts +112 -0
  438. package/src/LayerMap.ts +5 -5
  439. package/src/LogLevel.ts +31 -0
  440. package/src/Logger.ts +5 -5
  441. package/src/Metric.ts +4 -4
  442. package/src/Optic.ts +948 -19
  443. package/src/Pipeable.ts +32 -1
  444. package/src/PlatformError.ts +5 -5
  445. package/src/Pool.ts +13 -11
  446. package/src/PubSub.ts +10 -9
  447. package/src/Random.ts +33 -14
  448. package/src/RcMap.ts +5 -5
  449. package/src/RcRef.ts +1 -1
  450. package/src/Reducer.ts +166 -7
  451. package/src/Request.ts +3 -2
  452. package/src/RequestResolver.ts +9 -29
  453. package/src/Result.ts +13 -0
  454. package/src/Schedule.ts +279 -140
  455. package/src/Schema.ts +575 -113
  456. package/src/SchemaGetter.ts +12 -14
  457. package/src/SchemaRepresentation.ts +43 -24
  458. package/src/SchemaTransformation.ts +104 -0
  459. package/src/ScopedCache.ts +3 -3
  460. package/src/Semaphore.ts +356 -0
  461. package/src/Stream.ts +43 -42
  462. package/src/Struct.ts +26 -0
  463. package/src/SubscriptionRef.ts +3 -2
  464. package/src/SynchronizedRef.ts +3 -2
  465. package/src/Types.ts +12 -2
  466. package/src/index.ts +502 -20
  467. package/src/internal/core.ts +12 -5
  468. package/src/internal/dateTime.ts +9 -30
  469. package/src/internal/effect.ts +70 -37
  470. package/src/internal/random.ts +20 -0
  471. package/src/internal/rcRef.ts +4 -3
  472. package/src/testing/TestClock.ts +13 -11
  473. package/src/testing/TestSchema.ts +8 -8
  474. package/src/unstable/ai/AiError.ts +2 -2
  475. package/src/unstable/ai/Chat.ts +12 -11
  476. package/src/unstable/ai/LanguageModel.ts +3 -3
  477. package/src/unstable/ai/McpServer.ts +2 -2
  478. package/src/unstable/ai/Prompt.ts +37 -37
  479. package/src/unstable/ai/Response.ts +25 -25
  480. package/src/unstable/cli/Prompt.ts +2 -2
  481. package/src/unstable/cluster/ClusterCron.ts +2 -2
  482. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
  483. package/src/unstable/cluster/Entity.ts +7 -6
  484. package/src/unstable/cluster/EntityResource.ts +4 -4
  485. package/src/unstable/cluster/Envelope.ts +1 -1
  486. package/src/unstable/cluster/K8sHttpClient.ts +1 -1
  487. package/src/unstable/cluster/MessageStorage.ts +3 -5
  488. package/src/unstable/cluster/Runners.ts +6 -5
  489. package/src/unstable/cluster/Sharding.ts +11 -9
  490. package/src/unstable/cluster/ShardingConfig.ts +10 -11
  491. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  492. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  493. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  494. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  495. package/src/unstable/encoding/Sse.ts +2 -4
  496. package/src/unstable/eventlog/EventLog.ts +2 -1
  497. package/src/unstable/http/Cookies.ts +3 -3
  498. package/src/unstable/http/HttpBody.ts +42 -1
  499. package/src/unstable/http/HttpClient.ts +19 -19
  500. package/src/unstable/http/HttpClientRequest.ts +38 -13
  501. package/src/unstable/http/HttpEffect.ts +17 -25
  502. package/src/unstable/http/HttpMethod.ts +16 -4
  503. package/src/unstable/http/HttpMiddleware.ts +5 -10
  504. package/src/unstable/http/HttpServerResponse.ts +1 -1
  505. package/src/unstable/http/Multipart.ts +2 -2
  506. package/src/unstable/http/UrlParams.ts +20 -5
  507. package/src/unstable/httpapi/HttpApiBuilder.ts +5 -5
  508. package/src/unstable/httpapi/HttpApiClient.ts +3 -3
  509. package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
  510. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  511. package/src/unstable/httpapi/OpenApi.ts +18 -16
  512. package/src/unstable/observability/Otlp.ts +12 -12
  513. package/src/unstable/observability/OtlpExporter.ts +3 -3
  514. package/src/unstable/observability/OtlpLogger.ts +4 -4
  515. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  516. package/src/unstable/observability/OtlpTracer.ts +4 -4
  517. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  518. package/src/unstable/persistence/Persistable.ts +2 -2
  519. package/src/unstable/persistence/PersistedCache.ts +20 -9
  520. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  521. package/src/unstable/persistence/Persistence.ts +3 -3
  522. package/src/unstable/persistence/RateLimiter.ts +4 -4
  523. package/src/unstable/process/ChildProcess.ts +2 -2
  524. package/src/unstable/process/ChildProcessSpawner.ts +6 -0
  525. package/src/unstable/reactivity/Atom.ts +20 -18
  526. package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
  527. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  528. package/src/unstable/reactivity/Hydration.ts +112 -0
  529. package/src/unstable/reactivity/index.ts +5 -0
  530. package/src/unstable/rpc/Rpc.ts +3 -3
  531. package/src/unstable/rpc/RpcClient.ts +12 -54
  532. package/src/unstable/rpc/RpcServer.ts +6 -4
  533. package/src/unstable/rpc/Utils.ts +2 -1
  534. package/src/unstable/schema/VariantSchema.ts +36 -7
  535. package/src/unstable/socket/Socket.ts +7 -6
  536. package/src/unstable/sql/SqlModel.ts +2 -2
  537. package/src/unstable/sql/SqlSchema.ts +62 -13
  538. package/src/unstable/sql/Statement.ts +0 -1
  539. package/src/unstable/workers/Worker.ts +2 -1
  540. package/src/unstable/workflow/DurableClock.ts +8 -8
  541. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  542. package/src/unstable/workflow/WorkflowEngine.ts +3 -2
  543. package/dist/PartitionedSemaphore.d.ts +0 -52
  544. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  545. package/dist/PartitionedSemaphore.js.map +0 -1
  546. package/dist/encoding/Base64.d.ts +0 -67
  547. package/dist/encoding/Base64.d.ts.map +0 -1
  548. package/dist/encoding/Base64.js +0 -146
  549. package/dist/encoding/Base64.js.map +0 -1
  550. package/dist/encoding/Base64Url.d.ts +0 -60
  551. package/dist/encoding/Base64Url.d.ts.map +0 -1
  552. package/dist/encoding/Base64Url.js +0 -89
  553. package/dist/encoding/Base64Url.js.map +0 -1
  554. package/dist/encoding/EncodingError.d.ts +0 -31
  555. package/dist/encoding/EncodingError.d.ts.map +0 -1
  556. package/dist/encoding/EncodingError.js +0 -22
  557. package/dist/encoding/EncodingError.js.map +0 -1
  558. package/dist/encoding/Hex.d.ts +0 -61
  559. package/dist/encoding/Hex.d.ts.map +0 -1
  560. package/dist/encoding/Hex.js +0 -115
  561. package/dist/encoding/Hex.js.map +0 -1
  562. package/dist/encoding/index.d.ts +0 -26
  563. package/dist/encoding/index.d.ts.map +0 -1
  564. package/dist/encoding/index.js +0 -27
  565. package/dist/encoding/index.js.map +0 -1
  566. package/src/PartitionedSemaphore.ts +0 -182
  567. package/src/encoding/Base64.ts +0 -366
  568. package/src/encoding/Base64Url.ts +0 -104
  569. package/src/encoding/EncodingError.ts +0 -35
  570. package/src/encoding/Hex.ts +0 -390
  571. package/src/encoding/index.ts +0 -31
@@ -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.js";
@@ -6,10 +89,14 @@ import { unescapeToken } from "./JsonPointer.js";
6
89
  import * as Predicate from "./Predicate.js";
7
90
  import * as Rec from "./Record.js";
8
91
  /**
92
+ * The `$schema` meta-schema URI for JSON Schema Draft-07.
93
+ *
9
94
  * @since 4.0.0
10
95
  */
11
96
  export const META_SCHEMA_URI_DRAFT_07 = "http://json-schema.org/draft-07/schema";
12
97
  /**
98
+ * The `$schema` meta-schema URI for JSON Schema Draft 2020-12.
99
+ *
13
100
  * @since 4.0.0
14
101
  */
15
102
  export const META_SCHEMA_URI_DRAFT_2020_12 = "https://json-schema.org/draft/2020-12/schema";
@@ -17,6 +104,40 @@ const RE_DEFINITIONS = /^#\/definitions(?=\/|$)/;
17
104
  const RE_DEFS = /^#\/\$defs(?=\/|$)/;
18
105
  const RE_COMPONENTS_SCHEMAS = /^#\/components\/schemas(?=\/|$)/;
19
106
  /**
107
+ * Parses a raw Draft-07 JSON Schema into a `Document<"draft-2020-12">`.
108
+ *
109
+ * - Use when you have a JSON Schema that follows Draft-07 conventions.
110
+ * - Converts Draft-07 tuple syntax (`items` as array + `additionalItems`)
111
+ * to Draft-2020-12 form (`prefixItems` + `items`).
112
+ * - Rewrites `#/definitions/...` refs to `#/$defs/...`.
113
+ * - Extracts root-level `definitions` into the `definitions` field.
114
+ * - Does not mutate the input. Allocates a new `Document`.
115
+ * - Unsupported keywords (e.g. `if`/`then`/`else`, `$id`) are dropped.
116
+ *
117
+ * **Example** (Parsing a Draft-07 schema)
118
+ *
119
+ * ```ts
120
+ * import { JsonSchema } from "effect"
121
+ *
122
+ * const raw: JsonSchema.JsonSchema = {
123
+ * type: "object",
124
+ * properties: {
125
+ * tags: {
126
+ * type: "array",
127
+ * items: { type: "string" }
128
+ * }
129
+ * }
130
+ * }
131
+ *
132
+ * const doc = JsonSchema.fromSchemaDraft07(raw)
133
+ * console.log(doc.dialect) // "draft-2020-12"
134
+ * console.log(doc.schema.properties) // { tags: { type: "array", items: { type: "string" } } }
135
+ * ```
136
+ *
137
+ * @see {@link fromSchemaDraft2020_12}
138
+ * @see {@link fromSchemaOpenApi3_0}
139
+ * @see {@link toDocumentDraft07}
140
+ *
20
141
  * @since 4.0.0
21
142
  */
22
143
  export function fromSchemaDraft07(js) {
@@ -114,6 +235,32 @@ export function fromSchemaDraft07(js) {
114
235
  }
115
236
  }
116
237
  /**
238
+ * Parses a raw Draft-2020-12 JSON Schema into a `Document<"draft-2020-12">`.
239
+ *
240
+ * - Use when you already have a schema in Draft-2020-12 format.
241
+ * - Separates `$defs` from the root schema into the `definitions` field.
242
+ * - Does not mutate the input. Allocates a new `Document`.
243
+ * - Unlike {@link fromSchemaDraft07}, this performs no keyword rewriting.
244
+ *
245
+ * **Example** (Parsing a Draft-2020-12 schema)
246
+ *
247
+ * ```ts
248
+ * import { JsonSchema } from "effect"
249
+ *
250
+ * const raw: JsonSchema.JsonSchema = {
251
+ * type: "number",
252
+ * minimum: 0,
253
+ * $defs: { PositiveInt: { type: "integer", minimum: 1 } }
254
+ * }
255
+ *
256
+ * const doc = JsonSchema.fromSchemaDraft2020_12(raw)
257
+ * console.log(doc.schema) // { type: "number", minimum: 0 }
258
+ * console.log(doc.definitions) // { PositiveInt: { type: "integer", minimum: 1 } }
259
+ * ```
260
+ *
261
+ * @see {@link fromSchemaDraft07}
262
+ * @see {@link fromSchemaOpenApi3_1}
263
+ *
117
264
  * @since 4.0.0
118
265
  */
119
266
  export function fromSchemaDraft2020_12(js) {
@@ -128,6 +275,33 @@ export function fromSchemaDraft2020_12(js) {
128
275
  };
129
276
  }
130
277
  /**
278
+ * Parses a raw OpenAPI 3.1 JSON Schema into a `Document<"draft-2020-12">`.
279
+ *
280
+ * - Use when consuming schemas from an OpenAPI 3.1 specification.
281
+ * - Rewrites `#/components/schemas/...` refs to `#/$defs/...`.
282
+ * - Delegates to {@link fromSchemaDraft2020_12} after rewriting refs.
283
+ * - Does not mutate the input. Allocates a new `Document`.
284
+ *
285
+ * **Example** (Parsing an OpenAPI 3.1 schema)
286
+ *
287
+ * ```ts
288
+ * import { JsonSchema } from "effect"
289
+ *
290
+ * const raw: JsonSchema.JsonSchema = {
291
+ * type: "object",
292
+ * properties: {
293
+ * user: { $ref: "#/components/schemas/User" }
294
+ * }
295
+ * }
296
+ *
297
+ * const doc = JsonSchema.fromSchemaOpenApi3_1(raw)
298
+ * // $ref is rewritten to Draft-2020-12 form
299
+ * console.log(doc.schema.properties) // { user: { $ref: "#/$defs/User" } }
300
+ * ```
301
+ *
302
+ * @see {@link fromSchemaOpenApi3_0}
303
+ * @see {@link toMultiDocumentOpenApi3_1}
304
+ *
131
305
  * @since 4.0.0
132
306
  */
133
307
  export function fromSchemaOpenApi3_1(js) {
@@ -135,6 +309,33 @@ export function fromSchemaOpenApi3_1(js) {
135
309
  return fromSchemaDraft2020_12(schema);
136
310
  }
137
311
  /**
312
+ * Parses a raw OpenAPI 3.0 JSON Schema into a `Document<"draft-2020-12">`.
313
+ *
314
+ * - Use when consuming schemas from an OpenAPI 3.0 specification.
315
+ * - Handles OpenAPI 3.0 extensions: `nullable`, singular `example`,
316
+ * boolean `exclusiveMinimum`/`exclusiveMaximum`.
317
+ * - Normalizes the schema to Draft-07 first, then converts to
318
+ * Draft-2020-12 via {@link fromSchemaDraft07}.
319
+ * - Does not mutate the input. Allocates a new `Document`.
320
+ *
321
+ * **Example** (Parsing an OpenAPI 3.0 nullable schema)
322
+ *
323
+ * ```ts
324
+ * import { JsonSchema } from "effect"
325
+ *
326
+ * const raw: JsonSchema.JsonSchema = {
327
+ * type: "string",
328
+ * nullable: true
329
+ * }
330
+ *
331
+ * const doc = JsonSchema.fromSchemaOpenApi3_0(raw)
332
+ * // nullable is expanded into a type array
333
+ * console.log(doc.schema.type) // ["string", "null"]
334
+ * ```
335
+ *
336
+ * @see {@link fromSchemaOpenApi3_1}
337
+ * @see {@link fromSchemaDraft07}
338
+ *
138
339
  * @since 4.0.0
139
340
  */
140
341
  export function fromSchemaOpenApi3_0(schema) {
@@ -142,6 +343,36 @@ export function fromSchemaOpenApi3_0(schema) {
142
343
  return fromSchemaDraft07(normalized);
143
344
  }
144
345
  /**
346
+ * Converts a `Document<"draft-2020-12">` to a `Document<"draft-07">`.
347
+ *
348
+ * - Use when you need to output a schema in Draft-07 format.
349
+ * - Rewrites `#/$defs/...` refs to `#/definitions/...`.
350
+ * - Converts Draft-2020-12 tuple syntax (`prefixItems` + `items`) to
351
+ * Draft-07 form (`items` as array + `additionalItems`).
352
+ * - Converts both the root schema and all definitions.
353
+ * - Does not mutate the input. Allocates a new `Document`.
354
+ * - Unsupported Draft-2020-12 keywords are dropped.
355
+ *
356
+ * **Example** (Converting to Draft-07)
357
+ *
358
+ * ```ts
359
+ * import { JsonSchema } from "effect"
360
+ *
361
+ * const doc = JsonSchema.fromSchemaDraft2020_12({
362
+ * type: "array",
363
+ * prefixItems: [{ type: "string" }, { type: "number" }],
364
+ * items: { type: "boolean" }
365
+ * })
366
+ *
367
+ * const draft07 = JsonSchema.toDocumentDraft07(doc)
368
+ * console.log(draft07.dialect) // "draft-07"
369
+ * console.log(draft07.schema.items) // [{ type: "string" }, { type: "number" }]
370
+ * console.log(draft07.schema.additionalItems) // { type: "boolean" }
371
+ * ```
372
+ *
373
+ * @see {@link fromSchemaDraft07}
374
+ * @see {@link toMultiDocumentOpenApi3_1}
375
+ *
145
376
  * @since 4.0.0
146
377
  */
147
378
  export function toDocumentDraft07(document) {
@@ -151,10 +382,7 @@ export function toDocumentDraft07(document) {
151
382
  definitions: Rec.map(document.definitions, toSchemaDraft07)
152
383
  };
153
384
  }
154
- /**
155
- * @since 4.0.0
156
- */
157
- export function toSchemaDraft07(schema) {
385
+ function toSchemaDraft07(schema) {
158
386
  return rewrite(schema);
159
387
  function rewrite(node) {
160
388
  return walk(rewrite_refs(node, ref => ref.replace(RE_DEFS, "#/definitions")), true);
@@ -243,6 +471,38 @@ export function toSchemaDraft07(schema) {
243
471
  }
244
472
  }
245
473
  /**
474
+ * Converts a `MultiDocument<"draft-2020-12">` to a
475
+ * `MultiDocument<"openapi-3.1">`.
476
+ *
477
+ * - Use when generating an OpenAPI 3.1 specification from internal schemas.
478
+ * - Rewrites `#/$defs/...` refs to `#/components/schemas/...`.
479
+ * - Sanitizes definition keys to match the OpenAPI component key pattern
480
+ * (`^[a-zA-Z0-9.\-_]+$`), replacing invalid characters with `_`.
481
+ * - Updates all `$ref` pointers to use the sanitized keys.
482
+ * - Converts all schemas and definitions in the multi-document.
483
+ * - Does not mutate the input. Allocates a new `MultiDocument`.
484
+ *
485
+ * **Example** (Converting to OpenAPI 3.1)
486
+ *
487
+ * ```ts
488
+ * import { JsonSchema } from "effect"
489
+ *
490
+ * const multi: JsonSchema.MultiDocument<"draft-2020-12"> = {
491
+ * dialect: "draft-2020-12",
492
+ * schemas: [{ $ref: "#/$defs/User" }],
493
+ * definitions: {
494
+ * User: { type: "object", properties: { name: { type: "string" } } }
495
+ * }
496
+ * }
497
+ *
498
+ * const openapi = JsonSchema.toMultiDocumentOpenApi3_1(multi)
499
+ * console.log(openapi.dialect) // "openapi-3.1"
500
+ * console.log(openapi.schemas[0]) // { $ref: "#/components/schemas/User" }
501
+ * ```
502
+ *
503
+ * @see {@link toDocumentDraft07}
504
+ * @see {@link MultiDocument}
505
+ *
246
506
  * @since 4.0.0
247
507
  */
248
508
  export function toMultiDocumentOpenApi3_1(multiDocument) {
@@ -419,6 +679,35 @@ function widen_type(node) {
419
679
  return node;
420
680
  }
421
681
  /**
682
+ * Resolves a `$ref` string by looking up the last path segment in a
683
+ * definitions map.
684
+ *
685
+ * - Use when you need to dereference a `$ref` pointer to get the
686
+ * actual schema it points to.
687
+ * - Only resolves the final segment of the ref path (e.g. `"User"` from
688
+ * `"#/$defs/User"`); does not follow arbitrary JSON Pointer paths.
689
+ * - Returns `undefined` if the definition is not found.
690
+ * - Does not mutate anything. Pure function.
691
+ *
692
+ * **Example** (Resolving a $ref)
693
+ *
694
+ * ```ts
695
+ * import { JsonSchema } from "effect"
696
+ *
697
+ * const definitions: JsonSchema.Definitions = {
698
+ * User: { type: "object", properties: { name: { type: "string" } } }
699
+ * }
700
+ *
701
+ * const result = JsonSchema.resolve$ref("#/$defs/User", definitions)
702
+ * console.log(result) // { type: "object", properties: { name: { type: "string" } } }
703
+ *
704
+ * const missing = JsonSchema.resolve$ref("#/$defs/Unknown", definitions)
705
+ * console.log(missing) // undefined
706
+ * ```
707
+ *
708
+ * @see {@link resolveTopLevel$ref}
709
+ * @see {@link Definitions}
710
+ *
422
711
  * @since 4.0.0
423
712
  */
424
713
  export function resolve$ref($ref, definitions) {
@@ -432,6 +721,36 @@ export function resolve$ref($ref, definitions) {
432
721
  }
433
722
  }
434
723
  /**
724
+ * If the root schema of a document is a `$ref`, resolves it against the
725
+ * document's definitions and returns a new document with the inlined
726
+ * schema. Returns the original document unchanged if the root schema is
727
+ * not a `$ref` or if the referenced definition is not found.
728
+ *
729
+ * - Use to dereference a top-level `$ref` before inspecting the root
730
+ * schema's properties directly.
731
+ * - Does not mutate the input. Returns the same object if no change is
732
+ * needed, or a shallow copy with the resolved schema.
733
+ *
734
+ * **Example** (Resolving a top-level $ref)
735
+ *
736
+ * ```ts
737
+ * import { JsonSchema } from "effect"
738
+ *
739
+ * const doc: JsonSchema.Document<"draft-2020-12"> = {
740
+ * dialect: "draft-2020-12",
741
+ * schema: { $ref: "#/$defs/User" },
742
+ * definitions: {
743
+ * User: { type: "object", properties: { name: { type: "string" } } }
744
+ * }
745
+ * }
746
+ *
747
+ * const resolved = JsonSchema.resolveTopLevel$ref(doc)
748
+ * console.log(resolved.schema) // { type: "object", properties: { name: { type: "string" } } }
749
+ * ```
750
+ *
751
+ * @see {@link resolve$ref}
752
+ * @see {@link Document}
753
+ *
435
754
  * @since 4.0.0
436
755
  */
437
756
  export function resolveTopLevel$ref(document) {
@@ -1 +1 @@
1
- {"version":3,"file":"JsonSchema.js","names":["Arr","unescapeToken","Predicate","Rec","META_SCHEMA_URI_DRAFT_07","META_SCHEMA_URI_DRAFT_2020_12","RE_DEFINITIONS","RE_DEFS","RE_COMPONENTS_SCHEMAS","fromSchemaDraft07","js","definitions","schema","walk","dialect","node","isRoot","Array","isArray","map","v","isObject","out","prefixItems","undefined","additionalItems","k","Object","keys","$ref","replace","mapped","walk_object","x","items","fromSchemaDraft2020_12","$defs","fromSchemaOpenApi3_1","rewrite_refs","ref","fromSchemaOpenApi3_0","normalized","normalize_OpenApi3_0_to_Draft07","toDocumentDraft07","document","toSchemaDraft07","rewrite","_isRoot","src","toMultiDocumentOpenApi3_1","multiDocument","keyMap","Map","key","sanitized","sanitizeOpenApiComponentsSchemasKey","set","tokens","split","length","identifier","get","slice","join","schemas","mapEntries","definition","VALID_OPEN_API_COMPONENTS_SCHEMAS_KEY_REGEXP","s","test","ch","code","codePointAt","push","f","value","examples","adjust_exclusivity","nullable","apply_nullable","exclusiveMinimum","minimum","exclusiveMaximum","maximum","enum","widen_type","includes","type","const","anyOf","t","resolve$ref","resolveTopLevel$ref"],"sources":["../src/JsonSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"JsonSchema.js","names":["Arr","unescapeToken","Predicate","Rec","META_SCHEMA_URI_DRAFT_07","META_SCHEMA_URI_DRAFT_2020_12","RE_DEFINITIONS","RE_DEFS","RE_COMPONENTS_SCHEMAS","fromSchemaDraft07","js","definitions","schema","walk","dialect","node","isRoot","Array","isArray","map","v","isObject","out","prefixItems","undefined","additionalItems","k","Object","keys","$ref","replace","mapped","walk_object","x","items","fromSchemaDraft2020_12","$defs","fromSchemaOpenApi3_1","rewrite_refs","ref","fromSchemaOpenApi3_0","normalized","normalize_OpenApi3_0_to_Draft07","toDocumentDraft07","document","toSchemaDraft07","rewrite","_isRoot","src","toMultiDocumentOpenApi3_1","multiDocument","keyMap","Map","key","sanitized","sanitizeOpenApiComponentsSchemasKey","set","tokens","split","length","identifier","get","slice","join","schemas","mapEntries","definition","VALID_OPEN_API_COMPONENTS_SCHEMAS_KEY_REGEXP","s","test","ch","code","codePointAt","push","f","value","examples","adjust_exclusivity","nullable","apply_nullable","exclusiveMinimum","minimum","exclusiveMaximum","maximum","enum","widen_type","includes","type","const","anyOf","t","resolve$ref","resolveTopLevel$ref"],"sources":["../src/JsonSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * @since 3.8.0
3
+ */
4
+ import type * as Effect from "./Effect.ts";
5
+ /**
6
+ * @category models
7
+ * @since 3.8.0
8
+ * @example
9
+ * ```ts
10
+ * import { Effect, Latch } from "effect"
11
+ *
12
+ * // Create and use a latch for coordination between fibers
13
+ * const program = Effect.gen(function*() {
14
+ * const latch = yield* Latch.make()
15
+ *
16
+ * // Wait for the latch to be opened
17
+ * yield* latch.await
18
+ *
19
+ * return "Latch was opened!"
20
+ * })
21
+ * ```
22
+ */
23
+ export interface Latch {
24
+ /** open the latch, releasing all fibers waiting on it */
25
+ readonly open: Effect.Effect<boolean>;
26
+ /** open the latch, releasing all fibers waiting on it */
27
+ readonly openUnsafe: () => boolean;
28
+ /** release all fibers waiting on the latch, without opening it */
29
+ readonly release: Effect.Effect<boolean>;
30
+ /** wait for the latch to be opened */
31
+ readonly await: Effect.Effect<void>;
32
+ /** close the latch */
33
+ readonly close: Effect.Effect<boolean>;
34
+ /** close the latch */
35
+ readonly closeUnsafe: () => boolean;
36
+ /** only run the given effect when the latch is open */
37
+ readonly whenOpen: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
38
+ }
39
+ /**
40
+ * Creates a new Latch unsafely.
41
+ *
42
+ * **Previously Known As**
43
+ *
44
+ * This API replaces the following from Effect 3.x:
45
+ *
46
+ * - `Effect.makeLatchUnsafe`
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * import { Effect, Latch } from "effect"
51
+ *
52
+ * const latch = Latch.makeUnsafe(false)
53
+ *
54
+ * const waiter = Effect.gen(function*() {
55
+ * yield* Effect.log("Waiting for latch to open...")
56
+ * yield* latch.await
57
+ * yield* Effect.log("Latch opened! Continuing...")
58
+ * })
59
+ *
60
+ * const opener = Effect.gen(function*() {
61
+ * yield* Effect.sleep("2 seconds")
62
+ * yield* Effect.log("Opening latch...")
63
+ * yield* latch.open
64
+ * })
65
+ *
66
+ * const program = Effect.all([waiter, opener])
67
+ * ```
68
+ *
69
+ * @category constructors
70
+ * @since 3.8.0
71
+ */
72
+ export declare const makeUnsafe: (open?: boolean | undefined) => Latch;
73
+ /**
74
+ * Creates a new Latch.
75
+ *
76
+ * **Previously Known As**
77
+ *
78
+ * This API replaces the following from Effect 3.x:
79
+ *
80
+ * - `Effect.makeLatch`
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * import { Effect, Latch } from "effect"
85
+ *
86
+ * const program = Effect.gen(function*() {
87
+ * const latch = yield* Latch.make(false)
88
+ *
89
+ * const waiter = Effect.gen(function*() {
90
+ * yield* Effect.log("Waiting for latch to open...")
91
+ * yield* latch.await
92
+ * yield* Effect.log("Latch opened! Continuing...")
93
+ * })
94
+ *
95
+ * const opener = Effect.gen(function*() {
96
+ * yield* Effect.sleep("2 seconds")
97
+ * yield* Effect.log("Opening latch...")
98
+ * yield* latch.open
99
+ * })
100
+ *
101
+ * yield* Effect.all([waiter, opener])
102
+ * })
103
+ * ```
104
+ *
105
+ * @category constructors
106
+ * @since 3.8.0
107
+ */
108
+ export declare const make: (open?: boolean | undefined) => Effect.Effect<Latch>;
109
+ //# sourceMappingURL=Latch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Latch.d.ts","sourceRoot":"","sources":["../src/Latch.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAG1C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,KAAK;IACpB,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACrC,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAA;IAClC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxC,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnC,sBAAsB;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtC,sBAAsB;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAA;IACnC,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACrF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,KAAK,KAAgC,CAAA;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAsB,CAAA"}
package/dist/Latch.js ADDED
@@ -0,0 +1,72 @@
1
+ import * as internal from "./internal/effect.js";
2
+ /**
3
+ * Creates a new Latch unsafely.
4
+ *
5
+ * **Previously Known As**
6
+ *
7
+ * This API replaces the following from Effect 3.x:
8
+ *
9
+ * - `Effect.makeLatchUnsafe`
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { Effect, Latch } from "effect"
14
+ *
15
+ * const latch = Latch.makeUnsafe(false)
16
+ *
17
+ * const waiter = Effect.gen(function*() {
18
+ * yield* Effect.log("Waiting for latch to open...")
19
+ * yield* latch.await
20
+ * yield* Effect.log("Latch opened! Continuing...")
21
+ * })
22
+ *
23
+ * const opener = Effect.gen(function*() {
24
+ * yield* Effect.sleep("2 seconds")
25
+ * yield* Effect.log("Opening latch...")
26
+ * yield* latch.open
27
+ * })
28
+ *
29
+ * const program = Effect.all([waiter, opener])
30
+ * ```
31
+ *
32
+ * @category constructors
33
+ * @since 3.8.0
34
+ */
35
+ export const makeUnsafe = internal.makeLatchUnsafe;
36
+ /**
37
+ * Creates a new Latch.
38
+ *
39
+ * **Previously Known As**
40
+ *
41
+ * This API replaces the following from Effect 3.x:
42
+ *
43
+ * - `Effect.makeLatch`
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * import { Effect, Latch } from "effect"
48
+ *
49
+ * const program = Effect.gen(function*() {
50
+ * const latch = yield* Latch.make(false)
51
+ *
52
+ * const waiter = Effect.gen(function*() {
53
+ * yield* Effect.log("Waiting for latch to open...")
54
+ * yield* latch.await
55
+ * yield* Effect.log("Latch opened! Continuing...")
56
+ * })
57
+ *
58
+ * const opener = Effect.gen(function*() {
59
+ * yield* Effect.sleep("2 seconds")
60
+ * yield* Effect.log("Opening latch...")
61
+ * yield* latch.open
62
+ * })
63
+ *
64
+ * yield* Effect.all([waiter, opener])
65
+ * })
66
+ * ```
67
+ *
68
+ * @category constructors
69
+ * @since 3.8.0
70
+ */
71
+ export const make = internal.makeLatch;
72
+ //# sourceMappingURL=Latch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Latch.js","names":["internal","makeUnsafe","makeLatchUnsafe","make","makeLatch"],"sources":["../src/Latch.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;AAqChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,OAAO,MAAMC,UAAU,GAA0CD,QAAQ,CAACE,eAAe;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,OAAO,MAAMC,IAAI,GAAyDH,QAAQ,CAACI,SAAS","ignoreList":[]}