effect 4.0.7 → 4.1.1

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 (863) hide show
  1. package/README.md +31 -1
  2. package/THIRD_PARTY_NOTICES.md +62 -0
  3. package/dist/BigDecimal.d.ts +139 -7
  4. package/dist/BigDecimal.d.ts.map +1 -1
  5. package/dist/BigDecimal.js +86 -14
  6. package/dist/BigDecimal.js.map +1 -1
  7. package/dist/Channel.d.ts +12 -6
  8. package/dist/Channel.d.ts.map +1 -1
  9. package/dist/Channel.js +9 -3
  10. package/dist/Channel.js.map +1 -1
  11. package/dist/Config.d.ts +7 -1
  12. package/dist/Config.d.ts.map +1 -1
  13. package/dist/Config.js.map +1 -1
  14. package/dist/Context.d.ts +18 -1
  15. package/dist/Context.d.ts.map +1 -1
  16. package/dist/Context.js +27 -8
  17. package/dist/Context.js.map +1 -1
  18. package/dist/Cron.d.ts +81 -11
  19. package/dist/Cron.d.ts.map +1 -1
  20. package/dist/Cron.js +101 -26
  21. package/dist/Cron.js.map +1 -1
  22. package/dist/Duration.d.ts +78 -0
  23. package/dist/Duration.d.ts.map +1 -1
  24. package/dist/Duration.js +123 -0
  25. package/dist/Duration.js.map +1 -1
  26. package/dist/Effect.d.ts +164 -7
  27. package/dist/Effect.d.ts.map +1 -1
  28. package/dist/Effect.js +11 -1
  29. package/dist/Effect.js.map +1 -1
  30. package/dist/Equal.d.ts +2 -2
  31. package/dist/Equal.d.ts.map +1 -1
  32. package/dist/Equal.js +3 -3
  33. package/dist/Equal.js.map +1 -1
  34. package/dist/FileSystem.d.ts +59 -4
  35. package/dist/FileSystem.d.ts.map +1 -1
  36. package/dist/FileSystem.js +9 -2
  37. package/dist/FileSystem.js.map +1 -1
  38. package/dist/Glob.d.ts +165 -0
  39. package/dist/Glob.d.ts.map +1 -0
  40. package/dist/Glob.js +127 -0
  41. package/dist/Glob.js.map +1 -0
  42. package/dist/Hash.d.ts +3 -2
  43. package/dist/Hash.d.ts.map +1 -1
  44. package/dist/Hash.js +5 -4
  45. package/dist/Hash.js.map +1 -1
  46. package/dist/Iterable.d.ts.map +1 -1
  47. package/dist/Iterable.js +11 -8
  48. package/dist/Iterable.js.map +1 -1
  49. package/dist/Match.d.ts +86 -0
  50. package/dist/Match.d.ts.map +1 -1
  51. package/dist/Match.js +72 -0
  52. package/dist/Match.js.map +1 -1
  53. package/dist/Path.d.ts.map +1 -1
  54. package/dist/Path.js +5 -1
  55. package/dist/Path.js.map +1 -1
  56. package/dist/Pool.d.ts +51 -0
  57. package/dist/Pool.d.ts.map +1 -1
  58. package/dist/Pool.js +61 -10
  59. package/dist/Pool.js.map +1 -1
  60. package/dist/Random.d.ts.map +1 -1
  61. package/dist/Random.js +3 -3
  62. package/dist/Random.js.map +1 -1
  63. package/dist/RcMap.d.ts.map +1 -1
  64. package/dist/RcMap.js +8 -2
  65. package/dist/RcMap.js.map +1 -1
  66. package/dist/Schedule.d.ts +18 -1
  67. package/dist/Schedule.d.ts.map +1 -1
  68. package/dist/Schedule.js +7 -2
  69. package/dist/Schedule.js.map +1 -1
  70. package/dist/Schema.d.ts +668 -42
  71. package/dist/Schema.d.ts.map +1 -1
  72. package/dist/Schema.js +652 -1
  73. package/dist/Schema.js.map +1 -1
  74. package/dist/SchemaGetter.d.ts +6 -1
  75. package/dist/SchemaGetter.d.ts.map +1 -1
  76. package/dist/SchemaGetter.js +22 -11
  77. package/dist/SchemaGetter.js.map +1 -1
  78. package/dist/SchemaRepresentation.d.ts +18 -2
  79. package/dist/SchemaRepresentation.d.ts.map +1 -1
  80. package/dist/SchemaRepresentation.js +20 -2
  81. package/dist/SchemaRepresentation.js.map +1 -1
  82. package/dist/SchemaTransformation.d.ts +10 -5
  83. package/dist/SchemaTransformation.d.ts.map +1 -1
  84. package/dist/SchemaTransformation.js +8 -5
  85. package/dist/SchemaTransformation.js.map +1 -1
  86. package/dist/ScopedCache.d.ts.map +1 -1
  87. package/dist/ScopedCache.js +5 -7
  88. package/dist/ScopedCache.js.map +1 -1
  89. package/dist/Semaphore.d.ts +130 -0
  90. package/dist/Semaphore.d.ts.map +1 -1
  91. package/dist/Semaphore.js +40 -0
  92. package/dist/Semaphore.js.map +1 -1
  93. package/dist/Stream.d.ts +13 -4
  94. package/dist/Stream.d.ts.map +1 -1
  95. package/dist/Stream.js +9 -0
  96. package/dist/Stream.js.map +1 -1
  97. package/dist/Terminal.d.ts +18 -1
  98. package/dist/Terminal.d.ts.map +1 -1
  99. package/dist/Terminal.js +1 -1
  100. package/dist/Terminal.js.map +1 -1
  101. package/dist/ai/AiError.d.ts +43 -116
  102. package/dist/ai/AiError.d.ts.map +1 -1
  103. package/dist/ai/AiError.js +53 -72
  104. package/dist/ai/AiError.js.map +1 -1
  105. package/dist/ai/Decision.d.ts +196 -15
  106. package/dist/ai/Decision.d.ts.map +1 -1
  107. package/dist/ai/Decision.js +130 -0
  108. package/dist/ai/Decision.js.map +1 -1
  109. package/dist/ai/DecisionModel.d.ts +54 -13
  110. package/dist/ai/DecisionModel.d.ts.map +1 -1
  111. package/dist/ai/DecisionModel.js +123 -12
  112. package/dist/ai/DecisionModel.js.map +1 -1
  113. package/dist/ai/McpClient.d.ts +171 -19
  114. package/dist/ai/McpClient.d.ts.map +1 -1
  115. package/dist/ai/McpClient.js +277 -66
  116. package/dist/ai/McpClient.js.map +1 -1
  117. package/dist/ai/McpSchema.d.ts +108 -0
  118. package/dist/ai/McpSchema.d.ts.map +1 -1
  119. package/dist/ai/McpSchema.js +99 -0
  120. package/dist/ai/McpSchema.js.map +1 -1
  121. package/dist/ai/McpServer.d.ts +744 -29
  122. package/dist/ai/McpServer.d.ts.map +1 -1
  123. package/dist/ai/McpServer.js +763 -136
  124. package/dist/ai/McpServer.js.map +1 -1
  125. package/dist/ai/McpTest.d.ts +130 -0
  126. package/dist/ai/McpTest.d.ts.map +1 -0
  127. package/dist/ai/McpTest.js +237 -0
  128. package/dist/ai/McpTest.js.map +1 -0
  129. package/dist/ai/Prompt.d.ts.map +1 -1
  130. package/dist/ai/Prompt.js +20 -11
  131. package/dist/ai/Prompt.js.map +1 -1
  132. package/dist/ai/Response.d.ts +1 -25
  133. package/dist/ai/Response.d.ts.map +1 -1
  134. package/dist/ai/Response.js +1 -10
  135. package/dist/ai/Response.js.map +1 -1
  136. package/dist/ai/Tool.d.ts +19 -1
  137. package/dist/ai/Tool.d.ts.map +1 -1
  138. package/dist/ai/Tool.js +5 -7
  139. package/dist/ai/Tool.js.map +1 -1
  140. package/dist/ai/index.d.ts +5 -0
  141. package/dist/ai/index.d.ts.map +1 -1
  142. package/dist/ai/index.js +5 -0
  143. package/dist/ai/index.js.map +1 -1
  144. package/dist/ai/internal/mcpCore.js +89 -15
  145. package/dist/ai/internal/mcpCore.js.map +1 -1
  146. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +7 -6
  147. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  148. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +7 -6
  149. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  150. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +7 -6
  151. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  152. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +7 -6
  153. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  154. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +60 -17
  155. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  156. package/dist/ai/internal/mcpProtocol.js +25 -0
  157. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  158. package/dist/ai/internal/mcpRuntime.js +8 -6
  159. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  160. package/dist/ai/internal/mcpSkills.d.ts +2 -0
  161. package/dist/ai/internal/mcpSkills.d.ts.map +1 -0
  162. package/dist/ai/internal/mcpSkills.js +428 -0
  163. package/dist/ai/internal/mcpSkills.js.map +1 -0
  164. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  165. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  166. package/dist/cli/Argument.d.ts +6 -0
  167. package/dist/cli/Argument.d.ts.map +1 -1
  168. package/dist/cli/Argument.js +2 -0
  169. package/dist/cli/Argument.js.map +1 -1
  170. package/dist/cli/CliOutput.d.ts +65 -1
  171. package/dist/cli/CliOutput.d.ts.map +1 -1
  172. package/dist/cli/CliOutput.js +94 -37
  173. package/dist/cli/CliOutput.js.map +1 -1
  174. package/dist/cli/Command.d.ts +23 -0
  175. package/dist/cli/Command.d.ts.map +1 -1
  176. package/dist/cli/Command.js +8 -0
  177. package/dist/cli/Command.js.map +1 -1
  178. package/dist/cli/Flag.d.ts +107 -0
  179. package/dist/cli/Flag.d.ts.map +1 -1
  180. package/dist/cli/Flag.js +37 -0
  181. package/dist/cli/Flag.js.map +1 -1
  182. package/dist/cli/HelpDoc.d.ts +15 -1
  183. package/dist/cli/HelpDoc.d.ts.map +1 -1
  184. package/dist/cli/Param.d.ts +6 -0
  185. package/dist/cli/Param.d.ts.map +1 -1
  186. package/dist/cli/Param.js +2 -0
  187. package/dist/cli/Param.js.map +1 -1
  188. package/dist/cli/Primitive.d.ts +14 -0
  189. package/dist/cli/Primitive.d.ts.map +1 -1
  190. package/dist/cli/Primitive.js +15 -1
  191. package/dist/cli/Primitive.js.map +1 -1
  192. package/dist/cli/Prompt.d.ts +1 -0
  193. package/dist/cli/Prompt.d.ts.map +1 -1
  194. package/dist/cli/Prompt.js +1 -0
  195. package/dist/cli/Prompt.js.map +1 -1
  196. package/dist/cli/internal/help.d.ts.map +1 -1
  197. package/dist/cli/internal/help.js +17 -10
  198. package/dist/cli/internal/help.js.map +1 -1
  199. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  200. package/dist/cluster/ClusterWorkflowEngine.js +15 -5
  201. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  202. package/dist/cluster/Reply.d.ts +1 -1
  203. package/dist/cluster/Reply.d.ts.map +1 -1
  204. package/dist/cluster/Reply.js.map +1 -1
  205. package/dist/cluster/Sharding.d.ts.map +1 -1
  206. package/dist/cluster/Sharding.js +93 -28
  207. package/dist/cluster/Sharding.js.map +1 -1
  208. package/dist/cluster/ShardingConfig.d.ts +72 -6
  209. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  210. package/dist/cluster/ShardingConfig.js +4 -0
  211. package/dist/cluster/ShardingConfig.js.map +1 -1
  212. package/dist/cluster/SingleRunner.d.ts +3 -3
  213. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  214. package/dist/cluster/SingleRunner.js +1 -1
  215. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  216. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  217. package/dist/cluster/SqlMessageStorage.js +34 -7
  218. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  219. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  220. package/dist/cluster/SqlRunnerStorage.js +23 -8
  221. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  222. package/dist/cluster/internal/entityManager.js +15 -7
  223. package/dist/cluster/internal/entityManager.js.map +1 -1
  224. package/dist/crypto/Aead.d.ts +323 -0
  225. package/dist/crypto/Aead.d.ts.map +1 -0
  226. package/dist/crypto/Aead.js +331 -0
  227. package/dist/crypto/Aead.js.map +1 -0
  228. package/dist/crypto/Cipher.d.ts +236 -0
  229. package/dist/crypto/Cipher.d.ts.map +1 -0
  230. package/dist/crypto/Cipher.js +233 -0
  231. package/dist/crypto/Cipher.js.map +1 -0
  232. package/dist/crypto/CryptoError.d.ts +212 -0
  233. package/dist/crypto/CryptoError.d.ts.map +1 -0
  234. package/dist/crypto/CryptoError.js +202 -0
  235. package/dist/crypto/CryptoError.js.map +1 -0
  236. package/dist/crypto/Digest.d.ts +143 -0
  237. package/dist/crypto/Digest.d.ts.map +1 -0
  238. package/dist/crypto/Digest.js +146 -0
  239. package/dist/crypto/Digest.js.map +1 -0
  240. package/dist/crypto/Kdf.d.ts +220 -0
  241. package/dist/crypto/Kdf.d.ts.map +1 -0
  242. package/dist/crypto/Kdf.js +212 -0
  243. package/dist/crypto/Kdf.js.map +1 -0
  244. package/dist/crypto/KeyAgreement.d.ts +324 -0
  245. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  246. package/dist/crypto/KeyAgreement.js +303 -0
  247. package/dist/crypto/KeyAgreement.js.map +1 -0
  248. package/dist/crypto/KeyFormat.d.ts +341 -0
  249. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  250. package/dist/crypto/KeyFormat.js +556 -0
  251. package/dist/crypto/KeyFormat.js.map +1 -0
  252. package/dist/crypto/KeyWrap.d.ts +390 -0
  253. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  254. package/dist/crypto/KeyWrap.js +381 -0
  255. package/dist/crypto/KeyWrap.js.map +1 -0
  256. package/dist/crypto/Mac.d.ts +278 -0
  257. package/dist/crypto/Mac.d.ts.map +1 -0
  258. package/dist/crypto/Mac.js +288 -0
  259. package/dist/crypto/Mac.js.map +1 -0
  260. package/dist/crypto/SecureRandom.d.ts +340 -0
  261. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  262. package/dist/crypto/SecureRandom.js +257 -0
  263. package/dist/crypto/SecureRandom.js.map +1 -0
  264. package/dist/crypto/Signature.d.ts +449 -0
  265. package/dist/crypto/Signature.d.ts.map +1 -0
  266. package/dist/crypto/Signature.js +484 -0
  267. package/dist/crypto/Signature.js.map +1 -0
  268. package/dist/crypto/WebCrypto.d.ts +80 -0
  269. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  270. package/dist/crypto/WebCrypto.js +63 -0
  271. package/dist/crypto/WebCrypto.js.map +1 -0
  272. package/dist/crypto/index.d.ts +65 -0
  273. package/dist/crypto/index.d.ts.map +1 -0
  274. package/dist/crypto/index.js +66 -0
  275. package/dist/crypto/index.js.map +1 -0
  276. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  277. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  278. package/dist/crypto/internal/asymmetric.js +210 -0
  279. package/dist/crypto/internal/asymmetric.js.map +1 -0
  280. package/dist/crypto/internal/chacha.d.ts +46 -0
  281. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  282. package/dist/crypto/internal/chacha.js +885 -0
  283. package/dist/crypto/internal/chacha.js.map +1 -0
  284. package/dist/crypto/internal/der.d.ts +6 -0
  285. package/dist/crypto/internal/der.d.ts.map +1 -0
  286. package/dist/crypto/internal/der.js +86 -0
  287. package/dist/crypto/internal/der.js.map +1 -0
  288. package/dist/crypto/internal/digest.d.ts +2 -0
  289. package/dist/crypto/internal/digest.d.ts.map +1 -0
  290. package/dist/crypto/internal/digest.js +15 -0
  291. package/dist/crypto/internal/digest.js.map +1 -0
  292. package/dist/crypto/internal/key.d.ts +2 -0
  293. package/dist/crypto/internal/key.d.ts.map +1 -0
  294. package/dist/crypto/internal/key.js +171 -0
  295. package/dist/crypto/internal/key.js.map +1 -0
  296. package/dist/crypto/internal/md5.d.ts +39 -0
  297. package/dist/crypto/internal/md5.d.ts.map +1 -0
  298. package/dist/crypto/internal/md5.js +179 -0
  299. package/dist/crypto/internal/md5.js.map +1 -0
  300. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  301. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  302. package/dist/crypto/internal/webCrypto.js +111 -0
  303. package/dist/crypto/internal/webCrypto.js.map +1 -0
  304. package/dist/encoding/Base64Url.d.ts.map +1 -1
  305. package/dist/encoding/Base64Url.js +29 -5
  306. package/dist/encoding/Base64Url.js.map +1 -1
  307. package/dist/encoding/Csv.d.ts +608 -0
  308. package/dist/encoding/Csv.d.ts.map +1 -0
  309. package/dist/encoding/Csv.js +718 -0
  310. package/dist/encoding/Csv.js.map +1 -0
  311. package/dist/encoding/Hex.d.ts +3 -2
  312. package/dist/encoding/Hex.d.ts.map +1 -1
  313. package/dist/encoding/Hex.js +3 -2
  314. package/dist/encoding/Hex.js.map +1 -1
  315. package/dist/encoding/Ndjson.d.ts +5 -4
  316. package/dist/encoding/Ndjson.d.ts.map +1 -1
  317. package/dist/encoding/Ndjson.js +6 -5
  318. package/dist/encoding/Ndjson.js.map +1 -1
  319. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  320. package/dist/encoding/SchemaBinary.js +42 -4
  321. package/dist/encoding/SchemaBinary.js.map +1 -1
  322. package/dist/encoding/Sse.d.ts +3 -1
  323. package/dist/encoding/Sse.d.ts.map +1 -1
  324. package/dist/encoding/Sse.js +5 -3
  325. package/dist/encoding/Sse.js.map +1 -1
  326. package/dist/encoding/Toml.d.ts +17 -3
  327. package/dist/encoding/Toml.d.ts.map +1 -1
  328. package/dist/encoding/Toml.js +104 -16
  329. package/dist/encoding/Toml.js.map +1 -1
  330. package/dist/encoding/Yaml.d.ts +8 -1
  331. package/dist/encoding/Yaml.d.ts.map +1 -1
  332. package/dist/encoding/Yaml.js +54 -18
  333. package/dist/encoding/Yaml.js.map +1 -1
  334. package/dist/encoding/index.d.ts +5 -0
  335. package/dist/encoding/index.d.ts.map +1 -1
  336. package/dist/encoding/index.js +5 -0
  337. package/dist/encoding/index.js.map +1 -1
  338. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  339. package/dist/eventlog/EventJournal.js +6 -3
  340. package/dist/eventlog/EventJournal.js.map +1 -1
  341. package/dist/eventlog/EventLog.d.ts +126 -4
  342. package/dist/eventlog/EventLog.d.ts.map +1 -1
  343. package/dist/eventlog/EventLog.js +207 -12
  344. package/dist/eventlog/EventLog.js.map +1 -1
  345. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  346. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  347. package/dist/eventlog/EventLogEncryption.js +83 -64
  348. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  349. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  350. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  351. package/dist/eventlog/EventLogMessage.js +217 -1
  352. package/dist/eventlog/EventLogMessage.js.map +1 -1
  353. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  354. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  355. package/dist/eventlog/EventLogRemote.js +186 -16
  356. package/dist/eventlog/EventLogRemote.js.map +1 -1
  357. package/dist/eventlog/EventLogServer.d.ts +10 -1
  358. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  359. package/dist/eventlog/EventLogServer.js +45 -22
  360. package/dist/eventlog/EventLogServer.js.map +1 -1
  361. package/dist/eventlog/EventLogServerEncrypted.d.ts +336 -5
  362. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  363. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  364. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  365. package/dist/eventlog/EventLogServerUnencrypted.d.ts +17 -0
  366. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  367. package/dist/eventlog/EventLogServerUnencrypted.js +14 -2
  368. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  369. package/dist/eventlog/EventLogSessionAuth.d.ts +26 -3
  370. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  371. package/dist/eventlog/EventLogSessionAuth.js +63 -64
  372. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  373. package/dist/eventlog/EventRow.d.ts +4 -0
  374. package/dist/eventlog/EventRow.d.ts.map +1 -1
  375. package/dist/eventlog/EventRow.js +12 -2
  376. package/dist/eventlog/EventRow.js.map +1 -1
  377. package/dist/eventlog/SqlEventJournal.js +2 -2
  378. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  379. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  380. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  381. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  382. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  383. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  384. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  385. package/dist/eventlog/internal/batches.d.ts +12 -0
  386. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  387. package/dist/eventlog/internal/batches.js +26 -0
  388. package/dist/eventlog/internal/batches.js.map +1 -0
  389. package/dist/eventlog/internal/compaction.d.ts +38 -0
  390. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  391. package/dist/eventlog/internal/compaction.js +33 -0
  392. package/dist/eventlog/internal/compaction.js.map +1 -0
  393. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  394. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  395. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  396. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  397. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  398. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  399. package/dist/graphql/GraphQLClient.d.ts +3 -1
  400. package/dist/graphql/GraphQLClient.d.ts.map +1 -1
  401. package/dist/graphql/GraphQLClient.js.map +1 -1
  402. package/dist/graphql/GraphQLClientError.d.ts +14 -9
  403. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  404. package/dist/graphql/GraphQLClientError.js +14 -21
  405. package/dist/graphql/GraphQLClientError.js.map +1 -1
  406. package/dist/graphql/GraphQLProtocol.d.ts +12 -3
  407. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  408. package/dist/graphql/GraphQLProtocol.js +4 -1
  409. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  410. package/dist/http/Cookies.d.ts +172 -0
  411. package/dist/http/Cookies.d.ts.map +1 -1
  412. package/dist/http/Cookies.js +143 -1
  413. package/dist/http/Cookies.js.map +1 -1
  414. package/dist/http/FetchHttpClient.d.ts +26 -2
  415. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  416. package/dist/http/FetchHttpClient.js +78 -15
  417. package/dist/http/FetchHttpClient.js.map +1 -1
  418. package/dist/http/HttpClient.d.ts +268 -15
  419. package/dist/http/HttpClient.d.ts.map +1 -1
  420. package/dist/http/HttpClient.js +140 -7
  421. package/dist/http/HttpClient.js.map +1 -1
  422. package/dist/http/HttpClientRequest.d.ts +9 -5
  423. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  424. package/dist/http/HttpClientRequest.js +2 -3
  425. package/dist/http/HttpClientRequest.js.map +1 -1
  426. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  427. package/dist/http/HttpClientResponse.js +3 -2
  428. package/dist/http/HttpClientResponse.js.map +1 -1
  429. package/dist/http/HttpMethod.d.ts +7 -1
  430. package/dist/http/HttpMethod.d.ts.map +1 -1
  431. package/dist/http/HttpMethod.js +3 -8
  432. package/dist/http/HttpMethod.js.map +1 -1
  433. package/dist/http/HttpServerRequest.d.ts +5 -2
  434. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  435. package/dist/http/HttpServerRequest.js +44 -39
  436. package/dist/http/HttpServerRequest.js.map +1 -1
  437. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  438. package/dist/http/HttpServerResponse.js +3 -2
  439. package/dist/http/HttpServerResponse.js.map +1 -1
  440. package/dist/http/HttpTraceContext.d.ts +2 -1
  441. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  442. package/dist/http/HttpTraceContext.js +7 -5
  443. package/dist/http/HttpTraceContext.js.map +1 -1
  444. package/dist/http/ProblemDetails.d.ts +96 -0
  445. package/dist/http/ProblemDetails.d.ts.map +1 -0
  446. package/dist/http/ProblemDetails.js +98 -0
  447. package/dist/http/ProblemDetails.js.map +1 -0
  448. package/dist/http/index.d.ts +5 -0
  449. package/dist/http/index.d.ts.map +1 -1
  450. package/dist/http/index.js +5 -0
  451. package/dist/http/index.js.map +1 -1
  452. package/dist/http/internal/decompression.js +3 -2
  453. package/dist/http/internal/decompression.js.map +1 -1
  454. package/dist/http/internal/mimeTypes.d.ts +4 -1
  455. package/dist/http/internal/mimeTypes.d.ts.map +1 -1
  456. package/dist/http/internal/mimeTypes.js +4 -1
  457. package/dist/http/internal/mimeTypes.js.map +1 -1
  458. package/dist/http/internal/urlParams.js +8 -0
  459. package/dist/http/internal/urlParams.js.map +1 -1
  460. package/dist/http-api/HttpApiBuilder.js +19 -5
  461. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  462. package/dist/http-api/HttpApiClient.d.ts +63 -0
  463. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  464. package/dist/http-api/HttpApiClient.js +51 -0
  465. package/dist/http-api/HttpApiClient.js.map +1 -1
  466. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  467. package/dist/http-api/HttpApiEndpoint.js +14 -5
  468. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  469. package/dist/http-api/HttpApiError.d.ts +185 -13
  470. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  471. package/dist/http-api/HttpApiError.js +128 -0
  472. package/dist/http-api/HttpApiError.js.map +1 -1
  473. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  474. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  475. package/dist/http-api/HttpApiMiddleware.js +85 -1
  476. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  477. package/dist/http-api/HttpApiSchema.d.ts +76 -14
  478. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  479. package/dist/http-api/HttpApiSchema.js +54 -1
  480. package/dist/http-api/HttpApiSchema.js.map +1 -1
  481. package/dist/index.d.ts +5 -5
  482. package/dist/index.d.ts.map +1 -1
  483. package/dist/index.js +5 -5
  484. package/dist/index.js.map +1 -1
  485. package/dist/internal/dateTime.js +49 -24
  486. package/dist/internal/dateTime.js.map +1 -1
  487. package/dist/internal/effect.js +35 -14
  488. package/dist/internal/effect.js.map +1 -1
  489. package/dist/internal/glob.d.ts +2 -0
  490. package/dist/internal/glob.d.ts.map +1 -0
  491. package/dist/internal/glob.js +808 -0
  492. package/dist/internal/glob.js.map +1 -0
  493. package/dist/internal/graphql.js +21 -7
  494. package/dist/internal/graphql.js.map +1 -1
  495. package/dist/internal/graphqlHeaders.d.ts +7 -0
  496. package/dist/internal/graphqlHeaders.d.ts.map +1 -1
  497. package/dist/internal/graphqlHeaders.js +11 -0
  498. package/dist/internal/graphqlHeaders.js.map +1 -1
  499. package/dist/internal/matcher.js +10 -0
  500. package/dist/internal/matcher.js.map +1 -1
  501. package/dist/internal/persistence.js +9 -0
  502. package/dist/internal/persistence.js.map +1 -1
  503. package/dist/internal/rcRef.js +4 -1
  504. package/dist/internal/rcRef.js.map +1 -1
  505. package/dist/internal/request.js +29 -42
  506. package/dist/internal/request.js.map +1 -1
  507. package/dist/internal/schema/fromJsonSchemaDocument.js +7 -8
  508. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  509. package/dist/internal/schema/toCodeDocument.js +6 -3
  510. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  511. package/dist/internal/trie.js +42 -13
  512. package/dist/internal/trie.js.map +1 -1
  513. package/dist/internal/ulid.js +41 -0
  514. package/dist/internal/ulid.js.map +1 -1
  515. package/dist/internal/uuid.js +52 -8
  516. package/dist/internal/uuid.js.map +1 -1
  517. package/dist/internal/version.js +1 -1
  518. package/dist/jose/JoseError.d.ts +285 -0
  519. package/dist/jose/JoseError.d.ts.map +1 -0
  520. package/dist/jose/JoseError.js +269 -0
  521. package/dist/jose/JoseError.js.map +1 -0
  522. package/dist/jose/Jwe.d.ts +128 -0
  523. package/dist/jose/Jwe.d.ts.map +1 -0
  524. package/dist/jose/Jwe.js +134 -0
  525. package/dist/jose/Jwe.js.map +1 -0
  526. package/dist/jose/Jwk.d.ts +597 -0
  527. package/dist/jose/Jwk.d.ts.map +1 -0
  528. package/dist/jose/Jwk.js +503 -0
  529. package/dist/jose/Jwk.js.map +1 -0
  530. package/dist/jose/Jwks.d.ts +236 -0
  531. package/dist/jose/Jwks.d.ts.map +1 -0
  532. package/dist/jose/Jwks.js +306 -0
  533. package/dist/jose/Jwks.js.map +1 -0
  534. package/dist/jose/Jws.d.ts +177 -0
  535. package/dist/jose/Jws.d.ts.map +1 -0
  536. package/dist/jose/Jws.js +183 -0
  537. package/dist/jose/Jws.js.map +1 -0
  538. package/dist/jose/Jwt.d.ts +270 -0
  539. package/dist/jose/Jwt.d.ts.map +1 -0
  540. package/dist/jose/Jwt.js +293 -0
  541. package/dist/jose/Jwt.js.map +1 -0
  542. package/dist/jose/index.d.ts +51 -0
  543. package/dist/jose/index.d.ts.map +1 -0
  544. package/dist/jose/index.js +52 -0
  545. package/dist/jose/index.js.map +1 -0
  546. package/dist/jose/internal/compact.d.ts +2 -0
  547. package/dist/jose/internal/compact.d.ts.map +1 -0
  548. package/dist/jose/internal/compact.js +179 -0
  549. package/dist/jose/internal/compact.js.map +1 -0
  550. package/dist/net/Host.d.ts.map +1 -1
  551. package/dist/net/Host.js +5 -10
  552. package/dist/net/Host.js.map +1 -1
  553. package/dist/observability/Otlp.d.ts +15 -4
  554. package/dist/observability/Otlp.d.ts.map +1 -1
  555. package/dist/observability/Otlp.js +10 -0
  556. package/dist/observability/Otlp.js.map +1 -1
  557. package/dist/observability/OtlpResource.d.ts +7 -0
  558. package/dist/observability/OtlpResource.d.ts.map +1 -1
  559. package/dist/observability/OtlpResource.js +11 -1
  560. package/dist/observability/OtlpResource.js.map +1 -1
  561. package/dist/observability/OtlpSerialization.d.ts +1 -1
  562. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  563. package/dist/observability/OtlpSerialization.js +10 -4
  564. package/dist/observability/OtlpSerialization.js.map +1 -1
  565. package/dist/observability/internal/otlpProtobuf.js +3 -3
  566. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  567. package/dist/observability/internal/protobuf.js +6 -0
  568. package/dist/observability/internal/protobuf.js.map +1 -1
  569. package/dist/persistence/CircuitBreaker.d.ts +98 -38
  570. package/dist/persistence/CircuitBreaker.d.ts.map +1 -1
  571. package/dist/persistence/CircuitBreaker.js +67 -29
  572. package/dist/persistence/CircuitBreaker.js.map +1 -1
  573. package/dist/persistence/KeyValueStore.d.ts +47 -2
  574. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  575. package/dist/persistence/KeyValueStore.js +129 -18
  576. package/dist/persistence/KeyValueStore.js.map +1 -1
  577. package/dist/persistence/PersistedQueue.d.ts +9 -0
  578. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  579. package/dist/persistence/PersistedQueue.js +94 -52
  580. package/dist/persistence/PersistedQueue.js.map +1 -1
  581. package/dist/persistence/Persistence.d.ts +10 -4
  582. package/dist/persistence/Persistence.d.ts.map +1 -1
  583. package/dist/persistence/Persistence.js +18 -11
  584. package/dist/persistence/Persistence.js.map +1 -1
  585. package/dist/persistence/RateLimiter.d.ts +8 -0
  586. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  587. package/dist/persistence/RateLimiter.js +63 -12
  588. package/dist/persistence/RateLimiter.js.map +1 -1
  589. package/dist/persistence/index.d.ts +1 -1
  590. package/dist/persistence/index.js +1 -1
  591. package/dist/process/ChildProcess.d.ts +207 -67
  592. package/dist/process/ChildProcess.d.ts.map +1 -1
  593. package/dist/process/ChildProcess.js +56 -158
  594. package/dist/process/ChildProcess.js.map +1 -1
  595. package/dist/process/ChildProcessSpawner.d.ts +5 -0
  596. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  597. package/dist/process/ChildProcessSpawner.js.map +1 -1
  598. package/dist/process/CommandLine.d.ts +294 -0
  599. package/dist/process/CommandLine.d.ts.map +1 -0
  600. package/dist/process/CommandLine.js +481 -0
  601. package/dist/process/CommandLine.js.map +1 -0
  602. package/dist/process/index.d.ts +5 -0
  603. package/dist/process/index.d.ts.map +1 -1
  604. package/dist/process/index.js +5 -0
  605. package/dist/process/index.js.map +1 -1
  606. package/dist/reactivity/Atom.d.ts +2 -1
  607. package/dist/reactivity/Atom.d.ts.map +1 -1
  608. package/dist/reactivity/Atom.js +3 -4
  609. package/dist/reactivity/Atom.js.map +1 -1
  610. package/dist/reactivity/AtomRegistry.js +17 -7
  611. package/dist/reactivity/AtomRegistry.js.map +1 -1
  612. package/dist/rpc/Rpc.d.ts +1 -1
  613. package/dist/rpc/Rpc.d.ts.map +1 -1
  614. package/dist/rpc/Rpc.js.map +1 -1
  615. package/dist/rpc/RpcClient.d.ts +28 -1
  616. package/dist/rpc/RpcClient.d.ts.map +1 -1
  617. package/dist/rpc/RpcClient.js +78 -27
  618. package/dist/rpc/RpcClient.js.map +1 -1
  619. package/dist/rpc/RpcMessage.d.ts +13 -3
  620. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  621. package/dist/rpc/RpcMessage.js +1 -0
  622. package/dist/rpc/RpcMessage.js.map +1 -1
  623. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  624. package/dist/rpc/RpcSerialization.js +6 -0
  625. package/dist/rpc/RpcSerialization.js.map +1 -1
  626. package/dist/rpc/RpcServer.d.ts +31 -0
  627. package/dist/rpc/RpcServer.d.ts.map +1 -1
  628. package/dist/rpc/RpcServer.js +139 -66
  629. package/dist/rpc/RpcServer.js.map +1 -1
  630. package/dist/schema/Model.d.ts +14 -0
  631. package/dist/schema/Model.d.ts.map +1 -1
  632. package/dist/schema/Model.js +18 -3
  633. package/dist/schema/Model.js.map +1 -1
  634. package/dist/sql/Migrator.d.ts +9 -20
  635. package/dist/sql/Migrator.d.ts.map +1 -1
  636. package/dist/sql/Migrator.js +20 -53
  637. package/dist/sql/Migrator.js.map +1 -1
  638. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  639. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  640. package/dist/sql/MigratorFileSystem.js +57 -0
  641. package/dist/sql/MigratorFileSystem.js.map +1 -0
  642. package/dist/sql/SqlClient.d.ts +38 -3
  643. package/dist/sql/SqlClient.d.ts.map +1 -1
  644. package/dist/sql/SqlClient.js +9 -12
  645. package/dist/sql/SqlClient.js.map +1 -1
  646. package/dist/sql/Statement.d.ts +61 -9
  647. package/dist/sql/Statement.d.ts.map +1 -1
  648. package/dist/sql/Statement.js +24 -33
  649. package/dist/sql/Statement.js.map +1 -1
  650. package/dist/sql/index.js +1 -1
  651. package/dist/testing/index.d.ts +0 -5
  652. package/dist/testing/index.d.ts.map +1 -1
  653. package/dist/testing/index.js +0 -5
  654. package/dist/testing/index.js.map +1 -1
  655. package/dist/workflow/Workflow.d.ts +4 -0
  656. package/dist/workflow/Workflow.d.ts.map +1 -1
  657. package/dist/workflow/Workflow.js.map +1 -1
  658. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  659. package/dist/workflow/WorkflowEngine.js +5 -0
  660. package/dist/workflow/WorkflowEngine.js.map +1 -1
  661. package/dist/workflow/internal/crypto.js +9 -8
  662. package/dist/workflow/internal/crypto.js.map +1 -1
  663. package/package.json +7 -1
  664. package/src/BigDecimal.ts +173 -16
  665. package/src/Channel.ts +17 -11
  666. package/src/Config.ts +7 -1
  667. package/src/Context.ts +34 -10
  668. package/src/Cron.ts +178 -29
  669. package/src/Duration.ts +140 -0
  670. package/src/Effect.ts +914 -85
  671. package/src/Equal.ts +3 -3
  672. package/src/FileSystem.ts +65 -4
  673. package/src/Glob.ts +205 -0
  674. package/src/Hash.ts +5 -4
  675. package/src/Iterable.ts +8 -5
  676. package/src/Match.ts +127 -0
  677. package/src/Path.ts +6 -1
  678. package/src/Pool.ts +75 -16
  679. package/src/Random.ts +3 -3
  680. package/src/RcMap.ts +5 -1
  681. package/src/Schedule.ts +26 -3
  682. package/src/Schema.ts +1191 -63
  683. package/src/SchemaGetter.ts +27 -11
  684. package/src/SchemaRepresentation.ts +23 -2
  685. package/src/SchemaTransformation.ts +10 -5
  686. package/src/ScopedCache.ts +5 -9
  687. package/src/Semaphore.ts +141 -0
  688. package/src/Stream.ts +15 -6
  689. package/src/Terminal.ts +19 -1
  690. package/src/ai/AiError.ts +56 -80
  691. package/src/ai/Decision.ts +257 -6
  692. package/src/ai/DecisionModel.ts +171 -28
  693. package/src/ai/McpClient.ts +488 -91
  694. package/src/ai/McpSchema.ts +119 -0
  695. package/src/ai/McpServer.ts +1525 -319
  696. package/src/ai/McpTest.ts +380 -0
  697. package/src/ai/Prompt.ts +16 -11
  698. package/src/ai/Response.ts +2 -22
  699. package/src/ai/Tool.ts +32 -18
  700. package/src/ai/index.ts +6 -0
  701. package/src/ai/internal/mcpCore.ts +243 -56
  702. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +7 -8
  703. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +7 -8
  704. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +7 -8
  705. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +7 -8
  706. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +56 -17
  707. package/src/ai/internal/mcpProtocol.ts +44 -0
  708. package/src/ai/internal/mcpRuntime.ts +15 -8
  709. package/src/ai/internal/mcpSkills.ts +480 -0
  710. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  711. package/src/cli/Argument.ts +6 -0
  712. package/src/cli/CliOutput.ts +117 -49
  713. package/src/cli/Command.ts +23 -0
  714. package/src/cli/Flag.ts +107 -0
  715. package/src/cli/HelpDoc.ts +18 -1
  716. package/src/cli/Param.ts +6 -0
  717. package/src/cli/Primitive.ts +16 -1
  718. package/src/cli/Prompt.ts +1 -0
  719. package/src/cli/internal/help.ts +21 -9
  720. package/src/cluster/ClusterWorkflowEngine.ts +22 -8
  721. package/src/cluster/Reply.ts +1 -1
  722. package/src/cluster/Sharding.ts +96 -26
  723. package/src/cluster/ShardingConfig.ts +41 -3
  724. package/src/cluster/SingleRunner.ts +3 -3
  725. package/src/cluster/SqlMessageStorage.ts +49 -17
  726. package/src/cluster/SqlRunnerStorage.ts +37 -27
  727. package/src/cluster/internal/entityManager.ts +24 -10
  728. package/src/crypto/Aead.ts +517 -0
  729. package/src/crypto/Cipher.ts +326 -0
  730. package/src/crypto/CryptoError.ts +242 -0
  731. package/src/crypto/Digest.ts +167 -0
  732. package/src/crypto/Kdf.ts +315 -0
  733. package/src/crypto/KeyAgreement.ts +489 -0
  734. package/src/crypto/KeyFormat.ts +741 -0
  735. package/src/crypto/KeyWrap.ts +639 -0
  736. package/src/crypto/Mac.ts +386 -0
  737. package/src/crypto/SecureRandom.ts +459 -0
  738. package/src/crypto/Signature.ts +673 -0
  739. package/src/crypto/WebCrypto.ts +84 -0
  740. package/src/crypto/index.ts +78 -0
  741. package/src/crypto/internal/asymmetric.ts +330 -0
  742. package/src/crypto/internal/chacha.ts +1088 -0
  743. package/src/crypto/internal/der.ts +110 -0
  744. package/src/crypto/internal/digest.ts +16 -0
  745. package/src/crypto/internal/key.ts +242 -0
  746. package/src/crypto/internal/md5.ts +170 -0
  747. package/src/crypto/internal/webCrypto.ts +150 -0
  748. package/src/encoding/Base64Url.ts +32 -5
  749. package/src/encoding/Csv.ts +1298 -0
  750. package/src/encoding/Hex.ts +3 -2
  751. package/src/encoding/Ndjson.ts +6 -5
  752. package/src/encoding/SchemaBinary.ts +40 -4
  753. package/src/encoding/Sse.ts +5 -3
  754. package/src/encoding/Toml.ts +85 -20
  755. package/src/encoding/Yaml.ts +61 -18
  756. package/src/encoding/index.ts +6 -0
  757. package/src/eventlog/EventJournal.ts +4 -3
  758. package/src/eventlog/EventLog.ts +347 -15
  759. package/src/eventlog/EventLogEncryption.ts +118 -110
  760. package/src/eventlog/EventLogMessage.ts +273 -1
  761. package/src/eventlog/EventLogRemote.ts +367 -23
  762. package/src/eventlog/EventLogServer.ts +54 -20
  763. package/src/eventlog/EventLogServerEncrypted.ts +1135 -67
  764. package/src/eventlog/EventLogServerUnencrypted.ts +19 -2
  765. package/src/eventlog/EventLogSessionAuth.ts +82 -70
  766. package/src/eventlog/EventRow.ts +12 -3
  767. package/src/eventlog/SqlEventJournal.ts +2 -2
  768. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  769. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  770. package/src/eventlog/internal/batches.ts +30 -0
  771. package/src/eventlog/internal/compaction.ts +64 -0
  772. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  773. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  774. package/src/graphql/GraphQLClient.ts +3 -1
  775. package/src/graphql/GraphQLClientError.ts +15 -22
  776. package/src/graphql/GraphQLProtocol.ts +12 -3
  777. package/src/http/Cookies.ts +281 -1
  778. package/src/http/FetchHttpClient.ts +88 -16
  779. package/src/http/HttpClient.ts +299 -33
  780. package/src/http/HttpClientRequest.ts +12 -9
  781. package/src/http/HttpClientResponse.ts +3 -2
  782. package/src/http/HttpMethod.ts +10 -2
  783. package/src/http/HttpServerRequest.ts +76 -53
  784. package/src/http/HttpServerResponse.ts +3 -2
  785. package/src/http/HttpTraceContext.ts +7 -4
  786. package/src/http/ProblemDetails.ts +149 -0
  787. package/src/http/index.ts +6 -0
  788. package/src/http/internal/decompression.ts +4 -4
  789. package/src/http/internal/mimeTypes.ts +4 -1
  790. package/src/http/internal/urlParams.ts +8 -0
  791. package/src/http-api/HttpApiBuilder.ts +24 -12
  792. package/src/http-api/HttpApiClient.ts +67 -1
  793. package/src/http-api/HttpApiEndpoint.ts +14 -5
  794. package/src/http-api/HttpApiError.ts +250 -0
  795. package/src/http-api/HttpApiMiddleware.ts +95 -1
  796. package/src/http-api/HttpApiSchema.ts +106 -15
  797. package/src/index.ts +6 -6
  798. package/src/internal/dateTime.ts +54 -24
  799. package/src/internal/effect.ts +40 -18
  800. package/src/internal/glob.ts +952 -0
  801. package/src/internal/graphql.ts +27 -9
  802. package/src/internal/graphqlHeaders.ts +13 -0
  803. package/src/internal/matcher.ts +17 -0
  804. package/src/internal/persistence.ts +11 -0
  805. package/src/internal/rcRef.ts +4 -1
  806. package/src/internal/request.ts +51 -58
  807. package/src/internal/schema/fromJsonSchemaDocument.ts +11 -10
  808. package/src/internal/schema/toCodeDocument.ts +7 -3
  809. package/src/internal/trie.ts +43 -14
  810. package/src/internal/ulid.ts +44 -0
  811. package/src/internal/uuid.ts +57 -16
  812. package/src/internal/version.ts +1 -1
  813. package/src/jose/JoseError.ts +329 -0
  814. package/src/jose/Jwe.ts +196 -0
  815. package/src/jose/Jwk.ts +777 -0
  816. package/src/jose/Jwks.ts +418 -0
  817. package/src/jose/Jws.ts +312 -0
  818. package/src/jose/Jwt.ts +493 -0
  819. package/src/jose/index.ts +58 -0
  820. package/src/jose/internal/compact.ts +195 -0
  821. package/src/net/Host.ts +5 -10
  822. package/src/observability/Otlp.ts +21 -4
  823. package/src/observability/OtlpResource.ts +9 -1
  824. package/src/observability/OtlpSerialization.ts +13 -5
  825. package/src/observability/internal/otlpProtobuf.ts +6 -6
  826. package/src/observability/internal/protobuf.ts +10 -0
  827. package/src/persistence/CircuitBreaker.ts +113 -48
  828. package/src/persistence/KeyValueStore.ts +219 -22
  829. package/src/persistence/PersistedQueue.ts +128 -59
  830. package/src/persistence/Persistence.ts +20 -13
  831. package/src/persistence/RateLimiter.ts +84 -15
  832. package/src/persistence/index.ts +1 -1
  833. package/src/process/ChildProcess.ts +255 -260
  834. package/src/process/ChildProcessSpawner.ts +5 -0
  835. package/src/process/CommandLine.ts +630 -0
  836. package/src/process/index.ts +6 -0
  837. package/src/reactivity/Atom.ts +5 -5
  838. package/src/reactivity/AtomRegistry.ts +20 -9
  839. package/src/rpc/Rpc.ts +3 -1
  840. package/src/rpc/RpcClient.ts +94 -38
  841. package/src/rpc/RpcMessage.ts +13 -3
  842. package/src/rpc/RpcSerialization.ts +3 -0
  843. package/src/rpc/RpcServer.ts +176 -78
  844. package/src/schema/Model.ts +26 -3
  845. package/src/sql/Migrator.ts +38 -80
  846. package/src/sql/MigratorFileSystem.ts +71 -0
  847. package/src/sql/SqlClient.ts +45 -24
  848. package/src/sql/Statement.ts +60 -29
  849. package/src/sql/index.ts +1 -1
  850. package/src/testing/index.ts +0 -6
  851. package/src/workflow/Workflow.ts +4 -0
  852. package/src/workflow/WorkflowEngine.ts +5 -0
  853. package/src/workflow/internal/crypto.ts +15 -11
  854. package/dist/Crypto.d.ts +0 -244
  855. package/dist/Crypto.d.ts.map +0 -1
  856. package/dist/Crypto.js +0 -139
  857. package/dist/Crypto.js.map +0 -1
  858. package/dist/testing/TestCrypto.d.ts +0 -73
  859. package/dist/testing/TestCrypto.d.ts.map +0 -1
  860. package/dist/testing/TestCrypto.js +0 -87
  861. package/dist/testing/TestCrypto.js.map +0 -1
  862. package/src/Crypto.ts +0 -347
  863. package/src/testing/TestCrypto.ts +0 -94
