@trpc/server 11.0.0-rc.361 → 11.0.0-rc.363
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/@trpc/server/http.d.ts +7 -5
- package/dist/@trpc/server/http.d.ts.map +1 -1
- package/dist/@trpc/server/index.d.ts +1 -2
- package/dist/@trpc/server/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/getPlanner.d.ts +13 -0
- package/dist/adapters/aws-lambda/getPlanner.d.ts.map +1 -0
- package/dist/adapters/aws-lambda/getPlanner.js +143 -0
- package/dist/adapters/aws-lambda/getPlanner.mjs +141 -0
- package/dist/adapters/aws-lambda/index.d.ts +12 -9
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.js +8 -77
- package/dist/adapters/aws-lambda/index.mjs +9 -72
- package/dist/adapters/express.js +1 -0
- package/dist/adapters/express.mjs +1 -0
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +19 -2
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.js +22 -64
- package/dist/adapters/fastify/fastifyRequestHandler.mjs +22 -64
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.js +1 -0
- package/dist/adapters/fastify/fastifyTRPCPlugin.mjs +1 -0
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +2 -2
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/fetchRequestHandler.js +29 -86
- package/dist/adapters/fetch/fetchRequestHandler.mjs +29 -86
- package/dist/adapters/fetch/types.d.ts +2 -2
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/next.js +1 -1
- package/dist/adapters/next.mjs +1 -1
- package/dist/adapters/node-http/incomingMessageToRequest.d.ts +18 -0
- package/dist/adapters/node-http/incomingMessageToRequest.d.ts.map +1 -0
- package/dist/adapters/node-http/incomingMessageToRequest.js +71 -0
- package/dist/adapters/node-http/incomingMessageToRequest.mjs +69 -0
- package/dist/adapters/node-http/index.d.ts +1 -0
- package/dist/adapters/node-http/index.d.ts.map +1 -1
- package/dist/adapters/node-http/index.js +2 -0
- package/dist/adapters/node-http/index.mjs +1 -0
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.js +28 -71
- package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +28 -71
- package/dist/adapters/node-http/types.d.ts +7 -8
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/ws.js +1 -1
- package/dist/adapters/ws.mjs +1 -1
- package/dist/bundle-analysis.json +174 -271
- package/dist/http.js +4 -2
- package/dist/http.mjs +2 -1
- package/dist/index.js +2 -4
- package/dist/index.mjs +1 -2
- package/dist/unstable-core-do-not-import/http/contentType.d.ts +8 -20
- package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/http/contentType.js +180 -0
- package/dist/unstable-core-do-not-import/http/contentType.mjs +178 -0
- package/dist/unstable-core-do-not-import/http/contentTypeParsers.d.ts +14 -0
- package/dist/unstable-core-do-not-import/http/contentTypeParsers.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/contentTypeParsers.js +14 -0
- package/dist/unstable-core-do-not-import/http/contentTypeParsers.mjs +12 -0
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts +1 -1
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts +15 -0
- package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/{resolveHTTPResponse.js → resolveResponse.js} +119 -134
- package/dist/unstable-core-do-not-import/http/{resolveHTTPResponse.mjs → resolveResponse.mjs} +119 -134
- package/dist/unstable-core-do-not-import/http/types.d.ts +25 -27
- package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/initTRPC.d.ts +1 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +1 -3
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.js +0 -2
- package/dist/unstable-core-do-not-import/procedureBuilder.mjs +1 -2
- package/dist/unstable-core-do-not-import/rootConfig.d.ts +0 -9
- package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/utils.d.ts +3 -0
- package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/utils.js +2 -0
- package/dist/unstable-core-do-not-import/utils.mjs +2 -1
- package/dist/unstable-core-do-not-import.d.ts +9 -3
- package/dist/unstable-core-do-not-import.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import.js +12 -8
- package/dist/unstable-core-do-not-import.mjs +7 -5
- package/package.json +3 -13
- package/src/@trpc/server/http.ts +7 -12
- package/src/@trpc/server/index.ts +0 -3
- package/src/adapters/aws-lambda/getPlanner.ts +191 -0
- package/src/adapters/aws-lambda/index.ts +43 -107
- package/src/adapters/express.ts +1 -1
- package/src/adapters/fastify/fastifyRequestHandler.ts +43 -90
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +4 -3
- package/src/adapters/fetch/fetchRequestHandler.ts +35 -111
- package/src/adapters/fetch/types.ts +4 -2
- package/src/adapters/next.ts +1 -1
- package/src/adapters/node-http/incomingMessageToRequest.ts +94 -0
- package/src/adapters/node-http/index.ts +1 -0
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +31 -97
- package/src/adapters/node-http/types.ts +27 -37
- package/src/adapters/standalone.ts +1 -1
- package/src/unstable-core-do-not-import/http/contentType.ts +214 -22
- package/src/unstable-core-do-not-import/http/contentTypeParsers.ts +29 -0
- package/src/unstable-core-do-not-import/http/getHTTPStatusCode.ts +2 -2
- package/src/unstable-core-do-not-import/http/resolveResponse.ts +386 -0
- package/src/unstable-core-do-not-import/http/types.ts +25 -30
- package/src/unstable-core-do-not-import/procedureBuilder.ts +2 -4
- package/src/unstable-core-do-not-import/rootConfig.ts +0 -10
- package/src/unstable-core-do-not-import/utils.ts +4 -0
- package/src/unstable-core-do-not-import.ts +9 -3
- package/adapters/node-http/content-type/form-data/index.d.ts +0 -1
- package/adapters/node-http/content-type/form-data/index.js +0 -1
- package/adapters/node-http/content-type/json/index.d.ts +0 -1
- package/adapters/node-http/content-type/json/index.js +0 -1
- package/dist/adapters/aws-lambda/content-type/json/index.d.ts +0 -10
- package/dist/adapters/aws-lambda/content-type/json/index.d.ts.map +0 -1
- package/dist/adapters/aws-lambda/content-type/json/index.js +0 -62
- package/dist/adapters/aws-lambda/content-type/json/index.mjs +0 -60
- package/dist/adapters/aws-lambda/utils.d.ts +0 -31
- package/dist/adapters/aws-lambda/utils.d.ts.map +0 -1
- package/dist/adapters/aws-lambda/utils.js +0 -111
- package/dist/adapters/aws-lambda/utils.mjs +0 -103
- package/dist/adapters/content-handlers/concurrentCache.d.ts +0 -7
- package/dist/adapters/content-handlers/concurrentCache.d.ts.map +0 -1
- package/dist/adapters/content-handlers/concurrentCache.js +0 -17
- package/dist/adapters/content-handlers/concurrentCache.mjs +0 -15
- package/dist/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.d.ts +0 -10
- package/dist/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.d.ts.map +0 -1
- package/dist/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.js +0 -33
- package/dist/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.mjs +0 -31
- package/dist/adapters/fastify/content-type/json/index.d.ts +0 -8
- package/dist/adapters/fastify/content-type/json/index.d.ts.map +0 -1
- package/dist/adapters/fastify/content-type/json/index.js +0 -62
- package/dist/adapters/fastify/content-type/json/index.mjs +0 -60
- package/dist/adapters/fastify/types.d.ts +0 -11
- package/dist/adapters/fastify/types.d.ts.map +0 -1
- package/dist/adapters/fetch/content-type/json/index.d.ts +0 -9
- package/dist/adapters/fetch/content-type/json/index.d.ts.map +0 -1
- package/dist/adapters/fetch/content-type/json/index.js +0 -55
- package/dist/adapters/fetch/content-type/json/index.mjs +0 -53
- package/dist/adapters/node-http/content-type/form-data/index.d.ts +0 -5
- package/dist/adapters/node-http/content-type/form-data/index.d.ts.map +0 -1
- package/dist/adapters/node-http/content-type/form-data/index.js +0 -32
- package/dist/adapters/node-http/content-type/form-data/index.mjs +0 -30
- package/dist/adapters/node-http/content-type/json/getPostBody.d.ts +0 -7
- package/dist/adapters/node-http/content-type/json/getPostBody.d.ts.map +0 -1
- package/dist/adapters/node-http/content-type/json/getPostBody.js +0 -45
- package/dist/adapters/node-http/content-type/json/getPostBody.mjs +0 -43
- package/dist/adapters/node-http/content-type/json/index.d.ts +0 -5
- package/dist/adapters/node-http/content-type/json/index.d.ts.map +0 -1
- package/dist/adapters/node-http/content-type/json/index.js +0 -68
- package/dist/adapters/node-http/content-type/json/index.mjs +0 -66
- package/dist/adapters/node-http/content-type/octet/index.d.ts +0 -5
- package/dist/adapters/node-http/content-type/octet/index.d.ts.map +0 -1
- package/dist/adapters/node-http/content-type/octet/index.js +0 -19
- package/dist/adapters/node-http/content-type/octet/index.mjs +0 -17
- package/dist/adapters/node-http/content-type/types.d.ts +0 -8
- package/dist/adapters/node-http/content-type/types.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/contentTypeParsers.d.ts +0 -16
- package/dist/unstable-core-do-not-import/contentTypeParsers.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/contentTypeParsers.js +0 -23
- package/dist/unstable-core-do-not-import/contentTypeParsers.mjs +0 -21
- package/dist/unstable-core-do-not-import/http/index.d.ts +0 -11
- package/dist/unstable-core-do-not-import/http/index.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts +0 -51
- package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts.map +0 -1
- package/src/adapters/aws-lambda/content-type/json/index.ts +0 -108
- package/src/adapters/aws-lambda/utils.ts +0 -170
- package/src/adapters/content-handlers/concurrentCache.ts +0 -16
- package/src/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.ts +0 -45
- package/src/adapters/fastify/content-type/json/index.ts +0 -106
- package/src/adapters/fastify/types.ts +0 -22
- package/src/adapters/fetch/content-type/json/index.ts +0 -90
- package/src/adapters/node-http/content-type/form-data/index.ts +0 -37
- package/src/adapters/node-http/content-type/json/getPostBody.ts +0 -49
- package/src/adapters/node-http/content-type/json/index.ts +0 -100
- package/src/adapters/node-http/content-type/octet/index.ts +0 -27
- package/src/adapters/node-http/content-type/types.ts +0 -19
- package/src/unstable-core-do-not-import/contentTypeParsers.ts +0 -37
- package/src/unstable-core-do-not-import/http/index.ts +0 -28
- package/src/unstable-core-do-not-import/http/resolveHTTPResponse.ts +0 -461
|
@@ -1,12 +1,14 @@
|
|
|
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');
|
|
4
5
|
var formatter = require('./unstable-core-do-not-import/error/formatter.js');
|
|
5
6
|
var getErrorShape = require('./unstable-core-do-not-import/error/getErrorShape.js');
|
|
6
|
-
var TRPCError = require('./unstable-core-do-not-import/error/TRPCError.js');
|
|
7
|
-
var getHTTPStatusCode = require('./unstable-core-do-not-import/http/getHTTPStatusCode.js');
|
|
8
|
-
var resolveHTTPResponse = require('./unstable-core-do-not-import/http/resolveHTTPResponse.js');
|
|
9
7
|
var batchStreamFormatter = require('./unstable-core-do-not-import/http/batchStreamFormatter.js');
|
|
8
|
+
var contentType = require('./unstable-core-do-not-import/http/contentType.js');
|
|
9
|
+
var contentTypeParsers = require('./unstable-core-do-not-import/http/contentTypeParsers.js');
|
|
10
|
+
var getHTTPStatusCode = require('./unstable-core-do-not-import/http/getHTTPStatusCode.js');
|
|
11
|
+
var resolveResponse = require('./unstable-core-do-not-import/http/resolveResponse.js');
|
|
10
12
|
var toURL = require('./unstable-core-do-not-import/http/toURL.js');
|
|
11
13
|
var initTRPC = require('./unstable-core-do-not-import/initTRPC.js');
|
|
12
14
|
var middleware = require('./unstable-core-do-not-import/middleware.js');
|
|
@@ -25,15 +27,17 @@ var utils = require('./unstable-core-do-not-import/utils.js');
|
|
|
25
27
|
|
|
26
28
|
exports.createFlatProxy = createProxy.createFlatProxy;
|
|
27
29
|
exports.createRecursiveProxy = createProxy.createRecursiveProxy;
|
|
28
|
-
exports.defaultFormatter = formatter.defaultFormatter;
|
|
29
|
-
exports.getErrorShape = getErrorShape.getErrorShape;
|
|
30
30
|
exports.TRPCError = TRPCError.TRPCError;
|
|
31
31
|
exports.getCauseFromUnknown = TRPCError.getCauseFromUnknown;
|
|
32
32
|
exports.getTRPCErrorFromUnknown = TRPCError.getTRPCErrorFromUnknown;
|
|
33
|
+
exports.defaultFormatter = formatter.defaultFormatter;
|
|
34
|
+
exports.getErrorShape = getErrorShape.getErrorShape;
|
|
35
|
+
exports.getBatchStreamFormatter = batchStreamFormatter.getBatchStreamFormatter;
|
|
36
|
+
exports.getRequestInfo = contentType.getRequestInfo;
|
|
37
|
+
exports.octetInputParser = contentTypeParsers.octetInputParser;
|
|
33
38
|
exports.getHTTPStatusCode = getHTTPStatusCode.getHTTPStatusCode;
|
|
34
39
|
exports.getHTTPStatusCodeFromError = getHTTPStatusCode.getHTTPStatusCodeFromError;
|
|
35
|
-
exports.
|
|
36
|
-
exports.getBatchStreamFormatter = batchStreamFormatter.getBatchStreamFormatter;
|
|
40
|
+
exports.resolveResponse = resolveResponse.resolveResponse;
|
|
37
41
|
exports.toURL = toURL.toURL;
|
|
38
42
|
exports.initTRPC = initTRPC.initTRPC;
|
|
39
43
|
exports.createInputMiddleware = middleware.createInputMiddleware;
|
|
@@ -44,7 +48,6 @@ exports.middlewareMarker = middleware.middlewareMarker;
|
|
|
44
48
|
exports.getParseFn = parser.getParseFn;
|
|
45
49
|
exports.procedureTypes = procedure.procedureTypes;
|
|
46
50
|
exports.createBuilder = procedureBuilder.createBuilder;
|
|
47
|
-
exports.unsetMarker = procedureBuilder.unsetMarker;
|
|
48
51
|
exports.isServerDefault = rootConfig.isServerDefault;
|
|
49
52
|
exports.callProcedure = router.callProcedure;
|
|
50
53
|
exports.createCallerFactory = router.createCallerFactory;
|
|
@@ -62,3 +65,4 @@ exports.isFunction = utils.isFunction;
|
|
|
62
65
|
exports.isObject = utils.isObject;
|
|
63
66
|
exports.mergeWithoutOverrides = utils.mergeWithoutOverrides;
|
|
64
67
|
exports.omitPrototype = utils.omitPrototype;
|
|
68
|
+
exports.unsetMarker = utils.unsetMarker;
|
|
@@ -1,20 +1,22 @@
|
|
|
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';
|
|
2
3
|
export { defaultFormatter } from './unstable-core-do-not-import/error/formatter.mjs';
|
|
3
4
|
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
|
-
export { getHTTPStatusCode, getHTTPStatusCodeFromError } from './unstable-core-do-not-import/http/getHTTPStatusCode.mjs';
|
|
6
|
-
export { resolveHTTPResponse } from './unstable-core-do-not-import/http/resolveHTTPResponse.mjs';
|
|
7
5
|
export { getBatchStreamFormatter } from './unstable-core-do-not-import/http/batchStreamFormatter.mjs';
|
|
6
|
+
export { getRequestInfo } from './unstable-core-do-not-import/http/contentType.mjs';
|
|
7
|
+
export { octetInputParser } from './unstable-core-do-not-import/http/contentTypeParsers.mjs';
|
|
8
|
+
export { getHTTPStatusCode, getHTTPStatusCodeFromError } from './unstable-core-do-not-import/http/getHTTPStatusCode.mjs';
|
|
9
|
+
export { resolveResponse } from './unstable-core-do-not-import/http/resolveResponse.mjs';
|
|
8
10
|
export { toURL } from './unstable-core-do-not-import/http/toURL.mjs';
|
|
9
11
|
export { initTRPC } from './unstable-core-do-not-import/initTRPC.mjs';
|
|
10
12
|
export { createInputMiddleware, createMiddlewareFactory, createOutputMiddleware, experimental_standaloneMiddleware, middlewareMarker } from './unstable-core-do-not-import/middleware.mjs';
|
|
11
13
|
export { getParseFn } from './unstable-core-do-not-import/parser.mjs';
|
|
12
14
|
export { procedureTypes } from './unstable-core-do-not-import/procedure.mjs';
|
|
13
|
-
export { createBuilder
|
|
15
|
+
export { createBuilder } from './unstable-core-do-not-import/procedureBuilder.mjs';
|
|
14
16
|
export { isServerDefault } from './unstable-core-do-not-import/rootConfig.mjs';
|
|
15
17
|
export { callProcedure, createCallerFactory, createRouterFactory, mergeRouters } from './unstable-core-do-not-import/router.mjs';
|
|
16
18
|
export { TRPC_ERROR_CODES_BY_KEY, TRPC_ERROR_CODES_BY_NUMBER } from './unstable-core-do-not-import/rpc/codes.mjs';
|
|
17
19
|
export { parseTRPCMessage } from './unstable-core-do-not-import/rpc/parseTRPCMessage.mjs';
|
|
18
20
|
export { defaultTransformer, getDataTransformer, transformResult, transformTRPCResponse } from './unstable-core-do-not-import/transformer.mjs';
|
|
19
21
|
export { ERROR_SYMBOL } from './unstable-core-do-not-import/types.mjs';
|
|
20
|
-
export { isFunction, isObject, mergeWithoutOverrides, omitPrototype } from './unstable-core-do-not-import/utils.mjs';
|
|
22
|
+
export { isFunction, isObject, mergeWithoutOverrides, omitPrototype, 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-rc.
|
|
3
|
+
"version": "11.0.0-rc.363+64448a773",
|
|
4
4
|
"description": "The tRPC server library",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -58,16 +58,6 @@
|
|
|
58
58
|
"require": "./dist/adapters/next.js",
|
|
59
59
|
"default": "./dist/adapters/next.js"
|
|
60
60
|
},
|
|
61
|
-
"./adapters/node-http/content-type/form-data": {
|
|
62
|
-
"import": "./dist/adapters/node-http/content-type/form-data/index.mjs",
|
|
63
|
-
"require": "./dist/adapters/node-http/content-type/form-data/index.js",
|
|
64
|
-
"default": "./dist/adapters/node-http/content-type/form-data/index.js"
|
|
65
|
-
},
|
|
66
|
-
"./adapters/node-http/content-type/json": {
|
|
67
|
-
"import": "./dist/adapters/node-http/content-type/json/index.mjs",
|
|
68
|
-
"require": "./dist/adapters/node-http/content-type/json/index.js",
|
|
69
|
-
"default": "./dist/adapters/node-http/content-type/json/index.js"
|
|
70
|
-
},
|
|
71
61
|
"./adapters/node-http": {
|
|
72
62
|
"import": "./dist/adapters/node-http/index.mjs",
|
|
73
63
|
"require": "./dist/adapters/node-http/index.js",
|
|
@@ -128,7 +118,7 @@
|
|
|
128
118
|
"devDependencies": {
|
|
129
119
|
"@fastify/websocket": "^10.0.1",
|
|
130
120
|
"@tanstack/react-query": "^5.25.0",
|
|
131
|
-
"@types/aws-lambda": "^8.10.
|
|
121
|
+
"@types/aws-lambda": "^8.10.137",
|
|
132
122
|
"@types/express": "^4.17.17",
|
|
133
123
|
"@types/hash-sum": "^1.0.0",
|
|
134
124
|
"@types/node": "^20.10.0",
|
|
@@ -159,5 +149,5 @@
|
|
|
159
149
|
"funding": [
|
|
160
150
|
"https://trpc.io/sponsor"
|
|
161
151
|
],
|
|
162
|
-
"gitHead": "
|
|
152
|
+
"gitHead": "64448a7739caa0ea7464336316de0c11366161ea"
|
|
163
153
|
}
|
package/src/@trpc/server/http.ts
CHANGED
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
export {
|
|
2
2
|
getHTTPStatusCode,
|
|
3
3
|
getHTTPStatusCodeFromError,
|
|
4
|
+
resolveResponse,
|
|
4
5
|
} from '../../unstable-core-do-not-import';
|
|
5
|
-
export { resolveHTTPResponse } from '../../unstable-core-do-not-import';
|
|
6
6
|
export type {
|
|
7
7
|
BaseHandlerOptions,
|
|
8
8
|
HTTPBaseHandlerOptions,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
HTTPErrorHandler,
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Use `HTTPErrorHandler` instead
|
|
12
|
+
*/
|
|
13
|
+
HTTPErrorHandler as OnErrorFunction,
|
|
14
14
|
ResolveHTTPRequestOptionsContextFn,
|
|
15
|
-
ResponseChunk,
|
|
16
15
|
ResponseMeta,
|
|
17
16
|
ResponseMetaFn,
|
|
18
17
|
TRPCRequestInfo,
|
|
19
18
|
} from '../../unstable-core-do-not-import';
|
|
20
19
|
|
|
21
20
|
export { getBatchStreamFormatter } from '../../unstable-core-do-not-import';
|
|
22
|
-
export
|
|
23
|
-
BaseContentTypeHandler,
|
|
24
|
-
BodyResult,
|
|
25
|
-
} from '../../unstable-core-do-not-import';
|
|
26
|
-
export { toURL } from '../../unstable-core-do-not-import';
|
|
21
|
+
export { octetInputParser, toURL } from '../../unstable-core-do-not-import';
|
|
@@ -33,7 +33,6 @@ export {
|
|
|
33
33
|
type AnySubscriptionProcedure as AnyTRPCSubscriptionProcedure,
|
|
34
34
|
type ProcedureOptions as TRPCProcedureOptions,
|
|
35
35
|
type CreateContextCallback,
|
|
36
|
-
type WrapCreateContext,
|
|
37
36
|
type MutationProcedure as TRPCMutationProcedure,
|
|
38
37
|
type QueryProcedure as TRPCQueryProcedure,
|
|
39
38
|
type SubscriptionProcedure as TRPCSubscriptionProcedure,
|
|
@@ -104,5 +103,3 @@ export {
|
|
|
104
103
|
*/
|
|
105
104
|
export type inferAsyncReturnType<TFunction extends (...args: any[]) => any> =
|
|
106
105
|
Awaited<ReturnType<TFunction>>;
|
|
107
|
-
|
|
108
|
-
export { parseOctetInput } from '../../unstable-core-do-not-import/contentTypeParsers';
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
APIGatewayProxyEvent,
|
|
3
|
+
APIGatewayProxyEventV2,
|
|
4
|
+
APIGatewayProxyResult,
|
|
5
|
+
APIGatewayProxyStructuredResultV2,
|
|
6
|
+
} from 'aws-lambda';
|
|
7
|
+
|
|
8
|
+
export type LambdaEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2;
|
|
9
|
+
|
|
10
|
+
export type APIGatewayResult =
|
|
11
|
+
| APIGatewayProxyResult
|
|
12
|
+
| APIGatewayProxyStructuredResultV2;
|
|
13
|
+
|
|
14
|
+
function determinePayloadFormat(event: LambdaEvent): string {
|
|
15
|
+
// https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
|
|
16
|
+
// According to AWS support, version is is extracted from the version property in the event.
|
|
17
|
+
// If there is no version property, then the version is implied as 1.0
|
|
18
|
+
const unknownEvent = event as { version?: string };
|
|
19
|
+
if (typeof unknownEvent.version === 'undefined') {
|
|
20
|
+
return '1.0';
|
|
21
|
+
} else {
|
|
22
|
+
return unknownEvent.version;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** 1:1 mapping of v1 or v2 input events, deduces which is which.
|
|
27
|
+
* @internal
|
|
28
|
+
**/
|
|
29
|
+
export type inferAPIGWReturn<TEvent> = TEvent extends APIGatewayProxyEvent
|
|
30
|
+
? APIGatewayProxyResult
|
|
31
|
+
: TEvent extends APIGatewayProxyEventV2
|
|
32
|
+
? APIGatewayProxyStructuredResultV2
|
|
33
|
+
: never;
|
|
34
|
+
|
|
35
|
+
interface Processor<TEvent extends LambdaEvent> {
|
|
36
|
+
getTRPCPath: (event: TEvent) => string;
|
|
37
|
+
url(event: TEvent): Pick<URL, 'hostname' | 'pathname' | 'search'>;
|
|
38
|
+
getHeaders: (event: TEvent) => Headers;
|
|
39
|
+
getMethod: (event: TEvent) => string;
|
|
40
|
+
toResult: (response: Response) => Promise<inferAPIGWReturn<TEvent>>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const v1Processor: Processor<APIGatewayProxyEvent> = {
|
|
44
|
+
// same as getPath above
|
|
45
|
+
getTRPCPath: (event) => {
|
|
46
|
+
if (!event.pathParameters) {
|
|
47
|
+
// Then this event was not triggered by a resource denoted with {proxy+}
|
|
48
|
+
return event.path.split('/').pop() ?? '';
|
|
49
|
+
}
|
|
50
|
+
const matches = event.resource.matchAll(/\{(.*?)\}/g);
|
|
51
|
+
for (const match of matches) {
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
53
|
+
const group = match[1]!;
|
|
54
|
+
if (group.includes('+') && event.pathParameters) {
|
|
55
|
+
return event.pathParameters[group.replace('+', '')] ?? '';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return event.path.slice(1);
|
|
59
|
+
},
|
|
60
|
+
url(event) {
|
|
61
|
+
const hostname: string =
|
|
62
|
+
event.requestContext.domainName ??
|
|
63
|
+
event.headers['host'] ??
|
|
64
|
+
event.multiValueHeaders?.['host']?.[0] ??
|
|
65
|
+
'localhost';
|
|
66
|
+
|
|
67
|
+
const searchParams = new URLSearchParams();
|
|
68
|
+
|
|
69
|
+
for (const [key, value] of Object.entries(
|
|
70
|
+
event.queryStringParameters ?? {},
|
|
71
|
+
)) {
|
|
72
|
+
if (value !== undefined) {
|
|
73
|
+
searchParams.append(key, value);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const qs = searchParams.toString();
|
|
77
|
+
return {
|
|
78
|
+
hostname,
|
|
79
|
+
pathname: event.path,
|
|
80
|
+
search: qs && `?${qs}`,
|
|
81
|
+
};
|
|
82
|
+
},
|
|
83
|
+
getHeaders: (event) => {
|
|
84
|
+
const headers = new Headers();
|
|
85
|
+
for (const [key, value] of Object.entries(event.headers ?? {})) {
|
|
86
|
+
if (value !== undefined) {
|
|
87
|
+
headers.append(key, value);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
for (const [k, values] of Object.entries(event.multiValueHeaders ?? {})) {
|
|
92
|
+
if (values) {
|
|
93
|
+
values.forEach((v) => headers.append(k, v));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return headers;
|
|
98
|
+
},
|
|
99
|
+
getMethod: (event) => event.httpMethod,
|
|
100
|
+
toResult: async (response) => {
|
|
101
|
+
const result: APIGatewayProxyResult = {
|
|
102
|
+
statusCode: response.status,
|
|
103
|
+
body: await response.text(),
|
|
104
|
+
headers: Object.fromEntries(response.headers.entries()),
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
return result;
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
const v2Processor: Processor<APIGatewayProxyEventV2> = {
|
|
112
|
+
getTRPCPath: (event) => {
|
|
113
|
+
const matches = event.routeKey.matchAll(/\{(.*?)\}/g);
|
|
114
|
+
for (const match of matches) {
|
|
115
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
116
|
+
const group = match[1]!;
|
|
117
|
+
if (group.includes('+') && event.pathParameters) {
|
|
118
|
+
return event.pathParameters[group.replace('+', '')] ?? '';
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return event.rawPath.slice(1);
|
|
122
|
+
},
|
|
123
|
+
url(event) {
|
|
124
|
+
return {
|
|
125
|
+
hostname: event.requestContext.domainName,
|
|
126
|
+
pathname: event.rawPath,
|
|
127
|
+
search: event.rawQueryString && `?${event.rawQueryString}`,
|
|
128
|
+
};
|
|
129
|
+
},
|
|
130
|
+
getHeaders: (event) => {
|
|
131
|
+
const headers = new Headers();
|
|
132
|
+
for (const [key, value] of Object.entries(event.headers ?? {})) {
|
|
133
|
+
if (value !== undefined) {
|
|
134
|
+
headers.append(key, value);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (event.cookies) {
|
|
139
|
+
headers.append('cookie', event.cookies.join('; '));
|
|
140
|
+
}
|
|
141
|
+
return headers;
|
|
142
|
+
},
|
|
143
|
+
getMethod: (event) => event.requestContext.http.method,
|
|
144
|
+
toResult: async (response) => {
|
|
145
|
+
const result: APIGatewayProxyStructuredResultV2 = {
|
|
146
|
+
statusCode: response.status,
|
|
147
|
+
body: await response.text(),
|
|
148
|
+
headers: Object.fromEntries(response.headers.entries()),
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
return result;
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
export function getPlanner<TEvent extends LambdaEvent>(event: TEvent) {
|
|
156
|
+
const version = determinePayloadFormat(event);
|
|
157
|
+
let processor: Processor<TEvent>;
|
|
158
|
+
switch (version) {
|
|
159
|
+
case '1.0':
|
|
160
|
+
processor = v1Processor as Processor<TEvent>;
|
|
161
|
+
break;
|
|
162
|
+
case '2.0':
|
|
163
|
+
processor = v2Processor as Processor<TEvent>;
|
|
164
|
+
break;
|
|
165
|
+
default:
|
|
166
|
+
throw new Error(`Unsupported version: ${version}`);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const urlParts = processor.url(event);
|
|
170
|
+
const url = `https://${urlParts.hostname}${urlParts.pathname}${urlParts.search}`;
|
|
171
|
+
|
|
172
|
+
const init: RequestInit = {
|
|
173
|
+
headers: processor.getHeaders(event),
|
|
174
|
+
method: processor.getMethod(event),
|
|
175
|
+
// @ts-expect-error this is fine
|
|
176
|
+
duplex: 'half',
|
|
177
|
+
};
|
|
178
|
+
if (event.body) {
|
|
179
|
+
init.body = event.isBase64Encoded
|
|
180
|
+
? Buffer.from(event.body, 'base64')
|
|
181
|
+
: event.body;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const request = new Request(url, init);
|
|
185
|
+
|
|
186
|
+
return {
|
|
187
|
+
path: processor.getTRPCPath(event),
|
|
188
|
+
request,
|
|
189
|
+
toResult: processor.toResult,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
@@ -7,102 +7,58 @@
|
|
|
7
7
|
* import type { HTTPBaseHandlerOptions } from '@trpc/server/http'
|
|
8
8
|
* ```
|
|
9
9
|
*/
|
|
10
|
-
import type {
|
|
11
|
-
APIGatewayProxyEvent,
|
|
12
|
-
APIGatewayProxyEventV2,
|
|
13
|
-
APIGatewayProxyResult,
|
|
14
|
-
APIGatewayProxyStructuredResultV2,
|
|
15
|
-
Context as APIGWContext,
|
|
16
|
-
} from 'aws-lambda';
|
|
10
|
+
import type { Context as APIGWContext } from 'aws-lambda';
|
|
17
11
|
// @trpc/server
|
|
18
|
-
import type {
|
|
12
|
+
import type {
|
|
13
|
+
AnyRouter,
|
|
14
|
+
CreateContextCallback,
|
|
15
|
+
inferRouterContext,
|
|
16
|
+
} from '../../@trpc/server';
|
|
19
17
|
// @trpc/server
|
|
20
|
-
import { TRPCError } from '../../@trpc/server';
|
|
21
18
|
import type {
|
|
22
|
-
|
|
23
|
-
HTTPResponse,
|
|
19
|
+
HTTPBaseHandlerOptions,
|
|
24
20
|
ResolveHTTPRequestOptionsContextFn,
|
|
21
|
+
TRPCRequestInfo,
|
|
25
22
|
} from '../../@trpc/server/http';
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import type {
|
|
30
|
-
APIGatewayEvent,
|
|
31
|
-
APIGatewayResult,
|
|
32
|
-
AWSLambdaOptions,
|
|
33
|
-
} from './utils';
|
|
34
|
-
import {
|
|
35
|
-
getHTTPMethod,
|
|
36
|
-
getPath,
|
|
37
|
-
isPayloadV1,
|
|
38
|
-
isPayloadV2,
|
|
39
|
-
transformHeaders,
|
|
40
|
-
UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
|
|
41
|
-
} from './utils';
|
|
42
|
-
|
|
43
|
-
export * from './utils';
|
|
23
|
+
import { resolveResponse } from '../../@trpc/server/http';
|
|
24
|
+
import type { inferAPIGWReturn, LambdaEvent } from './getPlanner';
|
|
25
|
+
import { getPlanner } from './getPlanner';
|
|
44
26
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (typeof value !== 'undefined') {
|
|
51
|
-
query.append(key, value);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
27
|
+
export type CreateAWSLambdaContextOptions<TEvent extends LambdaEvent> = {
|
|
28
|
+
event: TEvent;
|
|
29
|
+
context: APIGWContext;
|
|
30
|
+
info: TRPCRequestInfo;
|
|
31
|
+
};
|
|
54
32
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
33
|
+
export type AWSLambdaOptions<
|
|
34
|
+
TRouter extends AnyRouter,
|
|
35
|
+
TEvent extends LambdaEvent,
|
|
36
|
+
> =
|
|
37
|
+
| HTTPBaseHandlerOptions<TRouter, TEvent> &
|
|
38
|
+
CreateContextCallback<
|
|
39
|
+
inferRouterContext<AnyRouter>,
|
|
40
|
+
AWSLambdaCreateContextFn<TRouter, TEvent>
|
|
41
|
+
>;
|
|
61
42
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return resp as TResult;
|
|
73
|
-
} else if (isPayloadV2(event)) {
|
|
74
|
-
const resp: APIGatewayProxyStructuredResultV2 = {
|
|
75
|
-
statusCode: response.status,
|
|
76
|
-
body: response.body ?? undefined,
|
|
77
|
-
headers: transformHeaders(response.headers ?? {}),
|
|
78
|
-
};
|
|
79
|
-
return resp as TResult;
|
|
80
|
-
} else {
|
|
81
|
-
throw new TRPCError({
|
|
82
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
83
|
-
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
43
|
+
export type AWSLambdaCreateContextFn<
|
|
44
|
+
TRouter extends AnyRouter,
|
|
45
|
+
TEvent extends LambdaEvent,
|
|
46
|
+
> = ({
|
|
47
|
+
event,
|
|
48
|
+
context,
|
|
49
|
+
info,
|
|
50
|
+
}: CreateAWSLambdaContextOptions<TEvent>) =>
|
|
51
|
+
| inferRouterContext<TRouter>
|
|
52
|
+
| Promise<inferRouterContext<TRouter>>;
|
|
87
53
|
|
|
88
|
-
/** 1:1 mapping of v1 or v2 input events, deduces which is which.
|
|
89
|
-
* @internal
|
|
90
|
-
**/
|
|
91
|
-
type inferAPIGWReturn<TType> = TType extends APIGatewayProxyEvent
|
|
92
|
-
? APIGatewayProxyResult
|
|
93
|
-
: TType extends APIGatewayProxyEventV2
|
|
94
|
-
? APIGatewayProxyStructuredResultV2
|
|
95
|
-
: never;
|
|
96
54
|
export function awsLambdaRequestHandler<
|
|
97
55
|
TRouter extends AnyRouter,
|
|
98
|
-
TEvent extends
|
|
99
|
-
TResult extends inferAPIGWReturn<TEvent>,
|
|
56
|
+
TEvent extends LambdaEvent,
|
|
100
57
|
>(
|
|
101
58
|
opts: AWSLambdaOptions<TRouter, TEvent>,
|
|
102
|
-
): (event: TEvent, context: APIGWContext) => Promise<
|
|
59
|
+
): (event: TEvent, context: APIGWContext) => Promise<inferAPIGWReturn<TEvent>> {
|
|
103
60
|
return async (event, context) => {
|
|
104
|
-
const
|
|
105
|
-
const path = getPath(event);
|
|
61
|
+
const planner = getPlanner(event);
|
|
106
62
|
|
|
107
63
|
const createContext: ResolveHTTPRequestOptionsContextFn<TRouter> = async (
|
|
108
64
|
innerOpts,
|
|
@@ -110,32 +66,12 @@ export function awsLambdaRequestHandler<
|
|
|
110
66
|
return await opts.createContext?.({ event, context, ...innerOpts });
|
|
111
67
|
};
|
|
112
68
|
|
|
113
|
-
const
|
|
114
|
-
selectContentHandlerOrUnsupportedMediaType(
|
|
115
|
-
[getLambdaHTTPJSONContentTypeHandler<TRouter, TEvent>()],
|
|
116
|
-
{
|
|
117
|
-
...opts,
|
|
118
|
-
event,
|
|
119
|
-
req,
|
|
120
|
-
},
|
|
121
|
-
);
|
|
122
|
-
|
|
123
|
-
const response = await resolveHTTPResponse({
|
|
69
|
+
const response = await resolveResponse({
|
|
124
70
|
...opts,
|
|
125
71
|
createContext,
|
|
126
|
-
req,
|
|
127
|
-
path,
|
|
128
|
-
error:
|
|
129
|
-
async getInput(info) {
|
|
130
|
-
return await contentTypeHandler?.getInputs(
|
|
131
|
-
{
|
|
132
|
-
...opts,
|
|
133
|
-
event,
|
|
134
|
-
req,
|
|
135
|
-
},
|
|
136
|
-
info,
|
|
137
|
-
);
|
|
138
|
-
},
|
|
72
|
+
req: planner.request,
|
|
73
|
+
path: planner.path,
|
|
74
|
+
error: null,
|
|
139
75
|
onError(o) {
|
|
140
76
|
opts?.onError?.({
|
|
141
77
|
...o,
|
|
@@ -144,6 +80,6 @@ export function awsLambdaRequestHandler<
|
|
|
144
80
|
},
|
|
145
81
|
});
|
|
146
82
|
|
|
147
|
-
return
|
|
83
|
+
return await planner.toResult(response);
|
|
148
84
|
};
|
|
149
85
|
}
|