effect 4.0.6 → 4.0.7

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 (480) hide show
  1. package/dist/Arbitrary.d.ts +10 -2
  2. package/dist/Arbitrary.d.ts.map +1 -1
  3. package/dist/Arbitrary.js +2 -1
  4. package/dist/Arbitrary.js.map +1 -1
  5. package/dist/Channel.d.ts.map +1 -1
  6. package/dist/Channel.js +21 -6
  7. package/dist/Channel.js.map +1 -1
  8. package/dist/Data.d.ts +54 -235
  9. package/dist/Data.d.ts.map +1 -1
  10. package/dist/Data.js.map +1 -1
  11. package/dist/Effect.d.ts +1 -1
  12. package/dist/Effect.js +1 -1
  13. package/dist/Equal.d.ts.map +1 -1
  14. package/dist/Equal.js +8 -1
  15. package/dist/Equal.js.map +1 -1
  16. package/dist/Exit.d.ts +3 -3
  17. package/dist/Exit.d.ts.map +1 -1
  18. package/dist/Exit.js.map +1 -1
  19. package/dist/Formatter.d.ts.map +1 -1
  20. package/dist/Formatter.js +27 -13
  21. package/dist/Formatter.js.map +1 -1
  22. package/dist/Hash.d.ts.map +1 -1
  23. package/dist/Hash.js +4 -1
  24. package/dist/Hash.js.map +1 -1
  25. package/dist/JsonPatch.js +4 -0
  26. package/dist/JsonPatch.js.map +1 -1
  27. package/dist/JsonSchema.d.ts.map +1 -1
  28. package/dist/JsonSchema.js +13 -40
  29. package/dist/JsonSchema.js.map +1 -1
  30. package/dist/Metric.d.ts +3 -3
  31. package/dist/MutableList.d.ts +5 -2
  32. package/dist/MutableList.d.ts.map +1 -1
  33. package/dist/MutableList.js +7 -5
  34. package/dist/MutableList.js.map +1 -1
  35. package/dist/MutableRef.d.ts.map +1 -1
  36. package/dist/MutableRef.js +7 -0
  37. package/dist/MutableRef.js.map +1 -1
  38. package/dist/PartitionedSemaphore.d.ts +2 -1
  39. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  40. package/dist/PartitionedSemaphore.js +22 -12
  41. package/dist/PartitionedSemaphore.js.map +1 -1
  42. package/dist/Pool.d.ts.map +1 -1
  43. package/dist/Pool.js +77 -27
  44. package/dist/Pool.js.map +1 -1
  45. package/dist/PubSub.d.ts.map +1 -1
  46. package/dist/PubSub.js +5 -6
  47. package/dist/PubSub.js.map +1 -1
  48. package/dist/Ref.d.ts.map +1 -1
  49. package/dist/Ref.js +8 -0
  50. package/dist/Ref.js.map +1 -1
  51. package/dist/Schedule.js +1 -1
  52. package/dist/Schedule.js.map +1 -1
  53. package/dist/Schema.d.ts +24 -8
  54. package/dist/Schema.d.ts.map +1 -1
  55. package/dist/Schema.js +37 -28
  56. package/dist/Schema.js.map +1 -1
  57. package/dist/SchemaAST.d.ts +4 -2
  58. package/dist/SchemaAST.d.ts.map +1 -1
  59. package/dist/SchemaAST.js +14 -17
  60. package/dist/SchemaAST.js.map +1 -1
  61. package/dist/SchemaParser.d.ts.map +1 -1
  62. package/dist/SchemaParser.js +48 -22
  63. package/dist/SchemaParser.js.map +1 -1
  64. package/dist/SchemaRepresentation.d.ts +19 -10
  65. package/dist/SchemaRepresentation.d.ts.map +1 -1
  66. package/dist/SchemaRepresentation.js +23 -13
  67. package/dist/SchemaRepresentation.js.map +1 -1
  68. package/dist/SchemaTransformation.d.ts +4 -1
  69. package/dist/SchemaTransformation.d.ts.map +1 -1
  70. package/dist/SchemaTransformation.js +9 -2
  71. package/dist/SchemaTransformation.js.map +1 -1
  72. package/dist/Semaphore.d.ts.map +1 -1
  73. package/dist/Semaphore.js +54 -35
  74. package/dist/Semaphore.js.map +1 -1
  75. package/dist/Sink.d.ts.map +1 -1
  76. package/dist/Sink.js +7 -2
  77. package/dist/Sink.js.map +1 -1
  78. package/dist/Stream.d.ts.map +1 -1
  79. package/dist/Stream.js +22 -10
  80. package/dist/Stream.js.map +1 -1
  81. package/dist/String.d.ts +3 -0
  82. package/dist/String.d.ts.map +1 -1
  83. package/dist/String.js +3 -0
  84. package/dist/String.js.map +1 -1
  85. package/dist/Tracer.d.ts +11 -1
  86. package/dist/Tracer.d.ts.map +1 -1
  87. package/dist/Tracer.js +6 -1
  88. package/dist/Tracer.js.map +1 -1
  89. package/dist/ai/LanguageModel.d.ts.map +1 -1
  90. package/dist/ai/LanguageModel.js +9 -0
  91. package/dist/ai/LanguageModel.js.map +1 -1
  92. package/dist/ai/McpSchema.d.ts +110 -110
  93. package/dist/ai/McpSchema.d.ts.map +1 -1
  94. package/dist/ai/McpServer.d.ts.map +1 -1
  95. package/dist/ai/McpServer.js +21 -15
  96. package/dist/ai/McpServer.js.map +1 -1
  97. package/dist/ai/Prompt.d.ts +52 -0
  98. package/dist/ai/Prompt.d.ts.map +1 -1
  99. package/dist/ai/Prompt.js +38 -0
  100. package/dist/ai/Prompt.js.map +1 -1
  101. package/dist/ai/Response.d.ts +16 -3
  102. package/dist/ai/Response.d.ts.map +1 -1
  103. package/dist/ai/Response.js +4 -0
  104. package/dist/ai/Response.js.map +1 -1
  105. package/dist/ai/Tool.d.ts +24 -0
  106. package/dist/ai/Tool.d.ts.map +1 -1
  107. package/dist/ai/Tool.js +5 -2
  108. package/dist/ai/Tool.js.map +1 -1
  109. package/dist/ai/Toolkit.d.ts.map +1 -1
  110. package/dist/ai/Toolkit.js +8 -1
  111. package/dist/ai/Toolkit.js.map +1 -1
  112. package/dist/cli/Argument.d.ts +15 -0
  113. package/dist/cli/Argument.d.ts.map +1 -1
  114. package/dist/cli/Argument.js +5 -0
  115. package/dist/cli/Argument.js.map +1 -1
  116. package/dist/cli/CliError.d.ts +78 -0
  117. package/dist/cli/CliError.d.ts.map +1 -1
  118. package/dist/cli/CliError.js +65 -3
  119. package/dist/cli/CliError.js.map +1 -1
  120. package/dist/cli/CliOutput.d.ts +155 -6
  121. package/dist/cli/CliOutput.d.ts.map +1 -1
  122. package/dist/cli/CliOutput.js +62 -6
  123. package/dist/cli/CliOutput.js.map +1 -1
  124. package/dist/cli/Command.d.ts +24 -16
  125. package/dist/cli/Command.d.ts.map +1 -1
  126. package/dist/cli/Command.js +59 -29
  127. package/dist/cli/Command.js.map +1 -1
  128. package/dist/cli/Completions.d.ts +58 -0
  129. package/dist/cli/Completions.d.ts.map +1 -1
  130. package/dist/cli/Completions.js +49 -9
  131. package/dist/cli/Completions.js.map +1 -1
  132. package/dist/cli/Flag.d.ts +15 -0
  133. package/dist/cli/Flag.d.ts.map +1 -1
  134. package/dist/cli/Flag.js +5 -0
  135. package/dist/cli/Flag.js.map +1 -1
  136. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  137. package/dist/cli/GlobalFlag.js +15 -7
  138. package/dist/cli/GlobalFlag.js.map +1 -1
  139. package/dist/cli/Param.d.ts +9 -0
  140. package/dist/cli/Param.d.ts.map +1 -1
  141. package/dist/cli/Param.js +21 -2
  142. package/dist/cli/Param.js.map +1 -1
  143. package/dist/cli/TerminalCapabilities.d.ts +3 -2
  144. package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
  145. package/dist/cli/TerminalCapabilities.js +3 -1
  146. package/dist/cli/TerminalCapabilities.js.map +1 -1
  147. package/dist/cli/internal/completions/bash.js +73 -27
  148. package/dist/cli/internal/completions/bash.js.map +1 -1
  149. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  150. package/dist/cluster/ClusterWorkflowEngine.js +45 -10
  151. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  152. package/dist/cluster/MessageStorage.d.ts +23 -45
  153. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  154. package/dist/cluster/MessageStorage.js +6 -7
  155. package/dist/cluster/MessageStorage.js.map +1 -1
  156. package/dist/cluster/Sharding.d.ts.map +1 -1
  157. package/dist/cluster/Sharding.js +61 -21
  158. package/dist/cluster/Sharding.js.map +1 -1
  159. package/dist/cluster/ShardingConfig.d.ts +10 -0
  160. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  161. package/dist/cluster/ShardingConfig.js.map +1 -1
  162. package/dist/cluster/Snowflake.d.ts.map +1 -1
  163. package/dist/cluster/Snowflake.js +3 -7
  164. package/dist/cluster/Snowflake.js.map +1 -1
  165. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  166. package/dist/cluster/SqlRunnerStorage.js +87 -39
  167. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  168. package/dist/cluster/internal/entityManager.js +54 -20
  169. package/dist/cluster/internal/entityManager.js.map +1 -1
  170. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  171. package/dist/devtools/DevToolsClient.js +2 -0
  172. package/dist/devtools/DevToolsClient.js.map +1 -1
  173. package/dist/encoding/Base64.js +36 -0
  174. package/dist/encoding/Base64.js.map +1 -1
  175. package/dist/encoding/Sse.d.ts.map +1 -1
  176. package/dist/encoding/Sse.js +3 -3
  177. package/dist/encoding/Sse.js.map +1 -1
  178. package/dist/encoding/Toml.d.ts.map +1 -1
  179. package/dist/encoding/Toml.js +21 -16
  180. package/dist/encoding/Toml.js.map +1 -1
  181. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  182. package/dist/eventlog/SqlEventJournal.js +47 -27
  183. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  184. package/dist/eventlog/internal/conflicts.d.ts +0 -1
  185. package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
  186. package/dist/eventlog/internal/conflicts.js +0 -3
  187. package/dist/eventlog/internal/conflicts.js.map +1 -1
  188. package/dist/http/Cookies.d.ts.map +1 -1
  189. package/dist/http/Cookies.js +10 -9
  190. package/dist/http/Cookies.js.map +1 -1
  191. package/dist/http/HttpClient.d.ts +423 -0
  192. package/dist/http/HttpClient.d.ts.map +1 -1
  193. package/dist/http/HttpClient.js +231 -7
  194. package/dist/http/HttpClient.js.map +1 -1
  195. package/dist/http/HttpClientError.d.ts +8 -1
  196. package/dist/http/HttpClientError.d.ts.map +1 -1
  197. package/dist/http/HttpClientError.js +37 -1
  198. package/dist/http/HttpClientError.js.map +1 -1
  199. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  200. package/dist/http/HttpClientRequest.js +1 -1
  201. package/dist/http/HttpClientRequest.js.map +1 -1
  202. package/dist/http/HttpMiddleware.d.ts +1 -1
  203. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  204. package/dist/http/HttpMiddleware.js +14 -16
  205. package/dist/http/HttpMiddleware.js.map +1 -1
  206. package/dist/http/HttpRouter.d.ts.map +1 -1
  207. package/dist/http/HttpRouter.js +2 -1
  208. package/dist/http/HttpRouter.js.map +1 -1
  209. package/dist/http/HttpServerError.js +2 -2
  210. package/dist/http/HttpServerError.js.map +1 -1
  211. package/dist/http/HttpServerRequest.d.ts +6 -1
  212. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  213. package/dist/http/HttpServerRequest.js +73 -10
  214. package/dist/http/HttpServerRequest.js.map +1 -1
  215. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  216. package/dist/http/HttpStaticServer.js +48 -21
  217. package/dist/http/HttpStaticServer.js.map +1 -1
  218. package/dist/http/MultipartParser/internal/contentType.js +3 -3
  219. package/dist/http/UrlParams.d.ts +3 -1
  220. package/dist/http/UrlParams.d.ts.map +1 -1
  221. package/dist/http/UrlParams.js +4 -2
  222. package/dist/http/UrlParams.js.map +1 -1
  223. package/dist/http/internal/compression.js +4 -5
  224. package/dist/http/internal/compression.js.map +1 -1
  225. package/dist/http/internal/decompression.js +3 -0
  226. package/dist/http/internal/decompression.js.map +1 -1
  227. package/dist/http/internal/httpBody.js +8 -1
  228. package/dist/http/internal/httpBody.js.map +1 -1
  229. package/dist/http/internal/urlParams.js +25 -0
  230. package/dist/http/internal/urlParams.js.map +1 -1
  231. package/dist/http-api/HttpApi.d.ts +3 -6
  232. package/dist/http-api/HttpApi.d.ts.map +1 -1
  233. package/dist/http-api/HttpApi.js +3 -6
  234. package/dist/http-api/HttpApi.js.map +1 -1
  235. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  236. package/dist/http-api/HttpApiBuilder.js +27 -11
  237. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  238. package/dist/http-api/HttpApiClient.d.ts +77 -7
  239. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  240. package/dist/http-api/HttpApiClient.js +142 -44
  241. package/dist/http-api/HttpApiClient.js.map +1 -1
  242. package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
  243. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  244. package/dist/http-api/HttpApiEndpoint.js +109 -27
  245. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  246. package/dist/http-api/HttpApiSchema.d.ts +76 -29
  247. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  248. package/dist/http-api/HttpApiSchema.js +70 -59
  249. package/dist/http-api/HttpApiSchema.js.map +1 -1
  250. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  251. package/dist/http-api/HttpApiTest.js +3 -2
  252. package/dist/http-api/HttpApiTest.js.map +1 -1
  253. package/dist/http-api/OpenApi.d.ts.map +1 -1
  254. package/dist/http-api/OpenApi.js +25 -16
  255. package/dist/http-api/OpenApi.js.map +1 -1
  256. package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
  257. package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
  258. package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
  259. package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
  260. package/dist/internal/arbitrary/runner.d.ts.map +1 -1
  261. package/dist/internal/arbitrary/runner.js +120 -44
  262. package/dist/internal/arbitrary/runner.js.map +1 -1
  263. package/dist/internal/core.js +2 -0
  264. package/dist/internal/core.js.map +1 -1
  265. package/dist/internal/effect.js +21 -13
  266. package/dist/internal/effect.js.map +1 -1
  267. package/dist/internal/equal.js +14 -0
  268. package/dist/internal/equal.js.map +1 -1
  269. package/dist/internal/jsonSchema.d.ts +2 -0
  270. package/dist/internal/jsonSchema.d.ts.map +1 -0
  271. package/dist/internal/jsonSchema.js +28 -0
  272. package/dist/internal/jsonSchema.js.map +1 -0
  273. package/dist/internal/matcher.js +1 -1
  274. package/dist/internal/matcher.js.map +1 -1
  275. package/dist/internal/schema/compilerRegistry.js +4 -1
  276. package/dist/internal/schema/compilerRegistry.js.map +1 -1
  277. package/dist/internal/schema/content.d.ts +2 -0
  278. package/dist/internal/schema/content.d.ts.map +1 -0
  279. package/dist/internal/schema/content.js +13 -0
  280. package/dist/internal/schema/content.js.map +1 -0
  281. package/dist/internal/schema/fromJsonSchemaDocument.js +173 -185
  282. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  283. package/dist/internal/schema/fromRepresentation.js +2 -1
  284. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  285. package/dist/internal/schema/standardSchema.js +8 -2
  286. package/dist/internal/schema/standardSchema.js.map +1 -1
  287. package/dist/internal/schema/toCodeDocument.js +3 -3
  288. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  289. package/dist/internal/schema/toCodec.js +21 -24
  290. package/dist/internal/schema/toCodec.js.map +1 -1
  291. package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
  292. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  293. package/dist/internal/schema/toRepresentation.js +107 -129
  294. package/dist/internal/schema/toRepresentation.js.map +1 -1
  295. package/dist/internal/sql.d.ts +2 -0
  296. package/dist/internal/sql.d.ts.map +1 -0
  297. package/dist/internal/sql.js +13 -0
  298. package/dist/internal/sql.js.map +1 -0
  299. package/dist/internal/version.js +1 -1
  300. package/dist/observability/OtlpProxy.d.ts +154 -0
  301. package/dist/observability/OtlpProxy.d.ts.map +1 -0
  302. package/dist/observability/OtlpProxy.js +235 -0
  303. package/dist/observability/OtlpProxy.js.map +1 -0
  304. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  305. package/dist/observability/OtlpTracer.js +4 -0
  306. package/dist/observability/OtlpTracer.js.map +1 -1
  307. package/dist/observability/index.d.ts +5 -0
  308. package/dist/observability/index.d.ts.map +1 -1
  309. package/dist/observability/index.js +5 -0
  310. package/dist/observability/index.js.map +1 -1
  311. package/dist/persistence/CircuitBreaker.d.ts +897 -0
  312. package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
  313. package/dist/persistence/CircuitBreaker.js +1165 -0
  314. package/dist/persistence/CircuitBreaker.js.map +1 -0
  315. package/dist/persistence/Redis.d.ts +78 -2
  316. package/dist/persistence/Redis.d.ts.map +1 -1
  317. package/dist/persistence/Redis.js +62 -7
  318. package/dist/persistence/Redis.js.map +1 -1
  319. package/dist/persistence/index.d.ts +5 -0
  320. package/dist/persistence/index.d.ts.map +1 -1
  321. package/dist/persistence/index.js +5 -0
  322. package/dist/persistence/index.js.map +1 -1
  323. package/dist/process/ChildProcess.d.ts +30 -4
  324. package/dist/process/ChildProcess.d.ts.map +1 -1
  325. package/dist/process/ChildProcess.js.map +1 -1
  326. package/dist/process/ChildProcessSpawner.d.ts +30 -0
  327. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  328. package/dist/process/ChildProcessSpawner.js +5 -2
  329. package/dist/process/ChildProcessSpawner.js.map +1 -1
  330. package/dist/reactivity/AsyncResult.d.ts +1 -1
  331. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  332. package/dist/rpc/RpcClient.d.ts.map +1 -1
  333. package/dist/rpc/RpcClient.js +9 -8
  334. package/dist/rpc/RpcClient.js.map +1 -1
  335. package/dist/rpc/RpcSerialization.d.ts +14 -0
  336. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  337. package/dist/rpc/RpcSerialization.js +20 -8
  338. package/dist/rpc/RpcSerialization.js.map +1 -1
  339. package/dist/rpc/RpcServer.d.ts.map +1 -1
  340. package/dist/rpc/RpcServer.js +11 -1
  341. package/dist/rpc/RpcServer.js.map +1 -1
  342. package/dist/rpc/RpcTest.d.ts +1 -0
  343. package/dist/rpc/RpcTest.d.ts.map +1 -1
  344. package/dist/rpc/RpcTest.js +1 -0
  345. package/dist/rpc/RpcTest.js.map +1 -1
  346. package/dist/sql/Migrator.d.ts +2 -1
  347. package/dist/sql/Migrator.d.ts.map +1 -1
  348. package/dist/sql/Migrator.js +11 -8
  349. package/dist/sql/Migrator.js.map +1 -1
  350. package/dist/sql/SqlClient.d.ts +9 -4
  351. package/dist/sql/SqlClient.d.ts.map +1 -1
  352. package/dist/sql/SqlClient.js +8 -1
  353. package/dist/sql/SqlClient.js.map +1 -1
  354. package/dist/sql/SqlResolver.d.ts +4 -0
  355. package/dist/sql/SqlResolver.d.ts.map +1 -1
  356. package/dist/sql/SqlResolver.js +18 -4
  357. package/dist/sql/SqlResolver.js.map +1 -1
  358. package/dist/sql/Statement.d.ts +7 -0
  359. package/dist/sql/Statement.d.ts.map +1 -1
  360. package/dist/sql/Statement.js +21 -2
  361. package/dist/sql/Statement.js.map +1 -1
  362. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  363. package/dist/workflow/DurableDeferred.js +21 -2
  364. package/dist/workflow/DurableDeferred.js.map +1 -1
  365. package/package.json +1 -1
  366. package/src/Arbitrary.ts +10 -2
  367. package/src/Channel.ts +47 -18
  368. package/src/Data.ts +60 -265
  369. package/src/Effect.ts +1 -1
  370. package/src/Equal.ts +8 -1
  371. package/src/Exit.ts +3 -3
  372. package/src/Formatter.ts +28 -13
  373. package/src/Hash.ts +4 -1
  374. package/src/JsonPatch.ts +4 -0
  375. package/src/JsonSchema.ts +12 -40
  376. package/src/Metric.ts +3 -3
  377. package/src/MutableList.ts +7 -5
  378. package/src/MutableRef.ts +8 -1
  379. package/src/PartitionedSemaphore.ts +24 -13
  380. package/src/Pool.ts +109 -37
  381. package/src/PubSub.ts +5 -6
  382. package/src/Ref.ts +8 -0
  383. package/src/Schedule.ts +1 -1
  384. package/src/Schema.ts +48 -25
  385. package/src/SchemaAST.ts +20 -20
  386. package/src/SchemaParser.ts +51 -18
  387. package/src/SchemaRepresentation.ts +31 -34
  388. package/src/SchemaTransformation.ts +9 -2
  389. package/src/Semaphore.ts +67 -40
  390. package/src/Sink.ts +15 -2
  391. package/src/Stream.ts +33 -16
  392. package/src/String.ts +3 -0
  393. package/src/Tracer.ts +15 -1
  394. package/src/ai/LanguageModel.ts +9 -0
  395. package/src/ai/McpServer.ts +14 -13
  396. package/src/ai/Prompt.ts +65 -0
  397. package/src/ai/Response.ts +34 -9
  398. package/src/ai/Tool.ts +38 -2
  399. package/src/ai/Toolkit.ts +4 -1
  400. package/src/cli/Argument.ts +15 -0
  401. package/src/cli/CliError.ts +90 -3
  402. package/src/cli/CliOutput.ts +183 -6
  403. package/src/cli/Command.ts +53 -41
  404. package/src/cli/Completions.ts +51 -0
  405. package/src/cli/Flag.ts +15 -0
  406. package/src/cli/GlobalFlag.ts +6 -7
  407. package/src/cli/Param.ts +29 -6
  408. package/src/cli/TerminalCapabilities.ts +6 -3
  409. package/src/cli/internal/completions/bash.ts +79 -29
  410. package/src/cluster/ClusterWorkflowEngine.ts +46 -16
  411. package/src/cluster/MessageStorage.ts +19 -14
  412. package/src/cluster/Sharding.ts +83 -21
  413. package/src/cluster/ShardingConfig.ts +5 -0
  414. package/src/cluster/Snowflake.ts +3 -7
  415. package/src/cluster/SqlRunnerStorage.ts +110 -47
  416. package/src/cluster/internal/entityManager.ts +75 -22
  417. package/src/devtools/DevToolsClient.ts +2 -0
  418. package/src/encoding/Base64.ts +38 -0
  419. package/src/encoding/Sse.ts +4 -3
  420. package/src/encoding/Toml.ts +33 -16
  421. package/src/eventlog/SqlEventJournal.ts +68 -45
  422. package/src/eventlog/internal/conflicts.ts +0 -4
  423. package/src/http/Cookies.ts +10 -11
  424. package/src/http/HttpClient.ts +547 -7
  425. package/src/http/HttpClientError.ts +35 -1
  426. package/src/http/HttpClientRequest.ts +9 -1
  427. package/src/http/HttpMiddleware.ts +15 -18
  428. package/src/http/HttpRouter.ts +2 -1
  429. package/src/http/HttpServerError.ts +2 -2
  430. package/src/http/HttpServerRequest.ts +102 -16
  431. package/src/http/HttpStaticServer.ts +51 -22
  432. package/src/http/MultipartParser/internal/contentType.ts +3 -3
  433. package/src/http/UrlParams.ts +6 -1
  434. package/src/http/internal/compression.ts +4 -5
  435. package/src/http/internal/decompression.ts +6 -0
  436. package/src/http/internal/httpBody.ts +10 -2
  437. package/src/http/internal/urlParams.ts +29 -0
  438. package/src/http-api/HttpApi.ts +3 -6
  439. package/src/http-api/HttpApiBuilder.ts +45 -15
  440. package/src/http-api/HttpApiClient.ts +218 -72
  441. package/src/http-api/HttpApiEndpoint.ts +121 -30
  442. package/src/http-api/HttpApiSchema.ts +141 -48
  443. package/src/http-api/HttpApiTest.ts +3 -2
  444. package/src/http-api/OpenApi.ts +20 -17
  445. package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
  446. package/src/internal/arbitrary/runner.ts +133 -36
  447. package/src/internal/core.ts +2 -0
  448. package/src/internal/effect.ts +24 -16
  449. package/src/internal/equal.ts +17 -0
  450. package/src/internal/jsonSchema.ts +27 -0
  451. package/src/internal/matcher.ts +1 -1
  452. package/src/internal/schema/compilerRegistry.ts +6 -1
  453. package/src/internal/schema/content.ts +18 -0
  454. package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
  455. package/src/internal/schema/fromRepresentation.ts +2 -1
  456. package/src/internal/schema/standardSchema.ts +2 -2
  457. package/src/internal/schema/toCodeDocument.ts +4 -4
  458. package/src/internal/schema/toCodec.ts +26 -22
  459. package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
  460. package/src/internal/schema/toRepresentation.ts +122 -140
  461. package/src/internal/sql.ts +14 -0
  462. package/src/internal/version.ts +1 -1
  463. package/src/observability/OtlpProxy.ts +314 -0
  464. package/src/observability/OtlpTracer.ts +4 -0
  465. package/src/observability/index.ts +6 -0
  466. package/src/persistence/CircuitBreaker.ts +1678 -0
  467. package/src/persistence/Redis.ts +129 -8
  468. package/src/persistence/index.ts +6 -0
  469. package/src/process/ChildProcess.ts +30 -4
  470. package/src/process/ChildProcessSpawner.ts +41 -2
  471. package/src/reactivity/AsyncResult.ts +1 -1
  472. package/src/rpc/RpcClient.ts +13 -10
  473. package/src/rpc/RpcSerialization.ts +32 -9
  474. package/src/rpc/RpcServer.ts +16 -1
  475. package/src/rpc/RpcTest.ts +3 -0
  476. package/src/sql/Migrator.ts +12 -7
  477. package/src/sql/SqlClient.ts +11 -4
  478. package/src/sql/SqlResolver.ts +23 -9
  479. package/src/sql/Statement.ts +30 -2
  480. package/src/workflow/DurableDeferred.ts +23 -6
