@effect/platform-node-shared 4.0.0-beta.8 → 4.0.0-beta.80

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 (66) hide show
  1. package/dist/NodeChildProcessSpawner.d.ts +19 -5
  2. package/dist/NodeChildProcessSpawner.d.ts.map +1 -1
  3. package/dist/NodeChildProcessSpawner.js +77 -18
  4. package/dist/NodeChildProcessSpawner.js.map +1 -1
  5. package/dist/NodeClusterSocket.d.ts +10 -4
  6. package/dist/NodeClusterSocket.d.ts.map +1 -1
  7. package/dist/NodeClusterSocket.js +22 -8
  8. package/dist/NodeClusterSocket.js.map +1 -1
  9. package/dist/NodeCrypto.d.ts +27 -0
  10. package/dist/NodeCrypto.d.ts.map +1 -0
  11. package/dist/NodeCrypto.js +55 -0
  12. package/dist/NodeCrypto.js.map +1 -0
  13. package/dist/NodeFileSystem.d.ts +5 -2
  14. package/dist/NodeFileSystem.d.ts.map +1 -1
  15. package/dist/NodeFileSystem.js +33 -26
  16. package/dist/NodeFileSystem.js.map +1 -1
  17. package/dist/NodePath.d.ts +15 -6
  18. package/dist/NodePath.d.ts.map +1 -1
  19. package/dist/NodePath.js +23 -7
  20. package/dist/NodePath.js.map +1 -1
  21. package/dist/NodeRuntime.d.ts +26 -7
  22. package/dist/NodeRuntime.d.ts.map +1 -1
  23. package/dist/NodeRuntime.js +8 -8
  24. package/dist/NodeRuntime.js.map +1 -1
  25. package/dist/NodeSink.d.ts +33 -4
  26. package/dist/NodeSink.d.ts.map +1 -1
  27. package/dist/NodeSink.js +31 -4
  28. package/dist/NodeSink.js.map +1 -1
  29. package/dist/NodeSocket.d.ts +41 -10
  30. package/dist/NodeSocket.d.ts.map +1 -1
  31. package/dist/NodeSocket.js +39 -16
  32. package/dist/NodeSocket.js.map +1 -1
  33. package/dist/NodeSocketServer.d.ts +25 -8
  34. package/dist/NodeSocketServer.d.ts.map +1 -1
  35. package/dist/NodeSocketServer.js +29 -12
  36. package/dist/NodeSocketServer.js.map +1 -1
  37. package/dist/NodeStdio.d.ts +6 -5
  38. package/dist/NodeStdio.d.ts.map +1 -1
  39. package/dist/NodeStdio.js +23 -7
  40. package/dist/NodeStdio.js.map +1 -1
  41. package/dist/NodeStream.d.ts +76 -20
  42. package/dist/NodeStream.d.ts.map +1 -1
  43. package/dist/NodeStream.js +68 -23
  44. package/dist/NodeStream.js.map +1 -1
  45. package/dist/NodeTerminal.d.ts +9 -2
  46. package/dist/NodeTerminal.d.ts.map +1 -1
  47. package/dist/NodeTerminal.js +13 -3
  48. package/dist/NodeTerminal.js.map +1 -1
  49. package/dist/index.d.ts +52 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +53 -0
  52. package/dist/index.js.map +1 -0
  53. package/package.json +7 -6
  54. package/src/NodeChildProcessSpawner.ts +117 -29
  55. package/src/NodeClusterSocket.ts +22 -8
  56. package/src/NodeCrypto.ts +60 -0
  57. package/src/NodeFileSystem.ts +40 -28
  58. package/src/NodePath.ts +23 -7
  59. package/src/NodeRuntime.ts +28 -13
  60. package/src/NodeSink.ts +40 -4
  61. package/src/NodeSocket.ts +47 -17
  62. package/src/NodeSocketServer.ts +39 -13
  63. package/src/NodeStdio.ts +41 -23
  64. package/src/NodeStream.ts +89 -30
  65. package/src/NodeTerminal.ts +22 -4
  66. package/src/index.ts +65 -0
@@ -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;AAylBpD;;;;;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"}
@@ -8,7 +8,7 @@ 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
13
  import { handleErrnoException } from "./internal/utils.js";
14
14
  import * as NodeSink from "./NodeSink.js";
@@ -258,6 +258,19 @@ const make = /*#__PURE__*/Effect.gen(function* () {
258
258
  catch: error => toPlatformError("kill", toError(error), command)
259
259
  });
