effect 4.0.0 → 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 (1001) 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 +47 -23
  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 +61 -1
  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 +677 -22
  99. package/dist/Effect.d.ts.map +1 -1
  100. package/dist/Effect.js +251 -10
  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 +22 -5
  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 +28 -5
  297. package/dist/Pool.d.ts.map +1 -1
  298. package/dist/Pool.js +42 -42
  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 +24 -1
  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 +50 -19
  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 +603 -6
  444. package/dist/Stream.d.ts.map +1 -1
  445. package/dist/Stream.js +316 -57
  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 +8 -0
  557. package/dist/ai/LanguageModel.d.ts.map +1 -1
  558. package/dist/ai/LanguageModel.js +27 -15
  559. package/dist/ai/LanguageModel.js.map +1 -1
  560. package/dist/ai/McpSchema.d.ts +508 -508
  561. package/dist/ai/McpSchema.d.ts.map +1 -1
  562. package/dist/ai/McpSchema.js +1 -1
  563. package/dist/ai/McpSchema.js.map +1 -1
  564. package/dist/ai/McpServer.d.ts +32 -11
  565. package/dist/ai/McpServer.d.ts.map +1 -1
  566. package/dist/ai/McpServer.js +224 -172
  567. package/dist/ai/McpServer.js.map +1 -1
  568. package/dist/ai/Response.d.ts.map +1 -1
  569. package/dist/ai/Response.js +22 -12
  570. package/dist/ai/Response.js.map +1 -1
  571. package/dist/ai/Telemetry.d.ts +49 -41
  572. package/dist/ai/Telemetry.d.ts.map +1 -1
  573. package/dist/ai/Telemetry.js +6 -8
  574. package/dist/ai/Telemetry.js.map +1 -1
  575. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -0
  576. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  577. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -0
  578. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  579. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +1 -0
  580. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  581. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +1 -0
  582. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  583. package/dist/ai/internal/mcpRuntime.js +79 -46
  584. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  585. package/dist/ai/internal/mcpSchema/v2024_11_05.js +3 -1
  586. package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
  587. package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
  588. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  589. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  590. package/dist/cluster/ClusterWorkflowEngine.js +11 -2
  591. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  592. package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
  593. package/dist/cluster/K8sHttpClient.js +5 -2
  594. package/dist/cluster/K8sHttpClient.js.map +1 -1
  595. package/dist/cluster/Sharding.d.ts.map +1 -1
  596. package/dist/cluster/Sharding.js +14 -7
  597. package/dist/cluster/Sharding.js.map +1 -1
  598. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  599. package/dist/cluster/SqlMessageStorage.js +21 -12
  600. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  601. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  602. package/dist/cluster/SqlRunnerStorage.js +30 -44
  603. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  604. package/dist/cluster/internal/entityManager.js +63 -62
  605. package/dist/cluster/internal/entityManager.js.map +1 -1
  606. package/dist/cluster/internal/interruptors.js +8 -0
  607. package/dist/cluster/internal/interruptors.js.map +1 -1
  608. package/dist/cluster/internal/resourceMap.js +39 -14
  609. package/dist/cluster/internal/resourceMap.js.map +1 -1
  610. package/dist/cluster/internal/resourceRef.js +168 -87
  611. package/dist/cluster/internal/resourceRef.js.map +1 -1
  612. package/dist/encoding/Base64.d.ts +4 -0
  613. package/dist/encoding/Base64.d.ts.map +1 -1
  614. package/dist/encoding/Base64.js +4 -0
  615. package/dist/encoding/Base64.js.map +1 -1
  616. package/dist/encoding/Base64Url.d.ts +4 -0
  617. package/dist/encoding/Base64Url.d.ts.map +1 -1
  618. package/dist/encoding/Base64Url.js +4 -0
  619. package/dist/encoding/Base64Url.js.map +1 -1
  620. package/dist/encoding/EncodingError.d.ts +4 -0
  621. package/dist/encoding/EncodingError.d.ts.map +1 -1
  622. package/dist/encoding/EncodingError.js +4 -0
  623. package/dist/encoding/EncodingError.js.map +1 -1
  624. package/dist/encoding/Hex.d.ts +5 -0
  625. package/dist/encoding/Hex.d.ts.map +1 -1
  626. package/dist/encoding/Hex.js +5 -0
  627. package/dist/encoding/Hex.js.map +1 -1
  628. package/dist/encoding/Toml.js +2 -2
  629. package/dist/encoding/Toml.js.map +1 -1
  630. package/dist/encoding/Yaml.d.ts.map +1 -1
  631. package/dist/encoding/Yaml.js +6 -4
  632. package/dist/encoding/Yaml.js.map +1 -1
  633. package/dist/encoding/index.d.ts +4 -0
  634. package/dist/encoding/index.d.ts.map +1 -1
  635. package/dist/encoding/index.js +4 -0
  636. package/dist/encoding/index.js.map +1 -1
  637. package/dist/eventlog/SqlEventJournal.js +8 -4
  638. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  639. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
  640. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  641. package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
  642. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  643. package/dist/http/Headers.d.ts +3 -1
  644. package/dist/http/Headers.d.ts.map +1 -1
  645. package/dist/http/Headers.js +4 -2
  646. package/dist/http/Headers.js.map +1 -1
  647. package/dist/http/HttpClient.d.ts +9 -0
  648. package/dist/http/HttpClient.d.ts.map +1 -1
  649. package/dist/http/HttpClient.js +40 -21
  650. package/dist/http/HttpClient.js.map +1 -1
  651. package/dist/http/HttpClientResponse.js +3 -1
  652. package/dist/http/HttpClientResponse.js.map +1 -1
  653. package/dist/http/HttpEffect.d.ts +3 -0
  654. package/dist/http/HttpEffect.d.ts.map +1 -1
  655. package/dist/http/HttpEffect.js +5 -2
  656. package/dist/http/HttpEffect.js.map +1 -1
  657. package/dist/http/HttpMiddleware.d.ts +17 -0
  658. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  659. package/dist/http/HttpMiddleware.js +58 -40
  660. package/dist/http/HttpMiddleware.js.map +1 -1
  661. package/dist/http/HttpServer.d.ts +1 -1
  662. package/dist/http/HttpServer.d.ts.map +1 -1
  663. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  664. package/dist/http/HttpStaticServer.js +14 -0
  665. package/dist/http/HttpStaticServer.js.map +1 -1
  666. package/dist/http/HttpTraceContext.d.ts +1 -1
  667. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  668. package/dist/http/HttpTraceContext.js +4 -4
  669. package/dist/http/HttpTraceContext.js.map +1 -1
  670. package/dist/http/internal/tracing.d.ts +2 -0
  671. package/dist/http/internal/tracing.d.ts.map +1 -0
  672. package/dist/http/internal/tracing.js +37 -0
  673. package/dist/http/internal/tracing.js.map +1 -0
  674. package/dist/http-api/HttpApiBuilder.js +2 -1
  675. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  676. package/dist/http-api/HttpApiClient.d.ts +12 -3
  677. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  678. package/dist/http-api/HttpApiClient.js.map +1 -1
  679. package/dist/http-api/HttpApiError.d.ts +4 -2
  680. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  681. package/dist/http-api/HttpApiError.js +7 -3
  682. package/dist/http-api/HttpApiError.js.map +1 -1
  683. package/dist/http-api/HttpApiSecurity.d.ts +8 -8
  684. package/dist/http-api/HttpApiSecurity.js +8 -8
  685. package/dist/index.d.ts +155 -0
  686. package/dist/index.d.ts.map +1 -1
  687. package/dist/index.js +155 -0
  688. package/dist/index.js.map +1 -1
  689. package/dist/internal/arbitrary/array.js +3 -3
  690. package/dist/internal/arbitrary/array.js.map +1 -1
  691. package/dist/internal/arbitrary/model.js +26 -11
  692. package/dist/internal/arbitrary/model.js.map +1 -1
  693. package/dist/internal/arbitrary/runner.js +8 -8
  694. package/dist/internal/arbitrary/runner.js.map +1 -1
  695. package/dist/internal/arbitrary/schema.js +4 -5
  696. package/dist/internal/arbitrary/schema.js.map +1 -1
  697. package/dist/internal/core.js +43 -2
  698. package/dist/internal/core.js.map +1 -1
  699. package/dist/internal/dateTime.js +1 -1
  700. package/dist/internal/dateTime.js.map +1 -1
  701. package/dist/internal/effect.js +104 -120
  702. package/dist/internal/effect.js.map +1 -1
  703. package/dist/internal/rcRef.js +59 -23
  704. package/dist/internal/rcRef.js.map +1 -1
  705. package/dist/internal/schedule.js +7 -5
  706. package/dist/internal/schedule.js.map +1 -1
  707. package/dist/internal/schema/fromJsonSchemaDocument.js +11 -8
  708. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  709. package/dist/internal/schema/standardSchema.js +2 -2
  710. package/dist/internal/schema/standardSchema.js.map +1 -1
  711. package/dist/internal/version.d.ts +2 -0
  712. package/dist/internal/version.d.ts.map +1 -0
  713. package/dist/internal/version.js +3 -0
  714. package/dist/internal/version.js.map +1 -0
  715. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  716. package/dist/observability/OtlpExporter.js +5 -6
  717. package/dist/observability/OtlpExporter.js.map +1 -1
  718. package/dist/observability/OtlpLogger.d.ts.map +1 -1
  719. package/dist/observability/OtlpLogger.js +23 -27
  720. package/dist/observability/OtlpLogger.js.map +1 -1
  721. package/dist/observability/OtlpMetrics.d.ts +5 -3
  722. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  723. package/dist/observability/OtlpMetrics.js +21 -94
  724. package/dist/observability/OtlpMetrics.js.map +1 -1
  725. package/dist/observability/OtlpResource.d.ts +4 -3
  726. package/dist/observability/OtlpResource.d.ts.map +1 -1
  727. package/dist/observability/OtlpResource.js +20 -23
  728. package/dist/observability/OtlpResource.js.map +1 -1
  729. package/dist/observability/OtlpTracer.d.ts +1 -0
  730. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  731. package/dist/observability/OtlpTracer.js +32 -36
  732. package/dist/observability/OtlpTracer.js.map +1 -1
  733. package/dist/observability/internal/otlpProtobuf.js +32 -1
  734. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  735. package/dist/reactivity/AsyncResult.d.ts +1 -1
  736. package/dist/reactivity/Atom.d.ts +5 -5
  737. package/dist/reactivity/Atom.d.ts.map +1 -1
  738. package/dist/reactivity/Atom.js +9 -5
  739. package/dist/reactivity/Atom.js.map +1 -1
  740. package/dist/reactivity/AtomHttpApi.d.ts +2 -2
  741. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  742. package/dist/reactivity/AtomRegistry.d.ts +8 -0
  743. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  744. package/dist/reactivity/AtomRegistry.js.map +1 -1
  745. package/dist/rpc/RpcClient.d.ts +21 -3
  746. package/dist/rpc/RpcClient.d.ts.map +1 -1
  747. package/dist/rpc/RpcClient.js +58 -34
  748. package/dist/rpc/RpcClient.js.map +1 -1
  749. package/dist/rpc/RpcServer.d.ts.map +1 -1
  750. package/dist/rpc/RpcServer.js +20 -23
  751. package/dist/rpc/RpcServer.js.map +1 -1
  752. package/dist/rpc/Utils.d.ts +2 -3
  753. package/dist/rpc/Utils.d.ts.map +1 -1
  754. package/dist/rpc/Utils.js +3 -4
  755. package/dist/rpc/Utils.js.map +1 -1
  756. package/dist/rpc/internal/tracing.d.ts +2 -0
  757. package/dist/rpc/internal/tracing.d.ts.map +1 -0
  758. package/dist/rpc/internal/tracing.js +18 -0
  759. package/dist/rpc/internal/tracing.js.map +1 -0
  760. package/dist/schema/SchemaCompiler/runtime.js +9 -1
  761. package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
  762. package/dist/sql/SqlClient.js +4 -4
  763. package/dist/sql/SqlClient.js.map +1 -1
  764. package/dist/sql/Statement.d.ts +21 -1
  765. package/dist/sql/Statement.d.ts.map +1 -1
  766. package/dist/sql/Statement.js +55 -7
  767. package/dist/sql/Statement.js.map +1 -1
  768. package/dist/testing/TestClock.d.ts +8 -0
  769. package/dist/testing/TestClock.d.ts.map +1 -1
  770. package/dist/testing/TestClock.js +7 -0
  771. package/dist/testing/TestClock.js.map +1 -1
  772. package/dist/testing/TestConsole.d.ts +7 -0
  773. package/dist/testing/TestConsole.d.ts.map +1 -1
  774. package/dist/testing/TestConsole.js +6 -0
  775. package/dist/testing/TestConsole.js.map +1 -1
  776. package/dist/testing/index.d.ts +3 -0
  777. package/dist/testing/index.d.ts.map +1 -1
  778. package/dist/testing/index.js +3 -0
  779. package/dist/testing/index.js.map +1 -1
  780. package/dist/workflow/WorkflowEngine.d.ts +2 -0
  781. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  782. package/dist/workflow/WorkflowEngine.js +1 -0
  783. package/dist/workflow/WorkflowEngine.js.map +1 -1
  784. package/package.json +3 -3
  785. package/src/Array.ts +351 -3
  786. package/src/BigDecimal.ts +88 -0
  787. package/src/BigInt.ts +68 -0
  788. package/src/Boolean.ts +34 -0
  789. package/src/Brand.ts +10 -0
  790. package/src/ByteSize.ts +87 -0
  791. package/src/Cache.ts +72 -24
  792. package/src/Cause.ts +83 -1
  793. package/src/Channel.ts +368 -18
  794. package/src/ChannelSchema.ts +13 -0
  795. package/src/Chunk.ts +193 -0
  796. package/src/Clock.ts +7 -0
  797. package/src/Combiner.ts +10 -0
  798. package/src/Config.ts +82 -8
  799. package/src/ConfigProvider.ts +28 -0
  800. package/src/Console.ts +26 -0
  801. package/src/Context.ts +50 -0
  802. package/src/Cron.ts +32 -1
  803. package/src/Crypto.ts +5 -0
  804. package/src/Data.ts +13 -0
  805. package/src/DateTime.ts +171 -0
  806. package/src/Deferred.ts +51 -0
  807. package/src/Differ.ts +2 -0
  808. package/src/Duration.ts +90 -0
  809. package/src/Effect.ts +692 -27
  810. package/src/Effectable.ts +4 -0
  811. package/src/Equal.ts +12 -1
  812. package/src/Equivalence.ts +22 -0
  813. package/src/ErrorReporter.ts +36 -0
  814. package/src/ExecutionPlan.ts +58 -14
  815. package/src/Exit.ts +40 -0
  816. package/src/Fiber.ts +20 -0
  817. package/src/FiberHandle.ts +29 -4
  818. package/src/FiberMap.ts +38 -0
  819. package/src/FiberSet.ts +21 -0
  820. package/src/FileSystem.ts +16 -0
  821. package/src/Filter.ts +55 -0
  822. package/src/Formatter.ts +42 -1
  823. package/src/Function.ts +30 -0
  824. package/src/Graph.ts +317 -36
  825. package/src/HKT.ts +5 -0
  826. package/src/Hash.ts +15 -0
  827. package/src/HashMap.ts +91 -0
  828. package/src/HashRing.ts +32 -5
  829. package/src/HashSet.ts +53 -0
  830. package/src/Inspectable.ts +8 -0
  831. package/src/Iterable.ts +127 -0
  832. package/src/JsonPatch.ts +5 -0
  833. package/src/JsonPointer.ts +5 -0
  834. package/src/JsonSchema.ts +17 -0
  835. package/src/Latch.ts +14 -0
  836. package/src/Layer.ts +101 -1
  837. package/src/LayerMap.ts +7 -0
  838. package/src/LayerRef.ts +5 -0
  839. package/src/LogLevel.ts +20 -0
  840. package/src/Logger.ts +41 -5
  841. package/src/ManagedRuntime.ts +12 -1
  842. package/src/Match.ts +52 -0
  843. package/src/Metric.ts +69 -0
  844. package/src/MutableHashMap.ts +44 -0
  845. package/src/MutableHashSet.ts +17 -0
  846. package/src/MutableList.ts +21 -0
  847. package/src/MutableRef.ts +32 -0
  848. package/src/Newtype.ts +9 -0
  849. package/src/NonEmptyIterable.ts +4 -0
  850. package/src/Number.ts +61 -0
  851. package/src/Optic.ts +57 -0
  852. package/src/Option.ts +134 -0
  853. package/src/Order.ts +30 -0
  854. package/src/Ordering.ts +7 -0
  855. package/src/PartitionedSemaphore.ts +61 -22
  856. package/src/Path.ts +6 -0
  857. package/src/Pipeable.ts +7 -0
  858. package/src/PlatformError.ts +8 -0
  859. package/src/Pool.ts +48 -37
  860. package/src/Predicate.ts +85 -0
  861. package/src/PrimaryKey.ts +5 -0
  862. package/src/PubSub.ts +90 -9
  863. package/src/Pull.ts +20 -0
  864. package/src/Queue.ts +80 -10
  865. package/src/Random.ts +13 -0
  866. package/src/RcMap.ts +49 -2
  867. package/src/RcRef.ts +6 -0
  868. package/src/Record.ts +100 -0
  869. package/src/Redactable.ts +6 -0
  870. package/src/Redacted.ts +8 -0
  871. package/src/Reducer.ts +4 -0
  872. package/src/Ref.ts +42 -0
  873. package/src/References.ts +21 -0
  874. package/src/RegExp.ts +4 -0
  875. package/src/Request.ts +32 -0
  876. package/src/RequestResolver.ts +59 -10
  877. package/src/Resource.ts +7 -0
  878. package/src/Result.ts +93 -0
  879. package/src/Runtime.ts +10 -0
  880. package/src/Schedule.ts +61 -0
  881. package/src/Scheduler.ts +7 -0
  882. package/src/Schema.ts +499 -4
  883. package/src/SchemaAST.ts +115 -1
  884. package/src/SchemaGetter.ts +80 -4
  885. package/src/SchemaIssue.ts +34 -0
  886. package/src/SchemaParser.ts +26 -0
  887. package/src/SchemaRepresentation.ts +148 -0
  888. package/src/SchemaTransformation.ts +53 -0
  889. package/src/Scope.ts +19 -0
  890. package/src/ScopedCache.ts +82 -19
  891. package/src/ScopedRef.ts +9 -0
  892. package/src/Semaphore.ts +26 -0
  893. package/src/Sink.ts +126 -2
  894. package/src/StandardSchema.ts +1 -0
  895. package/src/Stdio.ts +7 -0
  896. package/src/Stream.ts +780 -103
  897. package/src/String.ts +87 -0
  898. package/src/Struct.ts +46 -0
  899. package/src/SubscriptionRef.ts +65 -0
  900. package/src/Symbol.ts +2 -0
  901. package/src/SynchronizedRef.ts +63 -0
  902. package/src/Take.ts +3 -0
  903. package/src/Terminal.ts +8 -0
  904. package/src/Tracer.ts +23 -0
  905. package/src/Trie.ts +68 -0
  906. package/src/Tuple.ts +38 -0
  907. package/src/TxChunk.ts +52 -0
  908. package/src/TxDeferred.ts +15 -0
  909. package/src/TxHashMap.ts +97 -6
  910. package/src/TxHashSet.ts +83 -3
  911. package/src/TxPriorityQueue.ts +34 -2
  912. package/src/TxPubSub.ts +26 -0
  913. package/src/TxQueue.ts +51 -0
  914. package/src/TxReentrantLock.ts +53 -36
  915. package/src/TxRef.ts +14 -0
  916. package/src/TxSemaphore.ts +47 -31
  917. package/src/TxSubscriptionRef.ts +25 -0
  918. package/src/Types.ts +36 -0
  919. package/src/UndefinedOr.ts +15 -0
  920. package/src/Unify.ts +15 -0
  921. package/src/Utils.ts +4 -0
  922. package/src/Version.ts +38 -0
  923. package/src/ai/Chat.ts +1 -1
  924. package/src/ai/DecisionModel.ts +42 -1
  925. package/src/ai/LanguageModel.ts +43 -21
  926. package/src/ai/McpSchema.ts +3 -3
  927. package/src/ai/McpServer.ts +119 -39
  928. package/src/ai/Response.ts +27 -12
  929. package/src/ai/Telemetry.ts +62 -58
  930. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -0
  931. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -0
  932. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +1 -0
  933. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +1 -0
  934. package/src/ai/internal/mcpRuntime.ts +84 -43
  935. package/src/ai/internal/mcpSchema/v2024_11_05.ts +4 -2
  936. package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
  937. package/src/cluster/ClusterWorkflowEngine.ts +18 -4
  938. package/src/cluster/K8sHttpClient.ts +12 -2
  939. package/src/cluster/Sharding.ts +24 -24
  940. package/src/cluster/SqlMessageStorage.ts +26 -13
  941. package/src/cluster/SqlRunnerStorage.ts +85 -113
  942. package/src/cluster/internal/entityManager.ts +68 -80
  943. package/src/cluster/internal/interruptors.ts +13 -0
  944. package/src/cluster/internal/resourceMap.ts +55 -17
  945. package/src/cluster/internal/resourceRef.ts +189 -96
  946. package/src/encoding/Base64.ts +4 -0
  947. package/src/encoding/Base64Url.ts +4 -0
  948. package/src/encoding/EncodingError.ts +5 -0
  949. package/src/encoding/Hex.ts +5 -0
  950. package/src/encoding/Toml.ts +2 -2
  951. package/src/encoding/Yaml.ts +8 -4
  952. package/src/encoding/index.ts +4 -0
  953. package/src/eventlog/SqlEventJournal.ts +18 -4
  954. package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
  955. package/src/http/Headers.ts +8 -2
  956. package/src/http/HttpClient.ts +44 -27
  957. package/src/http/HttpClientResponse.ts +3 -1
  958. package/src/http/HttpEffect.ts +11 -2
  959. package/src/http/HttpMiddleware.ts +67 -46
  960. package/src/http/HttpServer.ts +1 -1
  961. package/src/http/HttpStaticServer.ts +16 -0
  962. package/src/http/HttpTraceContext.ts +8 -4
  963. package/src/http/internal/tracing.ts +52 -0
  964. package/src/http-api/HttpApiBuilder.ts +5 -1
  965. package/src/http-api/HttpApiClient.ts +13 -4
  966. package/src/http-api/HttpApiError.ts +8 -3
  967. package/src/http-api/HttpApiSecurity.ts +8 -8
  968. package/src/index.ts +156 -0
  969. package/src/internal/arbitrary/array.ts +3 -3
  970. package/src/internal/arbitrary/model.ts +37 -14
  971. package/src/internal/arbitrary/runner.ts +7 -7
  972. package/src/internal/arbitrary/schema.ts +4 -3
  973. package/src/internal/core.ts +56 -2
  974. package/src/internal/dateTime.ts +3 -1
  975. package/src/internal/effect.ts +156 -156
  976. package/src/internal/rcRef.ts +83 -33
  977. package/src/internal/schedule.ts +23 -17
  978. package/src/internal/schema/fromJsonSchemaDocument.ts +5 -3
  979. package/src/internal/schema/standardSchema.ts +2 -2
  980. package/src/internal/version.ts +2 -0
  981. package/src/observability/OtlpExporter.ts +9 -6
  982. package/src/observability/OtlpLogger.ts +20 -21
  983. package/src/observability/OtlpMetrics.ts +34 -93
  984. package/src/observability/OtlpResource.ts +18 -27
  985. package/src/observability/OtlpTracer.ts +34 -40
  986. package/src/observability/internal/otlpProtobuf.ts +60 -0
  987. package/src/reactivity/AsyncResult.ts +1 -1
  988. package/src/reactivity/Atom.ts +10 -6
  989. package/src/reactivity/AtomHttpApi.ts +2 -4
  990. package/src/reactivity/AtomRegistry.ts +7 -0
  991. package/src/rpc/RpcClient.ts +74 -46
  992. package/src/rpc/RpcServer.ts +28 -25
  993. package/src/rpc/Utils.ts +4 -10
  994. package/src/rpc/internal/tracing.ts +22 -0
  995. package/src/schema/SchemaCompiler/runtime.ts +4 -1
  996. package/src/sql/SqlClient.ts +4 -4
  997. package/src/sql/Statement.ts +59 -7
  998. package/src/testing/TestClock.ts +9 -0
  999. package/src/testing/TestConsole.ts +8 -0
  1000. package/src/testing/index.ts +3 -0
  1001. package/src/workflow/WorkflowEngine.ts +4 -0
