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 +1 @@
1
- {"version":3,"file":"Optic.d.ts","sourceRoot":"","sources":["../src/Optic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Optic.d.ts","sourceRoot":"","sources":["../src/Optic.ts"],"names":[],"mappings":"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"}
package/dist/Optic.js CHANGED
@@ -1,9 +1,98 @@
1
1
  /**
2
- * Design: "pretty good" persistency.
3
- * Real updates copy only the path; unrelated branches keep referential identity.
4
- * No-op updates may still allocate a new root/parents — callers must not rely on identity for no-ops.
2
+ * Composable, immutable accessors for reading and updating nested data
3
+ * structures without mutation.
4
+ *
5
+ * **Mental model**
6
+ *
7
+ * - **Optic** — a first-class reference to a piece inside a larger structure.
8
+ * Compose optics to reach deeply nested values.
9
+ * - **Iso** — lossless two-way conversion (`get`/`set`) between `S` and `A`.
10
+ * Extends both {@link Lens} and {@link Prism}.
11
+ * - **Lens** — focuses on exactly one part of `S`. `get` always succeeds;
12
+ * `replace` needs the original `S` to produce the updated whole.
13
+ * - **Prism** — focuses on a part that may not be present (e.g. a union
14
+ * variant). `getResult` can fail; `set` builds a new `S` from `A` alone.
15
+ * - **Optional** — the most general optic: both reading and writing can fail.
16
+ * - **Traversal** — focuses on zero or more elements of an array-like
17
+ * structure. Technically `Optional<S, ReadonlyArray<A>>`.
18
+ * - **Hierarchy** (strongest → weakest):
19
+ * `Iso > Lens | Prism > Optional`. Composing a weaker optic with any other
20
+ * produces the weaker kind.
21
+ *
22
+ * **Common tasks**
23
+ *
24
+ * - Start a chain → {@link id} (identity iso)
25
+ * - Drill into a struct key → `.key("name")` / `.optionalKey("name")`
26
+ * - Drill into a key that may not exist → `.at("name")`
27
+ * - Narrow a tagged union → `.tag("MyVariant")`
28
+ * - Narrow by type guard → `.refine(guard)`
29
+ * - Add validation → `.check(Schema.isGreaterThan(0))`
30
+ * - Filter out `undefined` → `.notUndefined()`
31
+ * - Pick/omit struct keys → `.pick(["a","b"])` / `.omit(["c"])`
32
+ * - Traverse array elements → `.forEach(el => el.key("field"))`
33
+ * - Build an iso → {@link makeIso}
34
+ * - Build a lens → {@link makeLens}
35
+ * - Build a prism → {@link makePrism}, {@link fromChecks}
36
+ * - Build an optional → {@link makeOptional}
37
+ * - Focus into `Option.Some` → {@link some}
38
+ * - Focus into `Result.Success`/`Failure` → {@link success}, {@link failure}
39
+ * - Convert record ↔ entries → {@link entries}
40
+ * - Extract all traversal elements → {@link getAll}
41
+ *
42
+ * **Gotchas**
43
+ *
44
+ * - Updates are structurally persistent: only nodes on the path are cloned.
45
+ * Unrelated branches keep referential identity. However, **no-op updates
46
+ * may still allocate** a new root — do not rely on reference identity to
47
+ * detect no-ops.
48
+ * - `replace` silently returns the original `S` when the optic cannot focus
49
+ * (e.g. wrong tag). Use `replaceResult` for explicit failure.
50
+ * - `modify` also returns the original `S` on focus failure — it never throws.
51
+ * - `.key()` and `.optionalKey()` do not work on union types (compile error).
52
+ * - Only plain objects (`Object.prototype` or `null` prototype) and arrays can
53
+ * be cloned. Class instances cause a runtime error on `replace`/`modify`.
54
+ *
55
+ * **Quickstart**
56
+ *
57
+ * **Example** (reading and updating nested state)
58
+ *
59
+ * ```ts
60
+ * import { Optic } from "effect"
61
+ *
62
+ * type State = { user: { name: string; age: number } }
63
+ *
64
+ * const _age = Optic.id<State>().key("user").key("age")
65
+ *
66
+ * const s1: State = { user: { name: "Alice", age: 30 } }
67
+ *
68
+ * // Read
69
+ * console.log(_age.get(s1))
70
+ * // Output: 30
71
+ *
72
+ * // Update immutably
73
+ * const s2 = _age.replace(31, s1)
74
+ * console.log(s2)
75
+ * // Output: { user: { name: "Alice", age: 31 } }
76
+ *
77
+ * // Modify with a function
78
+ * const s3 = _age.modify((n) => n + 1)(s1)
79
+ * console.log(s3)
80
+ * // Output: { user: { name: "Alice", age: 31 } }
81
+ *
82
+ * // Referential identity is preserved for unrelated branches
83
+ * console.log(s2.user !== s1.user)
84
+ * // Output: true (on the path)
85
+ * ```
86
+ *
87
+ * **See also**
88
+ *
89
+ * - {@link id} — entry point for optic chains
90
+ * - {@link Lens} / {@link Prism} / {@link Optional} — core optic types
91
+ * - {@link Traversal} / {@link getAll} — multi-focus optics
92
+ * - {@link some} / {@link success} / {@link failure} — built-in prisms
5
93
  *
6
94
  * @since 4.0.0
95
+ * @module
7
96
  */
8
97
  import { format } from "./Formatter.js";
9
98
  import { identity, memoize } from "./Function.js";
@@ -13,6 +102,37 @@ import * as Result from "./Result.js";
13
102
  import * as AST from "./SchemaAST.js";
14
103
  import * as Struct from "./Struct.js";
15
104
  /**
105
+ * Creates an {@link Iso} from a pair of conversion functions.
106
+ *
107
+ * When to use:
108
+ * - You have two pure functions that form a lossless round-trip between `S`
109
+ * and `A`.
110
+ *
111
+ * Behavior:
112
+ * - Does not mutate inputs.
113
+ * - The returned optic can be composed with any other optic.
114
+ *
115
+ * **Example** (wrapping/unwrapping a branded type)
116
+ *
117
+ * ```ts
118
+ * import { Optic } from "effect"
119
+ *
120
+ * type Meters = { readonly value: number }
121
+ * const meters = Optic.makeIso<Meters, number>(
122
+ * (m) => m.value,
123
+ * (n) => ({ value: n })
124
+ * )
125
+ *
126
+ * console.log(meters.get({ value: 100 }))
127
+ * // Output: 100
128
+ *
129
+ * console.log(meters.set(42))
130
+ * // Output: { value: 42 }
131
+ * ```
132
+ *
133
+ * @see {@link Iso} — the type this function returns
134
+ * @see {@link id} — identity iso (no conversion)
135
+ *
16
136
  * @category Constructors
17
137
  * @since 4.0.0
18
138
  */
@@ -20,6 +140,37 @@ export function makeIso(get, set) {
20
140
  return make(new IsoNode(get, set));
21
141
  }
22
142
  /**
143
+ * Creates a {@link Lens} from a getter and a replacer.
144
+ *
145
+ * When to use:
146
+ * - You can always extract `A` from `S` and produce a new `S` by
147
+ * substituting a new `A`.
148
+ *
149
+ * Behavior:
150
+ * - Does not mutate inputs.
151
+ * - `replace(a, s)` should return a structurally new `S` with `a` in place
152
+ * of the old focus.
153
+ *
154
+ * **Example** (lens into the first element of a pair)
155
+ *
156
+ * ```ts
157
+ * import { Optic } from "effect"
158
+ *
159
+ * const _first = Optic.makeLens<readonly [string, number], string>(
160
+ * (pair) => pair[0],
161
+ * (s, pair) => [s, pair[1]]
162
+ * )
163
+ *
164
+ * console.log(_first.get(["hello", 42]))
165
+ * // Output: "hello"
166
+ *
167
+ * console.log(_first.replace("world", ["hello", 42]))
168
+ * // Output: ["world", 42]
169
+ * ```
170
+ *
171
+ * @see {@link Lens} — the type this function returns
172
+ * @see {@link makeIso} — when no original `S` is needed for `set`
173
+ *
23
174
  * @category Constructors
24
175
  * @since 4.0.0
25
176
  */
@@ -27,6 +178,39 @@ export function makeLens(get, replace) {
27
178
  return make(new LensNode(get, replace));
28
179
  }
29
180
  /**
181
+ * Creates a {@link Prism} from a fallible getter and an infallible setter.
182
+ *
183
+ * When to use:
184
+ * - Reading can fail (the part may not exist in `S`), but building `S`
185
+ * from `A` always succeeds.
186
+ *
187
+ * Behavior:
188
+ * - Does not mutate inputs.
189
+ * - `getResult` should return `Result.fail(message)` on mismatch.
190
+ *
191
+ * **Example** (parsing a string to a number)
192
+ *
193
+ * ```ts
194
+ * import { Optic, Result } from "effect"
195
+ *
196
+ * const numeric = Optic.makePrism<string, number>(
197
+ * (s) => {
198
+ * const n = Number(s)
199
+ * return Number.isNaN(n) ? Result.fail("not a number") : Result.succeed(n)
200
+ * },
201
+ * String
202
+ * )
203
+ *
204
+ * console.log(Result.isSuccess(numeric.getResult("42")))
205
+ * // Output: true
206
+ *
207
+ * console.log(numeric.set(42))
208
+ * // Output: "42"
209
+ * ```
210
+ *
211
+ * @see {@link Prism} — the type this function returns
212
+ * @see {@link fromChecks} — build from `Schema` checks instead
213
+ *
30
214
  * @category Constructors
31
215
  * @since 4.0.0
32
216
  */
@@ -34,6 +218,39 @@ export function makePrism(getResult, set) {
34
218
  return make(new PrismNode(getResult, set));
35
219
  }
36
220
  /**
221
+ * Creates a {@link Prism} from one or more `Schema` validation checks.
222
+ *
223
+ * When to use:
224
+ * - You want to narrow `T` to the subset that passes certain validation
225
+ * rules (e.g. positive integer).
226
+ * - You already have `Schema.isGreaterThan`, `Schema.isInt`, etc.
227
+ *
228
+ * Behavior:
229
+ * - `getResult` runs all checks; fails with a combined error message when
230
+ * any check fails.
231
+ * - `set` is identity — the value passes through unchanged.
232
+ * - Does not mutate inputs.
233
+ *
234
+ * **Example** (positive integer prism)
235
+ *
236
+ * ```ts
237
+ * import { Optic, Result, Schema } from "effect"
238
+ *
239
+ * const posInt = Optic.fromChecks<number>(
240
+ * Schema.isGreaterThan(0),
241
+ * Schema.isInt()
242
+ * )
243
+ *
244
+ * console.log(Result.isSuccess(posInt.getResult(3)))
245
+ * // Output: true
246
+ *
247
+ * console.log(Result.isFailure(posInt.getResult(-1)))
248
+ * // Output: true
249
+ * ```
250
+ *
251
+ * @see {@link makePrism} — constructor with custom getter/setter
252
+ * @see {@link Prism} — the type this function returns
253
+ *
37
254
  * @category Constructors
38
255
  * @since 4.0.0
39
256
  */
@@ -143,6 +360,42 @@ function compose(a, b) {
143
360
  }
144
361
  }
