@nifrajs/node 2.12.1 → 2.14.1

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.
package/dist/index.d.ts CHANGED
@@ -106,6 +106,18 @@ export interface ServeOptions {
106
106
  * SSR/API routes). Replaces the hand-rolled `/assets/*` reader in self-hosted entries.
107
107
  */
108
108
  readonly static?: ServeStaticOptions;
109
+ /**
110
+ * Make a hand-rolled `return new Response(body)` ride the direct-write lane, by swapping
111
+ * `globalThis.Response` for a stand-in that defers a *simple* construction (a string body, no
112
+ * `statusText`, no headers or a plain header record) the way `c.text` / `c.json` already do.
113
+ *
114
+ * Off by default: prefer `c.text` / `c.json`, which get this without a global swap. Reach for the
115
+ * flag only when handlers construct `Response` by hand on the hot path. It patches a process-global
116
+ * builtin, so every `new Response(...)` anywhere in the process goes through the stand-in -
117
+ * transparent (non-simple bodies build a real `Response`, and simple ones stay `instanceof
118
+ * Response`), but a broad enough change to be opt-in.
119
+ */
120
+ readonly fastResponse?: boolean;
109
121
  }
110
122
  export interface NodeServer {
111
123
  /** The bound port (resolved when `port: 0` is requested). */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,WAAW,CAAA;AAQlB,sGAAsG;AACtG,UAAU,YAAY;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9E;;kEAE8D;IAC9D,uBAAuB,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACzF;AAKD,4EAA4E;AAC5E,KAAK,WAAW,GAAG,MAAM,GAAG,UAAU,CAAA;AAEtC,uFAAuF;AACvF,UAAU,OAAO;IACf,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,WAAW,GAAG,IAAI,CAAA;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;CACtB;AAED,wGAAwG;AACxG,UAAU,QAAQ;IAChB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAAA;IAC3C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAA;CAClC;AAED,uGAAuG;AACvG,UAAU,cAAc;IACtB,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvE,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D;AAED,2FAA2F;AAC3F,KAAK,gBAAgB,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GACxD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AAsBL,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAA;AAC9C,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,CAAC,CAAC,OAAO,EAAE,eAAe,KAAK,eAAe,CAAC,CAAA;AAqbnD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,oHAAoH;IACpH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;IAC1B,sGAAsG;IACtG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,oHAAoH;IACpH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IACzC,mGAAmG;IACnG,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAA;IACvE,mGAAmG;IACnG,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AA2RD,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAsFnF"}
package/dist/index.js CHANGED
@@ -97,6 +97,174 @@ function isResponseResult(value) {
97
97
  value[RESPONSE_RESULT] === true &&
98
98
  typeof value.toResponse === "function");
99
99
  }
