@effect/platform-node-shared 4.0.0-beta.10 → 4.0.0-beta.101

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 (69) hide show
  1. package/README.md +3 -3
  2. package/dist/NodeChildProcessSpawner.d.ts +19 -5
  3. package/dist/NodeChildProcessSpawner.d.ts.map +1 -1
  4. package/dist/NodeChildProcessSpawner.js +99 -29
  5. package/dist/NodeChildProcessSpawner.js.map +1 -1
  6. package/dist/NodeClusterSocket.d.ts +10 -4
  7. package/dist/NodeClusterSocket.d.ts.map +1 -1
  8. package/dist/NodeClusterSocket.js +22 -8
  9. package/dist/NodeClusterSocket.js.map +1 -1
  10. package/dist/NodeCrypto.d.ts +27 -0
  11. package/dist/NodeCrypto.d.ts.map +1 -0
  12. package/dist/NodeCrypto.js +55 -0
  13. package/dist/NodeCrypto.js.map +1 -0
  14. package/dist/NodeFileSystem.d.ts +5 -2
  15. package/dist/NodeFileSystem.d.ts.map +1 -1
  16. package/dist/NodeFileSystem.js +42 -26
  17. package/dist/NodeFileSystem.js.map +1 -1
  18. package/dist/NodePath.d.ts +15 -6
  19. package/dist/NodePath.d.ts.map +1 -1
  20. package/dist/NodePath.js +23 -7
  21. package/dist/NodePath.js.map +1 -1
  22. package/dist/NodeRuntime.d.ts +26 -7
  23. package/dist/NodeRuntime.d.ts.map +1 -1
  24. package/dist/NodeRuntime.js +8 -8
  25. package/dist/NodeRuntime.js.map +1 -1
  26. package/dist/NodeSink.d.ts +33 -4
  27. package/dist/NodeSink.d.ts.map +1 -1
  28. package/dist/NodeSink.js +31 -4
  29. package/dist/NodeSink.js.map +1 -1
  30. package/dist/NodeSocket.d.ts +41 -10
  31. package/dist/NodeSocket.d.ts.map +1 -1
  32. package/dist/NodeSocket.js +39 -16
  33. package/dist/NodeSocket.js.map +1 -1
  34. package/dist/NodeSocketServer.d.ts +25 -8
  35. package/dist/NodeSocketServer.d.ts.map +1 -1
  36. package/dist/NodeSocketServer.js +29 -12
  37. package/dist/NodeSocketServer.js.map +1 -1
  38. package/dist/NodeStdio.d.ts +6 -5
  39. package/dist/NodeStdio.d.ts.map +1 -1
  40. package/dist/NodeStdio.js +23 -7
  41. package/dist/NodeStdio.js.map +1 -1
  42. package/dist/NodeStream.d.ts +76 -20
  43. package/dist/NodeStream.d.ts.map +1 -1
  44. package/dist/NodeStream.js +71 -24
  45. package/dist/NodeStream.js.map +1 -1
  46. package/dist/NodeTerminal.d.ts +9 -2
  47. package/dist/NodeTerminal.d.ts.map +1 -1
  48. package/dist/NodeTerminal.js +13 -3
  49. package/dist/NodeTerminal.js.map +1 -1
  50. package/dist/index.d.ts +52 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +53 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/internal/utils.js.map +1 -1
  55. package/package.json +9 -9
  56. package/src/NodeChildProcessSpawner.ts +143 -46
  57. package/src/NodeClusterSocket.ts +22 -8
  58. package/src/NodeCrypto.ts +60 -0
  59. package/src/NodeFileSystem.ts +56 -28
  60. package/src/NodePath.ts +23 -7
  61. package/src/NodeRuntime.ts +28 -13
  62. package/src/NodeSink.ts +40 -4
  63. package/src/NodeSocket.ts +47 -17
  64. package/src/NodeSocketServer.ts +39 -13
  65. package/src/NodeStdio.ts +41 -23
  66. package/src/NodeStream.ts +92 -31
  67. package/src/NodeTerminal.ts +22 -4
  68. package/src/index.ts +65 -0
  69. package/src/internal/utils.ts +1 -1
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
- # `@effect/platform-node`
1
+ # `@effect/platform-node-shared`
2
2
 
