effect 4.0.0-beta.66 → 4.0.0-beta.68

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 (1767) hide show
  1. package/dist/Array.d.ts +151 -106
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +50 -40
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +620 -553
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +298 -254
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +342 -274
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +168 -126
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +189 -156
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +85 -68
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.d.ts +30 -5
  18. package/dist/Brand.d.ts.map +1 -1
  19. package/dist/Brand.js +19 -2
  20. package/dist/Brand.js.map +1 -1
  21. package/dist/Cache.d.ts +239 -135
  22. package/dist/Cache.d.ts.map +1 -1
  23. package/dist/Cache.js +135 -59
  24. package/dist/Cache.js.map +1 -1
  25. package/dist/Cause.d.ts +84 -73
  26. package/dist/Cause.d.ts.map +1 -1
  27. package/dist/Cause.js +51 -44
  28. package/dist/Cause.js.map +1 -1
  29. package/dist/Channel.d.ts +1568 -632
  30. package/dist/Channel.d.ts.map +1 -1
  31. package/dist/Channel.js +685 -315
  32. package/dist/Channel.js.map +1 -1
  33. package/dist/ChannelSchema.d.ts +119 -10
  34. package/dist/ChannelSchema.d.ts.map +1 -1
  35. package/dist/ChannelSchema.js +45 -6
  36. package/dist/ChannelSchema.js.map +1 -1
  37. package/dist/Chunk.d.ts +574 -428
  38. package/dist/Chunk.d.ts.map +1 -1
  39. package/dist/Chunk.js +250 -191
  40. package/dist/Chunk.js.map +1 -1
  41. package/dist/Clock.d.ts +16 -9
  42. package/dist/Clock.d.ts.map +1 -1
  43. package/dist/Clock.js +9 -5
  44. package/dist/Clock.js.map +1 -1
  45. package/dist/Combiner.d.ts +11 -5
  46. package/dist/Combiner.d.ts.map +1 -1
  47. package/dist/Combiner.js +10 -4
  48. package/dist/Combiner.js.map +1 -1
  49. package/dist/Config.d.ts +80 -68
  50. package/dist/Config.d.ts.map +1 -1
  51. package/dist/Config.js +53 -49
  52. package/dist/Config.js.map +1 -1
  53. package/dist/ConfigProvider.d.ts +33 -32
  54. package/dist/ConfigProvider.d.ts.map +1 -1
  55. package/dist/ConfigProvider.js +19 -18
  56. package/dist/ConfigProvider.js.map +1 -1
  57. package/dist/Console.d.ts +76 -50
  58. package/dist/Console.d.ts.map +1 -1
  59. package/dist/Console.js +69 -46
  60. package/dist/Console.js.map +1 -1
  61. package/dist/Context.d.ts +400 -189
  62. package/dist/Context.d.ts.map +1 -1
  63. package/dist/Context.js +143 -77
  64. package/dist/Context.js.map +1 -1
  65. package/dist/Cron.d.ts +67 -48
  66. package/dist/Cron.d.ts.map +1 -1
  67. package/dist/Cron.js +94 -36
  68. package/dist/Cron.js.map +1 -1
  69. package/dist/Crypto.d.ts +208 -0
  70. package/dist/Crypto.d.ts.map +1 -0
  71. package/dist/Crypto.js +157 -0
  72. package/dist/Crypto.js.map +1 -0
  73. package/dist/Data.d.ts +9 -3
  74. package/dist/Data.d.ts.map +1 -1
  75. package/dist/Data.js.map +1 -1
  76. package/dist/DateTime.d.ts +893 -464
  77. package/dist/DateTime.d.ts.map +1 -1
  78. package/dist/DateTime.js +387 -228
  79. package/dist/DateTime.js.map +1 -1
  80. package/dist/Deferred.d.ts +367 -175
  81. package/dist/Deferred.d.ts.map +1 -1
  82. package/dist/Deferred.js +146 -72
  83. package/dist/Deferred.js.map +1 -1
  84. package/dist/Differ.d.ts +44 -2
  85. package/dist/Differ.d.ts.map +1 -1
  86. package/dist/Differ.js +36 -0
  87. package/dist/Duration.d.ts +333 -186
  88. package/dist/Duration.d.ts.map +1 -1
  89. package/dist/Duration.js +178 -107
  90. package/dist/Duration.js.map +1 -1
  91. package/dist/Effect.d.ts +2181 -2275
  92. package/dist/Effect.d.ts.map +1 -1
  93. package/dist/Effect.js +935 -850
  94. package/dist/Effect.js.map +1 -1
  95. package/dist/Effectable.d.ts +38 -3
  96. package/dist/Effectable.d.ts.map +1 -1
  97. package/dist/Effectable.js +3 -3
  98. package/dist/Effectable.js.map +1 -1
  99. package/dist/Encoding.d.ts +78 -28
  100. package/dist/Encoding.d.ts.map +1 -1
  101. package/dist/Encoding.js +75 -27
  102. package/dist/Encoding.js.map +1 -1
  103. package/dist/Equal.d.ts +4 -3
  104. package/dist/Equal.d.ts.map +1 -1
  105. package/dist/Equal.js +4 -3
  106. package/dist/Equal.js.map +1 -1
  107. package/dist/Equivalence.d.ts +18 -24
  108. package/dist/Equivalence.d.ts.map +1 -1
  109. package/dist/Equivalence.js +16 -21
  110. package/dist/Equivalence.js.map +1 -1
  111. package/dist/ErrorReporter.d.ts +66 -82
  112. package/dist/ErrorReporter.d.ts.map +1 -1
  113. package/dist/ErrorReporter.js +38 -29
  114. package/dist/ErrorReporter.js.map +1 -1
  115. package/dist/ExecutionPlan.d.ts +106 -12
  116. package/dist/ExecutionPlan.d.ts.map +1 -1
  117. package/dist/ExecutionPlan.js +23 -6
  118. package/dist/ExecutionPlan.js.map +1 -1
  119. package/dist/Exit.d.ts +6 -5
  120. package/dist/Exit.d.ts.map +1 -1
  121. package/dist/Exit.js.map +1 -1
  122. package/dist/Fiber.d.ts +71 -40
  123. package/dist/Fiber.d.ts.map +1 -1
  124. package/dist/Fiber.js +39 -21
  125. package/dist/Fiber.js.map +1 -1
  126. package/dist/FiberHandle.d.ts +118 -57
  127. package/dist/FiberHandle.d.ts.map +1 -1
  128. package/dist/FiberHandle.js +121 -39
  129. package/dist/FiberHandle.js.map +1 -1
  130. package/dist/FiberMap.d.ts +287 -159
  131. package/dist/FiberMap.d.ts.map +1 -1
  132. package/dist/FiberMap.js +175 -73
  133. package/dist/FiberMap.js.map +1 -1
  134. package/dist/FiberSet.d.ts +93 -52
  135. package/dist/FiberSet.d.ts.map +1 -1
  136. package/dist/FiberSet.js +97 -34
  137. package/dist/FiberSet.js.map +1 -1
  138. package/dist/FileSystem.d.ts +102 -73
  139. package/dist/FileSystem.d.ts.map +1 -1
  140. package/dist/FileSystem.js +53 -39
  141. package/dist/FileSystem.js.map +1 -1
  142. package/dist/Filter.d.ts +166 -88
  143. package/dist/Filter.d.ts.map +1 -1
  144. package/dist/Filter.js +68 -42
  145. package/dist/Filter.js.map +1 -1
  146. package/dist/Formatter.d.ts +4 -2
  147. package/dist/Formatter.d.ts.map +1 -1
  148. package/dist/Formatter.js +3 -69
  149. package/dist/Formatter.js.map +1 -1
  150. package/dist/Function.d.ts +218 -151
  151. package/dist/Function.d.ts.map +1 -1
  152. package/dist/Function.js +94 -78
  153. package/dist/Function.js.map +1 -1
  154. package/dist/Graph.d.ts +714 -415
  155. package/dist/Graph.d.ts.map +1 -1
  156. package/dist/Graph.js +325 -182
  157. package/dist/Graph.js.map +1 -1
  158. package/dist/HKT.d.ts +29 -13
  159. package/dist/HKT.d.ts.map +1 -1
  160. package/dist/Hash.d.ts +35 -24
  161. package/dist/Hash.d.ts.map +1 -1
  162. package/dist/Hash.js +27 -17
  163. package/dist/Hash.js.map +1 -1
  164. package/dist/HashMap.d.ts +540 -388
  165. package/dist/HashMap.d.ts.map +1 -1
  166. package/dist/HashMap.js +262 -156
  167. package/dist/HashMap.js.map +1 -1
  168. package/dist/HashRing.d.ts +53 -34
  169. package/dist/HashRing.d.ts.map +1 -1
  170. package/dist/HashRing.js +83 -16
  171. package/dist/HashRing.js.map +1 -1
  172. package/dist/HashSet.d.ts +239 -153
  173. package/dist/HashSet.d.ts.map +1 -1
  174. package/dist/HashSet.js +110 -56
  175. package/dist/HashSet.js.map +1 -1
  176. package/dist/Inspectable.d.ts +26 -13
  177. package/dist/Inspectable.d.ts.map +1 -1
  178. package/dist/Inspectable.js +22 -10
  179. package/dist/Inspectable.js.map +1 -1
  180. package/dist/Iterable.d.ts +336 -222
  181. package/dist/Iterable.d.ts.map +1 -1
  182. package/dist/Iterable.js +146 -100
  183. package/dist/Iterable.js.map +1 -1
  184. package/dist/JsonPatch.d.ts +12 -9
  185. package/dist/JsonPatch.d.ts.map +1 -1
  186. package/dist/JsonPatch.js +9 -6
  187. package/dist/JsonPatch.js.map +1 -1
  188. package/dist/JsonPointer.d.ts +13 -11
  189. package/dist/JsonPointer.d.ts.map +1 -1
  190. package/dist/JsonPointer.js +13 -11
  191. package/dist/JsonPointer.js.map +1 -1
  192. package/dist/JsonSchema.d.ts +16 -0
  193. package/dist/JsonSchema.d.ts.map +1 -1
  194. package/dist/JsonSchema.js +10 -0
  195. package/dist/JsonSchema.js.map +1 -1
  196. package/dist/Latch.d.ts +97 -26
  197. package/dist/Latch.d.ts.map +1 -1
  198. package/dist/Latch.js +39 -20
  199. package/dist/Latch.js.map +1 -1
  200. package/dist/Layer.d.ts +472 -410
  201. package/dist/Layer.d.ts.map +1 -1
  202. package/dist/Layer.js +290 -226
  203. package/dist/Layer.js.map +1 -1
  204. package/dist/LayerMap.d.ts +99 -26
  205. package/dist/LayerMap.d.ts.map +1 -1
  206. package/dist/LayerMap.js +58 -14
  207. package/dist/LayerMap.js.map +1 -1
  208. package/dist/LogLevel.d.ts +92 -131
  209. package/dist/LogLevel.d.ts.map +1 -1
  210. package/dist/LogLevel.js +25 -15
  211. package/dist/LogLevel.js.map +1 -1
  212. package/dist/Logger.d.ts +159 -104
  213. package/dist/Logger.d.ts.map +1 -1
  214. package/dist/Logger.js +215 -189
  215. package/dist/Logger.js.map +1 -1
  216. package/dist/ManagedRuntime.d.ts +78 -19
  217. package/dist/ManagedRuntime.d.ts.map +1 -1
  218. package/dist/ManagedRuntime.js +24 -17
  219. package/dist/ManagedRuntime.js.map +1 -1
  220. package/dist/Match.d.ts +135 -161
  221. package/dist/Match.d.ts.map +1 -1
  222. package/dist/Match.js +86 -78
  223. package/dist/Match.js.map +1 -1
  224. package/dist/Metric.d.ts +330 -291
  225. package/dist/Metric.d.ts.map +1 -1
  226. package/dist/Metric.js +219 -214
  227. package/dist/Metric.js.map +1 -1
  228. package/dist/MutableHashMap.d.ts +146 -87
  229. package/dist/MutableHashMap.d.ts.map +1 -1
  230. package/dist/MutableHashMap.js +67 -43
  231. package/dist/MutableHashMap.js.map +1 -1
  232. package/dist/MutableHashSet.d.ts +52 -30
  233. package/dist/MutableHashSet.d.ts.map +1 -1
  234. package/dist/MutableHashSet.js +92 -38
  235. package/dist/MutableHashSet.js.map +1 -1
  236. package/dist/MutableList.d.ts +110 -68
  237. package/dist/MutableList.d.ts.map +1 -1
  238. package/dist/MutableList.js +135 -85
  239. package/dist/MutableList.js.map +1 -1
  240. package/dist/MutableRef.d.ts +99 -62
  241. package/dist/MutableRef.d.ts.map +1 -1
  242. package/dist/MutableRef.js +78 -60
  243. package/dist/MutableRef.js.map +1 -1
  244. package/dist/Newtype.d.ts +15 -2
  245. package/dist/Newtype.d.ts.map +1 -1
  246. package/dist/Newtype.js +8 -2
  247. package/dist/Newtype.js.map +1 -1
  248. package/dist/NonEmptyIterable.d.ts +38 -48
  249. package/dist/NonEmptyIterable.d.ts.map +1 -1
  250. package/dist/NonEmptyIterable.js +34 -25
  251. package/dist/NonEmptyIterable.js.map +1 -1
  252. package/dist/Number.d.ts +261 -205
  253. package/dist/Number.d.ts.map +1 -1
  254. package/dist/Number.js +119 -91
  255. package/dist/Number.js.map +1 -1
  256. package/dist/Optic.d.ts +6 -7
  257. package/dist/Optic.d.ts.map +1 -1
  258. package/dist/Optic.js +5 -6
  259. package/dist/Optic.js.map +1 -1
  260. package/dist/Option.d.ts +133 -156
  261. package/dist/Option.d.ts.map +1 -1
  262. package/dist/Option.js +64 -64
  263. package/dist/Option.js.map +1 -1
  264. package/dist/Order.d.ts +6 -6
  265. package/dist/Order.js +6 -6
  266. package/dist/Ordering.d.ts +56 -45
  267. package/dist/Ordering.d.ts.map +1 -1
  268. package/dist/Ordering.js +10 -8
  269. package/dist/Ordering.js.map +1 -1
  270. package/dist/PartitionedSemaphore.d.ts +225 -40
  271. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  272. package/dist/PartitionedSemaphore.js +113 -17
  273. package/dist/PartitionedSemaphore.js.map +1 -1
  274. package/dist/Path.d.ts +77 -13
  275. package/dist/Path.d.ts.map +1 -1
  276. package/dist/Path.js +49 -4
  277. package/dist/Path.js.map +1 -1
  278. package/dist/Pipeable.d.ts +77 -18
  279. package/dist/Pipeable.d.ts.map +1 -1
  280. package/dist/Pipeable.js +63 -14
  281. package/dist/Pipeable.js.map +1 -1
  282. package/dist/PlatformError.d.ts +74 -6
  283. package/dist/PlatformError.d.ts.map +1 -1
  284. package/dist/PlatformError.js +68 -5
  285. package/dist/PlatformError.js.map +1 -1
  286. package/dist/Pool.d.ts +66 -31
  287. package/dist/Pool.d.ts.map +1 -1
  288. package/dist/Pool.js +26 -24
  289. package/dist/Pool.js.map +1 -1
  290. package/dist/Predicate.d.ts +16 -23
  291. package/dist/Predicate.d.ts.map +1 -1
  292. package/dist/Predicate.js +12 -17
  293. package/dist/Predicate.js.map +1 -1
  294. package/dist/PrimaryKey.d.ts +11 -3
  295. package/dist/PrimaryKey.d.ts.map +1 -1
  296. package/dist/PrimaryKey.js +9 -2
  297. package/dist/PrimaryKey.js.map +1 -1
  298. package/dist/PubSub.d.ts +385 -309
  299. package/dist/PubSub.d.ts.map +1 -1
  300. package/dist/PubSub.js +260 -207
  301. package/dist/PubSub.js.map +1 -1
  302. package/dist/Pull.d.ts +94 -25
  303. package/dist/Pull.d.ts.map +1 -1
  304. package/dist/Pull.js +61 -13
  305. package/dist/Pull.js.map +1 -1
  306. package/dist/Queue.d.ts +303 -184
  307. package/dist/Queue.d.ts.map +1 -1
  308. package/dist/Queue.js +231 -134
  309. package/dist/Queue.js.map +1 -1
  310. package/dist/Random.d.ts +65 -57
  311. package/dist/Random.d.ts.map +1 -1
  312. package/dist/Random.js +41 -66
  313. package/dist/Random.js.map +1 -1
  314. package/dist/RcMap.d.ts +151 -141
  315. package/dist/RcMap.d.ts.map +1 -1
  316. package/dist/RcMap.js +66 -20
  317. package/dist/RcMap.js.map +1 -1
  318. package/dist/RcRef.d.ts +68 -32
  319. package/dist/RcRef.d.ts.map +1 -1
  320. package/dist/RcRef.js +33 -16
  321. package/dist/RcRef.js.map +1 -1
  322. package/dist/Record.d.ts +282 -137
  323. package/dist/Record.d.ts.map +1 -1
  324. package/dist/Record.js +124 -62
  325. package/dist/Record.js.map +1 -1
  326. package/dist/Redactable.d.ts +7 -5
  327. package/dist/Redactable.d.ts.map +1 -1
  328. package/dist/Redactable.js +5 -3
  329. package/dist/Redactable.js.map +1 -1
  330. package/dist/Redacted.d.ts +63 -34
  331. package/dist/Redacted.d.ts.map +1 -1
  332. package/dist/Redacted.js +31 -15
  333. package/dist/Redacted.js.map +1 -1
  334. package/dist/Reducer.d.ts +3 -1
  335. package/dist/Reducer.d.ts.map +1 -1
  336. package/dist/Reducer.js +2 -0
  337. package/dist/Reducer.js.map +1 -1
  338. package/dist/Ref.d.ts +85 -66
  339. package/dist/Ref.d.ts.map +1 -1
  340. package/dist/Ref.js +57 -45
  341. package/dist/Ref.js.map +1 -1
  342. package/dist/References.d.ts +73 -31
  343. package/dist/References.d.ts.map +1 -1
  344. package/dist/References.js +66 -30
  345. package/dist/References.js.map +1 -1
  346. package/dist/RegExp.d.ts +12 -6
  347. package/dist/RegExp.d.ts.map +1 -1
  348. package/dist/RegExp.js +12 -6
  349. package/dist/RegExp.js.map +1 -1
  350. package/dist/Request.d.ts +159 -34
  351. package/dist/Request.d.ts.map +1 -1
  352. package/dist/Request.js +68 -12
  353. package/dist/Request.js.map +1 -1
  354. package/dist/RequestResolver.d.ts +262 -118
  355. package/dist/RequestResolver.d.ts.map +1 -1
  356. package/dist/RequestResolver.js +78 -42
  357. package/dist/RequestResolver.js.map +1 -1
  358. package/dist/Resource.d.ts +13 -7
  359. package/dist/Resource.d.ts.map +1 -1
  360. package/dist/Resource.js +44 -6
  361. package/dist/Resource.js.map +1 -1
  362. package/dist/Result.d.ts +135 -151
  363. package/dist/Result.d.ts.map +1 -1
  364. package/dist/Result.js +56 -68
  365. package/dist/Result.js.map +1 -1
  366. package/dist/Runtime.d.ts +40 -20
  367. package/dist/Runtime.d.ts.map +1 -1
  368. package/dist/Runtime.js +34 -17
  369. package/dist/Runtime.js.map +1 -1
  370. package/dist/Schedule.d.ts +556 -590
  371. package/dist/Schedule.d.ts.map +1 -1
  372. package/dist/Schedule.js +265 -253
  373. package/dist/Schedule.js.map +1 -1
  374. package/dist/Scheduler.d.ts +44 -7
  375. package/dist/Scheduler.d.ts.map +1 -1
  376. package/dist/Scheduler.js +34 -5
  377. package/dist/Scheduler.js.map +1 -1
  378. package/dist/Schema.d.ts +1293 -602
  379. package/dist/Schema.d.ts.map +1 -1
  380. package/dist/Schema.js +501 -361
  381. package/dist/Schema.js.map +1 -1
  382. package/dist/SchemaAST.d.ts +122 -92
  383. package/dist/SchemaAST.d.ts.map +1 -1
  384. package/dist/SchemaAST.js +102 -77
  385. package/dist/SchemaAST.js.map +1 -1
  386. package/dist/SchemaGetter.d.ts +49 -36
  387. package/dist/SchemaGetter.d.ts.map +1 -1
  388. package/dist/SchemaGetter.js +42 -29
  389. package/dist/SchemaGetter.js.map +1 -1
  390. package/dist/SchemaIssue.d.ts +19 -24
  391. package/dist/SchemaIssue.d.ts.map +1 -1
  392. package/dist/SchemaIssue.js +16 -14
  393. package/dist/SchemaIssue.js.map +1 -1
  394. package/dist/SchemaParser.d.ts +231 -63
  395. package/dist/SchemaParser.d.ts.map +1 -1
  396. package/dist/SchemaParser.js +266 -75
  397. package/dist/SchemaParser.js.map +1 -1
  398. package/dist/SchemaRepresentation.d.ts +89 -77
  399. package/dist/SchemaRepresentation.d.ts.map +1 -1
  400. package/dist/SchemaRepresentation.js +47 -37
  401. package/dist/SchemaRepresentation.js.map +1 -1
  402. package/dist/SchemaTransformation.d.ts +97 -46
  403. package/dist/SchemaTransformation.d.ts.map +1 -1
  404. package/dist/SchemaTransformation.js +89 -38
  405. package/dist/SchemaTransformation.js.map +1 -1
  406. package/dist/SchemaUtils.d.ts +8 -1
  407. package/dist/SchemaUtils.d.ts.map +1 -1
  408. package/dist/SchemaUtils.js +24 -1
  409. package/dist/SchemaUtils.js.map +1 -1
  410. package/dist/Scope.d.ts +107 -65
  411. package/dist/Scope.d.ts.map +1 -1
  412. package/dist/Scope.js +61 -32
  413. package/dist/Scope.js.map +1 -1
  414. package/dist/ScopedCache.d.ts +141 -49
  415. package/dist/ScopedCache.d.ts.map +1 -1
  416. package/dist/ScopedCache.js +82 -21
  417. package/dist/ScopedCache.js.map +1 -1
  418. package/dist/ScopedRef.d.ts +28 -8
  419. package/dist/ScopedRef.d.ts.map +1 -1
  420. package/dist/ScopedRef.js +25 -5
  421. package/dist/ScopedRef.js.map +1 -1
  422. package/dist/Semaphore.d.ts +61 -37
  423. package/dist/Semaphore.d.ts.map +1 -1
  424. package/dist/Semaphore.js +18 -21
  425. package/dist/Semaphore.js.map +1 -1
  426. package/dist/Sink.d.ts +461 -206
  427. package/dist/Sink.d.ts.map +1 -1
  428. package/dist/Sink.js +241 -90
  429. package/dist/Sink.js.map +1 -1
  430. package/dist/Stdio.d.ts +43 -6
  431. package/dist/Stdio.d.ts.map +1 -1
  432. package/dist/Stdio.js +33 -4
  433. package/dist/Stdio.js.map +1 -1
  434. package/dist/Stream.d.ts +2117 -1541
  435. package/dist/Stream.d.ts.map +1 -1
  436. package/dist/Stream.js +951 -682
  437. package/dist/Stream.js.map +1 -1
  438. package/dist/String.d.ts +174 -97
  439. package/dist/String.d.ts.map +1 -1
  440. package/dist/String.js +128 -69
  441. package/dist/String.js.map +1 -1
  442. package/dist/Struct.d.ts +20 -18
  443. package/dist/Struct.d.ts.map +1 -1
  444. package/dist/Struct.js +10 -8
  445. package/dist/Struct.js.map +1 -1
  446. package/dist/SubscriptionRef.d.ts +309 -204
  447. package/dist/SubscriptionRef.d.ts.map +1 -1
  448. package/dist/SubscriptionRef.js +126 -77
  449. package/dist/SubscriptionRef.js.map +1 -1
  450. package/dist/Symbol.d.ts +13 -5
  451. package/dist/Symbol.d.ts.map +1 -1
  452. package/dist/Symbol.js +13 -5
  453. package/dist/Symbol.js.map +1 -1
  454. package/dist/SynchronizedRef.d.ts +278 -62
  455. package/dist/SynchronizedRef.d.ts.map +1 -1
  456. package/dist/SynchronizedRef.js +116 -23
  457. package/dist/SynchronizedRef.js.map +1 -1
  458. package/dist/Take.d.ts +26 -2
  459. package/dist/Take.d.ts.map +1 -1
  460. package/dist/Take.js +4 -1
  461. package/dist/Take.js.map +1 -1
  462. package/dist/Terminal.d.ts +39 -7
  463. package/dist/Terminal.d.ts.map +1 -1
  464. package/dist/Terminal.js +10 -4
  465. package/dist/Terminal.js.map +1 -1
  466. package/dist/Tracer.d.ts +233 -59
  467. package/dist/Tracer.d.ts.map +1 -1
  468. package/dist/Tracer.js +94 -18
  469. package/dist/Tracer.js.map +1 -1
  470. package/dist/Trie.d.ts +280 -245
  471. package/dist/Trie.d.ts.map +1 -1
  472. package/dist/Trie.js +116 -102
  473. package/dist/Trie.js.map +1 -1
  474. package/dist/Tuple.d.ts +34 -32
  475. package/dist/Tuple.d.ts.map +1 -1
  476. package/dist/Tuple.js +16 -14
  477. package/dist/Tuple.js.map +1 -1
  478. package/dist/TxChunk.d.ts +200 -155
  479. package/dist/TxChunk.d.ts.map +1 -1
  480. package/dist/TxChunk.js +83 -61
  481. package/dist/TxChunk.js.map +1 -1
  482. package/dist/TxDeferred.d.ts +43 -29
  483. package/dist/TxDeferred.d.ts.map +1 -1
  484. package/dist/TxDeferred.js +22 -15
  485. package/dist/TxDeferred.js.map +1 -1
  486. package/dist/TxHashMap.d.ts +362 -223
  487. package/dist/TxHashMap.d.ts.map +1 -1
  488. package/dist/TxHashMap.js +171 -98
  489. package/dist/TxHashMap.js.map +1 -1
  490. package/dist/TxHashSet.d.ts +181 -111
  491. package/dist/TxHashSet.d.ts.map +1 -1
  492. package/dist/TxHashSet.js +87 -49
  493. package/dist/TxHashSet.js.map +1 -1
  494. package/dist/TxPriorityQueue.d.ts +94 -63
  495. package/dist/TxPriorityQueue.d.ts.map +1 -1
  496. package/dist/TxPriorityQueue.js +55 -37
  497. package/dist/TxPriorityQueue.js.map +1 -1
  498. package/dist/TxPubSub.d.ts +77 -49
  499. package/dist/TxPubSub.d.ts.map +1 -1
  500. package/dist/TxPubSub.js +60 -37
  501. package/dist/TxPubSub.js.map +1 -1
  502. package/dist/TxQueue.d.ts +277 -242
  503. package/dist/TxQueue.d.ts.map +1 -1
  504. package/dist/TxQueue.js +147 -101
  505. package/dist/TxQueue.js.map +1 -1
  506. package/dist/TxReentrantLock.d.ts +69 -46
  507. package/dist/TxReentrantLock.d.ts.map +1 -1
  508. package/dist/TxReentrantLock.js +48 -32
  509. package/dist/TxReentrantLock.js.map +1 -1
  510. package/dist/TxRef.d.ts +69 -40
  511. package/dist/TxRef.d.ts.map +1 -1
  512. package/dist/TxRef.js +34 -19
  513. package/dist/TxRef.js.map +1 -1
  514. package/dist/TxSemaphore.d.ts +101 -115
  515. package/dist/TxSemaphore.d.ts.map +1 -1
  516. package/dist/TxSemaphore.js +76 -77
  517. package/dist/TxSemaphore.js.map +1 -1
  518. package/dist/TxSubscriptionRef.d.ts +74 -50
  519. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  520. package/dist/TxSubscriptionRef.js +34 -23
  521. package/dist/TxSubscriptionRef.js.map +1 -1
  522. package/dist/Types.d.ts +31 -34
  523. package/dist/Types.d.ts.map +1 -1
  524. package/dist/UndefinedOr.d.ts +62 -25
  525. package/dist/UndefinedOr.d.ts.map +1 -1
  526. package/dist/UndefinedOr.js +36 -25
  527. package/dist/UndefinedOr.js.map +1 -1
  528. package/dist/Unify.d.ts +72 -117
  529. package/dist/Unify.d.ts.map +1 -1
  530. package/dist/Unify.js +20 -6
  531. package/dist/Unify.js.map +1 -1
  532. package/dist/Utils.d.ts +5 -2
  533. package/dist/Utils.d.ts.map +1 -1
  534. package/dist/Utils.js +4 -0
  535. package/dist/Utils.js.map +1 -1
  536. package/dist/index.d.ts +1973 -418
  537. package/dist/index.d.ts.map +1 -1
  538. package/dist/index.js +1973 -418
  539. package/dist/index.js.map +1 -1
  540. package/dist/internal/schema/schema.js +1 -1
  541. package/dist/internal/schema/schema.js.map +1 -1
  542. package/dist/testing/FastCheck.d.ts +9 -6
  543. package/dist/testing/FastCheck.d.ts.map +1 -1
  544. package/dist/testing/FastCheck.js +9 -6
  545. package/dist/testing/FastCheck.js.map +1 -1
  546. package/dist/testing/TestClock.d.ts +39 -35
  547. package/dist/testing/TestClock.d.ts.map +1 -1
  548. package/dist/testing/TestClock.js +42 -12
  549. package/dist/testing/TestClock.js.map +1 -1
  550. package/dist/testing/TestConsole.d.ts +44 -36
  551. package/dist/testing/TestConsole.d.ts.map +1 -1
  552. package/dist/testing/TestConsole.js +30 -15
  553. package/dist/testing/TestConsole.js.map +1 -1
  554. package/dist/testing/TestSchema.d.ts +2 -0
  555. package/dist/testing/TestSchema.d.ts.map +1 -1
  556. package/dist/testing/TestSchema.js +9 -7
  557. package/dist/testing/TestSchema.js.map +1 -1
  558. package/dist/testing/index.d.ts +34 -0
  559. package/dist/testing/index.d.ts.map +1 -1
  560. package/dist/testing/index.js +34 -0
  561. package/dist/testing/index.js.map +1 -1
  562. package/dist/unstable/ai/AiError.d.ts +205 -147
  563. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  564. package/dist/unstable/ai/AiError.js +164 -109
  565. package/dist/unstable/ai/AiError.js.map +1 -1
  566. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  567. package/dist/unstable/ai/AnthropicStructuredOutput.js +2 -2
  568. package/dist/unstable/ai/Chat.d.ts +64 -41
  569. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  570. package/dist/unstable/ai/Chat.js +51 -33
  571. package/dist/unstable/ai/Chat.js.map +1 -1
  572. package/dist/unstable/ai/EmbeddingModel.d.ts +12 -11
  573. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
  574. package/dist/unstable/ai/EmbeddingModel.js +9 -8
  575. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  576. package/dist/unstable/ai/IdGenerator.d.ts +28 -18
  577. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  578. package/dist/unstable/ai/IdGenerator.js +18 -11
  579. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  580. package/dist/unstable/ai/LanguageModel.d.ts +31 -25
  581. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  582. package/dist/unstable/ai/LanguageModel.js +20 -14
  583. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  584. package/dist/unstable/ai/McpSchema.d.ts +342 -119
  585. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  586. package/dist/unstable/ai/McpSchema.js +266 -98
  587. package/dist/unstable/ai/McpSchema.js.map +1 -1
  588. package/dist/unstable/ai/McpServer.d.ts +56 -20
  589. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  590. package/dist/unstable/ai/McpServer.js +64 -16
  591. package/dist/unstable/ai/McpServer.js.map +1 -1
  592. package/dist/unstable/ai/Model.d.ts +10 -12
  593. package/dist/unstable/ai/Model.d.ts.map +1 -1
  594. package/dist/unstable/ai/Model.js +9 -7
  595. package/dist/unstable/ai/Model.js.map +1 -1
  596. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  597. package/dist/unstable/ai/OpenAiStructuredOutput.js +2 -2
  598. package/dist/unstable/ai/Prompt.d.ts +200 -176
  599. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  600. package/dist/unstable/ai/Prompt.js +77 -68
  601. package/dist/unstable/ai/Prompt.js.map +1 -1
  602. package/dist/unstable/ai/Response.d.ts +173 -160
  603. package/dist/unstable/ai/Response.d.ts.map +1 -1
  604. package/dist/unstable/ai/Response.js +43 -48
  605. package/dist/unstable/ai/Response.js.map +1 -1
  606. package/dist/unstable/ai/ResponseIdTracker.d.ts +43 -4
  607. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
  608. package/dist/unstable/ai/ResponseIdTracker.js +27 -2
  609. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  610. package/dist/unstable/ai/Telemetry.d.ts +43 -33
  611. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  612. package/dist/unstable/ai/Telemetry.js +15 -11
  613. package/dist/unstable/ai/Telemetry.js.map +1 -1
  614. package/dist/unstable/ai/Tokenizer.d.ts +14 -9
  615. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  616. package/dist/unstable/ai/Tokenizer.js +10 -6
  617. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  618. package/dist/unstable/ai/Tool.d.ts +167 -96
  619. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  620. package/dist/unstable/ai/Tool.js +107 -53
  621. package/dist/unstable/ai/Tool.js.map +1 -1
  622. package/dist/unstable/ai/Toolkit.d.ts +32 -39
  623. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  624. package/dist/unstable/ai/Toolkit.js +7 -5
  625. package/dist/unstable/ai/Toolkit.js.map +1 -1
  626. package/dist/unstable/ai/index.d.ts +121 -29
  627. package/dist/unstable/ai/index.d.ts.map +1 -1
  628. package/dist/unstable/ai/index.js +121 -29
  629. package/dist/unstable/ai/index.js.map +1 -1
  630. package/dist/unstable/cli/Argument.d.ts +226 -134
  631. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  632. package/dist/unstable/cli/Argument.js +101 -65
  633. package/dist/unstable/cli/Argument.js.map +1 -1
  634. package/dist/unstable/cli/CliError.d.ts +72 -26
  635. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  636. package/dist/unstable/cli/CliError.js +86 -23
  637. package/dist/unstable/cli/CliError.js.map +1 -1
  638. package/dist/unstable/cli/CliOutput.d.ts +48 -19
  639. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  640. package/dist/unstable/cli/CliOutput.js +32 -9
  641. package/dist/unstable/cli/CliOutput.js.map +1 -1
  642. package/dist/unstable/cli/Command.d.ts +196 -115
  643. package/dist/unstable/cli/Command.d.ts.map +1 -1
  644. package/dist/unstable/cli/Command.js +45 -31
  645. package/dist/unstable/cli/Command.js.map +1 -1
  646. package/dist/unstable/cli/Completions.d.ts +7 -7
  647. package/dist/unstable/cli/Completions.js +1 -1
  648. package/dist/unstable/cli/Flag.d.ts +235 -142
  649. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  650. package/dist/unstable/cli/Flag.js +111 -71
  651. package/dist/unstable/cli/Flag.js.map +1 -1
  652. package/dist/unstable/cli/GlobalFlag.d.ts +41 -13
  653. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  654. package/dist/unstable/cli/GlobalFlag.js +30 -7
  655. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  656. package/dist/unstable/cli/HelpDoc.d.ts +39 -14
  657. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  658. package/dist/unstable/cli/HelpDoc.js +21 -0
  659. package/dist/unstable/cli/Param.d.ts +110 -32
  660. package/dist/unstable/cli/Param.d.ts.map +1 -1
  661. package/dist/unstable/cli/Param.js +196 -135
  662. package/dist/unstable/cli/Param.js.map +1 -1
  663. package/dist/unstable/cli/Primitive.d.ts +79 -42
  664. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  665. package/dist/unstable/cli/Primitive.js +66 -35
  666. package/dist/unstable/cli/Primitive.js.map +1 -1
  667. package/dist/unstable/cli/Prompt.d.ts +183 -59
  668. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  669. package/dist/unstable/cli/Prompt.js +105 -23
  670. package/dist/unstable/cli/Prompt.js.map +1 -1
  671. package/dist/unstable/cli/index.d.ts +182 -0
  672. package/dist/unstable/cli/index.d.ts.map +1 -1
  673. package/dist/unstable/cli/index.js +205 -6
  674. package/dist/unstable/cli/index.js.map +1 -1
  675. package/dist/unstable/cli/internal/ansi.d.ts.map +1 -1
  676. package/dist/unstable/cli/internal/ansi.js +13 -0
  677. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  678. package/dist/unstable/cli/internal/command.d.ts +5 -1
  679. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  680. package/dist/unstable/cli/internal/command.js +5 -1
  681. package/dist/unstable/cli/internal/command.js.map +1 -1
  682. package/dist/unstable/cli/internal/config.d.ts +3 -0
  683. package/dist/unstable/cli/internal/config.d.ts.map +1 -1
  684. package/dist/unstable/cli/internal/config.js.map +1 -1
  685. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  686. package/dist/unstable/cli/internal/parser.js +0 -1
  687. package/dist/unstable/cli/internal/parser.js.map +1 -1
  688. package/dist/unstable/cluster/ClusterCron.d.ts +35 -1
  689. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  690. package/dist/unstable/cluster/ClusterCron.js +35 -1
  691. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  692. package/dist/unstable/cluster/ClusterError.d.ts +56 -7
  693. package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
  694. package/dist/unstable/cluster/ClusterError.js +56 -7
  695. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  696. package/dist/unstable/cluster/ClusterMetrics.d.ts +39 -5
  697. package/dist/unstable/cluster/ClusterMetrics.d.ts.map +1 -1
  698. package/dist/unstable/cluster/ClusterMetrics.js +39 -5
  699. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  700. package/dist/unstable/cluster/ClusterSchema.d.ts +61 -8
  701. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  702. package/dist/unstable/cluster/ClusterSchema.js +61 -8
  703. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  704. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +14 -2
  705. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  706. package/dist/unstable/cluster/ClusterWorkflowEngine.js +35 -2
  707. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  708. package/dist/unstable/cluster/DeliverAt.d.ts +39 -4
  709. package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
  710. package/dist/unstable/cluster/DeliverAt.js +11 -3
  711. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  712. package/dist/unstable/cluster/Entity.d.ts +74 -16
  713. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  714. package/dist/unstable/cluster/Entity.js +75 -10
  715. package/dist/unstable/cluster/Entity.js.map +1 -1
  716. package/dist/unstable/cluster/EntityAddress.d.ts +30 -2
  717. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  718. package/dist/unstable/cluster/EntityAddress.js +30 -2
  719. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  720. package/dist/unstable/cluster/EntityId.d.ts +18 -3
  721. package/dist/unstable/cluster/EntityId.d.ts.map +1 -1
  722. package/dist/unstable/cluster/EntityId.js +15 -2
  723. package/dist/unstable/cluster/EntityId.js.map +1 -1
  724. package/dist/unstable/cluster/EntityProxy.d.ts +42 -14
  725. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  726. package/dist/unstable/cluster/EntityProxy.js +30 -14
  727. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  728. package/dist/unstable/cluster/EntityProxyServer.d.ts +18 -2
  729. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  730. package/dist/unstable/cluster/EntityProxyServer.js +40 -8
  731. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  732. package/dist/unstable/cluster/EntityResource.d.ts +43 -6
  733. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  734. package/dist/unstable/cluster/EntityResource.js +11 -4
  735. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  736. package/dist/unstable/cluster/EntityType.d.ts +27 -3
  737. package/dist/unstable/cluster/EntityType.d.ts.map +1 -1
  738. package/dist/unstable/cluster/EntityType.js +24 -2
  739. package/dist/unstable/cluster/EntityType.js.map +1 -1
  740. package/dist/unstable/cluster/Envelope.d.ts +105 -23
  741. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  742. package/dist/unstable/cluster/Envelope.js +88 -14
  743. package/dist/unstable/cluster/Envelope.js.map +1 -1
  744. package/dist/unstable/cluster/HttpRunner.d.ts +88 -13
  745. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  746. package/dist/unstable/cluster/HttpRunner.js +88 -13
  747. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  748. package/dist/unstable/cluster/K8sHttpClient.d.ts +49 -6
  749. package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
  750. package/dist/unstable/cluster/K8sHttpClient.js +31 -6
  751. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  752. package/dist/unstable/cluster/MachineId.d.ts +24 -3
  753. package/dist/unstable/cluster/MachineId.d.ts.map +1 -1
  754. package/dist/unstable/cluster/MachineId.js +21 -2
  755. package/dist/unstable/cluster/MachineId.js.map +1 -1
  756. package/dist/unstable/cluster/Message.d.ts +102 -13
  757. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  758. package/dist/unstable/cluster/Message.js +86 -10
  759. package/dist/unstable/cluster/Message.js.map +1 -1
  760. package/dist/unstable/cluster/MessageStorage.d.ts +126 -21
  761. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  762. package/dist/unstable/cluster/MessageStorage.js +70 -10
  763. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  764. package/dist/unstable/cluster/Reply.d.ts +101 -12
  765. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  766. package/dist/unstable/cluster/Reply.js +64 -8
  767. package/dist/unstable/cluster/Reply.js.map +1 -1
  768. package/dist/unstable/cluster/Runner.d.ts +47 -17
  769. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  770. package/dist/unstable/cluster/Runner.js +47 -17
  771. package/dist/unstable/cluster/Runner.js.map +1 -1
  772. package/dist/unstable/cluster/RunnerAddress.d.ts +34 -2
  773. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  774. package/dist/unstable/cluster/RunnerAddress.js +34 -2
  775. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  776. package/dist/unstable/cluster/RunnerHealth.d.ts +40 -12
  777. package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
  778. package/dist/unstable/cluster/RunnerHealth.js +40 -12
  779. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  780. package/dist/unstable/cluster/RunnerServer.d.ts +7 -4
  781. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  782. package/dist/unstable/cluster/RunnerServer.js +31 -4
  783. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  784. package/dist/unstable/cluster/RunnerStorage.d.ts +42 -5
  785. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  786. package/dist/unstable/cluster/RunnerStorage.js +38 -4
  787. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  788. package/dist/unstable/cluster/Runners.d.ts +76 -13
  789. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  790. package/dist/unstable/cluster/Runners.js +73 -12
  791. package/dist/unstable/cluster/Runners.js.map +1 -1
  792. package/dist/unstable/cluster/ShardId.d.ts +53 -5
  793. package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
  794. package/dist/unstable/cluster/ShardId.js +49 -4
  795. package/dist/unstable/cluster/ShardId.js.map +1 -1
  796. package/dist/unstable/cluster/Sharding.d.ts +10 -2
  797. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  798. package/dist/unstable/cluster/Sharding.js +35 -4
  799. package/dist/unstable/cluster/Sharding.js.map +1 -1
  800. package/dist/unstable/cluster/ShardingConfig.d.ts +65 -9
  801. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  802. package/dist/unstable/cluster/ShardingConfig.js +66 -9
  803. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  804. package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts +27 -6
  805. package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts.map +1 -1
  806. package/dist/unstable/cluster/ShardingRegistrationEvent.js +28 -4
  807. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  808. package/dist/unstable/cluster/SingleRunner.d.ts +23 -1
  809. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  810. package/dist/unstable/cluster/SingleRunner.js +23 -1
  811. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  812. package/dist/unstable/cluster/Singleton.d.ts +15 -1
  813. package/dist/unstable/cluster/Singleton.d.ts.map +1 -1
  814. package/dist/unstable/cluster/Singleton.js +15 -1
  815. package/dist/unstable/cluster/Singleton.js.map +1 -1
  816. package/dist/unstable/cluster/SingletonAddress.d.ts +21 -1
  817. package/dist/unstable/cluster/SingletonAddress.d.ts.map +1 -1
  818. package/dist/unstable/cluster/SingletonAddress.js +21 -1
  819. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  820. package/dist/unstable/cluster/Snowflake.d.ts +90 -19
  821. package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
  822. package/dist/unstable/cluster/Snowflake.js +49 -13
  823. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  824. package/dist/unstable/cluster/SocketRunner.d.ts +8 -2
  825. package/dist/unstable/cluster/SocketRunner.d.ts.map +1 -1
  826. package/dist/unstable/cluster/SocketRunner.js +29 -2
  827. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  828. package/dist/unstable/cluster/SqlMessageStorage.d.ts +11 -3
  829. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  830. package/dist/unstable/cluster/SqlMessageStorage.js +27 -3
  831. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  832. package/dist/unstable/cluster/SqlRunnerStorage.d.ts +11 -3
  833. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  834. package/dist/unstable/cluster/SqlRunnerStorage.js +46 -7
  835. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  836. package/dist/unstable/cluster/TestRunner.d.ts +18 -1
  837. package/dist/unstable/cluster/TestRunner.d.ts.map +1 -1
  838. package/dist/unstable/cluster/TestRunner.js +18 -1
  839. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  840. package/dist/unstable/cluster/index.d.ts +790 -0
  841. package/dist/unstable/cluster/index.d.ts.map +1 -1
  842. package/dist/unstable/cluster/index.js +790 -0
  843. package/dist/unstable/cluster/index.js.map +1 -1
  844. package/dist/unstable/cluster/internal/hash.js +12 -0
  845. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  846. package/dist/unstable/devtools/DevTools.d.ts +26 -3
  847. package/dist/unstable/devtools/DevTools.d.ts.map +1 -1
  848. package/dist/unstable/devtools/DevTools.js +26 -3
  849. package/dist/unstable/devtools/DevTools.js.map +1 -1
  850. package/dist/unstable/devtools/DevToolsClient.d.ts +20 -5
  851. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  852. package/dist/unstable/devtools/DevToolsClient.js +32 -5
  853. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  854. package/dist/unstable/devtools/DevToolsSchema.d.ts +184 -44
  855. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  856. package/dist/unstable/devtools/DevToolsSchema.js +102 -20
  857. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  858. package/dist/unstable/devtools/DevToolsServer.d.ts +27 -2
  859. package/dist/unstable/devtools/DevToolsServer.d.ts.map +1 -1
  860. package/dist/unstable/devtools/DevToolsServer.js +21 -1
  861. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  862. package/dist/unstable/devtools/index.d.ts +58 -0
  863. package/dist/unstable/devtools/index.d.ts.map +1 -1
  864. package/dist/unstable/devtools/index.js +58 -0
  865. package/dist/unstable/devtools/index.js.map +1 -1
  866. package/dist/unstable/encoding/Msgpack.d.ts +81 -12
  867. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  868. package/dist/unstable/encoding/Msgpack.js +75 -9
  869. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  870. package/dist/unstable/encoding/Ndjson.d.ts +149 -21
  871. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  872. package/dist/unstable/encoding/Ndjson.js +97 -13
  873. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  874. package/dist/unstable/encoding/Sse.d.ts +109 -18
  875. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  876. package/dist/unstable/encoding/Sse.js +69 -13
  877. package/dist/unstable/encoding/Sse.js.map +1 -1
  878. package/dist/unstable/encoding/index.d.ts +49 -0
  879. package/dist/unstable/encoding/index.d.ts.map +1 -1
  880. package/dist/unstable/encoding/index.js +49 -0
  881. package/dist/unstable/encoding/index.js.map +1 -1
  882. package/dist/unstable/eventlog/Event.d.ts +115 -30
  883. package/dist/unstable/eventlog/Event.d.ts.map +1 -1
  884. package/dist/unstable/eventlog/Event.js +22 -2
  885. package/dist/unstable/eventlog/Event.js.map +1 -1
  886. package/dist/unstable/eventlog/EventGroup.d.ts +50 -17
  887. package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
  888. package/dist/unstable/eventlog/EventGroup.js +24 -6
  889. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  890. package/dist/unstable/eventlog/EventJournal.d.ts +104 -20
  891. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  892. package/dist/unstable/eventlog/EventJournal.js +108 -16
  893. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  894. package/dist/unstable/eventlog/EventLog.d.ts +150 -31
  895. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  896. package/dist/unstable/eventlog/EventLog.js +111 -20
  897. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  898. package/dist/unstable/eventlog/EventLogEncryption.d.ts +42 -6
  899. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  900. package/dist/unstable/eventlog/EventLogEncryption.js +38 -5
  901. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  902. package/dist/unstable/eventlog/EventLogMessage.d.ts +92 -18
  903. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  904. package/dist/unstable/eventlog/EventLogMessage.js +72 -16
  905. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  906. package/dist/unstable/eventlog/EventLogRemote.d.ts +35 -8
  907. package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
  908. package/dist/unstable/eventlog/EventLogRemote.js +54 -8
  909. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  910. package/dist/unstable/eventlog/EventLogServer.d.ts +17 -3
  911. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  912. package/dist/unstable/eventlog/EventLogServer.js +17 -3
  913. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  914. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +32 -6
  915. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  916. package/dist/unstable/eventlog/EventLogServerEncrypted.js +52 -6
  917. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  918. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +74 -16
  919. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  920. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +90 -16
  921. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  922. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +59 -15
  923. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  924. package/dist/unstable/eventlog/EventLogSessionAuth.js +73 -14
  925. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  926. package/dist/unstable/eventlog/SqlEventJournal.d.ts +10 -2
  927. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  928. package/dist/unstable/eventlog/SqlEventJournal.js +28 -2
  929. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  930. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts +32 -3
  931. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  932. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +32 -3
  933. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  934. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +10 -2
  935. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  936. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +28 -2
  937. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  938. package/dist/unstable/eventlog/index.d.ts +240 -0
  939. package/dist/unstable/eventlog/index.d.ts.map +1 -1
  940. package/dist/unstable/eventlog/index.js +240 -0
  941. package/dist/unstable/eventlog/index.js.map +1 -1
  942. package/dist/unstable/http/Cookies.d.ts +156 -77
  943. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  944. package/dist/unstable/http/Cookies.js +93 -39
  945. package/dist/unstable/http/Cookies.js.map +1 -1
  946. package/dist/unstable/http/Etag.d.ts +40 -7
  947. package/dist/unstable/http/Etag.d.ts.map +1 -1
  948. package/dist/unstable/http/Etag.js +27 -4
  949. package/dist/unstable/http/Etag.js.map +1 -1
  950. package/dist/unstable/http/FetchHttpClient.d.ts +29 -3
  951. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  952. package/dist/unstable/http/FetchHttpClient.js +33 -4
  953. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  954. package/dist/unstable/http/FindMyWay.d.ts +1 -1
  955. package/dist/unstable/http/FindMyWay.js +1 -1
  956. package/dist/unstable/http/Headers.d.ts +182 -36
  957. package/dist/unstable/http/Headers.d.ts.map +1 -1
  958. package/dist/unstable/http/Headers.js +86 -16
  959. package/dist/unstable/http/Headers.js.map +1 -1
  960. package/dist/unstable/http/HttpBody.d.ts +114 -26
  961. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  962. package/dist/unstable/http/HttpBody.js +98 -20
  963. package/dist/unstable/http/HttpBody.js.map +1 -1
  964. package/dist/unstable/http/HttpClient.d.ts +204 -96
  965. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  966. package/dist/unstable/http/HttpClient.js +85 -38
  967. package/dist/unstable/http/HttpClient.js.map +1 -1
  968. package/dist/unstable/http/HttpClientError.d.ts +68 -12
  969. package/dist/unstable/http/HttpClientError.d.ts.map +1 -1
  970. package/dist/unstable/http/HttpClientError.js +71 -9
  971. package/dist/unstable/http/HttpClientError.js.map +1 -1
  972. package/dist/unstable/http/HttpClientRequest.d.ts +318 -100
  973. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  974. package/dist/unstable/http/HttpClientRequest.js +151 -45
  975. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  976. package/dist/unstable/http/HttpClientResponse.d.ts +59 -16
  977. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  978. package/dist/unstable/http/HttpClientResponse.js +44 -11
  979. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  980. package/dist/unstable/http/HttpEffect.d.ts +42 -16
  981. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  982. package/dist/unstable/http/HttpEffect.js +33 -13
  983. package/dist/unstable/http/HttpEffect.js.map +1 -1
  984. package/dist/unstable/http/HttpIncomingMessage.d.ts +48 -7
  985. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  986. package/dist/unstable/http/HttpIncomingMessage.js +45 -6
  987. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  988. package/dist/unstable/http/HttpMethod.d.ts +38 -6
  989. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  990. package/dist/unstable/http/HttpMethod.js +27 -2
  991. package/dist/unstable/http/HttpMethod.js.map +1 -1
  992. package/dist/unstable/http/HttpMiddleware.d.ts +38 -11
  993. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  994. package/dist/unstable/http/HttpMiddleware.js +52 -10
  995. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  996. package/dist/unstable/http/HttpPlatform.d.ts +34 -3
  997. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  998. package/dist/unstable/http/HttpPlatform.js +34 -3
  999. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  1000. package/dist/unstable/http/HttpRouter.d.ts +209 -62
  1001. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  1002. package/dist/unstable/http/HttpRouter.js +136 -41
  1003. package/dist/unstable/http/HttpRouter.js.map +1 -1
  1004. package/dist/unstable/http/HttpServer.d.ts +151 -22
  1005. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  1006. package/dist/unstable/http/HttpServer.js +76 -11
  1007. package/dist/unstable/http/HttpServer.js.map +1 -1
  1008. package/dist/unstable/http/HttpServerError.d.ts +93 -10
  1009. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  1010. package/dist/unstable/http/HttpServerError.js +85 -8
  1011. package/dist/unstable/http/HttpServerError.js.map +1 -1
  1012. package/dist/unstable/http/HttpServerRequest.d.ts +125 -21
  1013. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  1014. package/dist/unstable/http/HttpServerRequest.js +101 -20
  1015. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  1016. package/dist/unstable/http/HttpServerRespondable.d.ts +32 -6
  1017. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  1018. package/dist/unstable/http/HttpServerRespondable.js +43 -5
  1019. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  1020. package/dist/unstable/http/HttpServerResponse.d.ts +391 -67
  1021. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  1022. package/dist/unstable/http/HttpServerResponse.js +205 -33
  1023. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  1024. package/dist/unstable/http/HttpStaticServer.d.ts +24 -8
  1025. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  1026. package/dist/unstable/http/HttpStaticServer.js +24 -8
  1027. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  1028. package/dist/unstable/http/HttpTraceContext.d.ts +53 -6
  1029. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  1030. package/dist/unstable/http/HttpTraceContext.js +47 -5
  1031. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  1032. package/dist/unstable/http/Multipart.d.ts +179 -28
  1033. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  1034. package/dist/unstable/http/Multipart.js +131 -19
  1035. package/dist/unstable/http/Multipart.js.map +1 -1
  1036. package/dist/unstable/http/Multipasta/HeadersParser.d.ts +1 -1
  1037. package/dist/unstable/http/Multipasta/HeadersParser.js +1 -1
  1038. package/dist/unstable/http/Multipasta/Node.d.ts +1 -1
  1039. package/dist/unstable/http/Multipasta/Node.js +1 -1
  1040. package/dist/unstable/http/Multipasta/Search.d.ts +1 -1
  1041. package/dist/unstable/http/Multipasta/Search.js +1 -1
  1042. package/dist/unstable/http/Multipasta/Web.d.ts +1 -1
  1043. package/dist/unstable/http/Multipasta/Web.js +1 -1
  1044. package/dist/unstable/http/Multipasta.d.ts +1 -1
  1045. package/dist/unstable/http/Multipasta.js +1 -1
  1046. package/dist/unstable/http/Template.d.ts +53 -1
  1047. package/dist/unstable/http/Template.d.ts.map +1 -1
  1048. package/dist/unstable/http/Template.js +26 -0
  1049. package/dist/unstable/http/Template.js.map +1 -1
  1050. package/dist/unstable/http/Url.d.ts +70 -56
  1051. package/dist/unstable/http/Url.d.ts.map +1 -1
  1052. package/dist/unstable/http/Url.js +35 -21
  1053. package/dist/unstable/http/Url.js.map +1 -1
  1054. package/dist/unstable/http/UrlParams.d.ts +237 -51
  1055. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  1056. package/dist/unstable/http/UrlParams.js +120 -25
  1057. package/dist/unstable/http/UrlParams.js.map +1 -1
  1058. package/dist/unstable/http/index.d.ts +452 -0
  1059. package/dist/unstable/http/index.d.ts.map +1 -1
  1060. package/dist/unstable/http/index.js +452 -0
  1061. package/dist/unstable/http/index.js.map +1 -1
  1062. package/dist/unstable/httpapi/HttpApi.d.ts +49 -14
  1063. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  1064. package/dist/unstable/httpapi/HttpApi.js +14 -8
  1065. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  1066. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +54 -16
  1067. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  1068. package/dist/unstable/httpapi/HttpApiBuilder.js +44 -6
  1069. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  1070. package/dist/unstable/httpapi/HttpApiClient.d.ts +57 -15
  1071. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  1072. package/dist/unstable/httpapi/HttpApiClient.js +42 -6
  1073. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  1074. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +214 -59
  1075. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  1076. package/dist/unstable/httpapi/HttpApiEndpoint.js +53 -9
  1077. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  1078. package/dist/unstable/httpapi/HttpApiError.d.ts +81 -1
  1079. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  1080. package/dist/unstable/httpapi/HttpApiError.js +98 -1
  1081. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  1082. package/dist/unstable/httpapi/HttpApiGroup.d.ts +87 -20
  1083. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  1084. package/dist/unstable/httpapi/HttpApiGroup.js +5 -2
  1085. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  1086. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +113 -22
  1087. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  1088. package/dist/unstable/httpapi/HttpApiMiddleware.js +49 -5
  1089. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  1090. package/dist/unstable/httpapi/HttpApiScalar.d.ts +19 -4
  1091. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  1092. package/dist/unstable/httpapi/HttpApiScalar.js +32 -2
  1093. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  1094. package/dist/unstable/httpapi/HttpApiSchema.d.ts +86 -38
  1095. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  1096. package/dist/unstable/httpapi/HttpApiSchema.js +59 -35
  1097. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  1098. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +73 -17
  1099. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  1100. package/dist/unstable/httpapi/HttpApiSecurity.js +38 -5
  1101. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  1102. package/dist/unstable/httpapi/HttpApiSwagger.d.ts +4 -3
  1103. package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
  1104. package/dist/unstable/httpapi/HttpApiSwagger.js +23 -3
  1105. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  1106. package/dist/unstable/httpapi/HttpApiTest.d.ts +6 -1
  1107. package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
  1108. package/dist/unstable/httpapi/HttpApiTest.js +26 -1
  1109. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  1110. package/dist/unstable/httpapi/OpenApi.d.ts +86 -15
  1111. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  1112. package/dist/unstable/httpapi/OpenApi.js +73 -15
  1113. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  1114. package/dist/unstable/httpapi/index.d.ts +310 -25
  1115. package/dist/unstable/httpapi/index.d.ts.map +1 -1
  1116. package/dist/unstable/httpapi/index.js +310 -25
  1117. package/dist/unstable/httpapi/index.js.map +1 -1
  1118. package/dist/unstable/observability/Otlp.d.ts +33 -3
  1119. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  1120. package/dist/unstable/observability/Otlp.js +14 -3
  1121. package/dist/unstable/observability/Otlp.js.map +1 -1
  1122. package/dist/unstable/observability/OtlpExporter.d.ts +8 -1
  1123. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  1124. package/dist/unstable/observability/OtlpExporter.js +32 -1
  1125. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  1126. package/dist/unstable/observability/OtlpLogger.d.ts +15 -2
  1127. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  1128. package/dist/unstable/observability/OtlpLogger.js +29 -2
  1129. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  1130. package/dist/unstable/observability/OtlpMetrics.d.ts +17 -5
  1131. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  1132. package/dist/unstable/observability/OtlpMetrics.js +32 -2
  1133. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  1134. package/dist/unstable/observability/OtlpResource.d.ts +49 -12
  1135. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  1136. package/dist/unstable/observability/OtlpResource.js +47 -5
  1137. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  1138. package/dist/unstable/observability/OtlpSerialization.d.ts +28 -3
  1139. package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
  1140. package/dist/unstable/observability/OtlpSerialization.js +28 -3
  1141. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  1142. package/dist/unstable/observability/OtlpTracer.d.ts +19 -2
  1143. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  1144. package/dist/unstable/observability/OtlpTracer.js +32 -2
  1145. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  1146. package/dist/unstable/observability/PrometheusMetrics.d.ts +36 -16
  1147. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  1148. package/dist/unstable/observability/PrometheusMetrics.js +9 -7
  1149. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  1150. package/dist/unstable/observability/index.d.ts +160 -3
  1151. package/dist/unstable/observability/index.d.ts.map +1 -1
  1152. package/dist/unstable/observability/index.js +160 -3
  1153. package/dist/unstable/observability/index.js.map +1 -1
  1154. package/dist/unstable/persistence/KeyValueStore.d.ts +93 -18
  1155. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  1156. package/dist/unstable/persistence/KeyValueStore.js +81 -21
  1157. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1158. package/dist/unstable/persistence/Persistable.d.ts +76 -15
  1159. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  1160. package/dist/unstable/persistence/Persistable.js +22 -5
  1161. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1162. package/dist/unstable/persistence/PersistedCache.d.ts +27 -2
  1163. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  1164. package/dist/unstable/persistence/PersistedCache.js +24 -1
  1165. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1166. package/dist/unstable/persistence/PersistedQueue.d.ts +73 -16
  1167. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  1168. package/dist/unstable/persistence/PersistedQueue.js +60 -13
  1169. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1170. package/dist/unstable/persistence/Persistence.d.ts +98 -16
  1171. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1172. package/dist/unstable/persistence/Persistence.js +91 -14
  1173. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1174. package/dist/unstable/persistence/RateLimiter.d.ts +101 -21
  1175. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1176. package/dist/unstable/persistence/RateLimiter.js +85 -16
  1177. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1178. package/dist/unstable/persistence/Redis.d.ts +26 -5
  1179. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  1180. package/dist/unstable/persistence/Redis.js +36 -4
  1181. package/dist/unstable/persistence/Redis.js.map +1 -1
  1182. package/dist/unstable/persistence/index.d.ts +147 -0
  1183. package/dist/unstable/persistence/index.d.ts.map +1 -1
  1184. package/dist/unstable/persistence/index.js +147 -0
  1185. package/dist/unstable/persistence/index.js.map +1 -1
  1186. package/dist/unstable/process/ChildProcess.d.ts +87 -64
  1187. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1188. package/dist/unstable/process/ChildProcess.js +25 -18
  1189. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1190. package/dist/unstable/process/ChildProcessSpawner.d.ts +23 -12
  1191. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1192. package/dist/unstable/process/ChildProcessSpawner.js +11 -6
  1193. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1194. package/dist/unstable/process/index.d.ts +2 -1
  1195. package/dist/unstable/process/index.d.ts.map +1 -1
  1196. package/dist/unstable/process/index.js +2 -1
  1197. package/dist/unstable/process/index.js.map +1 -1
  1198. package/dist/unstable/reactivity/AsyncResult.d.ts +198 -59
  1199. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1200. package/dist/unstable/reactivity/AsyncResult.js +121 -36
  1201. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1202. package/dist/unstable/reactivity/Atom.d.ts +544 -130
  1203. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1204. package/dist/unstable/reactivity/Atom.js +252 -58
  1205. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1206. package/dist/unstable/reactivity/AtomHttpApi.d.ts +41 -2
  1207. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1208. package/dist/unstable/reactivity/AtomHttpApi.js +35 -1
  1209. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1210. package/dist/unstable/reactivity/AtomRef.d.ts +51 -7
  1211. package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
  1212. package/dist/unstable/reactivity/AtomRef.js +29 -3
  1213. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1214. package/dist/unstable/reactivity/AtomRegistry.d.ts +135 -21
  1215. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  1216. package/dist/unstable/reactivity/AtomRegistry.js +69 -10
  1217. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1218. package/dist/unstable/reactivity/AtomRpc.d.ts +36 -2
  1219. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1220. package/dist/unstable/reactivity/AtomRpc.js +29 -1
  1221. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1222. package/dist/unstable/reactivity/Hydration.d.ts +28 -5
  1223. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
  1224. package/dist/unstable/reactivity/Hydration.js +35 -3
  1225. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1226. package/dist/unstable/reactivity/Reactivity.d.ts +94 -13
  1227. package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
  1228. package/dist/unstable/reactivity/Reactivity.js +60 -7
  1229. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1230. package/dist/unstable/reactivity/index.d.ts +167 -0
  1231. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  1232. package/dist/unstable/reactivity/index.js +167 -0
  1233. package/dist/unstable/reactivity/index.js.map +1 -1
  1234. package/dist/unstable/rpc/Rpc.d.ts +254 -56
  1235. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1236. package/dist/unstable/rpc/Rpc.js +44 -11
  1237. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1238. package/dist/unstable/rpc/RpcClient.d.ts +80 -19
  1239. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1240. package/dist/unstable/rpc/RpcClient.js +52 -12
  1241. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1242. package/dist/unstable/rpc/RpcClientError.d.ts +26 -2
  1243. package/dist/unstable/rpc/RpcClientError.d.ts.map +1 -1
  1244. package/dist/unstable/rpc/RpcClientError.js +26 -2
  1245. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1246. package/dist/unstable/rpc/RpcGroup.d.ts +51 -8
  1247. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  1248. package/dist/unstable/rpc/RpcGroup.js +3 -1
  1249. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1250. package/dist/unstable/rpc/RpcMessage.d.ts +128 -32
  1251. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1252. package/dist/unstable/rpc/RpcMessage.js +23 -7
  1253. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1254. package/dist/unstable/rpc/RpcMiddleware.d.ts +100 -20
  1255. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  1256. package/dist/unstable/rpc/RpcMiddleware.js +39 -3
  1257. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1258. package/dist/unstable/rpc/RpcSchema.d.ts +38 -4
  1259. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  1260. package/dist/unstable/rpc/RpcSchema.js +34 -3
  1261. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1262. package/dist/unstable/rpc/RpcSerialization.d.ts +60 -13
  1263. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1264. package/dist/unstable/rpc/RpcSerialization.js +56 -12
  1265. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1266. package/dist/unstable/rpc/RpcServer.d.ts +73 -23
  1267. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  1268. package/dist/unstable/rpc/RpcServer.js +69 -22
  1269. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1270. package/dist/unstable/rpc/RpcTest.d.ts +20 -1
  1271. package/dist/unstable/rpc/RpcTest.d.ts.map +1 -1
  1272. package/dist/unstable/rpc/RpcTest.js +20 -1
  1273. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1274. package/dist/unstable/rpc/RpcWorker.d.ts +39 -6
  1275. package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
  1276. package/dist/unstable/rpc/RpcWorker.js +16 -4
  1277. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1278. package/dist/unstable/rpc/Utils.d.ts +10 -0
  1279. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  1280. package/dist/unstable/rpc/Utils.js +10 -0
  1281. package/dist/unstable/rpc/Utils.js.map +1 -1
  1282. package/dist/unstable/rpc/index.d.ts +272 -0
  1283. package/dist/unstable/rpc/index.d.ts.map +1 -1
  1284. package/dist/unstable/rpc/index.js +272 -0
  1285. package/dist/unstable/rpc/index.js.map +1 -1
  1286. package/dist/unstable/schema/Model.d.ts +192 -59
  1287. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1288. package/dist/unstable/schema/Model.js +122 -38
  1289. package/dist/unstable/schema/Model.js.map +1 -1
  1290. package/dist/unstable/schema/VariantSchema.d.ts +101 -24
  1291. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1292. package/dist/unstable/schema/VariantSchema.js +22 -6
  1293. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1294. package/dist/unstable/schema/index.d.ts +37 -0
  1295. package/dist/unstable/schema/index.d.ts.map +1 -1
  1296. package/dist/unstable/schema/index.js +37 -0
  1297. package/dist/unstable/schema/index.js.map +1 -1
  1298. package/dist/unstable/socket/Socket.d.ts +168 -34
  1299. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1300. package/dist/unstable/socket/Socket.js +124 -28
  1301. package/dist/unstable/socket/Socket.js.map +1 -1
  1302. package/dist/unstable/socket/SocketServer.d.ts +58 -10
  1303. package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
  1304. package/dist/unstable/socket/SocketServer.js +43 -5
  1305. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1306. package/dist/unstable/socket/index.d.ts +44 -0
  1307. package/dist/unstable/socket/index.d.ts.map +1 -1
  1308. package/dist/unstable/socket/index.js +44 -0
  1309. package/dist/unstable/socket/index.js.map +1 -1
  1310. package/dist/unstable/sql/Migrator.d.ts +40 -9
  1311. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  1312. package/dist/unstable/sql/Migrator.js +45 -5
  1313. package/dist/unstable/sql/Migrator.js.map +1 -1
  1314. package/dist/unstable/sql/SqlClient.d.ts +38 -2
  1315. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1316. package/dist/unstable/sql/SqlClient.js +40 -1
  1317. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1318. package/dist/unstable/sql/SqlConnection.d.ts +34 -3
  1319. package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
  1320. package/dist/unstable/sql/SqlConnection.js +22 -0
  1321. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1322. package/dist/unstable/sql/SqlError.d.ts +117 -0
  1323. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  1324. package/dist/unstable/sql/SqlError.js +131 -0
  1325. package/dist/unstable/sql/SqlError.js.map +1 -1
  1326. package/dist/unstable/sql/SqlModel.d.ts +25 -5
  1327. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  1328. package/dist/unstable/sql/SqlModel.js +8 -4
  1329. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1330. package/dist/unstable/sql/SqlResolver.d.ts +56 -13
  1331. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  1332. package/dist/unstable/sql/SqlResolver.js +44 -10
  1333. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1334. package/dist/unstable/sql/SqlSchema.d.ts +29 -8
  1335. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  1336. package/dist/unstable/sql/SqlSchema.js +29 -8
  1337. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1338. package/dist/unstable/sql/SqlStream.d.ts +4 -0
  1339. package/dist/unstable/sql/SqlStream.d.ts.map +1 -1
  1340. package/dist/unstable/sql/SqlStream.js +24 -0
  1341. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1342. package/dist/unstable/sql/Statement.d.ts +151 -24
  1343. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1344. package/dist/unstable/sql/Statement.js +91 -6
  1345. package/dist/unstable/sql/Statement.js.map +1 -1
  1346. package/dist/unstable/sql/index.d.ts +179 -1
  1347. package/dist/unstable/sql/index.d.ts.map +1 -1
  1348. package/dist/unstable/sql/index.js +179 -1
  1349. package/dist/unstable/sql/index.js.map +1 -1
  1350. package/dist/unstable/workers/Transferable.d.ts +72 -20
  1351. package/dist/unstable/workers/Transferable.d.ts.map +1 -1
  1352. package/dist/unstable/workers/Transferable.js +57 -14
  1353. package/dist/unstable/workers/Transferable.js.map +1 -1
  1354. package/dist/unstable/workers/Worker.d.ts +61 -8
  1355. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  1356. package/dist/unstable/workers/Worker.js +44 -4
  1357. package/dist/unstable/workers/Worker.js.map +1 -1
  1358. package/dist/unstable/workers/WorkerError.d.ts +31 -9
  1359. package/dist/unstable/workers/WorkerError.d.ts.map +1 -1
  1360. package/dist/unstable/workers/WorkerError.js +44 -7
  1361. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1362. package/dist/unstable/workers/WorkerRunner.d.ts +32 -3
  1363. package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
  1364. package/dist/unstable/workers/WorkerRunner.js +24 -1
  1365. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1366. package/dist/unstable/workers/index.d.ts +81 -1
  1367. package/dist/unstable/workers/index.d.ts.map +1 -1
  1368. package/dist/unstable/workers/index.js +81 -1
  1369. package/dist/unstable/workers/index.js.map +1 -1
  1370. package/dist/unstable/workflow/Activity.d.ts +61 -10
  1371. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  1372. package/dist/unstable/workflow/Activity.js +20 -5
  1373. package/dist/unstable/workflow/Activity.js.map +1 -1
  1374. package/dist/unstable/workflow/DurableClock.d.ts +12 -3
  1375. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  1376. package/dist/unstable/workflow/DurableClock.js +22 -2
  1377. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1378. package/dist/unstable/workflow/DurableDeferred.d.ts +128 -31
  1379. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  1380. package/dist/unstable/workflow/DurableDeferred.js +77 -13
  1381. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1382. package/dist/unstable/workflow/DurableQueue.d.ts +33 -8
  1383. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1384. package/dist/unstable/workflow/DurableQueue.js +26 -6
  1385. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1386. package/dist/unstable/workflow/Workflow.d.ts +102 -31
  1387. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1388. package/dist/unstable/workflow/Workflow.js +75 -19
  1389. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1390. package/dist/unstable/workflow/WorkflowEngine.d.ts +40 -5
  1391. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  1392. package/dist/unstable/workflow/WorkflowEngine.js +16 -4
  1393. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1394. package/dist/unstable/workflow/WorkflowProxy.d.ts +40 -12
  1395. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1396. package/dist/unstable/workflow/WorkflowProxy.js +8 -12
  1397. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1398. package/dist/unstable/workflow/WorkflowProxyServer.d.ts +37 -2
  1399. package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
  1400. package/dist/unstable/workflow/WorkflowProxyServer.js +12 -6
  1401. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1402. package/dist/unstable/workflow/index.d.ts +160 -0
  1403. package/dist/unstable/workflow/index.d.ts.map +1 -1
  1404. package/dist/unstable/workflow/index.js +160 -0
  1405. package/dist/unstable/workflow/index.js.map +1 -1
  1406. package/package.json +11 -11
  1407. package/src/Array.ts +151 -106
  1408. package/src/BigDecimal.ts +620 -553
  1409. package/src/BigInt.ts +342 -274
  1410. package/src/Boolean.ts +189 -156
  1411. package/src/Brand.ts +30 -5
  1412. package/src/Cache.ts +334 -167
  1413. package/src/Cause.ts +84 -73
  1414. package/src/Channel.ts +1639 -667
  1415. package/src/ChannelSchema.ts +137 -12
  1416. package/src/Chunk.ts +575 -429
  1417. package/src/Clock.ts +16 -9
  1418. package/src/Combiner.ts +11 -5
  1419. package/src/Config.ts +80 -68
  1420. package/src/ConfigProvider.ts +33 -32
  1421. package/src/Console.ts +88 -58
  1422. package/src/Context.ts +401 -190
  1423. package/src/Cron.ts +109 -48
  1424. package/src/Crypto.ts +327 -0
  1425. package/src/Data.ts +9 -3
  1426. package/src/DateTime.ts +893 -464
  1427. package/src/Deferred.ts +367 -175
  1428. package/src/Differ.ts +44 -2
  1429. package/src/Duration.ts +333 -186
  1430. package/src/Effect.ts +2201 -2289
  1431. package/src/Effectable.ts +38 -3
  1432. package/src/Encoding.ts +78 -28
  1433. package/src/Equal.ts +4 -3
  1434. package/src/Equivalence.ts +18 -24
  1435. package/src/ErrorReporter.ts +66 -82
  1436. package/src/ExecutionPlan.ts +106 -12
  1437. package/src/Exit.ts +6 -5
  1438. package/src/Fiber.ts +71 -40
  1439. package/src/FiberHandle.ts +157 -57
  1440. package/src/FiberMap.ts +328 -163
  1441. package/src/FiberSet.ts +130 -52
  1442. package/src/FileSystem.ts +104 -74
  1443. package/src/Filter.ts +166 -88
  1444. package/src/Formatter.ts +4 -70
  1445. package/src/Function.ts +218 -151
  1446. package/src/Graph.ts +714 -415
  1447. package/src/HKT.ts +29 -13
  1448. package/src/Hash.ts +35 -24
  1449. package/src/HashMap.ts +540 -388
  1450. package/src/HashRing.ts +111 -34
  1451. package/src/HashSet.ts +239 -153
  1452. package/src/Inspectable.ts +30 -17
  1453. package/src/Iterable.ts +336 -222
  1454. package/src/JsonPatch.ts +13 -10
  1455. package/src/JsonPointer.ts +13 -11
  1456. package/src/JsonSchema.ts +16 -0
  1457. package/src/Latch.ts +97 -26
  1458. package/src/Layer.ts +547 -445
  1459. package/src/LayerMap.ts +99 -26
  1460. package/src/LogLevel.ts +92 -131
  1461. package/src/Logger.ts +365 -297
  1462. package/src/ManagedRuntime.ts +78 -19
  1463. package/src/Match.ts +135 -161
  1464. package/src/Metric.ts +362 -313
  1465. package/src/MutableHashMap.ts +202 -127
  1466. package/src/MutableHashSet.ts +120 -52
  1467. package/src/MutableList.ts +157 -100
  1468. package/src/MutableRef.ts +129 -90
  1469. package/src/Newtype.ts +15 -2
  1470. package/src/NonEmptyIterable.ts +38 -48
  1471. package/src/Number.ts +261 -205
  1472. package/src/Optic.ts +6 -7
  1473. package/src/Option.ts +133 -156
  1474. package/src/Order.ts +6 -6
  1475. package/src/Ordering.ts +56 -45
  1476. package/src/PartitionedSemaphore.ts +225 -40
  1477. package/src/Path.ts +77 -13
  1478. package/src/Pipeable.ts +82 -24
  1479. package/src/PlatformError.ts +74 -6
  1480. package/src/Pool.ts +94 -31
  1481. package/src/Predicate.ts +17 -24
  1482. package/src/PrimaryKey.ts +11 -3
  1483. package/src/PubSub.ts +385 -309
  1484. package/src/Pull.ts +94 -25
  1485. package/src/Queue.ts +303 -184
  1486. package/src/Random.ts +69 -93
  1487. package/src/RcMap.ts +151 -141
  1488. package/src/RcRef.ts +68 -32
  1489. package/src/Record.ts +282 -137
  1490. package/src/Redactable.ts +7 -5
  1491. package/src/Redacted.ts +63 -34
  1492. package/src/Reducer.ts +3 -1
  1493. package/src/Ref.ts +173 -134
  1494. package/src/References.ts +73 -31
  1495. package/src/RegExp.ts +12 -6
  1496. package/src/Request.ts +159 -34
  1497. package/src/RequestResolver.ts +278 -121
  1498. package/src/Resource.ts +45 -7
  1499. package/src/Result.ts +137 -153
  1500. package/src/Runtime.ts +42 -21
  1501. package/src/Schedule.ts +585 -613
  1502. package/src/Scheduler.ts +44 -7
  1503. package/src/Schema.ts +1309 -615
  1504. package/src/SchemaAST.ts +123 -93
  1505. package/src/SchemaGetter.ts +52 -37
  1506. package/src/SchemaIssue.ts +19 -24
  1507. package/src/SchemaParser.ts +306 -85
  1508. package/src/SchemaRepresentation.ts +89 -77
  1509. package/src/SchemaTransformation.ts +97 -46
  1510. package/src/SchemaUtils.ts +24 -1
  1511. package/src/Scope.ts +107 -65
  1512. package/src/ScopedCache.ts +195 -59
  1513. package/src/ScopedRef.ts +28 -8
  1514. package/src/Semaphore.ts +61 -37
  1515. package/src/Sink.ts +461 -206
  1516. package/src/Stdio.ts +43 -6
  1517. package/src/Stream.ts +2361 -1613
  1518. package/src/String.ts +174 -97
  1519. package/src/Struct.ts +20 -18
  1520. package/src/SubscriptionRef.ts +309 -204
  1521. package/src/Symbol.ts +13 -5
  1522. package/src/SynchronizedRef.ts +278 -62
  1523. package/src/Take.ts +26 -2
  1524. package/src/Terminal.ts +40 -7
  1525. package/src/Tracer.ts +233 -59
  1526. package/src/Trie.ts +280 -245
  1527. package/src/Tuple.ts +34 -32
  1528. package/src/TxChunk.ts +200 -155
  1529. package/src/TxDeferred.ts +43 -29
  1530. package/src/TxHashMap.ts +370 -231
  1531. package/src/TxHashSet.ts +253 -159
  1532. package/src/TxPriorityQueue.ts +97 -65
  1533. package/src/TxPubSub.ts +77 -49
  1534. package/src/TxQueue.ts +277 -242
  1535. package/src/TxReentrantLock.ts +70 -47
  1536. package/src/TxRef.ts +69 -40
  1537. package/src/TxSemaphore.ts +101 -115
  1538. package/src/TxSubscriptionRef.ts +74 -50
  1539. package/src/Types.ts +31 -34
  1540. package/src/UndefinedOr.ts +62 -25
  1541. package/src/Unify.ts +72 -117
  1542. package/src/Utils.ts +5 -2
  1543. package/src/index.ts +1976 -420
  1544. package/src/internal/schema/schema.ts +1 -1
  1545. package/src/testing/FastCheck.ts +9 -6
  1546. package/src/testing/TestClock.ts +63 -35
  1547. package/src/testing/TestConsole.ts +54 -36
  1548. package/src/testing/TestSchema.ts +10 -8
  1549. package/src/testing/index.ts +34 -0
  1550. package/src/unstable/ai/AiError.ts +195 -137
  1551. package/src/unstable/ai/AnthropicStructuredOutput.ts +2 -2
  1552. package/src/unstable/ai/Chat.ts +68 -43
  1553. package/src/unstable/ai/EmbeddingModel.ts +12 -11
  1554. package/src/unstable/ai/IdGenerator.ts +28 -18
  1555. package/src/unstable/ai/LanguageModel.ts +35 -27
  1556. package/src/unstable/ai/McpSchema.ts +342 -119
  1557. package/src/unstable/ai/McpServer.ts +79 -20
  1558. package/src/unstable/ai/Model.ts +10 -12
  1559. package/src/unstable/ai/OpenAiStructuredOutput.ts +2 -2
  1560. package/src/unstable/ai/Prompt.ts +216 -192
  1561. package/src/unstable/ai/Response.ts +179 -167
  1562. package/src/unstable/ai/ResponseIdTracker.ts +43 -4
  1563. package/src/unstable/ai/Telemetry.ts +43 -33
  1564. package/src/unstable/ai/Tokenizer.ts +14 -9
  1565. package/src/unstable/ai/Tool.ts +168 -97
  1566. package/src/unstable/ai/Toolkit.ts +51 -46
  1567. package/src/unstable/ai/index.ts +121 -29
  1568. package/src/unstable/cli/Argument.ts +226 -134
  1569. package/src/unstable/cli/CliError.ts +96 -26
  1570. package/src/unstable/cli/CliOutput.ts +48 -19
  1571. package/src/unstable/cli/Command.ts +196 -115
  1572. package/src/unstable/cli/Completions.ts +7 -7
  1573. package/src/unstable/cli/Flag.ts +235 -142
  1574. package/src/unstable/cli/GlobalFlag.ts +41 -13
  1575. package/src/unstable/cli/HelpDoc.ts +39 -14
  1576. package/src/unstable/cli/Param.ts +395 -260
  1577. package/src/unstable/cli/Primitive.ts +79 -42
  1578. package/src/unstable/cli/Prompt.ts +207 -59
  1579. package/src/unstable/cli/index.ts +205 -6
  1580. package/src/unstable/cli/internal/ansi.ts +13 -0
  1581. package/src/unstable/cli/internal/command.ts +5 -1
  1582. package/src/unstable/cli/internal/config.ts +3 -0
  1583. package/src/unstable/cli/internal/lexer.ts +11 -0
  1584. package/src/unstable/cli/internal/parser.ts +0 -1
  1585. package/src/unstable/cluster/ClusterCron.ts +35 -1
  1586. package/src/unstable/cluster/ClusterError.ts +56 -7
  1587. package/src/unstable/cluster/ClusterMetrics.ts +39 -5
  1588. package/src/unstable/cluster/ClusterSchema.ts +61 -8
  1589. package/src/unstable/cluster/ClusterWorkflowEngine.ts +35 -2
  1590. package/src/unstable/cluster/DeliverAt.ts +39 -4
  1591. package/src/unstable/cluster/Entity.ts +106 -16
  1592. package/src/unstable/cluster/EntityAddress.ts +30 -2
  1593. package/src/unstable/cluster/EntityId.ts +18 -3
  1594. package/src/unstable/cluster/EntityProxy.ts +42 -14
  1595. package/src/unstable/cluster/EntityProxyServer.ts +45 -8
  1596. package/src/unstable/cluster/EntityResource.ts +43 -6
  1597. package/src/unstable/cluster/EntityType.ts +27 -3
  1598. package/src/unstable/cluster/Envelope.ts +128 -23
  1599. package/src/unstable/cluster/HttpRunner.ts +88 -13
  1600. package/src/unstable/cluster/K8sHttpClient.ts +49 -6
  1601. package/src/unstable/cluster/MachineId.ts +24 -3
  1602. package/src/unstable/cluster/Message.ts +102 -13
  1603. package/src/unstable/cluster/MessageStorage.ts +126 -21
  1604. package/src/unstable/cluster/Reply.ts +101 -12
  1605. package/src/unstable/cluster/Runner.ts +47 -17
  1606. package/src/unstable/cluster/RunnerAddress.ts +34 -2
  1607. package/src/unstable/cluster/RunnerHealth.ts +40 -12
  1608. package/src/unstable/cluster/RunnerServer.ts +31 -4
  1609. package/src/unstable/cluster/RunnerStorage.ts +42 -5
  1610. package/src/unstable/cluster/Runners.ts +76 -13
  1611. package/src/unstable/cluster/ShardId.ts +53 -5
  1612. package/src/unstable/cluster/Sharding.ts +35 -4
  1613. package/src/unstable/cluster/ShardingConfig.ts +75 -10
  1614. package/src/unstable/cluster/ShardingRegistrationEvent.ts +31 -7
  1615. package/src/unstable/cluster/SingleRunner.ts +23 -1
  1616. package/src/unstable/cluster/Singleton.ts +15 -1
  1617. package/src/unstable/cluster/SingletonAddress.ts +21 -1
  1618. package/src/unstable/cluster/Snowflake.ts +90 -19
  1619. package/src/unstable/cluster/SocketRunner.ts +29 -2
  1620. package/src/unstable/cluster/SqlMessageStorage.ts +27 -3
  1621. package/src/unstable/cluster/SqlRunnerStorage.ts +46 -7
  1622. package/src/unstable/cluster/TestRunner.ts +18 -1
  1623. package/src/unstable/cluster/index.ts +790 -0
  1624. package/src/unstable/cluster/internal/hash.ts +12 -0
  1625. package/src/unstable/devtools/DevTools.ts +26 -3
  1626. package/src/unstable/devtools/DevToolsClient.ts +32 -5
  1627. package/src/unstable/devtools/DevToolsSchema.ts +201 -44
  1628. package/src/unstable/devtools/DevToolsServer.ts +27 -2
  1629. package/src/unstable/devtools/index.ts +58 -0
  1630. package/src/unstable/encoding/Msgpack.ts +97 -12
  1631. package/src/unstable/encoding/Ndjson.ts +149 -21
  1632. package/src/unstable/encoding/Sse.ts +109 -18
  1633. package/src/unstable/encoding/index.ts +49 -0
  1634. package/src/unstable/eventlog/Event.ts +131 -30
  1635. package/src/unstable/eventlog/EventGroup.ts +50 -17
  1636. package/src/unstable/eventlog/EventJournal.ts +120 -20
  1637. package/src/unstable/eventlog/EventLog.ts +150 -31
  1638. package/src/unstable/eventlog/EventLogEncryption.ts +42 -6
  1639. package/src/unstable/eventlog/EventLogMessage.ts +92 -18
  1640. package/src/unstable/eventlog/EventLogRemote.ts +54 -8
  1641. package/src/unstable/eventlog/EventLogServer.ts +33 -3
  1642. package/src/unstable/eventlog/EventLogServerEncrypted.ts +52 -6
  1643. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +90 -16
  1644. package/src/unstable/eventlog/EventLogSessionAuth.ts +77 -15
  1645. package/src/unstable/eventlog/SqlEventJournal.ts +28 -2
  1646. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +32 -3
  1647. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +28 -2
  1648. package/src/unstable/eventlog/index.ts +240 -0
  1649. package/src/unstable/http/Cookies.ts +156 -77
  1650. package/src/unstable/http/Etag.ts +40 -7
  1651. package/src/unstable/http/FetchHttpClient.ts +33 -4
  1652. package/src/unstable/http/FindMyWay.ts +1 -1
  1653. package/src/unstable/http/Headers.ts +252 -50
  1654. package/src/unstable/http/HttpBody.ts +128 -26
  1655. package/src/unstable/http/HttpClient.ts +204 -96
  1656. package/src/unstable/http/HttpClientError.ts +80 -12
  1657. package/src/unstable/http/HttpClientRequest.ts +318 -100
  1658. package/src/unstable/http/HttpClientResponse.ts +59 -16
  1659. package/src/unstable/http/HttpEffect.ts +66 -18
  1660. package/src/unstable/http/HttpIncomingMessage.ts +48 -7
  1661. package/src/unstable/http/HttpMethod.ts +38 -6
  1662. package/src/unstable/http/HttpMiddleware.ts +60 -11
  1663. package/src/unstable/http/HttpPlatform.ts +34 -3
  1664. package/src/unstable/http/HttpRouter.ts +232 -69
  1665. package/src/unstable/http/HttpServer.ts +151 -22
  1666. package/src/unstable/http/HttpServerError.ts +93 -10
  1667. package/src/unstable/http/HttpServerRequest.ts +125 -21
  1668. package/src/unstable/http/HttpServerRespondable.ts +49 -6
  1669. package/src/unstable/http/HttpServerResponse.ts +391 -67
  1670. package/src/unstable/http/HttpStaticServer.ts +24 -8
  1671. package/src/unstable/http/HttpTraceContext.ts +53 -6
  1672. package/src/unstable/http/Multipart.ts +179 -28
  1673. package/src/unstable/http/Multipasta/HeadersParser.ts +1 -1
  1674. package/src/unstable/http/Multipasta/Node.ts +1 -1
  1675. package/src/unstable/http/Multipasta/Search.ts +1 -1
  1676. package/src/unstable/http/Multipasta/Web.ts +1 -1
  1677. package/src/unstable/http/Multipasta.ts +1 -1
  1678. package/src/unstable/http/Template.ts +53 -1
  1679. package/src/unstable/http/Url.ts +70 -56
  1680. package/src/unstable/http/UrlParams.ts +237 -51
  1681. package/src/unstable/http/index.ts +452 -0
  1682. package/src/unstable/httpapi/HttpApi.ts +49 -14
  1683. package/src/unstable/httpapi/HttpApiBuilder.ts +81 -16
  1684. package/src/unstable/httpapi/HttpApiClient.ts +78 -15
  1685. package/src/unstable/httpapi/HttpApiEndpoint.ts +238 -59
  1686. package/src/unstable/httpapi/HttpApiError.ts +100 -1
  1687. package/src/unstable/httpapi/HttpApiGroup.ts +87 -20
  1688. package/src/unstable/httpapi/HttpApiMiddleware.ts +113 -22
  1689. package/src/unstable/httpapi/HttpApiScalar.ts +38 -4
  1690. package/src/unstable/httpapi/HttpApiSchema.ts +86 -38
  1691. package/src/unstable/httpapi/HttpApiSecurity.ts +73 -17
  1692. package/src/unstable/httpapi/HttpApiSwagger.ts +23 -3
  1693. package/src/unstable/httpapi/HttpApiTest.ts +26 -1
  1694. package/src/unstable/httpapi/OpenApi.ts +115 -15
  1695. package/src/unstable/httpapi/index.ts +310 -25
  1696. package/src/unstable/observability/Otlp.ts +33 -3
  1697. package/src/unstable/observability/OtlpExporter.ts +32 -1
  1698. package/src/unstable/observability/OtlpLogger.ts +32 -2
  1699. package/src/unstable/observability/OtlpMetrics.ts +39 -5
  1700. package/src/unstable/observability/OtlpResource.ts +68 -12
  1701. package/src/unstable/observability/OtlpSerialization.ts +28 -3
  1702. package/src/unstable/observability/OtlpTracer.ts +41 -2
  1703. package/src/unstable/observability/PrometheusMetrics.ts +36 -16
  1704. package/src/unstable/observability/index.ts +160 -3
  1705. package/src/unstable/persistence/KeyValueStore.ts +108 -28
  1706. package/src/unstable/persistence/Persistable.ts +76 -15
  1707. package/src/unstable/persistence/PersistedCache.ts +27 -2
  1708. package/src/unstable/persistence/PersistedQueue.ts +98 -16
  1709. package/src/unstable/persistence/Persistence.ts +98 -16
  1710. package/src/unstable/persistence/RateLimiter.ts +101 -21
  1711. package/src/unstable/persistence/Redis.ts +42 -5
  1712. package/src/unstable/persistence/index.ts +147 -0
  1713. package/src/unstable/process/ChildProcess.ts +90 -66
  1714. package/src/unstable/process/ChildProcessSpawner.ts +23 -12
  1715. package/src/unstable/process/index.ts +2 -1
  1716. package/src/unstable/reactivity/AsyncResult.ts +204 -61
  1717. package/src/unstable/reactivity/Atom.ts +598 -139
  1718. package/src/unstable/reactivity/AtomHttpApi.ts +41 -2
  1719. package/src/unstable/reactivity/AtomRef.ts +51 -7
  1720. package/src/unstable/reactivity/AtomRegistry.ts +141 -22
  1721. package/src/unstable/reactivity/AtomRpc.ts +36 -2
  1722. package/src/unstable/reactivity/Hydration.ts +45 -5
  1723. package/src/unstable/reactivity/Reactivity.ts +94 -13
  1724. package/src/unstable/reactivity/index.ts +167 -0
  1725. package/src/unstable/rpc/Rpc.ts +254 -56
  1726. package/src/unstable/rpc/RpcClient.ts +106 -19
  1727. package/src/unstable/rpc/RpcClientError.ts +26 -2
  1728. package/src/unstable/rpc/RpcGroup.ts +51 -8
  1729. package/src/unstable/rpc/RpcMessage.ts +128 -32
  1730. package/src/unstable/rpc/RpcMiddleware.ts +100 -20
  1731. package/src/unstable/rpc/RpcSchema.ts +38 -4
  1732. package/src/unstable/rpc/RpcSerialization.ts +60 -13
  1733. package/src/unstable/rpc/RpcServer.ts +107 -23
  1734. package/src/unstable/rpc/RpcTest.ts +20 -1
  1735. package/src/unstable/rpc/RpcWorker.ts +39 -6
  1736. package/src/unstable/rpc/Utils.ts +33 -0
  1737. package/src/unstable/rpc/index.ts +272 -0
  1738. package/src/unstable/schema/Model.ts +245 -61
  1739. package/src/unstable/schema/VariantSchema.ts +101 -24
  1740. package/src/unstable/schema/index.ts +37 -0
  1741. package/src/unstable/socket/Socket.ts +168 -34
  1742. package/src/unstable/socket/SocketServer.ts +58 -10
  1743. package/src/unstable/socket/index.ts +44 -0
  1744. package/src/unstable/sql/Migrator.ts +61 -9
  1745. package/src/unstable/sql/SqlClient.ts +59 -2
  1746. package/src/unstable/sql/SqlConnection.ts +34 -3
  1747. package/src/unstable/sql/SqlError.ts +135 -0
  1748. package/src/unstable/sql/SqlModel.ts +25 -5
  1749. package/src/unstable/sql/SqlResolver.ts +56 -13
  1750. package/src/unstable/sql/SqlSchema.ts +29 -8
  1751. package/src/unstable/sql/SqlStream.ts +24 -0
  1752. package/src/unstable/sql/Statement.ts +168 -24
  1753. package/src/unstable/sql/index.ts +179 -1
  1754. package/src/unstable/workers/Transferable.ts +72 -20
  1755. package/src/unstable/workers/Worker.ts +61 -8
  1756. package/src/unstable/workers/WorkerError.ts +50 -9
  1757. package/src/unstable/workers/WorkerRunner.ts +32 -3
  1758. package/src/unstable/workers/index.ts +81 -1
  1759. package/src/unstable/workflow/Activity.ts +61 -10
  1760. package/src/unstable/workflow/DurableClock.ts +26 -3
  1761. package/src/unstable/workflow/DurableDeferred.ts +148 -31
  1762. package/src/unstable/workflow/DurableQueue.ts +33 -8
  1763. package/src/unstable/workflow/Workflow.ts +123 -31
  1764. package/src/unstable/workflow/WorkflowEngine.ts +40 -5
  1765. package/src/unstable/workflow/WorkflowProxy.ts +40 -12
  1766. package/src/unstable/workflow/WorkflowProxyServer.ts +41 -6
  1767. package/src/unstable/workflow/index.ts +160 -0
