@trpc/server 11.3.1 → 11.3.2-canary.4
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/adapters/aws-lambda/package.json +1 -0
- package/adapters/express/package.json +1 -0
- package/adapters/fastify/package.json +1 -0
- package/adapters/fetch/package.json +1 -0
- package/adapters/next/package.json +1 -0
- package/adapters/next-app-dir/package.json +1 -0
- package/adapters/node-http/package.json +1 -0
- package/adapters/standalone/package.json +1 -0
- package/adapters/ws/package.json +1 -0
- package/dist/adapters/aws-lambda/index.cjs +255 -0
- package/dist/adapters/aws-lambda/index.d.cts +31 -0
- package/dist/adapters/aws-lambda/index.d.cts.map +1 -0
- package/dist/adapters/aws-lambda/index.d.mts +31 -0
- package/dist/adapters/aws-lambda/index.d.mts.map +1 -0
- package/dist/adapters/aws-lambda/index.mjs +248 -57
- package/dist/adapters/aws-lambda/index.mjs.map +1 -0
- package/dist/adapters/express.cjs +34 -0
- package/dist/adapters/express.d.cts +15 -0
- package/dist/adapters/express.d.cts.map +1 -0
- package/dist/adapters/express.d.mts +15 -0
- package/dist/adapters/express.d.mts.map +1 -0
- package/dist/adapters/express.mjs +30 -32
- package/dist/adapters/express.mjs.map +1 -0
- package/dist/adapters/fastify/index.cjs +75 -0
- package/dist/adapters/fastify/index.d.cts +29 -0
- package/dist/adapters/fastify/index.d.cts.map +1 -0
- package/dist/adapters/fastify/index.d.mts +29 -0
- package/dist/adapters/fastify/index.d.mts.map +1 -0
- package/dist/adapters/fastify/index.mjs +75 -2
- package/dist/adapters/fastify/index.mjs.map +1 -0
- package/dist/adapters/fetch/index.cjs +58 -0
- package/dist/adapters/fetch/index.d.cts +30 -0
- package/dist/adapters/fetch/index.d.cts.map +1 -0
- package/dist/adapters/fetch/index.d.mts +30 -0
- package/dist/adapters/fetch/index.d.mts.map +1 -0
- package/dist/adapters/fetch/index.mjs +59 -1
- package/dist/adapters/fetch/index.mjs.map +1 -0
- package/dist/adapters/next-app-dir.cjs +3050 -0
- package/dist/adapters/next-app-dir.d.cts +58 -0
- package/dist/adapters/next-app-dir.d.cts.map +1 -0
- package/dist/adapters/next-app-dir.d.mts +58 -0
- package/dist/adapters/next-app-dir.d.mts.map +1 -0
- package/dist/adapters/next-app-dir.mjs +3048 -4
- package/dist/adapters/next-app-dir.mjs.map +1 -0
- package/dist/adapters/next.cjs +41 -0
- package/dist/adapters/next.d.cts +19 -0
- package/dist/adapters/next.d.cts.map +1 -0
- package/dist/adapters/next.d.mts +19 -0
- package/dist/adapters/next.d.mts.map +1 -0
- package/dist/adapters/next.mjs +37 -44
- package/dist/adapters/next.mjs.map +1 -0
- package/dist/adapters/node-http/index.cjs +15 -0
- package/dist/adapters/node-http/index.d.cts +5 -0
- package/dist/adapters/node-http/index.d.mts +5 -0
- package/dist/adapters/node-http/index.mjs +12 -2
- package/dist/adapters/standalone.cjs +52 -0
- package/dist/adapters/standalone.d.cts +33 -0
- package/dist/adapters/standalone.d.cts.map +1 -0
- package/dist/adapters/standalone.d.mts +33 -0
- package/dist/adapters/standalone.d.mts.map +1 -0
- package/dist/adapters/standalone.mjs +40 -34
- package/dist/adapters/standalone.mjs.map +1 -0
- package/dist/adapters/ws.cjs +17 -0
- package/dist/adapters/ws.d.cts +61 -0
- package/dist/adapters/ws.d.cts.map +1 -0
- package/dist/adapters/ws.d.mts +61 -0
- package/dist/adapters/ws.d.mts.map +1 -0
- package/dist/adapters/ws.mjs +14 -539
- package/dist/contentTypeParsers-SN4WL9ze.mjs +13 -0
- package/dist/contentTypeParsers-SN4WL9ze.mjs.map +1 -0
- package/dist/contentTypeParsers-iAFF_pJG.cjs +18 -0
- package/dist/getErrorShape-CsikfkAc.cjs +201 -0
- package/dist/getErrorShape-DyYil4aT.mjs +149 -0
- package/dist/getErrorShape-DyYil4aT.mjs.map +1 -0
- package/dist/http-CWyjOa1l.mjs +0 -0
- package/dist/http-DXy3XyhL.cjs +0 -0
- package/dist/http.cjs +14 -0
- package/dist/http.d.cts +3 -0
- package/dist/http.d.mts +3 -0
- package/dist/http.mjs +9 -8
- package/dist/index.cjs +22 -0
- package/dist/index.d-BiUz7kM_.d.cts +65 -0
- package/dist/index.d-BiUz7kM_.d.cts.map +1 -0
- package/dist/index.d-ChWYhXbd.d.cts +99 -0
- package/dist/index.d-ChWYhXbd.d.cts.map +1 -0
- package/dist/index.d-CvZXeEyR.d.cts +11 -0
- package/dist/index.d-CvZXeEyR.d.cts.map +1 -0
- package/dist/index.d-D4qZxQJh.d.mts +65 -0
- package/dist/index.d-D4qZxQJh.d.mts.map +1 -0
- package/dist/index.d-Ocy_AnXj.d.mts +99 -0
- package/dist/index.d-Ocy_AnXj.d.mts.map +1 -0
- package/dist/index.d-vq_QHko2.d.mts +11 -0
- package/dist/index.d-vq_QHko2.d.mts.map +1 -0
- package/dist/index.d.cts +4 -0
- package/dist/index.d.mts +4 -0
- package/dist/index.mjs +6 -13
- package/dist/initTRPC-COaJMShh.mjs +339 -0
- package/dist/initTRPC-COaJMShh.mjs.map +1 -0
- package/dist/initTRPC-DjEpHmY2.cjs +397 -0
- package/dist/node-http-BPR68yI4.cjs +243 -0
- package/dist/node-http-BUQnHuGI.mjs +221 -0
- package/dist/node-http-BUQnHuGI.mjs.map +1 -0
- package/dist/observable/index.cjs +13 -0
- package/dist/observable/index.d.cts +2 -0
- package/dist/observable/index.d.mts +2 -0
- package/dist/observable/index.mjs +4 -3
- package/dist/observable-B1orLHHI.mjs +155 -0
- package/dist/observable-B1orLHHI.mjs.map +1 -0
- package/dist/observable-BwdrSFZU.cjs +178 -0
- package/dist/observable-C6qq2Ydk.cjs +180 -0
- package/dist/observable-CFXA_tyK.mjs +146 -0
- package/dist/observable-CFXA_tyK.mjs.map +1 -0
- package/dist/parseTRPCMessage-ByQWigsq.cjs +73 -0
- package/dist/parseTRPCMessage-CNyYMSRB.mjs +63 -0
- package/dist/parseTRPCMessage-CNyYMSRB.mjs.map +1 -0
- package/dist/resolveResponse-B2CuaT_1.cjs +2042 -0
- package/dist/resolveResponse-DPbYgJDD.mjs +1912 -0
- package/dist/resolveResponse-DPbYgJDD.mjs.map +1 -0
- package/dist/rpc.cjs +6 -0
- package/dist/rpc.d.cts +3 -0
- package/dist/rpc.d.mts +3 -0
- package/dist/rpc.mjs +4 -5
- package/dist/shared.cjs +5 -0
- package/dist/shared.d.cts +4 -0
- package/dist/shared.d.mts +4 -0
- package/dist/shared.mjs +4 -6
- package/dist/tracked-Dl9sBZxY.cjs +483 -0
- package/dist/tracked-GEWPoL0C.mjs +383 -0
- package/dist/tracked-GEWPoL0C.mjs.map +1 -0
- package/dist/unstable-core-do-not-import-D89CaGtL.mjs +29 -0
- package/dist/unstable-core-do-not-import-D89CaGtL.mjs.map +1 -0
- package/dist/unstable-core-do-not-import-DFQys1IC.cjs +34 -0
- package/dist/unstable-core-do-not-import.cjs +83 -0
- package/dist/unstable-core-do-not-import.d-CSxj_rbP.d.cts +1974 -0
- package/dist/unstable-core-do-not-import.d-CSxj_rbP.d.cts.map +1 -0
- package/dist/unstable-core-do-not-import.d-ptrxwuSa.d.mts +1974 -0
- package/dist/unstable-core-do-not-import.d-ptrxwuSa.d.mts.map +1 -0
- package/dist/unstable-core-do-not-import.d.cts +3 -0
- package/dist/unstable-core-do-not-import.d.mts +3 -0
- package/dist/unstable-core-do-not-import.mjs +11 -30
- package/dist/utils-BHZJcBRv.mjs +137 -0
- package/dist/utils-BHZJcBRv.mjs.map +1 -0
- package/dist/utils-DVO6HZiR.cjs +220 -0
- package/dist/ws-C2nEUNk_.cjs +425 -0
- package/dist/ws-eIVIMTrw.mjs +409 -0
- package/dist/ws-eIVIMTrw.mjs.map +1 -0
- package/http/package.json +1 -0
- package/observable/package.json +1 -0
- package/package.json +131 -55
- package/rpc/package.json +1 -0
- package/shared/package.json +1 -0
- package/src/@trpc/server/index.ts +24 -0
- package/src/unstable-core-do-not-import/http/contentType.ts +5 -4
- package/src/unstable-core-do-not-import/initTRPC.ts +79 -4
- package/src/unstable-core-do-not-import/router.ts +36 -12
- package/src/unstable-core-do-not-import/utils.ts +3 -2
- package/unstable-core-do-not-import/package.json +1 -0
- package/adapters/aws-lambda/index.d.ts +0 -1
- package/adapters/aws-lambda/index.js +0 -1
- package/adapters/express/index.d.ts +0 -1
- package/adapters/express/index.js +0 -1
- package/adapters/fastify/index.d.ts +0 -1
- package/adapters/fastify/index.js +0 -1
- package/adapters/fetch/index.d.ts +0 -1
- package/adapters/fetch/index.js +0 -1
- package/adapters/next/index.d.ts +0 -1
- package/adapters/next/index.js +0 -1
- package/adapters/next-app-dir/index.d.ts +0 -1
- package/adapters/next-app-dir/index.js +0 -1
- package/adapters/node-http/content-type/form-data/index.d.ts +0 -1
- package/adapters/node-http/content-type/form-data/index.js +0 -1
- package/adapters/node-http/content-type/json/index.d.ts +0 -1
- package/adapters/node-http/content-type/json/index.js +0 -1
- package/adapters/node-http/index.d.ts +0 -1
- package/adapters/node-http/index.js +0 -1
- package/adapters/standalone/index.d.ts +0 -1
- package/adapters/standalone/index.js +0 -1
- package/adapters/ws/index.d.ts +0 -1
- package/adapters/ws/index.js +0 -1
- package/dist/@trpc/server/http.d.ts +0 -8
- package/dist/@trpc/server/http.d.ts.map +0 -1
- package/dist/@trpc/server/index.d.ts +0 -65
- package/dist/@trpc/server/index.d.ts.map +0 -1
- package/dist/@trpc/server/rpc.d.ts +0 -3
- package/dist/@trpc/server/rpc.d.ts.map +0 -1
- package/dist/adapters/aws-lambda/getPlanner.d.ts +0 -15
- package/dist/adapters/aws-lambda/getPlanner.d.ts.map +0 -1
- package/dist/adapters/aws-lambda/getPlanner.js +0 -179
- package/dist/adapters/aws-lambda/getPlanner.mjs +0 -177
- package/dist/adapters/aws-lambda/index.d.ts +0 -23
- package/dist/adapters/aws-lambda/index.d.ts.map +0 -1
- package/dist/adapters/aws-lambda/index.js +0 -67
- package/dist/adapters/express.d.ts +0 -15
- package/dist/adapters/express.d.ts.map +0 -1
- package/dist/adapters/express.js +0 -39
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +0 -22
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +0 -1
- package/dist/adapters/fastify/fastifyRequestHandler.js +0 -49
- package/dist/adapters/fastify/fastifyRequestHandler.mjs +0 -47
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +0 -21
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +0 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.js +0 -56
- package/dist/adapters/fastify/fastifyTRPCPlugin.mjs +0 -54
- package/dist/adapters/fastify/index.d.ts +0 -3
- package/dist/adapters/fastify/index.d.ts.map +0 -1
- package/dist/adapters/fastify/index.js +0 -9
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +0 -13
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +0 -1
- package/dist/adapters/fetch/fetchRequestHandler.js +0 -77
- package/dist/adapters/fetch/fetchRequestHandler.mjs +0 -75
- package/dist/adapters/fetch/index.d.ts +0 -3
- package/dist/adapters/fetch/index.d.ts.map +0 -1
- package/dist/adapters/fetch/index.js +0 -7
- package/dist/adapters/fetch/types.d.ts +0 -27
- package/dist/adapters/fetch/types.d.ts.map +0 -1
- package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts +0 -25
- package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts.map +0 -1
- package/dist/adapters/next-app-dir/nextAppDirCaller.js +0 -94
- package/dist/adapters/next-app-dir/nextAppDirCaller.mjs +0 -92
- package/dist/adapters/next-app-dir/notFound.d.ts +0 -7
- package/dist/adapters/next-app-dir/notFound.d.ts.map +0 -1
- package/dist/adapters/next-app-dir/notFound.js +0 -18
- package/dist/adapters/next-app-dir/notFound.mjs +0 -16
- package/dist/adapters/next-app-dir/redirect.d.ts +0 -18
- package/dist/adapters/next-app-dir/redirect.d.ts.map +0 -1
- package/dist/adapters/next-app-dir/redirect.js +0 -49
- package/dist/adapters/next-app-dir/redirect.mjs +0 -46
- package/dist/adapters/next-app-dir/rethrowNextErrors.d.ts +0 -6
- package/dist/adapters/next-app-dir/rethrowNextErrors.d.ts.map +0 -1
- package/dist/adapters/next-app-dir/rethrowNextErrors.js +0 -70
- package/dist/adapters/next-app-dir/rethrowNextErrors.mjs +0 -49
- package/dist/adapters/next-app-dir.d.ts +0 -7
- package/dist/adapters/next-app-dir.d.ts.map +0 -1
- package/dist/adapters/next-app-dir.js +0 -13
- package/dist/adapters/next.d.ts +0 -19
- package/dist/adapters/next.d.ts.map +0 -1
- package/dist/adapters/next.js +0 -51
- package/dist/adapters/node-http/incomingMessageToRequest.d.ts +0 -12
- package/dist/adapters/node-http/incomingMessageToRequest.d.ts.map +0 -1
- package/dist/adapters/node-http/incomingMessageToRequest.js +0 -123
- package/dist/adapters/node-http/incomingMessageToRequest.mjs +0 -120
- package/dist/adapters/node-http/index.d.ts +0 -4
- package/dist/adapters/node-http/index.d.ts.map +0 -1
- package/dist/adapters/node-http/index.js +0 -11
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +0 -20
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +0 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.js +0 -96
- package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +0 -93
- package/dist/adapters/node-http/types.d.ts +0 -81
- package/dist/adapters/node-http/types.d.ts.map +0 -1
- package/dist/adapters/node-http/writeResponse.d.ts +0 -18
- package/dist/adapters/node-http/writeResponse.d.ts.map +0 -1
- package/dist/adapters/node-http/writeResponse.js +0 -83
- package/dist/adapters/node-http/writeResponse.mjs +0 -80
- package/dist/adapters/standalone.d.ts +0 -36
- package/dist/adapters/standalone.d.ts.map +0 -1
- package/dist/adapters/standalone.js +0 -49
- package/dist/adapters/ws.d.ts +0 -54
- package/dist/adapters/ws.d.ts.map +0 -1
- package/dist/adapters/ws.js +0 -544
- package/dist/http.d.ts +0 -2
- package/dist/http.d.ts.map +0 -1
- package/dist/http.js +0 -19
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -35
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.2_rollup@4.34.8_tslib@2.8.1_typescript@5.8.2/node_modules/tslib/tslib.es6.js +0 -73
- package/dist/observable/behaviorSubject.d.ts +0 -15
- package/dist/observable/behaviorSubject.d.ts.map +0 -1
- package/dist/observable/behaviorSubject.js +0 -40
- package/dist/observable/behaviorSubject.mjs +0 -38
- package/dist/observable/index.d.ts +0 -5
- package/dist/observable/index.d.ts.map +0 -1
- package/dist/observable/index.js +0 -18
- package/dist/observable/observable.d.ts +0 -12
- package/dist/observable/observable.d.ts.map +0 -1
- package/dist/observable/observable.js +0 -180
- package/dist/observable/observable.mjs +0 -175
- package/dist/observable/operators.d.ts +0 -10
- package/dist/observable/operators.d.ts.map +0 -1
- package/dist/observable/operators.js +0 -134
- package/dist/observable/operators.mjs +0 -128
- package/dist/observable/types.d.ts +0 -26
- package/dist/observable/types.d.ts.map +0 -1
- package/dist/rpc.d.ts +0 -2
- package/dist/rpc.d.ts.map +0 -1
- package/dist/rpc.js +0 -13
- package/dist/shared.d.ts +0 -26
- package/dist/shared.d.ts.map +0 -1
- package/dist/shared.js +0 -13
- package/dist/unstable-core-do-not-import/clientish/inference.d.ts +0 -17
- package/dist/unstable-core-do-not-import/clientish/inference.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/clientish/inferrable.d.ts +0 -36
- package/dist/unstable-core-do-not-import/clientish/inferrable.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/clientish/serialize.d.ts +0 -69
- package/dist/unstable-core-do-not-import/clientish/serialize.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/createProxy.d.ts +0 -19
- package/dist/unstable-core-do-not-import/createProxy.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/createProxy.js +0 -76
- package/dist/unstable-core-do-not-import/createProxy.mjs +0 -73
- package/dist/unstable-core-do-not-import/error/TRPCError.d.ts +0 -13
- package/dist/unstable-core-do-not-import/error/TRPCError.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/error/TRPCError.js +0 -76
- package/dist/unstable-core-do-not-import/error/TRPCError.mjs +0 -72
- package/dist/unstable-core-do-not-import/error/formatter.d.ts +0 -38
- package/dist/unstable-core-do-not-import/error/formatter.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/error/formatter.js +0 -7
- package/dist/unstable-core-do-not-import/error/formatter.mjs +0 -5
- package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts +0 -15
- package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/error/getErrorShape.js +0 -31
- package/dist/unstable-core-do-not-import/error/getErrorShape.mjs +0 -29
- package/dist/unstable-core-do-not-import/http/abortError.d.ts +0 -5
- package/dist/unstable-core-do-not-import/http/abortError.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/abortError.js +0 -13
- package/dist/unstable-core-do-not-import/http/abortError.mjs +0 -10
- package/dist/unstable-core-do-not-import/http/contentType.d.ts +0 -13
- package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/contentType.js +0 -229
- package/dist/unstable-core-do-not-import/http/contentType.mjs +0 -227
- package/dist/unstable-core-do-not-import/http/contentTypeParsers.d.ts +0 -14
- package/dist/unstable-core-do-not-import/http/contentTypeParsers.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/contentTypeParsers.js +0 -14
- package/dist/unstable-core-do-not-import/http/contentTypeParsers.mjs +0 -12
- package/dist/unstable-core-do-not-import/http/formDataToObject.d.ts +0 -2
- package/dist/unstable-core-do-not-import/http/formDataToObject.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/formDataToObject.js +0 -40
- package/dist/unstable-core-do-not-import/http/formDataToObject.mjs +0 -38
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts +0 -10
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +0 -85
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +0 -78
- package/dist/unstable-core-do-not-import/http/parseConnectionParams.d.ts +0 -4
- package/dist/unstable-core-do-not-import/http/parseConnectionParams.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/parseConnectionParams.js +0 -42
- package/dist/unstable-core-do-not-import/http/parseConnectionParams.mjs +0 -39
- package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts +0 -15
- package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/resolveResponse.js +0 -572
- package/dist/unstable-core-do-not-import/http/resolveResponse.mjs +0 -570
- package/dist/unstable-core-do-not-import/http/types.d.ts +0 -138
- package/dist/unstable-core-do-not-import/http/types.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/initTRPC.d.ts +0 -94
- package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/initTRPC.js +0 -82
- package/dist/unstable-core-do-not-import/initTRPC.mjs +0 -80
- package/dist/unstable-core-do-not-import/middleware.d.ts +0 -107
- package/dist/unstable-core-do-not-import/middleware.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/middleware.js +0 -96
- package/dist/unstable-core-do-not-import/middleware.mjs +0 -90
- package/dist/unstable-core-do-not-import/parser.d.ts +0 -44
- package/dist/unstable-core-do-not-import/parser.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/parser.js +0 -54
- package/dist/unstable-core-do-not-import/parser.mjs +0 -52
- package/dist/unstable-core-do-not-import/procedure.d.ts +0 -77
- package/dist/unstable-core-do-not-import/procedure.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/procedure.js +0 -9
- package/dist/unstable-core-do-not-import/procedure.mjs +0 -7
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +0 -161
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.js +0 -201
- package/dist/unstable-core-do-not-import/procedureBuilder.mjs +0 -199
- package/dist/unstable-core-do-not-import/rootConfig.d.ts +0 -98
- package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/rootConfig.js +0 -8
- package/dist/unstable-core-do-not-import/rootConfig.mjs +0 -6
- package/dist/unstable-core-do-not-import/router.d.ts +0 -98
- package/dist/unstable-core-do-not-import/router.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/router.js +0 -285
- package/dist/unstable-core-do-not-import/router.mjs +0 -278
- package/dist/unstable-core-do-not-import/rpc/codes.d.ts +0 -45
- package/dist/unstable-core-do-not-import/rpc/codes.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/rpc/codes.js +0 -69
- package/dist/unstable-core-do-not-import/rpc/codes.mjs +0 -65
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts +0 -109
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/rpc/index.d.ts +0 -5
- package/dist/unstable-core-do-not-import/rpc/index.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.d.ts +0 -5
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.js +0 -63
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.mjs +0 -61
- package/dist/unstable-core-do-not-import/stream/jsonl.d.ts +0 -119
- package/dist/unstable-core-do-not-import/stream/jsonl.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/jsonl.js +0 -607
- package/dist/unstable-core-do-not-import/stream/jsonl.mjs +0 -603
- package/dist/unstable-core-do-not-import/stream/sse.d.ts +0 -108
- package/dist/unstable-core-do-not-import/stream/sse.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/sse.js +0 -373
- package/dist/unstable-core-do-not-import/stream/sse.mjs +0 -369
- package/dist/unstable-core-do-not-import/stream/sse.types.d.ts +0 -31
- package/dist/unstable-core-do-not-import/stream/sse.types.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/tracked.d.ts +0 -31
- package/dist/unstable-core-do-not-import/stream/tracked.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/tracked.js +0 -29
- package/dist/unstable-core-do-not-import/stream/tracked.mjs +0 -25
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.d.ts +0 -17
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.js +0 -174
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.mjs +0 -170
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts +0 -7
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.js +0 -17
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +0 -15
- package/dist/unstable-core-do-not-import/stream/utils/disposable.d.ts +0 -17
- package/dist/unstable-core-do-not-import/stream/utils/disposable.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/utils/disposable.js +0 -46
- package/dist/unstable-core-do-not-import/stream/utils/disposable.mjs +0 -43
- package/dist/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.d.ts +0 -17
- package/dist/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.js +0 -241
- package/dist/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.mjs +0 -239
- package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.d.ts +0 -8
- package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.js +0 -25
- package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.mjs +0 -23
- package/dist/unstable-core-do-not-import/stream/utils/timerResource.d.ts +0 -5
- package/dist/unstable-core-do-not-import/stream/utils/timerResource.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/utils/timerResource.js +0 -26
- package/dist/unstable-core-do-not-import/stream/utils/timerResource.mjs +0 -23
- package/dist/unstable-core-do-not-import/stream/utils/withPing.d.ts +0 -7
- package/dist/unstable-core-do-not-import/stream/utils/withPing.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/utils/withPing.js +0 -130
- package/dist/unstable-core-do-not-import/stream/utils/withPing.mjs +0 -127
- package/dist/unstable-core-do-not-import/transformer.d.ts +0 -99
- package/dist/unstable-core-do-not-import/transformer.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/transformer.js +0 -106
- package/dist/unstable-core-do-not-import/transformer.mjs +0 -101
- package/dist/unstable-core-do-not-import/types.d.ts +0 -127
- package/dist/unstable-core-do-not-import/types.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/utils.d.ts +0 -42
- package/dist/unstable-core-do-not-import/utils.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/utils.js +0 -96
- package/dist/unstable-core-do-not-import/utils.mjs +0 -83
- package/dist/unstable-core-do-not-import.d.ts +0 -47
- package/dist/unstable-core-do-not-import.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import.js +0 -109
- package/dist/vendor/cookie-es/set-cookie/split.d.ts +0 -18
- package/dist/vendor/cookie-es/set-cookie/split.d.ts.map +0 -1
- package/dist/vendor/cookie-es/set-cookie/split.js +0 -79
- package/dist/vendor/cookie-es/set-cookie/split.mjs +0 -77
- package/dist/vendor/standard-schema-v1/error.d.ts +0 -13
- package/dist/vendor/standard-schema-v1/error.d.ts.map +0 -1
- package/dist/vendor/standard-schema-v1/error.js +0 -28
- package/dist/vendor/standard-schema-v1/error.mjs +0 -26
- package/dist/vendor/standard-schema-v1/spec.d.ts +0 -60
- package/dist/vendor/standard-schema-v1/spec.d.ts.map +0 -1
- package/dist/vendor/unpromise/index.d.ts +0 -3
- package/dist/vendor/unpromise/index.d.ts.map +0 -1
- package/dist/vendor/unpromise/types.d.ts +0 -28
- package/dist/vendor/unpromise/types.d.ts.map +0 -1
- package/dist/vendor/unpromise/unpromise.d.ts +0 -121
- package/dist/vendor/unpromise/unpromise.d.ts.map +0 -1
- package/dist/vendor/unpromise/unpromise.js +0 -292
- package/dist/vendor/unpromise/unpromise.mjs +0 -289
- package/http/index.d.ts +0 -1
- package/http/index.js +0 -1
- package/observable/index.d.ts +0 -1
- package/observable/index.js +0 -1
- package/rpc/index.d.ts +0 -1
- package/rpc/index.js +0 -1
- package/shared/index.d.ts +0 -1
- package/shared/index.js +0 -1
- package/unstable-core-do-not-import/index.d.ts +0 -1
- package/unstable-core-do-not-import/index.js +0 -1
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
const require_resolveResponse = require('./resolveResponse-B2CuaT_1.cjs');
|
|
2
|
+
const require_getErrorShape = require('./getErrorShape-CsikfkAc.cjs');
|
|
3
|
+
const require_tracked = require('./tracked-Dl9sBZxY.cjs');
|
|
4
|
+
const require_utils = require('./utils-DVO6HZiR.cjs');
|
|
5
|
+
|
|
6
|
+
//#region src/adapters/node-http/incomingMessageToRequest.ts
|
|
7
|
+
function createBody(req, opts) {
|
|
8
|
+
if ("body" in req) {
|
|
9
|
+
if (req.body === void 0) return void 0;
|
|
10
|
+
if (typeof req.body === "string") return req.body;
|
|
11
|
+
return JSON.stringify(req.body);
|
|
12
|
+
}
|
|
13
|
+
let size = 0;
|
|
14
|
+
let hasClosed = false;
|
|
15
|
+
return new ReadableStream({
|
|
16
|
+
start(controller) {
|
|
17
|
+
const onData = (chunk) => {
|
|
18
|
+
size += chunk.length;
|
|
19
|
+
if (!opts.maxBodySize || size <= opts.maxBodySize) {
|
|
20
|
+
controller.enqueue(new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
controller.error(new require_tracked.TRPCError({ code: "PAYLOAD_TOO_LARGE" }));
|
|
24
|
+
hasClosed = true;
|
|
25
|
+
req.off("data", onData);
|
|
26
|
+
req.off("end", onEnd);
|
|
27
|
+
};
|
|
28
|
+
const onEnd = () => {
|
|
29
|
+
if (hasClosed) return;
|
|
30
|
+
hasClosed = true;
|
|
31
|
+
req.off("data", onData);
|
|
32
|
+
req.off("end", onEnd);
|
|
33
|
+
controller.close();
|
|
34
|
+
};
|
|
35
|
+
req.on("data", onData);
|
|
36
|
+
req.on("end", onEnd);
|
|
37
|
+
},
|
|
38
|
+
cancel() {
|
|
39
|
+
req.destroy();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function createURL(req) {
|
|
44
|
+
try {
|
|
45
|
+
const protocol = req.headers[":scheme"] && req.headers[":scheme"] === "https" || req.socket && "encrypted" in req.socket && req.socket.encrypted ? "https:" : "http:";
|
|
46
|
+
const host = req.headers.host ?? req.headers[":authority"] ?? "localhost";
|
|
47
|
+
return new URL(req.url, `${protocol}//${host}`);
|
|
48
|
+
} catch (cause) {
|
|
49
|
+
throw new require_tracked.TRPCError({
|
|
50
|
+
code: "BAD_REQUEST",
|
|
51
|
+
message: "Invalid URL",
|
|
52
|
+
cause
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function createHeaders(incoming) {
|
|
57
|
+
const headers = new Headers();
|
|
58
|
+
for (const key in incoming) {
|
|
59
|
+
const value = incoming[key];
|
|
60
|
+
if (typeof key === "string" && key.startsWith(":")) continue;
|
|
61
|
+
if (Array.isArray(value)) for (const item of value) headers.append(key, item);
|
|
62
|
+
else if (value != null) headers.append(key, value);
|
|
63
|
+
}
|
|
64
|
+
return headers;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Convert an [`IncomingMessage`](https://nodejs.org/api/http.html#class-httpincomingmessage) to a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)
|
|
68
|
+
*/
|
|
69
|
+
function incomingMessageToRequest(req, res, opts) {
|
|
70
|
+
const ac = new AbortController();
|
|
71
|
+
const onAbort = () => {
|
|
72
|
+
res.off("close", onAbort);
|
|
73
|
+
req.socket?.off?.("close", onAbort);
|
|
74
|
+
ac.abort();
|
|
75
|
+
};
|
|
76
|
+
res.once("close", onAbort);
|
|
77
|
+
req.socket?.once?.("close", onAbort);
|
|
78
|
+
const url = createURL(req);
|
|
79
|
+
const init = {
|
|
80
|
+
headers: createHeaders(req.headers),
|
|
81
|
+
method: req.method,
|
|
82
|
+
signal: ac.signal
|
|
83
|
+
};
|
|
84
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
85
|
+
init.body = createBody(req, opts);
|
|
86
|
+
init.duplex = "half";
|
|
87
|
+
}
|
|
88
|
+
const request = new Request(url, init);
|
|
89
|
+
return request;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
//#endregion
|
|
93
|
+
//#region src/adapters/node-http/writeResponse.ts
|
|
94
|
+
async function writeResponseBodyChunk(res, chunk) {
|
|
95
|
+
if (res.write(chunk) === false) await new Promise((resolve, reject) => {
|
|
96
|
+
const onError = (err) => {
|
|
97
|
+
reject(err);
|
|
98
|
+
cleanup();
|
|
99
|
+
};
|
|
100
|
+
const onDrain = () => {
|
|
101
|
+
resolve();
|
|
102
|
+
cleanup();
|
|
103
|
+
};
|
|
104
|
+
const cleanup = () => {
|
|
105
|
+
res.off("error", onError);
|
|
106
|
+
res.off("drain", onDrain);
|
|
107
|
+
};
|
|
108
|
+
res.once("error", onError);
|
|
109
|
+
res.once("drain", onDrain);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
async function writeResponseBody(opts) {
|
|
116
|
+
const { res } = opts;
|
|
117
|
+
try {
|
|
118
|
+
const writableStream = new WritableStream({ async write(chunk) {
|
|
119
|
+
await writeResponseBodyChunk(res, chunk);
|
|
120
|
+
res.flush?.();
|
|
121
|
+
} });
|
|
122
|
+
await opts.body.pipeTo(writableStream, { signal: opts.signal });
|
|
123
|
+
} catch (err) {
|
|
124
|
+
if (require_resolveResponse.isAbortError(err)) return;
|
|
125
|
+
throw err;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* @internal
|
|
130
|
+
*/
|
|
131
|
+
async function writeResponse(opts) {
|
|
132
|
+
const { response, rawResponse } = opts;
|
|
133
|
+
if (rawResponse.statusCode === 200) rawResponse.statusCode = response.status;
|
|
134
|
+
for (const [key, value] of response.headers) rawResponse.setHeader(key, value);
|
|
135
|
+
try {
|
|
136
|
+
if (response.body) await writeResponseBody({
|
|
137
|
+
res: rawResponse,
|
|
138
|
+
signal: opts.request.signal,
|
|
139
|
+
body: response.body
|
|
140
|
+
});
|
|
141
|
+
} catch (err) {
|
|
142
|
+
if (!rawResponse.headersSent) rawResponse.statusCode = 500;
|
|
143
|
+
throw err;
|
|
144
|
+
} finally {
|
|
145
|
+
rawResponse.end();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
//#endregion
|
|
150
|
+
//#region src/adapters/node-http/nodeHTTPRequestHandler.ts
|
|
151
|
+
/**
|
|
152
|
+
* @internal
|
|
153
|
+
*/
|
|
154
|
+
function internal_exceptionHandler(opts) {
|
|
155
|
+
return (cause) => {
|
|
156
|
+
const { res, req } = opts;
|
|
157
|
+
const error = require_tracked.getTRPCErrorFromUnknown(cause);
|
|
158
|
+
const shape = require_getErrorShape.getErrorShape({
|
|
159
|
+
config: opts.router._def._config,
|
|
160
|
+
error,
|
|
161
|
+
type: "unknown",
|
|
162
|
+
path: void 0,
|
|
163
|
+
input: void 0,
|
|
164
|
+
ctx: void 0
|
|
165
|
+
});
|
|
166
|
+
opts.onError?.({
|
|
167
|
+
req,
|
|
168
|
+
error,
|
|
169
|
+
type: "unknown",
|
|
170
|
+
path: void 0,
|
|
171
|
+
input: void 0,
|
|
172
|
+
ctx: void 0
|
|
173
|
+
});
|
|
174
|
+
const transformed = require_tracked.transformTRPCResponse(opts.router._def._config, { error: shape });
|
|
175
|
+
res.statusCode = shape.data.httpStatus;
|
|
176
|
+
res.end(JSON.stringify(transformed));
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* @remark the promise never rejects
|
|
181
|
+
*/
|
|
182
|
+
async function nodeHTTPRequestHandler(opts) {
|
|
183
|
+
return new Promise((resolve) => {
|
|
184
|
+
const handleViaMiddleware = opts.middleware ?? ((_req, _res, next) => next());
|
|
185
|
+
opts.res.once("finish", () => {
|
|
186
|
+
resolve();
|
|
187
|
+
});
|
|
188
|
+
return handleViaMiddleware(opts.req, opts.res, (err) => {
|
|
189
|
+
require_utils.run(async () => {
|
|
190
|
+
const request = incomingMessageToRequest(opts.req, opts.res, { maxBodySize: opts.maxBodySize ?? null });
|
|
191
|
+
const createContext = async (innerOpts) => {
|
|
192
|
+
return await opts.createContext?.({
|
|
193
|
+
...opts,
|
|
194
|
+
...innerOpts
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
const response = await require_resolveResponse.resolveResponse({
|
|
198
|
+
...opts,
|
|
199
|
+
req: request,
|
|
200
|
+
error: err ? require_tracked.getTRPCErrorFromUnknown(err) : null,
|
|
201
|
+
createContext,
|
|
202
|
+
onError(o) {
|
|
203
|
+
opts?.onError?.({
|
|
204
|
+
...o,
|
|
205
|
+
req: opts.req
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
await writeResponse({
|
|
210
|
+
request,
|
|
211
|
+
response,
|
|
212
|
+
rawResponse: opts.res
|
|
213
|
+
});
|
|
214
|
+
}).catch(internal_exceptionHandler(opts));
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
//#endregion
|
|
220
|
+
Object.defineProperty(exports, 'createURL', {
|
|
221
|
+
enumerable: true,
|
|
222
|
+
get: function () {
|
|
223
|
+
return createURL;
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
Object.defineProperty(exports, 'incomingMessageToRequest', {
|
|
227
|
+
enumerable: true,
|
|
228
|
+
get: function () {
|
|
229
|
+
return incomingMessageToRequest;
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
Object.defineProperty(exports, 'internal_exceptionHandler', {
|
|
233
|
+
enumerable: true,
|
|
234
|
+
get: function () {
|
|
235
|
+
return internal_exceptionHandler;
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
Object.defineProperty(exports, 'nodeHTTPRequestHandler', {
|
|
239
|
+
enumerable: true,
|
|
240
|
+
get: function () {
|
|
241
|
+
return nodeHTTPRequestHandler;
|
|
242
|
+
}
|
|
243
|
+
});
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { isAbortError, resolveResponse } from "./resolveResponse-DPbYgJDD.mjs";
|
|
2
|
+
import { getErrorShape } from "./getErrorShape-DyYil4aT.mjs";
|
|
3
|
+
import { TRPCError, getTRPCErrorFromUnknown, transformTRPCResponse } from "./tracked-GEWPoL0C.mjs";
|
|
4
|
+
import { run } from "./utils-BHZJcBRv.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/adapters/node-http/incomingMessageToRequest.ts
|
|
7
|
+
function createBody(req, opts) {
|
|
8
|
+
if ("body" in req) {
|
|
9
|
+
if (req.body === void 0) return void 0;
|
|
10
|
+
if (typeof req.body === "string") return req.body;
|
|
11
|
+
return JSON.stringify(req.body);
|
|
12
|
+
}
|
|
13
|
+
let size = 0;
|
|
14
|
+
let hasClosed = false;
|
|
15
|
+
return new ReadableStream({
|
|
16
|
+
start(controller) {
|
|
17
|
+
const onData = (chunk) => {
|
|
18
|
+
size += chunk.length;
|
|
19
|
+
if (!opts.maxBodySize || size <= opts.maxBodySize) {
|
|
20
|
+
controller.enqueue(new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
controller.error(new TRPCError({ code: "PAYLOAD_TOO_LARGE" }));
|
|
24
|
+
hasClosed = true;
|
|
25
|
+
req.off("data", onData);
|
|
26
|
+
req.off("end", onEnd);
|
|
27
|
+
};
|
|
28
|
+
const onEnd = () => {
|
|
29
|
+
if (hasClosed) return;
|
|
30
|
+
hasClosed = true;
|
|
31
|
+
req.off("data", onData);
|
|
32
|
+
req.off("end", onEnd);
|
|
33
|
+
controller.close();
|
|
34
|
+
};
|
|
35
|
+
req.on("data", onData);
|
|
36
|
+
req.on("end", onEnd);
|
|
37
|
+
},
|
|
38
|
+
cancel() {
|
|
39
|
+
req.destroy();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function createURL(req) {
|
|
44
|
+
try {
|
|
45
|
+
const protocol = req.headers[":scheme"] && req.headers[":scheme"] === "https" || req.socket && "encrypted" in req.socket && req.socket.encrypted ? "https:" : "http:";
|
|
46
|
+
const host = req.headers.host ?? req.headers[":authority"] ?? "localhost";
|
|
47
|
+
return new URL(req.url, `${protocol}//${host}`);
|
|
48
|
+
} catch (cause) {
|
|
49
|
+
throw new TRPCError({
|
|
50
|
+
code: "BAD_REQUEST",
|
|
51
|
+
message: "Invalid URL",
|
|
52
|
+
cause
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function createHeaders(incoming) {
|
|
57
|
+
const headers = new Headers();
|
|
58
|
+
for (const key in incoming) {
|
|
59
|
+
const value = incoming[key];
|
|
60
|
+
if (typeof key === "string" && key.startsWith(":")) continue;
|
|
61
|
+
if (Array.isArray(value)) for (const item of value) headers.append(key, item);
|
|
62
|
+
else if (value != null) headers.append(key, value);
|
|
63
|
+
}
|
|
64
|
+
return headers;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Convert an [`IncomingMessage`](https://nodejs.org/api/http.html#class-httpincomingmessage) to a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)
|
|
68
|
+
*/
|
|
69
|
+
function incomingMessageToRequest(req, res, opts) {
|
|
70
|
+
const ac = new AbortController();
|
|
71
|
+
const onAbort = () => {
|
|
72
|
+
res.off("close", onAbort);
|
|
73
|
+
req.socket?.off?.("close", onAbort);
|
|
74
|
+
ac.abort();
|
|
75
|
+
};
|
|
76
|
+
res.once("close", onAbort);
|
|
77
|
+
req.socket?.once?.("close", onAbort);
|
|
78
|
+
const url = createURL(req);
|
|
79
|
+
const init = {
|
|
80
|
+
headers: createHeaders(req.headers),
|
|
81
|
+
method: req.method,
|
|
82
|
+
signal: ac.signal
|
|
83
|
+
};
|
|
84
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
85
|
+
init.body = createBody(req, opts);
|
|
86
|
+
init.duplex = "half";
|
|
87
|
+
}
|
|
88
|
+
const request = new Request(url, init);
|
|
89
|
+
return request;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
//#endregion
|
|
93
|
+
//#region src/adapters/node-http/writeResponse.ts
|
|
94
|
+
async function writeResponseBodyChunk(res, chunk) {
|
|
95
|
+
if (res.write(chunk) === false) await new Promise((resolve, reject) => {
|
|
96
|
+
const onError = (err) => {
|
|
97
|
+
reject(err);
|
|
98
|
+
cleanup();
|
|
99
|
+
};
|
|
100
|
+
const onDrain = () => {
|
|
101
|
+
resolve();
|
|
102
|
+
cleanup();
|
|
103
|
+
};
|
|
104
|
+
const cleanup = () => {
|
|
105
|
+
res.off("error", onError);
|
|
106
|
+
res.off("drain", onDrain);
|
|
107
|
+
};
|
|
108
|
+
res.once("error", onError);
|
|
109
|
+
res.once("drain", onDrain);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
async function writeResponseBody(opts) {
|
|
116
|
+
const { res } = opts;
|
|
117
|
+
try {
|
|
118
|
+
const writableStream = new WritableStream({ async write(chunk) {
|
|
119
|
+
await writeResponseBodyChunk(res, chunk);
|
|
120
|
+
res.flush?.();
|
|
121
|
+
} });
|
|
122
|
+
await opts.body.pipeTo(writableStream, { signal: opts.signal });
|
|
123
|
+
} catch (err) {
|
|
124
|
+
if (isAbortError(err)) return;
|
|
125
|
+
throw err;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* @internal
|
|
130
|
+
*/
|
|
131
|
+
async function writeResponse(opts) {
|
|
132
|
+
const { response, rawResponse } = opts;
|
|
133
|
+
if (rawResponse.statusCode === 200) rawResponse.statusCode = response.status;
|
|
134
|
+
for (const [key, value] of response.headers) rawResponse.setHeader(key, value);
|
|
135
|
+
try {
|
|
136
|
+
if (response.body) await writeResponseBody({
|
|
137
|
+
res: rawResponse,
|
|
138
|
+
signal: opts.request.signal,
|
|
139
|
+
body: response.body
|
|
140
|
+
});
|
|
141
|
+
} catch (err) {
|
|
142
|
+
if (!rawResponse.headersSent) rawResponse.statusCode = 500;
|
|
143
|
+
throw err;
|
|
144
|
+
} finally {
|
|
145
|
+
rawResponse.end();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
//#endregion
|
|
150
|
+
//#region src/adapters/node-http/nodeHTTPRequestHandler.ts
|
|
151
|
+
/**
|
|
152
|
+
* @internal
|
|
153
|
+
*/
|
|
154
|
+
function internal_exceptionHandler(opts) {
|
|
155
|
+
return (cause) => {
|
|
156
|
+
const { res, req } = opts;
|
|
157
|
+
const error = getTRPCErrorFromUnknown(cause);
|
|
158
|
+
const shape = getErrorShape({
|
|
159
|
+
config: opts.router._def._config,
|
|
160
|
+
error,
|
|
161
|
+
type: "unknown",
|
|
162
|
+
path: void 0,
|
|
163
|
+
input: void 0,
|
|
164
|
+
ctx: void 0
|
|
165
|
+
});
|
|
166
|
+
opts.onError?.({
|
|
167
|
+
req,
|
|
168
|
+
error,
|
|
169
|
+
type: "unknown",
|
|
170
|
+
path: void 0,
|
|
171
|
+
input: void 0,
|
|
172
|
+
ctx: void 0
|
|
173
|
+
});
|
|
174
|
+
const transformed = transformTRPCResponse(opts.router._def._config, { error: shape });
|
|
175
|
+
res.statusCode = shape.data.httpStatus;
|
|
176
|
+
res.end(JSON.stringify(transformed));
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* @remark the promise never rejects
|
|
181
|
+
*/
|
|
182
|
+
async function nodeHTTPRequestHandler(opts) {
|
|
183
|
+
return new Promise((resolve) => {
|
|
184
|
+
const handleViaMiddleware = opts.middleware ?? ((_req, _res, next) => next());
|
|
185
|
+
opts.res.once("finish", () => {
|
|
186
|
+
resolve();
|
|
187
|
+
});
|
|
188
|
+
return handleViaMiddleware(opts.req, opts.res, (err) => {
|
|
189
|
+
run(async () => {
|
|
190
|
+
const request = incomingMessageToRequest(opts.req, opts.res, { maxBodySize: opts.maxBodySize ?? null });
|
|
191
|
+
const createContext = async (innerOpts) => {
|
|
192
|
+
return await opts.createContext?.({
|
|
193
|
+
...opts,
|
|
194
|
+
...innerOpts
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
const response = await resolveResponse({
|
|
198
|
+
...opts,
|
|
199
|
+
req: request,
|
|
200
|
+
error: err ? getTRPCErrorFromUnknown(err) : null,
|
|
201
|
+
createContext,
|
|
202
|
+
onError(o) {
|
|
203
|
+
opts?.onError?.({
|
|
204
|
+
...o,
|
|
205
|
+
req: opts.req
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
await writeResponse({
|
|
210
|
+
request,
|
|
211
|
+
response,
|
|
212
|
+
rawResponse: opts.res
|
|
213
|
+
});
|
|
214
|
+
}).catch(internal_exceptionHandler(opts));
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
//#endregion
|
|
220
|
+
export { createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler };
|
|
221
|
+
//# sourceMappingURL=node-http-BUQnHuGI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-http-BUQnHuGI.mjs","names":["req: NodeHTTPRequest","opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n }","chunk: Buffer","incoming: http.IncomingHttpHeaders","res: NodeHTTPResponse","init: RequestInit","res: NodeHTTPResponse","chunk: Uint8Array","err: unknown","opts: {\n res: NodeHTTPResponse;\n signal: AbortSignal;\n body: NonNullable<Response['body']>;\n}","opts: {\n request: Request;\n response: Response;\n rawResponse: NodeHTTPResponse;\n}","opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>","cause: unknown","err: unknown","createContext: ResolveHTTPRequestOptionsContextFn<\n TRouter\n >"],"sources":["../src/adapters/node-http/incomingMessageToRequest.ts","../src/adapters/node-http/writeResponse.ts","../src/adapters/node-http/nodeHTTPRequestHandler.ts"],"sourcesContent":["import type * as http from 'http';\nimport { TRPCError } from '../../@trpc/server';\nimport type { NodeHTTPRequest, NodeHTTPResponse } from './types';\n\nfunction createBody(\n req: NodeHTTPRequest,\n opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n },\n): RequestInit['body'] {\n // Some adapters will pre-parse the body and add it to the request object\n if ('body' in req) {\n if (req.body === undefined) {\n // If body property exists but is undefined, return undefined\n return undefined;\n }\n // If the body is already a string, return it directly\n if (typeof req.body === 'string') {\n return req.body;\n }\n // If body exists but isn't a string, stringify it as JSON\n return JSON.stringify(req.body);\n }\n let size = 0;\n let hasClosed = false;\n\n return new ReadableStream({\n start(controller) {\n const onData = (chunk: Buffer) => {\n size += chunk.length;\n if (!opts.maxBodySize || size <= opts.maxBodySize) {\n controller.enqueue(\n new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength),\n );\n return;\n }\n controller.error(\n new TRPCError({\n code: 'PAYLOAD_TOO_LARGE',\n }),\n );\n hasClosed = true;\n req.off('data', onData);\n req.off('end', onEnd);\n };\n\n const onEnd = () => {\n if (hasClosed) {\n return;\n }\n hasClosed = true;\n req.off('data', onData);\n req.off('end', onEnd);\n controller.close();\n };\n\n req.on('data', onData);\n req.on('end', onEnd);\n },\n cancel() {\n req.destroy();\n },\n });\n}\nexport function createURL(req: NodeHTTPRequest): URL {\n try {\n const protocol =\n // http2\n (req.headers[':scheme'] && req.headers[':scheme'] === 'https') ||\n // http1\n (req.socket && 'encrypted' in req.socket && req.socket.encrypted)\n ? 'https:'\n : 'http:';\n\n const host = req.headers.host ?? req.headers[':authority'] ?? 'localhost';\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return new URL(req.url!, `${protocol}//${host}`);\n } catch (cause) {\n throw new TRPCError({\n code: 'BAD_REQUEST',\n message: 'Invalid URL',\n cause,\n });\n }\n}\n\nfunction createHeaders(incoming: http.IncomingHttpHeaders): Headers {\n const headers = new Headers();\n\n for (const key in incoming) {\n const value = incoming[key];\n if (typeof key === 'string' && key.startsWith(':')) {\n // Skip HTTP/2 pseudo-headers\n continue;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n headers.append(key, item);\n }\n } else if (value != null) {\n headers.append(key, value);\n }\n }\n\n return headers;\n}\n\n/**\n * Convert an [`IncomingMessage`](https://nodejs.org/api/http.html#class-httpincomingmessage) to a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)\n */\nexport function incomingMessageToRequest(\n req: NodeHTTPRequest,\n res: NodeHTTPResponse,\n opts: {\n /**\n * Max body size in bytes. If the body is larger than this, the request will be aborted\n */\n maxBodySize: number | null;\n },\n): Request {\n const ac = new AbortController();\n\n const onAbort = () => {\n res.off('close', onAbort);\n req.socket?.off?.('close', onAbort);\n\n // abort the request\n ac.abort();\n };\n\n res.once('close', onAbort);\n req.socket?.once?.('close', onAbort);\n\n // Get host from either regular header or HTTP/2 pseudo-header\n const url = createURL(req);\n\n const init: RequestInit = {\n headers: createHeaders(req.headers),\n method: req.method,\n signal: ac.signal,\n };\n\n if (req.method !== 'GET' && req.method !== 'HEAD') {\n init.body = createBody(req, opts);\n\n // init.duplex = 'half' must be set when body is a ReadableStream, and Node follows the spec.\n // However, this property is not defined in the TypeScript types for RequestInit, so we have\n // to cast it here in order to set it without a type error.\n // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex\n // @ts-expect-error this is fine\n init.duplex = 'half';\n }\n\n const request = new Request(url, init);\n\n return request;\n}\n","// eslint-disable-next-line no-restricted-imports\nimport { isAbortError } from '../../unstable-core-do-not-import';\nimport type { NodeHTTPResponse } from './types';\n\nasync function writeResponseBodyChunk(\n res: NodeHTTPResponse,\n chunk: Uint8Array,\n) {\n // useful for debugging 🙃\n // console.debug('writing', new TextDecoder().decode(chunk));\n\n if (res.write(chunk) === false) {\n await new Promise<void>((resolve, reject) => {\n const onError = (err: unknown) => {\n reject(err);\n cleanup();\n };\n const onDrain = () => {\n resolve();\n cleanup();\n };\n const cleanup = () => {\n res.off('error', onError);\n res.off('drain', onDrain);\n };\n res.once('error', onError);\n res.once('drain', onDrain);\n });\n }\n}\n/**\n * @internal\n */\n\nexport async function writeResponseBody(opts: {\n res: NodeHTTPResponse;\n signal: AbortSignal;\n body: NonNullable<Response['body']>;\n}) {\n const { res } = opts;\n\n try {\n const writableStream = new WritableStream({\n async write(chunk) {\n await writeResponseBodyChunk(res, chunk);\n res.flush?.();\n },\n });\n\n await opts.body.pipeTo(writableStream, {\n signal: opts.signal,\n });\n } catch (err) {\n if (isAbortError(err)) {\n return;\n }\n throw err;\n }\n}\n/**\n * @internal\n */\n\nexport async function writeResponse(opts: {\n request: Request;\n response: Response;\n rawResponse: NodeHTTPResponse;\n}) {\n const { response, rawResponse } = opts;\n\n // Only override status code if it hasn't been explicitly set in a procedure etc\n if (rawResponse.statusCode === 200) {\n rawResponse.statusCode = response.status;\n }\n for (const [key, value] of response.headers) {\n rawResponse.setHeader(key, value);\n }\n try {\n if (response.body) {\n await writeResponseBody({\n res: rawResponse,\n signal: opts.request.signal,\n body: response.body,\n });\n }\n } catch (err) {\n if (!rawResponse.headersSent) {\n rawResponse.statusCode = 500;\n }\n throw err;\n } finally {\n rawResponse.end();\n }\n}\n","/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\n\n// @trpc/server\n\nimport {\n getTRPCErrorFromUnknown,\n transformTRPCResponse,\n type AnyRouter,\n} from '../../@trpc/server';\nimport type { ResolveHTTPRequestOptionsContextFn } from '../../@trpc/server/http';\nimport { resolveResponse } from '../../@trpc/server/http';\n// eslint-disable-next-line no-restricted-imports\nimport { getErrorShape, run } from '../../unstable-core-do-not-import';\nimport { incomingMessageToRequest } from './incomingMessageToRequest';\nimport type {\n NodeHTTPRequest,\n NodeHTTPRequestHandlerOptions,\n NodeHTTPResponse,\n} from './types';\nimport { writeResponse } from './writeResponse';\n\n/**\n * @internal\n */\nexport function internal_exceptionHandler<\n TRouter extends AnyRouter,\n TRequest extends NodeHTTPRequest,\n TResponse extends NodeHTTPResponse,\n>(opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>) {\n return (cause: unknown) => {\n const { res, req } = opts;\n const error = getTRPCErrorFromUnknown(cause);\n\n const shape = getErrorShape({\n config: opts.router._def._config,\n error,\n type: 'unknown',\n path: undefined,\n input: undefined,\n ctx: undefined,\n });\n\n opts.onError?.({\n req,\n error,\n type: 'unknown',\n path: undefined,\n input: undefined,\n ctx: undefined,\n });\n\n const transformed = transformTRPCResponse(opts.router._def._config, {\n error: shape,\n });\n\n res.statusCode = shape.data.httpStatus;\n res.end(JSON.stringify(transformed));\n };\n}\n\n/**\n * @remark the promise never rejects\n */\nexport async function nodeHTTPRequestHandler<\n TRouter extends AnyRouter,\n TRequest extends NodeHTTPRequest,\n TResponse extends NodeHTTPResponse,\n>(opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>) {\n return new Promise<void>((resolve) => {\n const handleViaMiddleware =\n opts.middleware ?? ((_req, _res, next) => next());\n\n opts.res.once('finish', () => {\n resolve();\n });\n return handleViaMiddleware(opts.req, opts.res, (err: unknown) => {\n run(async () => {\n const request = incomingMessageToRequest(opts.req, opts.res, {\n maxBodySize: opts.maxBodySize ?? null,\n });\n\n // Build tRPC dependencies\n const createContext: ResolveHTTPRequestOptionsContextFn<\n TRouter\n > = async (innerOpts) => {\n return await opts.createContext?.({\n ...opts,\n ...innerOpts,\n });\n };\n\n const response = await resolveResponse({\n ...opts,\n req: request,\n error: err ? getTRPCErrorFromUnknown(err) : null,\n createContext,\n onError(o) {\n opts?.onError?.({\n ...o,\n req: opts.req,\n });\n },\n });\n\n await writeResponse({\n request,\n response,\n rawResponse: opts.res,\n });\n }).catch(internal_exceptionHandler(opts));\n });\n });\n}\n"],"mappings":";;;;;;AAIA,SAAS,WACPA,KACAC,MAMqB;AAErB,KAAI,UAAU,KAAK;AACjB,MAAI,IAAI,gBAEN;AAGF,aAAW,IAAI,SAAS,SACtB,QAAO,IAAI;AAGb,SAAO,KAAK,UAAU,IAAI,KAAK;CAChC;CACD,IAAI,OAAO;CACX,IAAI,YAAY;AAEhB,QAAO,IAAI,eAAe;EACxB,MAAM,YAAY;GAChB,MAAM,SAAS,CAACC,UAAkB;AAChC,YAAQ,MAAM;AACd,SAAK,KAAK,eAAe,QAAQ,KAAK,aAAa;AACjD,gBAAW,QACT,IAAI,WAAW,MAAM,QAAQ,MAAM,YAAY,MAAM,YACtD;AACD;IACD;AACD,eAAW,MACT,IAAI,UAAU,EACZ,MAAM,oBACP,GACF;AACD,gBAAY;AACZ,QAAI,IAAI,QAAQ,OAAO;AACvB,QAAI,IAAI,OAAO,MAAM;GACtB;GAED,MAAM,QAAQ,MAAM;AAClB,QAAI,UACF;AAEF,gBAAY;AACZ,QAAI,IAAI,QAAQ,OAAO;AACvB,QAAI,IAAI,OAAO,MAAM;AACrB,eAAW,OAAO;GACnB;AAED,OAAI,GAAG,QAAQ,OAAO;AACtB,OAAI,GAAG,OAAO,MAAM;EACrB;EACD,SAAS;AACP,OAAI,SAAS;EACd;CACF;AACF;AACD,SAAgB,UAAUF,KAA2B;AACnD,KAAI;EACF,MAAM,WAEH,IAAI,QAAQ,cAAc,IAAI,QAAQ,eAAe,WAErD,IAAI,UAAU,eAAe,IAAI,UAAU,IAAI,OAAO,YACnD,WACA;EAEN,MAAM,OAAO,IAAI,QAAQ,QAAQ,IAAI,QAAQ,iBAAiB;AAG9D,SAAO,IAAI,IAAI,IAAI,MAAO,EAAE,SAAS,IAAI,KAAK;CAC/C,SAAQ,OAAO;AACd,QAAM,IAAI,UAAU;GAClB,MAAM;GACN,SAAS;GACT;EACD;CACF;AACF;AAED,SAAS,cAAcG,UAA6C;CAClE,MAAM,UAAU,IAAI;AAEpB,MAAK,MAAM,OAAO,UAAU;EAC1B,MAAM,QAAQ,SAAS;AACvB,aAAW,QAAQ,YAAY,IAAI,WAAW,IAAI,CAEhD;AAGF,MAAI,MAAM,QAAQ,MAAM,CACtB,MAAK,MAAM,QAAQ,MACjB,SAAQ,OAAO,KAAK,KAAK;WAElB,SAAS,KAClB,SAAQ,OAAO,KAAK,MAAM;CAE7B;AAED,QAAO;AACR;;;;AAKD,SAAgB,yBACdH,KACAI,KACAH,MAMS;CACT,MAAM,KAAK,IAAI;CAEf,MAAM,UAAU,MAAM;AACpB,MAAI,IAAI,SAAS,QAAQ;AACzB,MAAI,QAAQ,MAAM,SAAS,QAAQ;AAGnC,KAAG,OAAO;CACX;AAED,KAAI,KAAK,SAAS,QAAQ;AAC1B,KAAI,QAAQ,OAAO,SAAS,QAAQ;CAGpC,MAAM,MAAM,UAAU,IAAI;CAE1B,MAAMI,OAAoB;EACxB,SAAS,cAAc,IAAI,QAAQ;EACnC,QAAQ,IAAI;EACZ,QAAQ,GAAG;CACZ;AAED,KAAI,IAAI,WAAW,SAAS,IAAI,WAAW,QAAQ;AACjD,OAAK,OAAO,WAAW,KAAK,KAAK;AAOjC,OAAK,SAAS;CACf;CAED,MAAM,UAAU,IAAI,QAAQ,KAAK;AAEjC,QAAO;AACR;;;;AC7JD,eAAe,uBACbC,KACAC,OACA;AAIA,KAAI,IAAI,MAAM,MAAM,KAAK,MACvB,OAAM,IAAI,QAAc,CAAC,SAAS,WAAW;EAC3C,MAAM,UAAU,CAACC,QAAiB;AAChC,UAAO,IAAI;AACX,YAAS;EACV;EACD,MAAM,UAAU,MAAM;AACpB,YAAS;AACT,YAAS;EACV;EACD,MAAM,UAAU,MAAM;AACpB,OAAI,IAAI,SAAS,QAAQ;AACzB,OAAI,IAAI,SAAS,QAAQ;EAC1B;AACD,MAAI,KAAK,SAAS,QAAQ;AAC1B,MAAI,KAAK,SAAS,QAAQ;CAC3B;AAEJ;;;;AAKD,eAAsB,kBAAkBC,MAIrC;CACD,MAAM,EAAE,KAAK,GAAG;AAEhB,KAAI;EACF,MAAM,iBAAiB,IAAI,eAAe,EACxC,MAAM,MAAM,OAAO;AACjB,SAAM,uBAAuB,KAAK,MAAM;AACxC,OAAI,SAAS;EACd,EACF;AAED,QAAM,KAAK,KAAK,OAAO,gBAAgB,EACrC,QAAQ,KAAK,OACd,EAAC;CACH,SAAQ,KAAK;AACZ,MAAI,aAAa,IAAI,CACnB;AAEF,QAAM;CACP;AACF;;;;AAKD,eAAsB,cAAcC,MAIjC;CACD,MAAM,EAAE,UAAU,aAAa,GAAG;AAGlC,KAAI,YAAY,eAAe,IAC7B,aAAY,aAAa,SAAS;AAEpC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,SAAS,QAClC,aAAY,UAAU,KAAK,MAAM;AAEnC,KAAI;AACF,MAAI,SAAS,KACX,OAAM,kBAAkB;GACtB,KAAK;GACL,QAAQ,KAAK,QAAQ;GACrB,MAAM,SAAS;EAChB,EAAC;CAEL,SAAQ,KAAK;AACZ,OAAK,YAAY,YACf,aAAY,aAAa;AAE3B,QAAM;CACP,UAAS;AACR,cAAY,KAAK;CAClB;AACF;;;;;;;AC7DD,SAAgB,0BAIdC,MAAmE;AACnE,QAAO,CAACC,UAAmB;EACzB,MAAM,EAAE,KAAK,KAAK,GAAG;EACrB,MAAM,QAAQ,wBAAwB,MAAM;EAE5C,MAAM,QAAQ,cAAc;GAC1B,QAAQ,KAAK,OAAO,KAAK;GACzB;GACA,MAAM;GACN;GACA;GACA;EACD,EAAC;AAEF,OAAK,UAAU;GACb;GACA;GACA,MAAM;GACN;GACA;GACA;EACD,EAAC;EAEF,MAAM,cAAc,sBAAsB,KAAK,OAAO,KAAK,SAAS,EAClE,OAAO,MACR,EAAC;AAEF,MAAI,aAAa,MAAM,KAAK;AAC5B,MAAI,IAAI,KAAK,UAAU,YAAY,CAAC;CACrC;AACF;;;;AAKD,eAAsB,uBAIpBD,MAAmE;AACnE,QAAO,IAAI,QAAc,CAAC,YAAY;EACpC,MAAM,sBACJ,KAAK,eAAe,CAAC,MAAM,MAAM,SAAS,MAAM;AAElD,OAAK,IAAI,KAAK,UAAU,MAAM;AAC5B,YAAS;EACV,EAAC;AACF,SAAO,oBAAoB,KAAK,KAAK,KAAK,KAAK,CAACE,QAAiB;AAC/D,OAAI,YAAY;IACd,MAAM,UAAU,yBAAyB,KAAK,KAAK,KAAK,KAAK,EAC3D,aAAa,KAAK,eAAe,KAClC,EAAC;IAGF,MAAMC,gBAEF,OAAO,cAAc;AACvB,YAAO,MAAM,KAAK,gBAAgB;MAChC,GAAG;MACH,GAAG;KACJ,EAAC;IACH;IAED,MAAM,WAAW,MAAM,gBAAgB;KACrC,GAAG;KACH,KAAK;KACL,OAAO,MAAM,wBAAwB,IAAI,GAAG;KAC5C;KACA,QAAQ,GAAG;AACT,YAAM,UAAU;OACd,GAAG;OACH,KAAK,KAAK;MACX,EAAC;KACH;IACF,EAAC;AAEF,UAAM,cAAc;KAClB;KACA;KACA,aAAa,KAAK;IACnB,EAAC;GACH,EAAC,CAAC,MAAM,0BAA0B,KAAK,CAAC;EAC1C,EAAC;CACH;AACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const require_observable = require('../observable-BwdrSFZU.cjs');
|
|
2
|
+
const require_observable$1 = require('../observable-C6qq2Ydk.cjs');
|
|
3
|
+
|
|
4
|
+
exports.behaviorSubject = require_observable$1.behaviorSubject;
|
|
5
|
+
exports.distinctUntilChanged = require_observable$1.distinctUntilChanged;
|
|
6
|
+
exports.distinctUntilDeepChanged = require_observable$1.distinctUntilDeepChanged;
|
|
7
|
+
exports.isObservable = require_observable.isObservable;
|
|
8
|
+
exports.map = require_observable$1.map;
|
|
9
|
+
exports.observable = require_observable.observable;
|
|
10
|
+
exports.observableToAsyncIterable = require_observable.observableToAsyncIterable;
|
|
11
|
+
exports.observableToPromise = require_observable.observableToPromise;
|
|
12
|
+
exports.share = require_observable$1.share;
|
|
13
|
+
exports.tap = require_observable$1.tap;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { BehaviorSubject, Observable, Observer, ReadonlyBehaviorSubject, TeardownLogic, Unsubscribable, UnsubscribeFn, behaviorSubject, distinctUntilChanged, distinctUntilDeepChanged, inferObservableValue, isObservable, map, observable, observableToAsyncIterable, observableToPromise, share, tap } from "../index.d-BiUz7kM_.cjs";
|
|
2
|
+
export { BehaviorSubject, Observable, Observer, ReadonlyBehaviorSubject, TeardownLogic, Unsubscribable, UnsubscribeFn, behaviorSubject, distinctUntilChanged, distinctUntilDeepChanged, inferObservableValue, isObservable, map, observable, observableToAsyncIterable, observableToPromise, share, tap };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { BehaviorSubject, Observable, Observer, ReadonlyBehaviorSubject, TeardownLogic, Unsubscribable, UnsubscribeFn, behaviorSubject, distinctUntilChanged, distinctUntilDeepChanged, inferObservableValue, isObservable, map, observable, observableToAsyncIterable, observableToPromise, share, tap } from "../index.d-D4qZxQJh.mjs";
|
|
2
|
+
export { BehaviorSubject, Observable, Observer, ReadonlyBehaviorSubject, TeardownLogic, Unsubscribable, UnsubscribeFn, behaviorSubject, distinctUntilChanged, distinctUntilDeepChanged, inferObservableValue, isObservable, map, observable, observableToAsyncIterable, observableToPromise, share, tap };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { isObservable, observable, observableToAsyncIterable, observableToPromise } from "../observable-B1orLHHI.mjs";
|
|
2
|
+
import { behaviorSubject, distinctUntilChanged, distinctUntilDeepChanged, map, share, tap } from "../observable-CFXA_tyK.mjs";
|
|
3
|
+
|
|
4
|
+
export { behaviorSubject, distinctUntilChanged, distinctUntilDeepChanged, isObservable, map, observable, observableToAsyncIterable, observableToPromise, share, tap };
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
//#region src/observable/observable.ts
|
|
2
|
+
/** @public */
|
|
3
|
+
function isObservable(x) {
|
|
4
|
+
return typeof x === "object" && x !== null && "subscribe" in x;
|
|
5
|
+
}
|
|
6
|
+
/** @public */
|
|
7
|
+
function observable(subscribe) {
|
|
8
|
+
const self = {
|
|
9
|
+
subscribe(observer) {
|
|
10
|
+
let teardownRef = null;
|
|
11
|
+
let isDone = false;
|
|
12
|
+
let unsubscribed = false;
|
|
13
|
+
let teardownImmediately = false;
|
|
14
|
+
function unsubscribe() {
|
|
15
|
+
if (teardownRef === null) {
|
|
16
|
+
teardownImmediately = true;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (unsubscribed) return;
|
|
20
|
+
unsubscribed = true;
|
|
21
|
+
if (typeof teardownRef === "function") teardownRef();
|
|
22
|
+
else if (teardownRef) teardownRef.unsubscribe();
|
|
23
|
+
}
|
|
24
|
+
teardownRef = subscribe({
|
|
25
|
+
next(value) {
|
|
26
|
+
if (isDone) return;
|
|
27
|
+
observer.next?.(value);
|
|
28
|
+
},
|
|
29
|
+
error(err) {
|
|
30
|
+
if (isDone) return;
|
|
31
|
+
isDone = true;
|
|
32
|
+
observer.error?.(err);
|
|
33
|
+
unsubscribe();
|
|
34
|
+
},
|
|
35
|
+
complete() {
|
|
36
|
+
if (isDone) return;
|
|
37
|
+
isDone = true;
|
|
38
|
+
observer.complete?.();
|
|
39
|
+
unsubscribe();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
if (teardownImmediately) unsubscribe();
|
|
43
|
+
return { unsubscribe };
|
|
44
|
+
},
|
|
45
|
+
pipe(...operations) {
|
|
46
|
+
return operations.reduce(pipeReducer, self);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
return self;
|
|
50
|
+
}
|
|
51
|
+
function pipeReducer(prev, fn) {
|
|
52
|
+
return fn(prev);
|
|
53
|
+
}
|
|
54
|
+
/** @internal */
|
|
55
|
+
function observableToPromise(observable$1) {
|
|
56
|
+
const ac = new AbortController();
|
|
57
|
+
const promise = new Promise((resolve, reject) => {
|
|
58
|
+
let isDone = false;
|
|
59
|
+
function onDone() {
|
|
60
|
+
if (isDone) return;
|
|
61
|
+
isDone = true;
|
|
62
|
+
obs$.unsubscribe();
|
|
63
|
+
}
|
|
64
|
+
ac.signal.addEventListener("abort", () => {
|
|
65
|
+
reject(ac.signal.reason);
|
|
66
|
+
});
|
|
67
|
+
const obs$ = observable$1.subscribe({
|
|
68
|
+
next(data) {
|
|
69
|
+
isDone = true;
|
|
70
|
+
resolve(data);
|
|
71
|
+
onDone();
|
|
72
|
+
},
|
|
73
|
+
error(data) {
|
|
74
|
+
reject(data);
|
|
75
|
+
},
|
|
76
|
+
complete() {
|
|
77
|
+
ac.abort();
|
|
78
|
+
onDone();
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
return promise;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
function observableToReadableStream(observable$1, signal) {
|
|
88
|
+
let unsub = null;
|
|
89
|
+
const onAbort = () => {
|
|
90
|
+
unsub?.unsubscribe();
|
|
91
|
+
unsub = null;
|
|
92
|
+
signal.removeEventListener("abort", onAbort);
|
|
93
|
+
};
|
|
94
|
+
return new ReadableStream({
|
|
95
|
+
start(controller) {
|
|
96
|
+
unsub = observable$1.subscribe({
|
|
97
|
+
next(data) {
|
|
98
|
+
controller.enqueue({
|
|
99
|
+
ok: true,
|
|
100
|
+
value: data
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
error(error) {
|
|
104
|
+
controller.enqueue({
|
|
105
|
+
ok: false,
|
|
106
|
+
error
|
|
107
|
+
});
|
|
108
|
+
controller.close();
|
|
109
|
+
},
|
|
110
|
+
complete() {
|
|
111
|
+
controller.close();
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
if (signal.aborted) onAbort();
|
|
115
|
+
else signal.addEventListener("abort", onAbort, { once: true });
|
|
116
|
+
},
|
|
117
|
+
cancel() {
|
|
118
|
+
onAbort();
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/** @internal */
|
|
123
|
+
function observableToAsyncIterable(observable$1, signal) {
|
|
124
|
+
const stream = observableToReadableStream(observable$1, signal);
|
|
125
|
+
const reader = stream.getReader();
|
|
126
|
+
const iterator = {
|
|
127
|
+
async next() {
|
|
128
|
+
const value = await reader.read();
|
|
129
|
+
if (value.done) return {
|
|
130
|
+
value: void 0,
|
|
131
|
+
done: true
|
|
132
|
+
};
|
|
133
|
+
const { value: result } = value;
|
|
134
|
+
if (!result.ok) throw result.error;
|
|
135
|
+
return {
|
|
136
|
+
value: result.value,
|
|
137
|
+
done: false
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
async return() {
|
|
141
|
+
await reader.cancel();
|
|
142
|
+
return {
|
|
143
|
+
value: void 0,
|
|
144
|
+
done: true
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
return { [Symbol.asyncIterator]() {
|
|
149
|
+
return iterator;
|
|
150
|
+
} };
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
//#endregion
|
|
154
|
+
export { isObservable, observable, observableToAsyncIterable, observableToPromise };
|
|
155
|
+
//# sourceMappingURL=observable-B1orLHHI.mjs.map
|