@nifrajs/proxy 2.13.0 → 3.1.0

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.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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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * The Node-stream escape hatch: a Web `ReadableStream` over a Node `Readable` that can hand the
3
+ * Node stream back, so two adjacent Node-native layers do not have to round-trip bytes through Web
4
+ * objects just because the contract between them is Web-shaped.
5
+ *
6
+ * Why this exists: `@nifrajs/node` receives a Node `IncomingMessage` and must present a Web
7
+ * `Request`; `@nifrajs/proxy/undici` receives that `Request` and must hand undici a Node stream
8
+ * again. Measured on a pinned-core Linux rig, that round trip - not hygiene, not routing, not the
9
+ * adapter - is the entire remaining distance to `@fastify/reply-from`, which never leaves Node
10
+ * streams: -17% on GET (one conversion) and -34% on POST (two, since the request body converts on
11
+ * the way out as well).
12
+ *
13
+ * Why it cannot be `Readable.toWeb`: that consumes its source EAGERLY. Wrapping a `Readable` and
14
+ * then never reading the wrapper still leaves the source read (`readableDidRead === true`), so
15
+ * handing the raw stream onward afterwards loses the body outright. The wrapper here touches its
16
+ * source only on the first `pull`, which is what makes the hand-back sound.
17
+ *
18
+ * The seam is a `Symbol.for` key because the two packages that use it share no runtime dependency.
19
+ * This file is a verbatim copy of `@nifrajs/node`'s - importing it would give this package a
20
+ * runtime dependency, and only the symbol and the shape below actually have to match. It is
21
+ * reachable only through the `./undici` subpath, so the base package stays runtime-portable.
22
+ *
23
+ * Claiming is ONE-SHOT and refused once the Web view has been touched, which is the property that
24
+ * makes it safe: a body can never be split between the two views, and a layer that already started
25
+ * reading the Web stream silently keeps the ordinary path instead of forwarding a truncated body.
26
+ */
27
+ import { Readable } from "node:stream";
28
+ /** Shared with `@nifrajs/node`'s copy of this module - the value is the contract. */
29
+ export declare const NODE_STREAM_CLAIM: unique symbol;
30
+ /**
31
+ * What cancelling the Web view should do to the Node stream under it.
32
+ *
33
+ * `"destroy"` releases the source immediately, which is what a response body wants: a client that
34
+ * walked away from a file or an upstream response must not cost another byte of it.
35
+ *
36
+ * `"drain"` lets the source run to its own end and destroys it then, which is what a REQUEST body
37
+ * wants, and is `Readable.toWeb`'s behaviour rather than a new policy. Destroying an
38
+ * `IncomingMessage` destroys its socket, so cancelling a half-read upload synchronously tears the
39
+ * connection down before the handler can answer - a body rejected by the size cap reaches the client
40
+ * as a connection reset instead of the `413` that explains it. Draining leaves the socket writable
41
+ * long enough for the response to go out. It does NOT mean reading the rest of a hostile upload:
42
+ * once that response completes, Node destroys the socket itself because the request is incomplete,
43
+ * so an over-cap body stops arriving within roughly the cap either way (measured: a 64 MB body
44
+ * against a 1 MB cap transfers about 2 MB before the connection closes, on this path and on
45
+ * `Readable.toWeb` alike).
46
+ */
47
+ export type CancelPolicy = "destroy" | "drain";
48
+ /**
49
+ * A Web view of `source` that defers to it lazily and can be traded back in for it.
50
+ *
51
+ * `highWaterMark: 0` keeps construction free of a speculative pull - a stream that is going to be
52
+ * claimed must not have read a byte first.
53
+ */
54
+ export declare function claimableWebStream(source: Readable, onCancel?: CancelPolicy): ReadableStream<Uint8Array>;
55
+ /**
56
+ * Trade a Web stream back for the Node stream underneath it, or `null` when that is not sound -
57
+ * a foreign stream, one someone holds a reader on, or one that has already been read or claimed.
58
+ * Every `null` means "use the ordinary Web path", never "fail".
59
+ */
60
+ export declare function claimNodeStream(body: ReadableStream<Uint8Array> | null): Readable | null;
61
+ //# sourceMappingURL=node-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-stream.d.ts","sourceRoot":"","sources":["../src/node-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,eAAwC,CAAA;AAWtE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAA;AAY9C;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,QAAQ,EAChB,QAAQ,GAAE,YAAwB,GACjC,cAAc,CAAC,UAAU,CAAC,CAgF5B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAOxF"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * The Node-stream escape hatch: a Web `ReadableStream` over a Node `Readable` that can hand the
3
+ * Node stream back, so two adjacent Node-native layers do not have to round-trip bytes through Web
4
+ * objects just because the contract between them is Web-shaped.
5
+ *
6
+ * Why this exists: `@nifrajs/node` receives a Node `IncomingMessage` and must present a Web
7
+ * `Request`; `@nifrajs/proxy/undici` receives that `Request` and must hand undici a Node stream
8
+ * again. Measured on a pinned-core Linux rig, that round trip - not hygiene, not routing, not the
9
+ * adapter - is the entire remaining distance to `@fastify/reply-from`, which never leaves Node
10
+ * streams: -17% on GET (one conversion) and -34% on POST (two, since the request body converts on
11
+ * the way out as well).
12
+ *
13
+ * Why it cannot be `Readable.toWeb`: that consumes its source EAGERLY. Wrapping a `Readable` and
14
+ * then never reading the wrapper still leaves the source read (`readableDidRead === true`), so
15
+ * handing the raw stream onward afterwards loses the body outright. The wrapper here touches its
16
+ * source only on the first `pull`, which is what makes the hand-back sound.
17
+ *
18
+ * The seam is a `Symbol.for` key because the two packages that use it share no runtime dependency.
19
+ * This file is a verbatim copy of `@nifrajs/node`'s - importing it would give this package a
20
+ * runtime dependency, and only the symbol and the shape below actually have to match. It is
21
+ * reachable only through the `./undici` subpath, so the base package stays runtime-portable.
22
+ *
23
+ * Claiming is ONE-SHOT and refused once the Web view has been touched, which is the property that
24
+ * makes it safe: a body can never be split between the two views, and a layer that already started
25
+ * reading the Web stream silently keeps the ordinary path instead of forwarding a truncated body.
26
+ */
27
+ import { Readable } from "node:stream";
28
+ /** Shared with `@nifrajs/node`'s copy of this module - the value is the contract. */
29
+ export const NODE_STREAM_CLAIM = Symbol.for("nifra.node.stream-claim");
30
+ /**
31
+ * Hard ceiling on a post-cancel drain. Draining exists only to let the early response (a 413 cap
32
+ * rejection) flush on a clean FIN; it is never meant to read a hostile upload to its end. Node
33
+ * normally tears the socket down once that response completes, which ends the drain well before this
34
+ * - but a slow client that keeps both directions alive could otherwise trickle bytes forever and
35
+ * pin the connection. Past this many drained bytes the response has long since left, so destroying
36
+ * (an RST) no longer risks discarding it; the ceiling just caps the pathological case.
37
+ */
38
+ const DRAIN_BYTE_CAP = 8 * 1024 * 1024;
39
+ /**
40
+ * A Web view of `source` that defers to it lazily and can be traded back in for it.
41
+ *
42
+ * `highWaterMark: 0` keeps construction free of a speculative pull - a stream that is going to be
43
+ * claimed must not have read a byte first.
44
+ */
45
+ export function claimableWebStream(source, onCancel = "destroy") {
46
+ let iterator;
47
+ let surrendered = false;
48
+ const stream = new ReadableStream({
49
+ pull(controller) {
50
+ if (surrendered) {
51
+ // Unreachable through `claimNodeStream` (it refuses a locked stream and the claim is
52
+ // one-shot), so reaching it means someone kept a reader across the hand-off. Fail loudly
53
+ // rather than serve a body that is missing whatever the other consumer already took.
54
+ const error = new Error("[nifra] this request body was handed to a Node-native consumer; the Web stream over it can no longer be read");
55
+ controller.error(error);
56
+ return Promise.reject(error);
57
+ }
58
+ iterator ??= source[Symbol.asyncIterator]();
59
+ return iterator.next().then(({ done, value }) => {
60
+ if (done === true) {
61
+ controller.close();
62
+ return;
63
+ }
64
+ // `Buffer` is a `Uint8Array`, so a binary-mode stream needs no conversion. An
65
+ // object-mode stream has no business being an HTTP body.
66
+ if (!(value instanceof Uint8Array)) {
67
+ throw new TypeError("[nifra] request body stream yielded a non-binary chunk");
68
+ }
69
+ controller.enqueue(value);
70
+ }, (error) => {
71
+ controller.error(error);
72
+ throw error;
73
+ });
74
+ },
75
+ cancel(reason) {
76
+ if (surrendered)
77
+ return;
78
+ surrendered = true;
79
+ const error = reason instanceof Error ? reason : undefined;
80
+ if (onCancel === "destroy" || source.destroyed) {
81
+ source.destroy(error);
82
+ return;
83
+ }
84
+ // The source stays live after this returns, so it keeps the right to emit `error` - and an
85
+ // unhandled `error` on a Node stream terminates the process. A client that resets the
86
+ // connection mid-drain is an ordinary event here, not a fault worth propagating: the read
87
+ // was already abandoned.
88
+ source.on("error", () => {
89
+ if (!source.destroyed)
90
+ source.destroy();
91
+ });
92
+ // Both, because only one of them is reached: a source that runs out ends, and one whose
93
+ // socket is torn down by the completed response closes without ending.
94
+ source.once("end", () => source.destroy());
95
+ source.once("close", () => source.destroy());
96
+ // Bounded drain: a `data` listener flows the source to discard it, the same as `resume()`,
97
+ // but also counts bytes so an over-cap trickle is destroyed at the cap rather than held open
98
+ // indefinitely.
99
+ let drained = 0;
100
+ source.on("data", (chunk) => {
101
+ drained += chunk.byteLength;
102
+ if (drained > DRAIN_BYTE_CAP && !source.destroyed)
103
+ source.destroy();
104
+ });
105
+ },
106
+ }, { highWaterMark: 0 });
107
+ const claim = {
108
+ claim() {
109
+ // `iterator !== undefined` means a pull already happened, so bytes are gone; `destroyed`
110
+ // means there is nothing left to hand over.
111
+ if (surrendered || iterator !== undefined || source.destroyed)
112
+ return null;
113
+ surrendered = true;
114
+ return source;
115
+ },
116
+ };
117
+ Object.defineProperty(stream, NODE_STREAM_CLAIM, { value: claim, enumerable: false });
118
+ return stream;
119
+ }
120
+ /**
121
+ * Trade a Web stream back for the Node stream underneath it, or `null` when that is not sound -
122
+ * a foreign stream, one someone holds a reader on, or one that has already been read or claimed.
123
+ * Every `null` means "use the ordinary Web path", never "fail".
124
+ */
125
+ export function claimNodeStream(body) {
126
+ if (body === null || body.locked)
127
+ return null;
128
+ const holder = body[NODE_STREAM_CLAIM];
129
+ if (holder === undefined || typeof holder.claim !== "function")
130
+ return null;
131
+ const claimed = holder.claim();
132
+ // A `Symbol.for` key is reachable by anything in the process, so the value is not taken on trust.
133
+ return claimed instanceof Readable ? claimed : null;
134
+ }
135
+ //# sourceMappingURL=node-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-stream.js","sourceRoot":"","sources":["../src/node-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * undici-backed transport for `createProxy` - the fast upstream path on Node.
3
+ *
4
+ * `fetch()` is a spec-compliant wrapper over the same client. Measured against a local origin at 50
5
+ * concurrent connections, going straight to undici's dispatcher API instead is roughly 2.5x the
6
+ * throughput on GET and 2.2x on POST; on Bun there is no such gap, so this is a Node remedy and the
7
+ * default `fetch` transport stays the portable one.
8
+ *
9
+ * The security obligations in {@link ProxyTransport} are met here as follows: undici does not follow
10
+ * redirects unless asked to, so a 3xx is relayed and the upstream can never steer the next hop; the
11
+ * URL is passed through untouched, so the dialed host is still the one `createProxy` computed; and
12
+ * TLS verification is left alone, with no option offered to weaken it. Sanitised headers are
13
+ * forwarded exactly as handed over.
14
+ *
15
+ * The redirect guarantee is the one a caller can break: undici 8 moved redirect following into an
16
+ * opt-in interceptor (undici 7 spelled it `maxRedirections`, defaulting to none). Composing a
17
+ * redirect interceptor into a `dispatcher` passed here would defeat it, and this transport cannot
18
+ * detect that. Do not.
19
+ *
20
+ * ```ts
21
+ * import { createProxy } from "@nifrajs/proxy"
22
+ * import { undiciTransport } from "@nifrajs/proxy/undici"
23
+ *
24
+ * const proxy = createProxy({ upstream: "http://127.0.0.1:8081", transport: undiciTransport() })
25
+ * ```
26
+ *
27
+ * Requires `undici` (>= 7) to be installed; it is an optional peer, so the base package stays
28
+ * dependency-free for everyone who does not opt in.
29
+ */
30
+ import { type Dispatcher } from "undici";
31
+ import type { ProxyTransport } from "./index.js";
32
+ export interface UndiciTransportOptions {
33
+ /**
34
+ * Connection pool to dial through - an undici `Agent`, `Pool`, or any other `Dispatcher`. Omit to
35
+ * use undici's global dispatcher. Supply one to tune `connections` per origin, which is the knob
36
+ * that matters under load. It must not compose a redirect interceptor: this proxy relays 3xx
37
+ * rather than following it, and a dispatcher that follows would hand the upstream the next hop.
38
+ */
39
+ readonly dispatcher?: Dispatcher;
40
+ /**
41
+ * Milliseconds of silence tolerated *within* the response body before undici destroys it.
42
+ * `createProxy`'s own `timeoutMs` only covers the wait for response headers - after the status is
43
+ * relayed a `504` is no longer sendable - so this is what protects against a body that starts and
44
+ * then stalls. Default `30_000`; `0` disables it.
45
+ */
46
+ readonly bodyTimeoutMs?: number;
47
+ }
48
+ /** Create an undici-backed {@link ProxyTransport}. */
49
+ export declare function undiciTransport(options?: UndiciTransportOptions): ProxyTransport;
50
+ //# sourceMappingURL=undici.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undici.d.ts","sourceRoot":"","sources":["../src/undici.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAAE,KAAK,UAAU,EAA4B,MAAM,QAAQ,CAAA;AAClE,OAAO,KAAK,EAAwB,cAAc,EAAyB,MAAM,YAAY,CAAA;AAK7F,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AA2BD,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,cAAc,CAmFpF"}
package/dist/undici.js ADDED
@@ -0,0 +1,138 @@
1
+ /**
2
+ * undici-backed transport for `createProxy` - the fast upstream path on Node.
3
+ *
4
+ * `fetch()` is a spec-compliant wrapper over the same client. Measured against a local origin at 50
5
+ * concurrent connections, going straight to undici's dispatcher API instead is roughly 2.5x the
6
+ * throughput on GET and 2.2x on POST; on Bun there is no such gap, so this is a Node remedy and the
7
+ * default `fetch` transport stays the portable one.
8
+ *
9
+ * The security obligations in {@link ProxyTransport} are met here as follows: undici does not follow
10
+ * redirects unless asked to, so a 3xx is relayed and the upstream can never steer the next hop; the
11
+ * URL is passed through untouched, so the dialed host is still the one `createProxy` computed; and
12
+ * TLS verification is left alone, with no option offered to weaken it. Sanitised headers are
13
+ * forwarded exactly as handed over.
14
+ *
15
+ * The redirect guarantee is the one a caller can break: undici 8 moved redirect following into an
16
+ * opt-in interceptor (undici 7 spelled it `maxRedirections`, defaulting to none). Composing a
17
+ * redirect interceptor into a `dispatcher` passed here would defeat it, and this transport cannot
18
+ * detect that. Do not.
19
+ *
20
+ * ```ts
21
+ * import { createProxy } from "@nifrajs/proxy"
22
+ * import { undiciTransport } from "@nifrajs/proxy/undici"
23
+ *
24
+ * const proxy = createProxy({ upstream: "http://127.0.0.1:8081", transport: undiciTransport() })
25
+ * ```
26
+ *
27
+ * Requires `undici` (>= 7) to be installed; it is an optional peer, so the base package stays
28
+ * dependency-free for everyone who does not opt in.
29
+ */
30
+ import { Readable } from "node:stream";
31
+ import { request as undiciRequest } from "undici";
32
+ import { claimableWebStream, claimNodeStream } from "./node-stream.js";
33
+ const NODE_NATIVE_TRANSPORT = Symbol.for("@nifrajs/proxy/node-native-transport");
34
+ /**
35
+ * Statuses that MUST NOT carry a body. `fetch` reports `response.body === null` for these, but
36
+ * undici hands back a real (empty) stream, and `new Response(stream, { status: 204 })` throws. The
37
+ * stream is dumped rather than dropped, because an unread undici body holds its socket open.
38
+ */
39
+ const NULL_BODY_STATUS = new Set([101, 204, 205, 304]);
40
+ function toHeaders(raw) {
41
+ const out = new Headers();
42
+ for (const [name, value] of Object.entries(raw)) {
43
+ if (value === undefined)
44
+ continue;
45
+ if (Array.isArray(value)) {
46
+ for (const entry of value)
47
+ out.append(name, entry);
48
+ }
49
+ else {
50
+ out.append(name, value);
51
+ }
52
+ }
53
+ return out;
54
+ }
55
+ function requestBody(body) {
56
+ if (body === null)
57
+ return null;
58
+ return claimNodeStream(body) ?? Readable.fromWeb(body);
59
+ }
60
+ /** Create an undici-backed {@link ProxyTransport}. */
61
+ export function undiciTransport(options = {}) {
62
+ // Under Bun the `undici` specifier resolves to a built-in shim whose response bodies have no
63
+ // `dump()` and whose request bodies undici cannot iterate - every POST and every bodiless status
64
+ // would come back as a flat 502. Fail at construction instead: there is nothing to gain anyway,
65
+ // since Bun's own fetch measures level with a raw client, and the default transport is faster.
66
+ if (typeof globalThis.Bun !== "undefined") {
67
+ throw new Error("[nifra/proxy] undiciTransport() is a Node remedy - under Bun the `undici` specifier resolves to a built-in shim this cannot drive, and Bun's own fetch shows no gap. Leave `transport` unset there.");
68
+ }
69
+ const bodyTimeout = options.bodyTimeoutMs ?? 30_000;
70
+ if (!Number.isFinite(bodyTimeout) || bodyTimeout < 0) {
71
+ throw new Error("[nifra/proxy] bodyTimeoutMs must be a non-negative number");
72
+ }
73
+ const dispatcher = options.dispatcher;
74
+ const transport = async (target, request) => {
75
+ // Flat name/value pairs preserve what `Headers` already merged, without a second object.
76
+ const headers = [];
77
+ for (const [name, value] of request.headers)
78
+ headers.push(name, value);
79
+ const response = await undiciRequest(target, {
80
+ method: request.method,
81
+ headers,
82
+ // Node's own stream type, so undici never has to guess how to consume it. When the adapter
83
+ // upstream of us built that Web stream over a Node one and nothing has read it, take the
84
+ // Node stream back instead of converting: the client's body then reaches undici without ever
85
+ // being repackaged. `claimNodeStream` returns null for any stream that is foreign, held, or
86
+ // already read, and the conversion below is what happens then.
87
+ body: requestBody(request.body),
88
+ signal: request.signal,
89
+ bodyTimeout,
90
+ ...(dispatcher === undefined ? {} : { dispatcher }),
91
+ });
92
+ if (NULL_BODY_STATUS.has(response.statusCode) || request.method === "HEAD") {
93
+ await response.body.dump();
94
+ return {
95
+ status: response.statusCode,
96
+ statusText: "",
97
+ headers: toHeaders(response.headers),
98
+ body: null,
99
+ // No body to describe, but undici never decodes, so the contract stays consistent.
100
+ bodyEncoded: true,
101
+ };
102
+ }
103
+ return {
104
+ status: response.statusCode,
105
+ statusText: "",
106
+ headers: toHeaders(response.headers),
107
+ // Claimable rather than `Readable.toWeb`: an adapter that writes this response to a Node
108
+ // socket (`@nifrajs/node`) can pipe the upstream stream straight through, and anything else
109
+ // reads it as the ordinary Web stream it is.
110
+ body: claimableWebStream(response.body),
111
+ // undici's `request` does not decode `Content-Encoding`, so the body is the upstream's exact
112
+ // bytes and its encoding/length headers must survive the relay for the client to decode.
113
+ bodyEncoded: true,
114
+ };
115
+ };
116
+ const nativeTransport = async (target, request) => {
117
+ const response = await undiciRequest(target, {
118
+ method: request.method,
119
+ headers: Array.from(request.headers),
120
+ // This is the original IncomingMessage from @nifrajs/node. Keeping it as a Node stream is
121
+ // the point of this lane: no Web stream wrapper is constructed on either side of the proxy.
122
+ body: request.body === null ? null : request.body,
123
+ signal: request.signal,
124
+ headersTimeout: request.headersTimeout,
125
+ bodyTimeout,
126
+ ...(dispatcher === undefined ? {} : { dispatcher }),
127
+ });
128
+ return {
129
+ status: response.statusCode,
130
+ headers: response.headers,
131
+ body: response.body,
132
+ dump: () => response.body.dump(),
133
+ };
134
+ };
135
+ Object.defineProperty(transport, NODE_NATIVE_TRANSPORT, { value: nativeTransport });
136
+ return transport;
137
+ }
138
+ //# sourceMappingURL=undici.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undici.js","sourceRoot":"","sources":["../src/undici.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nifrajs/proxy",
3
- "version": "2.13.0",
3
+ "version": "3.1.0",
4
4
  "description": "Reverse proxy for nifra - stream requests to one fixed upstream origin with hop-by-hop hygiene, SSRF-proof by construction. Dependency-free.",
5
5
  "keywords": [
6
6
  "bun",
@@ -21,6 +21,11 @@
21
21
  "bun": "./src/index.ts",
22
22
  "types": "./dist/index.d.ts",
23
23
  "default": "./dist/index.js"
24
+ },
25
+ "./undici": {
26
+ "bun": "./src/undici.ts",
27
+ "types": "./dist/undici.d.ts",
28
+ "default": "./dist/undici.js"
24
29
  }
25
30
  },
26
31
  "files": [
@@ -31,8 +36,18 @@
31
36
  "scripts": {
32
37
  "build": "tsc -p tsconfig.build.json && bun run ../../scripts/fix-dts.ts dist"
33
38
  },
39
+ "peerDependencies": {
40
+ "undici": ">=7"
41
+ },
42
+ "peerDependenciesMeta": {
43
+ "undici": {
44
+ "optional": true
45
+ }
46
+ },
34
47
  "devDependencies": {
35
- "@nifrajs/core": "workspace:*"
48
+ "@nifrajs/core": "workspace:*",
49
+ "@nifrajs/node": "workspace:*",
50
+ "undici": "^8.10.0"
36
51
  },
37
52
  "license": "MIT",
38
53
  "publishConfig": {