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
@@ -1,20 +1,27 @@
1
- import * as Iterable from "../../Iterable.ts"
1
+ import { escapeToken, parseUriFragment } from "../../JsonPointer.ts"
2
2
  import * as JsonSchema from "../../JsonSchema.ts"
3
- import { remainder } from "../../Number.ts"
4
- import type * as Schema from "../../Schema.ts"
3
+ import * as Schema from "../../Schema.ts"
5
4
  import * as InternalAST from "../../SchemaAST.ts"
6
5
  import type * as SchemaRepresentation from "../../SchemaRepresentation.ts"
7
6
  import { errorWithPath } from "../errors.ts"
7
+ import * as InternalJsonSchema from "../jsonSchema.ts"
8
8
  import * as InternalRecord from "../record.ts"
9
9
  import * as InternalAnnotations from "./annotations.ts"
10
- import { fromRepresentation, fromRepresentations } from "./fromRepresentation.ts"
10
+ import { ReferenceSlot } from "./fromRepresentation.ts"
11
11
 
12
12
  type Path = ReadonlyArray<string | number>
13
- type Representation = SchemaRepresentation.Representation
14
- type Check = Filter | FilterGroup
13
+ type Check = Filter | FilterGroup | PropertyNames
15
14
 
16
- interface Filter extends SchemaRepresentation.Filter {
17
- readonly representation: SchemaRepresentation.CheckRepresentationAnnotation<ImportedJsonSchemaRepresentation>
15
+ interface Filter {
16
+ readonly _tag: "Filter"
17
+ readonly filter: InternalAST.Filter<any>
18
+ readonly annotations?: Schema.Annotations.Filter | undefined
19
+ }
20
+
21
+ interface PropertyNames {
22
+ readonly _tag: "PropertyNames"
23
+ readonly type: ImportedJsonSchemaRepresentation
24
+ readonly annotations?: Schema.Annotations.Filter | undefined
18
25
  }
19
26
 
20
27
  interface FilterGroup {
@@ -54,7 +61,6 @@ interface ImportedArrays extends ImportedKeyword<"Arrays"> {
54
61
 
55
62
  interface ImportedProperty extends ImportedElement {
56
63
  readonly name: string
57
- readonly isMutable: false
58
64
  }
59
65
 
60
66
  interface ImportedIndexSignature {
@@ -79,7 +85,7 @@ interface ImportedUnion extends ImportedKeyword<"Union"> {
79
85
  }
80
86
 
81
87
  // Import nodes keep source metadata and scopes until normalization is complete.
82
- // Only finalize produces the public Effect representation.
88
+ // Only finalize constructs runtime schemas after normalization.
83
89
  type ImportedJsonSchemaRepresentation =
84
90
  | ImportedKeyword<"Never">
85
91
  | ImportedKeyword<"Unknown">
@@ -114,6 +120,13 @@ interface ImportedObjectScope {
114
120
  const never: ImportedJsonSchemaRepresentation = { _tag: "Never", checks: [] }
115
121
  const unknown: ImportedJsonSchemaRepresentation = { _tag: "Unknown", checks: [] }
116
122
  const string: ImportedJsonSchemaRepresentation = { _tag: "String", checks: [] }
123
+ const primitiveSchemas = {
124
+ Never: Schema.Never,
125
+ Null: Schema.Null,
126
+ String: Schema.String,
127
+ Number: Schema.Number,
128
+ Boolean: Schema.Boolean
129
+ }
117
130
  const unsupportedStructuredValue = "Only primitive values are supported in \"const\" and \"enum\"."
118
131
  const jsonSchemaPatternFlags = "u"
119
132
 
@@ -202,30 +215,17 @@ function hasTypeSpecificKeywords(schema: JsonSchema.JsonSchema): boolean {
202
215
  return jsonSchemaTypeSpecificKeys.some((key) => schema[key] !== undefined)
203
216
  }
204
217
 
205
- function jsonSchemaFilter(
206
- id: string,
207
- payload: Schema.Json,
208
- schemas?: ReadonlyArray<ImportedJsonSchemaRepresentation>
209
- ): Check {
210
- return {
211
- _tag: "Filter",
212
- aborted: false,
213
- representation: {
214
- id,
215
- payload,
216
- ...(schemas === undefined ? undefined : { schemas })
217
- }
218
- }
218
+ function makeFilter(filter: InternalAST.Filter<any>): Filter {
219
+ return { _tag: "Filter", filter }
219
220
  }
220
221
 
221
222
  function addNumberCheck(
222
223
  checks: Array<Check>,
223
224
  value: unknown,
224
- id: string,
225
- key: string
225
+ make: (value: number) => InternalAST.Filter<any>
226
226
  ): void {
227
227
  if (typeof value === "number") {
228
- checks.push(jsonSchemaFilter(id, { [key]: value }))
228
+ checks.push(makeFilter(make(value)))
229
229
  }
230
230
  }
231
231
 
@@ -259,108 +259,103 @@ function jsonSchemaAnnotations(
259
259
  return { annotations: Object.keys(annotations).length === 0 ? undefined : annotations, customAnnotations }
260
260
  }
261
261
 
262
- function jsonDeclaration(
263
- annotations: Schema.Annotations.Annotations | undefined
264
- ): Representation {
265
- return {
266
- _tag: "Declaration",
267
- representation: {
268
- id: "effect/schema/Json",
269
- payload: null
270
- },
271
- annotations: {
272
- ...annotations,
273
- expected: "JSON value"
274
- },
275
- checks: [],
276
- typeParameters: []
277
- }
278
- }
279
-
280
- function translateJsonSchemaMultiDocument(
262
+ /** @internal */
263
+ export function fromJsonSchemaMultiDocument(
281
264
  document: JsonSchema.MultiDocument<"draft-2020-12">,
282
265
  options?: SchemaRepresentation.FromJsonSchemaOptions,
283
266
  singleRoot = false
284
- ): SchemaRepresentation.MultiDocument {
267
+ ): readonly [Schema.Top, ...Array<Schema.Top>] {
285
268
  const definitionCache = new Map<string, ImportedJsonSchemaRepresentation | null>()
269
+ const validatedAliases = new Set<string>()
286
270
  const resolvingChoices = new Set<string>()
287
- const finalReferences = new Map<string, ImportedReference>()
271
+ const references = new Map<string, ReferenceSlot>()
288
272
  let inNestedResource = false
289
273
 
290
- function finalize(input: ImportedJsonSchemaRepresentation): Representation {
274
+ function finalize(input: ImportedJsonSchemaRepresentation): Schema.Top {
291
275
  const annotations = mergeAnnotations(input.annotations, input.customAnnotations)
292
276
  if (input._tag === "Reference") {
293
- if (!finalReferences.has(input.$ref)) finalReferences.set(input.$ref, input)
294
- const reference: SchemaRepresentation.Reference = { _tag: "Reference", $ref: input.$ref }
295
- if (annotations === undefined) return reference
296
- resolveReference(input, input.path)
297
- return { _tag: "Suspend", thunk: reference, checks: [], annotations }
277
+ if (annotations !== undefined) resolveReference(input, input.path)
278
+ let slot = references.get(input.$ref)
279
+ if (slot === undefined) {
280
+ slot = new ReferenceSlot(input.$ref)
281
+ references.set(input.$ref, slot)
282
+ slot.body = finalize(translateDefinition(input.$ref, input.path)).annotate({ identifier: input.$ref })
283
+ }
284
+ return annotations === undefined ? slot.body ?? slot.wrapper : slot.wrapper.annotate(annotations)
298
285
  }
299
- const { customAnnotations, ...node } = input
300
- const representation = { ...node, annotations, checks: node.checks.map(finalizeCheck) }
301
- switch (representation._tag) {
286
+
287
+ let schema: Schema.Top
288
+ switch (input._tag) {
302
289
  case "Unknown":
303
- return jsonDeclaration(annotations)
304
- case "Arrays":
305
- return {
306
- ...representation,
307
- elements: representation.elements.map((element) => ({
308
- ...element,
309
- type: finalize(element.type)
310
- })),
311
- rest: representation.rest.map(finalize)
312
- }
290
+ return Schema.Json.annotate({ ...annotations, expected: "JSON value" })
291
+ case "Never":
292
+ case "Null":
293
+ case "String":
294
+ case "Number":
295
+ case "Boolean":
296
+ schema = primitiveSchemas[input._tag]
297
+ break
298
+ case "Literal":
299
+ schema = Schema.Literal(input.literal)
300
+ break
301
+ case "Arrays": {
302
+ const elements = input.elements.map((element) => {
303
+ const type = finalize(element.type)
304
+ return element.isOptional ? Schema.optionalKey(type) : type
305
+ })
306
+ const rest = input.rest[0] === undefined ? undefined : finalize(input.rest[0])
307
+ schema = rest !== undefined
308
+ ? elements.length === 0
309
+ ? Schema.Array(rest)
310
+ : Schema.TupleWithRest(Schema.Tuple(elements), [rest])
311
+ : Schema.Tuple(elements)
312
+ break
313
+ }
313
314
  case "Objects": {
314
- // Intersections may reduce open patterns to fixed properties, so reject only
315
- // if an open pattern remains in the final representation.
316
- const { scopes, path, ...object } = representation
315
+ // Intersections may remove open patterns, so check the normalized object.
317
316
  if (
318
- representation.indexSignatures[0]?.parameter === string &&
319
- scopes.some((scope) => scope.patterns.length > 0)
317
+ input.indexSignatures[0]?.parameter === string &&
318
+ input.scopes.some((scope) => scope.patterns.length > 0)
320
319
  ) {
321
320
  throw errorWithPath(
322
321
  "Cannot import open \"patternProperties\": unmatched keys cannot be typed correctly.",
323
- path
322
+ input.path
324
323
  )
325
324
  }
326
- return {
327
- ...object,
328
- propertySignatures: representation.propertySignatures.map((property) => ({
329
- ...property,
330
- type: finalize(property.type)
331
- })),
332
- indexSignatures: representation.indexSignatures.map((indexSignature) => ({
333
- parameter: finalize(indexSignature.parameter),
334
- type: finalize(indexSignature.type)
335
- }))
325
+ const fields: Record<string, Schema.Top> = {}
326
+ for (const property of input.propertySignatures) {
327
+ const type = finalize(property.type)
328
+ InternalRecord.assignProperty(fields, property.name, property.isOptional ? Schema.optionalKey(type) : type)
336
329
  }
330
+ const index = input.indexSignatures[0]
331
+ const record = index === undefined
332
+ ? undefined
333
+ : Schema.Record(finalize(index.parameter) as Schema.Record.Key, finalize(index.type))
334
+ schema = record !== undefined
335
+ ? input.propertySignatures.length === 0
336
+ ? record
337
+ : Schema.StructWithRest(Schema.Struct(fields), [record])
338
+ : Schema.Struct(fields)
339
+ break
337
340
  }
338
341
  case "Union":
339
- return { ...representation, types: representation.types.map(finalize) }
340
- default:
341
- return representation
342
+ schema = Schema.Union(input.types.map(finalize), input.options)
343
+ break
342
344
  }
345
+ if (annotations !== undefined) schema = schema.annotate(annotations)
346
+ const checks = input.checks.map(finalizeCheck)
347
+ return checks.length > 0 ? schema.check(...checks as [InternalAST.Check<any>]) : schema
343
348
  }
344
349
 
345
- function finalizeCheck(check: Check): SchemaRepresentation.Check {
350
+ function finalizeCheck(check: Check): InternalAST.Check<any> {
346
351
  if (check._tag === "FilterGroup") {
347
- return {
348
- ...check,
349
- checks: check.checks.map(finalizeCheck) as [SchemaRepresentation.Check, ...Array<SchemaRepresentation.Check>]
350
- }
351
- }
352
- const representation = check.representation
353
- const schemas = representation.schemas
354
- if (schemas === undefined) {
355
- return check
356
- }
357
- return {
358
- ...check,
359
- representation: {
360
- ...representation,
361
- schemas: schemas.map(finalize)
362
- }
352
+ return Schema.makeFilterGroup(
353
+ check.checks.map(finalizeCheck) as [InternalAST.Check<any>, ...Array<InternalAST.Check<any>>],
354
+ check.annotations
355
+ )
363
356
  }
357
+ const filter = check._tag === "PropertyNames" ? Schema.isPropertyNames(finalize(check.type)) : check.filter
358
+ return check.annotations === undefined ? filter : filter.annotate(check.annotations)
364
359
  }
365
360
 
366
361
  function annotate(
@@ -392,11 +387,50 @@ function translateJsonSchemaMultiDocument(
392
387
  return cached
393
388
  }
394
389
  definitionCache.set(key, null)
395
- const representation = translateSchema(document.definitions[key], ["definitions", key])
390
+ const pointer = pointers.get(key)
391
+ const wasInNestedResource = inNestedResource
392
+ if (pointer !== undefined) inNestedResource = pointer.crossesResource
393
+ const representation = pointer === undefined
394
+ ? translateSchema(document.definitions[key], ["definitions", key])
395
+ : translateSchema(pointer.target, ["definitions", ...pointer.tokens])
396
+ inNestedResource = wasInNestedResource
396
397
  definitionCache.set(key, representation)
398
+ if (pointer !== undefined) {
399
+ validatePointerAliases(representation, path, recursiveReferenceError)
400
+ }
397
401
  return representation
398
402
  }
399
403
 
404
+ function validatePointerAliases(
405
+ representation: ImportedJsonSchemaRepresentation,
406
+ path: Path,
407
+ recursiveReferenceError?: string,
408
+ visiting: Set<string> = new Set()
409
+ ): void {
410
+ if (representation._tag === "Reference") {
411
+ const key = representation.$ref
412
+ if (validatedAliases.has(key)) return
413
+ if (visiting.has(key)) {
414
+ throw errorWithPath(`Definition ${JSON.stringify(key)} is a circular alias.`, [...path, "$ref"])
415
+ }
416
+ visiting.add(key)
417
+ validatePointerAliases(
418
+ translateDefinition(key, path, recursiveReferenceError),
419
+ path,
420
+ recursiveReferenceError,
421
+ visiting
422
+ )
423
+ visiting.delete(key)
424
+ validatedAliases.add(key)
425
+ } else if (representation._tag === "Union") {
426
+ // Alternatives share completed checks, but only ancestors belong to the active path.
427
+ for (const type of representation.types) {
428
+ validatePointerAliases(type, path, recursiveReferenceError, visiting)
429
+ }
430
+ }
431
+ // Recursion through object properties or array items consumes a child value.
432
+ }
433
+
400
434
  function resolveReference(
401
435
  reference: ImportedReference,
402
436
  path: Path,
@@ -420,6 +454,59 @@ function translateJsonSchemaMultiDocument(
420
454
  return representation
421
455
  }
422
456
 
457
+ // Pointers below a definition are registered as definitions keyed by their escaped tokens, e.g. "O/properties/v"
458
+ const pointers = new Map<
459
+ string,
460
+ { readonly target: unknown; readonly tokens: ReadonlyArray<string>; readonly crossesResource: boolean }
461
+ >()
462
+
463
+ function resolvePointer($ref: string, path: Path): string {
464
+ const pointer = $ref.startsWith("#") ? parseUriFragment($ref) : undefined
465
+ if (pointer === undefined || pointer.length < 3 || pointer[0] !== "$defs") {
466
+ throw errorWithPath(`Unsupported $ref ${JSON.stringify($ref)}. Use "#/$defs/Name".`, [...path, "$ref"])
467
+ }
468
+ const tokens = pointer.slice(1)
469
+ const key = tokens.map(escapeToken).join("/")
470
+ if (Object.hasOwn(document.definitions, key)) {
471
+ throw errorWithPath(
472
+ `Pointer $ref ${JSON.stringify($ref)} conflicts with definition ${JSON.stringify(key)}.`,
473
+ [...path, "$ref"]
474
+ )
475
+ }
476
+ if (pointers.has(key)) return key
477
+ // Walk through the onEnter result of each ancestor schema, as translateSchema would see it
478
+ let node: unknown = document.definitions
479
+ let position: "schema" | "container" | "value" = "container"
480
+ let crossesResource = false
481
+ for (const token of tokens) {
482
+ if (position === "container") {
483
+ position = "schema"
484
+ } else if (position === "schema" && isObject(node)) {
485
+ if (options?.onEnter !== undefined) node = options.onEnter(node as JsonSchema.JsonSchema)
486
+ crossesResource ||= isObject(node) && typeof node.$id === "string"
487
+ const kind = InternalJsonSchema.getSubschemaKind(token)
488
+ position = kind === "schema"
489
+ ? "schema"
490
+ : kind === undefined
491
+ ? "value"
492
+ : "container"
493
+ } else {
494
+ position = "value"
495
+ }
496
+ node = typeof node === "object" && node !== null && Object.hasOwn(node, token)
497
+ ? (node as Record<string, unknown>)[token]
498
+ : undefined
499
+ }
500
+ if (!isObject(node) && typeof node !== "boolean") {
501
+ throw errorWithPath(
502
+ `Unresolvable $ref ${JSON.stringify($ref)}. Nothing exists at that location.`,
503
+ [...path, "$ref"]
504
+ )
505
+ }
506
+ pointers.set(key, { target: node, tokens, crossesResource })
507
+ return key
508
+ }
509
+
423
510
  function mergeAnnotations(
424
511
  left: Schema.Annotations.Annotations | undefined,
425
512
  right: Schema.Annotations.Annotations | undefined
@@ -444,8 +531,10 @@ function translateJsonSchemaMultiDocument(
444
531
  ): Checked {
445
532
  let checks = right.checks
446
533
  for (const id of deduplicate) {
447
- if (left.checks.some((check) => check._tag === "Filter" && check.representation?.id === id)) {
448
- checks = checks.filter((check) => check._tag !== "Filter" || check.representation?.id !== id)
534
+ if (left.checks.some((check) => check._tag === "Filter" && check.filter.annotations?.representation?.id === id)) {
535
+ checks = checks.filter((check) =>
536
+ check._tag !== "Filter" || check.filter.annotations?.representation?.id !== id
537
+ )
449
538
  }
450
539
  }
451
540
  const annotations = checks.length === 0 ? mergeAnnotations(left.annotations, right.annotations) : left.annotations
@@ -465,36 +554,11 @@ function translateJsonSchemaMultiDocument(
465
554
  }
466
555
  }
467
556
 
468
- function satisfiesPrimitiveCheck(check: Check, value: string | number): boolean | undefined {
557
+ function satisfiesPrimitiveCheck(check: Check, value: string | number): boolean {
469
558
  if (check._tag === "FilterGroup") {
470
559
  return check.checks.every((check) => satisfiesPrimitiveCheck(check, value))
471
560
  }
472
- const representation = check.representation
473
- const payload = representation.payload as Record<string, any>
474
- switch (representation.id) {
475
- case "effect/schema/isMinLength":
476
- return (value as string).length >= payload.minLength
477
- case "effect/schema/isMinCodePoints":
478
- return Iterable.size(value as string) >= payload.minCodePoints
479
- case "effect/schema/isMaxCodePoints":
480
- return Iterable.size(value as string) <= payload.maxCodePoints
481
- case "effect/schema/isPattern":
482
- return new RegExp(payload.source as string, payload.flags as string).test(value as string)
483
- case "effect/schema/isFinite":
484
- return globalThis.Number.isFinite(value as number)
485
- case "effect/schema/isInt":
486
- return globalThis.Number.isSafeInteger(value as number)
487
- case "effect/schema/isMultipleOf":
488
- return remainder(value as number, payload.divisor) === 0
489
- case "effect/schema/isGreaterThan":
490
- return (value as number) > payload.exclusiveMinimum
491
- case "effect/schema/isGreaterThanOrEqualTo":
492
- return (value as number) >= payload.minimum
493
- case "effect/schema/isLessThan":
494
- return (value as number) < payload.exclusiveMaximum
495
- case "effect/schema/isLessThanOrEqualTo":
496
- return (value as number) <= payload.maximum
497
- }
561
+ return check._tag === "Filter" && check.filter.run(value, Schema.Unknown.ast, {}) === undefined
498
562
  }
499
563
 
500
564
  function satisfiesLiteral(
@@ -620,7 +684,7 @@ function translateJsonSchemaMultiDocument(
620
684
  }
621
685
  const type = intersectAll(types, [...path, "properties", name])
622
686
  if (!isOptional && type._tag === "Never") return never
623
- properties.push({ name, type, isOptional, isMutable: false })
687
+ properties.push({ name, type, isOptional })
624
688
  }
625
689
 
626
690
  const indexSignatures: ReadonlyArray<ImportedIndexSignature> = closedPattern !== undefined
@@ -712,7 +776,7 @@ function translateJsonSchemaMultiDocument(
712
776
  function checkHasChoices(check: Check): boolean {
713
777
  return check._tag === "FilterGroup"
714
778
  ? check.checks.some(checkHasChoices)
715
- : check.representation.schemas?.some(hasChoices) === true
779
+ : check._tag === "PropertyNames" && hasChoices(check.type)
716
780
  }
717
781
 
718
782
  function makeUnion(
@@ -1003,19 +1067,14 @@ function translateJsonSchemaMultiDocument(
1003
1067
  [...path, "$ref"]
1004
1068
  )
1005
1069
  }
1006
- const $ref = JsonSchema.getReferenceKey(schema.$ref)
1007
- if ($ref === undefined) {
1008
- throw errorWithPath(
1009
- `Unsupported $ref ${JSON.stringify(schema.$ref)}. Use "#/$defs/Name".`,
1010
- [...path, "$ref"]
1011
- )
1012
- }
1013
- if (!Object.hasOwn(document.definitions, $ref)) {
1070
+ const key = JsonSchema.getReferenceKey(schema.$ref)
1071
+ if (key !== undefined && !Object.hasOwn(document.definitions, key)) {
1014
1072
  throw errorWithPath(
1015
- `Missing definition ${JSON.stringify($ref)} for $ref ${JSON.stringify(schema.$ref)}.`,
1073
+ `Missing definition ${JSON.stringify(key)} for $ref ${JSON.stringify(schema.$ref)}.`,
1016
1074
  [...path, "$ref"]
1017
1075
  )
1018
1076
  }
1077
+ const $ref = key ?? resolvePointer(schema.$ref, path)
1019
1078
  const reference: ImportedReference = { _tag: "Reference", $ref, path }
1020
1079
  representation = representation._tag === "Unknown"
1021
1080
  ? reference
@@ -1090,7 +1149,7 @@ function translateJsonSchemaMultiDocument(
1090
1149
  return {
1091
1150
  _tag: "Number",
1092
1151
  checks: [
1093
- jsonSchemaFilter(type === "number" ? "effect/schema/isFinite" : "effect/schema/isInt", null),
1152
+ makeFilter(type === "number" ? Schema.isFinite() : Schema.isInt()),
1094
1153
  ...collectNumberChecks(schema)
1095
1154
  ]
1096
1155
  }
@@ -1146,7 +1205,7 @@ function translateJsonSchemaMultiDocument(
1146
1205
  } catch {
1147
1206
  throw errorWithPath("Cannot import pattern using ECMAScript Unicode mode.", path)
1148
1207
  }
1149
- return jsonSchemaFilter("effect/schema/isPattern", { source: regex.source, flags: regex.flags })
1208
+ return makeFilter(Schema.isPattern(regex))
1150
1209
  }
1151
1210
  }
1152
1211
  }
@@ -1154,11 +1213,11 @@ function translateJsonSchemaMultiDocument(
1154
1213
  function collectStringChecks(schema: JsonSchema.JsonSchema, path: Path): Array<Check> {
1155
1214
  const checks: Array<Check> = []
1156
1215
  if (schema.minLength === 1) {
1157
- addNumberCheck(checks, schema.minLength, "effect/schema/isMinLength", "minLength")
1216
+ addNumberCheck(checks, schema.minLength, Schema.isMinLength)
1158
1217
  } else {
1159
- addNumberCheck(checks, schema.minLength, "effect/schema/isMinCodePoints", "minCodePoints")
1218
+ addNumberCheck(checks, schema.minLength, Schema.isMinCodePoints)
1160
1219
  }
1161
- addNumberCheck(checks, schema.maxLength, "effect/schema/isMaxCodePoints", "maxCodePoints")
1220
+ addNumberCheck(checks, schema.maxLength, Schema.isMaxCodePoints)
1162
1221
  if (typeof schema.pattern === "string") {
1163
1222
  const check = importPatternCheck(schema.pattern, [...path, "pattern"])
1164
1223
  if (check !== undefined) checks.push(check)
@@ -1168,11 +1227,11 @@ function translateJsonSchemaMultiDocument(
1168
1227
 
1169
1228
  function collectNumberChecks(schema: JsonSchema.JsonSchema): Array<Check> {
1170
1229
  const checks: Array<Check> = []
1171
- addNumberCheck(checks, schema.minimum, "effect/schema/isGreaterThanOrEqualTo", "minimum")
1172
- addNumberCheck(checks, schema.maximum, "effect/schema/isLessThanOrEqualTo", "maximum")
1173
- addNumberCheck(checks, schema.exclusiveMinimum, "effect/schema/isGreaterThan", "exclusiveMinimum")
1174
- addNumberCheck(checks, schema.exclusiveMaximum, "effect/schema/isLessThan", "exclusiveMaximum")
1175
- addNumberCheck(checks, schema.multipleOf, "effect/schema/isMultipleOf", "divisor")
1230
+ addNumberCheck(checks, schema.minimum, Schema.isGreaterThanOrEqualTo)
1231
+ addNumberCheck(checks, schema.maximum, Schema.isLessThanOrEqualTo)
1232
+ addNumberCheck(checks, schema.exclusiveMinimum, Schema.isGreaterThan)
1233
+ addNumberCheck(checks, schema.exclusiveMaximum, Schema.isLessThan)
1234
+ addNumberCheck(checks, schema.multipleOf, Schema.isMultipleOf)
1176
1235
  return checks
1177
1236
  }
1178
1237
 
@@ -1182,13 +1241,13 @@ function translateJsonSchemaMultiDocument(
1182
1241
  !Array.isArray(schema.prefixItems) ||
1183
1242
  typeof schema.minItems === "number" && schema.minItems > schema.prefixItems.length
1184
1243
  ) {
1185
- addNumberCheck(checks, schema.minItems, "effect/schema/isMinLength", "minLength")
1244
+ addNumberCheck(checks, schema.minItems, Schema.isMinLength)
1186
1245
  }
1187
1246
  if (!isMaxItemsRedundant) {
1188
- addNumberCheck(checks, schema.maxItems, "effect/schema/isMaxLength", "maxLength")
1247
+ addNumberCheck(checks, schema.maxItems, Schema.isMaxLength)
1189
1248
  }
1190
1249
  if (schema.uniqueItems === true) {
1191
- checks.push(jsonSchemaFilter("effect/schema/isUnique", null))
1250
+ checks.push(makeFilter(Schema.isUnique()))
1192
1251
  }
1193
1252
  return checks
1194
1253
  }
@@ -1242,41 +1301,33 @@ function translateJsonSchemaMultiDocument(
1242
1301
  path: Path
1243
1302
  ): Array<Check> {
1244
1303
  const checks: Array<Check> = []
1245
- addNumberCheck(checks, schema.minProperties, "effect/schema/isMinProperties", "minProperties")
1246
- addNumberCheck(checks, schema.maxProperties, "effect/schema/isMaxProperties", "maxProperties")
1304
+ addNumberCheck(checks, schema.minProperties, Schema.isMinProperties)
1305
+ addNumberCheck(checks, schema.maxProperties, Schema.isMaxProperties)
1247
1306
  if (schema.propertyNames !== undefined) {
1248
1307
  const propertyNamesPath = [...path, "propertyNames"]
1249
- checks.push(jsonSchemaFilter(
1250
- "effect/schema/isPropertyNames",
1251
- null,
1252
- [intersect(
1308
+ checks.push({
1309
+ _tag: "PropertyNames",
1310
+ type: intersect(
1253
1311
  string,
1254
1312
  translateSchema(schema.propertyNames, propertyNamesPath),
1255
1313
  propertyNamesPath
1256
- )]
1257
- ))
1314
+ )
1315
+ })
1258
1316
  }
1259
1317
  return checks
1260
1318
  }
1261
1319
 
1262
- const references: Record<string, Representation> = {}
1263
- const representations = document.schemas.map((schema, index) =>
1320
+ return document.schemas.map((schema, index) =>
1264
1321
  finalize(translateSchema(schema, singleRoot ? ["schema"] : ["schemas", index], true))
1265
- ) as [Representation, ...Array<Representation>]
1266
- // Definitions expanded away by intersections do not need a standalone output schema.
1267
- for (const [key, reference] of finalReferences) {
1268
- InternalRecord.assignProperty(references, key, finalize(translateDefinition(key, reference.path)))
1269
- }
1270
- return { representations, references }
1322
+ ) as [Schema.Top, ...Array<Schema.Top>]
1271
1323
  }
1272
1324
 
1273
1325
  /** @internal */
1274
1326
  export function fromJsonSchemaDocument(
1275
1327
  document: JsonSchema.Document<"draft-2020-12">,
1276
- options: SchemaRepresentation.FromJsonSchemaOptions | undefined,
1277
- revivers: ReadonlyArray<SchemaRepresentation.AnyReviver>
1328
+ options: SchemaRepresentation.FromJsonSchemaOptions | undefined
1278
1329
  ): Schema.Top {
1279
- const translated = translateJsonSchemaMultiDocument(
1330
+ return fromJsonSchemaMultiDocument(
1280
1331
  {
1281
1332
  dialect: document.dialect,
1282
1333
  schemas: [document.schema],
@@ -1284,18 +1335,5 @@ export function fromJsonSchemaDocument(
1284
1335
  },
1285
1336
  options,
1286
1337
  true
1287
- )
1288
- return fromRepresentation({
1289
- representation: translated.representations[0],
1290
- references: translated.references
1291
- }, revivers)
1292
- }
1293
-
1294
- /** @internal */
1295
- export function fromJsonSchemaMultiDocument(
1296
- document: JsonSchema.MultiDocument<"draft-2020-12">,
1297
- options: SchemaRepresentation.FromJsonSchemaOptions | undefined,
1298
- revivers: ReadonlyArray<SchemaRepresentation.AnyReviver>
1299
- ): readonly [Schema.Top, ...Array<Schema.Top>] {
1300
- return fromRepresentations(translateJsonSchemaMultiDocument(document, options), revivers)
1338
+ )[0]
1301
1339
  }
@@ -18,7 +18,8 @@ export function fromRepresentations(
18
18
  return revivePersisted(document.representations, document.references, makeReviverMap(revivers), false)
19
19
  }
20
20
 
21
- class ReferenceSlot {
21
+ /** @internal */
22
+ export class ReferenceSlot {
22
23
  body: Schema.Top | undefined
23
24
  resolving = false
24
25
  readonly wrapper: Schema.Top
@@ -94,14 +94,14 @@ function toBaseStandardJSONSchemaV1(
94
94
  ): JsonSchema.JsonSchema {
95
95
  const doc2020_12 = toJsonSchemaDocument(ast)
96
96
  if (target === "draft-2020-12") {
97
- const schema = doc2020_12.schema
97
+ const schema: JsonSchema.JsonSchema = { $schema: JsonSchema.META_SCHEMA_URI_DRAFT_2020_12, ...doc2020_12.schema }
98
98
  if (Object.keys(doc2020_12.definitions).length > 0) {
99
99
  schema.$defs = doc2020_12.definitions
100
100
  }
101
101
  return schema
102
102
  } else if (target === "draft-07") {
103
103
  const doc07 = JsonSchema.toDocumentDraft07(doc2020_12)
104
- const schema = doc07.schema
104
+ const schema: JsonSchema.JsonSchema = { $schema: JsonSchema.META_SCHEMA_URI_DRAFT_07, ...doc07.schema }
105
105
  if (Object.keys(doc07.definitions).length > 0) {
106
106
  schema.definitions = doc07.definitions
107
107
  }