package/dist/Context.js CHANGED
@@ -116,11 +116,10 @@ const ServiceProto = {
116
116
  const cacheKeys = /*#__PURE__*/new Set();
117
117
  const ReferenceTypeId = "~effect/Context/Reference";
118
118
  const TypeId = "~effect/Context";
119
- const MaxDepth = 8;
120
119
  // Keep small bases cheap to read; larger bases are worth copying only after
121
120
  // enough fall-throughs to amortize the copy.
122
121
  const FlattenAfterBaseHits = 8;
123
- const makeImpl = (cacheRoot, base, overlay, depth) => {
122
+ const makeImpl = (cacheRoot, base, overlay, depth, maxDepth) => {
124
123
  const self = Object.create(Proto);
125
124
  self.cacheRoot = cacheRoot ?? self;
126
125
  self.base = base;
@@ -128,6 +127,7 @@ const makeImpl = (cacheRoot, base, overlay, depth) => {
128
127
  self.depth = depth;
129
128
  self._flat = undefined;
130
129
  self.baseHits = 0;
130
+ self.maxDepth = maxDepth;
131
131
  return self;
132
132
  };
133
133
  const applyOverlays = (map, overlay) => {
@@ -145,7 +145,7 @@ const flatten = self => {
145
145
  const withFlat = (self, f) => {
146
146
  const map = new Map(self.mapUnsafe);
147
147
  f(map);
148
- return makeUnsafe(map);
148
+ return makeImpl(undefined, map, undefined, 0, self.maxDepth);
149
149
  };
150
150
  // A private symbol so user code cannot forge a value that reads as absent
151
151
  const notFound = /*#__PURE__*/Symbol();
@@ -174,8 +174,23 @@ const lookup = (self, key) => {
174
174
  * Use when constructing a low-level `Context` from a trusted map whose lifecycle
175
175
  * you control.
176
176
  *
177
+ * **Details**
178
+ *
179
+ * `options.maxDepth` sets how many `add` calls are kept as overlays before the
180
+ * context is rebased into a flat map (default `8`). Lower values make lookups
181
+ * cheaper, higher values make additions to a large base cheaper. Invalid
182
+ * values fall back to the default.
183
+ *
184
+ * Contexts derived with `add`, `pick`, `omit`, and `merge` keep the setting
185
+ * (`merge` from its first non-empty argument). `make`, `empty`, and `mergeAll`
186
+ * use the default. Layers are combined with `mergeAll`, so apply it to the
187
+ * final context rather than inside a layer.
188
+ *
177
189
  * **Gotchas**
178
190
  *
191
+ * Excessively large `maxDepth` values can cause stack overflow when overlays
192
+ * are materialized or rebased. Choose a modest value.
193
+ *
179
194
  * The provided map is retained without copying and must not be mutated after
180
195
  * construction. Prefer `empty`, `make`, `add`, or `merge` for normal Context
181
196
  * construction.
@@ -198,7 +213,11 @@ const lookup = (self, key) => {
198
213
  * @category constructors
199
214
  * @since 4.0.0
200
215
  */
201
- export const makeUnsafe = mapUnsafe => makeImpl(undefined, mapUnsafe, undefined, 0);
216
+ export const makeUnsafe = (mapUnsafe, options) => {
217
+ const maxDepth = options?.maxDepth;
218
+ // NaN or Infinity would never trigger a rebase, so fall back to the default
219
+ return makeImpl(undefined, mapUnsafe, undefined, 0, Number.isInteger(maxDepth) && maxDepth >= 0 ? maxDepth : 8);
220
+ };
202
221
  const Proto = {
203
222
  get mapUnsafe() {
204
223
  return flatten(this);
@@ -385,18 +404,18 @@ export const add = /*#__PURE__*/dual(3, (self, key, service) => addUnsafe(self,
385
404
  export const addUnsafe = (self, key, service) => {
386
405
  const impl = self;
387
406
  const cacheRoot = cacheKeys.has(key) ? undefined : impl.cacheRoot;
388
- if (impl.depth >= MaxDepth) {
407
+ if (impl.depth >= impl.maxDepth) {
389
408
  // Avoid mapUnsafe: it would flatten the parent before copying.
390
409
  const map = new Map(impl._flat ?? impl.base);
391
410
  if (!impl._flat) applyOverlays(map, impl.overlay);
392
411
  map.set(key, service);
393
- return makeImpl(cacheRoot, map, undefined, 0);
412
+ return makeImpl(cacheRoot, map, undefined, 0, impl.maxDepth);
394
413
  }
395
414
  return makeImpl(cacheRoot, impl.base, {
396
415
  key,
397
416
  value: service,
398
417
  parent: impl.overlay
399
- }, impl.depth + 1);
418
+ }, impl.depth + 1, impl.maxDepth);
400
419
  };
401
420
  /**
402
421
  * Adds or removes a service depending on an `Option`.
@@ -774,7 +793,7 @@ export const pick = (...services) => self => {
774
793
  const value = lookup(self, key);
775
794
  if (value !== notFound) map.set(key, value);
776
795
  }
777
- return makeUnsafe(map);
796
+ return makeImpl(undefined, map, undefined, 0, self.maxDepth);
778
797
  }
779
798
  const keep = new Set(services.map(key => key.key));
780
799
  return withFlat(self, map => map.forEach((_, key) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":[],"sources":["../src/Context.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Context.js","names":[],"sources":["../src/Context.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/Cron.d.ts CHANGED
@@ -6,6 +6,59 @@ import * as Option from "./Option.ts";
6
6
  import { type Pipeable } from "./Pipeable.ts";
7
7
  import * as Result from "./Result.ts";
8
8
  declare const TypeId = "~effect/Cron";
9
+ /**
10
+ * Chooses which occurrences of a repeated wall-clock time a `Cron` schedule
11
+ * includes.
12
+ *
13
+ * **When to use**
14
+ *
15
+ * Use to control how a schedule behaves when clocks fall back, for example at
16
+ * the end of daylight saving time, and a range of local times occurs twice.
17
+ *
18
+ * **Details**
19
+ *
20
+ * Despite the name, the policy applies to every repeated local time, not only
21
+ * those caused by daylight saving time. For example, Antarctica/Casey repeated
22
+ * 00:00-02:59 on 2023-03-09 when its standard offset changed from +11:00 to
23
+ * +08:00.
24
+ *
25
+ * - `"earlier"` (default) includes only the first occurrence, before the
26
+ * offset change.
27
+ * - `"later"` includes only the second occurrence, after the offset change.
28
+ * - `"both"` includes both occurrences, in chronological order.
29
+ *
30
+ * Time zones without repeated times, such as UTC or fixed offsets, behave the
31
+ * same under every policy.
32
+ *
33
+ * **Gotchas**
34
+ *
35
+ * The policy does not apply to local times skipped when clocks move forward. A
36
+ * matching time inside such a gap resolves to the instant after the gap, the
37
+ * same under every policy, and near a gap `next` and `prev` are not guaranteed
38
+ * to return the nearest matching instant.
39
+ *
40
+ * **Example** (Running every occurrence of a repeated hour)
41
+ *
42
+ * ```ts import.meta.vitest
43
+ * import { Cron } from "effect"
44
+ *
45
+ * // Europe/Berlin repeats 02:00-02:59 on 2026-10-25, first at +02:00
46
+ * // (00:30Z) and again at +01:00 (01:30Z)
47
+ * const earlier = Cron.parseUnsafe("30 2 * * *", "Europe/Berlin")
48
+ * const both = Cron.parseUnsafe("30 2 * * *", "Europe/Berlin", { onDstOverlap: "both" })
49
+ *
50
+ * Cron.next(earlier, "2026-10-25T00:30:00Z").toISOString() // => "2026-10-26T01:30:00.000Z"
51
+ * Cron.next(both, "2026-10-25T00:30:00Z").toISOString() // => "2026-10-25T01:30:00.000Z"
52
+ * ```
53
+ *
54
+ * @see {@link make} for setting the policy from explicit field constraints
55
+ * @see {@link parse} for setting the policy when parsing an expression
56
+ *
57
+ * @stability stable
58
+ * @category models
59
+ * @since 4.1.0
60
+ */
61
+ export type DstOverlapPolicy = "earlier" | "later" | "both";
9
62
  /**
10
63
  * Represents a cron schedule with time constraints and timezone information.
11
64
  *
@@ -57,6 +110,7 @@ export interface Cron extends Pipeable, Equal.Equal, Inspectable {
57
110
  readonly days: ReadonlySet<number>;
58
111
  readonly months: ReadonlySet<number>;
59
112
  readonly weekdays: ReadonlySet<number>;
113
+ readonly onDstOverlap: DstOverlapPolicy;
60
114
  }
61
115
  /**
62
116
  * Checks whether a given value is a Cron instance.
@@ -111,8 +165,9 @@ export declare const isCron: (u: unknown) => u is Cron;
111
165
  * time unit unrestricted. If only days or weekdays are restricted, that field
112
166
  * must match. When both are restricted, the default matches either field; set
113
167
  * `and: true` to require both fields to match. Weekdays range from `0` (Sunday)
114
- * to `7` (also Sunday). The constructor throws a `RangeError` when a field
115
- * contains a non-integer or out-of-range value.
168
+ * to `7` (also Sunday). `onDstOverlap` chooses which occurrences of repeated
169
+ * local times are included and defaults to `"earlier"`. The constructor throws a
170
+ * `RangeError` when a field contains a non-integer or out-of-range value.
116
171
  *
117
172
  * **Example** (Creating schedules from constraints)
118
173
  *
@@ -192,6 +247,7 @@ export declare const make: (values: {
192
247
  readonly weekdays: Iterable<number>;
193
248
  readonly and?: boolean | undefined;
194
249
  readonly tz?: DateTime.TimeZone | undefined;
250
+ readonly onDstOverlap?: DstOverlapPolicy | undefined;
195
251
  }) => Cron;
196
252
  declare const CronParseErrorTypeId = "~effect/Cron/CronParseError";
197
253
  declare const CronParseError_base: new <A extends Record<string, any> = {}>(args: import("./Types.ts").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("./Cause.ts").YieldableError & {
@@ -283,6 +339,8 @@ export declare const isCronParseError: (u: unknown) => u is CronParseError;
283
339
  * `CronParseError`. When both the day-of-month and weekday fields are
284
340
  * restricted, a date matches if either field matches. When either field starts
285
341
  * with `*`, both fields must match; an unrestricted field always matches.
342
+ * `options.onDstOverlap` chooses which occurrences of repeated local times are
343
+ * included and defaults to `"earlier"`.
286
344
  *
287
345
  * **Example** (Parsing cron expressions)
288
346
  *
@@ -303,7 +361,9 @@ export declare const isCronParseError: (u: unknown) => u is CronParseError;
303
361
  * @category constructors
304
362
  * @since 2.0.0
305
363
  */
306
- export declare const parse: (cron: string, tz?: DateTime.TimeZone | string) => Result.Result<Cron, CronParseError>;
364
+ export declare const parse: (cron: string, tz?: DateTime.TimeZone | string, options?: {
365
+ readonly onDstOverlap?: DstOverlapPolicy | undefined;
366
+ }) => Result.Result<Cron, CronParseError>;
307
367
  /**
308
368
  * Parses a cron expression into a `Cron` instance, throwing on failure.
309
369
  *
@@ -333,7 +393,9 @@ export declare const parse: (cron: string, tz?: DateTime.TimeZone | string) => R
333
393
  * @category constructors
334
394
  * @since 4.0.0
335
395
  */
336
- export declare const parseUnsafe: (cron: string, tz?: DateTime.TimeZone | string) => Cron;
396
+ export declare const parseUnsafe: (cron: string, tz?: DateTime.TimeZone | string, options?: {
397
+ readonly onDstOverlap?: DstOverlapPolicy | undefined;
398
+ }) => Cron;
337
399
  /**
338
400
  * Formats a `Cron` instance as a cron expression.
339
401
  *
@@ -344,8 +406,8 @@ export declare const parseUnsafe: (cron: string, tz?: DateTime.TimeZone | string
344
406
  *
345
407
  * **Gotchas**
346
408
  *
347
- * Formatting drops the timezone information and the `and` restriction between
348
- * days and weekdays. Parsing the result is therefore not guaranteed to produce
409
+ * Formatting drops the timezone information, the `onDstOverlap` policy, and
410
+ * the `and` restriction between days and weekdays. Parsing the result is therefore not guaranteed to produce
349
411
  * an equivalent schedule.
350
412
  *
351
413
  * **Example** (Formatting a cron expression)
@@ -416,7 +478,9 @@ export declare const match: (cron: Cron, date: DateTime.DateTime.Input) => boole
416
478
  *
417
479
  * Searches for the next date and time when the cron schedule should trigger,
418
480
  * starting after the specified date/time or after the current time when no
419
- * date is provided.
481
+ * date is provided. The result is always strictly after the starting point.
482
+ * Repeated local times are included according to the schedule's
483
+ * `onDstOverlap` policy.
420
484
  *
421
485
  * **Example** (Finding the next occurrence)
422
486
  *
@@ -448,6 +512,8 @@ export declare const next: (cron: Cron, now?: DateTime.DateTime.Input) => Date;
448
512
  * **Details**
449
513
  *
450
514
  * When no date/time is provided, the search starts from the current time.
515
+ * Repeated local times are included according to the schedule's
516
+ * `onDstOverlap` policy.
451
517
  *
452
518
  * **Gotchas**
453
519
  *
@@ -514,7 +580,8 @@ export declare const sequence: (cron: Cron, now?: DateTime.DateTime.Input) => It
514
580
  * **Details**
515
581
  *
516
582
  * This comparison checks the optional timezone, the `and` day-matching mode,
517
- * seconds, minutes, hours, days, months, and weekdays.
583
+ * the `onDstOverlap` policy, seconds, minutes, hours, days, months, and
584
+ * weekdays.
518
585
  *
519
586
  * **Example** (Comparing schedules with equivalence)
520
587
  *
@@ -559,7 +626,8 @@ export declare const Equivalence: Equ.Equivalence<Cron>;
559
626
  * **Details**
560
627
  *
561
628
  * The comparison checks the optional timezone, the `and` day-matching mode,
562
- * seconds, minutes, hours, days, months, and weekdays.
629
+ * the `onDstOverlap` policy, seconds, minutes, hours, days, months, and
630
+ * weekdays.
563
631
  *
564
632
  * **Example** (Checking schedule equality)
565
633
  *
@@ -605,7 +673,8 @@ export declare const equals: {
605
673
  * **Details**
606
674
  *
607
675
  * The comparison checks the optional timezone, the `and` day-matching mode,
608
- * seconds, minutes, hours, days, months, and weekdays.
676
+ * the `onDstOverlap` policy, seconds, minutes, hours, days, months, and
677
+ * weekdays.
609
678
  *
610
679
  * **Example** (Checking schedule equality)
611
680
  *
@@ -651,7 +720,8 @@ export declare const equals: {
651
720
  * **Details**
652
721
  *
653
722
  * The comparison checks the optional timezone, the `and` day-matching mode,
654
- * seconds, minutes, hours, days, months, and weekdays.
723
+ * the `onDstOverlap` policy, seconds, minutes, hours, days, months, and
724
+ * weekdays.
655
725
  *
656
726
  * **Example** (Checking schedule equality)
657
727
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Cron.d.ts","sourceRoot":"","sources":["../src/Cron.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Cron.d.ts","sourceRoot":"","sources":["../src/Cron.ts"],"names":[],"mappings":"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"}
package/dist/Cron.js CHANGED
@@ -33,7 +33,8 @@ function toPojo(cron) {
33
33
  hours: Arr.fromIterable(cron.hours),
34
34
  days: Arr.fromIterable(cron.days),
35
35
  months: Arr.fromIterable(cron.months),
36
- weekdays: Arr.fromIterable(cron.weekdays)
36
+ weekdays: Arr.fromIterable(cron.weekdays),
37
+ onDstOverlap: cron.onDstOverlap
37
38
  };
38
39
  return out;
39
40
  }
@@ -43,7 +44,7 @@ const CronProto = {
43
44
  return isCron(that) && equals(this, that);
44
45
  },
45
46
  [Hash.symbol]() {
46
- return pipe(Hash.hash(this.tz), Hash.combine(Hash.hash(this.and)), Hash.combine(Hash.array(Arr.fromIterable(this.seconds))), Hash.combine(Hash.array(Arr.fromIterable(this.minutes))), Hash.combine(Hash.array(Arr.fromIterable(this.hours))), Hash.combine(Hash.array(Arr.fromIterable(this.days))), Hash.combine(Hash.array(Arr.fromIterable(this.months))), Hash.combine(Hash.array(Arr.fromIterable(this.weekdays))));
47
+ return pipe(Hash.hash(this.tz), Hash.combine(Hash.hash(this.and)), Hash.combine(Hash.array(Arr.fromIterable(this.seconds))), Hash.combine(Hash.array(Arr.fromIterable(this.minutes))), Hash.combine(Hash.array(Arr.fromIterable(this.hours))), Hash.combine(Hash.array(Arr.fromIterable(this.days))), Hash.combine(Hash.array(Arr.fromIterable(this.months))), Hash.combine(Hash.array(Arr.fromIterable(this.weekdays))), Hash.combine(Hash.hash(this.onDstOverlap)));
47
48
  },
48
49
  toObject() {
49
50
  return toPojo(this);
@@ -116,8 +117,9 @@ export const isCron = u => hasProperty(u, TypeId);
116
117
  * time unit unrestricted. If only days or weekdays are restricted, that field
117
118
  * must match. When both are restricted, the default matches either field; set
118
119
  * `and: true` to require both fields to match. Weekdays range from `0` (Sunday)
119
- * to `7` (also Sunday). The constructor throws a `RangeError` when a field
120
- * contains a non-integer or out-of-range value.
120
+ * to `7` (also Sunday). `onDstOverlap` chooses which occurrences of repeated
121
+ * local times are included and defaults to `"earlier"`. The constructor throws a
122
+ * `RangeError` when a field contains a non-integer or out-of-range value.
121
123
  *
122
124
  * **Example** (Creating schedules from constraints)
123
125
  *
@@ -198,6 +200,7 @@ export const make = values => {
198
200
  o.weekdays = restrictions.weekdays(values.weekdays);
199
201
  o.and = values.and === true;
200
202
  o.tz = Option.fromUndefinedOr(values.tz);
203
+ o.onDstOverlap = values.onDstOverlap ?? "earlier";
201
204
  const seconds = Array.from(o.seconds);
202
205
  const minutes = Array.from(o.minutes);
203
206
  const hours = Array.from(o.hours);
@@ -383,6 +386,8 @@ export const isCronParseError = u => hasProperty(u, CronParseErrorTypeId);
383
386
  * `CronParseError`. When both the day-of-month and weekday fields are
384
387
  * restricted, a date matches if either field matches. When either field starts
385
388
  * with `*`, both fields must match; an unrestricted field always matches.
389
+ * `options.onDstOverlap` chooses which occurrences of repeated local times are
390
+ * included and defaults to `"earlier"`.
386
391
  *
387
392
  * **Example** (Parsing cron expressions)
388
393
  *
@@ -403,7 +408,7 @@ export const isCronParseError = u => hasProperty(u, CronParseErrorTypeId);
403
408
  * @category constructors
404
409
  * @since 2.0.0
405
410
  */
406
- export const parse = (cron, tz) => {
411
+ export const parse = (cron, tz, options) => {
407
412
  const segments = cron.trim().split(/\s+/).filter(String.isNonEmpty);
408
413
  if (segments.length !== 5 && segments.length !== 6) {
409
414
  return Result.fail(new CronParseError({
@@ -443,7 +448,8 @@ export const parse = (cron, tz) => {
443
448
  days: days.values,
444
449
  months: months.values,
445
450
  weekdays: weekdays.values,
446
- and: (days.wildcard || weekdays.wildcard) && days.values.size !== 0 && weekdays.values.size !== 0
451
+ and: (days.wildcard || weekdays.wildcard) && days.values.size !== 0 && weekdays.values.size !== 0,
452
+ onDstOverlap: options?.onDstOverlap
447
453
  })));
448
454
  };
449
455
  /**
@@ -475,7 +481,7 @@ export const parse = (cron, tz) => {
475
481
  * @category constructors
476
482
  * @since 4.0.0
477
483
  */
478
- export const parseUnsafe = (cron, tz) => Result.getOrThrow(parse(cron, tz));
484
+ export const parseUnsafe = (cron, tz, options) => Result.getOrThrow(parse(cron, tz, options));
479
485
  /**
480
486
  * Formats a `Cron` instance as a cron expression.
481
487
  *
@@ -486,8 +492,8 @@ export const parseUnsafe = (cron, tz) => Result.getOrThrow(parse(cron, tz));
486
492
  *
487
493
  * **Gotchas**
488
494
  *
489
- * Formatting drops the timezone information and the `and` restriction between
490
- * days and weekdays. Parsing the result is therefore not guaranteed to produce
495
+ * Formatting drops the timezone information, the `onDstOverlap` policy, and
496
+ * the `and` restriction between days and weekdays. Parsing the result is therefore not guaranteed to produce
491
497
  * an equivalent schedule.
492
498
  *
493
499
  * **Example** (Formatting a cron expression)
@@ -613,7 +619,9 @@ const daysInMonth = date => new Date(Date.UTC(date.getUTCFullYear(), date.getUTC
613
619
  *
614
620
  * Searches for the next date and time when the cron schedule should trigger,
615
621
  * starting after the specified date/time or after the current time when no
616
- * date is provided.
622
+ * date is provided. The result is always strictly after the starting point.
623
+ * Repeated local times are included according to the schedule's
624
+ * `onDstOverlap` policy.
617
625
  *
618
626
  * **Example** (Finding the next occurrence)
619
627
  *
@@ -647,6 +655,8 @@ export const next = (cron, now) => {
647
655
  * **Details**
648
656
  *
649
657
  * When no date/time is provided, the search starts from the current time.
658
+ * Repeated local times are included according to the schedule's
659
+ * `onDstOverlap` policy.
650
660
  *
651
661
  * **Gotchas**
652
662
  *
@@ -663,8 +673,22 @@ export const prev = (cron, now) => {
663
673
  return stepCron(cron, now, "prev");
664
674
  };
665
675
  const stepCron = (cron, now, direction) => {
676
+ const start = now ?? new Date();
677
+ if (cron.onDstOverlap !== "both") {
678
+ return searchCron(cron, start, direction, cron.onDstOverlap);
679
+ }
680
+ // Both occurrences are eligible, so the result is the nearest of the two
681
+ // single-occurrence searches in the search direction.
682
+ const earlier = searchCron(cron, start, direction, "earlier");
683
+ const later = searchCron(cron, start, direction, "later");
684
+ if (direction === "next") {
685
+ return earlier <= later ? earlier : later;
686
+ }
687
+ return earlier >= later ? earlier : later;
688
+ };
689
+ const searchCron = (cron, now, direction, onDstOverlap) => {
666
690
  const tz = Option.getOrUndefined(cron.tz);
667
- const zoned = dateTime.makeZonedUnsafe(now ?? new Date(), {
691
+ const zoned = dateTime.makeZonedUnsafe(now, {
668
692
  timeZone: tz
669
693
  });
670
694
  const reverse = direction === "prev";
@@ -673,24 +697,71 @@ const stepCron = (cron, now, direction) => {
673
697
  const boundary = reverse ? cron.last : cron.first;
674
698
  const needsStep = reverse ? (next, current) => next < current : (next, current) => next > current;
675
699
  const utc = tz !== undefined && dateTime.isTimeZoneNamed(tz) && tz.id === "UTC";
676
- const adjustDst = utc ? constVoid : current => {
700
+ // Going backward, a candidate inside a gap is left in place: it resolves to
701
+ // the instant after the gap, and the range check below rejects it when that
702
+ // instant is not before the input.
703
+ const adjustDst = utc || reverse ? constVoid : current => {
677
704
  const adjusted = dateTime.makeZonedUnsafe(current, {
678
705
  timeZone: zoned.zone,
679
- adjustForTimeZone: true,
680
- disambiguation: reverse ? "later" : undefined
706
+ adjustForTimeZone: true
681
707
  }).pipe(dateTime.toDate);
682
708
  const drift = current.getTime() - adjusted.getTime();
683
- if (reverse ? drift !== 0 : drift > 0) {
684
- current.setTime(reverse ? adjusted.getTime() : current.getTime() + drift);
709
+ if (drift > 0) {
710
+ current.setTime(current.getTime() + drift);
685
711
  }
686
712
  };
687
- // Repeated wall times resolve to their first occurrence, so when the search
688
- // starts in the second occurrence, matches inside that fold are in the past.
689
- const isBeforeStart = reverse || utc ? constFalse : current => dateTime.makeZonedUnsafe(current, {
713
+ // Repeated wall times resolve to the occurrence chosen by the policy. Gaps
714
+ // resolve to the instant after the gap under either disambiguation.
715
+ const disambiguation = onDstOverlap === "later" ? "later" : "compatible";
716
+ const resolve = wallMillis => dateTime.makeZonedUnsafe(wallMillis, {
690
717
  timeZone: zoned.zone,
691
- adjustForTimeZone: true
692
- }).epochMilliseconds <= zoned.epochMilliseconds;
718
+ adjustForTimeZone: true,
719
+ disambiguation
720
+ }).epochMilliseconds;
721
+ // Inside a fold, wall-clock order differs from instant order, so a candidate
722
+ // can resolve to an instant on the wrong side of the input.
723
+ const isOutOfRange = utc ? constFalse : reverse ? wallMillis => resolve(wallMillis) >= zoned.epochMilliseconds : wallMillis => resolve(wallMillis) <= zoned.epochMilliseconds;
724
+ // A fold near the input shows as a larger offset a day before it than a day
725
+ // after it (DateTime disambiguation assumes the same single transition).
726
+ // Inside a fold the resolved instant moves in the same direction as the wall
727
+ // time, so the rejected candidates form one interval no longer than the
728
+ // fold: when the wall time one fold length ahead is in range, binary search
729
+ // for the first second in range instead of stepping through the interval.
730
+ // Gaps break that ordering, so they keep stepping one second at a time.
731
+ let foldSeconds;
732
+ const skipOutOfRange = current => {
733
+ if (foldSeconds === undefined) {
734
+ const offsetAt = millis => dateTime.zonedOffset(dateTime.makeZonedUnsafe(millis, {
735
+ timeZone: zoned.zone
736
+ }));
737
+ foldSeconds = Math.floor((offsetAt(zoned.epochMilliseconds - 86_400_000) - offsetAt(zoned.epochMilliseconds + 86_400_000)) / 1000);
738
+ }
739
+ const after = seconds => current.getTime() + tick * seconds * 1000;
740
+ let outOfRange = 0;
741
+ let inRange = 1;
742
+ if (foldSeconds > 0 && !isOutOfRange(after(foldSeconds))) {
743
+ inRange = foldSeconds;
744
+ while (inRange - outOfRange > 1) {
745
+ const mid = outOfRange + Math.floor((inRange - outOfRange) / 2);
746
+ if (isOutOfRange(after(mid))) {
747
+ outOfRange = mid;
748
+ } else {
749
+ inRange = mid;
750
+ }
751
+ }
752
+ }
753
+ current.setTime(after(inRange));
754
+ };
693
755
  const result = dateTime.mutate(zoned, current => {
756
+ // When the input is in the occurrence the policy excludes, eligible
757
+ // instants of the same fold can lie behind its wall time in the search
758
+ // direction. Start from the wall time of the input under the policy's
759
+ // offset so they are visited; candidates that resolve on the wrong side
760
+ // of the input are skipped below.
761
+ const shift = utc ? 0 : zoned.epochMilliseconds - resolve(current.getTime());
762
+ if (reverse ? shift > 0 : shift < 0) {
763
+ current.setTime(current.getTime() + shift);
764
+ }
694
765
  // Start from the nearest whole second strictly past the input in the search
695
766
  // direction. Going backward, a fractional input already has one.
696
767
  const offset = reverse && current.getUTCMilliseconds() > 0 ? 0 : tick;
@@ -825,14 +896,16 @@ const stepCron = (cron, now, direction) => {
825
896
  continue;
826
897
  }
827
898
  }
828
- if (isBeforeStart(current)) {
829
- current.setUTCSeconds(current.getUTCSeconds() + 1);
899
+ if (isOutOfRange(current.getTime())) {
900
+ skipOutOfRange(current);
830
901
  i = -1; // skipped fold candidates do not count against the search budget
831
902
  continue;
832
903
  }
833
904
  return;
834
905
  }
835
906
  throw new Error("Unable to find cron date");
907
+ }, {
908
+ disambiguation
836
909
  });
837
910
  return dateTime.toDateUtc(result);
838
911
  };
@@ -893,7 +966,8 @@ export const sequence = function* (cron, now) {
893
966
  * **Details**
894
967
  *
895
968
  * This comparison checks the optional timezone, the `and` day-matching mode,
896
- * seconds, minutes, hours, days, months, and weekdays.
969
+ * the `onDstOverlap` policy, seconds, minutes, hours, days, months, and
970
+ * weekdays.
897
971
  *
898
972
  * **Example** (Comparing schedules with equivalence)
899
973
  *
@@ -925,7 +999,7 @@ export const sequence = function* (cron, now) {
925
999
  * @category instances
926
1000
  * @since 2.0.0
927
1001
  */
928
- export const Equivalence = /*#__PURE__*/Equ.make((self, that) => Equal.equals(self.tz, that.tz) && self.and === that.and && restrictionsEquals(self.seconds, that.seconds) && restrictionsEquals(self.minutes, that.minutes) && restrictionsEquals(self.hours, that.hours) && restrictionsEquals(self.days, that.days) && restrictionsEquals(self.months, that.months) && restrictionsEquals(self.weekdays, that.weekdays));
1002
+ export const Equivalence = /*#__PURE__*/Equ.make((self, that) => Equal.equals(self.tz, that.tz) && self.and === that.and && self.onDstOverlap === that.onDstOverlap && restrictionsEquals(self.seconds, that.seconds) && restrictionsEquals(self.minutes, that.minutes) && restrictionsEquals(self.hours, that.hours) && restrictionsEquals(self.days, that.days) && restrictionsEquals(self.months, that.months) && restrictionsEquals(self.weekdays, that.weekdays));
929
1003
  const restrictionsArrayEquals = /*#__PURE__*/Equ.Array(/*#__PURE__*/Equ.strictEqual());
930
1004
  const restrictionsEquals = (self, that) => restrictionsArrayEquals(Arr.fromIterable(self), Arr.fromIterable(that));
931
1005
  /**
@@ -940,7 +1014,8 @@ const restrictionsEquals = (self, that) => restrictionsArrayEquals(Arr.fromItera
940
1014
  * **Details**
941
1015
  *
942
1016
  * The comparison checks the optional timezone, the `and` day-matching mode,
943
- * seconds, minutes, hours, days, months, and weekdays.
1017
+ * the `onDstOverlap` policy, seconds, minutes, hours, days, months, and
1018
+ * weekdays.
944
1019
  *
945
1020
  * **Example** (Checking schedule equality)
946
1021
  *