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/src/Array.ts CHANGED
@@ -521,8 +521,10 @@ export const fromOption: <A>(self: Option.Option<A>) => Array<A> = Option.toArra
521
521
  *
522
522
  * **Details**
523
523
  *
524
- * `onNonEmpty` receives a `NonEmptyReadonlyArray`. Supports both data-first and
525
- * data-last usage.
524
+ * `onNonEmpty` receives a `NonEmptyArray` for mutable arrays and a
525
+ * `NonEmptyReadonlyArray` otherwise. Data-last calls default to the readonly
526
+ * callback, so the returned function still accepts `ReadonlyArray`. Supports
527
+ * both data-first and data-last usage.
526
528
  *
527
529
  * **Example** (Branching on emptiness)
528
530
  *
@@ -555,8 +557,10 @@ export const match: {
555
557
  *
556
558
  * **Details**
557
559
  *
558
- * `onNonEmpty` receives a `NonEmptyReadonlyArray`. Supports both data-first and
559
- * data-last usage.
560
+ * `onNonEmpty` receives a `NonEmptyArray` for mutable arrays and a
561
+ * `NonEmptyReadonlyArray` otherwise. Data-last calls default to the readonly
562
+ * callback, so the returned function still accepts `ReadonlyArray`. Supports
563
+ * both data-first and data-last usage.
560
564
  *
561
565
  * **Example** (Branching on emptiness)
562
566
  *
@@ -594,8 +598,93 @@ export const match: {
594
598
  *
595
599
  * **Details**
596
600
  *
597
- * `onNonEmpty` receives a `NonEmptyReadonlyArray`. Supports both data-first and
598
- * data-last usage.
601
+ * `onNonEmpty` receives a `NonEmptyArray` for mutable arrays and a
602
+ * `NonEmptyReadonlyArray` otherwise. Data-last calls default to the readonly
603
+ * callback, so the returned function still accepts `ReadonlyArray`. Supports
604
+ * both data-first and data-last usage.
605
+ *
606
+ * **Example** (Branching on emptiness)
607
+ *
608
+ * ```ts import.meta.vitest
609
+ * import { Array } from "effect"
610
+ *
611
+ * const describe = Array.match({
612
+ * onEmpty: () => "empty",
613
+ * onNonEmpty: ([head, ...tail]) => `head: ${head}, tail: ${tail.length}`
614
+ * })
615
+ *
616
+ * describe([]) // => "empty"
617
+ * describe([1, 2, 3]) // => "head: 1, tail: 2"
618
+ * ```
619
+ *
620
+ * @see {@link matchLeft} — destructures into head + tail
621
+ * @see {@link matchRight} — destructures into init + last
622
+ *
623
+ * @stability stable
624
+ * @category pattern matching
625
+ * @since 2.0.0
626
+ */
627
+ <B, A, C = B>(
628
+ options: {
629
+ readonly onEmpty: LazyArg<B>
630
+ readonly onNonEmpty: (self: NonEmptyArray<A>) => C
631
+ }
632
+ ): (self: Array<A>) => B | C
633
+ /**
634
+ * Pattern-matches on an array, handling empty and non-empty cases separately.
635
+ *
636
+ * **When to use**
637
+ *
638
+ * Use when you need to branch on whether an array is empty.
639
+ *
640
+ * **Details**
641
+ *
642
+ * `onNonEmpty` receives a `NonEmptyArray` for mutable arrays and a
643
+ * `NonEmptyReadonlyArray` otherwise. Data-last calls default to the readonly
644
+ * callback, so the returned function still accepts `ReadonlyArray`. Supports
645
+ * both data-first and data-last usage.
646
+ *
647
+ * **Example** (Branching on emptiness)
648
+ *
649
+ * ```ts import.meta.vitest
650
+ * import { Array } from "effect"
651
+ *
652
+ * const describe = Array.match({
653
+ * onEmpty: () => "empty",
654
+ * onNonEmpty: ([head, ...tail]) => `head: ${head}, tail: ${tail.length}`
655
+ * })
656
+ *
657
+ * describe([]) // => "empty"
658
+ * describe([1, 2, 3]) // => "head: 1, tail: 2"
659
+ * ```
660
+ *
661
+ * @see {@link matchLeft} — destructures into head + tail
662
+ * @see {@link matchRight} — destructures into init + last
663
+ *
664
+ * @stability stable
665
+ * @category pattern matching
666
+ * @since 2.0.0
667
+ */
668
+ <A, B, C = B>(
669
+ self: Array<A>,
670
+ options: {
671
+ readonly onEmpty: LazyArg<B>
672
+ readonly onNonEmpty: (self: NonEmptyArray<A>) => C
673
+ }
674
+ ): B | C
675
+ /**
676
+ * Pattern-matches on an array, handling empty and non-empty cases separately.
677
+ *
678
+ * **When to use**
679
+ *
680
+ * Use when you need to branch on whether an array is empty.
681
+ *
682
+ * **Details**
683
+ *
684
+ * `onNonEmpty` receives a `NonEmptyArray` for mutable arrays and a
685
+ * `NonEmptyReadonlyArray` otherwise. Data-last calls default to the readonly
686
+ * callback, so the returned function still accepts `ReadonlyArray`. Supports
687
+ * both data-first and data-last usage.
599
688
  *
600
689
  * **Example** (Branching on emptiness)
601
690
  *
@@ -5646,7 +5735,7 @@ export const rotate: {
5646
5735
  * **When to use**
5647
5736
  *
5648
5737
  * Use when checking membership with caller-provided equality instead of
5649
- * `Equal.equivalence()`.
5738
+ * `Equal.asEquivalence()`.
5650
5739
  *
5651
5740
  * **Example** (Checking with custom equality)
5652
5741
  *
@@ -5658,7 +5747,7 @@ export const rotate: {
5658
5747
  * pipe([1, 2, 3, 4], containsNumber(3)) // => true
5659
5748
  * ```
5660
5749
  *
5661
- * @see {@link contains} for the `Equal.equivalence()` variant
5750
+ * @see {@link contains} for the `Equal.asEquivalence()` variant
5662
5751
  *
5663
5752
  * @stability stable
5664
5753
  * @category predicates
@@ -5678,7 +5767,7 @@ export const containsWith = <A>(isEquivalent: (self: A, that: A) => boolean): {
5678
5767
  })
5679
5768
 
5680
5769
  /**
5681
- * Checks whether an array contains a value, using `Equal.equivalence()` for
5770
+ * Checks whether an array contains a value, using `Equal.asEquivalence()` for
5682
5771
  * comparison.
5683
5772
  *
5684
5773
  * **When to use**
@@ -5702,7 +5791,7 @@ export const containsWith = <A>(isEquivalent: (self: A, that: A) => boolean): {
5702
5791
  */
5703
5792
  export const contains: {
5704
5793
  /**
5705
- * Checks whether an array contains a value, using `Equal.equivalence()` for
5794
+ * Checks whether an array contains a value, using `Equal.asEquivalence()` for
5706
5795
  * comparison.
5707
5796
  *
5708
5797
  * **When to use**
@@ -5726,7 +5815,7 @@ export const contains: {
5726
5815
  */
5727
5816
  <A>(a: A): (self: Iterable<A>) => boolean
5728
5817
  /**
5729
- * Checks whether an array contains a value, using `Equal.equivalence()` for
5818
+ * Checks whether an array contains a value, using `Equal.asEquivalence()` for
5730
5819
  * comparison.
5731
5820
  *
5732
5821
  * **When to use**
@@ -6717,7 +6806,7 @@ export const window: {
6717
6806
  * ) // => [["a", "a"], ["b", "b", "b"], ["c"], ["a"]]
6718
6807
  * ```
6719
6808
  *
6720
- * @see {@link group} for grouping adjacent elements with `Equal.equivalence()`
6809
+ * @see {@link group} for grouping adjacent elements with `Equal.asEquivalence()`
6721
6810
  * @see {@link groupBy} for grouping all elements into a record by key, regardless of adjacency
6722
6811
  *
6723
6812
  * @stability stable
@@ -6749,7 +6838,7 @@ export const groupWith: {
6749
6838
  * ) // => [["a", "a"], ["b", "b", "b"], ["c"], ["a"]]
6750
6839
  * ```
6751
6840
  *
6752
- * @see {@link group} for grouping adjacent elements with `Equal.equivalence()`
6841
+ * @see {@link group} for grouping adjacent elements with `Equal.asEquivalence()`
6753
6842
  * @see {@link groupBy} for grouping all elements into a record by key, regardless of adjacency
6754
6843
  *
6755
6844
  * @stability stable
@@ -6781,7 +6870,7 @@ export const groupWith: {
6781
6870
  * ) // => [["a", "a"], ["b", "b", "b"], ["c"], ["a"]]
6782
6871
  * ```
6783
6872
  *
6784
- * @see {@link group} for grouping adjacent elements with `Equal.equivalence()`
6873
+ * @see {@link group} for grouping adjacent elements with `Equal.asEquivalence()`
6785
6874
  * @see {@link groupBy} for grouping all elements into a record by key, regardless of adjacency
6786
6875
  *
6787
6876
  * @stability stable
@@ -6812,7 +6901,7 @@ export const groupWith: {
6812
6901
  )
6813
6902
 
6814
6903
  /**
6815
- * Groups consecutive equal elements using `Equal.equivalence()`.
6904
+ * Groups consecutive equal elements using `Equal.asEquivalence()`.
6816
6905
  *
6817
6906
  * **When to use**
6818
6907
  *
@@ -7025,13 +7114,22 @@ const hashBucketsHas = (buckets: HashBuckets, value: unknown): boolean => {
7025
7114
  }
7026
7115
 
7027
7116
  /**
7028
- * Computes the union of two arrays using a custom equivalence, removing
7029
- * duplicates.
7117
+ * Computes the union of two iterables using a custom equivalence.
7030
7118
  *
7031
7119
  * **When to use**
7032
7120
  *
7033
7121
  * Use when you need the union of two arrays but duplicate detection must use a
7034
- * custom equivalence instead of the default `Equal.equivalence()`.
7122
+ * custom equivalence instead of the default `Equal.asEquivalence()`.
7123
+ *
7124
+ * **Details**
7125
+ *
7126
+ * Keeps the elements of `self`, then appends elements of `that` that have no
7127
+ * equivalent in `self`. Calls `isEquivalent` with an element from `self` first
7128
+ * and an element from `that` second.
7129
+ *
7130
+ * **Gotchas**
7131
+ *
7132
+ * Each input must already be deduplicated.
7035
7133
  *
7036
7134
  * **Example** (Computing unions with custom equality)
7037
7135
  *
@@ -7041,7 +7139,7 @@ const hashBucketsHas = (buckets: HashBuckets, value: unknown): boolean => {
7041
7139
  * Array.unionWith([1, 2], [2, 3], (a, b) => a === b) // => [1, 2, 3]
7042
7140
  * ```
7043
7141
  *
7044
- * @see {@link union} for the `Equal.equivalence()` variant
7142
+ * @see {@link union} for the `Equal.asEquivalence()` variant
7045
7143
  * @see {@link intersectionWith} for keeping elements present in both arrays
7046
7144
  * @see {@link differenceWith} for keeping elements present only in the first array
7047
7145
  *
@@ -7051,13 +7149,22 @@ const hashBucketsHas = (buckets: HashBuckets, value: unknown): boolean => {
7051
7149
  */
7052
7150
  export const unionWith: {
7053
7151
  /**
7054
- * Computes the union of two arrays using a custom equivalence, removing
7055
- * duplicates.
7152
+ * Computes the union of two iterables using a custom equivalence.
7056
7153
  *
7057
7154
  * **When to use**
7058
7155
  *
7059
7156
  * Use when you need the union of two arrays but duplicate detection must use a
7060
- * custom equivalence instead of the default `Equal.equivalence()`.
7157
+ * custom equivalence instead of the default `Equal.asEquivalence()`.
7158
+ *
7159
+ * **Details**
7160
+ *
7161
+ * Keeps the elements of `self`, then appends elements of `that` that have no
7162
+ * equivalent in `self`. Calls `isEquivalent` with an element from `self` first
7163
+ * and an element from `that` second.
7164
+ *
7165
+ * **Gotchas**
7166
+ *
7167
+ * Each input must already be deduplicated.
7061
7168
  *
7062
7169
  * **Example** (Computing unions with custom equality)
7063
7170
  *
@@ -7067,7 +7174,7 @@ export const unionWith: {
7067
7174
  * Array.unionWith([1, 2], [2, 3], (a, b) => a === b) // => [1, 2, 3]
7068
7175
  * ```
7069
7176
  *
7070
- * @see {@link union} for the `Equal.equivalence()` variant
7177
+ * @see {@link union} for the `Equal.asEquivalence()` variant
7071
7178
  * @see {@link intersectionWith} for keeping elements present in both arrays
7072
7179
  * @see {@link differenceWith} for keeping elements present only in the first array
7073
7180
  *
@@ -7080,13 +7187,22 @@ export const unionWith: {
7080
7187
  isEquivalent: (self: ReadonlyArray.Infer<S>, that: ReadonlyArray.Infer<T>) => boolean
7081
7188
  ): (self: S) => ReadonlyArray.OrNonEmpty<S, T, ReadonlyArray.Infer<S> | ReadonlyArray.Infer<T>>
7082
7189
  /**
7083
- * Computes the union of two arrays using a custom equivalence, removing
7084
- * duplicates.
7190
+ * Computes the union of two iterables using a custom equivalence.
7085
7191
  *
7086
7192
  * **When to use**
7087
7193
  *
7088
7194
  * Use when you need the union of two arrays but duplicate detection must use a
7089
- * custom equivalence instead of the default `Equal.equivalence()`.
7195
+ * custom equivalence instead of the default `Equal.asEquivalence()`.
7196
+ *
7197
+ * **Details**
7198
+ *
7199
+ * Keeps the elements of `self`, then appends elements of `that` that have no
7200
+ * equivalent in `self`. Calls `isEquivalent` with an element from `self` first
7201
+ * and an element from `that` second.
7202
+ *
7203
+ * **Gotchas**
7204
+ *
7205
+ * Each input must already be deduplicated.
7090
7206
  *
7091
7207
  * **Example** (Computing unions with custom equality)
7092
7208
  *
@@ -7096,7 +7212,7 @@ export const unionWith: {
7096
7212
  * Array.unionWith([1, 2], [2, 3], (a, b) => a === b) // => [1, 2, 3]
7097
7213
  * ```
7098
7214
  *
7099
- * @see {@link union} for the `Equal.equivalence()` variant
7215
+ * @see {@link union} for the `Equal.asEquivalence()` variant
7100
7216
  * @see {@link intersectionWith} for keeping elements present in both arrays
7101
7217
  * @see {@link differenceWith} for keeping elements present only in the first array
7102
7218
  *
@@ -7110,13 +7226,22 @@ export const unionWith: {
7110
7226
  isEquivalent: (self: A, that: B) => boolean
7111
7227
  ): NonEmptyArray<A | B>
7112
7228
  /**
7113
- * Computes the union of two arrays using a custom equivalence, removing
7114
- * duplicates.
7229
+ * Computes the union of two iterables using a custom equivalence.
7115
7230
  *
7116
7231
  * **When to use**
7117
7232
  *
7118
7233
  * Use when you need the union of two arrays but duplicate detection must use a
7119
- * custom equivalence instead of the default `Equal.equivalence()`.
7234
+ * custom equivalence instead of the default `Equal.asEquivalence()`.
7235
+ *
7236
+ * **Details**
7237
+ *
7238
+ * Keeps the elements of `self`, then appends elements of `that` that have no
7239
+ * equivalent in `self`. Calls `isEquivalent` with an element from `self` first
7240
+ * and an element from `that` second.
7241
+ *
7242
+ * **Gotchas**
7243
+ *
7244
+ * Each input must already be deduplicated.
7120
7245
  *
7121
7246
  * **Example** (Computing unions with custom equality)
7122
7247
  *
@@ -7126,7 +7251,7 @@ export const unionWith: {
7126
7251
  * Array.unionWith([1, 2], [2, 3], (a, b) => a === b) // => [1, 2, 3]
7127
7252
  * ```
7128
7253
  *
7129
- * @see {@link union} for the `Equal.equivalence()` variant
7254
+ * @see {@link union} for the `Equal.asEquivalence()` variant
7130
7255
  * @see {@link intersectionWith} for keeping elements present in both arrays
7131
7256
  * @see {@link differenceWith} for keeping elements present only in the first array
7132
7257
  *
@@ -7140,13 +7265,22 @@ export const unionWith: {
7140
7265
  isEquivalent: (self: A, that: B) => boolean
7141
7266
  ): NonEmptyArray<A | B>
7142
7267
  /**
7143
- * Computes the union of two arrays using a custom equivalence, removing
7144
- * duplicates.
7268
+ * Computes the union of two iterables using a custom equivalence.
7145
7269
  *
7146
7270
  * **When to use**
7147
7271
  *
7148
7272
  * Use when you need the union of two arrays but duplicate detection must use a
7149
- * custom equivalence instead of the default `Equal.equivalence()`.
7273
+ * custom equivalence instead of the default `Equal.asEquivalence()`.
7274
+ *
7275
+ * **Details**
7276
+ *
7277
+ * Keeps the elements of `self`, then appends elements of `that` that have no
7278
+ * equivalent in `self`. Calls `isEquivalent` with an element from `self` first
7279
+ * and an element from `that` second.
7280
+ *
7281
+ * **Gotchas**
7282
+ *
7283
+ * Each input must already be deduplicated.
7150
7284
  *
7151
7285
  * **Example** (Computing unions with custom equality)
7152
7286
  *
@@ -7156,7 +7290,7 @@ export const unionWith: {
7156
7290
  * Array.unionWith([1, 2], [2, 3], (a, b) => a === b) // => [1, 2, 3]
7157
7291
  * ```
7158
7292
  *
7159
- * @see {@link union} for the `Equal.equivalence()` variant
7293
+ * @see {@link union} for the `Equal.asEquivalence()` variant
7160
7294
  * @see {@link intersectionWith} for keeping elements present in both arrays
7161
7295
  * @see {@link differenceWith} for keeping elements present only in the first array
7162
7296
  *
@@ -7169,13 +7303,21 @@ export const unionWith: {
7169
7303
  that: Iterable<B>,
7170
7304
  isEquivalent: (self: A, that: B) => boolean
7171
7305
  ): Array<A | B>
7172
- } = dual(3, <A>(self: Iterable<A>, that: Iterable<A>, isEquivalent: (self: A, that: A) => boolean): Array<A> => {
7306
+ } = dual(3, <A, B>(self: Iterable<A>, that: Iterable<B>, isEquivalent: (self: A, that: B) => boolean): Array<A | B> => {
7173
7307
  const a = fromIterable(self)
7174
7308
  const b = fromIterable(that)
7175
7309
  if (isReadonlyArrayNonEmpty(a)) {
7176
7310
  if (isReadonlyArrayNonEmpty(b)) {
7177
- const dedupe = dedupeWith(isEquivalent)
7178
- return dedupe(appendAll(a, b))
7311
+ const out: Array<A | B> = [...a]
7312
+ next: for (const value of b) {
7313
+ for (const candidate of a) {
7314
+ if (isEquivalent(candidate, value)) {
7315
+ continue next
7316
+ }
7317
+ }
7318
+ out.push(value)
7319
+ }
7320
+ return out
7179
7321
  }
7180
7322
  return a
7181
7323
  }
@@ -7183,8 +7325,12 @@ export const unionWith: {
7183
7325
  })
7184
7326
 
7185
7327
  /**
7186
- * Computes the union of two arrays, removing duplicates using
7187
- * `Equal.equivalence()`.
7328
+ * Computes the union of two iterables using `Equal.asEquivalence()`.
7329
+ *
7330
+ * **Gotchas**
7331
+ *
7332
+ * Each input must already be deduplicated. Use {@link dedupe} to remove
7333
+ * duplicates from an input first.
7188
7334
  *
7189
7335
  * **Example** (Computing array unions)
7190
7336
  *
@@ -7204,8 +7350,12 @@ export const unionWith: {
7204
7350
  */
7205
7351
  export const union: {
7206
7352
  /**
7207
- * Computes the union of two arrays, removing duplicates using
7208
- * `Equal.equivalence()`.
7353
+ * Computes the union of two iterables using `Equal.asEquivalence()`.
7354
+ *
7355
+ * **Gotchas**
7356
+ *
7357
+ * Each input must already be deduplicated. Use {@link dedupe} to remove
7358
+ * duplicates from an input first.
7209
7359
  *
7210
7360
  * **Example** (Computing array unions)
7211
7361
  *
@@ -7227,8 +7377,12 @@ export const union: {
7227
7377
  self: S
7228
7378
  ) => ReadonlyArray.OrNonEmpty<S, T, ReadonlyArray.Infer<S> | ReadonlyArray.Infer<T>>
7229
7379
  /**
7230
- * Computes the union of two arrays, removing duplicates using
7231
- * `Equal.equivalence()`.
7380
+ * Computes the union of two iterables using `Equal.asEquivalence()`.
7381
+ *
7382
+ * **Gotchas**
7383
+ *
7384
+ * Each input must already be deduplicated. Use {@link dedupe} to remove
7385
+ * duplicates from an input first.
7232
7386
  *
7233
7387
  * **Example** (Computing array unions)
7234
7388
  *
@@ -7248,8 +7402,12 @@ export const union: {
7248
7402
  */
7249
7403
  <A, B>(self: NonEmptyReadonlyArray<A>, that: ReadonlyArray<B>): NonEmptyArray<A | B>
7250
7404
  /**
7251
- * Computes the union of two arrays, removing duplicates using
7252
- * `Equal.equivalence()`.
7405
+ * Computes the union of two iterables using `Equal.asEquivalence()`.
7406
+ *
7407
+ * **Gotchas**
7408
+ *
7409
+ * Each input must already be deduplicated. Use {@link dedupe} to remove
7410
+ * duplicates from an input first.
7253
7411
  *
7254
7412
  * **Example** (Computing array unions)
7255
7413
  *
@@ -7269,8 +7427,12 @@ export const union: {
7269
7427
  */
7270
7428
  <A, B>(self: ReadonlyArray<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<A | B>
7271
7429
  /**
7272
- * Computes the union of two arrays, removing duplicates using
7273
- * `Equal.equivalence()`.
7430
+ * Computes the union of two iterables using `Equal.asEquivalence()`.
7431
+ *
7432
+ * **Gotchas**
7433
+ *
7434
+ * Each input must already be deduplicated. Use {@link dedupe} to remove
7435
+ * duplicates from an input first.
7274
7436
  *
7275
7437
  * **Example** (Computing array unions)
7276
7438
  *
@@ -7322,7 +7484,7 @@ export const union: {
7322
7484
  * Array.intersectionWith(isEquivalent)(array2)(array1) // => [{ id: 1 }, { id: 3 }]
7323
7485
  * ```
7324
7486
  *
7325
- * @see {@link intersection} for the `Equal.equivalence()` variant
7487
+ * @see {@link intersection} for the `Equal.asEquivalence()` variant
7326
7488
  * @see {@link unionWith} for keeping values from either array with custom equality
7327
7489
  * @see {@link differenceWith} for keeping values only from the first array with custom equality
7328
7490
  *
@@ -7345,7 +7507,7 @@ export const intersectionWith = <A>(isEquivalent: (self: A, that: A) => boolean)
7345
7507
  }
7346
7508
 
7347
7509
  /**
7348
- * Computes the intersection of two arrays using `Equal.equivalence()`. Order is
7510
+ * Computes the intersection of two arrays using `Equal.asEquivalence()`. Order is
7349
7511
  * determined by the first array.
7350
7512
  *
7351
7513
  * **When to use**
@@ -7371,7 +7533,7 @@ export const intersectionWith = <A>(isEquivalent: (self: A, that: A) => boolean)
7371
7533
  */
7372
7534
  export const intersection: {
7373
7535
  /**
7374
- * Computes the intersection of two arrays using `Equal.equivalence()`. Order is
7536
+ * Computes the intersection of two arrays using `Equal.asEquivalence()`. Order is
7375
7537
  * determined by the first array.
7376
7538
  *
7377
7539
  * **When to use**
@@ -7397,7 +7559,7 @@ export const intersection: {
7397
7559
  */
7398
7560
  <B>(that: Iterable<B>): <A>(self: Iterable<A>) => Array<A & B>
7399
7561
  /**
7400
- * Computes the intersection of two arrays using `Equal.equivalence()`. Order is
7562
+ * Computes the intersection of two arrays using `Equal.asEquivalence()`. Order is
7401
7563
  * determined by the first array.
7402
7564
  *
7403
7565
  * **When to use**
@@ -7449,7 +7611,7 @@ export const intersection: {
7449
7611
  * Array.differenceWith<number>((a, b) => a === b)([1, 2, 3], [2, 3, 4]) // => [1]
7450
7612
  * ```
7451
7613
  *
7452
- * @see {@link difference} for the `Equal.equivalence()` variant
7614
+ * @see {@link difference} for the `Equal.asEquivalence()` variant
7453
7615
  * @see {@link unionWith} for keeping values from either array with custom equality
7454
7616
  * @see {@link intersectionWith} for keeping values present in both arrays with custom equality
7455
7617
  *
@@ -7473,12 +7635,12 @@ export const differenceWith = <A>(isEquivalent: (self: A, that: A) => boolean):
7473
7635
 
7474
7636
  /**
7475
7637
  * Computes elements in the first array that are not in the second, using
7476
- * `Equal.equivalence()`.
7638
+ * `Equal.asEquivalence()`.
7477
7639
  *
7478
7640
  * **When to use**
7479
7641
  *
7480
7642
  * Use when you need to keep values from the first array that are absent from
7481
- * the second and the default `Equal.equivalence()` comparison is appropriate.
7643
+ * the second and the default `Equal.asEquivalence()` comparison is appropriate.
7482
7644
  *
7483
7645
  * **Example** (Computing array differences)
7484
7646
  *
@@ -7499,12 +7661,12 @@ export const differenceWith = <A>(isEquivalent: (self: A, that: A) => boolean):
7499
7661
  export const difference: {
7500
7662
  /**
7501
7663
  * Computes elements in the first array that are not in the second, using
7502
- * `Equal.equivalence()`.
7664
+ * `Equal.asEquivalence()`.
7503
7665
  *
7504
7666
  * **When to use**
7505
7667
  *
7506
7668
  * Use when you need to keep values from the first array that are absent from
7507
- * the second and the default `Equal.equivalence()` comparison is appropriate.
7669
+ * the second and the default `Equal.asEquivalence()` comparison is appropriate.
7508
7670
  *
7509
7671
  * **Example** (Computing array differences)
7510
7672
  *
@@ -7525,12 +7687,12 @@ export const difference: {
7525
7687
  <A>(that: Iterable<A>): (self: Iterable<A>) => Array<A>
7526
7688
  /**
7527
7689
  * Computes elements in the first array that are not in the second, using
7528
- * `Equal.equivalence()`.
7690
+ * `Equal.asEquivalence()`.
7529
7691
  *
7530
7692
  * **When to use**
7531
7693
  *
7532
7694
  * Use when you need to keep values from the first array that are absent from
7533
- * the second and the default `Equal.equivalence()` comparison is appropriate.
7695
+ * the second and the default `Equal.asEquivalence()` comparison is appropriate.
7534
7696
  *
7535
7697
  * **Example** (Computing array differences)
7536
7698
  *
@@ -9613,7 +9775,7 @@ export const dedupeWith: {
9613
9775
  )
9614
9776
 
9615
9777
  /**
9616
- * Removes duplicates using `Equal.equivalence()`, preserving the order of the
9778
+ * Removes duplicates using `Equal.asEquivalence()`, preserving the order of the
9617
9779
  * first occurrence.
9618
9780
  *
9619
9781
  * **When to use**
@@ -9753,7 +9915,7 @@ export const dedupeAdjacentWith: {
9753
9915
  })
9754
9916
 
9755
9917
  /**
9756
- * Removes consecutive duplicate elements using `Equal.equivalence()`.
9918
+ * Removes consecutive duplicate elements using `Equal.asEquivalence()`.
9757
9919
  *
9758
9920
  * **When to use**
9759
9921
  *
package/src/Bytes.ts ADDED
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Joins and compares byte sequences stored in `Uint8Array` values.
3
+ *
4
+ * Byte-to-text conversions live in `TextEncoder` / `TextDecoder`, and hex or
5
+ * base64 conversions live in the `Encoding` modules.
6
+ *
7
+ * @stability unstable
8
+ * @since 4.0.6
9
+ */
10
+ import * as Equ from "./Equivalence.ts"
11
+ import * as order from "./Order.ts"
12
+
13
+ /**
14
+ * Joins byte chunks into one new `Uint8Array`.
15
+ *
16
+ * **When to use**
17
+ *
18
+ * Use to combine frames, headers, or streamed chunks into a single buffer.
19
+ *
20
+ * **Gotchas**
21
+ *
22
+ * The result is always a new array, even when there is zero or one chunk, so
23
+ * it never aliases an input.
24
+ *
25
+ * **Example** (Joining byte chunks)
26
+ *
27
+ * ```ts import.meta.vitest
28
+ * import { Bytes } from "effect"
29
+ *
30
+ * const bytes = Bytes.concat([new Uint8Array([1, 2]), new Uint8Array([3])])
31
+ * Array.from(bytes) // => [1, 2, 3]
32
+ * ```
33
+ *
34
+ * @stability unstable
35
+ * @category combinators
36
+ * @since 4.0.6
37
+ */
38
+ export const concat = (chunks: ReadonlyArray<Uint8Array>): Uint8Array<ArrayBuffer> => {
39
+ let length = 0
40
+ for (let i = 0; i < chunks.length; i++) {
41
+ length += chunks[i].length
42
+ }
43
+ const out = new Uint8Array(length)
44
+ let offset = 0
45
+ for (let i = 0; i < chunks.length; i++) {
46
+ out.set(chunks[i], offset)
47
+ offset += chunks[i].length
48
+ }
49
+ return out
50
+ }
51
+
52
+ /**
53
+ * Compares byte sequences for equality, byte by byte.
54
+ *
55
+ * **Gotchas**
56
+ *
57
+ * This returns as soon as a byte differs, so it is not constant-time. Do not
58
+ * use it to compare secrets.
59
+ *
60
+ * **Example** (Comparing byte sequences)
61
+ *
62
+ * ```ts import.meta.vitest
63
+ * import { Bytes } from "effect"
64
+ *
65
+ * Bytes.Equivalence(new Uint8Array([1, 2]), new Uint8Array([1, 2])) // => true
66
+ * Bytes.Equivalence(new Uint8Array([1, 2]), new Uint8Array([1])) // => false
67
+ * ```
68
+ *
69
+ * @stability unstable
70
+ * @category instances
71
+ * @since 4.0.6
72
+ */
73
+ export const Equivalence: Equ.Equivalence<Uint8Array> = Equ.make((self, that) => {
74
+ if (self.length !== that.length) {
75
+ return false
76
+ }
77
+ for (let i = 0; i < self.length; i++) {
78
+ if (self[i] !== that[i]) {
79
+ return false
80
+ }
81
+ }
82
+ return true
83
+ })
84
+
85
+ /**
86
+ * Orders byte sequences lexicographically by unsigned byte value, placing a
87
+ * prefix before any longer sequence that starts with it.
88
+ *
89
+ * **Example** (Sorting byte sequences)
90
+ *
91
+ * ```ts import.meta.vitest
92
+ * import { Bytes } from "effect"
93
+ *
94
+ * Bytes.Order(new Uint8Array([1, 2]), new Uint8Array([1, 3])) // => -1
95
+ * Bytes.Order(new Uint8Array([2]), new Uint8Array([1, 9])) // => 1
96
+ * Bytes.Order(new Uint8Array([1]), new Uint8Array([1, 0])) // => -1
97
+ * ```
98
+ *
99
+ * @stability unstable
100
+ * @category instances
101
+ * @since 4.0.6
102
+ */
103
+ export const Order: order.Order<Uint8Array> = order.make((self, that) => {
104
+ const length = Math.min(self.length, that.length)
105
+ for (let i = 0; i < length; i++) {
106
+ if (self[i] !== that[i]) {
107
+ return self[i] < that[i] ? -1 : 1
108
+ }
109
+ }
110
+ return self.length < that.length ? -1 : self.length > that.length ? 1 : 0
111
+ })