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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (881) hide show
  1. package/dist/Array.d.ts +127 -299
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +102 -62
  4. package/dist/Array.js.map +1 -1
  5. package/dist/Cache.d.ts +2 -2
  6. package/dist/Cache.d.ts.map +1 -1
  7. package/dist/Cache.js +6 -5
  8. package/dist/Cache.js.map +1 -1
  9. package/dist/Cause.d.ts +1 -1
  10. package/dist/Cause.d.ts.map +1 -1
  11. package/dist/Channel.d.ts +116 -30
  12. package/dist/Channel.d.ts.map +1 -1
  13. package/dist/Channel.js +82 -37
  14. package/dist/Channel.js.map +1 -1
  15. package/dist/Chunk.d.ts +54 -247
  16. package/dist/Chunk.d.ts.map +1 -1
  17. package/dist/Chunk.js +36 -67
  18. package/dist/Chunk.js.map +1 -1
  19. package/dist/Combiner.d.ts +280 -13
  20. package/dist/Combiner.d.ts.map +1 -1
  21. package/dist/Combiner.js +198 -7
  22. package/dist/Combiner.js.map +1 -1
  23. package/dist/Config.d.ts +165 -9
  24. package/dist/Config.d.ts.map +1 -1
  25. package/dist/Config.js +62 -7
  26. package/dist/Config.js.map +1 -1
  27. package/dist/ConfigProvider.d.ts +1 -1
  28. package/dist/Cron.d.ts +1 -1
  29. package/dist/Data.d.ts +534 -365
  30. package/dist/Data.d.ts.map +1 -1
  31. package/dist/Data.js +132 -79
  32. package/dist/Data.js.map +1 -1
  33. package/dist/DateTime.d.ts +23 -161
  34. package/dist/DateTime.d.ts.map +1 -1
  35. package/dist/DateTime.js +6 -51
  36. package/dist/DateTime.js.map +1 -1
  37. package/dist/Duration.d.ts +12 -12
  38. package/dist/Duration.d.ts.map +1 -1
  39. package/dist/Duration.js +12 -12
  40. package/dist/Duration.js.map +1 -1
  41. package/dist/Effect.d.ts +829 -692
  42. package/dist/Effect.d.ts.map +1 -1
  43. package/dist/Effect.js +263 -251
  44. package/dist/Effect.js.map +1 -1
  45. package/dist/Encoding.d.ts +194 -0
  46. package/dist/Encoding.d.ts.map +1 -0
  47. package/dist/Encoding.js +352 -0
  48. package/dist/Encoding.js.map +1 -0
  49. package/dist/Equal.d.ts +276 -109
  50. package/dist/Equal.d.ts.map +1 -1
  51. package/dist/Equal.js +124 -48
  52. package/dist/Equal.js.map +1 -1
  53. package/dist/ErrorReporter.d.ts +376 -0
  54. package/dist/ErrorReporter.d.ts.map +1 -0
  55. package/dist/ErrorReporter.js +246 -0
  56. package/dist/ErrorReporter.js.map +1 -0
  57. package/dist/Fiber.d.ts +2 -2
  58. package/dist/Fiber.d.ts.map +1 -1
  59. package/dist/Fiber.js.map +1 -1
  60. package/dist/FileSystem.d.ts +1 -1
  61. package/dist/FileSystem.d.ts.map +1 -1
  62. package/dist/FileSystem.js +5 -5
  63. package/dist/FileSystem.js.map +1 -1
  64. package/dist/Filter.d.ts +30 -34
  65. package/dist/Filter.d.ts.map +1 -1
  66. package/dist/Filter.js +15 -13
  67. package/dist/Filter.js.map +1 -1
  68. package/dist/Formatter.d.ts +131 -47
  69. package/dist/Formatter.d.ts.map +1 -1
  70. package/dist/Formatter.js +229 -51
  71. package/dist/Formatter.js.map +1 -1
  72. package/dist/Graph.d.ts +1 -1
  73. package/dist/Graph.d.ts.map +1 -1
  74. package/dist/Graph.js +5 -8
  75. package/dist/Graph.js.map +1 -1
  76. package/dist/HashMap.d.ts +15 -14
  77. package/dist/HashMap.d.ts.map +1 -1
  78. package/dist/HashMap.js +4 -4
  79. package/dist/HashMap.js.map +1 -1
  80. package/dist/Iterable.d.ts +40 -39
  81. package/dist/Iterable.d.ts.map +1 -1
  82. package/dist/Iterable.js +94 -22
  83. package/dist/Iterable.js.map +1 -1
  84. package/dist/JsonSchema.d.ts +299 -10
  85. package/dist/JsonSchema.d.ts.map +1 -1
  86. package/dist/JsonSchema.js +323 -4
  87. package/dist/JsonSchema.js.map +1 -1
  88. package/dist/Latch.d.ts +109 -0
  89. package/dist/Latch.d.ts.map +1 -0
  90. package/dist/Latch.js +72 -0
  91. package/dist/Latch.js.map +1 -0
  92. package/dist/Layer.d.ts +9 -9
  93. package/dist/Layer.d.ts.map +1 -1
  94. package/dist/Layer.js.map +1 -1
  95. package/dist/LayerMap.d.ts +4 -4
  96. package/dist/LayerMap.d.ts.map +1 -1
  97. package/dist/LogLevel.d.ts +32 -0
  98. package/dist/LogLevel.d.ts.map +1 -1
  99. package/dist/LogLevel.js +28 -100
  100. package/dist/LogLevel.js.map +1 -1
  101. package/dist/Logger.d.ts +29 -95
  102. package/dist/Logger.d.ts.map +1 -1
  103. package/dist/Logger.js +2 -3
  104. package/dist/Logger.js.map +1 -1
  105. package/dist/ManagedRuntime.d.ts +1 -1
  106. package/dist/ManagedRuntime.js +1 -1
  107. package/dist/Metric.d.ts +2 -2
  108. package/dist/Metric.d.ts.map +1 -1
  109. package/dist/Metric.js +1 -1
  110. package/dist/Metric.js.map +1 -1
  111. package/dist/Optic.d.ts +947 -18
  112. package/dist/Optic.d.ts.map +1 -1
  113. package/dist/Optic.js +454 -5
  114. package/dist/Optic.js.map +1 -1
  115. package/dist/Option.d.ts +22 -15
  116. package/dist/Option.d.ts.map +1 -1
  117. package/dist/Option.js +14 -7
  118. package/dist/Option.js.map +1 -1
  119. package/dist/Pipeable.d.ts +17 -0
  120. package/dist/Pipeable.d.ts.map +1 -1
  121. package/dist/Pipeable.js +19 -1
  122. package/dist/Pipeable.js.map +1 -1
  123. package/dist/PlatformError.d.ts +10 -9
  124. package/dist/PlatformError.d.ts.map +1 -1
  125. package/dist/PlatformError.js +2 -2
  126. package/dist/PlatformError.js.map +1 -1
  127. package/dist/Pool.d.ts +6 -4
  128. package/dist/Pool.d.ts.map +1 -1
  129. package/dist/Pool.js +7 -5
  130. package/dist/Pool.js.map +1 -1
  131. package/dist/PubSub.d.ts +3 -2
  132. package/dist/PubSub.d.ts.map +1 -1
  133. package/dist/PubSub.js +3 -2
  134. package/dist/PubSub.js.map +1 -1
  135. package/dist/Pull.d.ts.map +1 -1
  136. package/dist/Pull.js +1 -1
  137. package/dist/Pull.js.map +1 -1
  138. package/dist/Queue.d.ts.map +1 -1
  139. package/dist/Queue.js +0 -1
  140. package/dist/Queue.js.map +1 -1
  141. package/dist/Random.d.ts +35 -1
  142. package/dist/Random.d.ts.map +1 -1
  143. package/dist/Random.js +46 -12
  144. package/dist/Random.js.map +1 -1
  145. package/dist/RcMap.d.ts +2 -2
  146. package/dist/RcMap.d.ts.map +1 -1
  147. package/dist/RcMap.js +1 -1
  148. package/dist/RcMap.js.map +1 -1
  149. package/dist/RcRef.d.ts +1 -1
  150. package/dist/RcRef.d.ts.map +1 -1
  151. package/dist/Record.d.ts +24 -120
  152. package/dist/Record.d.ts.map +1 -1
  153. package/dist/Record.js +21 -41
  154. package/dist/Record.js.map +1 -1
  155. package/dist/Reducer.d.ts +166 -7
  156. package/dist/Reducer.d.ts.map +1 -1
  157. package/dist/Reducer.js +135 -1
  158. package/dist/Reducer.js.map +1 -1
  159. package/dist/References.d.ts +3 -3
  160. package/dist/References.d.ts.map +1 -1
  161. package/dist/Request.d.ts +1 -1
  162. package/dist/Request.d.ts.map +1 -1
  163. package/dist/Request.js +2 -1
  164. package/dist/Request.js.map +1 -1
  165. package/dist/RequestResolver.d.ts +6 -26
  166. package/dist/RequestResolver.d.ts.map +1 -1
  167. package/dist/RequestResolver.js +0 -20
  168. package/dist/RequestResolver.js.map +1 -1
  169. package/dist/Result.d.ts +12 -0
  170. package/dist/Result.d.ts.map +1 -1
  171. package/dist/Result.js +12 -0
  172. package/dist/Result.js.map +1 -1
  173. package/dist/Schedule.d.ts +47 -20
  174. package/dist/Schedule.d.ts.map +1 -1
  175. package/dist/Schedule.js +94 -34
  176. package/dist/Schedule.js.map +1 -1
  177. package/dist/Schema.d.ts +266 -50
  178. package/dist/Schema.d.ts.map +1 -1
  179. package/dist/Schema.js +426 -74
  180. package/dist/Schema.js.map +1 -1
  181. package/dist/SchemaAST.d.ts.map +1 -1
  182. package/dist/SchemaAST.js +7 -6
  183. package/dist/SchemaAST.js.map +1 -1
  184. package/dist/SchemaGetter.d.ts +2 -2
  185. package/dist/SchemaGetter.d.ts.map +1 -1
  186. package/dist/SchemaGetter.js +12 -14
  187. package/dist/SchemaGetter.js.map +1 -1
  188. package/dist/SchemaParser.d.ts +5 -0
  189. package/dist/SchemaParser.d.ts.map +1 -1
  190. package/dist/SchemaParser.js +10 -0
  191. package/dist/SchemaParser.js.map +1 -1
  192. package/dist/SchemaRepresentation.d.ts +44 -43
  193. package/dist/SchemaRepresentation.d.ts.map +1 -1
  194. package/dist/SchemaRepresentation.js +43 -24
  195. package/dist/SchemaRepresentation.js.map +1 -1
  196. package/dist/SchemaTransformation.d.ts +107 -3
  197. package/dist/SchemaTransformation.d.ts.map +1 -1
  198. package/dist/SchemaTransformation.js +159 -4
  199. package/dist/SchemaTransformation.js.map +1 -1
  200. package/dist/ScopedCache.d.ts +2 -2
  201. package/dist/ScopedCache.d.ts.map +1 -1
  202. package/dist/ScopedCache.js +1 -1
  203. package/dist/ScopedCache.js.map +1 -1
  204. package/dist/Semaphore.d.ts +211 -0
  205. package/dist/Semaphore.d.ts.map +1 -0
  206. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  207. package/dist/Semaphore.js.map +1 -0
  208. package/dist/ServiceMap.d.ts +39 -30
  209. package/dist/ServiceMap.d.ts.map +1 -1
  210. package/dist/ServiceMap.js +3 -3
  211. package/dist/ServiceMap.js.map +1 -1
  212. package/dist/Sink.d.ts +13 -13
  213. package/dist/Sink.d.ts.map +1 -1
  214. package/dist/Sink.js +53 -6
  215. package/dist/Sink.js.map +1 -1
  216. package/dist/Stream.d.ts +235 -423
  217. package/dist/Stream.d.ts.map +1 -1
  218. package/dist/Stream.js +124 -77
  219. package/dist/Stream.js.map +1 -1
  220. package/dist/Struct.d.ts +16 -0
  221. package/dist/Struct.d.ts.map +1 -1
  222. package/dist/Struct.js +22 -0
  223. package/dist/Struct.js.map +1 -1
  224. package/dist/SubscriptionRef.d.ts +2 -1
  225. package/dist/SubscriptionRef.d.ts.map +1 -1
  226. package/dist/SubscriptionRef.js +2 -1
  227. package/dist/SubscriptionRef.js.map +1 -1
  228. package/dist/SynchronizedRef.d.ts +2 -1
  229. package/dist/SynchronizedRef.d.ts.map +1 -1
  230. package/dist/SynchronizedRef.js +2 -1
  231. package/dist/SynchronizedRef.js.map +1 -1
  232. package/dist/Trie.d.ts +18 -17
  233. package/dist/Trie.d.ts.map +1 -1
  234. package/dist/Trie.js +5 -5
  235. package/dist/Trie.js.map +1 -1
  236. package/dist/TxChunk.d.ts +37 -37
  237. package/dist/TxChunk.d.ts.map +1 -1
  238. package/dist/TxChunk.js +3 -3
  239. package/dist/TxChunk.js.map +1 -1
  240. package/dist/TxDeferred.d.ts +328 -0
  241. package/dist/TxDeferred.d.ts.map +1 -0
  242. package/dist/TxDeferred.js +196 -0
  243. package/dist/TxDeferred.js.map +1 -0
  244. package/dist/TxHashMap.d.ts +84 -83
  245. package/dist/TxHashMap.d.ts.map +1 -1
  246. package/dist/TxHashMap.js +24 -24
  247. package/dist/TxHashMap.js.map +1 -1
  248. package/dist/TxHashSet.d.ts +35 -35
  249. package/dist/TxHashSet.d.ts.map +1 -1
  250. package/dist/TxHashSet.js +14 -14
  251. package/dist/TxHashSet.js.map +1 -1
  252. package/dist/TxPriorityQueue.d.ts +609 -0
  253. package/dist/TxPriorityQueue.d.ts.map +1 -0
  254. package/dist/TxPriorityQueue.js +415 -0
  255. package/dist/TxPriorityQueue.js.map +1 -0
  256. package/dist/TxPubSub.d.ts +585 -0
  257. package/dist/TxPubSub.d.ts.map +1 -0
  258. package/dist/TxPubSub.js +521 -0
  259. package/dist/TxPubSub.js.map +1 -0
  260. package/dist/TxQueue.d.ts +32 -32
  261. package/dist/TxQueue.d.ts.map +1 -1
  262. package/dist/TxQueue.js +26 -26
  263. package/dist/TxQueue.js.map +1 -1
  264. package/dist/TxReentrantLock.d.ts +523 -0
  265. package/dist/TxReentrantLock.d.ts.map +1 -0
  266. package/dist/TxReentrantLock.js +504 -0
  267. package/dist/TxReentrantLock.js.map +1 -0
  268. package/dist/TxRef.d.ts +34 -34
  269. package/dist/TxRef.d.ts.map +1 -1
  270. package/dist/TxRef.js +21 -14
  271. package/dist/TxRef.js.map +1 -1
  272. package/dist/TxSemaphore.d.ts +8 -8
  273. package/dist/TxSemaphore.d.ts.map +1 -1
  274. package/dist/TxSemaphore.js +7 -7
  275. package/dist/TxSemaphore.js.map +1 -1
  276. package/dist/TxSubscriptionRef.d.ts +508 -0
  277. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  278. package/dist/TxSubscriptionRef.js +293 -0
  279. package/dist/TxSubscriptionRef.js.map +1 -0
  280. package/dist/Types.d.ts +84 -6
  281. package/dist/Types.d.ts.map +1 -1
  282. package/dist/index.d.ts +591 -20
  283. package/dist/index.d.ts.map +1 -1
  284. package/dist/index.js +591 -20
  285. package/dist/index.js.map +1 -1
  286. package/dist/internal/core.js +11 -3
  287. package/dist/internal/core.js.map +1 -1
  288. package/dist/internal/dateTime.js +3 -11
  289. package/dist/internal/dateTime.js.map +1 -1
  290. package/dist/internal/effect.js +263 -99
  291. package/dist/internal/effect.js.map +1 -1
  292. package/dist/internal/hashMap.js +5 -4
  293. package/dist/internal/hashMap.js.map +1 -1
  294. package/dist/internal/random.d.ts +2 -0
  295. package/dist/internal/random.d.ts.map +1 -0
  296. package/dist/internal/random.js +13 -0
  297. package/dist/internal/random.js.map +1 -0
  298. package/dist/internal/rcRef.js +3 -2
  299. package/dist/internal/rcRef.js.map +1 -1
  300. package/dist/internal/request.js +2 -2
  301. package/dist/internal/request.js.map +1 -1
  302. package/dist/internal/schema/annotations.js +2 -0
  303. package/dist/internal/schema/annotations.js.map +1 -1
  304. package/dist/internal/schema/schema.js +1 -0
  305. package/dist/internal/schema/schema.js.map +1 -1
  306. package/dist/internal/trie.js +5 -4
  307. package/dist/internal/trie.js.map +1 -1
  308. package/dist/testing/TestClock.d.ts +7 -6
  309. package/dist/testing/TestClock.d.ts.map +1 -1
  310. package/dist/testing/TestClock.js +6 -4
  311. package/dist/testing/TestClock.js.map +1 -1
  312. package/dist/testing/TestSchema.d.ts +8 -8
  313. package/dist/testing/TestSchema.d.ts.map +1 -1
  314. package/dist/testing/TestSchema.js.map +1 -1
  315. package/dist/unstable/ai/AiError.d.ts +128 -48
  316. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  317. package/dist/unstable/ai/AiError.js +11 -12
  318. package/dist/unstable/ai/AiError.js.map +1 -1
  319. package/dist/unstable/ai/Chat.d.ts +3 -3
  320. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  321. package/dist/unstable/ai/Chat.js +4 -3
  322. package/dist/unstable/ai/Chat.js.map +1 -1
  323. package/dist/unstable/ai/LanguageModel.d.ts +4 -2
  324. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  325. package/dist/unstable/ai/LanguageModel.js +86 -14
  326. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  327. package/dist/unstable/ai/McpSchema.d.ts +163 -87
  328. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  329. package/dist/unstable/ai/McpSchema.js +49 -12
  330. package/dist/unstable/ai/McpSchema.js.map +1 -1
  331. package/dist/unstable/ai/McpServer.d.ts +1 -1
  332. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  333. package/dist/unstable/ai/McpServer.js +35 -7
  334. package/dist/unstable/ai/McpServer.js.map +1 -1
  335. package/dist/unstable/ai/Model.d.ts +25 -7
  336. package/dist/unstable/ai/Model.d.ts.map +1 -1
  337. package/dist/unstable/ai/Model.js +22 -6
  338. package/dist/unstable/ai/Model.js.map +1 -1
  339. package/dist/unstable/ai/Prompt.d.ts +20 -20
  340. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  341. package/dist/unstable/ai/Response.d.ts +26 -26
  342. package/dist/unstable/ai/Response.d.ts.map +1 -1
  343. package/dist/unstable/ai/Response.js +1 -1
  344. package/dist/unstable/ai/Response.js.map +1 -1
  345. package/dist/unstable/ai/Tool.d.ts +19 -3
  346. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  347. package/dist/unstable/ai/Tool.js +14 -9
  348. package/dist/unstable/ai/Tool.js.map +1 -1
  349. package/dist/unstable/ai/index.d.ts +1 -1
  350. package/dist/unstable/ai/index.js +1 -1
  351. package/dist/unstable/cli/CliError.d.ts +5 -5
  352. package/dist/unstable/cli/CliOutput.js +59 -6
  353. package/dist/unstable/cli/CliOutput.js.map +1 -1
  354. package/dist/unstable/cli/Command.d.ts +276 -19
  355. package/dist/unstable/cli/Command.d.ts.map +1 -1
  356. package/dist/unstable/cli/Command.js +234 -36
  357. package/dist/unstable/cli/Command.js.map +1 -1
  358. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  359. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  360. package/dist/unstable/cli/GlobalFlag.js +118 -0
  361. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  362. package/dist/unstable/cli/HelpDoc.d.ts +70 -2
  363. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  364. package/dist/unstable/cli/index.d.ts +4 -0
  365. package/dist/unstable/cli/index.d.ts.map +1 -1
  366. package/dist/unstable/cli/index.js +4 -0
  367. package/dist/unstable/cli/index.js.map +1 -1
  368. package/dist/unstable/cli/internal/command.d.ts +17 -8
  369. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  370. package/dist/unstable/cli/internal/command.js +32 -23
  371. package/dist/unstable/cli/internal/command.js.map +1 -1
  372. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  373. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  374. package/dist/unstable/cli/internal/help.d.ts +33 -0
  375. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  376. package/dist/unstable/cli/internal/help.js +107 -0
  377. package/dist/unstable/cli/internal/help.js.map +1 -0
  378. package/dist/unstable/cli/internal/parser.js +29 -36
  379. package/dist/unstable/cli/internal/parser.js.map +1 -1
  380. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  381. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  382. package/dist/unstable/cluster/ClusterCron.js +1 -1
  383. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  384. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  385. package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
  386. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  387. package/dist/unstable/cluster/Entity.d.ts +7 -6
  388. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  389. package/dist/unstable/cluster/Entity.js.map +1 -1
  390. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  391. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  392. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  393. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  394. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  395. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  396. package/dist/unstable/cluster/Message.d.ts +10 -10
  397. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  398. package/dist/unstable/cluster/MessageStorage.js +2 -1
  399. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  400. package/dist/unstable/cluster/Reply.d.ts +6 -6
  401. package/dist/unstable/cluster/Runner.d.ts +1 -1
  402. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  403. package/dist/unstable/cluster/Runners.js +4 -3
  404. package/dist/unstable/cluster/Runners.js.map +1 -1
  405. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  406. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  407. package/dist/unstable/cluster/Sharding.js +9 -7
  408. package/dist/unstable/cluster/Sharding.js.map +1 -1
  409. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  410. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  411. package/dist/unstable/cluster/ShardingConfig.js +20 -20
  412. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  413. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  414. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  415. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  416. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  417. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  418. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  419. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  420. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  421. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  422. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  423. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  424. package/dist/unstable/encoding/Sse.d.ts +4 -4
  425. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  426. package/dist/unstable/encoding/Sse.js +1 -1
  427. package/dist/unstable/encoding/Sse.js.map +1 -1
  428. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  429. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  430. package/dist/unstable/eventlog/EventLog.js +2 -1
  431. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  432. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  433. package/dist/unstable/http/Cookies.d.ts +3 -3
  434. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  435. package/dist/unstable/http/Cookies.js +2 -2
  436. package/dist/unstable/http/Cookies.js.map +1 -1
  437. package/dist/unstable/http/Headers.d.ts.map +1 -1
  438. package/dist/unstable/http/Headers.js +27 -10
  439. package/dist/unstable/http/Headers.js.map +1 -1
  440. package/dist/unstable/http/HttpBody.d.ts +17 -2
  441. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  442. package/dist/unstable/http/HttpBody.js +28 -1
  443. package/dist/unstable/http/HttpBody.js.map +1 -1
  444. package/dist/unstable/http/HttpClient.d.ts +37 -13
  445. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  446. package/dist/unstable/http/HttpClient.js +4 -4
  447. package/dist/unstable/http/HttpClient.js.map +1 -1
  448. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  449. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  450. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  451. package/dist/unstable/http/HttpClientRequest.js +15 -3
  452. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  453. package/dist/unstable/http/HttpEffect.d.ts +3 -8
  454. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  455. package/dist/unstable/http/HttpEffect.js +42 -56
  456. package/dist/unstable/http/HttpEffect.js.map +1 -1
  457. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  458. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  459. package/dist/unstable/http/HttpMethod.js +3 -3
  460. package/dist/unstable/http/HttpMethod.js.map +1 -1
  461. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  462. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  463. package/dist/unstable/http/HttpMiddleware.js +8 -17
  464. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  465. package/dist/unstable/http/HttpServerError.d.ts +20 -33
  466. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  467. package/dist/unstable/http/HttpServerError.js +37 -44
  468. package/dist/unstable/http/HttpServerError.js.map +1 -1
  469. package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
  470. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  471. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  472. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  473. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  474. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  475. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  476. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  477. package/dist/unstable/http/HttpServerResponse.js +3 -1
  478. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  479. package/dist/unstable/http/Multipart.d.ts +3 -3
  480. package/dist/unstable/http/UrlParams.d.ts +14 -6
  481. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  482. package/dist/unstable/http/UrlParams.js +1 -1
  483. package/dist/unstable/http/UrlParams.js.map +1 -1
  484. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  485. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  486. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  487. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  488. package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
  489. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  490. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  491. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  492. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  493. package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
  494. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  495. package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
  496. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  497. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  498. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  499. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
  500. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  501. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  502. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  503. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  504. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  505. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  506. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  507. package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
  508. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  509. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  510. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
  511. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  512. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  513. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  514. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  515. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  516. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  517. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  518. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  519. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  520. package/dist/unstable/httpapi/OpenApi.js +32 -21
  521. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  522. package/dist/unstable/observability/Otlp.d.ts +12 -12
  523. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  524. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  525. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  526. package/dist/unstable/observability/OtlpExporter.js +1 -1
  527. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  528. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  529. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  530. package/dist/unstable/observability/OtlpLogger.js +7 -4
  531. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  532. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  533. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  534. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  535. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  536. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  537. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  538. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  539. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  540. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  541. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  542. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  543. package/dist/unstable/persistence/PersistedCache.js +2 -1
  544. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  545. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  546. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  547. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  548. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  549. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  550. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  551. package/dist/unstable/persistence/Persistence.js +2 -2
  552. package/dist/unstable/persistence/Persistence.js.map +1 -1
  553. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  554. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  555. package/dist/unstable/persistence/RateLimiter.js +1 -1
  556. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  557. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  558. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  559. package/dist/unstable/process/ChildProcess.js +1 -65
  560. package/dist/unstable/process/ChildProcess.js.map +1 -1
  561. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  562. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  563. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  564. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  565. package/dist/unstable/reactivity/Atom.d.ts +10 -10
  566. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  567. package/dist/unstable/reactivity/Atom.js +16 -13
  568. package/dist/unstable/reactivity/Atom.js.map +1 -1
  569. package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
  570. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  571. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  572. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  573. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  574. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  575. package/dist/unstable/reactivity/AtomRegistry.js +24 -7
  576. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  577. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  578. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  579. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  580. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  581. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  582. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  583. package/dist/unstable/reactivity/Hydration.js +76 -0
  584. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  585. package/dist/unstable/reactivity/index.d.ts +4 -0
  586. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  587. package/dist/unstable/reactivity/index.js +4 -0
  588. package/dist/unstable/reactivity/index.js.map +1 -1
  589. package/dist/unstable/rpc/Rpc.d.ts +4 -4
  590. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  591. package/dist/unstable/rpc/Rpc.js.map +1 -1
  592. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  593. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  594. package/dist/unstable/rpc/RpcClient.js +6 -13
  595. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  596. package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
  597. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  598. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  599. package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
  600. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  601. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  602. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  603. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  604. package/dist/unstable/rpc/RpcSchema.js +14 -0
  605. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  606. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  607. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  608. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  609. package/dist/unstable/rpc/RpcServer.d.ts +0 -7
  610. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  611. package/dist/unstable/rpc/RpcServer.js +15 -15
  612. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  613. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  614. package/dist/unstable/rpc/Utils.js +2 -1
  615. package/dist/unstable/rpc/Utils.js.map +1 -1
  616. package/dist/unstable/schema/Model.d.ts +1 -1
  617. package/dist/unstable/schema/Model.d.ts.map +1 -1
  618. package/dist/unstable/schema/VariantSchema.d.ts +3 -3
  619. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  620. package/dist/unstable/schema/VariantSchema.js +3 -3
  621. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  622. package/dist/unstable/socket/Socket.d.ts +4 -4
  623. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  624. package/dist/unstable/socket/Socket.js +6 -5
  625. package/dist/unstable/socket/Socket.js.map +1 -1
  626. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  627. package/dist/unstable/sql/Migrator.d.ts +1 -1
  628. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  629. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  630. package/dist/unstable/sql/SqlError.d.ts +14 -14
  631. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  632. package/dist/unstable/sql/SqlError.js +9 -3
  633. package/dist/unstable/sql/SqlError.js.map +1 -1
  634. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  635. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  636. package/dist/unstable/sql/SqlModel.js +3 -3
  637. package/dist/unstable/sql/SqlModel.js.map +1 -1
  638. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  639. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  640. package/dist/unstable/sql/SqlSchema.js +17 -7
  641. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  642. package/dist/unstable/sql/Statement.js +0 -1
  643. package/dist/unstable/sql/Statement.js.map +1 -1
  644. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  645. package/dist/unstable/workers/Worker.js +2 -1
  646. package/dist/unstable/workers/Worker.js.map +1 -1
  647. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  648. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  649. package/dist/unstable/workflow/DurableClock.js +3 -3
  650. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  651. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  652. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  653. package/dist/unstable/workflow/Workflow.d.ts +3 -3
  654. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  655. package/dist/unstable/workflow/Workflow.js +1 -1
  656. package/dist/unstable/workflow/Workflow.js.map +1 -1
  657. package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
  658. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  659. package/dist/unstable/workflow/WorkflowEngine.js +137 -1
  660. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  661. package/package.json +2 -2
  662. package/src/Array.ts +190 -342
  663. package/src/Cache.ts +9 -8
  664. package/src/Cause.ts +1 -1
  665. package/src/Channel.ts +554 -138
  666. package/src/Chunk.ts +81 -268
  667. package/src/Combiner.ts +280 -13
  668. package/src/Config.ts +183 -21
  669. package/src/Data.ts +538 -374
  670. package/src/DateTime.ts +24 -164
  671. package/src/Duration.ts +15 -15
  672. package/src/Effect.ts +991 -800
  673. package/src/Encoding.ts +879 -0
  674. package/src/Equal.ts +278 -111
  675. package/src/ErrorReporter.ts +459 -0
  676. package/src/Fiber.ts +9 -2
  677. package/src/FileSystem.ts +7 -8
  678. package/src/Filter.ts +48 -58
  679. package/src/Formatter.ts +253 -51
  680. package/src/Graph.ts +24 -11
  681. package/src/HashMap.ts +15 -14
  682. package/src/Iterable.ts +105 -50
  683. package/src/JsonSchema.ts +383 -10
  684. package/src/Latch.ts +112 -0
  685. package/src/Layer.ts +11 -15
  686. package/src/LayerMap.ts +5 -5
  687. package/src/LogLevel.ts +37 -0
  688. package/src/Logger.ts +33 -100
  689. package/src/ManagedRuntime.ts +1 -1
  690. package/src/Metric.ts +4 -4
  691. package/src/Optic.ts +948 -19
  692. package/src/Option.ts +30 -20
  693. package/src/Pipeable.ts +32 -1
  694. package/src/PlatformError.ts +5 -5
  695. package/src/Pool.ts +13 -11
  696. package/src/PubSub.ts +10 -9
  697. package/src/Pull.ts +1 -1
  698. package/src/Queue.ts +0 -1
  699. package/src/Random.ts +51 -14
  700. package/src/RcMap.ts +5 -5
  701. package/src/RcRef.ts +1 -1
  702. package/src/Record.ts +43 -152
  703. package/src/Reducer.ts +166 -7
  704. package/src/References.ts +4 -4
  705. package/src/Request.ts +3 -2
  706. package/src/RequestResolver.ts +9 -29
  707. package/src/Result.ts +13 -0
  708. package/src/Schedule.ts +318 -160
  709. package/src/Schema.ts +661 -116
  710. package/src/SchemaAST.ts +7 -6
  711. package/src/SchemaGetter.ts +12 -14
  712. package/src/SchemaParser.ts +11 -0
  713. package/src/SchemaRepresentation.ts +43 -24
  714. package/src/SchemaTransformation.ts +189 -4
  715. package/src/ScopedCache.ts +3 -3
  716. package/src/Semaphore.ts +356 -0
  717. package/src/ServiceMap.ts +47 -38
  718. package/src/Sink.ts +78 -26
  719. package/src/Stream.ts +566 -601
  720. package/src/Struct.ts +26 -0
  721. package/src/SubscriptionRef.ts +3 -2
  722. package/src/SynchronizedRef.ts +3 -2
  723. package/src/Trie.ts +18 -17
  724. package/src/TxChunk.ts +72 -53
  725. package/src/TxDeferred.ts +394 -0
  726. package/src/TxHashMap.ts +332 -285
  727. package/src/TxHashSet.ts +111 -116
  728. package/src/TxPriorityQueue.ts +767 -0
  729. package/src/TxPubSub.ts +789 -0
  730. package/src/TxQueue.ts +241 -251
  731. package/src/TxReentrantLock.ts +753 -0
  732. package/src/TxRef.ts +50 -38
  733. package/src/TxSemaphore.ts +29 -32
  734. package/src/TxSubscriptionRef.ts +639 -0
  735. package/src/Types.ts +78 -2
  736. package/src/index.ts +600 -21
  737. package/src/internal/core.ts +12 -5
  738. package/src/internal/dateTime.ts +9 -30
  739. package/src/internal/effect.ts +744 -265
  740. package/src/internal/hashMap.ts +9 -7
  741. package/src/internal/random.ts +20 -0
  742. package/src/internal/rcRef.ts +4 -3
  743. package/src/internal/request.ts +2 -2
  744. package/src/internal/schema/annotations.ts +2 -0
  745. package/src/internal/schema/schema.ts +1 -0
  746. package/src/internal/trie.ts +16 -9
  747. package/src/testing/TestClock.ts +13 -11
  748. package/src/testing/TestSchema.ts +10 -10
  749. package/src/unstable/ai/AiError.ts +97 -44
  750. package/src/unstable/ai/Chat.ts +12 -11
  751. package/src/unstable/ai/LanguageModel.ts +129 -25
  752. package/src/unstable/ai/McpSchema.ts +59 -13
  753. package/src/unstable/ai/McpServer.ts +48 -9
  754. package/src/unstable/ai/Model.ts +40 -9
  755. package/src/unstable/ai/Prompt.ts +37 -37
  756. package/src/unstable/ai/Response.ts +25 -25
  757. package/src/unstable/ai/Tool.ts +19 -13
  758. package/src/unstable/ai/index.ts +1 -1
  759. package/src/unstable/cli/CliOutput.ts +75 -6
  760. package/src/unstable/cli/Command.ts +501 -60
  761. package/src/unstable/cli/GlobalFlag.ts +243 -0
  762. package/src/unstable/cli/HelpDoc.ts +80 -2
  763. package/src/unstable/cli/index.ts +5 -0
  764. package/src/unstable/cli/internal/command.ts +50 -34
  765. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  766. package/src/unstable/cli/internal/help.ts +146 -0
  767. package/src/unstable/cli/internal/parser.ts +33 -54
  768. package/src/unstable/cluster/ClusterCron.ts +2 -2
  769. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
  770. package/src/unstable/cluster/Entity.ts +11 -10
  771. package/src/unstable/cluster/EntityResource.ts +4 -4
  772. package/src/unstable/cluster/Envelope.ts +1 -1
  773. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  774. package/src/unstable/cluster/MessageStorage.ts +3 -5
  775. package/src/unstable/cluster/Runners.ts +6 -5
  776. package/src/unstable/cluster/Sharding.ts +12 -10
  777. package/src/unstable/cluster/ShardingConfig.ts +30 -31
  778. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  779. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  780. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  781. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  782. package/src/unstable/encoding/Sse.ts +3 -5
  783. package/src/unstable/eventlog/EventLog.ts +2 -1
  784. package/src/unstable/http/Cookies.ts +3 -3
  785. package/src/unstable/http/Headers.ts +28 -13
  786. package/src/unstable/http/HttpBody.ts +42 -1
  787. package/src/unstable/http/HttpClient.ts +58 -23
  788. package/src/unstable/http/HttpClientRequest.ts +38 -13
  789. package/src/unstable/http/HttpEffect.ts +46 -68
  790. package/src/unstable/http/HttpMethod.ts +16 -4
  791. package/src/unstable/http/HttpMiddleware.ts +9 -24
  792. package/src/unstable/http/HttpServerError.ts +42 -45
  793. package/src/unstable/http/HttpServerRequest.ts +1 -1
  794. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  795. package/src/unstable/http/HttpServerResponse.ts +4 -2
  796. package/src/unstable/http/Multipart.ts +2 -2
  797. package/src/unstable/http/UrlParams.ts +20 -5
  798. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  799. package/src/unstable/httpapi/HttpApi.ts +5 -5
  800. package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
  801. package/src/unstable/httpapi/HttpApiClient.ts +14 -6
  802. package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
  803. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  804. package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
  805. package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
  806. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  807. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  808. package/src/unstable/httpapi/OpenApi.ts +41 -23
  809. package/src/unstable/observability/Otlp.ts +12 -12
  810. package/src/unstable/observability/OtlpExporter.ts +3 -3
  811. package/src/unstable/observability/OtlpLogger.ts +13 -9
  812. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  813. package/src/unstable/observability/OtlpTracer.ts +4 -4
  814. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  815. package/src/unstable/persistence/Persistable.ts +2 -2
  816. package/src/unstable/persistence/PersistedCache.ts +20 -9
  817. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  818. package/src/unstable/persistence/Persistence.ts +3 -3
  819. package/src/unstable/persistence/RateLimiter.ts +4 -4
  820. package/src/unstable/process/ChildProcess.ts +6 -208
  821. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  822. package/src/unstable/reactivity/Atom.ts +27 -25
  823. package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
  824. package/src/unstable/reactivity/AtomRegistry.ts +31 -7
  825. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  826. package/src/unstable/reactivity/Hydration.ts +112 -0
  827. package/src/unstable/reactivity/index.ts +5 -0
  828. package/src/unstable/rpc/Rpc.ts +6 -6
  829. package/src/unstable/rpc/RpcClient.ts +12 -54
  830. package/src/unstable/rpc/RpcGroup.ts +4 -4
  831. package/src/unstable/rpc/RpcMiddleware.ts +3 -3
  832. package/src/unstable/rpc/RpcSchema.ts +17 -0
  833. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  834. package/src/unstable/rpc/RpcServer.ts +21 -30
  835. package/src/unstable/rpc/Utils.ts +2 -1
  836. package/src/unstable/schema/VariantSchema.ts +6 -6
  837. package/src/unstable/socket/Socket.ts +16 -17
  838. package/src/unstable/sql/SqlClient.ts +1 -1
  839. package/src/unstable/sql/SqlError.ts +11 -9
  840. package/src/unstable/sql/SqlModel.ts +5 -5
  841. package/src/unstable/sql/SqlSchema.ts +41 -25
  842. package/src/unstable/sql/Statement.ts +0 -1
  843. package/src/unstable/workers/Worker.ts +2 -1
  844. package/src/unstable/workflow/DurableClock.ts +8 -8
  845. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  846. package/src/unstable/workflow/Workflow.ts +6 -2
  847. package/src/unstable/workflow/WorkflowEngine.ts +185 -2
  848. package/dist/PartitionedSemaphore.d.ts +0 -52
  849. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  850. package/dist/PartitionedSemaphore.js.map +0 -1
  851. package/dist/encoding/Base64.d.ts +0 -67
  852. package/dist/encoding/Base64.d.ts.map +0 -1
  853. package/dist/encoding/Base64.js +0 -146
  854. package/dist/encoding/Base64.js.map +0 -1
  855. package/dist/encoding/Base64Url.d.ts +0 -60
  856. package/dist/encoding/Base64Url.d.ts.map +0 -1
  857. package/dist/encoding/Base64Url.js +0 -89
  858. package/dist/encoding/Base64Url.js.map +0 -1
  859. package/dist/encoding/EncodingError.d.ts +0 -31
  860. package/dist/encoding/EncodingError.d.ts.map +0 -1
  861. package/dist/encoding/EncodingError.js +0 -22
  862. package/dist/encoding/EncodingError.js.map +0 -1
  863. package/dist/encoding/Hex.d.ts +0 -61
  864. package/dist/encoding/Hex.d.ts.map +0 -1
  865. package/dist/encoding/Hex.js +0 -115
  866. package/dist/encoding/Hex.js.map +0 -1
  867. package/dist/encoding/index.d.ts +0 -26
  868. package/dist/encoding/index.d.ts.map +0 -1
  869. package/dist/encoding/index.js +0 -27
  870. package/dist/encoding/index.js.map +0 -1
  871. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  872. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  873. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  874. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  875. package/src/PartitionedSemaphore.ts +0 -182
  876. package/src/encoding/Base64.ts +0 -366
  877. package/src/encoding/Base64Url.ts +0 -104
  878. package/src/encoding/EncodingError.ts +0 -35
  879. package/src/encoding/Hex.ts +0 -390
  880. package/src/encoding/index.ts +0 -31
  881. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
