@effect/platform-node-shared 4.0.0-beta.66 → 4.0.0-beta.68
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/dist/NodeChildProcessSpawner.d.ts +3 -3
- package/dist/NodeChildProcessSpawner.js +2 -2
- package/dist/NodeClusterSocket.d.ts +10 -4
- package/dist/NodeClusterSocket.d.ts.map +1 -1
- package/dist/NodeClusterSocket.js +29 -5
- package/dist/NodeClusterSocket.js.map +1 -1
- package/dist/NodeCrypto.d.ts +22 -0
- package/dist/NodeCrypto.d.ts.map +1 -0
- package/dist/NodeCrypto.js +50 -0
- package/dist/NodeCrypto.js.map +1 -0
- package/dist/NodeFileSystem.d.ts +5 -2
- package/dist/NodeFileSystem.d.ts.map +1 -1
- package/dist/NodeFileSystem.js +24 -3
- package/dist/NodeFileSystem.js.map +1 -1
- package/dist/NodePath.d.ts +15 -6
- package/dist/NodePath.d.ts.map +1 -1
- package/dist/NodePath.js +30 -7
- package/dist/NodePath.js.map +1 -1
- package/dist/NodeRuntime.d.ts +36 -7
- package/dist/NodeRuntime.d.ts.map +1 -1
- package/dist/NodeRuntime.js +6 -2
- package/dist/NodeRuntime.js.map +1 -1
- package/dist/NodeSink.d.ts +34 -4
- package/dist/NodeSink.d.ts.map +1 -1
- package/dist/NodeSink.js +16 -3
- package/dist/NodeSink.js.map +1 -1
- package/dist/NodeSocket.d.ts +38 -7
- package/dist/NodeSocket.d.ts.map +1 -1
- package/dist/NodeSocket.js +23 -6
- package/dist/NodeSocket.js.map +1 -1
- package/dist/NodeSocketServer.d.ts +22 -5
- package/dist/NodeSocketServer.d.ts.map +1 -1
- package/dist/NodeSocketServer.js +22 -5
- package/dist/NodeSocketServer.js.map +1 -1
- package/dist/NodeStdio.d.ts +6 -2
- package/dist/NodeStdio.d.ts.map +1 -1
- package/dist/NodeStdio.js +23 -3
- package/dist/NodeStdio.js.map +1 -1
- package/dist/NodeStream.d.ts +84 -20
- package/dist/NodeStream.d.ts.map +1 -1
- package/dist/NodeStream.js +68 -16
- package/dist/NodeStream.js.map +1 -1
- package/dist/NodeTerminal.d.ts +9 -2
- package/dist/NodeTerminal.d.ts.map +1 -1
- package/dist/NodeTerminal.js +11 -2
- package/dist/NodeTerminal.js.map +1 -1
- package/package.json +5 -5
- package/src/NodeChildProcessSpawner.ts +3 -3
- package/src/NodeClusterSocket.ts +29 -5
- package/src/NodeCrypto.ts +55 -0
- package/src/NodeFileSystem.ts +24 -3
- package/src/NodePath.ts +30 -7
- package/src/NodeRuntime.ts +36 -7
- package/src/NodeSink.ts +34 -4
- package/src/NodeSocket.ts +38 -7
- package/src/NodeSocketServer.ts +40 -6
- package/src/NodeStdio.ts +23 -3
- package/src/NodeStream.ts +84 -20
- package/src/NodeTerminal.ts +29 -3
package/dist/NodeSink.d.ts
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Sink adapters for writing Effect stream chunks into Node writable streams.
|
|
3
|
+
*
|
|
4
|
+
* This module is used at the boundary where Effect `Stream`s or `Channel`s need
|
|
5
|
+
* to push data into Node's writable side: file streams, HTTP request or
|
|
6
|
+
* response bodies, process stdio, sockets, and transform inputs such as
|
|
7
|
+
* compression or encryption streams. It exposes both a `Sink` constructor for
|
|
8
|
+
* ordinary stream pipelines and lower-level `Channel` and pull helpers used by
|
|
9
|
+
* other Node stream adapters.
|
|
10
|
+
*
|
|
11
|
+
* The implementation follows Node writable semantics. Chunks are written in
|
|
12
|
+
* order; when `write` returns `false`, pulling pauses until `drain` so upstream
|
|
13
|
+
* producers do not overrun the writable buffer. Writable `error` events are
|
|
14
|
+
* mapped through `onError`, and the writable is ended and awaited via `finish`
|
|
15
|
+
* when upstream completes unless `endOnDone` is `false`. Use `endOnDone: false`
|
|
16
|
+
* for externally owned or long-lived writables, and make sure `onError` keeps
|
|
17
|
+
* Node's untyped errors meaningful for the calling Effect workflow.
|
|
18
|
+
*
|
|
19
|
+
* @since 4.0.0
|
|
3
20
|
*/
|
|
4
21
|
import type { NonEmptyReadonlyArray } from "effect/Array";
|
|
5
22
|
import * as Channel from "effect/Channel";
|
|
@@ -8,8 +25,12 @@ import * as Pull from "effect/Pull";
|
|
|
8
25
|
import * as Sink from "effect/Sink";
|
|
9
26
|
import type { Writable } from "node:stream";
|
|
10
27
|
/**
|
|
28
|
+
* Creates a `Sink` that writes chunks to a Node writable stream, respecting
|
|
29
|
+
* backpressure, mapping writable errors with `onError`, and ending the stream
|
|
30
|
+
* on completion unless `endOnDone` is `false`.
|
|
31
|
+
*
|
|
11
32
|
* @category constructors
|
|
12
|
-
* @since
|
|
33
|
+
* @since 4.0.0
|
|
13
34
|
*/
|
|
14
35
|
export declare const fromWritable: <E, A = Uint8Array | string>(options: {
|
|
15
36
|
readonly evaluate: LazyArg<Writable | NodeJS.WritableStream>;
|
|
@@ -18,8 +39,12 @@ export declare const fromWritable: <E, A = Uint8Array | string>(options: {
|
|
|
18
39
|
readonly encoding?: BufferEncoding | undefined;
|
|
19
40
|
}) => Sink.Sink<void, A, never, E>;
|
|
20
41
|
/**
|
|
42
|
+
* Creates a `Channel` that pulls chunks from upstream and writes them to a
|
|
43
|
+
* Node writable stream, respecting backpressure and optionally ending the
|
|
44
|
+
* writable when upstream is done.
|
|
45
|
+
*
|
|
21
46
|
* @category constructors
|
|
22
|
-
* @since
|
|
47
|
+
* @since 4.0.0
|
|
23
48
|
*/
|
|
24
49
|
export declare const fromWritableChannel: <IE, E, A = Uint8Array | string>(options: {
|
|
25
50
|
readonly evaluate: LazyArg<Writable | NodeJS.WritableStream>;
|
|
@@ -28,7 +53,12 @@ export declare const fromWritableChannel: <IE, E, A = Uint8Array | string>(optio
|
|
|
28
53
|
readonly encoding?: BufferEncoding | undefined;
|
|
29
54
|
}) => Channel.Channel<never, IE | E, void, NonEmptyReadonlyArray<A>, IE>;
|
|
30
55
|
/**
|
|
31
|
-
*
|
|
56
|
+
* Repeatedly pulls non-empty chunks and writes them to a Node writable stream,
|
|
57
|
+
* waiting for `drain` when needed, failing on writable errors, and ending the
|
|
58
|
+
* writable on upstream completion unless disabled.
|
|
59
|
+
*
|
|
60
|
+
* @category converting
|
|
61
|
+
* @since 4.0.0
|
|
32
62
|
*/
|
|
33
63
|
export declare const pullIntoWritable: <A, IE, E>(options: {
|
|
34
64
|
readonly pull: Pull.Pull<NonEmptyReadonlyArray<A>, IE, unknown>;
|
package/dist/NodeSink.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSink.d.ts","sourceRoot":"","sources":["../src/NodeSink.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"NodeSink.d.ts","sourceRoot":"","sources":["../src/NodeSink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEzD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,MAAM,EACrD,SAAS;IACP,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;IAC5D,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;CAC/C,KACA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAC4D,CAAA;AAE1F;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,MAAM,EAChE,SAAS;IACP,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;IAC5D,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;CAC/C,KACA,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAIhE,CAAA;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS;IAClD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAC/D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;CAC/C,KAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,CAkCjC,CAAA"}
|
package/dist/NodeSink.js
CHANGED
|
@@ -5,13 +5,21 @@ import { identity } from "effect/Function";
|
|
|
5
5
|
import * as Pull from "effect/Pull";
|
|
6
6
|
import * as Sink from "effect/Sink";
|
|
7
7
|
/**
|
|
8
|
+
* Creates a `Sink` that writes chunks to a Node writable stream, respecting
|
|
9
|
+
* backpressure, mapping writable errors with `onError`, and ending the stream
|
|
10
|
+
* on completion unless `endOnDone` is `false`.
|
|
11
|
+
*
|
|
8
12
|
* @category constructors
|
|
9
|
-
* @since
|
|
13
|
+
* @since 4.0.0
|
|
10
14
|
*/
|
|
11
15
|
export const fromWritable = options => Sink.fromChannel(Channel.mapDone(fromWritableChannel(options), _ => [_]));
|
|
12
16
|
/**
|
|
17
|
+
* Creates a `Channel` that pulls chunks from upstream and writes them to a
|
|
18
|
+
* Node writable stream, respecting backpressure and optionally ending the
|
|
19
|
+
* writable when upstream is done.
|
|
20
|
+
*
|
|
13
21
|
* @category constructors
|
|
14
|
-
* @since
|
|
22
|
+
* @since 4.0.0
|
|
15
23
|
*/
|
|
16
24
|
export const fromWritableChannel = options => Channel.fromTransform(pull => {
|
|
17
25
|
const writable = options.evaluate();
|
|
@@ -22,7 +30,12 @@ export const fromWritableChannel = options => Channel.fromTransform(pull => {
|
|
|
22
30
|
}));
|
|
23
31
|
});
|
|
24
32
|
/**
|
|
25
|
-
*
|
|
33
|
+
* Repeatedly pulls non-empty chunks and writes them to a Node writable stream,
|
|
34
|
+
* waiting for `drain` when needed, failing on writable errors, and ending the
|
|
35
|
+
* writable on upstream completion unless disabled.
|
|
36
|
+
*
|
|
37
|
+
* @category converting
|
|
38
|
+
* @since 4.0.0
|
|
26
39
|
*/
|
|
27
40
|
export const pullIntoWritable = options => options.pull.pipe(Effect.flatMap(chunk => {
|
|
28
41
|
let i = 0;
|
package/dist/NodeSink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSink.js","names":["Cause","Channel","Effect","identity","Pull","Sink","fromWritable","options","fromChannel","mapDone","fromWritableChannel","_","fromTransform","pull","writable","evaluate","succeed","pullIntoWritable","pipe","flatMap","chunk","i","callback","loop","resume","length","success","write","encoding","once","void","forever","disableYield","raceFirst","onError","error","fail","sync","off","endOnDone","catchDone","closed","done","end"],"sources":["../src/NodeSink.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeSink.js","names":["Cause","Channel","Effect","identity","Pull","Sink","fromWritable","options","fromChannel","mapDone","fromWritableChannel","_","fromTransform","pull","writable","evaluate","succeed","pullIntoWritable","pipe","flatMap","chunk","i","callback","loop","resume","length","success","write","encoding","once","void","forever","disableYield","raceFirst","onError","error","fail","sync","off","endOnDone","catchDone","closed","done","end"],"sources":["../src/NodeSink.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/NodeSocket.d.ts
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Shared Node socket constructors for adapting `node:net` connections and
|
|
3
|
+
* other Node `Duplex` streams to Effect's `Socket.Socket` interface.
|
|
4
|
+
*
|
|
5
|
+
* Use this module when building TCP clients, Unix domain socket clients, or
|
|
6
|
+
* higher-level protocols that already expose a Node `Duplex`. Connections are
|
|
7
|
+
* scoped, so finalizers close or destroy the underlying stream, open timeouts
|
|
8
|
+
* are reported as socket open errors, and Node read, write, and close events
|
|
9
|
+
* are translated into `SocketError` values.
|
|
10
|
+
*
|
|
11
|
+
* Node sockets have a few operational details worth keeping in mind: Unix
|
|
12
|
+
* socket paths are supplied through `NetConnectOpts.path`, writes complete only
|
|
13
|
+
* after Node accepts or flushes the chunk, and abnormal close events are
|
|
14
|
+
* surfaced as close errors while normal remote ends complete the socket run.
|
|
15
|
+
*
|
|
16
|
+
* @since 4.0.0
|
|
3
17
|
*/
|
|
4
18
|
import type { Array } from "effect";
|
|
5
19
|
import * as Channel from "effect/Channel";
|
|
@@ -12,39 +26,56 @@ import * as Socket from "effect/unstable/socket/Socket";
|
|
|
12
26
|
import * as Net from "node:net";
|
|
13
27
|
import type { Duplex } from "node:stream";
|
|
14
28
|
/**
|
|
15
|
-
* @since 1.0.0
|
|
16
29
|
* @category re-exports
|
|
30
|
+
* @since 4.0.0
|
|
17
31
|
*/
|
|
18
32
|
export * as NodeWS from "ws";
|
|
19
33
|
declare const NetSocket_base: Context.ServiceClass<NetSocket, "@effect/platform-node/NodeSocket/NetSocket", Net.Socket>;
|
|
20
34
|
/**
|
|
21
|
-
*
|
|
35
|
+
* Service tag for the underlying Node `net.Socket` associated with the current
|
|
36
|
+
* socket connection.
|
|
37
|
+
*
|
|
22
38
|
* @category tags
|
|
39
|
+
* @since 4.0.0
|
|
23
40
|
*/
|
|
24
41
|
export declare class NetSocket extends NetSocket_base {
|
|
25
42
|
}
|
|
26
43
|
/**
|
|
27
|
-
*
|
|
44
|
+
* Opens a TCP connection with Node `net.createConnection` and exposes it as a
|
|
45
|
+
* `Socket.Socket`, supporting `openTimeout` and closing or destroying the
|
|
46
|
+
* socket when the enclosing scope is finalized.
|
|
47
|
+
*
|
|
28
48
|
* @category constructors
|
|
49
|
+
* @since 4.0.0
|
|
29
50
|
*/
|
|
30
51
|
export declare const makeNet: (options: Net.NetConnectOpts & {
|
|
31
52
|
readonly openTimeout?: Duration.Input | undefined;
|
|
32
53
|
}) => Effect.Effect<Socket.Socket>;
|
|
33
54
|
/**
|
|
34
|
-
*
|
|
55
|
+
* Adapts a Node `Duplex` into a `Socket.Socket`, wiring data events to socket
|
|
56
|
+
* handlers, providing a scoped writer, and mapping open, read, write, and close
|
|
57
|
+
* failures to `SocketError`.
|
|
58
|
+
*
|
|
35
59
|
* @category constructors
|
|
60
|
+
* @since 4.0.0
|
|
36
61
|
*/
|
|
37
62
|
export declare const fromDuplex: <RO>(open: Effect.Effect<Duplex, Socket.SocketError, RO>, options?: {
|
|
38
63
|
readonly openTimeout?: Duration.Input | undefined;
|
|
39
64
|
}) => Effect.Effect<Socket.Socket, never, Exclude<RO, Scope.Scope>>;
|
|
40
65
|
/**
|
|
41
|
-
*
|
|
66
|
+
* Creates a `Channel` over a TCP socket, reading arrays of `Uint8Array`
|
|
67
|
+
* chunks and writing arrays of bytes, strings, or socket close events.
|
|
68
|
+
*
|
|
42
69
|
* @category constructors
|
|
70
|
+
* @since 4.0.0
|
|
43
71
|
*/
|
|
44
72
|
export declare const makeNetChannel: <IE = never>(options: Net.NetConnectOpts) => Channel.Channel<Array.NonEmptyReadonlyArray<Uint8Array>, Socket.SocketError | IE, void, Array.NonEmptyReadonlyArray<Uint8Array | string | Socket.CloseEvent>, IE>;
|
|
45
73
|
/**
|
|
46
|
-
*
|
|
74
|
+
* Provides a `Socket.Socket` by opening a TCP connection with the supplied
|
|
75
|
+
* Node `net` connection options.
|
|
76
|
+
*
|
|
47
77
|
* @category layers
|
|
78
|
+
* @since 4.0.0
|
|
48
79
|
*/
|
|
49
80
|
export declare const layerNet: (options: Net.NetConnectOpts) => Layer.Layer<Socket.Socket, Socket.SocketError>;
|
|
50
81
|
//# sourceMappingURL=NodeSocket.d.ts.map
|
package/dist/NodeSocket.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSocket.d.ts","sourceRoot":"","sources":["../src/NodeSocket.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"NodeSocket.d.ts","sourceRoot":"","sources":["../src/NodeSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAKvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AACvD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;GAGG;AACH,OAAO,KAAK,MAAM,MAAM,IAAI,CAAA;;AAE5B;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,cAE9B;CAAG;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAClB,SAAS,GAAG,CAAC,cAAc,GAAG;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CAClD,KACA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAmC3B,CAAA;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,EAAE,EAC3B,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,EACnD,UAAU;IACR,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CAClD,KACA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CA4H3D,CAAA;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,GAAG,KAAK,EACvC,SAAS,GAAG,CAAC,cAAc,KAC1B,OAAO,CAAC,OAAO,CAChB,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,EACvC,MAAM,CAAC,WAAW,GAAG,EAAE,EACvB,IAAI,EACJ,KAAK,CAAC,qBAAqB,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,EACpE,EAAE,CAID,CAAA;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,KAAK,KAAK,CAAC,KAAK,CACjE,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,WAAW,CACmC,CAAA"}
|
package/dist/NodeSocket.js
CHANGED
|
@@ -11,18 +11,25 @@ import * as Scope from "effect/Scope";
|
|
|
11
11
|
import * as Socket from "effect/unstable/socket/Socket";
|
|
12
12
|
import * as Net from "node:net";
|
|
13
13
|
/**
|
|
14
|
-
* @since 1.0.0
|
|
15
14
|
* @category re-exports
|
|
15
|
+
* @since 4.0.0
|
|
16
16
|
*/
|
|
17
17
|
export * as NodeWS from "ws";
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Service tag for the underlying Node `net.Socket` associated with the current
|
|
20
|
+
* socket connection.
|
|
21
|
+
*
|
|
20
22
|
* @category tags
|
|
23
|
+
* @since 4.0.0
|
|
21
24
|
*/
|
|
22
25
|
export class NetSocket extends /*#__PURE__*/Context.Service()("@effect/platform-node/NodeSocket/NetSocket") {}
|
|
23
26
|
/**
|
|
24
|
-
*
|
|
27
|
+
* Opens a TCP connection with Node `net.createConnection` and exposes it as a
|
|
28
|
+
* `Socket.Socket`, supporting `openTimeout` and closing or destroying the
|
|
29
|
+
* socket when the enclosing scope is finalized.
|
|
30
|
+
*
|
|
25
31
|
* @category constructors
|
|
32
|
+
* @since 4.0.0
|
|
26
33
|
*/
|
|
27
34
|
export const makeNet = options => fromDuplex(Effect.contextWith(context => {
|
|
28
35
|
let conn;
|
|
@@ -52,8 +59,12 @@ export const makeNet = options => fromDuplex(Effect.contextWith(context => {
|
|
|
52
59
|
}));
|
|
53
60
|
}), options);
|
|
54
61
|
/**
|
|
55
|
-
*
|
|
62
|
+
* Adapts a Node `Duplex` into a `Socket.Socket`, wiring data events to socket
|
|
63
|
+
* handlers, providing a scoped writer, and mapping open, read, write, and close
|
|
64
|
+
* failures to `SocketError`.
|
|
65
|
+
*
|
|
56
66
|
* @category constructors
|
|
67
|
+
* @since 4.0.0
|
|
57
68
|
*/
|
|
58
69
|
export const fromDuplex = (open, options) => Effect.withFiber(fiber => {
|
|
59
70
|
let currentSocket;
|
|
@@ -141,13 +152,19 @@ export const fromDuplex = (open, options) => Effect.withFiber(fiber => {
|
|
|
141
152
|
}));
|
|
142
153
|
});
|
|
143
154
|
/**
|
|
144
|
-
*
|
|
155
|
+
* Creates a `Channel` over a TCP socket, reading arrays of `Uint8Array`
|
|
156
|
+
* chunks and writing arrays of bytes, strings, or socket close events.
|
|
157
|
+
*
|
|
145
158
|
* @category constructors
|
|
159
|
+
* @since 4.0.0
|
|
146
160
|
*/
|
|
147
161
|
export const makeNetChannel = options => Channel.unwrap(Effect.map(makeNet(options), Socket.toChannelWith()));
|
|
148
162
|
/**
|
|
149
|
-
*
|
|
163
|
+
* Provides a `Socket.Socket` by opening a TCP connection with the supplied
|
|
164
|
+
* Node `net` connection options.
|
|
165
|
+
*
|
|
150
166
|
* @category layers
|
|
167
|
+
* @since 4.0.0
|
|
151
168
|
*/
|
|
152
169
|
export const layerNet = /*#__PURE__*/Function.flow(makeNet, /*#__PURE__*/Layer.effect(Socket.Socket));
|
|
153
170
|
//# sourceMappingURL=NodeSocket.js.map
|
package/dist/NodeSocket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSocket.js","names":["Channel","Context","Deferred","Effect","FiberSet","Function","identity","Latch","Layer","Scope","Socket","Net","NodeWS","NetSocket","Service","makeNet","options","fromDuplex","contextWith","context","conn","flatMap","addFinalizer","get","sync","closed","destroySoon","destroy","callback","resume","createConnection","once","succeed","on","cause","fail","SocketError","reason","SocketOpenError","kind","open","withFiber","fiber","currentSocket","latch","makeUnsafe","openServices","run","handler","opts","scopedWith","fnUntraced","scope","fiberSet","make","pipe","provide","undefined","off","onData","onEnd","onError","onClose","openTimeout","timeoutOrElse","duration","orElse","Error","provideService","runtime","openUnsafe","onOpen","join","chunk","result","isEffect","doneUnsafe","deferred","void","SocketReadError","hadError","SocketCloseError","code","updateContext","input","merge","onExit","closeUnsafe","write","whenOpen","isCloseEvent","SocketWriteError","writer","acquireRelease","writableEnded","end","runRaw","makeNetChannel","unwrap","map","toChannelWith","layerNet","flow","effect"],"sources":["../src/NodeSocket.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeSocket.js","names":["Channel","Context","Deferred","Effect","FiberSet","Function","identity","Latch","Layer","Scope","Socket","Net","NodeWS","NetSocket","Service","makeNet","options","fromDuplex","contextWith","context","conn","flatMap","addFinalizer","get","sync","closed","destroySoon","destroy","callback","resume","createConnection","once","succeed","on","cause","fail","SocketError","reason","SocketOpenError","kind","open","withFiber","fiber","currentSocket","latch","makeUnsafe","openServices","run","handler","opts","scopedWith","fnUntraced","scope","fiberSet","make","pipe","provide","undefined","off","onData","onEnd","onError","onClose","openTimeout","timeoutOrElse","duration","orElse","Error","provideService","runtime","openUnsafe","onOpen","join","chunk","result","isEffect","doneUnsafe","deferred","void","SocketReadError","hadError","SocketCloseError","code","updateContext","input","merge","onExit","closeUnsafe","write","whenOpen","isCloseEvent","SocketWriteError","writer","acquireRelease","writableEnded","end","runRaw","makeNetChannel","unwrap","map","toChannelWith","layerNet","flow","effect"],"sources":["../src/NodeSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -10,32 +10,49 @@ import * as NodeSocket from "./NodeSocket.ts";
|
|
|
10
10
|
import { NodeWS } from "./NodeSocket.ts";
|
|
11
11
|
declare const IncomingMessage_base: Context.ServiceClass<IncomingMessage, "@effect/platform-node-shared/NodeSocketServer/IncomingMessage", Http.IncomingMessage>;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Service tag for the Node `IncomingMessage` associated with the current
|
|
14
|
+
* WebSocket server connection.
|
|
15
|
+
*
|
|
14
16
|
* @category tags
|
|
17
|
+
* @since 4.0.0
|
|
15
18
|
*/
|
|
16
19
|
export declare class IncomingMessage extends IncomingMessage_base {
|
|
17
20
|
}
|
|
18
21
|
/**
|
|
19
|
-
*
|
|
22
|
+
* Creates a scoped TCP `SocketServer` from a Node `net.Server`, starts
|
|
23
|
+
* listening with the supplied options, queues pending connections until `run`
|
|
24
|
+
* is called, and closes the server when the scope ends.
|
|
25
|
+
*
|
|
20
26
|
* @category constructors
|
|
27
|
+
* @since 4.0.0
|
|
21
28
|
*/
|
|
22
29
|
export declare const make: (options: Net.ServerOpts & Net.ListenOptions) => Effect.Effect<{
|
|
23
30
|
readonly address: SocketServer.Address;
|
|
24
31
|
readonly run: <R, E, _>(handler: (socket: Socket.Socket) => Effect.Effect<_, E, R>) => Effect.Effect<never, SocketServer.SocketServerError, R>;
|
|
25
32
|
}, SocketServer.SocketServerError, Scope.Scope>;
|
|
26
33
|
/**
|
|
27
|
-
*
|
|
34
|
+
* Provides a TCP `SocketServer` by creating and managing a scoped Node
|
|
35
|
+
* `net.Server` with the supplied server and listen options.
|
|
36
|
+
*
|
|
28
37
|
* @category layers
|
|
38
|
+
* @since 4.0.0
|
|
29
39
|
*/
|
|
30
40
|
export declare const layer: (options: Net.ServerOpts & Net.ListenOptions) => Layer.Layer<SocketServer.SocketServer, SocketServer.SocketServerError>;
|
|
31
41
|
/**
|
|
32
|
-
*
|
|
42
|
+
* Creates a scoped WebSocket `SocketServer` backed by the `ws` package,
|
|
43
|
+
* providing the WebSocket and its Node `IncomingMessage` to connection
|
|
44
|
+
* handlers and closing the server when the scope ends.
|
|
45
|
+
*
|
|
33
46
|
* @category constructors
|
|
47
|
+
* @since 4.0.0
|
|
34
48
|
*/
|
|
35
49
|
export declare const makeWebSocket: (options: NodeWS.ServerOptions<typeof NodeWS.WebSocket, typeof Http.IncomingMessage>) => Effect.Effect<SocketServer.SocketServer["Service"], SocketServer.SocketServerError, Scope.Scope>;
|
|
36
50
|
/**
|
|
37
|
-
*
|
|
51
|
+
* Provides a WebSocket `SocketServer` backed by the `ws` package and managed
|
|
52
|
+
* with the supplied server options.
|
|
53
|
+
*
|
|
38
54
|
* @category layers
|
|
55
|
+
* @since 4.0.0
|
|
39
56
|
*/
|
|
40
57
|
export declare const layerWebSocket: (options: NodeSocket.NodeWS.ServerOptions<typeof NodeSocket.NodeWS.WebSocket, typeof Http.IncomingMessage>) => Layer.Layer<SocketServer.SocketServer, SocketServer.SocketServerError>;
|
|
41
58
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSocketServer.d.ts","sourceRoot":"","sources":["../src/NodeSocketServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeSocketServer.d.ts","sourceRoot":"","sources":["../src/NodeSocketServer.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAKvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AACvD,OAAO,KAAK,YAAY,MAAM,qCAAqC,CAAA;AACnE,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAA;AACtC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;;AAExC;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,oBAG+B;CAAG;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI;;;+CA6Gf,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,CAClB,OAAO,EAAE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,aAAa,KACxC,KAAK,CAAC,KAAK,CACd,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,iBAAiB,CACgC,CAAA;AAEhE;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,CAC1B,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,MAAM,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,KAChF,MAAM,CAAC,MAAM,CAChB,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,EACpC,YAAY,CAAC,iBAAiB,EAC9B,KAAK,CAAC,KAAK,CAyFX,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,CAC3B,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,KACtG,KAAK,CAAC,KAAK,CACd,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,iBAAiB,CACyC,CAAA"}
|
package/dist/NodeSocketServer.js
CHANGED
|
@@ -14,13 +14,20 @@ import * as Net from "node:net";
|
|
|
14
14
|
import * as NodeSocket from "./NodeSocket.js";
|
|
15
15
|
import { NodeWS } from "./NodeSocket.js";
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Service tag for the Node `IncomingMessage` associated with the current
|
|
18
|
+
* WebSocket server connection.
|
|
19
|
+
*
|
|
18
20
|
* @category tags
|
|
21
|
+
* @since 4.0.0
|
|
19
22
|
*/
|
|
20
23
|
export class IncomingMessage extends /*#__PURE__*/Context.Service()("@effect/platform-node-shared/NodeSocketServer/IncomingMessage") {}
|
|
21
24
|
/**
|
|
22
|
-
*
|
|
25
|
+
* Creates a scoped TCP `SocketServer` from a Node `net.Server`, starts
|
|
26
|
+
* listening with the supplied options, queues pending connections until `run`
|
|
27
|
+
* is called, and closes the server when the scope ends.
|
|
28
|
+
*
|
|
23
29
|
* @category constructors
|
|
30
|
+
* @since 4.0.0
|
|
24
31
|
*/
|
|
25
32
|
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
26
33
|
const errorDeferred = Deferred.makeUnsafe();
|
|
@@ -107,13 +114,20 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
107
114
|
});
|
|
108
115
|
});
|
|
109
116
|
/**
|
|
110
|
-
*
|
|
117
|
+
* Provides a TCP `SocketServer` by creating and managing a scoped Node
|
|
118
|
+
* `net.Server` with the supplied server and listen options.
|
|
119
|
+
*
|
|
111
120
|
* @category layers
|
|
121
|
+
* @since 4.0.0
|
|
112
122
|
*/
|
|
113
123
|
export const layer = /*#__PURE__*/Function.flow(make, /*#__PURE__*/Layer.effect(SocketServer.SocketServer));
|
|
114
124
|
/**
|
|
115
|
-
*
|
|
125
|
+
* Creates a scoped WebSocket `SocketServer` backed by the `ws` package,
|
|
126
|
+
* providing the WebSocket and its Node `IncomingMessage` to connection
|
|
127
|
+
* handlers and closing the server when the scope ends.
|
|
128
|
+
*
|
|
116
129
|
* @category constructors
|
|
130
|
+
* @since 4.0.0
|
|
117
131
|
*/
|
|
118
132
|
export const makeWebSocket = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
119
133
|
const server = yield* Effect.acquireRelease(Effect.sync(() => new NodeWS.WebSocketServer(options)), server => Effect.callback(resume => {
|
|
@@ -178,8 +192,11 @@ export const makeWebSocket = /*#__PURE__*/Effect.fnUntraced(function* (options)
|
|
|
178
192
|
});
|
|
179
193
|
});
|
|
180
194
|
/**
|
|
181
|
-
*
|
|
195
|
+
* Provides a WebSocket `SocketServer` backed by the `ws` package and managed
|
|
196
|
+
* with the supplied server options.
|
|
197
|
+
*
|
|
182
198
|
* @category layers
|
|
199
|
+
* @since 4.0.0
|
|
183
200
|
*/
|
|
184
201
|
export const layerWebSocket = /*#__PURE__*/Function.flow(makeWebSocket, /*#__PURE__*/Layer.effect(SocketServer.SocketServer));
|
|
185
202
|
const reportUnhandledError = cause => Effect.withFiber(fiber => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSocketServer.js","names":["Context","Deferred","Effect","Exit","Fiber","pipe","Function","Layer","References","Scope","Socket","SocketServer","Net","NodeSocket","NodeWS","IncomingMessage","Service","make","fnUntraced","options","errorDeferred","makeUnsafe","pending","Set","defaultOnConnection","conn","add","remove","delete","on","onConnection","server","addFinalizer","callback","resume","close","void","createServer","err","doneUnsafe","fail","listen","raceFirst","mapError","await","SocketServerError","reason","SocketServerOpenError","cause","run","handler","scope","services","omit","context","trackFiber","runIn","prevOnConnection","error","fromDuplex","acquireRelease","suspend","SocketError","SocketOpenError","kind","closed","SocketCloseError","code","succeed","sync","destroySoon","flatMap","catchCause","reportUnhandledError","runForkWith","NetSocket","forEach","removeAllListeners","clear","_resume","address","of","_tag","path","hostname","port","layer","flow","effect","makeWebSocket","WebSocketServer","pendingConnections","defaultHandler","req","entry","addEventListener","once","map","Map","mapUnsafe","set","key","WebSocket","fromWebSocket","ensuring","layerWebSocket","withFiber","fiber","unhandledLogLevel","getRef","UnhandledLogLevel","logWithLevel"],"sources":["../src/NodeSocketServer.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeSocketServer.js","names":["Context","Deferred","Effect","Exit","Fiber","pipe","Function","Layer","References","Scope","Socket","SocketServer","Net","NodeSocket","NodeWS","IncomingMessage","Service","make","fnUntraced","options","errorDeferred","makeUnsafe","pending","Set","defaultOnConnection","conn","add","remove","delete","on","onConnection","server","addFinalizer","callback","resume","close","void","createServer","err","doneUnsafe","fail","listen","raceFirst","mapError","await","SocketServerError","reason","SocketServerOpenError","cause","run","handler","scope","services","omit","context","trackFiber","runIn","prevOnConnection","error","fromDuplex","acquireRelease","suspend","SocketError","SocketOpenError","kind","closed","SocketCloseError","code","succeed","sync","destroySoon","flatMap","catchCause","reportUnhandledError","runForkWith","NetSocket","forEach","removeAllListeners","clear","_resume","address","of","_tag","path","hostname","port","layer","flow","effect","makeWebSocket","WebSocketServer","pendingConnections","defaultHandler","req","entry","addEventListener","once","map","Map","mapUnsafe","set","key","WebSocket","fromWebSocket","ensuring","layerWebSocket","withFiber","fiber","unhandledLogLevel","getRef","UnhandledLogLevel","logWithLevel"],"sources":["../src/NodeSocketServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/NodeStdio.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import * as Layer from "effect/Layer";
|
|
2
2
|
import * as Stdio from "effect/Stdio";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Provides `Stdio` from `process.argv`, `process.stdin`, `process.stdout`,
|
|
5
|
+
* and `process.stderr`; stdin remains open and stdout/stderr are not ended by
|
|
6
|
+
* default.
|
|
7
|
+
*
|
|
8
|
+
* @category layers
|
|
9
|
+
* @since 4.0.0
|
|
6
10
|
*/
|
|
7
11
|
export declare const layer: Layer.Layer<Stdio.Stdio>;
|
|
8
12
|
//# sourceMappingURL=NodeStdio.d.ts.map
|
package/dist/NodeStdio.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeStdio.d.ts","sourceRoot":"","sources":["../src/NodeStdio.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeStdio.d.ts","sourceRoot":"","sources":["../src/NodeStdio.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAwC1C,CAAA"}
|
package/dist/NodeStdio.js
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Shared Node.js implementation of the Effect `Stdio` service.
|
|
3
|
+
*
|
|
4
|
+
* This module builds the `Stdio` layer used by Node platform packages by
|
|
5
|
+
* wiring the service to the current process: command-line arguments come from
|
|
6
|
+
* `process.argv`, input is read from `process.stdin`, and output and error
|
|
7
|
+
* output are written to `process.stdout` and `process.stderr`. It is intended
|
|
8
|
+
* for CLIs, scripts, command runners, test harnesses, and other
|
|
9
|
+
* process-oriented programs that need standard I/O through Effect services.
|
|
10
|
+
*
|
|
11
|
+
* The process stdio streams are global resources owned by Node. This layer
|
|
12
|
+
* leaves stdin open and does not end stdout or stderr by default, avoiding
|
|
13
|
+
* accidental closure of handles other code in the process may still use. Those
|
|
14
|
+
* streams may be pipes, files, or TTYs; interactive terminal behavior such as
|
|
15
|
+
* raw mode, echo, colors, and cursor movement should be coordinated with the
|
|
16
|
+
* terminal APIs instead of assuming this layer has exclusive control.
|
|
17
|
+
*
|
|
18
|
+
* @since 4.0.0
|
|
3
19
|
*/
|
|
4
20
|
import * as Effect from "effect/Effect";
|
|
5
21
|
import * as Layer from "effect/Layer";
|
|
@@ -8,8 +24,12 @@ import * as Stdio from "effect/Stdio";
|
|
|
8
24
|
import { fromWritable } from "./NodeSink.js";
|
|
9
25
|
import { fromReadable } from "./NodeStream.js";
|
|
10
26
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
27
|
+
* Provides `Stdio` from `process.argv`, `process.stdin`, `process.stdout`,
|
|
28
|
+
* and `process.stderr`; stdin remains open and stdout/stderr are not ended by
|
|
29
|
+
* default.
|
|
30
|
+
*
|
|
31
|
+
* @category layers
|
|
32
|
+
* @since 4.0.0
|
|
13
33
|
*/
|
|
14
34
|
export const layer = /*#__PURE__*/Layer.succeed(Stdio.Stdio, /*#__PURE__*/Stdio.make({
|
|
15
35
|
args: /*#__PURE__*/Effect.sync(() => process.argv.slice(2)),
|
package/dist/NodeStdio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeStdio.js","names":["Effect","Layer","systemError","Stdio","fromWritable","fromReadable","layer","succeed","make","args","sync","process","argv","slice","stdout","options","evaluate","onError","cause","module","method","_tag","endOnDone","stderr","stdin","closeOnDone"],"sources":["../src/NodeStdio.ts"],"sourcesContent":[null],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"NodeStdio.js","names":["Effect","Layer","systemError","Stdio","fromWritable","fromReadable","layer","succeed","make","args","sync","process","argv","slice","stdout","options","evaluate","onError","cause","module","method","_tag","endOnDone","stderr","stdin","closeOnDone"],"sources":["../src/NodeStdio.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;AAmBA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,WAAW,QAAQ,sBAAsB;AAClD,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,YAAY,QAAQ,iBAAiB;AAE9C;;;;;;;;AAQA,OAAO,MAAMC,KAAK,gBAA6BL,KAAK,CAACM,OAAO,CAC1DJ,KAAK,CAACA,KAAK,eACXA,KAAK,CAACK,IAAI,CAAC;EACTC,IAAI,eAAET,MAAM,CAACU,IAAI,CAAC,MAAMC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;EAC9CC,MAAM,EAAGC,OAAO,IACdX,YAAY,CAAC;IACXY,QAAQ,EAAEA,CAAA,KAAML,OAAO,CAACG,MAAM;IAC9BG,OAAO,EAAGC,KAAK,IACbhB,WAAW,CAAC;MACViB,MAAM,EAAE,OAAO;MACfC,MAAM,EAAE,QAAQ;MAChBC,IAAI,EAAE,SAAS;MACfH;KACD,CAAC;IACJI,SAAS,EAAEP,OAAO,EAAEO,SAAS,IAAI;GAClC,CAAC;EACJC,MAAM,EAAGR,OAAO,IACdX,YAAY,CAAC;IACXY,QAAQ,EAAEA,CAAA,KAAML,OAAO,CAACY,MAAM;IAC9BN,OAAO,EAAGC,KAAK,IACbhB,WAAW,CAAC;MACViB,MAAM,EAAE,OAAO;MACfC,MAAM,EAAE,QAAQ;MAChBC,IAAI,EAAE,SAAS;MACfH;KACD,CAAC;IACJI,SAAS,EAAEP,OAAO,EAAEO,SAAS,IAAI;GAClC,CAAC;EACJE,KAAK,eAAEnB,YAAY,CAAC;IAClBW,QAAQ,EAAEA,CAAA,KAAML,OAAO,CAACa,KAAK;IAC7BP,OAAO,EAAGC,KAAK,IACbhB,WAAW,CAAC;MACViB,MAAM,EAAE,OAAO;MACfC,MAAM,EAAE,OAAO;MACfC,IAAI,EAAE,SAAS;MACfH;KACD,CAAC;IACJO,WAAW,EAAE;GACd;CACF,CAAC,CACH","ignoreList":[]}
|