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
@@ -4,6 +4,7 @@ import * as SchemaAST from "../../SchemaAST.ts"
4
4
  import type * as SchemaRepresentation from "../../SchemaRepresentation.ts"
5
5
  import * as InternalRecord from "../record.ts"
6
6
  import * as InternalAnnotations from "./annotations.ts"
7
+ import * as InternalContent from "./content.ts"
7
8
 
8
9
  const defaultReferencePolicy: SchemaRepresentation.ReferencePolicy = ({ identifier }) => identifier
9
10
 
@@ -15,9 +16,17 @@ interface ReferenceCandidate {
15
16
  readonly ast: SchemaAST.AST
16
17
  readonly identifier: string | undefined
17
18
  readonly fallback: string | undefined
19
+ readonly content: Content | undefined
18
20
  occurrences: number
19
- isRecursive: boolean
20
- reference: string | undefined
21
+ visiting?: boolean | undefined
22
+ isRecursive?: boolean | undefined
23
+ reference?: string | undefined
24
+ emitted?: boolean | undefined
25
+ }
26
+
27
+ interface Content {
28
+ readonly mediaType: string
29
+ readonly schema?: ReferenceCandidate | undefined
21
30
  }
22
31
 
23
32
  function annotationsField<A>(annotations: A | undefined): { readonly annotations: A } | undefined {
@@ -39,16 +48,14 @@ export function toRepresentations(
39
48
  options?: SchemaRepresentation.ToRepresentationOptions
40
49
  ): SchemaRepresentation.MultiDocument {
41
50
  const references: Record<string, SchemaRepresentation.Representation> = {}
42
- const referenceOwners = new Map<string, ReferenceCandidate>()
43
- const buildingReferences = new Set<string>()
44
- const candidates = new Map<SchemaAST.AST, Map<string | undefined, ReferenceCandidate>>()
45
- const visitingCandidates = new Set<ReferenceCandidate>()
51
+ const usedReferences = new Set<string>()
52
+ const candidates = new Map<SchemaAST.AST, Array<ReferenceCandidate>>()
46
53
 
47
54
  for (const ast of asts) visit(ast)
48
55
 
49
56
  const referencePolicy = options?.referencePolicy ?? defaultReferencePolicy
50
- for (const candidatesByIdentifier of candidates.values()) {
51
- for (const candidate of candidatesByIdentifier.values()) {
57
+ for (const variants of candidates.values()) {
58
+ for (const candidate of variants) {
52
59
  const requestedReference = referencePolicy({
53
60
  ast: candidate.ast,
54
61
  occurrences: candidate.occurrences,
@@ -59,25 +66,24 @@ export function toRepresentations(
59
66
  !requestedReference.endsWith("_")
60
67
  ? "_"
61
68
  : ""
62
- candidate.reference = getReference(requestedReference, candidate, separator)
69
+ candidate.reference = getReference(requestedReference, separator)
63
70
  } else if (candidate.isRecursive) {
64
- candidate.reference = getReference(`${candidate.ast._tag}_`, candidate, "")
71
+ candidate.reference = getReference(`${candidate.ast._tag}_`, "")
65
72
  }
66
73
  }
67
74
  }
68
75
 
69
- const representations = Arr.map(asts, (ast) => recur(ast))
76
+ const representations = Arr.map(asts, recur)
70
77
 
71
78
  return { representations, references }
72
79
 
73
- function getReference(prefix: string, owner: ReferenceCandidate, separator = "_"): string {
80
+ function getReference(prefix: string, separator: string): string {
74
81
  let candidate = prefix
75
82
  let suffix = 0
76
- while (referenceOwners.has(candidate)) {
77
- if (referenceOwners.get(candidate) === owner) return candidate
83
+ while (usedReferences.has(candidate)) {
78
84
  candidate = `${prefix}${separator}${++suffix}`
79
85
  }
80
- referenceOwners.set(candidate, owner)
86
+ usedReferences.add(candidate)
81
87
  return candidate
82
88
  }
83
89
 
@@ -99,18 +105,27 @@ export function toRepresentations(
99
105
  : SchemaAST.annotate(ast, { identifier: reference })
100
106
  }
101
107
 
102
- function makeReference(reference: string, ast: SchemaAST.AST): SchemaRepresentation.Reference {
103
- if (!Object.hasOwn(references, reference) && !buildingReferences.has(reference)) {
104
- buildingReferences.add(reference)
105
- const representation = on(ast)
106
- buildingReferences.delete(reference)
107
- InternalRecord.assignProperty(references, reference, representation)
108
+ function getCandidate(
109
+ input: SchemaAST.AST,
110
+ encodingLength = input.encoding?.length ?? 0
111
+ ): ReferenceCandidate {
112
+ let ast = input
113
+ let content: Content | undefined
114
+ while (ast.encoding !== undefined && encodingLength > 0) {
115
+ const last = ast.encoding[encodingLength - 1]
116
+ // Only retain content when this operation produces the final string.
117
+ if (last.to.encoding === undefined && last.to._tag === "String") {
118
+ const metadata = InternalContent.getContent(last.transformation.encode)
119
+ if (metadata !== undefined) {
120
+ content = {
121
+ mediaType: metadata.mediaType,
122
+ schema: metadata.preserveSchema ? getCandidate(ast, encodingLength - 1) : undefined
123
+ }
124
+ }
125
+ }
126
+ ast = last.to
127
+ encodingLength = ast.encoding?.length ?? 0
108
128
  }
109
- return { _tag: "Reference", $ref: reference }
110
- }
111
-
112
- function getCandidate(input: SchemaAST.AST): ReferenceCandidate {
113
- const ast = SchemaAST.getLastEncoding(input)
114
129
  const owner = SchemaAST.getContextOwner(ast)
115
130
  let identifier = InternalAnnotations.resolveIdentifier(ast)
116
131
  const fallback = identifier === undefined
@@ -118,46 +133,48 @@ export function toRepresentations(
118
133
  InternalAnnotations.resolveIdentifierFallback(ast)
119
134
  : undefined
120
135
  if (fallback !== undefined) identifier = `${fallback}Encoded`
121
- let candidatesByIdentifier = candidates.get(owner)
122
- if (candidatesByIdentifier === undefined) {
123
- candidatesByIdentifier = new Map()
124
- candidates.set(owner, candidatesByIdentifier)
136
+ let variants = candidates.get(owner)
137
+ if (variants === undefined) {
138
+ variants = []
139
+ candidates.set(owner, variants)
125
140
  }
126
- let candidate = candidatesByIdentifier.get(identifier)
141
+ let candidate = variants.find((candidate) =>
142
+ candidate.identifier === identifier &&
143
+ candidate.content?.mediaType === content?.mediaType &&
144
+ candidate.content?.schema === content?.schema
145
+ )
127
146
  if (candidate === undefined) {
128
147
  candidate = {
129
148
  ast: owner,
130
149
  identifier,
131
150
  fallback,
132
- occurrences: 0,
133
- isRecursive: false,
134
- reference: undefined
151
+ content,
152
+ occurrences: 0
135
153
  }
136
- candidatesByIdentifier.set(identifier, candidate)
154
+ variants.push(candidate)
137
155
  }
138
156
  return candidate
139
157
  }
140
158
 
141
- function visit(input: SchemaAST.AST): void {
142
- const candidate = getCandidate(input)
159
+ function visit(input: SchemaAST.AST): SchemaAST.AST {
160
+ visitCandidate(getCandidate(input))
161
+ return input
162
+ }
163
+
164
+ function visitCandidate(candidate: ReferenceCandidate): void {
143
165
  const ast = candidate.ast
144
166
  candidate.occurrences++
145
- if (visitingCandidates.has(candidate)) {
167
+ if (candidate.visiting) {
146
168
  candidate.isRecursive = true
147
169
  return
148
170
  }
149
171
  if (candidate.occurrences > 1) return
150
- visitingCandidates.add(candidate)
172
+ candidate.visiting = true
173
+ if (candidate.content?.schema !== undefined) visitCandidate(candidate.content.schema)
151
174
  visitChecks(ast.checks)
152
175
  switch (ast._tag) {
153
- case "Declaration":
154
- case "Arrays":
155
- case "Objects":
156
- case "Union":
157
- ast.recur((child) => {
158
- visit(child)
159
- return child
160
- })
176
+ default:
177
+ if ("recur" in ast) ast.recur(visit)
161
178
  break
162
179
  case "TemplateLiteral":
163
180
  ast.parts.forEach(visit)
@@ -166,7 +183,7 @@ export function toRepresentations(
166
183
  visit(ast.thunk())
167
184
  break
168
185
  }
169
- visitingCandidates.delete(candidate)
186
+ candidate.visiting = false
170
187
  }
171
188
 
172
189
  function visitChecks(checks: SchemaAST.Checks | undefined): void {
@@ -177,74 +194,74 @@ export function toRepresentations(
177
194
  }
178
195
 
179
196
  function recur(input: SchemaAST.AST): SchemaRepresentation.Representation {
180
- const candidate = getCandidate(input)
197
+ return recurCandidate(getCandidate(input))
198
+ }
199
+
200
+ function recurCandidate(candidate: ReferenceCandidate): SchemaRepresentation.Representation {
181
201
  const ast = candidate.ast
182
202
  const reference = candidate.reference
183
203
  if (reference !== undefined) {
184
- const annotated = candidate.identifier === undefined ? ast : annotateReference(ast, candidate, reference)
185
- return makeReference(reference, annotated)
204
+ if (!candidate.emitted) {
205
+ candidate.emitted = true
206
+ const annotated = candidate.identifier === undefined ? ast : annotateReference(ast, candidate, reference)
207
+ const representation = on(annotated, candidate.content)
208
+ InternalRecord.assignProperty(references, reference, representation)
209
+ }
210
+ return { _tag: "Reference", $ref: reference }
186
211
  }
187
- return on(ast)
212
+ return on(ast, candidate.content)
188
213
  }
189
214
 
190
- function on(ast: SchemaAST.AST): SchemaRepresentation.Representation {
191
- const checks = fromChecks(ast.checks)
215
+ function on(ast: SchemaAST.AST, content: Content | undefined): SchemaRepresentation.Representation {
216
+ const common = {
217
+ checks: ast.checks?.map(fromCheck) ?? [],
218
+ ...(ast._tag === "Declaration" ? fromAnnotations(ast.annotations) : annotationsField(ast.annotations))
219
+ }
192
220
  switch (ast._tag) {
193
221
  case "Declaration":
194
222
  return {
195
- _tag: "Declaration",
196
- typeParameters: ast.typeParameters.map((ast) => recur(ast)),
197
- checks,
198
- ...fromDeclarationAnnotations(ast.annotations)
223
+ _tag: ast._tag,
224
+ typeParameters: ast.typeParameters.map(recur),
225
+ ...common
199
226
  }
200
- case "Null":
201
- case "Undefined":
202
- case "Void":
203
- case "Never":
204
- case "Unknown":
205
- case "Any":
206
- case "String":
207
- case "Boolean":
208
- case "Number":
209
- case "BigInt":
210
- case "Symbol":
211
- case "ObjectKeyword":
227
+ default:
212
228
  return {
213
229
  _tag: ast._tag,
214
- checks,
215
- ...annotationsField(ast.annotations)
230
+ ...(content === undefined ? undefined : {
231
+ content: {
232
+ mediaType: content.mediaType,
233
+ ...(content.schema === undefined ? undefined : { schema: recurCandidate(content.schema) })
234
+ }
235
+ }),
236
+ ...common
216
237
  }
217
238
  case "Literal":
218
239
  return {
219
- _tag: "Literal",
240
+ _tag: ast._tag,
220
241
  literal: ast.literal,
221
- checks,
222
- ...annotationsField(ast.annotations)
242
+ ...common
223
243
  }
224
244
  case "UniqueSymbol":
225
245
  return {
226
- _tag: "UniqueSymbol",
246
+ _tag: ast._tag,
227
247
  symbol: ast.symbol,
228
- checks,
229
- ...annotationsField(ast.annotations)
248
+ ...common
230
249
  }
231
250
  case "Enum":
232
251
  return {
233
- _tag: "Enum",
252
+ _tag: ast._tag,
234
253
  enums: ast.enums,
235
- checks,
236
- ...annotationsField(ast.annotations)
254
+ ...common
237
255
  }
238
256
  case "TemplateLiteral":
239
257
  return {
240
- _tag: "TemplateLiteral",
241
- parts: ast.parts.map((ast) => recur(ast)),
242
- checks,
243
- ...annotationsField(ast.annotations)
258
+ _tag: ast._tag,
259
+ parts: ast.parts.map(recur),
260
+ ...common
244
261
  }
245
262
  case "Arrays":
246
263
  return {
247
- _tag: "Arrays",
264
+ _tag: ast._tag,
248
265
  elements: ast.elements.map((element) => {
249
266
  const projected = SchemaAST.getLastEncoding(element)
250
267
  const annotations = projected.context?.annotations
@@ -254,13 +271,12 @@ export function toRepresentations(
254
271
  ...annotationsField(annotations)
255
272
  }
256
273
  }),
257
- rest: ast.rest.map((ast) => recur(ast)),
258
- checks,
259
- ...annotationsField(ast.annotations)
274
+ rest: ast.rest.map(recur),
275
+ ...common
260
276
  }
261
277
  case "Objects":
262
278
  return {
263
- _tag: "Objects",
279
+ _tag: ast._tag,
264
280
  propertySignatures: ast.propertySignatures.map((property) => {
265
281
  const projected = SchemaAST.getLastEncoding(property.type)
266
282
  const annotations = projected.context?.annotations
@@ -276,83 +292,49 @@ export function toRepresentations(
276
292
  parameter: recur(index.parameter),
277
293
  type: recur(index.type)
278
294
  })),
279
- checks,
280
- ...annotationsField(ast.annotations)
295
+ ...common
281
296
  }
282
297
  case "Union":
283
298
  return {
284
- _tag: "Union",
285
- types: ast.types.map((ast) => recur(ast)),
299
+ _tag: ast._tag,
300
+ types: ast.types.map(recur),
286
301
  ...(ast.options === undefined ? {} : { options: ast.options }),
287
- checks,
288
- ...annotationsField(ast.annotations)
302
+ ...common
289
303
  }
290
304
  case "Suspend":
291
305
  return {
292
- _tag: "Suspend",
306
+ _tag: ast._tag,
307
+ ...common,
293
308
  checks: [],
294
- thunk: recur(ast.thunk()),
295
- ...annotationsField(ast.annotations)
309
+ thunk: recur(ast.thunk())
296
310
  }
297
311
  }
298
312
  }
299
313
 
300
- function fromChecks(
301
- checks: readonly [SchemaAST.Check<any>, ...Array<SchemaAST.Check<any>>] | undefined
302
- ): Array<SchemaRepresentation.Check> {
303
- return checks?.map(fromCheck) ?? []
304
- }
305
-
306
314
  function fromCheck(
307
315
  check: SchemaAST.Check<any>
308
316
  ): SchemaRepresentation.Check {
309
- switch (check._tag) {
310
- case "Filter":
311
- return {
312
- _tag: "Filter",
313
- aborted: check.aborted,
314
- ...fromCheckAnnotations(check.annotations)
315
- }
316
- case "FilterGroup":
317
- return {
318
- _tag: "FilterGroup",
319
- checks: Arr.map(check.checks, fromCheck),
320
- ...fromCheckAnnotations(check.annotations)
321
- }
322
- }
323
- }
324
-
325
- function fromDeclarationAnnotations<
326
- A extends Schema.Annotations.Annotations & {
327
- readonly representation?: SchemaRepresentation.RepresentationAnnotation | undefined
328
- }
329
- >(annotations: A | undefined): {
330
- readonly representation?: SchemaRepresentation.RepresentationAnnotation | undefined
331
- readonly annotations?: Omit<A, "representation"> | undefined
332
- } | undefined {
333
- if (annotations === undefined) return undefined
334
- const { representation, ...ordinary } = annotations
335
317
  return {
336
- ...(representation === undefined ? undefined : { representation }),
337
- ...(Object.keys(ordinary).length === 0 ? undefined : { annotations: ordinary })
318
+ ...(check._tag === "Filter"
319
+ ? { _tag: check._tag, aborted: check.aborted }
320
+ : { _tag: check._tag, checks: Arr.map(check.checks, fromCheck) }),
321
+ ...fromAnnotations(check.annotations, true)
338
322
  }
339
323
  }
340
324
 
341
- function fromCheckAnnotations<
325
+ function fromAnnotations<
342
326
  A extends Schema.Annotations.Annotations & {
343
327
  readonly representation?: SchemaRepresentation.CheckRepresentationAnnotation<SchemaAST.AST> | undefined
344
328
  }
345
- >(annotations: A | undefined): {
329
+ >(annotations: A | undefined, projectSchemas = false): {
346
330
  readonly representation?: CheckRepresentationAnnotation | undefined
347
331
  readonly annotations?: Omit<A, "representation"> | undefined
348
332
  } | undefined {
349
333
  if (annotations === undefined) return undefined
350
334
  const { representation, ...ordinary } = annotations
351
- const projected = representation === undefined
352
- ? undefined
353
- : representation.schemas === undefined
354
- ? representation as CheckRepresentationAnnotation
355
- : { ...representation, schemas: representation.schemas.map((schema) => recur(SchemaAST.toType(schema))) }
335
+ const projected = projectSchemas && representation?.schemas !== undefined
336
+ ? { ...representation, schemas: representation.schemas.map((schema) => recur(SchemaAST.toType(schema))) }
337
+ : representation as CheckRepresentationAnnotation | undefined
356
338
  return {
357
339
  ...(projected === undefined ? undefined : { representation: projected }),
358
340
  ...(Object.keys(ordinary).length === 0 ? undefined : { annotations: ordinary })
@@ -0,0 +1,14 @@
1
+ import * as Context from "../Context.ts"
2
+
3
+ /**
4
+ * The transaction service of the innermost transaction started with
5
+ * `SqlClient.makeWithTransaction`. `SqlResolver` reads it to find that
6
+ * transaction when the request's context has no `SqlClient` for it. Removing
7
+ * the service from a context also hides the transaction from this lookup.
8
+ *
9
+ * @internal
10
+ */
11
+ export const CurrentTransactionService = Context.Reference<Context.Key<any, object> | undefined>(
12
+ "effect/sql/CurrentTransactionService",
13
+ { defaultValue: () => undefined }
14
+ )
@@ -1,2 +1,2 @@
1
1
  /** @internal */
2
- export const version = "4.0.6"
2
+ export const version = "4.0.7"