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
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import * as Equal from "../Equal.ts";
8
8
  import * as Hash from "../Hash.ts";
9
+ import * as Inspectable from "../Inspectable.ts";
9
10
  import * as Result from "../Result.ts";
10
11
  import * as IpInterface from "./IpInterface.ts";
11
12
  import * as NetAddress from "./NetAddress.ts";
@@ -20,13 +21,11 @@ declare const TypeId: "~effect/net/IpNetwork";
20
21
  * @category models
21
22
  * @since 4.0.0
22
23
  */
23
- export interface IpNetwork<out A extends NetAddress.IpAddress = NetAddress.IpAddress> extends Equal.Equal, Hash.Hash {
24
+ export interface IpNetwork<out A extends NetAddress.IpAddress = NetAddress.IpAddress> extends Equal.Equal, Hash.Hash, Inspectable.Inspectable {
24
25
  readonly _tag: "IpNetwork";
25
26
  readonly address: A;
26
27
  readonly prefixLength: number;
27
28
  readonly [TypeId]: typeof TypeId;
28
- toString(): string;
29
- toJSON(): string;
30
29
  }
31
30
  /**
32
31
  * An immutable canonical IPv4 network prefix.
@@ -44,6 +43,40 @@ export type Ipv4Network = IpNetwork<NetAddress.Ipv4Address>;
44
43
  * @since 4.0.0
45
44
  */
46
45
  export type Ipv6Network = IpNetwork<NetAddress.Ipv6Address>;
46
+ /**
47
+ * A network address and prefix length, generic over the accepted address
48
+ * input. The address must have no host bits set.
49
+ *
50
+ * @see {@link make} for the checked constructor
51
+ * @stability unstable
52
+ * @category models
53
+ * @since 4.0.0
54
+ */
55
+ export type IpNetworkParts<A extends NetAddress.IpAddressInput = NetAddress.IpAddressInput> = IpInterface.IpInterfaceParts<A>;
56
+ /**
57
+ * An IP network prefix, or a CIDR string or parts to convert to one.
58
+ *
59
+ * @stability unstable
60
+ * @category models
61
+ * @since 4.0.0
62
+ */
63
+ export type IpNetworkInput = IpNetwork | string | IpNetworkParts;
64
+ /**
65
+ * An IPv4 network prefix, or a CIDR string or parts to convert to one.
66
+ *
67
+ * @stability unstable
68
+ * @category models
69
+ * @since 4.0.0
70
+ */
71
+ export type Ipv4NetworkInput = Ipv4Network | string | IpNetworkParts<NetAddress.Ipv4AddressInput>;
72
+ /**
73
+ * An IPv6 network prefix, or a CIDR string or parts to convert to one.
74
+ *
75
+ * @stability unstable
76
+ * @category models
77
+ * @since 4.0.0
78
+ */
79
+ export type Ipv6NetworkInput = Ipv6Network | string | IpNetworkParts<NetAddress.Ipv6AddressInput>;
47
80
  /**
48
81
  * Returns `true` when a value is an IPv4 network prefix.
49
82
  *
@@ -68,7 +101,6 @@ export declare const isIpv6Network: (u: unknown) => u is Ipv6Network;
68
101
  * @since 4.0.0
69
102
  */
70
103
  export declare const isIpNetwork: (u: unknown) => u is IpNetwork;
71
- type IpAddressFamily<A extends NetAddress.IpAddress> = A extends NetAddress.Ipv4Address ? NetAddress.Ipv4Address : A extends NetAddress.Ipv6Address ? NetAddress.Ipv6Address : never;
72
104
  /**
73
105
  * Creates a network prefix when the address has no host bits set.
74
106
  *
@@ -94,7 +126,7 @@ export declare const make: <A extends NetAddress.IpAddress>(address: A, prefixLe
94
126
  * @category constructors
95
127
  * @since 4.0.0
96
128
  */
97
- export declare const fromAddress: <A extends NetAddress.IpAddress>(address: A, prefixLength: number) => Result.Result<IpNetwork<IpAddressFamily<A>>, NetAddress.NetAddressError>;
129
+ export declare const fromAddress: <A extends NetAddress.IpAddress>(address: A, prefixLength: number) => Result.Result<IpNetwork<NetAddress.Family<A>>, NetAddress.NetAddressError>;
98
130
  /**
99
131
  * Returns the canonical network containing an interface address. The derived
100
132
  * address retains its IPv4 or IPv6 family but not refinements on the input.
@@ -103,7 +135,7 @@ export declare const fromAddress: <A extends NetAddress.IpAddress>(address: A, p
103
135
  * @category conversions
104
136
  * @since 4.0.0
105
137
  */
106
- export declare const fromInterface: <A extends NetAddress.IpAddress>(self: IpInterface.IpInterface<A>) => IpNetwork<IpAddressFamily<A>>;
138
+ export declare const fromInterface: <A extends NetAddress.IpAddress>(self: IpInterface.IpInterface<A>) => IpNetwork<NetAddress.Family<A>>;
107
139
  /**
108
140
  * Parses a strict IPv4 network prefix in CIDR notation.
109
141
  *
@@ -128,6 +160,48 @@ export declare const ipv6FromString: (input: string) => Result.Result<Ipv6Networ
128
160
  * @since 4.0.0
129
161
  */
130
162
  export declare const fromString: (input: string) => Result.Result<IpNetwork, NetAddress.NetAddressError>;
163
+ /**
164
+ * Converts an `Ipv4NetworkInput` to an IPv4 network prefix, parsing strings
165
+ * like `ipv4FromString`, converting parts like `make`, and returning network
166
+ * prefixes unchanged.
167
+ *
168
+ * @stability unstable
169
+ * @category constructors
170
+ * @since 4.0.0
171
+ */
172
+ export declare const ipv4FromInput: (input: Ipv4NetworkInput) => Result.Result<Ipv4Network, NetAddress.NetAddressError>;
173
+ /**
174
+ * Converts an `Ipv6NetworkInput` to an IPv6 network prefix, parsing strings
175
+ * like `ipv6FromString`, converting parts like `make`, and returning network
176
+ * prefixes unchanged.
177
+ *
178
+ * @stability unstable
179
+ * @category constructors
180
+ * @since 4.0.0
181
+ */
182
+ export declare const ipv6FromInput: (input: Ipv6NetworkInput) => Result.Result<Ipv6Network, NetAddress.NetAddressError>;
183
+ /**
184
+ * Converts an `IpNetworkInput` to a network prefix, parsing strings like
185
+ * `fromString`, converting parts like `make`, and returning network prefixes
186
+ * unchanged.
187
+ *
188
+ * **Gotchas**
189
+ *
190
+ * Like `make`, an address with host bits set is rejected rather than truncated.
191
+ *
192
+ * @stability unstable
193
+ * @category constructors
194
+ * @since 4.0.0
195
+ */
196
+ export declare const fromInput: (input: IpNetworkInput) => Result.Result<IpNetwork, NetAddress.NetAddressError>;
197
+ /**
198
+ * Converts a trusted `IpNetworkInput` to a network prefix, throwing on failure.
199
+ *
200
+ * @stability unstable
201
+ * @category unsafe
202
+ * @since 4.0.0
203
+ */
204
+ export declare const fromInputUnsafe: (input: IpNetworkInput) => IpNetwork;
131
205
  /**
132
206
  * Creates a trusted network prefix, throwing when its address or prefix is invalid.
133
207
  *
@@ -145,7 +219,7 @@ export declare const makeUnsafe: <A extends NetAddress.IpAddress>(address: A, pr
145
219
  * @category unsafe
146
220
  * @since 4.0.0
147
221
  */
148
- export declare const fromAddressUnsafe: <A extends NetAddress.IpAddress>(address: A, prefixLength: number) => IpNetwork<IpAddressFamily<A>>;
222
+ export declare const fromAddressUnsafe: <A extends NetAddress.IpAddress>(address: A, prefixLength: number) => IpNetwork<NetAddress.Family<A>>;
149
223
  /**
150
224
  * Parses a trusted network prefix in CIDR notation, throwing on failure.
151
225
  *
@@ -179,7 +253,7 @@ export declare const firstAddress: <A extends NetAddress.IpAddress>(self: IpNetw
179
253
  * @category getters
180
254
  * @since 4.0.0
181
255
  */
182
- export declare const lastAddress: <A extends NetAddress.IpAddress>(self: IpNetwork<A>) => IpAddressFamily<A>;
256
+ export declare const lastAddress: <A extends NetAddress.IpAddress>(self: IpNetwork<A>) => NetAddress.Family<A>;
183
257
  /**
184
258
  * Returns the exact number of addresses in a network prefix.
185
259
  *
@@ -1 +1 @@
1
- {"version":3,"file":"IpNetwork.d.ts","sourceRoot":"","sources":["../../src/net/IpNetwork.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IpNetwork.d.ts","sourceRoot":"","sources":["../../src/net/IpNetwork.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  import * as Equal from "../Equal.js";
8
8
  import { dual } from "../Function.js";
9
9
  import * as Hash from "../Hash.js";
10
- import { NodeInspectSymbol } from "../Inspectable.js";
10
+ import * as Inspectable from "../Inspectable.js";
11
11
  import { hasProperty } from "../Predicate.js";
12
12
  import * as Result from "../Result.js";
13
13
  import * as IpInterface from "./IpInterface.js";
@@ -38,6 +38,7 @@ export const isIpv6Network = u => isIpNetwork(u) && NetAddress.isIpv6Address(u.a
38
38
  */
39
39
  export const isIpNetwork = u => hasProperty(u, TypeId);
40
40
  const IpNetworkProto = {
41
+ ...Inspectable.BaseProto,
41
42
  _tag: "IpNetwork",
42
43
  [TypeId]: TypeId,
43
44
  [Equal.symbol](that) {
@@ -51,9 +52,6 @@ const IpNetworkProto = {
51
52
  },
52
53
  toJSON() {
53
54
  return this.toString();
54
- },
55
- [NodeInspectSymbol]() {
56
- return this.toJSON();
57
55
  }
58
56
  };
59
57
  const fromInterfaceValue = value => {
@@ -165,6 +163,64 @@ export const fromString = input => {
165
163
  prefix: "required"
166
164
  }), value => make(value.address, value.prefixLength));
167
165
  };
