effect 4.0.0-beta.5 → 4.0.0-beta.50

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 (1504) hide show
  1. package/dist/Array.d.ts +213 -385
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +149 -102
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +82 -45
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +87 -38
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +39 -32
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +32 -29
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Brand.d.ts +1 -1
  14. package/dist/Brand.d.ts.map +1 -1
  15. package/dist/Brand.js +1 -1
  16. package/dist/Brand.js.map +1 -1
  17. package/dist/Cache.d.ts +14 -45
  18. package/dist/Cache.d.ts.map +1 -1
  19. package/dist/Cache.js +21 -47
  20. package/dist/Cache.js.map +1 -1
  21. package/dist/Cause.d.ts +54 -23
  22. package/dist/Cause.d.ts.map +1 -1
  23. package/dist/Cause.js +108 -10
  24. package/dist/Cause.js.map +1 -1
  25. package/dist/Channel.d.ts +166 -48
  26. package/dist/Channel.d.ts.map +1 -1
  27. package/dist/Channel.js +182 -91
  28. package/dist/Channel.js.map +1 -1
  29. package/dist/Chunk.d.ts +112 -304
  30. package/dist/Chunk.d.ts.map +1 -1
  31. package/dist/Chunk.js +56 -88
  32. package/dist/Chunk.js.map +1 -1
  33. package/dist/Clock.d.ts +2 -2
  34. package/dist/Clock.d.ts.map +1 -1
  35. package/dist/Clock.js.map +1 -1
  36. package/dist/Combiner.d.ts +280 -13
  37. package/dist/Combiner.d.ts.map +1 -1
  38. package/dist/Combiner.js +198 -7
  39. package/dist/Combiner.js.map +1 -1
  40. package/dist/Config.d.ts +171 -11
  41. package/dist/Config.d.ts.map +1 -1
  42. package/dist/Config.js +69 -11
  43. package/dist/Config.js.map +1 -1
  44. package/dist/ConfigProvider.d.ts +6 -6
  45. package/dist/ConfigProvider.d.ts.map +1 -1
  46. package/dist/ConfigProvider.js +5 -5
  47. package/dist/ConfigProvider.js.map +1 -1
  48. package/dist/Console.d.ts +2 -2
  49. package/dist/Console.d.ts.map +1 -1
  50. package/dist/Console.js.map +1 -1
  51. package/dist/Context.d.ts +1150 -0
  52. package/dist/Context.d.ts.map +1 -0
  53. package/dist/{ServiceMap.js → Context.js} +181 -165
  54. package/dist/Context.js.map +1 -0
  55. package/dist/Cron.d.ts +11 -7
  56. package/dist/Cron.d.ts.map +1 -1
  57. package/dist/Cron.js +120 -63
  58. package/dist/Cron.js.map +1 -1
  59. package/dist/Data.d.ts +535 -366
  60. package/dist/Data.d.ts.map +1 -1
  61. package/dist/Data.js +132 -79
  62. package/dist/Data.js.map +1 -1
  63. package/dist/DateTime.d.ts +74 -255
  64. package/dist/DateTime.d.ts.map +1 -1
  65. package/dist/DateTime.js +17 -62
  66. package/dist/DateTime.js.map +1 -1
  67. package/dist/Deferred.d.ts +12 -5
  68. package/dist/Deferred.d.ts.map +1 -1
  69. package/dist/Deferred.js +13 -5
  70. package/dist/Deferred.js.map +1 -1
  71. package/dist/Duration.d.ts +62 -32
  72. package/dist/Duration.d.ts.map +1 -1
  73. package/dist/Duration.js +108 -78
  74. package/dist/Duration.js.map +1 -1
  75. package/dist/Effect.d.ts +1377 -1147
  76. package/dist/Effect.d.ts.map +1 -1
  77. package/dist/Effect.js +465 -446
  78. package/dist/Effect.js.map +1 -1
  79. package/dist/Encoding.d.ts +194 -0
  80. package/dist/Encoding.d.ts.map +1 -0
  81. package/dist/Encoding.js +352 -0
  82. package/dist/Encoding.js.map +1 -0
  83. package/dist/Equal.d.ts +276 -109
  84. package/dist/Equal.d.ts.map +1 -1
  85. package/dist/Equal.js +140 -48
  86. package/dist/Equal.js.map +1 -1
  87. package/dist/Equivalence.d.ts +60 -3
  88. package/dist/Equivalence.d.ts.map +1 -1
  89. package/dist/Equivalence.js +70 -13
  90. package/dist/Equivalence.js.map +1 -1
  91. package/dist/ErrorReporter.d.ts +374 -0
  92. package/dist/ErrorReporter.d.ts.map +1 -0
  93. package/dist/ErrorReporter.js +245 -0
  94. package/dist/ErrorReporter.js.map +1 -0
  95. package/dist/ExecutionPlan.d.ts +6 -6
  96. package/dist/ExecutionPlan.d.ts.map +1 -1
  97. package/dist/ExecutionPlan.js +4 -4
  98. package/dist/ExecutionPlan.js.map +1 -1
  99. package/dist/Exit.d.ts +24 -12
  100. package/dist/Exit.d.ts.map +1 -1
  101. package/dist/Exit.js +8 -4
  102. package/dist/Exit.js.map +1 -1
  103. package/dist/Fiber.d.ts +10 -8
  104. package/dist/Fiber.d.ts.map +1 -1
  105. package/dist/Fiber.js.map +1 -1
  106. package/dist/FiberHandle.d.ts +11 -10
  107. package/dist/FiberHandle.d.ts.map +1 -1
  108. package/dist/FiberHandle.js +12 -11
  109. package/dist/FiberHandle.js.map +1 -1
  110. package/dist/FiberMap.d.ts +22 -21
  111. package/dist/FiberMap.d.ts.map +1 -1
  112. package/dist/FiberMap.js +10 -10
  113. package/dist/FiberMap.js.map +1 -1
  114. package/dist/FiberSet.d.ts +2 -2
  115. package/dist/FiberSet.d.ts.map +1 -1
  116. package/dist/FiberSet.js +4 -4
  117. package/dist/FiberSet.js.map +1 -1
  118. package/dist/FileSystem.d.ts +20 -19
  119. package/dist/FileSystem.d.ts.map +1 -1
  120. package/dist/FileSystem.js +17 -13
  121. package/dist/FileSystem.js.map +1 -1
  122. package/dist/Filter.d.ts +4 -37
  123. package/dist/Filter.d.ts.map +1 -1
  124. package/dist/Filter.js +0 -13
  125. package/dist/Filter.js.map +1 -1
  126. package/dist/Formatter.d.ts +131 -47
  127. package/dist/Formatter.d.ts.map +1 -1
  128. package/dist/Formatter.js +229 -51
  129. package/dist/Formatter.js.map +1 -1
  130. package/dist/Function.d.ts +1 -9
  131. package/dist/Function.d.ts.map +1 -1
  132. package/dist/Function.js +2 -10
  133. package/dist/Function.js.map +1 -1
  134. package/dist/Graph.d.ts +65 -65
  135. package/dist/Graph.d.ts.map +1 -1
  136. package/dist/Graph.js +60 -62
  137. package/dist/Graph.js.map +1 -1
  138. package/dist/Hash.js +1 -1
  139. package/dist/Hash.js.map +1 -1
  140. package/dist/HashMap.d.ts +26 -19
  141. package/dist/HashMap.d.ts.map +1 -1
  142. package/dist/HashMap.js +7 -5
  143. package/dist/HashMap.js.map +1 -1
  144. package/dist/Iterable.d.ts +50 -50
  145. package/dist/Iterable.d.ts.map +1 -1
  146. package/dist/Iterable.js +106 -34
  147. package/dist/Iterable.js.map +1 -1
  148. package/dist/JsonSchema.d.ts +299 -10
  149. package/dist/JsonSchema.d.ts.map +1 -1
  150. package/dist/JsonSchema.js +323 -4
  151. package/dist/JsonSchema.js.map +1 -1
  152. package/dist/Latch.d.ts +175 -0
  153. package/dist/Latch.d.ts.map +1 -0
  154. package/dist/Latch.js +130 -0
  155. package/dist/Latch.js.map +1 -0
  156. package/dist/Layer.d.ts +599 -379
  157. package/dist/Layer.d.ts.map +1 -1
  158. package/dist/Layer.js +249 -180
  159. package/dist/Layer.js.map +1 -1
  160. package/dist/LayerMap.d.ts +27 -26
  161. package/dist/LayerMap.d.ts.map +1 -1
  162. package/dist/LayerMap.js +21 -18
  163. package/dist/LayerMap.js.map +1 -1
  164. package/dist/LogLevel.d.ts +32 -0
  165. package/dist/LogLevel.d.ts.map +1 -1
  166. package/dist/LogLevel.js +28 -100
  167. package/dist/LogLevel.js.map +1 -1
  168. package/dist/Logger.d.ts +31 -97
  169. package/dist/Logger.d.ts.map +1 -1
  170. package/dist/Logger.js +2 -3
  171. package/dist/Logger.js.map +1 -1
  172. package/dist/ManagedRuntime.d.ts +8 -8
  173. package/dist/ManagedRuntime.d.ts.map +1 -1
  174. package/dist/ManagedRuntime.js +34 -25
  175. package/dist/ManagedRuntime.js.map +1 -1
  176. package/dist/Metric.d.ts +23 -25
  177. package/dist/Metric.d.ts.map +1 -1
  178. package/dist/Metric.js +24 -26
  179. package/dist/Metric.js.map +1 -1
  180. package/dist/MutableHashMap.d.ts +7 -0
  181. package/dist/MutableHashMap.d.ts.map +1 -1
  182. package/dist/MutableHashMap.js +8 -0
  183. package/dist/MutableHashMap.js.map +1 -1
  184. package/dist/MutableHashSet.d.ts +7 -0
  185. package/dist/MutableHashSet.d.ts.map +1 -1
  186. package/dist/MutableHashSet.js +8 -0
  187. package/dist/MutableHashSet.js.map +1 -1
  188. package/dist/MutableList.d.ts.map +1 -1
  189. package/dist/MutableList.js +3 -0
  190. package/dist/MutableList.js.map +1 -1
  191. package/dist/Newtype.d.ts +291 -0
  192. package/dist/Newtype.d.ts.map +1 -0
  193. package/dist/Newtype.js +161 -0
  194. package/dist/Newtype.js.map +1 -0
  195. package/dist/Number.d.ts +74 -18
  196. package/dist/Number.d.ts.map +1 -1
  197. package/dist/Number.js +46 -18
  198. package/dist/Number.js.map +1 -1
  199. package/dist/Optic.d.ts +947 -18
  200. package/dist/Optic.d.ts.map +1 -1
  201. package/dist/Optic.js +454 -5
  202. package/dist/Optic.js.map +1 -1
  203. package/dist/Option.d.ts +25 -16
  204. package/dist/Option.d.ts.map +1 -1
  205. package/dist/Option.js +15 -9
  206. package/dist/Option.js.map +1 -1
  207. package/dist/Order.d.ts +6 -1
  208. package/dist/Order.d.ts.map +1 -1
  209. package/dist/Order.js +19 -14
  210. package/dist/Order.js.map +1 -1
  211. package/dist/PartitionedSemaphore.d.ts +146 -15
  212. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  213. package/dist/PartitionedSemaphore.js +174 -61
  214. package/dist/PartitionedSemaphore.js.map +1 -1
  215. package/dist/Path.d.ts +2 -2
  216. package/dist/Path.d.ts.map +1 -1
  217. package/dist/Path.js +2 -2
  218. package/dist/Path.js.map +1 -1
  219. package/dist/Pipeable.d.ts +17 -0
  220. package/dist/Pipeable.d.ts.map +1 -1
  221. package/dist/Pipeable.js +19 -1
  222. package/dist/Pipeable.js.map +1 -1
  223. package/dist/PlatformError.d.ts +2 -2
  224. package/dist/Pool.d.ts +6 -4
  225. package/dist/Pool.d.ts.map +1 -1
  226. package/dist/Pool.js +11 -9
  227. package/dist/Pool.js.map +1 -1
  228. package/dist/PubSub.d.ts +8 -6
  229. package/dist/PubSub.d.ts.map +1 -1
  230. package/dist/PubSub.js +18 -10
  231. package/dist/PubSub.js.map +1 -1
  232. package/dist/Pull.d.ts.map +1 -1
  233. package/dist/Pull.js +1 -1
  234. package/dist/Pull.js.map +1 -1
  235. package/dist/Queue.d.ts +9 -6
  236. package/dist/Queue.d.ts.map +1 -1
  237. package/dist/Queue.js +7 -5
  238. package/dist/Queue.js.map +1 -1
  239. package/dist/Random.d.ts +36 -2
  240. package/dist/Random.d.ts.map +1 -1
  241. package/dist/Random.js +46 -35
  242. package/dist/Random.js.map +1 -1
  243. package/dist/RcMap.d.ts +4 -4
  244. package/dist/RcMap.d.ts.map +1 -1
  245. package/dist/RcMap.js +13 -13
  246. package/dist/RcMap.js.map +1 -1
  247. package/dist/RcRef.d.ts +1 -1
  248. package/dist/RcRef.d.ts.map +1 -1
  249. package/dist/Record.d.ts +63 -160
  250. package/dist/Record.d.ts.map +1 -1
  251. package/dist/Record.js +37 -56
  252. package/dist/Record.js.map +1 -1
  253. package/dist/Redactable.d.ts +139 -62
  254. package/dist/Redactable.d.ts.map +1 -1
  255. package/dist/Redactable.js +59 -55
  256. package/dist/Redactable.js.map +1 -1
  257. package/dist/Reducer.d.ts +166 -7
  258. package/dist/Reducer.d.ts.map +1 -1
  259. package/dist/Reducer.js +135 -1
  260. package/dist/Reducer.js.map +1 -1
  261. package/dist/References.d.ts +257 -229
  262. package/dist/References.d.ts.map +1 -1
  263. package/dist/References.js +240 -259
  264. package/dist/References.js.map +1 -1
  265. package/dist/Request.d.ts +6 -6
  266. package/dist/Request.d.ts.map +1 -1
  267. package/dist/Request.js +2 -1
  268. package/dist/Request.js.map +1 -1
  269. package/dist/RequestResolver.d.ts +25 -45
  270. package/dist/RequestResolver.d.ts.map +1 -1
  271. package/dist/RequestResolver.js +15 -36
  272. package/dist/RequestResolver.js.map +1 -1
  273. package/dist/Resource.d.ts +0 -3
  274. package/dist/Resource.d.ts.map +1 -1
  275. package/dist/Resource.js +5 -4
  276. package/dist/Resource.js.map +1 -1
  277. package/dist/Result.d.ts +1 -1
  278. package/dist/Result.d.ts.map +1 -1
  279. package/dist/Result.js +1 -2
  280. package/dist/Result.js.map +1 -1
  281. package/dist/Runtime.d.ts +66 -0
  282. package/dist/Runtime.d.ts.map +1 -1
  283. package/dist/Runtime.js +79 -6
  284. package/dist/Runtime.js.map +1 -1
  285. package/dist/Schedule.d.ts +176 -293
  286. package/dist/Schedule.d.ts.map +1 -1
  287. package/dist/Schedule.js +162 -136
  288. package/dist/Schedule.js.map +1 -1
  289. package/dist/Scheduler.d.ts +36 -125
  290. package/dist/Scheduler.d.ts.map +1 -1
  291. package/dist/Scheduler.js +37 -126
  292. package/dist/Scheduler.js.map +1 -1
  293. package/dist/Schema.d.ts +3269 -394
  294. package/dist/Schema.d.ts.map +1 -1
  295. package/dist/Schema.js +2284 -282
  296. package/dist/Schema.js.map +1 -1
  297. package/dist/SchemaAST.d.ts +7 -2
  298. package/dist/SchemaAST.d.ts.map +1 -1
  299. package/dist/SchemaAST.js +136 -40
  300. package/dist/SchemaAST.js.map +1 -1
  301. package/dist/SchemaGetter.d.ts +54 -10
  302. package/dist/SchemaGetter.d.ts.map +1 -1
  303. package/dist/SchemaGetter.js +82 -23
  304. package/dist/SchemaGetter.js.map +1 -1
  305. package/dist/SchemaParser.d.ts +44 -54
  306. package/dist/SchemaParser.d.ts.map +1 -1
  307. package/dist/SchemaParser.js +55 -2
  308. package/dist/SchemaParser.js.map +1 -1
  309. package/dist/SchemaRepresentation.d.ts +46 -45
  310. package/dist/SchemaRepresentation.d.ts.map +1 -1
  311. package/dist/SchemaRepresentation.js +65 -38
  312. package/dist/SchemaRepresentation.js.map +1 -1
  313. package/dist/SchemaTransformation.d.ts +252 -3
  314. package/dist/SchemaTransformation.d.ts.map +1 -1
  315. package/dist/SchemaTransformation.js +319 -13
  316. package/dist/SchemaTransformation.js.map +1 -1
  317. package/dist/Scope.d.ts +2 -2
  318. package/dist/Scope.d.ts.map +1 -1
  319. package/dist/Scope.js.map +1 -1
  320. package/dist/ScopedCache.d.ts +2 -2
  321. package/dist/ScopedCache.d.ts.map +1 -1
  322. package/dist/ScopedCache.js +5 -5
  323. package/dist/ScopedCache.js.map +1 -1
  324. package/dist/Semaphore.d.ts +307 -0
  325. package/dist/Semaphore.d.ts.map +1 -0
  326. package/dist/Semaphore.js +220 -0
  327. package/dist/Semaphore.js.map +1 -0
  328. package/dist/Sink.d.ts +22 -19
  329. package/dist/Sink.d.ts.map +1 -1
  330. package/dist/Sink.js +54 -7
  331. package/dist/Sink.js.map +1 -1
  332. package/dist/Stdio.d.ts +18 -6
  333. package/dist/Stdio.d.ts.map +1 -1
  334. package/dist/Stdio.js +20 -2
  335. package/dist/Stdio.js.map +1 -1
  336. package/dist/Stream.d.ts +465 -542
  337. package/dist/Stream.d.ts.map +1 -1
  338. package/dist/Stream.js +321 -144
  339. package/dist/Stream.js.map +1 -1
  340. package/dist/String.d.ts +114 -47
  341. package/dist/String.d.ts.map +1 -1
  342. package/dist/String.js +29 -47
  343. package/dist/String.js.map +1 -1
  344. package/dist/Struct.d.ts +23 -7
  345. package/dist/Struct.d.ts.map +1 -1
  346. package/dist/Struct.js +22 -0
  347. package/dist/Struct.js.map +1 -1
  348. package/dist/SubscriptionRef.d.ts +3 -3
  349. package/dist/SubscriptionRef.d.ts.map +1 -1
  350. package/dist/SubscriptionRef.js +85 -117
  351. package/dist/SubscriptionRef.js.map +1 -1
  352. package/dist/SynchronizedRef.d.ts +2 -1
  353. package/dist/SynchronizedRef.d.ts.map +1 -1
  354. package/dist/SynchronizedRef.js +2 -1
  355. package/dist/SynchronizedRef.js.map +1 -1
  356. package/dist/Terminal.d.ts +5 -4
  357. package/dist/Terminal.d.ts.map +1 -1
  358. package/dist/Terminal.js +2 -2
  359. package/dist/Terminal.js.map +1 -1
  360. package/dist/Tracer.d.ts +21 -20
  361. package/dist/Tracer.d.ts.map +1 -1
  362. package/dist/Tracer.js +13 -9
  363. package/dist/Tracer.js.map +1 -1
  364. package/dist/Trie.d.ts +44 -31
  365. package/dist/Trie.d.ts.map +1 -1
  366. package/dist/Trie.js +13 -9
  367. package/dist/Trie.js.map +1 -1
  368. package/dist/TxChunk.d.ts +4 -4
  369. package/dist/TxChunk.d.ts.map +1 -1
  370. package/dist/TxChunk.js +4 -4
  371. package/dist/TxChunk.js.map +1 -1
  372. package/dist/TxDeferred.d.ts +328 -0
  373. package/dist/TxDeferred.d.ts.map +1 -0
  374. package/dist/TxDeferred.js +197 -0
  375. package/dist/TxDeferred.js.map +1 -0
  376. package/dist/TxHashMap.d.ts +105 -86
  377. package/dist/TxHashMap.d.ts.map +1 -1
  378. package/dist/TxHashMap.js +51 -44
  379. package/dist/TxHashMap.js.map +1 -1
  380. package/dist/TxHashSet.d.ts +2 -2
  381. package/dist/TxHashSet.d.ts.map +1 -1
  382. package/dist/TxHashSet.js +16 -15
  383. package/dist/TxHashSet.js.map +1 -1
  384. package/dist/TxPriorityQueue.d.ts +609 -0
  385. package/dist/TxPriorityQueue.d.ts.map +1 -0
  386. package/dist/TxPriorityQueue.js +416 -0
  387. package/dist/TxPriorityQueue.js.map +1 -0
  388. package/dist/TxPubSub.d.ts +585 -0
  389. package/dist/TxPubSub.d.ts.map +1 -0
  390. package/dist/TxPubSub.js +521 -0
  391. package/dist/TxPubSub.js.map +1 -0
  392. package/dist/TxQueue.d.ts +1 -1
  393. package/dist/TxQueue.d.ts.map +1 -1
  394. package/dist/TxQueue.js +42 -57
  395. package/dist/TxQueue.js.map +1 -1
  396. package/dist/TxReentrantLock.d.ts +500 -0
  397. package/dist/TxReentrantLock.d.ts.map +1 -0
  398. package/dist/TxReentrantLock.js +481 -0
  399. package/dist/TxReentrantLock.js.map +1 -0
  400. package/dist/TxRef.d.ts +14 -20
  401. package/dist/TxRef.d.ts.map +1 -1
  402. package/dist/TxRef.js +8 -10
  403. package/dist/TxRef.js.map +1 -1
  404. package/dist/TxSemaphore.d.ts +162 -2
  405. package/dist/TxSemaphore.d.ts.map +1 -1
  406. package/dist/TxSemaphore.js +25 -10
  407. package/dist/TxSemaphore.js.map +1 -1
  408. package/dist/TxSubscriptionRef.d.ts +508 -0
  409. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  410. package/dist/TxSubscriptionRef.js +293 -0
  411. package/dist/TxSubscriptionRef.js.map +1 -0
  412. package/dist/Types.d.ts +83 -17
  413. package/dist/Types.d.ts.map +1 -1
  414. package/dist/Unify.d.ts +8 -2
  415. package/dist/Unify.d.ts.map +1 -1
  416. package/dist/Unify.js.map +1 -1
  417. package/dist/Utils.d.ts +137 -65
  418. package/dist/Utils.d.ts.map +1 -1
  419. package/dist/Utils.js +38 -66
  420. package/dist/Utils.js.map +1 -1
  421. package/dist/index.d.ts +888 -71
  422. package/dist/index.d.ts.map +1 -1
  423. package/dist/index.js +888 -71
  424. package/dist/index.js.map +1 -1
  425. package/dist/internal/core.js +11 -3
  426. package/dist/internal/core.js.map +1 -1
  427. package/dist/internal/dateTime.js +77 -71
  428. package/dist/internal/dateTime.js.map +1 -1
  429. package/dist/internal/effect.js +343 -260
  430. package/dist/internal/effect.js.map +1 -1
  431. package/dist/internal/hashMap.js +7 -5
  432. package/dist/internal/hashMap.js.map +1 -1
  433. package/dist/internal/layer.js +3 -3
  434. package/dist/internal/layer.js.map +1 -1
  435. package/dist/internal/option.js +6 -0
  436. package/dist/internal/option.js.map +1 -1
  437. package/dist/internal/random.d.ts +2 -0
  438. package/dist/internal/random.d.ts.map +1 -0
  439. package/dist/internal/random.js +13 -0
  440. package/dist/internal/random.js.map +1 -0
  441. package/dist/internal/rcRef.js +11 -10
  442. package/dist/internal/rcRef.js.map +1 -1
  443. package/dist/internal/references.d.ts +2 -0
  444. package/dist/internal/references.d.ts.map +1 -0
  445. package/dist/internal/references.js +51 -0
  446. package/dist/internal/references.js.map +1 -0
  447. package/dist/internal/request.js +6 -6
  448. package/dist/internal/request.js.map +1 -1
  449. package/dist/internal/schedule.js +1 -1
  450. package/dist/internal/schedule.js.map +1 -1
  451. package/dist/internal/schema/annotations.js +2 -0
  452. package/dist/internal/schema/annotations.js.map +1 -1
  453. package/dist/internal/schema/representation.js +86 -107
  454. package/dist/internal/schema/representation.js.map +1 -1
  455. package/dist/internal/schema/schema.d.ts +10 -1
  456. package/dist/internal/schema/schema.d.ts.map +1 -1
  457. package/dist/internal/schema/schema.js +22 -1
  458. package/dist/internal/schema/schema.js.map +1 -1
  459. package/dist/internal/schema/to-codec.js +7 -10
  460. package/dist/internal/schema/to-codec.js.map +1 -1
  461. package/dist/internal/trie.js +8 -7
  462. package/dist/internal/trie.js.map +1 -1
  463. package/dist/testing/TestClock.d.ts +8 -7
  464. package/dist/testing/TestClock.d.ts.map +1 -1
  465. package/dist/testing/TestClock.js +6 -4
  466. package/dist/testing/TestClock.js.map +1 -1
  467. package/dist/testing/TestSchema.d.ts +267 -33
  468. package/dist/testing/TestSchema.d.ts.map +1 -1
  469. package/dist/testing/TestSchema.js +296 -23
  470. package/dist/testing/TestSchema.js.map +1 -1
  471. package/dist/testing/index.d.ts +64 -1
  472. package/dist/testing/index.d.ts.map +1 -1
  473. package/dist/testing/index.js +64 -1
  474. package/dist/testing/index.js.map +1 -1
  475. package/dist/unstable/ai/AiError.d.ts +155 -73
  476. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  477. package/dist/unstable/ai/AiError.js +29 -23
  478. package/dist/unstable/ai/AiError.js.map +1 -1
  479. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  480. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  481. package/dist/unstable/ai/AnthropicStructuredOutput.js +9 -2
  482. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  483. package/dist/unstable/ai/Chat.d.ts +39 -11
  484. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  485. package/dist/unstable/ai/Chat.js +41 -47
  486. package/dist/unstable/ai/Chat.js.map +1 -1
  487. package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
  488. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
  489. package/dist/unstable/ai/EmbeddingModel.js +127 -0
  490. package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
  491. package/dist/unstable/ai/IdGenerator.d.ts +2 -2
  492. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  493. package/dist/unstable/ai/IdGenerator.js +2 -2
  494. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  495. package/dist/unstable/ai/LanguageModel.d.ts +119 -49
  496. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  497. package/dist/unstable/ai/LanguageModel.js +260 -61
  498. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  499. package/dist/unstable/ai/McpSchema.d.ts +236 -141
  500. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  501. package/dist/unstable/ai/McpSchema.js +71 -19
  502. package/dist/unstable/ai/McpSchema.js.map +1 -1
  503. package/dist/unstable/ai/McpServer.d.ts +68 -15
  504. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  505. package/dist/unstable/ai/McpServer.js +218 -73
  506. package/dist/unstable/ai/McpServer.js.map +1 -1
  507. package/dist/unstable/ai/Model.d.ts +27 -9
  508. package/dist/unstable/ai/Model.d.ts.map +1 -1
  509. package/dist/unstable/ai/Model.js +25 -9
  510. package/dist/unstable/ai/Model.js.map +1 -1
  511. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  512. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  513. package/dist/unstable/ai/OpenAiStructuredOutput.js +9 -1
  514. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  515. package/dist/unstable/ai/Prompt.d.ts +20 -20
  516. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  517. package/dist/unstable/ai/Prompt.js +6 -9
  518. package/dist/unstable/ai/Prompt.js.map +1 -1
  519. package/dist/unstable/ai/Response.d.ts +27 -27
  520. package/dist/unstable/ai/Response.d.ts.map +1 -1
  521. package/dist/unstable/ai/Response.js +7 -8
  522. package/dist/unstable/ai/Response.js.map +1 -1
  523. package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
  524. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
  525. package/dist/unstable/ai/ResponseIdTracker.js +68 -0
  526. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
  527. package/dist/unstable/ai/Telemetry.d.ts +35 -2
  528. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  529. package/dist/unstable/ai/Telemetry.js +2 -2
  530. package/dist/unstable/ai/Telemetry.js.map +1 -1
  531. package/dist/unstable/ai/Tokenizer.d.ts +2 -2
  532. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  533. package/dist/unstable/ai/Tokenizer.js +2 -2
  534. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  535. package/dist/unstable/ai/Tool.d.ts +46 -16
  536. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  537. package/dist/unstable/ai/Tool.js +68 -22
  538. package/dist/unstable/ai/Tool.js.map +1 -1
  539. package/dist/unstable/ai/Toolkit.d.ts +4 -4
  540. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  541. package/dist/unstable/ai/Toolkit.js +14 -21
  542. package/dist/unstable/ai/Toolkit.js.map +1 -1
  543. package/dist/unstable/ai/index.d.ts +22 -1
  544. package/dist/unstable/ai/index.d.ts.map +1 -1
  545. package/dist/unstable/ai/index.js +22 -1
  546. package/dist/unstable/ai/index.js.map +1 -1
  547. package/dist/unstable/ai/internal/codec-transformer.js +5 -7
  548. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  549. package/dist/unstable/cli/Argument.d.ts +4 -7
  550. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  551. package/dist/unstable/cli/Argument.js +1 -3
  552. package/dist/unstable/cli/Argument.js.map +1 -1
  553. package/dist/unstable/cli/CliError.d.ts +55 -67
  554. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  555. package/dist/unstable/cli/CliError.js +32 -57
  556. package/dist/unstable/cli/CliError.js.map +1 -1
  557. package/dist/unstable/cli/CliOutput.d.ts +5 -4
  558. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  559. package/dist/unstable/cli/CliOutput.js +67 -12
  560. package/dist/unstable/cli/CliOutput.js.map +1 -1
  561. package/dist/unstable/cli/Command.d.ts +372 -59
  562. package/dist/unstable/cli/Command.d.ts.map +1 -1
  563. package/dist/unstable/cli/Command.js +328 -66
  564. package/dist/unstable/cli/Command.js.map +1 -1
  565. package/dist/unstable/cli/Completions.d.ts +97 -0
  566. package/dist/unstable/cli/Completions.d.ts.map +1 -0
  567. package/dist/unstable/cli/Completions.js +25 -0
  568. package/dist/unstable/cli/Completions.js.map +1 -0
  569. package/dist/unstable/cli/Flag.d.ts +4 -5
  570. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  571. package/dist/unstable/cli/Flag.js +1 -1
  572. package/dist/unstable/cli/Flag.js.map +1 -1
  573. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  574. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  575. package/dist/unstable/cli/GlobalFlag.js +118 -0
  576. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  577. package/dist/unstable/cli/HelpDoc.d.ts +81 -11
  578. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  579. package/dist/unstable/cli/Param.d.ts +34 -6
  580. package/dist/unstable/cli/Param.d.ts.map +1 -1
  581. package/dist/unstable/cli/Param.js +24 -14
  582. package/dist/unstable/cli/Param.js.map +1 -1
  583. package/dist/unstable/cli/Primitive.d.ts +2 -2
  584. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  585. package/dist/unstable/cli/Primitive.js +1 -1
  586. package/dist/unstable/cli/Primitive.js.map +1 -1
  587. package/dist/unstable/cli/Prompt.js +266 -86
  588. package/dist/unstable/cli/Prompt.js.map +1 -1
  589. package/dist/unstable/cli/index.d.ts +8 -0
  590. package/dist/unstable/cli/index.d.ts.map +1 -1
  591. package/dist/unstable/cli/index.js +8 -0
  592. package/dist/unstable/cli/index.js.map +1 -1
  593. package/dist/unstable/cli/internal/command.d.ts +41 -15
  594. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  595. package/dist/unstable/cli/internal/command.js +84 -47
  596. package/dist/unstable/cli/internal/command.js.map +1 -1
  597. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  598. package/dist/unstable/cli/internal/completions/descriptor.d.ts +2 -0
  599. package/dist/unstable/cli/internal/completions/descriptor.d.ts.map +1 -0
  600. package/dist/unstable/cli/internal/completions/{CommandDescriptor.js → descriptor.js} +17 -5
  601. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -0
  602. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  603. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  604. package/dist/unstable/cli/internal/config.js +42 -0
  605. package/dist/unstable/cli/internal/config.js.map +1 -1
  606. package/dist/unstable/cli/internal/help.d.ts +33 -0
  607. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  608. package/dist/unstable/cli/internal/help.js +125 -0
  609. package/dist/unstable/cli/internal/help.js.map +1 -0
  610. package/dist/unstable/cli/internal/parser.js +155 -58
  611. package/dist/unstable/cli/internal/parser.js.map +1 -1
  612. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  613. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  614. package/dist/unstable/cluster/ClusterCron.js +1 -1
  615. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  616. package/dist/unstable/cluster/ClusterError.d.ts +7 -7
  617. package/dist/unstable/cluster/ClusterSchema.d.ts +28 -7
  618. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  619. package/dist/unstable/cluster/ClusterSchema.js +28 -8
  620. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  621. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +4 -2
  622. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  623. package/dist/unstable/cluster/ClusterWorkflowEngine.js +97 -63
  624. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  625. package/dist/unstable/cluster/DeliverAt.js +1 -1
  626. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  627. package/dist/unstable/cluster/Entity.d.ts +18 -16
  628. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  629. package/dist/unstable/cluster/Entity.js +31 -25
  630. package/dist/unstable/cluster/Entity.js.map +1 -1
  631. package/dist/unstable/cluster/EntityAddress.d.ts +2 -2
  632. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  633. package/dist/unstable/cluster/EntityAddress.js +1 -1
  634. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  635. package/dist/unstable/cluster/EntityProxy.js +3 -3
  636. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  637. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  638. package/dist/unstable/cluster/EntityProxyServer.js +4 -4
  639. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  640. package/dist/unstable/cluster/EntityResource.d.ts +4 -4
  641. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  642. package/dist/unstable/cluster/EntityResource.js +2 -2
  643. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  644. package/dist/unstable/cluster/Envelope.d.ts +4 -4
  645. package/dist/unstable/cluster/HttpRunner.js +2 -2
  646. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  647. package/dist/unstable/cluster/K8sHttpClient.d.ts +5 -5
  648. package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
  649. package/dist/unstable/cluster/K8sHttpClient.js +6 -6
  650. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  651. package/dist/unstable/cluster/Message.d.ts +21 -15
  652. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  653. package/dist/unstable/cluster/Message.js +16 -8
  654. package/dist/unstable/cluster/Message.js.map +1 -1
  655. package/dist/unstable/cluster/MessageStorage.d.ts +46 -23
  656. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  657. package/dist/unstable/cluster/MessageStorage.js +42 -26
  658. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  659. package/dist/unstable/cluster/Reply.d.ts +10 -9
  660. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  661. package/dist/unstable/cluster/Reply.js +8 -7
  662. package/dist/unstable/cluster/Reply.js.map +1 -1
  663. package/dist/unstable/cluster/Runner.d.ts +2 -2
  664. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  665. package/dist/unstable/cluster/Runner.js +1 -1
  666. package/dist/unstable/cluster/Runner.js.map +1 -1
  667. package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
  668. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  669. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  670. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  671. package/dist/unstable/cluster/RunnerHealth.d.ts +2 -2
  672. package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
  673. package/dist/unstable/cluster/RunnerHealth.js +2 -2
  674. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  675. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  676. package/dist/unstable/cluster/RunnerServer.js +10 -9
  677. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  678. package/dist/unstable/cluster/RunnerStorage.d.ts +12 -12
  679. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  680. package/dist/unstable/cluster/RunnerStorage.js +3 -3
  681. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  682. package/dist/unstable/cluster/Runners.d.ts +5 -4
  683. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  684. package/dist/unstable/cluster/Runners.js +18 -16
  685. package/dist/unstable/cluster/Runners.js.map +1 -1
  686. package/dist/unstable/cluster/ShardId.d.ts +35 -49
  687. package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
  688. package/dist/unstable/cluster/ShardId.js +65 -67
  689. package/dist/unstable/cluster/ShardId.js.map +1 -1
  690. package/dist/unstable/cluster/Sharding.d.ts +4 -4
  691. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  692. package/dist/unstable/cluster/Sharding.js +66 -54
  693. package/dist/unstable/cluster/Sharding.js.map +1 -1
  694. package/dist/unstable/cluster/ShardingConfig.d.ts +28 -27
  695. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  696. package/dist/unstable/cluster/ShardingConfig.js +27 -27
  697. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  698. package/dist/unstable/cluster/SingletonAddress.d.ts +2 -2
  699. package/dist/unstable/cluster/Snowflake.d.ts +2 -2
  700. package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
  701. package/dist/unstable/cluster/Snowflake.js +2 -2
  702. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  703. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  704. package/dist/unstable/cluster/SqlMessageStorage.js +23 -20
  705. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  706. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  707. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  708. package/dist/unstable/cluster/internal/entityManager.js +34 -27
  709. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  710. package/dist/unstable/cluster/internal/entityReaper.js +4 -3
  711. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  712. package/dist/unstable/cluster/internal/resourceMap.js +3 -3
  713. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  714. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  715. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  716. package/dist/unstable/devtools/DevToolsClient.d.ts +2 -2
  717. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  718. package/dist/unstable/devtools/DevToolsClient.js +9 -8
  719. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  720. package/dist/unstable/devtools/DevToolsSchema.d.ts +40 -40
  721. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  722. package/dist/unstable/devtools/DevToolsSchema.js +9 -2
  723. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  724. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  725. package/dist/unstable/encoding/Ndjson.d.ts +9 -9
  726. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  727. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  728. package/dist/unstable/encoding/Sse.d.ts +4 -4
  729. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  730. package/dist/unstable/encoding/Sse.js +1 -1
  731. package/dist/unstable/encoding/Sse.js.map +1 -1
  732. package/dist/unstable/eventlog/Event.d.ts +0 -6
  733. package/dist/unstable/eventlog/Event.d.ts.map +1 -1
  734. package/dist/unstable/eventlog/Event.js +0 -5
  735. package/dist/unstable/eventlog/Event.js.map +1 -1
  736. package/dist/unstable/eventlog/EventGroup.d.ts +0 -2
  737. package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
  738. package/dist/unstable/eventlog/EventGroup.js +0 -2
  739. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  740. package/dist/unstable/eventlog/EventJournal.d.ts +28 -11
  741. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  742. package/dist/unstable/eventlog/EventJournal.js +130 -71
  743. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  744. package/dist/unstable/eventlog/EventLog.d.ts +94 -37
  745. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  746. package/dist/unstable/eventlog/EventLog.js +225 -150
  747. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  748. package/dist/unstable/eventlog/EventLogEncryption.d.ts +11 -9
  749. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  750. package/dist/unstable/eventlog/EventLogEncryption.js +15 -17
  751. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  752. package/dist/unstable/eventlog/EventLogMessage.d.ts +228 -0
  753. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -0
  754. package/dist/unstable/eventlog/EventLogMessage.js +214 -0
  755. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -0
  756. package/dist/unstable/eventlog/EventLogRemote.d.ts +112 -194
  757. package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
  758. package/dist/unstable/eventlog/EventLogRemote.js +168 -322
  759. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  760. package/dist/unstable/eventlog/EventLogServer.d.ts +26 -48
  761. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  762. package/dist/unstable/eventlog/EventLogServer.js +128 -199
  763. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  764. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +60 -0
  765. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -0
  766. package/dist/unstable/eventlog/EventLogServerEncrypted.js +166 -0
  767. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -0
  768. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +183 -0
  769. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -0
  770. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +461 -0
  771. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -0
  772. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +117 -0
  773. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -0
  774. package/dist/unstable/eventlog/EventLogSessionAuth.js +284 -0
  775. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -0
  776. package/dist/unstable/eventlog/{SqlEventLogJournal.d.ts → SqlEventJournal.d.ts} +2 -2
  777. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -0
  778. package/dist/unstable/eventlog/{SqlEventLogJournal.js → SqlEventJournal.js} +22 -16
  779. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -0
  780. package/dist/unstable/eventlog/{SqlEventLogServer.d.ts → SqlEventLogServerEncrypted.d.ts} +5 -5
  781. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -0
  782. package/dist/unstable/eventlog/{SqlEventLogServer.js → SqlEventLogServerEncrypted.js} +65 -24
  783. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -0
  784. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +25 -0
  785. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -0
  786. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +354 -0
  787. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -0
  788. package/dist/unstable/eventlog/index.d.ts +22 -2
  789. package/dist/unstable/eventlog/index.d.ts.map +1 -1
  790. package/dist/unstable/eventlog/index.js +22 -2
  791. package/dist/unstable/eventlog/index.js.map +1 -1
  792. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts +2 -0
  793. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts.map +1 -0
  794. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js +89 -0
  795. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -0
  796. package/dist/unstable/http/Cookies.d.ts +52 -7
  797. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  798. package/dist/unstable/http/Cookies.js +27 -6
  799. package/dist/unstable/http/Cookies.js.map +1 -1
  800. package/dist/unstable/http/Etag.d.ts +2 -2
  801. package/dist/unstable/http/Etag.d.ts.map +1 -1
  802. package/dist/unstable/http/Etag.js +7 -3
  803. package/dist/unstable/http/Etag.js.map +1 -1
  804. package/dist/unstable/http/FetchHttpClient.d.ts +6 -3
  805. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  806. package/dist/unstable/http/FetchHttpClient.js +5 -5
  807. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  808. package/dist/unstable/http/Headers.d.ts +24 -4
  809. package/dist/unstable/http/Headers.d.ts.map +1 -1
  810. package/dist/unstable/http/Headers.js +42 -13
  811. package/dist/unstable/http/Headers.js.map +1 -1
  812. package/dist/unstable/http/HttpBody.d.ts +1 -1
  813. package/dist/unstable/http/HttpClient.d.ts +125 -21
  814. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  815. package/dist/unstable/http/HttpClient.js +197 -19
  816. package/dist/unstable/http/HttpClient.js.map +1 -1
  817. package/dist/unstable/http/HttpClientError.d.ts +8 -8
  818. package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
  819. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  820. package/dist/unstable/http/HttpClientRequest.js +131 -21
  821. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  822. package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
  823. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  824. package/dist/unstable/http/HttpClientResponse.js +6 -1
  825. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  826. package/dist/unstable/http/HttpEffect.d.ts +13 -11
  827. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  828. package/dist/unstable/http/HttpEffect.js +67 -75
  829. package/dist/unstable/http/HttpEffect.js.map +1 -1
  830. package/dist/unstable/http/HttpIncomingMessage.d.ts +5 -4
  831. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  832. package/dist/unstable/http/HttpIncomingMessage.js +2 -2
  833. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  834. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  835. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  836. package/dist/unstable/http/HttpMethod.js +3 -3
  837. package/dist/unstable/http/HttpMethod.js.map +1 -1
  838. package/dist/unstable/http/HttpMiddleware.d.ts +4 -9
  839. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  840. package/dist/unstable/http/HttpMiddleware.js +47 -43
  841. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  842. package/dist/unstable/http/HttpPlatform.d.ts +2 -2
  843. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  844. package/dist/unstable/http/HttpPlatform.js +5 -4
  845. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  846. package/dist/unstable/http/HttpRouter.d.ts +9 -8
  847. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  848. package/dist/unstable/http/HttpRouter.js +36 -36
  849. package/dist/unstable/http/HttpRouter.js.map +1 -1
  850. package/dist/unstable/http/HttpServer.d.ts +2 -2
  851. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  852. package/dist/unstable/http/HttpServer.js +4 -4
  853. package/dist/unstable/http/HttpServer.js.map +1 -1
  854. package/dist/unstable/http/HttpServerError.d.ts +22 -34
  855. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  856. package/dist/unstable/http/HttpServerError.js +39 -45
  857. package/dist/unstable/http/HttpServerError.js.map +1 -1
  858. package/dist/unstable/http/HttpServerRequest.d.ts +19 -7
  859. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  860. package/dist/unstable/http/HttpServerRequest.js +307 -13
  861. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  862. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  863. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  864. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  865. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  866. package/dist/unstable/http/HttpServerResponse.d.ts +52 -5
  867. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  868. package/dist/unstable/http/HttpServerResponse.js +240 -5
  869. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  870. package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
  871. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
  872. package/dist/unstable/http/HttpStaticServer.js +353 -0
  873. package/dist/unstable/http/HttpStaticServer.js.map +1 -0
  874. package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
  875. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  876. package/dist/unstable/http/HttpTraceContext.js +27 -15
  877. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  878. package/dist/unstable/http/Multipart.d.ts +9 -9
  879. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  880. package/dist/unstable/http/Multipart.js +7 -7
  881. package/dist/unstable/http/Multipart.js.map +1 -1
  882. package/dist/unstable/http/Url.d.ts +604 -0
  883. package/dist/unstable/http/Url.d.ts.map +1 -0
  884. package/dist/unstable/http/Url.js +256 -0
  885. package/dist/unstable/http/Url.js.map +1 -0
  886. package/dist/unstable/http/UrlParams.d.ts +19 -10
  887. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  888. package/dist/unstable/http/UrlParams.js +6 -7
  889. package/dist/unstable/http/UrlParams.js.map +1 -1
  890. package/dist/unstable/http/index.d.ts +8 -0
  891. package/dist/unstable/http/index.d.ts.map +1 -1
  892. package/dist/unstable/http/index.js +8 -0
  893. package/dist/unstable/http/index.js.map +1 -1
  894. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  895. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  896. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  897. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  898. package/dist/unstable/httpapi/HttpApi.d.ts +11 -11
  899. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  900. package/dist/unstable/httpapi/HttpApi.js +8 -8
  901. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  902. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +12 -9
  903. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  904. package/dist/unstable/httpapi/HttpApiBuilder.js +53 -39
  905. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  906. package/dist/unstable/httpapi/HttpApiClient.d.ts +83 -7
  907. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  908. package/dist/unstable/httpapi/HttpApiClient.js +79 -11
  909. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  910. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +211 -105
  911. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  912. package/dist/unstable/httpapi/HttpApiEndpoint.js +53 -47
  913. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  914. package/dist/unstable/httpapi/HttpApiError.d.ts +43 -26
  915. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  916. package/dist/unstable/httpapi/HttpApiError.js +125 -32
  917. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  918. package/dist/unstable/httpapi/HttpApiGroup.d.ts +9 -8
  919. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  920. package/dist/unstable/httpapi/HttpApiGroup.js +4 -4
  921. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  922. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +49 -18
  923. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  924. package/dist/unstable/httpapi/HttpApiMiddleware.js +38 -8
  925. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  926. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  927. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  928. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  929. package/dist/unstable/httpapi/HttpApiSchema.d.ts +88 -9
  930. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  931. package/dist/unstable/httpapi/HttpApiSchema.js +86 -11
  932. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  933. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +9 -6
  934. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  935. package/dist/unstable/httpapi/HttpApiSecurity.js +6 -6
  936. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  937. package/dist/unstable/httpapi/OpenApi.d.ts +16 -15
  938. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  939. package/dist/unstable/httpapi/OpenApi.js +57 -49
  940. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  941. package/dist/unstable/observability/Otlp.d.ts +12 -12
  942. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  943. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  944. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  945. package/dist/unstable/observability/OtlpExporter.js +8 -8
  946. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  947. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  948. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  949. package/dist/unstable/observability/OtlpLogger.js +7 -4
  950. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  951. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  952. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  953. package/dist/unstable/observability/OtlpMetrics.js +1 -1
  954. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  955. package/dist/unstable/observability/OtlpSerialization.d.ts +2 -2
  956. package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
  957. package/dist/unstable/observability/OtlpSerialization.js +2 -2
  958. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  959. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  960. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  961. package/dist/unstable/observability/OtlpTracer.js +7 -3
  962. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  963. package/dist/unstable/observability/PrometheusMetrics.d.ts +3 -3
  964. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  965. package/dist/unstable/observability/PrometheusMetrics.js +4 -33
  966. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  967. package/dist/unstable/persistence/KeyValueStore.d.ts +24 -3
  968. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  969. package/dist/unstable/persistence/KeyValueStore.js +148 -6
  970. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  971. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  972. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  973. package/dist/unstable/persistence/Persistable.js +1 -1
  974. package/dist/unstable/persistence/Persistable.js.map +1 -1
  975. package/dist/unstable/persistence/PersistedCache.d.ts +6 -6
  976. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  977. package/dist/unstable/persistence/PersistedCache.js +12 -12
  978. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  979. package/dist/unstable/persistence/PersistedQueue.d.ts +16 -16
  980. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  981. package/dist/unstable/persistence/PersistedQueue.js +15 -14
  982. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  983. package/dist/unstable/persistence/Persistence.d.ts +5 -5
  984. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  985. package/dist/unstable/persistence/Persistence.js +5 -5
  986. package/dist/unstable/persistence/Persistence.js.map +1 -1
  987. package/dist/unstable/persistence/RateLimiter.d.ts +9 -9
  988. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  989. package/dist/unstable/persistence/RateLimiter.js +4 -4
  990. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  991. package/dist/unstable/persistence/Redis.d.ts +3 -3
  992. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  993. package/dist/unstable/persistence/Redis.js +2 -2
  994. package/dist/unstable/persistence/Redis.js.map +1 -1
  995. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  996. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  997. package/dist/unstable/process/ChildProcess.js +1 -65
  998. package/dist/unstable/process/ChildProcess.js.map +1 -1
  999. package/dist/unstable/process/ChildProcessSpawner.d.ts +89 -8
  1000. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1001. package/dist/unstable/process/ChildProcessSpawner.js +22 -2
  1002. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1003. package/dist/unstable/reactivity/Atom.d.ts +108 -47
  1004. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1005. package/dist/unstable/reactivity/Atom.js +105 -25
  1006. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1007. package/dist/unstable/reactivity/AtomHttpApi.d.ts +22 -20
  1008. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1009. package/dist/unstable/reactivity/AtomHttpApi.js +58 -26
  1010. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1011. package/dist/unstable/reactivity/AtomRegistry.d.ts +8 -2
  1012. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  1013. package/dist/unstable/reactivity/AtomRegistry.js +57 -14
  1014. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1015. package/dist/unstable/reactivity/AtomRpc.d.ts +12 -12
  1016. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1017. package/dist/unstable/reactivity/AtomRpc.js +59 -31
  1018. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1019. package/dist/unstable/reactivity/Reactivity.d.ts +2 -2
  1020. package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
  1021. package/dist/unstable/reactivity/Reactivity.js +6 -6
  1022. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1023. package/dist/unstable/reactivity/index.d.ts +2 -2
  1024. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  1025. package/dist/unstable/reactivity/index.js +2 -2
  1026. package/dist/unstable/reactivity/index.js.map +1 -1
  1027. package/dist/unstable/rpc/Rpc.d.ts +47 -19
  1028. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1029. package/dist/unstable/rpc/Rpc.js +39 -7
  1030. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1031. package/dist/unstable/rpc/RpcClient.d.ts +26 -47
  1032. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1033. package/dist/unstable/rpc/RpcClient.js +120 -77
  1034. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1035. package/dist/unstable/rpc/RpcClientError.d.ts +2 -2
  1036. package/dist/unstable/rpc/RpcGroup.d.ts +15 -11
  1037. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  1038. package/dist/unstable/rpc/RpcGroup.js +30 -20
  1039. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1040. package/dist/unstable/rpc/RpcMiddleware.d.ts +12 -12
  1041. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  1042. package/dist/unstable/rpc/RpcMiddleware.js +5 -5
  1043. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1044. package/dist/unstable/rpc/RpcSchema.d.ts +14 -1
  1045. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  1046. package/dist/unstable/rpc/RpcSchema.js +17 -2
  1047. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1048. package/dist/unstable/rpc/RpcSerialization.d.ts +2 -2
  1049. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1050. package/dist/unstable/rpc/RpcSerialization.js +46 -18
  1051. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1052. package/dist/unstable/rpc/RpcServer.d.ts +8 -12
  1053. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  1054. package/dist/unstable/rpc/RpcServer.js +78 -46
  1055. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1056. package/dist/unstable/rpc/RpcWorker.d.ts +2 -2
  1057. package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
  1058. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1059. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1060. package/dist/unstable/rpc/Utils.d.ts +6 -3
  1061. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  1062. package/dist/unstable/rpc/Utils.js +48 -6
  1063. package/dist/unstable/rpc/Utils.js.map +1 -1
  1064. package/dist/unstable/schema/Model.d.ts +24 -3
  1065. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1066. package/dist/unstable/schema/Model.js +17 -4
  1067. package/dist/unstable/schema/Model.js.map +1 -1
  1068. package/dist/unstable/schema/VariantSchema.d.ts +7 -7
  1069. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1070. package/dist/unstable/schema/VariantSchema.js +7 -18
  1071. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1072. package/dist/unstable/socket/Socket.d.ts +16 -15
  1073. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1074. package/dist/unstable/socket/Socket.js +22 -19
  1075. package/dist/unstable/socket/Socket.js.map +1 -1
  1076. package/dist/unstable/socket/SocketServer.d.ts +8 -5
  1077. package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
  1078. package/dist/unstable/socket/SocketServer.js +2 -2
  1079. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1080. package/dist/unstable/sql/Migrator.d.ts +1 -1
  1081. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  1082. package/dist/unstable/sql/Migrator.js +2 -2
  1083. package/dist/unstable/sql/Migrator.js.map +1 -1
  1084. package/dist/unstable/sql/SqlClient.d.ts +5 -5
  1085. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1086. package/dist/unstable/sql/SqlClient.js +7 -7
  1087. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1088. package/dist/unstable/sql/SqlConnection.d.ts +2 -2
  1089. package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
  1090. package/dist/unstable/sql/SqlConnection.js +5 -2
  1091. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1092. package/dist/unstable/sql/SqlError.d.ts +237 -17
  1093. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  1094. package/dist/unstable/sql/SqlError.js +260 -4
  1095. package/dist/unstable/sql/SqlError.js.map +1 -1
  1096. package/dist/unstable/sql/SqlModel.d.ts +8 -9
  1097. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  1098. package/dist/unstable/sql/SqlModel.js +12 -38
  1099. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1100. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  1101. package/dist/unstable/sql/SqlResolver.js +26 -17
  1102. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1103. package/dist/unstable/sql/SqlSchema.d.ts +17 -6
  1104. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  1105. package/dist/unstable/sql/SqlSchema.js +17 -7
  1106. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1107. package/dist/unstable/sql/Statement.d.ts +2 -2
  1108. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1109. package/dist/unstable/sql/Statement.js +2 -3
  1110. package/dist/unstable/sql/Statement.js.map +1 -1
  1111. package/dist/unstable/workers/Transferable.d.ts +4 -4
  1112. package/dist/unstable/workers/Transferable.d.ts.map +1 -1
  1113. package/dist/unstable/workers/Transferable.js +7 -7
  1114. package/dist/unstable/workers/Transferable.js.map +1 -1
  1115. package/dist/unstable/workers/Worker.d.ts +3 -3
  1116. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  1117. package/dist/unstable/workers/Worker.js +8 -4
  1118. package/dist/unstable/workers/Worker.js.map +1 -1
  1119. package/dist/unstable/workers/WorkerError.d.ts +5 -5
  1120. package/dist/unstable/workers/WorkerRunner.d.ts +2 -2
  1121. package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
  1122. package/dist/unstable/workers/WorkerRunner.js +5 -2
  1123. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1124. package/dist/unstable/workflow/Activity.d.ts +7 -2
  1125. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  1126. package/dist/unstable/workflow/Activity.js +17 -4
  1127. package/dist/unstable/workflow/Activity.js.map +1 -1
  1128. package/dist/unstable/workflow/DurableClock.d.ts +3 -6
  1129. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  1130. package/dist/unstable/workflow/DurableClock.js +6 -6
  1131. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1132. package/dist/unstable/workflow/DurableDeferred.d.ts +1 -1
  1133. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  1134. package/dist/unstable/workflow/DurableDeferred.js +15 -15
  1135. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1136. package/dist/unstable/workflow/Workflow.d.ts +13 -12
  1137. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1138. package/dist/unstable/workflow/Workflow.js +18 -18
  1139. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1140. package/dist/unstable/workflow/WorkflowEngine.d.ts +26 -8
  1141. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  1142. package/dist/unstable/workflow/WorkflowEngine.js +167 -17
  1143. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1144. package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
  1145. package/dist/unstable/workflow/WorkflowProxyServer.js +4 -4
  1146. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1147. package/package.json +11 -11
  1148. package/src/Array.ts +304 -447
  1149. package/src/BigDecimal.ts +117 -66
  1150. package/src/BigInt.ts +49 -41
  1151. package/src/Brand.ts +1 -1
  1152. package/src/Cache.ts +27 -54
  1153. package/src/Cause.ts +58 -23
  1154. package/src/Channel.ts +693 -224
  1155. package/src/Chunk.ts +149 -331
  1156. package/src/Clock.ts +2 -2
  1157. package/src/Combiner.ts +280 -13
  1158. package/src/Config.ts +197 -27
  1159. package/src/ConfigProvider.ts +5 -5
  1160. package/src/Console.ts +2 -2
  1161. package/src/Context.ts +1454 -0
  1162. package/src/Cron.ts +155 -63
  1163. package/src/Data.ts +539 -376
  1164. package/src/DateTime.ts +77 -258
  1165. package/src/Deferred.ts +15 -6
  1166. package/src/Duration.ts +122 -66
  1167. package/src/Effect.ts +1629 -1355
  1168. package/src/Encoding.ts +879 -0
  1169. package/src/Equal.ts +295 -111
  1170. package/src/Equivalence.ts +114 -52
  1171. package/src/ErrorReporter.ts +458 -0
  1172. package/src/ExecutionPlan.ts +8 -9
  1173. package/src/Exit.ts +24 -12
  1174. package/src/Fiber.ts +17 -8
  1175. package/src/FiberHandle.ts +15 -14
  1176. package/src/FiberMap.ts +27 -27
  1177. package/src/FiberSet.ts +5 -5
  1178. package/src/FileSystem.ts +34 -30
  1179. package/src/Filter.ts +4 -62
  1180. package/src/Formatter.ts +253 -51
  1181. package/src/Function.ts +2 -10
  1182. package/src/Graph.ts +131 -117
  1183. package/src/Hash.ts +2 -2
  1184. package/src/HashMap.ts +26 -19
  1185. package/src/Iterable.ts +117 -63
  1186. package/src/JsonSchema.ts +383 -10
  1187. package/src/Latch.ts +194 -0
  1188. package/src/Layer.ts +728 -441
  1189. package/src/LayerMap.ts +38 -35
  1190. package/src/LogLevel.ts +37 -0
  1191. package/src/Logger.ts +35 -102
  1192. package/src/ManagedRuntime.ts +61 -48
  1193. package/src/Metric.ts +64 -66
  1194. package/src/MutableHashMap.ts +9 -0
  1195. package/src/MutableHashSet.ts +9 -0
  1196. package/src/MutableList.ts +3 -0
  1197. package/src/Newtype.ts +308 -0
  1198. package/src/Number.ts +98 -29
  1199. package/src/Optic.ts +948 -19
  1200. package/src/Option.ts +34 -24
  1201. package/src/Order.ts +39 -32
  1202. package/src/PartitionedSemaphore.ts +288 -56
  1203. package/src/Path.ts +2 -2
  1204. package/src/Pipeable.ts +32 -1
  1205. package/src/Pool.ts +18 -16
  1206. package/src/PubSub.ts +30 -20
  1207. package/src/Pull.ts +1 -1
  1208. package/src/Queue.ts +11 -9
  1209. package/src/Random.ts +51 -14
  1210. package/src/RcMap.ts +19 -19
  1211. package/src/RcRef.ts +1 -1
  1212. package/src/Record.ts +94 -199
  1213. package/src/Redactable.ts +146 -72
  1214. package/src/Reducer.ts +166 -7
  1215. package/src/References.ts +283 -287
  1216. package/src/Request.ts +8 -7
  1217. package/src/RequestResolver.ts +34 -55
  1218. package/src/Resource.ts +6 -5
  1219. package/src/Result.ts +2 -4
  1220. package/src/Runtime.ts +102 -6
  1221. package/src/Schedule.ts +460 -451
  1222. package/src/Scheduler.ts +52 -129
  1223. package/src/Schema.ts +4102 -663
  1224. package/src/SchemaAST.ts +177 -47
  1225. package/src/SchemaGetter.ts +88 -32
  1226. package/src/SchemaParser.ts +92 -27
  1227. package/src/SchemaRepresentation.ts +59 -32
  1228. package/src/SchemaTransformation.ts +364 -13
  1229. package/src/Scope.ts +2 -2
  1230. package/src/ScopedCache.ts +8 -8
  1231. package/src/Semaphore.ts +442 -0
  1232. package/src/Sink.ts +89 -34
  1233. package/src/Stdio.ts +29 -6
  1234. package/src/Stream.ts +898 -752
  1235. package/src/String.ts +122 -69
  1236. package/src/Struct.ts +33 -7
  1237. package/src/SubscriptionRef.ts +101 -120
  1238. package/src/SynchronizedRef.ts +3 -2
  1239. package/src/Terminal.ts +5 -4
  1240. package/src/Tracer.ts +23 -22
  1241. package/src/Trie.ts +44 -31
  1242. package/src/TxChunk.ts +26 -16
  1243. package/src/TxDeferred.ts +391 -0
  1244. package/src/TxHashMap.ts +347 -291
  1245. package/src/TxHashSet.ts +54 -61
  1246. package/src/TxPriorityQueue.ts +762 -0
  1247. package/src/TxPubSub.ts +787 -0
  1248. package/src/TxQueue.ts +221 -245
  1249. package/src/TxReentrantLock.ts +729 -0
  1250. package/src/TxRef.ts +31 -31
  1251. package/src/TxSemaphore.ts +203 -31
  1252. package/src/TxSubscriptionRef.ts +637 -0
  1253. package/src/Types.ts +78 -17
  1254. package/src/Unify.ts +26 -2
  1255. package/src/Utils.ts +137 -111
  1256. package/src/index.ts +898 -72
  1257. package/src/internal/core.ts +19 -12
  1258. package/src/internal/dateTime.ts +91 -96
  1259. package/src/internal/effect.ts +918 -506
  1260. package/src/internal/hashMap.ts +12 -10
  1261. package/src/internal/layer.ts +7 -7
  1262. package/src/internal/option.ts +7 -0
  1263. package/src/internal/random.ts +20 -0
  1264. package/src/internal/rcRef.ts +14 -13
  1265. package/src/internal/references.ts +72 -0
  1266. package/src/internal/request.ts +8 -8
  1267. package/src/internal/schedule.ts +3 -1
  1268. package/src/internal/schema/annotations.ts +2 -0
  1269. package/src/internal/schema/representation.ts +81 -95
  1270. package/src/internal/schema/schema.ts +25 -1
  1271. package/src/internal/schema/to-codec.ts +7 -17
  1272. package/src/internal/trie.ts +21 -15
  1273. package/src/testing/TestClock.ts +13 -11
  1274. package/src/testing/TestSchema.ts +333 -36
  1275. package/src/testing/index.ts +64 -1
  1276. package/src/unstable/ai/AiError.ts +112 -54
  1277. package/src/unstable/ai/AnthropicStructuredOutput.ts +7 -3
  1278. package/src/unstable/ai/Chat.ts +137 -88
  1279. package/src/unstable/ai/EmbeddingModel.ts +209 -0
  1280. package/src/unstable/ai/IdGenerator.ts +2 -2
  1281. package/src/unstable/ai/LanguageModel.ts +685 -255
  1282. package/src/unstable/ai/McpSchema.ts +84 -22
  1283. package/src/unstable/ai/McpServer.ts +299 -87
  1284. package/src/unstable/ai/Model.ts +44 -13
  1285. package/src/unstable/ai/OpenAiStructuredOutput.ts +9 -2
  1286. package/src/unstable/ai/Prompt.ts +43 -49
  1287. package/src/unstable/ai/Response.ts +31 -33
  1288. package/src/unstable/ai/ResponseIdTracker.ts +95 -0
  1289. package/src/unstable/ai/Telemetry.ts +2 -2
  1290. package/src/unstable/ai/Tokenizer.ts +2 -2
  1291. package/src/unstable/ai/Tool.ts +62 -36
  1292. package/src/unstable/ai/Toolkit.ts +17 -26
  1293. package/src/unstable/ai/index.ts +24 -1
  1294. package/src/unstable/ai/internal/codec-transformer.ts +3 -9
  1295. package/src/unstable/cli/Argument.ts +5 -8
  1296. package/src/unstable/cli/CliError.ts +67 -66
  1297. package/src/unstable/cli/CliOutput.ts +87 -15
  1298. package/src/unstable/cli/Command.ts +808 -193
  1299. package/src/unstable/cli/Completions.ts +107 -0
  1300. package/src/unstable/cli/Flag.ts +5 -6
  1301. package/src/unstable/cli/GlobalFlag.ts +242 -0
  1302. package/src/unstable/cli/HelpDoc.ts +91 -11
  1303. package/src/unstable/cli/Param.ts +54 -27
  1304. package/src/unstable/cli/Primitive.ts +2 -2
  1305. package/src/unstable/cli/Prompt.ts +275 -104
  1306. package/src/unstable/cli/index.ts +10 -0
  1307. package/src/unstable/cli/internal/command.ts +125 -64
  1308. package/src/unstable/cli/internal/completions/bash.ts +7 -7
  1309. package/src/unstable/cli/internal/completions/{CommandDescriptor.ts → descriptor.ts} +16 -58
  1310. package/src/unstable/cli/internal/completions/fish.ts +7 -7
  1311. package/src/unstable/cli/internal/completions/zsh.ts +8 -14
  1312. package/src/unstable/cli/internal/config.ts +49 -0
  1313. package/src/unstable/cli/internal/help.ts +171 -0
  1314. package/src/unstable/cli/internal/parser.ts +201 -84
  1315. package/src/unstable/cluster/ClusterCron.ts +2 -2
  1316. package/src/unstable/cluster/ClusterSchema.ts +38 -10
  1317. package/src/unstable/cluster/ClusterWorkflowEngine.ts +144 -81
  1318. package/src/unstable/cluster/DeliverAt.ts +1 -1
  1319. package/src/unstable/cluster/Entity.ts +59 -45
  1320. package/src/unstable/cluster/EntityAddress.ts +1 -1
  1321. package/src/unstable/cluster/EntityProxy.ts +3 -3
  1322. package/src/unstable/cluster/EntityProxyServer.ts +4 -4
  1323. package/src/unstable/cluster/EntityResource.ts +6 -6
  1324. package/src/unstable/cluster/Envelope.ts +1 -1
  1325. package/src/unstable/cluster/HttpRunner.ts +2 -2
  1326. package/src/unstable/cluster/K8sHttpClient.ts +7 -7
  1327. package/src/unstable/cluster/Message.ts +30 -17
  1328. package/src/unstable/cluster/MessageStorage.ts +76 -46
  1329. package/src/unstable/cluster/Reply.ts +13 -10
  1330. package/src/unstable/cluster/Runner.ts +1 -1
  1331. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1332. package/src/unstable/cluster/RunnerHealth.ts +2 -2
  1333. package/src/unstable/cluster/RunnerServer.ts +11 -14
  1334. package/src/unstable/cluster/RunnerStorage.ts +9 -9
  1335. package/src/unstable/cluster/Runners.ts +21 -19
  1336. package/src/unstable/cluster/ShardId.ts +84 -74
  1337. package/src/unstable/cluster/Sharding.ts +83 -66
  1338. package/src/unstable/cluster/ShardingConfig.ts +39 -40
  1339. package/src/unstable/cluster/Snowflake.ts +2 -2
  1340. package/src/unstable/cluster/SqlMessageStorage.ts +28 -20
  1341. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  1342. package/src/unstable/cluster/internal/entityManager.ts +66 -46
  1343. package/src/unstable/cluster/internal/entityReaper.ts +4 -3
  1344. package/src/unstable/cluster/internal/resourceMap.ts +3 -3
  1345. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  1346. package/src/unstable/devtools/DevToolsClient.ts +26 -21
  1347. package/src/unstable/devtools/DevToolsSchema.ts +16 -3
  1348. package/src/unstable/encoding/Ndjson.ts +17 -17
  1349. package/src/unstable/encoding/Sse.ts +3 -5
  1350. package/src/unstable/eventlog/Event.ts +0 -8
  1351. package/src/unstable/eventlog/EventGroup.ts +0 -4
  1352. package/src/unstable/eventlog/EventJournal.ts +148 -80
  1353. package/src/unstable/eventlog/EventLog.ts +360 -233
  1354. package/src/unstable/eventlog/EventLogEncryption.ts +18 -32
  1355. package/src/unstable/eventlog/EventLogMessage.ts +277 -0
  1356. package/src/unstable/eventlog/EventLogRemote.ts +264 -410
  1357. package/src/unstable/eventlog/EventLogServer.ts +183 -275
  1358. package/src/unstable/eventlog/EventLogServerEncrypted.ts +206 -0
  1359. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +749 -0
  1360. package/src/unstable/eventlog/EventLogSessionAuth.ts +437 -0
  1361. package/src/unstable/eventlog/{SqlEventLogJournal.ts → SqlEventJournal.ts} +28 -20
  1362. package/src/unstable/eventlog/{SqlEventLogServer.ts → SqlEventLogServerEncrypted.ts} +102 -40
  1363. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +500 -0
  1364. package/src/unstable/eventlog/index.ts +27 -2
  1365. package/src/unstable/eventlog/internal/identityRootSecretDerivation.ts +153 -0
  1366. package/src/unstable/http/Cookies.ts +94 -11
  1367. package/src/unstable/http/Etag.ts +7 -5
  1368. package/src/unstable/http/FetchHttpClient.ts +5 -5
  1369. package/src/unstable/http/Headers.ts +70 -20
  1370. package/src/unstable/http/HttpClient.ts +385 -42
  1371. package/src/unstable/http/HttpClientRequest.ts +151 -39
  1372. package/src/unstable/http/HttpClientResponse.ts +12 -6
  1373. package/src/unstable/http/HttpEffect.ts +86 -100
  1374. package/src/unstable/http/HttpIncomingMessage.ts +5 -4
  1375. package/src/unstable/http/HttpMethod.ts +16 -4
  1376. package/src/unstable/http/HttpMiddleware.ts +50 -50
  1377. package/src/unstable/http/HttpPlatform.ts +5 -4
  1378. package/src/unstable/http/HttpRouter.ts +46 -46
  1379. package/src/unstable/http/HttpServer.ts +5 -11
  1380. package/src/unstable/http/HttpServerError.ts +45 -47
  1381. package/src/unstable/http/HttpServerRequest.ts +414 -23
  1382. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  1383. package/src/unstable/http/HttpServerResponse.ts +351 -13
  1384. package/src/unstable/http/HttpStaticServer.ts +456 -0
  1385. package/src/unstable/http/HttpTraceContext.ts +31 -17
  1386. package/src/unstable/http/Multipart.ts +10 -10
  1387. package/src/unstable/http/Url.ts +650 -0
  1388. package/src/unstable/http/UrlParams.ts +31 -19
  1389. package/src/unstable/http/index.ts +10 -0
  1390. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  1391. package/src/unstable/httpapi/HttpApi.ts +21 -21
  1392. package/src/unstable/httpapi/HttpApiBuilder.ts +128 -55
  1393. package/src/unstable/httpapi/HttpApiClient.ts +186 -34
  1394. package/src/unstable/httpapi/HttpApiEndpoint.ts +225 -113
  1395. package/src/unstable/httpapi/HttpApiError.ts +108 -30
  1396. package/src/unstable/httpapi/HttpApiGroup.ts +18 -17
  1397. package/src/unstable/httpapi/HttpApiMiddleware.ts +95 -33
  1398. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  1399. package/src/unstable/httpapi/HttpApiSchema.ts +106 -11
  1400. package/src/unstable/httpapi/HttpApiSecurity.ts +13 -13
  1401. package/src/unstable/httpapi/OpenApi.ts +71 -58
  1402. package/src/unstable/observability/Otlp.ts +12 -12
  1403. package/src/unstable/observability/OtlpExporter.ts +14 -10
  1404. package/src/unstable/observability/OtlpLogger.ts +13 -9
  1405. package/src/unstable/observability/OtlpMetrics.ts +5 -5
  1406. package/src/unstable/observability/OtlpSerialization.ts +2 -2
  1407. package/src/unstable/observability/OtlpTracer.ts +14 -10
  1408. package/src/unstable/observability/PrometheusMetrics.ts +5 -5
  1409. package/src/unstable/persistence/KeyValueStore.ts +230 -7
  1410. package/src/unstable/persistence/Persistable.ts +3 -3
  1411. package/src/unstable/persistence/PersistedCache.ts +35 -21
  1412. package/src/unstable/persistence/PersistedQueue.ts +28 -27
  1413. package/src/unstable/persistence/Persistence.ts +7 -7
  1414. package/src/unstable/persistence/RateLimiter.ts +7 -7
  1415. package/src/unstable/persistence/Redis.ts +2 -2
  1416. package/src/unstable/process/ChildProcess.ts +6 -208
  1417. package/src/unstable/process/ChildProcessSpawner.ts +120 -15
  1418. package/src/unstable/reactivity/Atom.ts +280 -124
  1419. package/src/unstable/reactivity/AtomHttpApi.ts +115 -59
  1420. package/src/unstable/reactivity/AtomRegistry.ts +70 -16
  1421. package/src/unstable/reactivity/AtomRpc.ts +82 -37
  1422. package/src/unstable/reactivity/Reactivity.ts +6 -6
  1423. package/src/unstable/reactivity/index.ts +2 -2
  1424. package/src/unstable/rpc/Rpc.ts +77 -32
  1425. package/src/unstable/rpc/RpcClient.ts +165 -145
  1426. package/src/unstable/rpc/RpcGroup.ts +51 -34
  1427. package/src/unstable/rpc/RpcMiddleware.ts +28 -22
  1428. package/src/unstable/rpc/RpcSchema.ts +24 -6
  1429. package/src/unstable/rpc/RpcSerialization.ts +56 -18
  1430. package/src/unstable/rpc/RpcServer.ts +97 -69
  1431. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1432. package/src/unstable/rpc/Utils.ts +65 -5
  1433. package/src/unstable/schema/Model.ts +35 -6
  1434. package/src/unstable/schema/VariantSchema.ts +14 -27
  1435. package/src/unstable/socket/Socket.ts +42 -38
  1436. package/src/unstable/socket/SocketServer.ts +2 -2
  1437. package/src/unstable/sql/Migrator.ts +7 -5
  1438. package/src/unstable/sql/SqlClient.ts +13 -11
  1439. package/src/unstable/sql/SqlConnection.ts +2 -2
  1440. package/src/unstable/sql/SqlError.ts +365 -11
  1441. package/src/unstable/sql/SqlModel.ts +57 -85
  1442. package/src/unstable/sql/SqlResolver.ts +26 -16
  1443. package/src/unstable/sql/SqlSchema.ts +42 -26
  1444. package/src/unstable/sql/Statement.ts +2 -3
  1445. package/src/unstable/workers/Transferable.ts +17 -19
  1446. package/src/unstable/workers/Worker.ts +6 -5
  1447. package/src/unstable/workers/WorkerRunner.ts +2 -2
  1448. package/src/unstable/workflow/Activity.ts +27 -4
  1449. package/src/unstable/workflow/DurableClock.ts +11 -11
  1450. package/src/unstable/workflow/DurableDeferred.ts +16 -16
  1451. package/src/unstable/workflow/Workflow.ts +32 -25
  1452. package/src/unstable/workflow/WorkflowEngine.ts +239 -25
  1453. package/src/unstable/workflow/WorkflowProxyServer.ts +4 -4
  1454. package/dist/NullOr.d.ts +0 -149
  1455. package/dist/NullOr.d.ts.map +0 -1
  1456. package/dist/NullOr.js +0 -152
  1457. package/dist/NullOr.js.map +0 -1
  1458. package/dist/ServiceMap.d.ts +0 -1126
  1459. package/dist/ServiceMap.d.ts.map +0 -1
  1460. package/dist/ServiceMap.js.map +0 -1
  1461. package/dist/encoding/Base64.d.ts +0 -67
  1462. package/dist/encoding/Base64.d.ts.map +0 -1
  1463. package/dist/encoding/Base64.js +0 -146
  1464. package/dist/encoding/Base64.js.map +0 -1
  1465. package/dist/encoding/Base64Url.d.ts +0 -60
  1466. package/dist/encoding/Base64Url.d.ts.map +0 -1
  1467. package/dist/encoding/Base64Url.js +0 -89
  1468. package/dist/encoding/Base64Url.js.map +0 -1
  1469. package/dist/encoding/EncodingError.d.ts +0 -31
  1470. package/dist/encoding/EncodingError.d.ts.map +0 -1
  1471. package/dist/encoding/EncodingError.js +0 -22
  1472. package/dist/encoding/EncodingError.js.map +0 -1
  1473. package/dist/encoding/Hex.d.ts +0 -61
  1474. package/dist/encoding/Hex.d.ts.map +0 -1
  1475. package/dist/encoding/Hex.js +0 -115
  1476. package/dist/encoding/Hex.js.map +0 -1
  1477. package/dist/encoding/index.d.ts +0 -26
  1478. package/dist/encoding/index.d.ts.map +0 -1
  1479. package/dist/encoding/index.js +0 -27
  1480. package/dist/encoding/index.js.map +0 -1
  1481. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  1482. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  1483. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  1484. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  1485. package/dist/unstable/cli/internal/completions/CommandDescriptor.d.ts +0 -2
  1486. package/dist/unstable/cli/internal/completions/CommandDescriptor.d.ts.map +0 -1
  1487. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +0 -1
  1488. package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
  1489. package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
  1490. package/dist/unstable/cli/internal/completions/Completions.js +0 -23
  1491. package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
  1492. package/dist/unstable/eventlog/SqlEventLogJournal.d.ts.map +0 -1
  1493. package/dist/unstable/eventlog/SqlEventLogJournal.js.map +0 -1
  1494. package/dist/unstable/eventlog/SqlEventLogServer.d.ts.map +0 -1
  1495. package/dist/unstable/eventlog/SqlEventLogServer.js.map +0 -1
  1496. package/src/NullOr.ts +0 -204
  1497. package/src/ServiceMap.ts +0 -1410
  1498. package/src/encoding/Base64.ts +0 -366
  1499. package/src/encoding/Base64Url.ts +0 -104
  1500. package/src/encoding/EncodingError.ts +0 -35
  1501. package/src/encoding/Hex.ts +0 -390
  1502. package/src/encoding/index.ts +0 -31
  1503. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
  1504. package/src/unstable/cli/internal/completions/Completions.ts +0 -31