@@ -11,6 +11,7 @@
11
11
  * @since 4.0.0
12
12
  */
13
13
  import * as Arr from "../Array.ts"
14
+ import * as Context from "../Context.ts"
14
15
  import * as Effect from "../Effect.ts"
15
16
  import * as Layer from "../Layer.ts"
16
17
  import * as PubSub from "../PubSub.ts"
@@ -18,12 +19,22 @@ import * as RcMap from "../RcMap.ts"
18
19
  import * as Schema from "../Schema.ts"
19
20
  import * as SchemaTransformation from "../SchemaTransformation.ts"
20
21
  import type * as Scope from "../Scope.ts"
22
+ import * as Semaphore from "../Semaphore.ts"
21
23
  import * as SqlClient from "../sql/SqlClient.ts"
22
24
  import * as SqlError from "../sql/SqlError.ts"
23
25
  import * as Stream from "../Stream.ts"
24
26
  import { Entry, EntryId, makeRemoteIdUnsafe, RemoteEntry, type RemoteId } from "./EventJournal.ts"
25
27
  import * as EventLogServerUnencrypted from "./EventLogServerUnencrypted.ts"
26
28
 
29
+ let storageIdCounter = 0
30
+ const withTracerDisabled = Effect.withTracerEnabled(false)
31
+
32
+ type StorageOptions = {
33
+ readonly entryTablePrefix?: string
34
+ readonly remoteIdTable?: string
35
+ readonly insertBatchSize?: number
36
+ }
37
+
27
38
  /**
28
39
  * Creates unencrypted event-log server `Storage` backed by SQL.
29
40
  *
@@ -37,59 +48,54 @@ import * as EventLogServerUnencrypted from "./EventLogServerUnencrypted.ts"
37
48
  * @category constructors
38
49
  * @since 4.0.0
39
50
  */
