@trpc/server 10.28.1 → 10.29.0
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/adapters/aws-lambda/index.d.ts +1 -1
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.js +1 -1
- package/dist/adapters/aws-lambda/index.mjs +1 -1
- package/dist/adapters/aws-lambda/utils.d.ts +1 -1
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +5 -4
- package/dist/adapters/express.mjs +5 -4
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +50 -15
- package/dist/adapters/fastify/index.mjs +50 -15
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +66 -20
- package/dist/adapters/fetch/index.mjs +66 -20
- package/dist/adapters/lambda/index.d.ts +1 -1
- package/dist/adapters/lambda/index.d.ts.map +1 -1
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +3 -2
- package/dist/adapters/next.mjs +3 -2
- package/dist/adapters/node-http/content-type/form-data/index.js +19 -46
- package/dist/adapters/node-http/content-type/form-data/index.mjs +19 -40
- package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts +7 -3
- package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts.map +1 -1
- package/dist/adapters/node-http/index.js +5 -4
- package/dist/adapters/node-http/index.mjs +5 -4
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/standalone.js +5 -4
- package/dist/adapters/standalone.mjs +5 -4
- package/dist/batchStreamFormatter-2c1405a1.js +31 -0
- package/dist/batchStreamFormatter-93cdcdd4.js +32 -0
- package/dist/batchStreamFormatter-fc1ffb26.mjs +30 -0
- package/dist/core/initTRPC.d.ts.map +1 -1
- package/dist/core/internals/mergeRouters.d.ts.map +1 -1
- package/dist/core/internals/procedureBuilder.d.ts +1 -1
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
- package/dist/core/router.d.ts +1 -1
- package/dist/core/router.d.ts.map +1 -1
- package/dist/deprecated/interop.d.ts.map +1 -1
- package/dist/deprecated/router.d.ts +3 -3
- package/dist/deprecated/router.d.ts.map +1 -1
- package/dist/error/formatter.d.ts +1 -1
- package/dist/error/formatter.d.ts.map +1 -1
- package/dist/http/batchStreamFormatter.d.ts +24 -0
- package/dist/http/batchStreamFormatter.d.ts.map +1 -0
- package/dist/http/getHTTPStatusCode.d.ts +1 -1
- package/dist/http/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/http/index.d.ts +1 -0
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +3 -1
- package/dist/http/index.mjs +2 -1
- package/dist/http/internals/types.d.ts +8 -1
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts +36 -2
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/internals/types.d.ts +1 -1
- package/dist/internals/types.d.ts.map +1 -1
- package/dist/{nodeHTTPRequestHandler-bd47641d.js → nodeHTTPRequestHandler-53b9fc2d.js} +44 -12
- package/dist/{nodeHTTPRequestHandler-0f979796.mjs → nodeHTTPRequestHandler-bdad2781.mjs} +42 -13
- package/dist/{nodeHTTPRequestHandler-5bbf93f1.js → nodeHTTPRequestHandler-e637755a.js} +42 -13
- package/dist/resolveHTTPResponse-2bdf2cd7.js +256 -0
- package/dist/resolveHTTPResponse-2c307e04.js +284 -0
- package/dist/resolveHTTPResponse-a9be3d96.mjs +282 -0
- package/dist/subscription.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/adapters/aws-lambda/index.ts +2 -2
- package/src/adapters/aws-lambda/utils.ts +1 -1
- package/src/adapters/express.ts +1 -1
- package/src/adapters/fastify/fastifyRequestHandler.ts +64 -17
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +1 -1
- package/src/adapters/fetch/fetchRequestHandler.ts +72 -25
- package/src/adapters/lambda/index.ts +1 -1
- package/src/adapters/next.ts +1 -1
- package/src/adapters/node-http/content-type/form-data/fileUploadHandler.ts +1 -1
- package/src/adapters/node-http/content-type/form-data/index.ts +1 -1
- package/src/adapters/node-http/content-type/form-data/streamSlice.ts +19 -21
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +51 -12
- package/src/adapters/ws.ts +3 -3
- package/src/core/initTRPC.ts +2 -2
- package/src/core/internals/mergeRouters.ts +1 -1
- package/src/core/internals/procedureBuilder.ts +5 -5
- package/src/core/router.ts +2 -2
- package/src/deprecated/internals/procedure.ts +2 -2
- package/src/deprecated/interop.ts +1 -1
- package/src/deprecated/router.ts +6 -6
- package/src/error/formatter.ts +1 -1
- package/src/http/batchStreamFormatter.ts +29 -0
- package/src/http/getHTTPStatusCode.ts +1 -1
- package/src/http/index.ts +1 -0
- package/src/http/internals/types.ts +9 -1
- package/src/http/resolveHTTPResponse.ts +337 -126
- package/src/internals/types.ts +1 -1
- package/src/subscription.ts +1 -1
- package/dist/resolveHTTPResponse-4e576698.mjs +0 -174
- package/dist/resolveHTTPResponse-9523b4e3.js +0 -176
- package/dist/resolveHTTPResponse-ba557d3e.js +0 -166
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyStructuredResultV2, Context as APIGWContext } from 'aws-lambda';
|
|
2
2
|
import { AnyRouter } from '../../core';
|
|
3
3
|
import { APIGatewayEvent, AWSLambdaOptions } from './utils';
|
|
4
4
|
export * from './utils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws-lambda/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws-lambda/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EACjC,OAAO,IAAI,YAAY,EACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAsB,MAAM,YAAY,CAAC;AAG3D,OAAO,EACL,eAAe,EAEf,gBAAgB,EAOjB,MAAM,SAAS,CAAC;AAEjB,cAAc,SAAS,CAAC;AAqDxB;;IAEI;AACJ,KAAK,gBAAgB,CAAC,KAAK,IAAI,KAAK,SAAS,oBAAoB,GAC7D,qBAAqB,GACrB,KAAK,SAAS,sBAAsB,GACpC,iCAAiC,GACjC,KAAK,CAAC;AACV,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,EAC9B,OAAO,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAExC,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,GACtC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CA4B5D"}
|
|
@@ -6,7 +6,7 @@ var TRPCError = require('../../TRPCError-16b2e52d.js');
|
|
|
6
6
|
require('../../index-4a823936.js');
|
|
7
7
|
require('../../codes-0eeb600d.js');
|
|
8
8
|
require('../../config-f3ce0144.js');
|
|
9
|
-
var resolveHTTPResponse = require('../../resolveHTTPResponse-
|
|
9
|
+
var resolveHTTPResponse = require('../../resolveHTTPResponse-2c307e04.js');
|
|
10
10
|
require('../../transformTRPCResponse-48d70ef6.js');
|
|
11
11
|
require('../../contentType-8356d528.js');
|
|
12
12
|
|
|
@@ -2,7 +2,7 @@ import { T as TRPCError } from '../../TRPCError-2b10c8d2.mjs';
|
|
|
2
2
|
import '../../index-044a193b.mjs';
|
|
3
3
|
import '../../codes-24aa1ce1.mjs';
|
|
4
4
|
import '../../config-65c5b6d1.mjs';
|
|
5
|
-
import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-
|
|
5
|
+
import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-a9be3d96.mjs';
|
|
6
6
|
import '../../transformTRPCResponse-3dca0b20.mjs';
|
|
7
7
|
import '../../contentType-acc3be52.mjs';
|
|
8
8
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyStructuredResultV2, Context as APIGWContext } from 'aws-lambda';
|
|
2
2
|
import type { AnyRouter, inferRouterContext } from '../../core';
|
|
3
3
|
import type { HTTPHeaders, ResponseMetaFn } from '../../http/internals/types';
|
|
4
4
|
import { OnErrorFunction } from '../../internals/types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws-lambda/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws-lambda/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EACjC,OAAO,IAAI,YAAY,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB,iCAAiC,CAAC;AAEtC,MAAM,MAAM,6BAA6B,CAAC,MAAM,SAAS,eAAe,IAAI;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,wBAAwB,CAClC,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,IAC5B,CAAC,EACH,KAAK,EACL,OAAO,GACR,EAAE,6BAA6B,CAAC,MAAM,CAAC,KACpC,kBAAkB,CAAC,OAAO,CAAC,GAC3B,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzC,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,IAE5B;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACxC,GAAG,CACA;IACE;;QAEI;IACJ,aAAa,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC1D,GACD;IACE;;QAEI;IACJ,aAAa,CAAC,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC3D,CACJ,CAAC;AAEN,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,GACrB,KAAK,IAAI,oBAAoB,CAE/B;AACD,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,GACrB,KAAK,IAAI,sBAAsB,CAEjC;AAoBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,UAWnD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,eAAe,UA+B7C;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,GACnB,gBAAgB,CAAC,SAAS,CAAC,CAU7B;AAED,MAAM,MAAM,+BAA+B,GAAG,KAAK,GAAG,KAAK,CAAC;AAC5D,MAAM,MAAM,8BAA8B,GACtC,+BAA+B,GAC/B,QAAQ,CAAC;AAEb,eAAO,MAAM,4CAA4C,QAEiD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/adapters/express.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/adapters/express.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EAEvB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,2BAA2B,GAAG,8BAA8B,CACtE,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,QAAQ,CACjB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,SAAS,EAC/D,IAAI,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GACvE,OAAO,CAAC,OAAO,CAWjB"}
|
package/dist/adapters/express.js
CHANGED
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-
|
|
6
|
-
require('../resolveHTTPResponse-9523b4e3.js');
|
|
7
|
-
require('../config-f3ce0144.js');
|
|
8
|
-
require('../TRPCError-16b2e52d.js');
|
|
5
|
+
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-e637755a.js');
|
|
9
6
|
require('../index-4a823936.js');
|
|
10
7
|
require('../codes-0eeb600d.js');
|
|
8
|
+
require('../resolveHTTPResponse-2c307e04.js');
|
|
9
|
+
require('../config-f3ce0144.js');
|
|
10
|
+
require('../TRPCError-16b2e52d.js');
|
|
11
11
|
require('../transformTRPCResponse-48d70ef6.js');
|
|
12
12
|
require('../contentType-8356d528.js');
|
|
13
|
+
require('../batchStreamFormatter-93cdcdd4.js');
|
|
13
14
|
require('./node-http/content-type/json/index.js');
|
|
14
15
|
require('../contentType-8c16408e.js');
|
|
15
16
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-
|
|
2
|
-
import '../resolveHTTPResponse-4e576698.mjs';
|
|
3
|
-
import '../config-65c5b6d1.mjs';
|
|
4
|
-
import '../TRPCError-2b10c8d2.mjs';
|
|
1
|
+
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-bdad2781.mjs';
|
|
5
2
|
import '../index-044a193b.mjs';
|
|
6
3
|
import '../codes-24aa1ce1.mjs';
|
|
4
|
+
import '../resolveHTTPResponse-a9be3d96.mjs';
|
|
5
|
+
import '../config-65c5b6d1.mjs';
|
|
6
|
+
import '../TRPCError-2b10c8d2.mjs';
|
|
7
7
|
import '../transformTRPCResponse-3dca0b20.mjs';
|
|
8
8
|
import '../contentType-acc3be52.mjs';
|
|
9
|
+
import '../batchStreamFormatter-fc1ffb26.mjs';
|
|
9
10
|
import './node-http/content-type/json/index.mjs';
|
|
10
11
|
import '../contentType-3194ed5f.mjs';
|
|
11
12
|
|
|
@@ -8,6 +8,6 @@ type FastifyRequestHandlerOptions<TRouter extends AnyRouter, TRequest extends Fa
|
|
|
8
8
|
res: TResponse;
|
|
9
9
|
path: string;
|
|
10
10
|
} & FastifyHandlerOptions<TRouter, TRequest, TResponse>;
|
|
11
|
-
export declare function fastifyRequestHandler<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply>(opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>): Promise<
|
|
11
|
+
export declare function fastifyRequestHandler<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply>(opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>): Promise<never>;
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=fastifyRequestHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastifyRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/fastify/fastifyRequestHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fastifyRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/fastify/fastifyRequestHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,SAAS,EAAsB,MAAM,YAAY,CAAC;AAC3D,OAAO,EAEL,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,qBAAqB,CAC/B,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,cAAc,EAC/B,SAAS,SAAS,YAAY,IAC5B,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAC3C,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAE5D,KAAK,4BAA4B,CAC/B,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,cAAc,EAC/B,SAAS,SAAS,YAAY,IAC5B;IACF,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,SAAS,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAExD,wBAAsB,qBAAqB,CACzC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,cAAc,EAC/B,SAAS,SAAS,YAAY,EAC9B,IAAI,EAAE,4BAA4B,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,kBAqFjE"}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var node_stream = require('node:stream');
|
|
6
|
+
require('../../index-4a823936.js');
|
|
7
|
+
var resolveHTTPResponse = require('../../resolveHTTPResponse-2c307e04.js');
|
|
8
|
+
var batchStreamFormatter = require('../../batchStreamFormatter-93cdcdd4.js');
|
|
6
9
|
var adapters_ws = require('../ws.js');
|
|
10
|
+
require('../../codes-0eeb600d.js');
|
|
7
11
|
require('../../config-f3ce0144.js');
|
|
8
12
|
require('../../TRPCError-16b2e52d.js');
|
|
9
|
-
require('../../index-4a823936.js');
|
|
10
|
-
require('../../codes-0eeb600d.js');
|
|
11
13
|
require('../../transformTRPCResponse-48d70ef6.js');
|
|
12
14
|
require('../../contentType-8356d528.js');
|
|
13
15
|
require('../../observable-464116ac.js');
|
|
@@ -23,7 +25,39 @@ async function fastifyRequestHandler(opts) {
|
|
|
23
25
|
headers: opts.req.headers,
|
|
24
26
|
body: opts.req.body ?? 'null'
|
|
25
27
|
};
|
|
26
|
-
|
|
28
|
+
let resolve;
|
|
29
|
+
const promise = new Promise((r)=>resolve = r);
|
|
30
|
+
const onHead = (head)=>{
|
|
31
|
+
if (!opts.res.statusCode || opts.res.statusCode === 200) {
|
|
32
|
+
opts.res.statusCode = head.status;
|
|
33
|
+
}
|
|
34
|
+
for (const [key, value] of Object.entries(head.headers ?? {})){
|
|
35
|
+
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
void opts.res.header(key, value);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
let isStream = false;
|
|
42
|
+
let stream;
|
|
43
|
+
const formatter = batchStreamFormatter.getBatchStreamFormatter();
|
|
44
|
+
const onChunk = ([index, string])=>{
|
|
45
|
+
if (index === -1) {
|
|
46
|
+
// full response, no streaming
|
|
47
|
+
resolve(opts.res.send(string));
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!isStream) {
|
|
51
|
+
void opts.res.header('Transfer-Encoding', 'chunked');
|
|
52
|
+
void opts.res.header('Vary', opts.res.hasHeader('Vary') ? 'trpc-batch-mode, ' + opts.res.getHeader('Vary') : 'trpc-batch-mode');
|
|
53
|
+
stream = new node_stream.Readable();
|
|
54
|
+
stream._read = ()=>{}; // eslint-disable-line @typescript-eslint/no-empty-function -- https://github.com/fastify/fastify/issues/805#issuecomment-369172154
|
|
55
|
+
resolve(opts.res.send(stream));
|
|
56
|
+
isStream = true;
|
|
57
|
+
}
|
|
58
|
+
stream.push(formatter(index, string));
|
|
59
|
+
};
|
|
60
|
+
resolveHTTPResponse.resolveHTTPResponse({
|
|
27
61
|
req,
|
|
28
62
|
createContext,
|
|
29
63
|
path: opts.path,
|
|
@@ -35,19 +69,20 @@ async function fastifyRequestHandler(opts) {
|
|
|
35
69
|
...o,
|
|
36
70
|
req: opts.req
|
|
37
71
|
});
|
|
72
|
+
},
|
|
73
|
+
onHead,
|
|
74
|
+
onChunk
|
|
75
|
+
}).then(()=>{
|
|
76
|
+
if (isStream) {
|
|
77
|
+
stream.push(formatter.end());
|
|
78
|
+
stream.push(null); // https://github.com/fastify/fastify/issues/805#issuecomment-369172154
|
|
38
79
|
}
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
res.statusCode = result.status;
|
|
43
|
-
}
|
|
44
|
-
for (const [key, value] of Object.entries(result.headers ?? {})){
|
|
45
|
-
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
46
|
-
continue;
|
|
80
|
+
}).catch(()=>{
|
|
81
|
+
if (isStream) {
|
|
82
|
+
stream.push(null);
|
|
47
83
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
await res.send(result.body);
|
|
84
|
+
});
|
|
85
|
+
return promise;
|
|
51
86
|
}
|
|
52
87
|
|
|
53
88
|
/// <reference types="@fastify/websocket" />
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
2
|
+
import '../../index-044a193b.mjs';
|
|
3
|
+
import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-a9be3d96.mjs';
|
|
4
|
+
import { g as getBatchStreamFormatter } from '../../batchStreamFormatter-fc1ffb26.mjs';
|
|
2
5
|
import { applyWSSHandler } from '../ws.mjs';
|
|
6
|
+
import '../../codes-24aa1ce1.mjs';
|
|
3
7
|
import '../../config-65c5b6d1.mjs';
|
|
4
8
|
import '../../TRPCError-2b10c8d2.mjs';
|
|
5
|
-
import '../../index-044a193b.mjs';
|
|
6
|
-
import '../../codes-24aa1ce1.mjs';
|
|
7
9
|
import '../../transformTRPCResponse-3dca0b20.mjs';
|
|
8
10
|
import '../../contentType-acc3be52.mjs';
|
|
9
11
|
import '../../observable-ade1bad8.mjs';
|
|
@@ -19,7 +21,39 @@ async function fastifyRequestHandler(opts) {
|
|
|
19
21
|
headers: opts.req.headers,
|
|
20
22
|
body: opts.req.body ?? 'null'
|
|
21
23
|
};
|
|
22
|
-
|
|
24
|
+
let resolve;
|
|
25
|
+
const promise = new Promise((r)=>resolve = r);
|
|
26
|
+
const onHead = (head)=>{
|
|
27
|
+
if (!opts.res.statusCode || opts.res.statusCode === 200) {
|
|
28
|
+
opts.res.statusCode = head.status;
|
|
29
|
+
}
|
|
30
|
+
for (const [key, value] of Object.entries(head.headers ?? {})){
|
|
31
|
+
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
void opts.res.header(key, value);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
let isStream = false;
|
|
38
|
+
let stream;
|
|
39
|
+
const formatter = getBatchStreamFormatter();
|
|
40
|
+
const onChunk = ([index, string])=>{
|
|
41
|
+
if (index === -1) {
|
|
42
|
+
// full response, no streaming
|
|
43
|
+
resolve(opts.res.send(string));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (!isStream) {
|
|
47
|
+
void opts.res.header('Transfer-Encoding', 'chunked');
|
|
48
|
+
void opts.res.header('Vary', opts.res.hasHeader('Vary') ? 'trpc-batch-mode, ' + opts.res.getHeader('Vary') : 'trpc-batch-mode');
|
|
49
|
+
stream = new Readable();
|
|
50
|
+
stream._read = ()=>{}; // eslint-disable-line @typescript-eslint/no-empty-function -- https://github.com/fastify/fastify/issues/805#issuecomment-369172154
|
|
51
|
+
resolve(opts.res.send(stream));
|
|
52
|
+
isStream = true;
|
|
53
|
+
}
|
|
54
|
+
stream.push(formatter(index, string));
|
|
55
|
+
};
|
|
56
|
+
resolveHTTPResponse({
|
|
23
57
|
req,
|
|
24
58
|
createContext,
|
|
25
59
|
path: opts.path,
|
|
@@ -31,19 +65,20 @@ async function fastifyRequestHandler(opts) {
|
|
|
31
65
|
...o,
|
|
32
66
|
req: opts.req
|
|
33
67
|
});
|
|
68
|
+
},
|
|
69
|
+
onHead,
|
|
70
|
+
onChunk
|
|
71
|
+
}).then(()=>{
|
|
72
|
+
if (isStream) {
|
|
73
|
+
stream.push(formatter.end());
|
|
74
|
+
stream.push(null); // https://github.com/fastify/fastify/issues/805#issuecomment-369172154
|
|
34
75
|
}
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
res.statusCode = result.status;
|
|
39
|
-
}
|
|
40
|
-
for (const [key, value] of Object.entries(result.headers ?? {})){
|
|
41
|
-
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
42
|
-
continue;
|
|
76
|
+
}).catch(()=>{
|
|
77
|
+
if (isStream) {
|
|
78
|
+
stream.push(null);
|
|
43
79
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
await res.send(result.body);
|
|
80
|
+
});
|
|
81
|
+
return promise;
|
|
47
82
|
}
|
|
48
83
|
|
|
49
84
|
/// <reference types="@fastify/websocket" />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/fetch/fetchRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"fetchRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/fetch/fetchRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,0BAA0B,CAAC,OAAO,SAAS,SAAS,IAAI;IAClE,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAEjC,wBAAsB,mBAAmB,CAAC,OAAO,SAAS,SAAS,EACjE,IAAI,EAAE,0BAA0B,CAAC,OAAO,CAAC,GACxC,OAAO,CAAC,QAAQ,CAAC,CAmGnB"}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var resolveHTTPResponse = require('../../resolveHTTPResponse-9523b4e3.js');
|
|
6
|
-
require('../../config-f3ce0144.js');
|
|
7
|
-
require('../../TRPCError-16b2e52d.js');
|
|
8
5
|
require('../../index-4a823936.js');
|
|
6
|
+
var resolveHTTPResponse = require('../../resolveHTTPResponse-2c307e04.js');
|
|
7
|
+
var batchStreamFormatter = require('../../batchStreamFormatter-93cdcdd4.js');
|
|
9
8
|
require('../../codes-0eeb600d.js');
|
|
9
|
+
require('../../config-f3ce0144.js');
|
|
10
|
+
require('../../TRPCError-16b2e52d.js');
|
|
10
11
|
require('../../transformTRPCResponse-48d70ef6.js');
|
|
11
12
|
require('../../contentType-8356d528.js');
|
|
12
13
|
|
|
@@ -26,7 +27,57 @@ async function fetchRequestHandler(opts) {
|
|
|
26
27
|
headers: Object.fromEntries(opts.req.headers),
|
|
27
28
|
body: opts.req.headers.get('content-type') === 'application/json' ? await opts.req.text() : ''
|
|
28
29
|
};
|
|
29
|
-
|
|
30
|
+
let resolve;
|
|
31
|
+
const promise = new Promise((r)=>resolve = r);
|
|
32
|
+
let status = 200;
|
|
33
|
+
const onHead = (head)=>{
|
|
34
|
+
for (const [key, value] of Object.entries(head.headers ?? {})){
|
|
35
|
+
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (typeof value === 'string') {
|
|
39
|
+
resHeaders.set(key, value);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
for (const v of value){
|
|
43
|
+
resHeaders.append(key, v);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
status = head.status;
|
|
47
|
+
};
|
|
48
|
+
let isStream = false;
|
|
49
|
+
let controller;
|
|
50
|
+
let encoder;
|
|
51
|
+
const formatter = batchStreamFormatter.getBatchStreamFormatter();
|
|
52
|
+
const onChunk = ([index, string])=>{
|
|
53
|
+
if (index === -1) {
|
|
54
|
+
// full response, no streaming
|
|
55
|
+
const response = new Response(string || null, {
|
|
56
|
+
status,
|
|
57
|
+
headers: resHeaders
|
|
58
|
+
});
|
|
59
|
+
resolve(response);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (!isStream) {
|
|
63
|
+
resHeaders.set('Transfer-Encoding', 'chunked');
|
|
64
|
+
resHeaders.append('Vary', 'trpc-batch-mode');
|
|
65
|
+
const stream = new ReadableStream({
|
|
66
|
+
start (c) {
|
|
67
|
+
controller = c;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
const response1 = new Response(stream, {
|
|
71
|
+
status,
|
|
72
|
+
headers: resHeaders
|
|
73
|
+
});
|
|
74
|
+
resolve(response1);
|
|
75
|
+
encoder = new TextEncoder();
|
|
76
|
+
isStream = true;
|
|
77
|
+
}
|
|
78
|
+
controller.enqueue(encoder.encode(formatter(index, string)));
|
|
79
|
+
};
|
|
80
|
+
resolveHTTPResponse.resolveHTTPResponse({
|
|
30
81
|
req,
|
|
31
82
|
createContext,
|
|
32
83
|
path,
|
|
@@ -38,25 +89,20 @@ async function fetchRequestHandler(opts) {
|
|
|
38
89
|
...o,
|
|
39
90
|
req: opts.req
|
|
40
91
|
});
|
|
92
|
+
},
|
|
93
|
+
onHead,
|
|
94
|
+
onChunk
|
|
95
|
+
}).then(()=>{
|
|
96
|
+
if (isStream) {
|
|
97
|
+
controller.enqueue(encoder.encode(formatter.end()));
|
|
98
|
+
controller.close();
|
|
41
99
|
}
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
if (typeof value === 'string') {
|
|
48
|
-
resHeaders.set(key, value);
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
for (const v of value){
|
|
52
|
-
resHeaders.append(key, v);
|
|
100
|
+
}).catch(()=>{
|
|
101
|
+
if (isStream) {
|
|
102
|
+
controller.close();
|
|
53
103
|
}
|
|
54
|
-
}
|
|
55
|
-
const res = new Response(result.body, {
|
|
56
|
-
status: result.status,
|
|
57
|
-
headers: resHeaders
|
|
58
104
|
});
|
|
59
|
-
return
|
|
105
|
+
return promise;
|
|
60
106
|
}
|
|
61
107
|
|
|
62
108
|
exports.fetchRequestHandler = fetchRequestHandler;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-4e576698.mjs';
|
|
2
|
-
import '../../config-65c5b6d1.mjs';
|
|
3
|
-
import '../../TRPCError-2b10c8d2.mjs';
|
|
4
1
|
import '../../index-044a193b.mjs';
|
|
2
|
+
import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-a9be3d96.mjs';
|
|
3
|
+
import { g as getBatchStreamFormatter } from '../../batchStreamFormatter-fc1ffb26.mjs';
|
|
5
4
|
import '../../codes-24aa1ce1.mjs';
|
|
5
|
+
import '../../config-65c5b6d1.mjs';
|
|
6
|
+
import '../../TRPCError-2b10c8d2.mjs';
|
|
6
7
|
import '../../transformTRPCResponse-3dca0b20.mjs';
|
|
7
8
|
import '../../contentType-acc3be52.mjs';
|
|
8
9
|
|
|
@@ -22,7 +23,57 @@ async function fetchRequestHandler(opts) {
|
|
|
22
23
|
headers: Object.fromEntries(opts.req.headers),
|
|
23
24
|
body: opts.req.headers.get('content-type') === 'application/json' ? await opts.req.text() : ''
|
|
24
25
|
};
|
|
25
|
-
|
|
26
|
+
let resolve;
|
|
27
|
+
const promise = new Promise((r)=>resolve = r);
|
|
28
|
+
let status = 200;
|
|
29
|
+
const onHead = (head)=>{
|
|
30
|
+
for (const [key, value] of Object.entries(head.headers ?? {})){
|
|
31
|
+
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (typeof value === 'string') {
|
|
35
|
+
resHeaders.set(key, value);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
for (const v of value){
|
|
39
|
+
resHeaders.append(key, v);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
status = head.status;
|
|
43
|
+
};
|
|
44
|
+
let isStream = false;
|
|
45
|
+
let controller;
|
|
46
|
+
let encoder;
|
|
47
|
+
const formatter = getBatchStreamFormatter();
|
|
48
|
+
const onChunk = ([index, string])=>{
|
|
49
|
+
if (index === -1) {
|
|
50
|
+
// full response, no streaming
|
|
51
|
+
const response = new Response(string || null, {
|
|
52
|
+
status,
|
|
53
|
+
headers: resHeaders
|
|
54
|
+
});
|
|
55
|
+
resolve(response);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (!isStream) {
|
|
59
|
+
resHeaders.set('Transfer-Encoding', 'chunked');
|
|
60
|
+
resHeaders.append('Vary', 'trpc-batch-mode');
|
|
61
|
+
const stream = new ReadableStream({
|
|
62
|
+
start (c) {
|
|
63
|
+
controller = c;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const response1 = new Response(stream, {
|
|
67
|
+
status,
|
|
68
|
+
headers: resHeaders
|
|
69
|
+
});
|
|
70
|
+
resolve(response1);
|
|
71
|
+
encoder = new TextEncoder();
|
|
72
|
+
isStream = true;
|
|
73
|
+
}
|
|
74
|
+
controller.enqueue(encoder.encode(formatter(index, string)));
|
|
75
|
+
};
|
|
76
|
+
resolveHTTPResponse({
|
|
26
77
|
req,
|
|
27
78
|
createContext,
|
|
28
79
|
path,
|
|
@@ -34,25 +85,20 @@ async function fetchRequestHandler(opts) {
|
|
|
34
85
|
...o,
|
|
35
86
|
req: opts.req
|
|
36
87
|
});
|
|
88
|
+
},
|
|
89
|
+
onHead,
|
|
90
|
+
onChunk
|
|
91
|
+
}).then(()=>{
|
|
92
|
+
if (isStream) {
|
|
93
|
+
controller.enqueue(encoder.encode(formatter.end()));
|
|
94
|
+
controller.close();
|
|
37
95
|
}
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
if (typeof value === 'string') {
|
|
44
|
-
resHeaders.set(key, value);
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
for (const v of value){
|
|
48
|
-
resHeaders.append(key, v);
|
|
96
|
+
}).catch(()=>{
|
|
97
|
+
if (isStream) {
|
|
98
|
+
controller.close();
|
|
49
99
|
}
|
|
50
|
-
}
|
|
51
|
-
const res = new Response(result.body, {
|
|
52
|
-
status: result.status,
|
|
53
|
-
headers: resHeaders
|
|
54
100
|
});
|
|
55
|
-
return
|
|
101
|
+
return promise;
|
|
56
102
|
}
|
|
57
103
|
|
|
58
104
|
export { fetchRequestHandler };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { awsLambdaRequestHandler, CreateAWSLambdaContextOptions } from '../aws-lambda';
|
|
2
2
|
import { APIGatewayEvent } from '../aws-lambda/utils';
|
|
3
3
|
export * from '../aws-lambda';
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/lambda/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/lambda/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,cAAc,eAAe,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,0BAA0B,CAAC,MAAM,SAAS,eAAe,IACnE,6BAA6B,CAAC,MAAM,CAAC,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,oBAAoB,gCAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../src/adapters/next.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../src/adapters/next.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EAEvB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,wBAAwB,GAAG,8BAA8B,CACnE,cAAc,EACd,eAAe,CAChB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,SAAS,SAAS,EAC5D,IAAI,EAAE,sBAAsB,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,GACrE,cAAc,CAyChB"}
|
package/dist/adapters/next.js
CHANGED
|
@@ -4,12 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var TRPCError = require('../TRPCError-16b2e52d.js');
|
|
6
6
|
var transformTRPCResponse = require('../transformTRPCResponse-48d70ef6.js');
|
|
7
|
-
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-
|
|
7
|
+
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-e637755a.js');
|
|
8
8
|
require('../index-4a823936.js');
|
|
9
9
|
require('../codes-0eeb600d.js');
|
|
10
|
-
require('../resolveHTTPResponse-
|
|
10
|
+
require('../resolveHTTPResponse-2c307e04.js');
|
|
11
11
|
require('../config-f3ce0144.js');
|
|
12
12
|
require('../contentType-8356d528.js');
|
|
13
|
+
require('../batchStreamFormatter-93cdcdd4.js');
|
|
13
14
|
require('./node-http/content-type/json/index.js');
|
|
14
15
|
require('../contentType-8c16408e.js');
|
|
15
16
|
|
package/dist/adapters/next.mjs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { T as TRPCError } from '../TRPCError-2b10c8d2.mjs';
|
|
2
2
|
import { g as getErrorShape } from '../transformTRPCResponse-3dca0b20.mjs';
|
|
3
|
-
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-
|
|
3
|
+
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-bdad2781.mjs';
|
|
4
4
|
import '../index-044a193b.mjs';
|
|
5
5
|
import '../codes-24aa1ce1.mjs';
|
|
6
|
-
import '../resolveHTTPResponse-
|
|
6
|
+
import '../resolveHTTPResponse-a9be3d96.mjs';
|
|
7
7
|
import '../config-65c5b6d1.mjs';
|
|
8
8
|
import '../contentType-acc3be52.mjs';
|
|
9
|
+
import '../batchStreamFormatter-fc1ffb26.mjs';
|
|
9
10
|
import './node-http/content-type/json/index.mjs';
|
|
10
11
|
import '../contentType-3194ed5f.mjs';
|
|
11
12
|
|