package/dist/Filter.js CHANGED
@@ -3,19 +3,6 @@ import { dual } from "./Function.js";
3
3
  import * as Option from "./Option.js";
4
4
  import * as Predicate from "./Predicate.js";
5
5
  import * as Result from "./Result.js";
6
- /**
7
- * Applies a filter, predicate, or refinement to an input and returns a boxed
8
- * result. Extra arguments are forwarded to the function.
9
- *
10
- * @since 4.0.0
11
- * @category Apply
12
- */
13
- export const apply = (filter, input, ...args) => {
14
- const result = filter(input, ...args);
15
- if (result === true) return Result.succeed(input);
16
- if (result === false) return Result.fail(input);
17
- return result;
18
- };
19
6
  // -------------------------------------------------------------------------------------
20
7
  // Constructors
21
8
  // -------------------------------------------------------------------------------------
@@ -214,6 +201,21 @@ export const tagged = function () {
214
201
  return arguments.length === 0 ? taggedImpl : taggedImpl(arguments[0]);
215
202
  };
216
203
  const taggedImpl = tag => input => Predicate.isTagged(input, tag) ? Result.succeed(input) : Result.fail(input);
204
+ /**
205
+ * Creates a filter that extracts a reason from a tagged error.
206
+ *
207
+ * @since 4.0.0
208
+ * @category Constructors
209
+ */
210
+ export const reason = function () {
211
+ return arguments.length === 0 ? reasonImpl : reasonImpl(arguments[0], arguments[1]);
212
+ };
213
+ const reasonImpl = (tag, reasonTag) => input => {
214
+ if (Predicate.isTagged(input, tag) && Predicate.hasProperty(input, "reason") && Predicate.isTagged(input.reason, reasonTag)) {
215
+ return Result.succeed(input.reason);
216
+ }
217
+ return Result.fail(input);
218
+ };
217
219
  /**
218
220
  * Creates a filter that only passes values equal to the specified value using structural equality.
219
221
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.js","names":["Equal","dual","Option","Predicate","Result","apply","filter","input","args","result","succeed","fail","make","f","makeEffect","mapFail","self","mapError","try_","try","fromPredicate","predicate","fromPredicateOption","o","_tag","value","toPredicate","isFailure","string","isString","equalsStrict","u","has","key","instanceOf","constructor","number","isNumber","boolean","isBoolean","bigint","isBigInt","symbol","isSymbol","date","isDate","tagged","arguments","length","taggedImpl","tag","isTagged","equals","or","that","selfResult","isSuccess","zipWith","left","right","leftResult","rightResult","success","zip","andLeft","andRight","_","compose","leftOut","composePassthrough","rightOut","toOption","none","some","toResult","failure"],"sources":["../src/Filter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Filter.js","names":["Equal","dual","Option","Predicate","Result","make","f","makeEffect","mapFail","self","input","mapError","try_","succeed","fail","try","fromPredicate","predicate","fromPredicateOption","o","_tag","value","toPredicate","isFailure","string","isString","equalsStrict","u","has","key","instanceOf","constructor","number","isNumber","boolean","isBoolean","bigint","isBigInt","symbol","isSymbol","date","isDate","tagged","arguments","length","taggedImpl","tag","isTagged","reason","reasonImpl","reasonTag","hasProperty","equals","or","that","selfResult","isSuccess","zipWith","left","right","leftResult","rightResult","success","zip","andLeft","andRight","_","compose","leftOut","composePassthrough","rightOut","toOption","result","none","some","toResult","failure"],"sources":["../src/Filter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,28 @@
1
1
  /**
2
+ * A callable interface representing a function that converts a `Value` into a
3
+ * `Format` (defaults to `string`).
4
+ *
5
+ * When to use:
6
+ * - You want to type a formatting / rendering function generically.
7
+ * - You are building a pipeline that accepts pluggable formatters.
8
+ *
9
+ * Behavior:
10
+ * - Pure callable type; carries no runtime implementation.
11
+ * - Contravariant in `Value`, covariant in `Format`.
12
+ *
13
+ * **Example** (Define a custom formatter)
14
+ *
15
+ * ```ts
16
+ * import type { Formatter } from "effect"
17
+ *
18
+ * const upper: Formatter.Formatter<string> = (s) => s.toUpperCase()
19
+ *
20
+ * console.log(upper("hello"))
21
+ * // HELLO
22
+ * ```
23
+ *
24
+ * See also: {@link format}, {@link formatJson}
25
+ *
2
26
  * @category Model
3
27
  * @since 4.0.0
4
28
  */