@@ -1,11 +1,12 @@
1
- import * as Iterable from "../../Iterable.js";
1
+ import { escapeToken, parseUriFragment } from "../../JsonPointer.js";
2
2
  import * as JsonSchema from "../../JsonSchema.js";
3
- import { remainder } from "../../Number.js";
3
+ import * as Schema from "../../Schema.js";
4
4
  import * as InternalAST from "../../SchemaAST.js";
5
5
  import { errorWithPath } from "../errors.js";
6
+ import * as InternalJsonSchema from "../jsonSchema.js";
6
7
  import * as InternalRecord from "../record.js";
7
8
  import * as InternalAnnotations from "./annotations.js";
8
- import { fromRepresentation, fromRepresentations } from "./fromRepresentation.js";
9
+ import { ReferenceSlot } from "./fromRepresentation.js";
9
10
  const never = {
10
11
  _tag: "Never",
11
12
  checks: []
@@ -18,6 +19,13 @@ const string = {
18
19
  _tag: "String",
19
20
  checks: []
20
21
  };
22
+ const primitiveSchemas = {
23
+ Never: Schema.Never,
24
+ Null: Schema.Null,
25
+ String: Schema.String,
26
+ Number: Schema.Number,
27
+ Boolean: Schema.Boolean
28
+ };
21
29
  const unsupportedStructuredValue = "Only primitive values are supported in \"const\" and \"enum\".";
22
30
  const jsonSchemaPatternFlags = "u";
23
31
  function isObject(input) {
@@ -46,24 +54,15 @@ function isImportedJsonSchemaType(input) {
46
54
  function hasTypeSpecificKeywords(schema) {
47
55
  return jsonSchemaTypeSpecificKeys.some(key => schema[key] !== undefined);
48
56
  }
49
- function jsonSchemaFilter(id, payload, schemas) {
57
+ function makeFilter(filter) {
50
58
  return {
51
59
  _tag: "Filter",
52
- aborted: false,
53
- representation: {
54
- id,
55
- payload,
56
- ...(schemas === undefined ? undefined : {
57
- schemas
58
- })
59
- }
60
+ filter
60
61
  };
61
62
  }
62
- function addNumberCheck(checks, value, id, key) {
63
+ function addNumberCheck(checks, value, make) {
63
64
  if (typeof value === "number") {
64
- checks.push(jsonSchemaFilter(id, {
65
- [key]: value
66
- }));
65
+ checks.push(makeFilter(make(value)));
67
66
  }
68
67
  }
69
68
  function jsonSchemaAnnotations(schema, options) {
@@ -91,116 +90,84 @@ function jsonSchemaAnnotations(schema, options) {
91
90
  customAnnotations
92
91
  };
93
92
  }
94
- function jsonDeclaration(annotations) {
95
- return {
96
- _tag: "Declaration",
97
- representation: {
98
- id: "effect/schema/Json",
99
- payload: null
100
- },
101
- annotations: {
102
- ...annotations,
103
- expected: "JSON value"
104
- },
105
- checks: [],
106
- typeParameters: []
107
- };
108
- }
109
- function translateJsonSchemaMultiDocument(document, options, singleRoot = false) {
93
+ /** @internal */
94
+ export function fromJsonSchemaMultiDocument(document, options, singleRoot = false) {
110
95
  const definitionCache = new Map();
96
+ const validatedAliases = new Set();
111
97
  const resolvingChoices = new Set();
112
- const finalReferences = new Map();
98
+ const references = new Map();
113
99
  let inNestedResource = false;
114
100
  function finalize(input) {
115
101
  const annotations = mergeAnnotations(input.annotations, input.customAnnotations);
116
102
  if (input._tag === "Reference") {
117
- if (!finalReferences.has(input.$ref)) finalReferences.set(input.$ref, input);
118
- const reference = {
119
- _tag: "Reference",
120
- $ref: input.$ref
121
- };
122
- if (annotations === undefined) return reference;
123
- resolveReference(input, input.path);
124
- return {
125
- _tag: "Suspend",
126
- thunk: reference,
127
- checks: [],
128
- annotations
129
- };
103
+ if (annotations !== undefined) resolveReference(input, input.path);
104
+ let slot = references.get(input.$ref);
105
+ if (slot === undefined) {
106
+ slot = new ReferenceSlot(input.$ref);
107
+ references.set(input.$ref, slot);
108
+ slot.body = finalize(translateDefinition(input.$ref, input.path)).annotate({
109
+ identifier: input.$ref
110
+ });
111
+ }
112
+ return annotations === undefined ? slot.body ?? slot.wrapper : slot.wrapper.annotate(annotations);
130
113
  }
131
- const {
132
- customAnnotations,
133
- ...node
134
- } = input;
135
- const representation = {
136
- ...node,
137
- annotations,
138
- checks: node.checks.map(finalizeCheck)
139
- };
140
- switch (representation._tag) {
114
+ let schema;
115
+ switch (input._tag) {
141
116
  case "Unknown":
142
- return jsonDeclaration(annotations);
117
+ return Schema.Json.annotate({
118
+ ...annotations,
119
+ expected: "JSON value"
120
+ });
121
+ case "Never":
122
+ case "Null":
123
+ case "String":
124
+ case "Number":
125
+ case "Boolean":
126
+ schema = primitiveSchemas[input._tag];
127
+ break;
128
+ case "Literal":
129
+ schema = Schema.Literal(input.literal);
130
+ break;
143
131
  case "Arrays":
144
- return {
145
- ...representation,
146
- elements: representation.elements.map(element => ({
147
- ...element,
148
- type: finalize(element.type)
149
- })),
150
- rest: representation.rest.map(finalize)
151
- };
132
+ {
133
+ const elements = input.elements.map(element => {
134
+ const type = finalize(element.type);
135
+ return element.isOptional ? Schema.optionalKey(type) : type;
136
+ });
137
+ const rest = input.rest[0] === undefined ? undefined : finalize(input.rest[0]);
138
+ schema = rest !== undefined ? elements.length === 0 ? Schema.Array(rest) : Schema.TupleWithRest(Schema.Tuple(elements), [rest]) : Schema.Tuple(elements);
139
+ break;
140
+ }
152
141
  case "Objects":
153
142
  {
154
- // Intersections may reduce open patterns to fixed properties, so reject only
155
- // if an open pattern remains in the final representation.
156
- const {
157
- scopes,
158
- path,
159
- ...object
160
- } = representation;
161
- if (representation.indexSignatures[0]?.parameter === string && scopes.some(scope => scope.patterns.length > 0)) {
162
- throw errorWithPath("Cannot import open \"patternProperties\": unmatched keys cannot be typed correctly.", path);
143
+ // Intersections may remove open patterns, so check the normalized object.
144
+ if (input.indexSignatures[0]?.parameter === string && input.scopes.some(scope => scope.patterns.length > 0)) {
145
+ throw errorWithPath("Cannot import open \"patternProperties\": unmatched keys cannot be typed correctly.", input.path);
163
146
  }
164
- return {
165
- ...object,
166
- propertySignatures: representation.propertySignatures.map(property => ({
167
- ...property,
168
- type: finalize(property.type)
169
- })),
170
- indexSignatures: representation.indexSignatures.map(indexSignature => ({
171
- parameter: finalize(indexSignature.parameter),
172
- type: finalize(indexSignature.type)
173
- }))
174
- };
147
+ const fields = {};
148
+ for (const property of input.propertySignatures) {
149
+ const type = finalize(property.type);
150
+ InternalRecord.assignProperty(fields, property.name, property.isOptional ? Schema.optionalKey(type) : type);
151
+ }
152
+ const index = input.indexSignatures[0];
153
+ const record = index === undefined ? undefined : Schema.Record(finalize(index.parameter), finalize(index.type));
154
+ schema = record !== undefined ? input.propertySignatures.length === 0 ? record : Schema.StructWithRest(Schema.Struct(fields), [record]) : Schema.Struct(fields);
155
+ break;
175
156
  }
176
157
  case "Union":
177
- return {
178
- ...representation,
179
- types: representation.types.map(finalize)
180
- };
181
- default:
182
- return representation;
158
+ schema = Schema.Union(input.types.map(finalize), input.options);
159
+ break;
183
160
  }
161
+ if (annotations !== undefined) schema = schema.annotate(annotations);
162
+ const checks = input.checks.map(finalizeCheck);
163
+ return checks.length > 0 ? schema.check(...checks) : schema;
184
164
  }
185
165
  function finalizeCheck(check) {
186
166
  if (check._tag === "FilterGroup") {
187
- return {
188
- ...check,
189
- checks: check.checks.map(finalizeCheck)
190
- };
167
+ return Schema.makeFilterGroup(check.checks.map(finalizeCheck), check.annotations);
191
168
  }
192
- const representation = check.representation;
193
- const schemas = representation.schemas;
194
- if (schemas === undefined) {
195
- return check;
196
- }
197
- return {
198
- ...check,
199
- representation: {
200
- ...representation,
201
- schemas: schemas.map(finalize)
202
- }
203
- };
169
+ const filter = check._tag === "PropertyNames" ? Schema.isPropertyNames(finalize(check.type)) : check.filter;
170
+ return check.annotations === undefined ? filter : filter.annotate(check.annotations);
204
171
  }
205
172
  function annotate(representation, source) {
206
173
  if (source.annotations === undefined && source.customAnnotations === undefined) return representation;
@@ -219,10 +186,36 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
219
186
  return cached;
220
187
  }
221
188
  definitionCache.set(key, null);
222
- const representation = translateSchema(document.definitions[key], ["definitions", key]);
189
+ const pointer = pointers.get(key);
190
+ const wasInNestedResource = inNestedResource;
191
+ if (pointer !== undefined) inNestedResource = pointer.crossesResource;
192
+ const representation = pointer === undefined ? translateSchema(document.definitions[key], ["definitions", key]) : translateSchema(pointer.target, ["definitions", ...pointer.tokens]);
193
+ inNestedResource = wasInNestedResource;
223
194
  definitionCache.set(key, representation);
195
+ if (pointer !== undefined) {
196
+ validatePointerAliases(representation, path, recursiveReferenceError);
197
+ }
224
198
  return representation;
225
199
  }
200
+ function validatePointerAliases(representation, path, recursiveReferenceError, visiting = new Set()) {
201
+ if (representation._tag === "Reference") {
202
+ const key = representation.$ref;
203
+ if (validatedAliases.has(key)) return;
204
+ if (visiting.has(key)) {
205
+ throw errorWithPath(`Definition ${JSON.stringify(key)} is a circular alias.`, [...path, "$ref"]);
206
+ }
207
+ visiting.add(key);
208
+ validatePointerAliases(translateDefinition(key, path, recursiveReferenceError), path, recursiveReferenceError, visiting);
209
+ visiting.delete(key);
210
+ validatedAliases.add(key);
211
+ } else if (representation._tag === "Union") {
212
+ // Alternatives share completed checks, but only ancestors belong to the active path.
213
+ for (const type of representation.types) {
214
+ validatePointerAliases(type, path, recursiveReferenceError, visiting);
215
+ }
216
+ }
217
+ // Recursion through object properties or array items consumes a child value.
218
+ }
226
219
  function resolveReference(reference, path, recursiveReferenceError, seen = new Set()) {
227
220
  if (seen.has(reference.$ref)) {
228
221
  throw errorWithPath(`Definition ${JSON.stringify(reference.$ref)} is a circular alias.`, [...path, "$ref"]);
@@ -234,6 +227,46 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
234
227
  }
235
228
  return representation;
236
229
  }
230
+ // Pointers below a definition are registered as definitions keyed by their escaped tokens, e.g. "O/properties/v"
231
+ const pointers = new Map();
232
+ function resolvePointer($ref, path) {
233
+ const pointer = $ref.startsWith("#") ? parseUriFragment($ref) : undefined;
234
+ if (pointer === undefined || pointer.length < 3 || pointer[0] !== "$defs") {
235
+ throw errorWithPath(`Unsupported $ref ${JSON.stringify($ref)}. Use "#/$defs/Name".`, [...path, "$ref"]);
236
+ }
237
+ const tokens = pointer.slice(1);
238
+ const key = tokens.map(escapeToken).join("/");
239
+ if (Object.hasOwn(document.definitions, key)) {
240
+ throw errorWithPath(`Pointer $ref ${JSON.stringify($ref)} conflicts with definition ${JSON.stringify(key)}.`, [...path, "$ref"]);
241
+ }
242
+ if (pointers.has(key)) return key;
243
+ // Walk through the onEnter result of each ancestor schema, as translateSchema would see it
244
+ let node = document.definitions;
245
+ let position = "container";
246
+ let crossesResource = false;
247
+ for (const token of tokens) {
248
+ if (position === "container") {
249
+ position = "schema";
250
+ } else if (position === "schema" && isObject(node)) {
251
+ if (options?.onEnter !== undefined) node = options.onEnter(node);
252
+ crossesResource ||= isObject(node) && typeof node.$id === "string";
253
+ const kind = InternalJsonSchema.getSubschemaKind(token);
254
+ position = kind === "schema" ? "schema" : kind === undefined ? "value" : "container";
255
+ } else {
256
+ position = "value";
257
+ }
258
+ node = typeof node === "object" && node !== null && Object.hasOwn(node, token) ? node[token] : undefined;
259
+ }
260
+ if (!isObject(node) && typeof node !== "boolean") {
261
+ throw errorWithPath(`Unresolvable $ref ${JSON.stringify($ref)}. Nothing exists at that location.`, [...path, "$ref"]);
262
+ }
263
+ pointers.set(key, {
264
+ target: node,
265
+ tokens,
266
+ crossesResource
267
+ });
268
+ return key;
269
+ }
237
270
  function mergeAnnotations(left, right) {
238
271
  if (left === undefined) return right;
239
272
  if (right === undefined) return left;
@@ -248,8 +281,8 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
248
281
  function intersectChecks(left, right, deduplicate = []) {
249
282
  let checks = right.checks;
250
283
  for (const id of deduplicate) {
251
- if (left.checks.some(check => check._tag === "Filter" && check.representation?.id === id)) {
252
- checks = checks.filter(check => check._tag !== "Filter" || check.representation?.id !== id);
284
+ if (left.checks.some(check => check._tag === "Filter" && check.filter.annotations?.representation?.id === id)) {
285
+ checks = checks.filter(check => check._tag !== "Filter" || check.filter.annotations?.representation?.id !== id);
253
286
  }
254
287
  }
255
288
  const annotations = checks.length === 0 ? mergeAnnotations(left.annotations, right.annotations) : left.annotations;
@@ -273,32 +306,7 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
273
306
  if (check._tag === "FilterGroup") {
274
307
  return check.checks.every(check => satisfiesPrimitiveCheck(check, value));
275
308
  }
276
- const representation = check.representation;
277
- const payload = representation.payload;
278
- switch (representation.id) {
279
- case "effect/schema/isMinLength":
280
- return value.length >= payload.minLength;
281
- case "effect/schema/isMinCodePoints":
282
- return Iterable.size(value) >= payload.minCodePoints;
283
- case "effect/schema/isMaxCodePoints":
284
- return Iterable.size(value) <= payload.maxCodePoints;
285
- case "effect/schema/isPattern":
286
- return new RegExp(payload.source, payload.flags).test(value);
287
- case "effect/schema/isFinite":
288
- return globalThis.Number.isFinite(value);
289
- case "effect/schema/isInt":
290
- return globalThis.Number.isSafeInteger(value);
291
- case "effect/schema/isMultipleOf":
292
- return remainder(value, payload.divisor) === 0;
293
- case "effect/schema/isGreaterThan":
294
- return value > payload.exclusiveMinimum;
295
- case "effect/schema/isGreaterThanOrEqualTo":
296
- return value >= payload.minimum;
297
- case "effect/schema/isLessThan":
298
- return value < payload.exclusiveMaximum;
299
- case "effect/schema/isLessThanOrEqualTo":
300
- return value <= payload.maximum;
301
- }
309
+ return check._tag === "Filter" && check.filter.run(value, Schema.Unknown.ast, {}) === undefined;
302
310
  }
303
311
  function satisfiesLiteral(representation, literal) {
304
312
  const value = literal.literal;
@@ -396,8 +404,7 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
396
404
  properties.push({
397
405
  name,
398
406
  type,
399
- isOptional,
400
- isMutable: false
407
+ isOptional
401
408
  });
402
409
  }
403
410
  const indexSignatures = closedPattern !== undefined ? [{
@@ -474,7 +481,7 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
474
481
  }
475
482
  }
476
483
  function checkHasChoices(check) {
477
- return check._tag === "FilterGroup" ? check.checks.some(checkHasChoices) : check.representation.schemas?.some(hasChoices) === true;
484
+ return check._tag === "FilterGroup" ? check.checks.some(checkHasChoices) : check._tag === "PropertyNames" && hasChoices(check.type);
478
485
  }
479
486
  function makeUnion(source, types) {
480
487
  if (types.length === 0) return never;
@@ -688,13 +695,11 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
688
695
  if (inNestedResource) {
689
696
  throw errorWithPath("Cannot resolve $ref under a nested \"$id\". Resolve or flatten it first.", [...path, "$ref"]);
690
697
  }
691
- const $ref = JsonSchema.getReferenceKey(schema.$ref);
692
- if ($ref === undefined) {
693
- throw errorWithPath(`Unsupported $ref ${JSON.stringify(schema.$ref)}. Use "#/$defs/Name".`, [...path, "$ref"]);
694
- }
695
- if (!Object.hasOwn(document.definitions, $ref)) {
696
- throw errorWithPath(`Missing definition ${JSON.stringify($ref)} for $ref ${JSON.stringify(schema.$ref)}.`, [...path, "$ref"]);
698
+ const key = JsonSchema.getReferenceKey(schema.$ref);
699
+ if (key !== undefined && !Object.hasOwn(document.definitions, key)) {
700
+ throw errorWithPath(`Missing definition ${JSON.stringify(key)} for $ref ${JSON.stringify(schema.$ref)}.`, [...path, "$ref"]);
697
701
  }
702
+ const $ref = key ?? resolvePointer(schema.$ref, path);
698
703
  const reference = {
699
704
  _tag: "Reference",
700
705
  $ref,
@@ -755,7 +760,7 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
755
760
  case "integer":
756
761
  return {
757
762
  _tag: "Number",
758
- checks: [jsonSchemaFilter(type === "number" ? "effect/schema/isFinite" : "effect/schema/isInt", null), ...collectNumberChecks(schema)]
763
+ checks: [makeFilter(type === "number" ? Schema.isFinite() : Schema.isInt()), ...collectNumberChecks(schema)]
759
764
  };
760
765
  case "boolean":
761
766
  return {
@@ -804,21 +809,18 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
804
809
  } catch {
805
810
  throw errorWithPath("Cannot import pattern using ECMAScript Unicode mode.", path);
806
811
  }
807
- return jsonSchemaFilter("effect/schema/isPattern", {
808
- source: regex.source,
809
- flags: regex.flags
810
- });
812
+ return makeFilter(Schema.isPattern(regex));
811
813
  }
812
814
  }
813
815
  }
814
816
  function collectStringChecks(schema, path) {
815
817
  const checks = [];
816
818
  if (schema.minLength === 1) {
817
- addNumberCheck(checks, schema.minLength, "effect/schema/isMinLength", "minLength");
819
+ addNumberCheck(checks, schema.minLength, Schema.isMinLength);
818
820
  } else {
819
- addNumberCheck(checks, schema.minLength, "effect/schema/isMinCodePoints", "minCodePoints");
821
+ addNumberCheck(checks, schema.minLength, Schema.isMinCodePoints);
820
822
  }
821
- addNumberCheck(checks, schema.maxLength, "effect/schema/isMaxCodePoints", "maxCodePoints");
823
+ addNumberCheck(checks, schema.maxLength, Schema.isMaxCodePoints);
822
824
  if (typeof schema.pattern === "string") {
823
825
  const check = importPatternCheck(schema.pattern, [...path, "pattern"]);
824
826
  if (check !== undefined) checks.push(check);
@@ -827,23 +829,23 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
827
829
  }
828
830
  function collectNumberChecks(schema) {
829
831
  const checks = [];
830
- addNumberCheck(checks, schema.minimum, "effect/schema/isGreaterThanOrEqualTo", "minimum");
831
- addNumberCheck(checks, schema.maximum, "effect/schema/isLessThanOrEqualTo", "maximum");
832
- addNumberCheck(checks, schema.exclusiveMinimum, "effect/schema/isGreaterThan", "exclusiveMinimum");
833
- addNumberCheck(checks, schema.exclusiveMaximum, "effect/schema/isLessThan", "exclusiveMaximum");
834
- addNumberCheck(checks, schema.multipleOf, "effect/schema/isMultipleOf", "divisor");
832
+ addNumberCheck(checks, schema.minimum, Schema.isGreaterThanOrEqualTo);
833
+ addNumberCheck(checks, schema.maximum, Schema.isLessThanOrEqualTo);
834
+ addNumberCheck(checks, schema.exclusiveMinimum, Schema.isGreaterThan);
835
+ addNumberCheck(checks, schema.exclusiveMaximum, Schema.isLessThan);
836
+ addNumberCheck(checks, schema.multipleOf, Schema.isMultipleOf);
835
837
  return checks;
836
838
  }
837
839
  function collectArrayChecks(schema, isMaxItemsRedundant) {
838
840
  const checks = [];
839
841
  if (!Array.isArray(schema.prefixItems) || typeof schema.minItems === "number" && schema.minItems > schema.prefixItems.length) {
840
- addNumberCheck(checks, schema.minItems, "effect/schema/isMinLength", "minLength");
842
+ addNumberCheck(checks, schema.minItems, Schema.isMinLength);
841
843
  }
842
844
  if (!isMaxItemsRedundant) {
843
- addNumberCheck(checks, schema.maxItems, "effect/schema/isMaxLength", "maxLength");
845
+ addNumberCheck(checks, schema.maxItems, Schema.isMaxLength);
844
846
  }
845
847
  if (schema.uniqueItems === true) {
846
- checks.push(jsonSchemaFilter("effect/schema/isUnique", null));
848
+ checks.push(makeFilter(Schema.isUnique()));
847
849
  }
848
850
  return checks;
849
851
  }
@@ -887,39 +889,25 @@ function translateJsonSchemaMultiDocument(document, options, singleRoot = false)
887
889
  }
888
890
  function collectObjectChecks(schema, path) {
889
891
  const checks = [];
890
- addNumberCheck(checks, schema.minProperties, "effect/schema/isMinProperties", "minProperties");
891
- addNumberCheck(checks, schema.maxProperties, "effect/schema/isMaxProperties", "maxProperties");
892
+ addNumberCheck(checks, schema.minProperties, Schema.isMinProperties);
893
+ addNumberCheck(checks, schema.maxProperties, Schema.isMaxProperties);
892
894
  if (schema.propertyNames !== undefined) {
893
895
  const propertyNamesPath = [...path, "propertyNames"];
894
- checks.push(jsonSchemaFilter("effect/schema/isPropertyNames", null, [intersect(string, translateSchema(schema.propertyNames, propertyNamesPath), propertyNamesPath)]));
896
+ checks.push({
897
+ _tag: "PropertyNames",
898
+ type: intersect(string, translateSchema(schema.propertyNames, propertyNamesPath), propertyNamesPath)
899
+ });
895
900
  }
896
901
  return checks;
897
902
  }
898
- const references = {};
899
- const representations = document.schemas.map((schema, index) => finalize(translateSchema(schema, singleRoot ? ["schema"] : ["schemas", index], true)));
900
- // Definitions expanded away by intersections do not need a standalone output schema.
901
- for (const [key, reference] of finalReferences) {
902
- InternalRecord.assignProperty(references, key, finalize(translateDefinition(key, reference.path)));
903
- }
904
- return {
905
- representations,
906
- references
907
- };
903
+ return document.schemas.map((schema, index) => finalize(translateSchema(schema, singleRoot ? ["schema"] : ["schemas", index], true)));
908
904
  }
909
905
  /** @internal */
910
- export function fromJsonSchemaDocument(document, options, revivers) {
911
- const translated = translateJsonSchemaMultiDocument({
906
+ export function fromJsonSchemaDocument(document, options) {
907
+ return fromJsonSchemaMultiDocument({
912
908
  dialect: document.dialect,
913
909
  schemas: [document.schema],
914
910
  definitions: document.definitions
915
- }, options, true);
916
- return fromRepresentation({
917
- representation: translated.representations[0],
918
- references: translated.references
919
- }, revivers);
920
- }
921
- /** @internal */
922
- export function fromJsonSchemaMultiDocument(document, options, revivers) {
923
- return fromRepresentations(translateJsonSchemaMultiDocument(document, options), revivers);
911
+ }, options, true)[0];
924
912
  }
925
913
  //# sourceMappingURL=fromJsonSchemaDocument.js.map