effect 4.0.1 → 4.0.2

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 (917) hide show
  1. package/ai-docs/package.json +2 -2
  2. package/ai-docs/tsconfig.json +2 -1
  3. package/dist/Array.d.ts +339 -0
  4. package/dist/Array.d.ts.map +1 -1
  5. package/dist/Array.js +143 -3
  6. package/dist/Array.js.map +1 -1
  7. package/dist/BigDecimal.d.ts +88 -0
  8. package/dist/BigDecimal.d.ts.map +1 -1
  9. package/dist/BigDecimal.js +44 -0
  10. package/dist/BigDecimal.js.map +1 -1
  11. package/dist/BigInt.d.ts +68 -0
  12. package/dist/BigInt.d.ts.map +1 -1
  13. package/dist/BigInt.js +36 -0
  14. package/dist/BigInt.js.map +1 -1
  15. package/dist/Boolean.d.ts +34 -0
  16. package/dist/Boolean.d.ts.map +1 -1
  17. package/dist/Boolean.js +18 -0
  18. package/dist/Boolean.js.map +1 -1
  19. package/dist/Brand.d.ts +9 -0
  20. package/dist/Brand.d.ts.map +1 -1
  21. package/dist/Brand.js +6 -0
  22. package/dist/Brand.js.map +1 -1
  23. package/dist/ByteSize.d.ts +86 -0
  24. package/dist/ByteSize.d.ts.map +1 -1
  25. package/dist/ByteSize.js +51 -0
  26. package/dist/ByteSize.js.map +1 -1
  27. package/dist/Cache.d.ts +38 -1
  28. package/dist/Cache.d.ts.map +1 -1
  29. package/dist/Cache.js +27 -7
  30. package/dist/Cache.js.map +1 -1
  31. package/dist/Cause.d.ts +82 -0
  32. package/dist/Cause.d.ts.map +1 -1
  33. package/dist/Cause.js +60 -0
  34. package/dist/Cause.js.map +1 -1
  35. package/dist/Channel.d.ts +327 -4
  36. package/dist/Channel.d.ts.map +1 -1
  37. package/dist/Channel.js +168 -8
  38. package/dist/Channel.js.map +1 -1
  39. package/dist/ChannelSchema.d.ts +11 -0
  40. package/dist/ChannelSchema.d.ts.map +1 -1
  41. package/dist/ChannelSchema.js +6 -0
  42. package/dist/ChannelSchema.js.map +1 -1
  43. package/dist/Chunk.d.ts +192 -0
  44. package/dist/Chunk.d.ts.map +1 -1
  45. package/dist/Chunk.js +78 -0
  46. package/dist/Chunk.js.map +1 -1
  47. package/dist/Clock.d.ts +7 -0
  48. package/dist/Clock.d.ts.map +1 -1
  49. package/dist/Clock.js +5 -0
  50. package/dist/Clock.js.map +1 -1
  51. package/dist/Combiner.d.ts +10 -0
  52. package/dist/Combiner.d.ts.map +1 -1
  53. package/dist/Combiner.js +8 -0
  54. package/dist/Combiner.js.map +1 -1
  55. package/dist/Config.d.ts +52 -12
  56. package/dist/Config.d.ts.map +1 -1
  57. package/dist/Config.js +55 -5
  58. package/dist/Config.js.map +1 -1
  59. package/dist/ConfigProvider.d.ts +28 -0
  60. package/dist/ConfigProvider.d.ts.map +1 -1
  61. package/dist/ConfigProvider.js +19 -0
  62. package/dist/ConfigProvider.js.map +1 -1
  63. package/dist/Console.d.ts +22 -0
  64. package/dist/Console.d.ts.map +1 -1
  65. package/dist/Console.js +20 -0
  66. package/dist/Console.js.map +1 -1
  67. package/dist/Context.d.ts +50 -0
  68. package/dist/Context.d.ts.map +1 -1
  69. package/dist/Context.js +21 -0
  70. package/dist/Context.js.map +1 -1
  71. package/dist/Cron.d.ts +16 -0
  72. package/dist/Cron.d.ts.map +1 -1
  73. package/dist/Cron.js +26 -1
  74. package/dist/Cron.js.map +1 -1
  75. package/dist/Crypto.d.ts +5 -0
  76. package/dist/Crypto.d.ts.map +1 -1
  77. package/dist/Crypto.js +3 -0
  78. package/dist/Crypto.js.map +1 -1
  79. package/dist/Data.d.ts +13 -0
  80. package/dist/Data.d.ts.map +1 -1
  81. package/dist/Data.js +5 -0
  82. package/dist/Data.js.map +1 -1
  83. package/dist/DateTime.d.ts +171 -0
  84. package/dist/DateTime.d.ts.map +1 -1
  85. package/dist/DateTime.js +89 -0
  86. package/dist/DateTime.js.map +1 -1
  87. package/dist/Deferred.d.ts +51 -0
  88. package/dist/Deferred.d.ts.map +1 -1
  89. package/dist/Deferred.js +22 -0
  90. package/dist/Deferred.js.map +1 -1
  91. package/dist/Differ.d.ts +2 -0
  92. package/dist/Differ.d.ts.map +1 -1
  93. package/dist/Differ.js +1 -0
  94. package/dist/Duration.d.ts +90 -0
  95. package/dist/Duration.d.ts.map +1 -1
  96. package/dist/Duration.js +53 -0
  97. package/dist/Duration.js.map +1 -1
  98. package/dist/Effect.d.ts +527 -0
  99. package/dist/Effect.d.ts.map +1 -1
  100. package/dist/Effect.js +240 -5
  101. package/dist/Effect.js.map +1 -1
  102. package/dist/Effectable.d.ts +4 -0
  103. package/dist/Effectable.d.ts.map +1 -1
  104. package/dist/Effectable.js +3 -0
  105. package/dist/Effectable.js.map +1 -1
  106. package/dist/Equal.d.ts +8 -0
  107. package/dist/Equal.d.ts.map +1 -1
  108. package/dist/Equal.js +9 -1
  109. package/dist/Equal.js.map +1 -1
  110. package/dist/Equivalence.d.ts +21 -0
  111. package/dist/Equivalence.d.ts.map +1 -1
  112. package/dist/Equivalence.js +16 -0
  113. package/dist/Equivalence.js.map +1 -1
  114. package/dist/ErrorReporter.d.ts +36 -0
  115. package/dist/ErrorReporter.d.ts.map +1 -1
  116. package/dist/ErrorReporter.js +11 -0
  117. package/dist/ErrorReporter.js.map +1 -1
  118. package/dist/ExecutionPlan.d.ts +49 -8
  119. package/dist/ExecutionPlan.d.ts.map +1 -1
  120. package/dist/ExecutionPlan.js +7 -0
  121. package/dist/ExecutionPlan.js.map +1 -1
  122. package/dist/Exit.d.ts +40 -0
  123. package/dist/Exit.d.ts.map +1 -1
  124. package/dist/Exit.js +27 -0
  125. package/dist/Exit.js.map +1 -1
  126. package/dist/Fiber.d.ts +20 -0
  127. package/dist/Fiber.d.ts.map +1 -1
  128. package/dist/Fiber.js +11 -0
  129. package/dist/Fiber.js.map +1 -1
  130. package/dist/FiberHandle.d.ts +21 -0
  131. package/dist/FiberHandle.d.ts.map +1 -1
  132. package/dist/FiberHandle.js +21 -4
  133. package/dist/FiberHandle.js.map +1 -1
  134. package/dist/FiberMap.d.ts +35 -0
  135. package/dist/FiberMap.d.ts.map +1 -1
  136. package/dist/FiberMap.js +19 -0
  137. package/dist/FiberMap.js.map +1 -1
  138. package/dist/FiberSet.d.ts +20 -0
  139. package/dist/FiberSet.d.ts.map +1 -1
  140. package/dist/FiberSet.js +14 -0
  141. package/dist/FiberSet.js.map +1 -1
  142. package/dist/FileSystem.d.ts +15 -0
  143. package/dist/FileSystem.d.ts.map +1 -1
  144. package/dist/FileSystem.js +8 -0
  145. package/dist/FileSystem.js.map +1 -1
  146. package/dist/Filter.d.ts +55 -0
  147. package/dist/Filter.d.ts.map +1 -1
  148. package/dist/Filter.js +28 -0
  149. package/dist/Filter.js.map +1 -1
  150. package/dist/Formatter.d.ts +3 -0
  151. package/dist/Formatter.d.ts.map +1 -1
  152. package/dist/Formatter.js +39 -1
  153. package/dist/Formatter.js.map +1 -1
  154. package/dist/Function.d.ts +30 -0
  155. package/dist/Function.d.ts.map +1 -1
  156. package/dist/Function.js +20 -0
  157. package/dist/Function.js.map +1 -1
  158. package/dist/Graph.d.ts +247 -12
  159. package/dist/Graph.d.ts.map +1 -1
  160. package/dist/Graph.js +149 -28
  161. package/dist/Graph.js.map +1 -1
  162. package/dist/HKT.d.ts +5 -0
  163. package/dist/HKT.d.ts.map +1 -1
  164. package/dist/Hash.d.ts +14 -0
  165. package/dist/Hash.d.ts.map +1 -1
  166. package/dist/Hash.js +12 -0
  167. package/dist/Hash.js.map +1 -1
  168. package/dist/HashMap.d.ts +91 -0
  169. package/dist/HashMap.d.ts.map +1 -1
  170. package/dist/HashMap.js +39 -0
  171. package/dist/HashMap.js.map +1 -1
  172. package/dist/HashRing.d.ts +17 -0
  173. package/dist/HashRing.d.ts.map +1 -1
  174. package/dist/HashRing.js +9 -0
  175. package/dist/HashRing.js.map +1 -1
  176. package/dist/HashSet.d.ts +49 -0
  177. package/dist/HashSet.d.ts.map +1 -1
  178. package/dist/HashSet.js +19 -0
  179. package/dist/HashSet.js.map +1 -1
  180. package/dist/Inspectable.d.ts +7 -0
  181. package/dist/Inspectable.d.ts.map +1 -1
  182. package/dist/Inspectable.js +6 -0
  183. package/dist/Inspectable.js.map +1 -1
  184. package/dist/Iterable.d.ts +127 -0
  185. package/dist/Iterable.d.ts.map +1 -1
  186. package/dist/Iterable.js +51 -0
  187. package/dist/Iterable.js.map +1 -1
  188. package/dist/JsonPatch.d.ts +4 -0
  189. package/dist/JsonPatch.d.ts.map +1 -1
  190. package/dist/JsonPatch.js +3 -0
  191. package/dist/JsonPatch.js.map +1 -1
  192. package/dist/JsonPointer.d.ts +5 -0
  193. package/dist/JsonPointer.d.ts.map +1 -1
  194. package/dist/JsonPointer.js +5 -0
  195. package/dist/JsonPointer.js.map +1 -1
  196. package/dist/JsonSchema.d.ts +16 -0
  197. package/dist/JsonSchema.d.ts.map +1 -1
  198. package/dist/JsonSchema.js +11 -0
  199. package/dist/JsonSchema.js.map +1 -1
  200. package/dist/Latch.d.ts +14 -0
  201. package/dist/Latch.d.ts.map +1 -1
  202. package/dist/Latch.js +10 -0
  203. package/dist/Latch.js.map +1 -1
  204. package/dist/Layer.d.ts +100 -0
  205. package/dist/Layer.d.ts.map +1 -1
  206. package/dist/Layer.js +45 -1
  207. package/dist/Layer.js.map +1 -1
  208. package/dist/LayerMap.d.ts +7 -0
  209. package/dist/LayerMap.d.ts.map +1 -1
  210. package/dist/LayerMap.js +4 -0
  211. package/dist/LayerMap.js.map +1 -1
  212. package/dist/LayerRef.d.ts +5 -0
  213. package/dist/LayerRef.d.ts.map +1 -1
  214. package/dist/LayerRef.js +3 -0
  215. package/dist/LayerRef.js.map +1 -1
  216. package/dist/LogLevel.d.ts +20 -0
  217. package/dist/LogLevel.d.ts.map +1 -1
  218. package/dist/LogLevel.js +9 -0
  219. package/dist/LogLevel.js.map +1 -1
  220. package/dist/Logger.d.ts +25 -0
  221. package/dist/Logger.d.ts.map +1 -1
  222. package/dist/Logger.js +30 -4
  223. package/dist/Logger.js.map +1 -1
  224. package/dist/ManagedRuntime.d.ts +5 -0
  225. package/dist/ManagedRuntime.d.ts.map +1 -1
  226. package/dist/ManagedRuntime.js +9 -1
  227. package/dist/ManagedRuntime.js.map +1 -1
  228. package/dist/Match.d.ts +51 -0
  229. package/dist/Match.d.ts.map +1 -1
  230. package/dist/Match.js +39 -0
  231. package/dist/Match.js.map +1 -1
  232. package/dist/Metric.d.ts +59 -0
  233. package/dist/Metric.d.ts.map +1 -1
  234. package/dist/Metric.js +31 -0
  235. package/dist/Metric.js.map +1 -1
  236. package/dist/MutableHashMap.d.ts +32 -0
  237. package/dist/MutableHashMap.d.ts.map +1 -1
  238. package/dist/MutableHashMap.js +16 -0
  239. package/dist/MutableHashMap.js.map +1 -1
  240. package/dist/MutableHashSet.d.ts +16 -0
  241. package/dist/MutableHashSet.d.ts.map +1 -1
  242. package/dist/MutableHashSet.js +10 -0
  243. package/dist/MutableHashSet.js.map +1 -1
  244. package/dist/MutableList.d.ts +20 -0
  245. package/dist/MutableList.d.ts.map +1 -1
  246. package/dist/MutableList.js +18 -0
  247. package/dist/MutableList.js.map +1 -1
  248. package/dist/MutableRef.d.ts +31 -0
  249. package/dist/MutableRef.d.ts.map +1 -1
  250. package/dist/MutableRef.js +17 -0
  251. package/dist/MutableRef.js.map +1 -1
  252. package/dist/Newtype.d.ts +9 -0
  253. package/dist/Newtype.d.ts.map +1 -1
  254. package/dist/Newtype.js +6 -0
  255. package/dist/Newtype.js.map +1 -1
  256. package/dist/NonEmptyIterable.d.ts +4 -0
  257. package/dist/NonEmptyIterable.d.ts.map +1 -1
  258. package/dist/NonEmptyIterable.js +2 -0
  259. package/dist/NonEmptyIterable.js.map +1 -1
  260. package/dist/Number.d.ts +61 -0
  261. package/dist/Number.d.ts.map +1 -1
  262. package/dist/Number.js +31 -0
  263. package/dist/Number.js.map +1 -1
  264. package/dist/Optic.d.ts +41 -0
  265. package/dist/Optic.d.ts.map +1 -1
  266. package/dist/Optic.js +20 -0
  267. package/dist/Optic.js.map +1 -1
  268. package/dist/Option.d.ts +134 -0
  269. package/dist/Option.d.ts.map +1 -1
  270. package/dist/Option.js +61 -0
  271. package/dist/Option.js.map +1 -1
  272. package/dist/Order.d.ts +29 -0
  273. package/dist/Order.d.ts.map +1 -1
  274. package/dist/Order.js +24 -0
  275. package/dist/Order.js.map +1 -1
  276. package/dist/Ordering.d.ts +7 -0
  277. package/dist/Ordering.d.ts.map +1 -1
  278. package/dist/Ordering.js +3 -0
  279. package/dist/Ordering.js.map +1 -1
  280. package/dist/PartitionedSemaphore.d.ts +24 -0
  281. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  282. package/dist/PartitionedSemaphore.js +47 -21
  283. package/dist/PartitionedSemaphore.js.map +1 -1
  284. package/dist/Path.d.ts +6 -0
  285. package/dist/Path.d.ts.map +1 -1
  286. package/dist/Path.js +4 -0
  287. package/dist/Path.js.map +1 -1
  288. package/dist/Pipeable.d.ts +7 -0
  289. package/dist/Pipeable.d.ts.map +1 -1
  290. package/dist/Pipeable.js +5 -0
  291. package/dist/Pipeable.js.map +1 -1
  292. package/dist/PlatformError.d.ts +8 -0
  293. package/dist/PlatformError.d.ts.map +1 -1
  294. package/dist/PlatformError.js +7 -0
  295. package/dist/PlatformError.js.map +1 -1
  296. package/dist/Pool.d.ts +19 -0
  297. package/dist/Pool.d.ts.map +1 -1
  298. package/dist/Pool.js +8 -1
  299. package/dist/Pool.js.map +1 -1
  300. package/dist/Predicate.d.ts +84 -0
  301. package/dist/Predicate.d.ts.map +1 -1
  302. package/dist/Predicate.js +48 -0
  303. package/dist/Predicate.js.map +1 -1
  304. package/dist/PrimaryKey.d.ts +5 -0
  305. package/dist/PrimaryKey.d.ts.map +1 -1
  306. package/dist/PrimaryKey.js +4 -0
  307. package/dist/PrimaryKey.js.map +1 -1
  308. package/dist/PubSub.d.ts +67 -5
  309. package/dist/PubSub.d.ts.map +1 -1
  310. package/dist/PubSub.js +60 -8
  311. package/dist/PubSub.js.map +1 -1
  312. package/dist/Pull.d.ts +20 -0
  313. package/dist/Pull.d.ts.map +1 -1
  314. package/dist/Pull.js +10 -0
  315. package/dist/Pull.js.map +1 -1
  316. package/dist/Queue.d.ts +60 -0
  317. package/dist/Queue.d.ts.map +1 -1
  318. package/dist/Queue.js +58 -8
  319. package/dist/Queue.js.map +1 -1
  320. package/dist/Random.d.ts +13 -0
  321. package/dist/Random.d.ts.map +1 -1
  322. package/dist/Random.js +9 -0
  323. package/dist/Random.js.map +1 -1
  324. package/dist/RcMap.d.ts +23 -0
  325. package/dist/RcMap.d.ts.map +1 -1
  326. package/dist/RcMap.js +8 -0
  327. package/dist/RcMap.js.map +1 -1
  328. package/dist/RcRef.d.ts +6 -0
  329. package/dist/RcRef.d.ts.map +1 -1
  330. package/dist/RcRef.js +3 -0
  331. package/dist/RcRef.js.map +1 -1
  332. package/dist/Record.d.ts +100 -0
  333. package/dist/Record.d.ts.map +1 -1
  334. package/dist/Record.js +43 -0
  335. package/dist/Record.js.map +1 -1
  336. package/dist/Redactable.d.ts +6 -0
  337. package/dist/Redactable.d.ts.map +1 -1
  338. package/dist/Redactable.js +4 -0
  339. package/dist/Redactable.js.map +1 -1
  340. package/dist/Redacted.d.ts +8 -0
  341. package/dist/Redacted.d.ts.map +1 -1
  342. package/dist/Redacted.js +6 -0
  343. package/dist/Redacted.js.map +1 -1
  344. package/dist/Reducer.d.ts +4 -0
  345. package/dist/Reducer.d.ts.map +1 -1
  346. package/dist/Reducer.js +3 -0
  347. package/dist/Reducer.js.map +1 -1
  348. package/dist/Ref.d.ts +20 -0
  349. package/dist/Ref.d.ts.map +1 -1
  350. package/dist/Ref.js +16 -0
  351. package/dist/Ref.js.map +1 -1
  352. package/dist/References.d.ts +21 -0
  353. package/dist/References.d.ts.map +1 -1
  354. package/dist/References.js +19 -0
  355. package/dist/References.js.map +1 -1
  356. package/dist/RegExp.d.ts +3 -0
  357. package/dist/RegExp.d.ts.map +1 -1
  358. package/dist/RegExp.js +4 -0
  359. package/dist/RegExp.js.map +1 -1
  360. package/dist/Request.d.ts +32 -0
  361. package/dist/Request.d.ts.map +1 -1
  362. package/dist/Request.js +12 -0
  363. package/dist/Request.js.map +1 -1
  364. package/dist/RequestResolver.d.ts +42 -0
  365. package/dist/RequestResolver.d.ts.map +1 -1
  366. package/dist/RequestResolver.js +27 -6
  367. package/dist/RequestResolver.js.map +1 -1
  368. package/dist/Resource.d.ts +6 -0
  369. package/dist/Resource.d.ts.map +1 -1
  370. package/dist/Resource.js +6 -0
  371. package/dist/Resource.js.map +1 -1
  372. package/dist/Result.d.ts +91 -0
  373. package/dist/Result.d.ts.map +1 -1
  374. package/dist/Result.js +41 -0
  375. package/dist/Result.js.map +1 -1
  376. package/dist/Runtime.d.ts +9 -0
  377. package/dist/Runtime.d.ts.map +1 -1
  378. package/dist/Runtime.js +7 -0
  379. package/dist/Runtime.js.map +1 -1
  380. package/dist/Schedule.d.ts +57 -0
  381. package/dist/Schedule.d.ts.map +1 -1
  382. package/dist/Schedule.js +32 -0
  383. package/dist/Schedule.js.map +1 -1
  384. package/dist/Scheduler.d.ts +7 -0
  385. package/dist/Scheduler.d.ts.map +1 -1
  386. package/dist/Scheduler.js +5 -0
  387. package/dist/Scheduler.js.map +1 -1
  388. package/dist/Schema.d.ts +496 -1
  389. package/dist/Schema.d.ts.map +1 -1
  390. package/dist/Schema.js +280 -1
  391. package/dist/Schema.js.map +1 -1
  392. package/dist/SchemaAST.d.ts +107 -0
  393. package/dist/SchemaAST.d.ts.map +1 -1
  394. package/dist/SchemaAST.js +81 -1
  395. package/dist/SchemaAST.js.map +1 -1
  396. package/dist/SchemaGetter.d.ts +69 -2
  397. package/dist/SchemaGetter.d.ts.map +1 -1
  398. package/dist/SchemaGetter.js +63 -4
  399. package/dist/SchemaGetter.js.map +1 -1
  400. package/dist/SchemaIssue.d.ts +33 -0
  401. package/dist/SchemaIssue.d.ts.map +1 -1
  402. package/dist/SchemaIssue.js +18 -0
  403. package/dist/SchemaIssue.js.map +1 -1
  404. package/dist/SchemaParser.d.ts +25 -0
  405. package/dist/SchemaParser.d.ts.map +1 -1
  406. package/dist/SchemaParser.js +26 -0
  407. package/dist/SchemaParser.js.map +1 -1
  408. package/dist/SchemaRepresentation.d.ts +147 -0
  409. package/dist/SchemaRepresentation.d.ts.map +1 -1
  410. package/dist/SchemaRepresentation.js +99 -0
  411. package/dist/SchemaRepresentation.js.map +1 -1
  412. package/dist/SchemaTransformation.d.ts +53 -0
  413. package/dist/SchemaTransformation.d.ts.map +1 -1
  414. package/dist/SchemaTransformation.js +46 -0
  415. package/dist/SchemaTransformation.js.map +1 -1
  416. package/dist/Scope.d.ts +19 -0
  417. package/dist/Scope.d.ts.map +1 -1
  418. package/dist/Scope.js +12 -0
  419. package/dist/Scope.js.map +1 -1
  420. package/dist/ScopedCache.d.ts +34 -0
  421. package/dist/ScopedCache.d.ts.map +1 -1
  422. package/dist/ScopedCache.js +26 -3
  423. package/dist/ScopedCache.js.map +1 -1
  424. package/dist/ScopedRef.d.ts +9 -0
  425. package/dist/ScopedRef.d.ts.map +1 -1
  426. package/dist/ScopedRef.js +6 -0
  427. package/dist/ScopedRef.js.map +1 -1
  428. package/dist/Semaphore.d.ts +26 -0
  429. package/dist/Semaphore.d.ts.map +1 -1
  430. package/dist/Semaphore.js +10 -0
  431. package/dist/Semaphore.js.map +1 -1
  432. package/dist/Sink.d.ts +125 -1
  433. package/dist/Sink.d.ts.map +1 -1
  434. package/dist/Sink.js +75 -1
  435. package/dist/Sink.js.map +1 -1
  436. package/dist/StandardSchema.d.ts +1 -0
  437. package/dist/StandardSchema.d.ts.map +1 -1
  438. package/dist/StandardSchema.js +1 -0
  439. package/dist/Stdio.d.ts +7 -0
  440. package/dist/Stdio.d.ts.map +1 -1
  441. package/dist/Stdio.js +5 -0
  442. package/dist/Stdio.js.map +1 -1
  443. package/dist/Stream.d.ts +558 -0
  444. package/dist/Stream.d.ts.map +1 -1
  445. package/dist/Stream.js +261 -13
  446. package/dist/Stream.js.map +1 -1
  447. package/dist/String.d.ts +87 -0
  448. package/dist/String.d.ts.map +1 -1
  449. package/dist/String.js +61 -0
  450. package/dist/String.js.map +1 -1
  451. package/dist/Struct.d.ts +46 -0
  452. package/dist/Struct.d.ts.map +1 -1
  453. package/dist/Struct.js +19 -0
  454. package/dist/Struct.js.map +1 -1
  455. package/dist/SubscriptionRef.d.ts +65 -0
  456. package/dist/SubscriptionRef.d.ts.map +1 -1
  457. package/dist/SubscriptionRef.js +25 -0
  458. package/dist/SubscriptionRef.js.map +1 -1
  459. package/dist/Symbol.d.ts +2 -0
  460. package/dist/Symbol.d.ts.map +1 -1
  461. package/dist/Symbol.js +2 -0
  462. package/dist/Symbol.js.map +1 -1
  463. package/dist/SynchronizedRef.d.ts +63 -0
  464. package/dist/SynchronizedRef.d.ts.map +1 -1
  465. package/dist/SynchronizedRef.js +24 -0
  466. package/dist/SynchronizedRef.js.map +1 -1
  467. package/dist/Take.d.ts +3 -0
  468. package/dist/Take.d.ts.map +1 -1
  469. package/dist/Take.js +1 -0
  470. package/dist/Take.js.map +1 -1
  471. package/dist/Terminal.d.ts +8 -0
  472. package/dist/Terminal.d.ts.map +1 -1
  473. package/dist/Terminal.js +4 -0
  474. package/dist/Terminal.js.map +1 -1
  475. package/dist/Tracer.d.ts +23 -0
  476. package/dist/Tracer.d.ts.map +1 -1
  477. package/dist/Tracer.js +12 -0
  478. package/dist/Tracer.js.map +1 -1
  479. package/dist/Trie.d.ts +68 -0
  480. package/dist/Trie.d.ts.map +1 -1
  481. package/dist/Trie.js +28 -0
  482. package/dist/Trie.js.map +1 -1
  483. package/dist/Tuple.d.ts +38 -0
  484. package/dist/Tuple.d.ts.map +1 -1
  485. package/dist/Tuple.js +18 -0
  486. package/dist/Tuple.js.map +1 -1
  487. package/dist/TxChunk.d.ts +52 -0
  488. package/dist/TxChunk.d.ts.map +1 -1
  489. package/dist/TxChunk.js +23 -0
  490. package/dist/TxChunk.js.map +1 -1
  491. package/dist/TxDeferred.d.ts +15 -0
  492. package/dist/TxDeferred.d.ts.map +1 -1
  493. package/dist/TxDeferred.js +8 -0
  494. package/dist/TxDeferred.js.map +1 -1
  495. package/dist/TxHashMap.d.ts +83 -0
  496. package/dist/TxHashMap.d.ts.map +1 -1
  497. package/dist/TxHashMap.js +52 -7
  498. package/dist/TxHashMap.js.map +1 -1
  499. package/dist/TxHashSet.d.ts +51 -0
  500. package/dist/TxHashSet.d.ts.map +1 -1
  501. package/dist/TxHashSet.js +29 -4
  502. package/dist/TxHashSet.js.map +1 -1
  503. package/dist/TxPriorityQueue.d.ts +30 -0
  504. package/dist/TxPriorityQueue.d.ts.map +1 -1
  505. package/dist/TxPriorityQueue.js +22 -1
  506. package/dist/TxPriorityQueue.js.map +1 -1
  507. package/dist/TxPubSub.d.ts +25 -0
  508. package/dist/TxPubSub.d.ts.map +1 -1
  509. package/dist/TxPubSub.js +19 -0
  510. package/dist/TxPubSub.js.map +1 -1
  511. package/dist/TxQueue.d.ts +51 -0
  512. package/dist/TxQueue.d.ts.map +1 -1
  513. package/dist/TxQueue.js +30 -0
  514. package/dist/TxQueue.js.map +1 -1
  515. package/dist/TxReentrantLock.d.ts +24 -0
  516. package/dist/TxReentrantLock.d.ts.map +1 -1
  517. package/dist/TxReentrantLock.js +32 -18
  518. package/dist/TxReentrantLock.js.map +1 -1
  519. package/dist/TxRef.d.ts +14 -0
  520. package/dist/TxRef.d.ts.map +1 -1
  521. package/dist/TxRef.js +7 -0
  522. package/dist/TxRef.js.map +1 -1
  523. package/dist/TxSemaphore.d.ts +25 -0
  524. package/dist/TxSemaphore.d.ts.map +1 -1
  525. package/dist/TxSemaphore.js +29 -13
  526. package/dist/TxSemaphore.js.map +1 -1
  527. package/dist/TxSubscriptionRef.d.ts +25 -0
  528. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  529. package/dist/TxSubscriptionRef.js +12 -0
  530. package/dist/TxSubscriptionRef.js.map +1 -1
  531. package/dist/Types.d.ts +36 -0
  532. package/dist/Types.d.ts.map +1 -1
  533. package/dist/Types.js +1 -0
  534. package/dist/UndefinedOr.d.ts +15 -0
  535. package/dist/UndefinedOr.d.ts.map +1 -1
  536. package/dist/UndefinedOr.js +9 -0
  537. package/dist/UndefinedOr.js.map +1 -1
  538. package/dist/Unify.d.ts +15 -0
  539. package/dist/Unify.d.ts.map +1 -1
  540. package/dist/Unify.js +2 -0
  541. package/dist/Unify.js.map +1 -1
  542. package/dist/Utils.d.ts +4 -0
  543. package/dist/Utils.d.ts.map +1 -1
  544. package/dist/Utils.js +1 -0
  545. package/dist/Utils.js.map +1 -1
  546. package/dist/Version.d.ts +26 -0
  547. package/dist/Version.d.ts.map +1 -0
  548. package/dist/Version.js +36 -0
  549. package/dist/Version.js.map +1 -0
  550. package/dist/ai/Chat.js +1 -1
  551. package/dist/ai/Chat.js.map +1 -1
  552. package/dist/ai/DecisionModel.d.ts +22 -0
  553. package/dist/ai/DecisionModel.d.ts.map +1 -1
  554. package/dist/ai/DecisionModel.js +22 -4
  555. package/dist/ai/DecisionModel.js.map +1 -1
  556. package/dist/ai/LanguageModel.d.ts.map +1 -1
  557. package/dist/ai/LanguageModel.js +14 -13
  558. package/dist/ai/LanguageModel.js.map +1 -1
  559. package/dist/ai/McpServer.d.ts +32 -11
  560. package/dist/ai/McpServer.d.ts.map +1 -1
  561. package/dist/ai/McpServer.js +213 -169
  562. package/dist/ai/McpServer.js.map +1 -1
  563. package/dist/ai/Telemetry.d.ts +49 -41
  564. package/dist/ai/Telemetry.d.ts.map +1 -1
  565. package/dist/ai/Telemetry.js +6 -8
  566. package/dist/ai/Telemetry.js.map +1 -1
  567. package/dist/ai/internal/mcpRuntime.js +79 -46
  568. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  569. package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
  570. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  571. package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
  572. package/dist/cluster/K8sHttpClient.js +5 -2
  573. package/dist/cluster/K8sHttpClient.js.map +1 -1
  574. package/dist/encoding/Base64.d.ts +4 -0
  575. package/dist/encoding/Base64.d.ts.map +1 -1
  576. package/dist/encoding/Base64.js +4 -0
  577. package/dist/encoding/Base64.js.map +1 -1
  578. package/dist/encoding/Base64Url.d.ts +4 -0
  579. package/dist/encoding/Base64Url.d.ts.map +1 -1
  580. package/dist/encoding/Base64Url.js +4 -0
  581. package/dist/encoding/Base64Url.js.map +1 -1
  582. package/dist/encoding/EncodingError.d.ts +4 -0
  583. package/dist/encoding/EncodingError.d.ts.map +1 -1
  584. package/dist/encoding/EncodingError.js +4 -0
  585. package/dist/encoding/EncodingError.js.map +1 -1
  586. package/dist/encoding/Hex.d.ts +5 -0
  587. package/dist/encoding/Hex.d.ts.map +1 -1
  588. package/dist/encoding/Hex.js +5 -0
  589. package/dist/encoding/Hex.js.map +1 -1
  590. package/dist/encoding/Toml.js +2 -2
  591. package/dist/encoding/Toml.js.map +1 -1
  592. package/dist/encoding/Yaml.d.ts.map +1 -1
  593. package/dist/encoding/Yaml.js +6 -4
  594. package/dist/encoding/Yaml.js.map +1 -1
  595. package/dist/encoding/index.d.ts +4 -0
  596. package/dist/encoding/index.d.ts.map +1 -1
  597. package/dist/encoding/index.js +4 -0
  598. package/dist/encoding/index.js.map +1 -1
  599. package/dist/eventlog/SqlEventJournal.js +8 -4
  600. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  601. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
  602. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  603. package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
  604. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  605. package/dist/http/Headers.d.ts +3 -1
  606. package/dist/http/Headers.d.ts.map +1 -1
  607. package/dist/http/Headers.js +4 -2
  608. package/dist/http/Headers.js.map +1 -1
  609. package/dist/http/HttpClient.d.ts +9 -0
  610. package/dist/http/HttpClient.d.ts.map +1 -1
  611. package/dist/http/HttpClient.js +40 -21
  612. package/dist/http/HttpClient.js.map +1 -1
  613. package/dist/http/HttpClientResponse.js +3 -1
  614. package/dist/http/HttpClientResponse.js.map +1 -1
  615. package/dist/http/HttpEffect.d.ts +3 -0
  616. package/dist/http/HttpEffect.d.ts.map +1 -1
  617. package/dist/http/HttpEffect.js +5 -2
  618. package/dist/http/HttpEffect.js.map +1 -1
  619. package/dist/http/HttpMiddleware.d.ts +17 -0
  620. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  621. package/dist/http/HttpMiddleware.js +56 -39
  622. package/dist/http/HttpMiddleware.js.map +1 -1
  623. package/dist/http/HttpServer.d.ts +1 -1
  624. package/dist/http/HttpServer.d.ts.map +1 -1
  625. package/dist/http/internal/tracing.d.ts +2 -0
  626. package/dist/http/internal/tracing.d.ts.map +1 -0
  627. package/dist/http/internal/tracing.js +37 -0
  628. package/dist/http/internal/tracing.js.map +1 -0
  629. package/dist/http-api/HttpApiBuilder.js +2 -1
  630. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  631. package/dist/http-api/HttpApiClient.d.ts +12 -3
  632. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  633. package/dist/http-api/HttpApiClient.js.map +1 -1
  634. package/dist/http-api/HttpApiError.d.ts +4 -3
  635. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  636. package/dist/http-api/HttpApiError.js +7 -4
  637. package/dist/http-api/HttpApiError.js.map +1 -1
  638. package/dist/http-api/HttpApiSecurity.d.ts +8 -8
  639. package/dist/http-api/HttpApiSecurity.js +8 -8
  640. package/dist/index.d.ts +155 -0
  641. package/dist/index.d.ts.map +1 -1
  642. package/dist/index.js +155 -0
  643. package/dist/index.js.map +1 -1
  644. package/dist/internal/arbitrary/array.js +3 -3
  645. package/dist/internal/arbitrary/array.js.map +1 -1
  646. package/dist/internal/arbitrary/model.js +26 -11
  647. package/dist/internal/arbitrary/model.js.map +1 -1
  648. package/dist/internal/arbitrary/runner.js +8 -8
  649. package/dist/internal/arbitrary/runner.js.map +1 -1
  650. package/dist/internal/arbitrary/schema.js +4 -5
  651. package/dist/internal/arbitrary/schema.js.map +1 -1
  652. package/dist/internal/effect.js +41 -39
  653. package/dist/internal/effect.js.map +1 -1
  654. package/dist/internal/schedule.js +7 -5
  655. package/dist/internal/schedule.js.map +1 -1
  656. package/dist/internal/schema/standardSchema.js +2 -2
  657. package/dist/internal/schema/standardSchema.js.map +1 -1
  658. package/dist/internal/version.d.ts +2 -0
  659. package/dist/internal/version.d.ts.map +1 -0
  660. package/dist/internal/version.js +3 -0
  661. package/dist/internal/version.js.map +1 -0
  662. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  663. package/dist/observability/OtlpExporter.js +5 -6
  664. package/dist/observability/OtlpExporter.js.map +1 -1
  665. package/dist/observability/OtlpLogger.d.ts.map +1 -1
  666. package/dist/observability/OtlpLogger.js +23 -27
  667. package/dist/observability/OtlpLogger.js.map +1 -1
  668. package/dist/observability/OtlpMetrics.d.ts +5 -3
  669. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  670. package/dist/observability/OtlpMetrics.js +21 -94
  671. package/dist/observability/OtlpMetrics.js.map +1 -1
  672. package/dist/observability/OtlpResource.d.ts +4 -3
  673. package/dist/observability/OtlpResource.d.ts.map +1 -1
  674. package/dist/observability/OtlpResource.js +20 -23
  675. package/dist/observability/OtlpResource.js.map +1 -1
  676. package/dist/observability/OtlpTracer.d.ts +1 -0
  677. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  678. package/dist/observability/OtlpTracer.js +32 -36
  679. package/dist/observability/OtlpTracer.js.map +1 -1
  680. package/dist/observability/internal/otlpProtobuf.js +32 -1
  681. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  682. package/dist/reactivity/AsyncResult.d.ts +1 -1
  683. package/dist/reactivity/Atom.d.ts +5 -5
  684. package/dist/reactivity/Atom.d.ts.map +1 -1
  685. package/dist/reactivity/Atom.js +9 -5
  686. package/dist/reactivity/Atom.js.map +1 -1
  687. package/dist/reactivity/AtomHttpApi.d.ts +2 -2
  688. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  689. package/dist/reactivity/AtomRegistry.d.ts +8 -0
  690. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  691. package/dist/reactivity/AtomRegistry.js.map +1 -1
  692. package/dist/rpc/RpcClient.d.ts +21 -3
  693. package/dist/rpc/RpcClient.d.ts.map +1 -1
  694. package/dist/rpc/RpcClient.js +38 -20
  695. package/dist/rpc/RpcClient.js.map +1 -1
  696. package/dist/rpc/RpcServer.d.ts.map +1 -1
  697. package/dist/rpc/RpcServer.js +18 -21
  698. package/dist/rpc/RpcServer.js.map +1 -1
  699. package/dist/rpc/internal/tracing.d.ts +2 -0
  700. package/dist/rpc/internal/tracing.d.ts.map +1 -0
  701. package/dist/rpc/internal/tracing.js +18 -0
  702. package/dist/rpc/internal/tracing.js.map +1 -0
  703. package/dist/schema/SchemaCompiler/runtime.js +9 -1
  704. package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
  705. package/dist/sql/SqlClient.js +4 -4
  706. package/dist/sql/SqlClient.js.map +1 -1
  707. package/dist/sql/Statement.d.ts +21 -1
  708. package/dist/sql/Statement.d.ts.map +1 -1
  709. package/dist/sql/Statement.js +55 -7
  710. package/dist/sql/Statement.js.map +1 -1
  711. package/dist/testing/TestClock.d.ts +8 -0
  712. package/dist/testing/TestClock.d.ts.map +1 -1
  713. package/dist/testing/TestClock.js +7 -0
  714. package/dist/testing/TestClock.js.map +1 -1
  715. package/dist/testing/TestConsole.d.ts +7 -0
  716. package/dist/testing/TestConsole.d.ts.map +1 -1
  717. package/dist/testing/TestConsole.js +6 -0
  718. package/dist/testing/TestConsole.js.map +1 -1
  719. package/dist/testing/index.d.ts +3 -0
  720. package/dist/testing/index.d.ts.map +1 -1
  721. package/dist/testing/index.js +3 -0
  722. package/dist/testing/index.js.map +1 -1
  723. package/package.json +3 -3
  724. package/src/Array.ts +351 -3
  725. package/src/BigDecimal.ts +88 -0
  726. package/src/BigInt.ts +68 -0
  727. package/src/Boolean.ts +34 -0
  728. package/src/Brand.ts +10 -0
  729. package/src/ByteSize.ts +87 -0
  730. package/src/Cache.ts +50 -8
  731. package/src/Cause.ts +82 -0
  732. package/src/Channel.ts +368 -18
  733. package/src/ChannelSchema.ts +13 -0
  734. package/src/Chunk.ts +193 -0
  735. package/src/Clock.ts +7 -0
  736. package/src/Combiner.ts +10 -0
  737. package/src/Config.ts +82 -8
  738. package/src/ConfigProvider.ts +28 -0
  739. package/src/Console.ts +26 -0
  740. package/src/Context.ts +50 -0
  741. package/src/Cron.ts +32 -1
  742. package/src/Crypto.ts +5 -0
  743. package/src/Data.ts +13 -0
  744. package/src/DateTime.ts +171 -0
  745. package/src/Deferred.ts +51 -0
  746. package/src/Differ.ts +2 -0
  747. package/src/Duration.ts +90 -0
  748. package/src/Effect.ts +539 -5
  749. package/src/Effectable.ts +4 -0
  750. package/src/Equal.ts +12 -1
  751. package/src/Equivalence.ts +22 -0
  752. package/src/ErrorReporter.ts +36 -0
  753. package/src/ExecutionPlan.ts +58 -14
  754. package/src/Exit.ts +40 -0
  755. package/src/Fiber.ts +20 -0
  756. package/src/FiberHandle.ts +29 -4
  757. package/src/FiberMap.ts +38 -0
  758. package/src/FiberSet.ts +21 -0
  759. package/src/FileSystem.ts +16 -0
  760. package/src/Filter.ts +55 -0
  761. package/src/Formatter.ts +42 -1
  762. package/src/Function.ts +30 -0
  763. package/src/Graph.ts +317 -36
  764. package/src/HKT.ts +5 -0
  765. package/src/Hash.ts +15 -0
  766. package/src/HashMap.ts +91 -0
  767. package/src/HashRing.ts +18 -0
  768. package/src/HashSet.ts +53 -0
  769. package/src/Inspectable.ts +8 -0
  770. package/src/Iterable.ts +127 -0
  771. package/src/JsonPatch.ts +5 -0
  772. package/src/JsonPointer.ts +5 -0
  773. package/src/JsonSchema.ts +17 -0
  774. package/src/Latch.ts +14 -0
  775. package/src/Layer.ts +101 -1
  776. package/src/LayerMap.ts +7 -0
  777. package/src/LayerRef.ts +5 -0
  778. package/src/LogLevel.ts +20 -0
  779. package/src/Logger.ts +41 -5
  780. package/src/ManagedRuntime.ts +12 -1
  781. package/src/Match.ts +52 -0
  782. package/src/Metric.ts +69 -0
  783. package/src/MutableHashMap.ts +44 -0
  784. package/src/MutableHashSet.ts +17 -0
  785. package/src/MutableList.ts +21 -0
  786. package/src/MutableRef.ts +32 -0
  787. package/src/Newtype.ts +9 -0
  788. package/src/NonEmptyIterable.ts +4 -0
  789. package/src/Number.ts +61 -0
  790. package/src/Optic.ts +57 -0
  791. package/src/Option.ts +134 -0
  792. package/src/Order.ts +30 -0
  793. package/src/Ordering.ts +7 -0
  794. package/src/PartitionedSemaphore.ts +61 -22
  795. package/src/Path.ts +6 -0
  796. package/src/Pipeable.ts +7 -0
  797. package/src/PlatformError.ts +8 -0
  798. package/src/Pool.ts +20 -1
  799. package/src/Predicate.ts +85 -0
  800. package/src/PrimaryKey.ts +5 -0
  801. package/src/PubSub.ts +90 -9
  802. package/src/Pull.ts +20 -0
  803. package/src/Queue.ts +80 -10
  804. package/src/Random.ts +13 -0
  805. package/src/RcMap.ts +23 -0
  806. package/src/RcRef.ts +6 -0
  807. package/src/Record.ts +100 -0
  808. package/src/Redactable.ts +6 -0
  809. package/src/Redacted.ts +8 -0
  810. package/src/Reducer.ts +4 -0
  811. package/src/Ref.ts +42 -0
  812. package/src/References.ts +21 -0
  813. package/src/RegExp.ts +4 -0
  814. package/src/Request.ts +32 -0
  815. package/src/RequestResolver.ts +59 -10
  816. package/src/Resource.ts +7 -0
  817. package/src/Result.ts +93 -0
  818. package/src/Runtime.ts +10 -0
  819. package/src/Schedule.ts +61 -0
  820. package/src/Scheduler.ts +7 -0
  821. package/src/Schema.ts +499 -4
  822. package/src/SchemaAST.ts +115 -1
  823. package/src/SchemaGetter.ts +80 -4
  824. package/src/SchemaIssue.ts +34 -0
  825. package/src/SchemaParser.ts +26 -0
  826. package/src/SchemaRepresentation.ts +148 -0
  827. package/src/SchemaTransformation.ts +53 -0
  828. package/src/Scope.ts +19 -0
  829. package/src/ScopedCache.ts +55 -3
  830. package/src/ScopedRef.ts +9 -0
  831. package/src/Semaphore.ts +26 -0
  832. package/src/Sink.ts +126 -2
  833. package/src/StandardSchema.ts +1 -0
  834. package/src/Stdio.ts +7 -0
  835. package/src/Stream.ts +622 -15
  836. package/src/String.ts +87 -0
  837. package/src/Struct.ts +46 -0
  838. package/src/SubscriptionRef.ts +65 -0
  839. package/src/Symbol.ts +2 -0
  840. package/src/SynchronizedRef.ts +63 -0
  841. package/src/Take.ts +3 -0
  842. package/src/Terminal.ts +8 -0
  843. package/src/Tracer.ts +23 -0
  844. package/src/Trie.ts +68 -0
  845. package/src/Tuple.ts +38 -0
  846. package/src/TxChunk.ts +52 -0
  847. package/src/TxDeferred.ts +15 -0
  848. package/src/TxHashMap.ts +97 -6
  849. package/src/TxHashSet.ts +83 -3
  850. package/src/TxPriorityQueue.ts +34 -2
  851. package/src/TxPubSub.ts +26 -0
  852. package/src/TxQueue.ts +51 -0
  853. package/src/TxReentrantLock.ts +53 -36
  854. package/src/TxRef.ts +14 -0
  855. package/src/TxSemaphore.ts +47 -31
  856. package/src/TxSubscriptionRef.ts +25 -0
  857. package/src/Types.ts +36 -0
  858. package/src/UndefinedOr.ts +15 -0
  859. package/src/Unify.ts +15 -0
  860. package/src/Utils.ts +4 -0
  861. package/src/Version.ts +38 -0
  862. package/src/ai/Chat.ts +1 -1
  863. package/src/ai/DecisionModel.ts +42 -1
  864. package/src/ai/LanguageModel.ts +16 -19
  865. package/src/ai/McpServer.ts +107 -36
  866. package/src/ai/Telemetry.ts +62 -58
  867. package/src/ai/internal/mcpRuntime.ts +84 -43
  868. package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
  869. package/src/cluster/K8sHttpClient.ts +12 -2
  870. package/src/encoding/Base64.ts +4 -0
  871. package/src/encoding/Base64Url.ts +4 -0
  872. package/src/encoding/EncodingError.ts +5 -0
  873. package/src/encoding/Hex.ts +5 -0
  874. package/src/encoding/Toml.ts +2 -2
  875. package/src/encoding/Yaml.ts +8 -4
  876. package/src/encoding/index.ts +4 -0
  877. package/src/eventlog/SqlEventJournal.ts +18 -4
  878. package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
  879. package/src/http/Headers.ts +8 -2
  880. package/src/http/HttpClient.ts +44 -27
  881. package/src/http/HttpClientResponse.ts +3 -1
  882. package/src/http/HttpEffect.ts +11 -2
  883. package/src/http/HttpMiddleware.ts +60 -45
  884. package/src/http/HttpServer.ts +1 -1
  885. package/src/http/internal/tracing.ts +52 -0
  886. package/src/http-api/HttpApiBuilder.ts +5 -1
  887. package/src/http-api/HttpApiClient.ts +13 -4
  888. package/src/http-api/HttpApiError.ts +8 -4
  889. package/src/http-api/HttpApiSecurity.ts +8 -8
  890. package/src/index.ts +156 -0
  891. package/src/internal/arbitrary/array.ts +3 -3
  892. package/src/internal/arbitrary/model.ts +37 -14
  893. package/src/internal/arbitrary/runner.ts +7 -7
  894. package/src/internal/arbitrary/schema.ts +4 -3
  895. package/src/internal/effect.ts +47 -45
  896. package/src/internal/schedule.ts +23 -17
  897. package/src/internal/schema/standardSchema.ts +2 -2
  898. package/src/internal/version.ts +2 -0
  899. package/src/observability/OtlpExporter.ts +9 -6
  900. package/src/observability/OtlpLogger.ts +20 -21
  901. package/src/observability/OtlpMetrics.ts +34 -93
  902. package/src/observability/OtlpResource.ts +18 -27
  903. package/src/observability/OtlpTracer.ts +34 -40
  904. package/src/observability/internal/otlpProtobuf.ts +60 -0
  905. package/src/reactivity/AsyncResult.ts +1 -1
  906. package/src/reactivity/Atom.ts +10 -6
  907. package/src/reactivity/AtomHttpApi.ts +2 -4
  908. package/src/reactivity/AtomRegistry.ts +7 -0
  909. package/src/rpc/RpcClient.ts +48 -24
  910. package/src/rpc/RpcServer.ts +26 -24
  911. package/src/rpc/internal/tracing.ts +22 -0
  912. package/src/schema/SchemaCompiler/runtime.ts +4 -1
  913. package/src/sql/SqlClient.ts +4 -4
  914. package/src/sql/Statement.ts +59 -7
  915. package/src/testing/TestClock.ts +9 -0
  916. package/src/testing/TestConsole.ts +8 -0
  917. package/src/testing/index.ts +3 -0
