@trpc/server 11.0.0-alpha-tmp-app-router-example.388 → 11.0.0-alpha-tmp-issues-5851-take-two.448

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/@trpc/server/http.d.ts +1 -2
  2. package/dist/@trpc/server/http.d.ts.map +1 -1
  3. package/dist/@trpc/server/index.d.ts +1 -1
  4. package/dist/@trpc/server/index.d.ts.map +1 -1
  5. package/dist/@trpc/server/rpc.d.ts +1 -1
  6. package/dist/@trpc/server/rpc.d.ts.map +1 -1
  7. package/dist/adapters/aws-lambda/getPlanner.d.ts.map +1 -1
  8. package/dist/adapters/aws-lambda/getPlanner.js +19 -2
  9. package/dist/adapters/aws-lambda/getPlanner.mjs +19 -2
  10. package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts.map +1 -1
  11. package/dist/adapters/next-app-dir/nextAppDirCaller.js +1 -1
  12. package/dist/adapters/next-app-dir/nextAppDirCaller.mjs +1 -1
  13. package/dist/adapters/next-app-dir/redirect.d.ts.map +1 -1
  14. package/dist/adapters/next.js +1 -1
  15. package/dist/adapters/next.mjs +1 -1
  16. package/dist/adapters/node-http/incomingMessageToRequest.d.ts +0 -1
  17. package/dist/adapters/node-http/incomingMessageToRequest.d.ts.map +1 -1
  18. package/dist/adapters/node-http/incomingMessageToRequest.js +3 -1
  19. package/dist/adapters/node-http/incomingMessageToRequest.mjs +3 -1
  20. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  21. package/dist/adapters/node-http/nodeHTTPRequestHandler.js +30 -7
  22. package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +30 -7
  23. package/dist/adapters/node-http/types.d.ts +0 -1
  24. package/dist/adapters/node-http/types.d.ts.map +1 -1
  25. package/dist/adapters/standalone.d.ts +0 -1
  26. package/dist/adapters/standalone.d.ts.map +1 -1
  27. package/dist/adapters/ws.d.ts +3 -4
  28. package/dist/adapters/ws.d.ts.map +1 -1
  29. package/dist/adapters/ws.js +172 -114
  30. package/dist/adapters/ws.mjs +172 -114
  31. package/dist/bundle-analysis.json +236 -155
  32. package/dist/http.js +3 -0
  33. package/dist/http.mjs +1 -0
  34. package/dist/index.js +7 -5
  35. package/dist/index.mjs +3 -2
  36. package/dist/observable/observable.d.ts +1 -0
  37. package/dist/observable/observable.d.ts.map +1 -1
  38. package/dist/observable/observable.js +55 -0
  39. package/dist/observable/observable.mjs +55 -1
  40. package/dist/unstable-core-do-not-import/createProxy.d.ts +3 -3
  41. package/dist/unstable-core-do-not-import/createProxy.d.ts.map +1 -1
  42. package/dist/unstable-core-do-not-import/createProxy.js +15 -6
  43. package/dist/unstable-core-do-not-import/createProxy.mjs +15 -6
  44. package/dist/unstable-core-do-not-import/http/contentType.d.ts +7 -4
  45. package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +1 -1
  46. package/dist/unstable-core-do-not-import/http/contentType.js +60 -17
  47. package/dist/unstable-core-do-not-import/http/contentType.mjs +61 -18
  48. package/dist/unstable-core-do-not-import/http/formDataToObject.d.ts.map +1 -0
  49. package/dist/unstable-core-do-not-import/http/formDataToObject.js +40 -0
  50. package/dist/unstable-core-do-not-import/http/formDataToObject.mjs +38 -0
  51. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +1 -1
  52. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +4 -4
  53. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +4 -4
  54. package/dist/unstable-core-do-not-import/http/parseConnectionParams.d.ts +4 -0
  55. package/dist/unstable-core-do-not-import/http/parseConnectionParams.d.ts.map +1 -0
  56. package/dist/unstable-core-do-not-import/http/parseConnectionParams.js +42 -0
  57. package/dist/unstable-core-do-not-import/http/parseConnectionParams.mjs +39 -0
  58. package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts.map +1 -1
  59. package/dist/unstable-core-do-not-import/http/resolveResponse.js +302 -149
  60. package/dist/unstable-core-do-not-import/http/resolveResponse.mjs +301 -148
  61. package/dist/unstable-core-do-not-import/http/types.d.ts +26 -2
  62. package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -1
  63. package/dist/unstable-core-do-not-import/initTRPC.d.ts +12 -12
  64. package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +1 -1
  65. package/dist/unstable-core-do-not-import/middleware.d.ts +3 -3
  66. package/dist/unstable-core-do-not-import/middleware.d.ts.map +1 -1
  67. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +3 -1
  68. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -1
  69. package/dist/unstable-core-do-not-import/rootConfig.d.ts +12 -0
  70. package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -1
  71. package/dist/unstable-core-do-not-import/router.d.ts +2 -2
  72. package/dist/unstable-core-do-not-import/router.d.ts.map +1 -1
  73. package/dist/unstable-core-do-not-import/router.js +7 -2
  74. package/dist/unstable-core-do-not-import/router.mjs +7 -2
  75. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts +7 -0
  76. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +1 -1
  77. package/dist/unstable-core-do-not-import/rpc/index.d.ts +1 -1
  78. package/dist/unstable-core-do-not-import/rpc/index.d.ts.map +1 -1
  79. package/dist/unstable-core-do-not-import/stream/{stream.d.ts → jsonl.d.ts} +5 -5
  80. package/dist/unstable-core-do-not-import/stream/jsonl.d.ts.map +1 -0
  81. package/dist/unstable-core-do-not-import/stream/{stream.js → jsonl.js} +148 -111
  82. package/dist/unstable-core-do-not-import/stream/{stream.mjs → jsonl.mjs} +147 -110
  83. package/dist/unstable-core-do-not-import/stream/sse.d.ts +86 -0
  84. package/dist/unstable-core-do-not-import/stream/sse.d.ts.map +1 -0
  85. package/dist/unstable-core-do-not-import/stream/sse.js +178 -0
  86. package/dist/unstable-core-do-not-import/stream/sse.mjs +172 -0
  87. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts +18 -0
  88. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts.map +1 -0
  89. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.js +46 -0
  90. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +43 -0
  91. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts +10 -0
  92. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts.map +1 -0
  93. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.js +31 -0
  94. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.mjs +29 -0
  95. package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts +7 -0
  96. package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts.map +1 -0
  97. package/dist/unstable-core-do-not-import/transformer.d.ts +5 -5
  98. package/dist/unstable-core-do-not-import/utils.d.ts +4 -0
  99. package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -1
  100. package/dist/unstable-core-do-not-import/utils.js +4 -0
  101. package/dist/unstable-core-do-not-import/utils.mjs +4 -1
  102. package/dist/unstable-core-do-not-import.d.ts +5 -2
  103. package/dist/unstable-core-do-not-import.d.ts.map +1 -1
  104. package/dist/unstable-core-do-not-import.js +19 -7
  105. package/dist/unstable-core-do-not-import.mjs +6 -3
  106. package/package.json +6 -6
  107. package/src/@trpc/server/http.ts +7 -2
  108. package/src/@trpc/server/index.ts +1 -0
  109. package/src/@trpc/server/rpc.ts +1 -0
  110. package/src/adapters/aws-lambda/getPlanner.ts +21 -2
  111. package/src/adapters/next-app-dir/nextAppDirCaller.ts +2 -1
  112. package/src/adapters/node-http/incomingMessageToRequest.ts +3 -2
  113. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +32 -7
  114. package/src/adapters/ws.ts +193 -107
  115. package/src/observable/observable.ts +63 -0
  116. package/src/unstable-core-do-not-import/createProxy.ts +23 -8
  117. package/src/unstable-core-do-not-import/http/contentType.ts +83 -21
  118. package/src/{adapters/next-app-dir → unstable-core-do-not-import/http}/formDataToObject.ts +18 -10
  119. package/src/unstable-core-do-not-import/http/getHTTPStatusCode.ts +4 -7
  120. package/src/unstable-core-do-not-import/http/parseConnectionParams.ts +49 -0
  121. package/src/unstable-core-do-not-import/http/resolveResponse.ts +333 -164
  122. package/src/unstable-core-do-not-import/http/types.ts +31 -2
  123. package/src/unstable-core-do-not-import/procedureBuilder.ts +8 -1
  124. package/src/unstable-core-do-not-import/rootConfig.ts +12 -0
  125. package/src/unstable-core-do-not-import/router.ts +47 -35
  126. package/src/unstable-core-do-not-import/rpc/envelopes.ts +9 -0
  127. package/src/unstable-core-do-not-import/rpc/index.ts +1 -0
  128. package/src/unstable-core-do-not-import/stream/{stream.ts → jsonl.ts} +163 -110
  129. package/src/unstable-core-do-not-import/stream/sse.ts +288 -0
  130. package/src/unstable-core-do-not-import/stream/utils/createDeferred.ts +48 -0
  131. package/src/unstable-core-do-not-import/stream/utils/createReadableStream.ts +31 -0
  132. package/src/unstable-core-do-not-import/stream/utils/createServer.ts +44 -0
  133. package/src/unstable-core-do-not-import/utils.ts +5 -0
  134. package/src/unstable-core-do-not-import.ts +5 -2
  135. package/dist/adapters/next-app-dir/formDataToObject.d.ts.map +0 -1
  136. package/dist/adapters/next-app-dir/formDataToObject.js +0 -34
  137. package/dist/adapters/next-app-dir/formDataToObject.mjs +0 -32
  138. package/dist/unstable-core-do-not-import/stream/stream.d.ts.map +0 -1
  139. /package/dist/{adapters/next-app-dir → unstable-core-do-not-import/http}/formDataToObject.d.ts +0 -0