40
- export const makeStorage = (options?: {
41
- readonly entryTablePrefix?: string
42
- readonly remoteIdTable?: string
43
- readonly insertBatchSize?: number
44
- }): Effect.Effect<
51
+ export const makeStorage = Effect.fnUntraced(function*(options?: StorageOptions): Effect.fn.Return<
45
52
  EventLogServerUnencrypted.Storage["Service"],
46
53
  SqlError.SqlError,
47
54
  SqlClient.SqlClient | Scope.Scope
48
- > =>
49
- Effect.gen(function*() {
50
- const sql = (yield* SqlClient.SqlClient).withoutTransforms()
51
-
52
- const entriesTable = options?.entryTablePrefix ?? "effect_events"
53
- const remoteIdTable = options?.remoteIdTable ?? "effect_remote_id"
54
- const insertBatchSize = options?.insertBatchSize ?? 200
55
- const storesTable = `${entriesTable}_stores`
56
- const sessionAuthBindingsTable = `${entriesTable}_session_auth_bindings`
57
-
58
- const remoteIdTableSql = sql(remoteIdTable)
59
- const entriesTableSql = sql(entriesTable)
60
- const storesTableSql = sql(storesTable)
61
- const sessionAuthBindingsTableSql = sql(sessionAuthBindingsTable)
62
-
63
- yield* sql.onDialectOrElse({
64
- pg: () =>
65
- sql`
55
+ > {
56
+ const sql = (yield* SqlClient.SqlClient).withoutTransforms()
57
+
58
+ const entriesTable = options?.entryTablePrefix ?? "effect_events"
59
+ const remoteIdTable = options?.remoteIdTable ?? "effect_remote_id"
60
+ const insertBatchSize = options?.insertBatchSize ?? 200
61
+ const storesTable = `${entriesTable}_stores`
62
+ const sessionAuthBindingsTable = `${entriesTable}_session_auth_bindings`
63
+
64
+ const remoteIdTableSql = sql(remoteIdTable)
65
+ const entriesTableSql = sql(entriesTable)
66
+ const storesTableSql = sql(storesTable)
67
+ const sessionAuthBindingsTableSql = sql(sessionAuthBindingsTable)
68
+
69
+ yield* sql.onDialectOrElse({
70
+ pg: () =>
71
+ sql`
66
72
  CREATE TABLE IF NOT EXISTS ${remoteIdTableSql} (
67
73
  singleton INT PRIMARY KEY,
68
74
  remote_id BYTEA NOT NULL
69
75
  )`,
70
- mysql: () =>
71
- sql`
76
+ mysql: () =>
77
+ sql`
72
78
  CREATE TABLE IF NOT EXISTS ${remoteIdTableSql} (
73
79
  singleton INT PRIMARY KEY,
74
80
  remote_id BINARY(16) NOT NULL
75
81
  )`,
76
- mssql: () =>
77
- sql`
82
+ mssql: () =>
83
+ sql`
78
84
  CREATE TABLE IF NOT EXISTS ${remoteIdTableSql} (
79
85
  singleton INT PRIMARY KEY,
80
86
  remote_id VARBINARY(16) NOT NULL
81
87
  )`,
82
- orElse: () =>
83
- sql`
88
+ orElse: () =>
89
+ sql`
84
90
  CREATE TABLE IF NOT EXISTS ${remoteIdTableSql} (
85
91
  singleton INTEGER PRIMARY KEY,
86
92
  remote_id BLOB NOT NULL
87
93
  )`
88
- })
94
+ })
89
95
 
90
- yield* sql.onDialectOrElse({
91
- pg: () =>
92
- sql`
96
+ yield* sql.onDialectOrElse({
97
+ pg: () =>
98
+ sql`
93
99
  CREATE TABLE IF NOT EXISTS ${entriesTableSql} (
94
100
  store_id TEXT NOT NULL,
95
101
  sequence BIGINT NOT NULL,
@@ -100,8 +106,8 @@ export const makeStorage = (options?: {
100
106
  PRIMARY KEY (store_id, sequence),
101
107
  UNIQUE (store_id, entry_id)
102
108
  )`,
103
- mysql: () =>
104
- sql`
109
+ mysql: () =>
110
+ sql`
105
111
  CREATE TABLE IF NOT EXISTS ${entriesTableSql} (
106
112
  store_id VARCHAR(191) NOT NULL,
107
113
  sequence BIGINT NOT NULL,
@@ -112,8 +118,8 @@ export const makeStorage = (options?: {
112
118
  PRIMARY KEY (store_id, sequence),
113
119
  UNIQUE (store_id, entry_id)
114
120
  )`,
115
- mssql: () =>
116
- sql`
121
+ mssql: () =>
122
+ sql`
117
123
  CREATE TABLE IF NOT EXISTS ${entriesTableSql} (
118
124
  store_id NVARCHAR(191) NOT NULL,
119
125
  sequence BIGINT NOT NULL,
@@ -124,8 +130,8 @@ export const makeStorage = (options?: {
124
130
  PRIMARY KEY (store_id, sequence),
125
131
  UNIQUE (store_id, entry_id)
126
132
  )`,
127
- orElse: () =>
128
- sql`
133
+ orElse: () =>
134
+ sql`
129
135
  CREATE TABLE IF NOT EXISTS ${entriesTableSql} (
130
136
  store_id TEXT NOT NULL,
131
137
  sequence INTEGER NOT NULL,
@@ -136,116 +142,161 @@ export const makeStorage = (options?: {
136
142
  PRIMARY KEY (store_id, sequence),
137
143
  UNIQUE (store_id, entry_id)
138
144
  )`
139
- })
145
+ })
140
146
 
141
- yield* sql.onDialectOrElse({
142
- pg: () =>
143
- sql`
147
+ yield* sql.onDialectOrElse({
148
+ pg: () =>
149
+ sql`
144
150
  CREATE TABLE IF NOT EXISTS ${storesTableSql} (
145
151
  store_id TEXT PRIMARY KEY,
146
152
  next_sequence BIGINT NOT NULL
147
153
  )`,
148
- mysql: () =>
149
- sql`
154
+ mysql: () =>
155
+ sql`
150
156
  CREATE TABLE IF NOT EXISTS ${storesTableSql} (
151
157
  store_id VARCHAR(191) PRIMARY KEY,
152
158
  next_sequence BIGINT NOT NULL
153
159
  )`,
154
- mssql: () =>
155
- sql`
160
+ mssql: () =>
161
+ sql`
156
162
  CREATE TABLE IF NOT EXISTS ${storesTableSql} (
157
163
  store_id NVARCHAR(191) PRIMARY KEY,
158
164
  next_sequence BIGINT NOT NULL
159
165
  )`,
160
- orElse: () =>
161
- sql`
166
+ orElse: () =>
167
+ sql`
162
168
  CREATE TABLE IF NOT EXISTS ${storesTableSql} (
163
169
  store_id TEXT PRIMARY KEY,
164
170
  next_sequence INTEGER NOT NULL
165
171
  )`
166
- })
172
+ })
167
173
 
168
- yield* sql.onDialectOrElse({
169
- pg: () =>
170
- sql`
174
+ yield* sql.onDialectOrElse({
175
+ pg: () =>
176
+ sql`
171
177
  CREATE TABLE IF NOT EXISTS ${sessionAuthBindingsTableSql} (
172
178
  public_key TEXT PRIMARY KEY,
173
179
  signing_public_key BYTEA NOT NULL
174
180
  )`,
175
- mysql: () =>
176
- sql`
181
+ mysql: () =>
182
+ sql`
177
183
  CREATE TABLE IF NOT EXISTS ${sessionAuthBindingsTableSql} (
178
184
  public_key VARCHAR(191) PRIMARY KEY,
179
185
  signing_public_key BINARY(32) NOT NULL
180
186
  )`,
181
- mssql: () =>
182
- sql`
187
+ mssql: () =>
188
+ sql`
183
189
  CREATE TABLE IF NOT EXISTS ${sessionAuthBindingsTableSql} (
184
190
  public_key NVARCHAR(191) PRIMARY KEY,
185
191
  signing_public_key VARBINARY(32) NOT NULL
186
192
  )`,
187
- orElse: () =>
188
- sql`
193
+ orElse: () =>
194
+ sql`
189
195
  CREATE TABLE IF NOT EXISTS ${sessionAuthBindingsTableSql} (
190
196
  public_key TEXT PRIMARY KEY,
191
197
  signing_public_key BLOB NOT NULL
192
198
  )`
193
- })
199
+ })
194
200
 
