@effect/platform-node-shared 0.57.0 → 4.0.0-beta.0

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 (218) hide show
  1. package/README.md +3 -3
  2. package/dist/NodeChildProcessSpawner.d.ts +37 -0
  3. package/dist/NodeChildProcessSpawner.d.ts.map +1 -0
  4. package/dist/NodeChildProcessSpawner.js +567 -0
  5. package/dist/NodeChildProcessSpawner.js.map +1 -0
  6. package/dist/{dts/NodeClusterSocket.d.ts → NodeClusterSocket.d.ts} +4 -7
  7. package/dist/NodeClusterSocket.d.ts.map +1 -0
  8. package/dist/{esm/NodeClusterSocket.js → NodeClusterSocket.js} +9 -10
  9. package/dist/NodeClusterSocket.js.map +1 -0
  10. package/dist/NodeFileSystem.d.ts +8 -0
  11. package/dist/NodeFileSystem.d.ts.map +1 -0
  12. package/dist/{esm/internal/fileSystem.js → NodeFileSystem.js} +125 -96
  13. package/dist/NodeFileSystem.js.map +1 -0
  14. package/dist/NodePath.d.ts +18 -0
  15. package/dist/NodePath.d.ts.map +1 -0
  16. package/dist/NodePath.js +56 -0
  17. package/dist/NodePath.js.map +1 -0
  18. package/dist/NodeRuntime.d.ts +28 -0
  19. package/dist/NodeRuntime.d.ts.map +1 -0
  20. package/dist/{esm/internal/runtime.js → NodeRuntime.js} +8 -8
  21. package/dist/NodeRuntime.js.map +1 -0
  22. package/dist/NodeSink.d.ts +40 -0
  23. package/dist/NodeSink.d.ts.map +1 -0
  24. package/dist/NodeSink.js +50 -0
  25. package/dist/NodeSink.js.map +1 -0
  26. package/dist/{dts/NodeSocket.d.ts → NodeSocket.d.ts} +10 -10
  27. package/dist/NodeSocket.d.ts.map +1 -0
  28. package/dist/{esm/NodeSocket.js → NodeSocket.js} +51 -39
  29. package/dist/NodeSocket.js.map +1 -0
  30. package/dist/{dts/NodeSocketServer.d.ts → NodeSocketServer.d.ts} +8 -10
  31. package/dist/NodeSocketServer.d.ts.map +1 -0
  32. package/dist/NodeSocketServer.js +192 -0
  33. package/dist/NodeSocketServer.js.map +1 -0
  34. package/dist/NodeStdio.d.ts +11 -0
  35. package/dist/NodeStdio.d.ts.map +1 -0
  36. package/dist/NodeStdio.js +43 -0
  37. package/dist/NodeStdio.js.map +1 -0
  38. package/dist/NodeStream.d.ts +127 -0
  39. package/dist/NodeStream.d.ts.map +1 -0
  40. package/dist/NodeStream.js +249 -0
  41. package/dist/NodeStream.js.map +1 -0
  42. package/dist/NodeTerminal.d.ts +15 -0
  43. package/dist/NodeTerminal.d.ts.map +1 -0
  44. package/dist/{esm/internal/terminal.js → NodeTerminal.js} +28 -21
  45. package/dist/NodeTerminal.js.map +1 -0
  46. package/dist/internal/utils.d.ts +2 -0
  47. package/dist/internal/utils.d.ts.map +1 -0
  48. package/dist/{esm/internal/error.js → internal/utils.js} +4 -5
  49. package/dist/internal/utils.js.map +1 -0
  50. package/package.json +53 -124
  51. package/src/NodeChildProcessSpawner.ts +713 -0
  52. package/src/NodeClusterSocket.ts +12 -13
  53. package/src/NodeFileSystem.ts +632 -5
  54. package/src/NodePath.ts +48 -9
  55. package/src/NodeRuntime.ts +53 -4
  56. package/src/NodeSink.ts +65 -62
  57. package/src/NodeSocket.ts +65 -49
  58. package/src/NodeSocketServer.ts +108 -88
  59. package/src/NodeStdio.ts +49 -0
  60. package/src/NodeStream.ts +324 -83
  61. package/src/NodeTerminal.ts +100 -9
  62. package/src/internal/{error.ts → utils.ts} +6 -7
  63. package/NodeClusterSocket/package.json +0 -6
  64. package/NodeCommandExecutor/package.json +0 -6
  65. package/NodeFileSystem/ParcelWatcher/package.json +0 -6
  66. package/NodeFileSystem/package.json +0 -6
  67. package/NodeKeyValueStore/package.json +0 -6
  68. package/NodeMultipart/package.json +0 -6
  69. package/NodePath/package.json +0 -6
  70. package/NodeRuntime/package.json +0 -6
  71. package/NodeSink/package.json +0 -6
  72. package/NodeSocket/package.json +0 -6
  73. package/NodeSocketServer/package.json +0 -6
  74. package/NodeStream/package.json +0 -6
  75. package/NodeTerminal/package.json +0 -6
  76. package/dist/cjs/NodeClusterSocket.js +0 -50
  77. package/dist/cjs/NodeClusterSocket.js.map +0 -1
  78. package/dist/cjs/NodeCommandExecutor.js +0 -14
  79. package/dist/cjs/NodeCommandExecutor.js.map +0 -1
  80. package/dist/cjs/NodeFileSystem/ParcelWatcher.js +0 -20
  81. package/dist/cjs/NodeFileSystem/ParcelWatcher.js.map +0 -1
  82. package/dist/cjs/NodeFileSystem.js +0 -18
  83. package/dist/cjs/NodeFileSystem.js.map +0 -1
  84. package/dist/cjs/NodeKeyValueStore.js +0 -18
  85. package/dist/cjs/NodeKeyValueStore.js.map +0 -1
  86. package/dist/cjs/NodeMultipart.js +0 -24
  87. package/dist/cjs/NodeMultipart.js.map +0 -1
  88. package/dist/cjs/NodePath.js +0 -28
  89. package/dist/cjs/NodePath.js.map +0 -1
  90. package/dist/cjs/NodeRuntime.js +0 -14
  91. package/dist/cjs/NodeRuntime.js.map +0 -1
  92. package/dist/cjs/NodeSink.js +0 -50
  93. package/dist/cjs/NodeSink.js.map +0 -1
  94. package/dist/cjs/NodeSocket.js +0 -153
  95. package/dist/cjs/NodeSocket.js.map +0 -1
  96. package/dist/cjs/NodeSocketServer.js +0 -178
  97. package/dist/cjs/NodeSocketServer.js.map +0 -1
  98. package/dist/cjs/NodeStream.js +0 -76
  99. package/dist/cjs/NodeStream.js.map +0 -1
  100. package/dist/cjs/NodeTerminal.js +0 -19
  101. package/dist/cjs/NodeTerminal.js.map +0 -1
  102. package/dist/cjs/internal/commandExecutor.js +0 -153
  103. package/dist/cjs/internal/commandExecutor.js.map +0 -1
  104. package/dist/cjs/internal/error.js +0 -45
  105. package/dist/cjs/internal/error.js.map +0 -1
  106. package/dist/cjs/internal/fileSystem/parcelWatcher.js +0 -68
  107. package/dist/cjs/internal/fileSystem/parcelWatcher.js.map +0 -1
  108. package/dist/cjs/internal/fileSystem.js +0 -400
  109. package/dist/cjs/internal/fileSystem.js.map +0 -1
  110. package/dist/cjs/internal/multipart.js +0 -147
  111. package/dist/cjs/internal/multipart.js.map +0 -1
  112. package/dist/cjs/internal/path.js +0 -53
  113. package/dist/cjs/internal/path.js.map +0 -1
  114. package/dist/cjs/internal/runtime.js +0 -37
  115. package/dist/cjs/internal/runtime.js.map +0 -1
  116. package/dist/cjs/internal/sink.js +0 -28
  117. package/dist/cjs/internal/sink.js.map +0 -1
  118. package/dist/cjs/internal/stream.js +0 -233
  119. package/dist/cjs/internal/stream.js.map +0 -1
  120. package/dist/cjs/internal/terminal.js +0 -86
  121. package/dist/cjs/internal/terminal.js.map +0 -1
  122. package/dist/dts/NodeClusterSocket.d.ts.map +0 -1
  123. package/dist/dts/NodeCommandExecutor.d.ts +0 -12
  124. package/dist/dts/NodeCommandExecutor.d.ts.map +0 -1
  125. package/dist/dts/NodeFileSystem/ParcelWatcher.d.ts +0 -13
  126. package/dist/dts/NodeFileSystem/ParcelWatcher.d.ts.map +0 -1
  127. package/dist/dts/NodeFileSystem.d.ts +0 -11
  128. package/dist/dts/NodeFileSystem.d.ts.map +0 -1
  129. package/dist/dts/NodeKeyValueStore.d.ts +0 -12
  130. package/dist/dts/NodeKeyValueStore.d.ts.map +0 -1
  131. package/dist/dts/NodeMultipart.d.ts +0 -27
  132. package/dist/dts/NodeMultipart.d.ts.map +0 -1
  133. package/dist/dts/NodePath.d.ts +0 -21
  134. package/dist/dts/NodePath.d.ts.map +0 -1
  135. package/dist/dts/NodeRuntime.d.ts +0 -10
  136. package/dist/dts/NodeRuntime.d.ts.map +0 -1
  137. package/dist/dts/NodeSink.d.ts +0 -36
  138. package/dist/dts/NodeSink.d.ts.map +0 -1
  139. package/dist/dts/NodeSocket.d.ts.map +0 -1
  140. package/dist/dts/NodeSocketServer.d.ts.map +0 -1
  141. package/dist/dts/NodeStream.d.ts +0 -119
  142. package/dist/dts/NodeStream.d.ts.map +0 -1
  143. package/dist/dts/NodeTerminal.d.ts +0 -18
  144. package/dist/dts/NodeTerminal.d.ts.map +0 -1
  145. package/dist/dts/internal/commandExecutor.d.ts +0 -2
  146. package/dist/dts/internal/commandExecutor.d.ts.map +0 -1
  147. package/dist/dts/internal/error.d.ts +0 -2
  148. package/dist/dts/internal/error.d.ts.map +0 -1
  149. package/dist/dts/internal/fileSystem/parcelWatcher.d.ts +0 -4
  150. package/dist/dts/internal/fileSystem/parcelWatcher.d.ts.map +0 -1
  151. package/dist/dts/internal/fileSystem.d.ts +0 -2
  152. package/dist/dts/internal/fileSystem.d.ts.map +0 -1
  153. package/dist/dts/internal/multipart.d.ts +0 -2
  154. package/dist/dts/internal/multipart.d.ts.map +0 -1
  155. package/dist/dts/internal/path.d.ts +0 -2
  156. package/dist/dts/internal/path.d.ts.map +0 -1
  157. package/dist/dts/internal/runtime.d.ts +0 -2
  158. package/dist/dts/internal/runtime.d.ts.map +0 -1
  159. package/dist/dts/internal/sink.d.ts +0 -2
  160. package/dist/dts/internal/sink.d.ts.map +0 -1
  161. package/dist/dts/internal/stream.d.ts +0 -2
  162. package/dist/dts/internal/stream.d.ts.map +0 -1
  163. package/dist/dts/internal/terminal.d.ts +0 -2
  164. package/dist/dts/internal/terminal.d.ts.map +0 -1
  165. package/dist/esm/NodeClusterSocket.js.map +0 -1
  166. package/dist/esm/NodeCommandExecutor.js +0 -7
  167. package/dist/esm/NodeCommandExecutor.js.map +0 -1
  168. package/dist/esm/NodeFileSystem/ParcelWatcher.js +0 -12
  169. package/dist/esm/NodeFileSystem/ParcelWatcher.js.map +0 -1
  170. package/dist/esm/NodeFileSystem.js +0 -10
  171. package/dist/esm/NodeFileSystem.js.map +0 -1
  172. package/dist/esm/NodeKeyValueStore.js +0 -10
  173. package/dist/esm/NodeKeyValueStore.js.map +0 -1
  174. package/dist/esm/NodeMultipart.js +0 -17
  175. package/dist/esm/NodeMultipart.js.map +0 -1
  176. package/dist/esm/NodePath.js +0 -20
  177. package/dist/esm/NodePath.js.map +0 -1
  178. package/dist/esm/NodeRuntime.js +0 -7
  179. package/dist/esm/NodeRuntime.js.map +0 -1
  180. package/dist/esm/NodeSink.js +0 -43
  181. package/dist/esm/NodeSink.js.map +0 -1
  182. package/dist/esm/NodeSocket.js.map +0 -1
  183. package/dist/esm/NodeSocketServer.js +0 -167
  184. package/dist/esm/NodeSocketServer.js.map +0 -1
  185. package/dist/esm/NodeStream.js +0 -69
  186. package/dist/esm/NodeStream.js.map +0 -1
  187. package/dist/esm/NodeTerminal.js +0 -12
  188. package/dist/esm/NodeTerminal.js.map +0 -1
  189. package/dist/esm/internal/commandExecutor.js +0 -146
  190. package/dist/esm/internal/commandExecutor.js.map +0 -1
  191. package/dist/esm/internal/error.js.map +0 -1
  192. package/dist/esm/internal/fileSystem/parcelWatcher.js +0 -61
  193. package/dist/esm/internal/fileSystem/parcelWatcher.js.map +0 -1
  194. package/dist/esm/internal/fileSystem.js.map +0 -1
  195. package/dist/esm/internal/multipart.js +0 -137
  196. package/dist/esm/internal/multipart.js.map +0 -1
  197. package/dist/esm/internal/path.js +0 -46
  198. package/dist/esm/internal/path.js.map +0 -1
  199. package/dist/esm/internal/runtime.js.map +0 -1
  200. package/dist/esm/internal/sink.js +0 -19
  201. package/dist/esm/internal/sink.js.map +0 -1
  202. package/dist/esm/internal/stream.js +0 -217
  203. package/dist/esm/internal/stream.js.map +0 -1
  204. package/dist/esm/internal/terminal.js.map +0 -1
  205. package/dist/esm/package.json +0 -4
  206. package/src/NodeCommandExecutor.ts +0 -13
  207. package/src/NodeFileSystem/ParcelWatcher.ts +0 -15
  208. package/src/NodeKeyValueStore.ts +0 -20
  209. package/src/NodeMultipart.ts +0 -40
  210. package/src/internal/commandExecutor.ts +0 -251
  211. package/src/internal/fileSystem/parcelWatcher.ts +0 -64
  212. package/src/internal/fileSystem.ts +0 -648
  213. package/src/internal/multipart.ts +0 -141
  214. package/src/internal/path.ts +0 -63
  215. package/src/internal/runtime.ts +0 -34
  216. package/src/internal/sink.ts +0 -57
  217. package/src/internal/stream.ts +0 -375
  218. package/src/internal/terminal.ts +0 -100
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Layer from "effect/Layer";
5
+ import { systemError } from "effect/PlatformError";
6
+ import * as Stdio from "effect/Stdio";
7
+ import { fromWritable } from "./NodeSink.js";
8
+ import { fromReadable } from "./NodeStream.js";
9
+ /**
10
+ * @category Layers
11
+ * @since 1.0.0
12
+ */
13
+ export const layer = /*#__PURE__*/Layer.succeed(Stdio.Stdio, /*#__PURE__*/Stdio.make({
14
+ stdout: /*#__PURE__*/fromWritable({
15
+ evaluate: () => process.stdout,
16
+ onError: cause => systemError({
17
+ module: "Stdio",
18
+ method: "stdout",
19
+ kind: "Unknown",
20
+ cause
21
+ })
22
+ }),
23
+ stderr: /*#__PURE__*/fromWritable({
24
+ evaluate: () => process.stderr,
25
+ onError: cause => systemError({
26
+ module: "Stdio",
27
+ method: "stderr",
28
+ kind: "Unknown",
29
+ cause
30
+ })
31
+ }),
32
+ stdin: /*#__PURE__*/fromReadable({
33
+ evaluate: () => process.stdin,
34
+ onError: cause => systemError({
35
+ module: "Stdio",
36
+ method: "stdin",
37
+ kind: "Unknown",
38
+ cause
39
+ }),
40
+ closeOnDone: false
41
+ })
42
+ }));
43
+ //# sourceMappingURL=NodeStdio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeStdio.js","names":["Layer","systemError","Stdio","fromWritable","fromReadable","layer","succeed","make","stdout","evaluate","process","onError","cause","module","method","kind","stderr","stdin","closeOnDone"],"sources":["../src/NodeStdio.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,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;;;;AAIA,OAAO,MAAMC,KAAK,gBAA6BL,KAAK,CAACM,OAAO,CAC1DJ,KAAK,CAACA,KAAK,eACXA,KAAK,CAACK,IAAI,CAAC;EACTC,MAAM,eAAEL,YAAY,CAAC;IACnBM,QAAQ,EAAEA,CAAA,KAAMC,OAAO,CAACF,MAAM;IAC9BG,OAAO,EAAGC,KAAK,IACbX,WAAW,CAAC;MACVY,MAAM,EAAE,OAAO;MACfC,MAAM,EAAE,QAAQ;MAChBC,IAAI,EAAE,SAAS;MACfH;KACD;GACJ,CAAC;EACFI,MAAM,eAAEb,YAAY,CAAC;IACnBM,QAAQ,EAAEA,CAAA,KAAMC,OAAO,CAACM,MAAM;IAC9BL,OAAO,EAAGC,KAAK,IACbX,WAAW,CAAC;MACVY,MAAM,EAAE,OAAO;MACfC,MAAM,EAAE,QAAQ;MAChBC,IAAI,EAAE,SAAS;MACfH;KACD;GACJ,CAAC;EACFK,KAAK,eAAEb,YAAY,CAAC;IAClBK,QAAQ,EAAEA,CAAA,KAAMC,OAAO,CAACO,KAAK;IAC7BN,OAAO,EAAGC,KAAK,IACbX,WAAW,CAAC;MACVY,MAAM,EAAE,OAAO;MACfC,MAAM,EAAE,OAAO;MACfC,IAAI,EAAE,SAAS;MACfH;KACD,CAAC;IACJM,WAAW,EAAE;GACd;CACF,CAAC,CACH","ignoreList":[]}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Arr from "effect/Array";
5
+ import * as Cause from "effect/Cause";
6
+ import * as Channel from "effect/Channel";
7
+ import * as Effect from "effect/Effect";
8
+ import type { SizeInput } from "effect/FileSystem";
9
+ import { type LazyArg } from "effect/Function";
10
+ import * as Stream from "effect/Stream";
11
+ import type { Duplex } from "node:stream";
12
+ import { Readable } from "node:stream";
13
+ /**
14
+ * @category constructors
15
+ * @since 1.0.0
16
+ */
17
+ export declare const fromReadable: <A = Uint8Array, E = Cause.UnknownError>(options: {
18
+ readonly evaluate: LazyArg<Readable | NodeJS.ReadableStream>;
19
+ readonly onError?: (error: unknown) => E;
20
+ readonly chunkSize?: number | undefined;
21
+ readonly bufferSize?: number | undefined;
22
+ readonly closeOnDone?: boolean | undefined;
23
+ }) => Stream.Stream<A, E>;
24
+ /**
25
+ * @category constructors
26
+ * @since 1.0.0
27
+ */
28
+ export declare const fromReadableChannel: <A = Uint8Array, E = Cause.UnknownError>(options: {
29
+ readonly evaluate: LazyArg<Readable | NodeJS.ReadableStream>;
30
+ readonly onError?: (error: unknown) => E;
31
+ readonly chunkSize?: number | undefined;
32
+ readonly closeOnDone?: boolean | undefined;
33
+ }) => Channel.Channel<Arr.NonEmptyReadonlyArray<A>, E>;
34
+ /**
35
+ * @category constructors
36
+ * @since 1.0.0
37
+ */
38
+ export declare const fromDuplex: <IE, I = Uint8Array, O = Uint8Array, E = Cause.UnknownError>(options: {
39
+ readonly evaluate: LazyArg<Duplex>;
40
+ readonly onError?: (error: unknown) => E;
41
+ readonly chunkSize?: number | undefined;
42
+ readonly bufferSize?: number | undefined;
43
+ readonly endOnDone?: boolean | undefined;
44
+ readonly encoding?: BufferEncoding | undefined;
45
+ }) => Channel.Channel<Arr.NonEmptyReadonlyArray<O>, IE | E, void, Arr.NonEmptyReadonlyArray<I>, IE>;
46
+ /**
47
+ * @category combinators
48
+ * @since 1.0.0
49
+ */
50
+ export declare const pipeThroughDuplex: {
51
+ /**
52
+ * @category combinators
53
+ * @since 1.0.0
54
+ */
55
+ <B = Uint8Array, E2 = Cause.UnknownError>(options: {
56
+ readonly evaluate: LazyArg<Duplex>;
57
+ readonly onError?: (error: unknown) => E2;
58
+ readonly chunkSize?: number | undefined;
59
+ readonly bufferSize?: number | undefined;
60
+ readonly endOnDone?: boolean | undefined;
61
+ readonly encoding?: BufferEncoding | undefined;
62
+ }): <R, E, A>(self: Stream.Stream<A, E, R>) => Stream.Stream<B, E2 | E, R>;
63
+ /**
64
+ * @category combinators
65
+ * @since 1.0.0
66
+ */
67
+ <R, E, A, B = Uint8Array, E2 = Cause.UnknownError>(self: Stream.Stream<A, E, R>, options: {
68
+ readonly evaluate: LazyArg<Duplex>;
69
+ readonly onError?: (error: unknown) => E2;
70
+ readonly chunkSize?: number | undefined;
71
+ readonly bufferSize?: number | undefined;
72
+ readonly endOnDone?: boolean | undefined;
73
+ readonly encoding?: BufferEncoding | undefined;
74
+ }): Stream.Stream<B, E | E2, R>;
75
+ };
76
+ /**
77
+ * @category combinators
78
+ * @since 1.0.0
79
+ */
80
+ export declare const pipeThroughSimple: {
81
+ /**
82
+ * @category combinators
83
+ * @since 1.0.0
84
+ */
85
+ (duplex: LazyArg<Duplex>): <R, E>(self: Stream.Stream<string | Uint8Array, E, R>) => Stream.Stream<Uint8Array, E | Cause.UnknownError, R>;
86
+ /**
87
+ * @category combinators
88
+ * @since 1.0.0
89
+ */
90
+ <R, E>(self: Stream.Stream<string | Uint8Array, E, R>, duplex: LazyArg<Duplex>): Stream.Stream<Uint8Array, Cause.UnknownError | E, R>;
91
+ };
92
+ /**
93
+ * @since 1.0.0
94
+ * @category conversions
95
+ */
96
+ export declare const toReadable: <E, R>(stream: Stream.Stream<string | Uint8Array, E, R>) => Effect.Effect<Readable, never, R>;
97
+ /**
98
+ * @since 1.0.0
99
+ * @category conversions
100
+ */
101
+ export declare const toReadableNever: <E>(stream: Stream.Stream<string | Uint8Array, E, never>) => Readable;
102
+ /**
103
+ * @since 1.0.0
104
+ * @category conversions
105
+ */
106
+ export declare const toString: <E = Cause.UnknownError>(readable: LazyArg<Readable | NodeJS.ReadableStream>, options?: {
107
+ readonly onError?: (error: unknown) => E;
108
+ readonly encoding?: BufferEncoding | undefined;
109
+ readonly maxBytes?: SizeInput | undefined;
110
+ }) => Effect.Effect<string, E>;
111
+ /**
112
+ * @since 1.0.0
113
+ * @category conversions
114
+ */
115
+ export declare const toArrayBuffer: <E = Cause.UnknownError>(readable: LazyArg<Readable | NodeJS.ReadableStream>, options?: {
116
+ readonly onError?: (error: unknown) => E;
117
+ readonly maxBytes?: SizeInput | undefined;
118
+ }) => Effect.Effect<ArrayBuffer, E>;
119
+ /**
120
+ * @since 1.0.0
121
+ * @category conversions
122
+ */
123
+ export declare const toUint8Array: <E = Cause.UnknownError>(readable: LazyArg<Readable | NodeJS.ReadableStream>, options?: {
124
+ readonly onError?: (error: unknown) => E;
125
+ readonly maxBytes?: SizeInput | undefined;
126
+ }) => Effect.Effect<Uint8Array, E>;
127
+ //# sourceMappingURL=NodeStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeStream.d.ts","sourceRoot":"","sources":["../src/NodeStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,249 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Arr from "effect/Array";
5
+ import * as Cause from "effect/Cause";
6
+ import * as Channel from "effect/Channel";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Exit from "effect/Exit";
9
+ import * as Fiber from "effect/Fiber";
10
+ import { dual } from "effect/Function";
11
+ import * as MutableRef from "effect/MutableRef";
12
+ import * as Pull from "effect/Pull";
13
+ import * as Scope from "effect/Scope";
14
+ import * as ServiceMap from "effect/ServiceMap";
15
+ import * as Stream from "effect/Stream";
16
+ import { Readable } from "node:stream";
17
+ import { pullIntoWritable } from "./NodeSink.js";
18
+ /**
19
+ * @category constructors
20
+ * @since 1.0.0
21
+ */
22
+ export const fromReadable = options => Stream.fromChannel(fromReadableChannel(options));
23
+ /**
24
+ * @category constructors
25
+ * @since 1.0.0
26
+ */
27
+ export const fromReadableChannel = options => Channel.fromTransform((_, scope) => readableToPullUnsafe({
28
+ scope,
29
+ readable: options.evaluate(),
30
+ onError: options.onError ?? defaultOnError,
31
+ chunkSize: options.chunkSize,
32
+ closeOnDone: options.closeOnDone
33
+ }));
34
+ /**
35
+ * @category constructors
36
+ * @since 1.0.0
37
+ */
38
+ export const fromDuplex = options => Channel.fromTransform((upstream, scope) => {
39
+ const duplex = options.evaluate();
40
+ const exit = MutableRef.make(undefined);
41
+ return pullIntoWritable({
42
+ pull: upstream,
43
+ writable: duplex,
44
+ onError: options.onError ?? defaultOnError,
45
+ endOnDone: options.endOnDone,
46
+ encoding: options.encoding
47
+ }).pipe(Effect.catchCause(cause => {
48
+ if (Pull.isDoneCause(cause)) return Effect.void;
49
+ exit.current = Exit.failCause(cause);
50
+ return Effect.void;
51
+ }), Effect.forkIn(scope), Effect.flatMap(() => readableToPullUnsafe({
52
+ scope,
53
+ exit,
54
+ readable: duplex,
55
+ onError: options.onError ?? defaultOnError,
56
+ chunkSize: options.chunkSize
57
+ })));
58
+ });
59
+ /**
60
+ * @category combinators
61
+ * @since 1.0.0
62
+ */
63
+ export const pipeThroughDuplex = /*#__PURE__*/dual(2, (self, options) => Stream.pipeThroughChannelOrFail(self, fromDuplex(options)));
64
+ /**
65
+ * @category combinators
66
+ * @since 1.0.0
67
+ */
68
+ export const pipeThroughSimple = /*#__PURE__*/dual(2, (self, duplex) => pipeThroughDuplex(self, {
69
+ evaluate: duplex
70
+ }));
71
+ /**
72
+ * @since 1.0.0
73
+ * @category conversions
74
+ */
75
+ export const toReadable = stream => Effect.map(Effect.services(), context => new StreamAdapter(context, stream));
76
+ /**
77
+ * @since 1.0.0
78
+ * @category conversions
79
+ */
80
+ export const toReadableNever = stream => new StreamAdapter(ServiceMap.empty(), stream);
81
+ /**
82
+ * @since 1.0.0
83
+ * @category conversions
84
+ */
85
+ export const toString = (readable, options) => {
86
+ const maxBytesNumber = options?.maxBytes ? Number(options.maxBytes) : undefined;
87
+ const onError = options?.onError ?? defaultOnError;
88
+ const encoding = options?.encoding ?? "utf8";
89
+ return Effect.callback(resume => {
90
+ const stream = readable();
91
+ stream.setEncoding(encoding);
92
+ stream.once("error", err => {
93
+ if ("closed" in stream && !stream.closed) {
94
+ stream.destroy();
95
+ }
96
+ resume(Effect.fail(onError(err)));
97
+ });
98
+ stream.once("error", err => {
99
+ resume(Effect.fail(onError(err)));
100
+ });
101
+ let string = "";
102
+ let bytes = 0;
103
+ stream.once("end", () => {
104
+ resume(Effect.succeed(string));
105
+ });
106
+ stream.on("data", chunk => {
107
+ string += chunk;
108
+ bytes += Buffer.byteLength(chunk);
109
+ if (maxBytesNumber && bytes > maxBytesNumber) {
110
+ resume(Effect.fail(onError(new Error("maxBytes exceeded"))));
111
+ }
112
+ });
113
+ return Effect.sync(() => {
114
+ if ("closed" in stream && !stream.closed) {
115
+ stream.destroy();
116
+ }
117
+ });
118
+ });
119
+ };
120
+ /**
121
+ * @since 1.0.0
122
+ * @category conversions
123
+ */
124
+ export const toArrayBuffer = (readable, options) => {
125
+ const maxBytesNumber = options?.maxBytes ? Number(options.maxBytes) : undefined;
126
+ const onError = options?.onError ?? defaultOnError;
127
+ return Effect.callback(resume => {
128
+ const stream = readable();
129
+ let buffer = Buffer.alloc(0);
130
+ let bytes = 0;
131
+ stream.once("error", err => {
132
+ if ("closed" in stream && !stream.closed) {
133
+ stream.destroy();
134
+ }
135
+ resume(Effect.fail(onError(err)));
136
+ });
137
+ stream.once("end", () => {
138
+ if (buffer.buffer.byteLength === buffer.byteLength) {
139
+ return resume(Effect.succeed(buffer.buffer));
140
+ }
141
+ resume(Effect.succeed(buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)));
142
+ });
143
+ stream.on("data", chunk => {
144
+ buffer = Buffer.concat([buffer, chunk]);
145
+ bytes += chunk.length;
146
+ if (maxBytesNumber && bytes > maxBytesNumber) {
147
+ resume(Effect.fail(onError(new Error("maxBytes exceeded"))));
148
+ }
149
+ });
150
+ return Effect.sync(() => {
151
+ if ("closed" in stream && !stream.closed) {
152
+ stream.destroy();
153
+ }
154
+ });
155
+ });
156
+ };
157
+ /**
158
+ * @since 1.0.0
159
+ * @category conversions
160
+ */
161
+ export const toUint8Array = (readable, options) => Effect.map(toArrayBuffer(readable, options), buffer => new Uint8Array(buffer));
162
+ // ----------------------------------------------------------------------------
163
+ // internal
164
+ // ----------------------------------------------------------------------------
165
+ const readableToPullUnsafe = options => {
166
+ const readable = options.readable;
167
+ const closeOnDone = options.closeOnDone ?? true;
168
+ const exit = options.exit ?? MutableRef.make(undefined);
169
+ const latch = Effect.makeLatchUnsafe(false);
170
+ function onReadable() {
171
+ latch.openUnsafe();
172
+ }
173
+ function onError(error) {
174
+ exit.current = Exit.fail(options.onError(error));
175
+ latch.openUnsafe();
176
+ }
177
+ function onEnd() {
178
+ exit.current = Exit.fail(Cause.Done());
179
+ latch.openUnsafe();
180
+ }
181
+ readable.on("readable", onReadable);
182
+ readable.once("error", onError);
183
+ readable.once("end", onEnd);
184
+ const pull = Effect.suspend(function loop() {
185
+ let item = options.readable.read(options.chunkSize);
186
+ if (item === null) {
187
+ if (exit.current) {
188
+ return exit.current;
189
+ }
190
+ latch.closeUnsafe();
191
+ return Effect.flatMap(latch.await, loop);
192
+ }
193
+ const chunk = Arr.of(item);
194
+ while (true) {
195
+ item = options.readable.read(options.chunkSize);
196
+ if (item === null) break;
197
+ chunk.push(item);
198
+ }
199
+ return Effect.succeed(chunk);
200
+ });
201
+ return Effect.as(Scope.addFinalizer(options.scope, Effect.sync(() => {
202
+ readable.off("readable", onReadable);
203
+ readable.off("error", onError);
204
+ readable.off("end", onEnd);
205
+ if (closeOnDone && "closed" in options.readable && !options.readable.closed) {
206
+ options.readable.destroy();
207
+ }
208
+ })), pull);
209
+ };
210
+ class StreamAdapter extends Readable {
211
+ readLatch;
212
+ fiber = undefined;
213
+ constructor(context, stream) {
214
+ super({});
215
+ this.readLatch = Effect.makeLatchUnsafe(false);
216
+ this.fiber = Stream.runForEachArray(stream, chunk => this.readLatch.whenOpen(Effect.sync(() => {
217
+ this.readLatch.closeUnsafe();
218
+ for (let i = 0; i < chunk.length; i++) {
219
+ const item = chunk[i];
220
+ if (typeof item === "string") {
221
+ this.push(item, "utf8");
222
+ } else {
223
+ this.push(item);
224
+ }
225
+ }
226
+ }))).pipe(this.readLatch.whenOpen, Effect.provideServices(context), Effect.runFork);
227
+ this.fiber.addObserver(exit => {
228
+ this.fiber = undefined;
229
+ if (Exit.isSuccess(exit)) {
230
+ this.push(null);
231
+ } else {
232
+ this.destroy(Cause.squash(exit.cause));
233
+ }
234
+ });
235
+ }
236
+ _read(_size) {
237
+ this.readLatch.openUnsafe();
238
+ }
239
+ _destroy(error, callback) {
240
+ if (!this.fiber) {
241
+ return callback(error);
242
+ }
243
+ Effect.runFork(Fiber.interrupt(this.fiber)).addObserver(exit => {
244
+ callback(exit._tag === "Failure" ? Cause.squash(exit.cause) : error);
245
+ });
246
+ }
247
+ }
248
+ const defaultOnError = error => new Cause.UnknownError(error);
249
+ //# sourceMappingURL=NodeStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeStream.js","names":["Arr","Cause","Channel","Effect","Exit","Fiber","dual","MutableRef","Pull","Scope","ServiceMap","Stream","Readable","pullIntoWritable","fromReadable","options","fromChannel","fromReadableChannel","fromTransform","_","scope","readableToPullUnsafe","readable","evaluate","onError","defaultOnError","chunkSize","closeOnDone","fromDuplex","upstream","duplex","exit","make","undefined","pull","writable","endOnDone","encoding","pipe","catchCause","cause","isDoneCause","void","current","failCause","forkIn","flatMap","pipeThroughDuplex","self","pipeThroughChannelOrFail","pipeThroughSimple","toReadable","stream","map","services","context","StreamAdapter","toReadableNever","empty","toString","maxBytesNumber","maxBytes","Number","callback","resume","setEncoding","once","err","closed","destroy","fail","string","bytes","succeed","on","chunk","Buffer","byteLength","Error","sync","toArrayBuffer","buffer","alloc","slice","byteOffset","concat","length","toUint8Array","Uint8Array","latch","makeLatchUnsafe","onReadable","openUnsafe","error","onEnd","Done","suspend","loop","item","read","closeUnsafe","await","of","push","as","addFinalizer","off","readLatch","fiber","constructor","runForEachArray","whenOpen","i","provideServices","runFork","addObserver","isSuccess","squash","_read","_size","_destroy","interrupt","_tag","UnknownError"],"sources":["../src/NodeStream.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,GAAG,MAAM,cAAc;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,IAAI,QAAsB,iBAAiB;AACpD,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,gBAAgB,QAAQ,eAAe;AAEhD;;;;AAIA,OAAO,MAAMC,YAAY,GAA4CC,OAMpE,IAA0BJ,MAAM,CAACK,WAAW,CAACC,mBAAmB,CAAOF,OAAO,CAAC,CAAC;AAEjF;;;;AAIA,OAAO,MAAME,mBAAmB,GAA4CF,OAK3E,IACCb,OAAO,CAACgB,aAAa,CAAC,CAACC,CAAC,EAAEC,KAAK,KAC7BC,oBAAoB,CAAC;EACnBD,KAAK;EACLE,QAAQ,EAAEP,OAAO,CAACQ,QAAQ,EAAE;EAC5BC,OAAO,EAAET,OAAO,CAACS,OAAO,IAAIC,cAAqB;EACjDC,SAAS,EAAEX,OAAO,CAACW,SAAS;EAC5BC,WAAW,EAAEZ,OAAO,CAACY;CACtB,CAAC,CACH;AAEH;;;;AAIA,OAAO,MAAMC,UAAU,GACrBb,OAOC,IAEDb,OAAO,CAACgB,aAAa,CAAC,CAACW,QAAQ,EAAET,KAAK,KAAI;EACxC,MAAMU,MAAM,GAAGf,OAAO,CAACQ,QAAQ,EAAE;EACjC,MAAMQ,IAAI,GAAGxB,UAAU,CAACyB,IAAI,CAAoDC,SAAS,CAAC;EAE1F,OAAOpB,gBAAgB,CAAC;IACtBqB,IAAI,EAAEL,QAAQ;IACdM,QAAQ,EAAEL,MAAM;IAChBN,OAAO,EAAET,OAAO,CAACS,OAAO,IAAIC,cAAqB;IACjDW,SAAS,EAAErB,OAAO,CAACqB,SAAS;IAC5BC,QAAQ,EAAEtB,OAAO,CAACsB;GACnB,CAAC,CAACC,IAAI,CACLnC,MAAM,CAACoC,UAAU,CAAEC,KAAK,IAAI;IAC1B,IAAIhC,IAAI,CAACiC,WAAW,CAACD,KAAK,CAAC,EAAE,OAAOrC,MAAM,CAACuC,IAAI;IAC/CX,IAAI,CAACY,OAAO,GAAGvC,IAAI,CAACwC,SAAS,CAACJ,KAAyC,CAAC;IACxE,OAAOrC,MAAM,CAACuC,IAAI;EACpB,CAAC,CAAC,EACFvC,MAAM,CAAC0C,MAAM,CAACzB,KAAK,CAAC,EACpBjB,MAAM,CAAC2C,OAAO,CAAC,MACbzB,oBAAoB,CAAC;IACnBD,KAAK;IACLW,IAAI;IACJT,QAAQ,EAAEQ,MAAM;IAChBN,OAAO,EAAET,OAAO,CAACS,OAAO,IAAIC,cAAqB;IACjDC,SAAS,EAAEX,OAAO,CAACW;GACpB,CAAC,CACH,CACF;AACH,CAAC,CAAC;AAEJ;;;;AAIA,OAAO,MAAMqB,iBAAiB,gBA8B1BzC,IAAI,CAAC,CAAC,EAAE,CACV0C,IAA4B,EAC5BjC,OAOC,KAEDJ,MAAM,CAACsC,wBAAwB,CAC7BD,IAAI,EACJpB,UAAU,CAACb,OAAO,CAAC,CACpB,CAAC;AAEJ;;;;AAIA,OAAO,MAAMmC,iBAAiB,gBAW1B5C,IAAI,CAAC,CAAC,EAAE,CACV0C,IAA8C,EAC9ClB,MAAuB,KACkCiB,iBAAiB,CAACC,IAAI,EAAE;EAAEzB,QAAQ,EAAEO;AAAM,CAAE,CAAC,CAAC;AAEzG;;;;AAIA,OAAO,MAAMqB,UAAU,GAAUC,MAAgD,IAC/EjD,MAAM,CAACkD,GAAG,CACRlD,MAAM,CAACmD,QAAQ,EAAK,EACnBC,OAAO,IAAK,IAAIC,aAAa,CAACD,OAAO,EAAEH,MAAM,CAAC,CAChD;AAEH;;;;AAIA,OAAO,MAAMK,eAAe,GAAOL,MAAoD,IACrF,IAAII,aAAa,CACf9C,UAAU,CAACgD,KAAK,EAAE,EAClBN,MAAM,CACP;AAEH;;;;AAIA,OAAO,MAAMO,QAAQ,GAAGA,CACtBrC,QAAmD,EACnDP,OAIC,KAC2B;EAC5B,MAAM6C,cAAc,GAAG7C,OAAO,EAAE8C,QAAQ,GAAGC,MAAM,CAAC/C,OAAO,CAAC8C,QAAQ,CAAC,GAAG5B,SAAS;EAC/E,MAAMT,OAAO,GAAGT,OAAO,EAAES,OAAO,IAAIC,cAAc;EAClD,MAAMY,QAAQ,GAAGtB,OAAO,EAAEsB,QAAQ,IAAI,MAAM;EAC5C,OAAOlC,MAAM,CAAC4D,QAAQ,CAAEC,MAAM,IAAI;IAChC,MAAMZ,MAAM,GAAG9B,QAAQ,EAAc;IACrC8B,MAAM,CAACa,WAAW,CAAC5B,QAAQ,CAAC;IAE5Be,MAAM,CAACc,IAAI,CAAC,OAAO,EAAGC,GAAG,IAAI;MAC3B,IAAI,QAAQ,IAAIf,MAAM,IAAI,CAACA,MAAM,CAACgB,MAAM,EAAE;QACxChB,MAAM,CAACiB,OAAO,EAAE;MAClB;MACAL,MAAM,CAAC7D,MAAM,CAACmE,IAAI,CAAC9C,OAAO,CAAC2C,GAAG,CAAM,CAAC,CAAC;IACxC,CAAC,CAAC;IACFf,MAAM,CAACc,IAAI,CAAC,OAAO,EAAGC,GAAG,IAAI;MAC3BH,MAAM,CAAC7D,MAAM,CAACmE,IAAI,CAAC9C,OAAO,CAAC2C,GAAG,CAAM,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,IAAII,MAAM,GAAG,EAAE;IACf,IAAIC,KAAK,GAAG,CAAC;IACbpB,MAAM,CAACc,IAAI,CAAC,KAAK,EAAE,MAAK;MACtBF,MAAM,CAAC7D,MAAM,CAACsE,OAAO,CAACF,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC;IACFnB,MAAM,CAACsB,EAAE,CAAC,MAAM,EAAGC,KAAK,IAAI;MAC1BJ,MAAM,IAAII,KAAK;MACfH,KAAK,IAAII,MAAM,CAACC,UAAU,CAACF,KAAK,CAAC;MACjC,IAAIf,cAAc,IAAIY,KAAK,GAAGZ,cAAc,EAAE;QAC5CI,MAAM,CAAC7D,MAAM,CAACmE,IAAI,CAAC9C,OAAO,CAAC,IAAIsD,KAAK,CAAC,mBAAmB,CAAC,CAAM,CAAC,CAAC;MACnE;IACF,CAAC,CAAC;IACF,OAAO3E,MAAM,CAAC4E,IAAI,CAAC,MAAK;MACtB,IAAI,QAAQ,IAAI3B,MAAM,IAAI,CAACA,MAAM,CAACgB,MAAM,EAAE;QACxChB,MAAM,CAACiB,OAAO,EAAE;MAClB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;AAIA,OAAO,MAAMW,aAAa,GAAGA,CAC3B1D,QAAmD,EACnDP,OAGC,KACgC;EACjC,MAAM6C,cAAc,GAAG7C,OAAO,EAAE8C,QAAQ,GAAGC,MAAM,CAAC/C,OAAO,CAAC8C,QAAQ,CAAC,GAAG5B,SAAS;EAC/E,MAAMT,OAAO,GAAGT,OAAO,EAAES,OAAO,IAAIC,cAAc;EAClD,OAAOtB,MAAM,CAAC4D,QAAQ,CAAEC,MAAM,IAAI;IAChC,MAAMZ,MAAM,GAAG9B,QAAQ,EAAc;IACrC,IAAI2D,MAAM,GAAGL,MAAM,CAACM,KAAK,CAAC,CAAC,CAAC;IAC5B,IAAIV,KAAK,GAAG,CAAC;IACbpB,MAAM,CAACc,IAAI,CAAC,OAAO,EAAGC,GAAG,IAAI;MAC3B,IAAI,QAAQ,IAAIf,MAAM,IAAI,CAACA,MAAM,CAACgB,MAAM,EAAE;QACxChB,MAAM,CAACiB,OAAO,EAAE;MAClB;MACAL,MAAM,CAAC7D,MAAM,CAACmE,IAAI,CAAC9C,OAAO,CAAC2C,GAAG,CAAM,CAAC,CAAC;IACxC,CAAC,CAAC;IACFf,MAAM,CAACc,IAAI,CAAC,KAAK,EAAE,MAAK;MACtB,IAAIe,MAAM,CAACA,MAAM,CAACJ,UAAU,KAAKI,MAAM,CAACJ,UAAU,EAAE;QAClD,OAAOb,MAAM,CAAC7D,MAAM,CAACsE,OAAO,CAACQ,MAAM,CAACA,MAAM,CAAC,CAAC;MAC9C;MACAjB,MAAM,CAAC7D,MAAM,CAACsE,OAAO,CAACQ,MAAM,CAACA,MAAM,CAACE,KAAK,CAACF,MAAM,CAACG,UAAU,EAAEH,MAAM,CAACG,UAAU,GAAGH,MAAM,CAACJ,UAAU,CAAC,CAAC,CAAC;IACvG,CAAC,CAAC;IACFzB,MAAM,CAACsB,EAAE,CAAC,MAAM,EAAGC,KAAK,IAAI;MAC1BM,MAAM,GAAGL,MAAM,CAACS,MAAM,CAAC,CAACJ,MAAM,EAAEN,KAAK,CAAC,CAAC;MACvCH,KAAK,IAAIG,KAAK,CAACW,MAAM;MACrB,IAAI1B,cAAc,IAAIY,KAAK,GAAGZ,cAAc,EAAE;QAC5CI,MAAM,CAAC7D,MAAM,CAACmE,IAAI,CAAC9C,OAAO,CAAC,IAAIsD,KAAK,CAAC,mBAAmB,CAAC,CAAM,CAAC,CAAC;MACnE;IACF,CAAC,CAAC;IACF,OAAO3E,MAAM,CAAC4E,IAAI,CAAC,MAAK;MACtB,IAAI,QAAQ,IAAI3B,MAAM,IAAI,CAACA,MAAM,CAACgB,MAAM,EAAE;QACxChB,MAAM,CAACiB,OAAO,EAAE;MAClB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;AAIA,OAAO,MAAMkB,YAAY,GAAGA,CAC1BjE,QAAmD,EACnDP,OAGC,KACgCZ,MAAM,CAACkD,GAAG,CAAC2B,aAAa,CAAC1D,QAAQ,EAAEP,OAAO,CAAC,EAAGkE,MAAM,IAAK,IAAIO,UAAU,CAACP,MAAM,CAAC,CAAC;AAEnH;AACA;AACA;AAEA,MAAM5D,oBAAoB,GAAUN,OAOnC,IAAI;EACH,MAAMO,QAAQ,GAAGP,OAAO,CAACO,QAAoB;EAC7C,MAAMK,WAAW,GAAGZ,OAAO,CAACY,WAAW,IAAI,IAAI;EAC/C,MAAMI,IAAI,GAAGhB,OAAO,CAACgB,IAAI,IAAIxB,UAAU,CAACyB,IAAI,CAACC,SAAS,CAAC;EACvD,MAAMwD,KAAK,GAAGtF,MAAM,CAACuF,eAAe,CAAC,KAAK,CAAC;EAC3C,SAASC,UAAUA,CAAA;IACjBF,KAAK,CAACG,UAAU,EAAE;EACpB;EACA,SAASpE,OAAOA,CAACqE,KAAc;IAC7B9D,IAAI,CAACY,OAAO,GAAGvC,IAAI,CAACkE,IAAI,CAACvD,OAAO,CAACS,OAAO,CAACqE,KAAK,CAAC,CAAC;IAChDJ,KAAK,CAACG,UAAU,EAAE;EACpB;EACA,SAASE,KAAKA,CAAA;IACZ/D,IAAI,CAACY,OAAO,GAAGvC,IAAI,CAACkE,IAAI,CAACrE,KAAK,CAAC8F,IAAI,EAAE,CAAC;IACtCN,KAAK,CAACG,UAAU,EAAE;EACpB;EACAtE,QAAQ,CAACoD,EAAE,CAAC,UAAU,EAAEiB,UAAU,CAAC;EACnCrE,QAAQ,CAAC4C,IAAI,CAAC,OAAO,EAAE1C,OAAO,CAAC;EAC/BF,QAAQ,CAAC4C,IAAI,CAAC,KAAK,EAAE4B,KAAK,CAAC;EAE3B,MAAM5D,IAAI,GAAG/B,MAAM,CAAC6F,OAAO,CAAC,SAASC,IAAIA,CAAA;IACvC,IAAIC,IAAI,GAAGnF,OAAO,CAACO,QAAQ,CAAC6E,IAAI,CAACpF,OAAO,CAACW,SAAS,CAAa;IAC/D,IAAIwE,IAAI,KAAK,IAAI,EAAE;MACjB,IAAInE,IAAI,CAACY,OAAO,EAAE;QAChB,OAAOZ,IAAI,CAACY,OAAO;MACrB;MACA8C,KAAK,CAACW,WAAW,EAAE;MACnB,OAAOjG,MAAM,CAAC2C,OAAO,CAAC2C,KAAK,CAACY,KAAK,EAAEJ,IAAI,CAAC;IAC1C;IACA,MAAMtB,KAAK,GAAG3E,GAAG,CAACsG,EAAE,CAACJ,IAAS,CAAC;IAC/B,OAAO,IAAI,EAAE;MACXA,IAAI,GAAGnF,OAAO,CAACO,QAAQ,CAAC6E,IAAI,CAACpF,OAAO,CAACW,SAAS,CAAC;MAC/C,IAAIwE,IAAI,KAAK,IAAI,EAAE;MACnBvB,KAAK,CAAC4B,IAAI,CAACL,IAAI,CAAC;IAClB;IACA,OAAO/F,MAAM,CAACsE,OAAO,CAACE,KAAK,CAAC;EAC9B,CAAC,CAAC;EAEF,OAAOxE,MAAM,CAACqG,EAAE,CACd/F,KAAK,CAACgG,YAAY,CAChB1F,OAAO,CAACK,KAAK,EACbjB,MAAM,CAAC4E,IAAI,CAAC,MAAK;IACfzD,QAAQ,CAACoF,GAAG,CAAC,UAAU,EAAEf,UAAU,CAAC;IACpCrE,QAAQ,CAACoF,GAAG,CAAC,OAAO,EAAElF,OAAO,CAAC;IAC9BF,QAAQ,CAACoF,GAAG,CAAC,KAAK,EAAEZ,KAAK,CAAC;IAC1B,IAAInE,WAAW,IAAI,QAAQ,IAAIZ,OAAO,CAACO,QAAQ,IAAI,CAACP,OAAO,CAACO,QAAQ,CAAC8C,MAAM,EAAE;MAC3ErD,OAAO,CAACO,QAAQ,CAAC+C,OAAO,EAAE;IAC5B;EACF,CAAC,CAAC,CACH,EACDnC,IAAI,CACL;AACH,CAAC;AAED,MAAMsB,aAAoB,SAAQ5C,QAAQ;EACvB+F,SAAS;EAClBC,KAAK,GAAqC3E,SAAS;EAE3D4E,YACEtD,OAAiC,EACjCH,MAAgD;IAEhD,KAAK,CAAC,EAAE,CAAC;IACT,IAAI,CAACuD,SAAS,GAAGxG,MAAM,CAACuF,eAAe,CAAC,KAAK,CAAC;IAC9C,IAAI,CAACkB,KAAK,GAAGjG,MAAM,CAACmG,eAAe,CAAC1D,MAAM,EAAGuB,KAAK,IAChD,IAAI,CAACgC,SAAS,CAACI,QAAQ,CAAC5G,MAAM,CAAC4E,IAAI,CAAC,MAAK;MACvC,IAAI,CAAC4B,SAAS,CAACP,WAAW,EAAE;MAC5B,KAAK,IAAIY,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGrC,KAAK,CAACW,MAAM,EAAE0B,CAAC,EAAE,EAAE;QACrC,MAAMd,IAAI,GAAGvB,KAAK,CAACqC,CAAC,CAAC;QACrB,IAAI,OAAOd,IAAI,KAAK,QAAQ,EAAE;UAC5B,IAAI,CAACK,IAAI,CAACL,IAAI,EAAE,MAAM,CAAC;QACzB,CAAC,MAAM;UACL,IAAI,CAACK,IAAI,CAACL,IAAI,CAAC;QACjB;MACF;IACF,CAAC,CAAC,CAAC,CAAC,CAAC5D,IAAI,CACP,IAAI,CAACqE,SAAS,CAACI,QAAQ,EACvB5G,MAAM,CAAC8G,eAAe,CAAC1D,OAAO,CAAC,EAC/BpD,MAAM,CAAC+G,OAAO,CACf;IACH,IAAI,CAACN,KAAK,CAACO,WAAW,CAAEpF,IAAI,IAAI;MAC9B,IAAI,CAAC6E,KAAK,GAAG3E,SAAS;MACtB,IAAI7B,IAAI,CAACgH,SAAS,CAACrF,IAAI,CAAC,EAAE;QACxB,IAAI,CAACwE,IAAI,CAAC,IAAI,CAAC;MACjB,CAAC,MAAM;QACL,IAAI,CAAClC,OAAO,CAACpE,KAAK,CAACoH,MAAM,CAACtF,IAAI,CAACS,KAAK,CAAQ,CAAC;MAC/C;IACF,CAAC,CAAC;EACJ;EAES8E,KAAKA,CAACC,KAAa;IAC1B,IAAI,CAACZ,SAAS,CAACf,UAAU,EAAE;EAC7B;EAES4B,QAAQA,CAAC3B,KAAmB,EAAE9B,QAAoD;IACzF,IAAI,CAAC,IAAI,CAAC6C,KAAK,EAAE;MACf,OAAO7C,QAAQ,CAAC8B,KAAK,CAAC;IACxB;IACA1F,MAAM,CAAC+G,OAAO,CAAC7G,KAAK,CAACoH,SAAS,CAAC,IAAI,CAACb,KAAK,CAAC,CAAC,CAACO,WAAW,CAAEpF,IAAI,IAAI;MAC/DgC,QAAQ,CAAChC,IAAI,CAAC2F,IAAI,KAAK,SAAS,GAAGzH,KAAK,CAACoH,MAAM,CAACtF,IAAI,CAACS,KAAK,CAAQ,GAAGqD,KAAK,CAAC;IAC7E,CAAC,CAAC;EACJ;;AAGF,MAAMpE,cAAc,GAAIoE,KAAc,IAAyB,IAAI5F,KAAK,CAAC0H,YAAY,CAAC9B,KAAK,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import type * as Scope from "effect/Scope";
4
+ import * as Terminal from "effect/Terminal";
5
+ /**
6
+ * @since 1.0.0
7
+ * @category constructors
8
+ */
9
+ export declare const make: (shouldQuit?: (input: Terminal.UserInput) => boolean) => Effect.Effect<Terminal.Terminal, never, Scope.Scope>;
10
+ /**
11
+ * @since 1.0.0
12
+ * @category layers
13
+ */
14
+ export declare const layer: Layer.Layer<Terminal.Terminal>;
15
+ //# sourceMappingURL=NodeTerminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeTerminal.d.ts","sourceRoot":"","sources":["../src/NodeTerminal.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAKrC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAG3C;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,CACjB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,KAAK,OAAO,KAChD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAgFvD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAA4D,CAAA"}
@@ -1,14 +1,15 @@
1
- import * as Error from "@effect/platform/Error";
2
- import * as Terminal from "@effect/platform/Terminal";
3
1
  import * as Effect from "effect/Effect";