package/src/Graph.ts CHANGED
@@ -1,4 +1,54 @@
1
1
  /**
2
+ * The `Graph` module provides immutable and scoped-mutable graph data
3
+ * structures for modeling relationships between indexed nodes and edges. A
4
+ * graph can be directed or undirected, stores user-defined data on both nodes
5
+ * and edges, and exposes traversal, analysis, path finding, transformation, and
6
+ * diagram export utilities.
7
+ *
8
+ * **Mental model**
9
+ *
10
+ * - Nodes and edges are addressed by stable numeric indices: {@link NodeIndex}
11
+ * and {@link EdgeIndex}
12
+ * - Node data has type `N`; edge data has type `E`
13
+ * - {@link Graph} values are immutable snapshots; use {@link MutableGraph}
14
+ * through {@link mutate}, {@link beginMutation}, or constructor callbacks to
15
+ * add, remove, or update nodes and edges
16
+ * - Directed graphs follow edge direction for neighbors and traversals, while
17
+ * undirected graphs treat each edge as connecting both endpoints
18
+ * - Missing lookups return `Option`, while structurally invalid operations such
19
+ * as adding an edge to a missing node throw {@link GraphError}
20
+ *
21
+ * **Common tasks**
22
+ *
23
+ * - Create graphs: {@link directed}, {@link undirected}
24
+ * - Mutate safely: {@link mutate}, {@link addNode}, {@link addEdge},
25
+ * {@link removeNode}, {@link removeEdge}
26
+ * - Query contents: {@link getNode}, {@link getEdge}, {@link hasNode},
27
+ * {@link hasEdge}, {@link nodeCount}, {@link edgeCount}, {@link neighbors}
28
+ * - Transform data: {@link updateNode}, {@link updateEdge}, {@link mapNodes},
29
+ * {@link mapEdges}, {@link filterNodes}, {@link filterEdges},
30
+ * {@link filterMapNodes}, {@link filterMapEdges}
31
+ * - Traverse lazily: {@link dfs}, {@link bfs}, {@link topo},
32
+ * {@link dfsPostOrder}, {@link nodes}, {@link edges}, {@link Walker}
33
+ * - Analyze structure: {@link isAcyclic}, {@link isBipartite},
34
+ * {@link connectedComponents}, {@link stronglyConnectedComponents},
35
+ * {@link externals}
36
+ * - Find paths: {@link dijkstra}, {@link astar}, {@link bellmanFord},
37
+ * {@link floydWarshall}
38
+ * - Export diagrams: {@link toGraphViz}, {@link toMermaid}
39
+ *
40
+ * **Gotchas**
41
+ *
42
+ * - Only mutable graphs can be changed. Create one with {@link mutate} or by
43
+ * passing a callback to {@link directed} / {@link undirected}.
44
+ * - Traversal APIs return lazy {@link Walker} values. Use {@link indices},
45
+ * {@link values}, or {@link entries} to choose what each iteration yields.
46
+ * - `NodeIndex` and `EdgeIndex` values are identifiers, not array offsets. They
47
+ * are not reused after removals.
48
+ * - Shortest-path algorithms require a cost function. {@link dijkstra} and
49
+ * {@link astar} reject negative weights; use {@link bellmanFord} or
50
+ * {@link floydWarshall} when negative weights are part of the model.
51
+ *
2
52
  * @since 4.0.0
3
53
  */
