effect 4.0.4 → 4.0.6

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 (1079) hide show
  1. package/ai-docs/package.json +1 -1
  2. package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
  3. package/ai-docs/src/52_graphql/10_basics.ts +19 -13
  4. package/ai-docs/src/52_graphql/30_batching.ts +6 -4
  5. package/ai-docs/src/52_graphql/40_aliased-batching.ts +6 -4
  6. package/ai-docs/tsconfig.json +3 -1
  7. package/dist/Array.d.ts +207 -58
  8. package/dist/Array.d.ts.map +1 -1
  9. package/dist/Array.js +45 -22
  10. package/dist/Array.js.map +1 -1
  11. package/dist/Bytes.d.ts +79 -0
  12. package/dist/Bytes.d.ts.map +1 -0
  13. package/dist/Bytes.js +109 -0
  14. package/dist/Bytes.js.map +1 -0
  15. package/dist/Channel.d.ts +187 -14
  16. package/dist/Channel.d.ts.map +1 -1
  17. package/dist/Channel.js +142 -33
  18. package/dist/Channel.js.map +1 -1
  19. package/dist/ChannelSchema.d.ts.map +1 -1
  20. package/dist/ChannelSchema.js.map +1 -1
  21. package/dist/Chunk.d.ts +39 -21
  22. package/dist/Chunk.d.ts.map +1 -1
  23. package/dist/Chunk.js +26 -17
  24. package/dist/Chunk.js.map +1 -1
  25. package/dist/Config.d.ts.map +1 -1
  26. package/dist/Config.js +8 -3
  27. package/dist/Config.js.map +1 -1
  28. package/dist/ConfigProvider.d.ts.map +1 -1
  29. package/dist/ConfigProvider.js +34 -32
  30. package/dist/ConfigProvider.js.map +1 -1
  31. package/dist/Cron.d.ts +2 -2
  32. package/dist/Cron.d.ts.map +1 -1
  33. package/dist/Cron.js +6 -3
  34. package/dist/Cron.js.map +1 -1
  35. package/dist/Duration.d.ts.map +1 -1
  36. package/dist/Duration.js +58 -21
  37. package/dist/Duration.js.map +1 -1
  38. package/dist/Effect.d.ts +548 -182
  39. package/dist/Effect.d.ts.map +1 -1
  40. package/dist/Effect.js +261 -76
  41. package/dist/Effect.js.map +1 -1
  42. package/dist/Equivalence.d.ts +2 -1
  43. package/dist/Equivalence.d.ts.map +1 -1
  44. package/dist/Equivalence.js +12 -8
  45. package/dist/Equivalence.js.map +1 -1
  46. package/dist/Exit.d.ts +24 -9
  47. package/dist/Exit.d.ts.map +1 -1
  48. package/dist/Exit.js +8 -3
  49. package/dist/Exit.js.map +1 -1
  50. package/dist/FiberHandle.d.ts +2 -0
  51. package/dist/FiberHandle.d.ts.map +1 -1
  52. package/dist/FiberHandle.js +9 -4
  53. package/dist/FiberHandle.js.map +1 -1
  54. package/dist/FiberMap.d.ts +2 -0
  55. package/dist/FiberMap.d.ts.map +1 -1
  56. package/dist/FiberMap.js +5 -2
  57. package/dist/FiberMap.js.map +1 -1
  58. package/dist/FileSystem.d.ts +28 -9
  59. package/dist/FileSystem.d.ts.map +1 -1
  60. package/dist/FileSystem.js +3 -0
  61. package/dist/FileSystem.js.map +1 -1
  62. package/dist/Graph.d.ts.map +1 -1
  63. package/dist/Graph.js.map +1 -1
  64. package/dist/HashSet.d.ts.map +1 -1
  65. package/dist/HashSet.js.map +1 -1
  66. package/dist/Iterable.d.ts.map +1 -1
  67. package/dist/Iterable.js +18 -17
  68. package/dist/Iterable.js.map +1 -1
  69. package/dist/JsonSchema.d.ts +9 -3
  70. package/dist/JsonSchema.d.ts.map +1 -1
  71. package/dist/JsonSchema.js +19 -3
  72. package/dist/JsonSchema.js.map +1 -1
  73. package/dist/Layer.d.ts.map +1 -1
  74. package/dist/Layer.js +2 -2
  75. package/dist/Layer.js.map +1 -1
  76. package/dist/ManagedRuntime.d.ts +19 -1
  77. package/dist/ManagedRuntime.d.ts.map +1 -1
  78. package/dist/ManagedRuntime.js +62 -6
  79. package/dist/ManagedRuntime.js.map +1 -1
  80. package/dist/Match.d.ts +20 -6
  81. package/dist/Match.d.ts.map +1 -1
  82. package/dist/Match.js +2 -2
  83. package/dist/Match.js.map +1 -1
  84. package/dist/Metric.d.ts +132 -0
  85. package/dist/Metric.d.ts.map +1 -1
  86. package/dist/Metric.js +197 -25
  87. package/dist/Metric.js.map +1 -1
  88. package/dist/MutableHashMap.d.ts.map +1 -1
  89. package/dist/MutableHashMap.js.map +1 -1
  90. package/dist/Number.js +2 -2
  91. package/dist/Number.js.map +1 -1
  92. package/dist/Optic.d.ts.map +1 -1
  93. package/dist/Optic.js.map +1 -1
  94. package/dist/Path.d.ts +37 -5
  95. package/dist/Path.d.ts.map +1 -1
  96. package/dist/Path.js +44 -6
  97. package/dist/Path.js.map +1 -1
  98. package/dist/PubSub.d.ts.map +1 -1
  99. package/dist/PubSub.js +12 -7
  100. package/dist/PubSub.js.map +1 -1
  101. package/dist/Queue.d.ts +4 -1
  102. package/dist/Queue.d.ts.map +1 -1
  103. package/dist/Queue.js +4 -1
  104. package/dist/Queue.js.map +1 -1
  105. package/dist/Random.d.ts.map +1 -1
  106. package/dist/Random.js +1 -1
  107. package/dist/Random.js.map +1 -1
  108. package/dist/RcMap.d.ts +12 -7
  109. package/dist/RcMap.d.ts.map +1 -1
  110. package/dist/RcMap.js +9 -6
  111. package/dist/RcMap.js.map +1 -1
  112. package/dist/Record.d.ts +51 -0
  113. package/dist/Record.d.ts.map +1 -1
  114. package/dist/Record.js +17 -0
  115. package/dist/Record.js.map +1 -1
  116. package/dist/Ref.d.ts.map +1 -1
  117. package/dist/Ref.js.map +1 -1
  118. package/dist/References.d.ts +5 -4
  119. package/dist/References.d.ts.map +1 -1
  120. package/dist/References.js +5 -4
  121. package/dist/References.js.map +1 -1
  122. package/dist/RequestResolver.d.ts +31 -1
  123. package/dist/RequestResolver.d.ts.map +1 -1
  124. package/dist/RequestResolver.js +39 -4
  125. package/dist/RequestResolver.js.map +1 -1
  126. package/dist/Resource.js +1 -1
  127. package/dist/Resource.js.map +1 -1
  128. package/dist/Runtime.d.ts +3 -3
  129. package/dist/Runtime.d.ts.map +1 -1
  130. package/dist/Runtime.js +18 -15
  131. package/dist/Runtime.js.map +1 -1
  132. package/dist/Schedule.d.ts.map +1 -1
  133. package/dist/Schedule.js.map +1 -1
  134. package/dist/Schema.d.ts +383 -326
  135. package/dist/Schema.d.ts.map +1 -1
  136. package/dist/Schema.js +338 -17
  137. package/dist/Schema.js.map +1 -1
  138. package/dist/SchemaAST.d.ts +5 -5
  139. package/dist/SchemaAST.d.ts.map +1 -1
  140. package/dist/SchemaAST.js +24 -8
  141. package/dist/SchemaAST.js.map +1 -1
  142. package/dist/SchemaGetter.d.ts +8 -3
  143. package/dist/SchemaGetter.d.ts.map +1 -1
  144. package/dist/SchemaGetter.js +15 -5
  145. package/dist/SchemaGetter.js.map +1 -1
  146. package/dist/SchemaIssue.d.ts +4 -4
  147. package/dist/SchemaIssue.d.ts.map +1 -1
  148. package/dist/SchemaIssue.js +29 -51
  149. package/dist/SchemaIssue.js.map +1 -1
  150. package/dist/SchemaRepresentation.d.ts +56 -1
  151. package/dist/SchemaRepresentation.d.ts.map +1 -1
  152. package/dist/SchemaRepresentation.js +18 -0
  153. package/dist/SchemaRepresentation.js.map +1 -1
  154. package/dist/SchemaTransformation.d.ts +1 -1
  155. package/dist/SchemaTransformation.js +1 -1
  156. package/dist/Scope.d.ts +12 -2
  157. package/dist/Scope.d.ts.map +1 -1
  158. package/dist/Scope.js +5 -0
  159. package/dist/Scope.js.map +1 -1
  160. package/dist/ScopedCache.d.ts +10 -7
  161. package/dist/ScopedCache.d.ts.map +1 -1
  162. package/dist/ScopedCache.js +9 -5
  163. package/dist/ScopedCache.js.map +1 -1
  164. package/dist/SemVer.d.ts +1196 -0
  165. package/dist/SemVer.d.ts.map +1 -0
  166. package/dist/SemVer.js +756 -0
  167. package/dist/SemVer.js.map +1 -0
  168. package/dist/SemVerRange.d.ts +559 -0
  169. package/dist/SemVerRange.d.ts.map +1 -0
  170. package/dist/SemVerRange.js +551 -0
  171. package/dist/SemVerRange.js.map +1 -0
  172. package/dist/Sink.d.ts.map +1 -1
  173. package/dist/Sink.js +6 -2
  174. package/dist/Sink.js.map +1 -1
  175. package/dist/Stream.d.ts +235 -8
  176. package/dist/Stream.d.ts.map +1 -1
  177. package/dist/Stream.js +145 -60
  178. package/dist/Stream.js.map +1 -1
  179. package/dist/String.d.ts +16 -2
  180. package/dist/String.d.ts.map +1 -1
  181. package/dist/String.js +25 -10
  182. package/dist/String.js.map +1 -1
  183. package/dist/TextDiff.d.ts +399 -0
  184. package/dist/TextDiff.d.ts.map +1 -0
  185. package/dist/TextDiff.js +634 -0
  186. package/dist/TextDiff.js.map +1 -0
  187. package/dist/TxHashMap.d.ts.map +1 -1
  188. package/dist/TxHashMap.js.map +1 -1
  189. package/dist/TxHashSet.d.ts.map +1 -1
  190. package/dist/TxHashSet.js.map +1 -1
  191. package/dist/TxRef.d.ts.map +1 -1
  192. package/dist/TxRef.js +3 -2
  193. package/dist/TxRef.js.map +1 -1
  194. package/dist/ai/AiError.d.ts +78 -14
  195. package/dist/ai/AiError.d.ts.map +1 -1
  196. package/dist/ai/AiError.js +51 -3
  197. package/dist/ai/AiError.js.map +1 -1
  198. package/dist/ai/Chat.d.ts +1 -2
  199. package/dist/ai/Chat.d.ts.map +1 -1
  200. package/dist/ai/Chat.js +6 -3
  201. package/dist/ai/Chat.js.map +1 -1
  202. package/dist/ai/Decision.d.ts +116 -20
  203. package/dist/ai/Decision.d.ts.map +1 -1
  204. package/dist/ai/Decision.js +37 -3
  205. package/dist/ai/Decision.js.map +1 -1
  206. package/dist/ai/DecisionModel.d.ts +129 -11
  207. package/dist/ai/DecisionModel.d.ts.map +1 -1
  208. package/dist/ai/DecisionModel.js +183 -95
  209. package/dist/ai/DecisionModel.js.map +1 -1
  210. package/dist/ai/EmbeddingModel.d.ts +10 -0
  211. package/dist/ai/EmbeddingModel.d.ts.map +1 -1
  212. package/dist/ai/EmbeddingModel.js +21 -7
  213. package/dist/ai/EmbeddingModel.js.map +1 -1
  214. package/dist/ai/LanguageModel.d.ts.map +1 -1
  215. package/dist/ai/LanguageModel.js +47 -35
  216. package/dist/ai/LanguageModel.js.map +1 -1
  217. package/dist/ai/McpClient.d.ts +289 -0
  218. package/dist/ai/McpClient.d.ts.map +1 -0
  219. package/dist/ai/McpClient.js +819 -0
  220. package/dist/ai/McpClient.js.map +1 -0
  221. package/dist/ai/McpClientError.d.ts +254 -0
  222. package/dist/ai/McpClientError.d.ts.map +1 -0
  223. package/dist/ai/McpClientError.js +260 -0
  224. package/dist/ai/McpClientError.js.map +1 -0
  225. package/dist/ai/McpProtocol.d.ts +2 -2
  226. package/dist/ai/McpProtocol.d.ts.map +1 -1
  227. package/dist/ai/McpSchema.d.ts +368 -235
  228. package/dist/ai/McpSchema.d.ts.map +1 -1
  229. package/dist/ai/McpSchema.js +94 -24
  230. package/dist/ai/McpSchema.js.map +1 -1
  231. package/dist/ai/McpServer.d.ts +6 -52
  232. package/dist/ai/McpServer.d.ts.map +1 -1
  233. package/dist/ai/McpServer.js +27 -50
  234. package/dist/ai/McpServer.js.map +1 -1
  235. package/dist/ai/Prompt.d.ts +22 -20
  236. package/dist/ai/Prompt.d.ts.map +1 -1
  237. package/dist/ai/Prompt.js +23 -1
  238. package/dist/ai/Prompt.js.map +1 -1
  239. package/dist/ai/Response.d.ts +148 -4
  240. package/dist/ai/Response.d.ts.map +1 -1
  241. package/dist/ai/Response.js +35 -37
  242. package/dist/ai/Response.js.map +1 -1
  243. package/dist/ai/Tool.d.ts +12 -4
  244. package/dist/ai/Tool.d.ts.map +1 -1
  245. package/dist/ai/Tool.js.map +1 -1
  246. package/dist/ai/Toolkit.d.ts +48 -1
  247. package/dist/ai/Toolkit.d.ts.map +1 -1
  248. package/dist/ai/Toolkit.js +65 -12
  249. package/dist/ai/Toolkit.js.map +1 -1
  250. package/dist/ai/index.d.ts +10 -0
  251. package/dist/ai/index.d.ts.map +1 -1
  252. package/dist/ai/index.js +10 -0
  253. package/dist/ai/index.js.map +1 -1
  254. package/dist/ai/internal/mcpCore.js.map +1 -1
  255. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
  256. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  257. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
  258. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  259. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
  260. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  261. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
  262. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  263. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
  264. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  265. package/dist/ai/internal/mcpProtocol.js +16 -2
  266. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  267. package/dist/ai/internal/mcpRuntime.js +3 -4
  268. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  269. package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
  270. package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
  271. package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
  272. package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
  273. package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
  274. package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
  275. package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
  276. package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
  277. package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
  278. package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
  279. package/dist/cli/CliError.d.ts +42 -2
  280. package/dist/cli/CliError.d.ts.map +1 -1
  281. package/dist/cli/CliError.js +44 -5
  282. package/dist/cli/CliError.js.map +1 -1
  283. package/dist/cli/Command.d.ts +286 -2
  284. package/dist/cli/Command.d.ts.map +1 -1
  285. package/dist/cli/Command.js +107 -6
  286. package/dist/cli/Command.js.map +1 -1
  287. package/dist/cli/Completions.d.ts +10 -0
  288. package/dist/cli/Completions.d.ts.map +1 -1
  289. package/dist/cli/Completions.js.map +1 -1
  290. package/dist/cli/Flag.d.ts +215 -0
  291. package/dist/cli/Flag.d.ts.map +1 -1
  292. package/dist/cli/Flag.js +89 -0
  293. package/dist/cli/Flag.js.map +1 -1
  294. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  295. package/dist/cli/GlobalFlag.js +3 -3
  296. package/dist/cli/GlobalFlag.js.map +1 -1
  297. package/dist/cli/Param.d.ts +194 -0
  298. package/dist/cli/Param.d.ts.map +1 -1
  299. package/dist/cli/Param.js +86 -0
  300. package/dist/cli/Param.js.map +1 -1
  301. package/dist/cli/TerminalCapabilities.d.ts +84 -0
  302. package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
  303. package/dist/cli/TerminalCapabilities.js +122 -0
  304. package/dist/cli/TerminalCapabilities.js.map +1 -0
  305. package/dist/cli/index.d.ts +5 -0
  306. package/dist/cli/index.d.ts.map +1 -1
  307. package/dist/cli/index.js +5 -0
  308. package/dist/cli/index.js.map +1 -1
  309. package/dist/cli/internal/command.d.ts +2 -1
  310. package/dist/cli/internal/command.d.ts.map +1 -1
  311. package/dist/cli/internal/command.js +7 -3
  312. package/dist/cli/internal/command.js.map +1 -1
  313. package/dist/cli/internal/completions/bash.js +7 -5
  314. package/dist/cli/internal/completions/bash.js.map +1 -1
  315. package/dist/cli/internal/completions/descriptor.js +16 -1
  316. package/dist/cli/internal/completions/descriptor.js.map +1 -1
  317. package/dist/cli/internal/completions/fish.js +12 -10
  318. package/dist/cli/internal/completions/fish.js.map +1 -1
  319. package/dist/cli/internal/completions/powershell.js +20 -10
  320. package/dist/cli/internal/completions/powershell.js.map +1 -1
  321. package/dist/cli/internal/completions/zsh.js +15 -8
  322. package/dist/cli/internal/completions/zsh.js.map +1 -1
  323. package/dist/cli/internal/formatter.d.ts +2 -0
  324. package/dist/cli/internal/formatter.d.ts.map +1 -0
  325. package/dist/cli/internal/formatter.js +15 -0
  326. package/dist/cli/internal/formatter.js.map +1 -0
  327. package/dist/cli/internal/lexer.js +24 -10
  328. package/dist/cli/internal/lexer.js.map +1 -1
  329. package/dist/cli/internal/parser.js +35 -15
  330. package/dist/cli/internal/parser.js.map +1 -1
  331. package/dist/cli/internal/wizard.d.ts.map +1 -1
  332. package/dist/cli/internal/wizard.js +2 -1
  333. package/dist/cli/internal/wizard.js.map +1 -1
  334. package/dist/cluster/ClusterCron.d.ts +29 -1
  335. package/dist/cluster/ClusterCron.d.ts.map +1 -1
  336. package/dist/cluster/ClusterCron.js +64 -32
  337. package/dist/cluster/ClusterCron.js.map +1 -1
  338. package/dist/cluster/ClusterMetrics.d.ts +143 -7
  339. package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
  340. package/dist/cluster/ClusterMetrics.js +151 -7
  341. package/dist/cluster/ClusterMetrics.js.map +1 -1
  342. package/dist/cluster/ClusterWorkflowEngine.d.ts +2 -1
  343. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  344. package/dist/cluster/ClusterWorkflowEngine.js +98 -18
  345. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  346. package/dist/cluster/Entity.d.ts +2 -0
  347. package/dist/cluster/Entity.d.ts.map +1 -1
  348. package/dist/cluster/Entity.js.map +1 -1
  349. package/dist/cluster/MessageStorage.d.ts +21 -0
  350. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  351. package/dist/cluster/MessageStorage.js +20 -12
  352. package/dist/cluster/MessageStorage.js.map +1 -1
  353. package/dist/cluster/Runners.d.ts.map +1 -1
  354. package/dist/cluster/Runners.js +96 -37
  355. package/dist/cluster/Runners.js.map +1 -1
  356. package/dist/cluster/Sharding.d.ts +1 -0
  357. package/dist/cluster/Sharding.d.ts.map +1 -1
  358. package/dist/cluster/Sharding.js +95 -32
  359. package/dist/cluster/Sharding.js.map +1 -1
  360. package/dist/cluster/ShardingConfig.d.ts +20 -0
  361. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  362. package/dist/cluster/ShardingConfig.js +4 -0
  363. package/dist/cluster/ShardingConfig.js.map +1 -1
  364. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  365. package/dist/cluster/SqlMessageStorage.js +40 -50
  366. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  367. package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
  368. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  369. package/dist/cluster/SqlRunnerStorage.js +10 -4
  370. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  371. package/dist/cluster/internal/entityManager.js +66 -9
  372. package/dist/cluster/internal/entityManager.js.map +1 -1
  373. package/dist/devtools/DevTools.d.ts +3 -2
  374. package/dist/devtools/DevTools.d.ts.map +1 -1
  375. package/dist/devtools/DevTools.js +3 -2
  376. package/dist/devtools/DevTools.js.map +1 -1
  377. package/dist/devtools/DevToolsClient.d.ts +11 -0
  378. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  379. package/dist/devtools/DevToolsClient.js +31 -4
  380. package/dist/devtools/DevToolsClient.js.map +1 -1
  381. package/dist/encoding/Base64Url.d.ts +29 -0
  382. package/dist/encoding/Base64Url.d.ts.map +1 -1
  383. package/dist/encoding/Base64Url.js +29 -0
  384. package/dist/encoding/Base64Url.js.map +1 -1
  385. package/dist/encoding/Ini.d.ts.map +1 -1
  386. package/dist/encoding/Ini.js +3 -0
  387. package/dist/encoding/Ini.js.map +1 -1
  388. package/dist/encoding/JsonArray.d.ts +270 -0
  389. package/dist/encoding/JsonArray.d.ts.map +1 -0
  390. package/dist/encoding/JsonArray.js +691 -0
  391. package/dist/encoding/JsonArray.js.map +1 -0
  392. package/dist/encoding/Ndjson.d.ts +43 -4
  393. package/dist/encoding/Ndjson.d.ts.map +1 -1
  394. package/dist/encoding/Ndjson.js +169 -18
  395. package/dist/encoding/Ndjson.js.map +1 -1
  396. package/dist/encoding/SchemaBinary.d.ts +9 -1
  397. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  398. package/dist/encoding/SchemaBinary.js +12 -19
  399. package/dist/encoding/SchemaBinary.js.map +1 -1
  400. package/dist/encoding/Sse.js +1 -1
  401. package/dist/encoding/Sse.js.map +1 -1
  402. package/dist/encoding/Tar.d.ts +309 -0
  403. package/dist/encoding/Tar.d.ts.map +1 -0
  404. package/dist/encoding/Tar.js +1182 -0
  405. package/dist/encoding/Tar.js.map +1 -0
  406. package/dist/encoding/Toml.js +3 -3
  407. package/dist/encoding/Toml.js.map +1 -1
  408. package/dist/encoding/Xml.d.ts +464 -0
  409. package/dist/encoding/Xml.d.ts.map +1 -0
  410. package/dist/encoding/Xml.js +1619 -0
  411. package/dist/encoding/Xml.js.map +1 -0
  412. package/dist/encoding/Yaml.d.ts +6 -2
  413. package/dist/encoding/Yaml.d.ts.map +1 -1
  414. package/dist/encoding/Yaml.js +97 -34
  415. package/dist/encoding/Yaml.js.map +1 -1
  416. package/dist/encoding/Zip.d.ts +413 -0
  417. package/dist/encoding/Zip.d.ts.map +1 -0
  418. package/dist/encoding/Zip.js +1255 -0
  419. package/dist/encoding/Zip.js.map +1 -0
  420. package/dist/encoding/index.d.ts +20 -0
  421. package/dist/encoding/index.d.ts.map +1 -1
  422. package/dist/encoding/index.js +20 -0
  423. package/dist/encoding/index.js.map +1 -1
  424. package/dist/eventlog/EventJournal.d.ts +90 -5
  425. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  426. package/dist/eventlog/EventJournal.js +488 -228
  427. package/dist/eventlog/EventJournal.js.map +1 -1
  428. package/dist/eventlog/EventLog.d.ts +180 -12
  429. package/dist/eventlog/EventLog.d.ts.map +1 -1
  430. package/dist/eventlog/EventLog.js +394 -146
  431. package/dist/eventlog/EventLog.js.map +1 -1
  432. package/dist/eventlog/EventLogEncryption.d.ts +36 -30
  433. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  434. package/dist/eventlog/EventLogEncryption.js +97 -38
  435. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  436. package/dist/eventlog/EventLogMessage.d.ts +74 -34
  437. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  438. package/dist/eventlog/EventLogMessage.js +45 -11
  439. package/dist/eventlog/EventLogMessage.js.map +1 -1
  440. package/dist/eventlog/EventLogRemote.d.ts +45 -8
  441. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  442. package/dist/eventlog/EventLogRemote.js +51 -14
  443. package/dist/eventlog/EventLogRemote.js.map +1 -1
  444. package/dist/eventlog/EventLogServer.d.ts +46 -3
  445. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  446. package/dist/eventlog/EventLogServer.js +119 -19
  447. package/dist/eventlog/EventLogServer.js.map +1 -1
  448. package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
  449. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  450. package/dist/eventlog/EventLogServerEncrypted.js +97 -70
  451. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  452. package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
  453. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  454. package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
  455. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  456. package/dist/eventlog/EventRow.d.ts +288 -0
  457. package/dist/eventlog/EventRow.d.ts.map +1 -0
  458. package/dist/eventlog/EventRow.js +435 -0
  459. package/dist/eventlog/EventRow.js.map +1 -0
  460. package/dist/eventlog/SqlEventJournal.d.ts +18 -18
  461. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  462. package/dist/eventlog/SqlEventJournal.js +387 -159
  463. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  464. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
  465. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  466. package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
  467. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  468. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
  469. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  470. package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
  471. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  472. package/dist/eventlog/index.d.ts +5 -0
  473. package/dist/eventlog/index.d.ts.map +1 -1
  474. package/dist/eventlog/index.js +5 -0
  475. package/dist/eventlog/index.js.map +1 -1
  476. package/dist/eventlog/internal/conflicts.d.ts +47 -0
  477. package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
  478. package/dist/eventlog/internal/conflicts.js +92 -0
  479. package/dist/eventlog/internal/conflicts.js.map +1 -0
  480. package/dist/graphql/GraphQLClient.d.ts.map +1 -1
  481. package/dist/graphql/GraphQLClient.js +12 -5
  482. package/dist/graphql/GraphQLClient.js.map +1 -1
  483. package/dist/graphql/GraphQLClientError.d.ts +2 -2
  484. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  485. package/dist/graphql/GraphQLClientError.js +4 -18
  486. package/dist/graphql/GraphQLClientError.js.map +1 -1
  487. package/dist/graphql/GraphQLProtocol.d.ts +252 -11
  488. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  489. package/dist/graphql/GraphQLProtocol.js +99 -8
  490. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  491. package/dist/graphql/GraphQLResolver.d.ts +3 -1
  492. package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
  493. package/dist/graphql/GraphQLResolver.js +91 -19
  494. package/dist/graphql/GraphQLResolver.js.map +1 -1
  495. package/dist/http/FetchHttpClient.d.ts +13 -3
  496. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  497. package/dist/http/FetchHttpClient.js +56 -6
  498. package/dist/http/FetchHttpClient.js.map +1 -1
  499. package/dist/http/FindMyWay/internal/router.js +12 -1
  500. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  501. package/dist/http/Headers.d.ts +230 -3
  502. package/dist/http/Headers.d.ts.map +1 -1
  503. package/dist/http/Headers.js +267 -5
  504. package/dist/http/Headers.js.map +1 -1
  505. package/dist/http/HttpClient.d.ts +105 -0
  506. package/dist/http/HttpClient.d.ts.map +1 -1
  507. package/dist/http/HttpClient.js +69 -17
  508. package/dist/http/HttpClient.js.map +1 -1
  509. package/dist/http/HttpClientError.d.ts.map +1 -1
  510. package/dist/http/HttpClientError.js +8 -6
  511. package/dist/http/HttpClientError.js.map +1 -1
  512. package/dist/http/HttpClientRequest.d.ts +274 -7
  513. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  514. package/dist/http/HttpClientRequest.js +91 -3
  515. package/dist/http/HttpClientRequest.js.map +1 -1
  516. package/dist/http/HttpClientResponse.d.ts +53 -0
  517. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  518. package/dist/http/HttpClientResponse.js +47 -0
  519. package/dist/http/HttpClientResponse.js.map +1 -1
  520. package/dist/http/HttpEffect.d.ts +6 -2
  521. package/dist/http/HttpEffect.d.ts.map +1 -1
  522. package/dist/http/HttpEffect.js +21 -17
  523. package/dist/http/HttpEffect.js.map +1 -1
  524. package/dist/http/HttpIncomingMessage.d.ts +2 -1
  525. package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
  526. package/dist/http/HttpIncomingMessage.js +3 -23
  527. package/dist/http/HttpIncomingMessage.js.map +1 -1
  528. package/dist/http/HttpMiddleware.d.ts +179 -2
  529. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  530. package/dist/http/HttpMiddleware.js +226 -18
  531. package/dist/http/HttpMiddleware.js.map +1 -1
  532. package/dist/http/HttpRouter.d.ts.map +1 -1
  533. package/dist/http/HttpRouter.js +58 -14
  534. package/dist/http/HttpRouter.js.map +1 -1
  535. package/dist/http/HttpServerError.d.ts +5 -2
  536. package/dist/http/HttpServerError.d.ts.map +1 -1
  537. package/dist/http/HttpServerError.js +11 -7
  538. package/dist/http/HttpServerError.js.map +1 -1
  539. package/dist/http/HttpServerRequest.d.ts +25 -5
  540. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  541. package/dist/http/HttpServerRequest.js +38 -12
  542. package/dist/http/HttpServerRequest.js.map +1 -1
  543. package/dist/http/HttpServerResponse.d.ts +17 -8
  544. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  545. package/dist/http/HttpServerResponse.js +37 -21
  546. package/dist/http/HttpServerResponse.js.map +1 -1
  547. package/dist/http/HttpStaticServer.d.ts +0 -12
  548. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  549. package/dist/http/HttpStaticServer.js +25 -17
  550. package/dist/http/HttpStaticServer.js.map +1 -1
  551. package/dist/http/HttpTraceContext.js +1 -1
  552. package/dist/http/HttpTraceContext.js.map +1 -1
  553. package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
  554. package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
  555. package/dist/http/MultipartParser/internal/contentType.js +87 -5
  556. package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
  557. package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
  558. package/dist/http/MultipartParser/internal/headers.js +4 -12
  559. package/dist/http/MultipartParser/internal/headers.js.map +1 -1
  560. package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
  561. package/dist/http/MultipartParser/internal/multipart.js +6 -27
  562. package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
  563. package/dist/http/Url.d.ts.map +1 -1
  564. package/dist/http/Url.js +8 -2
  565. package/dist/http/Url.js.map +1 -1
  566. package/dist/http/UrlParams.d.ts +112 -8
  567. package/dist/http/UrlParams.d.ts.map +1 -1
  568. package/dist/http/UrlParams.js +141 -14
  569. package/dist/http/UrlParams.js.map +1 -1
  570. package/dist/http/internal/compression.d.ts +1 -1
  571. package/dist/http/internal/compression.d.ts.map +1 -1
  572. package/dist/http/internal/compression.js +2 -10
  573. package/dist/http/internal/compression.js.map +1 -1
  574. package/dist/http/internal/compressionBody.d.ts +2 -0
  575. package/dist/http/internal/compressionBody.d.ts.map +1 -0
  576. package/dist/http/internal/compressionBody.js +36 -0
  577. package/dist/http/internal/compressionBody.js.map +1 -0
  578. package/dist/http/internal/decompression.d.ts +2 -0
  579. package/dist/http/internal/decompression.d.ts.map +1 -0
  580. package/dist/http/internal/decompression.js +168 -0
  581. package/dist/http/internal/decompression.js.map +1 -0
  582. package/dist/http/internal/lazyStream.d.ts +2 -0
  583. package/dist/http/internal/lazyStream.d.ts.map +1 -0
  584. package/dist/http/internal/lazyStream.js +18 -0
  585. package/dist/http/internal/lazyStream.js.map +1 -0
  586. package/dist/http/internal/requestState.d.ts +2 -0
  587. package/dist/http/internal/requestState.d.ts.map +1 -0
  588. package/dist/http/internal/requestState.js +28 -0
  589. package/dist/http/internal/requestState.js.map +1 -0
  590. package/dist/http/internal/tracing.js +14 -4
  591. package/dist/http/internal/tracing.js.map +1 -1
  592. package/dist/http/internal/urlParams.d.ts +2 -0
  593. package/dist/http/internal/urlParams.d.ts.map +1 -0
  594. package/dist/http/internal/urlParams.js +4 -0
  595. package/dist/http/internal/urlParams.js.map +1 -0
  596. package/dist/http/internal/webResponse.d.ts +2 -0
  597. package/dist/http/internal/webResponse.d.ts.map +1 -0
  598. package/dist/http/internal/webResponse.js +12 -0
  599. package/dist/http/internal/webResponse.js.map +1 -0
  600. package/dist/http-api/HttpApi.js +1 -1
  601. package/dist/http-api/HttpApi.js.map +1 -1
  602. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  603. package/dist/http-api/HttpApiBuilder.js +121 -18
  604. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  605. package/dist/http-api/HttpApiClient.d.ts +29 -4
  606. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  607. package/dist/http-api/HttpApiClient.js +85 -24
  608. package/dist/http-api/HttpApiClient.js.map +1 -1
  609. package/dist/http-api/HttpApiEndpoint.d.ts +55 -29
  610. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  611. package/dist/http-api/HttpApiEndpoint.js +49 -5
  612. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  613. package/dist/http-api/HttpApiError.d.ts +58 -0
  614. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  615. package/dist/http-api/HttpApiError.js +38 -12
  616. package/dist/http-api/HttpApiError.js.map +1 -1
  617. package/dist/http-api/HttpApiScalar.d.ts +2 -1
  618. package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
  619. package/dist/http-api/HttpApiScalar.js +6 -3
  620. package/dist/http-api/HttpApiScalar.js.map +1 -1
  621. package/dist/http-api/HttpApiSchema.d.ts +191 -9
  622. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  623. package/dist/http-api/HttpApiSchema.js +137 -4
  624. package/dist/http-api/HttpApiSchema.js.map +1 -1
  625. package/dist/http-api/HttpApiSwagger.d.ts +5 -0
  626. package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
  627. package/dist/http-api/HttpApiSwagger.js +14 -4
  628. package/dist/http-api/HttpApiSwagger.js.map +1 -1
  629. package/dist/http-api/HttpApiTest.d.ts +13 -2
  630. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  631. package/dist/http-api/HttpApiTest.js +30 -9
  632. package/dist/http-api/HttpApiTest.js.map +1 -1
  633. package/dist/http-api/OpenApi.d.ts +17 -3
  634. package/dist/http-api/OpenApi.d.ts.map +1 -1
  635. package/dist/http-api/OpenApi.js +57 -32
  636. package/dist/http-api/OpenApi.js.map +1 -1
  637. package/dist/http-api/internal/path.js +35 -10
  638. package/dist/http-api/internal/path.js.map +1 -1
  639. package/dist/index.d.ts +20 -0
  640. package/dist/index.d.ts.map +1 -1
  641. package/dist/index.js +20 -0
  642. package/dist/index.js.map +1 -1
  643. package/dist/internal/core.js +18 -2
  644. package/dist/internal/core.js.map +1 -1
  645. package/dist/internal/dateTime.js +19 -7
  646. package/dist/internal/dateTime.js.map +1 -1
  647. package/dist/internal/effect.js +89 -76
  648. package/dist/internal/effect.js.map +1 -1
  649. package/dist/internal/graphql.js +12 -2
  650. package/dist/internal/graphql.js.map +1 -1
  651. package/dist/internal/hashMap.js +2 -2
  652. package/dist/internal/hashMap.js.map +1 -1
  653. package/dist/internal/hydration.d.ts +2 -0
  654. package/dist/internal/hydration.d.ts.map +1 -0
  655. package/dist/internal/hydration.js +15 -0
  656. package/dist/internal/hydration.js.map +1 -0
  657. package/dist/internal/inflate.d.ts +2 -0
  658. package/dist/internal/inflate.d.ts.map +1 -0
  659. package/dist/internal/inflate.js +680 -0
  660. package/dist/internal/inflate.js.map +1 -0
  661. package/dist/internal/record.js +6 -0
  662. package/dist/internal/record.js.map +1 -1
  663. package/dist/internal/request.js +20 -7
  664. package/dist/internal/request.js.map +1 -1
  665. package/dist/internal/schedule.js +17 -22
  666. package/dist/internal/schedule.js.map +1 -1
  667. package/dist/internal/schema/fromJsonSchemaDocument.js +136 -126
  668. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  669. package/dist/internal/schema/interpreter.js +51 -36
  670. package/dist/internal/schema/interpreter.js.map +1 -1
  671. package/dist/internal/schema/standardSchema.js +34 -33
  672. package/dist/internal/schema/standardSchema.js.map +1 -1
  673. package/dist/internal/schema/toCodeDocument.js +7 -2
  674. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  675. package/dist/internal/schema/toCodec.js +86 -1
  676. package/dist/internal/schema/toCodec.js.map +1 -1
  677. package/dist/internal/schema/toFormatter.js +5 -5
  678. package/dist/internal/schema/toFormatter.js.map +1 -1
  679. package/dist/internal/schema/toJsonSchemaDocument.js +60 -38
  680. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  681. package/dist/internal/trie.js +1 -3
  682. package/dist/internal/trie.js.map +1 -1
  683. package/dist/internal/uuid.js +7 -3
  684. package/dist/internal/uuid.js.map +1 -1
  685. package/dist/internal/version.js +1 -1
  686. package/dist/net/NetAddress.d.ts.map +1 -1
  687. package/dist/net/NetAddress.js +2 -8
  688. package/dist/net/NetAddress.js.map +1 -1
  689. package/dist/observability/Otlp.d.ts +15 -0
  690. package/dist/observability/Otlp.d.ts.map +1 -1
  691. package/dist/observability/Otlp.js +3 -0
  692. package/dist/observability/Otlp.js.map +1 -1
  693. package/dist/observability/OtlpExporter.d.ts +8 -0
  694. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  695. package/dist/observability/OtlpExporter.js +15 -13
  696. package/dist/observability/OtlpExporter.js.map +1 -1
  697. package/dist/observability/OtlpLogger.d.ts +17 -0
  698. package/dist/observability/OtlpLogger.d.ts.map +1 -1
  699. package/dist/observability/OtlpLogger.js +14 -1
  700. package/dist/observability/OtlpLogger.js.map +1 -1
  701. package/dist/observability/OtlpMetrics.d.ts +17 -0
  702. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  703. package/dist/observability/OtlpMetrics.js +18 -3
  704. package/dist/observability/OtlpMetrics.js.map +1 -1
  705. package/dist/observability/OtlpResource.d.ts +3 -1
  706. package/dist/observability/OtlpResource.d.ts.map +1 -1
  707. package/dist/observability/OtlpResource.js +11 -4
  708. package/dist/observability/OtlpResource.js.map +1 -1
  709. package/dist/observability/OtlpSerialization.d.ts +5 -0
  710. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  711. package/dist/observability/OtlpSerialization.js +14 -3
  712. package/dist/observability/OtlpSerialization.js.map +1 -1
  713. package/dist/observability/OtlpTracer.d.ts +17 -0
  714. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  715. package/dist/observability/OtlpTracer.js +15 -2
  716. package/dist/observability/OtlpTracer.js.map +1 -1
  717. package/dist/observability/internal/protobuf.d.ts +0 -9
  718. package/dist/observability/internal/protobuf.d.ts.map +1 -1
  719. package/dist/observability/internal/protobuf.js +2 -10
  720. package/dist/observability/internal/protobuf.js.map +1 -1
  721. package/dist/persistence/PersistedCache.d.ts.map +1 -1
  722. package/dist/persistence/PersistedCache.js +1 -1
  723. package/dist/persistence/PersistedCache.js.map +1 -1
  724. package/dist/persistence/PersistedQueue.d.ts +6 -2
  725. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  726. package/dist/persistence/PersistedQueue.js +162 -84
  727. package/dist/persistence/PersistedQueue.js.map +1 -1
  728. package/dist/persistence/Persistence.d.ts +28 -0
  729. package/dist/persistence/Persistence.d.ts.map +1 -1
  730. package/dist/persistence/Persistence.js +36 -8
  731. package/dist/persistence/Persistence.js.map +1 -1
  732. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  733. package/dist/persistence/RateLimiter.js +8 -12
  734. package/dist/persistence/RateLimiter.js.map +1 -1
  735. package/dist/persistence/UserDirectories.d.ts +129 -0
  736. package/dist/persistence/UserDirectories.d.ts.map +1 -0
  737. package/dist/persistence/UserDirectories.js +178 -0
  738. package/dist/persistence/UserDirectories.js.map +1 -0
  739. package/dist/persistence/index.d.ts +5 -0
  740. package/dist/persistence/index.d.ts.map +1 -1
  741. package/dist/persistence/index.js +5 -0
  742. package/dist/persistence/index.js.map +1 -1
  743. package/dist/process/ChildProcess.d.ts +2 -1
  744. package/dist/process/ChildProcess.d.ts.map +1 -1
  745. package/dist/process/ChildProcess.js.map +1 -1
  746. package/dist/reactivity/AsyncResult.d.ts +6 -0
  747. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  748. package/dist/reactivity/AsyncResult.js +28 -1
  749. package/dist/reactivity/AsyncResult.js.map +1 -1
  750. package/dist/reactivity/Atom.d.ts +69 -30
  751. package/dist/reactivity/Atom.d.ts.map +1 -1
  752. package/dist/reactivity/Atom.js +40 -15
  753. package/dist/reactivity/Atom.js.map +1 -1
  754. package/dist/reactivity/AtomHttpApi.d.ts +5 -5
  755. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  756. package/dist/reactivity/AtomHttpApi.js +1 -1
  757. package/dist/reactivity/AtomHttpApi.js.map +1 -1
  758. package/dist/reactivity/AtomRegistry.d.ts +2 -2
  759. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  760. package/dist/reactivity/AtomRegistry.js +47 -10
  761. package/dist/reactivity/AtomRegistry.js.map +1 -1
  762. package/dist/reactivity/AtomRpc.d.ts +3 -3
  763. package/dist/reactivity/AtomRpc.d.ts.map +1 -1
  764. package/dist/reactivity/AtomRpc.js +1 -1
  765. package/dist/reactivity/AtomRpc.js.map +1 -1
  766. package/dist/reactivity/Hydration.d.ts.map +1 -1
  767. package/dist/reactivity/Hydration.js +46 -12
  768. package/dist/reactivity/Hydration.js.map +1 -1
  769. package/dist/reactivity/Reactivity.d.ts +71 -7
  770. package/dist/reactivity/Reactivity.d.ts.map +1 -1
  771. package/dist/reactivity/Reactivity.js +21 -12
  772. package/dist/reactivity/Reactivity.js.map +1 -1
  773. package/dist/rpc/Rpc.d.ts +18 -0
  774. package/dist/rpc/Rpc.d.ts.map +1 -1
  775. package/dist/rpc/Rpc.js +20 -0
  776. package/dist/rpc/Rpc.js.map +1 -1
  777. package/dist/rpc/RpcClient.d.ts +26 -2
  778. package/dist/rpc/RpcClient.d.ts.map +1 -1
  779. package/dist/rpc/RpcClient.js +202 -61
  780. package/dist/rpc/RpcClient.js.map +1 -1
  781. package/dist/rpc/RpcSerialization.d.ts +15 -0
  782. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  783. package/dist/rpc/RpcSerialization.js +21 -5
  784. package/dist/rpc/RpcSerialization.js.map +1 -1
  785. package/dist/rpc/RpcServer.d.ts.map +1 -1
  786. package/dist/rpc/RpcServer.js +9 -18
  787. package/dist/rpc/RpcServer.js.map +1 -1
  788. package/dist/schema/Model.d.ts +1 -1
  789. package/dist/schema/VariantSchema.d.ts +22 -3
  790. package/dist/schema/VariantSchema.d.ts.map +1 -1
  791. package/dist/schema/VariantSchema.js +32 -18
  792. package/dist/schema/VariantSchema.js.map +1 -1
  793. package/dist/socket/Socket.d.ts +23 -1
  794. package/dist/socket/Socket.d.ts.map +1 -1
  795. package/dist/socket/Socket.js +36 -3
  796. package/dist/socket/Socket.js.map +1 -1
  797. package/dist/sql/Migrator.d.ts.map +1 -1
  798. package/dist/sql/Migrator.js +15 -3
  799. package/dist/sql/Migrator.js.map +1 -1
  800. package/dist/sql/SqlClient.d.ts +151 -12
  801. package/dist/sql/SqlClient.d.ts.map +1 -1
  802. package/dist/sql/SqlClient.js +156 -34
  803. package/dist/sql/SqlClient.js.map +1 -1
  804. package/dist/sql/SqlResolver.d.ts +9 -0
  805. package/dist/sql/SqlResolver.d.ts.map +1 -1
  806. package/dist/sql/SqlResolver.js +9 -0
  807. package/dist/sql/SqlResolver.js.map +1 -1
  808. package/dist/sql/Statement.d.ts +3 -1
  809. package/dist/sql/Statement.d.ts.map +1 -1
  810. package/dist/sql/Statement.js +24 -5
  811. package/dist/sql/Statement.js.map +1 -1
  812. package/dist/testing/TestClock.d.ts +16 -3
  813. package/dist/testing/TestClock.d.ts.map +1 -1
  814. package/dist/testing/TestClock.js +115 -23
  815. package/dist/testing/TestClock.js.map +1 -1
  816. package/dist/testing/TestSchema.d.ts +7 -1
  817. package/dist/testing/TestSchema.d.ts.map +1 -1
  818. package/dist/testing/TestSchema.js +9 -3
  819. package/dist/testing/TestSchema.js.map +1 -1
  820. package/dist/workflow/Activity.js +1 -0
  821. package/dist/workflow/Activity.js.map +1 -1
  822. package/dist/workflow/Workflow.d.ts +22 -0
  823. package/dist/workflow/Workflow.d.ts.map +1 -1
  824. package/dist/workflow/Workflow.js +15 -3
  825. package/dist/workflow/Workflow.js.map +1 -1
  826. package/dist/workflow/WorkflowEngine.d.ts +20 -1
  827. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  828. package/dist/workflow/WorkflowEngine.js +52 -24
  829. package/dist/workflow/WorkflowEngine.js.map +1 -1
  830. package/package.json +13 -3
  831. package/src/Array.ts +223 -61
  832. package/src/Bytes.ts +111 -0
  833. package/src/Channel.ts +287 -439
  834. package/src/ChannelSchema.ts +1 -49
  835. package/src/Chunk.ts +55 -61
  836. package/src/Config.ts +12 -86
  837. package/src/ConfigProvider.ts +41 -44
  838. package/src/Cron.ts +6 -3
  839. package/src/Duration.ts +70 -21
  840. package/src/Effect.ts +642 -220
  841. package/src/Equivalence.ts +7 -4
  842. package/src/Exit.ts +24 -9
  843. package/src/FiberHandle.ts +10 -9
  844. package/src/FiberMap.ts +13 -66
  845. package/src/FileSystem.ts +33 -9
  846. package/src/Graph.ts +171 -1263
  847. package/src/HashSet.ts +0 -60
  848. package/src/Iterable.ts +15 -14
  849. package/src/JsonSchema.ts +28 -3
  850. package/src/Layer.ts +2 -2
  851. package/src/ManagedRuntime.ts +72 -6
  852. package/src/Match.ts +65 -12
  853. package/src/Metric.ts +249 -507
  854. package/src/MutableHashMap.ts +4 -473
  855. package/src/Number.ts +2 -2
  856. package/src/Optic.ts +17 -332
  857. package/src/Path.ts +61 -8
  858. package/src/PubSub.ts +12 -7
  859. package/src/Queue.ts +5 -37
  860. package/src/Random.ts +1 -1
  861. package/src/RcMap.ts +14 -8
  862. package/src/Record.ts +51 -0
  863. package/src/Ref.ts +7 -104
  864. package/src/References.ts +5 -4
  865. package/src/RequestResolver.ts +46 -87
  866. package/src/Resource.ts +1 -1
  867. package/src/Runtime.ts +19 -18
  868. package/src/Schedule.ts +2 -94
  869. package/src/Schema.ts +596 -348
  870. package/src/SchemaAST.ts +20 -9
  871. package/src/SchemaGetter.ts +22 -5
  872. package/src/SchemaIssue.ts +44 -53
  873. package/src/SchemaRepresentation.ts +64 -1
  874. package/src/SchemaTransformation.ts +1 -1
  875. package/src/Scope.ts +12 -2
  876. package/src/ScopedCache.ts +17 -142
  877. package/src/SemVer.ts +1528 -0
  878. package/src/SemVerRange.ts +883 -0
  879. package/src/Sink.ts +6 -2
  880. package/src/Stream.ts +334 -1011
  881. package/src/String.ts +25 -12
  882. package/src/TextDiff.ts +766 -0
  883. package/src/TxHashMap.ts +1 -103
  884. package/src/TxHashSet.ts +48 -753
  885. package/src/TxRef.ts +4 -2
  886. package/src/ai/AiError.ts +69 -5
  887. package/src/ai/Chat.ts +10 -5
  888. package/src/ai/Decision.ts +119 -22
  889. package/src/ai/DecisionModel.ts +265 -109
  890. package/src/ai/EmbeddingModel.ts +25 -13
  891. package/src/ai/LanguageModel.ts +57 -51
  892. package/src/ai/McpClient.ts +1211 -0
  893. package/src/ai/McpClientError.ts +329 -0
  894. package/src/ai/McpProtocol.ts +2 -2
  895. package/src/ai/McpSchema.ts +153 -35
  896. package/src/ai/McpServer.ts +232 -275
  897. package/src/ai/Prompt.ts +49 -35
  898. package/src/ai/Response.ts +195 -65
  899. package/src/ai/Tool.ts +12 -4
  900. package/src/ai/Toolkit.ts +78 -10
  901. package/src/ai/index.ts +12 -0
  902. package/src/ai/internal/mcpCore.ts +13 -14
  903. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
  904. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
  905. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
  906. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
  907. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
  908. package/src/ai/internal/mcpProtocol.ts +22 -2
  909. package/src/ai/internal/mcpRuntime.ts +3 -4
  910. package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
  911. package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
  912. package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
  913. package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
  914. package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
  915. package/src/cli/CliError.ts +49 -4
  916. package/src/cli/Command.ts +316 -9
  917. package/src/cli/Completions.ts +10 -0
  918. package/src/cli/Flag.ts +218 -0
  919. package/src/cli/GlobalFlag.ts +3 -3
  920. package/src/cli/Param.ts +218 -0
  921. package/src/cli/TerminalCapabilities.ts +156 -0
  922. package/src/cli/index.ts +6 -0
  923. package/src/cli/internal/command.ts +10 -4
  924. package/src/cli/internal/completions/bash.ts +7 -5
  925. package/src/cli/internal/completions/descriptor.ts +20 -1
  926. package/src/cli/internal/completions/fish.ts +12 -10
  927. package/src/cli/internal/completions/powershell.ts +25 -13
  928. package/src/cli/internal/completions/zsh.ts +15 -8
  929. package/src/cli/internal/formatter.ts +18 -0
  930. package/src/cli/internal/lexer.ts +12 -5
  931. package/src/cli/internal/parser.ts +43 -14
  932. package/src/cli/internal/wizard.ts +2 -1
  933. package/src/cluster/ClusterCron.ts +94 -35
  934. package/src/cluster/ClusterMetrics.ts +149 -7
  935. package/src/cluster/ClusterWorkflowEngine.ts +164 -53
  936. package/src/cluster/Entity.ts +4 -0
  937. package/src/cluster/MessageStorage.ts +21 -3
  938. package/src/cluster/Runners.ts +145 -72
  939. package/src/cluster/Sharding.ts +118 -38
  940. package/src/cluster/ShardingConfig.ts +15 -0
  941. package/src/cluster/SqlMessageStorage.ts +58 -55
  942. package/src/cluster/SqlRunnerStorage.ts +10 -4
  943. package/src/cluster/internal/entityManager.ts +81 -11
  944. package/src/devtools/DevTools.ts +3 -2
  945. package/src/devtools/DevToolsClient.ts +27 -10
  946. package/src/encoding/Base64Url.ts +31 -0
  947. package/src/encoding/Ini.ts +3 -0
  948. package/src/encoding/JsonArray.ts +849 -0
  949. package/src/encoding/Ndjson.ts +211 -20
  950. package/src/encoding/SchemaBinary.ts +14 -48
  951. package/src/encoding/Sse.ts +1 -1
  952. package/src/encoding/Tar.ts +1417 -0
  953. package/src/encoding/Toml.ts +3 -3
  954. package/src/encoding/Xml.ts +2037 -0
  955. package/src/encoding/Yaml.ts +108 -36
  956. package/src/encoding/Zip.ts +1558 -0
  957. package/src/encoding/index.ts +24 -0
  958. package/src/eventlog/EventJournal.ts +611 -227
  959. package/src/eventlog/EventLog.ts +496 -196
  960. package/src/eventlog/EventLogEncryption.ts +128 -43
  961. package/src/eventlog/EventLogMessage.ts +62 -11
  962. package/src/eventlog/EventLogRemote.ts +77 -21
  963. package/src/eventlog/EventLogServer.ts +162 -20
  964. package/src/eventlog/EventLogServerEncrypted.ts +121 -80
  965. package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
  966. package/src/eventlog/EventRow.ts +706 -0
  967. package/src/eventlog/SqlEventJournal.ts +453 -173
  968. package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
  969. package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
  970. package/src/eventlog/index.ts +6 -0
  971. package/src/eventlog/internal/conflicts.ts +123 -0
  972. package/src/graphql/GraphQLClient.ts +17 -5
  973. package/src/graphql/GraphQLClientError.ts +5 -12
  974. package/src/graphql/GraphQLProtocol.ts +277 -20
  975. package/src/graphql/GraphQLResolver.ts +109 -230
  976. package/src/http/FetchHttpClient.ts +61 -8
  977. package/src/http/FindMyWay/internal/router.ts +13 -1
  978. package/src/http/Headers.ts +343 -163
  979. package/src/http/HttpClient.ts +144 -136
  980. package/src/http/HttpClientError.ts +10 -6
  981. package/src/http/HttpClientRequest.ts +315 -11
  982. package/src/http/HttpClientResponse.ts +71 -0
  983. package/src/http/HttpEffect.ts +25 -33
  984. package/src/http/HttpIncomingMessage.ts +3 -23
  985. package/src/http/HttpMiddleware.ts +265 -28
  986. package/src/http/HttpRouter.ts +67 -14
  987. package/src/http/HttpServerError.ts +14 -7
  988. package/src/http/HttpServerRequest.ts +73 -14
  989. package/src/http/HttpServerResponse.ts +49 -23
  990. package/src/http/HttpStaticServer.ts +29 -19
  991. package/src/http/HttpTraceContext.ts +1 -1
  992. package/src/http/MultipartParser/internal/contentType.ts +107 -6
  993. package/src/http/MultipartParser/internal/headers.ts +4 -16
  994. package/src/http/MultipartParser/internal/multipart.ts +10 -32
  995. package/src/http/Url.ts +8 -2
  996. package/src/http/UrlParams.ts +225 -26
  997. package/src/http/internal/compression.ts +3 -17
  998. package/src/http/internal/compressionBody.ts +56 -0
  999. package/src/http/internal/decompression.ts +235 -0
  1000. package/src/http/internal/lazyStream.ts +25 -0
  1001. package/src/http/internal/requestState.ts +33 -0
  1002. package/src/http/internal/tracing.ts +21 -4
  1003. package/src/http/internal/urlParams.ts +5 -0
  1004. package/src/http/internal/webResponse.ts +20 -0
  1005. package/src/http-api/HttpApi.ts +1 -1
  1006. package/src/http-api/HttpApiBuilder.ts +151 -23
  1007. package/src/http-api/HttpApiClient.ts +160 -31
  1008. package/src/http-api/HttpApiEndpoint.ts +144 -33
  1009. package/src/http-api/HttpApiError.ts +55 -0
  1010. package/src/http-api/HttpApiScalar.ts +4 -3
  1011. package/src/http-api/HttpApiSchema.ts +275 -13
  1012. package/src/http-api/HttpApiSwagger.ts +11 -4
  1013. package/src/http-api/HttpApiTest.ts +33 -9
  1014. package/src/http-api/OpenApi.ts +84 -42
  1015. package/src/http-api/internal/path.ts +40 -12
  1016. package/src/index.ts +24 -0
  1017. package/src/internal/core.ts +22 -2
  1018. package/src/internal/dateTime.ts +20 -7
  1019. package/src/internal/effect.ts +125 -88
  1020. package/src/internal/graphql.ts +30 -7
  1021. package/src/internal/hashMap.ts +2 -2
  1022. package/src/internal/hydration.ts +15 -0
  1023. package/src/internal/inflate.ts +710 -0
  1024. package/src/internal/record.ts +6 -0
  1025. package/src/internal/request.ts +21 -6
  1026. package/src/internal/schedule.ts +20 -39
  1027. package/src/internal/schema/fromJsonSchemaDocument.ts +262 -193
  1028. package/src/internal/schema/interpreter.ts +58 -45
  1029. package/src/internal/schema/standardSchema.ts +32 -30
  1030. package/src/internal/schema/toCodeDocument.ts +8 -3
  1031. package/src/internal/schema/toCodec.ts +116 -1
  1032. package/src/internal/schema/toFormatter.ts +6 -6
  1033. package/src/internal/schema/toJsonSchemaDocument.ts +69 -39
  1034. package/src/internal/trie.ts +1 -3
  1035. package/src/internal/uuid.ts +15 -10
  1036. package/src/internal/version.ts +1 -1
  1037. package/src/net/NetAddress.ts +2 -9
  1038. package/src/observability/Otlp.ts +18 -0
  1039. package/src/observability/OtlpExporter.ts +19 -15
  1040. package/src/observability/OtlpLogger.ts +31 -2
  1041. package/src/observability/OtlpMetrics.ts +35 -4
  1042. package/src/observability/OtlpResource.ts +16 -6
  1043. package/src/observability/OtlpSerialization.ts +17 -3
  1044. package/src/observability/OtlpTracer.ts +32 -3
  1045. package/src/observability/internal/protobuf.ts +2 -10
  1046. package/src/persistence/PersistedCache.ts +3 -1
  1047. package/src/persistence/PersistedQueue.ts +223 -153
  1048. package/src/persistence/Persistence.ts +64 -30
  1049. package/src/persistence/RateLimiter.ts +18 -21
  1050. package/src/persistence/UserDirectories.ts +273 -0
  1051. package/src/persistence/index.ts +6 -0
  1052. package/src/process/ChildProcess.ts +2 -1
  1053. package/src/reactivity/AsyncResult.ts +35 -38
  1054. package/src/reactivity/Atom.ts +134 -166
  1055. package/src/reactivity/AtomHttpApi.ts +10 -16
  1056. package/src/reactivity/AtomRegistry.ts +53 -30
  1057. package/src/reactivity/AtomRpc.ts +6 -22
  1058. package/src/reactivity/Hydration.ts +53 -12
  1059. package/src/reactivity/Reactivity.ts +97 -39
  1060. package/src/rpc/Rpc.ts +21 -0
  1061. package/src/rpc/RpcClient.ts +285 -104
  1062. package/src/rpc/RpcSerialization.ts +21 -5
  1063. package/src/rpc/RpcServer.ts +11 -20
  1064. package/src/schema/VariantSchema.ts +86 -22
  1065. package/src/socket/Socket.ts +45 -20
  1066. package/src/sql/Migrator.ts +19 -9
  1067. package/src/sql/SqlClient.ts +275 -36
  1068. package/src/sql/SqlResolver.ts +9 -0
  1069. package/src/sql/Statement.ts +35 -8
  1070. package/src/testing/TestClock.ts +147 -29
  1071. package/src/testing/TestSchema.ts +9 -3
  1072. package/src/workflow/Activity.ts +1 -0
  1073. package/src/workflow/Workflow.ts +31 -5
  1074. package/src/workflow/WorkflowEngine.ts +93 -31
  1075. package/dist/http/internal/preResponseHandler.d.ts +0 -2
  1076. package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
  1077. package/dist/http/internal/preResponseHandler.js +0 -14
  1078. package/dist/http/internal/preResponseHandler.js.map +0 -1
  1079. package/src/http/internal/preResponseHandler.ts +0 -19
