effect 4.0.6 → 4.1.0

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 (978) hide show
  1. package/README.md +1 -1
  2. package/dist/Arbitrary.d.ts +10 -2
  3. package/dist/Arbitrary.d.ts.map +1 -1
  4. package/dist/Arbitrary.js +2 -1
  5. package/dist/Arbitrary.js.map +1 -1
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +3 -0
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/Channel.d.ts +12 -6
  10. package/dist/Channel.d.ts.map +1 -1
  11. package/dist/Channel.js +30 -9
  12. package/dist/Channel.js.map +1 -1
  13. package/dist/Config.d.ts +7 -1
  14. package/dist/Config.d.ts.map +1 -1
  15. package/dist/Config.js.map +1 -1
  16. package/dist/Context.d.ts +18 -1
  17. package/dist/Context.d.ts.map +1 -1
  18. package/dist/Context.js +27 -8
  19. package/dist/Context.js.map +1 -1
  20. package/dist/Cron.d.ts +81 -11
  21. package/dist/Cron.d.ts.map +1 -1
  22. package/dist/Cron.js +101 -26
  23. package/dist/Cron.js.map +1 -1
  24. package/dist/Data.d.ts +54 -235
  25. package/dist/Data.d.ts.map +1 -1
  26. package/dist/Data.js.map +1 -1
  27. package/dist/Duration.d.ts +78 -0
  28. package/dist/Duration.d.ts.map +1 -1
  29. package/dist/Duration.js +123 -0
  30. package/dist/Duration.js.map +1 -1
  31. package/dist/Effect.d.ts +165 -8
  32. package/dist/Effect.d.ts.map +1 -1
  33. package/dist/Effect.js +12 -2
  34. package/dist/Effect.js.map +1 -1
  35. package/dist/Equal.d.ts.map +1 -1
  36. package/dist/Equal.js +8 -1
  37. package/dist/Equal.js.map +1 -1
  38. package/dist/Exit.d.ts +3 -3
  39. package/dist/Exit.d.ts.map +1 -1
  40. package/dist/Exit.js.map +1 -1
  41. package/dist/FileSystem.d.ts +59 -4
  42. package/dist/FileSystem.d.ts.map +1 -1
  43. package/dist/FileSystem.js +9 -2
  44. package/dist/FileSystem.js.map +1 -1
  45. package/dist/Formatter.d.ts.map +1 -1
  46. package/dist/Formatter.js +27 -13
  47. package/dist/Formatter.js.map +1 -1
  48. package/dist/Glob.d.ts +165 -0
  49. package/dist/Glob.d.ts.map +1 -0
  50. package/dist/Glob.js +127 -0
  51. package/dist/Glob.js.map +1 -0
  52. package/dist/Hash.d.ts.map +1 -1
  53. package/dist/Hash.js +4 -1
  54. package/dist/Hash.js.map +1 -1
  55. package/dist/JsonPatch.js +4 -0
  56. package/dist/JsonPatch.js.map +1 -1
  57. package/dist/JsonSchema.d.ts.map +1 -1
  58. package/dist/JsonSchema.js +13 -40
  59. package/dist/JsonSchema.js.map +1 -1
  60. package/dist/Match.d.ts +86 -0
  61. package/dist/Match.d.ts.map +1 -1
  62. package/dist/Match.js +72 -0
  63. package/dist/Match.js.map +1 -1
  64. package/dist/Metric.d.ts +3 -3
  65. package/dist/MutableList.d.ts +5 -2
  66. package/dist/MutableList.d.ts.map +1 -1
  67. package/dist/MutableList.js +7 -5
  68. package/dist/MutableList.js.map +1 -1
  69. package/dist/MutableRef.d.ts.map +1 -1
  70. package/dist/MutableRef.js +7 -0
  71. package/dist/MutableRef.js.map +1 -1
  72. package/dist/PartitionedSemaphore.d.ts +2 -1
  73. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  74. package/dist/PartitionedSemaphore.js +22 -12
  75. package/dist/PartitionedSemaphore.js.map +1 -1
  76. package/dist/Pool.d.ts +51 -0
  77. package/dist/Pool.d.ts.map +1 -1
  78. package/dist/Pool.js +136 -36
  79. package/dist/Pool.js.map +1 -1
  80. package/dist/PubSub.d.ts.map +1 -1
  81. package/dist/PubSub.js +5 -6
  82. package/dist/PubSub.js.map +1 -1
  83. package/dist/Random.d.ts.map +1 -1
  84. package/dist/Random.js +3 -3
  85. package/dist/Random.js.map +1 -1
  86. package/dist/RcMap.d.ts.map +1 -1
  87. package/dist/RcMap.js +8 -2
  88. package/dist/RcMap.js.map +1 -1
  89. package/dist/Ref.d.ts.map +1 -1
  90. package/dist/Ref.js +8 -0
  91. package/dist/Ref.js.map +1 -1
  92. package/dist/Schedule.d.ts +18 -1
  93. package/dist/Schedule.d.ts.map +1 -1
  94. package/dist/Schedule.js +8 -3
  95. package/dist/Schedule.js.map +1 -1
  96. package/dist/Schema.d.ts +690 -49
  97. package/dist/Schema.d.ts.map +1 -1
  98. package/dist/Schema.js +687 -28
  99. package/dist/Schema.js.map +1 -1
  100. package/dist/SchemaAST.d.ts +4 -2
  101. package/dist/SchemaAST.d.ts.map +1 -1
  102. package/dist/SchemaAST.js +14 -17
  103. package/dist/SchemaAST.js.map +1 -1
  104. package/dist/SchemaGetter.d.ts +6 -1
  105. package/dist/SchemaGetter.d.ts.map +1 -1
  106. package/dist/SchemaGetter.js +22 -11
  107. package/dist/SchemaGetter.js.map +1 -1
  108. package/dist/SchemaParser.d.ts.map +1 -1
  109. package/dist/SchemaParser.js +48 -22
  110. package/dist/SchemaParser.js.map +1 -1
  111. package/dist/SchemaRepresentation.d.ts +33 -10
  112. package/dist/SchemaRepresentation.d.ts.map +1 -1
  113. package/dist/SchemaRepresentation.js +39 -13
  114. package/dist/SchemaRepresentation.js.map +1 -1
  115. package/dist/SchemaTransformation.d.ts +12 -4
  116. package/dist/SchemaTransformation.d.ts.map +1 -1
  117. package/dist/SchemaTransformation.js +15 -5
  118. package/dist/SchemaTransformation.js.map +1 -1
  119. package/dist/ScopedCache.d.ts.map +1 -1
  120. package/dist/ScopedCache.js +5 -7
  121. package/dist/ScopedCache.js.map +1 -1
  122. package/dist/Semaphore.d.ts +130 -0
  123. package/dist/Semaphore.d.ts.map +1 -1
  124. package/dist/Semaphore.js +94 -35
  125. package/dist/Semaphore.js.map +1 -1
  126. package/dist/Sink.d.ts.map +1 -1
  127. package/dist/Sink.js +7 -2
  128. package/dist/Sink.js.map +1 -1
  129. package/dist/Stream.d.ts +13 -4
  130. package/dist/Stream.d.ts.map +1 -1
  131. package/dist/Stream.js +31 -10
  132. package/dist/Stream.js.map +1 -1
  133. package/dist/String.d.ts +3 -0
  134. package/dist/String.d.ts.map +1 -1
  135. package/dist/String.js +3 -0
  136. package/dist/String.js.map +1 -1
  137. package/dist/Terminal.d.ts +18 -1
  138. package/dist/Terminal.d.ts.map +1 -1
  139. package/dist/Terminal.js +1 -1
  140. package/dist/Terminal.js.map +1 -1
  141. package/dist/Tracer.d.ts +11 -1
  142. package/dist/Tracer.d.ts.map +1 -1
  143. package/dist/Tracer.js +6 -1
  144. package/dist/Tracer.js.map +1 -1
  145. package/dist/ai/AiError.d.ts +43 -116
  146. package/dist/ai/AiError.d.ts.map +1 -1
  147. package/dist/ai/AiError.js +53 -72
  148. package/dist/ai/AiError.js.map +1 -1
  149. package/dist/ai/Decision.d.ts +196 -15
  150. package/dist/ai/Decision.d.ts.map +1 -1
  151. package/dist/ai/Decision.js +130 -0
  152. package/dist/ai/Decision.js.map +1 -1
  153. package/dist/ai/DecisionModel.d.ts +54 -13
  154. package/dist/ai/DecisionModel.d.ts.map +1 -1
  155. package/dist/ai/DecisionModel.js +123 -12
  156. package/dist/ai/DecisionModel.js.map +1 -1
  157. package/dist/ai/LanguageModel.d.ts.map +1 -1
  158. package/dist/ai/LanguageModel.js +9 -0
  159. package/dist/ai/LanguageModel.js.map +1 -1
  160. package/dist/ai/McpSchema.d.ts +110 -110
  161. package/dist/ai/McpSchema.d.ts.map +1 -1
  162. package/dist/ai/McpServer.d.ts +630 -29
  163. package/dist/ai/McpServer.d.ts.map +1 -1
  164. package/dist/ai/McpServer.js +583 -131
  165. package/dist/ai/McpServer.js.map +1 -1
  166. package/dist/ai/McpTest.d.ts +130 -0
  167. package/dist/ai/McpTest.d.ts.map +1 -0
  168. package/dist/ai/McpTest.js +237 -0
  169. package/dist/ai/McpTest.js.map +1 -0
  170. package/dist/ai/Prompt.d.ts +52 -0
  171. package/dist/ai/Prompt.d.ts.map +1 -1
  172. package/dist/ai/Prompt.js +38 -0
  173. package/dist/ai/Prompt.js.map +1 -1
  174. package/dist/ai/Response.d.ts +17 -28
  175. package/dist/ai/Response.d.ts.map +1 -1
  176. package/dist/ai/Response.js +5 -10
  177. package/dist/ai/Response.js.map +1 -1
  178. package/dist/ai/Tool.d.ts +43 -1
  179. package/dist/ai/Tool.d.ts.map +1 -1
  180. package/dist/ai/Tool.js +5 -2
  181. package/dist/ai/Tool.js.map +1 -1
  182. package/dist/ai/Toolkit.d.ts.map +1 -1
  183. package/dist/ai/Toolkit.js +8 -1
  184. package/dist/ai/Toolkit.js.map +1 -1
  185. package/dist/ai/index.d.ts +5 -0
  186. package/dist/ai/index.d.ts.map +1 -1
  187. package/dist/ai/index.js +5 -0
  188. package/dist/ai/index.js.map +1 -1
  189. package/dist/ai/internal/mcpCore.js +17 -12
  190. package/dist/ai/internal/mcpCore.js.map +1 -1
  191. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
  192. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  193. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
  194. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  195. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
  196. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  197. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
  198. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  199. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
  200. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  201. package/dist/ai/internal/mcpProtocol.js +13 -0
  202. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  203. package/dist/ai/internal/mcpRuntime.js +5 -3
  204. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  205. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  206. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  207. package/dist/cli/Argument.d.ts +21 -0
  208. package/dist/cli/Argument.d.ts.map +1 -1
  209. package/dist/cli/Argument.js +7 -0
  210. package/dist/cli/Argument.js.map +1 -1
  211. package/dist/cli/CliError.d.ts +78 -0
  212. package/dist/cli/CliError.d.ts.map +1 -1
  213. package/dist/cli/CliError.js +65 -3
  214. package/dist/cli/CliError.js.map +1 -1
  215. package/dist/cli/CliOutput.d.ts +220 -7
  216. package/dist/cli/CliOutput.d.ts.map +1 -1
  217. package/dist/cli/CliOutput.js +156 -43
  218. package/dist/cli/CliOutput.js.map +1 -1
  219. package/dist/cli/Command.d.ts +47 -16
  220. package/dist/cli/Command.d.ts.map +1 -1
  221. package/dist/cli/Command.js +67 -29
  222. package/dist/cli/Command.js.map +1 -1
  223. package/dist/cli/Completions.d.ts +58 -0
  224. package/dist/cli/Completions.d.ts.map +1 -1
  225. package/dist/cli/Completions.js +49 -9
  226. package/dist/cli/Completions.js.map +1 -1
  227. package/dist/cli/Flag.d.ts +122 -0
  228. package/dist/cli/Flag.d.ts.map +1 -1
  229. package/dist/cli/Flag.js +42 -0
  230. package/dist/cli/Flag.js.map +1 -1
  231. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  232. package/dist/cli/GlobalFlag.js +15 -7
  233. package/dist/cli/GlobalFlag.js.map +1 -1
  234. package/dist/cli/HelpDoc.d.ts +15 -1
  235. package/dist/cli/HelpDoc.d.ts.map +1 -1
  236. package/dist/cli/Param.d.ts +15 -0
  237. package/dist/cli/Param.d.ts.map +1 -1
  238. package/dist/cli/Param.js +23 -2
  239. package/dist/cli/Param.js.map +1 -1
  240. package/dist/cli/Primitive.d.ts +14 -0
  241. package/dist/cli/Primitive.d.ts.map +1 -1
  242. package/dist/cli/Primitive.js +15 -1
  243. package/dist/cli/Primitive.js.map +1 -1
  244. package/dist/cli/Prompt.d.ts +1 -0
  245. package/dist/cli/Prompt.d.ts.map +1 -1
  246. package/dist/cli/Prompt.js +1 -0
  247. package/dist/cli/Prompt.js.map +1 -1
  248. package/dist/cli/TerminalCapabilities.d.ts +3 -2
  249. package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
  250. package/dist/cli/TerminalCapabilities.js +3 -1
  251. package/dist/cli/TerminalCapabilities.js.map +1 -1
  252. package/dist/cli/internal/completions/bash.js +73 -27
  253. package/dist/cli/internal/completions/bash.js.map +1 -1
  254. package/dist/cli/internal/help.d.ts.map +1 -1
  255. package/dist/cli/internal/help.js +17 -10
  256. package/dist/cli/internal/help.js.map +1 -1
  257. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  258. package/dist/cluster/ClusterWorkflowEngine.js +45 -10
  259. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  260. package/dist/cluster/MessageStorage.d.ts +23 -45
  261. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  262. package/dist/cluster/MessageStorage.js +6 -7
  263. package/dist/cluster/MessageStorage.js.map +1 -1
  264. package/dist/cluster/Sharding.d.ts.map +1 -1
  265. package/dist/cluster/Sharding.js +151 -49
  266. package/dist/cluster/Sharding.js.map +1 -1
  267. package/dist/cluster/ShardingConfig.d.ts +76 -0
  268. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  269. package/dist/cluster/ShardingConfig.js +4 -0
  270. package/dist/cluster/ShardingConfig.js.map +1 -1
  271. package/dist/cluster/SingleRunner.d.ts +3 -3
  272. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  273. package/dist/cluster/SingleRunner.js +1 -1
  274. package/dist/cluster/Snowflake.d.ts.map +1 -1
  275. package/dist/cluster/Snowflake.js +3 -7
  276. package/dist/cluster/Snowflake.js.map +1 -1
  277. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  278. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  279. package/dist/cluster/SqlMessageStorage.js +34 -7
  280. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  281. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  282. package/dist/cluster/SqlRunnerStorage.js +109 -46
  283. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  284. package/dist/cluster/internal/entityManager.js +54 -20
  285. package/dist/cluster/internal/entityManager.js.map +1 -1
  286. package/dist/crypto/Aead.d.ts +322 -0
  287. package/dist/crypto/Aead.d.ts.map +1 -0
  288. package/dist/crypto/Aead.js +331 -0
  289. package/dist/crypto/Aead.js.map +1 -0
  290. package/dist/crypto/Cipher.d.ts +235 -0
  291. package/dist/crypto/Cipher.d.ts.map +1 -0
  292. package/dist/crypto/Cipher.js +233 -0
  293. package/dist/crypto/Cipher.js.map +1 -0
  294. package/dist/crypto/CryptoError.d.ts +212 -0
  295. package/dist/crypto/CryptoError.d.ts.map +1 -0
  296. package/dist/crypto/CryptoError.js +202 -0
  297. package/dist/crypto/CryptoError.js.map +1 -0
  298. package/dist/crypto/Digest.d.ts +143 -0
  299. package/dist/crypto/Digest.d.ts.map +1 -0
  300. package/dist/crypto/Digest.js +146 -0
  301. package/dist/crypto/Digest.js.map +1 -0
  302. package/dist/crypto/Kdf.d.ts +220 -0
  303. package/dist/crypto/Kdf.d.ts.map +1 -0
  304. package/dist/crypto/Kdf.js +212 -0
  305. package/dist/crypto/Kdf.js.map +1 -0
  306. package/dist/crypto/KeyAgreement.d.ts +323 -0
  307. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  308. package/dist/crypto/KeyAgreement.js +303 -0
  309. package/dist/crypto/KeyAgreement.js.map +1 -0
  310. package/dist/crypto/KeyFormat.d.ts +309 -0
  311. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  312. package/dist/crypto/KeyFormat.js +556 -0
  313. package/dist/crypto/KeyFormat.js.map +1 -0
  314. package/dist/crypto/KeyWrap.d.ts +389 -0
  315. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  316. package/dist/crypto/KeyWrap.js +381 -0
  317. package/dist/crypto/KeyWrap.js.map +1 -0
  318. package/dist/crypto/Mac.d.ts +277 -0
  319. package/dist/crypto/Mac.d.ts.map +1 -0
  320. package/dist/crypto/Mac.js +288 -0
  321. package/dist/crypto/Mac.js.map +1 -0
  322. package/dist/crypto/SecureRandom.d.ts +340 -0
  323. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  324. package/dist/crypto/SecureRandom.js +257 -0
  325. package/dist/crypto/SecureRandom.js.map +1 -0
  326. package/dist/crypto/Signature.d.ts +448 -0
  327. package/dist/crypto/Signature.d.ts.map +1 -0
  328. package/dist/crypto/Signature.js +484 -0
  329. package/dist/crypto/Signature.js.map +1 -0
  330. package/dist/crypto/WebCrypto.d.ts +61 -0
  331. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  332. package/dist/crypto/WebCrypto.js +63 -0
  333. package/dist/crypto/WebCrypto.js.map +1 -0
  334. package/dist/crypto/index.d.ts +65 -0
  335. package/dist/crypto/index.d.ts.map +1 -0
  336. package/dist/crypto/index.js +66 -0
  337. package/dist/crypto/index.js.map +1 -0
  338. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  339. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  340. package/dist/crypto/internal/asymmetric.js +210 -0
  341. package/dist/crypto/internal/asymmetric.js.map +1 -0
  342. package/dist/crypto/internal/chacha.d.ts +46 -0
  343. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  344. package/dist/crypto/internal/chacha.js +885 -0
  345. package/dist/crypto/internal/chacha.js.map +1 -0
  346. package/dist/crypto/internal/der.d.ts +6 -0
  347. package/dist/crypto/internal/der.d.ts.map +1 -0
  348. package/dist/crypto/internal/der.js +86 -0
  349. package/dist/crypto/internal/der.js.map +1 -0
  350. package/dist/crypto/internal/digest.d.ts +2 -0
  351. package/dist/crypto/internal/digest.d.ts.map +1 -0
  352. package/dist/crypto/internal/digest.js +15 -0
  353. package/dist/crypto/internal/digest.js.map +1 -0
  354. package/dist/crypto/internal/key.d.ts +2 -0
  355. package/dist/crypto/internal/key.d.ts.map +1 -0
  356. package/dist/crypto/internal/key.js +170 -0
  357. package/dist/crypto/internal/key.js.map +1 -0
  358. package/dist/crypto/internal/md5.d.ts +39 -0
  359. package/dist/crypto/internal/md5.d.ts.map +1 -0
  360. package/dist/crypto/internal/md5.js +179 -0
  361. package/dist/crypto/internal/md5.js.map +1 -0
  362. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  363. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  364. package/dist/crypto/internal/webCrypto.js +111 -0
  365. package/dist/crypto/internal/webCrypto.js.map +1 -0
  366. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  367. package/dist/devtools/DevToolsClient.js +2 -0
  368. package/dist/devtools/DevToolsClient.js.map +1 -1
  369. package/dist/encoding/Base64.js +36 -0
  370. package/dist/encoding/Base64.js.map +1 -1
  371. package/dist/encoding/Base64Url.d.ts.map +1 -1
  372. package/dist/encoding/Base64Url.js +3 -2
  373. package/dist/encoding/Base64Url.js.map +1 -1
  374. package/dist/encoding/Csv.d.ts +608 -0
  375. package/dist/encoding/Csv.d.ts.map +1 -0
  376. package/dist/encoding/Csv.js +718 -0
  377. package/dist/encoding/Csv.js.map +1 -0
  378. package/dist/encoding/Hex.d.ts +3 -2
  379. package/dist/encoding/Hex.d.ts.map +1 -1
  380. package/dist/encoding/Hex.js +3 -2
  381. package/dist/encoding/Hex.js.map +1 -1
  382. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  383. package/dist/encoding/SchemaBinary.js +42 -4
  384. package/dist/encoding/SchemaBinary.js.map +1 -1
  385. package/dist/encoding/Sse.d.ts.map +1 -1
  386. package/dist/encoding/Sse.js +3 -3
  387. package/dist/encoding/Sse.js.map +1 -1
  388. package/dist/encoding/Toml.d.ts +17 -3
  389. package/dist/encoding/Toml.d.ts.map +1 -1
  390. package/dist/encoding/Toml.js +124 -31
  391. package/dist/encoding/Toml.js.map +1 -1
  392. package/dist/encoding/Yaml.d.ts +8 -1
  393. package/dist/encoding/Yaml.d.ts.map +1 -1
  394. package/dist/encoding/Yaml.js +54 -18
  395. package/dist/encoding/Yaml.js.map +1 -1
  396. package/dist/encoding/index.d.ts +5 -0
  397. package/dist/encoding/index.d.ts.map +1 -1
  398. package/dist/encoding/index.js +5 -0
  399. package/dist/encoding/index.js.map +1 -1
  400. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  401. package/dist/eventlog/EventJournal.js +6 -3
  402. package/dist/eventlog/EventJournal.js.map +1 -1
  403. package/dist/eventlog/EventLog.d.ts +119 -4
  404. package/dist/eventlog/EventLog.d.ts.map +1 -1
  405. package/dist/eventlog/EventLog.js +200 -12
  406. package/dist/eventlog/EventLog.js.map +1 -1
  407. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  408. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  409. package/dist/eventlog/EventLogEncryption.js +83 -64
  410. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  411. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  412. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  413. package/dist/eventlog/EventLogMessage.js +217 -1
  414. package/dist/eventlog/EventLogMessage.js.map +1 -1
  415. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  416. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  417. package/dist/eventlog/EventLogRemote.js +186 -16
  418. package/dist/eventlog/EventLogRemote.js.map +1 -1
  419. package/dist/eventlog/EventLogServer.d.ts +3 -0
  420. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  421. package/dist/eventlog/EventLogServer.js +18 -10
  422. package/dist/eventlog/EventLogServer.js.map +1 -1
  423. package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
  424. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  425. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  426. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  427. package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
  428. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  429. package/dist/eventlog/EventLogSessionAuth.js +41 -64
  430. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  431. package/dist/eventlog/EventRow.d.ts +4 -0
  432. package/dist/eventlog/EventRow.d.ts.map +1 -1
  433. package/dist/eventlog/EventRow.js +12 -2
  434. package/dist/eventlog/EventRow.js.map +1 -1
  435. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  436. package/dist/eventlog/SqlEventJournal.js +47 -27
  437. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  438. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  439. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  440. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  441. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  442. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  443. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  444. package/dist/eventlog/internal/batches.d.ts +12 -0
  445. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  446. package/dist/eventlog/internal/batches.js +26 -0
  447. package/dist/eventlog/internal/batches.js.map +1 -0
  448. package/dist/eventlog/internal/compaction.d.ts +38 -0
  449. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  450. package/dist/eventlog/internal/compaction.js +33 -0
  451. package/dist/eventlog/internal/compaction.js.map +1 -0
  452. package/dist/eventlog/internal/conflicts.d.ts +0 -1
  453. package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
  454. package/dist/eventlog/internal/conflicts.js +0 -3
  455. package/dist/eventlog/internal/conflicts.js.map +1 -1
  456. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  457. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  458. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  459. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  460. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  461. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  462. package/dist/http/Cookies.d.ts +172 -0
  463. package/dist/http/Cookies.d.ts.map +1 -1
  464. package/dist/http/Cookies.js +153 -10
  465. package/dist/http/Cookies.js.map +1 -1
  466. package/dist/http/FetchHttpClient.d.ts +26 -2
  467. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  468. package/dist/http/FetchHttpClient.js +78 -15
  469. package/dist/http/FetchHttpClient.js.map +1 -1
  470. package/dist/http/HttpClient.d.ts +502 -8
  471. package/dist/http/HttpClient.d.ts.map +1 -1
  472. package/dist/http/HttpClient.js +296 -12
  473. package/dist/http/HttpClient.js.map +1 -1
  474. package/dist/http/HttpClientError.d.ts +8 -1
  475. package/dist/http/HttpClientError.d.ts.map +1 -1
  476. package/dist/http/HttpClientError.js +37 -1
  477. package/dist/http/HttpClientError.js.map +1 -1
  478. package/dist/http/HttpClientRequest.d.ts +9 -5
  479. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  480. package/dist/http/HttpClientRequest.js +3 -4
  481. package/dist/http/HttpClientRequest.js.map +1 -1
  482. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  483. package/dist/http/HttpClientResponse.js +3 -2
  484. package/dist/http/HttpClientResponse.js.map +1 -1
  485. package/dist/http/HttpMethod.d.ts +7 -1
  486. package/dist/http/HttpMethod.d.ts.map +1 -1
  487. package/dist/http/HttpMethod.js +3 -8
  488. package/dist/http/HttpMethod.js.map +1 -1
  489. package/dist/http/HttpMiddleware.d.ts +1 -1
  490. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  491. package/dist/http/HttpMiddleware.js +14 -16
  492. package/dist/http/HttpMiddleware.js.map +1 -1
  493. package/dist/http/HttpRouter.d.ts.map +1 -1
  494. package/dist/http/HttpRouter.js +2 -1
  495. package/dist/http/HttpRouter.js.map +1 -1
  496. package/dist/http/HttpServerError.js +2 -2
  497. package/dist/http/HttpServerError.js.map +1 -1
  498. package/dist/http/HttpServerRequest.d.ts +11 -3
  499. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  500. package/dist/http/HttpServerRequest.js +77 -25
  501. package/dist/http/HttpServerRequest.js.map +1 -1
  502. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  503. package/dist/http/HttpServerResponse.js +3 -2
  504. package/dist/http/HttpServerResponse.js.map +1 -1
  505. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  506. package/dist/http/HttpStaticServer.js +48 -21
  507. package/dist/http/HttpStaticServer.js.map +1 -1
  508. package/dist/http/HttpTraceContext.d.ts +2 -1
  509. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  510. package/dist/http/HttpTraceContext.js +7 -5
  511. package/dist/http/HttpTraceContext.js.map +1 -1
  512. package/dist/http/MultipartParser/internal/contentType.js +3 -3
  513. package/dist/http/ProblemDetails.d.ts +96 -0
  514. package/dist/http/ProblemDetails.d.ts.map +1 -0
  515. package/dist/http/ProblemDetails.js +98 -0
  516. package/dist/http/ProblemDetails.js.map +1 -0
  517. package/dist/http/UrlParams.d.ts +3 -1
  518. package/dist/http/UrlParams.d.ts.map +1 -1
  519. package/dist/http/UrlParams.js +4 -2
  520. package/dist/http/UrlParams.js.map +1 -1
  521. package/dist/http/index.d.ts +5 -0
  522. package/dist/http/index.d.ts.map +1 -1
  523. package/dist/http/index.js +5 -0
  524. package/dist/http/index.js.map +1 -1
  525. package/dist/http/internal/compression.js +4 -5
  526. package/dist/http/internal/compression.js.map +1 -1
  527. package/dist/http/internal/decompression.js +6 -2
  528. package/dist/http/internal/decompression.js.map +1 -1
  529. package/dist/http/internal/httpBody.js +8 -1
  530. package/dist/http/internal/httpBody.js.map +1 -1
  531. package/dist/http/internal/urlParams.js +33 -0
  532. package/dist/http/internal/urlParams.js.map +1 -1
  533. package/dist/http-api/HttpApi.d.ts +3 -6
  534. package/dist/http-api/HttpApi.d.ts.map +1 -1
  535. package/dist/http-api/HttpApi.js +3 -6
  536. package/dist/http-api/HttpApi.js.map +1 -1
  537. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  538. package/dist/http-api/HttpApiBuilder.js +43 -13
  539. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  540. package/dist/http-api/HttpApiClient.d.ts +140 -7
  541. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  542. package/dist/http-api/HttpApiClient.js +193 -44
  543. package/dist/http-api/HttpApiClient.js.map +1 -1
  544. package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
  545. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  546. package/dist/http-api/HttpApiEndpoint.js +123 -32
  547. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  548. package/dist/http-api/HttpApiError.d.ts +185 -13
  549. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  550. package/dist/http-api/HttpApiError.js +128 -0
  551. package/dist/http-api/HttpApiError.js.map +1 -1
  552. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  553. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  554. package/dist/http-api/HttpApiMiddleware.js +85 -1
  555. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  556. package/dist/http-api/HttpApiSchema.d.ts +142 -33
  557. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  558. package/dist/http-api/HttpApiSchema.js +123 -59
  559. package/dist/http-api/HttpApiSchema.js.map +1 -1
  560. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  561. package/dist/http-api/HttpApiTest.js +3 -2
  562. package/dist/http-api/HttpApiTest.js.map +1 -1
  563. package/dist/http-api/OpenApi.d.ts.map +1 -1
  564. package/dist/http-api/OpenApi.js +25 -16
  565. package/dist/http-api/OpenApi.js.map +1 -1
  566. package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
  567. package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
  568. package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
  569. package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
  570. package/dist/index.d.ts +5 -5
  571. package/dist/index.d.ts.map +1 -1
  572. package/dist/index.js +5 -5
  573. package/dist/index.js.map +1 -1
  574. package/dist/internal/arbitrary/runner.d.ts.map +1 -1
  575. package/dist/internal/arbitrary/runner.js +120 -44
  576. package/dist/internal/arbitrary/runner.js.map +1 -1
  577. package/dist/internal/core.js +2 -0
  578. package/dist/internal/core.js.map +1 -1
  579. package/dist/internal/effect.js +46 -27
  580. package/dist/internal/effect.js.map +1 -1
  581. package/dist/internal/equal.js +14 -0
  582. package/dist/internal/equal.js.map +1 -1
  583. package/dist/internal/glob.d.ts +2 -0
  584. package/dist/internal/glob.d.ts.map +1 -0
  585. package/dist/internal/glob.js +630 -0
  586. package/dist/internal/glob.js.map +1 -0
  587. package/dist/internal/jsonSchema.d.ts +2 -0
  588. package/dist/internal/jsonSchema.d.ts.map +1 -0
  589. package/dist/internal/jsonSchema.js +28 -0
  590. package/dist/internal/jsonSchema.js.map +1 -0
  591. package/dist/internal/matcher.js +11 -1
  592. package/dist/internal/matcher.js.map +1 -1
  593. package/dist/internal/persistence.js +9 -0
  594. package/dist/internal/persistence.js.map +1 -1
  595. package/dist/internal/rcRef.js +4 -1
  596. package/dist/internal/rcRef.js.map +1 -1
  597. package/dist/internal/schema/compilerRegistry.js +4 -1
  598. package/dist/internal/schema/compilerRegistry.js.map +1 -1
  599. package/dist/internal/schema/content.d.ts +2 -0
  600. package/dist/internal/schema/content.d.ts.map +1 -0
  601. package/dist/internal/schema/content.js +13 -0
  602. package/dist/internal/schema/content.js.map +1 -0
  603. package/dist/internal/schema/fromJsonSchemaDocument.js +173 -185
  604. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  605. package/dist/internal/schema/fromRepresentation.js +2 -1
  606. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  607. package/dist/internal/schema/standardSchema.js +8 -2
  608. package/dist/internal/schema/standardSchema.js.map +1 -1
  609. package/dist/internal/schema/toCodeDocument.js +9 -6
  610. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  611. package/dist/internal/schema/toCodec.js +21 -24
  612. package/dist/internal/schema/toCodec.js.map +1 -1
  613. package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
  614. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  615. package/dist/internal/schema/toRepresentation.js +107 -129
  616. package/dist/internal/schema/toRepresentation.js.map +1 -1
  617. package/dist/internal/sql.d.ts +2 -0
  618. package/dist/internal/sql.d.ts.map +1 -0
  619. package/dist/internal/sql.js +13 -0
  620. package/dist/internal/sql.js.map +1 -0
  621. package/dist/internal/trie.js +42 -13
  622. package/dist/internal/trie.js.map +1 -1
  623. package/dist/internal/ulid.js +41 -0
  624. package/dist/internal/ulid.js.map +1 -1
  625. package/dist/internal/uuid.js +52 -8
  626. package/dist/internal/uuid.js.map +1 -1
  627. package/dist/internal/version.js +1 -1
  628. package/dist/observability/Otlp.d.ts +15 -4
  629. package/dist/observability/Otlp.d.ts.map +1 -1
  630. package/dist/observability/Otlp.js +10 -0
  631. package/dist/observability/Otlp.js.map +1 -1
  632. package/dist/observability/OtlpProxy.d.ts +154 -0
  633. package/dist/observability/OtlpProxy.d.ts.map +1 -0
  634. package/dist/observability/OtlpProxy.js +235 -0
  635. package/dist/observability/OtlpProxy.js.map +1 -0
  636. package/dist/observability/OtlpResource.d.ts +7 -0
  637. package/dist/observability/OtlpResource.d.ts.map +1 -1
  638. package/dist/observability/OtlpResource.js +11 -1
  639. package/dist/observability/OtlpResource.js.map +1 -1
  640. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  641. package/dist/observability/OtlpTracer.js +4 -0
  642. package/dist/observability/OtlpTracer.js.map +1 -1
  643. package/dist/observability/index.d.ts +5 -0
  644. package/dist/observability/index.d.ts.map +1 -1
  645. package/dist/observability/index.js +5 -0
  646. package/dist/observability/index.js.map +1 -1
  647. package/dist/persistence/CircuitBreaker.d.ts +897 -0
  648. package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
  649. package/dist/persistence/CircuitBreaker.js +1165 -0
  650. package/dist/persistence/CircuitBreaker.js.map +1 -0
  651. package/dist/persistence/KeyValueStore.d.ts +47 -2
  652. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  653. package/dist/persistence/KeyValueStore.js +129 -18
  654. package/dist/persistence/KeyValueStore.js.map +1 -1
  655. package/dist/persistence/PersistedQueue.d.ts +9 -0
  656. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  657. package/dist/persistence/PersistedQueue.js +94 -52
  658. package/dist/persistence/PersistedQueue.js.map +1 -1
  659. package/dist/persistence/Persistence.d.ts +10 -4
  660. package/dist/persistence/Persistence.d.ts.map +1 -1
  661. package/dist/persistence/Persistence.js +18 -11
  662. package/dist/persistence/Persistence.js.map +1 -1
  663. package/dist/persistence/Redis.d.ts +78 -2
  664. package/dist/persistence/Redis.d.ts.map +1 -1
  665. package/dist/persistence/Redis.js +62 -7
  666. package/dist/persistence/Redis.js.map +1 -1
  667. package/dist/persistence/index.d.ts +5 -0
  668. package/dist/persistence/index.d.ts.map +1 -1
  669. package/dist/persistence/index.js +5 -0
  670. package/dist/persistence/index.js.map +1 -1
  671. package/dist/process/ChildProcess.d.ts +237 -71
  672. package/dist/process/ChildProcess.d.ts.map +1 -1
  673. package/dist/process/ChildProcess.js +56 -158
  674. package/dist/process/ChildProcess.js.map +1 -1
  675. package/dist/process/ChildProcessSpawner.d.ts +35 -0
  676. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  677. package/dist/process/ChildProcessSpawner.js +5 -2
  678. package/dist/process/ChildProcessSpawner.js.map +1 -1
  679. package/dist/process/CommandLine.d.ts +294 -0
  680. package/dist/process/CommandLine.d.ts.map +1 -0
  681. package/dist/process/CommandLine.js +481 -0
  682. package/dist/process/CommandLine.js.map +1 -0
  683. package/dist/process/index.d.ts +5 -0
  684. package/dist/process/index.d.ts.map +1 -1
  685. package/dist/process/index.js +5 -0
  686. package/dist/process/index.js.map +1 -1
  687. package/dist/reactivity/AsyncResult.d.ts +1 -1
  688. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  689. package/dist/reactivity/Atom.d.ts +2 -1
  690. package/dist/reactivity/Atom.d.ts.map +1 -1
  691. package/dist/reactivity/Atom.js +3 -4
  692. package/dist/reactivity/Atom.js.map +1 -1
  693. package/dist/reactivity/AtomRegistry.js.map +1 -1
  694. package/dist/rpc/RpcClient.d.ts +16 -1
  695. package/dist/rpc/RpcClient.d.ts.map +1 -1
  696. package/dist/rpc/RpcClient.js +59 -24
  697. package/dist/rpc/RpcClient.js.map +1 -1
  698. package/dist/rpc/RpcMessage.d.ts +10 -1
  699. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  700. package/dist/rpc/RpcMessage.js +1 -0
  701. package/dist/rpc/RpcMessage.js.map +1 -1
  702. package/dist/rpc/RpcSerialization.d.ts +14 -0
  703. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  704. package/dist/rpc/RpcSerialization.js +26 -8
  705. package/dist/rpc/RpcSerialization.js.map +1 -1
  706. package/dist/rpc/RpcServer.d.ts +31 -0
  707. package/dist/rpc/RpcServer.d.ts.map +1 -1
  708. package/dist/rpc/RpcServer.js +139 -56
  709. package/dist/rpc/RpcServer.js.map +1 -1
  710. package/dist/rpc/RpcTest.d.ts +1 -0
  711. package/dist/rpc/RpcTest.d.ts.map +1 -1
  712. package/dist/rpc/RpcTest.js +1 -0
  713. package/dist/rpc/RpcTest.js.map +1 -1
  714. package/dist/schema/Model.d.ts +14 -0
  715. package/dist/schema/Model.d.ts.map +1 -1
  716. package/dist/schema/Model.js +18 -3
  717. package/dist/schema/Model.js.map +1 -1
  718. package/dist/sql/Migrator.d.ts +2 -20
  719. package/dist/sql/Migrator.d.ts.map +1 -1
  720. package/dist/sql/Migrator.js +13 -55
  721. package/dist/sql/Migrator.js.map +1 -1
  722. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  723. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  724. package/dist/sql/MigratorFileSystem.js +57 -0
  725. package/dist/sql/MigratorFileSystem.js.map +1 -0
  726. package/dist/sql/SqlClient.d.ts +9 -4
  727. package/dist/sql/SqlClient.d.ts.map +1 -1
  728. package/dist/sql/SqlClient.js +13 -10
  729. package/dist/sql/SqlClient.js.map +1 -1
  730. package/dist/sql/SqlResolver.d.ts +4 -0
  731. package/dist/sql/SqlResolver.d.ts.map +1 -1
  732. package/dist/sql/SqlResolver.js +18 -4
  733. package/dist/sql/SqlResolver.js.map +1 -1
  734. package/dist/sql/Statement.d.ts +27 -6
  735. package/dist/sql/Statement.d.ts.map +1 -1
  736. package/dist/sql/Statement.js +21 -15
  737. package/dist/sql/Statement.js.map +1 -1
  738. package/dist/sql/index.js +1 -1
  739. package/dist/testing/index.d.ts +0 -5
  740. package/dist/testing/index.d.ts.map +1 -1
  741. package/dist/testing/index.js +0 -5
  742. package/dist/testing/index.js.map +1 -1
  743. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  744. package/dist/workflow/DurableDeferred.js +21 -2
  745. package/dist/workflow/DurableDeferred.js.map +1 -1
  746. package/dist/workflow/internal/crypto.js +9 -8
  747. package/dist/workflow/internal/crypto.js.map +1 -1
  748. package/package.json +3 -1
  749. package/src/Arbitrary.ts +10 -2
  750. package/src/BigDecimal.ts +3 -0
  751. package/src/Channel.ts +64 -29
  752. package/src/Config.ts +7 -1
  753. package/src/Context.ts +34 -10
  754. package/src/Cron.ts +178 -29
  755. package/src/Data.ts +60 -265
  756. package/src/Duration.ts +140 -0
  757. package/src/Effect.ts +915 -86
  758. package/src/Equal.ts +8 -1
  759. package/src/Exit.ts +3 -3
  760. package/src/FileSystem.ts +65 -4
  761. package/src/Formatter.ts +28 -13
  762. package/src/Glob.ts +205 -0
  763. package/src/Hash.ts +4 -1
  764. package/src/JsonPatch.ts +4 -0
  765. package/src/JsonSchema.ts +12 -40
  766. package/src/Match.ts +127 -0
  767. package/src/Metric.ts +3 -3
  768. package/src/MutableList.ts +7 -5
  769. package/src/MutableRef.ts +8 -1
  770. package/src/PartitionedSemaphore.ts +24 -13
  771. package/src/Pool.ts +182 -52
  772. package/src/PubSub.ts +5 -6
  773. package/src/Random.ts +3 -3
  774. package/src/RcMap.ts +5 -1
  775. package/src/Ref.ts +8 -0
  776. package/src/Schedule.ts +27 -4
  777. package/src/Schema.ts +1237 -87
  778. package/src/SchemaAST.ts +20 -20
  779. package/src/SchemaGetter.ts +27 -11
  780. package/src/SchemaParser.ts +51 -18
  781. package/src/SchemaRepresentation.ts +50 -34
  782. package/src/SchemaTransformation.ts +17 -5
  783. package/src/ScopedCache.ts +5 -9
  784. package/src/Semaphore.ts +208 -40
  785. package/src/Sink.ts +15 -2
  786. package/src/Stream.ts +48 -22
  787. package/src/String.ts +3 -0
  788. package/src/Terminal.ts +19 -1
  789. package/src/Tracer.ts +15 -1
  790. package/src/ai/AiError.ts +56 -80
  791. package/src/ai/Decision.ts +257 -6
  792. package/src/ai/DecisionModel.ts +171 -28
  793. package/src/ai/LanguageModel.ts +9 -0
  794. package/src/ai/McpServer.ts +1283 -299
  795. package/src/ai/McpTest.ts +380 -0
  796. package/src/ai/Prompt.ts +65 -0
  797. package/src/ai/Response.ts +36 -31
  798. package/src/ai/Tool.ts +65 -10
  799. package/src/ai/Toolkit.ts +4 -1
  800. package/src/ai/index.ts +6 -0
  801. package/src/ai/internal/mcpCore.ts +78 -44
  802. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
  803. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
  804. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
  805. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
  806. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
  807. package/src/ai/internal/mcpProtocol.ts +29 -0
  808. package/src/ai/internal/mcpRuntime.ts +9 -5
  809. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  810. package/src/cli/Argument.ts +21 -0
  811. package/src/cli/CliError.ts +90 -3
  812. package/src/cli/CliOutput.ts +300 -55
  813. package/src/cli/Command.ts +76 -41
  814. package/src/cli/Completions.ts +51 -0
  815. package/src/cli/Flag.ts +122 -0
  816. package/src/cli/GlobalFlag.ts +6 -7
  817. package/src/cli/HelpDoc.ts +18 -1
  818. package/src/cli/Param.ts +35 -6
  819. package/src/cli/Primitive.ts +16 -1
  820. package/src/cli/Prompt.ts +1 -0
  821. package/src/cli/TerminalCapabilities.ts +6 -3
  822. package/src/cli/internal/completions/bash.ts +79 -29
  823. package/src/cli/internal/help.ts +21 -9
  824. package/src/cluster/ClusterWorkflowEngine.ts +46 -16
  825. package/src/cluster/MessageStorage.ts +19 -14
  826. package/src/cluster/Sharding.ts +176 -47
  827. package/src/cluster/ShardingConfig.ts +43 -0
  828. package/src/cluster/SingleRunner.ts +3 -3
  829. package/src/cluster/Snowflake.ts +3 -7
  830. package/src/cluster/SqlMessageStorage.ts +49 -17
  831. package/src/cluster/SqlRunnerStorage.ts +143 -70
  832. package/src/cluster/internal/entityManager.ts +75 -22
  833. package/src/crypto/Aead.ts +517 -0
  834. package/src/crypto/Cipher.ts +326 -0
  835. package/src/crypto/CryptoError.ts +242 -0
  836. package/src/crypto/Digest.ts +167 -0
  837. package/src/crypto/Kdf.ts +315 -0
  838. package/src/crypto/KeyAgreement.ts +489 -0
  839. package/src/crypto/KeyFormat.ts +712 -0
  840. package/src/crypto/KeyWrap.ts +639 -0
  841. package/src/crypto/Mac.ts +386 -0
  842. package/src/crypto/SecureRandom.ts +459 -0
  843. package/src/crypto/Signature.ts +673 -0
  844. package/src/crypto/WebCrypto.ts +64 -0
  845. package/src/crypto/index.ts +78 -0
  846. package/src/crypto/internal/asymmetric.ts +329 -0
  847. package/src/crypto/internal/chacha.ts +1088 -0
  848. package/src/crypto/internal/der.ts +110 -0
  849. package/src/crypto/internal/digest.ts +16 -0
  850. package/src/crypto/internal/key.ts +235 -0
  851. package/src/crypto/internal/md5.ts +170 -0
  852. package/src/crypto/internal/webCrypto.ts +150 -0
  853. package/src/devtools/DevToolsClient.ts +2 -0
  854. package/src/encoding/Base64.ts +38 -0
  855. package/src/encoding/Base64Url.ts +5 -2
  856. package/src/encoding/Csv.ts +1298 -0
  857. package/src/encoding/Hex.ts +3 -2
  858. package/src/encoding/SchemaBinary.ts +40 -4
  859. package/src/encoding/Sse.ts +4 -3
  860. package/src/encoding/Toml.ts +117 -35
  861. package/src/encoding/Yaml.ts +61 -18
  862. package/src/encoding/index.ts +6 -0
  863. package/src/eventlog/EventJournal.ts +4 -3
  864. package/src/eventlog/EventLog.ts +340 -15
  865. package/src/eventlog/EventLogEncryption.ts +118 -110
  866. package/src/eventlog/EventLogMessage.ts +273 -1
  867. package/src/eventlog/EventLogRemote.ts +367 -23
  868. package/src/eventlog/EventLogServer.ts +23 -8
  869. package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
  870. package/src/eventlog/EventLogSessionAuth.ts +56 -70
  871. package/src/eventlog/EventRow.ts +12 -3
  872. package/src/eventlog/SqlEventJournal.ts +68 -45
  873. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  874. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  875. package/src/eventlog/internal/batches.ts +30 -0
  876. package/src/eventlog/internal/compaction.ts +64 -0
  877. package/src/eventlog/internal/conflicts.ts +0 -4
  878. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  879. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  880. package/src/http/Cookies.ts +291 -12
  881. package/src/http/FetchHttpClient.ts +88 -16
  882. package/src/http/HttpClient.ts +636 -29
  883. package/src/http/HttpClientError.ts +35 -1
  884. package/src/http/HttpClientRequest.ts +21 -10
  885. package/src/http/HttpClientResponse.ts +3 -2
  886. package/src/http/HttpMethod.ts +10 -2
  887. package/src/http/HttpMiddleware.ts +15 -18
  888. package/src/http/HttpRouter.ts +2 -1
  889. package/src/http/HttpServerError.ts +2 -2
  890. package/src/http/HttpServerRequest.ts +101 -30
  891. package/src/http/HttpServerResponse.ts +3 -2
  892. package/src/http/HttpStaticServer.ts +51 -22
  893. package/src/http/HttpTraceContext.ts +7 -4
  894. package/src/http/MultipartParser/internal/contentType.ts +3 -3
  895. package/src/http/ProblemDetails.ts +149 -0
  896. package/src/http/UrlParams.ts +6 -1
  897. package/src/http/index.ts +6 -0
  898. package/src/http/internal/compression.ts +4 -5
  899. package/src/http/internal/decompression.ts +10 -4
  900. package/src/http/internal/httpBody.ts +10 -2
  901. package/src/http/internal/urlParams.ts +37 -0
  902. package/src/http-api/HttpApi.ts +3 -6
  903. package/src/http-api/HttpApiBuilder.ts +61 -19
  904. package/src/http-api/HttpApiClient.ts +284 -72
  905. package/src/http-api/HttpApiEndpoint.ts +135 -35
  906. package/src/http-api/HttpApiError.ts +250 -0
  907. package/src/http-api/HttpApiMiddleware.ts +95 -1
  908. package/src/http-api/HttpApiSchema.ts +236 -52
  909. package/src/http-api/HttpApiTest.ts +3 -2
  910. package/src/http-api/OpenApi.ts +20 -17
  911. package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
  912. package/src/index.ts +6 -6
  913. package/src/internal/arbitrary/runner.ts +133 -36
  914. package/src/internal/core.ts +2 -0
  915. package/src/internal/effect.ts +58 -34
  916. package/src/internal/equal.ts +17 -0
  917. package/src/internal/glob.ts +736 -0
  918. package/src/internal/jsonSchema.ts +27 -0
  919. package/src/internal/matcher.ts +18 -1
  920. package/src/internal/persistence.ts +11 -0
  921. package/src/internal/rcRef.ts +4 -1
  922. package/src/internal/schema/compilerRegistry.ts +6 -1
  923. package/src/internal/schema/content.ts +18 -0
  924. package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
  925. package/src/internal/schema/fromRepresentation.ts +2 -1
  926. package/src/internal/schema/standardSchema.ts +2 -2
  927. package/src/internal/schema/toCodeDocument.ts +11 -7
  928. package/src/internal/schema/toCodec.ts +26 -22
  929. package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
  930. package/src/internal/schema/toRepresentation.ts +122 -140
  931. package/src/internal/sql.ts +14 -0
  932. package/src/internal/trie.ts +43 -14
  933. package/src/internal/ulid.ts +44 -0
  934. package/src/internal/uuid.ts +57 -16
  935. package/src/internal/version.ts +1 -1
  936. package/src/observability/Otlp.ts +21 -4
  937. package/src/observability/OtlpProxy.ts +314 -0
  938. package/src/observability/OtlpResource.ts +9 -1
  939. package/src/observability/OtlpTracer.ts +4 -0
  940. package/src/observability/index.ts +6 -0
  941. package/src/persistence/CircuitBreaker.ts +1678 -0
  942. package/src/persistence/KeyValueStore.ts +219 -22
  943. package/src/persistence/PersistedQueue.ts +128 -59
  944. package/src/persistence/Persistence.ts +20 -13
  945. package/src/persistence/Redis.ts +129 -8
  946. package/src/persistence/index.ts +6 -0
  947. package/src/process/ChildProcess.ts +285 -264
  948. package/src/process/ChildProcessSpawner.ts +46 -2
  949. package/src/process/CommandLine.ts +630 -0
  950. package/src/process/index.ts +6 -0
  951. package/src/reactivity/AsyncResult.ts +1 -1
  952. package/src/reactivity/Atom.ts +5 -5
  953. package/src/reactivity/AtomRegistry.ts +1 -1
  954. package/src/rpc/RpcClient.ts +75 -36
  955. package/src/rpc/RpcMessage.ts +10 -1
  956. package/src/rpc/RpcSerialization.ts +35 -9
  957. package/src/rpc/RpcServer.ts +176 -63
  958. package/src/rpc/RpcTest.ts +3 -0
  959. package/src/schema/Model.ts +26 -3
  960. package/src/sql/Migrator.ts +15 -69
  961. package/src/sql/MigratorFileSystem.ts +71 -0
  962. package/src/sql/SqlClient.ts +13 -20
  963. package/src/sql/SqlResolver.ts +23 -9
  964. package/src/sql/Statement.ts +38 -9
  965. package/src/sql/index.ts +1 -1
  966. package/src/testing/index.ts +0 -6
  967. package/src/workflow/DurableDeferred.ts +23 -6
  968. package/src/workflow/internal/crypto.ts +15 -11
  969. package/dist/Crypto.d.ts +0 -244
  970. package/dist/Crypto.d.ts.map +0 -1
  971. package/dist/Crypto.js +0 -139
  972. package/dist/Crypto.js.map +0 -1
  973. package/dist/testing/TestCrypto.d.ts +0 -73
  974. package/dist/testing/TestCrypto.d.ts.map +0 -1
  975. package/dist/testing/TestCrypto.js +0 -87
  976. package/dist/testing/TestCrypto.js.map +0 -1
  977. package/src/Crypto.ts +0 -347
  978. package/src/testing/TestCrypto.ts +0 -94