@@ -1,13 +1,15 @@
1
1
  'use strict';
2
2
 
3
3
  var createProxy = require('./unstable-core-do-not-import/createProxy.js');
4
- var TRPCError = require('./unstable-core-do-not-import/error/TRPCError.js');
5
4
  var formatter = require('./unstable-core-do-not-import/error/formatter.js');
6
5
  var getErrorShape = require('./unstable-core-do-not-import/error/getErrorShape.js');
6
+ var TRPCError = require('./unstable-core-do-not-import/error/TRPCError.js');
7
7
  var batchStreamFormatter = require('./unstable-core-do-not-import/http/batchStreamFormatter.js');
8
8
  var contentType = require('./unstable-core-do-not-import/http/contentType.js');
9
9
  var contentTypeParsers = require('./unstable-core-do-not-import/http/contentTypeParsers.js');
10
+ var formDataToObject = require('./unstable-core-do-not-import/http/formDataToObject.js');
10
11
  var getHTTPStatusCode = require('./unstable-core-do-not-import/http/getHTTPStatusCode.js');
12
+ var parseConnectionParams = require('./unstable-core-do-not-import/http/parseConnectionParams.js');
11
13
  var resolveResponse = require('./unstable-core-do-not-import/http/resolveResponse.js');
12
14
  var toURL = require('./unstable-core-do-not-import/http/toURL.js');