4
54
 
@@ -19,24 +69,24 @@ const TypeId = "~effect/collections/Graph"
19
69
  /**
20
70
  * Node index for node identification using plain numbers.
21
71
  *
22
- * @since 4.0.0
23
72
  * @category models
73
+ * @since 3.18.0
24
74
  */
25
75
  export type NodeIndex = number
26
76
 
27
77
  /**
28
78
  * Edge index for edge identification using plain numbers.
29
79
  *
30
- * @since 4.0.0
31
80
  * @category models
81
+ * @since 3.18.0
32
82
  */
33
83
  export type EdgeIndex = number
34
84
 
35
85
  /**
36
86
  * Edge data containing source, target, and user data.
37
87
  *
38
- * @since 4.0.0
39
88
  * @category models
89
+ * @since 3.18.0
40
90
  */
41
91
  export class Edge<E> extends Data.Class<{
42
92
  readonly source: NodeIndex
@@ -47,16 +97,21 @@ export class Edge<E> extends Data.Class<{
47
97
  /**
48
98
  * Graph type for distinguishing directed and undirected graphs.
49
99
  *
50
- * @since 4.0.0
51
100
  * @category models
101
+ * @since 3.18.0
52
102
  */
53
103
  export type Kind = "directed" | "undirected"
54
104
 
55
105
  /**
56
- * Graph prototype interface.
106
+ * Common structural interface shared by immutable and mutable graphs.
107
+ *
108
+ * **Details**
109
+ *
110
+ * Contains the node and edge maps, adjacency indexes, allocation counters, and
111
+ * shared protocols used by both `Graph` and `MutableGraph`.
57
112
  *
58
- * @since 4.0.0
59
113
  * @category models
114
+ * @since 3.18.0
60
115
  */
61
116
  export interface Proto<out N, out E> extends Iterable<readonly [NodeIndex, N]>, Equal.Equal, Pipeable, Inspectable {
62
117
  readonly [TypeId]: typeof TypeId
@@ -72,8 +127,8 @@ export interface Proto<out N, out E> extends Iterable<readonly [NodeIndex, N]>,
72
127
  /**
73
128
  * Immutable graph interface.
74
129
  *
75
- * @since 4.0.0
76
130
  * @category models
131
+ * @since 3.18.0
77
132
  */
78
133
  export interface Graph<out N, out E, T extends Kind = "directed"> extends Proto<N, E> {
79
134
  readonly type: T
@@ -83,8 +138,8 @@ export interface Graph<out N, out E, T extends Kind = "directed"> extends Proto<
83
138
  /**
84
139
  * Mutable graph interface.
85
140
  *
86
- * @since 4.0.0
87
141
  * @category models
142
+ * @since 3.18.0
88
143
  */
89
144
  export interface MutableGraph<out N, out E, T extends Kind = "directed"> extends Proto<N, E> {
90
145
  readonly type: T
@@ -94,32 +149,32 @@ export interface MutableGraph<out N, out E, T extends Kind = "directed"> extends
94
149
  /**
95
150
  * Directed graph type alias.
96
151
  *
97
- * @since 4.0.0
98
152
  * @category models
153
+ * @since 3.18.0
99
154
  */
100
155
  export type DirectedGraph<N, E> = Graph<N, E, "directed">
101
156
 
102
157
  /**
103
158
  * Undirected graph type alias.
104
159
  *
105
- * @since 4.0.0
106
160
  * @category models
161
+ * @since 3.18.0
107
162
  */
108
163
  export type UndirectedGraph<N, E> = Graph<N, E, "undirected">
109
164
 
110
165
  /**
111
166
  * Mutable directed graph type alias.
112
167
  *
113
- * @since 4.0.0
114
168
  * @category models
169
+ * @since 3.18.0
115
170
  */
116
171
  export type MutableDirectedGraph<N, E> = MutableGraph<N, E, "directed">
117
172
 
118
173
  /**
119
174
  * Mutable undirected graph type alias.
120
175
  *
121
- * @since 4.0.0
122
176
  * @category models
177
+ * @since 3.18.0
123
178
  */
124
179
  export type MutableUndirectedGraph<N, E> = MutableGraph<N, E, "undirected">
125
180
 
@@ -205,8 +260,12 @@ const ProtoGraph = {
205
260
  // TODO: Do we need safe variants for these?
206
261
 
207
262
  /**
208
- * @since 4.0.0
263
+ * Error thrown by graph operations when the requested graph structure is
264
+ * invalid, such as referencing a missing node or using unsupported edge
265
+ * weights.
266
+ *
209
267
  * @category errors
268
+ * @since 3.18.0
210
269
  */
211
270
  export class GraphError extends Data.TaggedError("GraphError")<{
212
271
  readonly message: string
@@ -220,15 +279,19 @@ const missingNode = (node: number) => new GraphError({ message: `Node ${node} do
220
279
  // =============================================================================
221
280
 
222
281
  /**
282
+ * Returns `true` if a value has the graph runtime type identifier, narrowing
283
+ * it to a `Graph`.
284
+ *
285
+ * @category guards
223
286
  * @since 4.0.0
224
- * @category Guards
225
287
  */
226
288
  export const isGraph = (u: unknown): u is Graph<unknown, unknown> => hasProperty(u, TypeId)
227
289
 
228
290
  /**
229
291
  * Creates a directed graph, optionally with initial mutations.
230
292
  *
231
- * @example
293
+ * **Example** (Creating a directed graph)
294
+ *
232
295
  * ```ts
233
296
  * import { Graph } from "effect"
234
297
  *
@@ -242,8 +305,8 @@ export const isGraph = (u: unknown): u is Graph<unknown, unknown> => hasProperty
242
305
  * })
243
306
  * ```
244
307
  *
245
- * @since 4.0.0
246
308
  * @category constructors
309
+ * @since 3.18.0
247
310
  */
248
311
  export const directed = <N, E>(mutate?: (mutable: MutableDirectedGraph<N, E>) => void): DirectedGraph<N, E> => {
249
312
  const graph: Mutable<DirectedGraph<N, E>> = Object.create(ProtoGraph)
@@ -269,7 +332,8 @@ export const directed = <N, E>(mutate?: (mutable: MutableDirectedGraph<N, E>) =>
269
332
  /**
270
333
  * Creates an undirected graph, optionally with initial mutations.
271
334
  *
272
- * @example
335
+ * **Example** (Creating an undirected graph)
336
+ *
273
337
  * ```ts
274
338
  * import { Graph } from "effect"
275
339
  *
@@ -283,8 +347,8 @@ export const directed = <N, E>(mutate?: (mutable: MutableDirectedGraph<N, E>) =>
283
347
  * })
284
348
  * ```
285
349
  *
286
- * @since 4.0.0
287
350
  * @category constructors
351
+ * @since 3.18.0
288
352
  */
289
353
  export const undirected = <N, E>(mutate?: (mutable: MutableUndirectedGraph<N, E>) => void): UndirectedGraph<N, E> => {
290
354
  const graph: Mutable<UndirectedGraph<N, E>> = Object.create(ProtoGraph)
@@ -314,7 +378,8 @@ export const undirected = <N, E>(mutate?: (mutable: MutableUndirectedGraph<N, E>
314
378
  /**
315
379
  * Creates a mutable scope for safe graph mutations by copying the data structure.
316
380
  *
317
- * @example
381
+ * **Example** (Beginning a mutation scope)
382
+ *
318
383
  * ```ts
319
384
  * import { Graph } from "effect"
320
385
  *
@@ -323,8 +388,8 @@ export const undirected = <N, E>(mutate?: (mutable: MutableUndirectedGraph<N, E>
323
388
  * // Now mutable can be safely modified without affecting original graph
324
389
  * ```
325
390
  *
326
- * @since 4.0.0
327
391
  * @category mutations
392
+ * @since 3.18.0
328
393
  */
329
394
  export const beginMutation = <N, E, T extends Kind = "directed">(
330
395
  graph: Graph<N, E, T>
@@ -358,7 +423,8 @@ export const beginMutation = <N, E, T extends Kind = "directed">(
358
423
  /**
359
424
  * Converts a mutable graph back to an immutable graph, ending the mutation scope.
360
425
  *
361
- * @example
426
+ * **Example** (Ending a mutation scope)
427
+ *
362
428
  * ```ts
363
429
  * import { Graph } from "effect"
364
430
  *
@@ -368,8 +434,8 @@ export const beginMutation = <N, E, T extends Kind = "directed">(
368
434
  * const newGraph = Graph.endMutation(mutable)
369
435
  * ```
370
436
  *
371
- * @since 4.0.0
372
437
  * @category mutations
438
+ * @since 3.18.0
373
439
  */
374
440
  export const endMutation = <N, E, T extends Kind = "directed">(
375
441
  mutable: MutableGraph<N, E, T>
@@ -391,55 +457,70 @@ export const endMutation = <N, E, T extends Kind = "directed">(
391
457
  /**
392
458
  * Performs scoped mutations on a graph, automatically managing the mutation lifecycle.
393
459
  *
394
- * @example
460
+ * **Example** (Applying scoped mutations)
461
+ *
395
462
  * ```ts
396
463
  * import { Graph } from "effect"
397
464
  *
398
465
  * const graph = Graph.directed<string, number>()
399
466
  * const newGraph = Graph.mutate(graph, (mutable) => {
400
- * // Safe mutations go here
401
- * // mutable gets automatically converted back to immutable
467
+ * const nodeA = Graph.addNode(mutable, "A")
468
+ * const nodeB = Graph.addNode(mutable, "B")
469
+ * Graph.addEdge(mutable, nodeA, nodeB, 1)
402
470
  * })
471
+ *
472
+ * console.log(Graph.nodeCount(newGraph)) // 2
473
+ * console.log(Graph.edgeCount(newGraph)) // 1
403
474
  * ```
404
475
  *
405
- * @since 4.0.0
406
476
  * @category mutations
477
+ * @since 3.18.0
407
478
  */
408
479
  export const mutate: {
409
480
  /**
410
481
  * Performs scoped mutations on a graph, automatically managing the mutation lifecycle.
411
482
  *
412
- * @example
483
+ * **Example** (Applying scoped mutations)
484
+ *
413
485
  * ```ts
414
486
  * import { Graph } from "effect"
415
487
  *
416
488
  * const graph = Graph.directed<string, number>()
417
489
  * const newGraph = Graph.mutate(graph, (mutable) => {
418
- * // Safe mutations go here
419
- * // mutable gets automatically converted back to immutable
490
+ * const nodeA = Graph.addNode(mutable, "A")
491
+ * const nodeB = Graph.addNode(mutable, "B")
492
+ * Graph.addEdge(mutable, nodeA, nodeB, 1)
420
493
  * })
494
+ *
495
+ * console.log(Graph.nodeCount(newGraph)) // 2
496
+ * console.log(Graph.edgeCount(newGraph)) // 1
421
497
  * ```
422
498
  *
423
- * @since 4.0.0
424
499
  * @category mutations
500
+ * @since 3.18.0
425
501
  */
426
502
  <N, E, T extends Kind = "directed">(f: (mutable: MutableGraph<N, E, T>) => void): (graph: Graph<N, E, T>) => Graph<N, E, T>
427
503
  /**
428
504
  * Performs scoped mutations on a graph, automatically managing the mutation lifecycle.
429
505
  *
430
- * @example
506
+ * **Example** (Applying scoped mutations)
507
+ *
431
508
  * ```ts
432
509
  * import { Graph } from "effect"
433
510
  *
434
511
  * const graph = Graph.directed<string, number>()
435
512
  * const newGraph = Graph.mutate(graph, (mutable) => {
436
- * // Safe mutations go here
437
- * // mutable gets automatically converted back to immutable
513
+ * const nodeA = Graph.addNode(mutable, "A")
514
+ * const nodeB = Graph.addNode(mutable, "B")
515
+ * Graph.addEdge(mutable, nodeA, nodeB, 1)
438
516
  * })
517
+ *
518
+ * console.log(Graph.nodeCount(newGraph)) // 2
519
+ * console.log(Graph.edgeCount(newGraph)) // 1
439
520
  * ```
440
521
  *
441
- * @since 4.0.0
442
522
  * @category mutations
523
+ * @since 3.18.0
443
524
  */
444
525
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T>, f: (mutable: MutableGraph<N, E, T>) => void): Graph<N, E, T>
445
526
  } = dual(2, <N, E, T extends Kind = "directed">(
@@ -458,7 +539,8 @@ export const mutate: {
458
539
  /**
459
540
  * Adds a new node to a mutable graph and returns its index.
460
541
  *
461
- * @example
542
+ * **Example** (Adding nodes)
543
+ *
462
544
  * ```ts
463
545
  * import { Graph } from "effect"
464
546
  *
@@ -470,8 +552,8 @@ export const mutate: {
470
552
  * })
471
553
  * ```
472
554
  *
473
- * @since 4.0.0
474
555
  * @category mutations
556
+ * @since 3.18.0
475
557
  */
476
558
  export const addNode = <N, E, T extends Kind = "directed">(
477
559
  mutable: MutableGraph<N, E, T>,
@@ -495,10 +577,10 @@ export const addNode = <N, E, T extends Kind = "directed">(
495
577
  /**
496
578
  * Gets the data associated with a node index, if it exists.
497
579
  *
498
- * @example
580
+ * **Example** (Getting node data)
581
+ *
499
582
  * ```ts
500
- * import { Graph } from "effect"
501
- * import * as Option from "effect/Option"
583
+ * import { Graph, Option } from "effect"
502
584
  *
503
585
  * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
504
586
  * Graph.addNode(mutable, "Node A")
@@ -512,17 +594,17 @@ export const addNode = <N, E, T extends Kind = "directed">(
512
594
  * }
513
595
  * ```
514
596
  *
515
- * @since 4.0.0
516
597
  * @category getters
598
+ * @since 3.18.0
517
599
  */
518
600
  export const getNode: {
519
601
  /**
520
602
  * Gets the data associated with a node index, if it exists.
521
603
  *
522
- * @example
604
+ * **Example** (Getting node data)
605
+ *
523
606
  * ```ts
524
- * import { Graph } from "effect"
525
- * import * as Option from "effect/Option"
607
+ * import { Graph, Option } from "effect"
526
608
  *
527
609
  * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
528
610
  * Graph.addNode(mutable, "Node A")
@@ -536,17 +618,17 @@ export const getNode: {
536
618
  * }
537
619
  * ```
538
620
  *
539
- * @since 4.0.0
540
621
  * @category getters
622
+ * @since 3.18.0
541
623
  */
542
624
  <N, E, T extends Kind = "directed">(nodeIndex: NodeIndex): (graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<N>
543
625
  /**
544
626
  * Gets the data associated with a node index, if it exists.
545
627
  *
546
- * @example
628
+ * **Example** (Getting node data)
629
+ *
547
630
  * ```ts
548
- * import { Graph } from "effect"
549
- * import * as Option from "effect/Option"
631
+ * import { Graph, Option } from "effect"
550
632
  *
551
633
  * const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
552
634
  * Graph.addNode(mutable, "Node A")
@@ -560,8 +642,8 @@ export const getNode: {
560
642
  * }
561
643
  * ```
562
644
  *
563
- * @since 4.0.0
564
645
  * @category getters
646
+ * @since 3.18.0
565
647
  */
566
648
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, nodeIndex: NodeIndex): Option.Option<N>
567
649
  } = dual(2, <N, E, T extends Kind = "directed">(
@@ -572,7 +654,8 @@ export const getNode: {
572
654
  /**
573
655
  * Checks if a node with the given index exists in the graph.
574
656
  *
575
- * @example
657
+ * **Example** (Checking node existence)
658
+ *
576
659
  * ```ts
577
660
  * import { Graph } from "effect"
578
661
  *
@@ -589,14 +672,15 @@ export const getNode: {
589
672
  * console.log(notExists) // false
590
673
  * ```
591
674
  *
592
- * @since 4.0.0
593
675
  * @category getters
676
+ * @since 3.18.0
594
677
  */
595
678
  export const hasNode: {
596
679
  /**
597
680
  * Checks if a node with the given index exists in the graph.
598
681
  *
599
- * @example
682
+ * **Example** (Checking node existence)
683
+ *
600
684
  * ```ts
601
685
  * import { Graph } from "effect"
602
686
  *
@@ -613,14 +697,15 @@ export const hasNode: {
613
697
  * console.log(notExists) // false
614
698
  * ```
615
699
  *
616
- * @since 4.0.0
617
700
  * @category getters
701
+ * @since 3.18.0
618
702
  */
619
703
  (nodeIndex: NodeIndex): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => boolean
620
704
  /**
621
705
  * Checks if a node with the given index exists in the graph.
622
706
  *
623
- * @example
707
+ * **Example** (Checking node existence)
708
+ *
624
709
  * ```ts
625
710
  * import { Graph } from "effect"
626
711
  *
@@ -637,8 +722,8 @@ export const hasNode: {
637
722
  * console.log(notExists) // false
638
723
  * ```
639
724
  *
640
- * @since 4.0.0
641
725
  * @category getters
726
+ * @since 3.18.0
642
727
  */
643
728
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, nodeIndex: NodeIndex): boolean
644
729
  } = dual(2, <N, E, T extends Kind = "directed">(
@@ -649,7 +734,8 @@ export const hasNode: {
649
734
  /**
650
735
  * Returns the number of nodes in the graph.
651
736
  *
652
- * @example
737
+ * **Example** (Counting nodes)
738
+ *
653
739
  * ```ts
654
740
  * import { Graph } from "effect"
655
741
  *
@@ -665,8 +751,8 @@ export const hasNode: {
665
751
  * console.log(Graph.nodeCount(graphWithNodes)) // 3
666
752
  * ```
667
753
  *
668
- * @since 4.0.0
669
754
  * @category getters
755
+ * @since 3.18.0
670
756
  */
671
757
  export const nodeCount = <N, E, T extends Kind = "directed">(
672
758
  graph: Graph<N, E, T> | MutableGraph<N, E, T>
@@ -675,7 +761,8 @@ export const nodeCount = <N, E, T extends Kind = "directed">(
675
761
  /**
676
762
  * Finds the first node that matches the given predicate.
677
763
  *
678
- * @example
764
+ * **Example** (Finding the first matching node)
765
+ *
679
766
  * ```ts
680
767
  * import { Graph } from "effect"
681
768
  *
@@ -692,14 +779,15 @@ export const nodeCount = <N, E, T extends Kind = "directed">(
692
779
  * console.log(notFound) // Option.none()
693
780
  * ```
694
781
  *
695
- * @since 4.0.0
696
782
  * @category getters
783
+ * @since 3.18.0
697
784
  */
698
785
  export const findNode: {
699
786
  /**
700
787
  * Finds the first node that matches the given predicate.
701
788
  *
702
- * @example
789
+ * **Example** (Finding the first matching node)
790
+ *
703
791
  * ```ts
704
792
  * import { Graph } from "effect"
705
793
  *
@@ -716,14 +804,15 @@ export const findNode: {
716
804
  * console.log(notFound) // Option.none()
717
805
  * ```
718
806
  *
719
- * @since 4.0.0
720
807
  * @category getters
808
+ * @since 3.18.0
721
809
  */
722
810
  <N>(predicate: (data: N) => boolean): <E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<NodeIndex>
723
811
  /**
724
812
  * Finds the first node that matches the given predicate.
725
813
  *
726
- * @example
814
+ * **Example** (Finding the first matching node)
815
+ *
727
816
  * ```ts
728
817
  * import { Graph } from "effect"
729
818
  *
@@ -740,8 +829,8 @@ export const findNode: {
740
829
  * console.log(notFound) // Option.none()
741
830
  * ```
742
831
  *
743
- * @since 4.0.0
744
832
  * @category getters
833
+ * @since 3.18.0
745
834
  */
746
835
  <N, E, T extends Kind = "directed">(
747
836
  graph: Graph<N, E, T> | MutableGraph<N, E, T>,
@@ -762,7 +851,8 @@ export const findNode: {
762
851
  /**
763
852
  * Finds all nodes that match the given predicate.
764
853
  *
765
- * @example
854
+ * **Example** (Finding matching nodes)
855
+ *
766
856
  * ```ts
767
857
  * import { Graph } from "effect"
768
858
  *
@@ -779,14 +869,15 @@ export const findNode: {
779
869
  * console.log(empty) // []
780
870
  * ```
781
871
  *
782
- * @since 4.0.0
783
872
  * @category getters
873
+ * @since 3.18.0
784
874
  */
785
875
  export const findNodes: {
786
876
  /**
787
877
  * Finds all nodes that match the given predicate.
788
878
  *
789
- * @example
879
+ * **Example** (Finding matching nodes)
880
+ *
790
881
  * ```ts
791
882
  * import { Graph } from "effect"
792
883
  *
@@ -803,14 +894,15 @@ export const findNodes: {
803
894
  * console.log(empty) // []
804
895
  * ```
805
896
  *
806
- * @since 4.0.0
807
897
  * @category getters
898
+ * @since 3.18.0
808
899
  */
809
900
  <N>(predicate: (data: N) => boolean): <E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Array<NodeIndex>
810
901
  /**
811
902
  * Finds all nodes that match the given predicate.
812
903
  *
813
- * @example
904
+ * **Example** (Finding matching nodes)
905
+ *
814
906
  * ```ts
815
907
  * import { Graph } from "effect"
816
908
  *
@@ -827,8 +919,8 @@ export const findNodes: {
827
919
  * console.log(empty) // []
828
920
  * ```
829
921
  *
830
- * @since 4.0.0
831
922
  * @category getters
923
+ * @since 3.18.0
832
924
  */
833
925
  <N, E, T extends Kind = "directed">(
834
926
  graph: Graph<N, E, T> | MutableGraph<N, E, T>,
@@ -850,7 +942,8 @@ export const findNodes: {
850
942
  /**
851
943
  * Finds the first edge that matches the given predicate.
852
944
  *
853
- * @example
945
+ * **Example** (Finding the first matching edge)
946
+ *
854
947
  * ```ts
855
948
  * import { Graph } from "effect"
856
949
  *
@@ -869,14 +962,15 @@ export const findNodes: {
869
962
  * console.log(notFound) // Option.none()
870
963
  * ```
871
964
  *
872
- * @since 4.0.0
873
965
  * @category getters
966
+ * @since 3.18.0
874
967
  */
875
968
  export const findEdge: {
876
969
  /**
877
970
  * Finds the first edge that matches the given predicate.
878
971
  *
879
- * @example
972
+ * **Example** (Finding the first matching edge)
973
+ *
880
974
  * ```ts
881
975
  * import { Graph } from "effect"
882
976
  *
@@ -895,14 +989,15 @@ export const findEdge: {
895
989
  * console.log(notFound) // Option.none()
896
990
  * ```
897
991
  *
898
- * @since 4.0.0
899
992
  * @category getters
993
+ * @since 3.18.0
900
994
  */
901
995
  <E>(predicate: (data: E, source: NodeIndex, target: NodeIndex) => boolean): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<EdgeIndex>
902
996
  /**
903
997
  * Finds the first edge that matches the given predicate.
904
998
  *
905
- * @example
999
+ * **Example** (Finding the first matching edge)
1000
+ *
906
1001
  * ```ts
907
1002
  * import { Graph } from "effect"
908
1003
  *
@@ -921,8 +1016,8 @@ export const findEdge: {
921
1016
  * console.log(notFound) // Option.none()
922
1017
  * ```
923
1018
  *
924
- * @since 4.0.0
925
1019
  * @category getters
1020
+ * @since 3.18.0
926
1021
  */
927
1022
  <N, E, T extends Kind = "directed">(
928
1023
  graph: Graph<N, E, T> | MutableGraph<N, E, T>,
@@ -943,7 +1038,8 @@ export const findEdge: {
943
1038
  /**
944
1039
  * Finds all edges that match the given predicate.
945
1040
  *
946
- * @example
1041
+ * **Example** (Finding matching edges)
1042
+ *
947
1043
  * ```ts
948
1044
  * import { Graph } from "effect"
949
1045
  *
@@ -963,14 +1059,15 @@ export const findEdge: {
963
1059
  * console.log(empty) // []
964
1060
  * ```
965
1061
  *
966
- * @since 4.0.0
967
1062
  * @category getters
1063
+ * @since 3.18.0
968
1064
  */
969
1065
  export const findEdges: {
970
1066
  /**
971
1067
  * Finds all edges that match the given predicate.
972
1068
  *
973
- * @example
1069
+ * **Example** (Finding matching edges)
1070
+ *
974
1071
  * ```ts
975
1072
  * import { Graph } from "effect"
976
1073
  *
@@ -990,14 +1087,15 @@ export const findEdges: {
990
1087
  * console.log(empty) // []
991
1088
  * ```
992
1089
  *
993
- * @since 4.0.0
994
1090
  * @category getters
1091
+ * @since 3.18.0
995
1092
  */
996
1093
  <E>(predicate: (data: E, source: NodeIndex, target: NodeIndex) => boolean): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Array<EdgeIndex>
997
1094
  /**
998
1095
  * Finds all edges that match the given predicate.
999
1096
  *
1000
- * @example
1097
+ * **Example** (Finding matching edges)
1098
+ *
1001
1099
  * ```ts
1002
1100
  * import { Graph } from "effect"
1003
1101
  *
@@ -1017,8 +1115,8 @@ export const findEdges: {
1017
1115
  * console.log(empty) // []
1018
1116
  * ```
1019
1117
  *
1020
- * @since 4.0.0
1021
1118
  * @category getters
1119
+ * @since 3.18.0
1022
1120
  */
1023
1121
  <N, E, T extends Kind = "directed">(
1024
1122
  graph: Graph<N, E, T> | MutableGraph<N, E, T>,
@@ -1040,7 +1138,8 @@ export const findEdges: {
1040
1138
  /**
1041
1139
  * Updates a single node's data by applying a transformation function.
1042
1140
  *
1043
- * @example
1141
+ * **Example** (Updating node data)
1142
+ *
1044
1143
  * ```ts
1045
1144
  * import { Graph } from "effect"
1046
1145
  *
@@ -1054,8 +1153,8 @@ export const findEdges: {
1054
1153
  * console.log(nodeData) // Option.some("NODE A")
1055
1154
  * ```
1056
1155
  *
1057
- * @since 4.0.0
1058
- * @category transformations
1156
+ * @category transforming
1157
+ * @since 3.18.0
1059
1158
  */
1060
1159
  export const updateNode = <N, E, T extends Kind = "directed">(
1061
1160
  mutable: MutableGraph<N, E, T>,
@@ -1074,7 +1173,8 @@ export const updateNode = <N, E, T extends Kind = "directed">(
1074
1173
  /**
1075
1174
  * Updates a single edge's data by applying a transformation function.
1076
1175
  *
1077
- * @example
1176
+ * **Example** (Updating edge data)
1177
+ *
1078
1178
  * ```ts
1079
1179
  * import { Graph } from "effect"
1080
1180
  *
@@ -1086,11 +1186,11 @@ export const updateNode = <N, E, T extends Kind = "directed">(
1086
1186
  * })
1087
1187
  *
1088
1188
  * const edgeData = Graph.getEdge(result, 0)
1089
- * console.log(edgeData) // new Graph.Edge({ source: 0, target: 1, data: 20 })
1189
+ * console.log(edgeData) // Option.some(new Graph.Edge({ source: 0, target: 1, data: 20 }))
1090
1190
  * ```
1091
1191
  *
1092
- * @since 4.0.0
1093
1192
  * @category mutations
1193
+ * @since 3.18.0
1094
1194
  */
1095
1195
  export const updateEdge = <N, E, T extends Kind = "directed">(
1096
1196
  mutable: MutableGraph<N, E, T>,
@@ -1107,9 +1207,15 @@ export const updateEdge = <N, E, T extends Kind = "directed">(
1107
1207
  }
1108
1208
 
1109
1209
  /**
1110
- * Creates a new graph with transformed node data using the provided mapping function.
1210
+ * Transforms every node's data in a mutable graph in place using the provided
1211
+ * mapping function.
1212
+ *
1213
+ * **Details**
1214
+ *
1215
+ * Node indices and edges are preserved; only the stored node data is replaced.
1216
+ *
1217
+ * **Example** (Mapping node data)
1111
1218
  *
1112
- * @example
1113
1219
  * ```ts
1114
1220
  * import { Graph } from "effect"
1115
1221
  *
@@ -1121,11 +1227,11 @@ export const updateEdge = <N, E, T extends Kind = "directed">(
1121
1227
  * })
1122
1228
  *
1123
1229
  * const nodeData = Graph.getNode(graph, 0)
1124
- * console.log(nodeData) // new Graph.Node("NODE A")
1230
+ * console.log(nodeData) // Option.some("NODE A")
1125
1231
  * ```
1126
1232
  *
1127
- * @since 4.0.0
1128
- * @category transformations
1233
+ * @category transforming
1234
+ * @since 3.18.0
1129
1235
  */
1130
1236
  export const mapNodes = <N, E, T extends Kind = "directed">(
1131
1237
  mutable: MutableGraph<N, E, T>,
@@ -1141,7 +1247,8 @@ export const mapNodes = <N, E, T extends Kind = "directed">(
1141
1247
  /**
1142
1248
  * Transforms all edge data in a mutable graph using the provided mapping function.
1143
1249
  *
1144
- * @example
1250
+ * **Example** (Mapping edge data)
1251
+ *
1145
1252
  * ```ts
1146
1253
  * import { Graph } from "effect"
1147
1254
  *
@@ -1155,11 +1262,11 @@ export const mapNodes = <N, E, T extends Kind = "directed">(
1155
1262
  * })
1156
1263
  *
1157
1264
  * const edgeData = Graph.getEdge(graph, 0)
1158
- * console.log(edgeData) // new Graph.Edge({ source: 0, target: 1, data: 20 })
1265
+ * console.log(edgeData) // Option.some(new Graph.Edge({ source: 0, target: 1, data: 20 }))
1159
1266
  * ```
1160
1267
  *
1161
- * @since 4.0.0
1162
- * @category transformations
1268
+ * @category transforming
1269
+ * @since 3.18.0
1163
1270
  */
1164
1271
  export const mapEdges = <N, E, T extends Kind = "directed">(
1165
1272
  mutable: MutableGraph<N, E, T>,
@@ -1178,7 +1285,8 @@ export const mapEdges = <N, E, T extends Kind = "directed">(
1178
1285
  /**
1179
1286
  * Reverses all edge directions in a mutable graph by swapping source and target nodes.
1180
1287
  *
1181
- * @example
1288
+ * **Example** (Reversing edge directions)
1289
+ *
1182
1290
  * ```ts
1183
1291
  * import { Graph } from "effect"
1184
1292
  *
@@ -1192,11 +1300,11 @@ export const mapEdges = <N, E, T extends Kind = "directed">(
1192
1300
  * })
1193
1301
  *
1194
1302
  * const edge0 = Graph.getEdge(graph, 0)
1195
- * console.log(edge0) // new Graph.Edge({ source: 1, target: 0, data: 1 }) - B -> A
1303
+ * console.log(edge0) // Option.some(new Graph.Edge({ source: 1, target: 0, data: 1 }))
1196
1304
  * ```
1197
1305
  *
1198
- * @since 4.0.0
1199
- * @category transformations
1306
+ * @category transforming
1307
+ * @since 3.18.0
1200
1308
  */
1201
1309
  export const reverse = <N, E, T extends Kind = "directed">(
1202
1310
  mutable: MutableGraph<N, E, T>
@@ -1238,10 +1346,10 @@ export const reverse = <N, E, T extends Kind = "directed">(
1238
1346
  * Filters and optionally transforms nodes in a mutable graph using a predicate function.
1239
1347
  * Nodes that return Option.none are removed along with all their connected edges.
1240
1348
  *
1241
- * @example
1349
+ * **Example** (Filtering and mapping nodes)
1350
+ *
1242
1351
  * ```ts
1243
- * import { Graph } from "effect"
1244
- * import * as Option from "effect/Option"
1352
+ * import { Graph, Option } from "effect"
1245
1353
  *
1246
1354
  * const graph = Graph.directed<string, number>((mutable) => {
1247
1355
  * const a = Graph.addNode(mutable, "active")
@@ -1261,8 +1369,8 @@ export const reverse = <N, E, T extends Kind = "directed">(
1261
1369
  * console.log(Graph.nodeCount(graph)) // 2 (only "active" nodes remain)
1262
1370
  * ```
1263
1371
  *
1264
- * @since 4.0.0
1265
- * @category transformations
1372
+ * @category transforming
1373
+ * @since 3.18.0
1266
1374
  */
1267
1375
  export const filterMapNodes = <N, E, T extends Kind = "directed">(
1268
1376
  mutable: MutableGraph<N, E, T>,
@@ -1292,10 +1400,10 @@ export const filterMapNodes = <N, E, T extends Kind = "directed">(
1292
1400
  * Filters and optionally transforms edges in a mutable graph using a predicate function.
1293
1401
  * Edges that return Option.none are removed from the graph.
1294
1402
  *
1295
- * @example
1403
+ * **Example** (Filtering and mapping edges)
1404
+ *
1296
1405
  * ```ts
1297
- * import { Graph } from "effect"
1298
- * import * as Option from "effect/Option"
1406
+ * import { Graph, Option } from "effect"
1299
1407
  *
1300
1408
  * const graph = Graph.directed<string, number>((mutable) => {
1301
1409
  * const a = Graph.addNode(mutable, "A")
@@ -1315,8 +1423,8 @@ export const filterMapNodes = <N, E, T extends Kind = "directed">(
1315
1423
  * console.log(Graph.edgeCount(graph)) // 2 (edges with weight 5 removed)
1316
1424
  * ```
1317
1425
  *
1318
- * @since 4.0.0
1319
- * @category transformations
1426
+ * @category transforming
1427
+ * @since 3.18.0
1320
1428
  */
1321
1429
  export const filterMapEdges = <N, E, T extends Kind = "directed">(
1322
1430
  mutable: MutableGraph<N, E, T>,
@@ -1349,7 +1457,8 @@ export const filterMapEdges = <N, E, T extends Kind = "directed">(
1349
1457
  * Filters nodes by removing those that don't match the predicate.
1350
1458
  * This function modifies the mutable graph in place.
1351
1459
  *
1352
- * @example
1460
+ * **Example** (Filtering nodes)
1461
+ *
1353
1462
  * ```ts
1354
1463
  * import { Graph } from "effect"
1355
1464
  *
@@ -1366,8 +1475,8 @@ export const filterMapEdges = <N, E, T extends Kind = "directed">(
1366
1475
  * console.log(Graph.nodeCount(graph)) // 2 (only "active" nodes remain)
1367
1476
  * ```
1368
1477
  *
1369
- * @since 4.0.0
1370
- * @category transformations
1478
+ * @category transforming
1479
+ * @since 3.18.0
1371
1480
  */
1372
1481
  export const filterNodes = <N, E, T extends Kind = "directed">(
1373
1482
  mutable: MutableGraph<N, E, T>,
@@ -1392,7 +1501,8 @@ export const filterNodes = <N, E, T extends Kind = "directed">(
1392
1501
  * Filters edges by removing those that don't match the predicate.
1393
1502
  * This function modifies the mutable graph in place.
1394
1503
  *
1395
- * @example
1504
+ * **Example** (Filtering edges)
1505
+ *
1396
1506
  * ```ts
1397
1507
  * import { Graph } from "effect"
1398
1508
  *
@@ -1412,8 +1522,8 @@ export const filterNodes = <N, E, T extends Kind = "directed">(
1412
1522
  * console.log(Graph.edgeCount(graph)) // 2 (edge with weight 5 removed)
1413
1523
  * ```
1414
1524
  *
1415
- * @since 4.0.0
1416
- * @category transformations
1525
+ * @category transforming
1526
+ * @since 3.18.0
1417
1527
  */
1418
1528
  export const filterEdges = <N, E, T extends Kind = "directed">(
1419
1529
  mutable: MutableGraph<N, E, T>,
@@ -1465,7 +1575,8 @@ const invalidateCycleFlagOnAddition = <N, E, T extends Kind = "directed">(
1465
1575
  /**
1466
1576
  * Adds a new edge to a mutable graph and returns its index.
1467
1577
  *
1468
- * @example
1578
+ * **Example** (Adding edges)
1579
+ *
1469
1580
  * ```ts
1470
1581
  * import { Graph } from "effect"
1471
1582
  *
@@ -1477,8 +1588,8 @@ const invalidateCycleFlagOnAddition = <N, E, T extends Kind = "directed">(
1477
1588
  * })
1478
1589
  * ```
1479
1590
  *
1480
- * @since 4.0.0
1481
1591
  * @category mutations
1592
+ * @since 3.18.0
1482
1593
  */
1483
1594
  export const addEdge = <N, E, T extends Kind = "directed">(
1484
1595
  mutable: MutableGraph<N, E, T>,
@@ -1537,7 +1648,8 @@ export const addEdge = <N, E, T extends Kind = "directed">(
1537
1648
  /**
1538
1649
  * Removes a node and all its incident edges from a mutable graph.
1539
1650
  *
1540
- * @example
1651
+ * **Example** (Removing a node)
1652
+ *
1541
1653
  * ```ts
1542
1654
  * import { Graph } from "effect"
1543
1655
  *
@@ -1551,8 +1663,8 @@ export const addEdge = <N, E, T extends Kind = "directed">(
1551
1663
  * })
1552
1664
  * ```
1553
1665
  *
1554
- * @since 4.0.0
1555
1666
  * @category mutations
1667
+ * @since 3.18.0
1556
1668
  */
1557
1669
  export const removeNode = <N, E, T extends Kind = "directed">(
1558
1670
  mutable: MutableGraph<N, E, T>,
@@ -1600,7 +1712,8 @@ export const removeNode = <N, E, T extends Kind = "directed">(
1600
1712
  /**
1601
1713
  * Removes an edge from a mutable graph.
1602
1714
  *
1603
- * @example
1715
+ * **Example** (Removing an edge)
1716
+ *
1604
1717
  * ```ts
1605
1718
  * import { Graph } from "effect"
1606
1719
  *
@@ -1614,8 +1727,8 @@ export const removeNode = <N, E, T extends Kind = "directed">(
1614
1727
  * })
1615
1728
  * ```
1616
1729
  *
1617
- * @since 4.0.0
1618
1730
  * @category mutations
1731
+ * @since 3.18.0
1619
1732
  */
1620
1733
  export const removeEdge = <N, E, T extends Kind = "directed">(
1621
1734
  mutable: MutableGraph<N, E, T>,
@@ -1692,7 +1805,8 @@ const removeEdgeInternal = <N, E, T extends Kind = "directed">(
1692
1805
  /**
1693
1806
  * Gets the edge data associated with an edge index, if it exists.
1694
1807
  *
1695
- * @example
1808
+ * **Example** (Getting edge data)
1809
+ *
1696
1810
  * ```ts
1697
1811
  * import { Graph } from "effect"
1698
1812
  *
@@ -1707,13 +1821,13 @@ const removeEdgeInternal = <N, E, T extends Kind = "directed">(
1707
1821
  *
1708
1822
  * if (edgeData._tag === "Some") {
1709
1823
  * console.log(edgeData.value.data) // 42
1710
- * console.log(edgeData.value.source) // NodeIndex(0)
1711
- * console.log(edgeData.value.target) // NodeIndex(1)
1824
+ * console.log(edgeData.value.source) // 0
1825
+ * console.log(edgeData.value.target) // 1
1712
1826
  * }
1713
1827
  * ```
1714
1828
  *
1715
- * @since 4.0.0
1716
1829
  * @category getters
1830
+ * @since 3.18.0
1717
1831
  */
1718
1832
  export const getEdge: {
1719
1833
  // =============================================================================
@@ -1723,7 +1837,8 @@ export const getEdge: {
1723
1837
  /**
1724
1838
  * Gets the edge data associated with an edge index, if it exists.
1725
1839
  *
1726
- * @example
1840
+ * **Example** (Getting edge data)
1841
+ *
1727
1842
  * ```ts
1728
1843
  * import { Graph } from "effect"
1729
1844
  *
@@ -1738,13 +1853,13 @@ export const getEdge: {
1738
1853
  *
1739
1854
  * if (edgeData._tag === "Some") {
1740
1855
  * console.log(edgeData.value.data) // 42
1741
- * console.log(edgeData.value.source) // NodeIndex(0)
1742
- * console.log(edgeData.value.target) // NodeIndex(1)
1856
+ * console.log(edgeData.value.source) // 0
1857
+ * console.log(edgeData.value.target) // 1
1743
1858
  * }
1744
1859
  * ```
1745
1860
  *
1746
- * @since 4.0.0
1747
1861
  * @category getters
1862
+ * @since 3.18.0
1748
1863
  */
1749
1864
  <E>(edgeIndex: EdgeIndex): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<Edge<E>>
1750
1865
  // =============================================================================
@@ -1754,7 +1869,8 @@ export const getEdge: {
1754
1869
  /**
1755
1870
  * Gets the edge data associated with an edge index, if it exists.
1756
1871
  *
1757
- * @example
1872
+ * **Example** (Getting edge data)
1873
+ *
1758
1874
  * ```ts
1759
1875
  * import { Graph } from "effect"
1760
1876
  *
@@ -1769,13 +1885,13 @@ export const getEdge: {
1769
1885
  *
1770
1886
  * if (edgeData._tag === "Some") {
1771
1887
  * console.log(edgeData.value.data) // 42
1772
- * console.log(edgeData.value.source) // NodeIndex(0)
1773
- * console.log(edgeData.value.target) // NodeIndex(1)
1888
+ * console.log(edgeData.value.source) // 0
1889
+ * console.log(edgeData.value.target) // 1
1774
1890
  * }
1775
1891
  * ```
1776
1892
  *
1777
- * @since 4.0.0
1778
1893
  * @category getters
1894
+ * @since 3.18.0
1779
1895
  */
1780
1896
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, edgeIndex: EdgeIndex): Option.Option<Edge<E>>
1781
1897
  } = dual(2, <N, E, T extends Kind = "directed">(
@@ -1786,7 +1902,8 @@ export const getEdge: {
1786
1902
  /**
1787
1903
  * Checks if an edge exists between two nodes in the graph.
1788
1904
  *
1789
- * @example
1905
+ * **Example** (Checking edge existence)
1906
+ *
1790
1907
  * ```ts
1791
1908
  * import { Graph } from "effect"
1792
1909
  *
@@ -1808,14 +1925,15 @@ export const getEdge: {
1808
1925
  * console.log(hasAC) // false
1809
1926
  * ```
1810
1927
  *
1811
- * @since 4.0.0
1812
1928
  * @category getters
1929
+ * @since 3.18.0
1813
1930
  */
1814
1931
  export const hasEdge: {
1815
1932
  /**
1816
1933
  * Checks if an edge exists between two nodes in the graph.
1817
1934
  *
1818
- * @example
1935
+ * **Example** (Checking edge existence)
1936
+ *
1819
1937
  * ```ts
1820
1938
  * import { Graph } from "effect"
1821
1939
  *
@@ -1837,14 +1955,15 @@ export const hasEdge: {
1837
1955
  * console.log(hasAC) // false
1838
1956
  * ```
1839
1957
  *
1840
- * @since 4.0.0
1841
1958
  * @category getters
1959
+ * @since 3.18.0
1842
1960
  */
1843
1961
  (source: NodeIndex, target: NodeIndex): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => boolean
1844
1962
  /**
1845
1963
  * Checks if an edge exists between two nodes in the graph.
1846
1964
  *
1847
- * @example
1965
+ * **Example** (Checking edge existence)
1966
+ *
1848
1967
  * ```ts
1849
1968
  * import { Graph } from "effect"
1850
1969
  *
@@ -1866,8 +1985,8 @@ export const hasEdge: {
1866
1985
  * console.log(hasAC) // false
1867
1986
  * ```
1868
1987
  *
1869
- * @since 4.0.0
1870
1988
  * @category getters
1989
+ * @since 3.18.0
1871
1990
  */
1872
1991
  <N, E, T extends Kind = "directed">(
1873
1992
  graph: Graph<N, E, T> | MutableGraph<N, E, T>,
@@ -1898,7 +2017,8 @@ export const hasEdge: {
1898
2017
  /**
1899
2018
  * Returns the number of edges in the graph.
1900
2019
  *
1901
- * @example
2020
+ * **Example** (Counting edges)
2021
+ *
1902
2022
  * ```ts
1903
2023
  * import { Graph } from "effect"
1904
2024
  *
@@ -1917,17 +2037,23 @@ export const hasEdge: {
1917
2037
  * console.log(Graph.edgeCount(graphWithEdges)) // 3
1918
2038
  * ```
1919
2039
  *
1920
- * @since 4.0.0
1921
2040
  * @category getters
2041
+ * @since 3.18.0
1922
2042
  */
1923
2043
  export const edgeCount = <N, E, T extends Kind = "directed">(
1924
2044
  graph: Graph<N, E, T> | MutableGraph<N, E, T>
1925
2045
  ): number => graph.edges.size
1926
2046
 
1927
2047
  /**
1928
- * Returns the neighboring nodes (targets of outgoing edges) for a given node.
2048
+ * Returns the neighboring node indices for a node.
2049
+ *
2050
+ * **Details**
2051
+ *
2052
+ * For directed graphs, neighbors are the targets of outgoing edges. For
2053
+ * undirected graphs, neighbors are the other endpoints of incident edges.
2054
+ *
2055
+ * **Example** (Getting outgoing neighbors)
1929
2056
  *
1930
- * @example
1931
2057
  * ```ts
1932
2058
  * import { Graph } from "effect"
1933
2059
  *
@@ -1944,20 +2070,26 @@ export const edgeCount = <N, E, T extends Kind = "directed">(
1944
2070
  * const nodeC = 2
1945
2071
  *
1946
2072
  * const neighborsA = Graph.neighbors(graph, nodeA)
1947
- * console.log(neighborsA) // [NodeIndex(1), NodeIndex(2)]
2073
+ * console.log(neighborsA) // [1, 2]
1948
2074
  *
1949
2075
  * const neighborsB = Graph.neighbors(graph, nodeB)
1950
2076
  * console.log(neighborsB) // []
1951
2077
  * ```
1952
2078
  *
1953
- * @since 4.0.0
1954
2079
  * @category getters
2080
+ * @since 3.18.0
1955
2081
  */
1956
2082
  export const neighbors: {
1957
2083
  /**
1958
- * Returns the neighboring nodes (targets of outgoing edges) for a given node.
2084
+ * Returns the neighboring node indices for a node.
2085
+ *
2086
+ * **Details**
2087
+ *
2088
+ * For directed graphs, neighbors are the targets of outgoing edges. For
2089
+ * undirected graphs, neighbors are the other endpoints of incident edges.
2090
+ *
2091
+ * **Example** (Getting outgoing neighbors)
1959
2092
  *
1960
- * @example
1961
2093
  * ```ts
1962
2094
  * import { Graph } from "effect"
1963
2095
  *
@@ -1974,20 +2106,26 @@ export const neighbors: {
1974
2106
  * const nodeC = 2
1975
2107
  *
1976
2108
  * const neighborsA = Graph.neighbors(graph, nodeA)
1977
- * console.log(neighborsA) // [NodeIndex(1), NodeIndex(2)]
2109
+ * console.log(neighborsA) // [1, 2]
1978
2110
  *
1979
2111
  * const neighborsB = Graph.neighbors(graph, nodeB)
1980
2112
  * console.log(neighborsB) // []
1981
2113
  * ```
1982
2114
  *
1983
- * @since 4.0.0
1984
2115
  * @category getters
2116
+ * @since 3.18.0
1985
2117
  */
1986
2118
  (nodeIndex: NodeIndex): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Array<NodeIndex>
1987
2119
  /**
1988
- * Returns the neighboring nodes (targets of outgoing edges) for a given node.
2120
+ * Returns the neighboring node indices for a node.
2121
+ *
2122
+ * **Details**
2123
+ *
2124
+ * For directed graphs, neighbors are the targets of outgoing edges. For
2125
+ * undirected graphs, neighbors are the other endpoints of incident edges.
2126
+ *
2127
+ * **Example** (Getting outgoing neighbors)
1989
2128
  *
1990
- * @example
1991
2129
  * ```ts
1992
2130
  * import { Graph } from "effect"
1993
2131
  *
@@ -2004,14 +2142,14 @@ export const neighbors: {
2004
2142
  * const nodeC = 2
2005
2143
  *
2006
2144
  * const neighborsA = Graph.neighbors(graph, nodeA)
2007
- * console.log(neighborsA) // [NodeIndex(1), NodeIndex(2)]
2145
+ * console.log(neighborsA) // [1, 2]
2008
2146
  *
2009
2147
  * const neighborsB = Graph.neighbors(graph, nodeB)
2010
2148
  * console.log(neighborsB) // []
2011
2149
  * ```
2012
2150
  *
2013
- * @since 4.0.0
2014
2151
  * @category getters
2152
+ * @since 3.18.0
2015
2153
  */
2016
2154
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, nodeIndex: NodeIndex): Array<NodeIndex>
2017
2155
  } = dual(2, <N, E, T extends Kind = "directed">(
@@ -2042,7 +2180,8 @@ export const neighbors: {
2042
2180
  /**
2043
2181
  * Get neighbors of a node in a specific direction for bidirectional traversal.
2044
2182
  *
2045
- * @example
2183
+ * **Example** (Traversing directed neighbors)
2184
+ *
2046
2185
  * ```ts
2047
2186
  * import { Graph } from "effect"
2048
2187
  *
@@ -2062,14 +2201,15 @@ export const neighbors: {
2062
2201
  * const incoming = Graph.neighborsDirected(graph, nodeB, "incoming")
2063
2202
  * ```
2064
2203
  *
2065
- * @since 4.0.0
2066
2204
  * @category queries
2205
+ * @since 3.18.0
2067
2206
  */
2068
2207
  export const neighborsDirected: {
2069
2208
  /**
2070
2209
  * Get neighbors of a node in a specific direction for bidirectional traversal.
2071
2210
  *
2072
- * @example
2211
+ * **Example** (Traversing directed neighbors)
2212
+ *
2073
2213
  * ```ts
2074
2214
  * import { Graph } from "effect"
2075
2215
  *
@@ -2089,14 +2229,15 @@ export const neighborsDirected: {
2089
2229
  * const incoming = Graph.neighborsDirected(graph, nodeB, "incoming")
2090
2230
  * ```
2091
2231
  *
2092
- * @since 4.0.0
2093
2232
  * @category queries
2233
+ * @since 3.18.0
2094
2234
  */
2095
2235
  (nodeIndex: NodeIndex, direction: Direction): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Array<NodeIndex>
2096
2236
  /**
2097
2237
  * Get neighbors of a node in a specific direction for bidirectional traversal.
2098
2238
  *
2099
- * @example
2239
+ * **Example** (Traversing directed neighbors)
2240
+ *
2100
2241
  * ```ts
2101
2242
  * import { Graph } from "effect"
2102
2243
  *
@@ -2116,8 +2257,8 @@ export const neighborsDirected: {
2116
2257
  * const incoming = Graph.neighborsDirected(graph, nodeB, "incoming")
2117
2258
  * ```
2118
2259
  *
2119
- * @since 4.0.0
2120
2260
  * @category queries
2261
+ * @since 3.18.0
2121
2262
  */
2122
2263
  <N, E, T extends Kind = "directed">(
2123
2264
  graph: Graph<N, E, T> | MutableGraph<N, E, T>,
@@ -2163,9 +2304,10 @@ export const neighborsDirected: {
2163
2304
  * Provides customization for node labels, edge labels, and graph naming
2164
2305
  * in DOT format compatible with GraphViz tools.
2165
2306
  *
2166
- * @example
2307
+ * **Example** (Configuring GraphViz labels)
2308
+ *
2167
2309
  * ```ts
2168
- * import type * as Graph from "effect/Graph"
2310
+ * import type { Graph } from "effect"
2169
2311
  *
2170
2312
  * // Basic options with custom labels
2171
2313
  * const basicOptions: Graph.GraphVizOptions<string, number> = {
@@ -2181,8 +2323,8 @@ export const neighborsDirected: {
2181
2323
  * }
2182
2324
  * ```
2183
2325
  *
2184
- * @since 4.0.0
2185
2326
  * @category models
2327
+ * @since 3.18.0
2186
2328
  */
2187
2329
  export interface GraphVizOptions<N, E> {
2188
2330
  /**
@@ -2207,7 +2349,8 @@ export interface GraphVizOptions<N, E> {
2207
2349
  /**
2208
2350
  * Exports a graph to GraphViz DOT format for visualization.
2209
2351
  *
2210
- * @example
2352
+ * **Example** (Exporting GraphViz DOT)
2353
+ *
2211
2354
  * ```ts
2212
2355
  * import { Graph } from "effect"
2213
2356
  *
@@ -2232,14 +2375,15 @@ export interface GraphVizOptions<N, E> {
2232
2375
  * // }
2233
2376
  * ```
2234
2377
  *
2235
- * @since 4.0.0
2236
2378
  * @category utils
2379
+ * @since 3.18.0
2237
2380
  */
2238
2381
  export const toGraphViz: {
2239
2382
  /**
2240
2383
  * Exports a graph to GraphViz DOT format for visualization.
2241
2384
  *
2242
- * @example
2385
+ * **Example** (Exporting GraphViz DOT)
2386
+ *
2243
2387
  * ```ts
2244
2388
  * import { Graph } from "effect"
2245
2389
  *
@@ -2264,14 +2408,15 @@ export const toGraphViz: {
2264
2408
  * // }
2265
2409
  * ```
2266
2410
  *
2267
- * @since 4.0.0
2268
2411
  * @category utils
2412
+ * @since 3.18.0
2269
2413
  */
2270
2414
  <N, E>(options?: GraphVizOptions<N, E>): <T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => string
2271
2415
  /**
2272
2416
  * Exports a graph to GraphViz DOT format for visualization.
2273
2417
  *
2274
- * @example
2418
+ * **Example** (Exporting GraphViz DOT)
2419
+ *
2275
2420
  * ```ts
2276
2421
  * import { Graph } from "effect"
2277
2422
  *
@@ -2296,8 +2441,8 @@ export const toGraphViz: {
2296
2441
  * // }
2297
2442
  * ```
2298
2443
  *
2299
- * @since 4.0.0
2300
2444
  * @category utils
2445
+ * @since 3.18.0
2301
2446
  */
2302
2447
  <N, E, T extends Kind = "directed">(
2303
2448
  graph: Graph<N, E, T> | MutableGraph<N, E, T>,
@@ -2353,9 +2498,10 @@ export const toGraphViz: {
2353
2498
  * - `subroutine`: Subroutine-style nodes `A[["label"]]`
2354
2499
  * - `cylindrical`: Cylindrical database-style nodes `A[("label")]`
2355
2500
  *
2356
- * @example
2501
+ * **Example** (Selecting Mermaid node shapes)
2502
+ *
2357
2503
  * ```ts
2358
- * import type * as Graph from "effect/Graph"
2504
+ * import type { Graph } from "effect"
2359
2505
  *
2360
2506
  * // Shape selector function for different node types
2361
2507
  * const shapeSelector = (nodeData: string): Graph.MermaidNodeShape => {
@@ -2371,8 +2517,8 @@ export const toGraphViz: {
2371
2517
  * }
2372
2518
  * ```
2373
2519
  *
2374
- * @since 4.0.0
2375
2520
  * @category models
2521
+ * @since 3.18.0
2376
2522
  */
2377
2523
  export type MermaidNodeShape =
2378
2524
  | "rectangle" // A["label"]
@@ -2393,9 +2539,10 @@ export type MermaidNodeShape =
2393
2539
  * - `LR`: Left to Right (horizontal layout)
2394
2540
  * - `RL`: Right to Left (reverse horizontal)
2395
2541
  *
2396
- * @example
2542
+ * **Example** (Configuring Mermaid directions)
2543
+ *
2397
2544
  * ```ts
2398
- * import type * as Graph from "effect/Graph"
2545
+ * import type { Graph } from "effect"
2399
2546
  *
2400
2547
  * // Horizontal workflow diagram
2401
2548
  * const horizontalOptions: Graph.MermaidOptions<string, string> = {
@@ -2413,8 +2560,8 @@ export type MermaidNodeShape =
2413
2560
  * }
2414
2561
  * ```
2415
2562
  *
2416
- * @since 4.0.0
2417
2563
  * @category models
2564
+ * @since 3.18.0
2418
2565
  */
2419
2566
  export type MermaidDirection =
2420
2567
  | "TB" // Top to Bottom (default)
@@ -2433,9 +2580,10 @@ export type MermaidDirection =
2433
2580
  * When not specified, automatically selects based on graph type:
2434
2581
  * directed graphs use "flowchart", undirected graphs use "graph".
2435
2582
  *
2436
- * @example
2583
+ * **Example** (Selecting Mermaid diagram types)
2584
+ *
2437
2585
  * ```ts
2438
- * import type * as Graph from "effect/Graph"
2586
+ * import type { Graph } from "effect"
2439
2587
  *
2440
2588
  * // Force flowchart format (even for undirected graphs)
2441
2589
  * const flowchartOptions: Graph.MermaidOptions<string, string> = {
@@ -2451,8 +2599,8 @@ export type MermaidDirection =
2451
2599
  * const autoOptions: Graph.MermaidOptions<string, string> = {}
2452
2600
  * ```
2453
2601
  *
2454
- * @since 4.0.0
2455
2602
  * @category models
2603
+ * @since 3.18.0
2456
2604
  */
2457
2605
  export type MermaidDiagramType =
2458
2606
  | "flowchart" // For directed graphs
@@ -2461,8 +2609,8 @@ export type MermaidDiagramType =
2461
2609
  /**
2462
2610
  * Configuration options for Mermaid diagram generation, following GraphViz pattern.
2463
2611
  *
2464
- * @since 4.0.0
2465
2612
  * @category models
2613
+ * @since 4.0.0
2466
2614
  */
2467
2615
  /**
2468
2616
  * Configuration options for Mermaid diagram generation from graphs.
@@ -2470,9 +2618,10 @@ export type MermaidDiagramType =
2470
2618
  * Provides customization for node labels, edge labels, diagram type,
2471
2619
  * layout direction, node shapes, and graph naming in Mermaid format.
2472
2620
  *
2473
- * @example
2621
+ * **Example** (Configuring Mermaid output)
2622
+ *
2474
2623
  * ```ts
2475
- * import type * as Graph from "effect/Graph"
2624
+ * import type { Graph } from "effect"
2476
2625
  *
2477
2626
  * // Basic options with custom labels
2478
2627
  * const basicOptions: Graph.MermaidOptions<string, number> = {
@@ -2490,8 +2639,8 @@ export type MermaidDiagramType =
2490
2639
  * }
2491
2640
  * ```
2492
2641
  *
2493
- * @since 4.0.0
2494
2642
  * @category models
2643
+ * @since 3.18.0
2495
2644
  */
2496
2645
  export interface MermaidOptions<N, E> {
2497
2646
  /**
@@ -2587,9 +2736,10 @@ const formatMermaidNode = (
2587
2736
  * structures to valid Mermaid syntax for use in documentation, web applications,
2588
2737
  * and visualization tools.
2589
2738
  *
2590
- * @example
2739
+ * **Example** (Exporting a directed Mermaid diagram)
2740
+ *
2591
2741
  * ```ts
2592
- * import * as Graph from "effect/Graph"
2742
+ * import { Graph } from "effect"
2593
2743
  *
2594
2744
  * // Basic directed graph export
2595
2745
  * const graph = Graph.directed<string, number>((mutable) => {
@@ -2610,9 +2760,10 @@ const formatMermaidNode = (
2610
2760
  * // 0 -->|"2"| 2
2611
2761
  * ```
2612
2762
  *
2613
- * @example
2763
+ * **Example** (Exporting an undirected Mermaid diagram)
2764
+ *
2614
2765
  * ```ts
2615
- * import * as Graph from "effect/Graph"
2766
+ * import { Graph } from "effect"
2616
2767
  *
2617
2768
  * // Undirected graph with custom labels and direction
2618
2769
  * const socialGraph = Graph.undirected<{ name: string }, string>((mutable) => {
@@ -2637,9 +2788,10 @@ const formatMermaidNode = (
2637
2788
  * // 1 ---|"colleagues"| 2
2638
2789
  * ```
2639
2790
  *
2640
- * @example
2791
+ * **Example** (Customizing Mermaid node shapes)
2792
+ *
2641
2793
  * ```ts
2642
- * import * as Graph from "effect/Graph"
2794
+ * import { Graph } from "effect"
2643
2795
  *
2644
2796
  * // Advanced styling with node shapes for flowchart
2645
2797
  * const workflow = Graph.directed<{ type: string; name: string }, string>(
@@ -2688,9 +2840,10 @@ const formatMermaidNode = (
2688
2840
  * // 2 --> 3
2689
2841
  * ```
2690
2842
  *
2691
- * @example
2843
+ * **Example** (Visualizing dependency graphs)
2844
+ *
2692
2845
  * ```ts
2693
- * import * as Graph from "effect/Graph"
2846
+ * import { Graph } from "effect"
2694
2847
  *
2695
2848
  * // Real-world example: Software dependency graph
2696
2849
  * interface Dependency {
@@ -2749,12 +2902,8 @@ const formatMermaidNode = (
2749
2902
  * // 0 -->|"builds with"| 3
2750
2903
  * ```
2751
2904
  *
2752
- * @param graph - The graph to export (directed or undirected)
2753
- * @param options - Optional configuration for the Mermaid output
2754
- * @returns Mermaid diagram syntax as a string
2755
- *
2756
- * @since 4.0.0
2757
2905
  * @category utils
2906
+ * @since 3.18.0
2758
2907
  */
2759
2908
  export const toMermaid: {
2760
2909
  /**
@@ -2765,9 +2914,10 @@ export const toMermaid: {
2765
2914
  * structures to valid Mermaid syntax for use in documentation, web applications,
2766
2915
  * and visualization tools.
2767
2916
  *
2768
- * @example
2917
+ * **Example** (Exporting a directed Mermaid diagram)
2918
+ *
2769
2919
  * ```ts
2770
- * import * as Graph from "effect/Graph"
2920
+ * import { Graph } from "effect"
2771
2921
  *
2772
2922
  * // Basic directed graph export
2773
2923
  * const graph = Graph.directed<string, number>((mutable) => {
@@ -2788,9 +2938,10 @@ export const toMermaid: {
2788
2938
  * // 0 -->|"2"| 2
2789
2939
  * ```
2790
2940
  *
2791
- * @example
2941
+ * **Example** (Exporting an undirected Mermaid diagram)
2942
+ *
2792
2943
  * ```ts
2793
- * import * as Graph from "effect/Graph"
2944
+ * import { Graph } from "effect"
2794
2945
  *
2795
2946
  * // Undirected graph with custom labels and direction
2796
2947
  * const socialGraph = Graph.undirected<{ name: string }, string>((mutable) => {
@@ -2815,9 +2966,10 @@ export const toMermaid: {
2815
2966
  * // 1 ---|"colleagues"| 2
2816
2967
  * ```
2817
2968
  *
2818
- * @example
2969
+ * **Example** (Customizing Mermaid node shapes)
2970
+ *
2819
2971
  * ```ts
2820
- * import * as Graph from "effect/Graph"
2972
+ * import { Graph } from "effect"
2821
2973
  *
2822
2974
  * // Advanced styling with node shapes for flowchart
2823
2975
  * const workflow = Graph.directed<{ type: string; name: string }, string>(
@@ -2866,9 +3018,10 @@ export const toMermaid: {
2866
3018
  * // 2 --> 3
2867
3019
  * ```
2868
3020
  *
2869
- * @example
3021
+ * **Example** (Visualizing dependency graphs)
3022
+ *
2870
3023
  * ```ts
2871
- * import * as Graph from "effect/Graph"
3024
+ * import { Graph } from "effect"
2872
3025
  *
2873
3026
  * // Real-world example: Software dependency graph
2874
3027
  * interface Dependency {
@@ -2927,12 +3080,8 @@ export const toMermaid: {
2927
3080
  * // 0 -->|"builds with"| 3
2928
3081
  * ```
2929
3082
  *
2930
- * @param graph - The graph to export (directed or undirected)
2931
- * @param options - Optional configuration for the Mermaid output
2932
- * @returns Mermaid diagram syntax as a string
2933
- *
2934
- * @since 4.0.0
2935
3083
  * @category utils
3084
+ * @since 3.18.0
2936
3085
  */
2937
3086
  <N, E>(options?: MermaidOptions<N, E>): <T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => string
2938
3087
  /**
@@ -2943,9 +3092,10 @@ export const toMermaid: {
2943
3092
  * structures to valid Mermaid syntax for use in documentation, web applications,
2944
3093
  * and visualization tools.
2945
3094
  *
2946
- * @example
3095
+ * **Example** (Exporting a directed Mermaid diagram)
3096
+ *
2947
3097
  * ```ts
2948
- * import * as Graph from "effect/Graph"
3098
+ * import { Graph } from "effect"
2949
3099
  *
2950
3100
  * // Basic directed graph export
2951
3101
  * const graph = Graph.directed<string, number>((mutable) => {
@@ -2966,9 +3116,10 @@ export const toMermaid: {
2966
3116
  * // 0 -->|"2"| 2
2967
3117
  * ```
2968
3118
  *
2969
- * @example
3119
+ * **Example** (Exporting an undirected Mermaid diagram)
3120
+ *
2970
3121
  * ```ts
2971
- * import * as Graph from "effect/Graph"
3122
+ * import { Graph } from "effect"
2972
3123
  *
2973
3124
  * // Undirected graph with custom labels and direction
2974
3125
  * const socialGraph = Graph.undirected<{ name: string }, string>((mutable) => {
@@ -2993,9 +3144,10 @@ export const toMermaid: {
2993
3144
  * // 1 ---|"colleagues"| 2
2994
3145
  * ```
2995
3146
  *
2996
- * @example
3147
+ * **Example** (Customizing Mermaid node shapes)
3148
+ *
2997
3149
  * ```ts
2998
- * import * as Graph from "effect/Graph"
3150
+ * import { Graph } from "effect"
2999
3151
  *
3000
3152
  * // Advanced styling with node shapes for flowchart
3001
3153
  * const workflow = Graph.directed<{ type: string; name: string }, string>(
@@ -3044,9 +3196,10 @@ export const toMermaid: {
3044
3196
  * // 2 --> 3
3045
3197
  * ```
3046
3198
  *
3047
- * @example
3199
+ * **Example** (Visualizing dependency graphs)
3200
+ *
3048
3201
  * ```ts
3049
- * import * as Graph from "effect/Graph"
3202
+ * import { Graph } from "effect"
3050
3203
  *
3051
3204
  * // Real-world example: Software dependency graph
3052
3205
  * interface Dependency {
@@ -3105,12 +3258,8 @@ export const toMermaid: {
3105
3258
  * // 0 -->|"builds with"| 3
3106
3259
  * ```
3107
3260
  *
3108
- * @param graph - The graph to export (directed or undirected)
3109
- * @param options - Optional configuration for the Mermaid output
3110
- * @returns Mermaid diagram syntax as a string
3111
- *
3112
- * @since 4.0.0
3113
3261
  * @category utils
3262
+ * @since 3.18.0
3114
3263
  */
3115
3264
  <N, E, T extends Kind = "directed">(
3116
3265
  graph: Graph<N, E, T> | MutableGraph<N, E, T>,
@@ -3170,7 +3319,8 @@ export const toMermaid: {
3170
3319
  /**
3171
3320
  * Direction for graph traversal, indicating which edges to follow.
3172
3321
  *
3173
- * @example
3322
+ * **Example** (Traversing by direction)
3323
+ *
3174
3324
  * ```ts
3175
3325
  * import { Graph } from "effect"
3176
3326
  *
@@ -3191,8 +3341,8 @@ export const toMermaid: {
3191
3341
  * )
3192
3342
  * ```
3193
3343
  *
3194
- * @since 4.0.0
3195
3344
  * @category models
3345
+ * @since 3.18.0
3196
3346
  */
3197
3347
  export type Direction = "outgoing" | "incoming"
3198
3348
 
@@ -3207,7 +3357,8 @@ export type Direction = "outgoing" | "incoming"
3207
3357
  * For directed graphs, any back edge creates a cycle. For undirected graphs,
3208
3358
  * a back edge that doesn't go to the immediate parent creates a cycle.
3209
3359
  *
3210
- * @example
3360
+ * **Example** (Checking cycles)
3361
+ *
3211
3362
  * ```ts
3212
3363
  * import { Graph } from "effect"
3213
3364
  *
@@ -3231,8 +3382,8 @@ export type Direction = "outgoing" | "incoming"
3231
3382
  * console.log(Graph.isAcyclic(cyclic)) // false
3232
3383
  * ```
3233
3384
  *
3234
- * @since 4.0.0
3235
3385
  * @category algorithms
3386
+ * @since 3.18.0
3236
3387
  */
3237
3388
  export const isAcyclic = <N, E, T extends Kind = "directed">(
3238
3389
  graph: Graph<N, E, T> | MutableGraph<N, E, T>
@@ -3317,7 +3468,8 @@ export const isAcyclic = <N, E, T extends Kind = "directed">(
3317
3468
  * such that no two vertices within the same set are adjacent. Uses BFS coloring
3318
3469
  * to determine bipartiteness.
3319
3470
  *
3320
- * @example
3471
+ * **Example** (Checking bipartite graphs)
3472
+ *
3321
3473
  * ```ts
3322
3474
  * import { Graph } from "effect"
3323
3475
  *
@@ -3345,8 +3497,8 @@ export const isAcyclic = <N, E, T extends Kind = "directed">(
3345
3497
  * console.log(Graph.isBipartite(triangle)) // false
3346
3498
  * ```
3347
3499
  *
3348
- * @since 4.0.0
3349
3500
  * @category algorithms
3501
+ * @since 3.18.0
3350
3502
  */
3351
3503
  export const isBipartite = <N, E>(
3352
3504
  graph: Graph<N, E, "undirected"> | MutableGraph<N, E, "undirected">
@@ -3426,7 +3578,8 @@ const getUndirectedNeighbors = <N, E>(
3426
3578
  * Find connected components in an undirected graph.
3427
3579
  * Each component is represented as an array of node indices.
3428
3580
  *
3429
- * @example
3581
+ * **Example** (Finding connected components)
3582
+ *
3430
3583
  * ```ts
3431
3584
  * import { Graph } from "effect"
3432
3585
  *
@@ -3443,8 +3596,8 @@ const getUndirectedNeighbors = <N, E>(
3443
3596
  * console.log(components) // [[0, 1], [2, 3]]
3444
3597
  * ```
3445
3598
  *
3446
- * @since 4.0.0
3447
3599
  * @category algorithms
3600
+ * @since 3.18.0
3448
3601
  */
3449
3602
  export const connectedComponents = <N, E>(
3450
3603
  graph: Graph<N, E, "undirected"> | MutableGraph<N, E, "undirected">
@@ -3484,7 +3637,8 @@ export const connectedComponents = <N, E>(
3484
3637
  * Find strongly connected components in a directed graph using Kosaraju's algorithm.
3485
3638
  * Each SCC is represented as an array of node indices.
3486
3639
  *
3487
- * @example
3640
+ * **Example** (Finding strongly connected components)
3641
+ *
3488
3642
  * ```ts
3489
3643
  * import { Graph } from "effect"
3490
3644
  *
@@ -3501,8 +3655,8 @@ export const connectedComponents = <N, E>(
3501
3655
  * console.log(sccs) // [[0, 1, 2]]
3502
3656
  * ```
3503
3657
  *
3504
- * @since 4.0.0
3505
3658
  * @category algorithms
3659
+ * @since 3.18.0
3506
3660
  */
3507
3661
  export const stronglyConnectedComponents = <N, E, T extends Kind = "directed">(
3508
3662
  graph: Graph<N, E, T> | MutableGraph<N, E, T>
@@ -3602,10 +3756,15 @@ export const stronglyConnectedComponents = <N, E, T extends Kind = "directed">(
3602
3756
  // =============================================================================
3603
3757
 
3604
3758
  /**
3605
- * Result of a shortest path computation containing the path and total distance.
3759
+ * Result of a shortest path computation.
3760
+ *
3761
+ * **Details**
3762
+ *
3763
+ * Contains the node-index path, the total numeric distance, and the edge data
3764
+ * encountered along the path.
3606
3765
  *
3607
- * @since 4.0.0
3608
3766
  * @category models
3767
+ * @since 3.18.0
3609
3768
  */
3610
3769
  export interface PathResult<E> {
3611
3770
  readonly path: Array<NodeIndex>
@@ -3614,10 +3773,15 @@ export interface PathResult<E> {
3614
3773
  }
3615
3774
 
3616
3775
  /**
3617
- * Configuration for Dijkstra's algorithm.
3776
+ * Configuration for finding a shortest path with Dijkstra's algorithm.
3777
+ *
3778
+ * **Details**
3779
+ *
3780
+ * Specifies the source and target node indices, plus a cost function that maps
3781
+ * each edge's data to a non-negative numeric weight.
3618
3782
  *
3619
- * @since 4.0.0
3620
3783
  * @category models
3784
+ * @since 3.18.0
3621
3785
  */
3622
3786
  export interface DijkstraConfig<E> {
3623
3787
  source: NodeIndex
@@ -3626,12 +3790,17 @@ export interface DijkstraConfig<E> {
3626
3790
  }
3627
3791
 
3628
3792
  /**
3629
- * Find the shortest path between two nodes using Dijkstra's algorithm.
3793
+ * Finds the shortest path from the configured source node to the target node
3794
+ * using Dijkstra's algorithm.
3795
+ *
3796
+ * **Details**
3797
+ *
3798
+ * Edge costs must be non-negative. Returns `Option.none()` when the target is
3799
+ * not reachable, and throws a `GraphError` when either endpoint is missing or a
3800
+ * negative edge cost is encountered.
3630
3801
  *
3631
- * Dijkstra's algorithm works with non-negative edge weights and finds the shortest
3632
- * path from a source node to a target node in O((V + E) log V) time complexity.
3802
+ * **Example** (Finding shortest paths with Dijkstra)
3633
3803
  *
3634
- * @example
3635
3804
  * ```ts
3636
3805
  * import { Graph } from "effect"
3637
3806
  *
@@ -3656,17 +3825,22 @@ export interface DijkstraConfig<E> {
3656
3825
  * }
3657
3826
  * ```
3658
3827
  *
3659
- * @since 4.0.0
3660
3828
  * @category algorithms
3829
+ * @since 3.18.0
3661
3830
  */
3662
3831
  export const dijkstra: {
3663
3832
  /**
3664
- * Find the shortest path between two nodes using Dijkstra's algorithm.
3833
+ * Finds the shortest path from the configured source node to the target node
3834
+ * using Dijkstra's algorithm.
3835
+ *
3836
+ * **Details**
3665
3837
  *
3666
- * Dijkstra's algorithm works with non-negative edge weights and finds the shortest
3667
- * path from a source node to a target node in O((V + E) log V) time complexity.
3838
+ * Edge costs must be non-negative. Returns `Option.none()` when the target is
3839
+ * not reachable, and throws a `GraphError` when either endpoint is missing or a
3840
+ * negative edge cost is encountered.
3841
+ *
3842
+ * **Example** (Finding shortest paths with Dijkstra)
3668
3843
  *
3669
- * @example
3670
3844
  * ```ts
3671
3845
  * import { Graph } from "effect"
3672
3846
  *
@@ -3691,17 +3865,22 @@ export const dijkstra: {
3691
3865
  * }
3692
3866
  * ```
3693
3867
  *
3694
- * @since 4.0.0
3695
3868
  * @category algorithms
3869
+ * @since 3.18.0
3696
3870
  */
3697
3871
  <E>(config: DijkstraConfig<E>): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<PathResult<E>>
3698
3872
  /**
3699
- * Find the shortest path between two nodes using Dijkstra's algorithm.
3873
+ * Finds the shortest path from the configured source node to the target node
3874
+ * using Dijkstra's algorithm.
3875
+ *
3876
+ * **Details**
3700
3877
  *
3701
- * Dijkstra's algorithm works with non-negative edge weights and finds the shortest
3702
- * path from a source node to a target node in O((V + E) log V) time complexity.
3878
+ * Edge costs must be non-negative. Returns `Option.none()` when the target is
3879
+ * not reachable, and throws a `GraphError` when either endpoint is missing or a
3880
+ * negative edge cost is encountered.
3881
+ *
3882
+ * **Example** (Finding shortest paths with Dijkstra)
3703
3883
  *
3704
- * @example
3705
3884
  * ```ts
3706
3885
  * import { Graph } from "effect"
3707
3886
  *
@@ -3726,8 +3905,8 @@ export const dijkstra: {
3726
3905
  * }
3727
3906
  * ```
3728
3907
  *
3729
- * @since 4.0.0
3730
3908
  * @category algorithms
3909
+ * @since 3.18.0
3731
3910
  */
3732
3911
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config: DijkstraConfig<E>): Option.Option<PathResult<E>>
3733
3912
  } = dual(2, <N, E, T extends Kind = "directed">(
@@ -3857,10 +4036,15 @@ export const dijkstra: {
3857
4036
  })
3858
4037
 
3859
4038
  /**
3860
- * Result of all-pairs shortest path computation.
4039
+ * Result of an all-pairs shortest path computation.
4040
+ *
4041
+ * **Details**
4042
+ *
4043
+ * Contains distance, node-path, and edge-data maps keyed by source and target
4044
+ * node indices.
3861
4045
  *
3862
- * @since 4.0.0
3863
4046
  * @category models
4047
+ * @since 3.18.0
3864
4048
  */
3865
4049
  export interface AllPairsResult<E> {
3866
4050
  readonly distances: Map<NodeIndex, Map<NodeIndex, number>>
@@ -3869,14 +4053,17 @@ export interface AllPairsResult<E> {
3869
4053
  }
3870
4054
 
3871
4055
  /**
3872
- * Find shortest paths between all pairs of nodes using Floyd-Warshall algorithm.
4056
+ * Finds shortest paths between all pairs of nodes using the Floyd-Warshall
4057
+ * algorithm.
3873
4058
  *
3874
- * Floyd-Warshall algorithm computes shortest paths between all pairs of nodes in O(V³) time.
3875
- * It can handle negative edge weights and detect negative cycles.
4059
+ * **Details**
3876
4060
  *
3877
- * Throws if a negative cycle is detected that affects the path to target.
4061
+ * Computes distances, reconstructed node paths, and edge-data paths for every
4062
+ * source and target pair in O(V^3) time. Negative edge weights are allowed, but
4063
+ * a `GraphError` is thrown if any negative cycle is detected.
4064
+ *
4065
+ * **Example** (Finding all-pairs shortest paths)
3878
4066
  *
3879
- * @example
3880
4067
  * ```ts
3881
4068
  * import { Graph } from "effect"
3882
4069
  *
@@ -3894,19 +4081,22 @@ export interface AllPairsResult<E> {
3894
4081
  * const pathAToC = result.paths.get(0)?.get(2) // [0, 1, 2]
3895
4082
  * ```
3896
4083
  *
3897
- * @since 4.0.0
3898
4084
  * @category algorithms
4085
+ * @since 3.18.0
3899
4086
  */
3900
4087
  export const floydWarshall: {
3901
4088
  /**
3902
- * Find shortest paths between all pairs of nodes using Floyd-Warshall algorithm.
4089
+ * Finds shortest paths between all pairs of nodes using the Floyd-Warshall
4090
+ * algorithm.
3903
4091
  *
3904
- * Floyd-Warshall algorithm computes shortest paths between all pairs of nodes in O(V³) time.
3905
- * It can handle negative edge weights and detect negative cycles.
4092
+ * **Details**
3906
4093
  *
3907
- * Throws if a negative cycle is detected that affects the path to target.
4094
+ * Computes distances, reconstructed node paths, and edge-data paths for every
4095
+ * source and target pair in O(V^3) time. Negative edge weights are allowed, but
4096
+ * a `GraphError` is thrown if any negative cycle is detected.
4097
+ *
4098
+ * **Example** (Finding all-pairs shortest paths)
3908
4099
  *
3909
- * @example
3910
4100
  * ```ts
3911
4101
  * import { Graph } from "effect"
3912
4102
  *
@@ -3924,19 +4114,22 @@ export const floydWarshall: {
3924
4114
  * const pathAToC = result.paths.get(0)?.get(2) // [0, 1, 2]
3925
4115
  * ```
3926
4116
  *
3927
- * @since 4.0.0
3928
4117
  * @category algorithms
4118
+ * @since 3.18.0
3929
4119
  */
3930
4120
  <E>(cost: (edgeData: E) => number): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => AllPairsResult<E>
3931
4121
  /**
3932
- * Find shortest paths between all pairs of nodes using Floyd-Warshall algorithm.
4122
+ * Finds shortest paths between all pairs of nodes using the Floyd-Warshall
4123
+ * algorithm.
4124
+ *
4125
+ * **Details**
3933
4126
  *
3934
- * Floyd-Warshall algorithm computes shortest paths between all pairs of nodes in O(V³) time.
3935
- * It can handle negative edge weights and detect negative cycles.
4127
+ * Computes distances, reconstructed node paths, and edge-data paths for every
4128
+ * source and target pair in O(V^3) time. Negative edge weights are allowed, but
4129
+ * a `GraphError` is thrown if any negative cycle is detected.
3936
4130
  *
3937
- * Throws if a negative cycle is detected that affects the path to target.
4131
+ * **Example** (Finding all-pairs shortest paths)
3938
4132
  *
3939
- * @example
3940
4133
  * ```ts
3941
4134
  * import { Graph } from "effect"
3942
4135
  *
@@ -3954,8 +4147,8 @@ export const floydWarshall: {
3954
4147
  * const pathAToC = result.paths.get(0)?.get(2) // [0, 1, 2]
3955
4148
  * ```
3956
4149
  *
3957
- * @since 4.0.0
3958
4150
  * @category algorithms
4151
+ * @since 3.18.0
3959
4152
  */
3960
4153
  <N, E, T extends Kind = "directed">(
3961
4154
  graph: Graph<N, E, T> | MutableGraph<N, E, T>,
@@ -4073,10 +4266,15 @@ export const floydWarshall: {
4073
4266
  })
4074
4267
 
4075
4268
  /**
4076
- * Configuration for A* pathfinding algorithm.
4269
+ * Configuration for finding a shortest path with the A* algorithm.
4270
+ *
4271
+ * **Details**
4272
+ *
4273
+ * Specifies the source and target node indices, an edge-cost function, and a
4274
+ * heuristic that estimates the remaining cost from a node to the target.
4077
4275
  *
4078
- * @since 4.0.0
4079
4276
  * @category models
4277
+ * @since 3.18.0
4080
4278
  */
4081
4279
  export interface AstarConfig<E, N> {
4082
4280
  source: NodeIndex
@@ -4086,13 +4284,18 @@ export interface AstarConfig<E, N> {
4086
4284
  }
4087
4285
 
4088
4286
  /**
4089
- * Find the shortest path between two nodes using A* pathfinding algorithm.
4287
+ * Finds the shortest path from the configured source node to the target node
4288
+ * using the A* pathfinding algorithm.
4289
+ *
4290
+ * **Details**
4090
4291
  *
4091
- * A* is an extension of Dijkstra's algorithm that uses a heuristic function to guide
4092
- * the search towards the target, potentially finding paths faster than Dijkstra's.
4093
- * The heuristic must be admissible (never overestimate the actual cost).
4292
+ * The edge-cost function must return non-negative weights, and the heuristic
4293
+ * should be admissible to preserve shortest-path guarantees. Returns
4294
+ * `Option.none()` when the target is not reachable, and throws a `GraphError`
4295
+ * when either endpoint is missing or a negative edge cost is encountered.
4296
+ *
4297
+ * **Example** (Finding shortest paths with A-star)
4094
4298
  *
4095
- * @example
4096
4299
  * ```ts
4097
4300
  * import { Graph } from "effect"
4098
4301
  *
@@ -4123,18 +4326,23 @@ export interface AstarConfig<E, N> {
4123
4326
  * }
4124
4327
  * ```
4125
4328
  *
4126
- * @since 4.0.0
4127
4329
  * @category algorithms
4330
+ * @since 3.18.0
4128
4331
  */
4129
4332
  export const astar: {
4130
4333
  /**
4131
- * Find the shortest path between two nodes using A* pathfinding algorithm.
4334
+ * Finds the shortest path from the configured source node to the target node
4335
+ * using the A* pathfinding algorithm.
4132
4336
  *
4133
- * A* is an extension of Dijkstra's algorithm that uses a heuristic function to guide
4134
- * the search towards the target, potentially finding paths faster than Dijkstra's.
4135
- * The heuristic must be admissible (never overestimate the actual cost).
4337
+ * **Details**
4338
+ *
4339
+ * The edge-cost function must return non-negative weights, and the heuristic
4340
+ * should be admissible to preserve shortest-path guarantees. Returns
4341
+ * `Option.none()` when the target is not reachable, and throws a `GraphError`
4342
+ * when either endpoint is missing or a negative edge cost is encountered.
4343
+ *
4344
+ * **Example** (Finding shortest paths with A-star)
4136
4345
  *
4137
- * @example
4138
4346
  * ```ts
4139
4347
  * import { Graph } from "effect"
4140
4348
  *
@@ -4165,18 +4373,23 @@ export const astar: {
4165
4373
  * }
4166
4374
  * ```
4167
4375
  *
4168
- * @since 4.0.0
4169
4376
  * @category algorithms
4377
+ * @since 3.18.0
4170
4378
  */
4171
4379
  <E, N>(config: AstarConfig<E, N>): <T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<PathResult<E>>
4172
4380
  /**
4173
- * Find the shortest path between two nodes using A* pathfinding algorithm.
4381
+ * Finds the shortest path from the configured source node to the target node
4382
+ * using the A* pathfinding algorithm.
4383
+ *
4384
+ * **Details**
4385
+ *
4386
+ * The edge-cost function must return non-negative weights, and the heuristic
4387
+ * should be admissible to preserve shortest-path guarantees. Returns
4388
+ * `Option.none()` when the target is not reachable, and throws a `GraphError`
4389
+ * when either endpoint is missing or a negative edge cost is encountered.
4174
4390
  *
4175
- * A* is an extension of Dijkstra's algorithm that uses a heuristic function to guide
4176
- * the search towards the target, potentially finding paths faster than Dijkstra's.
4177
- * The heuristic must be admissible (never overestimate the actual cost).
4391
+ * **Example** (Finding shortest paths with A-star)
4178
4392
  *
4179
- * @example
4180
4393
  * ```ts
4181
4394
  * import { Graph } from "effect"
4182
4395
  *
@@ -4207,8 +4420,8 @@ export const astar: {
4207
4420
  * }
4208
4421
  * ```
4209
4422
  *
4210
- * @since 4.0.0
4211
4423
  * @category algorithms
4424
+ * @since 3.18.0
4212
4425
  */
4213
4426
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config: AstarConfig<E, N>): Option.Option<PathResult<E>>
4214
4427
  } = dual(2, <N, E, T extends Kind = "directed">(
@@ -4362,10 +4575,15 @@ export const astar: {
4362
4575
  })
4363
4576
 
4364
4577
  /**
4365
- * Configuration for Bellman-Ford algorithm.
4578
+ * Configuration for finding a shortest path with the Bellman-Ford algorithm.
4579
+ *
4580
+ * **Details**
4581
+ *
4582
+ * Specifies the source and target node indices, plus a cost function that maps
4583
+ * each edge's data to a numeric weight.
4366
4584
  *
4367
- * @since 4.0.0
4368
4585
  * @category models
4586
+ * @since 3.18.0
4369
4587
  */
4370
4588
  export interface BellmanFordConfig<E> {
4371
4589
  source: NodeIndex
@@ -4374,13 +4592,17 @@ export interface BellmanFordConfig<E> {
4374
4592
  }
4375
4593
 
4376
4594
  /**
4377
- * Find the shortest path between two nodes using Bellman-Ford algorithm.
4595
+ * Finds the shortest path from the configured source node to the target node
4596
+ * using the Bellman-Ford algorithm.
4597
+ *
4598
+ * **Details**
4378
4599
  *
4379
- * Bellman-Ford algorithm can handle negative edge weights and detects negative cycles.
4380
- * It has O(VE) time complexity, slower than Dijkstra's but more versatile.
4381
- * Returns Option.none() if a negative cycle is detected that affects the path.
4600
+ * Negative edge weights are allowed. Returns `Option.none()` when the target is
4601
+ * unreachable or when a negative cycle affects the path to the target. Throws a
4602
+ * `GraphError` when either endpoint is missing.
4603
+ *
4604
+ * **Example** (Finding shortest paths with Bellman-Ford)
4382
4605
  *
4383
- * @example
4384
4606
  * ```ts
4385
4607
  * import { Graph } from "effect"
4386
4608
  *
@@ -4405,18 +4627,22 @@ export interface BellmanFordConfig<E> {
4405
4627
  * }
4406
4628
  * ```
4407
4629
  *
4408
- * @since 4.0.0
4409
4630
  * @category algorithms
4631
+ * @since 3.18.0
4410
4632
  */
4411
4633
  export const bellmanFord: {
4412
4634
  /**
4413
- * Find the shortest path between two nodes using Bellman-Ford algorithm.
4635
+ * Finds the shortest path from the configured source node to the target node
4636
+ * using the Bellman-Ford algorithm.
4637
+ *
4638
+ * **Details**
4414
4639
  *
4415
- * Bellman-Ford algorithm can handle negative edge weights and detects negative cycles.
4416
- * It has O(VE) time complexity, slower than Dijkstra's but more versatile.
4417
- * Returns Option.none() if a negative cycle is detected that affects the path.
4640
+ * Negative edge weights are allowed. Returns `Option.none()` when the target is
4641
+ * unreachable or when a negative cycle affects the path to the target. Throws a
4642
+ * `GraphError` when either endpoint is missing.
4643
+ *
4644
+ * **Example** (Finding shortest paths with Bellman-Ford)
4418
4645
  *
4419
- * @example
4420
4646
  * ```ts
4421
4647
  * import { Graph } from "effect"
4422
4648
  *
@@ -4441,18 +4667,22 @@ export const bellmanFord: {
4441
4667
  * }
4442
4668
  * ```
4443
4669
  *
4444
- * @since 4.0.0
4445
4670
  * @category algorithms
4671
+ * @since 3.18.0
4446
4672
  */
4447
4673
  <E>(config: BellmanFordConfig<E>): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<PathResult<E>>
4448
4674
  /**
4449
- * Find the shortest path between two nodes using Bellman-Ford algorithm.
4675
+ * Finds the shortest path from the configured source node to the target node
4676
+ * using the Bellman-Ford algorithm.
4450
4677
  *
4451
- * Bellman-Ford algorithm can handle negative edge weights and detects negative cycles.
4452
- * It has O(VE) time complexity, slower than Dijkstra's but more versatile.
4453
- * Returns Option.none() if a negative cycle is detected that affects the path.
4678
+ * **Details**
4679
+ *
4680
+ * Negative edge weights are allowed. Returns `Option.none()` when the target is
4681
+ * unreachable or when a negative cycle affects the path to the target. Throws a
4682
+ * `GraphError` when either endpoint is missing.
4683
+ *
4684
+ * **Example** (Finding shortest paths with Bellman-Ford)
4454
4685
  *
4455
- * @example
4456
4686
  * ```ts
4457
4687
  * import { Graph } from "effect"
4458
4688
  *
@@ -4477,8 +4707,8 @@ export const bellmanFord: {
4477
4707
  * }
4478
4708
  * ```
4479
4709
  *
4480
- * @since 4.0.0
4481
4710
  * @category algorithms
4711
+ * @since 3.18.0
4482
4712
  */
4483
4713
  <N, E, T extends Kind = "directed">(
4484
4714
  graph: Graph<N, E, T> | MutableGraph<N, E, T>,
@@ -4614,13 +4844,16 @@ export const bellmanFord: {
4614
4844
  })
4615
4845
 
4616
4846
  /**
4617
- * Concrete class for iterables that produce [NodeIndex, NodeData] tuples.
4847
+ * Iterable wrapper used by graph traversal and listing APIs.
4848
+ *
4849
+ * **Details**
4850
+ *
4851
+ * A `Walker` yields `[index, data]` pairs lazily and can be viewed as just the
4852
+ * indices, just the values, or mapped entries with `indices`, `values`,
4853
+ * `entries`, and `visit`.
4618
4854
  *
4619
- * This class provides a common abstraction for all iterables that return node data,
4620
- * including traversal iterators (DFS, BFS, etc.) and element iterators (nodes, externals).
4621
- * It uses a mapEntry function pattern for flexible iteration and transformation.
4855
+ * **Example** (Working with node walkers)
4622
4856
  *
4623
- * @example
4624
4857
  * ```ts
4625
4858
  * import { Graph } from "effect"
4626
4859
  *
@@ -4644,8 +4877,8 @@ export const bellmanFord: {
4644
4877
  * const nodeEntries = Array.from(Graph.entries(allNodes)) // [[0, "A"], [1, "B"]]
4645
4878
  * ```
4646
4879
  *
4647
- * @since 4.0.0
4648
4880
  * @category models
4881
+ * @since 3.18.0
4649
4882
  */
4650
4883
  export class Walker<T, N> implements Iterable<[T, N]> {
4651
4884
  // @ts-ignore
@@ -4658,7 +4891,8 @@ export class Walker<T, N> implements Iterable<[T, N]> {
4658
4891
  * and returns an iterable of the mapped values. Skips elements that
4659
4892
  * no longer exist in the graph.
4660
4893
  *
4661
- * @example
4894
+ * **Example** (Visiting walker elements)
4895
+ *
4662
4896
  * ```ts
4663
4897
  * import { Graph } from "effect"
4664
4898
  *
@@ -4682,7 +4916,6 @@ export class Walker<T, N> implements Iterable<[T, N]> {
4682
4916
  * ```
4683
4917
  *
4684
4918
  * @since 4.0.0
4685
- * @category iterators
4686
4919
  */
4687
4920
  readonly visit: <U>(f: (index: T, data: N) => U) => Iterable<U>
4688
4921
 
@@ -4694,7 +4927,8 @@ export class Walker<T, N> implements Iterable<[T, N]> {
4694
4927
  * and returns an iterable of the mapped values. Skips elements that
4695
4928
  * no longer exist in the graph.
4696
4929
  *
4697
- * @example
4930
+ * **Example** (Visiting walker elements)
4931
+ *
4698
4932
  * ```ts
4699
4933
  * import { Graph } from "effect"
4700
4934
  *
@@ -4717,8 +4951,8 @@ export class Walker<T, N> implements Iterable<[T, N]> {
4717
4951
  * console.log(custom) // [{ id: 0, name: "A" }, { id: 1, name: "B" }]
4718
4952
  * ```
4719
4953
  *
4720
- * @since 4.0.0
4721
4954
  * @category iterators
4955
+ * @since 4.0.0
4722
4956
  */
4723
4957
  visit: <U>(f: (index: T, data: N) => U) => Iterable<U>
4724
4958
  ) {
@@ -4731,8 +4965,8 @@ export class Walker<T, N> implements Iterable<[T, N]> {
4731
4965
  * Type alias for node iteration using Walker.
4732
4966
  * NodeWalker is represented as Walker<NodeIndex, N>.
4733
4967
  *
4734
- * @since 4.0.0
4735
4968
  * @category models
4969
+ * @since 3.18.0
4736
4970
  */
4737
4971
  export type NodeWalker<N> = Walker<NodeIndex, N>
4738
4972
 
@@ -4740,15 +4974,16 @@ export type NodeWalker<N> = Walker<NodeIndex, N>
4740
4974
  * Type alias for edge iteration using Walker.
4741
4975
  * EdgeWalker is represented as Walker<EdgeIndex, Edge<E>>.
4742
4976
  *
4743
- * @since 4.0.0
4744
4977
  * @category models
4978
+ * @since 3.18.0
4745
4979
  */
4746
4980
  export type EdgeWalker<E> = Walker<EdgeIndex, Edge<E>>
4747
4981
 
4748
4982
  /**
4749
4983
  * Returns an iterator over the indices in the walker.
4750
4984
  *
4751
- * @example
4985
+ * **Example** (Iterating walker indices)
4986
+ *
4752
4987
  * ```ts
4753
4988
  * import { Graph } from "effect"
4754
4989
  *
@@ -4763,15 +4998,16 @@ export type EdgeWalker<E> = Walker<EdgeIndex, Edge<E>>
4763
4998
  * console.log(indices) // [0, 1]
4764
4999
  * ```
4765
5000
  *
4766
- * @since 4.0.0
4767
- * @category utilities
5001
+ * @category utils
5002
+ * @since 3.18.0
4768
5003
  */
4769
5004
  export const indices = <T, N>(walker: Walker<T, N>): Iterable<T> => walker.visit((index, _) => index)
4770
5005
 
4771
5006
  /**
4772
5007
  * Returns an iterator over the values (data) in the walker.
4773
5008
  *
4774
- * @example
5009
+ * **Example** (Iterating walker values)
5010
+ *
4775
5011
  * ```ts
4776
5012
  * import { Graph } from "effect"
4777
5013
  *
@@ -4786,15 +5022,16 @@ export const indices = <T, N>(walker: Walker<T, N>): Iterable<T> => walker.visit
4786
5022
  * console.log(values) // ["A", "B"]
4787
5023
  * ```
4788
5024
  *
4789
- * @since 4.0.0
4790
- * @category utilities
5025
+ * @category utils
5026
+ * @since 3.18.0
4791
5027
  */
4792
5028
  export const values = <T, N>(walker: Walker<T, N>): Iterable<N> => walker.visit((_, data) => data)
4793
5029
 
4794
5030
  /**
4795
5031
  * Returns an iterator over [index, data] entries in the walker.
4796
5032
  *
4797
- * @example
5033
+ * **Example** (Iterating walker entries)
5034
+ *
4798
5035
  * ```ts
4799
5036
  * import { Graph } from "effect"
4800
5037
  *
@@ -4809,17 +5046,23 @@ export const values = <T, N>(walker: Walker<T, N>): Iterable<N> => walker.visit(
4809
5046
  * console.log(entries) // [[0, "A"], [1, "B"]]
4810
5047
  * ```
4811
5048
  *
4812
- * @since 4.0.0
4813
- * @category utilities
5049
+ * @category utils
5050
+ * @since 3.18.0
4814
5051
  */
4815
5052
  export const entries = <T, N>(walker: Walker<T, N>): Iterable<[T, N]> =>
4816
5053
  walker.visit((index, data) => [index, data] as [T, N])
4817
5054
 
4818
5055
  /**
4819
- * Configuration options for search iterators.
5056
+ * Configuration for DFS, BFS, and postorder graph traversals.
5057
+ *
5058
+ * **Details**
5059
+ *
5060
+ * `start` supplies the node indices where traversal begins. If it is omitted,
5061
+ * the iterator is empty. `direction` chooses whether traversal follows
5062
+ * outgoing or incoming edges.
4820
5063
  *
4821
- * @since 4.0.0
4822
5064
  * @category models
5065
+ * @since 3.18.0
4823
5066
  */
4824
5067
  export interface SearchConfig {
4825
5068
  readonly start?: Array<NodeIndex>
@@ -4827,12 +5070,17 @@ export interface SearchConfig {
4827
5070
  }
4828
5071
 
4829
5072
  /**
4830
- * Creates a new DFS iterator with optional configuration.
5073
+ * Creates a lazy depth-first traversal iterator from the configured start
5074
+ * nodes.
4831
5075
  *
4832
- * The iterator maintains a stack of nodes to visit and tracks discovered nodes.
4833
- * It provides lazy evaluation of the depth-first search.
5076
+ * **Details**
5077
+ *
5078
+ * If no start nodes are supplied, the iterator is empty. The `direction` option
5079
+ * chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
5080
+ * if any configured start node does not exist.
5081
+ *
5082
+ * **Example** (Traversing depth-first)
4834
5083
  *
4835
- * @example
4836
5084
  * ```ts
4837
5085
  * import { Graph } from "effect"
4838
5086
  *
@@ -4855,17 +5103,22 @@ export interface SearchConfig {
4855
5103
  * // Can be used programmatically
4856
5104
  * ```
4857
5105
  *
4858
- * @since 4.0.0
4859
5106
  * @category iterators
5107
+ * @since 3.18.0
4860
5108
  */
4861
5109
  export const dfs: {
4862
5110
  /**
4863
- * Creates a new DFS iterator with optional configuration.
5111
+ * Creates a lazy depth-first traversal iterator from the configured start
5112
+ * nodes.
5113
+ *
5114
+ * **Details**
5115
+ *
5116
+ * If no start nodes are supplied, the iterator is empty. The `direction` option
5117
+ * chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
5118
+ * if any configured start node does not exist.
4864
5119
  *
4865
- * The iterator maintains a stack of nodes to visit and tracks discovered nodes.
4866
- * It provides lazy evaluation of the depth-first search.
5120
+ * **Example** (Traversing depth-first)
4867
5121
  *
4868
- * @example
4869
5122
  * ```ts
4870
5123
  * import { Graph } from "effect"
4871
5124
  *
@@ -4888,17 +5141,22 @@ export const dfs: {
4888
5141
  * // Can be used programmatically
4889
5142
  * ```
4890
5143
  *
4891
- * @since 4.0.0
4892
5144
  * @category iterators
5145
+ * @since 3.18.0
4893
5146
  */
4894
5147
  (config?: SearchConfig): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => NodeWalker<N>
4895
5148
  /**
4896
- * Creates a new DFS iterator with optional configuration.
5149
+ * Creates a lazy depth-first traversal iterator from the configured start
5150
+ * nodes.
5151
+ *
5152
+ * **Details**
5153
+ *
5154
+ * If no start nodes are supplied, the iterator is empty. The `direction` option
5155
+ * chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
5156
+ * if any configured start node does not exist.
4897
5157
  *
4898
- * The iterator maintains a stack of nodes to visit and tracks discovered nodes.
4899
- * It provides lazy evaluation of the depth-first search.
5158
+ * **Example** (Traversing depth-first)
4900
5159
  *
4901
- * @example
4902
5160
  * ```ts
4903
5161
  * import { Graph } from "effect"
4904
5162
  *
@@ -4921,8 +5179,8 @@ export const dfs: {
4921
5179
  * // Can be used programmatically
4922
5180
  * ```
4923
5181
  *
4924
- * @since 4.0.0
4925
5182
  * @category iterators
5183
+ * @since 3.18.0
4926
5184
  */
4927
5185
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config?: SearchConfig): NodeWalker<N>
4928
5186
  } = dual((args) => isGraph(args[0]), <N, E, T extends Kind = "directed">(
@@ -4979,12 +5237,17 @@ export const dfs: {
4979
5237
  })
4980
5238
 
4981
5239
  /**
4982
- * Creates a new BFS iterator with optional configuration.
5240
+ * Creates a lazy breadth-first traversal iterator from the configured start
5241
+ * nodes.
5242
+ *
5243
+ * **Details**
4983
5244
  *
4984
- * The iterator maintains a queue of nodes to visit and tracks discovered nodes.
4985
- * It provides lazy evaluation of the breadth-first search.
5245
+ * If no start nodes are supplied, the iterator is empty. The `direction` option
5246
+ * chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
5247
+ * if any configured start node does not exist.
5248
+ *
5249
+ * **Example** (Traversing breadth-first)
4986
5250
  *
4987
- * @example
4988
5251
  * ```ts
4989
5252
  * import { Graph } from "effect"
4990
5253
  *
@@ -5007,17 +5270,22 @@ export const dfs: {
5007
5270
  * // Can be used programmatically
5008
5271
  * ```
5009
5272
  *
5010
- * @since 4.0.0
5011
5273
  * @category iterators
5274
+ * @since 3.18.0
5012
5275
  */
5013
5276
  export const bfs: {
5014
5277
  /**
5015
- * Creates a new BFS iterator with optional configuration.
5278
+ * Creates a lazy breadth-first traversal iterator from the configured start
5279
+ * nodes.
5280
+ *
5281
+ * **Details**
5016
5282
  *
5017
- * The iterator maintains a queue of nodes to visit and tracks discovered nodes.
5018
- * It provides lazy evaluation of the breadth-first search.
5283
+ * If no start nodes are supplied, the iterator is empty. The `direction` option
5284
+ * chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
5285
+ * if any configured start node does not exist.
5286
+ *
5287
+ * **Example** (Traversing breadth-first)
5019
5288
  *
5020
- * @example
5021
5289
  * ```ts
5022
5290
  * import { Graph } from "effect"
5023
5291
  *
@@ -5040,17 +5308,22 @@ export const bfs: {
5040
5308
  * // Can be used programmatically
5041
5309
  * ```
5042
5310
  *
5043
- * @since 4.0.0
5044
5311
  * @category iterators
5312
+ * @since 3.18.0
5045
5313
  */
5046
5314
  (config?: SearchConfig): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => NodeWalker<N>
5047
5315
  /**
5048
- * Creates a new BFS iterator with optional configuration.
5316
+ * Creates a lazy breadth-first traversal iterator from the configured start
5317
+ * nodes.
5049
5318
  *
5050
- * The iterator maintains a queue of nodes to visit and tracks discovered nodes.
5051
- * It provides lazy evaluation of the breadth-first search.
5319
+ * **Details**
5320
+ *
5321
+ * If no start nodes are supplied, the iterator is empty. The `direction` option
5322
+ * chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
5323
+ * if any configured start node does not exist.
5324
+ *
5325
+ * **Example** (Traversing breadth-first)
5052
5326
  *
5053
- * @example
5054
5327
  * ```ts
5055
5328
  * import { Graph } from "effect"
5056
5329
  *
@@ -5073,8 +5346,8 @@ export const bfs: {
5073
5346
  * // Can be used programmatically
5074
5347
  * ```
5075
5348
  *
5076
- * @since 4.0.0
5077
5349
  * @category iterators
5350
+ * @since 3.18.0
5078
5351
  */
5079
5352
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config?: SearchConfig): NodeWalker<N>
5080
5353
  } = dual((args) => isGraph(args[0]), <N, E, T extends Kind = "directed">(
@@ -5127,10 +5400,16 @@ export const bfs: {
5127
5400
  })
5128
5401
 
5129
5402
  /**
5130
- * Configuration options for topological sort iterator.
5403
+ * Configuration for the topological sort iterator.
5404
+ *
5405
+ * **Details**
5406
+ *
5407
+ * `initials` optionally supplies the node indices used as initial queue
5408
+ * entries. When omitted, topological sorting starts from all nodes with zero
5409
+ * in-degree.
5131
5410
  *
5132
- * @since 4.0.0
5133
5411
  * @category models
5412
+ * @since 3.18.0
5134
5413
  */
5135
5414
  export interface TopoConfig {
5136
5415
  readonly initials?: Array<NodeIndex>
@@ -5142,7 +5421,8 @@ export interface TopoConfig {
5142
5421
  * The iterator uses Kahn's algorithm to lazily produce nodes in topological order.
5143
5422
  * Throws an error if the graph contains cycles.
5144
5423
  *
5145
- * @example
5424
+ * **Example** (Sorting topologically)
5425
+ *
5146
5426
  * ```ts
5147
5427
  * import { Graph } from "effect"
5148
5428
  *
@@ -5163,7 +5443,7 @@ export interface TopoConfig {
5163
5443
  * // With initial nodes
5164
5444
  * const topo2 = Graph.topo(graph, { initials: [0] })
5165
5445
  *
5166
- * // Throws error for cyclic graph
5446
+ * // Check before sorting a cyclic graph
5167
5447
  * const cyclicGraph = Graph.directed<string, number>((mutable) => {
5168
5448
  * const a = Graph.addNode(mutable, "A")
5169
5449
  * const b = Graph.addNode(mutable, "B")
@@ -5171,15 +5451,13 @@ export interface TopoConfig {
5171
5451
  * Graph.addEdge(mutable, b, a, 2) // Creates cycle
5172
5452
  * })
5173
5453
  *
5174
- * try {
5175
- * Graph.topo(cyclicGraph) // Throws: "Cannot perform topological sort on cyclic graph"
5176
- * } catch (error) {
5177
- * console.log((error as Error).message)
5454
+ * if (!Graph.isAcyclic(cyclicGraph)) {
5455
+ * console.log("cyclic graph") // cyclic graph
5178
5456
  * }
5179
5457
  * ```
5180
5458
  *
5181
- * @since 4.0.0
5182
5459
  * @category iterators
5460
+ * @since 3.18.0
5183
5461
  */
5184
5462
  export const topo: {
5185
5463
  /**
@@ -5188,7 +5466,8 @@ export const topo: {
5188
5466
  * The iterator uses Kahn's algorithm to lazily produce nodes in topological order.
5189
5467
  * Throws an error if the graph contains cycles.
5190
5468
  *
5191
- * @example
5469
+ * **Example** (Sorting topologically)
5470
+ *
5192
5471
  * ```ts
5193
5472
  * import { Graph } from "effect"
5194
5473
  *
@@ -5209,7 +5488,7 @@ export const topo: {
5209
5488
  * // With initial nodes
5210
5489
  * const topo2 = Graph.topo(graph, { initials: [0] })
5211
5490
  *
5212
- * // Throws error for cyclic graph
5491
+ * // Check before sorting a cyclic graph
5213
5492
  * const cyclicGraph = Graph.directed<string, number>((mutable) => {
5214
5493
  * const a = Graph.addNode(mutable, "A")
5215
5494
  * const b = Graph.addNode(mutable, "B")
@@ -5217,15 +5496,13 @@ export const topo: {
5217
5496
  * Graph.addEdge(mutable, b, a, 2) // Creates cycle
5218
5497
  * })
5219
5498
  *
5220
- * try {
5221
- * Graph.topo(cyclicGraph) // Throws: "Cannot perform topological sort on cyclic graph"
5222
- * } catch (error) {
5223
- * console.log((error as Error).message)
5499
+ * if (!Graph.isAcyclic(cyclicGraph)) {
5500
+ * console.log("cyclic graph") // cyclic graph
5224
5501
  * }
5225
5502
  * ```
5226
5503
  *
5227
- * @since 4.0.0
5228
5504
  * @category iterators
5505
+ * @since 3.18.0
5229
5506
  */
5230
5507
  (config?: TopoConfig): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => NodeWalker<N>
5231
5508
  /**
@@ -5234,7 +5511,8 @@ export const topo: {
5234
5511
  * The iterator uses Kahn's algorithm to lazily produce nodes in topological order.
5235
5512
  * Throws an error if the graph contains cycles.
5236
5513
  *
5237
- * @example
5514
+ * **Example** (Sorting topologically)
5515
+ *
5238
5516
  * ```ts
5239
5517
  * import { Graph } from "effect"
5240
5518
  *
@@ -5255,7 +5533,7 @@ export const topo: {
5255
5533
  * // With initial nodes
5256
5534
  * const topo2 = Graph.topo(graph, { initials: [0] })
5257
5535
  *
5258
- * // Throws error for cyclic graph
5536
+ * // Check before sorting a cyclic graph
5259
5537
  * const cyclicGraph = Graph.directed<string, number>((mutable) => {
5260
5538
  * const a = Graph.addNode(mutable, "A")
5261
5539
  * const b = Graph.addNode(mutable, "B")
@@ -5263,15 +5541,13 @@ export const topo: {
5263
5541
  * Graph.addEdge(mutable, b, a, 2) // Creates cycle
5264
5542
  * })
5265
5543
  *
5266
- * try {
5267
- * Graph.topo(cyclicGraph) // Throws: "Cannot perform topological sort on cyclic graph"
5268
- * } catch (error) {
5269
- * console.log((error as Error).message)
5544
+ * if (!Graph.isAcyclic(cyclicGraph)) {
5545
+ * console.log("cyclic graph") // cyclic graph
5270
5546
  * }
5271
5547
  * ```
5272
5548
  *
5273
- * @since 4.0.0
5274
5549
  * @category iterators
5550
+ * @since 3.18.0
5275
5551
  */
5276
5552
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config?: TopoConfig): NodeWalker<N>
5277
5553
  } = dual((args) => isGraph(args[0]), <N, E, T extends Kind = "directed">(
@@ -5358,13 +5634,17 @@ export const topo: {
5358
5634
  })
5359
5635
 
5360
5636
  /**
5361
- * Creates a new DFS postorder iterator with optional configuration.
5637
+ * Creates a lazy depth-first postorder traversal iterator from the configured
5638
+ * start nodes.
5639
+ *
5640
+ * **Details**
5362
5641
  *
5363
- * The iterator maintains a stack with visit state tracking and emits nodes
5364
- * in postorder (after all descendants have been processed). Essential for
5365
- * dependency resolution and tree destruction algorithms.
5642
+ * Nodes are emitted after their reachable descendants have been processed. If
5643
+ * no start nodes are supplied, the iterator is empty. The `direction` option
5644
+ * chooses whether to follow outgoing or incoming edges.
5645
+ *
5646
+ * **Example** (Traversing in postorder)
5366
5647
  *
5367
- * @example
5368
5648
  * ```ts
5369
5649
  * import { Graph } from "effect"
5370
5650
  *
@@ -5383,18 +5663,22 @@ export const topo: {
5383
5663
  * }
5384
5664
  * ```
5385
5665
  *
5386
- * @since 4.0.0
5387
5666
  * @category iterators
5667
+ * @since 3.18.0
5388
5668
  */
5389
5669
  export const dfsPostOrder: {
5390
5670
  /**
5391
- * Creates a new DFS postorder iterator with optional configuration.
5671
+ * Creates a lazy depth-first postorder traversal iterator from the configured
5672
+ * start nodes.
5392
5673
  *
5393
- * The iterator maintains a stack with visit state tracking and emits nodes
5394
- * in postorder (after all descendants have been processed). Essential for
5395
- * dependency resolution and tree destruction algorithms.
5674
+ * **Details**
5675
+ *
5676
+ * Nodes are emitted after their reachable descendants have been processed. If
5677
+ * no start nodes are supplied, the iterator is empty. The `direction` option
5678
+ * chooses whether to follow outgoing or incoming edges.
5679
+ *
5680
+ * **Example** (Traversing in postorder)
5396
5681
  *
5397
- * @example
5398
5682
  * ```ts
5399
5683
  * import { Graph } from "effect"
5400
5684
  *
@@ -5413,18 +5697,22 @@ export const dfsPostOrder: {
5413
5697
  * }
5414
5698
  * ```
5415
5699
  *
5416
- * @since 4.0.0
5417
5700
  * @category iterators
5701
+ * @since 3.18.0
5418
5702
  */
5419
5703
  (config?: SearchConfig): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => NodeWalker<N>
5420
5704
  /**
5421
- * Creates a new DFS postorder iterator with optional configuration.
5705
+ * Creates a lazy depth-first postorder traversal iterator from the configured
5706
+ * start nodes.
5707
+ *
5708
+ * **Details**
5709
+ *
5710
+ * Nodes are emitted after their reachable descendants have been processed. If
5711
+ * no start nodes are supplied, the iterator is empty. The `direction` option
5712
+ * chooses whether to follow outgoing or incoming edges.
5422
5713
  *
5423
- * The iterator maintains a stack with visit state tracking and emits nodes
5424
- * in postorder (after all descendants have been processed). Essential for
5425
- * dependency resolution and tree destruction algorithms.
5714
+ * **Example** (Traversing in postorder)
5426
5715
  *
5427
- * @example
5428
5716
  * ```ts
5429
5717
  * import { Graph } from "effect"
5430
5718
  *
@@ -5443,8 +5731,8 @@ export const dfsPostOrder: {
5443
5731
  * }
5444
5732
  * ```
5445
5733
  *
5446
- * @since 4.0.0
5447
5734
  * @category iterators
5735
+ * @since 3.18.0
5448
5736
  */
5449
5737
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config?: SearchConfig): NodeWalker<N>
5450
5738
  } = dual((args) => isGraph(args[0]), <N, E, T extends Kind = "directed">(
@@ -5520,7 +5808,8 @@ export const dfsPostOrder: {
5520
5808
  * The iterator produces node indices in the order they were added to the graph.
5521
5809
  * This provides access to all nodes regardless of connectivity.
5522
5810
  *
5523
- * @example
5811
+ * **Example** (Iterating all nodes)
5812
+ *
5524
5813
  * ```ts
5525
5814
  * import { Graph } from "effect"
5526
5815
  *
@@ -5535,8 +5824,8 @@ export const dfsPostOrder: {
5535
5824
  * console.log(indices) // [0, 1, 2]
5536
5825
  * ```
5537
5826
  *
5538
- * @since 4.0.0
5539
5827
  * @category iterators
5828
+ * @since 3.18.0
5540
5829
  */
5541
5830
  export const nodes = <N, E, T extends Kind = "directed">(
5542
5831
  graph: Graph<N, E, T> | MutableGraph<N, E, T>
@@ -5565,7 +5854,8 @@ export const nodes = <N, E, T extends Kind = "directed">(
5565
5854
  * The iterator produces edge indices in the order they were added to the graph.
5566
5855
  * This provides access to all edges regardless of connectivity.
5567
5856
  *
5568
- * @example
5857
+ * **Example** (Iterating all edges)
5858
+ *
5569
5859
  * ```ts
5570
5860
  * import { Graph } from "effect"
5571
5861
  *
@@ -5581,8 +5871,8 @@ export const nodes = <N, E, T extends Kind = "directed">(
5581
5871
  * console.log(indices) // [0, 1]
5582
5872
  * ```
5583
5873
  *
5584
- * @since 4.0.0
5585
5874
  * @category iterators
5875
+ * @since 3.18.0
5586
5876
  */
5587
5877
  export const edges = <N, E, T extends Kind = "directed">(
5588
5878
  graph: Graph<N, E, T> | MutableGraph<N, E, T>
@@ -5606,10 +5896,16 @@ export const edges = <N, E, T extends Kind = "directed">(
5606
5896
  }))
5607
5897
 
5608
5898
  /**
5609
- * Configuration for externals iterator.
5899
+ * Configuration for selecting external nodes.
5900
+ *
5901
+ * **Details**
5902
+ *
5903
+ * `direction` chooses which missing edge direction makes a node external:
5904
+ * `"outgoing"` selects nodes with no outgoing edges, and `"incoming"` selects
5905
+ * nodes with no incoming edges.
5610
5906
  *
5611
- * @since 4.0.0
5612
5907
  * @category models
5908
+ * @since 3.18.0
5613
5909
  */
5614
5910
  export interface ExternalsConfig {
5615
5911
  readonly direction?: Direction
@@ -5622,7 +5918,8 @@ export interface ExternalsConfig {
5622
5918
  * no incoming edges (direction="incoming"). These are useful for finding
5623
5919
  * sources, sinks, or isolated nodes.
5624
5920
  *
5625
- * @example
5921
+ * **Example** (Iterating external nodes)
5922
+ *
5626
5923
  * ```ts
5627
5924
  * import { Graph } from "effect"
5628
5925
  *
@@ -5649,8 +5946,8 @@ export interface ExternalsConfig {
5649
5946
  * console.log(sources) // [0, 3]
5650
5947
  * ```
5651
5948
  *
5652
- * @since 4.0.0
5653
5949
  * @category iterators
5950
+ * @since 3.18.0
5654
5951
  */
5655
5952
  export const externals: {
5656
5953
  /**
@@ -5660,7 +5957,8 @@ export const externals: {
5660
5957
  * no incoming edges (direction="incoming"). These are useful for finding
5661
5958
  * sources, sinks, or isolated nodes.
5662
5959
  *
5663
- * @example
5960
+ * **Example** (Iterating external nodes)
5961
+ *
5664
5962
  * ```ts
5665
5963
  * import { Graph } from "effect"
5666
5964
  *
@@ -5687,8 +5985,8 @@ export const externals: {
5687
5985
  * console.log(sources) // [0, 3]
5688
5986
  * ```
5689
5987
  *
5690
- * @since 4.0.0
5691
5988
  * @category iterators
5989
+ * @since 3.18.0
5692
5990
  */
5693
5991
  (config?: ExternalsConfig): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => NodeWalker<N>
5694
5992
  /**
@@ -5698,7 +5996,8 @@ export const externals: {
5698
5996
  * no incoming edges (direction="incoming"). These are useful for finding
5699
5997
  * sources, sinks, or isolated nodes.
5700
5998
  *
5701
- * @example
5999
+ * **Example** (Iterating external nodes)
6000
+ *
5702
6001
  * ```ts
5703
6002
  * import { Graph } from "effect"
5704
6003
  *
@@ -5725,8 +6024,8 @@ export const externals: {
5725
6024
  * console.log(sources) // [0, 3]
5726
6025
  * ```
5727
6026
  *
5728
- * @since 4.0.0
5729
6027
  * @category iterators
6028
+ * @since 3.18.0
5730
6029
  */
5731
6030
  <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config?: ExternalsConfig): NodeWalker<N>
5732
6031
  } = dual((args) => isGraph(args[0]), <N, E, T extends Kind = "directed">(