@trpc/server 11.0.0-alpha-tmp-subscription-connection-state.489 → 11.0.0-alpha-tmp-12-06-react.667
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@trpc/server/http.d.ts +1 -1
- package/dist/@trpc/server/http.d.ts.map +1 -1
- package/dist/@trpc/server/index.d.ts +1 -1
- package/dist/@trpc/server/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/getPlanner.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/getPlanner.js +2 -2
- package/dist/adapters/aws-lambda/getPlanner.mjs +2 -2
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.js +2 -0
- package/dist/adapters/aws-lambda/index.mjs +2 -0
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +27 -7
- package/dist/adapters/express.mjs +27 -7
- package/dist/adapters/fastify/fastifyRequestHandler.js +3 -1
- package/dist/adapters/fastify/fastifyRequestHandler.mjs +3 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.js +9 -2
- package/dist/adapters/fastify/fastifyTRPCPlugin.mjs +10 -3
- package/dist/adapters/fetch/fetchRequestHandler.js +9 -8
- package/dist/adapters/fetch/fetchRequestHandler.mjs +9 -8
- package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts.map +1 -1
- package/dist/adapters/next-app-dir/nextAppDirCaller.js +10 -5
- package/dist/adapters/next-app-dir/nextAppDirCaller.mjs +10 -5
- package/dist/adapters/next-app-dir/notFound.js +2 -0
- package/dist/adapters/next-app-dir/notFound.mjs +2 -0
- package/dist/adapters/next-app-dir/redirect.js +16 -1
- package/dist/adapters/next-app-dir/redirect.mjs +16 -1
- package/dist/adapters/next-app-dir/rethrowNextErrors.d.ts.map +1 -1
- package/dist/adapters/next-app-dir/rethrowNextErrors.js +4 -3
- package/dist/adapters/next-app-dir/rethrowNextErrors.mjs +4 -3
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +23 -30
- package/dist/adapters/next.mjs +24 -31
- package/dist/adapters/node-http/incomingMessageToRequest.d.ts +2 -1
- package/dist/adapters/node-http/incomingMessageToRequest.d.ts.map +1 -1
- package/dist/adapters/node-http/incomingMessageToRequest.js +83 -40
- package/dist/adapters/node-http/incomingMessageToRequest.mjs +83 -41
- package/dist/adapters/node-http/index.js +2 -0
- package/dist/adapters/node-http/index.mjs +2 -2
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +7 -0
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.js +70 -58
- package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +70 -59
- package/dist/adapters/node-http/writeResponse.d.ts +18 -0
- package/dist/adapters/node-http/writeResponse.d.ts.map +1 -0
- package/dist/adapters/node-http/writeResponse.js +82 -0
- package/dist/adapters/node-http/writeResponse.mjs +79 -0
- package/dist/adapters/standalone.d.ts +5 -2
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +25 -13
- package/dist/adapters/standalone.mjs +26 -14
- package/dist/adapters/ws.d.ts +14 -4
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +217 -101
- package/dist/adapters/ws.mjs +217 -102
- package/dist/bundle-analysis.json +415 -313
- package/dist/http.js +2 -4
- package/dist/http.mjs +2 -2
- package/dist/index.js +3 -0
- package/dist/index.mjs +3 -1
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.1_rollup@4.27.4_tslib@2.8.1_typescript@5.7.2/node_modules/tslib/tslib.es6.js +73 -0
- package/dist/observable/behaviorSubject.d.ts +15 -0
- package/dist/observable/behaviorSubject.d.ts.map +1 -0
- package/dist/observable/behaviorSubject.js +40 -0
- package/dist/observable/behaviorSubject.mjs +38 -0
- package/dist/observable/index.d.ts +3 -3
- package/dist/observable/index.d.ts.map +1 -1
- package/dist/observable/index.js +5 -0
- package/dist/observable/index.mjs +3 -2
- package/dist/observable/observable.d.ts +2 -1
- package/dist/observable/observable.d.ts.map +1 -1
- package/dist/observable/observable.js +31 -8
- package/dist/observable/observable.mjs +31 -8
- package/dist/observable/operators.d.ts +2 -0
- package/dist/observable/operators.d.ts.map +1 -1
- package/dist/observable/operators.js +35 -0
- package/dist/observable/operators.mjs +34 -1
- package/dist/rpc.js +2 -0
- package/dist/rpc.mjs +2 -0
- package/dist/shared.js +2 -0
- package/dist/shared.mjs +2 -0
- package/dist/unstable-core-do-not-import/clientish/inference.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/clientish/inferrable.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/clientish/serialize.d.ts +2 -2
- package/dist/unstable-core-do-not-import/clientish/serialize.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/createProxy.js +1 -1
- package/dist/unstable-core-do-not-import/createProxy.mjs +1 -1
- package/dist/unstable-core-do-not-import/error/TRPCError.d.ts +1 -1
- package/dist/unstable-core-do-not-import/error/TRPCError.js +16 -1
- package/dist/unstable-core-do-not-import/error/TRPCError.mjs +16 -1
- package/dist/unstable-core-do-not-import/error/formatter.js +1 -1
- package/dist/unstable-core-do-not-import/error/formatter.mjs +1 -1
- package/dist/unstable-core-do-not-import/error/getErrorShape.js +2 -2
- package/dist/unstable-core-do-not-import/error/getErrorShape.mjs +2 -2
- package/dist/unstable-core-do-not-import/http/contentType.js +3 -3
- package/dist/unstable-core-do-not-import/http/contentType.mjs +3 -3
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts +6 -1
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +28 -0
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +25 -1
- package/dist/unstable-core-do-not-import/http/isAbortError.d.ts +4 -0
- package/dist/unstable-core-do-not-import/http/isAbortError.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/isAbortError.js +9 -0
- package/dist/unstable-core-do-not-import/http/isAbortError.mjs +7 -0
- package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/http/resolveResponse.js +180 -96
- package/dist/unstable-core-do-not-import/http/resolveResponse.mjs +182 -98
- package/dist/unstable-core-do-not-import/http/types.d.ts +1 -1
- package/dist/unstable-core-do-not-import/initTRPC.d.ts +11 -11
- package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/initTRPC.js +11 -11
- package/dist/unstable-core-do-not-import/initTRPC.mjs +11 -11
- package/dist/unstable-core-do-not-import/middleware.d.ts +2 -1
- package/dist/unstable-core-do-not-import/middleware.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/middleware.js +2 -2
- package/dist/unstable-core-do-not-import/middleware.mjs +2 -2
- package/dist/unstable-core-do-not-import/parser.d.ts +5 -1
- package/dist/unstable-core-do-not-import/parser.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/parser.js +4 -0
- package/dist/unstable-core-do-not-import/parser.mjs +4 -0
- package/dist/unstable-core-do-not-import/procedure.d.ts +8 -2
- package/dist/unstable-core-do-not-import/procedure.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +31 -12
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.js +33 -39
- package/dist/unstable-core-do-not-import/procedureBuilder.mjs +33 -39
- package/dist/unstable-core-do-not-import/rootConfig.d.ts +17 -17
- package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/router.d.ts +4 -3
- package/dist/unstable-core-do-not-import/router.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/router.js +6 -5
- package/dist/unstable-core-do-not-import/router.mjs +6 -5
- package/dist/unstable-core-do-not-import/rpc/codes.d.ts +2 -9
- package/dist/unstable-core-do-not-import/rpc/codes.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts +7 -10
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.js +2 -2
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.mjs +2 -2
- package/dist/unstable-core-do-not-import/stream/jsonl.d.ts +25 -14
- package/dist/unstable-core-do-not-import/stream/jsonl.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/jsonl.js +439 -318
- package/dist/unstable-core-do-not-import/stream/jsonl.mjs +439 -318
- package/dist/unstable-core-do-not-import/stream/sse.d.ts +58 -18
- package/dist/unstable-core-do-not-import/stream/sse.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/sse.js +297 -122
- package/dist/unstable-core-do-not-import/stream/sse.mjs +298 -123
- package/dist/unstable-core-do-not-import/stream/sse.types.d.ts +31 -0
- package/dist/unstable-core-do-not-import/stream/sse.types.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/tracked.d.ts +2 -2
- package/dist/unstable-core-do-not-import/stream/tracked.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/tracked.js +1 -1
- package/dist/unstable-core-do-not-import/stream/tracked.mjs +1 -1
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.d.ts +17 -0
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.js +171 -0
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.mjs +167 -0
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts +0 -11
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.js +0 -29
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +1 -29
- package/dist/unstable-core-do-not-import/stream/utils/disposable.d.ts +17 -0
- package/dist/unstable-core-do-not-import/stream/utils/disposable.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/utils/disposable.js +44 -0
- package/dist/unstable-core-do-not-import/stream/utils/disposable.mjs +41 -0
- package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.d.ts +8 -0
- package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.js +25 -0
- package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.mjs +23 -0
- package/dist/unstable-core-do-not-import/stream/utils/timerResource.d.ts +5 -0
- package/dist/unstable-core-do-not-import/stream/utils/timerResource.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/utils/timerResource.js +26 -0
- package/dist/unstable-core-do-not-import/stream/utils/timerResource.mjs +23 -0
- package/dist/unstable-core-do-not-import/stream/utils/withPing.d.ts +7 -0
- package/dist/unstable-core-do-not-import/stream/utils/withPing.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/utils/withPing.js +130 -0
- package/dist/unstable-core-do-not-import/stream/utils/withPing.mjs +127 -0
- package/dist/unstable-core-do-not-import/transformer.d.ts +2 -5
- package/dist/unstable-core-do-not-import/transformer.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/transformer.js +1 -1
- package/dist/unstable-core-do-not-import/transformer.mjs +1 -1
- package/dist/unstable-core-do-not-import/types.d.ts +26 -3
- package/dist/unstable-core-do-not-import/types.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/utils.d.ts +15 -0
- package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/utils.js +49 -1
- package/dist/unstable-core-do-not-import/utils.mjs +45 -2
- package/dist/unstable-core-do-not-import.d.ts +3 -2
- package/dist/unstable-core-do-not-import.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import.js +14 -7
- package/dist/unstable-core-do-not-import.mjs +5 -6
- package/dist/vendor/unpromise/index.d.ts +3 -0
- package/dist/vendor/unpromise/index.d.ts.map +1 -0
- package/dist/vendor/unpromise/types.d.ts +28 -0
- package/dist/vendor/unpromise/types.d.ts.map +1 -0
- package/dist/vendor/unpromise/unpromise.d.ts +121 -0
- package/dist/vendor/unpromise/unpromise.d.ts.map +1 -0
- package/dist/vendor/unpromise/unpromise.js +292 -0
- package/dist/vendor/unpromise/unpromise.mjs +289 -0
- package/package.json +20 -17
- package/src/@trpc/server/http.ts +0 -2
- package/src/@trpc/server/index.ts +2 -0
- package/src/adapters/aws-lambda/getPlanner.ts +2 -2
- package/src/adapters/aws-lambda/index.ts +5 -6
- package/src/adapters/express.ts +21 -9
- package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +16 -5
- package/src/adapters/fetch/fetchRequestHandler.ts +2 -2
- package/src/adapters/next-app-dir/nextAppDirCaller.ts +3 -0
- package/src/adapters/next-app-dir/rethrowNextErrors.ts +3 -2
- package/src/adapters/next.ts +29 -34
- package/src/adapters/node-http/incomingMessageToRequest.ts +110 -40
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +85 -63
- package/src/adapters/node-http/writeResponse.ts +94 -0
- package/src/adapters/standalone.ts +35 -18
- package/src/adapters/ws.ts +111 -57
- package/src/observable/behaviorSubject.ts +55 -0
- package/src/observable/index.ts +22 -3
- package/src/observable/observable.ts +32 -14
- package/src/observable/operators.ts +47 -0
- package/src/unstable-core-do-not-import/clientish/inference.ts +4 -4
- package/src/unstable-core-do-not-import/clientish/inferrable.ts +6 -6
- package/src/unstable-core-do-not-import/clientish/serialize.ts +5 -5
- package/src/unstable-core-do-not-import/http/getHTTPStatusCode.ts +37 -4
- package/src/unstable-core-do-not-import/http/isAbortError.ts +7 -0
- package/src/unstable-core-do-not-import/http/resolveResponse.ts +185 -90
- package/src/unstable-core-do-not-import/http/types.ts +1 -1
- package/src/unstable-core-do-not-import/initTRPC.ts +14 -20
- package/src/unstable-core-do-not-import/middleware.ts +5 -4
- package/src/unstable-core-do-not-import/parser.ts +17 -6
- package/src/unstable-core-do-not-import/procedure.ts +17 -2
- package/src/unstable-core-do-not-import/procedureBuilder.ts +137 -122
- package/src/unstable-core-do-not-import/rootConfig.ts +20 -20
- package/src/unstable-core-do-not-import/router.ts +15 -16
- package/src/unstable-core-do-not-import/rpc/codes.ts +2 -10
- package/src/unstable-core-do-not-import/rpc/envelopes.ts +7 -12
- package/src/unstable-core-do-not-import/stream/jsonl.ts +287 -296
- package/src/unstable-core-do-not-import/stream/sse.ts +338 -171
- package/src/unstable-core-do-not-import/stream/sse.types.ts +44 -0
- package/src/unstable-core-do-not-import/stream/tracked.ts +5 -11
- package/src/unstable-core-do-not-import/stream/utils/asyncIterable.ts +89 -0
- package/src/unstable-core-do-not-import/stream/utils/createDeferred.ts +0 -36
- package/src/unstable-core-do-not-import/stream/utils/disposable.ts +52 -0
- package/src/unstable-core-do-not-import/stream/utils/readableStreamFrom.ts +28 -0
- package/src/unstable-core-do-not-import/stream/utils/timerResource.ts +29 -0
- package/src/unstable-core-do-not-import/stream/utils/withPing.ts +47 -0
- package/src/unstable-core-do-not-import/transformer.ts +1 -1
- package/src/unstable-core-do-not-import/types.ts +35 -10
- package/src/unstable-core-do-not-import/utils.ts +56 -1
- package/src/unstable-core-do-not-import.ts +3 -2
- package/src/vendor/unpromise/ATTRIBUTION.txt +1 -0
- package/src/vendor/unpromise/LICENSE +20 -0
- package/src/vendor/unpromise/index.ts +7 -0
- package/src/vendor/unpromise/types.ts +55 -0
- package/src/vendor/unpromise/unpromise.ts +380 -0
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts +0 -24
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.js +0 -32
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.mjs +0 -30
- package/dist/unstable-core-do-not-import/http/toURL.d.ts +0 -2
- package/dist/unstable-core-do-not-import/http/toURL.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/toURL.js +0 -8
- package/dist/unstable-core-do-not-import/http/toURL.mjs +0 -6
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts +0 -10
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.js +0 -31
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.mjs +0 -29
- package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts +0 -7
- package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/types.js +0 -11
- package/dist/unstable-core-do-not-import/types.mjs +0 -9
- package/src/unstable-core-do-not-import/http/batchStreamFormatter.ts +0 -29
- package/src/unstable-core-do-not-import/http/toURL.ts +0 -7
- package/src/unstable-core-do-not-import/stream/utils/createReadableStream.ts +0 -31
- package/src/unstable-core-do-not-import/stream/utils/createServer.ts +0 -44
package/dist/adapters/ws.mjs
CHANGED
|
@@ -4,23 +4,95 @@ import { run, isObject, isAsyncIterable } from '../unstable-core-do-not-import/u
|
|
|
4
4
|
import { parseConnectionParamsFromUnknown } from '../unstable-core-do-not-import/http/parseConnectionParams.mjs';
|
|
5
5
|
import { parseTRPCMessage } from '../unstable-core-do-not-import/rpc/parseTRPCMessage.mjs';
|
|
6
6
|
import { isObservable, observableToAsyncIterable } from '../observable/observable.mjs';
|
|
7
|
+
import { Unpromise } from '../vendor/unpromise/unpromise.mjs';
|
|
8
|
+
import { iteratorResource } from '../unstable-core-do-not-import/stream/utils/asyncIterable.mjs';
|
|
9
|
+
import '../unstable-core-do-not-import/stream/utils/disposable.mjs';
|
|
7
10
|
import { isTrackedEnvelope } from '../unstable-core-do-not-import/stream/tracked.mjs';
|
|
8
11
|
import { transformTRPCResponse } from '../unstable-core-do-not-import/transformer.mjs';
|
|
9
|
-
import { toURL } from '../unstable-core-do-not-import/http/toURL.mjs';
|
|
10
12
|
import '../unstable-core-do-not-import/rootConfig.mjs';
|
|
11
13
|
import { callProcedure } from '../unstable-core-do-not-import/router.mjs';
|
|
14
|
+
import { createURL } from './node-http/incomingMessageToRequest.mjs';
|
|
12
15
|
|
|
16
|
+
function _ts_add_disposable_resource(env, value, async) {
|
|
17
|
+
if (value !== null && value !== void 0) {
|
|
18
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
19
|
+
var dispose, inner;
|
|
20
|
+
{
|
|
21
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
22
|
+
dispose = value[Symbol.asyncDispose];
|
|
23
|
+
}
|
|
24
|
+
if (dispose === void 0) {
|
|
25
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
26
|
+
dispose = value[Symbol.dispose];
|
|
27
|
+
inner = dispose;
|
|
28
|
+
}
|
|
29
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
30
|
+
if (inner) dispose = function() {
|
|
31
|
+
try {
|
|
32
|
+
inner.call(this);
|
|
33
|
+
} catch (e) {
|
|
34
|
+
return Promise.reject(e);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
env.stack.push({
|
|
38
|
+
value: value,
|
|
39
|
+
dispose: dispose,
|
|
40
|
+
async: async
|
|
41
|
+
});
|
|
42
|
+
} else {
|
|
43
|
+
env.stack.push({
|
|
44
|
+
async: true
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
function _ts_dispose_resources(env) {
|
|
50
|
+
var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
51
|
+
var e = new Error(message);
|
|
52
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
53
|
+
};
|
|
54
|
+
return (_ts_dispose_resources = function _ts_dispose_resources(env) {
|
|
55
|
+
function fail(e) {
|
|
56
|
+
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
57
|
+
env.hasError = true;
|
|
58
|
+
}
|
|
59
|
+
var r, s = 0;
|
|
60
|
+
function next() {
|
|
61
|
+
while(r = env.stack.pop()){
|
|
62
|
+
try {
|
|
63
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
64
|
+
if (r.dispose) {
|
|
65
|
+
var result = r.dispose.call(r.value);
|
|
66
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
|
|
67
|
+
fail(e);
|
|
68
|
+
return next();
|
|
69
|
+
});
|
|
70
|
+
} else s |= 1;
|
|
71
|
+
} catch (e) {
|
|
72
|
+
fail(e);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
76
|
+
if (env.hasError) throw env.error;
|
|
77
|
+
}
|
|
78
|
+
return next();
|
|
79
|
+
})(env);
|
|
80
|
+
}
|
|
13
81
|
/**
|
|
14
82
|
* Importing ws causes a build error
|
|
15
|
-
* @
|
|
83
|
+
* @see https://github.com/trpc/trpc/pull/5279
|
|
16
84
|
*/ const WEBSOCKET_OPEN = 1; /* ws.WebSocket.OPEN */
|
|
17
85
|
const unsetContextPromiseSymbol = Symbol('unsetContextPromise');
|
|
18
86
|
function getWSConnectionHandler(opts) {
|
|
19
|
-
const { createContext
|
|
20
|
-
const { transformer
|
|
87
|
+
const { createContext, router } = opts;
|
|
88
|
+
const { transformer } = router._def._config;
|
|
21
89
|
return async (client, req)=>{
|
|
22
90
|
const clientSubscriptions = new Map();
|
|
23
91
|
const abortController = new AbortController();
|
|
92
|
+
if (opts.keepAlive?.enabled) {
|
|
93
|
+
const { pingMs, pongWaitMs } = opts.keepAlive;
|
|
94
|
+
handleKeepAlive(client, pingMs, pongWaitMs);
|
|
95
|
+
}
|
|
24
96
|
function respond(untransformedJSON) {
|
|
25
97
|
client.send(JSON.stringify(transformTRPCResponse(router._def._config, untransformedJSON)));
|
|
26
98
|
}
|
|
@@ -73,9 +145,9 @@ function getWSConnectionHandler(opts) {
|
|
|
73
145
|
*
|
|
74
146
|
* - the context promise will be created immediately on connection if no connectionParams are expected
|
|
75
147
|
* - if connection params are expected, they will be created once received
|
|
76
|
-
*/ let ctxPromise =
|
|
148
|
+
*/ let ctxPromise = createURL(req).searchParams.get('connectionParams') === '1' ? unsetContextPromiseSymbol : createCtxPromise(()=>null);
|
|
77
149
|
async function handleRequest(msg) {
|
|
78
|
-
const { id
|
|
150
|
+
const { id, jsonrpc } = msg;
|
|
79
151
|
/* istanbul ignore next -- @preserve */ if (id === null) {
|
|
80
152
|
throw new TRPCError({
|
|
81
153
|
code: 'BAD_REQUEST',
|
|
@@ -86,8 +158,8 @@ function getWSConnectionHandler(opts) {
|
|
|
86
158
|
clientSubscriptions.get(id)?.abort();
|
|
87
159
|
return;
|
|
88
160
|
}
|
|
89
|
-
const { path
|
|
90
|
-
let { input
|
|
161
|
+
const { path, lastEventId } = msg.params;
|
|
162
|
+
let { input } = msg.params;
|
|
91
163
|
const type = msg.method;
|
|
92
164
|
try {
|
|
93
165
|
if (lastEventId !== undefined) {
|
|
@@ -103,12 +175,14 @@ function getWSConnectionHandler(opts) {
|
|
|
103
175
|
}
|
|
104
176
|
}
|
|
105
177
|
await ctxPromise; // asserts context has been set
|
|
178
|
+
const abortController = new AbortController();
|
|
106
179
|
const result = await callProcedure({
|
|
107
180
|
procedures: router._def.procedures,
|
|
108
181
|
path,
|
|
109
182
|
getRawInput: async ()=>input,
|
|
110
183
|
ctx,
|
|
111
|
-
type
|
|
184
|
+
type,
|
|
185
|
+
signal: abortController.signal
|
|
112
186
|
});
|
|
113
187
|
const isIterableResult = isAsyncIterable(result) || isObservable(result);
|
|
114
188
|
if (type !== 'subscription') {
|
|
@@ -147,76 +221,95 @@ function getWSConnectionHandler(opts) {
|
|
|
147
221
|
code: 'BAD_REQUEST'
|
|
148
222
|
});
|
|
149
223
|
}
|
|
150
|
-
const iterable = isObservable(result) ? observableToAsyncIterable(result) : result;
|
|
151
|
-
const iterator = iterable[Symbol.asyncIterator]();
|
|
152
|
-
const abortController = new AbortController();
|
|
153
|
-
const abortPromise = new Promise((resolve)=>{
|
|
154
|
-
abortController.signal.onabort = ()=>resolve('abort');
|
|
155
|
-
});
|
|
224
|
+
const iterable = isObservable(result) ? observableToAsyncIterable(result, abortController.signal) : result;
|
|
156
225
|
run(async ()=>{
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
226
|
+
const env = {
|
|
227
|
+
stack: [],
|
|
228
|
+
error: void 0,
|
|
229
|
+
hasError: false
|
|
230
|
+
};
|
|
231
|
+
try {
|
|
232
|
+
const iterator = _ts_add_disposable_resource(env, iteratorResource(iterable), true);
|
|
233
|
+
;
|
|
234
|
+
const abortPromise = new Promise((resolve)=>{
|
|
235
|
+
abortController.signal.onabort = ()=>resolve('abort');
|
|
236
|
+
});
|
|
237
|
+
// We need those declarations outside the loop for garbage collection reasons. If they
|
|
238
|
+
// were declared inside, they would not be freed until the next value is present.
|
|
239
|
+
let next;
|
|
240
|
+
let result;
|
|
241
|
+
while(true){
|
|
242
|
+
next = await Unpromise.race([
|
|
243
|
+
iterator.next().catch(getTRPCErrorFromUnknown),
|
|
244
|
+
abortPromise
|
|
245
|
+
]);
|
|
246
|
+
if (next === 'abort') {
|
|
247
|
+
await iterator.return?.();
|
|
248
|
+
break;
|
|
249
|
+
}
|
|
250
|
+
if (next instanceof Error) {
|
|
251
|
+
const error = getTRPCErrorFromUnknown(next);
|
|
252
|
+
opts.onError?.({
|
|
253
|
+
error,
|
|
254
|
+
path,
|
|
255
|
+
type,
|
|
256
|
+
ctx,
|
|
257
|
+
req,
|
|
258
|
+
input
|
|
259
|
+
});
|
|
260
|
+
respond({
|
|
261
|
+
id,
|
|
262
|
+
jsonrpc,
|
|
263
|
+
error: getErrorShape({
|
|
264
|
+
config: router._def._config,
|
|
265
|
+
error,
|
|
266
|
+
type,
|
|
267
|
+
path,
|
|
268
|
+
input,
|
|
269
|
+
ctx
|
|
270
|
+
})
|
|
271
|
+
});
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
if (next.done) {
|
|
275
|
+
break;
|
|
276
|
+
}
|
|
277
|
+
result = {
|
|
278
|
+
type: 'data',
|
|
279
|
+
data: next.value
|
|
280
|
+
};
|
|
281
|
+
if (isTrackedEnvelope(next.value)) {
|
|
282
|
+
const [id, data] = next.value;
|
|
283
|
+
result.id = id;
|
|
284
|
+
result.data = {
|
|
285
|
+
id,
|
|
286
|
+
data
|
|
287
|
+
};
|
|
288
|
+
}
|
|
176
289
|
respond({
|
|
177
290
|
id,
|
|
178
291
|
jsonrpc,
|
|
179
|
-
|
|
180
|
-
config: router._def._config,
|
|
181
|
-
error,
|
|
182
|
-
type,
|
|
183
|
-
path,
|
|
184
|
-
input,
|
|
185
|
-
ctx
|
|
186
|
-
})
|
|
292
|
+
result
|
|
187
293
|
});
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
break;
|
|
192
|
-
}
|
|
193
|
-
const result = {
|
|
194
|
-
type: 'data',
|
|
195
|
-
data: next.value
|
|
196
|
-
};
|
|
197
|
-
if (isTrackedEnvelope(next.value)) {
|
|
198
|
-
const [id1, data] = next.value;
|
|
199
|
-
result.id = id1;
|
|
200
|
-
result.data = {
|
|
201
|
-
id: id1,
|
|
202
|
-
data
|
|
203
|
-
};
|
|
294
|
+
// free up references for garbage collection
|
|
295
|
+
next = null;
|
|
296
|
+
result = null;
|
|
204
297
|
}
|
|
205
298
|
respond({
|
|
206
299
|
id,
|
|
207
300
|
jsonrpc,
|
|
208
|
-
result
|
|
301
|
+
result: {
|
|
302
|
+
type: 'stopped'
|
|
303
|
+
}
|
|
209
304
|
});
|
|
305
|
+
clientSubscriptions.delete(id);
|
|
306
|
+
} catch (e) {
|
|
307
|
+
env.error = e;
|
|
308
|
+
env.hasError = true;
|
|
309
|
+
} finally{
|
|
310
|
+
const result = _ts_dispose_resources(env);
|
|
311
|
+
if (result) await result;
|
|
210
312
|
}
|
|
211
|
-
await iterator.return?.();
|
|
212
|
-
respond({
|
|
213
|
-
id,
|
|
214
|
-
jsonrpc,
|
|
215
|
-
result: {
|
|
216
|
-
type: 'stopped'
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
clientSubscriptions.delete(id);
|
|
220
313
|
}).catch((cause)=>{
|
|
221
314
|
const error = getTRPCErrorFromUnknown(cause);
|
|
222
315
|
opts.onError?.({
|
|
@@ -274,13 +367,24 @@ function getWSConnectionHandler(opts) {
|
|
|
274
367
|
});
|
|
275
368
|
}
|
|
276
369
|
}
|
|
277
|
-
client.on('message', async (
|
|
370
|
+
client.on('message', async (rawData)=>{
|
|
371
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
372
|
+
const msgStr = rawData.toString();
|
|
373
|
+
if (msgStr === 'PONG') {
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
if (msgStr === 'PING') {
|
|
377
|
+
if (!opts.dangerouslyDisablePong) {
|
|
378
|
+
client.send('PONG');
|
|
379
|
+
}
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
278
382
|
if (ctxPromise === unsetContextPromiseSymbol) {
|
|
279
383
|
// If the ctxPromise wasn't created immediately, we're expecting the first message to be a TRPCConnectionParamsMessage
|
|
280
384
|
ctxPromise = createCtxPromise(()=>{
|
|
281
385
|
let msg;
|
|
282
386
|
try {
|
|
283
|
-
msg = JSON.parse(
|
|
387
|
+
msg = JSON.parse(msgStr);
|
|
284
388
|
if (!isObject(msg)) {
|
|
285
389
|
throw new Error('Message was not an object');
|
|
286
390
|
}
|
|
@@ -297,7 +401,7 @@ function getWSConnectionHandler(opts) {
|
|
|
297
401
|
return;
|
|
298
402
|
}
|
|
299
403
|
try {
|
|
300
|
-
const msgJSON = JSON.parse(
|
|
404
|
+
const msgJSON = JSON.parse(msgStr);
|
|
301
405
|
const msgs = Array.isArray(msgJSON) ? msgJSON : [
|
|
302
406
|
msgJSON
|
|
303
407
|
];
|
|
@@ -343,48 +447,59 @@ function getWSConnectionHandler(opts) {
|
|
|
343
447
|
abortController.abort();
|
|
344
448
|
});
|
|
345
449
|
if (ctxPromise !== unsetContextPromiseSymbol) {
|
|
346
|
-
|
|
347
|
-
await ctxPromise.catch(()=>null);
|
|
450
|
+
await ctxPromise;
|
|
348
451
|
}
|
|
349
452
|
};
|
|
350
453
|
}
|
|
351
454
|
/**
|
|
352
455
|
* Handle WebSocket keep-alive messages
|
|
353
456
|
*/ function handleKeepAlive(client, pingMs = 30000, pongWaitMs = 5000) {
|
|
354
|
-
let
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
client.
|
|
364
|
-
|
|
365
|
-
},
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
457
|
+
let timeout = undefined;
|
|
458
|
+
let ping = undefined;
|
|
459
|
+
const schedulePing = ()=>{
|
|
460
|
+
const scheduleTimeout = ()=>{
|
|
461
|
+
timeout = setTimeout(()=>{
|
|
462
|
+
client.terminate();
|
|
463
|
+
}, pongWaitMs);
|
|
464
|
+
};
|
|
465
|
+
ping = setTimeout(()=>{
|
|
466
|
+
client.send('PING');
|
|
467
|
+
scheduleTimeout();
|
|
468
|
+
}, pingMs);
|
|
469
|
+
};
|
|
470
|
+
const onMessage = ()=>{
|
|
471
|
+
clearTimeout(ping);
|
|
472
|
+
clearTimeout(timeout);
|
|
473
|
+
schedulePing();
|
|
474
|
+
};
|
|
475
|
+
client.on('message', onMessage);
|
|
372
476
|
client.on('close', ()=>{
|
|
373
|
-
|
|
477
|
+
clearTimeout(ping);
|
|
478
|
+
clearTimeout(timeout);
|
|
374
479
|
});
|
|
480
|
+
schedulePing();
|
|
375
481
|
}
|
|
376
482
|
function applyWSSHandler(opts) {
|
|
377
|
-
const { wss , prefix , keepAlive } = opts;
|
|
378
483
|
const onConnection = getWSConnectionHandler(opts);
|
|
379
|
-
wss.on('connection',
|
|
380
|
-
if (prefix && !req.url?.startsWith(prefix)) {
|
|
484
|
+
opts.wss.on('connection', (client, req)=>{
|
|
485
|
+
if (opts.prefix && !req.url?.startsWith(opts.prefix)) {
|
|
381
486
|
return;
|
|
382
487
|
}
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
488
|
+
onConnection(client, req).catch((cause)=>{
|
|
489
|
+
opts.onError?.({
|
|
490
|
+
error: new TRPCError({
|
|
491
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
492
|
+
cause,
|
|
493
|
+
message: 'Failed to handle WebSocket connection'
|
|
494
|
+
}),
|
|
495
|
+
req: req,
|
|
496
|
+
path: undefined,
|
|
497
|
+
type: 'unknown',
|
|
498
|
+
ctx: undefined,
|
|
499
|
+
input: undefined
|
|
500
|
+
});
|
|
501
|
+
client.close();
|
|
502
|
+
});
|
|
388
503
|
});
|
|
389
504
|
return {
|
|
390
505
|
broadcastReconnectNotification: ()=>{
|
|
@@ -393,7 +508,7 @@ function applyWSSHandler(opts) {
|
|
|
393
508
|
method: 'reconnect'
|
|
394
509
|
};
|
|
395
510
|
const data = JSON.stringify(response);
|
|
396
|
-
for (const client of wss.clients){
|
|
511
|
+
for (const client of opts.wss.clients){
|
|
397
512
|
if (client.readyState === WEBSOCKET_OPEN) {
|
|
398
513
|
client.send(data);
|
|
399
514
|
}
|
|
@@ -402,4 +517,4 @@ function applyWSSHandler(opts) {
|
|
|
402
517
|
};
|
|
403
518
|
}
|
|
404
519
|
|
|
405
|
-
export { applyWSSHandler, getWSConnectionHandler };
|
|
520
|
+
export { applyWSSHandler, getWSConnectionHandler, handleKeepAlive };
|