13
15
  var initTRPC = require('./unstable-core-do-not-import/initTRPC.js');
@@ -19,25 +21,29 @@ var rootConfig = require('./unstable-core-do-not-import/rootConfig.js');
19
21
  var router = require('./unstable-core-do-not-import/router.js');
20
22
  var codes = require('./unstable-core-do-not-import/rpc/codes.js');
21
23
  var parseTRPCMessage = require('./unstable-core-do-not-import/rpc/parseTRPCMessage.js');
24
+ var jsonl = require('./unstable-core-do-not-import/stream/jsonl.js');
25
+ var sse = require('./unstable-core-do-not-import/stream/sse.js');
22
26
  var transformer = require('./unstable-core-do-not-import/transformer.js');
23
27
  var types = require('./unstable-core-do-not-import/types.js');
24
28
  var utils = require('./unstable-core-do-not-import/utils.js');
25
- var stream = require('./unstable-core-do-not-import/stream/stream.js');
26
29
 
27
30
 
28
31
 
29
32
  exports.createFlatProxy = createProxy.createFlatProxy;
30
33
  exports.createRecursiveProxy = createProxy.createRecursiveProxy;
34
+ exports.defaultFormatter = formatter.defaultFormatter;
35
+ exports.getErrorShape = getErrorShape.getErrorShape;
31
36
  exports.TRPCError = TRPCError.TRPCError;