@@ -39,6 +39,8 @@ import { OtlpSerialization } from "./OtlpSerialization.ts"
39
39
  *
40
40
  * `"delta"` reports changes since the last export. Each interval is independent with no dependency on previous measurements.
41
41
  *
42
+ * Summaries are always cumulative, regardless of this setting.
43
+ *
42
44
  * **Example** (Configuring aggregation temporality)
43
45
  *
44
46
  * ```ts import.meta.vitest
@@ -114,7 +116,6 @@ export const make: (options: {
114
116
  let previousCounterState = new Map<string, number | bigint>()
115
117
  let previousHistogramState = new Map<string, PreviousHistogramState>()
116
118
  let previousFrequencyState = new Map<string, Map<string, number>>()
117
- let previousSummaryState = new Map<string, PreviousSummaryState>()
118
119
  let snapshotSequence = 0
119
120
  let committedSnapshotSequence = -1
120
121
 
@@ -126,7 +127,6 @@ export const make: (options: {
126
127
  const nextCounterState = new Map(previousCounterState)
127
128
  const nextHistogramState = new Map(previousHistogramState)
128
129
  const nextFrequencyState = new Map(previousFrequencyState)
129
- const nextSummaryState = new Map(previousSummaryState)
130
130
  const metricData: Array<IMetric> = []
131
131
  const metricDataByName = new Map<string, IMetric>()
132
132
  const addMetricData = (data: IMetric) => {
@@ -144,7 +144,7 @@ export const make: (options: {
144
144
 
145
145
  for (let i = 0, len = snapshot.length; i < len; i++) {
146
146
  const state = snapshot[i]
147
- const unit = state.attributes?.unit ?? state.attributes?.time_unit ?? "1"
147
+ const unit = toUcumUnit(state.attributes?.unit ?? state.attributes?.time_unit)
148
148
  const attributes = state.attributes ? OtlpResource.entriesToAttributes(Object.entries(state.attributes)) : []
149
149
  const metricKey = makeMetricKey(state.id, state.attributes)
150
150
 
@@ -181,7 +181,7 @@ export const make: (options: {
181
181
  timeUnixNano: nowTime
182
182
  }
183
183
  if (typeof reportValue === "bigint") {
184
- dataPoint.asInt = Number(reportValue)
184
+ dataPoint.asInt = bigintToInt64(reportValue)
185
185
  } else {
186
186
  dataPoint.asDouble = reportValue
187
187
  }
@@ -209,7 +209,7 @@ export const make: (options: {
209
209
  timeUnixNano: nowTime
210
210
  }
211
211
  if (typeof state.state.value === "bigint") {
212
- dataPoint.asInt = Number(state.state.value)
212
+ dataPoint.asInt = bigintToInt64(state.state.value)
213
213
  } else {
214
214
  dataPoint.asDouble = state.state.value
215
215
  }
@@ -344,91 +344,25 @@ export const make: (options: {
344
344
  break
345
345
  }
346
346
  case "Summary": {
347
- // Quantiles are always computed fresh from the sliding window
348
- // They don't have temporality in the traditional sense
349
- const dataPoints: Array<INumberDataPoint> = [{
350
- attributes: [...attributes, { key: "quantile", value: { stringValue: "min" } }],
351
- startTimeUnixNano: intervalStartTime,
352
- timeUnixNano: nowTime,
353
- asDouble: state.state.min
354
- }]
355
- for (const [quantile, value] of state.state.quantiles) {
356
- dataPoints.push({
357
- attributes: [...attributes, { key: "quantile", value: { stringValue: quantile.toString() } }],
358
- startTimeUnixNano: intervalStartTime,
359
- timeUnixNano: nowTime,
360
- asDouble: value ?? 0
361
- })
362
- }
363
- dataPoints.push({
364
- attributes: [...attributes, { key: "quantile", value: { stringValue: "max" } }],
365
- startTimeUnixNano: intervalStartTime,
366
- timeUnixNano: nowTime,
367
- asDouble: state.state.max
368
- })
369
-
370
- let reportCount = state.state.count
371
- let reportSum = state.state.sum
372
-
373
- if (isDelta) {
374
- const previousState = previousSummaryState.get(metricKey)
375
- if (previousState !== undefined) {
376
- reportCount = state.state.count - previousState.count
377
- reportSum = state.state.sum - previousState.sum
378
- }
379
- nextSummaryState.set(metricKey, {
380
- count: state.state.count,
381
- sum: state.state.sum
382
- })
383
- }
384
-
385
- const countDataPoint: INumberDataPoint = {
347
+ // Count and sum are lifetime totals, so summaries are always cumulative
348
+ const dataPoint: ISummaryDataPoint = {
386
349
  attributes,
387
- startTimeUnixNano: intervalStartTime,
388
- timeUnixNano: nowTime,
389
- asInt: reportCount
390
- }
391
- const sumDataPoint: INumberDataPoint = {
392
- attributes,
393
- startTimeUnixNano: intervalStartTime,
350
+ startTimeUnixNano: startTime,
394
351
  timeUnixNano: nowTime,
395
- asDouble: reportSum
352
+ count: state.state.count,
353
+ sum: state.state.sum,
354
+ quantileValues: state.state.quantiles.flatMap(([quantile, value]) =>
355
+ value === undefined ? [] : [{ quantile, value }]
356
+ )
396
357
  }
397
-
398
- if (metricDataByName.has(`${state.id}_quantiles`)) {
399
- metricDataByName.get(`${state.id}_quantiles`)!.sum!.dataPoints.push(...dataPoints)
400
- metricDataByName.get(`${state.id}_count`)!.sum!.dataPoints.push(countDataPoint)
401
- metricDataByName.get(`${state.id}_sum`)!.sum!.dataPoints.push(sumDataPoint)
358
+ if (metricDataByName.has(state.id)) {
359
+ metricDataByName.get(state.id)!.summary!.dataPoints.push(dataPoint)
402
360
  } else {
403
361
  addMetricData({
404
- name: `${state.id}_quantiles`,
362
+ name: state.id,
405
363
  description: state.description!,
406
364
  unit,
407
- sum: {
408
- aggregationTemporality: aggregationTemporalityEnum,
409
- isMonotonic: false,
410
- dataPoints
411
- }
412
- })
413
- addMetricData({
414
- name: `${state.id}_count`,
415
- description: state.description!,
416
- unit: "1",
417
- sum: {
418
- aggregationTemporality: aggregationTemporalityEnum,
419
- isMonotonic: true,
420
- dataPoints: [countDataPoint]
421
- }
422
- })
423
- addMetricData({
424
- name: `${state.id}_sum`,
425
- description: state.description!,
426
- unit: "1",
427
- sum: {
428
- aggregationTemporality: aggregationTemporalityEnum,
429
- isMonotonic: true,
430
- dataPoints: [sumDataPoint]
431
- }
365
+ summary: { dataPoints: [dataPoint] }
432
366
  })
433
367
  }
434
368
  break
@@ -451,7 +385,6 @@ export const make: (options: {
451
385
  previousCounterState = nextCounterState
452
386
  previousHistogramState = nextHistogramState
453
387
  previousFrequencyState = nextFrequencyState
454
- previousSummaryState = nextSummaryState
455
388
  previousExportTimeNanos = nowNanos
456
389
  committedSnapshotSequence = currentSnapshotSequence
457
390
  })
@@ -567,6 +500,20 @@ const makeMetricKey = (id: string, attributes: Metric.Metric.AttributeSet | unde
567
500
  return `${id}:${JSON.stringify(sortedEntries)}`
568
501
  }
569
502
 
503
+ const ucumUnits = new Map([
504
+ ["nanoseconds", "ns"],
505
+ ["microseconds", "us"],
506
+ ["milliseconds", "ms"],
507
+ ["seconds", "s"],
508
+ ["bytes", "By"]
509
+ ])
510
+
511
+ const toUcumUnit = (unit: string | undefined): string => unit === undefined ? "1" : ucumUnits.get(unit) ?? unit
512
+
513
+ /** OTLP/JSON accepts int64 as a decimal string, which keeps values beyond 2^53 exact */
514
+ const bigintToInt64 = (value: bigint): number | string =>
515
+ Number.isSafeInteger(Number(value)) ? Number(value) : value.toString()
516
+
570
517
  /** Previous state for histogram delta computation */
571
518
  interface PreviousHistogramState {
572
519
  readonly count: number
@@ -576,12 +523,6 @@ interface PreviousHistogramState {
576
523
  readonly max: number
577
524
  }
578
525
 
579
- /** Previous state for summary delta computation */
580
- interface PreviousSummaryState {
581
- readonly count: number
582
- readonly sum: number
583
- }
584
-
585
526
  /** Properties of an InstrumentationScope. */
586
527
  interface IInstrumentationScope {
587
528
  /** InstrumentationScope name */
@@ -675,7 +616,7 @@ interface INumberDataPoint {
675
616
  /** NumberDataPoint asDouble */
676
617
  asDouble?: number | null
677
618
  /** NumberDataPoint asInt */
678
- asInt?: number
619
+ asInt?: number | string
679
620
  /** NumberDataPoint exemplars */
680
621
  exemplars?: Array<IExemplar>
681
622
  /** NumberDataPoint flags */
@@ -740,9 +681,9 @@ interface ISummaryDataPoint {
740
681
  /** SummaryDataPoint attributes */
741
682
  attributes?: Array<KeyValue>
742
683
  /** SummaryDataPoint startTimeUnixNano */
743
- startTimeUnixNano?: number
684
+ startTimeUnixNano?: Fixed64
744
685
  /** SummaryDataPoint timeUnixNano */
745
- timeUnixNano?: string
686
+ timeUnixNano?: Fixed64
746
687
  /** SummaryDataPoint count */
747
688
  count?: number
748
689
  /** SummaryDataPoint sum */
@@ -13,6 +13,7 @@ import * as Config from "../Config.ts"
13
13
  import * as Effect from "../Effect.ts"
14
14
  import { format } from "../Formatter.ts"
15
15
  import * as Schema from "../Schema.ts"
16
+ import * as Version from "../Version.ts"
16
17
 
17
18
  /**
18
19
  * OTLP resource metadata attached to exported logs, metrics, and traces.
@@ -28,46 +29,36 @@ export interface Resource {
28
29
  droppedAttributesCount: number
29
30
  }
30
31
 
32
+ const isBrowser = "window" in globalThis || "importScripts" in globalThis
33
+
31
34
  /**
32
35
  * Creates an OTLP resource from service metadata and additional attributes.
33
36
  *
34
37
  * **Details**
35
38
  *
36
- * The resource always includes `service.name`, includes `service.version` when
37
- * provided, and converts custom attributes into OTLP attribute values.
39
+ * Adds `telemetry.sdk.*` defaults and converts custom attributes to OTLP values.
40
+ * Custom attributes override SDK defaults; service options override matching
41
+ * attributes. Omitted service options add no service attributes.
38
42
  *
39
43
  * @stability unstable
40
44
  * @category constructors
41
45
  * @since 4.0.0
42
46
  */
43
47
  export const make = (options: {
44
- readonly serviceName: string
48
+ readonly serviceName?: string | undefined
45
49
  readonly serviceVersion?: string | undefined
46
50
  readonly attributes?: Record<string, unknown> | undefined
47
- }): Resource => {
48
- const resourceAttributes = options.attributes
49
- ? entriesToAttributes(Object.entries(options.attributes))
50
- : []
51
- resourceAttributes.push({
52
- key: "service.name",
53
- value: {
54
- stringValue: options.serviceName
55
- }
56
- })
57
- if (options.serviceVersion) {
58
- resourceAttributes.push({
59
- key: "service.version",
60
- value: {
61
- stringValue: options.serviceVersion
62
- }
63
- })
64
- }
65
-
66
- return {
67
- attributes: resourceAttributes,
68
- droppedAttributesCount: 0
69
- }
70
- }
51
+ }): Resource => ({
52
+ attributes: entriesToAttributes(Object.entries({
53
+ "telemetry.sdk.name": "effect",
54
+ "telemetry.sdk.language": isBrowser ? "webjs" : "nodejs",
55
+ "telemetry.sdk.version": Version.getCurrentVersion(),
56
+ ...options.attributes,
57
+ ...(options.serviceName ? { "service.name": options.serviceName } : undefined),
58
+ ...(options.serviceVersion ? { "service.version": options.serviceVersion } : undefined)
59
+ })),
60
+ droppedAttributesCount: 0
61
+ })
71
62
 
72
63
  /**
73
64
  * Creates an OTLP resource from explicit options and OpenTelemetry
@@ -26,6 +26,7 @@ import * as Option from "../Option.ts"
26
26
  import type * as Scope from "../Scope.ts"
27
27
  import * as Tracer from "../Tracer.ts"
28
28
  import type { ExtractTag } from "../Types.ts"
29
+ import * as Version from "../Version.ts"
29
30
  import * as OtlpEnv from "./internal/otlpEnv.ts"
30
31
  import * as Exporter from "./OtlpExporter.ts"
31
32
  import type { KeyValue, Resource } from "./OtlpResource.ts"
@@ -67,7 +68,8 @@ export const make: (
67
68
  const otelResource = yield* OtlpResource.fromConfig(options.resource)
68
69
  const serialization = yield* OtlpSerialization
69
70
  const scope: Scope = {
70
- name: OtlpResource.serviceNameUnsafe(otelResource)
71
+ name: "effect",
72
+ version: Version.getCurrentVersion()
71
73
  }
72
74
 
73
75
  const exporter = yield* Exporter.make({
@@ -295,53 +297,44 @@ const makeOtlpSpan = (self: SpanImpl): OtlpSpan => {
295
297
  if (status.exit._tag === "Success") {
296
298
  otelStatus = { code: StatusCode.Ok }
297
299
  } else if (Cause.hasInterruptsOnly(status.exit.cause)) {
298
- otelStatus = {
299
- code: StatusCode.Ok,
300
- message: "Interrupted"
301
- }
300
+ otelStatus = { code: StatusCode.Unset }
302
301
  attributes.push({
303
- key: "span.label",
304
- value: { stringValue: "⚠︎ Interrupted" }
305
- }, {
306
- key: "status.interrupted",
302
+ key: "effect.fiber.interrupted",
307
303
  value: { boolValue: true }
308
304
  })
309
305
  } else {
310
306
  const errors = Cause.prettyErrors(status.exit.cause, {
311
307
  includeCauseInStack: true
312
308
  })
313
- otelStatus = {
314
- code: StatusCode.Error
315
- }
316
- if (errors.length > 0) {
317
- otelStatus.message = errors[0].message
318
- for (const error of errors) {
319
- events.push({
320
- name: "exception",
321
- timeUnixNano: String(status.endTime),
322
- droppedAttributesCount: 0,
323
- attributes: [
324
- {
325
- "key": "exception.type",
326
- "value": {
327
- "stringValue": error.name
328
- }
329
- },
330
- {
331
- "key": "exception.message",
332
- "value": {
333
- "stringValue": error.message
334
- }
335
- },
336
- {
337
- "key": "exception.stacktrace",
338
- "value": {
339
- "stringValue": error.stack ?? "No stack trace available"
340
- }
309
+ otelStatus = errors.length > 0
310
+ ? { code: StatusCode.Error, message: errors[0].message }
311
+ : { code: StatusCode.Ok }
312
+ for (const error of errors) {
313
+ events.push({
314
+ name: "exception",
315
+ timeUnixNano: String(status.endTime),
316
+ droppedAttributesCount: 0,
317
+ attributes: [
318
+ {
319
+ "key": "exception.type",
320
+ "value": {
321
+ "stringValue": error.name
341
322
  }
342
- ]
343
- })
344
- }
323
+ },
324
+ {
325
+ "key": "exception.message",
326
+ "value": {
327
+ "stringValue": error.message
328
+ }
329
+ },
330
+ {
331
+ "key": "exception.stacktrace",
332
+ "value": {
333
+ "stringValue": error.stack ?? "No stack trace available"
334
+ }
335
+ }
336
+ ]
337
+ })
345
338
  }
346
339
  }
347
340
 
@@ -413,6 +406,7 @@ export interface ScopeSpan {
413
406
 
414
407
  interface Scope {
415
408
  readonly name: string
409
+ readonly version?: string
416
410
  }
417
411
 
418
412
  interface OtlpSpan {
@@ -493,6 +493,62 @@ export const encodeHistogram = (histogram: {
493
493
  Proto.varintField(2, histogram.aggregationTemporality)
494
494
  )
495
495
 
496
+ /**
497
+ * Encodes a SummaryDataPoint message.
498
+ *
499
+ * message SummaryDataPoint {
500
+ * repeated KeyValue attributes = 7;
501
+ * fixed64 start_time_unix_nano = 2;
502
+ * fixed64 time_unix_nano = 3;
503
+ * fixed64 count = 4;
504
+ * double sum = 5;
505
+ * repeated ValueAtQuantile quantile_values = 6;
506
+ * uint32 flags = 8;
507
+ * }
508
+ *
509
+ * message ValueAtQuantile {
510
+ * double quantile = 1;
511
+ * double value = 2;
512
+ * }
513
+ *
514
+ * @internal
515
+ */
516
+ export const encodeSummaryDataPoint = (point: {
517
+ readonly attributes: ReadonlyArray<KeyValue>
518
+ readonly startTimeUnixNano: string
519
+ readonly timeUnixNano: string
520
+ readonly count: string | number | bigint
521
+ readonly sum: number
522
+ readonly quantileValues: ReadonlyArray<{ readonly quantile: number; readonly value: number }>
523
+ readonly flags?: number | undefined
524
+ }): Uint8Array =>
525
+ Proto.concat(
526
+ Proto.fixed64Field(2, BigInt(point.startTimeUnixNano)),
527
+ Proto.fixed64Field(3, BigInt(point.timeUnixNano)),
528
+ Proto.fixed64Field(4, BigInt(point.count)),
529
+ Proto.doubleField(5, point.sum),
530
+ Proto.repeatedField(
531
+ 6,
532
+ point.quantileValues,
533
+ (q) => Proto.concat(Proto.doubleField(1, q.quantile), Proto.doubleField(2, q.value))
534
+ ),
535
+ Proto.repeatedField(7, point.attributes, encodeKeyValue),
536
+ point.flags !== undefined ? Proto.varintField(8, point.flags) : new Uint8Array(0)
537
+ )
538
+
539
+ /**
540
+ * Encodes a Summary message.
541
+ *
542
+ * message Summary {
543
+ * repeated SummaryDataPoint data_points = 1;
544
+ * }
545
+ *
546
+ * @internal
547
+ */
548
+ export const encodeSummary = (summary: {
549
+ readonly dataPoints: ReadonlyArray<Parameters<typeof encodeSummaryDataPoint>[0]>
550
+ }): Uint8Array => Proto.repeatedField(1, summary.dataPoints, encodeSummaryDataPoint)
551
+
496
552
  /**
497
553
  * Encodes a Metric message.
498
554
  *
@@ -518,6 +574,7 @@ export const encodeMetric = (metric: {
518
574
  readonly gauge?: Parameters<typeof encodeGauge>[0] | undefined
519
575
  readonly sum?: Parameters<typeof encodeSum>[0] | undefined
520
576
  readonly histogram?: Parameters<typeof encodeHistogram>[0] | undefined
577
+ readonly summary?: Parameters<typeof encodeSummary>[0] | undefined
521
578
  }): Uint8Array =>
522
579
  Proto.concat(
523
580
  Proto.stringField(1, metric.name),
@@ -531,6 +588,9 @@ export const encodeMetric = (metric: {
531
588
  : new Uint8Array(0),
532
589
  metric.histogram !== undefined
533
590
  ? Proto.messageField(9, encodeHistogram(metric.histogram))
591
+ : new Uint8Array(0),
592
+ metric.summary !== undefined
593
+ ? Proto.messageField(11, encodeSummary(metric.summary))
534
594
  : new Uint8Array(0)
535
595
  )
536
596
 
@@ -644,7 +644,7 @@ export const flatMap: {
644
644
  * @category combinators
645
645
  * @since 4.0.0
646
646
  */
647
- <A, E, B, E2>(f: (a: A, prev: Success<A, E>) => AsyncResult<A, E2>): (self: AsyncResult<A, E>) => AsyncResult<B, E | E2>
647
+ <A, E, B, E2>(f: (a: A, prev: Success<A, E>) => AsyncResult<B, E2>): (self: AsyncResult<A, E>) => AsyncResult<B, E | E2>
648
648
  /**
649
649
  * Maps the success value of an `AsyncResult` and flattens the result.
650
650
  *
@@ -818,7 +818,7 @@ export interface AtomRuntime<R, ER = never> extends Atom<AsyncResult.AsyncResult
818
818
  | ((
819
819
  get: AtomContext
820
820
  ) => Effect.Effect<SubscriptionRef.SubscriptionRef<A>, E, Scope.Scope | R | AtomRegistry | Reactivity.Reactivity>)
821
- ) => Writable<AsyncResult.AsyncResult<A, E>, A>
821
+ ) => Writable<AsyncResult.AsyncResult<A, E | ER>, A>
822
822
  }
823
823
 
824
824
  /**
@@ -2774,18 +2774,21 @@ export const batch: (f: () => void) => void = Registry.batch
2774
2774
  // -----------------------------------------------------------------------------
2775
2775
 
2776
2776
  /**
2777
- * Creates a browser-only signal atom that increments when the document becomes visible.
2777
+ * Creates a signal atom that increments when the document becomes visible.
2778
2778
  *
2779
2779
  * **Details**
2780
2780
  *
2781
2781
  * It listens for `visibilitychange` events on `window` and removes the listener
2782
- * when the atom is disposed.
2782
+ * when the atom is disposed. Without `window`, it stays at `0` and adds no listener.
2783
2783
  *
2784
2784
  * @stability unstable
2785
2785
  * @category constants
2786
2786
  * @since 4.0.0
2787
2787
  */
2788
2788
  export const windowFocusSignal: Atom<number> = readable((get) => {
2789
+ if (typeof window === "undefined") {
2790
+ return 0
2791
+ }
2789
2792
  let count = 0
2790
2793
  function update() {
2791
2794
  if (document.visibilityState === "visible") {
@@ -2825,8 +2828,8 @@ export const makeRefreshOnSignal = <_>(signal: Atom<_>) => <A extends Atom<any>>
2825
2828
  *
2826
2829
  * **Details**
2827
2830
  *
2828
- * This helper is browser-only because `windowFocusSignal` depends on `window` and
2829
- * `document.visibilityState`.
2831
+ * Without `window`, this helper does not trigger refreshes. Source atom updates
2832
+ * are still forwarded.
2830
2833
  *
2831
2834
  * @stability unstable
2832
2835
  * @category combinators
@@ -2991,7 +2994,8 @@ function updateSearchParams() {
2991
2994
  }
2992
2995
  }
2993
2996
  searchParamState.updates.clear()
2994
- const newUrl = `${window.location.pathname}?${searchParams.toString()}`
2997
+ const search = searchParams.toString()
2998
+ const newUrl = `${window.location.pathname}${search.length > 0 ? `?${search}` : ""}${window.location.hash}`
2995
2999
  window.history.pushState({}, "", newUrl)
2996
3000
  searchParamState.updating = false
2997
3001
  }
@@ -57,7 +57,7 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
57
57
  HttpApiGroup.Endpoints<Group>,
58
58
  EndpointIdentifier
59
59
  >,
60
- const ResponseMode extends HttpApiEndpoint.ClientResponseMode = HttpApiEndpoint.ClientResponseMode
60
+ const ResponseMode extends HttpApiEndpoint.ClientResponseMode = "decoded-only"
61
61
  >(
62
62
  group: GroupIdentifier,
63
63
  endpoint: EndpointIdentifier,
@@ -353,9 +353,7 @@ type ResponseByMode<
353
353
  Endpoint extends HttpApiEndpoint.Constraint,
354
354
  ResponseMode extends HttpApiEndpoint.ClientResponseMode
355
355
  > = HttpApiClient.Client.Response<
356
- Effect.Success<
357
- ReturnType<HttpApiClient.Client.Method<Extract<Endpoint, HttpApiEndpoint.ConstraintRequest>, never, never>>
358
- >,
356
+ HttpApiClient.SuccessType<Extract<Endpoint, HttpApiEndpoint.ConstraintRequest>["~Success"]>,
359
357
  ResponseMode
360
358
  >
361
359
 
@@ -71,11 +71,13 @@ export interface AtomRegistry {
71
71
  readonly scheduler: Scheduler
72
72
  readonly schedulerAsync: Scheduler
73
73
  readonly getNodes: () => ReadonlyMap<Atom.Atom<any> | string, Node<any>>
74
+ readonly ensureNode: <A>(atom: Atom.Atom<A>) => Node<A>
74
75
  readonly get: <A>(atom: Atom.Atom<A>) => A
75
76
  readonly mount: <A>(atom: Atom.Atom<A>) => () => void
76
77
  readonly refresh: <A>(atom: Atom.Atom<A>) => void
77
78
  readonly set: <R, W>(atom: Atom.Writable<R, W>, value: W) => void
78
79
  readonly setSerializable: (key: string, encoded: unknown) => void
80
+ readonly preloadedSerializable: Map<string, unknown>
79
81
  readonly modify: <R, W, A>(atom: Atom.Writable<R, W>, f: (_: R) => [returnValue: A, nextValue: W]) => A
80
82
  readonly update: <R, W>(atom: Atom.Writable<R, W>, f: (_: R) => W) => void
81
83
  readonly subscribe: <A>(atom: Atom.Atom<A>, f: (_: A) => void, options?: {
@@ -83,6 +85,7 @@ export interface AtomRegistry {
83
85
  }) => () => void
84
86
  readonly reset: () => void
85
87
  readonly dispose: () => void
88
+ scheduleNodeRemoval(node: Node<any>): void
86
89
  onNodeAdded?: ((node: Node<any>) => void) | undefined
87
90
  onNodeRemoved?: ((node: Node<any>) => void) | undefined
88
91
  }
@@ -102,10 +105,14 @@ export interface AtomRegistry {
102
105
  export interface Node<A> {
103
106
  readonly atom: Atom.Atom<A>
104
107
  readonly value: () => A
108
+ readonly valueOption: () => Option.Option<A>
109
+ readonly canBeRemoved: boolean
105
110
  parents: Set<Node<any>>
106
111
  children: Set<Node<any>>
107
112
  listeners: Set<() => void>
108
113
  currentState(): "uninitialized" | "stale" | "valid" | "removed"
114
+ setInitialValue(value: A): void
115
+ subscribe(listener: () => void): () => void
109
116
  }
110
117
 
111
118
  /**