195
- const selectRemoteId = sql<{ remote_id: Uint8Array }>`
201
+ const selectRemoteId = sql<{ remote_id: Uint8Array }>`
196
202
  SELECT remote_id
197
203
  FROM ${remoteIdTableSql}
198
204
  WHERE singleton = 1
199
205
  `
200
206
 
201
- const remoteId = yield* selectRemoteId.pipe(
202
- Effect.flatMap((rows) => {
203
- const existing = rows[0]
204
- if (existing !== undefined) {
205
- return Effect.succeed(existing.remote_id as RemoteId)
206
- }
207
+ const remoteId = yield* selectRemoteId.pipe(
208
+ Effect.flatMap((rows) => {
209
+ const existing = rows[0]
210
+ if (existing !== undefined) {
211
+ return Effect.succeed(existing.remote_id as RemoteId)
212
+ }
207
213
 
208
- const created = makeRemoteIdUnsafe()
209
- return sql`
214
+ const created = makeRemoteIdUnsafe()
215
+ return sql`
210
216
  INSERT INTO ${remoteIdTableSql} (singleton, remote_id)
211
217
  VALUES (1, ${created})
212
218
  `.pipe(
213
- Effect.catchIf(
214
- isConstraintConflict,
215
- () => Effect.void
216
- ),
217
- Effect.andThen(selectRemoteId),
218
- Effect.map((rows) => rows[0]?.remote_id as RemoteId | undefined),
219
- Effect.map((persisted) => persisted ?? created)
220
- )
221
- })
222
- )
223
-
224
- const pubsubs = yield* RcMap.make({
225
- lookup: (_storeId: string) =>
226
- Effect.acquireRelease(
227
- PubSub.unbounded<RemoteEntry>(),
228
- PubSub.shutdown
219
+ Effect.catchIf(
220
+ isConstraintConflict,
221
+ () => Effect.void
229
222
  ),
230
- idleTimeToLive: "5 minutes"
223
+ Effect.andThen(selectRemoteId),
224
+ Effect.map((rows) => rows[0]?.remote_id as RemoteId | undefined),
225
+ Effect.map((persisted) => persisted ?? created)
226
+ )
231
227
  })