package/dist/SemVer.js ADDED
@@ -0,0 +1,756 @@
1
+ /**
2
+ * Immutable [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html)
3
+ * values with strict parsing, canonical formatting, spec precedence ordering,
4
+ * and version bumps.
5
+ *
6
+ * A `SemVer` has numeric major, minor, and patch components, optional
7
+ * pre-release identifiers, and optional build metadata. Structural equality
8
+ * and hashing include build metadata, while `Order` follows spec precedence
9
+ * and ignores it. Version ranges live in `SemVerRange`.
10
+ *
11
+ * @stability unstable
12
+ * @since 4.0.6
13
+ */
14
+ import * as Data from "./Data.js";
15
+ import * as Equal from "./Equal.js";
16
+ import * as Equ from "./Equivalence.js";
17
+ import { dual } from "./Function.js";
18
+ import * as Hash from "./Hash.js";
19
+ import { NodeInspectSymbol } from "./Inspectable.js";
20
+ import * as Option from "./Option.js";
21
+ import * as order from "./Order.js";
22
+ import { pipeArguments } from "./Pipeable.js";
23
+ import { hasProperty } from "./Predicate.js";
24
+ import * as Result from "./Result.js";
25
+ const TypeId = "~effect/SemVer";
26
+ const SemVerErrorTypeId = "~effect/SemVer/SemVerError";
27
+ /**
28
+ * Error raised for invalid version strings, ranges, or components.
29
+ *
30
+ * @see {@link isSemVerError} for narrowing unknown values
31
+ * @stability unstable
32
+ * @category errors
33
+ * @since 4.0.6
34
+ */
35
+ export class SemVerError extends /*#__PURE__*/Data.TaggedError("SemVerError") {
36
+ [SemVerErrorTypeId] = SemVerErrorTypeId;
37
+ }
38
+ /**
39
+ * Checks whether a value is a `SemVerError`.
40
+ *
41
+ * @stability unstable
42
+ * @category guards
43
+ * @since 4.0.6
44
+ */
45
+ export const isSemVerError = u => hasProperty(u, SemVerErrorTypeId);
46
+ /** @internal */
47
+ export const invalid = message => {
48
+ throw new SemVerError({
49
+ message
50
+ });
51
+ };
52
+ const attempt = evaluate => Result.try({
53
+ try: evaluate,
54
+ catch: error => {
55
+ if (!isSemVerError(error)) throw error;
56
+ return error;
57
+ }
58
+ });
59
+ /** @internal */
60
+ export const tryParse = (label, input, parse) => Result.mapError(attempt(() => parse(input)), error => new SemVerError({
61
+ message: `Invalid ${label} ${JSON.stringify(input)}: ${error.message}`,
62
+ input
63
+ }));
64
+ const numericPattern = /^(?:0|[1-9]\d*)$/;
65
+ const digitsPattern = /^\d+$/;
66
+ const identifierPattern = /^[0-9A-Za-z-]+$/;
67
+ const checkComponent = (value, label) => {
68
+ if (!Number.isSafeInteger(value) || value < 0) {
69
+ return invalid(`${label} must be a non-negative safe integer, received ${value}`);
70
+ }
71
+ return value;
72
+ };
73
+ /** @internal */
74
+ export const parseComponent = (value, label) => {
75
+ if (!numericPattern.test(value)) {
76
+ return invalid(`${label} must be a non-negative integer without leading zeros, received ${JSON.stringify(value)}`);
77
+ }
78
+ return checkComponent(Number(value), label);
79
+ };
80
+ /** @internal */
81
+ export const prereleaseIdentifier = identifier => {
82
+ if (typeof identifier === "number") return checkComponent(identifier, "numeric pre-release identifier");
83
+ if (!identifierPattern.test(identifier)) {
84
+ return invalid(`pre-release identifier must be non-empty [0-9A-Za-z-], received ${JSON.stringify(identifier)}`);
85
+ }
86
+ return digitsPattern.test(identifier) ? parseComponent(identifier, "numeric pre-release identifier") : identifier;
87
+ };
88
+ const buildIdentifier = identifier => {
89
+ if (!identifierPattern.test(identifier)) {
90
+ return invalid(`build identifier must be non-empty [0-9A-Za-z-], received ${JSON.stringify(identifier)}`);
91
+ }
92
+ return identifier;
93
+ };
94
+ const comparePrerelease = (self, that) => {
95
+ if (self.length === 0) return that.length === 0 ? 0 : 1;
96
+ if (that.length === 0) return -1;
97
+ const length = Math.min(self.length, that.length);
98
+ for (let i = 0; i < length; i++) {
99
+ const a = self[i];
100
+ const b = that[i];
101
+ if (a === b) continue;
102
+ if (typeof a === "number") return typeof b === "number" ? order.Number(a, b) : -1;
103
+ if (typeof b === "number") return 1;
104
+ return order.String(a, b);
105
+ }
106
+ return order.Number(self.length, that.length);
107
+ };
108
+ /** @internal */
109
+ export const sameCore = (self, that) => self.major === that.major && self.minor === that.minor && self.patch === that.patch;
110
+ /** @internal */
111
+ export const compareCore = (self, that) => order.Number(self.major, that.major) || order.Number(self.minor, that.minor) || order.Number(self.patch, that.patch) || comparePrerelease(self.prerelease, that.prerelease);
112
+ const SemVerProto = {
113
+ [TypeId]: TypeId,
114
+ [Equal.symbol](that) {
115
+ return isSemVer(that) && Equivalence(this, that);
116
+ },
117
+ [Hash.symbol]() {
118
+ return Hash.string(format(this));
119
+ },
120
+ toString() {
121
+ return `SemVer(${format(this)})`;
122
+ },
123
+ toJSON() {
124
+ return {
125
+ _id: "SemVer",
126
+ value: format(this)
127
+ };
128
+ },
129
+ [NodeInspectSymbol]() {
130
+ return this.toJSON();
131
+ },
132
+ pipe() {
133
+ return pipeArguments(this, arguments);
134
+ }
135
+ };
136
+ const unchecked = (major, minor, patch, prerelease, build) => {
137
+ const self = Object.create(SemVerProto);
138
+ self.major = major;
139
+ self.minor = minor;
140
+ self.patch = patch;
141
+ self.prerelease = prerelease;
142
+ self.build = build;
143
+ return self;
144
+ };
145
+ const increment = (value, label) => {
146
+ if (value >= Number.MAX_SAFE_INTEGER) return invalid(`${label} cannot be incremented past Number.MAX_SAFE_INTEGER`);
147
+ return value + 1;
148
+ };
149
+ /**
150
+ * Checks whether a value is a `SemVer`.
151
+ *
152
+ * @stability unstable
153
+ * @category guards
154
+ * @since 4.0.6
155
+ */
156
+ export const isSemVer = u => hasProperty(u, TypeId);
157
+ /**
158
+ * Creates a version from its components and throws `SemVerError` for invalid
159
+ * components.
160
+ *
161
+ * **Details**
162
+ *
163
+ * Components must be non-negative safe integers. Identifiers must be non-empty
164
+ * and contain only ASCII alphanumerics and hyphens. Digit-only pre-release
165
+ * strings are normalized to numbers and must not have leading zeros.
166
+ *
167
+ * A `SemVer` spreads into exactly these components, so `make({ ...version,
168
+ * patch: version.patch + 1 })` derives a validated version from an existing
169
+ * one.
170
+ *
171
+ * **Example** (Creating a pre-release version)
172
+ *
173
+ * ```ts import.meta.vitest
174
+ * import { SemVer } from "effect"
175
+ *
176
+ * SemVer.format(SemVer.make({ major: 1, minor: 0, patch: 0, prerelease: ["beta", "2"] })) // => "1.0.0-beta.2"
177
+ * ```
178
+ *
179
+ * @see {@link parse} for decoding version strings
180
+ * @stability unstable
181
+ * @category constructors
182
+ * @since 4.0.6
183
+ */
184
+ export const make = components => unchecked(checkComponent(components.major, "major"), checkComponent(components.minor, "minor"), checkComponent(components.patch, "patch"), components.prerelease?.map(prereleaseIdentifier) ?? [], components.build?.map(buildIdentifier) ?? []);
185
+ const parseOrThrow = input => {
186
+ let rest = input;
187
+ let build = [];
188
+ const plus = rest.indexOf("+");
189
+ if (plus !== -1) {
190
+ build = rest.slice(plus + 1).split(".").map(buildIdentifier);
191
+ rest = rest.slice(0, plus);
192
+ }
193
+ let prerelease = [];
194
+ const dash = rest.indexOf("-");
195
+ if (dash !== -1) {
196
+ prerelease = rest.slice(dash + 1).split(".").map(prereleaseIdentifier);
197
+ rest = rest.slice(0, dash);
198
+ }
199
+ const core = rest.split(".");
200
+ if (core.length !== 3) return invalid("expected MAJOR.MINOR.PATCH");
201
+ return unchecked(parseComponent(core[0], "major"), parseComponent(core[1], "minor"), parseComponent(core[2], "patch"), prerelease, build);
202
+ };
203
+ /**
204
+ * Parses a strict Semantic Versioning 2.0.0 string.
205
+ *
206
+ * **Details**
207
+ *
208
+ * The input must match the spec grammar exactly. Leading zeros in numeric
209
+ * components or pre-release identifiers, empty identifiers, and numbers above
210
+ * `Number.MAX_SAFE_INTEGER` are rejected.
211
+ *
212
+ * **Gotchas**
213
+ *
214
+ * A `v` prefix, surrounding whitespace, and partial versions such as `1.2` are
215
+ * rejected because they are not semantic versions.
216
+ *
217
+ * **Example** (Parsing version strings)
218
+ *
219
+ * ```ts import.meta.vitest
220
+ * import { Result, SemVer } from "effect"
221
+ *
222
+ * Result.isSuccess(SemVer.parse("1.2.3-alpha.1+001")) // => true
223
+ * Result.isFailure(SemVer.parse("v1.2.3")) // => true
224
+ * ```
225
+ *
226
+ * @see {@link parseUnsafe} for throwing on invalid input
227
+ * @see {@link format} for the inverse operation
228
+ * @stability unstable
229
+ * @category constructors
230
+ * @since 4.0.6
231
+ */
232
+ export const parse = input => tryParse("SemVer", input, parseOrThrow);
233
+ /**
234
+ * Parses a strict Semantic Versioning 2.0.0 string and throws `SemVerError`
235
+ * for invalid input.
236
+ *
237
+ * @see {@link parse} for non-throwing parsing
238
+ * @stability unstable
239
+ * @category constructors
240
+ * @since 4.0.6
241
+ */
242
+ export const parseUnsafe = input => Result.getOrThrow(parse(input));
243
+ /**
244
+ * Converts a version, version string, or version components into a `SemVer`.
245
+ *
246
+ * **Details**
247
+ *
248
+ * Versions are returned unchanged, strings are parsed like {@link parse}, and
249
+ * components are validated like {@link make}. Invalid input fails with
250
+ * `SemVerError`.
251
+ *
252
+ * **Example** (Accepting flexible version input)
253
+ *
254
+ * ```ts import.meta.vitest
255
+ * import { Result, SemVer } from "effect"
256
+ *
257
+ * Result.map(SemVer.fromInput("1.2.3-rc.1"), SemVer.format) // => Result.succeed("1.2.3-rc.1")
258
+ * Result.map(SemVer.fromInput({ major: 1, minor: 2, patch: 3 }), SemVer.format) // => Result.succeed("1.2.3")
259
+ * Result.isFailure(SemVer.fromInput({ major: -1, minor: 0, patch: 0 })) // => true
260
+ * ```
261
+ *
262
+ * @see {@link fromInputUnsafe} for throwing on invalid input
263
+ * @stability unstable
264
+ * @category constructors
265
+ * @since 4.0.6
266
+ */
267
+ export const fromInput = input => {
268
+ if (isSemVer(input)) return Result.succeed(input);
269
+ if (typeof input === "string") return parse(input);
270
+ return attempt(() => make(input));
271
+ };
272
+ /**
273
+ * Converts a version, version string, or version components into a `SemVer`
274
+ * and throws `SemVerError` for invalid input.
275
+ *
276
+ * @see {@link fromInput} for non-throwing conversion
277
+ * @stability unstable
278
+ * @category constructors
279
+ * @since 4.0.6
280
+ */
281
+ export const fromInputUnsafe = input => Result.getOrThrow(fromInput(input));
282
+ /**
283
+ * Formats a version as its canonical string, including pre-release identifiers
284
+ * and build metadata.
285
+ *
286
+ * @see {@link parse} for the inverse operation
287
+ * @stability unstable
288
+ * @category converting
289
+ * @since 4.0.6
290
+ */
291
+ export const format = self => {
292
+ let out = `${self.major}.${self.minor}.${self.patch}`;
293
+ if (self.prerelease.length > 0) out += `-${self.prerelease.join(".")}`;
294
+ if (self.build.length > 0) out += `+${self.build.join(".")}`;
295
+ return out;
296
+ };
297
+ /**
298
+ * Checks whether a version has pre-release identifiers.
299
+ *
300
+ * @stability unstable
301
+ * @category predicates
302
+ * @since 4.0.6
303
+ */
304
+ export const isPrerelease = self => self.prerelease.length > 0;
305
+ /**
306
+ * Checks whether a version has build metadata.
307
+ *
308
+ * **Details**
309
+ *
310
+ * Build metadata does not affect precedence, but it is part of structural
311
+ * equality.
312
+ *
313
+ * @stability unstable
314
+ * @category predicates
315
+ * @since 4.0.6
316
+ */
317
+ export const hasBuild = self => self.build.length > 0;
318
+ /**
319
+ * Checks whether a version is in initial development, meaning its major
320
+ * version is `0`.
321
+ *
322
+ * **Details**
323
+ *
324
+ * The SemVer spec treats `0.y.z` as initial development where anything may
325
+ * change at any time and the public API should not be considered stable.
326
+ *
327
+ * @stability unstable
328
+ * @category predicates
329
+ * @since 4.0.6
330
+ */
331
+ export const isInitialDevelopment = self => self.major === 0;
332
+ /**
333
+ * Orders versions by Semantic Versioning precedence.
334
+ *
335
+ * **Details**
336
+ *
337
+ * Major, minor, and patch are compared numerically. A pre-release has lower
338
+ * precedence than its release. Pre-release identifiers are compared left to
339
+ * right: numeric identifiers compare numerically and sort before alphanumeric
340
+ * identifiers, which compare in ASCII order. A longer list of otherwise equal
341
+ * identifiers has higher precedence.
342
+ *
343
+ * **Gotchas**
344
+ *
345
+ * Build metadata is ignored, so versions that differ only in build metadata
346
+ * compare as `0` even though they are not `Equal`.
347
+ *
348
+ * **Example** (Sorting by precedence)
349
+ *
350
+ * ```ts import.meta.vitest
351
+ * import { Array, SemVer } from "effect"
352
+ *
353
+ * const versions = ["1.0.0", "1.0.0-rc.1", "1.0.0-beta.11", "1.0.0-beta.2", "1.0.0-alpha"].map(SemVer.parseUnsafe)
354
+ *
355
+ * Array.sort(versions, SemVer.Order).map(SemVer.format) // => ["1.0.0-alpha", "1.0.0-beta.2", "1.0.0-beta.11", "1.0.0-rc.1", "1.0.0"]
356
+ * ```
357
+ *
358
+ * @see {@link Equivalence} for structural equality including build metadata
359
+ * @stability unstable
360
+ * @category instances
361
+ * @since 4.0.6
362
+ */
363
+ export const Order = /*#__PURE__*/order.make(compareCore);
364
+ const identifiersEqual = /*#__PURE__*/Equ.Array(/*#__PURE__*/Equ.strictEqual());
365
+ /**
366
+ * Provides structural equivalence for versions, including build metadata.
367
+ *
368
+ * @see {@link Order} for precedence that ignores build metadata
369
+ * @stability unstable
370
+ * @category instances
371
+ * @since 4.0.6
372
+ */
373
+ export const Equivalence = /*#__PURE__*/Equ.make((self, that) => self.major === that.major && self.minor === that.minor && self.patch === that.patch && identifiersEqual(self.prerelease, that.prerelease) && identifiersEqual(self.build, that.build));
374
+ /**
375
+ * Checks whether two versions are structurally equal, including build
376
+ * metadata.
377
+ *
378
+ * @stability unstable
379
+ * @category predicates
380
+ * @since 4.0.6
381
+ */
382
+ export const equals = /*#__PURE__*/dual(2, Equivalence);
383
+ /**
384
+ * Checks whether the first version has lower precedence than the second.
385
+ *
386
+ * @stability unstable
387
+ * @category predicates
388
+ * @since 4.0.6
389
+ */
390
+ export const isLessThan = /*#__PURE__*/order.isLessThan(Order);
391
+ /**
392
+ * Checks whether the first version has lower or equal precedence than the
393
+ * second.
394
+ *
395
+ * @stability unstable
396
+ * @category predicates
397
+ * @since 4.0.6
398
+ */
399
+ export const isLessThanOrEqualTo = /*#__PURE__*/order.isLessThanOrEqualTo(Order);
400
+ /**
401
+ * Checks whether the first version has higher precedence than the second.
402
+ *
403
+ * @stability unstable
404
+ * @category predicates
405
+ * @since 4.0.6
406
+ */
407
+ export const isGreaterThan = /*#__PURE__*/order.isGreaterThan(Order);
408
+ /**
409
+ * Checks whether the first version has higher or equal precedence than the
410
+ * second.
411
+ *
412
+ * @stability unstable
413
+ * @category predicates
414
+ * @since 4.0.6
415
+ */
416
+ export const isGreaterThanOrEqualTo = /*#__PURE__*/order.isGreaterThanOrEqualTo(Order);
417
+ /**
418
+ * Checks whether a version's precedence is within an inclusive range.
419
+ *
420
+ * @stability unstable
421
+ * @category predicates
422
+ * @since 4.0.6
423
+ */
424
+ export const between = /*#__PURE__*/order.isBetween(Order);
425
+ /**
426
+ * Returns the version with lower precedence, preferring the first on ties.
427
+ *
428
+ * @stability unstable
429
+ * @category ordering
430
+ * @since 4.0.6
431
+ */
432
+ export const min = /*#__PURE__*/order.min(Order);
433
+ /**
434
+ * Returns the version with higher precedence, preferring the first on ties.
435
+ *
436
+ * @stability unstable
437
+ * @category ordering
438
+ * @since 4.0.6
439
+ */
440
+ export const max = /*#__PURE__*/order.max(Order);
441
+ /**
442
+ * Constrains a version's precedence to an inclusive range.
443
+ *
444
+ * @stability unstable
445
+ * @category ordering
446
+ * @since 4.0.6
447
+ */
448
+ export const clamp = /*#__PURE__*/order.clamp(Order);
449
+ /**
450
+ * Replaces the pre-release identifiers of a version and throws `SemVerError`
451
+ * for invalid identifiers.
452
+ *
453
+ * **Details**
454
+ *
455
+ * Digit-only strings are normalized to numbers. An empty array removes the
456
+ * pre-release. Build metadata is preserved.
457
+ *
458
+ * @stability unstable
459
+ * @category transforming
460
+ * @since 4.0.6
461
+ */
462
+ export const withPrerelease = /*#__PURE__*/dual(2, (self, prerelease) => unchecked(self.major, self.minor, self.patch, prerelease.map(prereleaseIdentifier), self.build));
463
+ /**
464
+ * Replaces the build metadata of a version and throws `SemVerError` for
465
+ * invalid identifiers.
466
+ *
467
+ * **Details**
468
+ *
469
+ * An empty array removes the build metadata. Pre-release identifiers are
470
+ * preserved.
471
+ *
472
+ * @stability unstable
473
+ * @category transforming
474
+ * @since 4.0.6
475
+ */
476
+ export const withBuild = /*#__PURE__*/dual(2, (self, build) => unchecked(self.major, self.minor, self.patch, self.prerelease, build.map(buildIdentifier)));
477
+ /**
478
+ * Removes pre-release identifiers and build metadata from a version.
479
+ *
480
+ * **Example** (Finalizing a release candidate)
481
+ *
482
+ * ```ts import.meta.vitest
483
+ * import { SemVer } from "effect"
484
+ *
485
+ * SemVer.format(SemVer.release(SemVer.parseUnsafe("2.0.0-rc.3+sha.5114f85"))) // => "2.0.0"
486
+ * ```
487
+ *
488
+ * @stability unstable
489
+ * @category transforming
490
+ * @since 4.0.6
491
+ */
492
+ export const release = self => self.prerelease.length === 0 && self.build.length === 0 ? self : unchecked(self.major, self.minor, self.patch, [], []);
493
+ /**
494
+ * Returns the next major release.
495
+ *
496
+ * **Details**
497
+ *
498
+ * Returns the smallest major release with higher precedence, so a pre-release
499
+ * of a major version, such as `2.0.0-rc.1`, becomes `2.0.0`. Pre-release
500
+ * identifiers and build metadata are removed.
501
+ *
502
+ * **Example** (Bumping major versions)
503
+ *
504
+ * ```ts import.meta.vitest
505
+ * import { SemVer } from "effect"
506
+ *
507
+ * SemVer.format(SemVer.bumpMajor(SemVer.parseUnsafe("1.2.3"))) // => "2.0.0"
508
+ * SemVer.format(SemVer.bumpMajor(SemVer.parseUnsafe("2.0.0-rc.1"))) // => "2.0.0"
509
+ * SemVer.format(SemVer.bumpMajor(SemVer.parseUnsafe("2.1.0-rc.1"))) // => "3.0.0"
510
+ * ```
511
+ *
512
+ * @stability unstable
513
+ * @category transforming
514
+ * @since 4.0.6
515
+ */
516
+ export const bumpMajor = self => unchecked(self.minor === 0 && self.patch === 0 && self.prerelease.length > 0 ? self.major : increment(self.major, "major"), 0, 0, [], []);
517
+ /**
518
+ * Returns the next minor release.
519
+ *
520
+ * **Details**
521
+ *
522
+ * Returns the smallest minor release with higher precedence, so a pre-release
523
+ * of a minor version, such as `1.3.0-rc.1`, becomes `1.3.0`. Pre-release
524
+ * identifiers and build metadata are removed.
525
+ *
526
+ * @stability unstable
527
+ * @category transforming
528
+ * @since 4.0.6
529
+ */
530
+ export const bumpMinor = self => unchecked(self.major, self.patch === 0 && self.prerelease.length > 0 ? self.minor : increment(self.minor, "minor"), 0, [], []);
531
+ /**
532
+ * Returns the next patch release.
533
+ *
534
+ * **Details**
535
+ *
536
+ * Returns the smallest patch release with higher precedence, so a pre-release
537
+ * such as `1.2.3-rc.1` becomes `1.2.3`. Pre-release identifiers and build
538
+ * metadata are removed.
539
+ *
540
+ * @stability unstable
541
+ * @category transforming
542
+ * @since 4.0.6
543
+ */
544
+ export const bumpPatch = self => unchecked(self.major, self.minor, self.prerelease.length > 0 ? self.patch : increment(self.patch, "patch"), [], []);
545
+ const startPrerelease = identifier => identifier === undefined ? [0] : [prereleaseIdentifier(identifier), 0];
546
+ const isSemVerArgs = args => isSemVer(args[0]);
547
+ /**
548
+ * Returns the first pre-release of the next major version.
549
+ *
550
+ * **Details**
551
+ *
552
+ * Increments major, resets minor and patch, and starts the pre-release at
553
+ * `[identifier, 0]`, or `[0]` without an identifier. Build metadata is removed.
554
+ *
555
+ * @stability unstable
556
+ * @category transforming
557
+ * @since 4.0.6
558
+ */
559
+ export const bumpPremajor = /*#__PURE__*/dual(isSemVerArgs, (self, identifier) => unchecked(increment(self.major, "major"), 0, 0, startPrerelease(identifier), []));
560
+ /**
561
+ * Returns the first pre-release of the next minor version.
562
+ *
563
+ * **Details**
564
+ *
565
+ * Increments minor, resets patch, and starts the pre-release at
566
+ * `[identifier, 0]`, or `[0]` without an identifier. Build metadata is removed.
567
+ *
568
+ * @stability unstable
569
+ * @category transforming
570
+ * @since 4.0.6
571
+ */
572
+ export const bumpPreminor = /*#__PURE__*/dual(isSemVerArgs, (self, identifier) => unchecked(self.major, increment(self.minor, "minor"), 0, startPrerelease(identifier), []));
573
+ /**
574
+ * Returns the first pre-release of the next patch version.
575
+ *
576
+ * **Details**
577
+ *
578
+ * Increments patch and starts the pre-release at `[identifier, 0]`, or `[0]`
579
+ * without an identifier. Build metadata is removed.
580
+ *
581
+ * @stability unstable
582
+ * @category transforming
583
+ * @since 4.0.6
584
+ */
585
+ export const bumpPrepatch = /*#__PURE__*/dual(isSemVerArgs, (self, identifier) => unchecked(self.major, self.minor, increment(self.patch, "patch"), startPrerelease(identifier), []));
586
+ const nextPrerelease = prerelease => {
587
+ for (let i = prerelease.length - 1; i >= 0; i--) {
588
+ const identifier = prerelease[i];
589
+ if (typeof identifier === "number") {
590
+ const next = prerelease.slice();
591
+ next[i] = increment(identifier, "pre-release identifier");
592
+ return next;
593
+ }
594
+ }
595
+ return [...prerelease, 0];
596
+ };
597
+ /**
598
+ * Returns the next pre-release.
599
+ *
600
+ * **Details**
601
+ *
602
+ * - A release starts the pre-release of the next patch, like
603
+ * {@link bumpPrepatch}.
604
+ * - An identifier that differs from the first pre-release identifier restarts
605
+ * the pre-release at `[identifier, 0]`.
606
+ * - Otherwise the right-most numeric identifier is incremented, or `0` is
607
+ * appended when there is none.
608
+ *
609
+ * Build metadata is removed.
610
+ *
611
+ * **Gotchas**
612
+ *
613
+ * Switching to an identifier that sorts lower, such as from `beta` to `alpha`,
614
+ * returns a version with lower precedence.
615
+ *
616
+ * **Example** (Advancing pre-releases)
617
+ *
618
+ * ```ts import.meta.vitest
619
+ * import { SemVer } from "effect"
620
+ *
621
+ * SemVer.format(SemVer.bumpPrerelease(SemVer.parseUnsafe("1.2.3"), "alpha")) // => "1.2.4-alpha.0"
622
+ * SemVer.format(SemVer.bumpPrerelease(SemVer.parseUnsafe("1.2.4-alpha.0"))) // => "1.2.4-alpha.1"
623
+ * SemVer.format(SemVer.bumpPrerelease(SemVer.parseUnsafe("1.2.4-alpha.1"), "beta")) // => "1.2.4-beta.0"
624
+ * ```
625
+ *
626
+ * @stability unstable
627
+ * @category transforming
628
+ * @since 4.0.6
629
+ */
630
+ export const bumpPrerelease = /*#__PURE__*/dual(isSemVerArgs, (self, identifier) => {
631
+ if (self.prerelease.length === 0) {
632
+ return unchecked(self.major, self.minor, increment(self.patch, "patch"), startPrerelease(identifier), []);
633
+ }
634
+ if (identifier !== undefined) {
635
+ const normalized = prereleaseIdentifier(identifier);
636
+ if (self.prerelease[0] !== normalized) {
637
+ return unchecked(self.major, self.minor, self.patch, [normalized, 0], []);
638
+ }
639
+ }
640
+ return unchecked(self.major, self.minor, self.patch, nextPrerelease(self.prerelease), []);
641
+ });
642
+ /**
643
+ * Bumps a version by release type.
644
+ *
645
+ * **When to use**
646
+ *
647
+ * Use when the release type is data, such as a CLI argument, configuration, or
648
+ * the result of {@link difference}.
649
+ *
650
+ * **Details**
651
+ *
652
+ * Dispatches to {@link bumpMajor}, {@link bumpMinor}, {@link bumpPatch},
653
+ * {@link bumpPremajor}, {@link bumpPreminor}, {@link bumpPrepatch}, or
654
+ * {@link bumpPrerelease}, with the same semantics.
655
+ *
656
+ * **Gotchas**
657
+ *
658
+ * The pre-release `identifier` is ignored for `"major"`, `"minor"`, and
659
+ * `"patch"`.
660
+ *
661
+ * **Example** (Bumping by a release type from input)
662
+ *
663
+ * ```ts import.meta.vitest
664
+ * import { SemVer } from "effect"
665
+ *
666
+ * const version = SemVer.parseUnsafe("1.2.3")
667
+ *
668
+ * SemVer.format(SemVer.bump(version, "minor")) // => "1.3.0"
669
+ * SemVer.format(SemVer.bump(version, "premajor", "rc")) // => "2.0.0-rc.0"
670
+ * ```
671
+ *
672
+ * **Example** (Defining custom bump rules)
673
+ *
674
+ * ```ts import.meta.vitest
675
+ * import { SemVer } from "effect"
676
+ *
677
+ * // Always increment patch, even for pre-releases, and keep build metadata
678
+ * const customBump = (version: SemVer.SemVer, releaseType: SemVer.ReleaseType): SemVer.SemVer =>
679
+ * releaseType === "patch"
680
+ * ? SemVer.make({ ...version, patch: version.patch + 1, prerelease: [] })
681
+ * : SemVer.withBuild(SemVer.bump(version, releaseType), version.build)
682
+ *
683
+ * SemVer.format(customBump(SemVer.parseUnsafe("1.2.3-rc.1+b"), "patch")) // => "1.2.4+b"
684
+ * SemVer.format(customBump(SemVer.parseUnsafe("1.2.3-rc.1+b"), "minor")) // => "1.3.0+b"
685
+ * ```
686
+ *
687
+ * @stability unstable
688
+ * @category transforming
689
+ * @since 4.0.6
690
+ */
691
+ export const bump = /*#__PURE__*/dual(isSemVerArgs, (self, releaseType, identifier) => {
692
+ switch (releaseType) {
693
+ case "major":
694
+ return bumpMajor(self);
695
+ case "minor":
696
+ return bumpMinor(self);
697
+ case "patch":
698
+ return bumpPatch(self);
699
+ case "premajor":
700
+ return bumpPremajor(self, identifier);
701
+ case "preminor":
702
+ return bumpPreminor(self, identifier);
703
+ case "prepatch":
704
+ return bumpPrepatch(self, identifier);
705
+ case "prerelease":
706
+ return bumpPrerelease(self, identifier);
707
+ }
708
+ });
709
+ /**
710
+ * Classifies the change between two versions by release type.
711
+ *
712
+ * **Details**
713
+ *
714
+ * Follows node-semver's `diff`, so the result names the bump that produces the
715
+ * higher version from the lower one. Moving to a pre-release adds the `pre`
716
+ * prefix, and finalizing a pre-release reports the level it was released at:
717
+ * `1.0.0-1` to `1.0.0` is `"major"`, `1.1.0-1` to `1.1.0` is `"minor"`, and
718
+ * `1.2.3-1` to `1.2.3` is `"patch"`. The result does not depend on argument
719
+ * order.
720
+ *
721
+ * **Gotchas**
722
+ *
723
+ * Returns `None` for versions with the same precedence, including versions
724
+ * that differ only in build metadata.
725
+ *
726
+ * **Example** (Classifying upgrades)
727
+ *
728
+ * ```ts import.meta.vitest
729
+ * import { Option, SemVer } from "effect"
730
+ *
731
+ * SemVer.difference(SemVer.parseUnsafe("1.2.3"), SemVer.parseUnsafe("1.3.0")) // => Option.some("minor")
732
+ * SemVer.difference(SemVer.parseUnsafe("1.2.3"), SemVer.parseUnsafe("2.0.0-rc.1")) // => Option.some("premajor")
733
+ * SemVer.difference(SemVer.parseUnsafe("2.0.0-rc.1"), SemVer.parseUnsafe("2.0.0")) // => Option.some("major")
734
+ * SemVer.difference(SemVer.parseUnsafe("1.2.3+a"), SemVer.parseUnsafe("1.2.3+b")) // => Option.none()
735
+ * ```
736
+ *
737
+ * @see {@link bump} for applying a release type to a version
738
+ * @stability unstable
739
+ * @category comparisons
740
+ * @since 4.0.6
741
+ */
742
+ export const difference = /*#__PURE__*/dual(2, (self, that) => {
743
+ const comparison = Order(self, that);
744
+ if (comparison === 0) return Option.none();
745
+ const [low, high] = comparison < 0 ? [self, that] : [that, self];
746
+ const highIsPrerelease = high.prerelease.length > 0;
747
+ if (low.prerelease.length > 0 && !highIsPrerelease) {
748
+ if (low.minor === 0 && low.patch === 0) return Option.some("major");
749
+ if (sameCore(low, high)) return Option.some(low.patch === 0 ? "minor" : "patch");
750
+ }
751
+ if (self.major !== that.major) return Option.some(highIsPrerelease ? "premajor" : "major");
752
+ if (self.minor !== that.minor) return Option.some(highIsPrerelease ? "preminor" : "minor");
753
+ if (self.patch !== that.patch) return Option.some(highIsPrerelease ? "prepatch" : "patch");
754
+ return Option.some("prerelease");
755
+ });
756
+ //# sourceMappingURL=SemVer.js.map