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
@@ -0,0 +1,596 @@
1
+ /**
2
+ * Host name resolution, DNS queries, and DNS record values.
3
+ *
4
+ * `lookup` resolves a host name to the addresses used to connect to it,
5
+ * `resolve` queries DNS records of one type, and `reverse` looks up the names
6
+ * of an address. Runtime packages provide the `Dns` service from the host
7
+ * platform's resolver, whose `lookup` uses the operating system resolver
8
+ * (`getaddrinfo`) and therefore also reads the hosts file and other system
9
+ * sources, not only DNS. `AddressResolver` builds on `lookup` to resolve
10
+ * `host:port` endpoints.
11
+ *
12
+ * @stability experimental
13
+ * @since 4.0.0
14
+ */
15
+ import * as Arr from "../Array.ts";
16
+ import * as Context from "../Context.ts";
17
+ import * as Duration from "../Duration.ts";
18
+ import * as Effect from "../Effect.ts";
19
+ import * as Equal from "../Equal.ts";
20
+ import * as Hash from "../Hash.ts";
21
+ import * as Inspectable from "../Inspectable.ts";
22
+ import * as Layer from "../Layer.ts";
23
+ import type { ReadonlyRecord } from "../Record.ts";
24
+ import * as Result from "../Result.ts";
25
+ import * as Host from "./Host.ts";
26
+ import * as NetAddress from "./NetAddress.ts";
27
+ declare const RecordTypeId: "~effect/net/Dns/DnsRecord";
28
+ interface RecordProto<Tag extends RecordType> extends Equal.Equal, Hash.Hash, Inspectable.Inspectable {
29
+ readonly _tag: Tag;
30
+ readonly [RecordTypeId]: typeof RecordTypeId;
31
+ }
32
+ /**
33
+ * An IPv4 address record.
34
+ *
35
+ * @stability experimental
36
+ * @category models
37
+ * @since 4.0.0
38
+ */
39
+ export interface A extends RecordProto<"A"> {
40
+ readonly address: NetAddress.Ipv4Address;
41
+ }
42
+ /**
43
+ * An IPv6 address record.
44
+ *
45
+ * @stability experimental
46
+ * @category models
47
+ * @since 4.0.0
48
+ */
49
+ export interface Aaaa extends RecordProto<"AAAA"> {
50
+ readonly address: NetAddress.Ipv6Address;
51
+ }
52
+ /**
53
+ * A certification authority authorization record.
54
+ *
55
+ * @stability experimental
56
+ * @category models
57
+ * @since 4.0.0
58
+ */
59
+ export interface Caa extends RecordProto<"CAA"> {
60
+ readonly critical: boolean;
61
+ readonly tag: string;
62
+ readonly value: string;
63
+ }
64
+ /**
65
+ * A canonical name (alias) record.
66
+ *
67
+ * @stability experimental
68
+ * @category models
69
+ * @since 4.0.0
70
+ */
71
+ export interface Cname extends RecordProto<"CNAME"> {
72
+ readonly target: Host.DomainName;
73
+ }
74
+ /**
75
+ * A mail exchange record.
76
+ *
77
+ * @stability experimental
78
+ * @category models
79
+ * @since 4.0.0
80
+ */
81
+ export interface Mx extends RecordProto<"MX"> {
82
+ readonly exchange: Host.DomainName;
83
+ readonly priority: number;
84
+ }
85
+ /**
86
+ * A naming authority pointer record.
87
+ *
88
+ * @stability experimental
89
+ * @category models
90
+ * @since 4.0.0
91
+ */
92
+ export interface Naptr extends RecordProto<"NAPTR"> {
93
+ readonly order: number;
94
+ readonly preference: number;
95
+ readonly flags: string;
96
+ readonly service: string;
97
+ readonly regexp: string;
98
+ readonly replacement: Host.DomainName;
99
+ }
100
+ /**
101
+ * A name server record.
102
+ *
103
+ * @stability experimental
104
+ * @category models
105
+ * @since 4.0.0
106
+ */
107
+ export interface Ns extends RecordProto<"NS"> {
108
+ readonly host: Host.DomainName;
109
+ }
110
+ /**
111
+ * A pointer record, used for reverse lookups and DNS service discovery.
112
+ *
113
+ * **Details**
114
+ *
115
+ * `host` is a fully qualified name. It is a host name for reverse lookups,
116
+ * but may be a DNS-SD service instance name containing spaces or other
117
+ * characters, such as `EPSON TM-m30III._ipp._tcp.local.`. Labels are UTF-8
118
+ * text, with dots and backslashes inside a label escaped as `\.` and `\\`.
119
+ *
120
+ * @stability experimental
121
+ * @category models
122
+ * @since 4.0.0
123
+ */
124
+ export interface Ptr extends RecordProto<"PTR"> {
125
+ readonly host: string;
126
+ }
127
+ /**
128
+ * A start of authority record.
129
+ *
130
+ * **Details**
131
+ *
132
+ * `admin` is the administrator mailbox written as a domain name, such as
133
+ * `hostmaster.example.com`. A dot inside the mailbox's local part is escaped,
134
+ * as in `john\.doe.example.com`, so `admin` is a plain string rather than a
135
+ * `Host.DomainName`. Labels are UTF-8 text, with dots and backslashes inside
136
+ * a label escaped as `\.` and `\\`.
137
+ *
138
+ * @stability experimental
139
+ * @category models
140
+ * @since 4.0.0
141
+ */
142
+ export interface Soa extends RecordProto<"SOA"> {
143
+ readonly primary: Host.DomainName;
144
+ readonly admin: string;
145
+ readonly serial: number;
146
+ readonly refresh: Duration.Duration;
147
+ readonly retry: Duration.Duration;
148
+ readonly expire: Duration.Duration;
149
+ readonly minimum: Duration.Duration;
150
+ }
151
+ /**
152
+ * A service location record.
153
+ *
154
+ * @stability experimental
155
+ * @category models
156
+ * @since 4.0.0
157
+ */
158
+ export interface Srv extends RecordProto<"SRV"> {
159
+ readonly target: Host.DomainName;
160
+ readonly port: number;
161
+ readonly priority: number;
162
+ readonly weight: number;
163
+ }
164
+ /**
165
+ * A TLS authentication record (RFC 6698), which pins the certificate or public
166
+ * key that a TLS service presents, for DNS-Based Authentication of Named
167
+ * Entities (DANE). Records are published at a name made of the service's port
168
+ * and protocol, such as `_443._tcp.example.com`.
169
+ *
170
+ * **Details**
171
+ *
172
+ * `certUsage` says how the record constrains the certificate chain (0 to 3:
173
+ * PKIX-TA, PKIX-EE, DANE-TA, DANE-EE), `selector` whether `data` matches the
174
+ * full certificate (0) or its public key (1), and `matchingType` whether
175
+ * `data` holds the selected content itself (0) or its SHA-256 (1) or SHA-512
176
+ * (2) digest. Unassigned values are kept as they are.
177
+ *
178
+ * **Gotchas**
179
+ *
180
+ * `data` is a copy of the bytes the record was made from, but typed arrays
181
+ * cannot be frozen; treat it as read-only, because changing it changes the
182
+ * record's equality.
183
+ *
184
+ * @stability experimental
185
+ * @category models
186
+ * @since 4.0.0
187
+ */
188
+ export interface Tlsa extends RecordProto<"TLSA"> {
189
+ readonly certUsage: number;
190
+ readonly selector: number;
191
+ readonly matchingType: number;
192
+ readonly data: Uint8Array;
193
+ }
194
+ /**
195
+ * A text record. DNS stores text as one or more character strings, which are
196
+ * kept as separate chunks; protocols such as SPF read them joined, for example
197
+ * with `record.chunks.join("")`.
198
+ *
199
+ * **Details**
200
+ *
201
+ * Platform services decode each character string as UTF-8, replacing bytes
202
+ * that are not valid UTF-8 with U+FFFD, and `formatRecord` writes chunks back
203
+ * as UTF-8 bytes.
204
+ *
205
+ * @stability experimental
206
+ * @category models
207
+ * @since 4.0.0
208
+ */
209
+ export interface Txt extends RecordProto<"TXT"> {
210
+ readonly chunks: Arr.NonEmptyReadonlyArray<string>;
211
+ }
212
+ /**
213
+ * Any supported DNS record value.
214
+ *
215
+ * **Details**
216
+ *
217
+ * Records are immutable values tagged by record type, compared and hashed by
218
+ * their fields. They hold the record data only: owner names and TTLs are not
219
+ * included because platform resolvers do not report them consistently. Names
220
+ * returned by platform services are fully qualified and end with a dot, so
221
+ * passing them back to the resolver does not apply search domains.
222
+ *
223
+ * @stability experimental
224
+ * @category models
225
+ * @since 4.0.0
226
+ */
227
+ export type DnsRecord = A | Aaaa | Caa | Cname | Mx | Naptr | Ns | Ptr | Soa | Srv | Tlsa | Txt;
228
+ /**
229
+ * The type of a DNS record, such as `"A"` or `"SRV"`.
230
+ *
231
+ * @stability experimental
232
+ * @category models
233
+ * @since 4.0.0
234
+ */
235
+ export type RecordType = "A" | "AAAA" | "CAA" | "CNAME" | "MX" | "NAPTR" | "NS" | "PTR" | "SOA" | "SRV" | "TLSA" | "TXT";
236
+ /**
237
+ * The record value for a record type.
238
+ *
239
+ * @stability experimental
240
+ * @category models
241
+ * @since 4.0.0
242
+ */
243
+ export type RecordFor<T extends RecordType> = Extract<DnsRecord, {
244
+ readonly _tag: T;
245
+ }>;
246
+ /**
247
+ * The fields of a record type, without its `_tag`.
248
+ *
249
+ * @see {@link makeRecord}
250
+ * @stability experimental
251
+ * @category models
252
+ * @since 4.0.0
253
+ */
254
+ export type RecordFields<T extends RecordType> = T extends RecordType ? Omit<RecordFor<T>, keyof RecordProto<T>> : never;
255
+ /**
256
+ * Every supported record type.
257
+ *
258
+ * @stability experimental
259
+ * @category constants
260
+ * @since 4.0.0
261
+ */
262
+ export declare const recordTypes: Arr.NonEmptyReadonlyArray<RecordType>;
263
+ /**
264
+ * Returns `true` when a value is a supported record type.
265
+ *
266
+ * @stability experimental
267
+ * @category guards
268
+ * @since 4.0.0
269
+ */
270
+ export declare const isRecordType: (u: unknown) => u is RecordType;
271
+ /**
272
+ * Returns `true` when a value is a DNS record.
273
+ *
274
+ * @stability experimental
275
+ * @category guards
276
+ * @since 4.0.0
277
+ */
278
+ export declare const isDnsRecord: (u: unknown) => u is DnsRecord;
279
+ /**
280
+ * Creates a checked DNS record of a record type from its fields.
281
+ *
282
+ * **Details**
283
+ *
284
+ * Every field is checked at runtime: addresses must belong to the record's
285
+ * address family, names must be normalized domain names, priorities, weights,
286
+ * and ports must be 16-bit unsigned integers, the SOA serial and timers must be
287
+ * 32-bit unsigned integers (the timers in whole seconds), the TLSA fields must
288
+ * be 8-bit unsigned integers with non-empty `data`, which is copied, TXT
289
+ * records need at least one chunk, and CAA property tags must be alphanumeric.
290
+ * Fields that do not belong to the record type are ignored.
291
+ *
292
+ * **Example** (Creating a service record)
293
+ *
294
+ * ```ts import.meta.vitest
295
+ * import { Result } from "effect"
296
+ * import { Dns, Host } from "effect/net"
297
+ *
298
+ * const record = Result.getOrThrow(Dns.makeRecord("SRV", {
299
+ * target: Host.domainNameFromStringUnsafe("db.internal"),
300
+ * port: 5432,
301
+ * priority: 10,
302
+ * weight: 5
303
+ * }))
304
+ * Dns.formatRecord(record) // => "SRV 10 5 5432 db.internal"
305
+ * ```
306
+ *
307
+ * @stability experimental
308
+ * @category constructors
309
+ * @since 4.0.0
310
+ */
311
+ export declare const makeRecord: <T extends RecordType>(type: T, fields: RecordFields<T>) => Result.Result<RecordFor<T>, NetAddress.NetAddressError>;
312
+ /**
313
+ * Creates a trusted DNS record of a record type from its fields, throwing on
314
+ * failure.
315
+ *
316
+ * @stability experimental
317
+ * @category unsafe
318
+ * @since 4.0.0
319
+ */
320
+ export declare const makeRecordUnsafe: <T extends RecordType>(type: T, fields: RecordFields<T>) => RecordFor<T>;
321
+ /**
322
+ * Formats a record in DNS presentation format, prefixed by its type.
323
+ *
324
+ * @stability experimental
325
+ * @category encoding
326
+ * @since 4.0.0
327
+ */
328
+ export declare const formatRecord: (self: DnsRecord) => string;
329
+ /**
330
+ * Returns the reverse-lookup domain name for an IP address, in `in-addr.arpa`
331
+ * for IPv4 or `ip6.arpa` for IPv6.
332
+ *
333
+ * **Example** (Building reverse-lookup names)
334
+ *
335
+ * ```ts import.meta.vitest
336
+ * import { Dns, NetAddress } from "effect/net"
337
+ *
338
+ * Dns.reverseName(NetAddress.ipFromStringUnsafe("192.0.2.1")) // => "1.2.0.192.in-addr.arpa"
339
+ * ```
340
+ *
341
+ * @stability experimental
342
+ * @category converting
343
+ * @since 4.0.0
344
+ */
345
+ export declare const reverseName: (address: NetAddress.IpAddress) => Host.DomainName;
346
+ /**
347
+ * Parses the address of a name server: an IP address, which uses port 53, or
348
+ * an IP address and port.
349
+ *
350
+ * **Details**
351
+ *
352
+ * IPv6 addresses with a port are written in brackets, and IPv6 addresses
353
+ * without one are not.
354
+ *
355
+ * **Example** (Parsing name server addresses)
356
+ *
357
+ * ```ts import.meta.vitest
358
+ * import { Result } from "effect"
359
+ * import { Dns, NetAddress } from "effect/net"
360
+ *
361
+ * const format = (input: string) => Result.map(Dns.nameServerFromString(input), NetAddress.formatInet)
362
+ *
363
+ * format("192.0.2.53") // => Result.succeed("192.0.2.53:53")
364
+ * format("2001:db8::53") // => Result.succeed("[2001:db8::53]:53")
365
+ * format("[2001:db8::53]:5353") // => Result.succeed("[2001:db8::53]:5353")
366
+ * Result.isFailure(format("ns.example")) // => true
367
+ * ```
368
+ *
369
+ * @stability experimental
370
+ * @category decoding
371
+ * @since 4.0.0
372
+ */
373
+ export declare const nameServerFromString: (input: string) => Result.Result<NetAddress.InetAddress, NetAddress.NetAddressError>;
374
+ /**
375
+ * Converts a name server to the internet address to query. Strings are parsed
376
+ * like `nameServerFromString`, internet addresses and address parts with a
377
+ * port are converted like `NetAddress.inetAddressFromInput`, and other IP
378
+ * address inputs are converted like `NetAddress.ipFromInput` and use port 53.
379
+ *
380
+ * @stability experimental
381
+ * @category constructors
382
+ * @since 4.0.0
383
+ */
384
+ export declare const nameServerFromInput: (input: NetAddress.IpAddressInput | NetAddress.InetAddressInput) => Result.Result<NetAddress.InetAddress, NetAddress.NetAddressError>;
385
+ /**
386
+ * The normalized reason for a failed name resolution.
387
+ *
388
+ * **Details**
389
+ *
390
+ * - `NotFound`: no records were found, either because the name does not exist
391
+ * or because it has no records of the requested type or address family.
392
+ * Like Go's `DNSError.IsNotFound`, the two cases are not distinguished
393
+ * because not every platform resolver can tell them apart.
394
+ * - `Timeout`, `Temporary`, and `ServerFailure`: transient failures that may
395
+ * succeed when retried.
396
+ * - `Refused`: the server refused the query or could not be reached.
397
+ * - `BadName`: the name was rejected as malformed.
398
+ * - `InvalidResponse`: the platform returned data that could not be converted
399
+ * into record values.
400
+ * - `Unsupported`: the platform does not support the operation or record type.
401
+ *
402
+ * @stability experimental
403
+ * @category errors
404
+ * @since 4.0.0
405
+ */
406
+ export type DnsErrorReason = "NotFound" | "Timeout" | "Temporary" | "Refused" | "ServerFailure" | "BadName" | "InvalidResponse" | "Unsupported" | "Unknown";
407
+ declare const DnsError_base: new <A extends Record<string, any> = {}>(args: import("../Types.ts").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("../Cause.ts").YieldableError & {
408
+ readonly _tag: "DnsError";
409
+ } & Readonly<A>;
410
+ /**
411
+ * A failed lookup, query, or reverse lookup.
412
+ *
413
+ * @stability experimental
414
+ * @category errors
415
+ * @since 4.0.0
416
+ */
417
+ export declare class DnsError extends DnsError_base<{
418
+ readonly reason: DnsErrorReason;
419
+ readonly method: "lookup" | "resolve" | "reverse";
420
+ readonly hostname: string;
421
+ readonly recordType?: RecordType | undefined;
422
+ readonly cause?: unknown;
423
+ }> {
424
+ /**
425
+ * Formats the reason, operation, and name of the failed resolution.
426
+ *
427
+ * @since 4.0.0
428
+ */
429
+ get message(): string;
430
+ /**
431
+ * Whether the failure is transient and the operation may succeed if retried.
432
+ *
433
+ * @since 4.0.0
434
+ */
435
+ get isTemporary(): boolean;
436
+ }
437
+ /**
438
+ * Options for address lookups. Without a `family`, addresses of both families
439
+ * are returned.
440
+ *
441
+ * @stability experimental
442
+ * @category models
443
+ * @since 4.0.0
444
+ */
445
+ export interface LookupOptions {
446
+ readonly family?: NetAddress.IpFamily | undefined;
447
+ }
448
+ declare const Dns_base: Context.ServiceClass<Dns, "effect/net/Dns", {
449
+ /**
450
+ * Looks up the addresses used to connect to a host name.
451
+ *
452
+ * **Details**
453
+ *
454
+ * Addresses are returned in the implementation's preferred order. Platform
455
+ * implementations use the operating system resolver and keep the system's
456
+ * order.
457
+ * Names are parsed and normalized; invalid names fail with `BadName`.
458
+ *
459
+ * **Gotchas**
460
+ *
461
+ * IPv6 link-local addresses (`fe80::/10`) are returned without the interface
462
+ * they belong to, because the runtimes' resolvers do not report it.
463
+ */
464
+ lookup<F extends NetAddress.IpFamily>(host: Host.DomainNameInput, options: {
465
+ readonly family: F;
466
+ }): Effect.Effect<Arr.NonEmptyReadonlyArray<NetAddress.FamilyAddress<F>>, DnsError>;
467
+ lookup(host: Host.DomainNameInput, options?: LookupOptions): Effect.Effect<Arr.NonEmptyReadonlyArray<NetAddress.IpAddress>, DnsError>;
468
+ /**
469
+ * Queries the DNS records of one type for a name.
470
+ * Names are parsed and normalized; invalid names fail with `BadName`.
471
+ */
472
+ resolve<T extends RecordType>(name: Host.DomainNameInput, type: T): Effect.Effect<Arr.NonEmptyReadonlyArray<RecordFor<T>>, DnsError>;
473
+ /**
474
+ * Looks up the host names of an address with a reverse DNS query.
475
+ *
476
+ * **Details**
477
+ *
478
+ * Addresses given as strings are parsed; invalid addresses fail with
479
+ * `BadName`. Names that are not valid host names are skipped, including
480
+ * names with non-ASCII labels, which are not converted to their ASCII
481
+ * (`xn--`) form because that form is a different DNS name. When every
482
+ * returned name is skipped, the lookup fails with `InvalidResponse`.
483
+ */
484
+ reverse(address: NetAddress.IpAddressInput): Effect.Effect<Arr.NonEmptyReadonlyArray<Host.DomainName>, DnsError>;
485
+ }>;
486
+ /**
487
+ * Service that resolves names to addresses, queries DNS records, and looks up
488
+ * the names of addresses.
489
+ *
490
+ * **Details**
491
+ *
492
+ * Every operation either returns at least one result or fails with a
493
+ * {@link DnsError}.
494
+ *
495
+ * @stability experimental
496
+ * @category services
497
+ * @since 4.0.0
498
+ */
499
+ export declare class Dns extends Dns_base {
500
+ }
501
+ /**
502
+ * Creates a `Dns` service from platform resolver operations.
503
+ *
504
+ * **Details**
505
+ *
506
+ * Lookup and query names are parsed and normalized, and reverse lookup
507
+ * addresses are parsed, before platform callbacks receive them. Invalid names
508
+ * and addresses fail with `BadName`.
509
+ *
510
+ * The constructor filters lookups by the requested address family, keeps only
511
+ * records of the requested type, removes duplicates, and turns empty results
512
+ * into `NotFound` failures. `reverse` receives the names of an address and
513
+ * keeps those that are valid host names, failing with `InvalidResponse` when
514
+ * there are names but none is valid. Without a `reverse` operation, the names
515
+ * are those of the PTR records at the address's `reverseName`, and failures of
516
+ * that query are reported as failures of `reverse`.
517
+ *
518
+ * Only `lookup` is required. Platforms that can resolve addresses but cannot
519
+ * query records, such as browsers, omit `resolve`; record queries, and reverse
520
+ * lookups without a `reverse` operation, then fail with `Unsupported`.
521
+ *
522
+ * @stability experimental
523
+ * @category constructors
524
+ * @since 4.0.0
525
+ */
526
+ export declare const make: (impl: {
527
+ readonly lookup: (host: Host.DomainName, family: NetAddress.IpFamily | undefined) => Effect.Effect<ReadonlyArray<NetAddress.IpAddress>, DnsError>;
528
+ readonly resolve?: ((name: Host.DomainName, type: RecordType) => Effect.Effect<ReadonlyArray<DnsRecord>, DnsError>) | undefined;
529
+ readonly reverse?: ((address: NetAddress.IpAddress) => Effect.Effect<ReadonlyArray<string>, DnsError>) | undefined;
530
+ }) => Dns["Service"];
531
+ /**
532
+ * Fixed names, addresses, and records for a static resolver.
533
+ *
534
+ * **Details**
535
+ *
536
+ * `hosts` works like a hosts file: its entries are used by `lookup` and
537
+ * `reverse`, but not by `resolve`. `records` holds DNS records by owner name and
538
+ * is used by all three operations. Names are normalized like
539
+ * `Host.domainNameFromString`, and a trailing dot is ignored. Addresses are
540
+ * converted like `NetAddress.ipFromInput`.
541
+ *
542
+ * @stability experimental
543
+ * @category models
544
+ * @since 4.0.0
545
+ */
546
+ export interface StaticZone {
547
+ readonly hosts?: ReadonlyRecord<string, ReadonlyArray<NetAddress.IpAddressInput>> | undefined;
548
+ readonly records?: ReadonlyRecord<string, ReadonlyArray<DnsRecord>> | undefined;
549
+ }
550
+ /**
551
+ * Creates a `Dns` service that answers from fixed data.
552
+ *
553
+ * **When to use**
554
+ *
555
+ * Use to test code that depends on `Dns`, or to provide fixed names on
556
+ * platforms without a resolver.
557
+ *
558
+ * **Details**
559
+ *
560
+ * Names without matching addresses or records fail with `NotFound`. CNAME
561
+ * records are returned by `CNAME` queries but are not followed.
562
+ *
563
+ * **Example** (Looking up a name with a static resolver)
564
+ *
565
+ * ```ts import.meta.vitest
566
+ * import { Effect, Result } from "effect"
567
+ * import { Dns, NetAddress } from "effect/net"
568
+ *
569
+ * const dns = Result.getOrThrow(Dns.makeStatic({
570
+ * hosts: { "db.internal": ["10.0.0.5"] }
571
+ * }))
572
+ *
573
+ * const program = dns.lookup("db.internal").pipe(
574
+ * Effect.map((addresses) => addresses.map(NetAddress.formatIp))
575
+ * )
576
+ *
577
+ * await Effect.runPromise(program) // => ["10.0.0.5"]
578
+ * ```
579
+ *
580
+ * @see {@link layerStatic}
581
+ * @stability experimental
582
+ * @category constructors
583
+ * @since 4.0.0
584
+ */
585
+ export declare const makeStatic: (zone: StaticZone) => Result.Result<Dns["Service"], NetAddress.NetAddressError>;
586
+ /**
587
+ * Creates a layer that provides a `Dns` service answering from fixed data.
588
+ *
589
+ * @see {@link makeStatic} for the resolution rules
590
+ * @stability experimental
591
+ * @category layers
592
+ * @since 4.0.0
593
+ */
594
+ export declare const layerStatic: (zone: StaticZone) => Layer.Layer<Dns, NetAddress.NetAddressError>;
595
+ export {};
596
+ //# sourceMappingURL=Dns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dns.d.ts","sourceRoot":"","sources":["../../src/net/Dns.ts"],"names":[],"mappings":"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"}