228
+ )
232
229
 
233
- const ensureStore = (storeId: string) =>
234
- sql.onDialectOrElse({
235
- pg: () =>
236
- sql`
230
+ const pubsubs = yield* RcMap.make({
231
+ lookup: (_storeId: string) =>
232
+ Effect.acquireRelease(
233
+ PubSub.unbounded<RemoteEntry>(),
234
+ PubSub.shutdown
235
+ ),
236
+ idleTimeToLive: "5 minutes"
237
+ })
238
+
239
+ const transactionSemaphore = yield* Semaphore.make(1)
240
+ type PendingWrites = Array<readonly [storeId: string, entries: Array<RemoteEntry>]>
241
+ const pendingWrites = Context.Service<PendingWrites>(
242
+ `effect/eventlog/SqlEventLogServerUnencrypted/PendingWrites/${storageIdCounter++}`
243
+ )
244
+ const publish = Effect.fnUntraced(function*([storeId, entries]: PendingWrites[number]) {
245
+ const pubsub = yield* RcMap.get(pubsubs, storeId)
246
+ return yield* PubSub.publishAll(pubsub, entries)
247
+ }, Effect.scoped)
248
+ // Merge nested buffers on success; publish only after the outer commit.
249
+ // Hold the outer permit through publication to prevent later commits from overtaking it.
250
+ const withTransaction = Effect.fnUntraced(function*<A, E, R>(
251
+ effect: Effect.Effect<A, E, R>
252
+ ): Effect.fn.Return<A, E | SqlError.SqlError, Exclude<R, PendingWrites>> {
253
+ const parent = yield* Effect.serviceOption(pendingWrites)
254
+ // Allow body interruption, but mask commit through publication.
255
+ const transaction = Effect.uninterruptibleMask(Effect.fnUntraced(function*(restore) {
256
+ const writes: PendingWrites = []
257
+ const result = yield* sql.withTransaction(
258
+ Effect.provideService(restore(effect), pendingWrites, writes)
259
+ )
260
+ if (parent._tag === "Some") {
261
+ parent.value.push(...writes)
262
+ } else {
263
+ const stores = new Map<string, Array<RemoteEntry>>()
264
+ for (const [storeId, entries] of writes) {
265
+ const existing = stores.get(storeId)
266
+ if (existing === undefined) {
267
+ stores.set(storeId, [...entries])
268
+ } else {
269
+ existing.push(...entries)
270
+ }
271
+ }
272
+ // Sibling buffers may merge out of sequence order.
273
+ for (const entries of stores.values()) {
274
+ entries.sort((a, b) => a.remoteSequence - b.remoteSequence)
275
+ }
276
+ yield* Effect.forEach(stores, publish, { discard: true })
277
+ }
278
+ return result
279
+ }))
280
+ // Wait interruptibly; nested transactions reuse the outer permit.
281
+ return yield* parent._tag === "Some" ? transaction : transactionSemaphore.withPermit(transaction)
282
+ })
283
+
284
+ const ensureStore = (storeId: string) =>
285
+ sql.onDialectOrElse({
286
+ pg: () =>
287
+ sql`
237
288
  INSERT INTO ${storesTableSql} (store_id, next_sequence)
238
289
  VALUES (${storeId}, 1)
239
290
  ON CONFLICT (store_id) DO NOTHING
240
291
  `,
241
- mysql: () =>
242
- sql`
292
+ mysql: () =>
293
+ sql`
243
294
  INSERT INTO ${storesTableSql} (store_id, next_sequence)
244
295
  VALUES (${storeId}, 1)
245
296
  ON DUPLICATE KEY UPDATE store_id = store_id
246
297
  `,
247
- mssql: () =>
248
- sql`
298
+ mssql: () =>
299
+ sql`
249
300
  MERGE ${storesTableSql} WITH (HOLDLOCK) AS target
250
301
  USING (SELECT ${storeId} AS store_id, 1 AS next_sequence) AS source
251
302
  ON target.store_id = source.store_id
@@ -253,194 +304,193 @@ export const makeStorage = (options?: {
253
304
  INSERT (store_id, next_sequence)
254
305
  VALUES (source.store_id, source.next_sequence);
255
306
  `,
256
- orElse: () =>
257
- sql`
307
+ orElse: () =>
308
+ sql`
258
309
  INSERT INTO ${storesTableSql} (store_id, next_sequence)
259
310
  VALUES (${storeId}, 1)
260
311
  ON CONFLICT DO NOTHING
261
312
  `
262
- })
313
+ })
263
314
 