145
362
  /**
363
+ * Creates an {@link Optional} from a fallible getter and a fallible setter.
364
+ *
365
+ * When to use:
366
+ * - Both reading and writing can fail.
367
+ *
368
+ * Behavior:
369
+ * - Does not mutate inputs.
370
+ * - `getResult` should return `Result.fail(message)` on mismatch.
371
+ * - `set` should return `Result.fail(message)` when the update cannot be
372
+ * applied.
373
+ *
374
+ * **Example** (safe record key access)
375
+ *
376
+ * ```ts
377
+ * import { Optic, Result } from "effect"
378
+ *
379
+ * const atKey = (key: string) =>
380
+ * Optic.makeOptional<Record<string, number>, number>(
381
+ * (s) =>
382
+ * Object.hasOwn(s, key)
383
+ * ? Result.succeed(s[key])
384
+ * : Result.fail(`Key "${key}" not found`),
385
+ * (a, s) =>
386
+ * Object.hasOwn(s, key)
387
+ * ? Result.succeed({ ...s, [key]: a })
388
+ * : Result.fail(`Key "${key}" not found`)
389
+ * )
390
+ *
391
+ * console.log(Result.isSuccess(atKey("x").getResult({ x: 1 })))
392
+ * // Output: true
393
+ * ```
394
+ *
395
+ * @see {@link Optional} — the type this function returns
396
+ * @see {@link makeLens} — when reading always succeeds
397
+ * @see {@link makePrism} — when writing always succeeds
398
+ *
146
399
  * @category Constructors
147
400
  * @since 4.0.0
148
401
  */