260
260
  };
261
+ const killProcessGroupOnExit = (childProcess, signal) => {
262
+ if (globalThis.process.platform === "win32") {
263
+ NodeChildProcess.exec(`taskkill /pid ${childProcess.pid} /T /F`, () => {
264
+ // ignore errors during best-effort cleanup
265
+ });
266
+ return;
267
+ }
268
+ try {
269
+ globalThis.process.kill(-childProcess.pid, signal);
270
+ } catch {
271
+ // ignore errors during best-effort cleanup
272
+ }
273
+ };
261
274
  const killProcess = (command, childProcess, signal) => Effect.suspend(() => {
262
275
  const killed = childProcess.kill(signal);
263
276
  if (!killed) {
@@ -270,7 +283,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
270
283
  const killSignal = options?.killSignal ?? "SIGTERM";
271
284
  return Predicate.isUndefined(options?.forceKillAfter) ? kill(command, childProcess, killSignal) : Effect.timeoutOrElse(kill(command, childProcess, killSignal), {
272
285
  duration: options.forceKillAfter,
273
- onTimeout: () => kill(command, childProcess, "SIGKILL")
286
+ orElse: () => kill(command, childProcess, "SIGKILL")
274
287
  });
275
288
  };
276
289
  /**
@@ -306,6 +319,8 @@ const make = /*#__PURE__*/Effect.gen(function* () {
306
319
  const stdoutConfig = resolveOutputOption(cmd.options, "stdout");
307
320
  const stderrConfig = resolveOutputOption(cmd.options, "stderr");
308
321
  const resolvedAdditionalFds = resolveAdditionalFds(cmd.options);
322
+ let isReferenced = true;
323
+ let cleanupOnNonZeroExit = false;
309
324
  const cwd = yield* resolveWorkingDirectory(cmd.options);
310
325
  const env = resolveEnvironment(cmd.options);
311
326
  const stdio = buildStdioArray(stdinConfig, stdoutConfig, stderrConfig, resolvedAdditionalFds);
@@ -327,10 +342,33 @@ const make = /*#__PURE__*/Effect.gen(function* () {
327
342
  }
328
343
  return yield* Effect.void;
329
344
  }
345
+ if (!isReferenced) {
346
+ return yield* Effect.void;
347
+ }
330
348
  // Process is still running, kill it
331
349
  return yield* killWithTimeout((command, childProcess, signal) => Effect.catch(killProcessGroup(command, childProcess, signal), () => killProcess(command, childProcess, signal))).pipe(Effect.andThen(Deferred.await(exitSignal)), Effect.ignore);
332
350
  }));
333
351
  const pid = ProcessId(childProcess.pid);
352
+ childProcess.on("exit", code => {
353
+ if (cleanupOnNonZeroExit && code !== 0 && Predicate.isNotNull(code)) {
354
+ killProcessGroupOnExit(childProcess, cmd.options.killSignal ?? "SIGTERM");
355
+ }
356
+ });
357
+ const reref = Effect.sync(() => {
358
+ if (!isReferenced) {
359
+ childProcess.ref();
360
+ isReferenced = true;
361
+ cleanupOnNonZeroExit = false;
362
+ }
363
+ });
364
+ const unref = Effect.sync(() => {
365
+ if (isReferenced) {
366
+ childProcess.unref();
367
+ isReferenced = false;
368
+ cleanupOnNonZeroExit = true;
369
+ }
370
+ return reref;
371
+ });
334
372
  const stdin = yield* setupChildStdin(cmd, childProcess, stdinConfig);
335
373
  const {
336
374
  all,
@@ -366,7 +404,8 @@ const make = /*#__PURE__*/Effect.gen(function* () {
366
404
  stderr,
367
405
  all,
368
406
  getInputFd,
369
- getOutputFd
407
+ getOutputFd,
408
+ unref
370
409
  });
371
410
  }
372
411
  case "PipedCommand":
@@ -376,31 +415,31 @@ const make = /*#__PURE__*/Effect.gen(function* () {
376
415
  pipeOptions
377
416
  } = flattenCommand(cmd);
378
417
  const [root, ...pipeline] = commands;
379
- let handle = spawnCommand(root);
418
+ const handles = [yield* spawnCommand(root)];
380
419
  for (let i = 0; i < pipeline.length; i++) {
381
420
  const command = pipeline[i];
382
421
  const options = pipeOptions[i] ?? {};
383
422
  const stdinConfig = resolveStdinOption(command.options);
384
423
  // Get the appropriate stream from the source based on `from` option
385
- const sourceStream = Stream.unwrap(Effect.map(handle, h => getSourceStream(h, options.from)));
424
+ const sourceStream = Stream.unwrap(Effect.succeed(getSourceStream(handles[handles.length - 1], options.from)));
386
425
  // Determine where to pipe: stdin or custom fd
387
426
  const toOption = options.to ?? "stdin";
388
427
  if (toOption === "stdin") {
389
428
  // Pipe to stdin (default behavior)
390
- handle = spawnCommand(ChildProcess.make(command.command, command.args, {
429
+ handles.push(yield* spawnCommand(ChildProcess.make(command.command, command.args, {
391
430
  ...command.options,
392
431
  stdin: {
393
432
  ...stdinConfig,
394
433
  stream: sourceStream
395
434
  }
396
- }));
435
+ })));
397
436
  } else {
398
437
  // Pipe to custom fd (fd3, fd4, etc.)
399
438
  const fd = ChildProcess.parseFdName(toOption);
400
439
  if (Predicate.isNotUndefined(fd)) {
401
440
  const fdName = ChildProcess.fdName(fd);
402
441
  const existingFds = command.options.additionalFds ?? {};
403
- handle = spawnCommand(ChildProcess.make(command.command, command.args, {
442
+ handles.push(yield* spawnCommand(ChildProcess.make(command.command, command.args, {
404
443
  ...command.options,
405
444
  additionalFds: {
406
445
  ...existingFds,
@@ -409,40 +448,60 @@ const make = /*#__PURE__*/Effect.gen(function* () {
409
448
  stream: sourceStream
410
449
  }
411
450
  }
412
- }));
451
+ })));
413
452
  } else {
414
453
  // Invalid fd name, fall back to stdin
415
- handle = spawnCommand(ChildProcess.make(command.command, command.args, {
454
+ handles.push(yield* spawnCommand(ChildProcess.make(command.command, command.args, {
416
455
  ...command.options,
417
456
  stdin: {
418
457
  ...stdinConfig,
419
458
  stream: sourceStream
420
459
  }
421
- }));
460
+ })));
422
461
  }
423
462
  }
424
463
  }
425
- return yield* handle;
464
+ const handle = handles[handles.length - 1];
465
+ const unref = Effect.gen(function* () {
466
+ const rerefs = [];
467
+ for (const handle of handles) {
468
+ rerefs.push(yield* handle.unref);
469
+ }
470
+ return Effect.forEach([...rerefs].reverse(), reref => reref, {
471
+ discard: true
472
+ });
473
+ });
474
+ return makeHandle({
475
+ pid: handle.pid,
476
+ exitCode: handle.exitCode,
477
+ isRunning: handle.isRunning,
478
+ kill: handle.kill,
479
+ stdin: handle.stdin,
480
+ stdout: handle.stdout,
481
+ stderr: handle.stderr,
482
+ all: handle.all,
483
+ getInputFd: handle.getInputFd,
484
+ getOutputFd: handle.getOutputFd,
485
+ unref
486
+ });
426
487
  }
427
488
  }
428
489
  });
