@effect/platform-node 4.0.0-beta.7 → 4.0.0-beta.70

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 (119) hide show
  1. package/dist/Mime.d.ts +3 -3
  2. package/dist/Mime.js +3 -3
  3. package/dist/NodeChildProcessSpawner.d.ts +1 -1
  4. package/dist/NodeChildProcessSpawner.js +1 -1
  5. package/dist/NodeClusterHttp.d.ts +49 -7
  6. package/dist/NodeClusterHttp.d.ts.map +1 -1
  7. package/dist/NodeClusterHttp.js +20 -10
  8. package/dist/NodeClusterHttp.js.map +1 -1
  9. package/dist/NodeClusterSocket.d.ts +57 -11
  10. package/dist/NodeClusterSocket.d.ts.map +1 -1
  11. package/dist/NodeClusterSocket.js +57 -11
  12. package/dist/NodeClusterSocket.js.map +1 -1
  13. package/dist/NodeCrypto.d.ts +10 -0
  14. package/dist/NodeCrypto.d.ts.map +1 -0
  15. package/dist/NodeCrypto.js +14 -0
  16. package/dist/NodeCrypto.js.map +1 -0
  17. package/dist/NodeFileSystem.d.ts +4 -2
  18. package/dist/NodeFileSystem.d.ts.map +1 -1
  19. package/dist/NodeFileSystem.js +22 -3
  20. package/dist/NodeFileSystem.js.map +1 -1
  21. package/dist/NodeHttpClient.d.ts +102 -24
  22. package/dist/NodeHttpClient.d.ts.map +1 -1
  23. package/dist/NodeHttpClient.js +124 -28
  24. package/dist/NodeHttpClient.js.map +1 -1
  25. package/dist/NodeHttpIncomingMessage.d.ts +30 -9
  26. package/dist/NodeHttpIncomingMessage.d.ts.map +1 -1
  27. package/dist/NodeHttpIncomingMessage.js +34 -8
  28. package/dist/NodeHttpIncomingMessage.js.map +1 -1
  29. package/dist/NodeHttpPlatform.d.ts +10 -4
  30. package/dist/NodeHttpPlatform.d.ts.map +1 -1
  31. package/dist/NodeHttpPlatform.js +34 -7
  32. package/dist/NodeHttpPlatform.js.map +1 -1
  33. package/dist/NodeHttpServer.d.ts +56 -16
  34. package/dist/NodeHttpServer.d.ts.map +1 -1
  35. package/dist/NodeHttpServer.js +117 -49
  36. package/dist/NodeHttpServer.js.map +1 -1
  37. package/dist/NodeHttpServerRequest.d.ts +29 -3
  38. package/dist/NodeHttpServerRequest.d.ts.map +1 -1
  39. package/dist/NodeHttpServerRequest.js +9 -2
  40. package/dist/NodeHttpServerRequest.js.map +1 -1
  41. package/dist/NodeMultipart.d.ts +32 -4
  42. package/dist/NodeMultipart.d.ts.map +1 -1
  43. package/dist/NodeMultipart.js +32 -4
  44. package/dist/NodeMultipart.js.map +1 -1
  45. package/dist/NodePath.d.ts +15 -6
  46. package/dist/NodePath.d.ts.map +1 -1
  47. package/dist/NodePath.js +30 -7
  48. package/dist/NodePath.js.map +1 -1
  49. package/dist/NodeRedis.d.ts +38 -9
  50. package/dist/NodeRedis.d.ts.map +1 -1
  51. package/dist/NodeRedis.js +41 -12
  52. package/dist/NodeRedis.js.map +1 -1
  53. package/dist/NodeRuntime.d.ts +27 -36
  54. package/dist/NodeRuntime.d.ts.map +1 -1
  55. package/dist/NodeRuntime.js +24 -13
  56. package/dist/NodeRuntime.js.map +1 -1
  57. package/dist/NodeServices.d.ts +29 -5
  58. package/dist/NodeServices.d.ts.map +1 -1
  59. package/dist/NodeServices.js +7 -3
  60. package/dist/NodeServices.js.map +1 -1
  61. package/dist/NodeSink.d.ts +2 -2
  62. package/dist/NodeSink.js +2 -2
  63. package/dist/NodeSocket.d.ts +18 -3
  64. package/dist/NodeSocket.d.ts.map +1 -1
  65. package/dist/NodeSocket.js +36 -4
  66. package/dist/NodeSocket.js.map +1 -1
  67. package/dist/NodeSocketServer.d.ts +2 -2
  68. package/dist/NodeSocketServer.js +2 -2
  69. package/dist/NodeStdio.d.ts +5 -2
  70. package/dist/NodeStdio.d.ts.map +1 -1
  71. package/dist/NodeStdio.js +22 -3
  72. package/dist/NodeStdio.js.map +1 -1
  73. package/dist/NodeStream.d.ts +2 -2
  74. package/dist/NodeStream.js +2 -2
  75. package/dist/NodeTerminal.d.ts +8 -2
  76. package/dist/NodeTerminal.d.ts.map +1 -1
  77. package/dist/NodeTerminal.js +19 -3
  78. package/dist/NodeTerminal.js.map +1 -1
  79. package/dist/NodeWorker.d.ts +9 -2
  80. package/dist/NodeWorker.d.ts.map +1 -1
  81. package/dist/NodeWorker.js +31 -6
  82. package/dist/NodeWorker.js.map +1 -1
  83. package/dist/NodeWorkerRunner.d.ts +5 -1
  84. package/dist/NodeWorkerRunner.d.ts.map +1 -1
  85. package/dist/NodeWorkerRunner.js +27 -5
  86. package/dist/NodeWorkerRunner.js.map +1 -1
  87. package/dist/Undici.d.ts +3 -3
  88. package/dist/Undici.js +3 -3
  89. package/dist/index.d.ts +376 -24
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +376 -24
  92. package/dist/index.js.map +1 -1
  93. package/package.json +9 -9
  94. package/src/Mime.ts +3 -3
  95. package/src/NodeChildProcessSpawner.ts +1 -1
  96. package/src/NodeClusterHttp.ts +54 -11
  97. package/src/NodeClusterSocket.ts +57 -11
  98. package/src/NodeCrypto.ts +16 -0
  99. package/src/NodeFileSystem.ts +22 -3
  100. package/src/NodeHttpClient.ts +132 -33
  101. package/src/NodeHttpIncomingMessage.ts +42 -12
  102. package/src/NodeHttpPlatform.ts +35 -6
  103. package/src/NodeHttpServer.ts +139 -53
  104. package/src/NodeHttpServerRequest.ts +29 -3
  105. package/src/NodeMultipart.ts +32 -4
  106. package/src/NodePath.ts +30 -7
  107. package/src/NodeRedis.ts +43 -14
  108. package/src/NodeRuntime.ts +42 -37
  109. package/src/NodeServices.ts +31 -5
  110. package/src/NodeSink.ts +2 -2
  111. package/src/NodeSocket.ts +41 -4
  112. package/src/NodeSocketServer.ts +2 -2
  113. package/src/NodeStdio.ts +22 -3
  114. package/src/NodeStream.ts +2 -2
  115. package/src/NodeTerminal.ts +19 -3
  116. package/src/NodeWorker.ts +31 -6
  117. package/src/NodeWorkerRunner.ts +27 -5
  118. package/src/Undici.ts +3 -3
  119. package/src/index.ts +377 -24
