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
@@ -54,13 +54,13 @@ function rebuild<A>(
54
54
  }
55
55
  if (index >= elementStart) itemShrinks ??= children[index].shrinks?.()
56
56
  if (itemShrinks !== undefined) {
57
- return Effect.matchEffect(itemShrinks, {
58
- onFailure: () => {
57
+ return Effect.matchCauseEffect(itemShrinks, {
58
+ onFailure: Model.onTypedFailure(() => {
59
59
  itemShrinks = undefined
60
60
  removable = undefined
61
61
  index++
62
62
  return loop()
63
- },
63
+ }),
64
64
  onSuccess: (item): Effect.Effect<Model.Attempt<Array<A>>> => {
65
65
  if (item._tag === "Discarded") return Effect.succeed(item)
66
66
  return Effect.succeed(rebuild(InternalArray.replaceAt(children, index, item), shape, index))
@@ -1,12 +1,32 @@
1
- import type * as Cause from "../../Cause.ts"
1
+ import * as Cause from "../../Cause.ts"
2
2
  import * as Effect from "../../Effect.ts"
3
3
  import * as Option from "../../Option.ts"
4
+ import * as Result from "../../Result.ts"
4
5
  import * as InternalArray from "../array.ts"
5
6
  import { done } from "../core.ts"
6
7
 
7
8
  /** @internal */
8
9
  export type ShrinkPull<A> = Effect.Effect<A, Cause.Done>
9
10
 
11
+ /**
12
+ * Builds a cause handler that recovers typed failures, or propagates only
13
+ * defects and interruptions, preserving their original annotations.
14
+ *
15
+ * @internal
16
+ */
17
+ export const onTypedFailure = <E, A, E2, R>(
18
+ f: (error: E) => Effect.Effect<A, E2, R>
19
+ ) =>
20
+ (cause: Cause.Cause<E>): Effect.Effect<A, E2, R> => {
21
+ if (!cause.reasons.every(Cause.isFailReason)) {
22
+ return Effect.failCause(Cause.fromReasons<never>(cause.reasons.filter(
23
+ (reason): reason is Cause.Die | Cause.Interrupt => reason._tag !== "Fail"
24
+ )))
25
+ }
26
+ const error = Cause.findError(cause)
27
+ return Result.isFailure(error) ? Effect.failCause(error.failure) : f(error.success)
28
+ }
29
+
10
30
  /** @internal */
11
31
  export interface Sample<out A> {
12
32
  readonly _tag: "Generated"
@@ -129,10 +149,13 @@ export function concatPulls<A>(pulls: ReadonlyArray<ShrinkPull<A>>): ShrinkPull<
129
149
  Effect.suspend(() =>
130
150
  index >= pulls.length
131
151
  ? done()
132
- : Effect.catch(pulls[index], () => {
133
- index++
134
- return loop()
135
- })
152
+ : Effect.catchCause(
153
+ pulls[index],
154
+ onTypedFailure(() => {
155
+ index++
156
+ return loop()
157
+ })
158
+ )
136
159
  )
137
160
  return loop()
138
161
  }
@@ -182,11 +205,11 @@ export function retain<A>(sample: Sample<A>): Retained<A> {
182
205
  return Effect.suspend(() => {
183
206
  if (history !== undefined && index < history.length) return Effect.succeed(history[index++])
184
207
  if (ended) return done()
185
- return Effect.matchEffect(source, {
186
- onFailure: () => {
208
+ return Effect.matchCauseEffect(source, {
209
+ onFailure: onTypedFailure(() => {
187
210
  ended = true
188
211
  return done()
189
- },
212
+ }),
190
213
  onSuccess: (attempt) => {
191
214
  const item = attempt._tag === "Discarded" ? attempt : retain(attempt)
192
215
  history ??= []
@@ -288,11 +311,11 @@ function filterMapPull<A, B>(
288
311
  Effect.suspend(() => {
289
312
  const current = stack[stack.length - 1]
290
313
  if (current === undefined) return done()
291
- return Effect.matchEffect(current, {
292
- onFailure: () => {
314
+ return Effect.matchCauseEffect(current, {
315
+ onFailure: onTypedFailure(() => {
293
316
  stack.pop()
294
317
  return loop()
295
- },
318
+ }),
296
319
  onSuccess: (attempt) => {
297
320
  if (attempt._tag === "Discarded") return Effect.succeed<Attempt<B>>(attempt)
298
321
  const sample = attempt
@@ -318,11 +341,11 @@ function filterPull<A>(source: ShrinkPull<Attempt<A>>, predicate: (value: A) =>
318
341
  Effect.suspend(() => {
319
342
  const current = stack[stack.length - 1]
320
343
  if (current === undefined) return done()
321
- return Effect.matchEffect(current, {
322
- onFailure: () => {
344
+ return Effect.matchCauseEffect(current, {
345
+ onFailure: onTypedFailure(() => {
323
346
  stack.pop()
324
347
  return loop()
325
- },
348
+ }),
326
349
  onSuccess: (attempt) => {
327
350
  if (attempt._tag === "Discarded") return Effect.succeed<Attempt<A>>(attempt)
328
351
  const sample = attempt
@@ -383,11 +383,11 @@ function flatMapSourcePull<A, B>(
383
383
  Effect.suspend(() => {
384
384
  const current = stack[stack.length - 1]
385
385
  if (current === undefined) return done()
386
- return Effect.matchEffect(current, {
387
- onFailure: () => {
386
+ return Effect.matchCauseEffect(current, {
387
+ onFailure: Model.onTypedFailure(() => {
388
388
  stack.pop()
389
389
  return loop()
390
- },
390
+ }),
391
391
  onSuccess: (sourceAttempt) => {
392
392
  if (sourceAttempt._tag === "Discarded") return Effect.succeed<Model.Attempt<B>>(sourceAttempt)
393
393
  const sourceSample = sourceAttempt
@@ -505,14 +505,14 @@ const evaluateProperty = <A, E, R>(
505
505
  ): Effect.Effect<typeof passedProperty | PropertyFailure<E>, never, R> => {
506
506
  const output = property(value)
507
507
  if (!Effect.isEffect(output)) return Effect.succeed(output === true ? passedProperty : returnedFalse)
508
- return Effect.matchEager(output, {
509
- onFailure: (error): PropertyError<E> => ({ _tag: "PropertyError", error }),
510
- onSuccess: (success) => success === true ? passedProperty : returnedFalse
508
+ return Effect.matchCauseEffectEager(output, {
509
+ onFailure: Model.onTypedFailure((error: E) => Effect.succeed<PropertyError<E>>({ _tag: "PropertyError", error })),
510
+ onSuccess: (success) => Effect.succeed(success === true ? passedProperty : returnedFalse)
511
511
  })
512
512
  }
513
513
 
514
514
  const pullNext = <A>(pull: Model.ShrinkPull<Model.Attempt<A>>): Effect.Effect<Model.Attempt<A> | undefined> =>
515
- Effect.catch(pull, () => Effect.succeed(undefined))
515
+ Effect.catchCause(pull, Model.onTypedFailure(() => Effect.succeed(undefined)))
516
516
 
517
517
  const shrink = Effect.fnUntraced(function*<A, E, R>(
518
518
  initial: Model.Sample<A>,
@@ -30,10 +30,11 @@ interface Checks {
30
30
 
31
31
  const infinity = Number.POSITIVE_INFINITY
32
32
  const finiteNumberConstraint: FilterConstraint = { number: "finite" }
33
- const optionMatch = { onFailure: Option.none, onSuccess: Option.some }
34
-
35
33
  const optionComputation = <A, E, R>(self: Effect.Effect<A, E, R>): Model.Computation<Option.Option<A>> => {
36
- const result = Effect.matchEager(self, optionMatch) as Effect.Effect<Option.Option<A>>
34
+ const result = Effect.matchCauseEffectEager(self, {
35
+ onFailure: Model.onTypedFailure(() => Effect.succeedNone),
36
+ onSuccess: Effect.succeedSome
37
+ }) as Effect.Effect<Option.Option<A>>
37
38
  return effectIsExit(result) && result._tag === "Success" ? result.value : result
38
39
  }
39
40
 
@@ -345,6 +345,8 @@ export const causePrettyError = (
345
345
  error = new globalThis.Error(
346
346
  !original ? `Unknown error: ${original}` : kind === "string" ? original as any : formatJson(original)
347
347
  )
348
+ const stack = `${error.name}: ${error.message}`
349
+ error.stack = annotations ? addStackAnnotations(stack, annotations) : stack
348
350
  }
349
351
  return error
350
352
  }
@@ -629,44 +631,46 @@ export class FiberImpl<A = any, E = any> implements Fiber.Fiber<A, E> {
629
631
  this.currentOpCount = 0
630
632
  try {
631
633
  while (true) {
632
- if (this._deferredInterrupt) {
633
- this._deferredInterrupt = false
634
- current = failCause(this._interruptedCause!) as any
635
- }
636
- this.currentOpCount++
637
- // Refresh the cache because a primitive can replace the fiber context.
638
- const cache = this.cache
639
- if (
640
- !yielding &&
641
- !cache.preventYield &&
642
- cache.scheduler.shouldYield(this as any)
643
- ) {
644
- yielding = true
645
- const prev = current
646
- current = flatMap(yieldNow, () => prev as any) as any
647
- }
648
- current = cache.tracerContext
649
- ? cache.tracerContext(current as any, this)
650
- : (current as any)[evaluate](this)
651
- if (current === Yield) {
652
- const yielded = this._yielded!
653
- if (ExitTypeId in yielded) {
634
+ try {
635
+ if (this._deferredInterrupt) {
654
636
  this._deferredInterrupt = false
655
- this._yielded = undefined
656
- return yielded
657
- } else if (this._deferredInterrupt) {
658
- this._yielded = undefined
659
- yielded()
660
- continue
637
+ current = failCause(this._interruptedCause!) as any
638
+ }
639
+ this.currentOpCount++
640
+ // Refresh the cache because a primitive can replace the fiber context.
641
+ const cache = this.cache
642
+ if (
643
+ !yielding &&
644
+ !cache.preventYield &&
645
+ cache.scheduler.shouldYield(this as any)
646
+ ) {
647
+ yielding = true
648
+ const prev = current
649
+ current = flatMap(yieldNow, () => prev as any) as any
650
+ }
651
+ current = cache.tracerContext
652
+ ? cache.tracerContext(current as any, this)
653
+ : (current as any)[evaluate](this)
654
+ if (current === Yield) {
655
+ const yielded = this._yielded!
656
+ if (ExitTypeId in yielded) {
657
+ this._deferredInterrupt = false
658
+ this._yielded = undefined
659
+ return yielded
660
+ } else if (this._deferredInterrupt) {
661
+ this._yielded = undefined
662
+ yielded()
663
+ continue
664
+ }
665
+ return Yield
666
+ }
667
+ } catch (error) {
668
+ if (!hasProperty(current, evaluate)) {
669
+ return exitDie(`Fiber.runLoop: Not a valid effect: ${String(current)}`)
661
670
  }
662
- return Yield
671
+ current = exitDie(error) as any
663
672
  }
664
673
  }
665
- } catch (error) {
666
- if (!hasProperty(current, evaluate)) {
667
- return exitDie(`Fiber.runLoop: Not a valid effect: ${String(current)}`)
668
- }
669
- return this.runLoop(exitDie(error) as any)
670
674
  } finally {
671
675
  this._running = prevRunning
672
676
  ;(globalThis as any)[currentFiberTypeId] = prevFiber
@@ -3928,10 +3932,8 @@ export const scopeTag: Context.Service<Scope.Scope, Scope.Scope> = Context.Servi
3928
3932
  /** @internal */
3929
3933
  export const scopeClose = <A, E>(self: Scope.Scope, exit_: Exit.Exit<A, E>) =>
3930
3934
  withFiber((fiber) => {
3931
- const close = scopeCloseUnsafe(self, exit_)
3932
- if (close === undefined) return void_
3933
3935
  fiberEnterUninterruptibleUnsafe(fiber)
3934
- return close
3936
+ return scopeCloseUnsafe(self, exit_) ?? void_
3935
3937
  })
3936
3938
 
3937
3939
  /** @internal */
@@ -5524,6 +5526,10 @@ export const forkUnsafe = <FA, FE, A, E, R>(
5524
5526
  const parentRuntime = parent as FiberImpl<FA, FE>
5525
5527
  const interruptible = uninterruptible === "inherit" ? parentRuntime.interruptible : !uninterruptible
5526
5528
  const child = new FiberImpl<A, E>(parentRuntime.context, interruptible)
5529
+ if (!daemon) {
5530
+ parentRuntime.children().add(child)
5531
+ child._parent = parentRuntime
5532
+ }
5527
5533
  if (immediate) {
5528
5534
  child.evaluate(effect as any)
5529
5535
  } else {
@@ -5531,10 +5537,6 @@ export const forkUnsafe = <FA, FE, A, E, R>(
5531
5537
  child._asyncContext = captureAsyncContext()
5532
5538
  parentRuntime.currentDispatcher.scheduleTask(() => child.evaluate(effect as any), 0)
5533
5539
  }
5534
- if (!daemon && !child._exit) {
5535
- parentRuntime.children().add(child)
5536
- child._parent = parentRuntime
5537
- }
5538
5540
  return child
5539
5541
  }
5540
5542
 
@@ -5711,9 +5713,9 @@ export const fiberRunIn: {
5711
5713
  self.interruptUnsafe(self.id)
5712
5714
  return self
5713
5715
  }
5714
- const key = {}
5715
- scopeAddFinalizerUnsafe(scope, key, () => fiberInterrupt(self))
5716
- self.addObserver(() => scopeRemoveFinalizerUnsafe(scope, key))
5716
+ scopeRemoveFinalizerUnsafe(scope, self)
5717
+ scopeAddFinalizerUnsafe(scope, self, () => fiberInterrupt(self))
5718
+ self.addObserver(() => scopeRemoveFinalizerUnsafe(scope, self))
5717
5719
  return self
5718
5720
  })
5719
5721
 
@@ -6026,7 +6028,7 @@ export const makeSpanUnsafe = <XA, XE>(
6026
6028
  links,
6027
6029
  startTime: timingEnabled ? clock.currentTimeNanosUnsafe() : bigint0,
6028
6030
  kind: options?.kind ?? "internal",
6029
- root: options?.root ?? Option.isNone(parent),
6031
+ root: options?.root ?? false,
6030
6032
  sampled: options?.sampled ??
6031
6033
  (Option.isSome(parent) && parent.value.sampled === false
6032
6034
  ? false
@@ -3,12 +3,16 @@ import type { Effect, Repeat, Retry } from "../Effect.ts"
3
3
  import { constant, constTrue, dual, identity } from "../Function.ts"
4
4
  import * as Option from "../Option.ts"
5
5
  import * as Pull from "../Pull.ts"
6
+ import * as Result from "../Result.ts"
6
7
  import * as Schedule from "../Schedule.ts"
7
8
  import type { NoInfer } from "../Types.ts"
8
9
  import { internalCall } from "../Utils.ts"
9
10
  import * as core from "./core.ts"
10
11
  import * as effect from "./effect.ts"
11
12
 
13
+ const findErrorOnly = <E>(cause: Cause.Cause<E>): Result.Result<E, Cause.Cause<never>> =>
14
+ cause.reasons.every(core.isFailReason) ? effect.findError(cause) : Result.fail(cause as Cause.Cause<never>)
15
+
12
16
  /** @internal */
13
17
  export const repeatOrElse: {
14
18
  <R2, A, B, E, E2, E3, R3>(
@@ -29,21 +33,22 @@ export const repeatOrElse: {
29
33
  ): Effect<B, E3, R | R2 | R3> =>
30
34
  effect.flatMap(Schedule.toStepWithMetadata(schedule), (step) => {
31
35
  let meta = Schedule.CurrentMetadata.defaultValue()
32
- return effect.catch_(
33
- effect.forever(
34
- effect.tap(
35
- effect.flatMap(effect.suspend(() => effect.provideService(self, Schedule.CurrentMetadata, meta)), step),
36
- (meta_) =>
37
- effect.sync(() => {
38
- meta = meta_
39
- })
36
+ return effect.catchCauseFilter(
37
+ Pull.catchDone(
38
+ effect.forever(
39
+ effect.tap(
40
+ effect.flatMap(effect.suspend(() => effect.provideService(self, Schedule.CurrentMetadata, meta)), step),
41
+ (meta_) =>
42
+ effect.sync(() => {
43
+ meta = meta_
44
+ })
45
+ ),
46
+ { disableYield: true }
40
47
  ),
41
- { disableYield: true }
48
+ (out) => effect.succeed(out as B)
42
49
  ),
43
- (error) =>
44
- core.isDone(error)
45
- ? effect.succeed(error.value as B)
46
- : orElse(error as E | E2, meta.attempt === 0 ? Option.none() : Option.some(meta as any))
50
+ findErrorOnly,
51
+ (error) => orElse(error, meta.attempt === 0 ? Option.none() : Option.some(meta as any))
47
52
  )
48
53
  }))
49
54
 
@@ -66,8 +71,9 @@ export const retryOrElse: {
66
71
  effect.flatMap(Schedule.toStepWithMetadata(policy), (step) => {
67
72
  let meta = Schedule.CurrentMetadata.defaultValue()
68
73
  let lastError!: E
69
- const loop: Effect<A, E1 | Cause.Done<A1>, R | R1> = effect.catch_(
74
+ const loop: Effect<A, E1 | Cause.Done<A1>, R | R1> = effect.catchCauseFilter(
70
75
  effect.suspend(() => effect.provideService(self, Schedule.CurrentMetadata, meta)),
76
+ findErrorOnly,
71
77
  (error) => {
72
78
  lastError = error
73
79
  return effect.flatMap(step(error), (meta_) => {
@@ -198,7 +204,7 @@ export const scheduleFrom = dual<
198
204
  effect.flatMap(Schedule.toStepWithMetadata(schedule), (step) => {
199
205
  let meta = Schedule.CurrentMetadata.defaultValue()
200
206
  const selfWithMeta = effect.suspend(() => effect.provideService(self, Schedule.CurrentMetadata, meta))
201
- return effect.catch_(
207
+ return Pull.catchDone(
202
208
  effect.flatMap(
203
209
  step(initial),
204
210
  (meta_) => {
@@ -210,10 +216,10 @@ export const scheduleFrom = dual<
210
216
  step(meta_) {
211
217
  meta = meta_
212
218
  }
213
- }) as Effect<never, E, R | Env>
219
+ }) as Effect<never, E | Error | Cause.Done<Output>, R | Env>
214
220
  }
215
221
  ),
216
- (error) => core.isDone(error) ? effect.succeed(error.value as Output) : effect.fail(error as E | Error)
222
+ (out) => effect.succeed(out as Output)
217
223
  )
218
224
  }))
219
225
 
@@ -53,7 +53,7 @@ export function toStandardSchemaV1<S extends Schema.ConstraintDecoder<unknown>>(
53
53
  })
54
54
  })
55
55
  }
56
- if ("~standard" in self) {
56
+ if (Object.hasOwn(self, "~standard")) {
57
57
  const out = self as any
58
58
  if ("validate" in out["~standard"]) return out
59
59
  Object.assign(out["~standard"], { validate })
@@ -109,7 +109,7 @@ export function toStandardJSONSchemaV1<S extends Schema.Constraint>(
109
109
  return toBaseStandardJSONSchemaV1(SchemaAST.toType(self.ast), options.target)
110
110
  }
111
111
  }
112
- if ("~standard" in self) {
112
+ if (Object.hasOwn(self, "~standard")) {
113
113
  const out = self as any
114
114
  if ("jsonSchema" in out["~standard"]) return out
115
115
  Object.assign(out["~standard"], { jsonSchema })
@@ -0,0 +1,2 @@
1
+ /** @internal */
2
+ export const version = "4.0.2"
@@ -26,6 +26,7 @@ import * as Num from "../Number.ts"
26
26
  import * as Option from "../Option.ts"
27
27
  import * as Schedule from "../Schedule.ts"
28
28
  import * as Scope from "../Scope.ts"
29
+ import * as Version from "../Version.ts"
29
30
 
30
31
  const retryAfterDelay = (value: string | undefined): Effect.Effect<Duration.Duration> => {
31
32
  const seconds = Option.fromUndefinedOr(value).pipe(Option.flatMap(Num.parse))
@@ -194,12 +195,14 @@ export const make: (
194
195
  HttpClient.retryTransient({ schedule: policy, times: 3 })
195
196
  )
196
197
 
197
- let headers = Headers.fromRecordUnsafe({
198
- "user-agent": `effect-opentelemetry-${options.label}/0.0.0`
199
- })
200
- if (options.headers) {
201
- headers = Headers.merge(Headers.fromInput(options.headers), headers)
202
- }
198
+ const exporterUserAgent = `OTel-OTLP-Exporter-JavaScript-Effect-${options.label}/${Version.getCurrentVersion()}`
199
+ const userHeaders = Headers.fromInput(options.headers)
200
+ const userAgent = userHeaders["user-agent"]
201
+ const headers = Headers.set(
202
+ userHeaders,
203
+ "user-agent",
204
+ userAgent ? `${userAgent} ${exporterUserAgent}` : exporterUserAgent
205
+ )
203
206
 
204
207
  const request = HttpClientRequest.post(options.url, { headers })
205
208
  let buffer: Array<any> = []
@@ -23,6 +23,7 @@ import type * as LogLevel from "../LogLevel.ts"
23
23
  import * as Option from "../Option.ts"
24
24
  import { CurrentLogAnnotations, CurrentLogSpans } from "../References.ts"
25
25
  import type * as Scope from "../Scope.ts"
26
+ import * as Version from "../Version.ts"
26
27
  import * as OtlpEnv from "./internal/otlpEnv.ts"
27
28
  import * as Exporter from "./OtlpExporter.ts"
28
29
  import type { AnyValue, Fixed64, KeyValue, Resource } from "./OtlpResource.ts"
@@ -64,7 +65,8 @@ export const make: (
64
65
  const serialization = yield* OtlpSerialization
65
66
  const otelResource = yield* OtlpResource.fromConfig(options.resource)
66
67
  const scope: IInstrumentationScope = {
67
- name: OtlpResource.serviceNameUnsafe(otelResource)
68
+ name: "effect",
69
+ version: Version.getCurrentVersion()
68
70
  }
69
71
 
70
72
  const exporter = yield* Exporter.make({
@@ -192,32 +194,29 @@ export interface LogsData {
192
194
 
193
195
  // internal
194
196
 
197
+ const nanosPerMilli = BigInt(1_000_000)
198
+
195
199
  const makeLogRecord = (options: Logger.Options<unknown>, opts: {
196
200
  readonly excludeLogSpans: boolean
197
201
  readonly clock: Clock
198
202
  }): ILogRecord => {
199
- const now = opts.clock.currentTimeNanosUnsafe()
200
- const nanosString = now.toString()
201
- const nowMillis = options.date.getTime()
203
+ const observedTime = opts.clock.currentTimeNanosUnsafe().toString()
204
+ const eventMillis = options.date.getTime()
205
+ const eventTime = (BigInt(eventMillis) * nanosPerMilli).toString()
202
206
 
203
- const attributes = OtlpResource.entriesToAttributes(Object.entries(options.fiber.getRef(CurrentLogAnnotations)))
204
- attributes.push({
205
- key: "fiberId",
206
- value: { intValue: options.fiber.id }
207
- })
207
+ const attributes: Record<string, unknown> = { ...options.fiber.getRef(CurrentLogAnnotations) }
208
+ attributes["effect.fiberId"] = options.fiber.id
208
209
  if (!opts.excludeLogSpans) {
210
+ // Outermost spans win duplicate labels.
209
211
  for (const [label, startTime] of options.fiber.getRef(CurrentLogSpans)) {
210
- attributes.push({
211
- key: `logSpan.${label}`,
212
- value: { stringValue: `${nowMillis - startTime}ms` }
213
- })
212
+ attributes[`effect.log_span.${label}`] = eventMillis - startTime
214
213
  }
215
214
  }
216
- if (options.cause.reasons.length > 0) {
217
- attributes.push({
218
- key: "log.error",
219
- value: { stringValue: Cause.pretty(options.cause) }
220
- })
215
+ const errors = Cause.prettyErrors(options.cause, { includeCauseInStack: true })
216
+ if (errors.length > 0) {
217
+ attributes["exception.type"] = errors[0].name
218
+ attributes["exception.message"] = errors[0].message
219
+ attributes["exception.stacktrace"] = errors.map((error) => error.stack).join("\n")
221
220
  }
222
221
 
223
222
  const message = Arr.ensure(options.message)
@@ -225,9 +224,9 @@ const makeLogRecord = (options: Logger.Options<unknown>, opts: {
225
224
  const logRecord: ILogRecord = {
226
225
  severityNumber: logLevelToSeverityNumber(options.logLevel),
227
226
  severityText: options.logLevel,
228
- timeUnixNano: nanosString,
229
- observedTimeUnixNano: nanosString,
230
- attributes,
227
+ timeUnixNano: eventTime,
228
+ observedTimeUnixNano: observedTime,
229
+ attributes: OtlpResource.entriesToAttributes(Object.entries(attributes)),
231
230
  body: OtlpResource.unknownToAttributeValue(message.length === 1 ? message[0] : message),
232
231
  droppedAttributesCount: 0
233
232
  }