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

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 (123) hide show
  1. package/dist/Mime.d.ts +9 -3
  2. package/dist/Mime.d.ts.map +1 -1
  3. package/dist/Mime.js +9 -3
  4. package/dist/Mime.js.map +1 -1
  5. package/dist/NodeChildProcessSpawner.d.ts +1 -1
  6. package/dist/NodeChildProcessSpawner.js +1 -1
  7. package/dist/NodeClusterHttp.d.ts +49 -7
  8. package/dist/NodeClusterHttp.d.ts.map +1 -1
  9. package/dist/NodeClusterHttp.js +20 -10
  10. package/dist/NodeClusterHttp.js.map +1 -1
  11. package/dist/NodeClusterSocket.d.ts +57 -11
  12. package/dist/NodeClusterSocket.d.ts.map +1 -1
  13. package/dist/NodeClusterSocket.js +57 -11
  14. package/dist/NodeClusterSocket.js.map +1 -1
  15. package/dist/NodeCrypto.d.ts +10 -0
  16. package/dist/NodeCrypto.d.ts.map +1 -0
  17. package/dist/NodeCrypto.js +22 -0
  18. package/dist/NodeCrypto.js.map +1 -0
  19. package/dist/NodeFileSystem.d.ts +4 -2
  20. package/dist/NodeFileSystem.d.ts.map +1 -1
  21. package/dist/NodeFileSystem.js +30 -3
  22. package/dist/NodeFileSystem.js.map +1 -1
  23. package/dist/NodeHttpClient.d.ts +111 -24
  24. package/dist/NodeHttpClient.d.ts.map +1 -1
  25. package/dist/NodeHttpClient.js +133 -28
  26. package/dist/NodeHttpClient.js.map +1 -1
  27. package/dist/NodeHttpIncomingMessage.d.ts +43 -9
  28. package/dist/NodeHttpIncomingMessage.d.ts.map +1 -1
  29. package/dist/NodeHttpIncomingMessage.js +47 -8
  30. package/dist/NodeHttpIncomingMessage.js.map +1 -1
  31. package/dist/NodeHttpPlatform.d.ts +10 -4
  32. package/dist/NodeHttpPlatform.d.ts.map +1 -1
  33. package/dist/NodeHttpPlatform.js +34 -7
  34. package/dist/NodeHttpPlatform.js.map +1 -1
  35. package/dist/NodeHttpServer.d.ts +56 -16
  36. package/dist/NodeHttpServer.d.ts.map +1 -1
  37. package/dist/NodeHttpServer.js +117 -49
  38. package/dist/NodeHttpServer.js.map +1 -1
  39. package/dist/NodeHttpServerRequest.d.ts +29 -3
  40. package/dist/NodeHttpServerRequest.d.ts.map +1 -1
  41. package/dist/NodeHttpServerRequest.js +9 -2
  42. package/dist/NodeHttpServerRequest.js.map +1 -1
  43. package/dist/NodeMultipart.d.ts +47 -4
  44. package/dist/NodeMultipart.d.ts.map +1 -1
  45. package/dist/NodeMultipart.js +47 -4
  46. package/dist/NodeMultipart.js.map +1 -1
  47. package/dist/NodePath.d.ts +15 -6
  48. package/dist/NodePath.d.ts.map +1 -1
  49. package/dist/NodePath.js +43 -7
  50. package/dist/NodePath.js.map +1 -1
  51. package/dist/NodeRedis.d.ts +56 -9
  52. package/dist/NodeRedis.d.ts.map +1 -1
  53. package/dist/NodeRedis.js +59 -12
  54. package/dist/NodeRedis.js.map +1 -1
  55. package/dist/NodeRuntime.d.ts +27 -36
  56. package/dist/NodeRuntime.d.ts.map +1 -1
  57. package/dist/NodeRuntime.js +38 -13
  58. package/dist/NodeRuntime.js.map +1 -1
  59. package/dist/NodeServices.d.ts +44 -5
  60. package/dist/NodeServices.d.ts.map +1 -1
  61. package/dist/NodeServices.js +7 -3
  62. package/dist/NodeServices.js.map +1 -1
  63. package/dist/NodeSink.d.ts +2 -2
  64. package/dist/NodeSink.js +2 -2
  65. package/dist/NodeSocket.d.ts +18 -3
  66. package/dist/NodeSocket.d.ts.map +1 -1
  67. package/dist/NodeSocket.js +51 -4
  68. package/dist/NodeSocket.js.map +1 -1
  69. package/dist/NodeSocketServer.d.ts +2 -2
  70. package/dist/NodeSocketServer.js +2 -2
  71. package/dist/NodeStdio.d.ts +5 -2
  72. package/dist/NodeStdio.d.ts.map +1 -1
  73. package/dist/NodeStdio.js +30 -3
  74. package/dist/NodeStdio.js.map +1 -1
  75. package/dist/NodeStream.d.ts +2 -2
  76. package/dist/NodeStream.js +2 -2
  77. package/dist/NodeTerminal.d.ts +8 -2
  78. package/dist/NodeTerminal.d.ts.map +1 -1
  79. package/dist/NodeTerminal.js +29 -3
  80. package/dist/NodeTerminal.js.map +1 -1
  81. package/dist/NodeWorker.d.ts +9 -2
  82. package/dist/NodeWorker.d.ts.map +1 -1
  83. package/dist/NodeWorker.js +45 -6
  84. package/dist/NodeWorker.js.map +1 -1
  85. package/dist/NodeWorkerRunner.d.ts +5 -1
  86. package/dist/NodeWorkerRunner.d.ts.map +1 -1
  87. package/dist/NodeWorkerRunner.js +47 -5
  88. package/dist/NodeWorkerRunner.js.map +1 -1
  89. package/dist/Undici.d.ts +16 -3
  90. package/dist/Undici.d.ts.map +1 -1
  91. package/dist/Undici.js +16 -3
  92. package/dist/Undici.js.map +1 -1
  93. package/dist/index.d.ts +28 -26
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +28 -26
  96. package/dist/index.js.map +1 -1
  97. package/package.json +9 -9
  98. package/src/Mime.ts +10 -3
  99. package/src/NodeChildProcessSpawner.ts +1 -1
  100. package/src/NodeClusterHttp.ts +54 -11
  101. package/src/NodeClusterSocket.ts +57 -11
  102. package/src/NodeCrypto.ts +24 -0
  103. package/src/NodeFileSystem.ts +30 -3
  104. package/src/NodeHttpClient.ts +141 -33
  105. package/src/NodeHttpIncomingMessage.ts +55 -12
  106. package/src/NodeHttpPlatform.ts +35 -6
  107. package/src/NodeHttpServer.ts +139 -53
  108. package/src/NodeHttpServerRequest.ts +29 -3
  109. package/src/NodeMultipart.ts +47 -4
  110. package/src/NodePath.ts +43 -7
  111. package/src/NodeRedis.ts +61 -14
  112. package/src/NodeRuntime.ts +56 -37
  113. package/src/NodeServices.ts +46 -5
  114. package/src/NodeSink.ts +2 -2
  115. package/src/NodeSocket.ts +56 -4
  116. package/src/NodeSocketServer.ts +2 -2
  117. package/src/NodeStdio.ts +30 -3
  118. package/src/NodeStream.ts +2 -2
  119. package/src/NodeTerminal.ts +29 -3
  120. package/src/NodeWorker.ts +45 -6
  121. package/src/NodeWorkerRunner.ts +47 -5
  122. package/src/Undici.ts +16 -3
  123. package/src/index.ts +29 -26