@@ -1,5 +1,23 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Parent-side Node.js support for Effect workers.
3
+ *
4
+ * This module provides the `WorkerPlatform` used by Node programs that spawn
5
+ * and communicate with `node:worker_threads` workers or IPC-enabled child
6
+ * processes through Effect's worker protocol. Pair it with `NodeWorkerRunner`
7
+ * in the worker entrypoint when building worker-backed RPC clients, offloading
8
+ * CPU-bound work, isolating Node resources, or hosting services that should
9
+ * exchange typed messages with the parent process.
10
+ *
11
+ * Worker-thread spawners can use `postMessage` transfer lists for values such
12
+ * as `ArrayBuffer` and `MessagePort`, but transferring moves ownership and
13
+ * invalid transfer lists surface as worker send or receive failures.
14
+ * Child-process spawners must provide an IPC channel, for example via
15
+ * `child_process.fork` or `stdio: "ipc"`; their messages use Node IPC
16
+ * serialization and this module does not forward transfer lists to
17
+ * `ChildProcess.send`. Scope finalization sends the worker close signal and
18
+ * waits for exit before falling back to `terminate()` or `SIGKILL`.
19
+ *
20
+ * @since 4.0.0
3
21
  */
4
22
  import * as Deferred from "effect/Deferred";
5
23
  import * as Effect from "effect/Effect";
@@ -9,8 +27,12 @@ import * as Scope from "effect/Scope";
9
27
  import * as Worker from "effect/unstable/workers/Worker";
10
28
  import { WorkerError, WorkerReceiveError } from "effect/unstable/workers/WorkerError";
11
29
  /**
12
- * @since 1.0.0
30
+ * Provides the Node `WorkerPlatform` for `worker_threads` workers and child
31
+ * process workers, wiring messages, errors, and exits into Effect workers and
32
+ * terminating the worker if graceful shutdown times out.
33
+ *
13
34
  * @category layers
35
+ * @since 4.0.0
14
36
  */