@@ -460,7 +713,39 @@ function getCompositionTag(a, b) {
460
713
  // Derived APIs
461
714
  // ---------------------------------------------
462
715
  /**
463
- * Returns all the elements focused by the traversal.
716
+ * Returns a function that extracts all elements focused by a
717
+ * {@link Traversal} as a plain mutable array.
718
+ *
719
+ * When to use:
720
+ * - You need the focused values as a simple `Array<A>` for further
721
+ * processing.
722
+ *
723
+ * Behavior:
724
+ * - Returns an empty array when the traversal cannot focus.
725
+ * - Always returns a fresh array (safe to mutate).
726
+ * - Does not mutate the source.
727
+ *
728
+ * **Example** (collecting positive numbers)
729
+ *
730
+ * ```ts
731
+ * import { Optic, Schema } from "effect"
732
+ *
733
+ * type S = { readonly values: ReadonlyArray<number> }
734
+ *
735
+ * const _pos = Optic.id<S>()
736
+ * .key("values")
737
+ * .forEach((n) => n.check(Schema.isGreaterThan(0)))
738
+ *
739
+ * const getPositive = Optic.getAll(_pos)
740
+ *
741
+ * console.log(getPositive({ values: [3, -1, 5] }))
742
+ * // Output: [3, 5]
743
+ *
744
+ * console.log(getPositive({ values: [-1, -2] }))
745
+ * // Output: []
746
+ * ```
747
+ *
748
+ * @see {@link Traversal} — the optic type this operates on
464
749
  *
465
750
  * @category Traversal
466
751
  * @since 4.0.0
@@ -476,7 +761,31 @@ export function getAll(traversal) {
476
761
  // ---------------------------------------------
477
762
  const identityIso = /*#__PURE__*/make(identityNode);
478
763
  /**
479
- * The identity optic.
764
+ * The identity {@link Iso}. Focuses on the whole value unchanged.
765
+ *
766
+ * When to use:
767
+ * - As the starting point of an optic chain: `Optic.id<S>().key("x")...`
768
+ * - Anywhere an `Iso<S, S>` is needed.
769
+ *
770
+ * Behavior:
771
+ * - `get(s)` returns `s`.
772
+ * - `set(a)` returns `a`.
773
+ * - Singleton — every call returns the same instance.
774
+ *
775
+ * **Example** (starting an optic chain)
776
+ *
777
+ * ```ts
778
+ * import { Optic } from "effect"
779
+ *
780
+ * type S = { readonly x: number }
781
+ *
782
+ * const _x = Optic.id<S>().key("x")
783
+ *
784
+ * console.log(_x.get({ x: 42 }))
785
+ * // Output: 42
786
+ * ```
787
+ *
788
+ * @see {@link Iso} — the type this function returns
480
789
  *
481
790
  * @category Iso
482
791
  * @since 4.0.0
@@ -485,6 +794,35 @@ export function id() {
485
794
  return identityIso;
486
795
  }
487
796
  /**
797
+ * An {@link Iso} that converts a `Record<string, A>` to an array of
798
+ * `[key, value]` entries and back.
799
+ *
800
+ * When to use:
801
+ * - You want to traverse or manipulate record entries as an array (e.g.
802
+ * with `.forEach()`).
803
+ *
804
+ * Behavior:
805
+ * - `get` uses `Object.entries`.
806
+ * - `set` uses `Object.fromEntries`.
807
+ * - Round-trip is lossless for `Record<string, A>`.
808
+ *
809
+ * **Example** (traversing record values)
810
+ *
811
+ * ```ts
812
+ * import { Optic, Schema } from "effect"
813
+ *
814
+ * const _positiveValues = Optic.entries<number>()
815
+ * .forEach((entry) => entry.key(1).check(Schema.isGreaterThan(0)))
816
+ *
817
+ * const inc = _positiveValues.modifyAll((n) => n + 1)
818
+ *
819
+ * console.log(inc({ a: 0, b: 3, c: -1 }))
820
+ * // Output: { a: 0, b: 4, c: -1 }
821
+ * ```
822
+ *
823
+ * @see {@link Iso} — the type this function returns
824
+ * @see {@link id} — identity iso
825
+ *
488
826
  * @category Iso
489
827
  * @since 4.0.0
490
828
  */
@@ -492,6 +830,36 @@ export function entries() {
492
830
  return make(new IsoNode(Object.entries, Object.fromEntries));
493
831
  }
494
832
  /**
833
+ * A {@link Prism} that focuses on the value inside `Option.Some`.
834
+ *
835
+ * When to use:
836
+ * - You have an `Option<A>` and want to read/update the inner value only
837
+ * when it is `Some`.
838
+ *
839
+ * Behavior:
840
+ * - `getResult` fails with an error message when the option is `None`.
841
+ * - `set(a)` wraps `a` in `Option.some(a)`.
842
+ *
843
+ * **Example** (accessing Some value)
844
+ *
845
+ * ```ts
846
+ * import { Optic, Option, Result } from "effect"
847
+ *
848
+ * const _some = Optic.id<Option.Option<number>>().compose(Optic.some())
849
+ *
850
+ * console.log(Result.isSuccess(_some.getResult(Option.some(42))))
851
+ * // Output: true
852
+ *
853
+ * console.log(Result.isFailure(_some.getResult(Option.none())))
854
+ * // Output: true
855
+ *
856
+ * console.log(_some.set(10))
857
+ * // Output: { _tag: "Some", value: 10 }
858
+ * ```
859
+ *
860
+ * @see {@link none} — focuses on `None` instead
861
+ * @see {@link Prism} — the type this function returns
862
+ *
495
863
  * @category Prism
496
864
  * @since 4.0.0
497
865
  */
@@ -505,6 +873,33 @@ export function some() {
505
873
  }), Option.some);
