effect 4.0.2 → 4.0.4

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 (389) hide show
  1. package/AGENTS.md +24 -0
  2. package/CLAUDE.md +24 -0
  3. package/ai-docs/package.json +2 -2
  4. package/ai-docs/src/52_graphql/10_basics.ts +111 -0
  5. package/ai-docs/src/52_graphql/20_testing.ts +45 -0
  6. package/ai-docs/src/52_graphql/30_batching.ts +116 -0
  7. package/ai-docs/src/52_graphql/40_aliased-batching.ts +122 -0
  8. package/ai-docs/src/52_graphql/50_errors-and-retries.ts +74 -0
  9. package/ai-docs/src/52_graphql/index.md +6 -0
  10. package/dist/Context.d.ts.map +1 -1
  11. package/dist/Context.js +12 -3
  12. package/dist/Context.js.map +1 -1
  13. package/dist/Crypto.d.ts +33 -5
  14. package/dist/Crypto.d.ts.map +1 -1
  15. package/dist/Crypto.js +8 -2
  16. package/dist/Crypto.js.map +1 -1
  17. package/dist/DateTime.d.ts +9 -6
  18. package/dist/DateTime.d.ts.map +1 -1
  19. package/dist/DateTime.js +9 -6
  20. package/dist/DateTime.js.map +1 -1
  21. package/dist/Duration.d.ts +6 -6
  22. package/dist/Duration.d.ts.map +1 -1
  23. package/dist/Duration.js +27 -8
  24. package/dist/Duration.js.map +1 -1
  25. package/dist/FileSystem.d.ts +44 -2
  26. package/dist/FileSystem.d.ts.map +1 -1
  27. package/dist/FileSystem.js.map +1 -1
  28. package/dist/RequestResolver.d.ts.map +1 -1
  29. package/dist/RequestResolver.js +4 -10
  30. package/dist/RequestResolver.js.map +1 -1
  31. package/dist/Scheduler.d.ts +9 -0
  32. package/dist/Scheduler.d.ts.map +1 -1
  33. package/dist/Scheduler.js +9 -0
  34. package/dist/Scheduler.js.map +1 -1
  35. package/dist/Schema.d.ts +481 -1
  36. package/dist/Schema.d.ts.map +1 -1
  37. package/dist/Schema.js +362 -4
  38. package/dist/Schema.js.map +1 -1
  39. package/dist/SchemaGetter.d.ts +4 -0
  40. package/dist/SchemaGetter.d.ts.map +1 -1
  41. package/dist/SchemaGetter.js +52 -33
  42. package/dist/SchemaGetter.js.map +1 -1
  43. package/dist/Sink.d.ts.map +1 -1
  44. package/dist/Sink.js +38 -17
  45. package/dist/Sink.js.map +1 -1
  46. package/dist/Stdio.d.ts +7 -1
  47. package/dist/Stdio.d.ts.map +1 -1
  48. package/dist/Stdio.js +1 -0
  49. package/dist/Stdio.js.map +1 -1
  50. package/dist/Stream.d.ts +22 -11
  51. package/dist/Stream.d.ts.map +1 -1
  52. package/dist/Stream.js +21 -6
  53. package/dist/Stream.js.map +1 -1
  54. package/dist/Utils.js +8 -3
  55. package/dist/Utils.js.map +1 -1
  56. package/dist/ai/AnthropicStructuredOutput.js +0 -2
  57. package/dist/ai/AnthropicStructuredOutput.js.map +1 -1
  58. package/dist/ai/Chat.d.ts +2 -2
  59. package/dist/ai/Chat.d.ts.map +1 -1
  60. package/dist/ai/LanguageModel.d.ts +38 -7
  61. package/dist/ai/LanguageModel.d.ts.map +1 -1
  62. package/dist/ai/LanguageModel.js +25 -7
  63. package/dist/ai/LanguageModel.js.map +1 -1
  64. package/dist/ai/McpServer.d.ts +61 -0
  65. package/dist/ai/McpServer.d.ts.map +1 -1
  66. package/dist/ai/McpServer.js +196 -44
  67. package/dist/ai/McpServer.js.map +1 -1
  68. package/dist/ai/Prompt.d.ts.map +1 -1
  69. package/dist/ai/Prompt.js +28 -5
  70. package/dist/ai/Prompt.js.map +1 -1
  71. package/dist/ai/Response.d.ts +4 -3
  72. package/dist/ai/Response.d.ts.map +1 -1
  73. package/dist/ai/Response.js.map +1 -1
  74. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +5 -0
  75. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  76. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  77. package/dist/ai/internal/mcpRuntime.js +1 -0
  78. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  79. package/dist/cli/CliOutput.d.ts +27 -0
  80. package/dist/cli/CliOutput.d.ts.map +1 -1
  81. package/dist/cli/CliOutput.js +33 -10
  82. package/dist/cli/CliOutput.js.map +1 -1
  83. package/dist/cli/Command.d.ts.map +1 -1
  84. package/dist/cli/Command.js +6 -3
  85. package/dist/cli/Command.js.map +1 -1
  86. package/dist/cli/Completions.d.ts +3 -3
  87. package/dist/cli/Completions.d.ts.map +1 -1
  88. package/dist/cli/Completions.js +8 -5
  89. package/dist/cli/Completions.js.map +1 -1
  90. package/dist/cli/GlobalFlag.d.ts +5 -4
  91. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  92. package/dist/cli/GlobalFlag.js +3 -3
  93. package/dist/cli/GlobalFlag.js.map +1 -1
  94. package/dist/cli/Prompt.d.ts +17 -1
  95. package/dist/cli/Prompt.d.ts.map +1 -1
  96. package/dist/cli/Prompt.js +119 -114
  97. package/dist/cli/Prompt.js.map +1 -1
  98. package/dist/cli/internal/ansi.d.ts +0 -1
  99. package/dist/cli/internal/ansi.d.ts.map +1 -1
  100. package/dist/cli/internal/ansi.js +20 -3
  101. package/dist/cli/internal/ansi.js.map +1 -1
  102. package/dist/cli/internal/completions/powershell.d.ts +2 -0
  103. package/dist/cli/internal/completions/powershell.d.ts.map +1 -0
  104. package/dist/cli/internal/completions/powershell.js +273 -0
  105. package/dist/cli/internal/completions/powershell.js.map +1 -0
  106. package/dist/cli/internal/completions/zsh.js +3 -2
  107. package/dist/cli/internal/completions/zsh.js.map +1 -1
  108. package/dist/cli/internal/wizard.d.ts +3 -3
  109. package/dist/cli/internal/wizard.d.ts.map +1 -1
  110. package/dist/cli/internal/wizard.js +21 -18
  111. package/dist/cli/internal/wizard.js.map +1 -1
  112. package/dist/cluster/ClusterSchema.d.ts +28 -0
  113. package/dist/cluster/ClusterSchema.d.ts.map +1 -1
  114. package/dist/cluster/ClusterSchema.js +30 -0
  115. package/dist/cluster/ClusterSchema.js.map +1 -1
  116. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  117. package/dist/cluster/ClusterWorkflowEngine.js +56 -26
  118. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  119. package/dist/cluster/MessageStorage.d.ts +18 -3
  120. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  121. package/dist/cluster/MessageStorage.js +31 -11
  122. package/dist/cluster/MessageStorage.js.map +1 -1
  123. package/dist/cluster/Runners.d.ts.map +1 -1
  124. package/dist/cluster/Runners.js +8 -2
  125. package/dist/cluster/Runners.js.map +1 -1
  126. package/dist/cluster/Sharding.d.ts.map +1 -1
  127. package/dist/cluster/Sharding.js +187 -66
  128. package/dist/cluster/Sharding.js.map +1 -1
  129. package/dist/cluster/SqlMessageStorage.d.ts +59 -19
  130. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  131. package/dist/cluster/SqlMessageStorage.js +84 -55
  132. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  133. package/dist/cluster/SqlRunnerStorage.d.ts +68 -19
  134. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  135. package/dist/cluster/SqlRunnerStorage.js +191 -113
  136. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  137. package/dist/cluster/internal/entityManager.js +104 -37
  138. package/dist/cluster/internal/entityManager.js.map +1 -1
  139. package/dist/encoding/Sse.d.ts +6 -0
  140. package/dist/encoding/Sse.d.ts.map +1 -1
  141. package/dist/encoding/Sse.js +62 -70
  142. package/dist/encoding/Sse.js.map +1 -1
  143. package/dist/graphql/GraphQL.d.ts +349 -0
  144. package/dist/graphql/GraphQL.d.ts.map +1 -0
  145. package/dist/graphql/GraphQL.js +207 -0
  146. package/dist/graphql/GraphQL.js.map +1 -0
  147. package/dist/graphql/GraphQLClient.d.ts +562 -0
  148. package/dist/graphql/GraphQLClient.d.ts.map +1 -0
  149. package/dist/graphql/GraphQLClient.js +498 -0
  150. package/dist/graphql/GraphQLClient.js.map +1 -0
  151. package/dist/graphql/GraphQLClientError.d.ts +445 -0
  152. package/dist/graphql/GraphQLClientError.d.ts.map +1 -0
  153. package/dist/graphql/GraphQLClientError.js +479 -0
  154. package/dist/graphql/GraphQLClientError.js.map +1 -0
  155. package/dist/graphql/GraphQLGroup.d.ts +118 -0
  156. package/dist/graphql/GraphQLGroup.d.ts.map +1 -0
  157. package/dist/graphql/GraphQLGroup.js +109 -0
  158. package/dist/graphql/GraphQLGroup.js.map +1 -0
  159. package/dist/graphql/GraphQLMiddleware.d.ts +249 -0
  160. package/dist/graphql/GraphQLMiddleware.d.ts.map +1 -0
  161. package/dist/graphql/GraphQLMiddleware.js +130 -0
  162. package/dist/graphql/GraphQLMiddleware.js.map +1 -0
  163. package/dist/graphql/GraphQLProtocol.d.ts +731 -0
  164. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -0
  165. package/dist/graphql/GraphQLProtocol.js +719 -0
  166. package/dist/graphql/GraphQLProtocol.js.map +1 -0
  167. package/dist/graphql/GraphQLResolver.d.ts +453 -0
  168. package/dist/graphql/GraphQLResolver.d.ts.map +1 -0
  169. package/dist/graphql/GraphQLResolver.js +552 -0
  170. package/dist/graphql/GraphQLResolver.js.map +1 -0
  171. package/dist/graphql/index.d.ts +40 -0
  172. package/dist/graphql/index.d.ts.map +1 -0
  173. package/dist/graphql/index.js +41 -0
  174. package/dist/graphql/index.js.map +1 -0
  175. package/dist/http/FindMyWay/internal/router.js +3 -6
  176. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  177. package/dist/http/HttpClient.d.ts +21 -0
  178. package/dist/http/HttpClient.d.ts.map +1 -1
  179. package/dist/http/HttpClient.js +63 -12
  180. package/dist/http/HttpClient.js.map +1 -1
  181. package/dist/http/HttpEffect.d.ts.map +1 -1
  182. package/dist/http/HttpEffect.js +14 -7
  183. package/dist/http/HttpEffect.js.map +1 -1
  184. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  185. package/dist/http/HttpMiddleware.js +31 -32
  186. package/dist/http/HttpMiddleware.js.map +1 -1
  187. package/dist/http/HttpRouter.d.ts +35 -0
  188. package/dist/http/HttpRouter.d.ts.map +1 -1
  189. package/dist/http/HttpRouter.js +35 -0
  190. package/dist/http/HttpRouter.js.map +1 -1
  191. package/dist/http/HttpServerResponse.d.ts +8 -6
  192. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  193. package/dist/http/HttpServerResponse.js +27 -16
  194. package/dist/http/HttpServerResponse.js.map +1 -1
  195. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  196. package/dist/http/HttpTraceContext.js +4 -2
  197. package/dist/http/HttpTraceContext.js.map +1 -1
  198. package/dist/http/Multipart.d.ts.map +1 -1
  199. package/dist/http/Multipart.js +15 -1
  200. package/dist/http/Multipart.js.map +1 -1
  201. package/dist/http-api/HttpApiScalar.d.ts +5 -0
  202. package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
  203. package/dist/http-api/HttpApiScalar.js.map +1 -1
  204. package/dist/internal/dateTime.js +40 -35
  205. package/dist/internal/dateTime.js.map +1 -1
  206. package/dist/internal/effect.js +19 -9
  207. package/dist/internal/effect.js.map +1 -1
  208. package/dist/internal/graphql.d.ts +2 -0
  209. package/dist/internal/graphql.d.ts.map +1 -0
  210. package/dist/internal/graphql.js +195 -0
  211. package/dist/internal/graphql.js.map +1 -0
  212. package/dist/internal/graphqlHeaders.d.ts +4 -0
  213. package/dist/internal/graphqlHeaders.d.ts.map +1 -0
  214. package/dist/internal/graphqlHeaders.js +11 -0
  215. package/dist/internal/graphqlHeaders.js.map +1 -0
  216. package/dist/internal/request.js +20 -1
  217. package/dist/internal/request.js.map +1 -1
  218. package/dist/internal/schema/toCodeDocument.js +4 -1
  219. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  220. package/dist/internal/schema/toJsonSchemaDocument.js +29 -5
  221. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  222. package/dist/internal/version.js +1 -1
  223. package/dist/net/AddressResolver.d.ts +145 -0
  224. package/dist/net/AddressResolver.d.ts.map +1 -0
  225. package/dist/net/AddressResolver.js +114 -0
  226. package/dist/net/AddressResolver.js.map +1 -0
  227. package/dist/net/Dns.d.ts +596 -0
  228. package/dist/net/Dns.d.ts.map +1 -0
  229. package/dist/net/Dns.js +549 -0
  230. package/dist/net/Dns.js.map +1 -0
  231. package/dist/net/Host.d.ts +369 -0
  232. package/dist/net/Host.d.ts.map +1 -0
  233. package/dist/net/Host.js +397 -0
  234. package/dist/net/Host.js.map +1 -0
  235. package/dist/net/IpInterface.d.ts +76 -3
  236. package/dist/net/IpInterface.d.ts.map +1 -1
  237. package/dist/net/IpInterface.js +53 -4
  238. package/dist/net/IpInterface.js.map +1 -1
  239. package/dist/net/IpNetwork.d.ts +82 -8
  240. package/dist/net/IpNetwork.d.ts.map +1 -1
  241. package/dist/net/IpNetwork.js +60 -4
  242. package/dist/net/IpNetwork.js.map +1 -1
  243. package/dist/net/NetAddress.d.ts +396 -35
  244. package/dist/net/NetAddress.d.ts.map +1 -1
  245. package/dist/net/NetAddress.js +358 -34
  246. package/dist/net/NetAddress.js.map +1 -1
  247. package/dist/net/index.d.ts +15 -0
  248. package/dist/net/index.d.ts.map +1 -1
  249. package/dist/net/index.js +15 -0
  250. package/dist/net/index.js.map +1 -1
  251. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  252. package/dist/observability/OtlpMetrics.js +15 -21
  253. package/dist/observability/OtlpMetrics.js.map +1 -1
  254. package/dist/observability/PrometheusMetrics.js +1 -0
  255. package/dist/observability/PrometheusMetrics.js.map +1 -1
  256. package/dist/persistence/PersistedQueue.d.ts +32 -3
  257. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  258. package/dist/persistence/PersistedQueue.js +75 -16
  259. package/dist/persistence/PersistedQueue.js.map +1 -1
  260. package/dist/rpc/RpcClient.d.ts +22 -6
  261. package/dist/rpc/RpcClient.d.ts.map +1 -1
  262. package/dist/rpc/RpcClient.js +12 -5
  263. package/dist/rpc/RpcClient.js.map +1 -1
  264. package/dist/rpc/RpcServer.d.ts +6 -0
  265. package/dist/rpc/RpcServer.d.ts.map +1 -1
  266. package/dist/rpc/RpcServer.js +78 -29
  267. package/dist/rpc/RpcServer.js.map +1 -1
  268. package/dist/socket/DatagramSocket.d.ts +456 -0
  269. package/dist/socket/DatagramSocket.d.ts.map +1 -0
  270. package/dist/socket/DatagramSocket.js +535 -0
  271. package/dist/socket/DatagramSocket.js.map +1 -0
  272. package/dist/socket/Socket.d.ts +20 -1
  273. package/dist/socket/Socket.d.ts.map +1 -1
  274. package/dist/socket/Socket.js +9 -1
  275. package/dist/socket/Socket.js.map +1 -1
  276. package/dist/socket/index.d.ts +5 -0
  277. package/dist/socket/index.d.ts.map +1 -1
  278. package/dist/socket/index.js +5 -0
  279. package/dist/socket/index.js.map +1 -1
  280. package/dist/sql/Migrator.d.ts.map +1 -1
  281. package/dist/sql/Migrator.js +7 -2
  282. package/dist/sql/Migrator.js.map +1 -1
  283. package/dist/sql/SqlClient.d.ts +7 -1
  284. package/dist/sql/SqlClient.d.ts.map +1 -1
  285. package/dist/sql/SqlClient.js +31 -6
  286. package/dist/sql/SqlClient.js.map +1 -1
  287. package/dist/testing/TestCrypto.d.ts +73 -0
  288. package/dist/testing/TestCrypto.d.ts.map +1 -0
  289. package/dist/testing/TestCrypto.js +87 -0
  290. package/dist/testing/TestCrypto.js.map +1 -0
  291. package/dist/testing/index.d.ts +5 -0
  292. package/dist/testing/index.d.ts.map +1 -1
  293. package/dist/testing/index.js +5 -0
  294. package/dist/testing/index.js.map +1 -1
  295. package/dist/workflow/DurableDeferred.d.ts +54 -0
  296. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  297. package/dist/workflow/DurableDeferred.js +108 -50
  298. package/dist/workflow/DurableDeferred.js.map +1 -1
  299. package/dist/workflow/WorkflowEngine.d.ts +24 -2
  300. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  301. package/dist/workflow/WorkflowEngine.js +13 -3
  302. package/dist/workflow/WorkflowEngine.js.map +1 -1
  303. package/package.json +6 -3
  304. package/src/Context.ts +12 -3
  305. package/src/Crypto.ts +43 -9
  306. package/src/DateTime.ts +9 -6
  307. package/src/Duration.ts +36 -16
  308. package/src/FileSystem.ts +48 -2
  309. package/src/RequestResolver.ts +4 -10
  310. package/src/Scheduler.ts +9 -0
  311. package/src/Schema.ts +677 -5
  312. package/src/SchemaGetter.ts +47 -35
  313. package/src/Sink.ts +45 -18
  314. package/src/Stdio.ts +9 -2
  315. package/src/Stream.ts +44 -15
  316. package/src/Utils.ts +8 -5
  317. package/src/ai/AnthropicStructuredOutput.ts +2 -2
  318. package/src/ai/Chat.ts +2 -2
  319. package/src/ai/LanguageModel.ts +96 -24
  320. package/src/ai/McpServer.ts +288 -94
  321. package/src/ai/Prompt.ts +24 -10
  322. package/src/ai/Response.ts +6 -3
  323. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +5 -0
  324. package/src/ai/internal/mcpProtocol.ts +3 -0
  325. package/src/ai/internal/mcpRuntime.ts +2 -0
  326. package/src/cli/CliOutput.ts +33 -16
  327. package/src/cli/Command.ts +4 -3
  328. package/src/cli/Completions.ts +9 -6
  329. package/src/cli/GlobalFlag.ts +19 -11
  330. package/src/cli/Prompt.ts +159 -149
  331. package/src/cli/internal/ansi.ts +26 -3
  332. package/src/cli/internal/completions/powershell.ts +322 -0
  333. package/src/cli/internal/completions/zsh.ts +4 -2
  334. package/src/cli/internal/wizard.ts +34 -26
  335. package/src/cluster/ClusterSchema.ts +32 -0
  336. package/src/cluster/ClusterWorkflowEngine.ts +64 -36
  337. package/src/cluster/MessageStorage.ts +45 -14
  338. package/src/cluster/Runners.ts +8 -2
  339. package/src/cluster/Sharding.ts +219 -58
  340. package/src/cluster/SqlMessageStorage.ts +118 -84
  341. package/src/cluster/SqlRunnerStorage.ts +224 -128
  342. package/src/cluster/internal/entityManager.ts +151 -55
  343. package/src/encoding/Sse.ts +69 -79
  344. package/src/graphql/GraphQL.ts +494 -0
  345. package/src/graphql/GraphQLClient.ts +912 -0
  346. package/src/graphql/GraphQLClientError.ts +542 -0
  347. package/src/graphql/GraphQLGroup.ts +167 -0
  348. package/src/graphql/GraphQLMiddleware.ts +253 -0
  349. package/src/graphql/GraphQLProtocol.ts +1286 -0
  350. package/src/graphql/GraphQLResolver.ts +1010 -0
  351. package/src/graphql/index.ts +48 -0
  352. package/src/http/FindMyWay/internal/router.ts +4 -7
  353. package/src/http/HttpClient.ts +110 -12
  354. package/src/http/HttpEffect.ts +11 -5
  355. package/src/http/HttpMiddleware.ts +33 -34
  356. package/src/http/HttpRouter.ts +35 -0
  357. package/src/http/HttpServerResponse.ts +28 -16
  358. package/src/http/HttpTraceContext.ts +8 -2
  359. package/src/http/Multipart.ts +17 -1
  360. package/src/http-api/HttpApiScalar.ts +5 -0
  361. package/src/internal/dateTime.ts +13 -10
  362. package/src/internal/effect.ts +22 -15
  363. package/src/internal/graphql.ts +263 -0
  364. package/src/internal/graphqlHeaders.ts +11 -0
  365. package/src/internal/request.ts +31 -3
  366. package/src/internal/schema/toCodeDocument.ts +7 -1
  367. package/src/internal/schema/toJsonSchemaDocument.ts +34 -2
  368. package/src/internal/version.ts +1 -1
  369. package/src/net/AddressResolver.ts +222 -0
  370. package/src/net/Dns.ts +1035 -0
  371. package/src/net/Host.ts +544 -0
  372. package/src/net/IpInterface.ts +117 -7
  373. package/src/net/IpNetwork.ts +116 -17
  374. package/src/net/NetAddress.ts +620 -76
  375. package/src/net/index.ts +18 -0
  376. package/src/observability/OtlpMetrics.ts +12 -23
  377. package/src/observability/PrometheusMetrics.ts +1 -0
  378. package/src/persistence/PersistedQueue.ts +146 -53
  379. package/src/rpc/RpcClient.ts +41 -19
  380. package/src/rpc/RpcServer.ts +115 -40
  381. package/src/socket/DatagramSocket.ts +919 -0
  382. package/src/socket/Socket.ts +28 -2
  383. package/src/socket/index.ts +6 -0
  384. package/src/sql/Migrator.ts +21 -5
  385. package/src/sql/SqlClient.ts +39 -15
  386. package/src/testing/TestCrypto.ts +94 -0
  387. package/src/testing/index.ts +6 -0
  388. package/src/workflow/DurableDeferred.ts +160 -47
  389. package/src/workflow/WorkflowEngine.ts +50 -5