15
37
  export const layerPlatform = /*#__PURE__*/Layer.succeed(Worker.WorkerPlatform)(/*#__PURE__*/Worker.makePlatform()({
16
38
  setup({
@@ -53,7 +75,7 @@ export const layerPlatform = /*#__PURE__*/Layer.succeed(Worker.WorkerPlatform)(/
53
75
  message: "An messageerror event was emitted",
54
76
  cause
55
77
  })
56
- }).asEffect());
78
+ }));
57
79
  });
58
80
  port.worker.on("error", cause => {
59
81
  Deferred.doneUnsafe(deferred, new WorkerError({
@@ -61,21 +83,24 @@ export const layerPlatform = /*#__PURE__*/Layer.succeed(Worker.WorkerPlatform)(/
61
83
  message: "An error event was emitted",
62
84
  cause
63
85
  })
64
- }).asEffect());
86
+ }));
65
87
  });
66
88
  port.worker.on("exit", code => {
67
89
  Deferred.doneUnsafe(deferred, new WorkerError({
68
90
  reason: new WorkerReceiveError({
69
91
  message: "The worker has exited with code: " + code
70
92
  })
71
- }).asEffect());
93
+ }));
72
94
  });
73
95
  return Effect.void;
74
96
  }
75
97
  }));
76
98
  /**
77
- * @since 1.0.0
99
+ * Provides the Node `WorkerPlatform` together with a `Worker.Spawner` created
100
+ * from the supplied worker or child-process spawning function.
101
+ *
78
102
  * @category layers
103
+ * @since 4.0.0
79
104
  */
80
105
  export const layer = spawn => Layer.merge(Worker.layerSpawner(spawn), layerPlatform);
81
106
  //# sourceMappingURL=NodeWorker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeWorker.js","names":["Deferred","Effect","Exit","Layer","Scope","Worker","WorkerError","WorkerReceiveError","layerPlatform","succeed","WorkerPlatform","makePlatform","setup","scope","worker","exitDeferred","makeUnsafe","thing","postMessage","msg","t","kill","terminate","_","send","on","doneUnsafe","void","as","addFinalizer","suspend","await","pipe","timeout","catchCause","sync","listen","deferred","emit","port","message","cause","reason","asEffect","code","layer","spawn","merge","layerSpawner"],"sources":["../src/NodeWorker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NodeWorker.js","names":["Deferred","Effect","Exit","Layer","Scope","Worker","WorkerError","WorkerReceiveError","layerPlatform","succeed","WorkerPlatform","makePlatform","setup","scope","worker","exitDeferred","makeUnsafe","thing","postMessage","msg","t","kill","terminate","_","send","on","doneUnsafe","void","as","addFinalizer","suspend","await","pipe","timeout","catchCause","sync","listen","deferred","emit","port","message","cause","reason","code","layer","spawn","merge","layerSpawner"],"sources":["../src/NodeWorker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,12 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import * as WorkerRunner from "effect/unstable/workers/WorkerRunner";
3
3
  /**
4
- * @since 1.0.0
4
+ * Provides the `WorkerRunnerPlatform` for code running inside a Node worker
5
+ * thread or child process, routing parent messages to the registered handler
6
+ * and sending responses back through the parent channel.
7
+ *
5
8
  * @category layers
9
+ * @since 4.0.0
6
10
  */
7
11
  export declare const layer: Layer.Layer<WorkerRunner.WorkerRunnerPlatform>;
8
12
  //# sourceMappingURL=NodeWorkerRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeWorkerRunner.d.ts","sourceRoot":"","sources":["../src/NodeWorkerRunner.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAA;AAGpE;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,CA+E/D,CAAA"}