package/src/Context.ts ADDED
@@ -0,0 +1,1454 @@
1
+ /**
2
+ * This module provides a data structure called `Context` that can be used
3
+ * for dependency injection in effectful programs. It is essentially a table
4
+ * mapping `Service`s identifiers to their implementations, and can be used to
5
+ * manage dependencies in a type-safe way. The `Context` data structure is
6
+ * essentially a way of providing access to a set of related services that can
7
+ * be passed around as a single unit. This module provides functions to create,
8
+ * modify, and query the contents of a `Context`, as well as a number of
9
+ * utility types for working with a `Context`.
10
+ *
11
+ * @since 4.0.0
12
+ */
13
+ import type { Effect, EffectIterator, Yieldable } from "./Effect.ts"
14
+ import * as Equal from "./Equal.ts"
15
+ import { constant, dual, type LazyArg } from "./Function.ts"
16
+ import * as Hash from "./Hash.ts"
17
+ import type { Inspectable } from "./Inspectable.ts"
18
+ import { exitSucceed, PipeInspectableProto, withFiber, YieldableProto } from "./internal/core.ts"
19
+ import type { ErrorWithStackTraceLimit } from "./internal/tracer.ts"
20
+ import * as Option from "./Option.ts"
21
+ import type { Pipeable } from "./Pipeable.ts"
22
+ import { hasProperty } from "./Predicate.ts"
23
+ import type * as Types from "./Types.ts"
24
+
25
+ /**
26
+ * @since 4.0.0
27
+ * @category Type Identifiers
28
+ */
29
+ export type ServiceTypeId = "~effect/Context/Service"
30
+
31
+ /**
32
+ * @since 4.0.0
33
+ * @category Type Identifiers
34
+ */
35
+ export const ServiceTypeId: ServiceTypeId = "~effect/Context/Service"
36
+
37
+ /**
38
+ * The base type used for all Context keys.
39
+ *
40
+ * @since 4.0.0
41
+ * @category Models
42
+ */
43
+ export interface Key<out Identifier, out Shape> extends Pipeable, Inspectable {
44
+ readonly [ServiceTypeId]: ServiceTypeId
45
+ readonly Service: Shape
46
+ readonly Identifier: Identifier
47
+ readonly key: string
48
+ readonly stack?: string | undefined
49
+ asEffect(): Effect<Shape, never, Identifier>
50
+ }
51
+
52
+ /**
53
+ * @example
54
+ * ```ts
55
+ * import { Context } from "effect"
56
+ *
57
+ * // Define an identifier for a database service
58
+ * const Database = Context.Service<{ query: (sql: string) => string }>(
59
+ * "Database"
60
+ * )
61
+ *
62
+ * // The key can be used to store and retrieve services
63
+ * const context = Context.make(Database, { query: (sql) => `Result: ${sql}` })
64
+ * ```
65
+ *
66
+ * @since 4.0.0
67
+ * @category Models
68
+ */
69
+ export interface Service<in out Identifier, in out Shape>
70
+ extends Key<Identifier, Shape>, Yieldable<Service<Identifier, Shape>, Shape, never, Identifier>
71
+ {
72
+ of(this: void, self: Shape): Shape
73
+ context(self: Shape): Context<Identifier>
74
+ use<A, E, R>(f: (service: Shape) => Effect<A, E, R>): Effect<A, E, R | Identifier>
75
+ useSync<A>(f: (service: Shape) => A): Effect<A, never, Identifier>
76
+ }
77
+
78
+ /**
79
+ * @since 4.0.0
80
+ * @category Models
81
+ */
82
+ export interface ServiceClass<in out Self, in out Identifier extends string, in out Shape>
83
+ extends Service<Self, Shape>
84
+ {
85
+ new(_: never): ServiceClass.Shape<Identifier, Shape>
86
+ readonly key: Identifier
87
+ }
88
+
89
+ /**
90
+ * @since 4.0.0
91
+ * @category Models
92
+ */
93
+ export declare namespace ServiceClass {
94
+ /**
95
+ * @since 4.0.0
96
+ * @category Models
97
+ */
98
+ export interface Shape<Identifier extends string, Service> {
99
+ readonly [ServiceTypeId]: typeof ServiceTypeId
100
+ readonly key: Identifier
101
+ readonly Service: Service
102
+ }
103
+ }
104
+
105
+ /**
106
+ * @example
107
+ * ```ts
108
+ * import { Context } from "effect"
109
+ *
110
+ * // Create a simple service
111
+ * const Database = Context.Service<{
112
+ * query: (sql: string) => string
113
+ * }>("Database")
114
+ *
115
+ * // Create a service class
116
+ * class Config extends Context.Service<Config, {
117
+ * port: number
118
+ * }>()("Config") {}
119
+ *
120
+ * // Use the services to create contexts
121
+ * const db = Context.make(Database, {
122
+ * query: (sql) => `Result: ${sql}`
123
+ * })
124
+ * const config = Context.make(Config, { port: 8080 })
125
+ * ```
126
+ *
127
+ * @since 4.0.0
128
+ * @category Constructors
129
+ */
130
+ export const Service: {
131
+ /**
132
+ * @example
133
+ * ```ts
134
+ * import { Context } from "effect"
135
+ *
136
+ * // Create a simple service
137
+ * const Database = Context.Service<{
138
+ * query: (sql: string) => string
139
+ * }>("Database")
140
+ *
141
+ * // Create a service class
142
+ * class Config extends Context.Service<Config, {
143
+ * port: number
144
+ * }>()("Config") {}
145
+ *
146
+ * // Use the services to create contexts
147
+ * const db = Context.make(Database, {
148
+ * query: (sql) => `Result: ${sql}`
149
+ * })
150
+ * const config = Context.make(Config, { port: 8080 })
151
+ * ```
152
+ *
153
+ * @since 4.0.0
154
+ * @category Constructors
155
+ */
156
+ <Identifier, Shape = Identifier>(key: string): Service<Identifier, Shape>
157
+ /**
158
+ * @example
159
+ * ```ts
160
+ * import { Context } from "effect"
161
+ *
162
+ * // Create a simple service
163
+ * const Database = Context.Service<{
164
+ * query: (sql: string) => string
165
+ * }>("Database")
166
+ *
167
+ * // Create a service class
168
+ * class Config extends Context.Service<Config, {
169
+ * port: number
170
+ * }>()("Config") {}
171
+ *
172
+ * // Use the services to create contexts
173
+ * const db = Context.make(Database, {
174
+ * query: (sql) => `Result: ${sql}`
175
+ * })
176
+ * const config = Context.make(Config, { port: 8080 })
177
+ * ```
178
+ *
179
+ * @since 4.0.0
180
+ * @category Constructors
181
+ */
182
+ <Self, Shape>(): <
183
+ const Identifier extends string,
184
+ E,
185
+ R = Types.unassigned,
186
+ Args extends ReadonlyArray<any> = never
187
+ >(
188
+ id: Identifier,
189
+ options?: {
190
+ readonly make: ((...args: Args) => Effect<Shape, E, R>) | Effect<Shape, E, R> | undefined
191
+ } | undefined
192
+ ) =>
193
+ & ServiceClass<Self, Identifier, Shape>
194
+ & ([Types.unassigned] extends [R] ? unknown
195
+ : { readonly make: [Args] extends [never] ? Effect<Shape, E, R> : (...args: Args) => Effect<Shape, E, R> })
196
+ /**
197
+ * @example
198
+ * ```ts
199
+ * import { Context } from "effect"
200
+ *
201
+ * // Create a simple service
202
+ * const Database = Context.Service<{
203
+ * query: (sql: string) => string
204
+ * }>("Database")
205
+ *
206
+ * // Create a service class
207
+ * class Config extends Context.Service<Config, {
208
+ * port: number
209
+ * }>()("Config") {}
210
+ *
211
+ * // Use the services to create contexts
212
+ * const db = Context.make(Database, {
213
+ * query: (sql) => `Result: ${sql}`
214
+ * })
215
+ * const config = Context.make(Config, { port: 8080 })
216
+ * ```
217
+ *
218
+ * @since 4.0.0
219
+ * @category Constructors
220
+ */
221
+ <Self>(): <
222
+ const Identifier extends string,
223
+ Make extends Effect<any, any, any> | ((...args: any) => Effect<any, any, any>)
224
+ >(
225
+ id: Identifier,
226
+ options: {
227
+ readonly make: Make
228
+ }
229
+ ) =>
230
+ & ServiceClass<
231
+ Self,
232
+ Identifier,
233
+ Make extends
234
+ Effect<infer _A, infer _E, infer _R> | ((...args: infer _Args) => Effect<infer _A, infer _E, infer _R>) ? _A
235
+ : never
236
+ >
237
+ & { readonly make: Make }
238
+ } = function() {
239
+ const prevLimit = (Error as ErrorWithStackTraceLimit).stackTraceLimit
240
+ ;(Error as ErrorWithStackTraceLimit)
241
+ .stackTraceLimit = 2
242
+ const err = new Error()
243
+ ;(Error as ErrorWithStackTraceLimit).stackTraceLimit = prevLimit
244
+ function KeyClass() {}
245
+ const self = KeyClass as any as Types.Mutable<Reference<any>>
246
+ Object.setPrototypeOf(self, ServiceProto)
247
+ Object.defineProperty(self, "stack", {
248
+ get() {
249
+ return err.stack
250
+ }
251
+ })
252
+ if (arguments.length > 0) {
253
+ self.key = arguments[0]
254
+ if (arguments[1]?.defaultValue) {
255
+ self[ReferenceTypeId] = ReferenceTypeId
256
+ self.defaultValue = arguments[1].defaultValue
257
+ }
258
+ return self
259
+ }
260
+ return function(key: string, options?: {
261
+ readonly make?: any
262
+ }) {
263
+ self.key = key
264
+ if (options?.make) {
265
+ ;(self as any).make = options.make
266
+ }
267
+ return self
268
+ }
269
+ } as any
270
+
271
+ const ServiceProto: any = {
272
+ [ServiceTypeId]: ServiceTypeId,
273
+ ...PipeInspectableProto,
274
+ ...YieldableProto,
275
+ toJSON<I, A>(this: Service<I, A>) {
276
+ return {
277
+ _id: "Service",
278
+ key: this.key,
279
+ stack: this.stack
280
+ }
281
+ },
282
+ asEffect(this: any) {
283
+ const fn = this.asEffect = constant(withFiber((fiber) => exitSucceed(get(fiber.context, this))))
284
+ return fn()
285
+ },
286
+ of<Service>(this: void, self: Service): Service {
287
+ return self
288
+ },
289
+ context<Identifier, Shape>(
290
+ this: Service<Identifier, Shape>,
291
+ self: Shape
292
+ ): Context<Identifier> {
293
+ return make(this, self)
294
+ },
295
+ use<A, E, R>(this: Service<never, any>, f: (service: any) => Effect<A, E, R>): Effect<A, E, R> {
296
+ return withFiber((fiber) => f(get(fiber.context, this)))
297
+ },
298
+ useSync<A>(this: Service<never, any>, f: (service: any) => A): Effect<A, never, never> {
299
+ return withFiber((fiber) => exitSucceed(f(get(fiber.context, this))))
300
+ }
301
+ }
302
+
303
+ const ReferenceTypeId = "~effect/Context/Reference" as const
304
+
305
+ /**
306
+ * @example
307
+ * ```ts
308
+ * import { Context } from "effect"
309
+ *
310
+ * // Define a reference with a default value
311
+ * const LoggerRef: Context.Reference<{ log: (msg: string) => void }> =
312
+ * Context.Reference("Logger", {
313
+ * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
314
+ * })
315
+ *
316
+ * // The reference can be used without explicit provision
317
+ * const context = Context.empty()
318
+ * const logger = Context.get(context, LoggerRef) // Uses default value
319
+ * ```
320
+ *
321
+ * @since 4.0.0
322
+ * @category Models
323
+ */
324
+ export interface Reference<in out Shape> extends Service<never, Shape> {
325
+ readonly [ReferenceTypeId]: typeof ReferenceTypeId
326
+ readonly defaultValue: () => Shape
327
+ [Symbol.iterator](): EffectIterator<Reference<Shape>>
328
+ new(_: never): {}
329
+ }
330
+
331
+ /**
332
+ * @example
333
+ * ```ts
334
+ * import { Context } from "effect"
335
+ *
336
+ * const Database = Context.Service<{
337
+ * query: (sql: string) => string
338
+ * }>("Database")
339
+ *
340
+ * // Extract service type from a key
341
+ * type DatabaseService = Context.Service.Shape<typeof Database>
342
+ *
343
+ * // Extract identifier type from a key
344
+ * type DatabaseId = Context.Service.Identifier<typeof Database>
345
+ * ```
346
+ *
347
+ * @since 4.0.0
348
+ * @category Models
349
+ */
350
+ export declare namespace Service {
351
+ /**
352
+ * @example
353
+ * ```ts
354
+ * import { Context } from "effect"
355
+ *
356
+ * // Any represents any possible service type
357
+ * const services: Array<Context.Service.Any> = [
358
+ * Context.Service<{ log: (msg: string) => void }>("Logger"),
359
+ * Context.Service<{ query: (sql: string) => string }>("Database")
360
+ * ]
361
+ * ```
362
+ *
363
+ * @since 4.0.0
364
+ * @category Models
365
+ */
366
+ export type Any = Key<never, any> | Key<any, any>
367
+
368
+ /**
369
+ * @example
370
+ * ```ts
371
+ * import { Context } from "effect"
372
+ *
373
+ * const Database = Context.Service<{ query: (sql: string) => string }>(
374
+ * "Database"
375
+ * )
376
+ *
377
+ * // Extract the service shape from the service
378
+ * type DatabaseService = Context.Service.Shape<typeof Database>
379
+ * // DatabaseService is { query: (sql: string) => string }
380
+ * ```
381
+ *
382
+ * @since 4.0.0
383
+ * @category Models
384
+ */
385
+ export type Shape<T> = T extends Key<infer _I, infer S> ? S : never
386
+
387
+ /**
388
+ * @example
389
+ * ```ts
390
+ * import { Context } from "effect"
391
+ *
392
+ * const Database = Context.Service<{ query: (sql: string) => string }>(
393
+ * "Database"
394
+ * )
395
+ *
396
+ * // Extract the identifier type from a key
397
+ * type DatabaseId = Context.Service.Identifier<typeof Database>
398
+ * // DatabaseId is the identifier type
399
+ * ```
400
+ *
401
+ * @since 4.0.0
402
+ * @category Models
403
+ */
404
+ export type Identifier<T> = T extends Key<infer I, infer _S> ? I : never
405
+ }
406
+
407
+ const TypeId = "~effect/Context" as const
408
+
409
+ /**
410
+ * @example
411
+ * ```ts
412
+ * import { Context } from "effect"
413
+ *
414
+ * // Create a context with multiple services
415
+ * const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
416
+ * const Database = Context.Service<{ query: (sql: string) => string }>(
417
+ * "Database"
418
+ * )
419
+ *
420
+ * const context = Context.make(Logger, {
421
+ * log: (msg: string) => console.log(msg)
422
+ * })
423
+ * .pipe(Context.add(Database, { query: (sql) => `Result: ${sql}` }))
424
+ * ```
425
+ *
426
+ * @since 4.0.0
427
+ * @category Models
428
+ */
429
+ export interface Context<in Services> extends Equal.Equal, Pipeable, Inspectable {
430
+ readonly [TypeId]: {
431
+ readonly _Services: Types.Contravariant<Services>
432
+ }
433
+ readonly mapUnsafe: ReadonlyMap<string, any>
434
+ mutable: boolean
435
+ }
436
+
437
+ /**
438
+ * @example
439
+ * ```ts
440
+ * import { Context } from "effect"
441
+ *
442
+ * // Create a context from a Map (unsafe)
443
+ * const map = new Map([
444
+ * ["Logger", { log: (msg: string) => console.log(msg) }]
445
+ * ])
446
+ *
447
+ * const context = Context.makeUnsafe(map)
448
+ * ```
449
+ *
450
+ * @since 4.0.0
451
+ * @category Constructors
452
+ */
453
+ export const makeUnsafe = <Services = never>(mapUnsafe: ReadonlyMap<string, any>): Context<Services> => {
454
+ const self = Object.create(Proto)
455
+ self.mapUnsafe = mapUnsafe
456
+ self.mutable = false
457
+ return self
458
+ }
459
+
460
+ const Proto: Omit<Context<never>, "mapUnsafe" | "mutable"> = {
461
+ ...PipeInspectableProto,
462
+ [TypeId]: {
463
+ _Services: (_: never) => _
464
+ },
465
+ toJSON(this: Context<never>) {
466
+ return {
467
+ _id: "Context",
468
+ services: Array.from(this.mapUnsafe).map(([key, value]) => ({ key, value }))
469
+ }
470
+ },
471
+ [Equal.symbol]<A>(this: Context<A>, that: unknown): boolean {
472
+ if (
473
+ !isContext(that)
474
+ || this.mapUnsafe.size !== that.mapUnsafe.size
475
+ ) return false
476
+ for (const k of this.mapUnsafe.keys()) {
477
+ if (
478
+ !that.mapUnsafe.has(k) ||
479
+ !Equal.equals(this.mapUnsafe.get(k), that.mapUnsafe.get(k))
480
+ ) {
481
+ return false
482
+ }
483
+ }
484
+ return true
485
+ },
486
+ [Hash.symbol]<A>(this: Context<A>): number {
487
+ return Hash.number(this.mapUnsafe.size)
488
+ }
489
+ }
490
+
491
+ /**
492
+ * Checks if the provided argument is a `Context`.
493
+ *
494
+ * @example
495
+ * ```ts
496
+ * import { Context } from "effect"
497
+ * import * as assert from "node:assert"
498
+ *
499
+ * assert.strictEqual(Context.isContext(Context.empty()), true)
500
+ * ```
501
+ *
502
+ * @since 4.0.0
503
+ * @category Guards
504
+ */
505
+ export const isContext = (u: unknown): u is Context<never> => hasProperty(u, TypeId)
506
+
507
+ /**
508
+ * Checks if the provided argument is a `Key`.
509
+ *
510
+ * @example
511
+ * ```ts
512
+ * import { Context } from "effect"
513
+ * import * as assert from "node:assert"
514
+ *
515
+ * assert.strictEqual(Context.isKey(Context.Service("Service")), true)
516
+ * ```
517
+ *
518
+ * @since 4.0.0
519
+ * @category Guards
520
+ */
521
+ export const isKey = (u: unknown): u is Key<any, any> => hasProperty(u, ServiceTypeId)
522
+
523
+ /**
524
+ * Checks if the provided argument is a `Reference`.
525
+ *
526
+ * @example
527
+ * ```ts
528
+ * import { Context } from "effect"
529
+ * import * as assert from "node:assert"
530
+ *
531
+ * const LoggerRef = Context.Reference("Logger", {
532
+ * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
533
+ * })
534
+ *
535
+ * assert.strictEqual(Context.isReference(LoggerRef), true)
536
+ * assert.strictEqual(Context.isReference(Context.Service("Key")), false)
537
+ * ```
538
+ *
539
+ * @since 4.0.0
540
+ * @category Guards
541
+ */
542
+ export const isReference = (u: unknown): u is Reference<any> => hasProperty(u, ReferenceTypeId)
543
+
544
+ /**
545
+ * Returns an empty `Context`.
546
+ *
547
+ * @example
548
+ * ```ts
549
+ * import { Context } from "effect"
550
+ * import * as assert from "node:assert"
551
+ *
552
+ * assert.strictEqual(Context.isContext(Context.empty()), true)
553
+ * ```
554
+ *
555
+ * @since 4.0.0
556
+ * @category Constructors
557
+ */
558
+ export const empty = (): Context<never> => emptyContext
559
+ const emptyContext = makeUnsafe(new Map())
560
+
561
+ /**
562
+ * Creates a new `Context` with a single service associated to the key.
563
+ *
564
+ * @example
565
+ * ```ts
566
+ * import { Context } from "effect"
567
+ * import * as assert from "node:assert"
568
+ *
569
+ * const Port = Context.Service<{ PORT: number }>("Port")
570
+ *
571
+ * const context = Context.make(Port, { PORT: 8080 })
572
+ *
573
+ * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
574
+ * ```
575
+ *
576
+ * @since 4.0.0
577
+ * @category Constructors
578
+ */
579
+ export const make = <I, S>(
580
+ key: Key<I, S>,
581
+ service: Types.NoInfer<S>
582
+ ): Context<I> => makeUnsafe(new Map([[key.key, service]]))
583
+
584
+ /**
585
+ * Adds a service to a given `Context`.
586
+ *
587
+ * @example
588
+ * ```ts
589
+ * import { pipe, Context } from "effect"
590
+ * import * as assert from "node:assert"
591
+ *
592
+ * const Port = Context.Service<{ PORT: number }>("Port")
593
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
594
+ *
595
+ * const someContext = Context.make(Port, { PORT: 8080 })
596
+ *
597
+ * const context = pipe(
598
+ * someContext,
599
+ * Context.add(Timeout, { TIMEOUT: 5000 })
600
+ * )
601
+ *
602
+ * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
603
+ * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
604
+ * ```
605
+ *
606
+ * @since 4.0.0
607
+ * @category Adders
608
+ */
609
+ export const add: {
610
+ /**
611
+ * Adds a service to a given `Context`.
612
+ *
613
+ * @example
614
+ * ```ts
615
+ * import { pipe, Context } from "effect"
616
+ * import * as assert from "node:assert"
617
+ *
618
+ * const Port = Context.Service<{ PORT: number }>("Port")
619
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
620
+ *
621
+ * const someContext = Context.make(Port, { PORT: 8080 })
622
+ *
623
+ * const context = pipe(
624
+ * someContext,
625
+ * Context.add(Timeout, { TIMEOUT: 5000 })
626
+ * )
627
+ *
628
+ * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
629
+ * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
630
+ * ```
631
+ *
632
+ * @since 4.0.0
633
+ * @category Adders
634
+ */
635
+ <I, S>(key: Key<I, S>, service: Types.NoInfer<S>): <Services>(self: Context<Services>) => Context<Services | I>
636
+ /**
637
+ * Adds a service to a given `Context`.
638
+ *
639
+ * @example
640
+ * ```ts
641
+ * import { pipe, Context } from "effect"
642
+ * import * as assert from "node:assert"
643
+ *
644
+ * const Port = Context.Service<{ PORT: number }>("Port")
645
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
646
+ *
647
+ * const someContext = Context.make(Port, { PORT: 8080 })
648
+ *
649
+ * const context = pipe(
650
+ * someContext,
651
+ * Context.add(Timeout, { TIMEOUT: 5000 })
652
+ * )
653
+ *
654
+ * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
655
+ * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
656
+ * ```
657
+ *
658
+ * @since 4.0.0
659
+ * @category Adders
660
+ */
661
+ <Services, I, S>(self: Context<Services>, key: Key<I, S>, service: Types.NoInfer<S>): Context<Services | I>
662
+ } = dual(3, <Services, I, S>(
663
+ self: Context<Services>,
664
+ key: Key<I, S>,
665
+ service: Types.NoInfer<S>
666
+ ): Context<Services | I> =>
667
+ withMapUnsafe(self, (map) => {
668
+ map.set(key.key, service)
669
+ }))
670
+
671
+ /**
672
+ * @since 4.0.0
673
+ * @category Adders
674
+ */
675
+ export const addOrOmit: {
676
+ /**
677
+ * @since 4.0.0
678
+ * @category Adders
679
+ */
680
+ <I, S>(key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): <Services>(self: Context<Services>) => Context<Services | I>
681
+ /**
682
+ * @since 4.0.0
683
+ * @category Adders
684
+ */
685
+ <Services, I, S>(
686
+ self: Context<Services>,
687
+ key: Key<I, S>,
688
+ service: Option.Option<Types.NoInfer<S>>
689
+ ): Context<Services | I>
690
+ } = dual(3, <Services, I, S>(
691
+ self: Context<Services>,
692
+ key: Key<I, S>,
693
+ service: Option.Option<Types.NoInfer<S>>
694
+ ): Context<Services | I> =>
695
+ withMapUnsafe(self, (map) => {
696
+ if (service._tag === "None") {
697
+ map.delete(key.key)
698
+ } else {
699
+ map.set(key.key, service.value)
700
+ }
701
+ }))
702
+
703
+ /**
704
+ * Get a service from the context that corresponds to the given key, or
705
+ * use the fallback value.
706
+ *
707
+ * @example
708
+ * ```ts
709
+ * import { Context } from "effect"
710
+ * import * as assert from "node:assert"
711
+ *
712
+ * const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
713
+ * const Database = Context.Service<{ query: (sql: string) => string }>(
714
+ * "Database"
715
+ * )
716
+ *
717
+ * const context = Context.make(Logger, {
718
+ * log: (msg: string) => console.log(msg)
719
+ * })
720
+ *
721
+ * const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
722
+ * const database = Context.getOrElse(
723
+ * context,
724
+ * Database,
725
+ * () => ({ query: () => "fallback" })
726
+ * )
727
+ *
728
+ * assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
729
+ * assert.deepStrictEqual(database, { query: () => "fallback" })
730
+ * ```
731
+ *
732
+ * @since 4.0.0
733
+ * @category Getters
734
+ */
735
+ export const getOrElse: {
736
+ /**
737
+ * Get a service from the context that corresponds to the given key, or
738
+ * use the fallback value.
739
+ *
740
+ * @example
741
+ * ```ts
742
+ * import { Context } from "effect"
743
+ * import * as assert from "node:assert"
744
+ *
745
+ * const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
746
+ * const Database = Context.Service<{ query: (sql: string) => string }>(
747
+ * "Database"
748
+ * )
749
+ *
750
+ * const context = Context.make(Logger, {
751
+ * log: (msg: string) => console.log(msg)
752
+ * })
753
+ *
754
+ * const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
755
+ * const database = Context.getOrElse(
756
+ * context,
757
+ * Database,
758
+ * () => ({ query: () => "fallback" })
759
+ * )
760
+ *
761
+ * assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
762
+ * assert.deepStrictEqual(database, { query: () => "fallback" })
763
+ * ```
764
+ *
765
+ * @since 4.0.0
766
+ * @category Getters
767
+ */
768
+ <S, I, B>(key: Key<I, S>, orElse: LazyArg<B>): <Services>(self: Context<Services>) => S | B
769
+ /**
770
+ * Get a service from the context that corresponds to the given key, or
771
+ * use the fallback value.
772
+ *
773
+ * @example
774
+ * ```ts
775
+ * import { Context } from "effect"
776
+ * import * as assert from "node:assert"
777
+ *
778
+ * const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
779
+ * const Database = Context.Service<{ query: (sql: string) => string }>(
780
+ * "Database"
781
+ * )
782
+ *
783
+ * const context = Context.make(Logger, {
784
+ * log: (msg: string) => console.log(msg)
785
+ * })
786
+ *
787
+ * const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
788
+ * const database = Context.getOrElse(
789
+ * context,
790
+ * Database,
791
+ * () => ({ query: () => "fallback" })
792
+ * )
793
+ *
794
+ * assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
795
+ * assert.deepStrictEqual(database, { query: () => "fallback" })
796
+ * ```
797
+ *
798
+ * @since 4.0.0
799
+ * @category Getters
800
+ */
801
+ <Services, S, I, B>(self: Context<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B
802
+ } = dual(3, <Services, S, I, B>(self: Context<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B => {
803
+ if (self.mapUnsafe.has(key.key)) {
804
+ return self.mapUnsafe.get(key.key)! as any
805
+ }
806
+ return isReference(key) ? getDefaultValue(key) : orElse()
807
+ })
808
+
809
+ /**
810
+ * @since 4.0.0
811
+ * @category Getters
812
+ */
813
+ export const getOrUndefined: {
814
+ /**
815
+ * @since 4.0.0
816
+ * @category Getters
817
+ */
818
+ <S, I>(key: Key<I, S>): <Services>(self: Context<Services>) => S | undefined
819
+ /**
820
+ * @since 4.0.0
821
+ * @category Getters
822
+ */
823
+ <Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined
824
+ } = dual(
825
+ 2,
826
+ <Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined => self.mapUnsafe.get(key.key)
827
+ )
828
+
829
+ /**
830
+ * Get a service from the context that corresponds to the given key.
831
+ *
832
+ * This function is unsafe because if the key is not present in the context, a
833
+ * runtime error will be thrown.
834
+ *
835
+ * For a safer version see {@link getOption}.
836
+ *
837
+ * @param self - The `Context` to search for the service.
838
+ * @param service - The `Service` of the service to retrieve.
839
+ *
840
+ * @example
841
+ * ```ts
842
+ * import { Context } from "effect"
843
+ * import * as assert from "node:assert"
844
+ *
845
+ * const Port = Context.Service<{ PORT: number }>("Port")
846
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
847
+ *
848
+ * const context = Context.make(Port, { PORT: 8080 })
849
+ *
850
+ * assert.deepStrictEqual(Context.getUnsafe(context, Port), { PORT: 8080 })
851
+ * assert.throws(() => Context.getUnsafe(context, Timeout))
852
+ * ```
853
+ *
854
+ * @since 4.0.0
855
+ * @category unsafe
856
+ */
857
+ export const getUnsafe: {
858
+ /**
859
+ * Get a service from the context that corresponds to the given key.
860
+ *
861
+ * This function is unsafe because if the key is not present in the context, a
862
+ * runtime error will be thrown.
863
+ *
864
+ * For a safer version see {@link getOption}.
865
+ *
866
+ * @param self - The `Context` to search for the service.
867
+ * @param service - The `Service` of the service to retrieve.
868
+ *
869
+ * @example
870
+ * ```ts
871
+ * import { Context } from "effect"
872
+ * import * as assert from "node:assert"
873
+ *
874
+ * const Port = Context.Service<{ PORT: number }>("Port")
875
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
876
+ *
877
+ * const context = Context.make(Port, { PORT: 8080 })
878
+ *
879
+ * assert.deepStrictEqual(Context.getUnsafe(context, Port), { PORT: 8080 })
880
+ * assert.throws(() => Context.getUnsafe(context, Timeout))
881
+ * ```
882
+ *
883
+ * @since 4.0.0
884
+ * @category unsafe
885
+ */
886
+ <S, I>(service: Key<I, S>): <Services>(self: Context<Services>) => S
887
+ /**
888
+ * Get a service from the context that corresponds to the given key.
889
+ *
890
+ * This function is unsafe because if the key is not present in the context, a
891
+ * runtime error will be thrown.
892
+ *
893
+ * For a safer version see {@link getOption}.
894
+ *
895
+ * @param self - The `Context` to search for the service.
896
+ * @param service - The `Service` of the service to retrieve.
897
+ *
898
+ * @example
899
+ * ```ts
900
+ * import { Context } from "effect"
901
+ * import * as assert from "node:assert"
902
+ *
903
+ * const Port = Context.Service<{ PORT: number }>("Port")
904
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
905
+ *
906
+ * const context = Context.make(Port, { PORT: 8080 })
907
+ *
908
+ * assert.deepStrictEqual(Context.getUnsafe(context, Port), { PORT: 8080 })
909
+ * assert.throws(() => Context.getUnsafe(context, Timeout))
910
+ * ```
911
+ *
912
+ * @since 4.0.0
913
+ * @category unsafe
914
+ */
915
+ <Services, S, I>(self: Context<Services>, services: Key<I, S>): S
916
+ } = dual(
917
+ 2,
918
+ <Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): S => {
919
+ if (!self.mapUnsafe.has(service.key)) {
920
+ if (ReferenceTypeId in service) return getDefaultValue(service as any)
921
+ throw serviceNotFoundError(service)
922
+ }
923
+ return self.mapUnsafe.get(service.key)! as any
924
+ }
925
+ )
926
+
927
+ /**
928
+ * Get a service from the context that corresponds to the given key.
929
+ *
930
+ * @param self - The `Context` to search for the service.
931
+ * @param service - The `Service` of the service to retrieve.
932
+ *
933
+ * @example
934
+ * ```ts
935
+ * import { pipe, Context } from "effect"
936
+ * import * as assert from "node:assert"
937
+ *
938
+ * const Port = Context.Service<{ PORT: number }>("Port")
939
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
940
+ *
941
+ * const context = pipe(
942
+ * Context.make(Port, { PORT: 8080 }),
943
+ * Context.add(Timeout, { TIMEOUT: 5000 })
944
+ * )
945
+ *
946
+ * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
947
+ * ```
948
+ *
949
+ * @since 4.0.0
950
+ * @category Getters
951
+ */
952
+ export const get: {
953
+ /**
954
+ * Get a service from the context that corresponds to the given key.
955
+ *
956
+ * @param self - The `Context` to search for the service.
957
+ * @param service - The `Service` of the service to retrieve.
958
+ *
959
+ * @example
960
+ * ```ts
961
+ * import { pipe, Context } from "effect"
962
+ * import * as assert from "node:assert"
963
+ *
964
+ * const Port = Context.Service<{ PORT: number }>("Port")
965
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
966
+ *
967
+ * const context = pipe(
968
+ * Context.make(Port, { PORT: 8080 }),
969
+ * Context.add(Timeout, { TIMEOUT: 5000 })
970
+ * )
971
+ *
972
+ * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
973
+ * ```
974
+ *
975
+ * @since 4.0.0
976
+ * @category Getters
977
+ */
978
+ <Services, I extends Services, S>(service: Key<I, S>): (self: Context<Services>) => S
979
+ /**
980
+ * Get a service from the context that corresponds to the given key.
981
+ *
982
+ * @param self - The `Context` to search for the service.
983
+ * @param service - The `Service` of the service to retrieve.
984
+ *
985
+ * @example
986
+ * ```ts
987
+ * import { pipe, Context } from "effect"
988
+ * import * as assert from "node:assert"
989
+ *
990
+ * const Port = Context.Service<{ PORT: number }>("Port")
991
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
992
+ *
993
+ * const context = pipe(
994
+ * Context.make(Port, { PORT: 8080 }),
995
+ * Context.add(Timeout, { TIMEOUT: 5000 })
996
+ * )
997
+ *
998
+ * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
999
+ * ```
1000
+ *
1001
+ * @since 4.0.0
1002
+ * @category Getters
1003
+ */
1004
+ <Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): S
1005
+ } = getUnsafe
1006
+
1007
+ /**
1008
+ * @example
1009
+ * ```ts
1010
+ * import { Context } from "effect"
1011
+ * import * as assert from "node:assert"
1012
+ *
1013
+ * const LoggerRef = Context.Reference("Logger", {
1014
+ * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
1015
+ * })
1016
+ *
1017
+ * const context = Context.empty()
1018
+ * const logger = Context.getReferenceUnsafe(context, LoggerRef)
1019
+ *
1020
+ * assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
1021
+ * ```
1022
+ *
1023
+ * @since 4.0.0
1024
+ * @category unsafe
1025
+ */
1026
+ export const getReferenceUnsafe = <Services, S>(self: Context<Services>, service: Reference<S>): S => {
1027
+ if (!self.mapUnsafe.has(service.key)) {
1028
+ return getDefaultValue(service as any)
1029
+ }
1030
+ return self.mapUnsafe.get(service.key)! as any
1031
+ }
1032
+
1033
+ const defaultValueCacheKey = "~effect/Context/defaultValue" as const
1034
+
1035
+ const getDefaultValue = (ref: Reference<any>) => {
1036
+ if (defaultValueCacheKey in ref) {
1037
+ return ref[defaultValueCacheKey] as any
1038
+ }
1039
+ return (ref as any)[defaultValueCacheKey] = ref.defaultValue()
1040
+ }
1041
+
1042
+ const serviceNotFoundError = (service: Key<any, any>) => {
1043
+ const error = new Error(
1044
+ `Service not found${service.key ? `: ${String(service.key)}` : ""}`
1045
+ )
1046
+ if (service.stack) {
1047
+ const lines = service.stack.split("\n")
1048
+ if (lines.length > 2) {
1049
+ const afterAt = lines[2].match(/at (.*)/)
1050
+ if (afterAt) {
1051
+ error.message = error.message + ` (defined at ${afterAt[1]})`
1052
+ }
1053
+ }
1054
+ }
1055
+ if (error.stack) {
1056
+ const lines = error.stack.split("\n")
1057
+ lines.splice(1, 3)
1058
+ error.stack = lines.join("\n")
1059
+ }
1060
+ return error
1061
+ }
1062
+
1063
+ /**
1064
+ * Get the value associated with the specified key from the context wrapped in
1065
+ * an `Option` object. If the key is not found, the `Option` object will be
1066
+ * `None`.
1067
+ *
1068
+ * @param self - The `Context` to search for the service.
1069
+ * @param service - The `Service` of the service to retrieve.
1070
+ *
1071
+ * @example
1072
+ * ```ts
1073
+ * import { Option, Context } from "effect"
1074
+ * import * as assert from "node:assert"
1075
+ *
1076
+ * const Port = Context.Service<{ PORT: number }>("Port")
1077
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1078
+ *
1079
+ * const context = Context.make(Port, { PORT: 8080 })
1080
+ *
1081
+ * assert.deepStrictEqual(
1082
+ * Context.getOption(context, Port),
1083
+ * Option.some({ PORT: 8080 })
1084
+ * )
1085
+ * assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
1086
+ * ```
1087
+ *
1088
+ * @since 4.0.0
1089
+ * @category Getters
1090
+ */
1091
+ export const getOption: {
1092
+ /**
1093
+ * Get the value associated with the specified key from the context wrapped in
1094
+ * an `Option` object. If the key is not found, the `Option` object will be
1095
+ * `None`.
1096
+ *
1097
+ * @param self - The `Context` to search for the service.
1098
+ * @param service - The `Service` of the service to retrieve.
1099
+ *
1100
+ * @example
1101
+ * ```ts
1102
+ * import { Option, Context } from "effect"
1103
+ * import * as assert from "node:assert"
1104
+ *
1105
+ * const Port = Context.Service<{ PORT: number }>("Port")
1106
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1107
+ *
1108
+ * const context = Context.make(Port, { PORT: 8080 })
1109
+ *
1110
+ * assert.deepStrictEqual(
1111
+ * Context.getOption(context, Port),
1112
+ * Option.some({ PORT: 8080 })
1113
+ * )
1114
+ * assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
1115
+ * ```
1116
+ *
1117
+ * @since 4.0.0
1118
+ * @category Getters
1119
+ */
1120
+ <S, I>(service: Key<I, S>): <Services>(self: Context<Services>) => Option.Option<S>
1121
+ /**
1122
+ * Get the value associated with the specified key from the context wrapped in
1123
+ * an `Option` object. If the key is not found, the `Option` object will be
1124
+ * `None`.
1125
+ *
1126
+ * @param self - The `Context` to search for the service.
1127
+ * @param service - The `Service` of the service to retrieve.
1128
+ *
1129
+ * @example
1130
+ * ```ts
1131
+ * import { Option, Context } from "effect"
1132
+ * import * as assert from "node:assert"
1133
+ *
1134
+ * const Port = Context.Service<{ PORT: number }>("Port")
1135
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1136
+ *
1137
+ * const context = Context.make(Port, { PORT: 8080 })
1138
+ *
1139
+ * assert.deepStrictEqual(
1140
+ * Context.getOption(context, Port),
1141
+ * Option.some({ PORT: 8080 })
1142
+ * )
1143
+ * assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
1144
+ * ```
1145
+ *
1146
+ * @since 4.0.0
1147
+ * @category Getters
1148
+ */
1149
+ <Services, S, I>(self: Context<Services>, service: Key<I, S>): Option.Option<S>
1150
+ } = dual(2, <Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): Option.Option<S> => {
1151
+ if (self.mapUnsafe.has(service.key)) {
1152
+ return Option.some(self.mapUnsafe.get(service.key)! as any)
1153
+ }
1154
+ return isReference(service) ? Option.some(getDefaultValue(service as any)) : Option.none()
1155
+ })
1156
+
1157
+ /**
1158
+ * Merges two `Context`s, returning a new `Context` containing the services of both.
1159
+ *
1160
+ * @param self - The first `Context` to merge.
1161
+ * @param that - The second `Context` to merge.
1162
+ *
1163
+ * @example
1164
+ * ```ts
1165
+ * import { Context } from "effect"
1166
+ * import * as assert from "node:assert"
1167
+ *
1168
+ * const Port = Context.Service<{ PORT: number }>("Port")
1169
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1170
+ *
1171
+ * const firstContext = Context.make(Port, { PORT: 8080 })
1172
+ * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
1173
+ *
1174
+ * const context = Context.merge(firstContext, secondContext)
1175
+ *
1176
+ * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
1177
+ * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1178
+ * ```
1179
+ *
1180
+ * @since 4.0.0
1181
+ * @category Utils
1182
+ */
1183
+ export const merge: {
1184
+ /**
1185
+ * Merges two `Context`s, returning a new `Context` containing the services of both.
1186
+ *
1187
+ * @param self - The first `Context` to merge.
1188
+ * @param that - The second `Context` to merge.
1189
+ *
1190
+ * @example
1191
+ * ```ts
1192
+ * import { Context } from "effect"
1193
+ * import * as assert from "node:assert"
1194
+ *
1195
+ * const Port = Context.Service<{ PORT: number }>("Port")
1196
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1197
+ *
1198
+ * const firstContext = Context.make(Port, { PORT: 8080 })
1199
+ * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
1200
+ *
1201
+ * const context = Context.merge(firstContext, secondContext)
1202
+ *
1203
+ * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
1204
+ * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1205
+ * ```
1206
+ *
1207
+ * @since 4.0.0
1208
+ * @category Utils
1209
+ */
1210
+ <R1>(that: Context<R1>): <Services>(self: Context<Services>) => Context<R1 | Services>
1211
+ /**
1212
+ * Merges two `Context`s, returning a new `Context` containing the services of both.
1213
+ *
1214
+ * @param self - The first `Context` to merge.
1215
+ * @param that - The second `Context` to merge.
1216
+ *
1217
+ * @example
1218
+ * ```ts
1219
+ * import { Context } from "effect"
1220
+ * import * as assert from "node:assert"
1221
+ *
1222
+ * const Port = Context.Service<{ PORT: number }>("Port")
1223
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1224
+ *
1225
+ * const firstContext = Context.make(Port, { PORT: 8080 })
1226
+ * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
1227
+ *
1228
+ * const context = Context.merge(firstContext, secondContext)
1229
+ *
1230
+ * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
1231
+ * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1232
+ * ```
1233
+ *
1234
+ * @since 4.0.0
1235
+ * @category Utils
1236
+ */
1237
+ <Services, R1>(self: Context<Services>, that: Context<R1>): Context<Services | R1>
1238
+ } = dual(2, <Services, R1>(self: Context<Services>, that: Context<R1>): Context<Services | R1> => {
1239
+ if (self.mapUnsafe.size === 0) return that as any
1240
+ if (that.mapUnsafe.size === 0) return self as any
1241
+ return withMapUnsafe(self, (map) => {
1242
+ that.mapUnsafe.forEach((value, key) => map.set(key, value))
1243
+ })
1244
+ })
1245
+
1246
+ /**
1247
+ * Merges any number of `Context`s, returning a new `Context` containing the services of all.
1248
+ *
1249
+ * @example
1250
+ * ```ts
1251
+ * import { Context } from "effect"
1252
+ * import * as assert from "node:assert"
1253
+ *
1254
+ * const Port = Context.Service<{ PORT: number }>("Port")
1255
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1256
+ * const Host = Context.Service<{ HOST: string }>("Host")
1257
+ *
1258
+ * const firstContext = Context.make(Port, { PORT: 8080 })
1259
+ * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })
1260
+ * const thirdContext = Context.make(Host, { HOST: "localhost" })
1261
+ *
1262
+ * const context = Context.mergeAll(
1263
+ * firstContext,
1264
+ * secondContext,
1265
+ * thirdContext
1266
+ * )
1267
+ *
1268
+ * assert.deepStrictEqual(Context.get(context, Port), { PORT: 8080 })
1269
+ * assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
1270
+ * assert.deepStrictEqual(Context.get(context, Host), { HOST: "localhost" })
1271
+ * ```
1272
+ *
1273
+ * @since 3.12.0
1274
+ */
1275
+ export const mergeAll = <T extends Array<unknown>>(
1276
+ ...ctxs: [...{ [K in keyof T]: Context<T[K]> }]
1277
+ ): Context<T[number]> => {
1278
+ const map = new Map()
1279
+ for (let i = 0; i < ctxs.length; i++) {
1280
+ ctxs[i].mapUnsafe.forEach((value, key) => {
1281
+ map.set(key, value)
1282
+ })
1283
+ }
1284
+ return makeUnsafe(map)
1285
+ }
1286
+
1287
+ /**
1288
+ * Returns a new `Context` that contains only the specified services.
1289
+ *
1290
+ * @param self - The `Context` to prune services from.
1291
+ * @param services - The list of `Service`s to be included in the new `Context`.
1292
+ *
1293
+ * @example
1294
+ * ```ts
1295
+ * import { Option, pipe, Context } from "effect"
1296
+ * import * as assert from "node:assert"
1297
+ *
1298
+ * const Port = Context.Service<{ PORT: number }>("Port")
1299
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1300
+ *
1301
+ * const someContext = pipe(
1302
+ * Context.make(Port, { PORT: 8080 }),
1303
+ * Context.add(Timeout, { TIMEOUT: 5000 })
1304
+ * )
1305
+ *
1306
+ * const context = pipe(someContext, Context.pick(Port))
1307
+ *
1308
+ * assert.deepStrictEqual(
1309
+ * Context.getOption(context, Port),
1310
+ * Option.some({ PORT: 8080 })
1311
+ * )
1312
+ * assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
1313
+ * ```
1314
+ *
1315
+ * @since 4.0.0
1316
+ * @category Utils
1317
+ */
1318
+ export const pick = <S extends ReadonlyArray<Key<any, any>>>(
1319
+ ...services: S
1320
+ ) =>
1321
+ <Services>(self: Context<Services>): Context<Services & Service.Identifier<S[number]>> =>
1322
+ withMapUnsafe(self, (map) => {
1323
+ const keySet = new Set(services.map((key) => key.key))
1324
+ map.forEach((_, key) => {
1325
+ if (keySet.has(key)) return
1326
+ map.delete(key)
1327
+ })
1328
+ })
1329
+
1330
+ /**
1331
+ * @example
1332
+ * ```ts
1333
+ * import { Option, pipe, Context } from "effect"
1334
+ * import * as assert from "node:assert"
1335
+ *
1336
+ * const Port = Context.Service<{ PORT: number }>("Port")
1337
+ * const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
1338
+ *
1339
+ * const someContext = pipe(
1340
+ * Context.make(Port, { PORT: 8080 }),
1341
+ * Context.add(Timeout, { TIMEOUT: 5000 })
1342
+ * )
1343
+ *
1344
+ * const context = pipe(someContext, Context.omit(Timeout))
1345
+ *
1346
+ * assert.deepStrictEqual(
1347
+ * Context.getOption(context, Port),
1348
+ * Option.some({ PORT: 8080 })
1349
+ * )
1350
+ * assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
1351
+ * ```
1352
+ *
1353
+ * @since 4.0.0
1354
+ * @category Utils
1355
+ */
1356
+ export const omit = <S extends ReadonlyArray<Key<any, any>>>(
1357
+ ...keys: S
1358
+ ) =>
1359
+ <Services>(self: Context<Services>): Context<Exclude<Services, Service.Identifier<S[number]>>> =>
1360
+ withMapUnsafe(self, (map) => {
1361
+ for (let i = 0; i < keys.length; i++) {
1362
+ map.delete(keys[i].key)
1363
+ }
1364
+ })
1365
+
1366
+ /**
1367
+ * Perform a series of mutations on a `Context`. Prevents unnecessary copying
1368
+ * of the underlying map when multiple mutations are needed.
1369
+ *
1370
+ * @since 4.0.0
1371
+ * @category Utils
1372
+ */
1373
+ export const mutate: {
1374
+ /**
1375
+ * Perform a series of mutations on a `Context`. Prevents unnecessary copying
1376
+ * of the underlying map when multiple mutations are needed.
1377
+ *
1378
+ * @since 4.0.0
1379
+ * @category Utils
1380
+ */
1381
+ <Services, B>(f: (context: Context<Services>) => Context<B>): <Services>(self: Context<Services>) => Context<B>
1382
+ /**
1383
+ * Perform a series of mutations on a `Context`. Prevents unnecessary copying
1384
+ * of the underlying map when multiple mutations are needed.
1385
+ *
1386
+ * @since 4.0.0
1387
+ * @category Utils
1388
+ */
1389
+ <Services, B>(self: Context<Services>, f: (context: Context<Services>) => Context<B>): Context<B>
1390
+ } = dual(
1391
+ 2,
1392
+ <Services, B>(self: Context<Services>, f: (context: Context<Services>) => Context<B>): Context<B> => {
1393
+ const next = makeUnsafe</**
1394
+ * Perform a series of mutations on a `Context`. Prevents unnecessary copying
1395
+ * of the underlying map when multiple mutations are needed.
1396
+ *
1397
+ * @since 4.0.0
1398
+ * @category Utils
1399
+ */
1400
+ Services>(new Map(self.mapUnsafe))
1401
+ next.mutable = true
1402
+ const result = f(next)
1403
+ result.mutable = false
1404
+ return result
1405
+ }
1406
+ )
1407
+
1408
+ const withMapUnsafe = <Services, B>(self: Context<Services>, f: (map: Map<string, any>) => void): Context<B> => {
1409
+ if (self.mutable) {
1410
+ f(self.mapUnsafe as any)
1411
+ return self as any
1412
+ }
1413
+ const map = new Map(self.mapUnsafe)
1414
+ f(map)
1415
+ return makeUnsafe(map)
1416
+ }
1417
+
1418
+ /**
1419
+ * Creates a context key with a default value.
1420
+ *
1421
+ * **Details**
1422
+ *
1423
+ * `Context.Reference` allows you to create a key that can hold a value. You
1424
+ * can provide a default value for the service, which will automatically be used
1425
+ * when the context is accessed, or override it with a custom implementation
1426
+ * when needed.
1427
+ *
1428
+ * @example
1429
+ * ```ts
1430
+ * import { Context } from "effect"
1431
+ *
1432
+ * // Create a reference with a default value
1433
+ * const LoggerRef = Context.Reference("Logger", {
1434
+ * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
1435
+ * })
1436
+ *
1437
+ * // The reference provides the default value when accessed from an empty context
1438
+ * const context = Context.empty()
1439
+ * const logger = Context.get(context, LoggerRef)
1440
+ *
1441
+ * // You can also override the default value
1442
+ * const customContext = Context.make(LoggerRef, {
1443
+ * log: (msg: string) => `Custom: ${msg}`
1444
+ * })
1445
+ * const customLogger = Context.get(customContext, LoggerRef)
1446
+ * ```
1447
+ *
1448
+ * @since 4.0.0
1449
+ * @category References
1450
+ */
1451
+ export const Reference: <Service>(
1452
+ key: string,
1453
+ options: { readonly defaultValue: () => Service }
1454
+ ) => Reference<Service> = Service as any