@@ -1,15 +1,45 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Node.js implementation of the Effect `HttpServer`.
3
+ *
4
+ * This module adapts a supplied Node `http.Server` into Effect's
5
+ * platform-independent HTTP server service. It starts the server with Node
6
+ * `listen` options, converts `request` events into `HttpServerRequest` values,
7
+ * writes `HttpServerResponse` bodies through Node's `ServerResponse`, and
8
+ * handles `upgrade` events by exposing the upgraded socket through
9
+ * `HttpServerRequest.upgrade`.
10
+ *
11
+ * Common use cases include serving an Effect HTTP application with {@link layer}
12
+ * or {@link layerConfig}, embedding request or upgrade handlers into an
13
+ * existing Node server with {@link makeHandler} and {@link makeUpgradeHandler},
14
+ * and using {@link layerTest} for integration tests that need an ephemeral
15
+ * listening port and a client pointed at it.
16
+ *
17
+ * Listen options are passed directly to Node, so host, port, backlog, and Unix
18
+ * socket path behavior follow `node:http`. The server begins listening when the
19
+ * `HttpServer` is acquired, and handlers are installed when `serve` is run.
20
+ * Request fibers are interrupted with `ClientAbort` when the client disconnects
21
+ * before a response finishes. WebSocket support only applies to Node `upgrade`
22
+ * requests, and ordinary HTTP requests fail if their application attempts to use
23
+ * `HttpServerRequest.upgrade`.
24
+ *
25
+ * Scope ownership is important: the server is closed when the acquiring scope
26
+ * finalizes, while each `serve` call installs its own request and upgrade
27
+ * listeners and removes them on finalization. Unless preemptive shutdown is
28
+ * disabled, finalizing a serve scope also starts a graceful server close, using
29
+ * the configured timeout or the default timeout.
30
+ *
31
+ * @since 4.0.0
3
32
  */
4
33
  import * as Cause from "effect/Cause";
5
34
  import * as Config from "effect/Config";
35
+ import * as Context from "effect/Context";
36
+ import * as Duration from "effect/Duration";
6
37
  import * as Effect from "effect/Effect";
7
38
  import * as Fiber from "effect/Fiber";
8
39
  import { flow } from "effect/Function";
9
40
  import * as Latch from "effect/Latch";
10
41
  import * as Layer from "effect/Layer";
11
42
  import * as Scope from "effect/Scope";
12
- import * as ServiceMap from "effect/ServiceMap";
13
43
  import * as Stream from "effect/Stream";
14
44
  import * as Cookies from "effect/unstable/http/Cookies";
15
45
  import * as Etag from "effect/unstable/http/Etag";
@@ -17,7 +47,7 @@ import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
17
47
  import * as HttpEffect from "effect/unstable/http/HttpEffect";
18
48
  import * as HttpIncomingMessage from "effect/unstable/http/HttpIncomingMessage";
19
49
  import * as HttpServer from "effect/unstable/http/HttpServer";
