@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
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
|
|
3
|
-
import { UploadHandler } from './uploadHandler';
|
|
2
|
+
import type { UploadHandler } from './uploadHandler';
|
|
4
3
|
export declare function readableStreamToString(stream: ReadableStream<Uint8Array>, encoding?: BufferEncoding): Promise<string>;
|
|
5
4
|
export type FileUploadHandlerFilterArgs = {
|
|
6
5
|
filename: string;
|
|
@@ -46,6 +45,9 @@ export type FileUploadHandlerOptions = {
|
|
|
46
45
|
filter?(args: FileUploadHandlerFilterArgs): Promise<boolean> | boolean;
|
|
47
46
|
};
|
|
48
47
|
export declare function createFileUploadHandler({ directory, avoidFileConflicts, file, filter, maxPartSize, }?: FileUploadHandlerOptions): UploadHandler;
|
|
48
|
+
type NodeJSReadableStreamEsque = {
|
|
49
|
+
on(eventName: string | symbol, listener: (...args: any[]) => void): NodeJSReadableStreamEsque;
|
|
50
|
+
};
|
|
49
51
|
export declare class NodeOnDiskFile {
|
|
50
52
|
private filepath;
|
|
51
53
|
type: string;
|
|
@@ -61,10 +63,11 @@ export declare class NodeOnDiskFile {
|
|
|
61
63
|
slice(start?: number, end?: number, type?: string): NodeOnDiskFile;
|
|
62
64
|
arrayBuffer(): Promise<ArrayBuffer>;
|
|
63
65
|
stream(): ReadableStream<any>;
|
|
64
|
-
stream():
|
|
66
|
+
stream(): NodeJSReadableStreamEsque;
|
|
65
67
|
text(): Promise<string>;
|
|
66
68
|
readonly [Symbol.toStringTag] = "File";
|
|
67
69
|
remove(): Promise<void>;
|
|
68
70
|
getFilePath(): string;
|
|
69
71
|
}
|
|
72
|
+
export {};
|
|
70
73
|
//# sourceMappingURL=fileUploadHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUploadHandler.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/node-http/content-type/form-data/fileUploadHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fileUploadHandler.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/node-http/content-type/form-data/fileUploadHandler.ts"],"names":[],"mappings":";AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,QAAQ,CAAC,EAAE,cAAc,mBAoB1B;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAC1C,IAAI,EAAE,iCAAiC,KACpC,MAAM,GAAG,SAAS,CAAC;AAExB,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,6BAA6B,GAAG,MAAM,CAAC;IACnD;;;OAGG;IACH,IAAI,CAAC,EAAE,6BAA6B,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,MAAM,CAAC,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACxE,CAAC;AA4BF,wBAAgB,uBAAuB,CAAC,EACtC,SAAoB,EACpB,kBAAyB,EACzB,IAA8B,EAC9B,MAAM,EACN,WAAqB,GACtB,GAAE,wBAA6B,GAAG,aAAa,CAyD/C;AACD,KAAK,yBAAyB,GAAG;IAC/B,EAAE,CACA,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GACjC,yBAAyB,CAAC;CAC9B,CAAC;AAEF,qBAAa,cAAc;IAMvB,OAAO,CAAC,QAAQ;IACT,IAAI,EAAE,MAAM;IACnB,OAAO,CAAC,MAAM,CAAC;IAPjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,SAAK;IACjB,kBAAkB,SAAM;gBAGd,QAAQ,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACX,MAAM,CAAC;eAAW,MAAM;aAAO,MAAM;iBAAE;IAKjD,IAAI,IAAI,IAAI,MAAM,CASjB;IAED,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc;IAkB5D,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAkBzC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC;IAC7B,MAAM,IAAI,yBAAyB;IAU7B,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,SAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU;IAE9C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,WAAW,IAAI,MAAM;CAGtB"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var node_crypto = require('node:crypto');
|
|
4
|
+
var node_fs = require('node:fs');
|
|
5
|
+
var fs = require('node:fs/promises');
|
|
6
|
+
var node_os = require('node:os');
|
|
7
|
+
var node_path = require('node:path');
|
|
8
|
+
var node_stream = require('node:stream');
|
|
9
|
+
var node_util = require('node:util');
|
|
10
|
+
var streamSlice = require('./streamSlice.js');
|
|
11
|
+
var uploadHandler = require('./uploadHandler.js');
|
|
12
|
+
|
|
13
|
+
async function readableStreamToString(stream, encoding) {
|
|
14
|
+
const reader = stream.getReader();
|
|
15
|
+
const chunks = [];
|
|
16
|
+
async function read() {
|
|
17
|
+
const { done , value } = await reader.read();
|
|
18
|
+
if (done) {
|
|
19
|
+
return;
|
|
20
|
+
} else if (value) {
|
|
21
|
+
chunks.push(value);
|
|
22
|
+
}
|
|
23
|
+
await read();
|
|
24
|
+
}
|
|
25
|
+
await read();
|
|
26
|
+
return Buffer.concat(chunks).toString(encoding);
|
|
27
|
+
}
|
|
28
|
+
const defaultFilePathResolver = ({ filename , })=>{
|
|
29
|
+
const ext = filename ? node_path.extname(filename) : '';
|
|
30
|
+
return 'upload_' + node_crypto.randomBytes(4).readUInt32LE(0) + ext;
|
|
31
|
+
};
|
|
32
|
+
async function uniqueFile(filepath) {
|
|
33
|
+
const ext = node_path.extname(filepath);
|
|
34
|
+
let uniqueFilepath = filepath;
|
|
35
|
+
for(let i = 1; await fs.stat(uniqueFilepath).then(()=>true).catch(()=>false); i++){
|
|
36
|
+
uniqueFilepath = (ext ? filepath.slice(0, -ext.length) : filepath) + `-${new Date().getTime()}${ext}`;
|
|
37
|
+
}
|
|
38
|
+
return uniqueFilepath;
|
|
39
|
+
}
|
|
40
|
+
function createFileUploadHandler({ directory =node_os.tmpdir() , avoidFileConflicts =true , file =defaultFilePathResolver , filter , maxPartSize =3000000 } = {}) {
|
|
41
|
+
return async ({ name , filename , contentType , data })=>{
|
|
42
|
+
if (!filename || filter && !await filter({
|
|
43
|
+
name,
|
|
44
|
+
filename,
|
|
45
|
+
contentType
|
|
46
|
+
})) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const dir = typeof directory === 'string' ? directory : directory({
|
|
50
|
+
name,
|
|
51
|
+
filename,
|
|
52
|
+
contentType
|
|
53
|
+
});
|
|
54
|
+
if (!dir) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
const filedir = node_path.resolve(dir);
|
|
58
|
+
const path = typeof file === 'string' ? file : file({
|
|
59
|
+
name,
|
|
60
|
+
filename,
|
|
61
|
+
contentType
|
|
62
|
+
});
|
|
63
|
+
if (!path) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
let filepath = node_path.resolve(filedir, path);
|
|
67
|
+
if (avoidFileConflicts) {
|
|
68
|
+
filepath = await uniqueFile(filepath);
|
|
69
|
+
}
|
|
70
|
+
await fs.mkdir(node_path.dirname(filepath), {
|
|
71
|
+
recursive: true
|
|
72
|
+
}).catch(()=>{});
|
|
73
|
+
const writeFileStream = node_fs.createWriteStream(filepath);
|
|
74
|
+
let size = 0;
|
|
75
|
+
let deleteFile = false;
|
|
76
|
+
try {
|
|
77
|
+
for await (const chunk of data){
|
|
78
|
+
size += chunk.byteLength;
|
|
79
|
+
if (size > maxPartSize) {
|
|
80
|
+
deleteFile = true;
|
|
81
|
+
throw new uploadHandler.MaxPartSizeExceededError(name, maxPartSize);
|
|
82
|
+
}
|
|
83
|
+
writeFileStream.write(chunk);
|
|
84
|
+
}
|
|
85
|
+
} finally{
|
|
86
|
+
writeFileStream.end();
|
|
87
|
+
await node_util.promisify(node_stream.finished)(writeFileStream);
|
|
88
|
+
if (deleteFile) {
|
|
89
|
+
await fs.rm(filepath).catch(()=>{});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return new NodeOnDiskFile(filepath, contentType);
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
let _toStringTag = Symbol.toStringTag;
|
|
96
|
+
class NodeOnDiskFile {
|
|
97
|
+
get size() {
|
|
98
|
+
const stats = node_fs.statSync(this.filepath);
|
|
99
|
+
if (this.slicer) {
|
|
100
|
+
const slice = this.slicer.end - this.slicer.start;
|
|
101
|
+
return slice < 0 ? 0 : slice > stats.size ? stats.size : slice;
|
|
102
|
+
}
|
|
103
|
+
return stats.size;
|
|
104
|
+
}
|
|
105
|
+
slice(start, end, type) {
|
|
106
|
+
if (typeof start === 'number' && start < 0) start = this.size + start;
|
|
107
|
+
if (typeof end === 'number' && end < 0) end = this.size + end;
|
|
108
|
+
const startOffset = this.slicer?.start ?? 0;
|
|
109
|
+
start = startOffset + (start ?? 0);
|
|
110
|
+
end = startOffset + (end ?? this.size);
|
|
111
|
+
return new NodeOnDiskFile(this.filepath, typeof type === 'string' ? type : this.type, {
|
|
112
|
+
start,
|
|
113
|
+
end
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
async arrayBuffer() {
|
|
117
|
+
let stream = node_fs.createReadStream(this.filepath);
|
|
118
|
+
if (this.slicer) {
|
|
119
|
+
stream = stream.pipe(streamSlice.streamSlice(this.slicer.start, this.slicer.end));
|
|
120
|
+
}
|
|
121
|
+
return new Promise((resolve, reject)=>{
|
|
122
|
+
const buf = [];
|
|
123
|
+
stream.on('data', (chunk)=>buf.push(chunk));
|
|
124
|
+
stream.on('end', ()=>{
|
|
125
|
+
resolve(Buffer.concat(buf));
|
|
126
|
+
});
|
|
127
|
+
stream.on('error', (err)=>{
|
|
128
|
+
reject(err);
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
stream() {
|
|
133
|
+
let stream = node_fs.createReadStream(this.filepath);
|
|
134
|
+
if (this.slicer) {
|
|
135
|
+
stream = stream.pipe(streamSlice.streamSlice(this.slicer.start, this.slicer.end));
|
|
136
|
+
}
|
|
137
|
+
return node_stream.Readable.toWeb(stream);
|
|
138
|
+
}
|
|
139
|
+
async text() {
|
|
140
|
+
return readableStreamToString(this.stream());
|
|
141
|
+
}
|
|
142
|
+
remove() {
|
|
143
|
+
return fs.unlink(this.filepath);
|
|
144
|
+
}
|
|
145
|
+
getFilePath() {
|
|
146
|
+
return this.filepath;
|
|
147
|
+
}
|
|
148
|
+
constructor(filepath, type, slicer){
|
|
149
|
+
this.filepath = filepath;
|
|
150
|
+
this.type = type;
|
|
151
|
+
this.slicer = slicer;
|
|
152
|
+
this.lastModified = 0;
|
|
153
|
+
this.webkitRelativePath = '';
|
|
154
|
+
this[_toStringTag] = 'File';
|
|
155
|
+
this.name = node_path.basename(filepath);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
exports.NodeOnDiskFile = NodeOnDiskFile;
|
|
160
|
+
exports.createFileUploadHandler = createFileUploadHandler;
|
|
161
|
+
exports.readableStreamToString = readableStreamToString;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { randomBytes } from 'node:crypto';
|
|
2
|
+
import { createWriteStream, statSync, createReadStream } from 'node:fs';
|
|
3
|
+
import { mkdir, rm, unlink, stat } from 'node:fs/promises';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { resolve, dirname, basename, extname } from 'node:path';
|
|
6
|
+
import { finished, Readable } from 'node:stream';
|
|
7
|
+
import { promisify } from 'node:util';
|
|
8
|
+
import { streamSlice } from './streamSlice.mjs';
|
|
9
|
+
import { MaxPartSizeExceededError } from './uploadHandler.mjs';
|
|
10
|
+
|
|
11
|
+
async function readableStreamToString(stream, encoding) {
|
|
12
|
+
const reader = stream.getReader();
|
|
13
|
+
const chunks = [];
|
|
14
|
+
async function read() {
|
|
15
|
+
const { done , value } = await reader.read();
|
|
16
|
+
if (done) {
|
|
17
|
+
return;
|
|
18
|
+
} else if (value) {
|
|
19
|
+
chunks.push(value);
|
|
20
|
+
}
|
|
21
|
+
await read();
|
|
22
|
+
}
|
|
23
|
+
await read();
|
|
24
|
+
return Buffer.concat(chunks).toString(encoding);
|
|
25
|
+
}
|
|
26
|
+
const defaultFilePathResolver = ({ filename , })=>{
|
|
27
|
+
const ext = filename ? extname(filename) : '';
|
|
28
|
+
return 'upload_' + randomBytes(4).readUInt32LE(0) + ext;
|
|
29
|
+
};
|
|
30
|
+
async function uniqueFile(filepath) {
|
|
31
|
+
const ext = extname(filepath);
|
|
32
|
+
let uniqueFilepath = filepath;
|
|
33
|
+
for(let i = 1; await stat(uniqueFilepath).then(()=>true).catch(()=>false); i++){
|
|
34
|
+
uniqueFilepath = (ext ? filepath.slice(0, -ext.length) : filepath) + `-${new Date().getTime()}${ext}`;
|
|
35
|
+
}
|
|
36
|
+
return uniqueFilepath;
|
|
37
|
+
}
|
|
38
|
+
function createFileUploadHandler({ directory =tmpdir() , avoidFileConflicts =true , file =defaultFilePathResolver , filter , maxPartSize =3000000 } = {}) {
|
|
39
|
+
return async ({ name , filename , contentType , data })=>{
|
|
40
|
+
if (!filename || filter && !await filter({
|
|
41
|
+
name,
|
|
42
|
+
filename,
|
|
43
|
+
contentType
|
|
44
|
+
})) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const dir = typeof directory === 'string' ? directory : directory({
|
|
48
|
+
name,
|
|
49
|
+
filename,
|
|
50
|
+
contentType
|
|
51
|
+
});
|
|
52
|
+
if (!dir) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
const filedir = resolve(dir);
|
|
56
|
+
const path = typeof file === 'string' ? file : file({
|
|
57
|
+
name,
|
|
58
|
+
filename,
|
|
59
|
+
contentType
|
|
60
|
+
});
|
|
61
|
+
if (!path) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
let filepath = resolve(filedir, path);
|
|
65
|
+
if (avoidFileConflicts) {
|
|
66
|
+
filepath = await uniqueFile(filepath);
|
|
67
|
+
}
|
|
68
|
+
await mkdir(dirname(filepath), {
|
|
69
|
+
recursive: true
|
|
70
|
+
}).catch(()=>{});
|
|
71
|
+
const writeFileStream = createWriteStream(filepath);
|
|
72
|
+
let size = 0;
|
|
73
|
+
let deleteFile = false;
|
|
74
|
+
try {
|
|
75
|
+
for await (const chunk of data){
|
|
76
|
+
size += chunk.byteLength;
|
|
77
|
+
if (size > maxPartSize) {
|
|
78
|
+
deleteFile = true;
|
|
79
|
+
throw new MaxPartSizeExceededError(name, maxPartSize);
|
|
80
|
+
}
|
|
81
|
+
writeFileStream.write(chunk);
|
|
82
|
+
}
|
|
83
|
+
} finally{
|
|
84
|
+
writeFileStream.end();
|
|
85
|
+
await promisify(finished)(writeFileStream);
|
|
86
|
+
if (deleteFile) {
|
|
87
|
+
await rm(filepath).catch(()=>{});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return new NodeOnDiskFile(filepath, contentType);
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
let _toStringTag = Symbol.toStringTag;
|
|
94
|
+
class NodeOnDiskFile {
|
|
95
|
+
get size() {
|
|
96
|
+
const stats = statSync(this.filepath);
|
|
97
|
+
if (this.slicer) {
|
|
98
|
+
const slice = this.slicer.end - this.slicer.start;
|
|
99
|
+
return slice < 0 ? 0 : slice > stats.size ? stats.size : slice;
|
|
100
|
+
}
|
|
101
|
+
return stats.size;
|
|
102
|
+
}
|
|
103
|
+
slice(start, end, type) {
|
|
104
|
+
if (typeof start === 'number' && start < 0) start = this.size + start;
|
|
105
|
+
if (typeof end === 'number' && end < 0) end = this.size + end;
|
|
106
|
+
const startOffset = this.slicer?.start ?? 0;
|
|
107
|
+
start = startOffset + (start ?? 0);
|
|
108
|
+
end = startOffset + (end ?? this.size);
|
|
109
|
+
return new NodeOnDiskFile(this.filepath, typeof type === 'string' ? type : this.type, {
|
|
110
|
+
start,
|
|
111
|
+
end
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
async arrayBuffer() {
|
|
115
|
+
let stream = createReadStream(this.filepath);
|
|
116
|
+
if (this.slicer) {
|
|
117
|
+
stream = stream.pipe(streamSlice(this.slicer.start, this.slicer.end));
|
|
118
|
+
}
|
|
119
|
+
return new Promise((resolve, reject)=>{
|
|
120
|
+
const buf = [];
|
|
121
|
+
stream.on('data', (chunk)=>buf.push(chunk));
|
|
122
|
+
stream.on('end', ()=>{
|
|
123
|
+
resolve(Buffer.concat(buf));
|
|
124
|
+
});
|
|
125
|
+
stream.on('error', (err)=>{
|
|
126
|
+
reject(err);
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
stream() {
|
|
131
|
+
let stream = createReadStream(this.filepath);
|
|
132
|
+
if (this.slicer) {
|
|
133
|
+
stream = stream.pipe(streamSlice(this.slicer.start, this.slicer.end));
|
|
134
|
+
}
|
|
135
|
+
return Readable.toWeb(stream);
|
|
136
|
+
}
|
|
137
|
+
async text() {
|
|
138
|
+
return readableStreamToString(this.stream());
|
|
139
|
+
}
|
|
140
|
+
remove() {
|
|
141
|
+
return unlink(this.filepath);
|
|
142
|
+
}
|
|
143
|
+
getFilePath() {
|
|
144
|
+
return this.filepath;
|
|
145
|
+
}
|
|
146
|
+
constructor(filepath, type, slicer){
|
|
147
|
+
this.filepath = filepath;
|
|
148
|
+
this.type = type;
|
|
149
|
+
this.slicer = slicer;
|
|
150
|
+
this.lastModified = 0;
|
|
151
|
+
this.webkitRelativePath = '';
|
|
152
|
+
this[_toStringTag] = 'File';
|
|
153
|
+
this.name = basename(filepath);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export { NodeOnDiskFile, createFileUploadHandler, readableStreamToString };
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
5
5
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
6
6
|
*/
|
|
7
|
-
import { NodeHTTPRequest } from '../../types';
|
|
8
|
-
import { UploadHandler } from './uploadHandler';
|
|
7
|
+
import type { NodeHTTPRequest } from '../../types';
|
|
8
|
+
import type { UploadHandler } from './uploadHandler';
|
|
9
9
|
/**
|
|
10
10
|
* Allows you to handle multipart forms (file uploads) for your app.
|
|
11
11
|
* Request body parts with a 'filename' property will be treated as files.
|
|
@@ -14,15 +14,13 @@ import { UploadHandler } from './uploadHandler';
|
|
|
14
14
|
* @param uploadHandler A function that handles file uploads and returns a value to be used in the request body. If uploaded to disk, the returned value is a NodeOnDiskFile. If uploaded to memory, the returned value is a File.
|
|
15
15
|
* @param maxBodySize The maximum size of the request body in bytes. Defaults to Infinity.
|
|
16
16
|
*
|
|
17
|
-
* @
|
|
17
|
+
* @link https://remix.run/utils/parse-multipart-form-data
|
|
18
18
|
*/
|
|
19
19
|
declare function parseMultipartFormData(request: NodeHTTPRequest, uploadHandler: UploadHandler, maxBodySize?: number): Promise<FormData>;
|
|
20
20
|
declare function isMultipartFormDataRequest(req: NodeHTTPRequest): boolean;
|
|
21
21
|
export declare const nodeHTTPFormDataContentTypeHandler: <TRequest extends NodeHTTPRequest, TResponse extends import("../../types").NodeHTTPResponse>() => import("../../internals/contentType").NodeHTTPContentTypeHandler<TRequest, TResponse>;
|
|
22
|
-
export {
|
|
22
|
+
export { NodeOnDiskFile as experimental_NodeOnDiskFile, createFileUploadHandler as experimental_createFileUploadHandler, } from './fileUploadHandler';
|
|
23
23
|
export { createMemoryUploadHandler as experimental_createMemoryUploadHandler } from './memoryUploadHandler';
|
|
24
|
-
export {
|
|
25
|
-
export {
|
|
26
|
-
export { type UploadHandler } from './uploadHandler';
|
|
27
|
-
export { isMultipartFormDataRequest as experimental_isMultipartFormDataRequest };
|
|
24
|
+
export { MaxBodySizeExceededError, MaxPartSizeExceededError, composeUploadHandlers as experimental_composeUploadHandlers, type UploadHandler, } from './uploadHandler';
|
|
25
|
+
export { isMultipartFormDataRequest as experimental_isMultipartFormDataRequest, parseMultipartFormData as experimental_parseMultipartFormData, };
|
|
28
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/node-http/content-type/form-data/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/node-http/content-type/form-data/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,iBAAiB,CAAC;AAKxE;;;;;;;;;GASG;AACH,iBAAe,sBAAsB,CACnC,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,aAAa,EAC5B,WAAW,SAAW,qBAoEvB;AAED,iBAAS,0BAA0B,CAAC,GAAG,EAAE,eAAe,WAMvD;AAED,eAAO,MAAM,kCAAkC,yLA+B3C,CAAC;AAEL,OAAO,EACL,cAAc,IAAI,2BAA2B,EAC7C,uBAAuB,IAAI,oCAAoC,GAChE,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,yBAAyB,IAAI,sCAAsC,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,IAAI,kCAAkC,EAC3D,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,0BAA0B,IAAI,uCAAuC,EACrE,sBAAsB,IAAI,mCAAmC,GAC9D,CAAC"}
|