32
37
  exports.getCauseFromUnknown = TRPCError.getCauseFromUnknown;
33
38
  exports.getTRPCErrorFromUnknown = TRPCError.getTRPCErrorFromUnknown;
34
- exports.defaultFormatter = formatter.defaultFormatter;
35
- exports.getErrorShape = getErrorShape.getErrorShape;
36
39
  exports.getBatchStreamFormatter = batchStreamFormatter.getBatchStreamFormatter;
37
40
  exports.getRequestInfo = contentType.getRequestInfo;
38
41
  exports.octetInputParser = contentTypeParsers.octetInputParser;
42
+ exports.formDataToObject = formDataToObject.formDataToObject;
39
43
  exports.getHTTPStatusCode = getHTTPStatusCode.getHTTPStatusCode;
40
44
  exports.getHTTPStatusCodeFromError = getHTTPStatusCode.getHTTPStatusCodeFromError;
45
+ exports.parseConnectionParamsFromString = parseConnectionParams.parseConnectionParamsFromString;
46
+ exports.parseConnectionParamsFromUnknown = parseConnectionParams.parseConnectionParamsFromUnknown;
41
47
  exports.resolveResponse = resolveResponse.resolveResponse;
42
48
  exports.toURL = toURL.toURL;
43
49
  exports.initTRPC = initTRPC.initTRPC;
@@ -57,6 +63,14 @@ exports.mergeRouters = router.mergeRouters;
57
63
  exports.TRPC_ERROR_CODES_BY_KEY = codes.TRPC_ERROR_CODES_BY_KEY;
58
64
  exports.TRPC_ERROR_CODES_BY_NUMBER = codes.TRPC_ERROR_CODES_BY_NUMBER;
59
65
  exports.parseTRPCMessage = parseTRPCMessage.parseTRPCMessage;
66
+ exports.isPromise = jsonl.isPromise;
67
+ exports.jsonlStreamConsumer = jsonl.jsonlStreamConsumer;
68
+ exports.jsonlStreamProducer = jsonl.jsonlStreamProducer;
69
+ exports.isSSEMessageEnvelope = sse.isSSEMessageEnvelope;
70
+ exports.sse = sse.sse;
71
+ exports.sseHeaders = sse.sseHeaders;
72
+ exports.sseStreamConsumer = sse.sseStreamConsumer;
73
+ exports.sseStreamProducer = sse.sseStreamProducer;
60
74
  exports.defaultTransformer = transformer.defaultTransformer;
61
75
  exports.getDataTransformer = transformer.getDataTransformer;
62
76
  exports.transformResult = transformer.transformResult;
@@ -67,7 +81,5 @@ exports.isFunction = utils.isFunction;
67
81
  exports.isObject = utils.isObject;
68
82
  exports.mergeWithoutOverrides = utils.mergeWithoutOverrides;
69
83
  exports.omitPrototype = utils.omitPrototype;
84
+ exports.run = utils.run;
70
85
  exports.unsetMarker = utils.unsetMarker;
71
- exports.isPromise = stream.isPromise;
72
- exports.jsonlStreamConsumer = stream.jsonlStreamConsumer;
73
- exports.jsonlStreamProducer = stream.jsonlStreamProducer;
@@ -1,11 +1,13 @@
1
1
  export { createFlatProxy, createRecursiveProxy } from './unstable-core-do-not-import/createProxy.mjs';