3
- Provides Node.js-specific implementations for the abstractions defined in [`@effect/platform`](https://github.com/Effect-TS/effect/tree/main/packages/platform), allowing you to write platform-independent code that integrates smoothly with Node.js.
3
+ Provides shared Node.js-compatible implementations used by the Effect Node.js and Bun platform packages.
4
4
 
5
5
  ## Documentation
6
6
 
7
- - **API Reference**: [View the full documentation](https://effect-ts.github.io/effect/docs/platform-node).
7
+ - **API Reference**: [View the full documentation](https://effect-ts.github.io/effect/docs/platform-node-shared).
@@ -1,5 +1,19 @@
1
1
  /**
2
- * Node.js implementation of `ChildProcessSpawner`.
2
+ * Shared Node.js implementation of the child process spawner service.
3
+ *
4
+ * This module adapts `node:child_process.spawn` to the Effect
5
+ * `ChildProcessSpawner` service. Provide {@link layer} to run `ChildProcess`
6
+ * commands in Node-compatible runtimes: commands get scoped process handles
7
+ * with stdin sinks, stdout and stderr streams, exit-code waiting,
8
+ * interruption-time cleanup, process killing, and custom file-descriptor pipes.
9
+ *
10
+ * The implementation sits below the command-building API. It validates and
11
+ * resolves `cwd` through the Effect `FileSystem` and `Path` services,
12
+ * translates Node errno failures to `PlatformError`, and uses scopes to
13
+ * terminate referenced children when the owning effect is interrupted or
14
+ * finalized. Pipelines are flattened by {@link flattenCommand} and spawned one
15
+ * process at a time, wiring the selected source stream (`stdout`, `stderr`,
16
+ * `all`, or `fdN`) to the destination `stdin` or `fdN`.
3
17
  *
4
18
  * @since 4.0.0
5
19
  */
@@ -10,17 +24,17 @@ import * as Path from "effect/Path";
10
24
  import * as ChildProcess from "effect/unstable/process/ChildProcess";
11
25
  import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner";
12
26
  /**
13
- * Layer providing the `NodeChildProcessSpawner` implementation.
27
+ * Layer that provides the `NodeChildProcessSpawner` implementation.
14
28
  *
29
+ * @category layers
15
30
  * @since 4.0.0
16
- * @category Layers
17
31
  */
18
32
  export declare const layer: Layer.Layer<ChildProcessSpawner, never, FileSystem.FileSystem | Path.Path>;
19
33
  /**
20
34
  * Result of flattening a pipeline of commands.
21
35
  *
36
+ * @category models
22
37
  * @since 4.0.0
23
- * @category Models
24
38
  */
25
39
  export interface FlattenedPipeline {
26
40
  readonly commands: Arr.NonEmptyReadonlyArray<ChildProcess.StandardCommand>;
@@ -30,8 +44,8 @@ export interface FlattenedPipeline {
30
44
  * Flattens a `Command` into an array of `StandardCommand`s along with pipe
31
45
  * options for each connection.
32
46
  *
47
+ * @category transforming
33
48
  * @since 4.0.0
34
- * @category Utilities
35
49
  */
36
50
  export declare const flattenCommand: (command: ChildProcess.Command) => FlattenedPipeline;
37
51
  //# sourceMappingURL=NodeChildProcessSpawner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeChildProcessSpawner.d.ts","sourceRoot":"","sources":["../src/NodeChildProcessSpawner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AAIxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAMnC,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAA;AAEpE,OAAO,EAAE,mBAAmB,EAAmC,MAAM,6CAA6C,CAAA;AAqhBlH;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,mBAAmB,EACnB,KAAK,EACL,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CACQ,CAAA;AAM3C;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;IAC1E,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;CAC9D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,SAAS,YAAY,CAAC,OAAO,KAC5B,iBAoCF,CAAA"}
1
+ {"version":3,"file":"NodeChildProcessSpawner.d.ts","sourceRoot":"","sources":["../src/NodeChildProcessSpawner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AAIxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAMnC,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAA;AAEpE,OAAO,EACL,mBAAmB,EAKpB,MAAM,6CAA6C,CAAA;AAkmBpD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,mBAAmB,EACnB,KAAK,EACL,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CACQ,CAAA;AAM3C;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;IAC1E,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;CAC9D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,YAChB,YAAY,CAAC,OAAO,KAC5B,iBAoCF,CAAA"}
@@ -8,8 +8,9 @@ import * as Predicate from "effect/Predicate";
8
8
  import * as Sink from "effect/Sink";
9
9
  import * as Stream from "effect/Stream";
10
10
  import * as ChildProcess from "effect/unstable/process/ChildProcess";
11
- import { ChildProcessSpawner, ExitCode, makeHandle, ProcessId } from "effect/unstable/process/ChildProcessSpawner";
11
+ import { ChildProcessSpawner, ExitCode, make as makeSpawner, makeHandle, ProcessId } from "effect/unstable/process/ChildProcessSpawner";
12
12
  import * as NodeChildProcess from "node:child_process";
13
+ import { PassThrough } from "node:stream";
13
14
  import { handleErrnoException } from "./internal/utils.js";
14
15
  import * as NodeSink from "./NodeSink.js";
15
16
  import * as NodeStream from "./NodeStream.js";
@@ -164,8 +165,11 @@ const make = /*#__PURE__*/Effect.gen(function* () {
164
165
  // Create a stream to read from for output file descriptors
165
166
  let stream = Stream.empty;
166
167
  if (nodeStream && "read" in nodeStream) {
168
+ const passThrough = new PassThrough();
169
+ nodeStream.on("error", error => passThrough.destroy(error));
170
+ nodeStream.pipe(passThrough);
167
171
  stream = NodeStream.fromReadable({
168
- evaluate: () => nodeStream,
172
+ evaluate: () => passThrough,
169
173
  onError: error => toPlatformError(`fromReadable(fd${fd})`, toError(error), command)
170
174
  });
171
175
  }
@@ -202,14 +206,24 @@ const make = /*#__PURE__*/Effect.gen(function* () {
202
206
  return Effect.succeed(sink);
203
207
  });
204
208
  const setupChildOutputStreams = (command, childProcess, stdoutConfig, stderrConfig) => {
205
- let stdout = childProcess.stdout ? NodeStream.fromReadable({
206
- evaluate: () => childProcess.stdout,
207
- onError: error => toPlatformError("fromReadable(stdout)", toError(error), command)
208
- }) : Stream.empty;
209
- let stderr = childProcess.stderr ? NodeStream.fromReadable({
210
- evaluate: () => childProcess.stderr,
211
- onError: error => toPlatformError("fromReadable(stderr)", toError(error), command)
212
- }) : Stream.empty;
209
+ let stdout = childProcess.stdout ? (() => {
210
+ const passThrough = new PassThrough();
211
+ childProcess.stdout.on("error", error => passThrough.destroy(error));
212
+ childProcess.stdout.pipe(passThrough);
213
+ return NodeStream.fromReadable({
214
+ evaluate: () => passThrough,
215
+ onError: error => toPlatformError("fromReadable(stdout)", toError(error), command)
216
+ });
217
+ })() : Stream.empty;
218
+ let stderr = childProcess.stderr ? (() => {
219
+ const passThrough = new PassThrough();
220
+ childProcess.stderr.on("error", error => passThrough.destroy(error));
221
+ childProcess.stderr.pipe(passThrough);
222
+ return NodeStream.fromReadable({
223
+ evaluate: () => passThrough,
224
+ onError: error => toPlatformError("fromReadable(stderr)", toError(error), command)
225
+ });
226
+ })() : Stream.empty;
213
227
  if (Sink.isSink(stdoutConfig.stream)) {
214
228
  stdout = Stream.transduce(stdout, stdoutConfig.stream);
215
229
  }
@@ -258,6 +272,19 @@ const make = /*#__PURE__*/Effect.gen(function* () {
258
272
  catch: error => toPlatformError("kill", toError(error), command)
259
273
  });
260
274
  };
275
+ const killProcessGroupOnExit = (childProcess, signal) => {
276
+ if (globalThis.process.platform === "win32") {
277
+ NodeChildProcess.exec(`taskkill /pid ${childProcess.pid} /T /F`, () => {
278
+ // ignore errors during best-effort cleanup
279
+ });
280
+ return;
281
+ }
282
+ try {
283
+ globalThis.process.kill(-childProcess.pid, signal);
284
+ } catch {
285
+ // ignore errors during best-effort cleanup
286
+ }
287
+ };
261
288
  const killProcess = (command, childProcess, signal) => Effect.suspend(() => {
262
289
  const killed = childProcess.kill(signal);
263
290
  if (!killed) {
@@ -270,7 +297,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
270
297
  const killSignal = options?.killSignal ?? "SIGTERM";
271
298
  return Predicate.isUndefined(options?.forceKillAfter) ? kill(command, childProcess, killSignal) : Effect.timeoutOrElse(kill(command, childProcess, killSignal), {
272
299
  duration: options.forceKillAfter,
273
- onTimeout: () => kill(command, childProcess, "SIGKILL")
300
+ orElse: () => kill(command, childProcess, "SIGKILL")
274
301
  });
275
302
  };
276
303
  /**
@@ -306,6 +333,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
306
333
  const stdoutConfig = resolveOutputOption(cmd.options, "stdout");
307
334
  const stderrConfig = resolveOutputOption(cmd.options, "stderr");
308
335
  const resolvedAdditionalFds = resolveAdditionalFds(cmd.options);
336
+ let isReferenced = true;
309
337
  const cwd = yield* resolveWorkingDirectory(cmd.options);
310
338
  const env = resolveEnvironment(cmd.options);
311
339
  const stdio = buildStdioArray(stdinConfig, stdoutConfig, stderrConfig, resolvedAdditionalFds);
@@ -327,10 +355,31 @@ const make = /*#__PURE__*/Effect.gen(function* () {
327
355
  }
328
356
  return yield* Effect.void;
329
357
  }
358
+ if (!isReferenced) {
359
+ return yield* Effect.void;
360
+ }
330
361
  // Process is still running, kill it
331
- return yield* killWithTimeout((command, childProcess, signal) => Effect.catch(killProcessGroup(command, childProcess, signal), () => killProcess(command, childProcess, signal))).pipe(Effect.andThen(Deferred.await(exitSignal)), Effect.ignore);
362
+ return yield* killWithTimeout((command, childProcess, signal) => killProcessGroup(command, childProcess, signal).pipe(Effect.catch(() => killProcess(command, childProcess, signal)), Effect.andThen(Deferred.await(exitSignal)))).pipe(Effect.ignore);
332
363
  }));
333
364
  const pid = ProcessId(childProcess.pid);
365
+ childProcess.on("exit", code => {
366
+ if (code !== 0 && Predicate.isNotNull(code)) {
367
+ killProcessGroupOnExit(childProcess, cmd.options.killSignal ?? "SIGTERM");
368
+ }
369
+ });
370
+ const reref = Effect.sync(() => {
371
+ if (!isReferenced) {
372
+ childProcess.ref();
373
+ isReferenced = true;
374
+ }
375
+ });
376
+ const unref = Effect.sync(() => {
377
+ if (isReferenced) {
378
+ childProcess.unref();
379
+ isReferenced = false;
380
+ }
381
+ return reref;
382
+ });
334
383
  const stdin = yield* setupChildStdin(cmd, childProcess, stdinConfig);
335
384
  const {
336
385
  all,
@@ -354,7 +403,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
354
403
  });
355
404
  const kill = options => {
356
405
  const killWithTimeout = withTimeout(childProcess, cmd, options);
357
- return killWithTimeout((command, childProcess, signal) => Effect.catch(killProcessGroup(command, childProcess, signal), () => killProcess(command, childProcess, signal))).pipe(Effect.andThen(Deferred.await(exitSignal)), Effect.asVoid);
406
+ return killWithTimeout((command, childProcess, signal) => killProcessGroup(command, childProcess, signal).pipe(Effect.catch(() => killProcess(command, childProcess, signal)), Effect.andThen(Deferred.await(exitSignal)))).pipe(Effect.asVoid);
358
407
  };
359
408
  return makeHandle({
360
409
  pid,
@@ -366,7 +415,8 @@ const make = /*#__PURE__*/Effect.gen(function* () {
366
415
  stderr,
367
416
  all,
368
417
  getInputFd,
369
- getOutputFd
418
+ getOutputFd,
419
+ unref
370
420
  });
371
421
  }
372
422
  case "PipedCommand":
@@ -376,31 +426,31 @@ const make = /*#__PURE__*/Effect.gen(function* () {
376
426
  pipeOptions
377
427
  } = flattenCommand(cmd);
378
428
  const [root, ...pipeline] = commands;
379
- let handle = spawnCommand(root);
429
+ const handles = [yield* spawnCommand(root)];
380
430
  for (let i = 0; i < pipeline.length; i++) {
381
431
  const command = pipeline[i];
382
432
  const options = pipeOptions[i] ?? {};
383
433
  const stdinConfig = resolveStdinOption(command.options);
384
434
  // Get the appropriate stream from the source based on `from` option
385
- const sourceStream = Stream.unwrap(Effect.map(handle, h => getSourceStream(h, options.from)));
435
+ const sourceStream = Stream.unwrap(Effect.succeed(getSourceStream(handles[handles.length - 1], options.from)));
386
436
  // Determine where to pipe: stdin or custom fd
387
437
  const toOption = options.to ?? "stdin";
388
438
  if (toOption === "stdin") {
389
439
  // Pipe to stdin (default behavior)
390
- handle = spawnCommand(ChildProcess.make(command.command, command.args, {
440
+ handles.push(yield* spawnCommand(ChildProcess.make(command.command, command.args, {
391
441
  ...command.options,
392
442
  stdin: {
393
443
  ...stdinConfig,
394
444
  stream: sourceStream
395
445
  }
396
- }));
446
+ })));
397
447
  } else {
398
448
  // Pipe to custom fd (fd3, fd4, etc.)
399
449
  const fd = ChildProcess.parseFdName(toOption);
400
450
  if (Predicate.isNotUndefined(fd)) {
401
451
  const fdName = ChildProcess.fdName(fd);
402
452
  const existingFds = command.options.additionalFds ?? {};
403
- handle = spawnCommand(ChildProcess.make(command.command, command.args, {
453
+ handles.push(yield* spawnCommand(ChildProcess.make(command.command, command.args, {
404
454
  ...command.options,
405
455
  additionalFds: {
406
456
  ...existingFds,
@@ -409,40 +459,60 @@ const make = /*#__PURE__*/Effect.gen(function* () {
409
459
  stream: sourceStream
410
460
  }
411
461
  }
412
- }));
462
+ })));
413
463
  } else {
414
464
  // Invalid fd name, fall back to stdin
415
- handle = spawnCommand(ChildProcess.make(command.command, command.args, {
465
+ handles.push(yield* spawnCommand(ChildProcess.make(command.command, command.args, {
416
466
  ...command.options,
417
467
  stdin: {
418
468
  ...stdinConfig,
419
469
  stream: sourceStream
420
470
  }
421
- }));
471
+ })));
422
472
  }
423
473
  }
424
474
  }
425
- return yield* handle;
475
+ const handle = handles[handles.length - 1];
476
+ const unref = Effect.gen(function* () {
477
+ const rerefs = [];
478
+ for (const handle of handles) {
479
+ rerefs.push(yield* handle.unref);
480
+ }
481
+ return Effect.forEach([...rerefs].reverse(), reref => reref, {
482
+ discard: true
483
+ });
484
+ });
485
+ return makeHandle({
486
+ pid: handle.pid,
487
+ exitCode: handle.exitCode,
488
+ isRunning: handle.isRunning,
489
+ kill: handle.kill,
490
+ stdin: handle.stdin,
491
+ stdout: handle.stdout,
492
+ stderr: handle.stderr,
493
+ all: handle.all,
494
+ getInputFd: handle.getInputFd,
495
+ getOutputFd: handle.getOutputFd,
496
+ unref
497
+ });
426
498
  }
427
499
  }
428
500
  });
429
- return ChildProcessSpawner.of({
430
- spawn: spawnCommand
431
- });
501
+ return makeSpawner(spawnCommand);
432
502
  });
433
503
  /**
434
- * Layer providing the `NodeChildProcessSpawner` implementation.
504
+ * Layer that provides the `NodeChildProcessSpawner` implementation.
435
505
  *
506
+ * @category layers
436
507
  * @since 4.0.0
437
- * @category Layers
438
508
  */
439
509
  export const layer = /*#__PURE__*/Layer.effect(ChildProcessSpawner, make);
440
510
  /**
441
511
  * Flattens a `Command` into an array of `StandardCommand`s along with pipe
442
512
  * options for each connection.
443
513
  *
514
+ * @category transforming
444
515
  * @since 4.0.0
445
- * @category Utilities
446
516
  */
447
517
  export const flattenCommand = command => {
448
518
  const commands = [];
@@ -1 +1 @@
1
- {"version":3,"file":"NodeChildProcessSpawner.js","names":["Deferred","Effect","Exit","FileSystem","Layer","Path","Predicate","Sink","Stream","ChildProcess","ChildProcessSpawner","ExitCode","makeHandle","ProcessId","NodeChildProcess","handleErrnoException","NodeSink","NodeStream","toError","error","globalThis","Error","String","toPlatformError","method","command","commands","flattenCommand","commandStr","reduce","acc","curr","cmd","args","join","length","make","gen","fs","path","resolveWorkingDirectory","fnUntraced","options","isUndefined","cwd","undefined","access","resolve","resolveEnvironment","extendEnv","process","env","inputToStdioOption","input","isStream","outputToStdioOption","isSink","resolveStdinOption","defaultConfig","stream","encoding","endOnDone","stdin","resolveOutputOption","streamName","option","resolveAdditionalFds","additionalFds","result","name","config","Object","entries","fd","parseFdName","isNotUndefined","push","sort","a","b","buildStdioArray","stdinConfig","stdoutConfig","stderrConfig","stdio","maxFd","max","Math","i","setupAdditionalFds","childProcess","getInputFd","drain","getOutputFd","empty","inputSinks","Map","outputStreams","nodeStream","type","sink","fromWritable","evaluate","onError","forkScoped","run","set","fromReadable","transduce","get","setupChildStdin","suspend","isNotNull","as","succeed","setupChildOutputStreams","stdout","stderr","all","merge","spawn","spawnOptions","callback","resume","deferred","makeUnsafe","handle","on","fail","doneUnsafe","sync","kill","killProcessGroup","signal","platform","exec","pid","void","try","catch","killProcess","killed","withTimeout","killSignal","forceKillAfter","timeoutOrElse","duration","onTimeout","getSourceStream","from","fromOption","spawnCommand","_tag","resolvedAdditionalFds","exitSignal","acquireRelease","detached","shell","exited","isDone","killWithTimeout","code","await","ignore","pipe","andThen","isRunning","map","done","exitCode","flatMap","asVoid","pipeOptions","root","pipeline","sourceStream","unwrap","h","toOption","to","fdName","existingFds","of","layer","effect","flatten","left","right","first","rest","nonEmptyCommands"],"sources":["../src/NodeChildProcessSpawner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NodeChildProcessSpawner.js","names":["Deferred","Effect","Exit","FileSystem","Layer","Path","Predicate","Sink","Stream","ChildProcess","ChildProcessSpawner","ExitCode","make","makeSpawner","makeHandle","ProcessId","NodeChildProcess","PassThrough","handleErrnoException","NodeSink","NodeStream","toError","error","globalThis","Error","String","toPlatformError","method","command","commands","flattenCommand","commandStr","reduce","acc","curr","cmd","args","join","length","gen","fs","path","resolveWorkingDirectory","fnUntraced","options","isUndefined","cwd","undefined","access","resolve","resolveEnvironment","extendEnv","process","env","inputToStdioOption","input","isStream","outputToStdioOption","isSink","resolveStdinOption","defaultConfig","stream","encoding","endOnDone","stdin","resolveOutputOption","streamName","option","resolveAdditionalFds","additionalFds","result","name","config","Object","entries","fd","parseFdName","isNotUndefined","push","sort","a","b","buildStdioArray","stdinConfig","stdoutConfig","stderrConfig","stdio","maxFd","max","Math","i","setupAdditionalFds","childProcess","getInputFd","drain","getOutputFd","empty","inputSinks","Map","outputStreams","nodeStream","type","sink","fromWritable","evaluate","onError","forkScoped","run","set","passThrough","on","destroy","pipe","fromReadable","transduce","get","setupChildStdin","suspend","isNotNull","as","succeed","setupChildOutputStreams","stdout","stderr","all","merge","spawn","spawnOptions","callback","resume","deferred","makeUnsafe","handle","fail","doneUnsafe","sync","kill","killProcessGroup","signal","platform","exec","pid","void","try","catch","killProcessGroupOnExit","killProcess","killed","withTimeout","killSignal","forceKillAfter","timeoutOrElse","duration","orElse","getSourceStream","from","fromOption","spawnCommand","_tag","resolvedAdditionalFds","isReferenced","exitSignal","acquireRelease","detached","shell","exited","isDone","killWithTimeout","code","await","ignore","andThen","reref","ref","unref","isRunning","map","done","exitCode","flatMap","asVoid","pipeOptions","root","pipeline","handles","sourceStream","unwrap","toOption","to","fdName","existingFds","rerefs","forEach","reverse","discard","layer","effect","flatten","left","right","first","rest","nonEmptyCommands"],"sources":["../src/NodeChildProcessSpawner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -4,13 +4,19 @@ import * as ShardingConfig from "effect/unstable/cluster/ShardingConfig";
4
4
  import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
5
5
  import type * as SocketServer from "effect/unstable/socket/SocketServer";
6
6
  /**
7
- * @since 1.0.0
8
- * @category Layers
7
+ * Provides the cluster `RpcClientProtocol` by opening TCP sockets to runner
8
+ * addresses and using the current RPC serialization service.
9
+ *
10
+ * @category layers
11
+ * @since 4.0.0
9
12
  */
10
13
  export declare const layerClientProtocol: Layer.Layer<Runners.RpcClientProtocol, never, RpcSerialization.RpcSerialization>;
11
14
  /**
12
- * @since 1.0.0
13
- * @category Layers
15
+ * Provides the socket server used by cluster runners, listening on
16
+ * `ShardingConfig.runnerListenAddress` or `runnerAddress`.
17
+ *
18
+ * @category layers
19
+ * @since 4.0.0
14
20
  */
15
21
  export declare const layerSocketServer: Layer.Layer<SocketServer.SocketServer, SocketServer.SocketServerError, ShardingConfig.ShardingConfig>;
16
22
  //# sourceMappingURL=NodeClusterSocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterSocket.d.ts","sourceRoot":"","sources":["../src/NodeClusterSocket.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,gBAAgB,MAAM,sCAAsC,CAAA;AAExE,OAAO,KAAK,KAAK,YAAY,MAAM,qCAAqC,CAAA;AAIxE;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAC3C,OAAO,CAAC,iBAAiB,EACzB,KAAK,EACL,gBAAgB,CAAC,gBAAgB,CAiBlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,KAAK,CACzC,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,iBAAiB,EAC9B,cAAc,CAAC,cAAc,CAQV,CAAA"}
1
+ {"version":3,"file":"NodeClusterSocket.d.ts","sourceRoot":"","sources":["../src/NodeClusterSocket.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,gBAAgB,MAAM,sCAAsC,CAAA;AAExE,OAAO,KAAK,KAAK,YAAY,MAAM,qCAAqC,CAAA;AAIxE;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAC3C,OAAO,CAAC,iBAAiB,EACzB,KAAK,EACL,gBAAgB,CAAC,gBAAgB,CAiBlC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,KAAK,CACzC,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,iBAAiB,EAC9B,cAAc,CAAC,cAAc,CAQV,CAAA"}
@@ -1,8 +1,16 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Node TCP socket transport for Effect Cluster runner-to-runner RPC.
3
+ *
4
+ * This module provides the shared Node layers used by socket-based cluster
5
+ * transports. `layerClientProtocol` opens TCP sockets to peer runner addresses
6
+ * and wraps them in the current RPC serialization protocol. `layerSocketServer`
7
+ * exposes the socket server that receives incoming runner RPC traffic.
8
+ *
9
+ * @since 4.0.0
3
10
  */
4
11
  import * as Effect from "effect/Effect";
5
12
  import * as Layer from "effect/Layer";
13
+ import * as Option from "effect/Option";
6
14
  import * as Runners from "effect/unstable/cluster/Runners";
7
15
  import * as ShardingConfig from "effect/unstable/cluster/ShardingConfig";
8
16
  import * as RpcClient from "effect/unstable/rpc/RpcClient";
@@ -11,8 +19,11 @@ import { Socket } from "effect/unstable/socket/Socket";
11
19
  import * as NodeSocket from "./NodeSocket.js";
12
20
  import * as NodeSocketServer from "./NodeSocketServer.js";
13
21
  /**
14
- * @since 1.0.0
15
- * @category Layers
22
+ * Provides the cluster `RpcClientProtocol` by opening TCP sockets to runner
23
+ * addresses and using the current RPC serialization service.
24
+ *
25
+ * @category layers
26
+ * @since 4.0.0
16
27
  */
17
28
  export const layerClientProtocol = /*#__PURE__*/Layer.effect(Runners.RpcClientProtocol)(/*#__PURE__*/Effect.gen(function* () {
18
29
  const serialization = yield* RpcSerialization.RpcSerialization;
@@ -27,15 +38,18 @@ export const layerClientProtocol = /*#__PURE__*/Layer.effect(Runners.RpcClientPr
27
38
  }, Effect.orDie);
28
39
  }));
29
40
  /**
30
- * @since 1.0.0
31
- * @category Layers
41
+ * Provides the socket server used by cluster runners, listening on
42
+ * `ShardingConfig.runnerListenAddress` or `runnerAddress`.
43
+ *
44
+ * @category layers
45
+ * @since 4.0.0
32
46
  */
33
47
  export const layerSocketServer = /*#__PURE__*/Effect.gen(function* () {
34
48
  const config = yield* ShardingConfig.ShardingConfig;
35
- const listenAddress = config.runnerListenAddress ?? config.runnerAddress;
36
- if (listenAddress === undefined) {
49
+ const listenAddress = Option.orElse(config.runnerListenAddress, () => config.runnerAddress);
50
+ if (Option.isNone(listenAddress)) {
37
51
  return yield* Effect.die("layerSocketServer: ShardingConfig.runnerListenAddress is None");
38
52
  }
39
- return NodeSocketServer.layer(listenAddress);
53
+ return NodeSocketServer.layer(listenAddress.value);
40
54
  }).pipe(Layer.unwrap);
41
55
  //# sourceMappingURL=NodeClusterSocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterSocket.js","names":["Effect","Layer","Runners","ShardingConfig","RpcClient","RpcSerialization","Socket","NodeSocket","NodeSocketServer","layerClientProtocol","effect","RpcClientProtocol","gen","serialization","fnUntraced","address","socket","makeNet","openTimeout","timeout","host","port","makeProtocolSocket","pipe","provideService","orDie","layerSocketServer","config","listenAddress","runnerListenAddress","runnerAddress","undefined","die","layer","unwrap"],"sources":["../src/NodeClusterSocket.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,iCAAiC;AAC1D,OAAO,KAAKC,cAAc,MAAM,wCAAwC;AACxE,OAAO,KAAKC,SAAS,MAAM,+BAA+B;AAC1D,OAAO,KAAKC,gBAAgB,MAAM,sCAAsC;AACxE,SAASC,MAAM,QAAQ,+BAA+B;AAEtD,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAC7C,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;;AAIA,OAAO,MAAMC,mBAAmB,gBAI5BR,KAAK,CAACS,MAAM,CAACR,OAAO,CAACS,iBAAiB,CAAC,cACzCX,MAAM,CAACY,GAAG,CAAC,aAAS;EAClB,MAAMC,aAAa,GAAG,OAAOR,gBAAgB,CAACA,gBAAgB;EAC9D,OAAOL,MAAM,CAACc,UAAU,CAAC,WAAUC,OAAO;IACxC,MAAMC,MAAM,GAAG,OAAOT,UAAU,CAACU,OAAO,CAAC;MACvCC,WAAW,EAAE,IAAI;MACjBC,OAAO,EAAE,IAAI;MACbC,IAAI,EAAEL,OAAO,CAACK,IAAI;MAClBC,IAAI,EAAEN,OAAO,CAACM;KACf,CAAC;IACF,OAAO,OAAOjB,SAAS,CAACkB,kBAAkB,EAAE,CAACC,IAAI,CAC/CvB,MAAM,CAACwB,cAAc,CAAClB,MAAM,EAAEU,MAAM,CAAC,EACrChB,MAAM,CAACwB,cAAc,CAACnB,gBAAgB,CAACA,gBAAgB,EAAEQ,aAAa,CAAC,CACxE;EACH,CAAC,EAAEb,MAAM,CAACyB,KAAK,CAAC;AAClB,CAAC,CAAC,CACH;AAED;;;;AAIA,OAAO,MAAMC,iBAAiB,gBAI1B1B,MAAM,CAACY,GAAG,CAAC,aAAS;EACtB,MAAMe,MAAM,GAAG,OAAOxB,cAAc,CAACA,cAAc;EACnD,MAAMyB,aAAa,GAAGD,MAAM,CAACE,mBAAmB,IAAIF,MAAM,CAACG,aAAa;EACxE,IAAIF,aAAa,KAAKG,SAAS,EAAE;IAC/B,OAAO,OAAO/B,MAAM,CAACgC,GAAG,CAAC,+DAA+D,CAAC;EAC3F;EACA,OAAOxB,gBAAgB,CAACyB,KAAK,CAACL,aAAa,CAAC;AAC9C,CAAC,CAAC,CAACL,IAAI,CAACtB,KAAK,CAACiC,MAAM,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"NodeClusterSocket.js","names":["Effect","Layer","Option","Runners","ShardingConfig","RpcClient","RpcSerialization","Socket","NodeSocket","NodeSocketServer","layerClientProtocol","effect","RpcClientProtocol","gen","serialization","fnUntraced","address","socket","makeNet","openTimeout","timeout","host","port","makeProtocolSocket","pipe","provideService","orDie","layerSocketServer","config","listenAddress","orElse","runnerListenAddress","runnerAddress","isNone","die","layer","value","unwrap"],"sources":["../src/NodeClusterSocket.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;AAUA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,iCAAiC;AAC1D,OAAO,KAAKC,cAAc,MAAM,wCAAwC;AACxE,OAAO,KAAKC,SAAS,MAAM,+BAA+B;AAC1D,OAAO,KAAKC,gBAAgB,MAAM,sCAAsC;AACxE,SAASC,MAAM,QAAQ,+BAA+B;AAEtD,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAC7C,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;;;;;AAOA,OAAO,MAAMC,mBAAmB,gBAI5BT,KAAK,CAACU,MAAM,CAACR,OAAO,CAACS,iBAAiB,CAAC,cACzCZ,MAAM,CAACa,GAAG,CAAC,aAAS;EAClB,MAAMC,aAAa,GAAG,OAAOR,gBAAgB,CAACA,gBAAgB;EAC9D,OAAON,MAAM,CAACe,UAAU,CAAC,WAAUC,OAAO;IACxC,MAAMC,MAAM,GAAG,OAAOT,UAAU,CAACU,OAAO,CAAC;MACvCC,WAAW,EAAE,IAAI;MACjBC,OAAO,EAAE,IAAI;MACbC,IAAI,EAAEL,OAAO,CAACK,IAAI;MAClBC,IAAI,EAAEN,OAAO,CAACM;KACf,CAAC;IACF,OAAO,OAAOjB,SAAS,CAACkB,kBAAkB,EAAE,CAACC,IAAI,CAC/CxB,MAAM,CAACyB,cAAc,CAAClB,MAAM,EAAEU,MAAM,CAAC,EACrCjB,MAAM,CAACyB,cAAc,CAACnB,gBAAgB,CAACA,gBAAgB,EAAEQ,aAAa,CAAC,CACxE;EACH,CAAC,EAAEd,MAAM,CAAC0B,KAAK,CAAC;AAClB,CAAC,CAAC,CACH;AAED;;;;;;;AAOA,OAAO,MAAMC,iBAAiB,gBAI1B3B,MAAM,CAACa,GAAG,CAAC,aAAS;EACtB,MAAMe,MAAM,GAAG,OAAOxB,cAAc,CAACA,cAAc;EACnD,MAAMyB,aAAa,GAAG3B,MAAM,CAAC4B,MAAM,CAACF,MAAM,CAACG,mBAAmB,EAAE,MAAMH,MAAM,CAACI,aAAa,CAAC;EAC3F,IAAI9B,MAAM,CAAC+B,MAAM,CAACJ,aAAa,CAAC,EAAE;IAChC,OAAO,OAAO7B,MAAM,CAACkC,GAAG,CAAC,+DAA+D,CAAC;EAC3F;EACA,OAAOzB,gBAAgB,CAAC0B,KAAK,CAACN,aAAa,CAACO,KAAK,CAAC;AACpD,CAAC,CAAC,CAACZ,IAAI,CAACvB,KAAK,CAACoC,MAAM,CAAC","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Node-compatible implementation of Effect's `Crypto` service.
3
+ *
4
+ * This module builds the service from `node:crypto`, using `randomBytes` for
5
+ * random data and `createHash` for supported digest algorithms. It exports
6
+ * `make` as the concrete service value and `layer` for providing it through
7
+ * Effect context.
8
+ *
9
+ * @since 1.0.0
10
+ */
11
+ import * as EffectCrypto from "effect/Crypto";
12
+ import * as Layer from "effect/Layer";
13
+ /**
14
+ * The default Node.js Crypto service implementation.
15
+ *
16
+ * @category constructors
17
+ * @since 1.0.0
18
+ */
19
+ export declare const make: EffectCrypto.Crypto;
20
+ /**
21
+ * Layer that provides the Node.js Crypto service implementation.
22
+ *
23
+ * @category layers
24
+ * @since 1.0.0
25
+ */
26
+ export declare const layer: Layer.Layer<EffectCrypto.Crypto>;
27
+ //# sourceMappingURL=NodeCrypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeCrypto.d.ts","sourceRoot":"","sources":["../src/NodeCrypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,YAAY,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AA8BrC;;;;;GAKG;AACH,eAAO,MAAM,IAAI,EAAE,YAAY,CAAC,MAG9B,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAA4C,CAAA"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Node-compatible implementation of Effect's `Crypto` service.
3
+ *
4
+ * This module builds the service from `node:crypto`, using `randomBytes` for
5
+ * random data and `createHash` for supported digest algorithms. It exports
6
+ * `make` as the concrete service value and `layer` for providing it through
7
+ * Effect context.
8
+ *
9
+ * @since 1.0.0
10
+ */
11
+ import * as EffectCrypto from "effect/Crypto";
12
+ import * as Effect from "effect/Effect";
13
+ import * as Layer from "effect/Layer";
14
+ import * as PlatformError from "effect/PlatformError";
15
+ import * as NodeCrypto from "node:crypto";
16
+ const toHashAlgorithm = algorithm => {
17
+ switch (algorithm) {
18
+ case "SHA-1":
19
+ return "sha1";
20
+ case "SHA-256":
21
+ return "sha256";
22
+ case "SHA-384":
23
+ return "sha384";
24
+ case "SHA-512":
25
+ return "sha512";
26
+ }
27
+ };
28
+ const digest = (algorithm, data) => Effect.try({
29
+ try: () => Uint8Array.from(NodeCrypto.createHash(toHashAlgorithm(algorithm)).update(data).digest()),
30
+ catch: cause => PlatformError.systemError({
31
+ module: "Crypto",
32
+ method: "digest",
33
+ _tag: "Unknown",
34
+ description: "Could not compute digest",
35
+ cause
36
+ })
37
+ });
38
+ /**
39
+ * The default Node.js Crypto service implementation.
40
+ *
41
+ * @category constructors
42
+ * @since 1.0.0
43
+ */
44
+ export const make = /*#__PURE__*/EffectCrypto.make({
45
+ randomBytes: NodeCrypto.randomBytes,
46
+ digest
47
+ });
48
+ /**
49
+ * Layer that provides the Node.js Crypto service implementation.
50
+ *
51
+ * @category layers
52
+ * @since 1.0.0
53
+ */
54
+ export const layer = /*#__PURE__*/Layer.succeed(EffectCrypto.Crypto, make);
55
+ //# sourceMappingURL=NodeCrypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeCrypto.js","names":["EffectCrypto","Effect","Layer","PlatformError","NodeCrypto","toHashAlgorithm","algorithm","digest","data","try","Uint8Array","from","createHash","update","catch","cause","systemError","module","method","_tag","description","make","randomBytes","layer","succeed","Crypto"],"sources":["../src/NodeCrypto.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;AAUA,OAAO,KAAKA,YAAY,MAAM,eAAe;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,aAAa,MAAM,sBAAsB;AACrD,OAAO,KAAKC,UAAU,MAAM,aAAa;AAEzC,MAAMC,eAAe,GAAIC,SAAuC,IAAY;EAC1E,QAAQA,SAAS;IACf,KAAK,OAAO;MACV,OAAO,MAAM;IACf,KAAK,SAAS;MACZ,OAAO,QAAQ;IACjB,KAAK,SAAS;MACZ,OAAO,QAAQ;IACjB,KAAK,SAAS;MACZ,OAAO,QAAQ;EACnB;AACF,CAAC;AAED,MAAMC,MAAM,GAAkCA,CAACD,SAAS,EAAEE,IAAI,KAC5DP,MAAM,CAACQ,GAAG,CAAC;EACTA,GAAG,EAAEA,CAAA,KAAMC,UAAU,CAACC,IAAI,CAACP,UAAU,CAACQ,UAAU,CAACP,eAAe,CAACC,SAAS,CAAC,CAAC,CAACO,MAAM,CAACL,IAAI,CAAC,CAACD,MAAM,EAAE,CAAC;EACnGO,KAAK,EAAGC,KAAK,IACXZ,aAAa,CAACa,WAAW,CAAC;IACxBC,MAAM,EAAE,QAAQ;IAChBC,MAAM,EAAE,QAAQ;IAChBC,IAAI,EAAE,SAAS;IACfC,WAAW,EAAE,0BAA0B;IACvCL;GACD;CACJ,CAAC;AAEJ;;;;;;AAMA,OAAO,MAAMM,IAAI,gBAAwBrB,YAAY,CAACqB,IAAI,CAAC;EACzDC,WAAW,EAAElB,UAAU,CAACkB,WAAW;EACnCf;CACD,CAAC;AAEF;;;;;;AAMA,OAAO,MAAMgB,KAAK,gBAAqCrB,KAAK,CAACsB,OAAO,CAACxB,YAAY,CAACyB,MAAM,EAAEJ,IAAI,CAAC","ignoreList":[]}
@@ -1,8 +1,11 @@
1
1
  import * as FileSystem from "effect/FileSystem";
2
2
  import * as Layer from "effect/Layer";
3
3
  /**
4
- * @since 1.0.0
5
- * @category Layers
4
+ * Provides the `FileSystem` service backed by Node filesystem APIs, including
5
+ * file operations, directory operations, links, metadata, and file watching.
6
+ *
7
+ * @category layers
8
+ * @since 4.0.0
6
9
  */
7
10
  export declare const layer: Layer.Layer<FileSystem.FileSystem>;
8
11
  //# sourceMappingURL=NodeFileSystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeFileSystem.d.ts","sourceRoot":"","sources":["../src/NodeFileSystem.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAmnBrC;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAuD,CAAA"}
1
+ {"version":3,"file":"NodeFileSystem.d.ts","sourceRoot":"","sources":["../src/NodeFileSystem.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAooBrC;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAuD,CAAA"}