4
- import * as Exit from "effect/Exit";
5
2
  import * as Layer from "effect/Layer";
6
- import * as Mailbox from "effect/Mailbox";
7
- import * as Option from "effect/Option";
3
+ import { badArgument } from "effect/PlatformError";
4
+ import * as Predicate from "effect/Predicate";
5
+ import * as Queue from "effect/Queue";
8
6
  import * as RcRef from "effect/RcRef";
7
+ import * as Terminal from "effect/Terminal";
9
8
  import * as readline from "node:readline";
10
- const defaultShouldQuit = input => input.key.ctrl && (input.key.name === "c" || input.key.name === "d");
11
- /** @internal */
9
+ /**
10
+ * @since 1.0.0
11
+ * @category constructors
12
+ */
12
13
  export const make = /*#__PURE__*/Effect.fnUntraced(function* (shouldQuit = defaultShouldQuit) {
13
14
  const stdin = process.stdin;
14
15
  const stdout = process.stdout;
@@ -34,10 +35,10 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (shouldQuit = defau
34
35
  const columns = Effect.sync(() => stdout.columns ?? 0);
35
36
  const readInput = Effect.gen(function* () {
36
37
  yield* RcRef.get(rlRef);
37
- const mailbox = yield* Mailbox.make();
38
+ const queue = yield* Queue.make();
38
39
  const handleKeypress = (s, k) => {
39
40
  const userInput = {
40
- input: Option.fromNullable(s),
41
+ input: s,
41
42
  key: {
42
43
  name: k.name ?? "",
43
44
  ctrl: !!k.ctrl,
@@ -45,35 +46,41 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (shouldQuit = defau
45
46
  shift: !!k.shift
46
47
  }
47
48
  };
48
- mailbox.unsafeOffer(userInput);
49
+ Queue.offerUnsafe(queue, userInput);
49
50
  if (shouldQuit(userInput)) {
50
- mailbox.unsafeDone(Exit.void);
51
+ Queue.endUnsafe(queue);
51
52
  }
52
53
  };
53
54
  yield* Effect.addFinalizer(() => Effect.sync(() => stdin.off("keypress", handleKeypress)));
54
55
  stdin.on("keypress", handleKeypress);
55
- return mailbox;
56
+ return queue;
56
57
  });
57
- const readLine = RcRef.get(rlRef).pipe(Effect.flatMap(readlineInterface => Effect.async(resume => {
58
+ const readLine = Effect.scoped(Effect.flatMap(RcRef.get(rlRef), readlineInterface => Effect.callback(resume => {
58
59
  const onLine = line => resume(Effect.succeed(line));
59
60
  readlineInterface.once("line", onLine);
60
61
  return Effect.sync(() => readlineInterface.off("line", onLine));
61
- })), Effect.scoped);
62
- const display = prompt => Effect.uninterruptible(Effect.async(resume => {
63
- stdout.write(prompt, err => err ? resume(Effect.fail(new Error.BadArgument({
62
+ })));
63
+ const display = prompt => Effect.uninterruptible(Effect.callback(resume => {
64
+ stdout.write(prompt, err => Predicate.isNullish(err) ? resume(Effect.void) : resume(Effect.fail(badArgument({
64
65
  module: "Terminal",
65
66
  method: "display",
66
67
  description: "Failed to write prompt to stdout",
67
68
  cause: err
68
- }))) : resume(Effect.void));
69
+ }))));
69
70
  }));
70
- return Terminal.Terminal.of({
71
+ return Terminal.make({
71
72
  columns,
72
73
  readInput,
73
74
  readLine,
74
75
  display
75
76
  });
76
77
  });
77
- /** @internal */
78
- export const layer = /*#__PURE__*/Layer.scoped(Terminal.Terminal, /*#__PURE__*/make(defaultShouldQuit));
79
- //# sourceMappingURL=terminal.js.map
78
+ /**
79
+ * @since 1.0.0
80
+ * @category layers
81
+ */
82
+ export const layer = /*#__PURE__*/Layer.effect(Terminal.Terminal, /*#__PURE__*/make(defaultShouldQuit));
83
+ function defaultShouldQuit(input) {
84
+ return input.key.ctrl && (input.key.name === "c" || input.key.name === "d");
85
+ }
86
+ //# sourceMappingURL=NodeTerminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeTerminal.js","names":["Effect","Layer","badArgument","Predicate","Queue","RcRef","Terminal","readline","make","fnUntraced","shouldQuit","defaultShouldQuit","stdin","process","stdout","rlRef","acquire","acquireRelease","sync","rl","createInterface","input","escapeCodeTimeout","emitKeypressEvents","isTTY","setRawMode","close","columns","readInput","gen","get","queue","handleKeypress","s","k","userInput","key","name","ctrl","meta","shift","offerUnsafe","endUnsafe","addFinalizer","off","on","readLine","scoped","flatMap","readlineInterface","callback","resume","onLine","line","succeed","once","display","prompt","uninterruptible","write","err","isNullish","void","fail","module","method","description","cause","layer","effect"],"sources":["../src/NodeTerminal.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { SystemError } from "@effect/platform/Error";
1
+ import * as PlatformError from "effect/PlatformError";
2
2
  /** @internal */
3
3
  export const handleErrnoException = (module, method) => (err, [path]) => {
4
4
  let reason = "Unknown";
@@ -25,14 +25,13 @@ export const handleErrnoException = (module, method) => (err, [path]) => {
25
25
  reason = "BadResource";
26
26
  break;
27
27
  }
28
- return new SystemError({
29
- reason,
28
+ return PlatformError.systemError({
29
+ kind: reason,
30
30
  module,
31
31
  method,
32
32
  pathOrDescriptor: path,
33
33
  syscall: err.syscall,
34
- description: err.message,
35
34
  cause: err
36
35
  });
37
36
  };
38
- //# sourceMappingURL=error.js.map
37
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["PlatformError","handleErrnoException","module","method","err","path","reason","code","systemError","kind","pathOrDescriptor","syscall","cause"],"sources":["../../src/internal/utils.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,aAAa,MAAM,sBAAsB;AAGrD;AACA,OAAO,MAAMC,oBAAoB,GAAGA,CAACC,MAA6B,EAAEC,MAAc,KAClF,CACEC,GAA0B,EAC1B,CAACC,IAAI,CAAiD,KACvB;EAC/B,IAAIC,MAAM,GAAoB,SAAS;EAEvC,QAAQF,GAAG,CAACG,IAAI;IACd,KAAK,QAAQ;MACXD,MAAM,GAAG,UAAU;MACnB;IAEF,KAAK,QAAQ;MACXA,MAAM,GAAG,kBAAkB;MAC3B;IAEF,KAAK,QAAQ;MACXA,MAAM,GAAG,eAAe;MACxB;IAEF,KAAK,QAAQ;MACXA,MAAM,GAAG,aAAa;MACtB;IAEF,KAAK,SAAS;MACZA,MAAM,GAAG,aAAa;MACtB;IAEF,KAAK,OAAO;MACVA,MAAM,GAAG,MAAM;MACf;IAEF,KAAK,OAAO;MACVA,MAAM,GAAG,aAAa;MACtB;EACJ;EAEA,OAAON,aAAa,CAACQ,WAAW,CAAC;IAC/BC,IAAI,EAAEH,MAAM;IACZJ,MAAM;IACNC,MAAM;IACNO,gBAAgB,EAAEL,IAAuB;IACzCM,OAAO,EAAEP,GAAG,CAACO,OAAO;IACpBC,KAAK,EAAER;GACR,CAAC;AACJ,CAAC","ignoreList":[]}