1
+ {"version":3,"file":"NodeWorkerRunner.d.ts","sourceRoot":"","sources":["../src/NodeWorkerRunner.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAA;AAGpE;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,CA+E/D,CAAA"}
@@ -1,5 +1,23 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Runtime support for Effect workers that are executed by Node.js.
3
+ *
4
+ * This module is intended to be installed in the program running inside a
5
+ * `node:worker_threads` worker or an IPC-enabled child process. It provides the
6
+ * `WorkerRunnerPlatform` used by `WorkerRunner` to receive request messages
7
+ * from the parent, run the registered Effect handler, and send responses back
8
+ * over the parent channel.
9
+ *
10
+ * Use it when the parent side is created with `NodeWorker` and the worker code
11
+ * needs to perform CPU-bound work, isolate Node resources, or host services that
12
+ * should communicate through the Effect worker protocol. The runner must be
13
+ * started from an actual worker context: `parentPort` is required for worker
14
+ * threads, while child processes must be spawned with an IPC channel so
15
+ * `process.send` is available. Transfer lists only apply to worker-thread
16
+ * `postMessage`; child-process messages go through Node IPC serialization.
17
+ * Shutdown is coordinated by the parent message protocol, so long-running
18
+ * handlers should remain interruptible and keep resource cleanup in scopes.
19
+ *
20
+ * @since 4.0.0
3
21
  */
4
22
  import * as Cause from "effect/Cause";
5
23
  import * as Deferred from "effect/Deferred";
@@ -11,8 +29,12 @@ import { WorkerError, WorkerReceiveError, WorkerSpawnError } from "effect/unstab
11
29
  import * as WorkerRunner from "effect/unstable/workers/WorkerRunner";
12
30
  import * as WorkerThreads from "node:worker_threads";
13
31
  /**
14
- * @since 1.0.0
32
+ * Provides the `WorkerRunnerPlatform` for code running inside a Node worker
33
+ * thread or child process, routing parent messages to the registered handler
34
+ * and sending responses back through the parent channel.
35
+ *
15
36
  * @category layers
37
+ * @since 4.0.0
16
38
  */
17
39
  export const layer = /*#__PURE__*/Layer.succeed(WorkerRunner.WorkerRunnerPlatform)({
18
40
  start() {
@@ -29,7 +51,7 @@ export const layer = /*#__PURE__*/Layer.succeed(WorkerRunner.WorkerRunnerPlatfor
29
51
  const run = handler => Effect.scopedWith(Effect.fnUntraced(function* (scope) {
30
52
  const closeLatch = Deferred.makeUnsafe();
31
53
  const trackFiber = Fiber.runIn(scope);
32
- const services = yield* Effect.services();
54
+ const services = yield* Effect.context();
33
55
  const runFork = Effect.runForkWith(services);
34
56
  const onExit = exit => {
35
57
  if (exit._tag === "Failure" && !Cause.hasInterruptsOnly(exit.cause)) {
@@ -60,7 +82,7 @@ export const layer = /*#__PURE__*/Layer.succeed(WorkerRunner.WorkerRunnerPlatfor
60
82
  message: "received messageerror event",
61
83
  cause
62
84
  })
63
- }).asEffect());
85
+ }));
64
86
  });
65
87
  WorkerThreads.parentPort.on("error", cause => {
66
88
  Deferred.doneUnsafe(closeLatch, new WorkerError({
@@ -68,7 +90,7 @@ export const layer = /*#__PURE__*/Layer.succeed(WorkerRunner.WorkerRunnerPlatfor
68
90
  message: "received messageerror event",
69
91
  cause
70
92
  })
71
- }).asEffect());
93
+ }));
72
94
  });
73
95
  }
74
96
  sendUnsafe(0, [0]);
@@ -1 +1 @@
1
- {"version":3,"file":"NodeWorkerRunner.js","names":["Cause","Deferred","Effect","Exit","Fiber","Layer","WorkerError","WorkerReceiveError","WorkerSpawnError","WorkerRunner","WorkerThreads","layer","succeed","WorkerRunnerPlatform","start","gen","parentPort","process","send","reason","message","sendUnsafe","_portId","transfers","postMessage","_transfers","sync","run","handler","scopedWith","fnUntraced","scope","closeLatch","makeUnsafe","trackFiber","runIn","services","runFork","runForkWith","onExit","exit","_tag","hasInterruptsOnly","cause","logError","on","result","isEffect","fiber","addObserver","close","channel","unref","doneUnsafe","void","asEffect","await"],"sources":["../src/NodeWorkerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NodeWorkerRunner.js","names":["Cause","Deferred","Effect","Exit","Fiber","Layer","WorkerError","WorkerReceiveError","WorkerSpawnError","WorkerRunner","WorkerThreads","layer","succeed","WorkerRunnerPlatform","start","gen","parentPort","process","send","reason","message","sendUnsafe","_portId","transfers","postMessage","_transfers","sync","run","handler","scopedWith","fnUntraced","scope","closeLatch","makeUnsafe","trackFiber","runIn","services","context","runFork","runForkWith","onExit","exit","_tag","hasInterruptsOnly","cause","logError","on","result","isEffect","fiber","addObserver","close","channel","unref","doneUnsafe","void","await"],"sources":["../src/NodeWorkerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/Undici.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  import Undici from "undici";
5
5
  /**
6
- * @since 1.0.0
7
6
  * @category undici
7
+ * @since 4.0.0
8
8
  */
9
9
  export * from "undici";
10
10
  /**
11
- * @since 1.0.0
12
11
  * @category undici
12
+ * @since 4.0.0
13
13
  */
14
14
  export default Undici;
15
15
  //# sourceMappingURL=Undici.d.ts.map
package/dist/Undici.js CHANGED
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  import Undici from "undici";
5
5
  /**
6
- * @since 1.0.0
7
6
  * @category undici
7
+ * @since 4.0.0
8
8
  */
9
9
  export * from "undici";
10
10
  /**
11
- * @since 1.0.0
12
11
  * @category undici
12
+ * @since 4.0.0
13
13
  */
14
14
  export default Undici;
15
15
  //# sourceMappingURL=Undici.js.map