@@ -146,12 +146,15 @@ export const decodeDataSchema = (schema, options) => {
146
146
  */
147
147
  export function makeParser(onParse, options) {
148
148
  const maxEventSize = options?.maxEventSize ?? defaultMaxEventSize;
149
+ const dispatchEmptyNamedEvents = options?.dispatchEmptyNamedEvents === true;
149
150
  // Processing state
150
151
  let isFirstChunk;
151
- let buffer;
152
- let startingPosition;
153
- let startingFieldLength;
152
+ // Pieces of the unterminated line, joined once when the line ends
153
+ let pending;
154
+ let pendingLength;
154
155
  let discardTrailingNewline;
156
+ // Incremented by `reset`, so `feed` can stop if `onParse` resets the parser
157
+ let generation = 0;
155
158
  // Event state
156
159
  let lastEventId;
157
160
  let eventName;
@@ -162,74 +165,62 @@ export function makeParser(onParse, options) {
162
165
  reset
163
166
  };
164
167
  function reset() {
168
+ generation++;
165
169
  isFirstChunk = true;
166
- buffer = "";
167
- startingPosition = 0;
168
- startingFieldLength = -1;
170
+ pending = [];
171
+ pendingLength = 0;
169
172
  discardTrailingNewline = false;
170
173
  lastEventId = undefined;
171
174
  eventName = undefined;
172
175
  data = "";
173
176
  }
174
177
  function feed(chunk) {
175
- buffer = buffer ? buffer + chunk : chunk;
176
178
  // Strip any UTF-8 byte order mark (BOM) at the start of the stream.
177
179
  // Note that we do not strip any non - UTF8 BOM, as eventsource streams are
178
180
  // always decoded as UTF8 as per the specification.
179
- if (isFirstChunk && buffer.startsWith(BOM)) {
180
- buffer = buffer.slice(BOM.length);
181
+ if (isFirstChunk && chunk.startsWith(BOM)) {
182
+ chunk = chunk.slice(BOM.length);
181
183
  }
182
184
  isFirstChunk = false;
183
- // Set up chunk-specific processing state
184
- const length = buffer.length;
185
+ const length = chunk.length;
186
+ const currentGeneration = generation;
185
187
  let position = 0;
186
- // Read the current buffer byte by byte
187
188
  while (position < length) {
188
- // EventSource allows for carriage return + line feed, which means we
189
- // need to ignore a linefeed character if the previous character was a
190
- // carriage return
191
- // @todo refactor to reduce nesting, consider checking previous byte?
192
- // @todo but consider multiple chunks etc
189
+ // Skip the LF of a CRLF, whose CR may have ended the previous chunk
193
190
  if (discardTrailingNewline) {
194
- if (buffer[position] === "\n") {
191
+ discardTrailingNewline = false;
192
+ if (chunk.charCodeAt(position) === LF) {
195
193
  ++position;
194
+ continue;
196
195
  }
197
- discardTrailingNewline = false;
198
196
  }
199
- let lineLength = -1;
200
- let fieldLength = startingFieldLength;
201
- let character;
202
- for (let index = position + startingPosition; lineLength < 0 && index < length; ++index) {
203
- character = buffer[index];
204
- if (character === ":" && fieldLength < 0) {
205
- fieldLength = index - position;
206
- } else if (character === "\r") {
207
- discardTrailingNewline = true;
208
- lineLength = index - position;
209
- } else if (character === "\n") {
210
- lineLength = index - position;
211
- }
197
+ let lineEnd = position;
198
+ while (lineEnd < length) {
199
+ const code = chunk.charCodeAt(lineEnd);
200
+ if (code === CR || code === LF) break;
201
+ ++lineEnd;
212
202
  }
213
- if (lineLength < 0) {
214
- startingPosition = length - position;
215
- startingFieldLength = fieldLength;
203
+ if (lineEnd === length) {
204
+ pending.push(chunk.slice(position));
205
+ pendingLength += length - position;
216
206
  break;
217
- } else {
218
- startingPosition = 0;
219
- startingFieldLength = -1;
220
207
  }
221
- parseEventStreamLine(buffer, position, fieldLength, lineLength);
222
- position += lineLength + 1;
223
- }
224
- if (position === length) {
225
- // If we consumed the entire buffer to read the event, reset the buffer
226
- buffer = "";
227
- } else if (position > 0) {
228
- // If there are bytes left to process, set the buffer to the unprocessed
229
- // portion of the buffer only
230
- buffer = buffer.slice(position);
208
+ discardTrailingNewline = chunk.charCodeAt(lineEnd) === CR;
209
+ let line = chunk.slice(position, lineEnd);
210
+ if (pending.length > 0) {
211
+ pending.push(line);
212
+ line = pending.join("");
213
+ pending = [];
214
+ pendingLength = 0;
215
+ }
216
+ parseLine(line);
217
+ if (generation !== currentGeneration) {
218
+ // `onParse` reset the parser, so drop the rest of this chunk
219
+ return;
220
+ }
221
+ position = lineEnd + 1;
231
222
  }
232
- if (buffer.length + data.length > maxEventSize) {
223
+ if (pendingLength + data.length > maxEventSize) {
233
224
  const error = new SseError({
234
225
  reason: new EventTooLarge({
235
226
  maxEventSize
@@ -239,36 +230,34 @@ export function makeParser(onParse, options) {
239
230
  return error;
240
231
  }
241
232
  }
242
- function parseEventStreamLine(lineBuffer, index, fieldLength, lineLength) {
243
- if (lineLength === 0) {
244
- // We reached the last line of this event
245
- if (data.length > 0) {
233
+ function parseLine(line) {
234
+ if (line.length === 0) {
235
+ // End of event. Clear the state first so a throwing `onParse` cannot
236
+ // leak it into the next event
237
+ const named = eventName !== undefined && eventName !== "";
238
+ const event = eventName || "message";
239
+ const eventData = data;
240
+ eventName = undefined;
241
+ data = "";
242
+ if (eventData.length > 0 || dispatchEmptyNamedEvents && named) {
246
243
  onParse({
247
244
  _tag: "Event",
248
245
  id: lastEventId,
249
- event: eventName || "message",
250
- data: data.slice(0, -1) // remove trailing newline
246
+ event,
247
+ data: eventData.slice(0, -1) // remove trailing newline
251
248
  });
252
- data = "";
253
249
  }
254
- eventName = undefined;
255
250
  return;
256
251
  }
257
- const noValue = fieldLength < 0;
258
- const field = lineBuffer.slice(index, index + (noValue ? lineLength : fieldLength));
259
- let step = 0;
260
- if (noValue) {
261
- step = lineLength;
262
- } else if (lineBuffer[index + fieldLength + 1] === " ") {
263
- step = fieldLength + 2;
264
- } else {
265
- step = fieldLength + 1;
252
+ const colon = line.indexOf(":");
253
+ let field = line;
254
+ let value = "";
255
+ if (colon >= 0) {
256
+ field = line.slice(0, colon);
257
+ value = line.slice(line.charCodeAt(colon + 1) === SPACE ? colon + 2 : colon + 1);
266
258
  }
267
- const position = index + step;
268
- const valueLength = lineLength - step;
269
- const value = lineBuffer.slice(position, position + valueLength).toString();
270
259
  if (field === "data") {
271
- data += value ? `${value}\n` : "\n";
260
+ data += value + "\n";
272
261
  } else if (field === "event") {
273
262
  eventName = value;
274
263
  } else if (field === "id" && !value.includes("\u0000")) {
@@ -283,6 +272,9 @@ export function makeParser(onParse, options) {
283
272
  }
284
273
  }
285
274
  const BOM = "\uFEFF";
275
+ const LF = 10;
276
+ const CR = 13;
277
+ const SPACE = 32;
286
278
  /**
287
279
  * Creates a channel that encodes `Event` values as Server-Sent Events text.
288
280
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Sse.js","names":[],"sources":["../../src/encoding/Sse.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Sse.js","names":[],"sources":["../../src/encoding/Sse.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,349 @@
1
+ import { type Pipeable } from "../Pipeable.ts";
2
+ import * as Schema from "../Schema.ts";
3
+ import type { GraphQLClientError } from "./GraphQLClientError.ts";
4
+ import type * as GraphQLMiddleware from "./GraphQLMiddleware.ts";
5
+ declare const TypeId = "~effect/graphql/GraphQL";
6
+ /**
7
+ * The three kinds of GraphQL operation.
8
+ *
9
+ * @stability experimental
10
+ * @category models
11
+ * @since 4.0.0
12
+ */
13
+ export type Kind = "query" | "mutation" | "subscription";
14
+ /**
15
+ * An operation document split into the pieces needed to rename and alias it
16
+ * without a GraphQL parser. The generator emits one for every query and
17
+ * mutation.
18
+ *
19
+ * **Details**
20
+ *
21
+ * A `body` is a {@link DocumentTemplate.Parts} array: literal text at even
22
+ * indices and, at odd indices, the variable names and fragment names that
23
+ * would be renamed if the operation were repeated under a prefix. Joining the
24
+ * pieces gives the printed document, which is what the operation sends.
25
+ *
26
+ * A fragment whose `body` has a name in it is per-slice: it references a
27
+ * variable, directly or through a fragment it spreads. Every other fragment is
28
+ * shared.
29
+ *
30
+ * @stability experimental
31
+ * @category models
32
+ * @since 4.0.0
33
+ */
34
+ export interface DocumentTemplate {
35
+ /** The variable definitions, in document order. */
36
+ readonly variables: ReadonlyArray<DocumentTemplate.Variable>;
37
+ /** The operation's directives, if it has any. */
38
+ readonly directives?: DocumentTemplate.Parts | undefined;
39
+ /** The root selections, in document order. */
40
+ readonly selections: ReadonlyArray<DocumentTemplate.Selection>;
41
+ /** The fragments the operation uses, in the order they follow it. */
42
+ readonly fragments: ReadonlyArray<DocumentTemplate.Fragment>;
43
+ }
44
+ /**
45
+ * The pieces of a {@link DocumentTemplate}.
46
+ *
47
+ * @stability experimental
48
+ * @since 4.0.0
49
+ */
50
+ export declare namespace DocumentTemplate {
51
+ /**
52
+ * Literal text at even indices and names to rename at odd indices.
53
+ *
54
+ * @stability experimental
55
+ * @category models
56
+ * @since 4.0.0
57
+ */
58
+ type Parts = ReadonlyArray<string>;
59
+ /**
60
+ * A variable definition: `$name:` followed by `body`, the type, default
61
+ * value and directives as printed.
62
+ *
63
+ * @stability experimental
64
+ * @category models
65
+ * @since 4.0.0
66
+ */
67
+ interface Variable {
68
+ readonly name: string;
69
+ readonly body: string;
70
+ }
71
+ /**
72
+ * A root selection. For a field, `body` is everything after its name and
73
+ * the response key is `alias ?? name`. A fragment spread or inline fragment
74
+ * has no `name`, and `body` is the whole selection.
75
+ *
76
+ * @stability experimental
77
+ * @category models
78
+ * @since 4.0.0
79
+ */
80
+ interface Selection {
81
+ readonly alias?: string | undefined;
82
+ readonly name?: string | undefined;
83
+ readonly body: Parts;
84
+ }
85
+ /**
86
+ * A fragment definition: `fragment` and `name`, followed by `body`, which
87
+ * starts at its type condition.
88
+ *
89
+ * @stability experimental
90
+ * @category models
91
+ * @since 4.0.0
92
+ */
93
+ interface Fragment {
94
+ readonly name: string;
95
+ readonly body: Parts;
96
+ }
97
+ }
98
+ /**
99
+ * A named GraphQL document with variable and result schemas and middleware.
100
+ * Variables are encoded before sending; results are decoded from `data`.
101
+ *
102
+ * @stability experimental
103
+ * @category models
104
+ * @since 4.0.0
105
+ */
106
+ export interface Operation<out K extends Kind, out Name extends string, out Variables extends Schema.Top, out Result extends Schema.Top, out Middleware = never> extends Pipeable {
107
+ readonly [TypeId]: typeof TypeId;
108
+ readonly kind: K;
109
+ readonly name: Name;
110
+ /** The printed document, sent as-is. It is never parsed at runtime. */
111
+ readonly document: string;
112
+ /** The template the document was joined from, if it was given as one. */
113
+ readonly template: DocumentTemplate | undefined;
114
+ readonly variables: Variables;
115
+ readonly result: Result;
116
+ /** Middleware attached to this operation, outermost first. */
117
+ readonly middlewares: ReadonlyArray<GraphQLMiddleware.AnyService>;
118
+ readonly "~middleware"?: Middleware;
119
+ /**
120
+ * Returns a copy of this operation with `middleware` attached. Operation
121
+ * middleware runs inside any group middleware; within the operation,
122
+ * middleware run in the order they were attached.
123
+ */
124
+ middleware<M extends GraphQLMiddleware.AnyService>(middleware: M): Operation<K, Name, Variables, Result, Middleware | M>;
125
+ }
126
+ /**
127
+ * Any operation, with its type parameters erased.
128
+ *
129
+ * @stability experimental
130
+ * @category utility types
131
+ * @since 4.0.0
132
+ */
133
+ export type Any = Operation<Kind, string, Schema.Top, Schema.Top, any>;
134
+ /**
135
+ * Extracts the union of middleware attached to an operation.
136
+ *
137
+ * @stability experimental
138
+ * @category utility types
139
+ * @since 4.0.0
140
+ */
141
+ export type Middleware<Op> = Op extends Operation<any, any, any, any, infer M> ? M : never;
142
+ /**
143
+ * The decoded variables type of an operation, which is what a client method
144
+ * takes.
145
+ *
146
+ * @stability experimental
147
+ * @category utility types
148
+ * @since 4.0.0
149
+ */
150
+ export type Variables<Op extends Any> = Op["variables"]["Type"];
151
+ /**
152
+ * The decoded result type of an operation.
153
+ *
154
+ * @stability experimental
155
+ * @category utility types
156
+ * @since 4.0.0
157
+ */
158
+ export type Result<Op extends Any> = Op["result"]["Type"];
159
+ /**
160
+ * The error type of a client method for an operation: `GraphQLClientError`
161
+ * plus the errors of every attached middleware.
162
+ *
163
+ * @stability experimental
164
+ * @category utility types
165
+ * @since 4.0.0
166
+ */
167
+ export type Error<Op extends Any> = GraphQLClientError | GraphQLMiddleware.Error<Middleware<Op>>;
168
+ /**
169
+ * The services a client method for an operation requires: the Schemas'
170
+ * encoding and decoding services plus the requirements of every attached
171
+ * middleware.
172
+ *
173
+ * @stability experimental
174
+ * @category utility types
175
+ * @since 4.0.0
176
+ */
177
+ export type Services<Op extends Any> = Op["variables"]["EncodingServices"] | Op["result"]["DecodingServices"] | GraphQLMiddleware.Requires<Middleware<Op>>;
178
+ /**
179
+ * The type of an operation after attaching middleware `M`.
180
+ *
181
+ * @stability experimental
182
+ * @category utility types
183
+ * @since 4.0.0
184
+ */
185
+ export type AddMiddleware<Op, M> = Op extends Operation<infer K, infer N, infer V, infer R, infer Old> ? Operation<K, N, V, R, Old | M> : never;
186
+ /**
187
+ * Tests whether a value is an {@link Operation}.
188
+ *
189
+ * @stability experimental
190
+ * @category guards
191
+ * @since 4.0.0
192
+ */
193
+ export declare const isOperation: (u: unknown) => u is Any;
194
+ /**
195
+ * Defines a query. The client accepts decoded variables and encodes them
196
+ * through their Schema, including custom scalar codecs. `variables` accepts
197
+ * struct fields or a Schema; omit it for an operation without variables.
198
+ * `document` accepts printed text or a {@link DocumentTemplate}, joined once
199
+ * when the operation is defined.
200
+ *
201
+ * **Example** (A query with variables)
202
+ *
203
+ * ```ts import.meta.vitest
204
+ * import { Schema } from "effect"
205
+ * import { GraphQL } from "effect/graphql"
206
+ *
207
+ * const RepoIssues = GraphQL.query("RepoIssues", {
208
+ * document: "query RepoIssues($owner:String!,$name:String!){repository(owner:$owner,name:$name){issues(first:10){nodes{number title}}}}",
209
+ * variables: { owner: Schema.String, name: Schema.String },
210
+ * result: Schema.Struct({
211
+ * repository: Schema.NullOr(Schema.Struct({
212
+ * issues: Schema.Struct({
213
+ * nodes: Schema.NullOr(Schema.Array(Schema.NullOr(Schema.Struct({ number: Schema.Int, title: Schema.String }))))
214
+ * })
215
+ * }))
216
+ * })
217
+ * })
218
+ *
219
+ * RepoIssues.kind // => "query"
220
+ * RepoIssues.name // => "RepoIssues"
221
+ * ```
222
+ *
223
+ * @stability experimental
224
+ * @category constructors
225
+ * @since 4.0.0
226
+ */
227
+ export declare const query: <const Name extends string, Result extends Schema.Top, Variables extends Schema.Top | Schema.Struct.Fields = Schema.Struct<{}>>(name: Name, options: {
228
+ readonly document: string | DocumentTemplate;
229
+ readonly variables?: Variables | undefined;
230
+ readonly result: Result;
231
+ }) => Operation<"query", Name, Variables extends Schema.Struct.Fields ? Schema.Struct<Variables> : Variables, Result>;
232
+ /**
233
+ * Defines a mutation. Same shape as {@link query}.
234
+ *
235
+ * **Example** (A mutation)
236
+ *
237
+ * ```ts import.meta.vitest
238
+ * import { Schema } from "effect"
239
+ * import { GraphQL } from "effect/graphql"
240
+ *
241
+ * const AddComment = GraphQL.mutation("AddComment", {
242
+ * document: "mutation AddComment($subjectId:ID!,$body:String!){addComment(input:{subjectId:$subjectId,body:$body}){clientMutationId}}",
243
+ * variables: { subjectId: Schema.String, body: Schema.String },
244
+ * result: Schema.Struct({ addComment: Schema.NullOr(Schema.Struct({ clientMutationId: Schema.NullOr(Schema.String) })) })
245
+ * })
246
+ *
247
+ * AddComment.kind // => "mutation"
248
+ * ```
249
+ *
250
+ * @stability experimental
251
+ * @category constructors
252
+ * @since 4.0.0
253
+ */
254
+ export declare const mutation: <const Name extends string, Result extends Schema.Top, Variables extends Schema.Top | Schema.Struct.Fields = Schema.Struct<{}>>(name: Name, options: {
255
+ readonly document: string | DocumentTemplate;
256
+ readonly variables?: Variables | undefined;
257
+ readonly result: Result;
258
+ }) => Operation<"mutation", Name, Variables extends Schema.Struct.Fields ? Schema.Struct<Variables> : Variables, Result>;
259
+ /**
260
+ * Defines a subscription. The client method for a subscription returns a
261
+ * `Stream` of decoded events instead of an `Effect`.
262
+ *
263
+ * **Example** (A subscription)
264
+ *
265
+ * ```ts import.meta.vitest
266
+ * import { Schema } from "effect"
267
+ * import { GraphQL } from "effect/graphql"
268
+ *
269
+ * const IssueUpdated = GraphQL.subscription("IssueUpdated", {
270
+ * document: "subscription IssueUpdated($id:ID!){issueUpdated(id:$id){title}}",
271
+ * variables: { id: Schema.String },
272
+ * result: Schema.Struct({ issueUpdated: Schema.Struct({ title: Schema.String }) })
273
+ * })
274
+ *
275
+ * IssueUpdated.kind // => "subscription"
276
+ * ```
277
+ *
278
+ * @stability experimental
279
+ * @category constructors
280
+ * @since 4.0.0
281
+ */
282
+ export declare const subscription: <const Name extends string, Result extends Schema.Top, Variables extends Schema.Top | Schema.Struct.Fields = Schema.Struct<{}>>(name: Name, options: {
283
+ readonly document: string | DocumentTemplate;
284
+ readonly variables?: Variables | undefined;
285
+ readonly result: Result;
286
+ }) => Operation<"subscription", Name, Variables extends Schema.Struct.Fields ? Schema.Struct<Variables> : Variables, Result>;
287
+ /**
288
+ * The `__typename` Schema for the "every other type" member of a generated
289
+ * union.
290
+ *
291
+ * **Details**
292
+ *
293
+ * The type excludes selected names, allowing `__typename` narrowing. The
294
+ * decoder accepts any other string, including types added by the server
295
+ * later. Selected names are rejected so malformed selected results cannot
296
+ * fall through to the catch-all member.
297
+ *
298
+ * **Example** (The catch-all member of a union)
299
+ *
300
+ * ```ts import.meta.vitest
301
+ * import { Schema } from "effect"
302
+ * import { GraphQL } from "effect/graphql"
303
+ *
304
+ * type Node = "Issue" | "PullRequest" | "Repository"
305
+ *
306
+ * const OtherNode = Schema.Struct({
307
+ * __typename: GraphQL.otherTypename<Node>()(["Issue"]),
308
+ * id: Schema.String
309
+ * })
310
+ *
311
+ * Schema.decodeUnknownSync(OtherNode)({ __typename: "PullRequest", id: "1" }).__typename // => "PullRequest"
312
+ * Schema.decodeUnknownSync(OtherNode)({ __typename: "AddedLater", id: "2" }).__typename // => "AddedLater"
313
+ * Schema.is(OtherNode)({ __typename: "Issue", id: "3" }) // => false
314
+ * ```
315
+ *
316
+ * @stability experimental
317
+ * @category schemas
318
+ * @since 4.0.0
319
+ */
320
+ export declare const otherTypename: <All extends string>() => <const Selected extends ReadonlyArray<All>>(selected: Selected) => Schema.refine<Exclude<All, Selected[number]>, Schema.String>;
321
+ /**
322
+ * The Schema for a GraphQL enum in a result position.
323
+ *
324
+ * **Details**
325
+ *
326
+ * It is typed as the declared literals but decodes any string, so a value the
327
+ * server adds later does not fail the whole query. Inputs stay strict: the
328
+ * generator uses `Schema.Literals` for enums in variables and input objects.
329
+ *
330
+ * **Example** (An enum that tolerates new values)
331
+ *
332
+ * ```ts import.meta.vitest
333
+ * import { Schema } from "effect"
334
+ * import { GraphQL } from "effect/graphql"
335
+ *
336
+ * const IssueState = GraphQL.enumLiterals(["OPEN", "CLOSED"])
337
+ *
338
+ * Schema.decodeUnknownSync(IssueState)("OPEN") // => "OPEN"
339
+ * Schema.decodeUnknownSync(IssueState)("MERGED") // => "MERGED"
340
+ * Schema.is(IssueState)(42) // => false
341
+ * ```
342
+ *
343
+ * @stability experimental
344
+ * @category schemas
345
+ * @since 4.0.0
346
+ */
347
+ export declare const enumLiterals: <const Literals extends ReadonlyArray<string>>(literals: Literals) => Schema.refine<Literals[number], Schema.String>;
348
+ export {};
349
+ //# sourceMappingURL=GraphQL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphQL.d.ts","sourceRoot":"","sources":["../../src/graphql/GraphQL.ts"],"names":[],"mappings":"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"}