264
- const lockStore = (storeId: string) =>
265
- sql.onDialectOrElse({
266
- pg: () =>
267
- sql`
315
+ const lockStore = (storeId: string) =>
316
+ sql.onDialectOrElse({
317
+ pg: () =>
318
+ sql`
268
319
  SELECT next_sequence
269
320
  FROM ${storesTableSql}
270
321
  WHERE store_id = ${storeId}
271
322
  FOR UPDATE
272
323
  `,
273
- mysql: () =>
274
- sql`
324
+ mysql: () =>
325
+ sql`
275
326
  SELECT next_sequence
276
327
  FROM ${storesTableSql}
277
328
  WHERE store_id = ${storeId}
278
329
  FOR UPDATE
279
330
  `,
280
- mssql: () =>
281
- sql`
331
+ mssql: () =>
332
+ sql`
282
333
  SELECT next_sequence
283
334
  FROM ${storesTableSql} WITH (UPDLOCK, HOLDLOCK)
284
335
  WHERE store_id = ${storeId}
285
336
  `,
286
- orElse: () =>
287
- sql`
337
+ orElse: () =>
338
+ sql`
288
339
  UPDATE ${storesTableSql}
289
340
  SET next_sequence = next_sequence
290
341
  WHERE store_id = ${storeId}
291
342
  RETURNING next_sequence
292
343
  `
293
- }).pipe(
294
- Effect.flatMap(decodeStoreSequence)
295
- )
344
+ }).pipe(
345
+ Effect.flatMap(decodeStoreSequence)
346
+ )
296
347
 
