@trpc/server 11.11.0 → 11.12.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/adapters/aws-lambda/index.cjs +1 -1
- package/dist/adapters/aws-lambda/index.mjs +1 -1
- package/dist/adapters/express.cjs +2 -2
- package/dist/adapters/express.mjs +2 -2
- package/dist/adapters/fastify/index.cjs +3 -3
- package/dist/adapters/fastify/index.mjs +3 -3
- package/dist/adapters/fetch/index.cjs +1 -1
- package/dist/adapters/fetch/index.mjs +1 -1
- package/dist/adapters/next-app-dir.cjs +1 -1
- package/dist/adapters/next-app-dir.mjs +1 -1
- package/dist/adapters/next.cjs +2 -2
- package/dist/adapters/next.mjs +2 -2
- package/dist/adapters/node-http/index.cjs +2 -2
- package/dist/adapters/node-http/index.mjs +2 -2
- package/dist/adapters/standalone.cjs +2 -2
- package/dist/adapters/standalone.mjs +2 -2
- package/dist/adapters/ws.cjs +3 -3
- package/dist/adapters/ws.mjs +3 -3
- package/dist/http.cjs +1 -1
- package/dist/http.mjs +1 -1
- package/dist/{node-http-DtA2iLK9.mjs → node-http-DHiQq80-.mjs} +8 -3
- package/dist/{node-http-DtA2iLK9.mjs.map → node-http-DHiQq80-.mjs.map} +1 -1
- package/dist/{node-http-Cnp9YtdI.cjs → node-http-ROAXu4fE.cjs} +7 -2
- package/dist/{resolveResponse-BVDlNZwN.mjs → resolveResponse-BLZa62-J.mjs} +27 -3
- package/dist/resolveResponse-BLZa62-J.mjs.map +1 -0
- package/dist/{resolveResponse-BsnbAhRr.cjs → resolveResponse-Dc2udzYB.cjs} +26 -2
- package/dist/unstable-core-do-not-import.cjs +1 -1
- package/dist/unstable-core-do-not-import.mjs +1 -1
- package/dist/{ws-CJgZE7Hg.mjs → ws-B0fE_kLU.mjs} +3 -3
- package/dist/{ws-CJgZE7Hg.mjs.map → ws-B0fE_kLU.mjs.map} +1 -1
- package/dist/{ws-D7wcL190.cjs → ws-BPQs5ZSa.cjs} +2 -2
- package/package.json +2 -2
- package/src/adapters/node-http/writeResponse.ts +5 -0
- package/src/unstable-core-do-not-import/http/resolveResponse.ts +42 -2
- package/dist/resolveResponse-BVDlNZwN.mjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_getErrorShape = require('../../getErrorShape-MR4DZeb7.cjs');
|
|
2
2
|
require('../../codes-BfZsPdy-.cjs');
|
|
3
3
|
require('../../tracked-DX1GMBVX.cjs');
|
|
4
|
-
const require_resolveResponse = require('../../resolveResponse-
|
|
4
|
+
const require_resolveResponse = require('../../resolveResponse-Dc2udzYB.cjs');
|
|
5
5
|
require('../../observable-B1Nk6r1H.cjs');
|
|
6
6
|
const node_stream = require_getErrorShape.__toESM(require("node:stream"));
|
|
7
7
|
const node_stream_promises = require_getErrorShape.__toESM(require("node:stream/promises"));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __toESM, require_objectSpread2 } from "../../getErrorShape-vC8mUXJD.mjs";
|
|
2
2
|
import "../../codes-DagpWZLc.mjs";
|
|
3
3
|
import "../../tracked-Bjtgv3wJ.mjs";
|
|
4
|
-
import { resolveResponse } from "../../resolveResponse-
|
|
4
|
+
import { resolveResponse } from "../../resolveResponse-BLZa62-J.mjs";
|
|
5
5
|
import "../../observable-UMO3vUa_.mjs";
|
|
6
6
|
import { Readable } from "node:stream";
|
|
7
7
|
import { pipeline } from "node:stream/promises";
|
|
@@ -2,12 +2,12 @@ const require_getErrorShape = require('../getErrorShape-MR4DZeb7.cjs');
|
|
|
2
2
|
const require_codes = require('../codes-BfZsPdy-.cjs');
|
|
3
3
|
require('../tracked-DX1GMBVX.cjs');
|
|
4
4
|
require('../parseTRPCMessage-7Ltmq-Fb.cjs');
|
|
5
|
-
require('../resolveResponse-
|
|
5
|
+
require('../resolveResponse-Dc2udzYB.cjs');
|
|
6
6
|
require('../contentTypeParsers-iAFF_pJG.cjs');
|
|
7
7
|
require('../unstable-core-do-not-import-fsjhEhgh.cjs');
|
|
8
8
|
require('../observable-B1Nk6r1H.cjs');
|
|
9
9
|
require('../initTRPC-_LnoxDdS.cjs');
|
|
10
|
-
const require_node_http = require('../node-http-
|
|
10
|
+
const require_node_http = require('../node-http-ROAXu4fE.cjs');
|
|
11
11
|
|
|
12
12
|
//#region src/adapters/express.ts
|
|
13
13
|
var import_objectSpread2 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
|
@@ -2,12 +2,12 @@ import { __toESM, require_objectSpread2 } from "../getErrorShape-vC8mUXJD.mjs";
|
|
|
2
2
|
import { run } from "../codes-DagpWZLc.mjs";
|
|
3
3
|
import "../tracked-Bjtgv3wJ.mjs";
|
|
4
4
|
import "../parseTRPCMessage-CTow-umk.mjs";
|
|
5
|
-
import "../resolveResponse-
|
|
5
|
+
import "../resolveResponse-BLZa62-J.mjs";
|
|
6
6
|
import "../contentTypeParsers-SN4WL9ze.mjs";
|
|
7
7
|
import "../unstable-core-do-not-import-9NNw8uQM.mjs";
|
|
8
8
|
import "../observable-UMO3vUa_.mjs";
|
|
9
9
|
import "../initTRPC-RoZMIBeA.mjs";
|
|
10
|
-
import { internal_exceptionHandler, nodeHTTPRequestHandler } from "../node-http-
|
|
10
|
+
import { internal_exceptionHandler, nodeHTTPRequestHandler } from "../node-http-DHiQq80-.mjs";
|
|
11
11
|
|
|
12
12
|
//#region src/adapters/express.ts
|
|
13
13
|
var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
|
|
@@ -2,15 +2,15 @@ const require_getErrorShape = require('../../getErrorShape-MR4DZeb7.cjs');
|
|
|
2
2
|
require('../../codes-BfZsPdy-.cjs');
|
|
3
3
|
require('../../tracked-DX1GMBVX.cjs');
|
|
4
4
|
require('../../parseTRPCMessage-7Ltmq-Fb.cjs');
|
|
5
|
-
const require_resolveResponse = require('../../resolveResponse-
|
|
5
|
+
const require_resolveResponse = require('../../resolveResponse-Dc2udzYB.cjs');
|
|
6
6
|
require('../../contentTypeParsers-iAFF_pJG.cjs');
|
|
7
7
|
require('../../unstable-core-do-not-import-fsjhEhgh.cjs');
|
|
8
8
|
require('../../observable-B1Nk6r1H.cjs');
|
|
9
9
|
require('../../initTRPC-_LnoxDdS.cjs');
|
|
10
10
|
require('../../http-DXy3XyhL.cjs');
|
|
11
|
-
const require_node_http = require('../../node-http-
|
|
11
|
+
const require_node_http = require('../../node-http-ROAXu4fE.cjs');
|
|
12
12
|
require('../../observable-BVzLuBs6.cjs');
|
|
13
|
-
const require_ws = require('../../ws-
|
|
13
|
+
const require_ws = require('../../ws-BPQs5ZSa.cjs');
|
|
14
14
|
|
|
15
15
|
//#region src/adapters/fastify/fastifyRequestHandler.ts
|
|
16
16
|
var import_objectSpread2$1 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
|
@@ -2,15 +2,15 @@ import { __toESM, require_objectSpread2 } from "../../getErrorShape-vC8mUXJD.mjs
|
|
|
2
2
|
import "../../codes-DagpWZLc.mjs";
|
|
3
3
|
import "../../tracked-Bjtgv3wJ.mjs";
|
|
4
4
|
import "../../parseTRPCMessage-CTow-umk.mjs";
|
|
5
|
-
import { resolveResponse } from "../../resolveResponse-
|
|
5
|
+
import { resolveResponse } from "../../resolveResponse-BLZa62-J.mjs";
|
|
6
6
|
import "../../contentTypeParsers-SN4WL9ze.mjs";
|
|
7
7
|
import "../../unstable-core-do-not-import-9NNw8uQM.mjs";
|
|
8
8
|
import "../../observable-UMO3vUa_.mjs";
|
|
9
9
|
import "../../initTRPC-RoZMIBeA.mjs";
|
|
10
10
|
import "../../http-CWyjOa1l.mjs";
|
|
11
|
-
import { incomingMessageToRequest } from "../../node-http-
|
|
11
|
+
import { incomingMessageToRequest } from "../../node-http-DHiQq80-.mjs";
|
|
12
12
|
import "../../observable-CUiPknO-.mjs";
|
|
13
|
-
import { getWSConnectionHandler, handleKeepAlive } from "../../ws-
|
|
13
|
+
import { getWSConnectionHandler, handleKeepAlive } from "../../ws-B0fE_kLU.mjs";
|
|
14
14
|
|
|
15
15
|
//#region src/adapters/fastify/fastifyRequestHandler.ts
|
|
16
16
|
var import_objectSpread2$1 = __toESM(require_objectSpread2(), 1);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_getErrorShape = require('../../getErrorShape-MR4DZeb7.cjs');
|
|
2
2
|
require('../../codes-BfZsPdy-.cjs');
|
|
3
3
|
require('../../tracked-DX1GMBVX.cjs');
|
|
4
|
-
const require_resolveResponse = require('../../resolveResponse-
|
|
4
|
+
const require_resolveResponse = require('../../resolveResponse-Dc2udzYB.cjs');
|
|
5
5
|
require('../../observable-B1Nk6r1H.cjs');
|
|
6
6
|
|
|
7
7
|
//#region src/adapters/fetch/fetchRequestHandler.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __toESM, require_objectSpread2 } from "../../getErrorShape-vC8mUXJD.mjs";
|
|
2
2
|
import "../../codes-DagpWZLc.mjs";
|
|
3
3
|
import "../../tracked-Bjtgv3wJ.mjs";
|
|
4
|
-
import { resolveResponse } from "../../resolveResponse-
|
|
4
|
+
import { resolveResponse } from "../../resolveResponse-BLZa62-J.mjs";
|
|
5
5
|
import "../../observable-UMO3vUa_.mjs";
|
|
6
6
|
|
|
7
7
|
//#region src/adapters/fetch/fetchRequestHandler.ts
|
|
@@ -2,7 +2,7 @@ const require_getErrorShape = require('../getErrorShape-MR4DZeb7.cjs');
|
|
|
2
2
|
require('../codes-BfZsPdy-.cjs');
|
|
3
3
|
const require_tracked = require('../tracked-DX1GMBVX.cjs');
|
|
4
4
|
require('../parseTRPCMessage-7Ltmq-Fb.cjs');
|
|
5
|
-
require('../resolveResponse-
|
|
5
|
+
require('../resolveResponse-Dc2udzYB.cjs');
|
|
6
6
|
require('../contentTypeParsers-iAFF_pJG.cjs');
|
|
7
7
|
const require_unstable_core_do_not_import = require('../unstable-core-do-not-import-fsjhEhgh.cjs');
|
|
8
8
|
require('../observable-B1Nk6r1H.cjs');
|
|
@@ -2,7 +2,7 @@ import { __commonJS, __toESM, require_defineProperty } from "../getErrorShape-vC
|
|
|
2
2
|
import "../codes-DagpWZLc.mjs";
|
|
3
3
|
import { TRPCError, getTRPCErrorFromUnknown } from "../tracked-Bjtgv3wJ.mjs";
|
|
4
4
|
import "../parseTRPCMessage-CTow-umk.mjs";
|
|
5
|
-
import "../resolveResponse-
|
|
5
|
+
import "../resolveResponse-BLZa62-J.mjs";
|
|
6
6
|
import "../contentTypeParsers-SN4WL9ze.mjs";
|
|
7
7
|
import { formDataToObject } from "../unstable-core-do-not-import-9NNw8uQM.mjs";
|
|
8
8
|
import "../observable-UMO3vUa_.mjs";
|
package/dist/adapters/next.cjs
CHANGED
|
@@ -2,12 +2,12 @@ const require_getErrorShape = require('../getErrorShape-MR4DZeb7.cjs');
|
|
|
2
2
|
const require_codes = require('../codes-BfZsPdy-.cjs');
|
|
3
3
|
const require_tracked = require('../tracked-DX1GMBVX.cjs');
|
|
4
4
|
require('../parseTRPCMessage-7Ltmq-Fb.cjs');
|
|
5
|
-
require('../resolveResponse-
|
|
5
|
+
require('../resolveResponse-Dc2udzYB.cjs');
|
|
6
6
|
require('../contentTypeParsers-iAFF_pJG.cjs');
|
|
7
7
|
require('../unstable-core-do-not-import-fsjhEhgh.cjs');
|
|
8
8
|
require('../observable-B1Nk6r1H.cjs');
|
|
9
9
|
require('../initTRPC-_LnoxDdS.cjs');
|
|
10
|
-
const require_node_http = require('../node-http-
|
|
10
|
+
const require_node_http = require('../node-http-ROAXu4fE.cjs');
|
|
11
11
|
|
|
12
12
|
//#region src/adapters/next.ts
|
|
13
13
|
var import_objectSpread2 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
package/dist/adapters/next.mjs
CHANGED
|
@@ -2,12 +2,12 @@ import { __toESM, require_objectSpread2 } from "../getErrorShape-vC8mUXJD.mjs";
|
|
|
2
2
|
import { run } from "../codes-DagpWZLc.mjs";
|
|
3
3
|
import { TRPCError } from "../tracked-Bjtgv3wJ.mjs";
|
|
4
4
|
import "../parseTRPCMessage-CTow-umk.mjs";
|
|
5
|
-
import "../resolveResponse-
|
|
5
|
+
import "../resolveResponse-BLZa62-J.mjs";
|
|
6
6
|
import "../contentTypeParsers-SN4WL9ze.mjs";
|
|
7
7
|
import "../unstable-core-do-not-import-9NNw8uQM.mjs";
|
|
8
8
|
import "../observable-UMO3vUa_.mjs";
|
|
9
9
|
import "../initTRPC-RoZMIBeA.mjs";
|
|
10
|
-
import { internal_exceptionHandler, nodeHTTPRequestHandler } from "../node-http-
|
|
10
|
+
import { internal_exceptionHandler, nodeHTTPRequestHandler } from "../node-http-DHiQq80-.mjs";
|
|
11
11
|
|
|
12
12
|
//#region src/adapters/next.ts
|
|
13
13
|
var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
|
|
@@ -2,12 +2,12 @@ require('../../getErrorShape-MR4DZeb7.cjs');
|
|
|
2
2
|
require('../../codes-BfZsPdy-.cjs');
|
|
3
3
|
require('../../tracked-DX1GMBVX.cjs');
|
|
4
4
|
require('../../parseTRPCMessage-7Ltmq-Fb.cjs');
|
|
5
|
-
require('../../resolveResponse-
|
|
5
|
+
require('../../resolveResponse-Dc2udzYB.cjs');
|
|
6
6
|
require('../../contentTypeParsers-iAFF_pJG.cjs');
|
|
7
7
|
require('../../unstable-core-do-not-import-fsjhEhgh.cjs');
|
|
8
8
|
require('../../observable-B1Nk6r1H.cjs');
|
|
9
9
|
require('../../initTRPC-_LnoxDdS.cjs');
|
|
10
|
-
const require_node_http = require('../../node-http-
|
|
10
|
+
const require_node_http = require('../../node-http-ROAXu4fE.cjs');
|
|
11
11
|
|
|
12
12
|
exports.createURL = require_node_http.createURL;
|
|
13
13
|
exports.incomingMessageToRequest = require_node_http.incomingMessageToRequest;
|
|
@@ -2,11 +2,11 @@ import "../../getErrorShape-vC8mUXJD.mjs";
|
|
|
2
2
|
import "../../codes-DagpWZLc.mjs";
|
|
3
3
|
import "../../tracked-Bjtgv3wJ.mjs";
|
|
4
4
|
import "../../parseTRPCMessage-CTow-umk.mjs";
|
|
5
|
-
import "../../resolveResponse-
|
|
5
|
+
import "../../resolveResponse-BLZa62-J.mjs";
|
|
6
6
|
import "../../contentTypeParsers-SN4WL9ze.mjs";
|
|
7
7
|
import "../../unstable-core-do-not-import-9NNw8uQM.mjs";
|
|
8
8
|
import "../../observable-UMO3vUa_.mjs";
|
|
9
9
|
import "../../initTRPC-RoZMIBeA.mjs";
|
|
10
|
-
import { createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler } from "../../node-http-
|
|
10
|
+
import { createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler } from "../../node-http-DHiQq80-.mjs";
|
|
11
11
|
|
|
12
12
|
export { createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler };
|
|
@@ -2,12 +2,12 @@ const require_getErrorShape = require('../getErrorShape-MR4DZeb7.cjs');
|
|
|
2
2
|
const require_codes = require('../codes-BfZsPdy-.cjs');
|
|
3
3
|
require('../tracked-DX1GMBVX.cjs');
|
|
4
4
|
require('../parseTRPCMessage-7Ltmq-Fb.cjs');
|
|
5
|
-
require('../resolveResponse-
|
|
5
|
+
require('../resolveResponse-Dc2udzYB.cjs');
|
|
6
6
|
require('../contentTypeParsers-iAFF_pJG.cjs');
|
|
7
7
|
require('../unstable-core-do-not-import-fsjhEhgh.cjs');
|
|
8
8
|
require('../observable-B1Nk6r1H.cjs');
|
|
9
9
|
require('../initTRPC-_LnoxDdS.cjs');
|
|
10
|
-
const require_node_http = require('../node-http-
|
|
10
|
+
const require_node_http = require('../node-http-ROAXu4fE.cjs');
|
|
11
11
|
const http = require_getErrorShape.__toESM(require("http"));
|
|
12
12
|
|
|
13
13
|
//#region src/adapters/standalone.ts
|
|
@@ -2,12 +2,12 @@ import { __toESM, require_objectSpread2 } from "../getErrorShape-vC8mUXJD.mjs";
|
|
|
2
2
|
import { run } from "../codes-DagpWZLc.mjs";
|
|
3
3
|
import "../tracked-Bjtgv3wJ.mjs";
|
|
4
4
|
import "../parseTRPCMessage-CTow-umk.mjs";
|
|
5
|
-
import "../resolveResponse-
|
|
5
|
+
import "../resolveResponse-BLZa62-J.mjs";
|
|
6
6
|
import "../contentTypeParsers-SN4WL9ze.mjs";
|
|
7
7
|
import "../unstable-core-do-not-import-9NNw8uQM.mjs";
|
|
8
8
|
import "../observable-UMO3vUa_.mjs";
|
|
9
9
|
import "../initTRPC-RoZMIBeA.mjs";
|
|
10
|
-
import { createURL, internal_exceptionHandler, nodeHTTPRequestHandler } from "../node-http-
|
|
10
|
+
import { createURL, internal_exceptionHandler, nodeHTTPRequestHandler } from "../node-http-DHiQq80-.mjs";
|
|
11
11
|
import http from "http";
|
|
12
12
|
|
|
13
13
|
//#region src/adapters/standalone.ts
|
package/dist/adapters/ws.cjs
CHANGED
|
@@ -2,15 +2,15 @@ require('../getErrorShape-MR4DZeb7.cjs');
|
|
|
2
2
|
require('../codes-BfZsPdy-.cjs');
|
|
3
3
|
require('../tracked-DX1GMBVX.cjs');
|
|
4
4
|
require('../parseTRPCMessage-7Ltmq-Fb.cjs');
|
|
5
|
-
require('../resolveResponse-
|
|
5
|
+
require('../resolveResponse-Dc2udzYB.cjs');
|
|
6
6
|
require('../contentTypeParsers-iAFF_pJG.cjs');
|
|
7
7
|
require('../unstable-core-do-not-import-fsjhEhgh.cjs');
|
|
8
8
|
require('../observable-B1Nk6r1H.cjs');
|
|
9
9
|
require('../initTRPC-_LnoxDdS.cjs');
|
|
10
10
|
require('../http-DXy3XyhL.cjs');
|
|
11
|
-
require('../node-http-
|
|
11
|
+
require('../node-http-ROAXu4fE.cjs');
|
|
12
12
|
require('../observable-BVzLuBs6.cjs');
|
|
13
|
-
const require_ws = require('../ws-
|
|
13
|
+
const require_ws = require('../ws-BPQs5ZSa.cjs');
|
|
14
14
|
|
|
15
15
|
exports.applyWSSHandler = require_ws.applyWSSHandler;
|
|
16
16
|
exports.getWSConnectionHandler = require_ws.getWSConnectionHandler;
|
package/dist/adapters/ws.mjs
CHANGED
|
@@ -2,14 +2,14 @@ import "../getErrorShape-vC8mUXJD.mjs";
|
|
|
2
2
|
import "../codes-DagpWZLc.mjs";
|
|
3
3
|
import "../tracked-Bjtgv3wJ.mjs";
|
|
4
4
|
import "../parseTRPCMessage-CTow-umk.mjs";
|
|
5
|
-
import "../resolveResponse-
|
|
5
|
+
import "../resolveResponse-BLZa62-J.mjs";
|
|
6
6
|
import "../contentTypeParsers-SN4WL9ze.mjs";
|
|
7
7
|
import "../unstable-core-do-not-import-9NNw8uQM.mjs";
|
|
8
8
|
import "../observable-UMO3vUa_.mjs";
|
|
9
9
|
import "../initTRPC-RoZMIBeA.mjs";
|
|
10
10
|
import "../http-CWyjOa1l.mjs";
|
|
11
|
-
import "../node-http-
|
|
11
|
+
import "../node-http-DHiQq80-.mjs";
|
|
12
12
|
import "../observable-CUiPknO-.mjs";
|
|
13
|
-
import { applyWSSHandler, getWSConnectionHandler, handleKeepAlive, jsonEncoder } from "../ws-
|
|
13
|
+
import { applyWSSHandler, getWSConnectionHandler, handleKeepAlive, jsonEncoder } from "../ws-B0fE_kLU.mjs";
|
|
14
14
|
|
|
15
15
|
export { applyWSSHandler, getWSConnectionHandler, handleKeepAlive, jsonEncoder };
|
package/dist/http.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_getErrorShape = require('./getErrorShape-MR4DZeb7.cjs');
|
|
2
2
|
require('./codes-BfZsPdy-.cjs');
|
|
3
3
|
require('./tracked-DX1GMBVX.cjs');
|
|
4
|
-
const require_resolveResponse = require('./resolveResponse-
|
|
4
|
+
const require_resolveResponse = require('./resolveResponse-Dc2udzYB.cjs');
|
|
5
5
|
const require_contentTypeParsers = require('./contentTypeParsers-iAFF_pJG.cjs');
|
|
6
6
|
require('./observable-B1Nk6r1H.cjs');
|
|
7
7
|
require('./http-DXy3XyhL.cjs');
|
package/dist/http.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getHTTPStatusCode, getHTTPStatusCodeFromError } from "./getErrorShape-vC8mUXJD.mjs";
|
|
2
2
|
import "./codes-DagpWZLc.mjs";
|
|
3
3
|
import "./tracked-Bjtgv3wJ.mjs";
|
|
4
|
-
import { parseConnectionParamsFromString, parseConnectionParamsFromUnknown, resolveResponse } from "./resolveResponse-
|
|
4
|
+
import { parseConnectionParamsFromString, parseConnectionParamsFromUnknown, resolveResponse } from "./resolveResponse-BLZa62-J.mjs";
|
|
5
5
|
import { octetInputParser } from "./contentTypeParsers-SN4WL9ze.mjs";
|
|
6
6
|
import "./observable-UMO3vUa_.mjs";
|
|
7
7
|
import "./http-CWyjOa1l.mjs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __toESM, getErrorShape, require_objectSpread2 } from "./getErrorShape-vC8mUXJD.mjs";
|
|
2
2
|
import { run } from "./codes-DagpWZLc.mjs";
|
|
3
3
|
import { TRPCError, getTRPCErrorFromUnknown, transformTRPCResponse } from "./tracked-Bjtgv3wJ.mjs";
|
|
4
|
-
import { isAbortError, resolveResponse } from "./resolveResponse-
|
|
4
|
+
import { isAbortError, resolveResponse } from "./resolveResponse-BLZa62-J.mjs";
|
|
5
5
|
import { IncomingMessage } from "node:http";
|
|
6
6
|
|
|
7
7
|
//#region src/adapters/node-http/incomingMessageToRequest.ts
|
|
@@ -135,7 +135,12 @@ async function writeResponseBody(opts) {
|
|
|
135
135
|
async function writeResponse(opts) {
|
|
136
136
|
const { response, rawResponse } = opts;
|
|
137
137
|
if (rawResponse.statusCode === 200) rawResponse.statusCode = response.status;
|
|
138
|
-
for (const [key, value] of response.headers)
|
|
138
|
+
for (const [key, value] of response.headers) {
|
|
139
|
+
if (key.toLowerCase() === "set-cookie") continue;
|
|
140
|
+
rawResponse.setHeader(key, value);
|
|
141
|
+
}
|
|
142
|
+
const cookies = response.headers.getSetCookie();
|
|
143
|
+
if (cookies.length > 0) rawResponse.setHeader("set-cookie", cookies);
|
|
139
144
|
try {
|
|
140
145
|
if (response.body) await writeResponseBody({
|
|
141
146
|
res: rawResponse,
|
|
@@ -221,4 +226,4 @@ async function nodeHTTPRequestHandler(opts) {
|
|
|
221
226
|
|
|
222
227
|
//#endregion
|
|
223
228
|
export { createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler };
|
|
224
|
-
//# sourceMappingURL=node-http-
|
|
229
|
+
//# sourceMappingURL=node-http-DHiQq80-.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-http-DtA2iLK9.mjs","names":["req: NodeHTTPRequest","opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n }","chunk: Buffer","incoming: http.IncomingHttpHeaders","res: NodeHTTPResponse","init: RequestInit","res: NodeHTTPResponse","chunk: Uint8Array","err: unknown","opts: {\n res: NodeHTTPResponse;\n signal: AbortSignal;\n body: NonNullable<Response['body']>;\n}","opts: {\n request: Request;\n response: Response;\n rawResponse: NodeHTTPResponse;\n}","opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>","cause: unknown","err: unknown","createContext: ResolveHTTPRequestOptionsContextFn<\n TRouter\n >"],"sources":["../src/adapters/node-http/incomingMessageToRequest.ts","../src/adapters/node-http/writeResponse.ts","../src/adapters/node-http/nodeHTTPRequestHandler.ts"],"sourcesContent":["import type * as http from 'http';\nimport { IncomingMessage } from 'node:http';\nimport { TRPCError } from '../../@trpc/server';\nimport type { NodeHTTPRequest, NodeHTTPResponse } from './types';\n\nfunction createBody(\n req: NodeHTTPRequest,\n opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n },\n): RequestInit['body'] {\n // Some adapters will pre-parse the body and add it to the request object\n if ('body' in req) {\n if (req.body === undefined) {\n // If body property exists but is undefined, return undefined\n return undefined;\n }\n // If the body is already a string, return it directly\n if (typeof req.body === 'string') {\n return req.body;\n }\n // formData use\n if (req.body instanceof IncomingMessage) {\n return req.body as any;\n }\n // If body exists but isn't a string, stringify it as JSON\n return JSON.stringify(req.body);\n }\n let size = 0;\n let hasClosed = false;\n\n return new ReadableStream({\n start(controller) {\n const onData = (chunk: Buffer) => {\n size += chunk.length;\n if (!opts.maxBodySize || size <= opts.maxBodySize) {\n controller.enqueue(\n new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength),\n );\n return;\n }\n controller.error(\n new TRPCError({\n code: 'PAYLOAD_TOO_LARGE',\n }),\n );\n hasClosed = true;\n req.off('data', onData);\n req.off('end', onEnd);\n };\n\n const onEnd = () => {\n if (hasClosed) {\n return;\n }\n hasClosed = true;\n req.off('data', onData);\n req.off('end', onEnd);\n controller.close();\n };\n\n req.on('data', onData);\n req.on('end', onEnd);\n },\n cancel() {\n req.destroy();\n },\n });\n}\nexport function createURL(req: NodeHTTPRequest): URL {\n try {\n const protocol =\n // http2\n (req.headers[':scheme'] && req.headers[':scheme'] === 'https') ||\n // http1\n (req.socket && 'encrypted' in req.socket && req.socket.encrypted)\n ? 'https:'\n : 'http:';\n\n const host = req.headers.host ?? req.headers[':authority'] ?? 'localhost';\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return new URL(req.url!, `${protocol}//${host}`);\n } catch (cause) {\n throw new TRPCError({\n code: 'BAD_REQUEST',\n message: 'Invalid URL',\n cause,\n });\n }\n}\n\nfunction createHeaders(incoming: http.IncomingHttpHeaders): Headers {\n const headers = new Headers();\n\n for (const key in incoming) {\n const value = incoming[key];\n if (typeof key === 'string' && key.startsWith(':')) {\n // Skip HTTP/2 pseudo-headers\n continue;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n headers.append(key, item);\n }\n } else if (value != null) {\n headers.append(key, value);\n }\n }\n\n return headers;\n}\n\n/**\n * Convert an [`IncomingMessage`](https://nodejs.org/api/http.html#class-httpincomingmessage) to a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)\n */\nexport function incomingMessageToRequest(\n req: NodeHTTPRequest,\n res: NodeHTTPResponse,\n opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n },\n): Request {\n const ac = new AbortController();\n\n const onAbort = () => {\n res.off('close', onAbort);\n req.off('aborted', onAbort);\n\n // abort the request\n ac.abort();\n };\n\n res.once('close', onAbort);\n req.once('aborted', onAbort);\n\n // Get host from either regular header or HTTP/2 pseudo-header\n const url = createURL(req);\n\n const init: RequestInit = {\n headers: createHeaders(req.headers),\n method: req.method,\n signal: ac.signal,\n };\n\n if (req.method !== 'GET' && req.method !== 'HEAD') {\n init.body = createBody(req, opts);\n\n // init.duplex = 'half' must be set when body is a ReadableStream, and Node follows the spec.\n // However, this property is not defined in the TypeScript types for RequestInit, so we have\n // to cast it here in order to set it without a type error.\n // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex\n // @ts-expect-error this is fine\n init.duplex = 'half';\n }\n\n const request = new Request(url, init);\n\n return request;\n}\n","// eslint-disable-next-line no-restricted-imports\nimport { isAbortError } from '../../unstable-core-do-not-import';\nimport type { NodeHTTPResponse } from './types';\n\nasync function writeResponseBodyChunk(\n res: NodeHTTPResponse,\n chunk: Uint8Array,\n) {\n // useful for debugging 🙃\n // console.debug('writing', new TextDecoder().decode(chunk));\n\n if (res.write(chunk) === false) {\n await new Promise<void>((resolve, reject) => {\n const onError = (err: unknown) => {\n reject(err);\n cleanup();\n };\n const onDrain = () => {\n resolve();\n cleanup();\n };\n const cleanup = () => {\n res.off('error', onError);\n res.off('drain', onDrain);\n };\n res.once('error', onError);\n res.once('drain', onDrain);\n });\n }\n}\n/**\n * @internal\n */\n\nexport async function writeResponseBody(opts: {\n res: NodeHTTPResponse;\n signal: AbortSignal;\n body: NonNullable<Response['body']>;\n}) {\n const { res } = opts;\n\n try {\n const writableStream = new WritableStream({\n async write(chunk) {\n await writeResponseBodyChunk(res, chunk);\n res.flush?.();\n },\n });\n\n await opts.body.pipeTo(writableStream, {\n signal: opts.signal,\n });\n } catch (err) {\n if (isAbortError(err)) {\n return;\n }\n throw err;\n }\n}\n/**\n * @internal\n */\n\nexport async function writeResponse(opts: {\n request: Request;\n response: Response;\n rawResponse: NodeHTTPResponse;\n}) {\n const { response, rawResponse } = opts;\n\n // Only override status code if it hasn't been explicitly set in a procedure etc\n if (rawResponse.statusCode === 200) {\n rawResponse.statusCode = response.status;\n }\n for (const [key, value] of response.headers) {\n rawResponse.setHeader(key, value);\n }\n try {\n if (response.body) {\n await writeResponseBody({\n res: rawResponse,\n signal: opts.request.signal,\n body: response.body,\n });\n }\n } catch (err) {\n if (!rawResponse.headersSent) {\n rawResponse.statusCode = 500;\n }\n throw err;\n } finally {\n rawResponse.end();\n }\n}\n","/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\n\n// @trpc/server\n\nimport {\n getTRPCErrorFromUnknown,\n transformTRPCResponse,\n type AnyRouter,\n} from '../../@trpc/server';\nimport type { ResolveHTTPRequestOptionsContextFn } from '../../@trpc/server/http';\nimport { resolveResponse } from '../../@trpc/server/http';\n// eslint-disable-next-line no-restricted-imports\nimport { getErrorShape, run } from '../../unstable-core-do-not-import';\nimport { incomingMessageToRequest } from './incomingMessageToRequest';\nimport type {\n NodeHTTPRequest,\n NodeHTTPRequestHandlerOptions,\n NodeHTTPResponse,\n} from './types';\nimport { writeResponse } from './writeResponse';\n\n/**\n * @internal\n */\nexport function internal_exceptionHandler<\n TRouter extends AnyRouter,\n TRequest extends NodeHTTPRequest,\n TResponse extends NodeHTTPResponse,\n>(opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>) {\n return (cause: unknown) => {\n const { res, req } = opts;\n const error = getTRPCErrorFromUnknown(cause);\n\n const shape = getErrorShape({\n config: opts.router._def._config,\n error,\n type: 'unknown',\n path: undefined,\n input: undefined,\n ctx: undefined,\n });\n\n opts.onError?.({\n req,\n error,\n type: 'unknown',\n path: undefined,\n input: undefined,\n ctx: undefined,\n });\n\n const transformed = transformTRPCResponse(opts.router._def._config, {\n error: shape,\n });\n\n res.statusCode = shape.data.httpStatus;\n res.end(JSON.stringify(transformed));\n };\n}\n\n/**\n * @remark the promise never rejects\n */\nexport async function nodeHTTPRequestHandler<\n TRouter extends AnyRouter,\n TRequest extends NodeHTTPRequest,\n TResponse extends NodeHTTPResponse,\n>(opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>) {\n return new Promise<void>((resolve) => {\n const handleViaMiddleware =\n opts.middleware ?? ((_req, _res, next) => next());\n\n opts.res.once('finish', () => {\n resolve();\n });\n return handleViaMiddleware(opts.req, opts.res, (err: unknown) => {\n run(async () => {\n const request = incomingMessageToRequest(opts.req, opts.res, {\n maxBodySize: opts.maxBodySize ?? null,\n });\n\n // Build tRPC dependencies\n const createContext: ResolveHTTPRequestOptionsContextFn<\n TRouter\n > = async (innerOpts) => {\n return await opts.createContext?.({\n ...opts,\n ...innerOpts,\n });\n };\n\n const response = await resolveResponse({\n ...opts,\n req: request,\n error: err ? getTRPCErrorFromUnknown(err) : null,\n createContext,\n onError(o) {\n opts?.onError?.({\n ...o,\n req: opts.req,\n });\n },\n });\n\n await writeResponse({\n request,\n response,\n rawResponse: opts.res,\n });\n }).catch(internal_exceptionHandler(opts));\n });\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-http-DHiQq80-.mjs","names":["req: NodeHTTPRequest","opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n }","chunk: Buffer","incoming: http.IncomingHttpHeaders","res: NodeHTTPResponse","init: RequestInit","res: NodeHTTPResponse","chunk: Uint8Array","err: unknown","opts: {\n res: NodeHTTPResponse;\n signal: AbortSignal;\n body: NonNullable<Response['body']>;\n}","opts: {\n request: Request;\n response: Response;\n rawResponse: NodeHTTPResponse;\n}","opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>","cause: unknown","err: unknown","createContext: ResolveHTTPRequestOptionsContextFn<\n TRouter\n >"],"sources":["../src/adapters/node-http/incomingMessageToRequest.ts","../src/adapters/node-http/writeResponse.ts","../src/adapters/node-http/nodeHTTPRequestHandler.ts"],"sourcesContent":["import type * as http from 'http';\nimport { IncomingMessage } from 'node:http';\nimport { TRPCError } from '../../@trpc/server';\nimport type { NodeHTTPRequest, NodeHTTPResponse } from './types';\n\nfunction createBody(\n req: NodeHTTPRequest,\n opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n },\n): RequestInit['body'] {\n // Some adapters will pre-parse the body and add it to the request object\n if ('body' in req) {\n if (req.body === undefined) {\n // If body property exists but is undefined, return undefined\n return undefined;\n }\n // If the body is already a string, return it directly\n if (typeof req.body === 'string') {\n return req.body;\n }\n // formData use\n if (req.body instanceof IncomingMessage) {\n return req.body as any;\n }\n // If body exists but isn't a string, stringify it as JSON\n return JSON.stringify(req.body);\n }\n let size = 0;\n let hasClosed = false;\n\n return new ReadableStream({\n start(controller) {\n const onData = (chunk: Buffer) => {\n size += chunk.length;\n if (!opts.maxBodySize || size <= opts.maxBodySize) {\n controller.enqueue(\n new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength),\n );\n return;\n }\n controller.error(\n new TRPCError({\n code: 'PAYLOAD_TOO_LARGE',\n }),\n );\n hasClosed = true;\n req.off('data', onData);\n req.off('end', onEnd);\n };\n\n const onEnd = () => {\n if (hasClosed) {\n return;\n }\n hasClosed = true;\n req.off('data', onData);\n req.off('end', onEnd);\n controller.close();\n };\n\n req.on('data', onData);\n req.on('end', onEnd);\n },\n cancel() {\n req.destroy();\n },\n });\n}\nexport function createURL(req: NodeHTTPRequest): URL {\n try {\n const protocol =\n // http2\n (req.headers[':scheme'] && req.headers[':scheme'] === 'https') ||\n // http1\n (req.socket && 'encrypted' in req.socket && req.socket.encrypted)\n ? 'https:'\n : 'http:';\n\n const host = req.headers.host ?? req.headers[':authority'] ?? 'localhost';\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return new URL(req.url!, `${protocol}//${host}`);\n } catch (cause) {\n throw new TRPCError({\n code: 'BAD_REQUEST',\n message: 'Invalid URL',\n cause,\n });\n }\n}\n\nfunction createHeaders(incoming: http.IncomingHttpHeaders): Headers {\n const headers = new Headers();\n\n for (const key in incoming) {\n const value = incoming[key];\n if (typeof key === 'string' && key.startsWith(':')) {\n // Skip HTTP/2 pseudo-headers\n continue;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n headers.append(key, item);\n }\n } else if (value != null) {\n headers.append(key, value);\n }\n }\n\n return headers;\n}\n\n/**\n * Convert an [`IncomingMessage`](https://nodejs.org/api/http.html#class-httpincomingmessage) to a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)\n */\nexport function incomingMessageToRequest(\n req: NodeHTTPRequest,\n res: NodeHTTPResponse,\n opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n },\n): Request {\n const ac = new AbortController();\n\n const onAbort = () => {\n res.off('close', onAbort);\n req.off('aborted', onAbort);\n\n // abort the request\n ac.abort();\n };\n\n res.once('close', onAbort);\n req.once('aborted', onAbort);\n\n // Get host from either regular header or HTTP/2 pseudo-header\n const url = createURL(req);\n\n const init: RequestInit = {\n headers: createHeaders(req.headers),\n method: req.method,\n signal: ac.signal,\n };\n\n if (req.method !== 'GET' && req.method !== 'HEAD') {\n init.body = createBody(req, opts);\n\n // init.duplex = 'half' must be set when body is a ReadableStream, and Node follows the spec.\n // However, this property is not defined in the TypeScript types for RequestInit, so we have\n // to cast it here in order to set it without a type error.\n // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex\n // @ts-expect-error this is fine\n init.duplex = 'half';\n }\n\n const request = new Request(url, init);\n\n return request;\n}\n","// eslint-disable-next-line no-restricted-imports\nimport { isAbortError } from '../../unstable-core-do-not-import';\nimport type { NodeHTTPResponse } from './types';\n\nasync function writeResponseBodyChunk(\n res: NodeHTTPResponse,\n chunk: Uint8Array,\n) {\n // useful for debugging 🙃\n // console.debug('writing', new TextDecoder().decode(chunk));\n\n if (res.write(chunk) === false) {\n await new Promise<void>((resolve, reject) => {\n const onError = (err: unknown) => {\n reject(err);\n cleanup();\n };\n const onDrain = () => {\n resolve();\n cleanup();\n };\n const cleanup = () => {\n res.off('error', onError);\n res.off('drain', onDrain);\n };\n res.once('error', onError);\n res.once('drain', onDrain);\n });\n }\n}\n/**\n * @internal\n */\n\nexport async function writeResponseBody(opts: {\n res: NodeHTTPResponse;\n signal: AbortSignal;\n body: NonNullable<Response['body']>;\n}) {\n const { res } = opts;\n\n try {\n const writableStream = new WritableStream({\n async write(chunk) {\n await writeResponseBodyChunk(res, chunk);\n res.flush?.();\n },\n });\n\n await opts.body.pipeTo(writableStream, {\n signal: opts.signal,\n });\n } catch (err) {\n if (isAbortError(err)) {\n return;\n }\n throw err;\n }\n}\n/**\n * @internal\n */\n\nexport async function writeResponse(opts: {\n request: Request;\n response: Response;\n rawResponse: NodeHTTPResponse;\n}) {\n const { response, rawResponse } = opts;\n\n // Only override status code if it hasn't been explicitly set in a procedure etc\n if (rawResponse.statusCode === 200) {\n rawResponse.statusCode = response.status;\n }\n for (const [key, value] of response.headers) {\n if (key.toLowerCase() === 'set-cookie') continue;\n rawResponse.setHeader(key, value);\n }\n const cookies = response.headers.getSetCookie();\n if (cookies.length > 0) {\n rawResponse.setHeader('set-cookie', cookies);\n }\n try {\n if (response.body) {\n await writeResponseBody({\n res: rawResponse,\n signal: opts.request.signal,\n body: response.body,\n });\n }\n } catch (err) {\n if (!rawResponse.headersSent) {\n rawResponse.statusCode = 500;\n }\n throw err;\n } finally {\n rawResponse.end();\n }\n}\n","/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\n\n// @trpc/server\n\nimport {\n getTRPCErrorFromUnknown,\n transformTRPCResponse,\n type AnyRouter,\n} from '../../@trpc/server';\nimport type { ResolveHTTPRequestOptionsContextFn } from '../../@trpc/server/http';\nimport { resolveResponse } from '../../@trpc/server/http';\n// eslint-disable-next-line no-restricted-imports\nimport { getErrorShape, run } from '../../unstable-core-do-not-import';\nimport { incomingMessageToRequest } from './incomingMessageToRequest';\nimport type {\n NodeHTTPRequest,\n NodeHTTPRequestHandlerOptions,\n NodeHTTPResponse,\n} from './types';\nimport { writeResponse } from './writeResponse';\n\n/**\n * @internal\n */\nexport function internal_exceptionHandler<\n TRouter extends AnyRouter,\n TRequest extends NodeHTTPRequest,\n TResponse extends NodeHTTPResponse,\n>(opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>) {\n return (cause: unknown) => {\n const { res, req } = opts;\n const error = getTRPCErrorFromUnknown(cause);\n\n const shape = getErrorShape({\n config: opts.router._def._config,\n error,\n type: 'unknown',\n path: undefined,\n input: undefined,\n ctx: undefined,\n });\n\n opts.onError?.({\n req,\n error,\n type: 'unknown',\n path: undefined,\n input: undefined,\n ctx: undefined,\n });\n\n const transformed = transformTRPCResponse(opts.router._def._config, {\n error: shape,\n });\n\n res.statusCode = shape.data.httpStatus;\n res.end(JSON.stringify(transformed));\n };\n}\n\n/**\n * @remark the promise never rejects\n */\nexport async function nodeHTTPRequestHandler<\n TRouter extends AnyRouter,\n TRequest extends NodeHTTPRequest,\n TResponse extends NodeHTTPResponse,\n>(opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>) {\n return new Promise<void>((resolve) => {\n const handleViaMiddleware =\n opts.middleware ?? ((_req, _res, next) => next());\n\n opts.res.once('finish', () => {\n resolve();\n });\n return handleViaMiddleware(opts.req, opts.res, (err: unknown) => {\n run(async () => {\n const request = incomingMessageToRequest(opts.req, opts.res, {\n maxBodySize: opts.maxBodySize ?? null,\n });\n\n // Build tRPC dependencies\n const createContext: ResolveHTTPRequestOptionsContextFn<\n TRouter\n > = async (innerOpts) => {\n return await opts.createContext?.({\n ...opts,\n ...innerOpts,\n });\n };\n\n const response = await resolveResponse({\n ...opts,\n req: request,\n error: err ? getTRPCErrorFromUnknown(err) : null,\n createContext,\n onError(o) {\n opts?.onError?.({\n ...o,\n req: opts.req,\n });\n },\n });\n\n await writeResponse({\n request,\n response,\n rawResponse: opts.res,\n });\n }).catch(internal_exceptionHandler(opts));\n });\n });\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_getErrorShape = require('./getErrorShape-MR4DZeb7.cjs');
|
|
2
2
|
const require_codes = require('./codes-BfZsPdy-.cjs');
|
|
3
3
|
const require_tracked = require('./tracked-DX1GMBVX.cjs');
|
|
4
|
-
const require_resolveResponse = require('./resolveResponse-
|
|
4
|
+
const require_resolveResponse = require('./resolveResponse-Dc2udzYB.cjs');
|
|
5
5
|
const node_http = require_getErrorShape.__toESM(require("node:http"));
|
|
6
6
|
|
|
7
7
|
//#region src/adapters/node-http/incomingMessageToRequest.ts
|
|
@@ -135,7 +135,12 @@ async function writeResponseBody(opts) {
|
|
|
135
135
|
async function writeResponse(opts) {
|
|
136
136
|
const { response, rawResponse } = opts;
|
|
137
137
|
if (rawResponse.statusCode === 200) rawResponse.statusCode = response.status;
|
|
138
|
-
for (const [key, value] of response.headers)
|
|
138
|
+
for (const [key, value] of response.headers) {
|
|
139
|
+
if (key.toLowerCase() === "set-cookie") continue;
|
|
140
|
+
rawResponse.setHeader(key, value);
|
|
141
|
+
}
|
|
142
|
+
const cookies = response.headers.getSetCookie();
|
|
143
|
+
if (cookies.length > 0) rawResponse.setHeader("set-cookie", cookies);
|
|
139
144
|
try {
|
|
140
145
|
if (response.body) await writeResponseBody({
|
|
141
146
|
res: rawResponse,
|
|
@@ -1949,7 +1949,10 @@ async function resolveResponse(opts) {
|
|
|
1949
1949
|
signal: combinedAbort.signal,
|
|
1950
1950
|
batchIndex: call.batchIndex
|
|
1951
1951
|
});
|
|
1952
|
-
return [void 0, {
|
|
1952
|
+
return [void 0, {
|
|
1953
|
+
data,
|
|
1954
|
+
signal: proc._def.type === "subscription" ? combinedAbort.signal : void 0
|
|
1955
|
+
}];
|
|
1953
1956
|
} catch (cause) {
|
|
1954
1957
|
var _opts$onError, _call$procedure$_def$, _call$procedure2;
|
|
1955
1958
|
const error = getTRPCErrorFromUnknown(cause);
|
|
@@ -2049,7 +2052,28 @@ async function resolveResponse(opts) {
|
|
|
2049
2052
|
headers,
|
|
2050
2053
|
untransformedJSON: null
|
|
2051
2054
|
});
|
|
2052
|
-
|
|
2055
|
+
const abortSignal = result === null || result === void 0 ? void 0 : result.signal;
|
|
2056
|
+
let responseBody = stream;
|
|
2057
|
+
if (abortSignal) {
|
|
2058
|
+
const reader = stream.getReader();
|
|
2059
|
+
const onAbort = () => void reader.cancel();
|
|
2060
|
+
if (abortSignal.aborted) onAbort();
|
|
2061
|
+
else abortSignal.addEventListener("abort", onAbort, { once: true });
|
|
2062
|
+
responseBody = new ReadableStream({
|
|
2063
|
+
async pull(controller) {
|
|
2064
|
+
const chunk = await reader.read();
|
|
2065
|
+
if (chunk.done) {
|
|
2066
|
+
abortSignal.removeEventListener("abort", onAbort);
|
|
2067
|
+
controller.close();
|
|
2068
|
+
} else controller.enqueue(chunk.value);
|
|
2069
|
+
},
|
|
2070
|
+
cancel() {
|
|
2071
|
+
abortSignal.removeEventListener("abort", onAbort);
|
|
2072
|
+
return reader.cancel();
|
|
2073
|
+
}
|
|
2074
|
+
});
|
|
2075
|
+
}
|
|
2076
|
+
return new Response(responseBody, {
|
|
2053
2077
|
headers,
|
|
2054
2078
|
status: headResponse$1.status
|
|
2055
2079
|
});
|
|
@@ -2195,4 +2219,4 @@ async function resolveResponse(opts) {
|
|
|
2195
2219
|
|
|
2196
2220
|
//#endregion
|
|
2197
2221
|
export { Unpromise, createDeferred, getRequestInfo, isAbortError, isPromise, iteratorResource, jsonlStreamConsumer, jsonlStreamProducer, makeAsyncResource, makeResource, parseConnectionParamsFromString, parseConnectionParamsFromUnknown, require_usingCtx, resolveResponse, sseHeaders, sseStreamConsumer, sseStreamProducer, takeWithGrace, throwAbortError };
|
|
2198
|
-
//# sourceMappingURL=resolveResponse-
|
|
2222
|
+
//# sourceMappingURL=resolveResponse-BLZa62-J.mjs.map
|