20
- import { causeResponse, clientAbortFiberId, HttpServerError, RequestParseError, ResponseError, ServeError } from "effect/unstable/http/HttpServerError";
50
+ import { causeResponse, ClientAbort, HttpServerError, RequestParseError, ResponseError, ServeError } from "effect/unstable/http/HttpServerError";
21
51
  import * as Request from "effect/unstable/http/HttpServerRequest";
22
52
  import { HttpServerRequest } from "effect/unstable/http/HttpServerRequest";
23
53
  import * as Socket from "effect/unstable/socket/Socket";
@@ -30,13 +60,17 @@ import * as NodeMultipart from "./NodeMultipart.js";
30
60
  import * as NodeServices from "./NodeServices.js";
31
61
  import { NodeWS } from "./NodeSocket.js";
32
62
  /**
33
- * @since 1.0.0
63
+ * Creates a scoped `HttpServer` from a Node `http.Server`, starts listening
64
+ * with the supplied options, registers request and upgrade handling, and closes
65
+ * the server during scope finalization with optional graceful-shutdown control.
66
+ *
34
67
  * @category constructors
68
+ * @since 4.0.0
35
69
  */
36
70
  export const make = /*#__PURE__*/Effect.fnUntraced(function* (evaluate, options) {
37
71
  const scope = yield* Effect.scope;
38
72
  const server = evaluate();
39
- yield* Scope.addFinalizer(scope, Effect.callback(resume => {
73
+ const shutdown = yield* Effect.callback(resume => {
40
74
  if (!server.listening) {
41
75
  return resume(Effect.void);
42
76
  }
@@ -47,7 +81,12 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (evaluate, options)
47
81
  resume(Effect.void);
48
82
  }
49
83
  });
50
- }));
84
+ }).pipe(Effect.cached);
85
+ const preemptiveShutdown = options.disablePreemptiveShutdown ? Effect.void : Effect.timeoutOrElse(shutdown, {
86
+ duration: options.gracefulShutdownTimeout ?? Duration.seconds(20),
87
+ orElse: () => Effect.void
88
+ });
89
+ yield* Scope.addFinalizer(scope, shutdown);
51
90
  yield* Effect.callback(resume => {
52
91
  function onError(cause) {
53
92
  resume(Effect.fail(new ServeError({
@@ -76,7 +115,8 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (evaluate, options)
76
115
  port: address.port
77
116
  },
78
117
  serve: Effect.fnUntraced(function* (httpApp, middleware) {
79
- const scope = yield* Effect.scope;
118
+ const serveScope = yield* Effect.scope;
119
+ const scope = Scope.forkUnsafe(serveScope, "parallel");
80
120
  const handler = yield* makeHandler(httpApp, {
81
121
  middleware: middleware,
82
122
  scope
@@ -85,62 +125,75 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (evaluate, options)
85
125
  middleware: middleware,
86
126
  scope
87
127
  });
88
- yield* Effect.addFinalizer(() => Effect.sync(() => {
128
+ yield* Scope.addFinalizerExit(serveScope, () => {
89
129
  server.off("request", handler);
90
130
  server.off("upgrade", upgradeHandler);
91
- }));
131
+ return preemptiveShutdown;
132
+ });
92
133
  server.on("request", handler);
93
134
  server.on("upgrade", upgradeHandler);
94
135
  })
95
136
  });
96
137
  });
97
138
  /**
98
- * @since 1.0.0
139
+ * Creates a Node `request` event handler for an Effect HTTP application,
140
+ * injecting a `HttpServerRequest` and interrupting the request fiber if the
141
+ * client closes the response before it finishes.
142
+ *
99
143
  * @category Handlers
144
+ * @since 4.0.0
100
145
  */
101
146
  export const makeHandler = (httpEffect, options) => {
102
147
  const handled = HttpEffect.toHandled(httpEffect, handleResponse, options.middleware);
103
- return Effect.map(Effect.services(), services => {
104
- return function handler(nodeRequest, nodeResponse) {
148
+ return Effect.withFiber(parent => {
149
+ const services = parent.context;
150
+ return Effect.succeed(function handler(nodeRequest, nodeResponse) {
105
151
  const map = new Map(services.mapUnsafe);
106
152
  map.set(HttpServerRequest.key, new ServerRequestImpl(nodeRequest, nodeResponse));
107
- const fiber = Fiber.runIn(Effect.runForkWith(ServiceMap.makeUnsafe(map))(handled), options.scope);
153
+ const fiber = Fiber.runIn(Effect.runForkWith(Context.makeUnsafe(map))(handled), options.scope);
108
154
  nodeResponse.on("close", () => {
109
155
  if (!nodeResponse.writableEnded) {
110
- fiber.interruptUnsafe(clientAbortFiberId);
156
+ fiber.interruptUnsafe(parent.id, ClientAbort.annotation);
111
157
  }
112
158
  });
113
- };
159
+ });
114
160
  });
115
161
  };
116
162
  /**
117
- * @since 1.0.0
163
+ * Creates a Node `upgrade` event handler for an Effect HTTP application,
164
+ * exposing the upgraded WebSocket as the request's `upgrade` effect and
165
+ * interrupting the request fiber when the socket closes early.
166
+ *
118
167
  * @category Handlers
168
+ * @since 4.0.0
119
169
  */
120
170
  export const makeUpgradeHandler = (lazyWss, httpEffect, options) => {
121
171
  const handledApp = HttpEffect.toHandled(httpEffect, handleResponse, options.middleware);
122
- return Effect.map(Effect.services(), services => function handler(nodeRequest, socket, head) {
123
- let nodeResponse_ = undefined;
124
- const nodeResponse = () => {
125
- if (nodeResponse_ === undefined) {
126
- nodeResponse_ = new Http.ServerResponse(nodeRequest);
127
- nodeResponse_.assignSocket(socket);
128
- nodeResponse_.on("finish", () => {
129
- socket.end();
130
- });
131
- }
132
- return nodeResponse_;
133
- };
134
- const upgradeEffect = Socket.fromWebSocket(Effect.flatMap(lazyWss, wss => Effect.acquireRelease(Effect.callback(resume => wss.handleUpgrade(nodeRequest, socket, head, ws => {
135
- resume(Effect.succeed(ws));
136
- })), ws => Effect.sync(() => ws.close()))));
137
- const map = new Map(services.mapUnsafe);
138
- map.set(HttpServerRequest.key, new ServerRequestImpl(nodeRequest, nodeResponse, upgradeEffect));
139
- const fiber = Fiber.runIn(Effect.runForkWith(ServiceMap.makeUnsafe(map))(handledApp), options.scope);
140
- socket.on("close", () => {
141
- if (!socket.writableEnded) {
142
- fiber.interruptUnsafe(clientAbortFiberId);
143
- }
172
+ return Effect.withFiber(parent => {
173
+ const services = parent.context;
174
+ return Effect.succeed(function handler(nodeRequest, socket, head) {
175
+ let nodeResponse_ = undefined;
176
+ const nodeResponse = () => {
177
+ if (nodeResponse_ === undefined) {
178
+ nodeResponse_ = new Http.ServerResponse(nodeRequest);
179
+ nodeResponse_.assignSocket(socket);
180
+ nodeResponse_.on("finish", () => {
181
+ socket.end();
182
+ });
183
+ }
184
+ return nodeResponse_;
185
+ };
186
+ const upgradeEffect = Socket.fromWebSocket(Effect.flatMap(lazyWss, wss => Effect.acquireRelease(Effect.callback(resume => wss.handleUpgrade(nodeRequest, socket, head, ws => {
187
+ resume(Effect.succeed(ws));
188
+ })), ws => Effect.sync(() => ws.close()))));
189
+ const map = new Map(services.mapUnsafe);
190
+ map.set(HttpServerRequest.key, new ServerRequestImpl(nodeRequest, nodeResponse, upgradeEffect));
191
+ const fiber = Fiber.runIn(Effect.runForkWith(Context.makeUnsafe(map))(handledApp), options.scope);
192
+ socket.on("close", () => {
193
+ if (!socket.writableEnded) {
194
+ fiber.interruptUnsafe(parent.id, ClientAbort.annotation);
195
+ }
196
+ });
144
197
  });
145
198
  });
146
199
  };
@@ -174,7 +227,7 @@ class ServerRequestImpl extends NodeHttpIncomingMessage {
174
227
  return typeof this.response === "function" ? this.response() : this.response;
175
228
  }
176
229
  modify(options) {
177
- return new ServerRequestImpl(this.source, this.response, this.upgradeEffect, options.url ?? this.url, options.headers ?? this.headersOverride, options.remoteAddress ?? this.remoteAddressOverride);
230
+ return new ServerRequestImpl(this.source, this.response, this.upgradeEffect, options.url ?? this.url, options.headers ?? this.headersOverride, "remoteAddress" in options ? options.remoteAddress : this.remoteAddressOverride);
178
231
  }
179
232
  get originalUrl() {
180
233
  return this.source.url;
@@ -217,28 +270,43 @@ class ServerRequestImpl extends NodeHttpIncomingMessage {
217
270
  }
218
271
  }
219
272
  /**
220
- * @since 1.0.0
221
- * @category Layers
273
+ * Provides an `HttpServer` by creating and managing a scoped Node
274
+ * `http.Server` with the supplied listen and shutdown options.
275
+ *
276
+ * @category layers
277
+ * @since 4.0.0
222
278
  */
223
279
  export const layerServer = /*#__PURE__*/flow(make, /*#__PURE__*/Layer.effect(HttpServer.HttpServer));
224
280
  /**
225
- * @since 1.0.0
226
- * @category Layers
281
+ * Provides the Node HTTP support services used by `NodeHttpServer`, including
282
+ * the HTTP platform, ETag generator, and core Node platform services.
283
+ *
284
+ * @category layers
285
+ * @since 4.0.0
227
286
  */
228
287
  export const layerHttpServices = /*#__PURE__*/Layer.mergeAll(NodeHttpPlatform.layer, Etag.layerWeak, NodeServices.layer);
229
288
  /**
230
- * @since 1.0.0
231
- * @category Layers
289
+ * Provides a Node `HttpServer` together with the Node HTTP platform, ETag, and
290
+ * core platform services required to serve requests.
291
+ *
292
+ * @category layers
293
+ * @since 4.0.0
232
294
  */
233
295
  export const layer = (evaluate, options) => Layer.mergeAll(layerServer(evaluate, options), layerHttpServices);
234
296
  /**
235
- * @since 1.0.0
236
- * @category Layers
297
+ * Provides a Node `HttpServer` and HTTP support services, reading the listen
298
+ * and shutdown options from a `Config` value.
299
+ *
300
+ * @category layers
301
+ * @since 4.0.0
237
302
  */
238
- export const layerConfig = (evaluate, options) => Layer.mergeAll(Layer.effect(HttpServer.HttpServer)(Effect.flatMap(Config.unwrap(options).asEffect(), options => make(evaluate, options))), layerHttpServices);
303
+ export const layerConfig = (evaluate, options) => Layer.mergeAll(Layer.effect(HttpServer.HttpServer)(Effect.flatMap(Config.unwrap(options), options => make(evaluate, options))), layerHttpServices);
239
304
  /**
240
- * @since 1.0.0
305
+ * Provides a test HTTP server listening on an ephemeral port together with a
306
+ * Fetch-backed `HttpClient` configured for server integration tests.
307
+ *
241
308
  * @category Testing
309
+ * @since 4.0.0
242
310
  */
243
311
  export const layerTest = /*#__PURE__*/HttpServer.layerTestClient.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.fresh(FetchHttpClient.layer).pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.succeed(FetchHttpClient.RequestInit)({
244
312
  keepalive: false
@@ -1 +1 @@
1
- {"version":3,"file":"NodeHttpServer.js","names":["Cause","Config","Effect","Fiber","flow","Latch","Layer","Scope","ServiceMap","Stream","Cookies","Etag","FetchHttpClient","HttpEffect","HttpIncomingMessage","HttpServer","causeResponse","clientAbortFiberId","HttpServerError","RequestParseError","ResponseError","ServeError","Request","HttpServerRequest","Socket","Http","Readable","pipeline","NodeHttpIncomingMessage","NodeHttpPlatform","NodeMultipart","NodeServices","NodeWS","make","fnUntraced","evaluate","options","scope","server","addFinalizer","callback","resume","listening","void","close","error","die","onError","cause","fail","on","listen","off","address","wss","acquireRelease","sync","WebSocketServer","noServer","pipe","provide","cached","_tag","path","hostname","port","serve","httpApp","middleware","handler","makeHandler","upgradeHandler","makeUpgradeHandler","httpEffect","handled","toHandled","handleResponse","map","services","nodeRequest","nodeResponse","Map","mapUnsafe","set","key","ServerRequestImpl","fiber","runIn","runForkWith","makeUnsafe","writableEnded","interruptUnsafe","lazyWss","handledApp","socket","head","nodeResponse_","undefined","ServerResponse","assignSocket","end","upgradeEffect","fromWebSocket","flatMap","handleUpgrade","ws","succeed","TypeId","response","url","headersOverride","constructor","source","remoteAddressOverride","reason","request","cachedCookies","cookies","parseHeader","headers","cookie","resolvedResponse","modify","remoteAddress","originalUrl","method","toUpperCase","multipartEffect","multipart","runSync","persisted","multipartStream","stream","upgrade","description","toString","toJSON","inspect","_id","layerServer","effect","layerHttpServices","mergeAll","layer","layerWeak","layerConfig","unwrap","asEffect","layerTest","layerTestClient","fresh","RequestInit","keepalive","provideMerge","createServer","isEmpty","toSet","toSetCookieHeaders","push","writeHead","status","body","tryPromise","try","signal","catch","interruptible","tapCause","handleCause","length","suspend","r","globalThis","Response","formData","Object","fromEntries","fromWeb","once","drainLatch","openUnsafe","orDie","runForEachArray","array","needDrain","i","written","write","closeUnsafe","await","matchCauseEffect","onSuccess","onFailure","originalResponse","originalCause","headersSent","failCause","combine"],"sources":["../src/NodeHttpServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NodeHttpServer.js","names":["Cause","Config","Context","Duration","Effect","Fiber","flow","Latch","Layer","Scope","Stream","Cookies","Etag","FetchHttpClient","HttpEffect","HttpIncomingMessage","HttpServer","causeResponse","ClientAbort","HttpServerError","RequestParseError","ResponseError","ServeError","Request","HttpServerRequest","Socket","Http","Readable","pipeline","NodeHttpIncomingMessage","NodeHttpPlatform","NodeMultipart","NodeServices","NodeWS","make","fnUntraced","evaluate","options","scope","server","shutdown","callback","resume","listening","void","close","error","die","pipe","cached","preemptiveShutdown","disablePreemptiveShutdown","timeoutOrElse","duration","gracefulShutdownTimeout","seconds","orElse","addFinalizer","onError","cause","fail","on","listen","off","address","wss","acquireRelease","sync","WebSocketServer","noServer","provide","_tag","path","hostname","port","serve","httpApp","middleware","serveScope","forkUnsafe","handler","makeHandler","upgradeHandler","makeUpgradeHandler","addFinalizerExit","httpEffect","handled","toHandled","handleResponse","withFiber","parent","services","context","succeed","nodeRequest","nodeResponse","map","Map","mapUnsafe","set","key","ServerRequestImpl","fiber","runIn","runForkWith","makeUnsafe","writableEnded","interruptUnsafe","id","annotation","lazyWss","handledApp","socket","head","nodeResponse_","undefined","ServerResponse","assignSocket","end","upgradeEffect","fromWebSocket","flatMap","handleUpgrade","ws","TypeId","response","url","headersOverride","constructor","source","remoteAddressOverride","reason","request","cachedCookies","cookies","parseHeader","headers","cookie","resolvedResponse","modify","remoteAddress","originalUrl","method","toUpperCase","multipartEffect","multipart","runSync","persisted","multipartStream","stream","upgrade","description","toString","toJSON","inspect","_id","layerServer","effect","layerHttpServices","mergeAll","layer","layerWeak","layerConfig","unwrap","layerTest","layerTestClient","fresh","RequestInit","keepalive","provideMerge","createServer","isEmpty","toSet","toSetCookieHeaders","push","writeHead","status","body","tryPromise","try","signal","catch","interruptible","tapCause","handleCause","length","suspend","r","globalThis","Response","formData","Object","fromEntries","fromWeb","once","drainLatch","openUnsafe","orDie","runForEachArray","array","needDrain","i","written","write","closeUnsafe","await","matchCauseEffect","onSuccess","onFailure","originalResponse","originalCause","headersSent","failCause","combine"],"sources":["../src/NodeHttpServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,42 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Accessors for the Node.js objects backing a platform Node
3
+ * `HttpServerRequest`.
4
+ *
5
+ * Use this module at interop boundaries when an Effect HTTP handler needs the
6
+ * original `http.IncomingMessage` or `http.ServerResponse` for APIs that are
7
+ * specific to Node, such as existing middleware, socket inspection, raw stream
8
+ * piping, or response customization that cannot be expressed with the portable
9
+ * `HttpServerRequest` and `HttpServerResponse` interfaces.
10
+ *
11
+ * The returned request is the original Node request supplied to the server. It
12
+ * does not reflect Effect request overrides made by middleware, such as a
13
+ * rewritten URL, adjusted headers, or a substituted remote address. Its body is
14
+ * also Node's one-shot readable stream, so avoid mixing raw stream consumption
15
+ * with Effect body, multipart, or stream helpers unless ownership of the body
16
+ * is clear. The returned response is the Node response owned by the platform
17
+ * server; writing to it directly bypasses the usual Effect response writer and
18
+ * must be coordinated carefully to avoid duplicate writes. Upgrade requests may
19
+ * create that response lazily when it is first requested.
20
+ *
21
+ * @since 4.0.0
3
22
  */
4
23
  import type { HttpServerRequest } from "effect/unstable/http/HttpServerRequest";
5
24
  import type * as Http from "node:http";
6
25
  /**
7
- * @since 1.0.0
26
+ * Returns the underlying Node `IncomingMessage` for a platform Node
27
+ * `HttpServerRequest`.
28
+ *
8
29
  * @category Accessors
30
+ * @since 4.0.0
9
31
  */
10
32
  export declare const toIncomingMessage: (self: HttpServerRequest) => Http.IncomingMessage;
11
33
  /**
12
- * @since 1.0.0
34
+ * Returns the underlying Node `ServerResponse` for a platform Node
35
+ * `HttpServerRequest`, evaluating the stored response thunk when the response
36
+ * was created lazily.
37
+ *
13
38
  * @category Accessors
39
+ * @since 4.0.0
14
40
  */
15
41
  export declare const toServerResponse: (self: HttpServerRequest) => Http.ServerResponse;
16
42
  //# sourceMappingURL=NodeHttpServerRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeHttpServerRequest.d.ts","sourceRoot":"","sources":["../src/NodeHttpServerRequest.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAA;AAEtC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,iBAAiB,KAAG,IAAI,CAAC,eAAqC,CAAA;AAEtG;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,iBAAiB,KAAG,IAAI,CAAC,cAG/D,CAAA"}
1
+ {"version":3,"file":"NodeHttpServerRequest.d.ts","sourceRoot":"","sources":["../src/NodeHttpServerRequest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAA;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,iBAAiB,KAAG,IAAI,CAAC,eAAqC,CAAA;AAEtG;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,iBAAiB,KAAG,IAAI,CAAC,cAG/D,CAAA"}
@@ -1,11 +1,18 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Returns the underlying Node `IncomingMessage` for a platform Node
3
+ * `HttpServerRequest`.
4
+ *
3
5
  * @category Accessors
6
+ * @since 4.0.0
4
7
  */
5
8
  export const toIncomingMessage = self => self.source;
6
9
  /**
7
- * @since 1.0.0
10
+ * Returns the underlying Node `ServerResponse` for a platform Node
11
+ * `HttpServerRequest`, evaluating the stored response thunk when the response
12
+ * was created lazily.
13
+ *
8
14
  * @category Accessors
15
+ * @since 4.0.0
9
16
  */
10
17
  export const toServerResponse = self => {
11
18
  const res = self.response;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeHttpServerRequest.js","names":["toIncomingMessage","self","source","toServerResponse","res","response"],"sources":["../src/NodeHttpServerRequest.ts"],"sourcesContent":[null],"mappings":"AAMA;;;;AAIA,OAAO,MAAMA,iBAAiB,GAAIC,IAAuB,IAA2BA,IAAI,CAACC,MAAa;AAEtG;;;;AAIA,OAAO,MAAMC,gBAAgB,GAAIF,IAAuB,IAAyB;EAC/E,MAAMG,GAAG,GAAIH,IAAY,CAACI,QAAQ;EAClC,OAAO,OAAOD,GAAG,KAAK,UAAU,GAAGA,GAAG,EAAE,GAAGA,GAAG;AAChD,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"NodeHttpServerRequest.js","names":["toIncomingMessage","self","source","toServerResponse","res","response"],"sources":["../src/NodeHttpServerRequest.ts"],"sourcesContent":[null],"mappings":"AAyBA;;;;;;;AAOA,OAAO,MAAMA,iBAAiB,GAAIC,IAAuB,IAA2BA,IAAI,CAACC,MAAa;AAEtG;;;;;;;;AAQA,OAAO,MAAMC,gBAAgB,GAAIF,IAAuB,IAAyB;EAC/E,MAAMG,GAAG,GAAIH,IAAY,CAACI,QAAQ;EAClC,OAAO,OAAOD,GAAG,KAAK,UAAU,GAAGA,GAAG,EAAE,GAAGA,GAAG;AAChD,CAAC","ignoreList":[]}
@@ -1,5 +1,37 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Node.js multipart parsing for HTTP `multipart/form-data` request bodies.
3
+ *
4
+ * `NodeMultipart` adapts a Node `Readable` plus incoming HTTP headers into
5
+ * Effect's shared multipart model. It can expose form parts as a stream for
6
+ * incremental processing, or collect a complete persisted form by writing file
7
+ * uploads to scoped temporary files through the current `FileSystem` and `Path`
8
+ * services.
9
+ *
10
+ * **Mental model**
11
+ *
12
+ * Multipart request bodies are one-shot byte streams. {@link stream} parses the
13
+ * body as it arrives: fields are decoded to strings and file parts keep their
14
+ * underlying Node readable stream. {@link persisted} consumes the same kind of
15
+ * body, builds a `Multipart.Persisted` record, and ties temporary upload files
16
+ * to the surrounding `Scope`.
17
+ *
18
+ * **Common tasks**
19
+ *
20
+ * - Use {@link stream} when a route validates fields while piping file uploads
21
+ * to storage.
22
+ * - Use {@link persisted} when a route needs a complete form value with scoped
23
+ * temporary files.
24
+ * - Use {@link fileToReadable} when a downstream Node library expects a
25
+ * `Readable`.
26
+ *
27
+ * **Gotchas**
28
+ *
29
+ * Consume a request body with only one parser. File parts must be drained,
30
+ * piped, or persisted so the request can finish reading. `contentEffect` loads
31
+ * an uploaded file into memory, so reserve it for small files. Client-supplied
32
+ * filenames are metadata, not trusted filesystem paths.
33
+ *
34
+ * @since 4.0.0
3
35
  */
4
36
  import * as Effect from "effect/Effect";
5
37
  import type * as FileSystem from "effect/FileSystem";
@@ -10,17 +42,28 @@ import * as Multipart from "effect/unstable/http/Multipart";
10
42
  import type { IncomingHttpHeaders } from "node:http";
11
43
  import type { Readable } from "node:stream";
12
44
  /**
13
- * @since 1.0.0
45
+ * Parses multipart data from a Node readable request body and headers into a
46
+ * stream of `Multipart.Part` values, converting parser failures to
47
+ * `MultipartError`.
48
+ *
14
49
  * @category constructors
50
+ * @since 4.0.0
15
51
  */
16
52
  export declare const stream: (source: Readable, headers: IncomingHttpHeaders) => Stream.Stream<Multipart.Part, Multipart.MultipartError>;
17
53
  /**
18
- * @since 1.0.0
54
+ * Parses multipart data from a Node readable request body and persists file
55
+ * parts using the current `FileSystem`, `Path`, and `Scope` services.
56
+ *
19
57
  * @category constructors
58
+ * @since 4.0.0
20
59
  */
21
60
  export declare const persisted: (source: Readable, headers: IncomingHttpHeaders) => Effect.Effect<Multipart.Persisted, Multipart.MultipartError, Scope.Scope | FileSystem.FileSystem | Path.Path>;
22
61
  /**
23
- * @since 1.0.0
62
+ * Returns the underlying Node readable stream for a multipart file produced by
63
+ * the Node multipart parser.
64
+ *
65
+ * @category converting
66
+ * @since 4.0.0
24
67
  */
25
68
  export declare const fileToReadable: (file: Multipart.File) => Readable;
26
69
  //# sourceMappingURL=NodeMultipart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeMultipart.d.ts","sourceRoot":"","sources":["../src/NodeMultipart.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAA;AAG3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C;;;GAGG;AACH,eAAO,MAAM,MAAM,GACjB,QAAQ,QAAQ,EAChB,SAAS,mBAAmB,KAC3B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,cAAc,CActD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS,GACpB,QAAQ,QAAQ,EAChB,SAAS,mBAAmB,KAC3B,MAAM,CAAC,MAAM,CACd,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,cAAc,EACxB,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAM1C,CAAA;AAEP;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,CAAC,IAAI,KAAG,QAAmC,CAAA"}
1
+ {"version":3,"file":"NodeMultipart.d.ts","sourceRoot":"","sources":["../src/NodeMultipart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAA;AAG3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,GACjB,QAAQ,QAAQ,EAChB,SAAS,mBAAmB,KAC3B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,cAAc,CActD,CAAA;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GACpB,QAAQ,QAAQ,EAChB,SAAS,mBAAmB,KAC3B,MAAM,CAAC,MAAM,CACd,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,cAAc,EACxB,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAM1C,CAAA;AAEP;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,CAAC,IAAI,KAAG,QAAmC,CAAA"}
@@ -1,5 +1,37 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Node.js multipart parsing for HTTP `multipart/form-data` request bodies.
3
+ *
4
+ * `NodeMultipart` adapts a Node `Readable` plus incoming HTTP headers into
5
+ * Effect's shared multipart model. It can expose form parts as a stream for
6
+ * incremental processing, or collect a complete persisted form by writing file
7
+ * uploads to scoped temporary files through the current `FileSystem` and `Path`
8
+ * services.
9
+ *
10
+ * **Mental model**
11
+ *
12
+ * Multipart request bodies are one-shot byte streams. {@link stream} parses the
13
+ * body as it arrives: fields are decoded to strings and file parts keep their
14
+ * underlying Node readable stream. {@link persisted} consumes the same kind of
15
+ * body, builds a `Multipart.Persisted` record, and ties temporary upload files
16
+ * to the surrounding `Scope`.
17
+ *
18
+ * **Common tasks**
19
+ *
20
+ * - Use {@link stream} when a route validates fields while piping file uploads
21
+ * to storage.
22
+ * - Use {@link persisted} when a route needs a complete form value with scoped
23
+ * temporary files.
24
+ * - Use {@link fileToReadable} when a downstream Node library expects a
25
+ * `Readable`.
26
+ *
27
+ * **Gotchas**
28
+ *
29
+ * Consume a request body with only one parser. File parts must be drained,
30
+ * piped, or persisted so the request can finish reading. `contentEffect` loads
31
+ * an uploaded file into memory, so reserve it for small files. Client-supplied
32
+ * filenames are metadata, not trusted filesystem paths.
33
+ *
34
+ * @since 4.0.0
3
35
  */
4
36
  import * as Effect from "effect/Effect";
5
37
  import * as Inspectable from "effect/Inspectable";
@@ -10,8 +42,12 @@ import * as NFS from "node:fs";
10
42
  import * as NodeStreamP from "node:stream/promises";
11
43
  import * as NodeStream from "./NodeStream.js";
12
44
  /**
13
- * @since 1.0.0
45
+ * Parses multipart data from a Node readable request body and headers into a
46
+ * stream of `Multipart.Part` values, converting parser failures to
47
+ * `MultipartError`.
48
+ *
14
49
  * @category constructors
50
+ * @since 4.0.0
15
51
  */
16
52
  export const stream = (source, headers) => Multipart.makeConfig(headers).pipe(Effect.map(config => NodeStream.fromReadable({
17
53
  evaluate() {
@@ -22,8 +58,11 @@ export const stream = (source, headers) => Multipart.makeConfig(headers).pipe(Ef
22
58
  onError: error => convertError(error)
23
59
  })), Stream.unwrap, Stream.map(convertPart));
24
60
  /**
25
- * @since 1.0.0
61
+ * Parses multipart data from a Node readable request body and persists file
62
+ * parts using the current `FileSystem`, `Path`, and `Scope` services.
63
+ *
26
64
  * @category constructors
65
+ * @since 4.0.0
27
66
  */
28
67
  export const persisted = (source, headers) => Multipart.toPersisted(stream(source, headers), (path, file) => Effect.tryPromise({
29
68
  try: signal => NodeStreamP.pipeline(file.file, NFS.createWriteStream(path), {
@@ -32,7 +71,11 @@ export const persisted = (source, headers) => Multipart.toPersisted(stream(sourc
32
71
  catch: cause => Multipart.MultipartError.fromReason("InternalError", cause)
33
72
  }));
34
73
  /**
35
- * @since 1.0.0
74
+ * Returns the underlying Node readable stream for a multipart file produced by
75
+ * the Node multipart parser.
76
+ *
77
+ * @category converting
78
+ * @since 4.0.0
36
79
  */
37
80
  export const fileToReadable = file => file.file;
38
81
  // -----------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"NodeMultipart.js","names":["Effect","Inspectable","Stream","Multipart","MP","NFS","NodeStreamP","NodeStream","stream","source","headers","makeConfig","pipe","map","config","fromReadable","evaluate","parser","make","onError","error","convertError","unwrap","convertPart","persisted","toPersisted","path","file","tryPromise","try","signal","pipeline","createWriteStream","catch","cause","MultipartError","fromReason","fileToReadable","part","_tag","FieldImpl","info","value","FileImpl","PartBase","Class","TypeId","constructor","key","contentType","name","decodeField","toJSON","_id","content","contentEffect","filename","toUint8Array","limit"],"sources":["../src/NodeMultipart.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NodeMultipart.js","names":["Effect","Inspectable","Stream","Multipart","MP","NFS","NodeStreamP","NodeStream","stream","source","headers","makeConfig","pipe","map","config","fromReadable","evaluate","parser","make","onError","error","convertError","unwrap","convertPart","persisted","toPersisted","path","file","tryPromise","try","signal","pipeline","createWriteStream","catch","cause","MultipartError","fromReason","fileToReadable","part","_tag","FieldImpl","info","value","FileImpl","PartBase","Class","TypeId","constructor","key","contentType","name","decodeField","toJSON","_id","content","contentEffect","filename","toUint8Array","limit"],"sources":["../src/NodeMultipart.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}