297
- const setNextSequence = (storeId: string, nextSequence: number) =>
298
- sql`
348
+ const setNextSequence = (storeId: string, nextSequence: number) =>
349
+ sql`
299
350
  UPDATE ${storesTableSql}
300
351
  SET next_sequence = ${nextSequence}
301
352
  WHERE store_id = ${storeId}
302
353
  `
303
354
 
304
- const selectEntriesAfter = (storeId: string, startSequence: number) =>
305
- sql`
355
+ const selectEntriesAfter = (storeId: string, startSequence: number) =>
356
+ sql`
306
357
  SELECT sequence, entry_id, event, primary_key, payload
307
358
  FROM ${entriesTableSql}
308
359
  WHERE store_id = ${storeId} AND sequence >= ${startSequence}
309
360
  ORDER BY sequence ASC
310
361
  `.pipe(
311
- Effect.flatMap(decodeRemoteEntries)
312
- )
362
+ Effect.flatMap(decodeRemoteEntries)
363
+ )
313
364
 
314
- const getSessionAuthBinding = (publicKey: string) =>
315
- sql`
365
+ const getSessionAuthBinding = (publicKey: string) =>
366
+ sql`
316
367
  SELECT public_key, signing_public_key
317
368
  FROM ${sessionAuthBindingsTableSql}
318
369
  WHERE public_key = ${publicKey}