@@ -8,31 +32,71 @@ export interface Formatter<in Value, out Format = string> {
8
32
  /**
9
33
  * Converts any JavaScript value into a human-readable string.
10
34
  *
11
- * For objects that don't have a `toString` method, it applies redaction to
12
- * protect sensitive information.
13
- *
14
- * Unlike `JSON.stringify`, this formatter:
15
- * - Handles circular references (printed as `"[Circular]"`).
16
- * - Supports additional types like `BigInt`, `Symbol`, `Set`, `Map`, `Date`, `RegExp`, and
17
- * objects with custom `toString` methods.
18
- * - Includes constructor names for class instances (e.g. `MyClass({"a":1})`).
19
- * - Does not guarantee valid JSON output — the result is intended for debugging and inspection.
20
- *
21
- * Formatting rules:
22
- * - Primitives are stringified naturally (`null`, `undefined`, `123`, `"abc"`, `true`).
23
- * - Strings are JSON-quoted.
24
- * - Arrays and objects with a single element/property are formatted inline.
25
- * - Larger arrays/objects are pretty-printed with optional indentation.
26
- * - Circular references are replaced with the literal `"[Circular]"`.
27
- *
28
- * **Options**:
29
- * - `space`: Indentation used when pretty-printing:
30
- * - If a number, that many spaces will be used.
31
- * - If a string, the string is used as the indentation unit (e.g. `"\t"`).
32
- * - If `0`, empty string, or `undefined`, output is compact (no indentation).
33
- * Defaults to `0`.
34
- * - `ignoreToString`: If `true`, the `toString` method is not called on the value.
35
- * Defaults to `false`.
35
+ * When to use:
36
+ * - Pretty-printing values for debugging, logging, or error messages.
37
+ * - You need to handle `BigInt`, `Symbol`, `Set`, `Map`, `Date`, `RegExp`,
38
+ * or class instances that `JSON.stringify` cannot represent.
39
+ * - You want circular references shown as `"[Circular]"` instead of
40
+ * throwing.
41
+ *
42
+ * Behavior:
43
+ * - Does not mutate input.
44
+ * - Output is **not** valid JSON; use {@link formatJson} when you need
45
+ * parseable JSON.
46
+ * - Primitives: stringified naturally (`null`, `undefined`, `123`, `true`).
47
+ * Strings are JSON-quoted.
48
+ * - Objects with a custom `toString` (not `Object.prototype.toString`):
49
+ * `toString()` is called unless `ignoreToString` is `true`.
50
+ * - Errors with a `cause`: formatted as `"<message> (cause: <cause>)"`.
51
+ * - Iterables (`Set`, `Map`, etc.): formatted as
52
+ * `ClassName([...elements])`.
53
+ * - Class instances: wrapped as `ClassName({...})`.
54
+ * - `Redactable` values are automatically redacted.
55
+ * - Arrays/objects with 0–1 entries are inline; larger ones are
56
+ * pretty-printed when `space` is set.
57
+ * - Circular references are replaced with `"[Circular]"`.
58
+ *
59
+ * Options:
60
+ * - `space` — indentation unit (number of spaces, or a string like
61
+ * `"\t"`). Defaults to `0` (compact).
62
+ * - `ignoreToString` — skip calling `toString()`. Defaults to `false`.
63
+ *
64
+ * **Example** (Compact output)
65
+ *
66
+ * ```ts
67
+ * import { Formatter } from "effect"
68
+ *
69
+ * console.log(Formatter.format({ a: 1, b: [2, 3] }))
70
+ * // {"a":1,"b":[2,3]}
71
+ * ```
72
+ *
73
+ * **Example** (Pretty-printed output)
74
+ *
75
+ * ```ts
76
+ * import { Formatter } from "effect"
77
+ *
78
+ * console.log(Formatter.format({ a: 1, b: [2, 3] }, { space: 2 }))
79
+ * // {
80
+ * // "a": 1,
81
+ * // "b": [
82
+ * // 2,
83
+ * // 3
84
+ * // ]
85
+ * // }
86
+ * ```
87
+ *
88
+ * **Example** (Circular reference handling)
89
+ *
90
+ * ```ts
91
+ * import { Formatter } from "effect"
92
+ *
93
+ * const obj: any = { name: "loop" }
94
+ * obj.self = obj
95
+ * console.log(Formatter.format(obj))
96
+ * // {"name":"loop","self":[Circular]}
97
+ * ```
98
+ *
99
+ * See also: {@link formatJson}, {@link Formatter}
36
100
  *
37
101
  * @since 4.0.0
38
102
  */
@@ -41,42 +105,62 @@ export declare function format(input: unknown, options?: {
41
105
  readonly ignoreToString?: boolean | undefined;
42
106
  }): string;
43
107
  /**
44
- * Safely stringifies objects that may contain circular references.
108
+ * Safely stringifies a value to JSON, silently dropping circular references.
109
+ *
110
+ * When to use:
111
+ * - You need valid JSON output (unlike {@link format}).
112
+ * - The input may contain circular references and you want them silently
113
+ * omitted rather than throwing a `TypeError`.
45
114
  *
46
- * This function performs JSON.stringify with circular reference detection and handling.
47
- * It also applies redaction to sensitive values and provides a safe fallback for
48
- * any objects that can't be serialized normally.
115
+ * Behavior:
116
+ * - Does not mutate input.
117
+ * - Uses `JSON.stringify` internally with a replacer that tracks seen
118
+ * objects.
119
+ * - Circular references are replaced with `undefined` (omitted from
120
+ * output).
121
+ * - `Redactable` values are automatically redacted before serialization.
122
+ * - Types not supported by JSON (`BigInt`, `Symbol`, `undefined`,
123
+ * functions) follow standard `JSON.stringify` behavior (omitted or
124
+ * `null` in arrays).
49
125
  *
50
- * **Options**:
51
- * - `space`: Indentation used when pretty-printing:
52
- * - If a number, that many spaces will be used.
53
- * - If a string, the string is used as the indentation unit (e.g. `"\t"`).
54
- * - If `0`, empty string, or `undefined`, output is compact (no indentation).
55
- * Defaults to `0`.
126
+ * Options:
127
+ * - `space` indentation unit (number of spaces, or a string like
128
+ * `"\t"`). Defaults to `0` (compact).
129
+ *
130
+ * **Example** (Compact JSON)
56
131
  *
57
- * @example
58
132
  * ```ts
59
- * import { formatJson } from "effect/Formatter"
133
+ * import { Formatter } from "effect"
60
134
  *
61
- * // Normal object
62
- * const simple = { name: "Alice", age: 30 }
63
- * console.log(formatJson(simple))
135
+ * console.log(Formatter.formatJson({ name: "Alice", age: 30 }))
64
136
  * // {"name":"Alice","age":30}
137
+ * ```
138
+ *
139
+ * **Example** (Circular reference handling)
140
+ *
141
+ * ```ts
142
+ * import { Formatter } from "effect"
65
143
  *
66
- * // Object with circular reference
67
- * const circular: any = { name: "test" }
68
- * circular.self = circular
69
- * console.log(formatJson(circular))
70
- * // {"name":"test"} (circular reference omitted)
144
+ * const obj: any = { name: "test" }
145
+ * obj.self = obj
146
+ * console.log(Formatter.formatJson(obj))
147
+ * // {"name":"test"}
148
+ * ```
149
+ *
150
+ * **Example** (Pretty-printed JSON)
71
151
  *
72
- * // With formatting
73
- * console.log(formatJson(simple, { space: 2 }))
152
+ * ```ts
153
+ * import { Formatter } from "effect"
154
+ *
155
+ * console.log(Formatter.formatJson({ name: "Alice", age: 30 }, { space: 2 }))
74
156
  * // {
75
157
  * // "name": "Alice",
76
158
  * // "age": 30
77
159
  * // }
78
160
  * ```
79
161
  *
162
+ * See also: {@link format}, {@link Formatter}
163
+ *
80
164
  * @since 4.0.0
81
165
  */
82
166
  export declare function formatJson(input: unknown, options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"Formatter.d.ts","sourceRoot":"","sources":["../src/Formatter.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,WAAW,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM;IACtD,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9C,GAAG,MAAM,CAgFT;AA4CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAC7C,GAAG,MAAM,CAcT"}
1
+ {"version":3,"file":"Formatter.d.ts","sourceRoot":"","sources":["../src/Formatter.ts"],"names":[],"mappings":"AAyDA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM;IACtD,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9C,GAAG,MAAM,CAgFT;AA+GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAC7C,GAAG,MAAM,CAcT"}
package/dist/Formatter.js CHANGED
@@ -1,4 +1,55 @@
1
1
  /**
2
+ * Utilities for converting arbitrary JavaScript values into human-readable
3
+ * strings, with support for circular references, redaction, and common JS
4
+ * types that `JSON.stringify` handles poorly.
5
+ *
6
+ * Mental model:
7
+ * - A `Formatter<Value, Format>` is a callable `(value: Value) => Format`.
8
+ * - {@link format} is the general-purpose pretty-printer: it handles
9
+ * primitives, arrays, objects, `BigInt`, `Symbol`, `Date`, `RegExp`,
10
+ * `Set`, `Map`, class instances, and circular references.
11
+ * - {@link formatJson} is a safe `JSON.stringify` wrapper that silently
12
+ * drops circular references and applies redaction.
13
+ * - Both functions accept a `space` option for indentation control.
14
+ *
15
+ * Common tasks:
16
+ * - Pretty-print any value for debugging / logging -> {@link format}
17
+ * - Serialize to JSON safely (no circular throws) -> {@link formatJson}
18
+ * - Format a single object property key -> {@link formatPropertyKey}
19
+ * - Format a property path like `["a"]["b"]` -> {@link formatPath}
20
+ * - Format a `Date` to ISO string safely -> {@link formatDate}
21
+ *
22
+ * Gotchas:
23
+ * - {@link format} output is **not** valid JSON; use {@link formatJson} when
24
+ * you need parseable JSON.
25
+ * - {@link format} calls `toString()` on objects by default; pass
26
+ * `ignoreToString: true` to disable.
27
+ * - {@link formatJson} silently omits circular references (the key is
28
+ * dropped from the output).
29
+ * - Values implementing the `Redactable` protocol are automatically
30
+ * redacted by both {@link format} and {@link formatJson}.
31
+ *
32
+ * **Example** (Pretty-print a value)
33
+ *
34
+ * ```ts
35
+ * import { Formatter } from "effect"
36
+ *
37
+ * const obj = { name: "Alice", scores: [100, 97] }
38
+ * console.log(Formatter.format(obj))
39
+ * // {"name":"Alice","scores":[100,97]}
40
+ *
41
+ * console.log(Formatter.format(obj, { space: 2 }))
42
+ * // {
43
+ * // "name": "Alice",
44
+ * // "scores": [
45
+ * // 100,
46
+ * // 97
47
+ * // ]
48
+ * // }
49
+ * ```
50
+ *
51
+ * See also: {@link Formatter}, {@link format}, {@link formatJson}
52
+ *
2
53
  * @since 4.0.0
3
54
  */
4
55
  import * as Predicate from "./Predicate.js";
@@ -6,31 +57,71 @@ import { getRedacted, redact, symbolRedactable } from "./Redactable.js";
6
57
  /**
7
58
  * Converts any JavaScript value into a human-readable string.
8
59
  *
9
- * For objects that don't have a `toString` method, it applies redaction to
10
- * protect sensitive information.
11
- *
12
- * Unlike `JSON.stringify`, this formatter:
13
- * - Handles circular references (printed as `"[Circular]"`).
14
- * - Supports additional types like `BigInt`, `Symbol`, `Set`, `Map`, `Date`, `RegExp`, and
15
- * objects with custom `toString` methods.
16
- * - Includes constructor names for class instances (e.g. `MyClass({"a":1})`).
17
- * - Does not guarantee valid JSON output — the result is intended for debugging and inspection.
18
- *
19
- * Formatting rules:
20
- * - Primitives are stringified naturally (`null`, `undefined`, `123`, `"abc"`, `true`).
21
- * - Strings are JSON-quoted.
22
- * - Arrays and objects with a single element/property are formatted inline.
23
- * - Larger arrays/objects are pretty-printed with optional indentation.
24
- * - Circular references are replaced with the literal `"[Circular]"`.
25
- *
26
- * **Options**:
27
- * - `space`: Indentation used when pretty-printing:
28
- * - If a number, that many spaces will be used.
29
- * - If a string, the string is used as the indentation unit (e.g. `"\t"`).
30
- * - If `0`, empty string, or `undefined`, output is compact (no indentation).
31
- * Defaults to `0`.
32
- * - `ignoreToString`: If `true`, the `toString` method is not called on the value.
33
- * Defaults to `false`.
60
+ * When to use:
61
+ * - Pretty-printing values for debugging, logging, or error messages.
62
+ * - You need to handle `BigInt`, `Symbol`, `Set`, `Map`, `Date`, `RegExp`,
63
+ * or class instances that `JSON.stringify` cannot represent.
64
+ * - You want circular references shown as `"[Circular]"` instead of
65
+ * throwing.
66
+ *
67
+ * Behavior:
68
+ * - Does not mutate input.
69
+ * - Output is **not** valid JSON; use {@link formatJson} when you need
70
+ * parseable JSON.
71
+ * - Primitives: stringified naturally (`null`, `undefined`, `123`, `true`).
72
+ * Strings are JSON-quoted.
73
+ * - Objects with a custom `toString` (not `Object.prototype.toString`):
74
+ * `toString()` is called unless `ignoreToString` is `true`.
75
+ * - Errors with a `cause`: formatted as `"<message> (cause: <cause>)"`.
76
+ * - Iterables (`Set`, `Map`, etc.): formatted as
77
+ * `ClassName([...elements])`.
78
+ * - Class instances: wrapped as `ClassName({...})`.
79
+ * - `Redactable` values are automatically redacted.
80
+ * - Arrays/objects with 0–1 entries are inline; larger ones are
81
+ * pretty-printed when `space` is set.
82
+ * - Circular references are replaced with `"[Circular]"`.
83
+ *
84
+ * Options:
85
+ * - `space` — indentation unit (number of spaces, or a string like
86
+ * `"\t"`). Defaults to `0` (compact).
87
+ * - `ignoreToString` — skip calling `toString()`. Defaults to `false`.
88
+ *
89
+ * **Example** (Compact output)
90
+ *
91
+ * ```ts
92
+ * import { Formatter } from "effect"
93
+ *
94
+ * console.log(Formatter.format({ a: 1, b: [2, 3] }))
95
+ * // {"a":1,"b":[2,3]}
96
+ * ```
97
+ *
98
+ * **Example** (Pretty-printed output)
99
+ *
100
+ * ```ts
101
+ * import { Formatter } from "effect"
102
+ *
103
+ * console.log(Formatter.format({ a: 1, b: [2, 3] }, { space: 2 }))
104
+ * // {
105
+ * // "a": 1,
106
+ * // "b": [
107
+ * // 2,
108
+ * // 3
109
+ * // ]
110
+ * // }
111
+ * ```
112
+ *
113
+ * **Example** (Circular reference handling)
114
+ *
115
+ * ```ts
116
+ * import { Formatter } from "effect"
117
+ *
118
+ * const obj: any = { name: "loop" }
119
+ * obj.self = obj
120
+ * console.log(Formatter.format(obj))
121
+ * // {"name":"loop","self":[Circular]}
122
+ * ```
123
+ *
124
+ * See also: {@link formatJson}, {@link Formatter}
34
125
  *
35
126
  * @since 4.0.0
36
127
  */
@@ -69,7 +160,7 @@ export function format(input, options) {
69
160
  if (typeof v === "string") return JSON.stringify(v);
70
161
  if (typeof v === "number" || v == null || typeof v === "boolean" || typeof v === "symbol") return String(v);
71
162
  if (typeof v === "bigint") return String(v) + "n";
72
- if (Predicate.isObject(v)) {
163
+ if (typeof v === "object" || typeof v === "function") {
73
164
  if (seen.has(v)) return CIRCULAR;
74
165
  seen.add(v);
75
166
  if (symbolRedactable in v) return format(getRedacted(v));
@@ -90,7 +181,29 @@ export function format(input, options) {
90
181
  }
91
182
  const CIRCULAR = "[Circular]";
92
183
  /**
93
- * Fast path for formatting property keys.
184
+ * Formats a single property key for display.
185
+ *
186
+ * When to use:
187
+ * - You are building a custom formatter that needs to render object keys.
188
+ *
189
+ * Behavior:
190
+ * - String keys are JSON-quoted (e.g. `"foo"`).
191
+ * - Symbol and number keys are converted with `String()`.
192
+ * - Pure function; does not mutate input.
193
+ *
194
+ * **Example** (Format property keys)
195
+ *
196
+ * ```ts
197
+ * import { Formatter } from "effect"
198
+ *
199
+ * console.log(Formatter.formatPropertyKey("name"))
200
+ * // "name"
201
+ *
202
+ * console.log(Formatter.formatPropertyKey(Symbol.for("id")))
203
+ * // Symbol(id)
204
+ * ```
205
+ *
206
+ * See also: {@link formatPath}, {@link format}
94
207
  *
95
208
  * @internal
96
209
  */
@@ -98,7 +211,28 @@ export function formatPropertyKey(name) {
98
211
  return typeof name === "string" ? JSON.stringify(name) : String(name);
99
212
  }
100
213
  /**
101
- * Fast path for formatting property paths.
214
+ * Formats an array of property keys as a bracket-notation path string.
215
+ *
216
+ * When to use:
217
+ * - You need to display a path through a nested object (e.g. in error
218
+ * messages or schema validation output).
219
+ *
220
+ * Behavior:
221
+ * - Each key is wrapped in brackets and formatted via
222
+ * {@link formatPropertyKey}.
223
+ * - Returns an empty string for an empty path.
224
+ * - Pure function; does not mutate input.
225
+ *
226
+ * **Example** (Render a property path)
227
+ *
228
+ * ```ts
229
+ * import { Formatter } from "effect"
230
+ *
231
+ * console.log(Formatter.formatPath(["users", 0, "name"]))
232
+ * // ["users"][0]["name"]
233
+ * ```
234
+ *
235
+ * See also: {@link formatPropertyKey}, {@link format}
102
236
  *
103
237
  * @internal
104
238
  */
@@ -106,7 +240,31 @@ export function formatPath(path) {
106
240
  return path.map(key => `[${formatPropertyKey(key)}]`).join("");
107
241
  }
108
242
  /**
109
- * Fast path for formatting dates.
243
+ * Formats a `Date` as an ISO 8601 string, returning `"Invalid Date"` for
244
+ * invalid dates instead of throwing.
245
+ *
246
+ * When to use:
247
+ * - You want a safe `toISOString()` that never throws.
248
+ *
249
+ * Behavior:
250
+ * - Returns `date.toISOString()` on success.
251
+ * - Returns `"Invalid Date"` if `toISOString()` throws (e.g. for
252
+ * `new Date(NaN)`).
253
+ * - Pure function; does not mutate input.
254
+ *
255
+ * **Example** (Safe date formatting)
256
+ *
257
+ * ```ts
258
+ * import { Formatter } from "effect"
259
+ *
260
+ * console.log(Formatter.formatDate(new Date("2024-01-15T10:30:00Z")))
261
+ * // 2024-01-15T10:30:00.000Z
262
+ *
263
+ * console.log(Formatter.formatDate(new Date("invalid")))
264
+ * // Invalid Date
265
+ * ```
266
+ *
267
+ * See also: {@link format}
110
268
  *
111
269
  * @internal
112
270
  */
@@ -126,42 +284,62 @@ function safeToString(input) {
126
284
  }
127
285
  }
128
286
  /**
129
- * Safely stringifies objects that may contain circular references.
287
+ * Safely stringifies a value to JSON, silently dropping circular references.
288
+ *
289
+ * When to use:
290
+ * - You need valid JSON output (unlike {@link format}).
291
+ * - The input may contain circular references and you want them silently
292
+ * omitted rather than throwing a `TypeError`.
130
293
  *
131
- * This function performs JSON.stringify with circular reference detection and handling.
132
- * It also applies redaction to sensitive values and provides a safe fallback for
133
- * any objects that can't be serialized normally.
294
+ * Behavior:
295
+ * - Does not mutate input.
296
+ * - Uses `JSON.stringify` internally with a replacer that tracks seen
297
+ * objects.
298
+ * - Circular references are replaced with `undefined` (omitted from
299
+ * output).
300
+ * - `Redactable` values are automatically redacted before serialization.
301
+ * - Types not supported by JSON (`BigInt`, `Symbol`, `undefined`,
302
+ * functions) follow standard `JSON.stringify` behavior (omitted or
303
+ * `null` in arrays).
134
304
  *
135
- * **Options**:
136
- * - `space`: Indentation used when pretty-printing:
137
- * - If a number, that many spaces will be used.
138
- * - If a string, the string is used as the indentation unit (e.g. `"\t"`).
139
- * - If `0`, empty string, or `undefined`, output is compact (no indentation).
140
- * Defaults to `0`.
305
+ * Options:
306
+ * - `space` indentation unit (number of spaces, or a string like
307
+ * `"\t"`). Defaults to `0` (compact).
308
+ *
309
+ * **Example** (Compact JSON)
141
310
  *
142
- * @example
143
311
  * ```ts
144
- * import { formatJson } from "effect/Formatter"
312
+ * import { Formatter } from "effect"
145
313
  *
146
- * // Normal object
147
- * const simple = { name: "Alice", age: 30 }
148
- * console.log(formatJson(simple))
314
+ * console.log(Formatter.formatJson({ name: "Alice", age: 30 }))
149
315
  * // {"name":"Alice","age":30}
316
+ * ```
150
317
  *
151
- * // Object with circular reference
152
- * const circular: any = { name: "test" }
153
- * circular.self = circular
154
- * console.log(formatJson(circular))
155
- * // {"name":"test"} (circular reference omitted)
318
+ * **Example** (Circular reference handling)
156
319
  *
157
- * // With formatting
158
- * console.log(formatJson(simple, { space: 2 }))
320
+ * ```ts
321
+ * import { Formatter } from "effect"
322
+ *
323
+ * const obj: any = { name: "test" }
324
+ * obj.self = obj
325
+ * console.log(Formatter.formatJson(obj))
326
+ * // {"name":"test"}
327
+ * ```
328
+ *
329
+ * **Example** (Pretty-printed JSON)
330
+ *
331
+ * ```ts
332
+ * import { Formatter } from "effect"
333
+ *
334
+ * console.log(Formatter.formatJson({ name: "Alice", age: 30 }, { space: 2 }))
159
335
  * // {
160
336
  * // "name": "Alice",
161
337
  * // "age": 30
162
338
  * // }
163
339
  * ```
164
340
  *
341
+ * See also: {@link format}, {@link Formatter}
342
+ *
165
343
  * @since 4.0.0
166
344
  */
167
345
  export function formatJson(input, options) {