166
+ const fromParts = (input, toAddress) => hasProperty(input, "address") && hasProperty(input, "prefixLength") ? Result.flatMap(toAddress(input.address), address => make(address, input.prefixLength)) : Result.fail(new NetAddress.NetAddressError({
167
+ input,
168
+ message: "expected an address and prefix length"
169
+ }));
170
+ /**
171
+ * Converts an `Ipv4NetworkInput` to an IPv4 network prefix, parsing strings
172
+ * like `ipv4FromString`, converting parts like `make`, and returning network
173
+ * prefixes unchanged.
174
+ *
175
+ * @stability unstable
176
+ * @category constructors
177
+ * @since 4.0.0
178
+ */
179
+ export const ipv4FromInput = input => {
180
+ if (isIpv4Network(input)) return Result.succeed(input);
181
+ if (typeof input === "string") return ipv4FromString(input);
182
+ return fromParts(input, NetAddress.ipv4FromInput);
183
+ };
184
+ /**
185
+ * Converts an `Ipv6NetworkInput` to an IPv6 network prefix, parsing strings
186
+ * like `ipv6FromString`, converting parts like `make`, and returning network
187
+ * prefixes unchanged.
188
+ *
189
+ * @stability unstable
190
+ * @category constructors
191
+ * @since 4.0.0
192
+ */
193
+ export const ipv6FromInput = input => {
194
+ if (isIpv6Network(input)) return Result.succeed(input);
195
+ if (typeof input === "string") return ipv6FromString(input);
196
+ return fromParts(input, NetAddress.ipv6FromInput);
197
+ };
198
+ /**
199
+ * Converts an `IpNetworkInput` to a network prefix, parsing strings like
200
+ * `fromString`, converting parts like `make`, and returning network prefixes
201
+ * unchanged.
202
+ *
203
+ * **Gotchas**
204
+ *
205
+ * Like `make`, an address with host bits set is rejected rather than truncated.
206
+ *
207
+ * @stability unstable
208
+ * @category constructors
209
+ * @since 4.0.0
210
+ */
211
+ export const fromInput = input => {
212
+ if (isIpNetwork(input)) return Result.succeed(input);
213
+ if (typeof input === "string") return fromString(input);
214
+ return fromParts(input, NetAddress.ipFromInput);
215
+ };
216
+ /**
217
+ * Converts a trusted `IpNetworkInput` to a network prefix, throwing on failure.
218
+ *
219
+ * @stability unstable
220
+ * @category unsafe
221
+ * @since 4.0.0
222
+ */
223
+ export const fromInputUnsafe = input => Result.getOrThrow(fromInput(input));
168
224
  /**
169
225
  * Creates a trusted network prefix, throwing when its address or prefix is invalid.
170
226
  *
@@ -1 +1 @@
1
- {"version":3,"file":"IpNetwork.js","names":[],"sources":["../../src/net/IpNetwork.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"IpNetwork.js","names":[],"sources":["../../src/net/IpNetwork.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}