319
370
  `.pipe(
320
- Effect.flatMap(decodeSessionAuthBindings),
321
- Effect.map((rows) => {
322
- const row = rows[0]
323
- return row === undefined ? undefined : row.signing_public_key as Uint8Array<ArrayBuffer>
324
- }),
325
- Effect.orDie
326
- )
371
+ Effect.flatMap(decodeSessionAuthBindings),
372
+ Effect.map((rows) => {
373
+ const row = rows[0]
374
+ return row === undefined ? undefined : row.signing_public_key as Uint8Array<ArrayBuffer>
375
+ }),
376
+ Effect.orDie
377
+ )
327
378
 
328
- return EventLogServerUnencrypted.Storage.of({
329
- getId: Effect.succeed(remoteId),
330
- getOrCreateSessionAuthBinding: Effect.fnUntraced(
331
- function*(publicKey, signingPublicKey) {
332
- const existing = yield* getSessionAuthBinding(publicKey)
333
- if (existing !== undefined) {
334
- return existing
335
- }
336
- return yield* sql`
379
+ return EventLogServerUnencrypted.Storage.of({
380
+ getId: Effect.succeed(remoteId),
381
+ getOrCreateSessionAuthBinding: Effect.fnUntraced(
382
+ function*(publicKey, signingPublicKey) {
383
+ const existing = yield* getSessionAuthBinding(publicKey)
384
+ if (existing !== undefined) {
385
+ return existing
386
+ }
387
+ return yield* sql`
337
388
  INSERT INTO ${sessionAuthBindingsTableSql} (public_key, signing_public_key)
338
389
  VALUES (${publicKey}, ${signingPublicKey})
339
390
  `.pipe(
340
- Effect.as(signingPublicKey)
341
- )
342
- },
343
- sql.withTransaction,
344
- Effect.orDie,
345
- withTracerDisabled
346
- ),
347
- entriesAfter: (storeId, entry) =>
348
- sql`
391
+ Effect.as(signingPublicKey)
392
+ )
393
+ },
394
+ sql.withTransaction,
395
+ Effect.orDie,
396
+ withTracerDisabled
397
+ ),
398
+ entriesAfter: (storeId, entry) =>
399
+ sql`
349
400
  SELECT sequence, entry_id, event, primary_key, payload
350
401
  FROM ${entriesTableSql}
351
402
  WHERE store_id = ${storeId} AND entry_id >= ${entry.id}
352
403
  ORDER BY sequence ASC
353
404
  `.pipe(
354
- Effect.flatMap(decodeRemoteEntries),
355
- Effect.map(Arr.map((r) => r.entry)),
356
- Effect.orDie,
357
- withTracerDisabled
358
- ),
359
- write: Effect.fnUntraced(
360
- function*(storeId, entries) {
361
- if (entries.length === 0) {
362
- return []
363
- }
405
+ Effect.flatMap(decodeRemoteEntries),
406
+ Effect.map(Arr.map((r) => r.entry)),
407
+ Effect.orDie,
408
+ withTracerDisabled
409
+ ),
410
+ write: Effect.fnUntraced(
411
+ function*(storeId, entries) {
412
+ if (entries.length === 0) {
413
+ return []
414
+ }
364
415
 
365
- yield* ensureStore(storeId)
366
- const currentNextSequence = yield* lockStore(storeId)
367
-
368
- const committed: Array<RemoteEntry> = []
369
- let rowsForInsert: Array<{
370
- readonly store_id: string
371
- readonly sequence: number
372
- readonly entry_id: Uint8Array
373
- readonly event: string
374
- readonly primary_key: string
375
- readonly payload: Uint8Array
376
- }> = []
377
-
378
- for (let index = 0; index < entries.length; index++) {
379
- const entry = entries[index]
380
- const remoteSequence = currentNextSequence + index
381
- committed.push(
382
- new RemoteEntry({
383
- remoteSequence,
384
- entry
385
- }, { disableChecks: true })
386
- )
387
- rowsForInsert.push({
388
- store_id: storeId,
389
- sequence: remoteSequence,
390
- entry_id: entry.id,
391
- event: entry.event,
392
- primary_key: entry.primaryKey,
393
- payload: entry.payload
394
- })
395
- if (rowsForInsert.length >= insertBatchSize) {
396
- yield* sql`INSERT INTO ${entriesTableSql} ${sql.insert(rowsForInsert)}`
397
- rowsForInsert = []
398
- }
399
- }
400
- if (rowsForInsert.length > 0) {
416
+ yield* ensureStore(storeId)
417
+ const currentNextSequence = yield* lockStore(storeId)
418
+
419
+ const committed: Array<RemoteEntry> = []
420
+ let rowsForInsert: Array<{
421
+ readonly store_id: string
422
+ readonly sequence: number
423
+ readonly entry_id: Uint8Array
424
+ readonly event: string
425
+ readonly primary_key: string
426
+ readonly payload: Uint8Array
427
+ }> = []
428
+
429
+ for (let index = 0; index < entries.length; index++) {
430
+ const entry = entries[index]
431
+ const remoteSequence = currentNextSequence + index
432
+ committed.push(
433
+ new RemoteEntry({
434
+ remoteSequence,
435
+ entry
436
+ }, { disableChecks: true })
437
+ )
438
+ rowsForInsert.push({
439
+ store_id: storeId,
440
+ sequence: remoteSequence,
441
+ entry_id: entry.id,
442
+ event: entry.event,
443
+ primary_key: entry.primaryKey,
444
+ payload: entry.payload
445
+ })
446
+ if (rowsForInsert.length >= insertBatchSize) {
401
447
  yield* sql`INSERT INTO ${entriesTableSql} ${sql.insert(rowsForInsert)}`
448
+ rowsForInsert = []
402
449
  }
403
- const nextSequence = currentNextSequence + entries.length
404
- yield* setNextSequence(storeId, nextSequence)
405
-
406
- const pubsub = yield* RcMap.get(pubsubs, storeId)
407
- yield* PubSub.publishAll(pubsub, committed)
408
-
409
- return committed
410
- },
411
- Effect.scoped,
412
- sql.withTransaction,
413
- withTracerDisabled,
414
- Effect.orDie
415
- ),
416
- changes: Effect.fnUntraced(
417
- function*({ storeId, startSequence, compactors }) {
418
- const pubsub = yield* RcMap.get(pubsubs, storeId)
419
- const subscription = yield* PubSub.subscribe(pubsub)
420
- const backlog = yield* EventLogServerUnencrypted.compactBacklog({
421
- compactors,
422
- remoteEntries: yield* selectEntriesAfter(storeId, startSequence)
423
- })
424
- let watermark = backlog.length > 0 ? backlog[backlog.length - 1]!.remoteSequence : startSequence - 1
425
-
426
- return Stream.fromArray(backlog).pipe(
427
- Stream.concat(
428
- Stream.fromSubscription(subscription).pipe(
429
- Stream.filter((entry) => entry.remoteSequence > watermark)
430
- )
450
+ }
451
+ if (rowsForInsert.length > 0) {
452
+ yield* sql`INSERT INTO ${entriesTableSql} ${sql.insert(rowsForInsert)}`
453
+ }
454
+ const nextSequence = currentNextSequence + entries.length
455
+ yield* setNextSequence(storeId, nextSequence)
456
+
457
+ const writes = yield* pendingWrites
458
+ writes.push([storeId, committed])
459
+
460
+ return committed
461
+ },
462
+ withTransaction,
463
+ withTracerDisabled,
464
+ Effect.orDie
465
+ ),
466
+ changes: Effect.fnUntraced(
467
+ function*({ storeId, startSequence, compactors }) {
468
+ const pubsub = yield* RcMap.get(pubsubs, storeId)
469
+ const subscription = yield* PubSub.subscribe(pubsub)
470
+ const backlog = yield* EventLogServerUnencrypted.compactBacklog({
471
+ compactors,
472
+ remoteEntries: yield* selectEntriesAfter(storeId, startSequence)
473
+ })
474
+ let watermark = backlog.length > 0 ? backlog[backlog.length - 1]!.remoteSequence : startSequence - 1
475
+
476
+ return Stream.fromArray(backlog).pipe(
477
+ Stream.concat(
478
+ Stream.fromSubscription(subscription).pipe(
479
+ Stream.filter((entry) => entry.remoteSequence > watermark)
431
480
  )
432
481
  )
433
- },
434
- Effect.orDie,
435
- withTracerDisabled,
436
- Stream.unwrap
437
- ),
438
- withTransaction: (effect) =>
439
- sql.withTransaction(effect).pipe(
440
- Effect.catchIf(SqlError.isSqlError, Effect.die)
441
482
  )
442
- })
443
- }).pipe(withTracerDisabled)
483
+ },
484
+ Effect.orDie,
485
+ withTracerDisabled,
486
+ Stream.unwrap
487
+ ),
488
+ withTransaction: (effect) =>
489
+ withTransaction(effect).pipe(
490
+ Effect.catchIf(SqlError.isSqlError, Effect.die)
491
+ )
492
+ })
493
+ }, (effect, _options?: StorageOptions) => withTracerDisabled(effect))
444
494
 
445
495
  /**
446
496
  * Provides unencrypted server `Storage` using the SQL-backed implementation.
@@ -449,12 +499,11 @@ export const makeStorage = (options?: {
449
499
  * @category layers
450
500
  * @since 4.0.0
451
501
  */
452
- export const layerStorage = (options?: {
453
- readonly entryTablePrefix?: string
454
- readonly remoteIdTable?: string
455
- readonly insertBatchSize?: number
456
- }): Layer.Layer<EventLogServerUnencrypted.Storage, SqlError.SqlError, SqlClient.SqlClient> =>
457
- Layer.effect(EventLogServerUnencrypted.Storage)(makeStorage(options))
502
+ export const layerStorage = (options?: StorageOptions): Layer.Layer<
503
+ EventLogServerUnencrypted.Storage,
504
+ SqlError.SqlError,
505
+ SqlClient.SqlClient
506
+ > => Layer.effect(EventLogServerUnencrypted.Storage)(makeStorage(options))
458
507
 
459
508
  const EntrySql = Schema.Struct({
460
509
  entry_id: EntryId,
@@ -537,7 +586,5 @@ const decodeSessionAuthBindings = (
537
586
  rows: unknown
538
587
  ): Effect.Effect<ReadonlyArray<SessionAuthBindingSql>, Schema.SchemaError> => decodeSessionAuthBindingRows(rows)
539
588
 
540
- const withTracerDisabled = Effect.withTracerEnabled(false)
541
-
542
589
  const isConstraintConflict = (error: SqlError.SqlError): boolean =>
543
590
  error.reason._tag === "ConstraintError" || error.reason._tag === "UniqueViolation"