506
874
  }
507
875
  /**
876
+ * A {@link Prism} that focuses on `Option.None`, exposing `undefined`.
877
+ *
878
+ * When to use:
879
+ * - You want to match or construct `None` values within an optic chain.
880
+ *
881
+ * Behavior:
882
+ * - `getResult` succeeds with `undefined` when the option is `None`.
883
+ * - `getResult` fails when the option is `Some`.
884
+ * - `set(undefined)` produces `Option.none()`.
885
+ *
886
+ * **Example** (matching None)
887
+ *
888
+ * ```ts
889
+ * import { Optic, Option, Result } from "effect"
890
+ *
891
+ * const _none = Optic.id<Option.Option<number>>().compose(Optic.none())
892
+ *
893
+ * console.log(Result.isSuccess(_none.getResult(Option.none())))
894
+ * // Output: true
895
+ *
896
+ * console.log(Result.isFailure(_none.getResult(Option.some(1))))
897
+ * // Output: true
898
+ * ```
899
+ *
900
+ * @see {@link some} — focuses on `Some` instead
901
+ * @see {@link Prism} — the type this function returns
902
+ *
508
903
  * @category Prism
509
904
  * @since 4.0.0
510
905
  */
@@ -518,6 +913,33 @@ export function none() {
518
913
  }), () => Option.none());