100
+ /**
101
+ * The content-type a native `new Response(<string>)` infers when the caller sets none. Read off the
102
+ * native `Response` at load (before any patch), so a deferred string body carries the exact same
103
+ * content-type byte for byte as the runtime would have produced. */
104
+ const STRING_BODY_CONTENT_TYPE = new Response("").headers.get("content-type") ?? "text/plain;charset=UTF-8";
105
+ /**
106
+ * The one shape a raw `new Response(...)` can be served from without building the undici `Response`:
107
+ * a string body, no `statusText`, and no headers or a plain-object record of string values (a
108
+ * `Headers` instance, an entries array, a `Map` all fail the prototype check and take the real path).
109
+ * `undefined` means "this needs a real `Response`". A string body with no explicit content-type gets
110
+ * the same one the native constructor would have inferred, so the wire bytes are unchanged.
111
+ */
112
+ function deferredBodyView(body, init) {
113
+ if (typeof body !== "string")
114
+ return undefined;
115
+ if (init === undefined || init === null) {
116
+ return { status: 200, headers: { "content-type": STRING_BODY_CONTENT_TYPE }, body };
117
+ }
118
+ if (init.statusText !== undefined)
119
+ return undefined;
120
+ const headers = {};
121
+ let hasContentType = false;
122
+ const source = init.headers;
123
+ if (source !== undefined) {
124
+ const proto = Object.getPrototypeOf(source);
125
+ if (proto !== Object.prototype && proto !== null)
126
+ return undefined;
127
+ for (const name of Object.keys(source)) {
128
+ const value = source[name];
129
+ if (typeof value !== "string")
130
+ return undefined;
131
+ const lower = name.toLowerCase();
132
+ headers[lower] = value;
133
+ if (lower === "content-type")
134
+ hasContentType = true;
135
+ }
136
+ }
137
+ if (!hasContentType)
138
+ headers["content-type"] = STRING_BODY_CONTENT_TYPE;
139
+ return { status: init.status ?? 200, headers, body };
140
+ }
141
+ /**
142
+ * A `Response` stand-in for the opt-in global patch ({@link installFastResponse}). A *simple* `new
143
+ * Response("Hi")` defers exactly like `c.text` does - it carries the `ResponseResult` protocol
144
+ * `toOutcome` prefers, so the reply reaches the writer without a body-stream drain - while anything
145
+ * with a shape only a real `Response` carries (a stream, a `Blob`, `null`, a `Headers` instance)
146
+ * builds one up front, unchanged. Kept here, not imported from core: this adapter depends on core
147
+ * only through the shared `Symbol.for` marks, never a package import.
148
+ */
149
+ const DeferringResponse = /* @__PURE__ */ (() => {
150
+ const NativeResponse = globalThis.Response;
151
+ class DeferringResponse {
152
+ /** Set from the start for a non-simple body; otherwise built lazily from `#view`. */
153
+ #real;
154
+ /** The direct-write view for a simple body; `undefined` once `#real` exists. */
155
+ #view;
156
+ constructor(body, init, prebuilt) {
157
+ // `c.json`/`c.text` reach the fast lane through `fromView`: core has already built the owned,
158
+ // lowercase, content-typed record, so the view is taken as-is - no second header walk.
159
+ if (prebuilt !== undefined) {
160
+ this.#view = prebuilt;
161
+ return;
162
+ }
163
+ const view = deferredBodyView(body, init);
164
+ if (view === undefined) {
165
+ this.#real = new NativeResponse(body, init);
166
+ }
167
+ else {
168
+ this.#view = view;
169
+ }
170
+ }
171
+ /** A deferred response over an already-built direct-write view - the seam core's `c.json`/`c.text`
172
+ * register (see below), skipping the `deferredBodyView` walk the raw `new Response` patch runs. */
173
+ static fromView(view) {
174
+ return new DeferringResponse(undefined, undefined, view);
175
+ }
176
+ get status() {
177
+ return this.#view !== undefined ? this.#view.status : this.#real.status;
178
+ }
179
+ get _real() {
180
+ if (this.#real === undefined) {
181
+ const view = this.#view;
182
+ const real = new NativeResponse(view.body, { status: view.status, headers: view.headers });
183
+ // Tag the materialized body so a hook that only read `.headers` still writes bytes without a
184
+ // drain - the same mark `nodeOutcomeFromResponse` reads.
185
+ Object.defineProperty(real, NODE_RESPONSE_BODY, { value: view.body });
186
+ this.#real = real;
187
+ }
188
+ return this.#real;
189
+ }
190
+ toResponse() {
191
+ return this._real;
192
+ }
193
+ toNodeBody() {
194
+ return this.#real === undefined ? this.#view : undefined;
195
+ }
196
+ }
197
+ // Forward every other Response member to the lazily materialized real response; data properties
198
+ // (e.g. Symbol.toStringTag) are reached through the chained prototype without a brand check.
199
+ const own = new Set([
200
+ "constructor",
201
+ "status",
202
+ "_real",
203
+ "toResponse",
204
+ "toNodeBody",
205
+ ]);
206
+ const keys = [
207
+ ...Object.getOwnPropertyNames(NativeResponse.prototype),
208
+ ...Object.getOwnPropertySymbols(NativeResponse.prototype),
209
+ ];
210
+ for (const key of keys) {
211
+ if (own.has(key))
212
+ continue;
213
+ const descriptor = Object.getOwnPropertyDescriptor(NativeResponse.prototype, key);
214
+ if (descriptor === undefined)
215
+ continue;
216
+ if (typeof descriptor.value === "function") {
217
+ Object.defineProperty(DeferringResponse.prototype, key, {
218
+ configurable: true,
219
+ writable: true,
220
+ value: function (...args) {
221
+ const real = this._real;
222
+ return real[key].apply(real, args);
223
+ },
224
+ });
225
+ }
226
+ else if (descriptor.get !== undefined) {
227
+ Object.defineProperty(DeferringResponse.prototype, key, {
228
+ configurable: true,
229
+ get() {
230
+ return this._real[key];
231
+ },
232
+ });
233
+ }
234
+ }
235
+ Object.defineProperty(DeferringResponse.prototype, RESPONSE_RESULT, { value: true });
236
+ Object.setPrototypeOf(DeferringResponse.prototype, NativeResponse.prototype);
237
+ // Inherit the native statics (`Response.json` / `redirect` / `error`) so they still resolve after
238
+ // the swap; those build a real `Response` - the deferral is for the constructor path.
239
+ Object.setPrototypeOf(DeferringResponse, NativeResponse);
240
+ // `Response.json(...)` (and a native `Response` some other library built before the swap) returns a
241
+ // native instance, whose prototype sits *above* ours; treat any native `Response` as an instance so
242
+ // `x instanceof Response` stays true across the swap. A deferred instance chains through
243
+ // `NativeResponse.prototype` too, so it also passes.
244
+ Object.defineProperty(DeferringResponse, Symbol.hasInstance, {
245
+ configurable: true,
246
+ value: (instance) => instance instanceof NativeResponse,
247
+ });
248
+ return DeferringResponse;
249
+ })();
250
+ // Hand core's `c.json`/`c.text` Node fast lane a deferred-response factory over the shared-symbol seam
251
+ // (no core import - the same `Symbol.for` convention as the marks above, so core ships none of this
252
+ // class in a Bun/Deno bundle). Reuses DeferringResponse from an already-owned header record, so the
253
+ // helper skips the header re-walk `deferredBodyView` does for the raw `new Response` patch. `??=`:
254
+ // first adapter load wins; a re-import is a no-op.
255
+ const DEFERRED_RESPONDER_KEY = Symbol.for("nifra.deferred.responder");
256
+ globalThis[DEFERRED_RESPONDER_KEY] ??= (body, status, headers) => DeferringResponse.fromView({ status, headers, body });
257
+ /**
258
+ * Swap `globalThis.Response` for {@link DeferringResponse}. Idempotent (guarded on identity, so a
259
+ * repeated `serve({ fastResponse: true })` is a no-op) and not auto-restored: the swap is transparent
260
+ * for every construction (simple bodies defer, the rest build a real `Response`), so it can stay in
261
+ * place for the process lifetime once any server opts in.
262
+ */
263
+ function installFastResponse() {
264
+ if (globalThis.Response === DeferringResponse)
265
+ return;
266
+ globalThis.Response = DeferringResponse;
267
+ }
100
268
  function appendCookiesToResponse(response, cookies) {
101
269
  if (cookies !== undefined) {
102
270
  for (const cookie of cookies)
@@ -468,6 +636,8 @@ function activateAsyncContextFrame() {
468
636
  export function serve(app, options) {
469
637
  activateAsyncContextFrame();
470
638
  enableNodeDirect(app);
639
+ if (options.fastResponse === true)
640
+ installFastResponse();
471
641
  let inFlight = 0;
472
642
  let closed = false;
473
643
  const protocol = protocolResolver(options.protocol);
@@ -576,8 +746,8 @@ function handle(app, nodeReq, nodeRes, getProtocol, staticState, hostPolicy) {
576
746
  const matched = staticMatch(staticState, nodeReq.url ?? "/");
577
747
  if (matched !== "pass") {
578
748
  if ("reject" in matched)
579
- return writeNodeResponse(matched.reject, nodeRes);
580
- return readStatic(matched.file, staticState, nodeReq.method ?? "GET").then((outcome) => writeNodeOutcome(outcome, nodeRes), () => writeInternalError(nodeRes));
749
+ return writeNodeResponse(matched.reject, nodeRes, nodeReq.method);
750
+ return readStatic(matched.file, staticState, nodeReq.method ?? "GET").then((outcome) => writeNodeOutcome(outcome, nodeRes, nodeReq.method), () => writeInternalError(nodeRes));
581
751
  }
582
752
  }
583
753
  // Fast path: a nifra app exposes `resolveNode`, which renders a plain-data result as primitives we
@@ -590,8 +760,8 @@ function handle(app, nodeReq, nodeRes, getProtocol, staticState, hostPolicy) {
590
760
  try {
591
761
  const outcome = resolveNodeSource.call(app, toNodeRequestSource(nodeReq, protocol, host), platform, NODE_OUTCOME_RUNTIME);
592
762
  return outcome instanceof Promise
593
- ? outcome.then((settled) => writeNodeOutcome(settled, nodeRes), () => writeInternalError(nodeRes))
594
- : writeNodeOutcome(outcome, nodeRes);
763
+ ? outcome.then((settled) => writeNodeOutcome(settled, nodeRes, nodeReq.method), () => writeInternalError(nodeRes))
764
+ : writeNodeOutcome(outcome, nodeRes, nodeReq.method);
595
765
  }
596
766
  catch {
597
767
  writeInternalError(nodeRes);
@@ -604,8 +774,8 @@ function handle(app, nodeReq, nodeRes, getProtocol, staticState, hostPolicy) {
604
774
  try {
605
775
  const outcome = resolveNode.call(app, request, platform);
606
776
  return outcome instanceof Promise
607
- ? outcome.then((settled) => writeNodeOutcome(settled, nodeRes), () => writeInternalError(nodeRes))
608
- : writeNodeOutcome(outcome, nodeRes);
777
+ ? outcome.then((settled) => writeNodeOutcome(settled, nodeRes, nodeReq.method), () => writeInternalError(nodeRes))
778
+ : writeNodeOutcome(outcome, nodeRes, nodeReq.method);
609
779
  }
610
780
  catch {
611
781
  writeInternalError(nodeRes);
@@ -615,8 +785,8 @@ function handle(app, nodeReq, nodeRes, getProtocol, staticState, hostPolicy) {
615
785
  try {
616
786
  const response = app.fetch(request, platform);
617
787
  return response instanceof Promise
618
- ? response.then((settled) => writeNodeResponse(settled, nodeRes), () => writeInternalError(nodeRes))
619
- : writeNodeResponse(response, nodeRes);
788
+ ? response.then((settled) => writeNodeResponse(settled, nodeRes, nodeReq.method), () => writeInternalError(nodeRes))
789
+ : writeNodeResponse(response, nodeRes, nodeReq.method);
620
790
  }
621
791
  catch {
622
792
  // The app should never throw (nifra returns a 500), but never leak a stack to the wire.
@@ -624,16 +794,17 @@ function handle(app, nodeReq, nodeRes, getProtocol, staticState, hostPolicy) {
624
794
  return;
625
795
  }
626
796
  }
627
- function writeNodeOutcome(outcome, nodeRes) {
797
+ function writeNodeOutcome(outcome, nodeRes, method) {
798
+ const isHead = method?.toUpperCase() === "HEAD";
628
799
  if (outcome.kind === "json") {
629
- writeJsonOutcome(outcome, nodeRes);
800
+ writeJsonOutcome(outcome, nodeRes, isHead);
630
801
  return;
631
802
  }
632
803
  if (outcome.kind === "body") {
633
- writeBodyOutcome(outcome, nodeRes);
804
+ writeBodyOutcome(outcome, nodeRes, isHead);
634
805
  return;
635
806
  }
636
- return writeNodeResponse(outcome.response, nodeRes);
807
+ return writeNodeResponse(outcome.response, nodeRes, method);
637
808
  }
638
809
  /** A flat 500 with no leaked detail - the adapter's last-resort guard if a handler throws. */
639
810
  function writeInternalError(nodeRes) {
@@ -666,7 +837,7 @@ function allHeaderKeysLowercase(record) {
666
837
  * match undici's `Headers` normalization, the JSON `Content-Type` matches the host runtime's, and each
667
838
  * queued cookie is emitted as its own `Set-Cookie` line (never comma-joined).
668
839
  */
669
- function writeJsonOutcome(outcome, nodeRes) {
840
+ function writeJsonOutcome(outcome, nodeRes, isHead = false) {
670
841
  // The outcome's record is the request's own (`c.set.headers`, already mutated by any native
671
842
  // response hooks), and its writers - middleware twins and the framework's own additions - emit
672
843
  // lowercase names. Confirmed either by core's mark (the native response walk already looked at
@@ -715,17 +886,19 @@ function writeJsonOutcome(outcome, nodeRes) {
715
886
  headers["set-cookie"] = [...outcome.cookies];
716
887
  }
717
888
  nodeRes.writeHead(outcome.status, headers);
718
- if (outcome.body !== null)
719
- nodeRes.end(outcome.body);
720
- else
889
+ if (isHead || outcome.body === null) {
721
890
  nodeRes.end();
891
+ }
892
+ else {
893
+ nodeRes.end(outcome.body);
894
+ }
722
895
  }
723
896
  /**
724
897
  * Write a node-direct buffered body outcome straight to the socket. This is the Response-shaped
725
898
  * sibling of `writeJsonOutcome`: headers/status were already normalized by core, and the body is the
726
899
  * exact marked payload from the Response producer, so there is no Web body reader to drain.
727
900
  */
728
- function writeBodyOutcome(outcome, nodeRes) {
901
+ function writeBodyOutcome(outcome, nodeRes, isHead = false) {
729
902
  // Body outcomes already carry response-normalized header names and values. Node consumes the same
730
903
  // mutable runtime shapes (`string` / `string[]`); avoid cloning this record and every Set-Cookie
731
904
  // array on the hot SSR path. The readonly type is an ownership guarantee from the producer, not a
@@ -754,7 +927,10 @@ function writeBodyOutcome(outcome, nodeRes) {
754
927
  }
755
928
  nodeRes.writeHead(outcome.status, headers);
756
929
  }
757
- nodeRes.end(outcome.body);
930
+ if (isHead)
931
+ nodeRes.end();
932
+ else
933
+ nodeRes.end(outcome.body);
758
934
  }
759
935
  const byteLengthOf = (body) => typeof body === "string" ? Buffer.byteLength(body) : body.byteLength;
760
936
  /** Per-connection cache slot for the socket-peer platform object (see `handle`). */
@@ -810,6 +986,27 @@ function originUrlParts(target) {
810
986
  search: searchStart === -1 ? "" : target.slice(searchStart, searchEnd),
811
987
  };
812
988
  }
989
+ /** An `ArrayBuffer` spanning exactly the view - Node hands back pooled buffers, so a caller that
990
+ * receives the raw `.buffer` would see (and could reach into) unrelated requests' bytes. */
991
+ function detachedArrayBuffer(bytes) {
992
+ return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
993
+ }
994
+ function parseJsonBytes(bytes) {
995
+ const buffer = Buffer.isBuffer(bytes)
996
+ ? bytes
997
+ : Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
998
+ return JSON.parse(buffer.toString("utf8"));
999
+ }
1000
+ /** A one-chunk stream replaying already-buffered bytes. `highWaterMark: 0` keeps construction free
1001
+ * of a pull, and the copy keeps the shared buffer out of a consumer's reach. */
1002
+ function streamOfBytes(bytes) {
1003
+ return new ReadableStream({
1004
+ pull(controller) {
1005
+ controller.enqueue(bytes.slice());
1006
+ controller.close();
1007
+ },
1008
+ }, { highWaterMark: 0 });
1009
+ }
813
1010
  /**
814
1011
  * Lazy view over a Node `IncomingMessage`. Methods live on the prototype (not re-allocated per
815
1012
  * request), and every materialization is deferred: the `Headers` object, the Web `ReadableStream`
@@ -823,6 +1020,7 @@ class LazyNodeRequestSource {
823
1020
  requestValue;
824
1021
  consumedBody;
825
1022
  readBodyPromise;
1023
+ rawReaders;
826
1024
  urlValue;
827
1025
  nodeReq;
828
1026
  protocol;
@@ -883,6 +1081,54 @@ class LazyNodeRequestSource {
883
1081
  byteLength: buffer.byteLength,
884
1082
  }));
885
1083
  }
1084
+ /**
1085
+ * The transport cap's pre-shadow readers. Header probes hit Node's already-lowercased bag instead
1086
+ * of building a `Headers`, and the byte readers buffer the socket directly - so a capped
1087
+ * `c.req.json()` never materializes the undici `Request` this source is still deferring. `body`
1088
+ * stays the live stream, so core's streaming guard still aborts a chunked body mid-flight rather
1089
+ * than buffering it first.
1090
+ */
1091
+ rawBodyReaders() {
1092
+ const source = this;
1093
+ this.rawReaders ??= {
1094
+ headers: { get: (name) => source.header(name) },
1095
+ get body() {
1096
+ return source.rawBodyStream();
1097
+ },
1098
+ arrayBuffer: () => source.rawBodyBytes().then(detachedArrayBuffer),
1099
+ bytes: () => source.rawBodyBytes(),
1100
+ json: () => source.rawBodyBytes().then(parseJsonBytes),
1101
+ };
1102
+ return this.rawReaders;
1103
+ }
1104
+ /**
1105
+ * Body bytes for the transport cap, straight off the socket. Once the Web `Request` already owns
1106
+ * the stream (a hook that read `c.req.signal` materialized it before any body read), draining that
1107
+ * stream is the only safe source - re-listening on the node request would split the body in two.
1108
+ */
1109
+ rawBodyBytes() {
1110
+ if (this.consumedBody !== undefined)
1111
+ return Promise.resolve(this.consumedBody);
1112
+ const handed = this.bodyValue;
1113
+ if (handed != null) {
1114
+ return new Response(handed).arrayBuffer().then((buffer) => new Uint8Array(buffer));
1115
+ }
1116
+ return this.readNodeBody();
1117
+ }
1118
+ /**
1119
+ * The raw body stream, never routed back through `this.request` - post-cap that getter is the
1120
+ * shadowed one, which reads back through these very readers. An already-consumed body replays
1121
+ * from its buffer, matching the cap's own replay-instead-of-fail contract.
1122
+ */
1123
+ rawBodyStream() {
1124
+ if (this.method === "GET" || this.method === "HEAD")
1125
+ return null;
1126
+ const consumed = this.consumedBody;
1127
+ if (consumed !== undefined)
1128
+ return streamOfBytes(consumed);
1129
+ this.bodyValue ??= Readable.toWeb(this.nodeReq);
1130
+ return this.bodyValue;
1131
+ }
886
1132
  get request() {
887
1133
  this.requestValue ??= new LazyWebRequest(this.method, this.url, () => this.headersValue ?? headerRecordFromNode(this.nodeReq.headers), (headers) => {
888
1134
  if (this.consumedBody !== undefined) {
@@ -1151,7 +1397,8 @@ function waitForDrain(nodeRes) {
1151
1397
  }
1152
1398
  });
1153
1399
  }
1154
- function writeNodeResponse(response, nodeRes) {
1400
+ function writeNodeResponse(response, nodeRes, method) {
1401
+ const isHead = method?.toUpperCase() === "HEAD";
1155
1402
  // `ServerResponse.setHeaders` (Node 18.14+) takes the Headers object directly and iterates its
1156
1403
  // native Symbol.iterator, which - unlike `Headers.forEach`/`.get()` - never comma-joins repeated
1157
1404
  // `Set-Cookie` values (Node's own implementation carries the identical correctness note this
@@ -1160,6 +1407,10 @@ function writeNodeResponse(response, nodeRes) {
1160
1407
  // `writeHead`: headers are already flushed by the time `writeHead` returns.
1161
1408
  nodeRes.setHeaders(response.headers);
1162
1409
  nodeRes.writeHead(response.status);
1410
+ if (isHead) {
1411
+ nodeRes.end();
1412
+ return;
1413
+ }
1163
1414
  const directBody = nodeResponseBody(response);
1164
1415
  if (directBody !== undefined) {
1165
1416
  nodeRes.end(directBody);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nifrajs/node",
3
- "version": "2.12.1",
3
+ "version": "2.14.1",
4
4
  "description": "Run a nifra app on Node's http server - a Request<->stream adapter with a graceful stop().",
5
5
  "keywords": [
6
6
  "bun",
package/src/index.ts CHANGED
@@ -123,6 +123,21 @@ interface NodeRequestSource {
123
123
  json(): Promise<unknown>
124
124
  jsonWithByteLength?(): Promise<{ readonly value: unknown; readonly byteLength: number }>
125
125
  readonly request: Request
126
+ rawBodyReaders?(): NodeRawBodyReaders
127
+ }
128
+
129
+ /**
130
+ * Core's `RawBodyReaders`: the pre-cap reader surface the transport cap buffers through. Mirrored
131
+ * structurally here rather than imported, matching how the rest of this adapter states core's
132
+ * contracts. Handing it over keeps a capped `c.req.json()` on the socket - no undici `Request` is
133
+ * built to read a body this source already knows how to read.
134
+ */
135
+ interface NodeRawBodyReaders {
136
+ readonly headers: Pick<Headers, "get">
137
+ readonly body: ReadableStream<Uint8Array> | null
138
+ arrayBuffer(): Promise<ArrayBuffer>
139
+ bytes(): Promise<Uint8Array>
140
+ json(): Promise<unknown>
126
141
  }
127
142
 
128
143
  interface NodeContextSet {
@@ -241,6 +256,193 @@ function isResponseResult(value: unknown): value is NodeResponseResult {
241
256
  )
242
257
  }
243
258
 
259
+ interface DeferredBodyView {
260
+ readonly status: number
261
+ readonly headers: Record<string, string>
262
+ readonly body: string
263
+ }
264
+
265
+ /** The native `Response` body-init type, sourced from the constructor (core stays DOM-lib-free). */
266
+ type ResponseBodyInit = ConstructorParameters<typeof Response>[0]
267
+
268
+ /**
269
+ * The content-type a native `new Response(<string>)` infers when the caller sets none. Read off the
270
+ * native `Response` at load (before any patch), so a deferred string body carries the exact same
271
+ * content-type byte for byte as the runtime would have produced. */
272
+ const STRING_BODY_CONTENT_TYPE =
273
+ new Response("").headers.get("content-type") ?? "text/plain;charset=UTF-8"
274
+
275
+ /**
276
+ * The one shape a raw `new Response(...)` can be served from without building the undici `Response`:
277
+ * a string body, no `statusText`, and no headers or a plain-object record of string values (a
278
+ * `Headers` instance, an entries array, a `Map` all fail the prototype check and take the real path).
279
+ * `undefined` means "this needs a real `Response`". A string body with no explicit content-type gets
280
+ * the same one the native constructor would have inferred, so the wire bytes are unchanged.
281
+ */
282
+ function deferredBodyView(
283
+ body: ResponseBodyInit,
284
+ init: ResponseInit | undefined,
285
+ ): DeferredBodyView | undefined {
286
+ if (typeof body !== "string") return undefined
287
+ if (init === undefined || init === null) {
288
+ return { status: 200, headers: { "content-type": STRING_BODY_CONTENT_TYPE }, body }
289
+ }
290
+ if (init.statusText !== undefined) return undefined
291
+ const headers: Record<string, string> = {}
292
+ let hasContentType = false
293
+ const source = init.headers
294
+ if (source !== undefined) {
295
+ const proto = Object.getPrototypeOf(source)
296
+ if (proto !== Object.prototype && proto !== null) return undefined
297
+ for (const name of Object.keys(source)) {
298
+ const value = (source as Record<string, unknown>)[name]
299
+ if (typeof value !== "string") return undefined
300
+ const lower = name.toLowerCase()
301
+ headers[lower] = value
302
+ if (lower === "content-type") hasContentType = true
303
+ }
304
+ }
305
+ if (!hasContentType) headers["content-type"] = STRING_BODY_CONTENT_TYPE
306
+ return { status: init.status ?? 200, headers, body }
307
+ }
308
+
309
+ /**
310
+ * A `Response` stand-in for the opt-in global patch ({@link installFastResponse}). A *simple* `new
311
+ * Response("Hi")` defers exactly like `c.text` does - it carries the `ResponseResult` protocol
312
+ * `toOutcome` prefers, so the reply reaches the writer without a body-stream drain - while anything
313
+ * with a shape only a real `Response` carries (a stream, a `Blob`, `null`, a `Headers` instance)
314
+ * builds one up front, unchanged. Kept here, not imported from core: this adapter depends on core
315
+ * only through the shared `Symbol.for` marks, never a package import.
316
+ */
317
+ const DeferringResponse = /* @__PURE__ */ (() => {
318
+ const NativeResponse = globalThis.Response
319
+
320
+ class DeferringResponse {
321
+ /** Set from the start for a non-simple body; otherwise built lazily from `#view`. */
322
+ #real: Response | undefined
323
+ /** The direct-write view for a simple body; `undefined` once `#real` exists. */
324
+ #view: DeferredBodyView | undefined
325
+
326
+ constructor(body?: ResponseBodyInit, init?: ResponseInit, prebuilt?: DeferredBodyView) {
327
+ // `c.json`/`c.text` reach the fast lane through `fromView`: core has already built the owned,
328
+ // lowercase, content-typed record, so the view is taken as-is - no second header walk.
329
+ if (prebuilt !== undefined) {
330
+ this.#view = prebuilt
331
+ return
332
+ }
333
+ const view = deferredBodyView(body, init)
334
+ if (view === undefined) {
335
+ this.#real = new NativeResponse(body, init)
336
+ } else {
337
+ this.#view = view
338
+ }
339
+ }
340
+
341
+ /** A deferred response over an already-built direct-write view - the seam core's `c.json`/`c.text`
342
+ * register (see below), skipping the `deferredBodyView` walk the raw `new Response` patch runs. */
343
+ static fromView(view: DeferredBodyView): Response {
344
+ return new DeferringResponse(undefined, undefined, view) as unknown as Response
345
+ }
346
+
347
+ get status(): number {
348
+ return this.#view !== undefined ? this.#view.status : (this.#real as Response).status
349
+ }
350
+
351
+ get _real(): Response {
352
+ if (this.#real === undefined) {
353
+ const view = this.#view as DeferredBodyView
354
+ const real = new NativeResponse(view.body, { status: view.status, headers: view.headers })
355
+ // Tag the materialized body so a hook that only read `.headers` still writes bytes without a
356
+ // drain - the same mark `nodeOutcomeFromResponse` reads.
357
+ Object.defineProperty(real, NODE_RESPONSE_BODY, { value: view.body })
358
+ this.#real = real
359
+ }
360
+ return this.#real
361
+ }
362
+
363
+ toResponse(): Response {
364
+ return this._real
365
+ }
366
+
367
+ toNodeBody(): DeferredBodyView | undefined {
368
+ return this.#real === undefined ? this.#view : undefined
369
+ }
370
+ }
371
+
372
+ // Forward every other Response member to the lazily materialized real response; data properties
373
+ // (e.g. Symbol.toStringTag) are reached through the chained prototype without a brand check.
374
+ const own = new Set<string | symbol>([
375
+ "constructor",
376
+ "status",
377
+ "_real",
378
+ "toResponse",
379
+ "toNodeBody",
380
+ ])
381
+ const keys: Array<string | symbol> = [
382
+ ...Object.getOwnPropertyNames(NativeResponse.prototype),
383
+ ...Object.getOwnPropertySymbols(NativeResponse.prototype),
384
+ ]
385
+ for (const key of keys) {
386
+ if (own.has(key)) continue
387
+ const descriptor = Object.getOwnPropertyDescriptor(NativeResponse.prototype, key)
388
+ if (descriptor === undefined) continue
389
+ if (typeof descriptor.value === "function") {
390
+ Object.defineProperty(DeferringResponse.prototype, key, {
391
+ configurable: true,
392
+ writable: true,
393
+ value: function (this: InstanceType<typeof DeferringResponse>, ...args: unknown[]) {
394
+ const real = this._real as unknown as Record<string | symbol, unknown>
395
+ return (real[key] as (...a: unknown[]) => unknown).apply(real, args)
396
+ },
397
+ })
398
+ } else if (descriptor.get !== undefined) {
399
+ Object.defineProperty(DeferringResponse.prototype, key, {
400
+ configurable: true,
401
+ get(this: InstanceType<typeof DeferringResponse>) {
402
+ return (this._real as unknown as Record<string | symbol, unknown>)[key]
403
+ },
404
+ })
405
+ }
406
+ }
407
+ Object.defineProperty(DeferringResponse.prototype, RESPONSE_RESULT, { value: true })
408
+ Object.setPrototypeOf(DeferringResponse.prototype, NativeResponse.prototype)
409
+ // Inherit the native statics (`Response.json` / `redirect` / `error`) so they still resolve after
410
+ // the swap; those build a real `Response` - the deferral is for the constructor path.
411
+ Object.setPrototypeOf(DeferringResponse, NativeResponse)
412
+ // `Response.json(...)` (and a native `Response` some other library built before the swap) returns a
413
+ // native instance, whose prototype sits *above* ours; treat any native `Response` as an instance so
414
+ // `x instanceof Response` stays true across the swap. A deferred instance chains through
415
+ // `NativeResponse.prototype` too, so it also passes.
416
+ Object.defineProperty(DeferringResponse, Symbol.hasInstance, {
417
+ configurable: true,
418
+ value: (instance: unknown): boolean => instance instanceof NativeResponse,
419
+ })
420
+ return DeferringResponse
421
+ })()
422
+
423
+ // Hand core's `c.json`/`c.text` Node fast lane a deferred-response factory over the shared-symbol seam
424
+ // (no core import - the same `Symbol.for` convention as the marks above, so core ships none of this
425
+ // class in a Bun/Deno bundle). Reuses DeferringResponse from an already-owned header record, so the
426
+ // helper skips the header re-walk `deferredBodyView` does for the raw `new Response` patch. `??=`:
427
+ // first adapter load wins; a re-import is a no-op.
428
+ const DEFERRED_RESPONDER_KEY = Symbol.for("nifra.deferred.responder")
429
+ ;(globalThis as unknown as Record<symbol, unknown>)[DEFERRED_RESPONDER_KEY] ??= (
430
+ body: string,
431
+ status: number,
432
+ headers: Record<string, string>,
433
+ ): Response => DeferringResponse.fromView({ status, headers, body })
434
+
435
+ /**
436
+ * Swap `globalThis.Response` for {@link DeferringResponse}. Idempotent (guarded on identity, so a
437
+ * repeated `serve({ fastResponse: true })` is a no-op) and not auto-restored: the swap is transparent
438
+ * for every construction (simple bodies defer, the rest build a real `Response`), so it can stay in
439
+ * place for the process lifetime once any server opts in.
440
+ */
441
+ function installFastResponse(): void {
442
+ if (globalThis.Response === (DeferringResponse as unknown)) return
443
+ globalThis.Response = DeferringResponse as unknown as typeof Response
444
+ }
445
+
244
446
  function appendCookiesToResponse(
245
447
  response: Response,
246
448
  cookies: readonly string[] | undefined,
@@ -397,6 +599,18 @@ export interface ServeOptions {
397
599
  * SSR/API routes). Replaces the hand-rolled `/assets/*` reader in self-hosted entries.
398
600
  */
399
601
  readonly static?: ServeStaticOptions
602
+ /**
603
+ * Make a hand-rolled `return new Response(body)` ride the direct-write lane, by swapping
604
+ * `globalThis.Response` for a stand-in that defers a *simple* construction (a string body, no
605
+ * `statusText`, no headers or a plain header record) the way `c.text` / `c.json` already do.
606
+ *
607
+ * Off by default: prefer `c.text` / `c.json`, which get this without a global swap. Reach for the
608
+ * flag only when handlers construct `Response` by hand on the hot path. It patches a process-global
609
+ * builtin, so every `new Response(...)` anywhere in the process goes through the stand-in -
610
+ * transparent (non-simple bodies build a real `Response`, and simple ones stay `instanceof
611
+ * Response`), but a broad enough change to be opt-in.
612
+ */
613
+ readonly fastResponse?: boolean
400
614
  }
401
615
 
402
616
  export interface NodeServer {
@@ -693,6 +907,7 @@ function activateAsyncContextFrame(): void {
693
907
  export function serve(app: FetchHandler, options: ServeOptions): Promise<NodeServer> {
694
908
  activateAsyncContextFrame()
695
909
  enableNodeDirect(app)
910
+ if (options.fastResponse === true) installFastResponse()
696
911
  let inFlight = 0
697
912
  let closed = false
698
913
  const protocol = protocolResolver(options.protocol)
@@ -817,9 +1032,9 @@ function handle(
817
1032
  if (staticState !== undefined && (nodeReq.method === "GET" || nodeReq.method === "HEAD")) {
818
1033
  const matched = staticMatch(staticState, nodeReq.url ?? "/")
819
1034
  if (matched !== "pass") {
820
- if ("reject" in matched) return writeNodeResponse(matched.reject, nodeRes)
1035
+ if ("reject" in matched) return writeNodeResponse(matched.reject, nodeRes, nodeReq.method)
821
1036
  return readStatic(matched.file, staticState, nodeReq.method ?? "GET").then(
822
- (outcome) => writeNodeOutcome(outcome, nodeRes),
1037
+ (outcome) => writeNodeOutcome(outcome, nodeRes, nodeReq.method),
823
1038
  () => writeInternalError(nodeRes),
824
1039
  )
825
1040
  }
@@ -841,10 +1056,10 @@ function handle(
841
1056
  )
842
1057
  return outcome instanceof Promise
843
1058
  ? outcome.then(
844
- (settled) => writeNodeOutcome(settled, nodeRes),
1059
+ (settled) => writeNodeOutcome(settled, nodeRes, nodeReq.method),
845
1060
  () => writeInternalError(nodeRes),
846
1061
  )
847
- : writeNodeOutcome(outcome, nodeRes)
1062
+ : writeNodeOutcome(outcome, nodeRes, nodeReq.method)
848
1063
  } catch {
849
1064
  writeInternalError(nodeRes)
850
1065
  return
@@ -858,10 +1073,10 @@ function handle(
858
1073
  const outcome = resolveNode.call(app, request, platform)
859
1074
  return outcome instanceof Promise
860
1075
  ? outcome.then(
861
- (settled) => writeNodeOutcome(settled, nodeRes),
1076
+ (settled) => writeNodeOutcome(settled, nodeRes, nodeReq.method),
862
1077
  () => writeInternalError(nodeRes),
863
1078
  )
864
- : writeNodeOutcome(outcome, nodeRes)
1079
+ : writeNodeOutcome(outcome, nodeRes, nodeReq.method)
865
1080
  } catch {
866
1081
  writeInternalError(nodeRes)
867
1082
  return
@@ -872,10 +1087,10 @@ function handle(
872
1087
  const response = app.fetch(request, platform)
873
1088
  return response instanceof Promise
874
1089
  ? response.then(
875
- (settled) => writeNodeResponse(settled, nodeRes),
1090
+ (settled) => writeNodeResponse(settled, nodeRes, nodeReq.method),
876
1091
  () => writeInternalError(nodeRes),
877
1092
  )
878
- : writeNodeResponse(response, nodeRes)
1093
+ : writeNodeResponse(response, nodeRes, nodeReq.method)
879
1094
  } catch {
880
1095
  // The app should never throw (nifra returns a 500), but never leak a stack to the wire.
881
1096
  writeInternalError(nodeRes)
@@ -886,16 +1101,18 @@ function handle(
886
1101
  function writeNodeOutcome(
887
1102
  outcome: NodeServeOutcome,
888
1103
  nodeRes: ServerResponse,
1104
+ method?: string,
889
1105
  ): void | Promise<void> {
1106
+ const isHead = method?.toUpperCase() === "HEAD"
890
1107
  if (outcome.kind === "json") {
891
- writeJsonOutcome(outcome, nodeRes)
1108
+ writeJsonOutcome(outcome, nodeRes, isHead)
892
1109
  return
893
1110
  }
894
1111
  if (outcome.kind === "body") {
895
- writeBodyOutcome(outcome, nodeRes)
1112
+ writeBodyOutcome(outcome, nodeRes, isHead)
896
1113
  return
897
1114
  }
898
- return writeNodeResponse(outcome.response, nodeRes)
1115
+ return writeNodeResponse(outcome.response, nodeRes, method)
899
1116
  }
900
1117
 
901
1118
  /** A flat 500 with no leaked detail - the adapter's last-resort guard if a handler throws. */
@@ -934,6 +1151,7 @@ function allHeaderKeysLowercase(record: Readonly<Record<string, unknown>>): bool
934
1151
  function writeJsonOutcome(
935
1152
  outcome: Extract<NodeServeOutcome, { kind: "json" }>,
936
1153
  nodeRes: ServerResponse,
1154
+ isHead = false,
937
1155
  ): void {
938
1156
  // The outcome's record is the request's own (`c.set.headers`, already mutated by any native
939
1157
  // response hooks), and its writers - middleware twins and the framework's own additions - emit
@@ -981,8 +1199,11 @@ function writeJsonOutcome(
981
1199
  headers["set-cookie"] = [...outcome.cookies]
982
1200
  }
983
1201
  nodeRes.writeHead(outcome.status, headers)
984
- if (outcome.body !== null) nodeRes.end(outcome.body)
985
- else nodeRes.end()
1202
+ if (isHead || outcome.body === null) {
1203
+ nodeRes.end()
1204
+ } else {
1205
+ nodeRes.end(outcome.body)
1206
+ }
986
1207
  }
987
1208
 
988
1209
  /**
@@ -993,6 +1214,7 @@ function writeJsonOutcome(
993
1214
  function writeBodyOutcome(
994
1215
  outcome: Extract<NodeServeOutcome, { kind: "body" }>,
995
1216
  nodeRes: ServerResponse,
1217
+ isHead = false,
996
1218
  ): void {
997
1219
  // Body outcomes already carry response-normalized header names and values. Node consumes the same
998
1220
  // mutable runtime shapes (`string` / `string[]`); avoid cloning this record and every Set-Cookie
@@ -1021,7 +1243,8 @@ function writeBodyOutcome(
1021
1243
  }
1022
1244
  nodeRes.writeHead(outcome.status, headers)
1023
1245
  }
1024
- nodeRes.end(outcome.body)
1246
+ if (isHead) nodeRes.end()
1247
+ else nodeRes.end(outcome.body)
1025
1248
  }
1026
1249
 
1027
1250
  const byteLengthOf = (body: string | Uint8Array): number =>
@@ -1087,6 +1310,33 @@ function originUrlParts(target: string): { pathname: string; search: string } {
1087
1310
  }
1088
1311
  }
1089
1312
 
1313
+ /** An `ArrayBuffer` spanning exactly the view - Node hands back pooled buffers, so a caller that
1314
+ * receives the raw `.buffer` would see (and could reach into) unrelated requests' bytes. */
1315
+ function detachedArrayBuffer(bytes: Uint8Array): ArrayBuffer {
1316
+ return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength) as ArrayBuffer
1317
+ }
1318
+
1319
+ function parseJsonBytes(bytes: Uint8Array): unknown {
1320
+ const buffer = Buffer.isBuffer(bytes)
1321
+ ? bytes
1322
+ : Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength)
1323
+ return JSON.parse(buffer.toString("utf8")) as unknown
1324
+ }
1325
+
1326
+ /** A one-chunk stream replaying already-buffered bytes. `highWaterMark: 0` keeps construction free
1327
+ * of a pull, and the copy keeps the shared buffer out of a consumer's reach. */
1328
+ function streamOfBytes(bytes: Uint8Array): ReadableStream<Uint8Array> {
1329
+ return new ReadableStream<Uint8Array>(
1330
+ {
1331
+ pull(controller) {
1332
+ controller.enqueue(bytes.slice())
1333
+ controller.close()
1334
+ },
1335
+ },
1336
+ { highWaterMark: 0 },
1337
+ )
1338
+ }
1339
+
1090
1340
  /**
1091
1341
  * Lazy view over a Node `IncomingMessage`. Methods live on the prototype (not re-allocated per
1092
1342
  * request), and every materialization is deferred: the `Headers` object, the Web `ReadableStream`
@@ -1101,6 +1351,7 @@ class LazyNodeRequestSource implements NodeRequestSource {
1101
1351
  private requestValue: Request | undefined
1102
1352
  private consumedBody: Buffer | undefined
1103
1353
  private readBodyPromise: Promise<Buffer> | undefined
1354
+ private rawReaders: NodeRawBodyReaders | undefined
1104
1355
  private urlValue: string | undefined
1105
1356
  private readonly nodeReq: IncomingMessage
1106
1357
  private readonly protocol: RequestProtocol
@@ -1172,6 +1423,54 @@ class LazyNodeRequestSource implements NodeRequestSource {
1172
1423
  }))
1173
1424
  }
1174
1425
 
1426
+ /**
1427
+ * The transport cap's pre-shadow readers. Header probes hit Node's already-lowercased bag instead
1428
+ * of building a `Headers`, and the byte readers buffer the socket directly - so a capped
1429
+ * `c.req.json()` never materializes the undici `Request` this source is still deferring. `body`
1430
+ * stays the live stream, so core's streaming guard still aborts a chunked body mid-flight rather
1431
+ * than buffering it first.
1432
+ */
1433
+ rawBodyReaders(): NodeRawBodyReaders {
1434
+ const source = this
1435
+ this.rawReaders ??= {
1436
+ headers: { get: (name: string) => source.header(name) },
1437
+ get body(): ReadableStream<Uint8Array> | null {
1438
+ return source.rawBodyStream()
1439
+ },
1440
+ arrayBuffer: () => source.rawBodyBytes().then(detachedArrayBuffer),
1441
+ bytes: () => source.rawBodyBytes(),
1442
+ json: () => source.rawBodyBytes().then(parseJsonBytes),
1443
+ }
1444
+ return this.rawReaders
1445
+ }
1446
+
1447
+ /**
1448
+ * Body bytes for the transport cap, straight off the socket. Once the Web `Request` already owns
1449
+ * the stream (a hook that read `c.req.signal` materialized it before any body read), draining that
1450
+ * stream is the only safe source - re-listening on the node request would split the body in two.
1451
+ */
1452
+ private rawBodyBytes(): Promise<Uint8Array> {
1453
+ if (this.consumedBody !== undefined) return Promise.resolve(this.consumedBody)
1454
+ const handed = this.bodyValue
1455
+ if (handed != null) {
1456
+ return new Response(handed).arrayBuffer().then((buffer) => new Uint8Array(buffer))
1457
+ }
1458
+ return this.readNodeBody()
1459
+ }
1460
+
1461
+ /**
1462
+ * The raw body stream, never routed back through `this.request` - post-cap that getter is the
1463
+ * shadowed one, which reads back through these very readers. An already-consumed body replays
1464
+ * from its buffer, matching the cap's own replay-instead-of-fail contract.
1465
+ */
1466
+ private rawBodyStream(): ReadableStream<Uint8Array> | null {
1467
+ if (this.method === "GET" || this.method === "HEAD") return null
1468
+ const consumed = this.consumedBody
1469
+ if (consumed !== undefined) return streamOfBytes(consumed)
1470
+ this.bodyValue ??= Readable.toWeb(this.nodeReq) as ReadableStream<Uint8Array>
1471
+ return this.bodyValue
1472
+ }
1473
+
1175
1474
  get request(): Request {
1176
1475
  this.requestValue ??= new LazyWebRequest(
1177
1476
  this.method,
@@ -1484,7 +1783,12 @@ function waitForDrain(nodeRes: ServerResponse): Promise<boolean> {
1484
1783
  })
1485
1784
  }
1486
1785
 
1487
- function writeNodeResponse(response: Response, nodeRes: ServerResponse): void | Promise<void> {
1786
+ function writeNodeResponse(
1787
+ response: Response,
1788
+ nodeRes: ServerResponse,
1789
+ method?: string,
1790
+ ): void | Promise<void> {
1791
+ const isHead = method?.toUpperCase() === "HEAD"
1488
1792
  // `ServerResponse.setHeaders` (Node 18.14+) takes the Headers object directly and iterates its
1489
1793
  // native Symbol.iterator, which - unlike `Headers.forEach`/`.get()` - never comma-joins repeated
1490
1794
  // `Set-Cookie` values (Node's own implementation carries the identical correctness note this
@@ -1493,6 +1797,10 @@ function writeNodeResponse(response: Response, nodeRes: ServerResponse): void |
1493
1797
  // `writeHead`: headers are already flushed by the time `writeHead` returns.
1494
1798
  nodeRes.setHeaders(response.headers)
1495
1799
  nodeRes.writeHead(response.status)
1800
+ if (isHead) {
1801
+ nodeRes.end()
1802
+ return
1803
+ }
1496
1804
  const directBody = nodeResponseBody(response)
1497
1805
  if (directBody !== undefined) {
1498
1806
  nodeRes.end(directBody)