2
- export { TRPCError, getCauseFromUnknown, getTRPCErrorFromUnknown } from './unstable-core-do-not-import/error/TRPCError.mjs';
3
2
  export { defaultFormatter } from './unstable-core-do-not-import/error/formatter.mjs';
4
3
  export { getErrorShape } from './unstable-core-do-not-import/error/getErrorShape.mjs';
4
+ export { TRPCError, getCauseFromUnknown, getTRPCErrorFromUnknown } from './unstable-core-do-not-import/error/TRPCError.mjs';
5
5
  export { getBatchStreamFormatter } from './unstable-core-do-not-import/http/batchStreamFormatter.mjs';
6
6
  export { getRequestInfo } from './unstable-core-do-not-import/http/contentType.mjs';
7
7
  export { octetInputParser } from './unstable-core-do-not-import/http/contentTypeParsers.mjs';
8
+ export { formDataToObject } from './unstable-core-do-not-import/http/formDataToObject.mjs';
8
9
  export { getHTTPStatusCode, getHTTPStatusCodeFromError } from './unstable-core-do-not-import/http/getHTTPStatusCode.mjs';
10
+ export { parseConnectionParamsFromString, parseConnectionParamsFromUnknown } from './unstable-core-do-not-import/http/parseConnectionParams.mjs';
9
11
  export { resolveResponse } from './unstable-core-do-not-import/http/resolveResponse.mjs';
10
12
  export { toURL } from './unstable-core-do-not-import/http/toURL.mjs';
11
13
  export { initTRPC } from './unstable-core-do-not-import/initTRPC.mjs';
@@ -17,7 +19,8 @@ export { isServerDefault } from './unstable-core-do-not-import/rootConfig.mjs';
17
19
  export { callProcedure, createCallerFactory, createRouterFactory, mergeRouters } from './unstable-core-do-not-import/router.mjs';
18
20
  export { TRPC_ERROR_CODES_BY_KEY, TRPC_ERROR_CODES_BY_NUMBER } from './unstable-core-do-not-import/rpc/codes.mjs';
19
21
  export { parseTRPCMessage } from './unstable-core-do-not-import/rpc/parseTRPCMessage.mjs';
22
+ export { isPromise, jsonlStreamConsumer, jsonlStreamProducer } from './unstable-core-do-not-import/stream/jsonl.mjs';
23
+ export { isSSEMessageEnvelope, sse, sseHeaders, sseStreamConsumer, sseStreamProducer } from './unstable-core-do-not-import/stream/sse.mjs';
20
24
  export { defaultTransformer, getDataTransformer, transformResult, transformTRPCResponse } from './unstable-core-do-not-import/transformer.mjs';
21
25
  export { ERROR_SYMBOL } from './unstable-core-do-not-import/types.mjs';
22
- export { isAsyncIterable, isFunction, isObject, mergeWithoutOverrides, omitPrototype, unsetMarker } from './unstable-core-do-not-import/utils.mjs';
23
- export { isPromise, jsonlStreamConsumer, jsonlStreamProducer } from './unstable-core-do-not-import/stream/stream.mjs';
26
+ export { isAsyncIterable, isFunction, isObject, mergeWithoutOverrides, omitPrototype, run, unsetMarker } from './unstable-core-do-not-import/utils.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/server",
3
- "version": "11.0.0-alpha-tmp-app-router-example.388+2b04d6593",
3
+ "version": "11.0.0-alpha-tmp-issues-5851-take-two.448+7e3e84d25",
4
4
  "description": "The tRPC server library",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -117,7 +117,7 @@
117
117
  },