519
914
  }
520
915
  /**
916
+ * A {@link Prism} that focuses on the success value of a `Result`.
917
+ *
918
+ * When to use:
919
+ * - You have a `Result<A, E>` and want to read/update `A` only when it
920
+ * is a `Success`.
921
+ *
922
+ * Behavior:
923
+ * - `getResult` fails when the result is a `Failure`.
924
+ * - `set(a)` produces `Result.succeed(a)`.
925
+ *
926
+ * **Example** (accessing success)
927
+ *
928
+ * ```ts
929
+ * import { Optic, Result } from "effect"
930
+ *
931
+ * const _ok = Optic.id<Result.Result<number, string>>().compose(Optic.success())
932
+ *
933
+ * console.log(Result.isSuccess(_ok.getResult(Result.succeed(42))))
934
+ * // Output: true
935
+ *
936
+ * console.log(Result.isFailure(_ok.getResult(Result.fail("err"))))
937
+ * // Output: true
938
+ * ```
939
+ *
940
+ * @see {@link failure} — focuses on the failure side
941
+ * @see {@link Prism} — the type this function returns
942
+ *
521
943
  * @category Prism
522
944
  * @since 4.0.0
523
945
  */
@@ -531,6 +953,33 @@ export function success() {
531
953
  }), Result.succeed);
532
954
  }
533
955
  /**
956
+ * A {@link Prism} that focuses on the failure value of a `Result`.
957
+ *
958
+ * When to use:
959
+ * - You have a `Result<A, E>` and want to read/update `E` only when it
960
+ * is a `Failure`.
961
+ *
962
+ * Behavior:
963
+ * - `getResult` fails when the result is a `Success`.
964
+ * - `set(e)` produces `Result.fail(e)`.
965
+ *
966
+ * **Example** (accessing failure)
967
+ *
968
+ * ```ts
969
+ * import { Optic, Result } from "effect"
970
+ *
971
+ * const _err = Optic.id<Result.Result<number, string>>().compose(Optic.failure())
972
+ *
973
+ * console.log(Result.isSuccess(_err.getResult(Result.fail("oops"))))
974
+ * // Output: true
975
+ *
976
+ * console.log(Result.isFailure(_err.getResult(Result.succeed(42))))
977
+ * // Output: true
978
+ * ```
979
+ *
980
+ * @see {@link success} — focuses on the success side
981
+ * @see {@link Prism} — the type this function returns
982
+ *
534
983
  * @category Prism
535
984
  * @since 4.0.0
536
985
  */