Files
Homarr/patches/trpc-swagger@1.2.6.patch
2024-08-25 18:03:32 +02:00

2153 lines
78 KiB
Diff

diff --git a/build/index.js b/build/index.js
index f35a9c8bdec56b61b7ecb25e9e5ff03ccf7e956c..ad4e395f73e02671f1d099c289067dcee1914b12 100644
--- a/build/index.js
+++ b/build/index.js
@@ -1,8 +1,40 @@
-"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// packages/adapters/aws-lambda.ts
-var _server = require('@trpc/server');
-var _awslambda = require('@trpc/server/adapters/aws-lambda');
-var _events = require('events');
-var _nodemockshttp = require('node-mocks-http');
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : { default: obj };
+}
+function _nullishCoalesce(lhs, rhsFn) {
+ if (lhs != null) {
+ return lhs;
+ } else {
+ return rhsFn();
+ }
+}
+function _optionalChain(ops) {
+ let lastAccessLHS = undefined;
+ let value = ops[0];
+ let i = 1;
+ while (i < ops.length) {
+ const op = ops[i];
+ const fn = ops[i + 1];
+ i += 2;
+ if ((op === "optionalAccess" || op === "optionalCall") && value == null) {
+ return undefined;
+ }
+ if (op === "access" || op === "optionalAccess") {
+ lastAccessLHS = value;
+ value = fn(value);
+ } else if (op === "call" || op === "optionalCall") {
+ value = fn((...args) => value.call(lastAccessLHS, ...args));
+ lastAccessLHS = undefined;
+ }
+ }
+ return value;
+} // packages/adapters/aws-lambda.ts
+var _server = require("@trpc/server");
+var _awslambda = require("@trpc/server/adapters/aws-lambda");
+var _events = require("events");
+var _nodemockshttp = require("node-mocks-http");
// packages/adapters/node-http/errors.ts
@@ -21,7 +53,7 @@ var TRPC_ERROR_CODE_HTTP_STATUS = {
METHOD_NOT_SUPPORTED: 405,
TOO_MANY_REQUESTS: 429,
UNPROCESSABLE_CONTENT: 422,
- NOT_IMPLEMENTED: 500
+ NOT_IMPLEMENTED: 500,
};
function getErrorFromUnknown(cause) {
if (cause instanceof Error && cause.name === "TRPCError") {
@@ -36,7 +68,7 @@ function getErrorFromUnknown(cause) {
const error = new (0, _server.TRPCError)({
message: "Internal server error",
code: "INTERNAL_SERVER_ERROR",
- cause: errorCause
+ cause: errorCause,
});
if (stack) {
error.stack = stack;
@@ -46,11 +78,12 @@ function getErrorFromUnknown(cause) {
// packages/adapters/node-http/core.ts
-var _lodashclonedeep = require('lodash.clonedeep'); var _lodashclonedeep2 = _interopRequireDefault(_lodashclonedeep);
+var _lodashclonedeep = require("lodash.clonedeep");
+var _lodashclonedeep2 = _interopRequireDefault(_lodashclonedeep);
// packages/generator/paths.ts
-var _openapitypes = require('openapi-types');
+var _openapitypes = require("openapi-types");
// packages/utils/method.ts
var acceptsRequestBody = (method) => {
@@ -70,7 +103,7 @@ var getPathRegExp = (path) => {
};
// packages/utils/procedure.ts
-var _zod = require('zod');
+var _zod = require("zod");
var mergeInputs = (inputParsers) => {
return inputParsers.reduce((acc, inputParser) => {
return acc.merge(inputParser);
@@ -80,21 +113,13 @@ var getInputOutputParsers = (procedure) => {
const { inputs, output } = procedure._def;
return {
inputParser: inputs.length >= 2 ? mergeInputs(inputs) : inputs[0],
- outputParser: output
+ outputParser: output,
};
};
-var getProcedureType = (procedure) => {
- if (procedure._def.query)
- return "query";
- if (procedure._def.mutation)
- return "mutation";
- if (procedure._def.subscription)
- return "subscription";
- throw new Error("Unknown procedure type");
-};
+var getProcedureType = (procedure) => procedure._def.type;
var forEachOpenApiProcedure = (procedureRecord, callback) => {
for (const [path, procedure] of Object.entries(procedureRecord)) {
- const { openapi } = _nullishCoalesce(procedure._def.meta, () => ( {}));
+ const { openapi } = _nullishCoalesce(procedure._def.meta, () => ({}));
if (openapi && openapi.enabled !== false) {
const type = getProcedureType(procedure);
callback({ path, type, procedure, openapi });
@@ -104,16 +129,16 @@ var forEachOpenApiProcedure = (procedureRecord, callback) => {
// packages/generator/schema.ts
-
-var _zodtojsonschema = require('zod-to-json-schema'); var _zodtojsonschema2 = _interopRequireDefault(_zodtojsonschema);
+var _zodtojsonschema = require("zod-to-json-schema");
+var _zodtojsonschema2 = _interopRequireDefault(_zodtojsonschema);
// packages/utils/zod.ts
var instanceofZodType = (type) => {
- return !!_optionalChain([type, 'optionalAccess', _2 => _2._def, 'optionalAccess', _3 => _3.typeName]);
+ return !!_optionalChain([type, "optionalAccess", (_2) => _2._def, "optionalAccess", (_3) => _3.typeName]);
};
var instanceofZodTypeKind = (type, zodTypeKind) => {
- return _optionalChain([type, 'optionalAccess', _4 => _4._def, 'optionalAccess', _5 => _5.typeName]) === zodTypeKind;
+ return _optionalChain([type, "optionalAccess", (_4) => _4._def, "optionalAccess", (_5) => _5.typeName]) === zodTypeKind;
};
var instanceofZodTypeOptional = (type) => {
return instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodOptional);
@@ -122,7 +147,11 @@ var instanceofZodTypeObject = (type) => {
return instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodObject);
};
var instanceofZodTypeLikeVoid = (type) => {
- return instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodVoid) || instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodUndefined) || instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodNever);
+ return (
+ instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodVoid) ||
+ instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodUndefined) ||
+ instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodNever)
+ );
};
var unwrapZodType = (type, unwrapPreprocess) => {
if (instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodOptional)) {
@@ -174,7 +203,12 @@ var instanceofZodTypeLikeString = (_type) => {
var zodSupportsCoerce = "coerce" in _zod.z;
var instanceofZodTypeCoercible = (_type) => {
const type = unwrapZodType(_type, false);
- return instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodNumber) || instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodBoolean) || instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodBigInt) || instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodDate);
+ return (
+ instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodNumber) ||
+ instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodBoolean) ||
+ instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodBigInt) ||
+ instanceofZodTypeKind(type, _zod.z.ZodFirstPartyTypeKind.ZodDate)
+ );
};
// packages/generator/schema.ts
@@ -185,7 +219,7 @@ var getParameterObjects = (schema, pathParameters, inType, example) => {
if (!instanceofZodType(schema)) {
throw new (0, _server.TRPCError)({
message: "Input parser expects a Zod validator",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const isRequired = !schema.isOptional();
@@ -196,7 +230,7 @@ var getParameterObjects = (schema, pathParameters, inType, example) => {
if (!instanceofZodTypeObject(unwrappedSchema)) {
throw new (0, _server.TRPCError)({
message: "Input parser must be a ZodObject",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const { shape } = unwrappedSchema;
@@ -205,63 +239,65 @@ var getParameterObjects = (schema, pathParameters, inType, example) => {
if (!shapeKeys.includes(pathParameter)) {
throw new (0, _server.TRPCError)({
message: `Input parser expects key from path: "${pathParameter}"`,
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
}
- return shapeKeys.filter((shapeKey) => {
- const isPathParameter = pathParameters.includes(shapeKey);
- if (inType === "path") {
- return isPathParameter;
- }
- if (inType === "query") {
- return !isPathParameter;
- }
- return true;
- }).map((shapeKey) => {
- let shapeSchema = shape[shapeKey];
- const isShapeRequired = !shapeSchema.isOptional();
- const isPathParameter = pathParameters.includes(shapeKey);
- if (!instanceofZodTypeLikeString(shapeSchema)) {
- if (zodSupportsCoerce) {
- if (!instanceofZodTypeCoercible(shapeSchema)) {
+ return shapeKeys
+ .filter((shapeKey) => {
+ const isPathParameter = pathParameters.includes(shapeKey);
+ if (inType === "path") {
+ return isPathParameter;
+ }
+ if (inType === "query") {
+ return !isPathParameter;
+ }
+ return true;
+ })
+ .map((shapeKey) => {
+ let shapeSchema = shape[shapeKey];
+ const isShapeRequired = !shapeSchema.isOptional();
+ const isPathParameter = pathParameters.includes(shapeKey);
+ if (!instanceofZodTypeLikeString(shapeSchema)) {
+ if (zodSupportsCoerce) {
+ if (!instanceofZodTypeCoercible(shapeSchema)) {
+ throw new (0, _server.TRPCError)({
+ message: `Input parser key: "${shapeKey}" must be ZodString, ZodNumber, ZodBoolean, ZodBigInt or ZodDate`,
+ code: "INTERNAL_SERVER_ERROR",
+ });
+ }
+ } else {
throw new (0, _server.TRPCError)({
- message: `Input parser key: "${shapeKey}" must be ZodString, ZodNumber, ZodBoolean, ZodBigInt or ZodDate`,
- code: "INTERNAL_SERVER_ERROR"
+ message: `Input parser key: "${shapeKey}" must be ZodString`,
+ code: "INTERNAL_SERVER_ERROR",
});
}
- } else {
- throw new (0, _server.TRPCError)({
- message: `Input parser key: "${shapeKey}" must be ZodString`,
- code: "INTERNAL_SERVER_ERROR"
- });
}
- }
- if (instanceofZodTypeOptional(shapeSchema)) {
- if (isPathParameter) {
- throw new (0, _server.TRPCError)({
- message: `Path parameter: "${shapeKey}" must not be optional`,
- code: "INTERNAL_SERVER_ERROR"
- });
+ if (instanceofZodTypeOptional(shapeSchema)) {
+ if (isPathParameter) {
+ throw new (0, _server.TRPCError)({
+ message: `Path parameter: "${shapeKey}" must not be optional`,
+ code: "INTERNAL_SERVER_ERROR",
+ });
+ }
+ shapeSchema = shapeSchema.unwrap();
}
- shapeSchema = shapeSchema.unwrap();
- }
- const { description, ...openApiSchemaObject } = zodSchemaToOpenApiSchemaObject(shapeSchema);
- return {
- name: shapeKey,
- in: isPathParameter ? "path" : "query",
- required: isPathParameter || isRequired && isShapeRequired,
- schema: openApiSchemaObject,
- description,
- example: _optionalChain([example, 'optionalAccess', _6 => _6[shapeKey]])
- };
- });
+ const { description, ...openApiSchemaObject } = zodSchemaToOpenApiSchemaObject(shapeSchema);
+ return {
+ name: shapeKey,
+ in: isPathParameter ? "path" : "query",
+ required: isPathParameter || (isRequired && isShapeRequired),
+ schema: openApiSchemaObject,
+ description,
+ example: _optionalChain([example, "optionalAccess", (_6) => _6[shapeKey]]),
+ };
+ });
};
var getRequestBodyObject = (schema, pathParameters, contentTypes, example) => {
if (!instanceofZodType(schema)) {
throw new (0, _server.TRPCError)({
message: "Input parser expects a Zod validator",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const isRequired = !schema.isOptional();
@@ -272,7 +308,7 @@ var getRequestBodyObject = (schema, pathParameters, contentTypes, example) => {
if (!instanceofZodTypeObject(unwrappedSchema)) {
throw new (0, _server.TRPCError)({
message: "Input parser must be a ZodObject",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const mask = {};
@@ -292,12 +328,12 @@ var getRequestBodyObject = (schema, pathParameters, contentTypes, example) => {
for (const contentType of contentTypes) {
content[contentType] = {
schema: openApiSchemaObject,
- example: dedupedExample
+ example: dedupedExample,
};
}
return {
required: isRequired,
- content
+ content,
};
};
var errorResponseObject = {
@@ -308,17 +344,17 @@ var errorResponseObject = {
_zod.z.object({
message: _zod.z.string(),
code: _zod.z.string(),
- issues: _zod.z.array(_zod.z.object({ message: _zod.z.string() })).optional()
+ issues: _zod.z.array(_zod.z.object({ message: _zod.z.string() })).optional(),
})
- )
- }
- }
+ ),
+ },
+ },
};
var getResponsesObject = (schema, example, headers) => {
if (!instanceofZodType(schema)) {
throw new (0, _server.TRPCError)({
message: "Output parser expects a Zod validator",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const successResponseObject = {
@@ -327,15 +363,15 @@ var getResponsesObject = (schema, example, headers) => {
content: {
"application/json": {
schema: zodSchemaToOpenApiSchemaObject(schema),
- example
- }
- }
+ example,
+ },
+ },
};
return {
200: successResponseObject,
default: {
- $ref: "#/components/responses/error"
- }
+ $ref: "#/components/responses/error",
+ },
};
};
@@ -349,31 +385,31 @@ var getOpenApiPathsObject = (appRouter, securitySchemeNames) => {
if (type === "subscription") {
throw new (0, _server.TRPCError)({
message: "Subscriptions are not supported by OpenAPI v3",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const { method, protect, summary, description, tags, headers } = openapi;
const path = normalizePath(openapi.path);
const pathParameters = getPathParameters(path);
- const headerParameters = _optionalChain([headers, 'optionalAccess', _7 => _7.map, 'call', _8 => _8((header) => ({ ...header, in: "header" }))]) || [];
+ const headerParameters = _optionalChain([headers, "optionalAccess", (_7) => _7.map, "call", (_8) => _8((header) => ({ ...header, in: "header" }))]) || [];
const httpMethod = _openapitypes.OpenAPIV3.HttpMethods[method];
if (!httpMethod) {
throw new (0, _server.TRPCError)({
message: "Method must be GET, POST, PATCH, PUT or DELETE",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
- if (_optionalChain([pathsObject, 'access', _9 => _9[path], 'optionalAccess', _10 => _10[httpMethod]])) {
+ if (_optionalChain([pathsObject, "access", (_9) => _9[path], "optionalAccess", (_10) => _10[httpMethod]])) {
throw new (0, _server.TRPCError)({
message: `Duplicate procedure defined for route ${method} ${path}`,
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const contentTypes = openapi.contentTypes || ["application/json"];
if (contentTypes.length === 0) {
throw new (0, _server.TRPCError)({
message: "At least one content type must be specified",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const { inputParser, outputParser } = getInputOutputParsers(procedure);
@@ -385,37 +421,24 @@ var getOpenApiPathsObject = (appRouter, securitySchemeNames) => {
description,
tags,
security: protect ? securitySchemeNames.map((name) => ({ [name]: [] })) : void 0,
- ...acceptsRequestBody(method) ? {
- requestBody: getRequestBodyObject(
- inputParser,
- pathParameters,
- contentTypes,
- _optionalChain([openapi, 'access', _11 => _11.example, 'optionalAccess', _12 => _12.request])
- ),
- parameters: [
- ...headerParameters,
- ...getParameterObjects(
- inputParser,
- pathParameters,
- "path",
- _optionalChain([openapi, 'access', _13 => _13.example, 'optionalAccess', _14 => _14.request])
- ) || []
- ]
- } : {
- requestBody: void 0,
- parameters: [
- ...headerParameters,
- ...getParameterObjects(
- inputParser,
- pathParameters,
- "all",
- _optionalChain([openapi, 'access', _15 => _15.example, 'optionalAccess', _16 => _16.request])
- ) || []
- ]
- },
- responses: getResponsesObject(outputParser, _optionalChain([openapi, 'access', _17 => _17.example, 'optionalAccess', _18 => _18.response]), openapi.responseHeaders),
- ...openapi.deprecated ? { deprecated: openapi.deprecated } : {}
- }
+ ...(acceptsRequestBody(method)
+ ? {
+ requestBody: getRequestBodyObject(inputParser, pathParameters, contentTypes, _optionalChain([openapi, "access", (_11) => _11.example, "optionalAccess", (_12) => _12.request])),
+ parameters: [
+ ...headerParameters,
+ ...(getParameterObjects(inputParser, pathParameters, "path", _optionalChain([openapi, "access", (_13) => _13.example, "optionalAccess", (_14) => _14.request])) || []),
+ ],
+ }
+ : {
+ requestBody: void 0,
+ parameters: [
+ ...headerParameters,
+ ...(getParameterObjects(inputParser, pathParameters, "all", _optionalChain([openapi, "access", (_15) => _15.example, "optionalAccess", (_16) => _16.request])) || []),
+ ],
+ }),
+ responses: getResponsesObject(outputParser, _optionalChain([openapi, "access", (_17) => _17.example, "optionalAccess", (_18) => _18.response]), openapi.responseHeaders),
+ ...(openapi.deprecated ? { deprecated: openapi.deprecated } : {}),
+ },
};
} catch (error) {
error.message = `[${procedureName}] - ${error.message}`;
@@ -431,36 +454,37 @@ var generateOpenApiDocument = (appRouter, opts) => {
const securitySchemes = opts.securitySchemes || {
Authorization: {
type: "http",
- scheme: "bearer"
- }
+ scheme: "bearer",
+ },
};
return {
openapi: openApiVersion,
info: {
title: opts.title,
description: opts.description,
- version: opts.version
+ version: opts.version,
},
servers: [
{
- url: opts.baseUrl
- }
+ url: opts.baseUrl,
+ },
],
paths: getOpenApiPathsObject(appRouter, Object.keys(securitySchemes)),
components: {
securitySchemes,
responses: {
- error: errorResponseObject
- }
+ error: errorResponseObject,
+ },
},
- tags: _optionalChain([opts, 'access', _19 => _19.tags, 'optionalAccess', _20 => _20.map, 'call', _21 => _21((tag) => ({ name: tag }))]),
- externalDocs: opts.docsUrl ? { url: opts.docsUrl } : void 0
+ tags: _optionalChain([opts, "access", (_19) => _19.tags, "optionalAccess", (_20) => _20.map, "call", (_21) => _21((tag) => ({ name: tag }))]),
+ externalDocs: opts.docsUrl ? { url: opts.docsUrl } : void 0,
};
};
// packages/adapters/node-http/input.ts
-var _cobody = require('co-body'); var _cobody2 = _interopRequireDefault(_cobody);
+var _cobody = require("co-body");
+var _cobody2 = _interopRequireDefault(_cobody);
var getQuery = (req, url) => {
const query = {};
if (!req.query) {
@@ -498,7 +522,7 @@ var getBody = async (req, maxBodySize = BODY_100_KB) => {
const { raw, parsed } = await _cobody2.default.call(void 0, req, {
limit: maxBodySize,
strict: false,
- returnRawBody: true
+ returnRawBody: true,
});
req.body = raw ? parsed : void 0;
} catch (cause) {
@@ -506,7 +530,7 @@ var getBody = async (req, maxBodySize = BODY_100_KB) => {
throw new (0, _server.TRPCError)({
message: "Request body too large",
code: "PAYLOAD_TOO_LARGE",
- cause
+ cause,
});
}
let errorCause;
@@ -516,7 +540,7 @@ var getBody = async (req, maxBodySize = BODY_100_KB) => {
throw new (0, _server.TRPCError)({
message: "Failed to parse request body",
code: "PARSE_ERROR",
- cause: errorCause
+ cause: errorCause,
});
}
}
@@ -526,8 +550,7 @@ var getBody = async (req, maxBodySize = BODY_100_KB) => {
// packages/adapters/node-http/procedures.ts
var createProcedureCache = (router) => {
const procedureCache = /* @__PURE__ */ new Map();
- const { queries, mutations } = router._def;
- forEachOpenApiProcedure(queries, ({ path: queryPath, procedure, openapi }) => {
+ forEachOpenApiProcedure(router._def.procedures, ({ path: queryPath, procedure, openapi }) => {
const { method } = openapi;
if (!procedureCache.has(method)) {
procedureCache.set(method, /* @__PURE__ */ new Map());
@@ -535,22 +558,9 @@ var createProcedureCache = (router) => {
const path = normalizePath(openapi.path);
const pathRegExp = getPathRegExp(path);
procedureCache.get(method).set(pathRegExp, {
- type: "query",
+ type: procedure._def.type,
path: queryPath,
- procedure
- });
- });
- forEachOpenApiProcedure(mutations, ({ path: mutationPath, procedure, openapi }) => {
- const { method } = openapi;
- if (!procedureCache.has(method)) {
- procedureCache.set(method, /* @__PURE__ */ new Map());
- }
- const path = normalizePath(openapi.path);
- const pathRegExp = getPathRegExp(path);
- procedureCache.get(method).set(pathRegExp, {
- type: "mutation",
- path: mutationPath,
- procedure
+ procedure,
});
});
return (method, path) => {
@@ -563,7 +573,7 @@ var createProcedureCache = (router) => {
return void 0;
}
const procedure = procedureMethodCache.get(procedureRegExp);
- const pathInput = _nullishCoalesce(_optionalChain([procedureRegExp, 'access', _22 => _22.exec, 'call', _23 => _23(path), 'optionalAccess', _24 => _24.groups]), () => ( {}));
+ const pathInput = _nullishCoalesce(_optionalChain([procedureRegExp, "access", (_22) => _22.exec, "call", (_23) => _23(path), "optionalAccess", (_24) => _24.groups]), () => ({}));
return { procedure, pathInput };
};
};
@@ -591,7 +601,7 @@ var createOpenApiNodeHttpHandler = (opts) => {
const reqUrl = req.url;
const url = new URL(reqUrl.startsWith("/") ? `http://127.0.0.1${reqUrl}` : reqUrl);
const path = normalizePath(url.pathname);
- const { procedure, pathInput } = _nullishCoalesce(getProcedure(method, path), () => ( {}));
+ const { procedure, pathInput } = _nullishCoalesce(getProcedure(method, path), () => ({}));
let input;
let ctx;
let data;
@@ -606,7 +616,7 @@ var createOpenApiNodeHttpHandler = (opts) => {
}
throw new (0, _server.TRPCError)({
message: "Not found",
- code: "NOT_FOUND"
+ code: "NOT_FOUND",
});
}
const useBody = acceptsRequestBody(method);
@@ -614,8 +624,8 @@ var createOpenApiNodeHttpHandler = (opts) => {
const unwrappedSchema = unwrapZodType(schema, true);
if (!instanceofZodTypeLikeVoid(unwrappedSchema)) {
input = {
- ...useBody ? await getBody(req, maxBodySize) : getQuery(req, url),
- ...pathInput
+ ...(useBody ? await getBody(req, maxBodySize) : getQuery(req, url)),
+ ...pathInput,
};
}
if (zodSupportsCoerce) {
@@ -628,53 +638,76 @@ var createOpenApiNodeHttpHandler = (opts) => {
});
}
}
- ctx = await _optionalChain([createContext, 'optionalCall', _25 => _25({ req, res })]);
+ ctx = await _optionalChain([createContext, "optionalCall", (_25) => _25({ req, res })]);
const caller = router.createCaller(ctx);
const segments = procedure.path.split(".");
const procedureFn = segments.reduce((acc, curr) => acc[curr], caller);
data = await procedureFn(input);
- const meta = _optionalChain([responseMeta, 'optionalCall', _26 => _26({
- type: procedure.type,
- paths: [procedure.path],
- ctx,
- data: [data],
- errors: []
- })]);
- const statusCode = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _27 => _27.status]), () => ( 200));
- const headers = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _28 => _28.headers]), () => ( {}));
+ const meta = _optionalChain([
+ responseMeta,
+ "optionalCall",
+ (_26) =>
+ _26({
+ type: procedure.type,
+ paths: [procedure.path],
+ ctx,
+ data: [data],
+ errors: [],
+ }),
+ ]);
+ const statusCode = _nullishCoalesce(_optionalChain([meta, "optionalAccess", (_27) => _27.status]), () => 200);
+ const headers = _nullishCoalesce(_optionalChain([meta, "optionalAccess", (_28) => _28.headers]), () => ({}));
const body = data;
sendResponse(statusCode, headers, body);
} catch (cause) {
const error = getErrorFromUnknown(cause);
- _optionalChain([onError, 'optionalCall', _29 => _29({
+ _optionalChain([
+ onError,
+ "optionalCall",
+ (_29) =>
+ _29({
+ error,
+ type: _nullishCoalesce(_optionalChain([procedure, "optionalAccess", (_30) => _30.type]), () => "unknown"),
+ path: _optionalChain([procedure, "optionalAccess", (_31) => _31.path]),
+ input,
+ ctx,
+ req,
+ }),
+ ]);
+ const meta = _optionalChain([
+ responseMeta,
+ "optionalCall",
+ (_32) =>
+ _32({
+ type: _nullishCoalesce(_optionalChain([procedure, "optionalAccess", (_33) => _33.type]), () => "unknown"),
+ paths: _optionalChain([procedure, "optionalAccess", (_34) => _34.path]) ? [_optionalChain([procedure, "optionalAccess", (_35) => _35.path])] : void 0,
+ ctx,
+ data: [data],
+ errors: [error],
+ }),
+ ]);
+ const errorShape = router._def.errorFormatter({
error,
- type: _nullishCoalesce(_optionalChain([procedure, 'optionalAccess', _30 => _30.type]), () => ( "unknown")),
- path: _optionalChain([procedure, 'optionalAccess', _31 => _31.path]),
+ type: _nullishCoalesce(_optionalChain([procedure, "optionalAccess", (_36) => _36.type]), () => "unknown"),
+ path: _optionalChain([procedure, "optionalAccess", (_37) => _37.path]),
input,
ctx,
- req
- })]);
- const meta = _optionalChain([responseMeta, 'optionalCall', _32 => _32({
- type: _nullishCoalesce(_optionalChain([procedure, 'optionalAccess', _33 => _33.type]), () => ( "unknown")),
- paths: _optionalChain([procedure, 'optionalAccess', _34 => _34.path]) ? [_optionalChain([procedure, 'optionalAccess', _35 => _35.path])] : void 0,
- ctx,
- data: [data],
- errors: [error]
- })]);
- const errorShape = router.getErrorShape({
- error,
- type: _nullishCoalesce(_optionalChain([procedure, 'optionalAccess', _36 => _36.type]), () => ( "unknown")),
- path: _optionalChain([procedure, 'optionalAccess', _37 => _37.path]),
- input,
- ctx
});
const isInputValidationError = error.code === "BAD_REQUEST" && error.cause instanceof Error && error.cause.name === "ZodError";
- const statusCode = _nullishCoalesce(_nullishCoalesce(_optionalChain([meta, 'optionalAccess', _38 => _38.status]), () => ( TRPC_ERROR_CODE_HTTP_STATUS[error.code])), () => ( 500));
- const headers = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _39 => _39.headers]), () => ( {}));
+ const statusCode = _nullishCoalesce(
+ _nullishCoalesce(_optionalChain([meta, "optionalAccess", (_38) => _38.status]), () => TRPC_ERROR_CODE_HTTP_STATUS[error.code]),
+ () => 500
+ );
+ const headers = _nullishCoalesce(_optionalChain([meta, "optionalAccess", (_39) => _39.headers]), () => ({}));
const body = {
- message: isInputValidationError ? "Input validation failed" : _nullishCoalesce(_nullishCoalesce(_optionalChain([errorShape, 'optionalAccess', _40 => _40.message]), () => ( error.message)), () => ( "An error occurred")),
+ message: isInputValidationError
+ ? "Input validation failed"
+ : _nullishCoalesce(
+ _nullishCoalesce(_optionalChain([errorShape, "optionalAccess", (_40) => _40.message]), () => error.message),
+ () => "An error occurred"
+ ),
code: error.code,
- issues: isInputValidationError ? error.cause.errors : void 0
+ issues: isInputValidationError ? error.cause.errors : void 0,
};
sendResponse(statusCode, headers, body);
}
@@ -693,7 +726,13 @@ var createMockNodeHTTPRequest = (path, event) => {
const url = event.requestContext.domainName ? `https://${event.requestContext.domainName}${path}` : path;
const method = _awslambda.getHTTPMethod.call(void 0, event).toUpperCase();
let body;
- const contentType = event.headers[_nullishCoalesce(Object.keys(event.headers).find((key) => key.toLowerCase() === "content-type"), () => ( ""))];
+ const contentType =
+ event.headers[
+ _nullishCoalesce(
+ Object.keys(event.headers).find((key) => key.toLowerCase() === "content-type"),
+ () => ""
+ )
+ ];
if (contentType === "application/json") {
try {
if (event.body) {
@@ -703,7 +742,7 @@ var createMockNodeHTTPRequest = (path, event) => {
throw new (0, _server.TRPCError)({
message: "Failed to parse request body",
code: "PARSE_ERROR",
- cause
+ cause,
});
}
}
@@ -721,7 +760,7 @@ var createMockNodeHTTPRequest = (path, event) => {
throw new (0, _server.TRPCError)({
message: "Failed to parse request body",
code: "PARSE_ERROR",
- cause
+ cause,
});
}
}
@@ -730,7 +769,7 @@ var createMockNodeHTTPRequest = (path, event) => {
method,
query: event.queryStringParameters || void 0,
headers: event.headers,
- body
+ body,
});
};
var createMockNodeHTTPResponse = () => {
@@ -743,10 +782,10 @@ var createOpenApiAwsLambdaHandler = (opts) => {
if (!_awslambda.isPayloadV1.call(void 0, event) && !_awslambda.isPayloadV2.call(void 0, event)) {
throw new (0, _server.TRPCError)({
message: _awslambda.UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
- const createContext = async () => _optionalChain([opts, 'access', _41 => _41.createContext, 'optionalCall', _42 => _42({ event, context })]);
+ const createContext = async () => _optionalChain([opts, "access", (_41) => _41.createContext, "optionalCall", (_42) => _42({ event, context })]);
const openApiHttpHandler = createOpenApiNodeHttpHandler({ ...opts, createContext });
path = createMockNodeHTTPPath(event);
const req = createMockNodeHTTPRequest(path, event);
@@ -755,42 +794,62 @@ var createOpenApiAwsLambdaHandler = (opts) => {
return {
statusCode: res.statusCode,
headers: _awslambda.transformHeaders.call(void 0, res._getHeaders() || {}),
- body: res._getData()
+ body: res._getData(),
};
} catch (cause) {
const error = getErrorFromUnknown(cause);
- _optionalChain([opts, 'access', _43 => _43.onError, 'optionalCall', _44 => _44({
+ _optionalChain([
+ opts,
+ "access",
+ (_43) => _43.onError,
+ "optionalCall",
+ (_44) =>
+ _44({
+ error,
+ type: "unknown",
+ path,
+ input: void 0,
+ ctx: void 0,
+ req: event,
+ }),
+ ]);
+ const meta = _optionalChain([
+ opts,
+ "access",
+ (_45) => _45.responseMeta,
+ "optionalCall",
+ (_46) =>
+ _46({
+ type: "unknown",
+ paths: [path],
+ ctx: void 0,
+ data: [void 0],
+ errors: [error],
+ }),
+ ]);
+ const errorShape = opts.router._def.errorFormatter({
error,
type: "unknown",
path,
input: void 0,
ctx: void 0,
- req: event
- })]);
- const meta = _optionalChain([opts, 'access', _45 => _45.responseMeta, 'optionalCall', _46 => _46({
- type: "unknown",
- paths: [path],
- ctx: void 0,
- data: [void 0],
- errors: [error]
- })]);
- const errorShape = opts.router.getErrorShape({
- error,
- type: "unknown",
- path,
- input: void 0,
- ctx: void 0
});
- const statusCode = _nullishCoalesce(_nullishCoalesce(_optionalChain([meta, 'optionalAccess', _47 => _47.status]), () => ( TRPC_ERROR_CODE_HTTP_STATUS[error.code])), () => ( 500));
- const headers = { "content-type": "application/json", ..._nullishCoalesce(_optionalChain([meta, 'optionalAccess', _48 => _48.headers]), () => ( {})) };
+ const statusCode = _nullishCoalesce(
+ _nullishCoalesce(_optionalChain([meta, "optionalAccess", (_47) => _47.status]), () => TRPC_ERROR_CODE_HTTP_STATUS[error.code]),
+ () => 500
+ );
+ const headers = { "content-type": "application/json", ..._nullishCoalesce(_optionalChain([meta, "optionalAccess", (_48) => _48.headers]), () => ({})) };
const body = {
- message: _nullishCoalesce(_nullishCoalesce(_optionalChain([errorShape, 'optionalAccess', _49 => _49.message]), () => ( error.message)), () => ( "An error occurred")),
- code: error.code
+ message: _nullishCoalesce(
+ _nullishCoalesce(_optionalChain([errorShape, "optionalAccess", (_49) => _49.message]), () => error.message),
+ () => "An error occurred"
+ ),
+ code: error.code,
};
return {
statusCode,
headers,
- body: JSON.stringify(body)
+ body: JSON.stringify(body),
};
}
};
@@ -806,7 +865,7 @@ var createOpenApiExpressMiddleware = (opts) => {
// packages/adapters/fastify.ts
function fastifyTRPCOpenApiPlugin(fastify, opts, done) {
- let prefix = _nullishCoalesce(opts.basePath, () => ( ""));
+ let prefix = _nullishCoalesce(opts.basePath, () => "");
if (prefix.endsWith("/")) {
prefix = prefix.slice(0, -1);
}
@@ -824,7 +883,7 @@ function fastifyTRPCOpenApiPlugin(fastify, opts, done) {
}
return reply.header(key, value);
},
- end: (body) => reply.send(body)
+ end: (body) => reply.send(body),
// eslint-disable-line @typescript-eslint/no-explicit-any
})
);
@@ -844,27 +903,55 @@ var getUrlEncodedBody = async (req) => {
};
var getRequestBody = async (req) => {
try {
- if (_optionalChain([req, 'access', _50 => _50.headers, 'access', _51 => _51.get, 'call', _52 => _52("content-type"), 'optionalAccess', _53 => _53.includes, 'call', _54 => _54("application/json")])) {
+ if (
+ _optionalChain([
+ req,
+ "access",
+ (_50) => _50.headers,
+ "access",
+ (_51) => _51.get,
+ "call",
+ (_52) => _52("content-type"),
+ "optionalAccess",
+ (_53) => _53.includes,
+ "call",
+ (_54) => _54("application/json"),
+ ])
+ ) {
return {
isValid: true,
// use JSON.parse instead of req.json() because req.json() does not throw on invalid JSON
- data: JSON.parse(await req.text())
+ data: JSON.parse(await req.text()),
};
}
- if (_optionalChain([req, 'access', _55 => _55.headers, 'access', _56 => _56.get, 'call', _57 => _57("content-type"), 'optionalAccess', _58 => _58.includes, 'call', _59 => _59("application/x-www-form-urlencoded")])) {
+ if (
+ _optionalChain([
+ req,
+ "access",
+ (_55) => _55.headers,
+ "access",
+ (_56) => _56.get,
+ "call",
+ (_57) => _57("content-type"),
+ "optionalAccess",
+ (_58) => _58.includes,
+ "call",
+ (_59) => _59("application/x-www-form-urlencoded"),
+ ])
+ ) {
return {
isValid: true,
- data: await getUrlEncodedBody(req)
+ data: await getUrlEncodedBody(req),
};
}
return {
isValid: true,
- data: req.body
+ data: req.body,
};
} catch (err) {
return {
isValid: false,
- cause: err
+ cause: err,
};
}
};
@@ -879,7 +966,7 @@ var createRequestProxy = async (req, url) => {
return new Proxy(target.headers, {
get: (trg, item) => {
return trg.get(item.toString());
- }
+ },
});
}
if (prop === "body") {
@@ -887,13 +974,13 @@ var createRequestProxy = async (req, url) => {
throw new (0, _server.TRPCError)({
code: "PARSE_ERROR",
message: "Failed to parse request body",
- cause: body.cause
+ cause: body.cause,
});
}
return body.data;
}
return target[prop];
- }
+ },
});
};
var createOpenApiFetchHandler = async (opts) => {
@@ -910,38 +997,35 @@ var createOpenApiFetchHandler = async (opts) => {
router: opts.router,
createContext,
onError: opts.onError,
- responseMeta: opts.responseMeta
+ responseMeta: opts.responseMeta,
});
return new Promise((resolve) => {
let statusCode;
- return openApiHttpHandler(
- req,
- {
- setHeader: (key, value) => {
- if (typeof value === "string") {
- resHeaders.set(key, value);
- } else {
- for (const v of value) {
- resHeaders.append(key, v);
- }
+ return openApiHttpHandler(req, {
+ setHeader: (key, value) => {
+ if (typeof value === "string") {
+ resHeaders.set(key, value);
+ } else {
+ for (const v of value) {
+ resHeaders.append(key, v);
}
- },
- get statusCode() {
- return statusCode;
- },
- set statusCode(code) {
- statusCode = code;
- },
- end: (body) => {
- resolve(
- new Response(body, {
- headers: resHeaders,
- status: statusCode
- })
- );
}
- }
- );
+ },
+ get statusCode() {
+ return statusCode;
+ },
+ set statusCode(code) {
+ statusCode = code;
+ },
+ end: (body) => {
+ resolve(
+ new Response(body, {
+ headers: resHeaders,
+ status: statusCode,
+ })
+ );
+ },
+ });
});
};
@@ -959,21 +1043,28 @@ var createOpenApiNextHandler = (opts) => {
if (pathname === null) {
const error = new (0, _server.TRPCError)({
message: 'Query "trpc" not found - is the `trpc-swagger` file named `[...trpc].ts`?',
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
- _optionalChain([opts, 'access', _60 => _60.onError, 'optionalCall', _61 => _61({
- error,
- type: "unknown",
- path: void 0,
- input: void 0,
- ctx: void 0,
- req
- })]);
+ _optionalChain([
+ opts,
+ "access",
+ (_60) => _60.onError,
+ "optionalCall",
+ (_61) =>
+ _61({
+ error,
+ type: "unknown",
+ path: void 0,
+ input: void 0,
+ ctx: void 0,
+ req,
+ }),
+ ]);
res.statusCode = 500;
res.setHeader("Content-Type", "application/json");
const body = {
message: error.message,
- code: error.code
+ code: error.code,
};
res.end(JSON.stringify(body));
return;
@@ -985,7 +1076,6 @@ var createOpenApiNextHandler = (opts) => {
// packages/adapters/nuxt.ts
-
// node_modules/ufo/dist/index.mjs
var r = String.fromCharCode;
var PLUS_RE = /\+/g;
@@ -1044,9 +1134,7 @@ function getQuery2(input) {
}
var protocolRelative = Symbol.for("ufo:protocolRelative");
function parseURL(input = "", defaultProto) {
- const _specialProtoMatch = input.match(
- /^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i
- );
+ const _specialProtoMatch = input.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);
if (_specialProtoMatch) {
const [, _proto, _pathname = ""] = _specialProtoMatch;
return {
@@ -1056,7 +1144,7 @@ function parseURL(input = "", defaultProto) {
auth: "",
host: "",
search: "",
- hash: ""
+ hash: "",
};
}
if (!hasProtocol(input, { acceptRelative: true })) {
@@ -1064,9 +1152,7 @@ function parseURL(input = "", defaultProto) {
}
const [, protocol = "", auth, hostAndPath = ""] = input.replace(/\\/g, "/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/) || [];
const [, host = "", path = ""] = hostAndPath.match(/([^#/?]*)(.*)?/) || [];
- const { pathname, search, hash } = parsePath(
- path.replace(/\/(?=[A-Za-z]:)/, "")
- );
+ const { pathname, search, hash } = parsePath(path.replace(/\/(?=[A-Za-z]:)/, ""));
return {
protocol: protocol.toLowerCase(),
auth: auth ? auth.slice(0, Math.max(0, auth.length - 1)) : "",
@@ -1074,7 +1160,7 @@ function parseURL(input = "", defaultProto) {
pathname,
search,
hash,
- [protocolRelative]: !protocol
+ [protocolRelative]: !protocol,
};
}
function parsePath(input = "") {
@@ -1082,7 +1168,7 @@ function parsePath(input = "") {
return {
pathname,
search,
- hash
+ hash,
};
}
@@ -1122,12 +1208,7 @@ function _defu(baseObject, defaults, namespace = ".", merger) {
if (Array.isArray(value) && Array.isArray(object[key])) {
object[key] = [...value, ...object[key]];
} else if (isPlainObject(value) && isPlainObject(object[key])) {
- object[key] = _defu(
- value,
- object[key],
- (namespace ? `${namespace}.` : "") + key.toString(),
- merger
- );
+ object[key] = _defu(value, object[key], (namespace ? `${namespace}.` : "") + key.toString(), merger);
} else {
object[key] = value;
}
@@ -1135,10 +1216,9 @@ function _defu(baseObject, defaults, namespace = ".", merger) {
return object;
}
function createDefu(merger) {
- return (...arguments_) => (
+ return (...arguments_) =>
// eslint-disable-next-line unicorn/no-array-reduce
- arguments_.reduce((p, c) => _defu(p, c, "", merger), {})
- );
+ arguments_.reduce((p, c) => _defu(p, c, "", merger), {});
}
var defu = createDefu();
var defuFn = createDefu((object, key, currentValue) => {
@@ -1156,7 +1236,7 @@ var defuArrayFn = createDefu((object, key, currentValue) => {
// node_modules/h3/dist/index.mjs
var __defProp$2 = Object.defineProperty;
-var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __defNormalProp$2 = (obj, key, value) => (key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : (obj[key] = value));
var __publicField$2 = (obj, key, value) => {
__defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
@@ -1177,7 +1257,7 @@ var H3Error = class extends Error {
toJSON() {
const obj = {
message: this.message,
- statusCode: sanitizeStatusCode(this.statusCode, 500)
+ statusCode: sanitizeStatusCode(this.statusCode, 500),
};
if (this.statusMessage) {
obj.statusMessage = sanitizeStatusMessage(this.statusMessage);
@@ -1218,7 +1298,7 @@ function defineEventHandler(handler) {
}
const _hooks = {
onRequest: _normalizeArray(handler.onRequest),
- onBeforeResponse: _normalizeArray(handler.onBeforeResponse)
+ onBeforeResponse: _normalizeArray(handler.onBeforeResponse),
};
const _handler = (event) => {
return _callHandler(event, handler.handler, _hooks);
@@ -1229,7 +1309,7 @@ function defineEventHandler(handler) {
return _handler;
}
function _normalizeArray(input) {
- return input ? Array.isArray(input) ? input : [input] : void 0;
+ return input ? (Array.isArray(input) ? input : [input]) : void 0;
}
async function _callHandler(event, handler, hooks) {
if (hooks.onRequest) {
@@ -1258,7 +1338,7 @@ var createOpenApiNuxtHandler = (opts) => {
return defineEventHandler(async (event) => {
let pathname = null;
const { params } = event.context;
- if (params && _optionalChain([params, 'optionalAccess', _62 => _62.trpc])) {
+ if (params && _optionalChain([params, "optionalAccess", (_62) => _62.trpc])) {
if (!params.trpc.includes("/")) {
pathname = params.trpc;
} else {
@@ -1268,21 +1348,28 @@ var createOpenApiNuxtHandler = (opts) => {
if (pathname === null) {
const error = new (0, _server.TRPCError)({
message: 'Query "trpc" not found - is the `trpc-swagger` file named `[...trpc].ts`?',
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
- _optionalChain([opts, 'access', _63 => _63.onError, 'optionalCall', _64 => _64({
- error,
- type: "unknown",
- path: void 0,
- input: void 0,
- ctx: void 0,
- req: event.node.req
- })]);
+ _optionalChain([
+ opts,
+ "access",
+ (_63) => _63.onError,
+ "optionalCall",
+ (_64) =>
+ _64({
+ error,
+ type: "unknown",
+ path: void 0,
+ input: void 0,
+ ctx: void 0,
+ req: event.node.req,
+ }),
+ ]);
event.node.res.statusCode = 500;
event.node.res.setHeader("Content-Type", "application/json");
const body = {
message: error.message,
- code: error.code
+ code: error.code,
};
event.node.res.end(JSON.stringify(body));
return;
@@ -1301,14 +1388,13 @@ var createOpenApiHttpHandler = (opts) => {
};
};
-
-
-
-
-
-
-
-
-
-exports.createOpenApiAwsLambdaHandler = createOpenApiAwsLambdaHandler; exports.createOpenApiExpressMiddleware = createOpenApiExpressMiddleware; exports.createOpenApiFetchHandler = createOpenApiFetchHandler; exports.createOpenApiHttpHandler = createOpenApiHttpHandler; exports.createOpenApiNextHandler = createOpenApiNextHandler; exports.createOpenApiNuxtHandler = createOpenApiNuxtHandler; exports.fastifyTRPCOpenApiPlugin = fastifyTRPCOpenApiPlugin; exports.generateOpenApiDocument = generateOpenApiDocument; exports.openApiVersion = openApiVersion;
+exports.createOpenApiAwsLambdaHandler = createOpenApiAwsLambdaHandler;
+exports.createOpenApiExpressMiddleware = createOpenApiExpressMiddleware;
+exports.createOpenApiFetchHandler = createOpenApiFetchHandler;
+exports.createOpenApiHttpHandler = createOpenApiHttpHandler;
+exports.createOpenApiNextHandler = createOpenApiNextHandler;
+exports.createOpenApiNuxtHandler = createOpenApiNuxtHandler;
+exports.fastifyTRPCOpenApiPlugin = fastifyTRPCOpenApiPlugin;
+exports.generateOpenApiDocument = generateOpenApiDocument;
+exports.openApiVersion = openApiVersion;
//# sourceMappingURL=index.js.map
diff --git a/build/index.mjs b/build/index.mjs
index a23c6fb2fb648818fb0ece6addb62fd69511986e..b21a4a57ca8178bfe7d6b81d7d4d66b18c9ff0b8 100644
--- a/build/index.mjs
+++ b/build/index.mjs
@@ -1,6 +1,5 @@
// packages/adapters/aws-lambda.ts
import { TRPCError as TRPCError6 } from "@trpc/server";
-import { UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE, getHTTPMethod, getPath, isPayloadV1, isPayloadV2, transformHeaders } from "@trpc/server/adapters/aws-lambda";
import { EventEmitter } from "events";
import { createRequest, createResponse } from "node-mocks-http";
@@ -21,7 +20,7 @@ var TRPC_ERROR_CODE_HTTP_STATUS = {
METHOD_NOT_SUPPORTED: 405,
TOO_MANY_REQUESTS: 429,
UNPROCESSABLE_CONTENT: 422,
- NOT_IMPLEMENTED: 500
+ NOT_IMPLEMENTED: 500,
};
function getErrorFromUnknown(cause) {
if (cause instanceof Error && cause.name === "TRPCError") {
@@ -36,7 +35,7 @@ function getErrorFromUnknown(cause) {
const error = new TRPCError({
message: "Internal server error",
code: "INTERNAL_SERVER_ERROR",
- cause: errorCause
+ cause: errorCause,
});
if (stack) {
error.stack = stack;
@@ -80,18 +79,10 @@ var getInputOutputParsers = (procedure) => {
const { inputs, output } = procedure._def;
return {
inputParser: inputs.length >= 2 ? mergeInputs(inputs) : inputs[0],
- outputParser: output
+ outputParser: output,
};
};
-var getProcedureType = (procedure) => {
- if (procedure._def.query)
- return "query";
- if (procedure._def.mutation)
- return "mutation";
- if (procedure._def.subscription)
- return "subscription";
- throw new Error("Unknown procedure type");
-};
+var getProcedureType = (procedure) => procedure._def.type;
var forEachOpenApiProcedure = (procedureRecord, callback) => {
for (const [path, procedure] of Object.entries(procedureRecord)) {
const { openapi } = procedure._def.meta ?? {};
@@ -122,7 +113,11 @@ var instanceofZodTypeObject = (type) => {
return instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodObject);
};
var instanceofZodTypeLikeVoid = (type) => {
- return instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodVoid) || instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodUndefined) || instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodNever);
+ return (
+ instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodVoid) ||
+ instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodUndefined) ||
+ instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodNever)
+ );
};
var unwrapZodType = (type, unwrapPreprocess) => {
if (instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodOptional)) {
@@ -174,7 +169,12 @@ var instanceofZodTypeLikeString = (_type) => {
var zodSupportsCoerce = "coerce" in z2;
var instanceofZodTypeCoercible = (_type) => {
const type = unwrapZodType(_type, false);
- return instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodNumber) || instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodBoolean) || instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodBigInt) || instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodDate);
+ return (
+ instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodNumber) ||
+ instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodBoolean) ||
+ instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodBigInt) ||
+ instanceofZodTypeKind(type, z2.ZodFirstPartyTypeKind.ZodDate)
+ );
};
// packages/generator/schema.ts
@@ -185,7 +185,7 @@ var getParameterObjects = (schema, pathParameters, inType, example) => {
if (!instanceofZodType(schema)) {
throw new TRPCError2({
message: "Input parser expects a Zod validator",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const isRequired = !schema.isOptional();
@@ -196,7 +196,7 @@ var getParameterObjects = (schema, pathParameters, inType, example) => {
if (!instanceofZodTypeObject(unwrappedSchema)) {
throw new TRPCError2({
message: "Input parser must be a ZodObject",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const { shape } = unwrappedSchema;
@@ -205,63 +205,65 @@ var getParameterObjects = (schema, pathParameters, inType, example) => {
if (!shapeKeys.includes(pathParameter)) {
throw new TRPCError2({
message: `Input parser expects key from path: "${pathParameter}"`,
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
}
- return shapeKeys.filter((shapeKey) => {
- const isPathParameter = pathParameters.includes(shapeKey);
- if (inType === "path") {
- return isPathParameter;
- }
- if (inType === "query") {
- return !isPathParameter;
- }
- return true;
- }).map((shapeKey) => {
- let shapeSchema = shape[shapeKey];
- const isShapeRequired = !shapeSchema.isOptional();
- const isPathParameter = pathParameters.includes(shapeKey);
- if (!instanceofZodTypeLikeString(shapeSchema)) {
- if (zodSupportsCoerce) {
- if (!instanceofZodTypeCoercible(shapeSchema)) {
+ return shapeKeys
+ .filter((shapeKey) => {
+ const isPathParameter = pathParameters.includes(shapeKey);
+ if (inType === "path") {
+ return isPathParameter;
+ }
+ if (inType === "query") {
+ return !isPathParameter;
+ }
+ return true;
+ })
+ .map((shapeKey) => {
+ let shapeSchema = shape[shapeKey];
+ const isShapeRequired = !shapeSchema.isOptional();
+ const isPathParameter = pathParameters.includes(shapeKey);
+ if (!instanceofZodTypeLikeString(shapeSchema)) {
+ if (zodSupportsCoerce) {
+ if (!instanceofZodTypeCoercible(shapeSchema)) {
+ throw new TRPCError2({
+ message: `Input parser key: "${shapeKey}" must be ZodString, ZodNumber, ZodBoolean, ZodBigInt or ZodDate`,
+ code: "INTERNAL_SERVER_ERROR",
+ });
+ }
+ } else {
throw new TRPCError2({
- message: `Input parser key: "${shapeKey}" must be ZodString, ZodNumber, ZodBoolean, ZodBigInt or ZodDate`,
- code: "INTERNAL_SERVER_ERROR"
+ message: `Input parser key: "${shapeKey}" must be ZodString`,
+ code: "INTERNAL_SERVER_ERROR",
});
}
- } else {
- throw new TRPCError2({
- message: `Input parser key: "${shapeKey}" must be ZodString`,
- code: "INTERNAL_SERVER_ERROR"
- });
}
- }
- if (instanceofZodTypeOptional(shapeSchema)) {
- if (isPathParameter) {
- throw new TRPCError2({
- message: `Path parameter: "${shapeKey}" must not be optional`,
- code: "INTERNAL_SERVER_ERROR"
- });
+ if (instanceofZodTypeOptional(shapeSchema)) {
+ if (isPathParameter) {
+ throw new TRPCError2({
+ message: `Path parameter: "${shapeKey}" must not be optional`,
+ code: "INTERNAL_SERVER_ERROR",
+ });
+ }
+ shapeSchema = shapeSchema.unwrap();
}
- shapeSchema = shapeSchema.unwrap();
- }
- const { description, ...openApiSchemaObject } = zodSchemaToOpenApiSchemaObject(shapeSchema);
- return {
- name: shapeKey,
- in: isPathParameter ? "path" : "query",
- required: isPathParameter || isRequired && isShapeRequired,
- schema: openApiSchemaObject,
- description,
- example: example?.[shapeKey]
- };
- });
+ const { description, ...openApiSchemaObject } = zodSchemaToOpenApiSchemaObject(shapeSchema);
+ return {
+ name: shapeKey,
+ in: isPathParameter ? "path" : "query",
+ required: isPathParameter || (isRequired && isShapeRequired),
+ schema: openApiSchemaObject,
+ description,
+ example: example?.[shapeKey],
+ };
+ });
};
var getRequestBodyObject = (schema, pathParameters, contentTypes, example) => {
if (!instanceofZodType(schema)) {
throw new TRPCError2({
message: "Input parser expects a Zod validator",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const isRequired = !schema.isOptional();
@@ -272,7 +274,7 @@ var getRequestBodyObject = (schema, pathParameters, contentTypes, example) => {
if (!instanceofZodTypeObject(unwrappedSchema)) {
throw new TRPCError2({
message: "Input parser must be a ZodObject",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const mask = {};
@@ -292,12 +294,12 @@ var getRequestBodyObject = (schema, pathParameters, contentTypes, example) => {
for (const contentType of contentTypes) {
content[contentType] = {
schema: openApiSchemaObject,
- example: dedupedExample
+ example: dedupedExample,
};
}
return {
required: isRequired,
- content
+ content,
};
};
var errorResponseObject = {
@@ -308,17 +310,17 @@ var errorResponseObject = {
z3.object({
message: z3.string(),
code: z3.string(),
- issues: z3.array(z3.object({ message: z3.string() })).optional()
+ issues: z3.array(z3.object({ message: z3.string() })).optional(),
})
- )
- }
- }
+ ),
+ },
+ },
};
var getResponsesObject = (schema, example, headers) => {
if (!instanceofZodType(schema)) {
throw new TRPCError2({
message: "Output parser expects a Zod validator",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const successResponseObject = {
@@ -327,15 +329,15 @@ var getResponsesObject = (schema, example, headers) => {
content: {
"application/json": {
schema: zodSchemaToOpenApiSchemaObject(schema),
- example
- }
- }
+ example,
+ },
+ },
};
return {
200: successResponseObject,
default: {
- $ref: "#/components/responses/error"
- }
+ $ref: "#/components/responses/error",
+ },
};
};
@@ -349,7 +351,7 @@ var getOpenApiPathsObject = (appRouter, securitySchemeNames) => {
if (type === "subscription") {
throw new TRPCError3({
message: "Subscriptions are not supported by OpenAPI v3",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const { method, protect, summary, description, tags, headers } = openapi;
@@ -360,20 +362,20 @@ var getOpenApiPathsObject = (appRouter, securitySchemeNames) => {
if (!httpMethod) {
throw new TRPCError3({
message: "Method must be GET, POST, PATCH, PUT or DELETE",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
if (pathsObject[path]?.[httpMethod]) {
throw new TRPCError3({
message: `Duplicate procedure defined for route ${method} ${path}`,
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const contentTypes = openapi.contentTypes || ["application/json"];
if (contentTypes.length === 0) {
throw new TRPCError3({
message: "At least one content type must be specified",
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const { inputParser, outputParser } = getInputOutputParsers(procedure);
@@ -385,37 +387,18 @@ var getOpenApiPathsObject = (appRouter, securitySchemeNames) => {
description,
tags,
security: protect ? securitySchemeNames.map((name) => ({ [name]: [] })) : void 0,
- ...acceptsRequestBody(method) ? {
- requestBody: getRequestBodyObject(
- inputParser,
- pathParameters,
- contentTypes,
- openapi.example?.request
- ),
- parameters: [
- ...headerParameters,
- ...getParameterObjects(
- inputParser,
- pathParameters,
- "path",
- openapi.example?.request
- ) || []
- ]
- } : {
- requestBody: void 0,
- parameters: [
- ...headerParameters,
- ...getParameterObjects(
- inputParser,
- pathParameters,
- "all",
- openapi.example?.request
- ) || []
- ]
- },
+ ...(acceptsRequestBody(method)
+ ? {
+ requestBody: getRequestBodyObject(inputParser, pathParameters, contentTypes, openapi.example?.request),
+ parameters: [...headerParameters, ...(getParameterObjects(inputParser, pathParameters, "path", openapi.example?.request) || [])],
+ }
+ : {
+ requestBody: void 0,
+ parameters: [...headerParameters, ...(getParameterObjects(inputParser, pathParameters, "all", openapi.example?.request) || [])],
+ }),
responses: getResponsesObject(outputParser, openapi.example?.response, openapi.responseHeaders),
- ...openapi.deprecated ? { deprecated: openapi.deprecated } : {}
- }
+ ...(openapi.deprecated ? { deprecated: openapi.deprecated } : {}),
+ },
};
} catch (error) {
error.message = `[${procedureName}] - ${error.message}`;
@@ -431,30 +414,30 @@ var generateOpenApiDocument = (appRouter, opts) => {
const securitySchemes = opts.securitySchemes || {
Authorization: {
type: "http",
- scheme: "bearer"
- }
+ scheme: "bearer",
+ },
};
return {
openapi: openApiVersion,
info: {
title: opts.title,
description: opts.description,
- version: opts.version
+ version: opts.version,
},
servers: [
{
- url: opts.baseUrl
- }
+ url: opts.baseUrl,
+ },
],
paths: getOpenApiPathsObject(appRouter, Object.keys(securitySchemes)),
components: {
securitySchemes,
responses: {
- error: errorResponseObject
- }
+ error: errorResponseObject,
+ },
},
tags: opts.tags?.map((tag) => ({ name: tag })),
- externalDocs: opts.docsUrl ? { url: opts.docsUrl } : void 0
+ externalDocs: opts.docsUrl ? { url: opts.docsUrl } : void 0,
};
};
@@ -498,7 +481,7 @@ var getBody = async (req, maxBodySize = BODY_100_KB) => {
const { raw, parsed } = await parse(req, {
limit: maxBodySize,
strict: false,
- returnRawBody: true
+ returnRawBody: true,
});
req.body = raw ? parsed : void 0;
} catch (cause) {
@@ -506,7 +489,7 @@ var getBody = async (req, maxBodySize = BODY_100_KB) => {
throw new TRPCError4({
message: "Request body too large",
code: "PAYLOAD_TOO_LARGE",
- cause
+ cause,
});
}
let errorCause;
@@ -516,7 +499,7 @@ var getBody = async (req, maxBodySize = BODY_100_KB) => {
throw new TRPCError4({
message: "Failed to parse request body",
code: "PARSE_ERROR",
- cause: errorCause
+ cause: errorCause,
});
}
}
@@ -526,31 +509,18 @@ var getBody = async (req, maxBodySize = BODY_100_KB) => {
// packages/adapters/node-http/procedures.ts
var createProcedureCache = (router) => {
const procedureCache = /* @__PURE__ */ new Map();
- const { queries, mutations } = router._def;
- forEachOpenApiProcedure(queries, ({ path: queryPath, procedure, openapi }) => {
+ forEachOpenApiProcedure(router._def.procedures, ({ path: queryPath, procedure, openapi }) => {
const { method } = openapi;
if (!procedureCache.has(method)) {
procedureCache.set(method, /* @__PURE__ */ new Map());
}
const path = normalizePath(openapi.path);
const pathRegExp = getPathRegExp(path);
+
procedureCache.get(method).set(pathRegExp, {
- type: "query",
+ type: procedure._def.type,
path: queryPath,
- procedure
- });
- });
- forEachOpenApiProcedure(mutations, ({ path: mutationPath, procedure, openapi }) => {
- const { method } = openapi;
- if (!procedureCache.has(method)) {
- procedureCache.set(method, /* @__PURE__ */ new Map());
- }
- const path = normalizePath(openapi.path);
- const pathRegExp = getPathRegExp(path);
- procedureCache.get(method).set(pathRegExp, {
- type: "mutation",
- path: mutationPath,
- procedure
+ procedure,
});
});
return (method, path) => {
@@ -606,7 +576,7 @@ var createOpenApiNodeHttpHandler = (opts) => {
}
throw new TRPCError5({
message: "Not found",
- code: "NOT_FOUND"
+ code: "NOT_FOUND",
});
}
const useBody = acceptsRequestBody(method);
@@ -614,8 +584,8 @@ var createOpenApiNodeHttpHandler = (opts) => {
const unwrappedSchema = unwrapZodType(schema, true);
if (!instanceofZodTypeLikeVoid(unwrappedSchema)) {
input = {
- ...useBody ? await getBody(req, maxBodySize) : getQuery(req, url),
- ...pathInput
+ ...(useBody ? await getBody(req, maxBodySize) : getQuery(req, url)),
+ ...pathInput,
};
}
if (zodSupportsCoerce) {
@@ -638,7 +608,7 @@ var createOpenApiNodeHttpHandler = (opts) => {
paths: [procedure.path],
ctx,
data: [data],
- errors: []
+ errors: [],
});
const statusCode = meta?.status ?? 200;
const headers = meta?.headers ?? {};
@@ -652,21 +622,21 @@ var createOpenApiNodeHttpHandler = (opts) => {
path: procedure?.path,
input,
ctx,
- req
+ req,
});
const meta = responseMeta?.({
type: procedure?.type ?? "unknown",
paths: procedure?.path ? [procedure?.path] : void 0,
ctx,
data: [data],
- errors: [error]
+ errors: [error],
});
- const errorShape = router.getErrorShape({
+ const errorShape = router._def.errorFormatter({
error,
type: procedure?.type ?? "unknown",
path: procedure?.path,
input,
- ctx
+ ctx,
});
const isInputValidationError = error.code === "BAD_REQUEST" && error.cause instanceof Error && error.cause.name === "ZodError";
const statusCode = meta?.status ?? TRPC_ERROR_CODE_HTTP_STATUS[error.code] ?? 500;
@@ -674,7 +644,7 @@ var createOpenApiNodeHttpHandler = (opts) => {
const body = {
message: isInputValidationError ? "Input validation failed" : errorShape?.message ?? error.message ?? "An error occurred",
code: error.code,
- issues: isInputValidationError ? error.cause.errors : void 0
+ issues: isInputValidationError ? error.cause.errors : void 0,
};
sendResponse(statusCode, headers, body);
}
@@ -703,7 +673,7 @@ var createMockNodeHTTPRequest = (path, event) => {
throw new TRPCError6({
message: "Failed to parse request body",
code: "PARSE_ERROR",
- cause
+ cause,
});
}
}
@@ -721,7 +691,7 @@ var createMockNodeHTTPRequest = (path, event) => {
throw new TRPCError6({
message: "Failed to parse request body",
code: "PARSE_ERROR",
- cause
+ cause,
});
}
}
@@ -730,7 +700,7 @@ var createMockNodeHTTPRequest = (path, event) => {
method,
query: event.queryStringParameters || void 0,
headers: event.headers,
- body
+ body,
});
};
var createMockNodeHTTPResponse = () => {
@@ -743,7 +713,7 @@ var createOpenApiAwsLambdaHandler = (opts) => {
if (!isPayloadV1(event) && !isPayloadV2(event)) {
throw new TRPCError6({
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
}
const createContext = async () => opts.createContext?.({ event, context });
@@ -755,7 +725,7 @@ var createOpenApiAwsLambdaHandler = (opts) => {
return {
statusCode: res.statusCode,
headers: transformHeaders(res._getHeaders() || {}),
- body: res._getData()
+ body: res._getData(),
};
} catch (cause) {
const error = getErrorFromUnknown(cause);
@@ -765,32 +735,32 @@ var createOpenApiAwsLambdaHandler = (opts) => {
path,
input: void 0,
ctx: void 0,
- req: event
+ req: event,
});
const meta = opts.responseMeta?.({
type: "unknown",
paths: [path],
ctx: void 0,
data: [void 0],
- errors: [error]
+ errors: [error],
});
- const errorShape = opts.router.getErrorShape({
+ const errorShape = opts.router._def.errorFormatter({
error,
type: "unknown",
path,
input: void 0,
- ctx: void 0
+ ctx: void 0,
});
const statusCode = meta?.status ?? TRPC_ERROR_CODE_HTTP_STATUS[error.code] ?? 500;
- const headers = { "content-type": "application/json", ...meta?.headers ?? {} };
+ const headers = { "content-type": "application/json", ...(meta?.headers ?? {}) };
const body = {
message: errorShape?.message ?? error.message ?? "An error occurred",
- code: error.code
+ code: error.code,
};
return {
statusCode,
headers,
- body: JSON.stringify(body)
+ body: JSON.stringify(body),
};
}
};
@@ -824,7 +794,7 @@ function fastifyTRPCOpenApiPlugin(fastify, opts, done) {
}
return reply.header(key, value);
},
- end: (body) => reply.send(body)
+ end: (body) => reply.send(body),
// eslint-disable-line @typescript-eslint/no-explicit-any
})
);
@@ -848,23 +818,23 @@ var getRequestBody = async (req) => {
return {
isValid: true,
// use JSON.parse instead of req.json() because req.json() does not throw on invalid JSON
- data: JSON.parse(await req.text())
+ data: JSON.parse(await req.text()),
};
}
if (req.headers.get("content-type")?.includes("application/x-www-form-urlencoded")) {
return {
isValid: true,
- data: await getUrlEncodedBody(req)
+ data: await getUrlEncodedBody(req),
};
}
return {
isValid: true,
- data: req.body
+ data: req.body,
};
} catch (err) {
return {
isValid: false,
- cause: err
+ cause: err,
};
}
};
@@ -879,7 +849,7 @@ var createRequestProxy = async (req, url) => {
return new Proxy(target.headers, {
get: (trg, item) => {
return trg.get(item.toString());
- }
+ },
});
}
if (prop === "body") {
@@ -887,13 +857,13 @@ var createRequestProxy = async (req, url) => {
throw new TRPCError7({
code: "PARSE_ERROR",
message: "Failed to parse request body",
- cause: body.cause
+ cause: body.cause,
});
}
return body.data;
}
return target[prop];
- }
+ },
});
};
var createOpenApiFetchHandler = async (opts) => {
@@ -910,38 +880,35 @@ var createOpenApiFetchHandler = async (opts) => {
router: opts.router,
createContext,
onError: opts.onError,
- responseMeta: opts.responseMeta
+ responseMeta: opts.responseMeta,
});
return new Promise((resolve) => {
let statusCode;
- return openApiHttpHandler(
- req,
- {
- setHeader: (key, value) => {
- if (typeof value === "string") {
- resHeaders.set(key, value);
- } else {
- for (const v of value) {
- resHeaders.append(key, v);
- }
+ return openApiHttpHandler(req, {
+ setHeader: (key, value) => {
+ if (typeof value === "string") {
+ resHeaders.set(key, value);
+ } else {
+ for (const v of value) {
+ resHeaders.append(key, v);
}
- },
- get statusCode() {
- return statusCode;
- },
- set statusCode(code) {
- statusCode = code;
- },
- end: (body) => {
- resolve(
- new Response(body, {
- headers: resHeaders,
- status: statusCode
- })
- );
}
- }
- );
+ },
+ get statusCode() {
+ return statusCode;
+ },
+ set statusCode(code) {
+ statusCode = code;
+ },
+ end: (body) => {
+ resolve(
+ new Response(body, {
+ headers: resHeaders,
+ status: statusCode,
+ })
+ );
+ },
+ });
});
};
@@ -959,7 +926,7 @@ var createOpenApiNextHandler = (opts) => {
if (pathname === null) {
const error = new TRPCError8({
message: 'Query "trpc" not found - is the `trpc-swagger` file named `[...trpc].ts`?',
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
opts.onError?.({
error,
@@ -967,13 +934,13 @@ var createOpenApiNextHandler = (opts) => {
path: void 0,
input: void 0,
ctx: void 0,
- req
+ req,
});
res.statusCode = 500;
res.setHeader("Content-Type", "application/json");
const body = {
message: error.message,
- code: error.code
+ code: error.code,
};
res.end(JSON.stringify(body));
return;
@@ -1044,9 +1011,7 @@ function getQuery2(input) {
}
var protocolRelative = Symbol.for("ufo:protocolRelative");
function parseURL(input = "", defaultProto) {
- const _specialProtoMatch = input.match(
- /^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i
- );
+ const _specialProtoMatch = input.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);
if (_specialProtoMatch) {
const [, _proto, _pathname = ""] = _specialProtoMatch;
return {
@@ -1056,7 +1021,7 @@ function parseURL(input = "", defaultProto) {
auth: "",
host: "",
search: "",
- hash: ""
+ hash: "",
};
}
if (!hasProtocol(input, { acceptRelative: true })) {
@@ -1064,9 +1029,7 @@ function parseURL(input = "", defaultProto) {
}
const [, protocol = "", auth, hostAndPath = ""] = input.replace(/\\/g, "/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/) || [];
const [, host = "", path = ""] = hostAndPath.match(/([^#/?]*)(.*)?/) || [];
- const { pathname, search, hash } = parsePath(
- path.replace(/\/(?=[A-Za-z]:)/, "")
- );
+ const { pathname, search, hash } = parsePath(path.replace(/\/(?=[A-Za-z]:)/, ""));
return {
protocol: protocol.toLowerCase(),
auth: auth ? auth.slice(0, Math.max(0, auth.length - 1)) : "",
@@ -1074,7 +1037,7 @@ function parseURL(input = "", defaultProto) {
pathname,
search,
hash,
- [protocolRelative]: !protocol
+ [protocolRelative]: !protocol,
};
}
function parsePath(input = "") {
@@ -1082,7 +1045,7 @@ function parsePath(input = "") {
return {
pathname,
search,
- hash
+ hash,
};
}
@@ -1122,12 +1085,7 @@ function _defu(baseObject, defaults, namespace = ".", merger) {
if (Array.isArray(value) && Array.isArray(object[key])) {
object[key] = [...value, ...object[key]];
} else if (isPlainObject(value) && isPlainObject(object[key])) {
- object[key] = _defu(
- value,
- object[key],
- (namespace ? `${namespace}.` : "") + key.toString(),
- merger
- );
+ object[key] = _defu(value, object[key], (namespace ? `${namespace}.` : "") + key.toString(), merger);
} else {
object[key] = value;
}
@@ -1135,10 +1093,9 @@ function _defu(baseObject, defaults, namespace = ".", merger) {
return object;
}
function createDefu(merger) {
- return (...arguments_) => (
+ return (...arguments_) =>
// eslint-disable-next-line unicorn/no-array-reduce
- arguments_.reduce((p, c) => _defu(p, c, "", merger), {})
- );
+ arguments_.reduce((p, c) => _defu(p, c, "", merger), {});
}
var defu = createDefu();
var defuFn = createDefu((object, key, currentValue) => {
@@ -1156,7 +1113,7 @@ var defuArrayFn = createDefu((object, key, currentValue) => {
// node_modules/h3/dist/index.mjs
var __defProp$2 = Object.defineProperty;
-var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __defNormalProp$2 = (obj, key, value) => (key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : (obj[key] = value));
var __publicField$2 = (obj, key, value) => {
__defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
@@ -1177,7 +1134,7 @@ var H3Error = class extends Error {
toJSON() {
const obj = {
message: this.message,
- statusCode: sanitizeStatusCode(this.statusCode, 500)
+ statusCode: sanitizeStatusCode(this.statusCode, 500),
};
if (this.statusMessage) {
obj.statusMessage = sanitizeStatusMessage(this.statusMessage);
@@ -1218,7 +1175,7 @@ function defineEventHandler(handler) {
}
const _hooks = {
onRequest: _normalizeArray(handler.onRequest),
- onBeforeResponse: _normalizeArray(handler.onBeforeResponse)
+ onBeforeResponse: _normalizeArray(handler.onBeforeResponse),
};
const _handler = (event) => {
return _callHandler(event, handler.handler, _hooks);
@@ -1229,7 +1186,7 @@ function defineEventHandler(handler) {
return _handler;
}
function _normalizeArray(input) {
- return input ? Array.isArray(input) ? input : [input] : void 0;
+ return input ? (Array.isArray(input) ? input : [input]) : void 0;
}
async function _callHandler(event, handler, hooks) {
if (hooks.onRequest) {
@@ -1268,7 +1225,7 @@ var createOpenApiNuxtHandler = (opts) => {
if (pathname === null) {
const error = new TRPCError9({
message: 'Query "trpc" not found - is the `trpc-swagger` file named `[...trpc].ts`?',
- code: "INTERNAL_SERVER_ERROR"
+ code: "INTERNAL_SERVER_ERROR",
});
opts.onError?.({
error,
@@ -1276,13 +1233,13 @@ var createOpenApiNuxtHandler = (opts) => {
path: void 0,
input: void 0,
ctx: void 0,
- req: event.node.req
+ req: event.node.req,
});
event.node.res.statusCode = 500;
event.node.res.setHeader("Content-Type", "application/json");
const body = {
message: error.message,
- code: error.code
+ code: error.code,
};
event.node.res.end(JSON.stringify(body));
return;
@@ -1309,6 +1266,6 @@ export {
createOpenApiNuxtHandler,
fastifyTRPCOpenApiPlugin,
generateOpenApiDocument,
- openApiVersion
+ openApiVersion,
};
//# sourceMappingURL=index.mjs.map