118
118
  "devDependencies": {
119
119
  "@fastify/websocket": "^10.0.1",
120
- "@tanstack/react-query": "^5.45.0",
120
+ "@tanstack/react-query": "^5.49.2",
121
121
  "@types/aws-lambda": "^8.10.137",
122
122
  "@types/express": "^4.17.17",
123
123
  "@types/hash-sum": "^1.0.0",
@@ -137,11 +137,11 @@
137
137
  "react-dom": "^18.3.1",
138
138
  "rollup": "^4.9.5",
139
139
  "superjson": "^1.12.4",
140
- "superstruct": "^1.0.0",
140
+ "superstruct": "^2.0.0",
141
141
  "tslib": "^2.5.0",
142
142
  "tsx": "^4.0.0",
143
- "typescript": "^5.4.0",
144
- "valibot": "^0.31.0",
143
+ "typescript": "^5.5.0",
144
+ "valibot": "^0.35.0",
145
145
  "ws": "^8.0.0",
146
146
  "yup": "^1.0.0",
147
147
  "zod": "^3.0.0"
@@ -149,5 +149,5 @@
149
149
  "funding": [
150
150
  "https://trpc.io/sponsor"
151
151
  ],
152
- "gitHead": "2b04d659340f9d18d0a8138a09da7f9c54985787"
152
+ "gitHead": "7e3e84d25c9561871d468d3cf55b7604bed8203e"
153
153
  }
@@ -17,5 +17,10 @@ export type {
17
17
  TRPCRequestInfo,
18
18
  } from '../../unstable-core-do-not-import';
19
19
 
20
- export { getBatchStreamFormatter } from '../../unstable-core-do-not-import';
21
- export { octetInputParser, toURL } from '../../unstable-core-do-not-import';
20
+ export {
21
+ getBatchStreamFormatter,
22
+ octetInputParser,
23
+ parseConnectionParamsFromUnknown,
24
+ parseConnectionParamsFromString,
25
+ toURL,
26
+ } from '../../unstable-core-do-not-import';
@@ -37,6 +37,7 @@ export {
37
37
  type QueryProcedure as TRPCQueryProcedure,
38
38
  type SubscriptionProcedure as TRPCSubscriptionProcedure,
39
39
  type TRPCBuilder,
40
+ sse,
40
41
  } from '../../unstable-core-do-not-import';
41
42
 