@@ -16,6 +16,10 @@ export function makeCode(runtime: string, Type: string): SchemaRepresentation.Co
16
16
  return { runtime, Type }
17
17
  }
18
18
 
19
+ function formatObjectLiteralKey(key: PropertyKey, formatted = formatPropertyKey(key)): string {
20
+ return key === "__proto__" ? `[${formatted}]` : formatted
21
+ }
22
+
19
23
  function renderEmittableAnnotation(input: unknown): string | undefined {
20
24
  if (
21
25
  input === null ||
@@ -26,7 +30,7 @@ function renderEmittableAnnotation(input: unknown): string | undefined {
26
30
  ) return format(input)
27
31
  if (typeof input === "symbol") {
28
32
  const key = globalThis.Symbol.keyFor(input)
29
- return key === undefined ? undefined : `Symbol.for(${format(key)})`
33
+ return key === undefined ? undefined : `globalThis.Symbol.for(${format(key)})`
30
34
  }
31
35
  if (typeof input !== "object") return undefined
32
36
  if (Array.isArray(input)) {
@@ -43,7 +47,7 @@ function renderEmittableAnnotation(input: unknown): string | undefined {
43
47
  for (const [key, value] of Object.entries(input)) {
44
48
  const rendered = renderEmittableAnnotation(value)
45
49
  if (rendered === undefined) return undefined
46
- entries.push(`${formatPropertyKey(key)}: ${rendered}`)
50
+ entries.push(`${formatObjectLiteralKey(key)}: ${rendered}`)
47
51
  }
48
52
  return entries.length === 0 ? "{}" : `{ ${entries.join(", ")} }`
49
53
  }
@@ -63,7 +67,7 @@ function renderAnnotations(
63
67
  for (const [key, value] of Object.entries(annotations)) {
64
68
  if (InternalAnnotations.annotationExcludedKeys.has(key)) continue
65
69
  const rendered = renderEmittableAnnotation(value)
66
- if (rendered !== undefined) entries.push(`${formatPropertyKey(key)}: ${rendered}`)
70
+ if (rendered !== undefined) entries.push(`${formatObjectLiteralKey(key)}: ${rendered}`)
67
71
  }
68
72
  return entries.length === 0 ? undefined : `{ ${entries.join(", ")} }`
69
73
  }
@@ -230,7 +234,7 @@ export function toCodeDocument(
230
234
  const artifacts: Array<SchemaRepresentation.Artifact> = []
231
235
  const sorted = topologicalSort(document.references)
232
236
  const sanitizedReferences = new Map<string, string>()
233
- const uniqueIdentifiers = new Set<string>()
237
+ const uniqueIdentifiers = new Set<string>(["Schema"])
234
238
  let compilingRecursiveDefinition = false
235
239
  let explicitSuspendDepth = 0
236
240
 
@@ -289,8 +293,8 @@ export function toCodeDocument(
289
293
  identifier,
290
294
  code: makeCode(
291
295
  key === undefined
292
- ? `Symbol(${description === undefined ? "" : format(description)})`
293
- : `Symbol.for(${format(key)})`,
296
+ ? `globalThis.Symbol(${description === undefined ? "" : format(description)})`
297
+ : `globalThis.Symbol.for(${format(key)})`,
294
298
  `typeof ${identifier}`
295
299
  )
296
300
  })
@@ -499,7 +503,7 @@ export function toCodeDocument(
499
503
  if (property.isMutable) runtime = `Schema.mutableKey(${runtime})`
500
504
  if (property.isOptional) runtime = `Schema.optionalKey(${runtime})`
501
505
  runtime += runtimeAnnotate(property.annotations, "annotateKey")
502
- const runtimeName = property.name === "__proto__" ? `[${name}]` : name
506
+ const runtimeName = formatObjectLiteralKey(property.name, name)
503
507
  const typeName = `${property.isMutable ? "" : "readonly "}${name}${property.isOptional ? "?" : ""}`
504
508
  return {
505
509
  code: makeCode(`${runtimeName}: ${runtime}`, `${typeName}: ${type.Type}`)
@@ -14,20 +14,29 @@ export function toCodecJson<S extends PublicSchema.Constraint>(schema: S): Publi
14
14
  }
15
15
 
16
16
  /** @internal */
17
- export const toCodecJsonAST = SchemaAST.applyToSelfOrLastLinkEncodingIdempotent((ast) => {
18
- const owner = SchemaAST.getContextOwner(ast)
19
- if (owner !== ast) {
20
- // A context-only copy reuses the owner's rebuilt body, so both keep one identity.
21
- // Encoded derivations already share their body and take the regular step.
22
- const fromOwner = toCodecJsonAST(owner)
23
- if (fromOwner === owner) return ast
24
- if (fromOwner.encoding === undefined) return SchemaAST.replaceContext(fromOwner, ast.context)
25
- }
26
- const out = toCodecJsonASTStep(ast, toCodecJsonAST)
27
- const context = ast.context
28
- if (out === ast || context === undefined) return out
29
- return SchemaAST.replaceContextLastLink(out, withoutConstructorDefault(context))
30
- })
17
+ export const toCodecJsonAST = makeCodecDerivation(toCodecJsonASTStep)
18
+
19
+ function makeCodecDerivation(
20
+ step: (ast: SchemaAST.AST, recur: (ast: SchemaAST.AST) => SchemaAST.AST) => SchemaAST.AST,
21
+ options?: { readonly stopAt?: (link: SchemaAST.Link) => boolean }
22
+ ): (ast: SchemaAST.AST) => SchemaAST.AST {
23
+ // Derive each body once, independently of its own context. Child contexts remain part of the body.
24
+ const deriveBody = memoize((owner: SchemaAST.AST) => {
25
+ const body = SchemaAST.replaceContext(owner, undefined)
26
+ const out = step(body, recur)
27
+ return out === body ? null : out
28
+ })
29
+ // Follow existing encodings before sharing bodies: their encoded forms may differ.
30
+ const recur = SchemaAST.applyToSelfOrLastLinkEncodingIdempotent((ast) => {
31
+ const derived = deriveBody(SchemaAST.getContextOwner(ast))
32
+ if (derived === null) return ast
33
+ const out = SchemaAST.replaceContext(derived, ast.context)
34
+ return ast.context === undefined ?
35
+ out :
36
+ SchemaAST.replaceContextLastLink(out, withoutConstructorDefault(ast.context))
37
+ }, options)
38
+ return recur
39
+ }
31
40
 
32
41
  function withoutConstructorDefault(context: SchemaAST.Context): SchemaAST.Context {
33
42
  return context.constructorDefault === undefined ?
@@ -265,15 +274,10 @@ const arrayFromSingleTransformation = new InternalTransformation.Transformation(
265
274
  const isCodecArrayFromSingleLink = (link: SchemaAST.Link): boolean =>
266
275
  link.transformation === arrayFromSingleTransformation
267
276
 
268
- const toCodecStringTreeAST = SchemaAST.applyToSelfOrLastLinkEncodingIdempotent((ast) => {
269
- const out = toCodecStringTreeASTStep(ast, toCodecStringTreeAST, (ast) => {
277
+ const toCodecStringTreeAST = makeCodecDerivation((ast, recur) =>
278
+ toCodecStringTreeASTStep(ast, recur, (ast) => {
270
279
  throw new globalThis.Error("Missing structural codec for StringTree", { cause: ast })
271
- })
272
- if (out !== ast && ast.context !== undefined) {
273
- return SchemaAST.replaceContextLastLink(out, withoutConstructorDefault(ast.context))
274
- }
275
- return out
276
- }, { stopAt: isCodecArrayFromSingleLink })
280
+ }), { stopAt: isCodecArrayFromSingleLink })
277
281
 
278
282
  const toArrayFromSingleInputElement = (ast: SchemaAST.AST): SchemaAST.AST =>
279
283
  SchemaAST.isOptional(ast) ? SchemaAST.optionalKey(SchemaAST.unknown) : SchemaAST.unknown
@@ -194,7 +194,10 @@ function appendJsonSchema(
194
194
  // cycle is exact unless it can reach `false`.
195
195
  type Exactness = boolean | ReadonlyArray<Exactness>
196
196
 
197
- type CompiledJsonSchema = [schema: JsonSchema.JsonSchema, dependencies: Array<Exactness>]
197
+ type CompiledJsonSchema = {
198
+ schema: JsonSchema.JsonSchema
199
+ dependencies: Array<Exactness>
200
+ }
198
201
 
199
202
  function isExact(exactness: Exactness, seen = new Set<ReadonlyArray<Exactness>>()): boolean {
200
203
  if (typeof exactness === "boolean") return exactness
@@ -218,12 +221,13 @@ function compileJsonSchema(
218
221
  references: SchemaRepresentation.References,
219
222
  options: Schema.ToJsonSchemaOptions | undefined
220
223
  ): JsonSchema.MultiDocument<"draft-2020-12"> {
224
+ const numberKeyPattern = `^(?:${InternalAST.FINITE_PATTERN}|Infinity|-Infinity|NaN)$`
221
225
  const compiledDefinitions = new Map<string, CompiledJsonSchema>()
222
226
  const definitionAliases = new Map<string, string>()
223
227
  const compiledRepresentations = new WeakMap<SchemaRepresentation.Representation, CompiledJsonSchema>()
224
228
  const pendingOneOf = new Map<
225
229
  ReadonlyArray<JsonSchema.JsonSchema>,
226
- readonly [branches: ReadonlyArray<Exactness>, schemas: Array<JsonSchema.JsonSchema>]
230
+ { branches: ReadonlyArray<Exactness>; schemas: Array<JsonSchema.JsonSchema> }
227
231
  >()
228
232
  const fallbackDefinitions = new Map<string, Array<string>>()
229
233
  const referenceKeys = Object.keys(references)
@@ -234,7 +238,7 @@ function compileJsonSchema(
234
238
  representations,
235
239
  (representation, index) => recur(representation, rootPaths[index], [])
236
240
  )
237
- for (const [branches, schemas] of pendingOneOf.values()) {
241
+ for (const { branches, schemas } of pendingOneOf.values()) {
238
242
  if (!isExact(branches)) {
239
243
  for (const schema of schemas) {
240
244
  if (Array.isArray(schema.oneOf)) {
@@ -248,9 +252,9 @@ function compileJsonSchema(
248
252
  const representation = references[key]
249
253
  const fallback = getIdentifierFallback(representation)
250
254
  if (fallback === undefined) continue
251
- const schema = compiledDefinitions.get(key)![0]
255
+ const schema = compiledDefinitions.get(key)!.schema
252
256
  const candidates = fallbackDefinitions.get(fallback)
253
- const match = candidates?.find((candidate) => Equal.equals(compiledDefinitions.get(candidate)![0], schema))
257
+ const match = candidates?.find((candidate) => Equal.equals(compiledDefinitions.get(candidate)!.schema, schema))
254
258
  if (match === undefined) {
255
259
  if (candidates === undefined) fallbackDefinitions.set(fallback, [key])
256
260
  else candidates.push(key)
@@ -262,16 +266,26 @@ function compileJsonSchema(
262
266
  const definitions: Record<string, JsonSchema.JsonSchema> = {}
263
267
  for (const key of referenceKeys) {
264
268
  if (!definitionAliases.has(key)) {
265
- InternalRecord.assignProperty(definitions, key, finalizeJsonSchema(compiledDefinitions.get(key)![0]))
269
+ InternalRecord.assignProperty(definitions, key, finalizeJsonSchema(compiledDefinitions.get(key)!.schema))
266
270
  }
267
271
  }
268
272
  return { dialect: "draft-2020-12", schemas, definitions }
269
273
 
270
274
  function registerPendingOneOf(schema: JsonSchema.JsonSchema): JsonSchema.JsonSchema {
271
- if (Array.isArray(schema.oneOf)) pendingOneOf.get(schema.oneOf)?.[1].push(schema)
275
+ if (Array.isArray(schema.oneOf)) pendingOneOf.get(schema.oneOf)?.schemas.push(schema)
272
276
  return schema
273
277
  }
274
278
 
279
+ function compileAnnotatedMember(
280
+ member: SchemaRepresentation.Element | SchemaRepresentation.PropertySignature,
281
+ path: Path,
282
+ dependencies: Array<Exactness>
283
+ ): JsonSchema.JsonSchema {
284
+ const schema = recur(member.type, [...path, "type"], dependencies)
285
+ const annotations = collectJsonSchemaAnnotations(member.annotations, options)
286
+ return annotations === undefined ? schema : registerPendingOneOf(appendJsonSchema(schema, annotations))
287
+ }
288
+
275
289
  function compileDefinition(key: string, path: Path): CompiledJsonSchema {
276
290
  if (!Object.hasOwn(references, key)) {
277
291
  throw errorWithPath(`Invalid reference ${key}`, [...path, "$ref"])
@@ -280,9 +294,9 @@ function compileJsonSchema(
280
294
  if (cached !== undefined) return cached
281
295
 
282
296
  // Register the dependency cell before compiling so recursive references share it.
283
- const result: CompiledJsonSchema = [{}, []]
297
+ const result: CompiledJsonSchema = { schema: {}, dependencies: [] }
284
298
  compiledDefinitions.set(key, result)
285
- result[0] = recur(references[key], ["references", key], result[1])
299
+ result.schema = recur(references[key], ["references", key], result.dependencies)
286
300
  return result
287
301
  }
288
302
 
@@ -373,28 +387,35 @@ function compileJsonSchema(
373
387
  dependencies: Array<Exactness>
374
388
  ): JsonSchema.JsonSchema {
375
389
  if (representation._tag === "Reference") {
376
- dependencies.push(compileDefinition(representation.$ref, path)[1])
390
+ dependencies.push(compileDefinition(representation.$ref, path).dependencies)
377
391
  return { $ref: formatDefinitionReference(representation.$ref) }
378
392
  }
379
393
  const cached = compiledRepresentations.get(representation)
380
394
  if (cached !== undefined) {
381
- dependencies.push(cached[1])
382
- return cached[0]
395
+ dependencies.push(cached.dependencies)
396
+ return cached.schema
383
397
  }
384
398
 
385
399
  const local: Array<Exactness> = []
386
400
  dependencies.push(local)
387
- let output = on(representation, path, local)
388
- const ordinary = collectJsonSchemaAnnotations(representation.annotations, options)
389
- if (ordinary !== undefined) {
390
- output = { ...output, ...ordinary }
401
+ let output = {
402
+ ...on(representation, path, local),
403
+ ...collectJsonSchemaAnnotations(representation.annotations, options)
404
+ }
405
+ if (representation._tag === "String" && representation.content !== undefined) {
406
+ const content = representation.content
407
+ output.contentMediaType = content.mediaType
408
+ delete output.contentSchema
409
+ if (content.schema !== undefined) {
410
+ output.contentSchema = recur(content.schema, [...path, "content", "schema"], [])
411
+ }
391
412
  }
392
413
  for (let index = 0; index < representation.checks.length; index++) {
393
414
  const type = typeof output.type === "string" && isJsonSchemaType(output.type) ? output.type : undefined
394
415
  const check = compileCheck(representation.checks[index], type, [...path, "checks", index], local)
395
416
  if (check !== undefined) output = appendJsonSchema(output, ...check)
396
417
  }
397
- compiledRepresentations.set(representation, [output, local])
418
+ compiledRepresentations.set(representation, { schema: output, dependencies: local })
398
419
  return registerPendingOneOf(output)
399
420
  }
400
421
 
@@ -453,18 +474,17 @@ function compileJsonSchema(
453
474
  }))
454
475
  return types.length === 0 ? { not: {} } : { anyOf: types }
455
476
  }
456
- case "TemplateLiteral":
457
- return { type: "string", pattern: `^${representation.parts.map(getPartPattern).join("")}$` }
477
+ case "TemplateLiteral": {
478
+ const { exact, pattern } = getTemplateLiteralPattern(representation.parts)
479
+ if (!exact) dependencies.push(false)
480
+ return { type: "string", pattern }
481
+ }
458
482
  case "Arrays": {
459
483
  const out: JsonSchema.JsonSchema = { type: "array" }
460
484
  let minItems = representation.elements.length
461
485
  const prefixItems = representation.elements.map((element, index) => {
462
486
  if (element.isOptional) minItems--
463
- const schema = recur(element.type, [...path, "elements", index, "type"], dependencies)
464
- const annotations = collectJsonSchemaAnnotations(element.annotations, options)
465
- return annotations === undefined
466
- ? schema
467
- : registerPendingOneOf(appendJsonSchema(schema, annotations))
487
+ return compileAnnotatedMember(element, [...path, "elements", index], dependencies)
468
488
  })
469
489
  if (prefixItems.length > 0) {
470
490
  out.prefixItems = prefixItems
@@ -486,130 +506,15 @@ function compileJsonSchema(
486
506
  }
487
507
  return out
488
508
  }
489
- case "Objects": {
490
- if (representation.propertySignatures.length === 0 && representation.indexSignatures.length === 0) {
491
- return { not: { type: "null" } }
492
- }
493
- const out: JsonSchema.JsonSchema = { type: "object" }
494
- const properties: Record<string, JsonSchema.JsonSchema> = {}
495
- const required: Array<string> = []
496
- for (let index = 0; index < representation.propertySignatures.length; index++) {
497
- const property = representation.propertySignatures[index]
498
- if (typeof property.name !== "string") {
499
- throw errorWithPath("Objects property names must be strings", [
500
- ...path,
501
- "propertySignatures",
502
- index,
503
- "name"
504
- ])
505
- }
506
- const name = property.name
507
- const schema = recur(property.type, [...path, "propertySignatures", index, "type"], dependencies)
508
- const annotations = collectJsonSchemaAnnotations(property.annotations, options)
509
- InternalRecord.assignProperty(
510
- properties,
511
- name,
512
- annotations === undefined
513
- ? schema
514
- : registerPendingOneOf(appendJsonSchema(schema, annotations))
515
- )
516
- if (!property.isOptional) required.push(name)
517
- }
518
- if (representation.propertySignatures.length > 0) out.properties = properties
519
- if (required.length > 0) out.required = required
520
- const patternProperties: Record<string, JsonSchema.JsonSchema | false> = {}
521
- const additionalPropertySchemas: Array<JsonSchema.JsonSchema | false> = []
522
- const indexValueSchemas: Array<JsonSchema.JsonSchema | false> = []
523
- let hasUnrepresentableIndexPattern = false
524
- for (let index = 0; index < representation.indexSignatures.length; index++) {
525
- const signature = representation.indexSignatures[index]
526
- let type: JsonSchema.JsonSchema | false = recur(
527
- signature.type,
528
- [...path, "indexSignatures", index, "type"],
529
- dependencies
530
- )
531
- if (Equal.equals(type, { not: {} })) type = false
532
- indexValueSchemas.push(type)
533
- const patterns = getParameterPatterns(
534
- signature.parameter,
535
- [...path, "indexSignatures", index, "parameter"],
536
- new Set()
537
- )
538
- if (patterns === undefined) {
539
- hasUnrepresentableIndexPattern = true
540
- dependencies.push(false)
541
- continue
542
- }
543
- if (patterns.length === 0) {
544
- additionalPropertySchemas.push(type)
545
- } else {
546
- for (const pattern of patterns) {
547
- const previous = patternProperties[pattern]
548
- InternalRecord.assignProperty(
549
- patternProperties,
550
- pattern,
551
- previous === undefined
552
- ? type
553
- : previous === false || type === false
554
- ? false
555
- : registerPendingOneOf(appendJsonSchema(previous, type))
556
- )
557
- }
558
- }
559
- }
560
- const hasPatternProperties = Object.keys(patternProperties).length > 0
561
- if (hasPatternProperties) {
562
- out.patternProperties = patternProperties
563
- }
564
- if (hasUnrepresentableIndexPattern && options?.onExcessProperty === "error") {
565
- const propertyNames: Array<JsonSchema.JsonSchema> = []
566
- if (representation.propertySignatures.length > 0) {
567
- propertyNames.push({ enum: Object.keys(properties) })
568
- }
569
- for (let index = 0; index < representation.indexSignatures.length; index++) {
570
- propertyNames.push(
571
- getPropertyNameSchema(
572
- representation.indexSignatures[index].parameter,
573
- [...path, "indexSignatures", index, "parameter"],
574
- dependencies,
575
- new Set()
576
- )
577
- )
578
- }
579
- out.propertyNames = propertyNames.length === 1 ? propertyNames[0] : { anyOf: propertyNames }
580
- out.additionalProperties = indexValueSchemas.length === 1
581
- ? indexValueSchemas[0]
582
- : { anyOf: indexValueSchemas }
583
- if (additionalPropertySchemas.length > 0) {
584
- out.allOf = additionalPropertySchemas.map((type) => ({ type: "object", additionalProperties: type }))
585
- }
586
- } else if (additionalPropertySchemas.length === 0) {
587
- out.additionalProperties = hasUnrepresentableIndexPattern || options?.onExcessProperty !== "error"
588
- } else if (
589
- additionalPropertySchemas.length === 1 &&
590
- representation.propertySignatures.length === 0 &&
591
- !hasPatternProperties
592
- ) {
593
- out.additionalProperties = additionalPropertySchemas[0]
594
- } else if (additionalPropertySchemas.length > 0) {
595
- out.allOf = additionalPropertySchemas.map((type) => ({ type: "object", additionalProperties: type }))
596
- }
597
- if (
598
- typeof out.additionalProperties === "object" &&
599
- out.additionalProperties !== null &&
600
- Object.keys(out.additionalProperties).length === 0
601
- ) {
602
- delete out.additionalProperties
603
- }
604
- return out
605
- }
509
+ case "Objects":
510
+ return compileObjects(representation, path, dependencies)
606
511
  case "Union": {
607
512
  const branches: Array<Exactness> = []
608
513
  const types = representation.types.map((type, index) => recur(type, [...path, "types", index], branches))
609
514
  dependencies.push(branches)
610
515
  if (types.length === 0) return { not: {} }
611
516
  if (representation.options?.mode === "oneOf") {
612
- pendingOneOf.set(types, [branches, []])
517
+ pendingOneOf.set(types, { branches, schemas: [] })
613
518
  return { oneOf: types }
614
519
  }
615
520
  if (types.length > 1) {
@@ -626,6 +531,96 @@ function compileJsonSchema(
626
531
  }
627
532
  }
628
533
 
534
+ function compileObjects(
535
+ representation: SchemaRepresentation.Objects,
536
+ path: Path,
537
+ dependencies: Array<Exactness>
538
+ ): JsonSchema.JsonSchema {
539
+ const { indexSignatures, propertySignatures } = representation
540
+ if (propertySignatures.length === 0 && indexSignatures.length === 0) return { not: { type: "null" } }
541
+
542
+ const out: JsonSchema.JsonSchema = { type: "object" }
543
+ const properties: Record<string, JsonSchema.JsonSchema> = {}
544
+ const required: Array<string> = []
545
+ for (const [index, property] of propertySignatures.entries()) {
546
+ const propertyPath = [...path, "propertySignatures", index]
547
+ if (typeof property.name !== "string") {
548
+ throw errorWithPath("Objects property names must be strings", [...propertyPath, "name"])
549
+ }
550
+ InternalRecord.assignProperty(
551
+ properties,
552
+ property.name,
553
+ compileAnnotatedMember(property, propertyPath, dependencies)
554
+ )
555
+ if (!property.isOptional) required.push(property.name)
556
+ }
557
+ if (propertySignatures.length > 0) out.properties = properties
558
+ if (required.length > 0) out.required = required
559
+
560
+ const indexes = indexSignatures.map((signature, index) => {
561
+ const indexPath = [...path, "indexSignatures", index]
562
+ const schema = recur(signature.type, [...indexPath, "type"], dependencies)
563
+ const type: JsonSchema.JsonSchema | false = Equal.equals(schema, { not: {} }) ? false : schema
564
+ const patterns = getParameterPatterns(signature.parameter, [...indexPath, "parameter"], new Set())
565
+ if (patterns === undefined) dependencies.push(false)
566
+ return { type, patterns }
567
+ })
568
+ const patternProperties: Record<string, JsonSchema.JsonSchema | false> = {}
569
+ for (const { patterns, type } of indexes) {
570
+ for (const pattern of patterns ?? []) {
571
+ const previous = patternProperties[pattern]
572
+ InternalRecord.assignProperty(
573
+ patternProperties,
574
+ pattern,
575
+ previous === undefined
576
+ ? type
577
+ : previous === false || type === false
578
+ ? false
579
+ : registerPendingOneOf(appendJsonSchema(previous, type))
580
+ )
581
+ }
582
+ }
583
+ const hasPatternProperties = Object.keys(patternProperties).length > 0
584
+ if (hasPatternProperties) out.patternProperties = patternProperties
585
+
586
+ const additionalPropertySchemas = indexes.filter(({ patterns }) => patterns?.length === 0).map(({ type }) => type)
587
+ const hasUnrepresentableIndexPattern = indexes.some(({ patterns }) => patterns === undefined)
588
+ if (hasUnrepresentableIndexPattern && options?.onExcessProperty === "error") {
589
+ const propertyNames: Array<JsonSchema.JsonSchema> = []
590
+ if (propertySignatures.length > 0) propertyNames.push({ enum: Object.keys(properties) })
591
+ for (const [index, signature] of indexSignatures.entries()) {
592
+ propertyNames.push(
593
+ getPropertyNameSchema(
594
+ signature.parameter,
595
+ [...path, "indexSignatures", index, "parameter"],
596
+ dependencies,
597
+ new Set()
598
+ )
599
+ )
600
+ }
601
+ out.propertyNames = propertyNames.length === 1 ? propertyNames[0] : { anyOf: propertyNames }
602
+ const values = indexes.map(({ type }) => type)
603
+ out.additionalProperties = values.length === 1 ? values[0] : { anyOf: values }
604
+ if (additionalPropertySchemas.length > 0) {
605
+ out.allOf = additionalPropertySchemas.map((type) => ({ type: "object", additionalProperties: type }))
606
+ }
607
+ } else if (additionalPropertySchemas.length === 0) {
608
+ out.additionalProperties = hasUnrepresentableIndexPattern || options?.onExcessProperty !== "error"
609
+ } else if (additionalPropertySchemas.length === 1 && propertySignatures.length === 0 && !hasPatternProperties) {
610
+ out.additionalProperties = additionalPropertySchemas[0]
611
+ } else {
612
+ out.allOf = additionalPropertySchemas.map((type) => ({ type: "object", additionalProperties: type }))
613
+ }
614
+ if (
615
+ typeof out.additionalProperties === "object" &&
616
+ out.additionalProperties !== null &&
617
+ Object.keys(out.additionalProperties).length === 0
618
+ ) {
619
+ delete out.additionalProperties
620
+ }
621
+ return out
622
+ }
623
+
629
624
  function getPropertyNameSchema(
630
625
  parameter: SchemaRepresentation.Representation,
631
626
  path: Path,
@@ -634,7 +629,7 @@ function compileJsonSchema(
634
629
  ): JsonSchema.JsonSchema {
635
630
  switch (parameter._tag) {
636
631
  case "Number":
637
- return { type: "string", pattern: `^(?:${InternalAST.FINITE_PATTERN}|Infinity|-Infinity|NaN)$` }
632
+ return { type: "string", pattern: numberKeyPattern }
638
633
  case "Reference": {
639
634
  if (seenReferences.has(parameter.$ref)) return { type: "string" }
640
635
  return getPropertyNameSchema(
@@ -680,8 +675,11 @@ function compileJsonSchema(
680
675
  ? [schema.pattern]
681
676
  : undefined
682
677
  }
683
- case "TemplateLiteral":
684
- return parameter.checks.length === 0 ? [`^${parameter.parts.map(getPartPattern).join("")}$`] : undefined
678
+ case "TemplateLiteral": {
679
+ if (parameter.checks.length > 0) return undefined
680
+ const { exact, pattern } = getTemplateLiteralPattern(parameter.parts)
681
+ return exact ? [pattern] : undefined
682
+ }
685
683
  case "Union": {
686
684
  if (parameter.types.length === 0 || parameter.checks.length > 0 || parameter.options?.mode === "oneOf") {
687
685
  return undefined
@@ -696,13 +694,56 @@ function compileJsonSchema(
696
694
  return patterns
697
695
  }
698
696
  case "Number":
699
- return parameter.checks.length === 0
700
- ? [`^(?:${InternalAST.FINITE_PATTERN}|Infinity|-Infinity|NaN)$`]
701
- : undefined
697
+ return parameter.checks.length === 0 ? [numberKeyPattern] : undefined
702
698
  default:
703
699
  throw errorWithPath(`Invalid index signature parameter ${parameter._tag}`, path)
704
700
  }
705
701
  }
702
+
703
+ function getTemplateLiteralPattern(
704
+ parts: ReadonlyArray<SchemaRepresentation.Representation>
705
+ ): { pattern: string; exact: boolean } {
706
+ const activeReferences = new Set<string>()
707
+ let exact = true
708
+ const pattern = `^${parts.map(getPartPattern).join("")}$`
709
+ return { pattern, exact }
710
+
711
+ function getPartPattern(part: SchemaRepresentation.Representation): string {
712
+ // A segment check cannot generally be embedded in the enclosing pattern, even when it has a JSON Schema exporter.
713
+ if (part._tag !== "Reference" && part.checks.length > 0) exact = false
714
+ switch (part._tag) {
715
+ case "Reference": {
716
+ if (!Object.hasOwn(references, part.$ref)) {
717
+ throw errorWithPath(`Invalid reference ${part.$ref}`, [])
718
+ }
719
+ if (activeReferences.has(part.$ref)) {
720
+ throw errorWithPath(`Invalid recursive TemplateLiteral part ${part.$ref}`, [])
721
+ }
722
+ activeReferences.add(part.$ref)
723
+ const pattern = getPartPattern(references[part.$ref])
724
+ activeReferences.delete(part.$ref)
725
+ return pattern
726
+ }
727
+ case "Literal":
728
+ return RegEx.escape(globalThis.String(part.literal))
729
+ case "String":
730
+ return InternalAST.STRING_PATTERN
731
+ case "Number":
732
+ return InternalAST.FINITE_PATTERN
733
+ case "BigInt":
734
+ return "-?\\d+"
735
+ case "TemplateLiteral":
736
+ return part.parts.map(getPartPattern).join("")
737
+ case "Union":
738
+ if (part.types.length === 0) return "(?!)"
739
+ // Regex alternatives do not enforce that exactly one branch matches.
740
+ if (part.options?.mode === "oneOf") exact = false
741
+ return `(?:${part.types.map(getPartPattern).join("|")})`
742
+ default:
743
+ throw errorWithPath(`Invalid TemplateLiteral part ${part._tag}`, [])
744
+ }
745
+ }
746
+ }
706
747
  }
707
748
 
708
749
  function isJsonSchemaType(input: string): input is JsonSchema.Type {
@@ -730,25 +771,6 @@ function compactEnums(
730
771
  return { type: sharedType, enum: values }
731
772
  }
732
773
 
733
- function getPartPattern(part: SchemaRepresentation.Representation): string {
734
- switch (part._tag) {
735
- case "Literal":
736
- return RegEx.escape(globalThis.String(part.literal))
737
- case "String":
738
- return InternalAST.STRING_PATTERN
739
- case "Number":
740
- return InternalAST.FINITE_PATTERN
741
- case "BigInt":
742
- return "-?\\d+"
743
- case "TemplateLiteral":
744
- return part.parts.map(getPartPattern).join("")
745
- case "Union":
746
- return `(?:${part.types.map(getPartPattern).join("|")})`
747
- default:
748
- throw errorWithPath(`Invalid TemplateLiteral part ${part._tag}`, [])
749
- }
750
- }
751
-
752
774
  /** @internal */
753
775
  export function toJsonSchemaDocument(
754
776
  document: SchemaRepresentation.Document,