@trpc/server 11.0.0-next.92 → 11.0.0-rc.330
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/README.md +6 -6
- package/adapters/next-app-dir/index.d.ts +1 -0
- package/adapters/next-app-dir/index.js +1 -0
- package/dist/@trpc/server/http.d.ts +8 -0
- package/dist/@trpc/server/http.d.ts.map +1 -0
- package/dist/@trpc/server/index.d.ts +61 -0
- package/dist/@trpc/server/index.d.ts.map +1 -0
- package/dist/@trpc/server/rpc.d.ts +3 -0
- package/dist/@trpc/server/rpc.d.ts.map +1 -0
- package/dist/adapters/aws-lambda/index.d.ts +11 -2
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.js +27 -106
- package/dist/adapters/aws-lambda/index.mjs +14 -91
- package/dist/adapters/aws-lambda/utils.d.ts +14 -14
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/utils.js +100 -0
- package/dist/adapters/aws-lambda/utils.mjs +93 -0
- package/dist/adapters/express.d.ts +11 -2
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +2 -14
- package/dist/adapters/express.mjs +2 -12
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +4 -4
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.js +80 -0
- package/dist/adapters/fastify/fastifyRequestHandler.mjs +78 -0
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +13 -4
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.js +48 -0
- package/dist/adapters/fastify/fastifyTRPCPlugin.mjs +46 -0
- package/dist/adapters/fastify/index.js +4 -126
- package/dist/adapters/fastify/index.mjs +2 -126
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +11 -2
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/fetchRequestHandler.js +118 -0
- package/dist/adapters/fetch/fetchRequestHandler.mjs +116 -0
- package/dist/adapters/fetch/index.js +2 -106
- package/dist/adapters/fetch/index.mjs +1 -107
- package/dist/adapters/fetch/types.d.ts +13 -4
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/next-app-dir/formDataToObject.d.ts +2 -0
- package/dist/adapters/next-app-dir/formDataToObject.d.ts.map +1 -0
- package/dist/adapters/next-app-dir/formDataToObject.js +34 -0
- package/dist/adapters/next-app-dir/formDataToObject.mjs +32 -0
- package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts +24 -0
- package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts.map +1 -0
- package/dist/adapters/next-app-dir/nextAppDirCaller.js +85 -0
- package/dist/adapters/next-app-dir/nextAppDirCaller.mjs +83 -0
- package/dist/adapters/next-app-dir/notFound.d.ts +7 -0
- package/dist/adapters/next-app-dir/notFound.d.ts.map +1 -0
- package/dist/adapters/next-app-dir/notFound.js +15 -0
- package/dist/adapters/next-app-dir/notFound.mjs +13 -0
- package/dist/adapters/next-app-dir/redirect.d.ts +18 -0
- package/dist/adapters/next-app-dir/redirect.d.ts.map +1 -0
- package/dist/adapters/next-app-dir/redirect.js +33 -0
- package/dist/adapters/next-app-dir/redirect.mjs +30 -0
- package/dist/adapters/next-app-dir/rethrowNextErrors.d.ts +6 -0
- package/dist/adapters/next-app-dir/rethrowNextErrors.d.ts.map +1 -0
- package/dist/adapters/next-app-dir/rethrowNextErrors.js +23 -0
- package/dist/adapters/next-app-dir/rethrowNextErrors.mjs +21 -0
- package/dist/adapters/next-app-dir.d.ts +4 -0
- package/dist/adapters/next-app-dir.d.ts.map +1 -0
- package/dist/adapters/next-app-dir.js +11 -0
- package/dist/adapters/next-app-dir.mjs +3 -0
- package/dist/adapters/next.d.ts +16 -3
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +19 -19
- package/dist/adapters/next.mjs +18 -16
- package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts +6 -3
- package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.js +161 -0
- package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.mjs +157 -0
- package/dist/adapters/node-http/content-type/form-data/index.d.ts +6 -8
- package/dist/adapters/node-http/content-type/form-data/index.d.ts.map +1 -1
- package/dist/adapters/node-http/content-type/form-data/index.js +21 -647
- package/dist/adapters/node-http/content-type/form-data/index.mjs +10 -632
- package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts +2 -2
- package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.js +29 -0
- package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.mjs +27 -0
- package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts +2 -1
- package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts.map +1 -1
- package/dist/adapters/node-http/content-type/form-data/streamSlice.js +46 -0
- package/dist/adapters/node-http/content-type/form-data/streamSlice.mjs +44 -0
- package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts +2 -2
- package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/content-type/form-data/uploadHandler.js +30 -0
- package/dist/adapters/node-http/content-type/form-data/uploadHandler.mjs +26 -0
- package/dist/adapters/node-http/content-type/json/getPostBody.d.ts +2 -2
- package/dist/adapters/node-http/content-type/json/getPostBody.d.ts.map +1 -1
- package/dist/adapters/node-http/content-type/json/getPostBody.js +53 -0
- package/dist/adapters/node-http/content-type/json/getPostBody.mjs +51 -0
- package/dist/adapters/node-http/content-type/json/index.js +5 -42
- package/dist/adapters/node-http/content-type/json/index.mjs +4 -39
- package/dist/adapters/node-http/index.js +1 -14
- package/dist/adapters/node-http/index.mjs +1 -12
- package/dist/adapters/node-http/internals/contentType.d.ts +3 -3
- package/dist/adapters/node-http/internals/contentType.d.ts.map +1 -1
- package/dist/{contentType-8c16408e.js → adapters/node-http/internals/contentType.js} +1 -0
- package/dist/{contentType-3194ed5f.mjs → adapters/node-http/internals/contentType.mjs} +2 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +11 -2
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/{nodeHTTPRequestHandler-18f3370e.js → adapters/node-http/nodeHTTPRequestHandler.js} +18 -10
- package/dist/{nodeHTTPRequestHandler-0986c5a1.mjs → adapters/node-http/nodeHTTPRequestHandler.mjs} +18 -10
- package/dist/adapters/node-http/types.d.ts +18 -9
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +11 -2
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +9 -22
- package/dist/adapters/standalone.mjs +9 -16
- package/dist/adapters/ws.d.ts +18 -17
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +34 -22
- package/dist/adapters/ws.mjs +27 -14
- package/dist/bundle-analysis.json +382 -495
- package/dist/http.d.ts +2 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +17 -0
- package/dist/http.mjs +6 -0
- package/dist/index.d.ts +1 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -86
- package/dist/index.mjs +8 -81
- package/dist/observable/index.d.ts +4 -4
- package/dist/observable/index.d.ts.map +1 -1
- package/dist/observable/index.js +6 -149
- package/dist/observable/index.mjs +2 -147
- package/dist/observable/observable.d.ts +9 -1
- package/dist/observable/observable.d.ts.map +1 -1
- package/dist/{observable-464116ac.js → observable/observable.js} +50 -20
- package/dist/{observable-ade1bad8.mjs → observable/observable.mjs} +50 -21
- package/dist/observable/operators.d.ts +8 -0
- package/dist/observable/operators.d.ts.map +1 -0
- package/dist/observable/operators.js +99 -0
- package/dist/observable/operators.mjs +95 -0
- package/dist/observable/types.d.ts +2 -5
- package/dist/observable/types.d.ts.map +1 -1
- package/dist/rpc.d.ts +2 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/{rpc/index.js → rpc.js} +3 -4
- package/dist/rpc.mjs +3 -0
- package/dist/shared.d.ts +26 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +10 -0
- package/dist/shared.mjs +3 -0
- package/dist/unstable-core-do-not-import/clientish/inference.d.ts +17 -0
- package/dist/unstable-core-do-not-import/clientish/inference.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/clientish/inferrable.d.ts +32 -0
- package/dist/unstable-core-do-not-import/clientish/inferrable.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/clientish/serialize.d.ts +62 -0
- package/dist/unstable-core-do-not-import/clientish/serialize.d.ts.map +1 -0
- package/dist/{shared/createProxy/index.d.ts → unstable-core-do-not-import/createProxy.d.ts} +1 -1
- package/dist/unstable-core-do-not-import/createProxy.d.ts.map +1 -0
- package/dist/{index-784ff647.js → unstable-core-do-not-import/createProxy.js} +0 -51
- package/dist/unstable-core-do-not-import/createProxy.mjs +49 -0
- package/dist/{error → unstable-core-do-not-import/error}/TRPCError.d.ts +3 -2
- package/dist/unstable-core-do-not-import/error/TRPCError.d.ts.map +1 -0
- package/dist/{TRPCError-ae7b67e8.js → unstable-core-do-not-import/error/TRPCError.js} +25 -25
- package/dist/{TRPCError-816ff32e.mjs → unstable-core-do-not-import/error/TRPCError.mjs} +24 -25
- package/dist/{error → unstable-core-do-not-import/error}/formatter.d.ts +11 -6
- package/dist/unstable-core-do-not-import/error/formatter.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/error/formatter.js +7 -0
- package/dist/unstable-core-do-not-import/error/formatter.mjs +5 -0
- package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts +15 -0
- package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/error/getErrorShape.js +31 -0
- package/dist/unstable-core-do-not-import/error/getErrorShape.mjs +29 -0
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts.map +1 -0
- package/dist/{batchStreamFormatter-fc1ffb26.mjs → unstable-core-do-not-import/http/batchStreamFormatter.mjs} +1 -1
- package/dist/{http → unstable-core-do-not-import/http}/contentType.d.ts +3 -3
- package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +1 -0
- package/dist/{contentType-90bad7bb.js → unstable-core-do-not-import/http/contentType.js} +1 -1
- package/dist/{contentType-93515a46.mjs → unstable-core-do-not-import/http/contentType.mjs} +2 -2
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts +5 -0
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +52 -0
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +49 -0
- package/dist/unstable-core-do-not-import/http/index.d.ts +12 -0
- package/dist/unstable-core-do-not-import/http/index.d.ts.map +1 -0
- package/dist/{http → unstable-core-do-not-import/http}/resolveHTTPResponse.d.ts +4 -5
- package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts.map +1 -0
- package/dist/{resolveHTTPResponse-5def1b0c.js → unstable-core-do-not-import/http/resolveHTTPResponse.js} +60 -63
- package/dist/{resolveHTTPResponse-55c648bd.mjs → unstable-core-do-not-import/http/resolveHTTPResponse.mjs} +54 -57
- package/dist/unstable-core-do-not-import/http/toURL.d.ts +2 -0
- package/dist/unstable-core-do-not-import/http/toURL.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/toURL.js +8 -0
- package/dist/unstable-core-do-not-import/http/toURL.mjs +6 -0
- package/dist/unstable-core-do-not-import/http/types.d.ts +109 -0
- package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/initTRPC.d.ts +102 -0
- package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/initTRPC.js +81 -0
- package/dist/unstable-core-do-not-import/initTRPC.mjs +79 -0
- package/dist/unstable-core-do-not-import/middleware.d.ts +106 -0
- package/dist/unstable-core-do-not-import/middleware.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/middleware.js +96 -0
- package/dist/unstable-core-do-not-import/middleware.mjs +90 -0
- package/dist/{core → unstable-core-do-not-import}/parser.d.ts +3 -7
- package/dist/unstable-core-do-not-import/parser.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/parser.js +37 -0
- package/dist/unstable-core-do-not-import/parser.mjs +35 -0
- package/dist/unstable-core-do-not-import/procedure.d.ts +75 -0
- package/dist/unstable-core-do-not-import/procedure.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/procedure.js +9 -0
- package/dist/unstable-core-do-not-import/procedure.mjs +7 -0
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +134 -0
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/procedureBuilder.js +204 -0
- package/dist/unstable-core-do-not-import/procedureBuilder.mjs +201 -0
- package/dist/{core/internals/config.d.ts → unstable-core-do-not-import/rootConfig.d.ts} +19 -27
- package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/rootConfig.js +8 -0
- package/dist/unstable-core-do-not-import/rootConfig.mjs +6 -0
- package/dist/unstable-core-do-not-import/router.d.ts +81 -0
- package/dist/unstable-core-do-not-import/router.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/router.js +168 -0
- package/dist/unstable-core-do-not-import/router.mjs +163 -0
- package/dist/{rpc → unstable-core-do-not-import/rpc}/codes.d.ts +8 -16
- package/dist/unstable-core-do-not-import/rpc/codes.d.ts.map +1 -0
- package/dist/{codes-87f6824b.js → unstable-core-do-not-import/rpc/codes.js} +19 -13
- package/dist/{codes-c924c3db.mjs → unstable-core-do-not-import/rpc/codes.mjs} +20 -13
- package/dist/{rpc → unstable-core-do-not-import/rpc}/envelopes.d.ts +6 -4
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/rpc/index.d.ts +5 -0
- package/dist/unstable-core-do-not-import/rpc/index.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.d.ts.map +1 -0
- package/dist/{parseTRPCMessage-1377f305.js → unstable-core-do-not-import/rpc/parseTRPCMessage.js} +5 -2
- package/dist/{parseTRPCMessage-a0f17853.mjs → unstable-core-do-not-import/rpc/parseTRPCMessage.mjs} +6 -3
- package/dist/unstable-core-do-not-import/transformer.d.ts +101 -0
- package/dist/unstable-core-do-not-import/transformer.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/transformer.js +106 -0
- package/dist/unstable-core-do-not-import/transformer.mjs +101 -0
- package/dist/unstable-core-do-not-import/types.d.ts +103 -0
- package/dist/unstable-core-do-not-import/types.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/types.js +11 -0
- package/dist/unstable-core-do-not-import/types.mjs +9 -0
- package/dist/unstable-core-do-not-import/utils.d.ts +19 -0
- package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/utils.js +37 -0
- package/dist/unstable-core-do-not-import/utils.mjs +32 -0
- package/dist/unstable-core-do-not-import.d.ts +31 -0
- package/dist/unstable-core-do-not-import.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import.js +66 -0
- package/dist/unstable-core-do-not-import.mjs +21 -0
- package/package.json +51 -69
- package/src/@trpc/server/http.ts +27 -0
- package/src/@trpc/server/index.ts +100 -0
- package/src/@trpc/server/rpc.ts +26 -0
- package/src/adapters/aws-lambda/index.ts +21 -10
- package/src/adapters/aws-lambda/utils.ts +33 -26
- package/src/adapters/express.ts +18 -4
- package/src/adapters/fastify/fastifyRequestHandler.ts +22 -12
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +21 -9
- package/src/adapters/fetch/fetchRequestHandler.ts +36 -12
- package/src/adapters/fetch/types.ts +18 -4
- package/src/adapters/next-app-dir/formDataToObject.ts +36 -0
- package/src/adapters/next-app-dir/nextAppDirCaller.ts +129 -0
- package/src/adapters/next-app-dir/notFound.ts +12 -0
- package/src/adapters/next-app-dir/redirect.ts +30 -0
- package/src/adapters/next-app-dir/rethrowNextErrors.ts +25 -0
- package/src/adapters/next-app-dir.ts +3 -0
- package/src/adapters/next.ts +30 -14
- package/src/adapters/node-http/content-type/form-data/fileUploadHandler.ts +11 -4
- package/src/adapters/node-http/content-type/form-data/index.ts +18 -18
- package/src/adapters/node-http/content-type/form-data/memoryUploadHandler.ts +3 -2
- package/src/adapters/node-http/content-type/form-data/streamSlice.ts +7 -2
- package/src/adapters/node-http/content-type/form-data/uploadHandler.ts +2 -2
- package/src/adapters/node-http/content-type/json/getPostBody.ts +20 -3
- package/src/adapters/node-http/content-type/json/index.ts +1 -1
- package/src/adapters/node-http/internals/contentType.ts +5 -3
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +28 -16
- package/src/adapters/node-http/types.ts +24 -9
- package/src/adapters/standalone.ts +22 -8
- package/src/adapters/ws.ts +68 -39
- package/src/http.ts +1 -0
- package/src/index.ts +1 -20
- package/src/observable/index.ts +10 -4
- package/src/observable/observable.ts +63 -3
- package/src/observable/operators.ts +114 -0
- package/src/observable/types.ts +1 -5
- package/src/rpc.ts +1 -0
- package/src/shared.ts +26 -0
- package/src/unstable-core-do-not-import/clientish/inference.ts +60 -0
- package/src/unstable-core-do-not-import/clientish/inferrable.ts +49 -0
- package/src/unstable-core-do-not-import/clientish/serialize.ts +122 -0
- package/src/{error → unstable-core-do-not-import/error}/TRPCError.ts +33 -27
- package/src/{error → unstable-core-do-not-import/error}/formatter.ts +12 -19
- package/src/{shared → unstable-core-do-not-import/error}/getErrorShape.ts +8 -8
- package/src/{http → unstable-core-do-not-import/http}/contentType.ts +4 -4
- package/src/{http → unstable-core-do-not-import/http}/getHTTPStatusCode.ts +8 -8
- package/src/unstable-core-do-not-import/http/index.ts +29 -0
- package/src/{http → unstable-core-do-not-import/http}/resolveHTTPResponse.ts +69 -69
- package/src/unstable-core-do-not-import/http/toURL.ts +7 -0
- package/src/unstable-core-do-not-import/http/types.ts +126 -0
- package/src/unstable-core-do-not-import/initTRPC.ts +151 -0
- package/src/unstable-core-do-not-import/middleware.ts +238 -0
- package/src/unstable-core-do-not-import/parser.ts +94 -0
- package/src/unstable-core-do-not-import/procedure.ts +94 -0
- package/src/unstable-core-do-not-import/procedureBuilder.ts +623 -0
- package/src/{core/internals/config.ts → unstable-core-do-not-import/rootConfig.ts} +22 -33
- package/src/unstable-core-do-not-import/router.ts +363 -0
- package/src/{rpc → unstable-core-do-not-import/rpc}/codes.ts +30 -3
- package/src/{rpc → unstable-core-do-not-import/rpc}/envelopes.ts +6 -9
- package/src/unstable-core-do-not-import/rpc/index.ts +21 -0
- package/src/{rpc → unstable-core-do-not-import/rpc}/parseTRPCMessage.ts +4 -3
- package/src/unstable-core-do-not-import/transformer.ts +194 -0
- package/src/unstable-core-do-not-import/types.ts +157 -0
- package/src/unstable-core-do-not-import/utils.ts +43 -0
- package/src/unstable-core-do-not-import.ts +30 -0
- package/unstable-core-do-not-import/index.d.ts +1 -0
- package/unstable-core-do-not-import/index.js +1 -0
- package/dist/TRPCError-efecb077.js +0 -63
- package/dist/batchStreamFormatter-2c1405a1.js +0 -31
- package/dist/codes-e5bb4d58.js +0 -48
- package/dist/config-5de7eae5.js +0 -10
- package/dist/config-60fc2667.js +0 -7
- package/dist/config-ab4c1c6b.mjs +0 -5
- package/dist/contentType-24c44bba.js +0 -5
- package/dist/contentType-9940f5d7.js +0 -58
- package/dist/core/index.d.ts +0 -9
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/initTRPC.d.ts +0 -105
- package/dist/core/initTRPC.d.ts.map +0 -1
- package/dist/core/internals/builderTypes.d.ts +0 -11
- package/dist/core/internals/builderTypes.d.ts.map +0 -1
- package/dist/core/internals/config.d.ts.map +0 -1
- package/dist/core/internals/getParseFn.d.ts +0 -4
- package/dist/core/internals/getParseFn.d.ts.map +0 -1
- package/dist/core/internals/mergeRouters.d.ts +0 -15
- package/dist/core/internals/mergeRouters.d.ts.map +0 -1
- package/dist/core/internals/mergeWithoutOverrides.d.ts +0 -5
- package/dist/core/internals/mergeWithoutOverrides.d.ts.map +0 -1
- package/dist/core/internals/omitPrototype.d.ts +0 -6
- package/dist/core/internals/omitPrototype.d.ts.map +0 -1
- package/dist/core/internals/procedureBuilder.d.ts +0 -113
- package/dist/core/internals/procedureBuilder.d.ts.map +0 -1
- package/dist/core/internals/utils.d.ts +0 -51
- package/dist/core/internals/utils.d.ts.map +0 -1
- package/dist/core/middleware.d.ts +0 -158
- package/dist/core/middleware.d.ts.map +0 -1
- package/dist/core/parser.d.ts.map +0 -1
- package/dist/core/procedure.d.ts +0 -72
- package/dist/core/procedure.d.ts.map +0 -1
- package/dist/core/router.d.ts +0 -65
- package/dist/core/router.d.ts.map +0 -1
- package/dist/core/types.d.ts +0 -24
- package/dist/core/types.d.ts.map +0 -1
- package/dist/error/TRPCError.d.ts.map +0 -1
- package/dist/error/formatter.d.ts.map +0 -1
- package/dist/error/utils.d.ts +0 -9
- package/dist/error/utils.d.ts.map +0 -1
- package/dist/http/batchStreamFormatter.d.ts.map +0 -1
- package/dist/http/contentType.d.ts.map +0 -1
- package/dist/http/getHTTPStatusCode.d.ts +0 -24
- package/dist/http/getHTTPStatusCode.d.ts.map +0 -1
- package/dist/http/index.d.ts +0 -5
- package/dist/http/index.d.ts.map +0 -1
- package/dist/http/index.js +0 -21
- package/dist/http/index.mjs +0 -9
- package/dist/http/internals/types.d.ts +0 -32
- package/dist/http/internals/types.d.ts.map +0 -1
- package/dist/http/resolveHTTPResponse.d.ts.map +0 -1
- package/dist/http/types.d.ts +0 -46
- package/dist/http/types.d.ts.map +0 -1
- package/dist/index-46cb3130.js +0 -94
- package/dist/index-f91d720c.mjs +0 -97
- package/dist/internals/invert.d.ts +0 -12
- package/dist/internals/invert.d.ts.map +0 -1
- package/dist/internals/types.d.ts +0 -26
- package/dist/internals/types.d.ts.map +0 -1
- package/dist/nodeHTTPRequestHandler-388f5fce.js +0 -107
- package/dist/observable/internals/identity.d.ts +0 -2
- package/dist/observable/internals/identity.d.ts.map +0 -1
- package/dist/observable/internals/observableToPromise.d.ts +0 -10
- package/dist/observable/internals/observableToPromise.d.ts.map +0 -1
- package/dist/observable/internals/pipe.d.ts +0 -4
- package/dist/observable/internals/pipe.d.ts.map +0 -1
- package/dist/observable/operators/index.d.ts +0 -4
- package/dist/observable/operators/index.d.ts.map +0 -1
- package/dist/observable/operators/map.d.ts +0 -3
- package/dist/observable/operators/map.d.ts.map +0 -1
- package/dist/observable/operators/share.d.ts +0 -6
- package/dist/observable/operators/share.d.ts.map +0 -1
- package/dist/observable/operators/tap.d.ts +0 -3
- package/dist/observable/operators/tap.d.ts.map +0 -1
- package/dist/observable-15588f28.js +0 -83
- package/dist/parseTRPCMessage-95955211.js +0 -63
- package/dist/resolveHTTPResponse-8d474952.js +0 -267
- package/dist/router-3c22fe56.js +0 -159
- package/dist/router-5274e533.mjs +0 -153
- package/dist/router-a1635eab.js +0 -147
- package/dist/rpc/codes.d.ts.map +0 -1
- package/dist/rpc/envelopes.d.ts.map +0 -1
- package/dist/rpc/index.d.ts +0 -4
- package/dist/rpc/index.d.ts.map +0 -1
- package/dist/rpc/index.mjs +0 -2
- package/dist/rpc/parseTRPCMessage.d.ts.map +0 -1
- package/dist/shared/createProxy/index.d.ts.map +0 -1
- package/dist/shared/getErrorShape.d.ts +0 -15
- package/dist/shared/getErrorShape.d.ts.map +0 -1
- package/dist/shared/index.d.ts +0 -7
- package/dist/shared/index.d.ts.map +0 -1
- package/dist/shared/index.js +0 -14
- package/dist/shared/index.mjs +0 -3
- package/dist/shared/internal/serialize.d.ts +0 -30
- package/dist/shared/internal/serialize.d.ts.map +0 -1
- package/dist/shared/jsonify.d.ts +0 -11
- package/dist/shared/jsonify.d.ts.map +0 -1
- package/dist/shared/transformTRPCResponse.d.ts +0 -9
- package/dist/shared/transformTRPCResponse.d.ts.map +0 -1
- package/dist/shared/types.d.ts +0 -6
- package/dist/shared/types.d.ts.map +0 -1
- package/dist/transformTRPCResponse-1153b421.mjs +0 -53
- package/dist/transformTRPCResponse-20ce3b68.js +0 -54
- package/dist/transformTRPCResponse-e65f34e9.js +0 -56
- package/dist/transformer.d.ts +0 -74
- package/dist/transformer.d.ts.map +0 -1
- package/dist/types.d.ts +0 -83
- package/dist/types.d.ts.map +0 -1
- package/dist/unstableInternalsExport-10cc2bae.mjs +0 -353
- package/dist/unstableInternalsExport-a064a7dd.js +0 -349
- package/dist/unstableInternalsExport-bf8496ea.js +0 -363
- package/dist/unstableInternalsExport.d.ts +0 -11
- package/dist/unstableInternalsExport.d.ts.map +0 -1
- package/dist/unstableInternalsExport.js +0 -16
- package/dist/unstableInternalsExport.mjs +0 -5
- package/src/core/index.ts +0 -28
- package/src/core/initTRPC.ts +0 -169
- package/src/core/internals/builderTypes.ts +0 -11
- package/src/core/internals/getParseFn.ts +0 -43
- package/src/core/internals/mergeRouters.ts +0 -90
- package/src/core/internals/mergeWithoutOverrides.ts +0 -19
- package/src/core/internals/omitPrototype.ts +0 -9
- package/src/core/internals/procedureBuilder.ts +0 -394
- package/src/core/internals/utils.ts +0 -84
- package/src/core/middleware.ts +0 -295
- package/src/core/parser.ts +0 -57
- package/src/core/procedure.ts +0 -88
- package/src/core/router.ts +0 -226
- package/src/core/types.ts +0 -67
- package/src/error/utils.ts +0 -23
- package/src/http/index.ts +0 -4
- package/src/http/internals/types.ts +0 -40
- package/src/http/types.ts +0 -51
- package/src/internals/invert.ts +0 -21
- package/src/internals/types.ts +0 -27
- package/src/observable/internals/identity.ts +0 -3
- package/src/observable/internals/observableToPromise.ts +0 -49
- package/src/observable/internals/pipe.ts +0 -23
- package/src/observable/operators/index.ts +0 -3
- package/src/observable/operators/map.ts +0 -25
- package/src/observable/operators/share.ts +0 -65
- package/src/observable/operators/tap.ts +0 -26
- package/src/rpc/index.ts +0 -3
- package/src/shared/index.ts +0 -10
- package/src/shared/internal/serialize.ts +0 -65
- package/src/shared/jsonify.ts +0 -22
- package/src/shared/transformTRPCResponse.ts +0 -40
- package/src/shared/types.ts +0 -9
- package/src/transformer.ts +0 -94
- package/src/types.ts +0 -125
- package/src/unstableInternalsExport.ts +0 -10
- package/subscription/index.d.ts +0 -1
- package/subscription/index.js +0 -1
- package/unstableInternalsExport/index.d.ts +0 -1
- package/unstableInternalsExport/index.js +0 -1
- /package/dist/{http → unstable-core-do-not-import/http}/batchStreamFormatter.d.ts +0 -0
- /package/dist/{batchStreamFormatter-93cdcdd4.js → unstable-core-do-not-import/http/batchStreamFormatter.js} +0 -0
- /package/dist/{rpc → unstable-core-do-not-import/rpc}/parseTRPCMessage.d.ts +0 -0
- /package/src/{shared/createProxy/index.ts → unstable-core-do-not-import/createProxy.ts} +0 -0
- /package/src/{http → unstable-core-do-not-import/http}/batchStreamFormatter.ts +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { inferObservableValue } from '../../observable';
|
|
2
|
+
import type {
|
|
3
|
+
AnyProcedure,
|
|
4
|
+
inferProcedureInput,
|
|
5
|
+
inferProcedureOutput,
|
|
6
|
+
} from '../procedure';
|
|
7
|
+
import type { AnyRouter, RouterRecord } from '../router';
|
|
8
|
+
import type {
|
|
9
|
+
AnyClientTypes,
|
|
10
|
+
inferClientTypes,
|
|
11
|
+
InferrableClientTypes,
|
|
12
|
+
} from './inferrable';
|
|
13
|
+
import type { Serialize } from './serialize';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export type inferTransformedProcedureOutput<
|
|
20
|
+
TInferrable extends InferrableClientTypes,
|
|
21
|
+
TProcedure extends AnyProcedure,
|
|
22
|
+
> = inferClientTypes<TInferrable>['transformer'] extends false
|
|
23
|
+
? Serialize<inferProcedureOutput<TProcedure>>
|
|
24
|
+
: inferProcedureOutput<TProcedure>;
|
|
25
|
+
/** @internal */
|
|
26
|
+
|
|
27
|
+
export type inferTransformedSubscriptionOutput<
|
|
28
|
+
TInferrable extends InferrableClientTypes,
|
|
29
|
+
TProcedure extends AnyProcedure,
|
|
30
|
+
> = inferClientTypes<TInferrable>['transformer'] extends false
|
|
31
|
+
? Serialize<inferObservableValue<inferProcedureOutput<TProcedure>>>
|
|
32
|
+
: inferObservableValue<inferProcedureOutput<TProcedure>>;
|
|
33
|
+
|
|
34
|
+
export type GetInferenceHelpers<
|
|
35
|
+
TType extends 'input' | 'output',
|
|
36
|
+
TRoot extends AnyClientTypes,
|
|
37
|
+
TRecord extends RouterRecord,
|
|
38
|
+
> = {
|
|
39
|
+
[TKey in keyof TRecord]: TRecord[TKey] extends infer $Value
|
|
40
|
+
? $Value extends RouterRecord
|
|
41
|
+
? GetInferenceHelpers<TType, TRoot, $Value>
|
|
42
|
+
: $Value extends AnyProcedure
|
|
43
|
+
? TType extends 'input'
|
|
44
|
+
? inferProcedureInput<$Value>
|
|
45
|
+
: inferTransformedProcedureOutput<TRoot, $Value>
|
|
46
|
+
: never
|
|
47
|
+
: never;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export type inferRouterInputs<TRouter extends AnyRouter> = GetInferenceHelpers<
|
|
51
|
+
'input',
|
|
52
|
+
TRouter['_def']['_config']['$types'],
|
|
53
|
+
TRouter['_def']['record']
|
|
54
|
+
>;
|
|
55
|
+
|
|
56
|
+
export type inferRouterOutputs<TRouter extends AnyRouter> = GetInferenceHelpers<
|
|
57
|
+
'output',
|
|
58
|
+
TRouter['_def']['_config']['$types'],
|
|
59
|
+
TRouter['_def']['record']
|
|
60
|
+
>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { AnyRootTypes } from '../rootConfig';
|
|
2
|
+
|
|
3
|
+
export type AnyClientTypes = Pick<AnyRootTypes, 'errorShape' | 'transformer'>;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Result of `initTRPC.create()`
|
|
7
|
+
*/
|
|
8
|
+
type InitLike = {
|
|
9
|
+
_config: {
|
|
10
|
+
$types: AnyClientTypes;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Result of `initTRPC.create().router()`
|
|
16
|
+
*/
|
|
17
|
+
type RouterLike = {
|
|
18
|
+
_def: InitLike;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Result of `initTRPC.create()._config`
|
|
23
|
+
*/
|
|
24
|
+
type RootConfigLike = {
|
|
25
|
+
$types: AnyClientTypes;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Anything that can be inferred to the root config types needed for a TRPC client
|
|
30
|
+
*/
|
|
31
|
+
export type InferrableClientTypes =
|
|
32
|
+
| RouterLike
|
|
33
|
+
| InitLike
|
|
34
|
+
| RootConfigLike
|
|
35
|
+
| AnyClientTypes;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Infer the root types from a InferrableClientTypes
|
|
39
|
+
*/
|
|
40
|
+
export type inferClientTypes<TInferrable extends InferrableClientTypes> =
|
|
41
|
+
TInferrable extends AnyClientTypes
|
|
42
|
+
? TInferrable
|
|
43
|
+
: TInferrable extends RootConfigLike
|
|
44
|
+
? TInferrable['$types']
|
|
45
|
+
: TInferrable extends InitLike
|
|
46
|
+
? TInferrable['_config']['$types']
|
|
47
|
+
: TInferrable extends RouterLike
|
|
48
|
+
? TInferrable['_def']['_config']['$types']
|
|
49
|
+
: never;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
+
import type { Simplify, WithoutIndexSignature } from '../types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @link https://github.com/remix-run/remix/blob/2248669ed59fd716e267ea41df5d665d4781f4a9/packages/remix-server-runtime/serialize.ts
|
|
6
|
+
*/
|
|
7
|
+
type JsonPrimitive = boolean | number | string | null;
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
9
|
+
type NonJsonPrimitive = Function | symbol | undefined;
|
|
10
|
+
/*
|
|
11
|
+
* `any` is the only type that can let you equate `0` with `1`
|
|
12
|
+
* See https://stackoverflow.com/a/49928360/1490091
|
|
13
|
+
*/
|
|
14
|
+
type IsAny<T> = 0 extends T & 1 ? true : false;
|
|
15
|
+
|
|
16
|
+
// `undefined` is a weird one that's technically not valid JSON,
|
|
17
|
+
// but the return value of `JSON.parse` can be `undefined` so we
|
|
18
|
+
// support it as both a Primitive and a NonJsonPrimitive
|
|
19
|
+
type JsonReturnable = JsonPrimitive | undefined;
|
|
20
|
+
|
|
21
|
+
type IsRecord<T extends object> = keyof WithoutIndexSignature<T> extends never
|
|
22
|
+
? true
|
|
23
|
+
: false;
|
|
24
|
+
|
|
25
|
+
/* prettier-ignore */
|
|
26
|
+
export type Serialize<T> =
|
|
27
|
+
IsAny<T> extends true ? any :
|
|
28
|
+
unknown extends T ? unknown :
|
|
29
|
+
T extends JsonReturnable ? T :
|
|
30
|
+
T extends Map<any, any> | Set<any> ? object :
|
|
31
|
+
T extends NonJsonPrimitive ? never :
|
|
32
|
+
T extends { toJSON(): infer U } ? U :
|
|
33
|
+
T extends [] ? [] :
|
|
34
|
+
T extends [unknown, ...unknown[]] ? SerializeTuple<T> :
|
|
35
|
+
T extends readonly (infer U)[] ? (U extends NonJsonPrimitive ? null : Serialize<U>)[] :
|
|
36
|
+
T extends object ?
|
|
37
|
+
IsRecord<T> extends true ? Record<keyof T, Serialize<T[keyof T]>> :
|
|
38
|
+
Simplify<SerializeObject<UndefinedToOptional<T>>> :
|
|
39
|
+
never;
|
|
40
|
+
|
|
41
|
+
/** JSON serialize [tuples](https://www.typescriptlang.org/docs/handbook/2/objects.html#tuple-types) */
|
|
42
|
+
type SerializeTuple<T extends [unknown, ...unknown[]]> = {
|
|
43
|
+
[K in keyof T]: T[K] extends NonJsonPrimitive ? null : Serialize<T[K]>;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// prettier-ignore
|
|
47
|
+
type SerializeObjectKey<T extends Record<any, any>, K> =
|
|
48
|
+
// never include entries where the key is a symbol
|
|
49
|
+
K extends symbol ? never :
|
|
50
|
+
// always include entries where the value is any
|
|
51
|
+
IsAny<T[K]> extends true ? K :
|
|
52
|
+
// always include entries where the value is unknown
|
|
53
|
+
unknown extends T[K] ? K :
|
|
54
|
+
// never include entries where the value is a non-JSON primitive
|
|
55
|
+
T[K] extends NonJsonPrimitive ? never :
|
|
56
|
+
// otherwise serialize the value
|
|
57
|
+
K;
|
|
58
|
+
/**
|
|
59
|
+
* JSON serialize objects (not including arrays) and classes
|
|
60
|
+
* @internal
|
|
61
|
+
**/
|
|
62
|
+
export type SerializeObject<T extends object> = {
|
|
63
|
+
[K in keyof T as SerializeObjectKey<T, K>]: Serialize<T[K]>;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Extract keys from T where the value dosen't extend undefined
|
|
68
|
+
* Note: Can't parse IndexSignature or Record types
|
|
69
|
+
*/
|
|
70
|
+
type FilterDefinedKeys<T extends object> = Exclude<
|
|
71
|
+
{
|
|
72
|
+
[K in keyof T]: undefined extends T[K] ? never : K;
|
|
73
|
+
}[keyof T],
|
|
74
|
+
undefined
|
|
75
|
+
>;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Get value of exactOptionalPropertyTypes config
|
|
79
|
+
*/
|
|
80
|
+
type ExactOptionalPropertyTypes = { a?: 0 | undefined } extends {
|
|
81
|
+
a?: 0;
|
|
82
|
+
}
|
|
83
|
+
? false
|
|
84
|
+
: true;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Check if T has an index signature
|
|
88
|
+
*/
|
|
89
|
+
type HasIndexSignature<T extends object> = string extends keyof T
|
|
90
|
+
? true
|
|
91
|
+
: false;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* { [key: string]: number | undefined } --> { [key: string]: number }
|
|
95
|
+
*/
|
|
96
|
+
type HandleIndexSignature<T extends object> = {
|
|
97
|
+
[K in keyof Omit<T, keyof WithoutIndexSignature<T>>]: Exclude<
|
|
98
|
+
T[K],
|
|
99
|
+
undefined
|
|
100
|
+
>;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* { a: number | undefined } --> { a?: number }
|
|
105
|
+
* Note: Can't parse IndexSignature or Record types
|
|
106
|
+
*/
|
|
107
|
+
type HandleUndefined<T extends object> = {
|
|
108
|
+
[K in keyof Omit<T, FilterDefinedKeys<T>>]?: Exclude<T[K], undefined>;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Handle undefined, index signature and records
|
|
113
|
+
*/
|
|
114
|
+
type UndefinedToOptional<T extends object> =
|
|
115
|
+
// Property is not a union with `undefined`, keep as-is
|
|
116
|
+
Pick<WithoutIndexSignature<T>, FilterDefinedKeys<WithoutIndexSignature<T>>> &
|
|
117
|
+
// If following is true, don't merge undefined or optional into index signature if any in T
|
|
118
|
+
(ExactOptionalPropertyTypes extends true
|
|
119
|
+
? HandleIndexSignature<T> & HandleUndefined<WithoutIndexSignature<T>>
|
|
120
|
+
: HasIndexSignature<T> extends true
|
|
121
|
+
? HandleIndexSignature<T>
|
|
122
|
+
: HandleUndefined<T>);
|
|
@@ -1,33 +1,10 @@
|
|
|
1
|
-
import { TRPC_ERROR_CODE_KEY } from '../rpc/codes';
|
|
2
|
-
import { isObject } from '
|
|
3
|
-
|
|
4
|
-
export function getTRPCErrorFromUnknown(cause: unknown): TRPCError {
|
|
5
|
-
if (cause instanceof TRPCError) {
|
|
6
|
-
return cause;
|
|
7
|
-
}
|
|
8
|
-
if (cause instanceof Error && cause.name === 'TRPCError') {
|
|
9
|
-
// https://github.com/trpc/trpc/pull/4848
|
|
10
|
-
return cause as TRPCError;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const trpcError = new TRPCError({
|
|
14
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
15
|
-
cause,
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
// Inherit stack from error
|
|
19
|
-
if (cause instanceof Error && cause.stack) {
|
|
20
|
-
trpcError.stack = cause.stack;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return trpcError;
|
|
24
|
-
}
|
|
1
|
+
import type { TRPC_ERROR_CODE_KEY } from '../rpc/codes';
|
|
2
|
+
import { isObject } from '../utils';
|
|
25
3
|
|
|
26
4
|
class UnknownCauseError extends Error {
|
|
27
5
|
[key: string]: unknown;
|
|
28
6
|
}
|
|
29
|
-
|
|
30
|
-
function getCauseFromUnknown(cause: unknown): Error | undefined {
|
|
7
|
+
export function getCauseFromUnknown(cause: unknown): Error | undefined {
|
|
31
8
|
if (cause instanceof Error) {
|
|
32
9
|
return cause;
|
|
33
10
|
}
|
|
@@ -54,8 +31,32 @@ function getCauseFromUnknown(cause: unknown): Error | undefined {
|
|
|
54
31
|
return undefined;
|
|
55
32
|
}
|
|
56
33
|
|
|
34
|
+
export function getTRPCErrorFromUnknown(cause: unknown): TRPCError {
|
|
35
|
+
if (cause instanceof TRPCError) {
|
|
36
|
+
return cause;
|
|
37
|
+
}
|
|
38
|
+
if (cause instanceof Error && cause.name === 'TRPCError') {
|
|
39
|
+
// https://github.com/trpc/trpc/pull/4848
|
|
40
|
+
return cause as TRPCError;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const trpcError = new TRPCError({
|
|
44
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
45
|
+
cause,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// Inherit stack from error
|
|
49
|
+
if (cause instanceof Error && cause.stack) {
|
|
50
|
+
trpcError.stack = cause.stack;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return trpcError;
|
|
54
|
+
}
|
|
55
|
+
|
|
57
56
|
export class TRPCError extends Error {
|
|
58
|
-
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
58
|
+
// @ts-ignore override doesn't work in all environments due to "This member cannot have an 'override' modifier because it is not declared in the base class 'Error'"
|
|
59
|
+
public override readonly cause?: Error;
|
|
59
60
|
public readonly code;
|
|
60
61
|
|
|
61
62
|
constructor(opts: {
|
|
@@ -72,5 +73,10 @@ export class TRPCError extends Error {
|
|
|
72
73
|
|
|
73
74
|
this.code = opts.code;
|
|
74
75
|
this.name = 'TRPCError';
|
|
76
|
+
|
|
77
|
+
if (!this.cause) {
|
|
78
|
+
// < ES2022 / < Node 16.9.0 compatability
|
|
79
|
+
this.cause = cause;
|
|
80
|
+
}
|
|
75
81
|
}
|
|
76
82
|
}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { ProcedureType } from '../
|
|
2
|
-
import {
|
|
1
|
+
import type { ProcedureType } from '../procedure';
|
|
2
|
+
import type {
|
|
3
3
|
TRPC_ERROR_CODE_KEY,
|
|
4
4
|
TRPC_ERROR_CODE_NUMBER,
|
|
5
5
|
TRPCErrorShape,
|
|
6
6
|
} from '../rpc';
|
|
7
|
-
import { TRPCError } from './TRPCError';
|
|
7
|
+
import type { TRPCError } from './TRPCError';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
|
-
export type ErrorFormatter<TContext, TShape extends TRPCErrorShape
|
|
13
|
-
error,
|
|
14
|
-
}: {
|
|
12
|
+
export type ErrorFormatter<TContext, TShape extends TRPCErrorShape> = (opts: {
|
|
15
13
|
error: TRPCError;
|
|
16
14
|
type: ProcedureType | 'unknown';
|
|
17
15
|
path: string | undefined;
|
|
@@ -20,35 +18,30 @@ export type ErrorFormatter<TContext, TShape extends TRPCErrorShape<number>> = ({
|
|
|
20
18
|
shape: DefaultErrorShape;
|
|
21
19
|
}) => TShape;
|
|
22
20
|
|
|
23
|
-
export type ErrorFormatterShape<TType> = TType extends ErrorFormatter<
|
|
24
|
-
any,
|
|
25
|
-
infer TShape
|
|
26
|
-
>
|
|
27
|
-
? TShape
|
|
28
|
-
: DefaultErrorShape;
|
|
29
21
|
/**
|
|
30
22
|
* @internal
|
|
31
23
|
*/
|
|
32
24
|
export type DefaultErrorData = {
|
|
33
25
|
code: TRPC_ERROR_CODE_KEY;
|
|
34
26
|
httpStatus: number;
|
|
27
|
+
/**
|
|
28
|
+
* Path to the procedure that threw the error
|
|
29
|
+
*/
|
|
35
30
|
path?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Stack trace of the error (only in development)
|
|
33
|
+
*/
|
|
36
34
|
stack?: string;
|
|
37
35
|
};
|
|
38
36
|
|
|
39
37
|
/**
|
|
40
38
|
* @internal
|
|
41
39
|
*/
|
|
42
|
-
export interface DefaultErrorShape
|
|
43
|
-
extends TRPCErrorShape<TRPC_ERROR_CODE_NUMBER, DefaultErrorData> {
|
|
40
|
+
export interface DefaultErrorShape extends TRPCErrorShape<DefaultErrorData> {
|
|
44
41
|
message: string;
|
|
45
42
|
code: TRPC_ERROR_CODE_NUMBER;
|
|
46
43
|
}
|
|
47
44
|
|
|
48
|
-
export const defaultFormatter: ErrorFormatter<any, any> = ({
|
|
49
|
-
shape,
|
|
50
|
-
}: {
|
|
51
|
-
shape: DefaultErrorShape;
|
|
52
|
-
}) => {
|
|
45
|
+
export const defaultFormatter: ErrorFormatter<any, any> = ({ shape }) => {
|
|
53
46
|
return shape;
|
|
54
47
|
};
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { ProcedureType } from '../core';
|
|
2
|
-
import { AnyRootConfig } from '../core/internals/config';
|
|
3
|
-
import { DefaultErrorShape } from '../error/formatter';
|
|
4
|
-
import { TRPCError } from '../error/TRPCError';
|
|
5
1
|
import { getHTTPStatusCodeFromError } from '../http/getHTTPStatusCode';
|
|
2
|
+
import type { ProcedureType } from '../procedure';
|
|
3
|
+
import type { AnyRootTypes, RootConfig } from '../rootConfig';
|
|
6
4
|
import { TRPC_ERROR_CODES_BY_KEY } from '../rpc';
|
|
5
|
+
import type { DefaultErrorShape } from './formatter';
|
|
6
|
+
import type { TRPCError } from './TRPCError';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
|
-
export function getErrorShape<
|
|
12
|
-
config:
|
|
11
|
+
export function getErrorShape<TRoot extends AnyRootTypes>(opts: {
|
|
12
|
+
config: RootConfig<TRoot>;
|
|
13
13
|
error: TRPCError;
|
|
14
14
|
type: ProcedureType | 'unknown';
|
|
15
15
|
path: string | undefined;
|
|
16
16
|
input: unknown;
|
|
17
|
-
ctx:
|
|
18
|
-
}):
|
|
17
|
+
ctx: TRoot['ctx'] | undefined;
|
|
18
|
+
}): TRoot['errorShape'] {
|
|
19
19
|
const { path, error, config } = opts;
|
|
20
20
|
const { code } = opts.error;
|
|
21
21
|
const shape: DefaultErrorShape = {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
|
-
import { AnyRouter } from '../core';
|
|
3
2
|
import { TRPCError } from '../error/TRPCError';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import type { AnyRouter } from '../router';
|
|
4
|
+
import type { CombinedDataTransformer } from '../transformer';
|
|
5
|
+
import type { MaybePromise } from '../types';
|
|
6
|
+
import type { HTTPRequest } from './types';
|
|
7
7
|
|
|
8
8
|
type GetInputs = (opts: {
|
|
9
9
|
req: HTTPRequest;
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { TRPC_ERROR_CODES_BY_KEY, TRPCResponse } from '../rpc';
|
|
1
|
+
import type { DefaultErrorData } from '../error/formatter';
|
|
2
|
+
import type { TRPCError } from '../error/TRPCError';
|
|
3
|
+
import type { TRPC_ERROR_CODES_BY_KEY, TRPCResponse } from '../rpc';
|
|
4
|
+
import { TRPC_ERROR_CODES_BY_NUMBER } from '../rpc';
|
|
4
5
|
|
|
5
|
-
export const TRPC_ERROR_CODES_BY_NUMBER = invert(TRPC_ERROR_CODES_BY_KEY);
|
|
6
|
-
type ValueOf<TType> = TType[keyof TType];
|
|
7
|
-
|
|
8
|
-
export type TRPC_ERROR_CODE_NUMBER = ValueOf<typeof TRPC_ERROR_CODES_BY_KEY>;
|
|
9
6
|
const JSONRPC2_TO_HTTP_CODE: Record<
|
|
10
7
|
keyof typeof TRPC_ERROR_CODES_BY_KEY,
|
|
11
8
|
number
|
|
@@ -20,6 +17,7 @@ const JSONRPC2_TO_HTTP_CODE: Record<
|
|
|
20
17
|
CONFLICT: 409,
|
|
21
18
|
PRECONDITION_FAILED: 412,
|
|
22
19
|
PAYLOAD_TOO_LARGE: 413,
|
|
20
|
+
UNSUPPORTED_MEDIA_TYPE: 415,
|
|
23
21
|
UNPROCESSABLE_CONTENT: 422,
|
|
24
22
|
TOO_MANY_REQUESTS: 429,
|
|
25
23
|
CLIENT_CLOSED_REQUEST: 499,
|
|
@@ -36,7 +34,9 @@ export function getHTTPStatusCode(json: TRPCResponse | TRPCResponse[]) {
|
|
|
36
34
|
const httpStatuses = new Set(
|
|
37
35
|
arr.map((res) => {
|
|
38
36
|
if ('error' in res) {
|
|
39
|
-
const data = res.error.data
|
|
37
|
+
const data = res.error.data as
|
|
38
|
+
| Record<string, unknown>
|
|
39
|
+
| DefaultErrorData;
|
|
40
40
|
if (typeof data.httpStatus === 'number') {
|
|
41
41
|
return data.httpStatus;
|
|
42
42
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export {
|
|
2
|
+
getHTTPStatusCode,
|
|
3
|
+
getHTTPStatusCodeFromError,
|
|
4
|
+
} from './getHTTPStatusCode';
|
|
5
|
+
export { resolveHTTPResponse } from './resolveHTTPResponse';
|
|
6
|
+
export type {
|
|
7
|
+
BaseHandlerOptions,
|
|
8
|
+
HTTPBaseHandlerOptions,
|
|
9
|
+
HTTPHeaders,
|
|
10
|
+
HTTPRequest,
|
|
11
|
+
HTTPResponse,
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use `HTTPErrorHandler` instead
|
|
14
|
+
*/
|
|
15
|
+
HTTPErrorHandler as OnErrorFunction,
|
|
16
|
+
HTTPErrorHandler,
|
|
17
|
+
ProcedureCall,
|
|
18
|
+
ResolveHTTPRequestOptionsContextFn,
|
|
19
|
+
ResponseChunk,
|
|
20
|
+
ResponseMeta,
|
|
21
|
+
ResponseMetaFn,
|
|
22
|
+
TRPCRequestInfo,
|
|
23
|
+
} from './types';
|
|
24
|
+
|
|
25
|
+
export { getBatchStreamFormatter } from './batchStreamFormatter';
|
|
26
|
+
export type { BaseContentTypeHandler, BodyResult } from './contentType';
|
|
27
|
+
export { getJsonContentTypeInputs } from './contentType';
|
|
28
|
+
|
|
29
|
+
export { toURL } from './toURL';
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getErrorShape } from '../error/getErrorShape';
|
|
2
|
+
import { getTRPCErrorFromUnknown, TRPCError } from '../error/TRPCError';
|
|
3
|
+
import type { ProcedureType } from '../procedure';
|
|
4
|
+
import type {
|
|
2
5
|
AnyRouter,
|
|
3
|
-
callProcedure,
|
|
4
6
|
inferRouterContext,
|
|
5
7
|
inferRouterError,
|
|
6
|
-
|
|
7
|
-
} from '../
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
BaseContentTypeHandler,
|
|
15
|
-
getJsonContentTypeInputs,
|
|
16
|
-
} from './contentType';
|
|
8
|
+
} from '../router';
|
|
9
|
+
import { callProcedure } from '../router';
|
|
10
|
+
import type { TRPCResponse } from '../rpc';
|
|
11
|
+
import { transformTRPCResponse } from '../transformer';
|
|
12
|
+
import type { Maybe } from '../types';
|
|
13
|
+
import type { BaseContentTypeHandler } from './contentType';
|
|
14
|
+
import { getJsonContentTypeInputs } from './contentType';
|
|
17
15
|
import { getHTTPStatusCode } from './getHTTPStatusCode';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
16
|
+
import type {
|
|
20
17
|
HTTPBaseHandlerOptions,
|
|
18
|
+
HTTPHeaders,
|
|
21
19
|
HTTPRequest,
|
|
20
|
+
HTTPResponse,
|
|
22
21
|
ResolveHTTPRequestOptionsContextFn,
|
|
22
|
+
ResponseChunk,
|
|
23
23
|
TRPCRequestInfo,
|
|
24
24
|
} from './types';
|
|
25
25
|
|
|
@@ -132,51 +132,6 @@ function initResponse<
|
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
async function inputToProcedureCall<
|
|
136
|
-
TRouter extends AnyRouter,
|
|
137
|
-
TRequest extends HTTPRequest,
|
|
138
|
-
>(procedureOpts: {
|
|
139
|
-
opts: Pick<
|
|
140
|
-
ResolveHTTPRequestOptions<TRouter, TRequest>,
|
|
141
|
-
'onError' | 'req' | 'router'
|
|
142
|
-
>;
|
|
143
|
-
ctx: inferRouterContext<TRouter> | undefined;
|
|
144
|
-
type: 'mutation' | 'query';
|
|
145
|
-
input: unknown;
|
|
146
|
-
path: string;
|
|
147
|
-
}): Promise<TRPCResponse<unknown, inferRouterError<TRouter>>> {
|
|
148
|
-
const { opts, ctx, type, input, path } = procedureOpts;
|
|
149
|
-
try {
|
|
150
|
-
const data = await callProcedure({
|
|
151
|
-
procedures: opts.router._def.procedures,
|
|
152
|
-
path,
|
|
153
|
-
getRawInput: async () => input,
|
|
154
|
-
ctx,
|
|
155
|
-
type,
|
|
156
|
-
});
|
|
157
|
-
return {
|
|
158
|
-
result: {
|
|
159
|
-
data,
|
|
160
|
-
},
|
|
161
|
-
};
|
|
162
|
-
} catch (cause) {
|
|
163
|
-
const error = getTRPCErrorFromUnknown(cause);
|
|
164
|
-
|
|
165
|
-
opts.onError?.({ error, path, input, ctx, type: type, req: opts.req });
|
|
166
|
-
|
|
167
|
-
return {
|
|
168
|
-
error: getErrorShape({
|
|
169
|
-
config: opts.router._def._config,
|
|
170
|
-
error,
|
|
171
|
-
type,
|
|
172
|
-
path,
|
|
173
|
-
input,
|
|
174
|
-
ctx,
|
|
175
|
-
}),
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
135
|
function caughtErrorToData<
|
|
181
136
|
TRouter extends AnyRouter,
|
|
182
137
|
TRequest extends HTTPRequest,
|
|
@@ -278,7 +233,9 @@ export async function resolveHTTPResponse<
|
|
|
278
233
|
}
|
|
279
234
|
const contentTypeHandler =
|
|
280
235
|
opts.contentTypeHandler ?? fallbackContentTypeHandler;
|
|
281
|
-
const
|
|
236
|
+
const allowBatching = opts.allowBatching ?? opts.batching?.enabled ?? true;
|
|
237
|
+
const allowMethodOverride = opts.allowMethodOverride ?? false;
|
|
238
|
+
|
|
282
239
|
const type =
|
|
283
240
|
HTTP_METHOD_PROCEDURE_TYPE_MAP[req.method] ?? ('unknown' as const);
|
|
284
241
|
let ctx: inferRouterContext<TRouter> | undefined = undefined;
|
|
@@ -295,8 +252,11 @@ export async function resolveHTTPResponse<
|
|
|
295
252
|
if (opts.error) {
|
|
296
253
|
throw opts.error;
|
|
297
254
|
}
|
|
298
|
-
if (isBatchCall && !
|
|
299
|
-
throw new
|
|
255
|
+
if (isBatchCall && !allowBatching) {
|
|
256
|
+
throw new TRPCError({
|
|
257
|
+
code: 'BAD_REQUEST',
|
|
258
|
+
message: `Batching is not enabled on the server`,
|
|
259
|
+
});
|
|
300
260
|
}
|
|
301
261
|
/* istanbul ignore if -- @preserve */
|
|
302
262
|
if (type === 'subscription') {
|
|
@@ -331,9 +291,52 @@ export async function resolveHTTPResponse<
|
|
|
331
291
|
})),
|
|
332
292
|
};
|
|
333
293
|
ctx = await opts.createContext({ info });
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
294
|
+
|
|
295
|
+
const errors: TRPCError[] = [];
|
|
296
|
+
|
|
297
|
+
const promises: Promise<
|
|
298
|
+
TRPCResponse<unknown, inferRouterError<TRouter>>
|
|
299
|
+
>[] = paths.map(async (path, index) => {
|
|
300
|
+
const input = inputs[index];
|
|
301
|
+
try {
|
|
302
|
+
const data = await callProcedure({
|
|
303
|
+
procedures: opts.router._def.procedures,
|
|
304
|
+
path,
|
|
305
|
+
getRawInput: async () => input,
|
|
306
|
+
ctx,
|
|
307
|
+
type,
|
|
308
|
+
allowMethodOverride,
|
|
309
|
+
});
|
|
310
|
+
return {
|
|
311
|
+
result: {
|
|
312
|
+
data,
|
|
313
|
+
},
|
|
314
|
+
};
|
|
315
|
+
} catch (cause) {
|
|
316
|
+
const error = getTRPCErrorFromUnknown(cause);
|
|
317
|
+
errors.push(error);
|
|
318
|
+
|
|
319
|
+
opts.onError?.({
|
|
320
|
+
error,
|
|
321
|
+
path,
|
|
322
|
+
input,
|
|
323
|
+
ctx,
|
|
324
|
+
type: type,
|
|
325
|
+
req: opts.req,
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
return {
|
|
329
|
+
error: getErrorShape({
|
|
330
|
+
config: opts.router._def._config,
|
|
331
|
+
error,
|
|
332
|
+
type,
|
|
333
|
+
path,
|
|
334
|
+
input,
|
|
335
|
+
ctx,
|
|
336
|
+
}),
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
});
|
|
337
340
|
|
|
338
341
|
if (!isStreamCall) {
|
|
339
342
|
/**
|
|
@@ -344,9 +347,6 @@ export async function resolveHTTPResponse<
|
|
|
344
347
|
*/
|
|
345
348
|
|
|
346
349
|
const untransformedJSON = await Promise.all(promises);
|
|
347
|
-
const errors = untransformedJSON.flatMap((response) =>
|
|
348
|
-
'error' in response ? [response.error] : [],
|
|
349
|
-
);
|
|
350
350
|
|
|
351
351
|
const headResponse = initResponse({
|
|
352
352
|
ctx,
|