42
43
  export type {
@@ -18,6 +18,7 @@ export type {
18
18
  TRPCSuccessResponse,
19
19
  TRPC_ERROR_CODE_KEY,
20
20
  TRPC_ERROR_CODE_NUMBER,
21
+ TRPCConnectionParamsMessage,
21
22
  } from '../../unstable-core-do-not-import';
22
23
  export {
23
24
  TRPC_ERROR_CODES_BY_KEY,
@@ -40,6 +40,19 @@ interface Processor<TEvent extends LambdaEvent> {
40
40
  toResult: (response: Response) => Promise<inferAPIGWReturn<TEvent>>;
41
41
  }
42
42
 
43
+ function getHeadersAndCookiesFromResponse(response: Response) {
44
+ const headers = Object.fromEntries(response.headers.entries());
45
+
46
+ const cookies: string[] = response.headers
47
+ .getSetCookie()
48
+ .flatMap((value) => value.split(','))
49
+ .map((cookie) => cookie.trim());
50
+
51
+ delete headers['set-cookie'];
52
+
53
+ return { headers, cookies };
54
+ }
55
+
43
56
  const v1Processor: Processor<APIGatewayProxyEvent> = {
44
57
  // same as getPath above
45
58
  getTRPCPath: (event) => {
@@ -98,10 +111,13 @@ const v1Processor: Processor<APIGatewayProxyEvent> = {
98
111
  },
99
112
  getMethod: (event) => event.httpMethod,
100
113
  toResult: async (response) => {
114
+ const { headers, cookies } = getHeadersAndCookiesFromResponse(response);
115
+
101
116
  const result: APIGatewayProxyResult = {
117
+ ...(cookies.length && { multiValueHeaders: { 'set-cookie': cookies } }),
102
118
  statusCode: response.status,
103
119
  body: await response.text(),
104
- headers: Object.fromEntries(response.headers.entries()),
120
+ headers,
105
121
  };
106
122
 
107
123
  return result;
@@ -142,10 +158,13 @@ const v2Processor: Processor<APIGatewayProxyEventV2> = {
142
158
  },
143
159
  getMethod: (event) => event.requestContext.http.method,
144
160
  toResult: async (response) => {
161
+ const { headers, cookies } = getHeadersAndCookiesFromResponse(response);
162
+
145
163
  const result: APIGatewayProxyStructuredResultV2 = {
164
+ cookies,
146
165
  statusCode: response.status,
147
166
  body: await response.text(),
148
- headers: Object.fromEntries(response.headers.entries()),
167
+ headers,
149
168
  };
150
169
 
151
170
  return result;
@@ -1,5 +1,7 @@
1
1
  import type { CreateContextCallback } from '../../@trpc/server';
2
2
  import { getTRPCErrorFromUnknown, TRPCError } from '../../@trpc/server';
3
+ // eslint-disable-next-line no-restricted-imports
4
+ import { formDataToObject } from '../../unstable-core-do-not-import';
3
5
  // FIXME: fix lint rule, this is ok
4
6
  // eslint-disable-next-line no-restricted-imports
5
7
  import type { ErrorHandlerOptions } from '../../unstable-core-do-not-import/procedure';
@@ -12,7 +14,6 @@ import type {
12
14
  MaybePromise,
13
15
  Simplify,
14
16
  } from '../../unstable-core-do-not-import/types';
15
- import { formDataToObject } from './formDataToObject';
16
17
  import { TRPCRedirectError } from './redirect';
17
18
  import { rethrowNextErrors } from './rethrowNextErrors';
18
19
 
@@ -68,8 +68,9 @@ export function incomingMessageToRequest(
68
68
  const ac = new AbortController();
69
69
  const headers = new Headers(req.headers as any);
70
70
  const url = `http://${headers.get('host')}${req.url}`;
71
-
72
- req.once('aborted', () => ac.abort());
71
+ req.once('aborted', () => {
72
+ ac.abort();
73
+ });
73
74
 
74
75
  const init: RequestInit = {
75
76
  headers,
@@ -10,7 +10,6 @@
10
10
 
11
11
  // @trpc/server
12
12
 
13
- import { Readable } from 'node:stream';
14
13
  import { getTRPCErrorFromUnknown, type AnyRouter } from '../../@trpc/server';
15
14
  import type { ResolveHTTPRequestOptionsContextFn } from '../../@trpc/server/http';
16
15
  import { resolveResponse } from '../../@trpc/server/http';
@@ -56,17 +55,43 @@ export async function nodeHTTPRequestHandler<
56
55
  },
57
56
  });
58
57
 
59
- if (opts.res.statusCode === 200) {
58
+ const { res } = opts;
59
+ if (res.statusCode === 200) {
60
60
  // if the status code is set, we assume that it's been manually overridden
61
- opts.res.statusCode = response.status;
61
+ res.statusCode = response.status;
62
62
  }
63
63
  for (const [key, value] of response.headers) {
64
- opts.res.setHeader(key, value);
64
+ res.setHeader(key, value);
65
65
  }
66
66
  if (response.body) {
67
- Readable.fromWeb(response.body as any).pipe(opts.res);
68
- } else {
69
- opts.res.end();
67
+ const reader = response.body.getReader();
68
+ const onAbort = () => {
69
+ // cancelling the reader will cause the whole stream to be cancelled
70
+ reader.cancel().catch(() => {
71
+ // console.error('reader.cancel() error', err);
72
+ });
73
+ };
74
+ req.signal.addEventListener('abort', onAbort);
75
+
76
+ while (true) {
77
+ const { done, value } = await reader.read();
78
+
79
+ if (done) {
80
+ break;
81
+ }
82
+ if (!res.writable) {
83
+ break;
84
+ }
85
+ if (res.write(value) === false) {
86
+ await new Promise<void>((resolve) => {
87
+ res.once('drain', resolve);
88
+ });
89
+ }
90
+ // IMPORTANT - flush the response buffer, otherwise the client will not receive the data until `.end()`
91
+ res.flush?.();
92
+ }
93
+ req.signal.removeEventListener('abort', onAbort);
70
94
  }
95
+ res.end();
71
96
  });
72
97
  }