429
- return ChildProcessSpawner.of({
430
- spawn: spawnCommand
431
- });
490
+ return makeSpawner(spawnCommand);
432
491
  });
433
492
  /**
434
- * Layer providing the `NodeChildProcessSpawner` implementation.
493
+ * Layer that provides the `NodeChildProcessSpawner` implementation.
435
494
  *
495
+ * @category layers
436
496
  * @since 4.0.0
437
- * @category Layers
438
497
  */
439
498
  export const layer = /*#__PURE__*/Layer.effect(ChildProcessSpawner, make);
440
499
  /**
441
500
  * Flattens a `Command` into an array of `StandardCommand`s along with pipe
442
501
  * options for each connection.
443
502
  *
503
+ * @category transforming
444
504
  * @since 4.0.0
445
- * @category Utilities
446
505
  */
447
506
  export const flattenCommand = command => {
448
507
  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","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","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","killProcessGroupOnExit","killProcess","killed","withTimeout","killSignal","forceKillAfter","timeoutOrElse","duration","orElse","getSourceStream","from","fromOption","spawnCommand","_tag","resolvedAdditionalFds","isReferenced","cleanupOnNonZeroExit","exitSignal","acquireRelease","detached","shell","exited","isDone","killWithTimeout","code","await","ignore","pipe","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;AAonBrC;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAuD,CAAA"}