@smthrs/platform-node 1.0.0-rc.5 → 1.0.0-rc.6
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.
- package/README.md +2 -2
- package/bin/win32-x64/smithers-jj-export.exe +0 -0
- package/dist/cjs/EgressHttpClient.d.ts +1 -1
- package/dist/cjs/EgressHttpClient.d.ts.map +1 -1
- package/dist/cjs/EgressHttpClient.js +4 -4
- package/dist/cjs/EgressHttpClient.js.map +2 -2
- package/dist/cjs/NodeHost.d.ts +2 -2
- package/dist/cjs/NodeHost.d.ts.map +1 -1
- package/dist/cjs/NodeHost.js.map +2 -2
- package/dist/cjs/ProcessConfinement.js +1 -1
- package/dist/cjs/ProcessConfinement.js.map +2 -2
- package/dist/cjs/ProcessReaper.d.ts +1 -1
- package/dist/cjs/ProcessReaper.d.ts.map +1 -1
- package/dist/cjs/ProcessReaper.js +1 -1
- package/dist/cjs/ProcessReaper.js.map +1 -1
- package/dist/cjs/ScopedProcess.d.ts +2 -2
- package/dist/cjs/ScopedProcess.d.ts.map +1 -1
- package/dist/cjs/ScopedProcess.js +1 -1
- package/dist/cjs/ScopedProcess.js.map +2 -2
- package/dist/cjs/internal/PipedProcess.d.ts +2 -2
- package/dist/cjs/internal/PipedProcess.d.ts.map +1 -1
- package/dist/cjs/internal/PipedProcess.js +2 -2
- package/dist/cjs/internal/PipedProcess.js.map +2 -2
- package/dist/cjs/internal/ProcessCleanup.d.ts +1 -1
- package/dist/cjs/internal/ProcessCleanup.d.ts.map +1 -1
- package/dist/cjs/internal/ProcessCleanup.js.map +1 -1
- package/dist/cjs/internal/ProcessSupervisor.d.ts +2 -2
- package/dist/cjs/internal/ProcessSupervisor.d.ts.map +1 -1
- package/dist/cjs/internal/ProcessSupervisor.js +2 -2
- package/dist/cjs/internal/ProcessSupervisor.js.map +2 -2
- package/dist/esm/EgressHttpClient.d.ts +1 -1
- package/dist/esm/EgressHttpClient.d.ts.map +1 -1
- package/dist/esm/EgressHttpClient.js +4 -4
- package/dist/esm/EgressHttpClient.js.map +1 -1
- package/dist/esm/NodeHost.d.ts +2 -2
- package/dist/esm/NodeHost.d.ts.map +1 -1
- package/dist/esm/NodeHost.js.map +1 -1
- package/dist/esm/ProcessConfinement.js +1 -1
- package/dist/esm/ProcessConfinement.js.map +1 -1
- package/dist/esm/ProcessReaper.d.ts +1 -1
- package/dist/esm/ProcessReaper.d.ts.map +1 -1
- package/dist/esm/ProcessReaper.js +1 -1
- package/dist/esm/ProcessReaper.js.map +1 -1
- package/dist/esm/ScopedProcess.d.ts +2 -2
- package/dist/esm/ScopedProcess.d.ts.map +1 -1
- package/dist/esm/ScopedProcess.js +1 -1
- package/dist/esm/ScopedProcess.js.map +1 -1
- package/dist/esm/internal/PipedProcess.d.ts +2 -2
- package/dist/esm/internal/PipedProcess.d.ts.map +1 -1
- package/dist/esm/internal/PipedProcess.js +2 -2
- package/dist/esm/internal/PipedProcess.js.map +1 -1
- package/dist/esm/internal/ProcessCleanup.d.ts +1 -1
- package/dist/esm/internal/ProcessCleanup.d.ts.map +1 -1
- package/dist/esm/internal/ProcessCleanup.js.map +1 -1
- package/dist/esm/internal/ProcessSupervisor.d.ts +2 -2
- package/dist/esm/internal/ProcessSupervisor.d.ts.map +1 -1
- package/dist/esm/internal/ProcessSupervisor.js +2 -2
- package/dist/esm/internal/ProcessSupervisor.js.map +1 -1
- package/dist/vendor/adapters.json +622 -382
- package/dist/vendor/{chunk-42QKY6T6.js → chunk-2ZAGBWTH.js} +1 -1
- package/dist/vendor/{chunk-3GR5VZ2M.js → chunk-3SL3HKQA.js} +3 -3
- package/dist/vendor/{chunk-VANKHF46.js → chunk-423HXGL6.js} +55 -23
- package/dist/vendor/{chunk-6ME2W7TF.js → chunk-4WIQ2XN7.js} +2 -2
- package/dist/vendor/{chunk-Y35ZAO5U.js → chunk-6FSJ2PMW.js} +8 -8
- package/dist/vendor/{chunk-5ZMHBXIK.js → chunk-6L2NJEOV.js} +11 -4
- package/dist/vendor/{chunk-TFIKFFSC.js → chunk-7NMJM44J.js} +2 -2
- package/dist/vendor/{chunk-OXNGN5H7.js → chunk-A7UXCEJA.js} +1 -1
- package/dist/vendor/chunk-ADP5LRUF.js +274 -0
- package/dist/vendor/{chunk-DS7GF46S.js → chunk-AWNTTSHL.js} +2 -2
- package/dist/vendor/{chunk-IIJ52ZU6.js → chunk-BUKVIAEM.js} +2 -2
- package/dist/vendor/{chunk-BKTBUBQY.js → chunk-BY3SDXID.js} +71 -7
- package/dist/vendor/{chunk-JJ24ARBQ.js → chunk-C3PGUWW5.js} +53 -33
- package/dist/vendor/{chunk-J7A4CZDO.js → chunk-D2ZL4PLZ.js} +8 -7
- package/dist/vendor/{chunk-XDKNKFBW.js → chunk-D4HEMNGU.js} +2 -2
- package/dist/vendor/{chunk-DVOAHXPG.js → chunk-FFD6R5JZ.js} +3 -3
- package/dist/vendor/{chunk-UFH5UUZK.js → chunk-HDV6VIRM.js} +1 -1
- package/dist/vendor/chunk-IWSDM4CG.js +16 -0
- package/dist/vendor/{chunk-KUUXSID7.js → chunk-KABHKTVG.js} +2 -2
- package/dist/vendor/{chunk-B3FZ67QU.js → chunk-KFDBU6RR.js} +4 -3
- package/dist/vendor/chunk-LNWGIDIG.js +20 -0
- package/dist/vendor/{chunk-TXKLEBBL.js → chunk-MUEED3C3.js} +3 -2
- package/dist/vendor/{chunk-EZWY45HP.js → chunk-N6TK35N5.js} +2 -2
- package/dist/vendor/{chunk-QPLDT6A6.js → chunk-NQO6V4KI.js} +29 -13
- package/dist/vendor/{chunk-AMQKOQNT.js → chunk-NTEWGPPG.js} +9 -9
- package/dist/vendor/chunk-NUJQMLJP.js +325 -0
- package/dist/vendor/{chunk-54RLBMTZ.js → chunk-OF3N2FN4.js} +1 -1
- package/dist/vendor/{chunk-RO2R4MJH.js → chunk-PA32ARKD.js} +17 -17
- package/dist/vendor/{chunk-JG5TTWPT.js → chunk-PECOFLCU.js} +3 -3
- package/dist/vendor/{chunk-VZBDV3TV.js → chunk-PU7QVYND.js} +2 -2
- package/dist/vendor/{chunk-2Y7WC4KU.js → chunk-QHR2RC5M.js} +2 -2
- package/dist/vendor/{chunk-QYBKAIA6.js → chunk-R327POEZ.js} +2 -2
- package/dist/vendor/chunk-RKVXYKHJ.js +29 -0
- package/dist/vendor/{chunk-XH4U3JSV.js → chunk-RQH5DSBA.js} +2 -2
- package/dist/vendor/{chunk-DWSHTSVX.js → chunk-S6QUQLBV.js} +5 -5
- package/dist/vendor/{chunk-KOZMM5PZ.js → chunk-UPIQ52FQ.js} +12 -12
- package/dist/vendor/{chunk-EGBNVEEW.js → chunk-UUQXJRMK.js} +1 -1
- package/dist/vendor/{chunk-LEUPYT3Q.js → chunk-UUYTTEDH.js} +1 -1
- package/dist/vendor/{chunk-NBVRTDTV.js → chunk-V2EB7FHY.js} +2 -2
- package/dist/vendor/{chunk-M32LDTW7.js → chunk-VIWU4EBF.js} +2 -2
- package/dist/vendor/{chunk-SIR62W3Y.js → chunk-VWSWEUN5.js} +51 -31
- package/dist/vendor/{chunk-MBSKBQ5D.js → chunk-WPZDL2D7.js} +1 -1
- package/dist/vendor/chunk-YDY5P7GL.js +20 -0
- package/dist/vendor/{chunk-FNZOJHSV.js → chunk-YFD4QFIL.js} +17 -17
- package/dist/vendor/{chunk-GXCHI7BM.js → chunk-ZVJCBTJG.js} +5 -5
- package/dist/vendor/cjs/node/NodeAddressResolver.d.ts +16 -0
- package/dist/vendor/cjs/node/NodeAddressResolver.js +1 -0
- package/dist/vendor/cjs/node/NodeChildProcessSpawner.d.ts +1 -0
- package/dist/vendor/cjs/node/NodeClusterHttp.d.ts +13 -22
- package/dist/vendor/cjs/node/NodeClusterSocket.d.ts +14 -8
- package/dist/vendor/cjs/node/NodeCrypto.d.ts +1 -0
- package/dist/vendor/cjs/node/NodeDatagramSocket.d.ts +10 -0
- package/dist/vendor/cjs/node/NodeDatagramSocket.js +1 -0
- package/dist/vendor/cjs/node/NodeDns.d.ts +51 -0
- package/dist/vendor/cjs/node/NodeDns.js +1 -0
- package/dist/vendor/cjs/node/NodeFileSystem.d.ts +1 -0
- package/dist/vendor/cjs/node/NodeHttpClient.d.ts +21 -2
- package/dist/vendor/cjs/node/NodeHttpIncomingMessage.d.ts +5 -3
- package/dist/vendor/cjs/node/NodeHttpPlatform.d.ts +8 -6
- package/dist/vendor/cjs/node/NodeHttpServer.d.ts +21 -10
- package/dist/vendor/cjs/node/NodeHttpServerRequest.d.ts +4 -1
- package/dist/vendor/cjs/node/NodeMultipart.d.ts +5 -1
- package/dist/vendor/cjs/node/NodeMultipartParser.d.ts +9 -1
- package/dist/vendor/cjs/node/NodePath.d.ts +3 -0
- package/dist/vendor/cjs/node/NodeRedis.d.ts +5 -1
- package/dist/vendor/cjs/node/NodeRuntime.d.ts +3 -0
- package/dist/vendor/cjs/node/NodeServices.d.ts +4 -1
- package/dist/vendor/cjs/node/NodeSink.d.ts +1 -0
- package/dist/vendor/cjs/node/NodeSocket.d.ts +10 -3
- package/dist/vendor/cjs/node/NodeSocketServer.d.ts +1 -0
- package/dist/vendor/cjs/node/NodeStdio.d.ts +1 -0
- package/dist/vendor/cjs/node/NodeStream.d.ts +1 -0
- package/dist/vendor/cjs/node/NodeTerminal.d.ts +6 -3
- package/dist/vendor/cjs/node/NodeWorker.d.ts +3 -1
- package/dist/vendor/cjs/node/NodeWorkerRunner.d.ts +2 -1
- package/dist/vendor/cjs/node/Undici.d.ts +3 -0
- package/dist/vendor/cjs/node/index.d.ts +40 -0
- package/dist/vendor/cjs/node-shared/NodeAddressResolver.d.ts +13 -0
- package/dist/vendor/cjs/node-shared/NodeAddressResolver.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeChildProcessSpawner.d.ts +12 -3
- package/dist/vendor/cjs/node-shared/NodeClusterSocket.d.ts +17 -4
- package/dist/vendor/cjs/node-shared/NodeCrypto.d.ts +3 -0
- package/dist/vendor/cjs/node-shared/NodeDatagramSocket.d.ts +246 -0
- package/dist/vendor/cjs/node-shared/NodeDatagramSocket.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeDns.d.ts +221 -0
- package/dist/vendor/cjs/node-shared/NodeDns.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeFileSystem.d.ts +1 -0
- package/dist/vendor/cjs/node-shared/NodeHttpCompression.d.ts +5 -1
- package/dist/vendor/cjs/node-shared/NodePath.d.ts +3 -0
- package/dist/vendor/cjs/node-shared/NodeRuntime.d.ts +4 -0
- package/dist/vendor/cjs/node-shared/NodeSink.d.ts +4 -0
- package/dist/vendor/cjs/node-shared/NodeSocket.d.ts +11 -1
- package/dist/vendor/cjs/node-shared/NodeSocketServer.d.ts +8 -1
- package/dist/vendor/cjs/node-shared/NodeStdio.d.ts +1 -0
- package/dist/vendor/cjs/node-shared/NodeStream.d.ts +15 -0
- package/dist/vendor/cjs/node-shared/NodeTerminal.d.ts +6 -4
- package/dist/vendor/cjs/node-shared/index.d.ts +29 -0
- package/dist/vendor/cjs/node-shared/internal/nodeChildProcessSpawner.d.ts +1 -1
- package/dist/vendor/cjs/platform-node-shared.d.ts +29 -0
- package/dist/vendor/cjs/platform-node.d.ts +40 -0
- package/dist/vendor/node/NodeAddressResolver.d.ts +16 -0
- package/dist/vendor/node/NodeAddressResolver.js +8 -0
- package/dist/vendor/node/NodeChildProcessSpawner.d.ts +1 -0
- package/dist/vendor/node/NodeChildProcessSpawner.js +6 -6
- package/dist/vendor/node/NodeClusterHttp.d.ts +13 -22
- package/dist/vendor/node/NodeClusterHttp.js +32 -32
- package/dist/vendor/node/NodeClusterSocket.d.ts +14 -8
- package/dist/vendor/node/NodeClusterSocket.js +15 -15
- package/dist/vendor/node/NodeCrypto.d.ts +1 -0
- package/dist/vendor/node/NodeCrypto.js +2 -2
- package/dist/vendor/node/NodeDatagramSocket.d.ts +10 -0
- package/dist/vendor/node/NodeDatagramSocket.js +12 -0
- package/dist/vendor/node/NodeDns.d.ts +51 -0
- package/dist/vendor/node/NodeDns.js +12 -0
- package/dist/vendor/node/NodeFileSystem.d.ts +1 -0
- package/dist/vendor/node/NodeFileSystem.js +3 -3
- package/dist/vendor/node/NodeHttpClient.d.ts +21 -2
- package/dist/vendor/node/NodeHttpClient.js +6 -6
- package/dist/vendor/node/NodeHttpIncomingMessage.d.ts +5 -3
- package/dist/vendor/node/NodeHttpIncomingMessage.js +4 -4
- package/dist/vendor/node/NodeHttpPlatform.d.ts +8 -6
- package/dist/vendor/node/NodeHttpPlatform.js +8 -8
- package/dist/vendor/node/NodeHttpServer.d.ts +21 -10
- package/dist/vendor/node/NodeHttpServer.js +26 -26
- package/dist/vendor/node/NodeHttpServerRequest.d.ts +4 -1
- package/dist/vendor/node/NodeHttpServerRequest.js +1 -1
- package/dist/vendor/node/NodeMultipart.d.ts +5 -1
- package/dist/vendor/node/NodeMultipart.js +5 -5
- package/dist/vendor/node/NodeMultipartParser.d.ts +9 -1
- package/dist/vendor/node/NodeMultipartParser.js +1 -1
- package/dist/vendor/node/NodePath.d.ts +3 -0
- package/dist/vendor/node/NodePath.js +2 -2
- package/dist/vendor/node/NodeRedis.d.ts +5 -1
- package/dist/vendor/node/NodeRedis.js +1 -1
- package/dist/vendor/node/NodeRuntime.d.ts +3 -0
- package/dist/vendor/node/NodeRuntime.js +2 -2
- package/dist/vendor/node/NodeServices.d.ts +4 -1
- package/dist/vendor/node/NodeServices.js +17 -17
- package/dist/vendor/node/NodeSink.d.ts +1 -0
- package/dist/vendor/node/NodeSink.js +2 -2
- package/dist/vendor/node/NodeSocket.d.ts +10 -3
- package/dist/vendor/node/NodeSocket.js +2 -2
- package/dist/vendor/node/NodeSocketServer.d.ts +1 -0
- package/dist/vendor/node/NodeSocketServer.js +3 -3
- package/dist/vendor/node/NodeStdio.d.ts +1 -0
- package/dist/vendor/node/NodeStdio.js +4 -4
- package/dist/vendor/node/NodeStream.d.ts +1 -0
- package/dist/vendor/node/NodeStream.js +3 -3
- package/dist/vendor/node/NodeTerminal.d.ts +6 -3
- package/dist/vendor/node/NodeTerminal.js +2 -2
- package/dist/vendor/node/NodeWorker.d.ts +3 -1
- package/dist/vendor/node/NodeWorker.js +1 -1
- package/dist/vendor/node/NodeWorkerRunner.d.ts +2 -1
- package/dist/vendor/node/NodeWorkerRunner.js +1 -1
- package/dist/vendor/node/Undici.d.ts +3 -0
- package/dist/vendor/node/Undici.js +1 -1
- package/dist/vendor/node/index.d.ts +40 -0
- package/dist/vendor/node/index.js +70 -55
- package/dist/vendor/node-shared/NodeAddressResolver.d.ts +13 -0
- package/dist/vendor/node-shared/NodeAddressResolver.js +7 -0
- package/dist/vendor/node-shared/NodeChildProcessSpawner.d.ts +12 -3
- package/dist/vendor/node-shared/NodeChildProcessSpawner.js +5 -5
- package/dist/vendor/node-shared/NodeClusterSocket.d.ts +17 -4
- package/dist/vendor/node-shared/NodeClusterSocket.js +3 -3
- package/dist/vendor/node-shared/NodeCrypto.d.ts +3 -0
- package/dist/vendor/node-shared/NodeCrypto.js +1 -1
- package/dist/vendor/node-shared/NodeDatagramSocket.d.ts +246 -0
- package/dist/vendor/node-shared/NodeDatagramSocket.js +11 -0
- package/dist/vendor/node-shared/NodeDns.d.ts +221 -0
- package/dist/vendor/node-shared/NodeDns.js +31 -0
- package/dist/vendor/node-shared/NodeFileSystem.d.ts +1 -0
- package/dist/vendor/node-shared/NodeFileSystem.js +2 -2
- package/dist/vendor/node-shared/NodeHttpCompression.d.ts +5 -1
- package/dist/vendor/node-shared/NodeHttpCompression.js +1 -1
- package/dist/vendor/node-shared/NodePath.d.ts +3 -0
- package/dist/vendor/node-shared/NodePath.js +1 -1
- package/dist/vendor/node-shared/NodeRuntime.d.ts +4 -0
- package/dist/vendor/node-shared/NodeRuntime.js +1 -1
- package/dist/vendor/node-shared/NodeSink.d.ts +4 -0
- package/dist/vendor/node-shared/NodeSink.js +1 -1
- package/dist/vendor/node-shared/NodeSocket.d.ts +11 -1
- package/dist/vendor/node-shared/NodeSocket.js +1 -1
- package/dist/vendor/node-shared/NodeSocketServer.d.ts +8 -1
- package/dist/vendor/node-shared/NodeSocketServer.js +2 -2
- package/dist/vendor/node-shared/NodeStdio.d.ts +1 -0
- package/dist/vendor/node-shared/NodeStdio.js +3 -3
- package/dist/vendor/node-shared/NodeStream.d.ts +15 -0
- package/dist/vendor/node-shared/NodeStream.js +2 -2
- package/dist/vendor/node-shared/NodeTerminal.d.ts +6 -4
- package/dist/vendor/node-shared/NodeTerminal.js +1 -1
- package/dist/vendor/node-shared/index.d.ts +29 -0
- package/dist/vendor/node-shared/index.js +34 -22
- package/dist/vendor/node-shared/internal/nodeChildProcessSpawner.d.ts +1 -1
- package/dist/vendor/node-shared/internal/nodeChildProcessSpawner.js +1 -1
- package/dist/vendor/node-shared/internal/utils.js +1 -1
- package/dist/vendor/platform-node-shared.d.ts +29 -0
- package/dist/vendor/platform-node-shared.js +34 -22
- package/dist/vendor/platform-node.d.ts +40 -0
- package/dist/vendor/platform-node.js +70 -55
- package/docs/README.md +2 -2
- package/docs/api.md +2 -2
- package/docs/concepts/host-bundle.md +2 -2
- package/docs/installation.md +8 -9
- package/docs/quickstart.md +2 -2
- package/package.json +12 -12
- package/src/EgressHttpClient.ts +4 -4
- package/src/NodeHost.ts +2 -2
- package/src/ProcessConfinement.ts +1 -1
- package/src/ProcessReaper.ts +2 -2
- package/src/ScopedProcess.ts +2 -2
- package/src/internal/PipedProcess.ts +2 -2
- package/src/internal/ProcessCleanup.ts +1 -1
- package/src/internal/ProcessSupervisor.ts +2 -2
- /package/dist/vendor/{chunk-M7CLUILA.js → chunk-3WUGYBFU.js} +0 -0
- /package/dist/vendor/{chunk-ZJMRMY57.js → chunk-ASGOJ3XA.js} +0 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node UDP adapter for `effect/socket/DatagramSocket`, built on `node:dgram`.
|
|
3
|
+
*
|
|
4
|
+
* `make` opens a new `dgram.Socket` for each reader acquisition, `fromSocket`
|
|
5
|
+
* adopts a socket the caller creates, and `layer` provides the
|
|
6
|
+
* `DatagramSocket` service.
|
|
7
|
+
*
|
|
8
|
+
* The reader owns the native socket, so a send-only client must still acquire
|
|
9
|
+
* a reader, or its writes wait forever. Every write waits for Node's send
|
|
10
|
+
* callback, so send errors fail the write that caused them.
|
|
11
|
+
*
|
|
12
|
+
* `writeAll` fails with the first send error. Which of the other datagrams
|
|
13
|
+
* went out is unspecified and nothing is resent; the error carries the failed
|
|
14
|
+
* datagram's `address`.
|
|
15
|
+
*
|
|
16
|
+
* **Example** (Ingest server)
|
|
17
|
+
*
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { NodeDatagramSocket } from "@effect/platform-node-shared"
|
|
20
|
+
* import { Effect } from "effect"
|
|
21
|
+
* import { DatagramSocket } from "effect/socket"
|
|
22
|
+
*
|
|
23
|
+
* const ingest = Effect.gen(function*() {
|
|
24
|
+
* const socket = yield* DatagramSocket.DatagramSocket
|
|
25
|
+
* const reader = yield* socket.reader
|
|
26
|
+
* while (true) {
|
|
27
|
+
* const datagrams = yield* reader.pull
|
|
28
|
+
* yield* Effect.log(`received ${datagrams.length}, dropped ${reader.dropped()}`)
|
|
29
|
+
* }
|
|
30
|
+
* }).pipe(
|
|
31
|
+
* Effect.scoped,
|
|
32
|
+
* Effect.provide(NodeDatagramSocket.layer({
|
|
33
|
+
* bind: { port: 9000 },
|
|
34
|
+
* receiveBuffer: { capacity: 4096, strategy: "sliding" }
|
|
35
|
+
* }))
|
|
36
|
+
* )
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* **Example** (Echo server)
|
|
40
|
+
*
|
|
41
|
+
* ```ts
|
|
42
|
+
* import { NodeDatagramSocket } from "@effect/platform-node-shared"
|
|
43
|
+
* import { Effect } from "effect"
|
|
44
|
+
*
|
|
45
|
+
* const echo = Effect.gen(function*() {
|
|
46
|
+
* const socket = yield* NodeDatagramSocket.make({ bind: { port: 9000 } })
|
|
47
|
+
* const reader = yield* socket.reader
|
|
48
|
+
* const writer = yield* socket.writer
|
|
49
|
+
* while (true) {
|
|
50
|
+
* for (const received of yield* reader.pull) {
|
|
51
|
+
* yield* writer.write({ payload: received.payload, address: received })
|
|
52
|
+
* }
|
|
53
|
+
* }
|
|
54
|
+
* }).pipe(Effect.scoped)
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* **Example** (Send-only client with a connected socket)
|
|
58
|
+
*
|
|
59
|
+
* ```ts
|
|
60
|
+
* import { NodeDatagramSocket } from "@effect/platform-node-shared"
|
|
61
|
+
* import { Effect } from "effect"
|
|
62
|
+
*
|
|
63
|
+
* const send = (payload: string) =>
|
|
64
|
+
* Effect.gen(function*() {
|
|
65
|
+
* const socket = yield* NodeDatagramSocket.make({
|
|
66
|
+
* connect: { address: "localhost", port: 9000 }
|
|
67
|
+
* })
|
|
68
|
+
* // Required even for send-only clients.
|
|
69
|
+
* yield* socket.reader
|
|
70
|
+
* const writer = yield* socket.writer
|
|
71
|
+
* yield* writer.write({ payload })
|
|
72
|
+
* }).pipe(Effect.scoped)
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* **Example** (Multicast receiver and sender)
|
|
76
|
+
*
|
|
77
|
+
* ```ts
|
|
78
|
+
* import { NodeDatagramSocket } from "@effect/platform-node-shared"
|
|
79
|
+
* import { Effect } from "effect"
|
|
80
|
+
* import { NetAddress } from "effect/net"
|
|
81
|
+
*
|
|
82
|
+
* const group = NetAddress.ipFromStringUnsafe("239.255.0.1")
|
|
83
|
+
*
|
|
84
|
+
* const receive = Effect.gen(function*() {
|
|
85
|
+
* if (!NetAddress.isMulticast(group) || !NetAddress.isIpv4Address(group)) return
|
|
86
|
+
* const socket = yield* NodeDatagramSocket.make({
|
|
87
|
+
* bind: { address: "0.0.0.0", port: 5000 },
|
|
88
|
+
* reuseAddress: true
|
|
89
|
+
* })
|
|
90
|
+
* const reader = yield* socket.reader
|
|
91
|
+
* yield* reader.joinMulticast({ group, interface: NetAddress.ipv4Loopback })
|
|
92
|
+
* return yield* reader.pull
|
|
93
|
+
* }).pipe(Effect.scoped)
|
|
94
|
+
*
|
|
95
|
+
* const announce = Effect.gen(function*() {
|
|
96
|
+
* const socket = yield* NodeDatagramSocket.make({
|
|
97
|
+
* peer: { address: group, port: 5000 },
|
|
98
|
+
* // Egress interface, independent of the join's ingress interface.
|
|
99
|
+
* multicast: { interface: NetAddress.ipv4Loopback, ttl: 1, loopback: true }
|
|
100
|
+
* })
|
|
101
|
+
* yield* socket.reader
|
|
102
|
+
* const writer = yield* socket.writer
|
|
103
|
+
* yield* writer.write({ payload: "hello" })
|
|
104
|
+
* }).pipe(Effect.scoped)
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* @stability experimental
|
|
108
|
+
* @since 4.0.0
|
|
109
|
+
*/
|
|
110
|
+
import * as Effect from "effect/Effect";
|
|
111
|
+
import * as Layer from "effect/Layer";
|
|
112
|
+
import * as NetAddress from "effect/net/NetAddress";
|
|
113
|
+
import type * as Scope from "effect/Scope";
|
|
114
|
+
import * as DatagramSocket from "effect/socket/DatagramSocket";
|
|
115
|
+
import * as Dgram from "node:dgram";
|
|
116
|
+
/**
|
|
117
|
+
* An open-time endpoint. Hostnames resolve once per reader acquisition via
|
|
118
|
+
* `node:dns.lookup`.
|
|
119
|
+
* An `InetAddress` can be passed directly.
|
|
120
|
+
*
|
|
121
|
+
* @stability experimental
|
|
122
|
+
* @category models
|
|
123
|
+
* @since 4.0.0
|
|
124
|
+
*/
|
|
125
|
+
export interface Endpoint {
|
|
126
|
+
readonly address: string | NetAddress.IpAddress;
|
|
127
|
+
readonly port: number;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* The local address and port to bind. Defaults to `0.0.0.0` (or `::` for
|
|
131
|
+
* `family: "ipv6"`) and an ephemeral port.
|
|
132
|
+
*
|
|
133
|
+
* @stability experimental
|
|
134
|
+
* @category models
|
|
135
|
+
* @since 4.0.0
|
|
136
|
+
*/
|
|
137
|
+
export interface BindOptions {
|
|
138
|
+
readonly address?: string | NetAddress.IpAddress | undefined;
|
|
139
|
+
readonly port?: number | undefined;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Options for `make` and `layer`.
|
|
143
|
+
*
|
|
144
|
+
* **Details**
|
|
145
|
+
*
|
|
146
|
+
* `peer` is a default destination and doesn't filter senders. `connect` calls
|
|
147
|
+
* `connect(2)` after binding, so the kernel filters senders and ICMP errors
|
|
148
|
+
* reach `onError`. The two can't be combined.
|
|
149
|
+
*
|
|
150
|
+
* Family selection, in order: explicit `family`, a `bind` IP literal, the
|
|
151
|
+
* `peer` or `connect` address, a `bind` hostname, then `"ipv4"`. Hostname
|
|
152
|
+
* lookups use the family selected so far, or prefer IPv4 if none is set.
|
|
153
|
+
*
|
|
154
|
+
* `reuseAddress` means `SO_REUSEADDR` on Linux and `SO_REUSEPORT` on BSD and
|
|
155
|
+
* macOS. `kernelReceiveBufferSize` and `kernelSendBufferSize` are in bytes;
|
|
156
|
+
* Linux doubles the value and caps it at `rmem_max` / `wmem_max`.
|
|
157
|
+
*
|
|
158
|
+
* `multicast.interface` is the egress interface for datagrams sent to a group,
|
|
159
|
+
* which is a different socket option from the ingress `interface` of
|
|
160
|
+
* `Reader.joinMulticast`.
|
|
161
|
+
*
|
|
162
|
+
* @stability experimental
|
|
163
|
+
* @category models
|
|
164
|
+
* @since 4.0.0
|
|
165
|
+
*/
|
|
166
|
+
export type Options = {
|
|
167
|
+
readonly bind?: BindOptions | undefined;
|
|
168
|
+
readonly family?: "ipv4" | "ipv6" | undefined;
|
|
169
|
+
readonly reuseAddress?: boolean | undefined;
|
|
170
|
+
readonly reusePort?: boolean | undefined;
|
|
171
|
+
readonly ipv6Only?: boolean | undefined;
|
|
172
|
+
readonly kernelReceiveBufferSize?: number | undefined;
|
|
173
|
+
readonly kernelSendBufferSize?: number | undefined;
|
|
174
|
+
readonly broadcast?: boolean | undefined;
|
|
175
|
+
readonly ttl?: number | undefined;
|
|
176
|
+
readonly multicast?: {
|
|
177
|
+
readonly interface?: NetAddress.MulticastInterface | undefined;
|
|
178
|
+
readonly loopback?: boolean | undefined;
|
|
179
|
+
readonly ttl?: number | undefined;
|
|
180
|
+
} | undefined;
|
|
181
|
+
readonly receiveBuffer?: DatagramSocket.ReceiveBufferOptions | undefined;
|
|
182
|
+
readonly onError?: ((error: DatagramSocket.DatagramSocketError) => void) | undefined;
|
|
183
|
+
} & ({
|
|
184
|
+
readonly peer?: Endpoint | undefined;
|
|
185
|
+
readonly connect?: undefined;
|
|
186
|
+
} | {
|
|
187
|
+
readonly connect: Endpoint;
|
|
188
|
+
readonly peer?: undefined;
|
|
189
|
+
});
|
|
190
|
+
/**
|
|
191
|
+
* Options for `fromSocket`. The caller configures the adopted socket, so only
|
|
192
|
+
* the options that live in JavaScript apply.
|
|
193
|
+
*
|
|
194
|
+
* @stability experimental
|
|
195
|
+
* @category models
|
|
196
|
+
* @since 4.0.0
|
|
197
|
+
*/
|
|
198
|
+
export interface FromSocketOptions {
|
|
199
|
+
readonly peer?: Endpoint | undefined;
|
|
200
|
+
readonly receiveBuffer?: DatagramSocket.ReceiveBufferOptions | undefined;
|
|
201
|
+
readonly onError?: ((error: DatagramSocket.DatagramSocketError) => void) | undefined;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Creates a `DatagramSocket` that opens and binds a new `dgram.Socket` for
|
|
205
|
+
* each reader acquisition.
|
|
206
|
+
*
|
|
207
|
+
* **Details**
|
|
208
|
+
*
|
|
209
|
+
* Creating the socket never fails. Binding, applying options and resolving
|
|
210
|
+
* names happen when a reader is acquired, and fail that acquisition with a
|
|
211
|
+
* `DatagramSocketError`. Hostnames in `bind`, `peer` and `connect` are
|
|
212
|
+
* resolved once per acquisition, so the native socket only sees IP literals
|
|
213
|
+
* and no send waits for DNS.
|
|
214
|
+
*
|
|
215
|
+
* Invalid `receiveBuffer.capacity` values cause a defect; use a positive
|
|
216
|
+
* safe integer.
|
|
217
|
+
*
|
|
218
|
+
* @stability experimental
|
|
219
|
+
* @category constructors
|
|
220
|
+
* @since 4.0.0
|
|
221
|
+
*/
|
|
222
|
+
export declare const make: (options?: Options) => Effect.Effect<DatagramSocket.DatagramSocket>;
|
|
223
|
+
/**
|
|
224
|
+
* Adopts a `dgram.Socket`.
|
|
225
|
+
*
|
|
226
|
+
* **Details**
|
|
227
|
+
*
|
|
228
|
+
* `acquire` runs once per reader acquisition, inside the reader's scope, and
|
|
229
|
+
* the adapter closes the socket when that scope ends. The socket must be bound
|
|
230
|
+
* by the time `acquire` completes. Whether it is connected is checked once at
|
|
231
|
+
* open.
|
|
232
|
+
*
|
|
233
|
+
* @stability experimental
|
|
234
|
+
* @category constructors
|
|
235
|
+
* @since 4.0.0
|
|
236
|
+
*/
|
|
237
|
+
export declare const fromSocket: <R>(acquire: Effect.Effect<Dgram.Socket, DatagramSocket.DatagramSocketError, R>, options?: FromSocketOptions) => Effect.Effect<DatagramSocket.DatagramSocket, never, Exclude<R, Scope.Scope>>;
|
|
238
|
+
/**
|
|
239
|
+
* Provides a `DatagramSocket` built with `make`.
|
|
240
|
+
*
|
|
241
|
+
* @stability experimental
|
|
242
|
+
* @category layers
|
|
243
|
+
* @since 4.0.0
|
|
244
|
+
*/
|
|
245
|
+
export declare const layer: (options?: Options) => Layer.Layer<DatagramSocket.DatagramSocket>;
|
|
246
|
+
//# sourceMappingURL=NodeDatagramSocket.d.ts.map
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js implementation of Effect's `Dns` service.
|
|
3
|
+
*
|
|
4
|
+
* Address lookups use the operating system resolver through `dns.lookup`,
|
|
5
|
+
* including the hosts file. Record queries and reverse lookups share one
|
|
6
|
+
* `dns.Resolver`. Interruption discards a query's result but cannot cancel
|
|
7
|
+
* that query; closing the scope cancels all pending queries.
|
|
8
|
+
*
|
|
9
|
+
* Unrepresentable records, such as invalid `Host.DomainName` values, are
|
|
10
|
+
* skipped. If every record is skipped, the query fails with `InvalidResponse`.
|
|
11
|
+
* `make` decodes Node.js's Latin-1 TXT and CAA strings as UTF-8. TLSA queries
|
|
12
|
+
* need Node.js 22.15 or 23.9 and later, and fail with `Unsupported` on runtimes
|
|
13
|
+
* without `resolveTlsa`. Other runtimes reuse `lookup`, `resolver`, and the
|
|
14
|
+
* conversion helpers to build their services.
|
|
15
|
+
*
|
|
16
|
+
* @stability experimental
|
|
17
|
+
* @since 4.0.0
|
|
18
|
+
*/
|
|
19
|
+
import * as Arr from "effect/Array";
|
|
20
|
+
import * as Config from "effect/Config";
|
|
21
|
+
import * as Duration from "effect/Duration";
|
|
22
|
+
import * as Effect from "effect/Effect";
|
|
23
|
+
import * as Layer from "effect/Layer";
|
|
24
|
+
import * as Dns from "effect/net/Dns";
|
|
25
|
+
import * as Host from "effect/net/Host";
|
|
26
|
+
import * as NetAddress from "effect/net/NetAddress";
|
|
27
|
+
import * as Result from "effect/Result";
|
|
28
|
+
/**
|
|
29
|
+
* Options for the Node.js `Dns` service and `resolver`.
|
|
30
|
+
*
|
|
31
|
+
* **Details**
|
|
32
|
+
*
|
|
33
|
+
* `nameServers` replaces the system name servers, which are converted like
|
|
34
|
+
* `Dns.nameServerFromInput`, and an empty list keeps the system name servers.
|
|
35
|
+
* `timeout` is the time allowed for each attempt and `tries` the number of
|
|
36
|
+
* attempts per name server. Address lookups always use the operating system
|
|
37
|
+
* resolver and are not affected.
|
|
38
|
+
*
|
|
39
|
+
* `timeout` is rounded up to whole milliseconds and `tries` down to a whole
|
|
40
|
+
* number, and both are clamped to 1 through 2^31 - 1, so `Duration.infinity`
|
|
41
|
+
* uses the longest timeout the resolver supports.
|
|
42
|
+
*
|
|
43
|
+
* **Gotchas**
|
|
44
|
+
*
|
|
45
|
+
* Invalid name servers fail with a `NetAddress.NetAddressError` when the
|
|
46
|
+
* service is created, and so do IPv6 name servers with a scope ID, such as
|
|
47
|
+
* link-local addresses, because the resolver drops the scope.
|
|
48
|
+
*
|
|
49
|
+
* @stability experimental
|
|
50
|
+
* @category models
|
|
51
|
+
* @since 4.0.0
|
|
52
|
+
*/
|
|
53
|
+
export interface Options {
|
|
54
|
+
readonly nameServers?: ReadonlyArray<NetAddress.IpAddressInput | NetAddress.InetAddressInput> | undefined;
|
|
55
|
+
readonly timeout?: Duration.Input | undefined;
|
|
56
|
+
readonly tries?: number | undefined;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Converts a failure of `node:dns` or of Bun's DNS functions to a
|
|
60
|
+
* `Dns.DnsError`, choosing the reason from the error's `code`.
|
|
61
|
+
*
|
|
62
|
+
* **Details**
|
|
63
|
+
*
|
|
64
|
+
* Bun prefixes c-ares codes with `DNS_`, such as `DNS_ENOTFOUND`; the prefix is
|
|
65
|
+
* ignored. Errors without a known code get the reason `Unknown`.
|
|
66
|
+
*
|
|
67
|
+
* @stability experimental
|
|
68
|
+
* @category converting
|
|
69
|
+
* @since 4.0.0
|
|
70
|
+
*/
|
|
71
|
+
export declare const dnsErrorFromCause: (cause: unknown, method: Dns.DnsError["method"], hostname: string, recordType?: Dns.RecordType) => Dns.DnsError;
|
|
72
|
+
/**
|
|
73
|
+
* Converts a name returned by a resolver to a fully qualified
|
|
74
|
+
* `Host.DomainName`, throwing when it is not a valid domain name.
|
|
75
|
+
*
|
|
76
|
+
* @stability experimental
|
|
77
|
+
* @category converting
|
|
78
|
+
* @since 4.0.0
|
|
79
|
+
*/
|
|
80
|
+
export declare const domainNameFromResolverUnsafe: (name: string) => Host.DomainName;
|
|
81
|
+
/**
|
|
82
|
+
* Converts a name returned by a resolver to fully qualified text, for names
|
|
83
|
+
* that need not be host names, such as PTR targets and SOA mailboxes.
|
|
84
|
+
*
|
|
85
|
+
* **Details**
|
|
86
|
+
*
|
|
87
|
+
* Resolvers write bytes as `\DDD` escapes, c-ares in decimal (`radix` 10) and
|
|
88
|
+
* `Deno.resolveDns` in octal (`radix` 8), and escape special characters with
|
|
89
|
+
* a backslash, such as `\.` for a dot inside a label or `\(` for a
|
|
90
|
+
* parenthesis. Decoding the bytes as UTF-8 and removing the escapes gives the
|
|
91
|
+
* text of the name, keeping only the `\.` and `\\` escapes.
|
|
92
|
+
*
|
|
93
|
+
* @stability experimental
|
|
94
|
+
* @category converting
|
|
95
|
+
* @since 4.0.0
|
|
96
|
+
*/
|
|
97
|
+
export declare const nameTextFromResolver: (name: string, radix?: 8 | 10) => string;
|
|
98
|
+
/**
|
|
99
|
+
* Converts a number of seconds that a resolver reports as a signed 32-bit
|
|
100
|
+
* integer, such as the SOA refresh, retry, and expire intervals, to a
|
|
101
|
+
* `Duration`.
|
|
102
|
+
*
|
|
103
|
+
* @stability experimental
|
|
104
|
+
* @category converting
|
|
105
|
+
* @since 4.0.0
|
|
106
|
+
*/
|
|
107
|
+
export declare const secondsFromInt32: (value: number) => Duration.Duration;
|
|
108
|
+
/**
|
|
109
|
+
* Decodes a string that holds one byte per character as UTF-8.
|
|
110
|
+
*
|
|
111
|
+
* **Details**
|
|
112
|
+
*
|
|
113
|
+
* Node.js and `Deno.resolveDns` decode each byte of TXT and CAA character
|
|
114
|
+
* strings as one Latin-1 character; decoding the bytes as UTF-8 matches other
|
|
115
|
+
* runtimes. Strings with only ASCII characters are returned unchanged.
|
|
116
|
+
*
|
|
117
|
+
* @stability experimental
|
|
118
|
+
* @category converting
|
|
119
|
+
* @since 4.0.0
|
|
120
|
+
*/
|
|
121
|
+
export declare const utf8FromLatin1: (value: string) => string;
|
|
122
|
+
/**
|
|
123
|
+
* Converts the entries of a resolver's answer to a query for `name` to records
|
|
124
|
+
* of a record type, skipping entries whose data cannot be represented, such as
|
|
125
|
+
* names that are not valid `Host.DomainName` values.
|
|
126
|
+
*
|
|
127
|
+
* **Details**
|
|
128
|
+
*
|
|
129
|
+
* When the answer has entries but every one is skipped, the conversion fails
|
|
130
|
+
* with an `InvalidResponse` error whose cause is the first entry's failure,
|
|
131
|
+
* rather than returning no records, which would be reported as `NotFound`.
|
|
132
|
+
*
|
|
133
|
+
* @stability experimental
|
|
134
|
+
* @category converting
|
|
135
|
+
* @since 4.0.0
|
|
136
|
+
*/
|
|
137
|
+
export declare const recordsFromResolver: <T extends Dns.RecordType, A>(name: string, type: T, entries: ReadonlyArray<A>, fields: (entry: A) => Dns.RecordFields<T>) => Result.Result<Array<Dns.RecordFor<T>>, Dns.DnsError>;
|
|
138
|
+
/**
|
|
139
|
+
* Converts an IP family to the numeric family used by `dns.lookup`, with `0`
|
|
140
|
+
* for addresses of either family.
|
|
141
|
+
*
|
|
142
|
+
* @stability experimental
|
|
143
|
+
* @category converting
|
|
144
|
+
* @since 4.0.0
|
|
145
|
+
*/
|
|
146
|
+
export declare const toFamily: (family: NetAddress.IpFamily | undefined) => 0 | 4 | 6;
|
|
147
|
+
/**
|
|
148
|
+
* Converts the entries returned by an address lookup, such as `dns.lookup`
|
|
149
|
+
* with `all: true`, to IP addresses, keeping their order.
|
|
150
|
+
*
|
|
151
|
+
* **Details**
|
|
152
|
+
*
|
|
153
|
+
* IPv6 zones are dropped, and addresses that cannot be parsed are skipped.
|
|
154
|
+
*
|
|
155
|
+
* @stability experimental
|
|
156
|
+
* @category converting
|
|
157
|
+
* @since 4.0.0
|
|
158
|
+
*/
|
|
159
|
+
export declare const addressesFromLookup: (entries: ReadonlyArray<{
|
|
160
|
+
readonly address: string;
|
|
161
|
+
}>) => Array<NetAddress.IpAddress>;
|
|
162
|
+
/**
|
|
163
|
+
* Looks up the addresses of a host name with `dns.lookup`, keeping the order
|
|
164
|
+
* returned by the operating system resolver.
|
|
165
|
+
*
|
|
166
|
+
* @stability experimental
|
|
167
|
+
* @category resolving
|
|
168
|
+
* @since 4.0.0
|
|
169
|
+
*/
|
|
170
|
+
export declare const lookup: (host: string, family?: NetAddress.IpFamily | undefined) => Effect.Effect<Array<NetAddress.IpAddress>, Dns.DnsError>;
|
|
171
|
+
/**
|
|
172
|
+
* Creates a function that queries DNS records with the runtime's `node:dns`
|
|
173
|
+
* module.
|
|
174
|
+
*
|
|
175
|
+
* **Details**
|
|
176
|
+
*
|
|
177
|
+
* All queries share one `dns.Resolver`, which is cancelled when the scope
|
|
178
|
+
* closes. Names in records are fully qualified, and TXT and CAA character
|
|
179
|
+
* strings are returned as the runtime decodes them, without the UTF-8
|
|
180
|
+
* correction that `make` applies for Node.js. Records are converted with
|
|
181
|
+
* `recordsFromResolver`.
|
|
182
|
+
*
|
|
183
|
+
* @stability experimental
|
|
184
|
+
* @category constructors
|
|
185
|
+
* @since 4.0.0
|
|
186
|
+
*/
|
|
187
|
+
export declare const resolver: (options?: Options | undefined) => Effect.Effect<(name: string, type: Dns.RecordType) => Effect.Effect<Array<Dns.DnsRecord>, Dns.DnsError>, NetAddress.NetAddressError, import("effect/Scope").Scope>;
|
|
188
|
+
/**
|
|
189
|
+
* Creates a Node.js `Dns` service whose resolver lives as long as the scope.
|
|
190
|
+
*
|
|
191
|
+
* @stability experimental
|
|
192
|
+
* @category constructors
|
|
193
|
+
* @since 4.0.0
|
|
194
|
+
*/
|
|
195
|
+
export declare const make: (options?: Options | undefined) => Effect.Effect<{
|
|
196
|
+
lookup<F extends NetAddress.IpFamily>(host: Host.DomainNameInput, options: {
|
|
197
|
+
readonly family: F;
|
|
198
|
+
}): Effect.Effect<Arr.NonEmptyReadonlyArray<NetAddress.FamilyAddress<F>>, Dns.DnsError>;
|
|
199
|
+
lookup(host: Host.DomainNameInput, options?: Dns.LookupOptions): Effect.Effect<Arr.NonEmptyReadonlyArray<NetAddress.IpAddress>, Dns.DnsError>;
|
|
200
|
+
resolve<T extends Dns.RecordType>(name: Host.DomainNameInput, type: T): Effect.Effect<Arr.NonEmptyReadonlyArray<Dns.RecordFor<T>>, Dns.DnsError>;
|
|
201
|
+
reverse(address: NetAddress.IpAddressInput): Effect.Effect<Arr.NonEmptyReadonlyArray<Host.DomainName>, Dns.DnsError>;
|
|
202
|
+
}, NetAddress.NetAddressError, import("effect/Scope").Scope>;
|
|
203
|
+
/**
|
|
204
|
+
* Layer that provides the Node.js `Dns` service using the system resolver
|
|
205
|
+
* configuration.
|
|
206
|
+
*
|
|
207
|
+
* @stability experimental
|
|
208
|
+
* @category layers
|
|
209
|
+
* @since 4.0.0
|
|
210
|
+
*/
|
|
211
|
+
export declare const layer: Layer.Layer<Dns.Dns>;
|
|
212
|
+
/**
|
|
213
|
+
* Creates a layer that provides the Node.js `Dns` service with options read
|
|
214
|
+
* from configuration.
|
|
215
|
+
*
|
|
216
|
+
* @stability experimental
|
|
217
|
+
* @category layers
|
|
218
|
+
* @since 4.0.0
|
|
219
|
+
*/
|
|
220
|
+
export declare const layerConfig: (options: Config.Wrap<Options>) => Layer.Layer<Dns.Dns, Config.ConfigError | NetAddress.NetAddressError>;
|
|
221
|
+
//# sourceMappingURL=NodeDns.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
addressesFromLookup,
|
|
3
|
+
dnsErrorFromCause,
|
|
4
|
+
domainNameFromResolverUnsafe,
|
|
5
|
+
layer,
|
|
6
|
+
layerConfig,
|
|
7
|
+
lookup,
|
|
8
|
+
make,
|
|
9
|
+
nameTextFromResolver,
|
|
10
|
+
recordsFromResolver,
|
|
11
|
+
resolver,
|
|
12
|
+
secondsFromInt32,
|
|
13
|
+
toFamily,
|
|
14
|
+
utf8FromLatin1
|
|
15
|
+
} from "../chunk-ADP5LRUF.js";
|
|
16
|
+
import "../chunk-MLKGABMK.js";
|
|
17
|
+
export {
|
|
18
|
+
addressesFromLookup,
|
|
19
|
+
dnsErrorFromCause,
|
|
20
|
+
domainNameFromResolverUnsafe,
|
|
21
|
+
layer,
|
|
22
|
+
layerConfig,
|
|
23
|
+
lookup,
|
|
24
|
+
make,
|
|
25
|
+
nameTextFromResolver,
|
|
26
|
+
recordsFromResolver,
|
|
27
|
+
resolver,
|
|
28
|
+
secondsFromInt32,
|
|
29
|
+
toFamily,
|
|
30
|
+
utf8FromLatin1
|
|
31
|
+
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type * as Platform from "effect/
|
|
1
|
+
import type * as Platform from "effect/http/HttpPlatform";
|
|
2
2
|
import type { Duplex } from "node:stream";
|
|
3
3
|
/**
|
|
4
4
|
* The compression algorithms supported by the runtime's `node:zlib`. `zstd`
|
|
5
5
|
* requires Node.js 22.15 or newer.
|
|
6
6
|
*
|
|
7
|
+
* @stability unstable
|
|
7
8
|
* @category constants
|
|
8
9
|
* @since 4.0.0
|
|
9
10
|
*/
|
|
@@ -13,6 +14,7 @@ export declare const algorithms: ReadonlySet<Platform.CompressionAlgorithm>;
|
|
|
13
14
|
* the asynchronous `node:zlib` APIs, setting the exact `Content-Length` of the
|
|
14
15
|
* compressed body. All other bodies are delegated to `fallback`.
|
|
15
16
|
*
|
|
17
|
+
* @stability unstable
|
|
16
18
|
* @category constructors
|
|
17
19
|
* @since 4.0.0
|
|
18
20
|
*/
|
|
@@ -21,6 +23,7 @@ export declare const make: (fallback: Platform.Compression) => Platform.Compress
|
|
|
21
23
|
* Creates a `node:zlib` compression transform stream that flushes each input
|
|
22
24
|
* chunk, for streaming response bodies.
|
|
23
25
|
*
|
|
26
|
+
* @stability unstable
|
|
24
27
|
* @category constructors
|
|
25
28
|
* @since 4.0.0
|
|
26
29
|
*/
|
|
@@ -29,6 +32,7 @@ export declare const compressTransform: (algorithm: Platform.CompressionAlgorith
|
|
|
29
32
|
* A Web `ReadableStream` version of `compressTransform`, for platforms that
|
|
30
33
|
* stream response bodies as Web streams.
|
|
31
34
|
*
|
|
35
|
+
* @stability unstable
|
|
32
36
|
* @category constructors
|
|
33
37
|
* @since 4.0.0
|
|
34
38
|
*/
|
|
@@ -4,6 +4,7 @@ import { Path } from "effect/Path";
|
|
|
4
4
|
* Provides the `Path` service using Node's POSIX path implementation plus
|
|
5
5
|
* file URL conversion helpers.
|
|
6
6
|
*
|
|
7
|
+
* @stability unstable
|
|
7
8
|
* @category layers
|
|
8
9
|
* @since 4.0.0
|
|
9
10
|
*/
|
|
@@ -12,6 +13,7 @@ export declare const layerPosix: Layer.Layer<Path>;
|
|
|
12
13
|
* Provides the `Path` service using Node's Windows path implementation plus
|
|
13
14
|
* file URL conversion helpers.
|
|
14
15
|
*
|
|
16
|
+
* @stability unstable
|
|
15
17
|
* @category layers
|
|
16
18
|
* @since 4.0.0
|
|
17
19
|
*/
|
|
@@ -20,6 +22,7 @@ export declare const layerWin32: Layer.Layer<Path>;
|
|
|
20
22
|
* Provides the default `Path` service using the host platform's Node path
|
|
21
23
|
* implementation plus file URL conversion helpers.
|
|
22
24
|
*
|
|
25
|
+
* @stability unstable
|
|
23
26
|
* @category layers
|
|
24
27
|
* @since 4.0.0
|
|
25
28
|
*/
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* fiber, interrupts that fiber on `SIGINT` or `SIGTERM`, and delegates final
|
|
7
7
|
* exit-code handling to the configured teardown.
|
|
8
8
|
*
|
|
9
|
+
* @stability unstable
|
|
9
10
|
* @since 4.0.0
|
|
10
11
|
*/
|
|
11
12
|
import type { Effect } from "effect/Effect";
|
|
@@ -15,6 +16,7 @@ import * as Runtime from "effect/Runtime";
|
|
|
15
16
|
* `SIGINT` or `SIGTERM` and invoking the configured teardown to determine the
|
|
16
17
|
* process exit code.
|
|
17
18
|
*
|
|
19
|
+
* @stability unstable
|
|
18
20
|
* @category running
|
|
19
21
|
* @since 4.0.0
|
|
20
22
|
*/
|
|
@@ -24,6 +26,7 @@ export declare const runMain: {
|
|
|
24
26
|
* `SIGINT` or `SIGTERM` and invoking the configured teardown to determine the
|
|
25
27
|
* process exit code.
|
|
26
28
|
*
|
|
29
|
+
* @stability unstable
|
|
27
30
|
* @category running
|
|
28
31
|
* @since 4.0.0
|
|
29
32
|
*/
|
|
@@ -36,6 +39,7 @@ export declare const runMain: {
|
|
|
36
39
|
* `SIGINT` or `SIGTERM` and invoking the configured teardown to determine the
|
|
37
40
|
* process exit code.
|
|
38
41
|
*
|
|
42
|
+
* @stability unstable
|
|
39
43
|
* @category running
|
|
40
44
|
* @since 4.0.0
|
|
41
45
|
*/
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* the supplied `onError` function, and can end the writable when the upstream
|
|
8
8
|
* data is done.
|
|
9
9
|
*
|
|
10
|
+
* @stability unstable
|
|
10
11
|
* @since 4.0.0
|
|
11
12
|
*/
|
|
12
13
|
import type { NonEmptyReadonlyArray } from "effect/Array";
|
|
@@ -20,6 +21,7 @@ import type { Writable } from "node:stream";
|
|
|
20
21
|
* backpressure, mapping writable errors with `onError`, and ending the stream
|
|
21
22
|
* on completion unless `endOnDone` is `false`.
|
|
22
23
|
*
|
|
24
|
+
* @stability unstable
|
|
23
25
|
* @category constructors
|
|
24
26
|
* @since 4.0.0
|
|
25
27
|
*/
|
|
@@ -34,6 +36,7 @@ export declare const fromWritable: <E, A = Uint8Array | string>(options: {
|
|
|
34
36
|
* Node writable stream, respecting backpressure and optionally ending the
|
|
35
37
|
* writable when upstream is done.
|
|
36
38
|
*
|
|
39
|
+
* @stability unstable
|
|
37
40
|
* @category constructors
|
|
38
41
|
* @since 4.0.0
|
|
39
42
|
*/
|
|
@@ -56,6 +59,7 @@ export declare const fromWritableChannel: <IE, E, A = Uint8Array | string>(optio
|
|
|
56
59
|
* The loop waits for `drain` when needed, fails on writable errors, and ends
|
|
57
60
|
* the writable on upstream completion unless `endOnDone` is `false`.
|
|
58
61
|
*
|
|
62
|
+
* @stability unstable
|
|
59
63
|
* @category converting
|
|
60
64
|
* @since 4.0.0
|
|
61
65
|
*/
|