@orval/mcp 7.9.0 → 7.10.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/index.d.ts +1 -1
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ClientHeaderBuilder, ClientBuilder, GeneratorVerbOptions, NormalizedOutputOptions, ContextSpecs, ClientExtraFilesBuilder
|
|
1
|
+
import { ClientGeneratorsBuilder, ClientHeaderBuilder, ClientBuilder, GeneratorVerbOptions, NormalizedOutputOptions, ContextSpecs, ClientExtraFilesBuilder } from '@orval/core';
|
|
2
2
|
|
|
3
3
|
declare const getMcpHeader: ClientHeaderBuilder;
|
|
4
4
|
declare const generateMcp: ClientBuilder;
|
package/dist/index.js
CHANGED
|
@@ -51,16 +51,16 @@ var require_dist = __commonJS({
|
|
|
51
51
|
return to;
|
|
52
52
|
};
|
|
53
53
|
var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
|
|
54
|
-
var
|
|
55
|
-
__export2(
|
|
54
|
+
var index_exports2 = {};
|
|
55
|
+
__export2(index_exports2, {
|
|
56
56
|
builder: () => builder2,
|
|
57
|
-
default: () =>
|
|
57
|
+
default: () => index_default2,
|
|
58
58
|
fetchResponseTypeName: () => fetchResponseTypeName,
|
|
59
59
|
generateClient: () => generateClient2,
|
|
60
60
|
generateFetchHeader: () => generateFetchHeader2,
|
|
61
61
|
generateRequestFunction: () => generateRequestFunction
|
|
62
62
|
});
|
|
63
|
-
module2.exports = __toCommonJS2(
|
|
63
|
+
module2.exports = __toCommonJS2(index_exports2);
|
|
64
64
|
var import_core2 = require("@orval/core");
|
|
65
65
|
var import_core22 = require("@orval/core");
|
|
66
66
|
var generateRequestFunction = ({
|
|
@@ -249,21 +249,21 @@ export type HTTPStatusCodes = HTTPStatusCode1xx | HTTPStatusCode2xx | HTTPStatus
|
|
|
249
249
|
dependencies: () => []
|
|
250
250
|
};
|
|
251
251
|
var builder2 = () => () => fetchClientBuilder;
|
|
252
|
-
var
|
|
252
|
+
var index_default2 = builder2;
|
|
253
253
|
}
|
|
254
254
|
});
|
|
255
255
|
|
|
256
256
|
// src/index.ts
|
|
257
|
-
var
|
|
258
|
-
__export(
|
|
257
|
+
var index_exports = {};
|
|
258
|
+
__export(index_exports, {
|
|
259
259
|
builder: () => builder,
|
|
260
|
-
default: () =>
|
|
260
|
+
default: () => index_default,
|
|
261
261
|
generateExtraFiles: () => generateExtraFiles,
|
|
262
262
|
generateMcp: () => generateMcp,
|
|
263
263
|
generateServer: () => generateServer,
|
|
264
264
|
getMcpHeader: () => getMcpHeader
|
|
265
265
|
});
|
|
266
|
-
module.exports = __toCommonJS(
|
|
266
|
+
module.exports = __toCommonJS(index_exports);
|
|
267
267
|
var import_core = require("@orval/core");
|
|
268
268
|
var import_zod = require("@orval/zod");
|
|
269
269
|
var import_fetch = __toESM(require_dist());
|
|
@@ -593,7 +593,7 @@ var mcpClientBuilder = {
|
|
|
593
593
|
extraFiles: generateExtraFiles
|
|
594
594
|
};
|
|
595
595
|
var builder = () => () => mcpClientBuilder;
|
|
596
|
-
var
|
|
596
|
+
var index_default = builder;
|
|
597
597
|
// Annotate the CommonJS export names for ESM import in node:
|
|
598
598
|
0 && (module.exports = {
|
|
599
599
|
builder,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../fetch/src/index.ts","../src/index.ts"],"sourcesContent":["import { ClientHeaderBuilder, pascal } from '@orval/core';\nimport {\n camel,\n ClientBuilder,\n ClientGeneratorsBuilder,\n generateFormDataAndUrlEncodedFunction,\n generateVerbImports,\n GeneratorOptions,\n GeneratorVerbOptions,\n GetterPropType,\n stringify,\n toObjectString,\n generateBodyOptions,\n isObject,\n resolveRef,\n} from '@orval/core';\nimport {\n PathItemObject,\n ParameterObject,\n ReferenceObject,\n} from 'openapi3-ts/oas30';\n\nexport const generateRequestFunction = (\n {\n queryParams,\n headers,\n operationName,\n response,\n mutator,\n body,\n props,\n verb,\n formData,\n formUrlEncoded,\n override,\n }: GeneratorVerbOptions,\n { route, context, pathRoute }: GeneratorOptions,\n) => {\n const isRequestOptions = override?.requestOptions !== false;\n const isFormData = override?.formData.disabled === false;\n const isFormUrlEncoded = override?.formUrlEncoded !== false;\n\n const getUrlFnName = camel(`get-${operationName}-url`);\n const getUrlFnProps = toObjectString(\n props.filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS ||\n prop.type === GetterPropType.QUERY_PARAM,\n ),\n 'implementation',\n );\n\n const spec = context.specs[context.specKey].paths[pathRoute] as\n | PathItemObject\n | undefined;\n const parameters =\n spec?.[verb]?.parameters || ([] as (ParameterObject | ReferenceObject)[]);\n\n const explodeParameters = parameters.filter((parameter) => {\n const { schema } = resolveRef<ParameterObject>(parameter, context);\n\n return schema.in === 'query' && schema.explode;\n });\n\n const explodeParametersNames = explodeParameters.map((parameter) => {\n const { schema } = resolveRef<ParameterObject>(parameter, context);\n\n return schema.name;\n });\n\n const explodeArrayImplementation =\n explodeParameters.length > 0\n ? `const explodeParameters = ${JSON.stringify(explodeParametersNames)};\n\n if (value instanceof Array && explodeParameters.includes(key)) {\n value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));\n return;\n }\n `\n : '';\n\n const isExplodeParametersOnly =\n explodeParameters.length === parameters.length;\n\n const nomalParamsImplementation = `if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }`;\n\n const getUrlFnImplementation = `export const ${getUrlFnName} = (${getUrlFnProps}) => {\n${\n queryParams\n ? ` const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n ${explodeArrayImplementation}\n ${!isExplodeParametersOnly ? nomalParamsImplementation : ''}\n });`\n : ''\n}\n\n ${queryParams ? `const stringifiedParams = normalizedParams.toString();` : ``}\n\n ${\n queryParams\n ? `return stringifiedParams.length > 0 ? \\`${route}${'?${stringifiedParams}'}\\` : \\`${route}\\``\n : `return \\`${route}\\``\n }\n}\\n`;\n\n const isContentTypeNdJson = (contentType: string) =>\n contentType === 'application/nd-json' ||\n contentType === 'application/x-ndjson';\n\n const isNdJson = response.contentTypes.some(isContentTypeNdJson);\n const responseTypeName = fetchResponseTypeName(\n override.fetch.includeHttpResponseReturnType,\n isNdJson ? 'Response' : response.definition.success,\n operationName,\n );\n\n const allResponses = [...response.types.success, ...response.types.errors];\n if (allResponses.length === 0) {\n allResponses.push({\n contentType: '',\n hasReadonlyProps: false,\n imports: [],\n isEnum: false,\n isRef: false,\n key: 'default',\n schemas: [],\n type: 'unknown',\n value: 'unknown',\n });\n }\n const nonDefaultStatuses = allResponses\n .filter((r) => r.key !== 'default')\n .map((r) => r.key);\n const responseDataTypes = allResponses\n .map(\n (r) => `export type ${responseTypeName}${pascal(r.key)} = {\n ${isContentTypeNdJson(r.contentType) ? 'stream: Response' : `data: ${r.value || 'unknown'}`}\n status: ${\n r.key === 'default'\n ? nonDefaultStatuses.length\n ? `Exclude<HTTPStatusCodes, ${nonDefaultStatuses.join(' | ')}>`\n : 'number'\n : r.key\n }\n}`,\n )\n .join('\\n\\n');\n\n const compositeName = `${responseTypeName}Composite`;\n const compositeResponse = `${compositeName} = ${allResponses.map((r) => `${responseTypeName}${pascal(r.key)}`).join(' | ')}`;\n\n const responseTypeImplementation = override.fetch\n .includeHttpResponseReturnType\n ? `${responseDataTypes}\n \nexport type ${compositeResponse};\n \nexport type ${responseTypeName} = ${compositeName} & {\n headers: Headers;\n}\\n\\n`\n : '';\n\n const getUrlFnProperties = props\n .filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.QUERY_PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS,\n )\n .map((param) => {\n if (param.type === GetterPropType.NAMED_PATH_PARAMS) {\n return param.destructured;\n } else {\n return param.name;\n }\n })\n .join(',');\n\n const args = `${toObjectString(props, 'implementation')} ${isRequestOptions ? `options?: RequestInit` : ''}`;\n const returnType = `Promise<${responseTypeName}>`;\n\n const globalFetchOptions = isObject(override?.requestOptions)\n ? `${stringify(override?.requestOptions)?.slice(1, -1)?.trim()}`\n : '';\n const fetchMethodOption = `method: '${verb.toUpperCase()}'`;\n const ignoreContentTypes = ['multipart/form-data'];\n const fetchHeadersOption =\n body.contentType && !ignoreContentTypes.includes(body.contentType)\n ? `headers: { 'Content-Type': '${body.contentType}',${headers ? '...headers,' : ''} ...options?.headers }`\n : headers\n ? 'headers: {...headers, ...options?.headers}'\n : '';\n const requestBodyParams = generateBodyOptions(\n body,\n isFormData,\n isFormUrlEncoded,\n );\n const fetchBodyOption = requestBodyParams\n ? (isFormData && body.formData) || (isFormUrlEncoded && body.formUrlEncoded)\n ? `body: ${requestBodyParams}`\n : `body: JSON.stringify(${requestBodyParams})`\n : '';\n\n const fetchFnOptions = `${getUrlFnName}(${getUrlFnProperties}),\n {${globalFetchOptions ? '\\n' : ''} ${globalFetchOptions}\n ${isRequestOptions ? '...options,' : ''}\n ${fetchMethodOption}${fetchHeadersOption ? ',' : ''}\n ${fetchHeadersOption}${fetchBodyOption ? ',' : ''}\n ${fetchBodyOption}\n }\n`;\n const fetchResponseImplementation = isNdJson\n ? `const stream = await fetch(${fetchFnOptions})\n\n ${override.fetch.includeHttpResponseReturnType ? 'return { status: stream.status, stream, headers: stream.headers }' : `return stream`}\n `\n : `const res = await fetch(${fetchFnOptions})\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: ${responseTypeName}${override.fetch.includeHttpResponseReturnType ? `['data']` : ''} = body ? JSON.parse(body) : {}\n\n ${override.fetch.includeHttpResponseReturnType ? `return { data, status: res.status, headers: res.headers } as ${responseTypeName}` : 'return data'}\n`;\n const customFetchResponseImplementation = `return ${mutator?.name}<${responseTypeName}>(${fetchFnOptions});`;\n\n const bodyForm = generateFormDataAndUrlEncodedFunction({\n formData,\n formUrlEncoded,\n body,\n isFormData,\n isFormUrlEncoded,\n });\n\n const fetchImplementationBody = mutator\n ? customFetchResponseImplementation\n : fetchResponseImplementation;\n\n const fetchImplementation = `export const ${operationName} = async (${args}): ${returnType} => {\n ${bodyForm ? ` ${bodyForm}` : ''}\n ${fetchImplementationBody}}\n`;\n\n const implementation =\n `${responseTypeImplementation}` +\n `${getUrlFnImplementation}\\n` +\n `${fetchImplementation}\\n`;\n\n return implementation;\n};\n\nexport const fetchResponseTypeName = (\n includeHttpResponseReturnType: boolean,\n definitionSuccessResponse: string,\n operationName: string,\n) => {\n return includeHttpResponseReturnType\n ? `${operationName}Response`\n : definitionSuccessResponse;\n};\n\nexport const generateClient: ClientBuilder = (verbOptions, options) => {\n const imports = generateVerbImports(verbOptions);\n const functionImplementation = generateRequestFunction(verbOptions, options);\n\n return {\n implementation: `${functionImplementation}\\n`,\n imports,\n };\n};\n\nconst getHTTPStatusCodes = () => `\nexport type HTTPStatusCode1xx = 100 | 101 | 102 | 103;\nexport type HTTPStatusCode2xx = 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207;\nexport type HTTPStatusCode3xx = 300 | 301 | 302 | 303 | 304 | 305 | 307 | 308;\nexport type HTTPStatusCode4xx = 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 426 | 428 | 429 | 431 | 451;\nexport type HTTPStatusCode5xx = 500 | 501 | 502 | 503 | 504 | 505 | 507 | 511;\nexport type HTTPStatusCodes = HTTPStatusCode1xx | HTTPStatusCode2xx | HTTPStatusCode3xx | HTTPStatusCode4xx | HTTPStatusCode5xx;\n\n`;\n\nexport const generateFetchHeader: ClientHeaderBuilder = ({\n clientImplementation,\n}) => {\n return clientImplementation.includes('<HTTPStatusCodes,')\n ? getHTTPStatusCodes()\n : '';\n};\n\nconst fetchClientBuilder: ClientGeneratorsBuilder = {\n client: generateClient,\n header: generateFetchHeader,\n dependencies: () => [],\n};\n\nexport const builder = () => () => fetchClientBuilder;\n\nexport default builder;\n","import {\n generateVerbImports,\n ClientBuilder,\n ClientExtraFilesBuilder,\n ClientGeneratorsBuilder,\n ClientHeaderBuilder,\n ContextSpecs,\n generateMutatorImports,\n GeneratorMutator,\n GeneratorVerbOptions,\n getFileInfo,\n jsDoc,\n NormalizedOutputOptions,\n upath,\n camel,\n pascal,\n getFullRoute,\n} from '@orval/core';\nimport { generateZod } from '@orval/zod';\nimport {\n generateRequestFunction as generateFetchRequestFunction,\n generateClient,\n generateFetchHeader,\n} from '@orval/fetch';\n\nimport { InfoObject } from 'openapi3-ts/oas30';\n\nconst getHeader = (\n option: false | ((info: InfoObject) => string | string[]),\n info: InfoObject,\n): string => {\n if (!option) {\n return '';\n }\n\n const header = option(info);\n\n return Array.isArray(header) ? jsDoc({ description: header }) : header;\n};\n\nexport const getMcpHeader: ClientHeaderBuilder = ({\n verbOptions,\n output,\n clientImplementation,\n}) => {\n const targetInfo = getFileInfo(output.target);\n const schemaInfo = getFileInfo(output.schemas);\n\n const relativeSchemaImportPath = output.schemas\n ? upath.relativeSafe(targetInfo.dirname, schemaInfo.dirname)\n : './' + targetInfo.filename + '.schemas';\n\n const importSchemaNames = Object.values(verbOptions)\n .flatMap((verbOption) => {\n const imports = [];\n const pascalOperationName = pascal(verbOption.operationName);\n\n if (verbOption.queryParams) {\n imports.push(`${pascalOperationName}Params`);\n }\n\n if (verbOption.body.definition) {\n imports.push(`${pascalOperationName}Body`);\n }\n\n return imports;\n })\n .reduce((acc, name) => {\n if (!acc.find((i) => i === name)) {\n acc.push(name);\n }\n return acc;\n }, [] as string[]);\n\n const importSchemasImplementation = `import {\\n ${importSchemaNames.join(\n ',\\n ',\n )}\\n} from '${relativeSchemaImportPath}';\n`;\n\n const relativeFetchClientPath = './http-client';\n const importFetchClientNames = Object.values(verbOptions)\n .flatMap((verbOption) => verbOption.operationName)\n .reduce((acc, name) => {\n if (!acc.find((i) => i === name)) {\n acc.push(name);\n }\n\n return acc;\n }, [] as string[]);\n\n const importFetchClientImplementation = `import {\\n ${importFetchClientNames.join(\n ',\\n ',\n )}\\n} from '${relativeFetchClientPath}';\n `;\n\n const content = [\n importSchemasImplementation,\n importFetchClientImplementation,\n ].join('\\n');\n\n return content + '\\n';\n};\n\nexport const generateMcp: ClientBuilder = async (verbOptions, options) => {\n const handlerArgsTypes = [];\n const pathParamsType = verbOptions.params\n .map((param) => {\n const paramName = param.name.split(': ')[0];\n const paramType = param.implementation.split(': ')[1];\n return ` ${paramName}: ${paramType}`;\n })\n .join(',\\n');\n if (pathParamsType) {\n handlerArgsTypes.push(` pathParams: {\\n${pathParamsType}\\n };`);\n }\n if (verbOptions.queryParams) {\n handlerArgsTypes.push(\n ` queryParams: ${verbOptions.queryParams.schema.name};`,\n );\n }\n if (verbOptions.body.definition) {\n handlerArgsTypes.push(` bodyParams: ${verbOptions.body.definition};`);\n }\n\n const handlerArgsName = `${verbOptions.operationName}Args`;\n const handlerArgsImplementation = handlerArgsTypes.length\n ? `\nexport type ${handlerArgsName} = {\n${handlerArgsTypes.join('\\n')}\n}\n`\n : '';\n\n const fetchParams = [];\n if (verbOptions.params.length) {\n const pathParamsArgs = verbOptions.params\n .map((param) => {\n const paramName = param.name.split(': ')[0];\n\n return `args.pathParams.${paramName}`;\n })\n .join(', ');\n\n fetchParams.push(`${pathParamsArgs}`);\n }\n if (verbOptions.body.definition) fetchParams.push(`args.bodyParams`);\n if (verbOptions.queryParams) fetchParams.push(`args.queryParams`);\n\n const handlerName = `${verbOptions.operationName}Handler`;\n const handlerImplementation = `\nexport const ${handlerName} = async (${handlerArgsTypes.length ? `args: ${handlerArgsName}` : ''}) => {\n const res = await ${verbOptions.operationName}(${fetchParams.join(', ')});\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};`;\n\n const handlersImplementation = [\n handlerArgsImplementation,\n handlerImplementation,\n ].join('');\n\n return {\n implementation: handlersImplementation ? `${handlersImplementation}\\n` : '',\n imports: [],\n };\n};\n\nexport const generateServer = async (\n verbOptions: Record<string, GeneratorVerbOptions>,\n output: NormalizedOutputOptions,\n context: ContextSpecs,\n) => {\n const info = context.specs[context.specKey].info;\n const { extension, dirname } = getFileInfo(output.target);\n const serverPath = upath.join(dirname, `server${extension}`);\n const header = getHeader(output.override.header, info);\n\n const toolImplementations = Object.values(verbOptions)\n .map((verbOption) => {\n const imputSchemaTypes = [];\n if (verbOption.params.length)\n imputSchemaTypes.push(\n ` pathParams: ${verbOption.operationName}Params`,\n );\n if (verbOption.queryParams)\n imputSchemaTypes.push(\n ` queryParams: ${verbOption.operationName}QueryParams`,\n );\n if (verbOption.body.definition)\n imputSchemaTypes.push(` bodyParams: ${verbOption.operationName}Body`);\n\n const imputSchemaImplementation = imputSchemaTypes.length\n ? ` {\n ${imputSchemaTypes.join(',\\n ')}\n },`\n : '';\n\n const toolImplementation = `\nserver.tool(\n '${verbOption.operationName}',\n '${verbOption.summary}',${imputSchemaImplementation ? `\\n${imputSchemaImplementation}` : ''}\n ${verbOption.operationName}Handler\n);`;\n\n return toolImplementation;\n })\n .join('\\n');\n\n const importToolSchemas = Object.values(verbOptions)\n .flatMap((verbOption) => {\n const imports = [];\n\n if (verbOption.headers)\n imports.push(` ${verbOption.operationName}Header`);\n if (verbOption.params.length)\n imports.push(` ${verbOption.operationName}Params`);\n if (verbOption.queryParams)\n imports.push(` ${verbOption.operationName}QueryParams`);\n if (verbOption.body.definition)\n imports.push(` ${verbOption.operationName}Body`);\n\n return imports;\n })\n .join(',\\n');\n const importToolSchemasImplementation = `import {\\n${importToolSchemas}\\n} from './tool-schemas.zod';`;\n\n const importHandlers = Object.values(verbOptions)\n .filter((verbOption) =>\n toolImplementations.includes(`${verbOption.operationName}Handler`),\n )\n .map((verbOption) => ` ${verbOption.operationName}Handler`)\n .join(`,\\n`);\n const importHandlersImplementation = `import {\\n${importHandlers}\\n} from './handlers';`;\n\n const importDependenciesImplementation = `import {\n McpServer\n} from '@modelcontextprotocol/sdk/server/mcp.js';\n \nimport {\n StdioServerTransport\n} from '@modelcontextprotocol/sdk/server/stdio.js'; \n`;\n const newMcpServerImplementation = `\nconst server = new McpServer({\n name: '${camel(info.title)}Server',\n version: '1.0.0',\n});\n`;\n const serverConnectImplementation = `\nconst transport = new StdioServerTransport();\n\nserver.connect(transport).then(() => {\n console.error('MCP server running on stdio');\n}).catch(console.error);\n`;\n\n const content = [\n header,\n importDependenciesImplementation,\n importHandlersImplementation,\n importToolSchemasImplementation,\n newMcpServerImplementation,\n toolImplementations,\n serverConnectImplementation,\n ].join('\\n');\n\n return [\n {\n content,\n path: serverPath,\n },\n ];\n};\n\nconst generateZodFiles = async (\n verbOptions: Record<string, GeneratorVerbOptions>,\n output: NormalizedOutputOptions,\n context: ContextSpecs,\n) => {\n const { extension, dirname, filename } = getFileInfo(output.target);\n\n const header = getHeader(\n output.override.header,\n context.specs[context.specKey].info,\n );\n\n const zods = await Promise.all(\n Object.values(verbOptions).map((verbOption) =>\n generateZod(\n verbOption,\n {\n route: verbOption.route,\n pathRoute: verbOption.pathRoute,\n override: output.override,\n context,\n mock: output.mock,\n output: output.target!,\n },\n output.client,\n ),\n ),\n );\n\n const allMutators = zods.reduce(\n (acc, z) => {\n (z.mutators ?? []).forEach((mutator) => {\n acc[mutator.name] = mutator;\n });\n return acc;\n },\n {} as Record<string, GeneratorMutator>,\n );\n\n const mutatorsImports = generateMutatorImports({\n mutators: Object.values(allMutators),\n });\n\n let content = `${header}import { z as zod } from 'zod';\\n${mutatorsImports}\\n`;\n\n const zodPath = upath.join(dirname, `tool-schemas.zod${extension}`);\n\n content += zods.map((zod) => zod.implementation).join('\\n');\n\n return [\n {\n content,\n path: zodPath,\n },\n ];\n};\n\nconst generateHttpClinetFiles = async (\n verbOptions: Record<string, GeneratorVerbOptions>,\n output: NormalizedOutputOptions,\n context: ContextSpecs,\n) => {\n const { extension, dirname, filename } = getFileInfo(output.target);\n\n const header = getHeader(\n output.override.header,\n context.specs[context.specKey].info,\n );\n\n const clients = await Promise.all(\n Object.values(verbOptions).map((verbOption) => {\n const fullRoute = getFullRoute(\n verbOption.route,\n context.specs[context.specKey].servers,\n output.baseUrl,\n );\n\n const options = {\n route: fullRoute,\n pathRoute: verbOption.pathRoute,\n override: output.override,\n context,\n mock: output.mock,\n output: output.target!,\n };\n\n return generateClient(verbOption, options, output.client, output);\n }),\n );\n\n const clientImplementation = clients\n .map((client) => client.implementation)\n .join('\\n');\n\n const relativeSchemasPath = output.schemas\n ? upath.relativeSafe(dirname, getFileInfo(output.schemas).dirname)\n : './' + filename + '.schemas';\n const importNames = clients\n .flatMap((client) => client.imports)\n .reduce((acc, imp) => {\n if (!acc.find((i) => i === imp.name)) {\n acc.push(imp.name);\n }\n\n return acc;\n }, [] as string[]);\n const importImplementation = `import { ${importNames.join(\n ',\\n',\n )} } from '${relativeSchemasPath}';`;\n\n const fetchHeader = generateFetchHeader({\n title: '',\n isRequestOptions: false,\n isMutator: false,\n noFunction: false,\n isGlobalMutator: false,\n provideIn: false,\n hasAwaitedType: false,\n output,\n verbOptions,\n clientImplementation,\n });\n\n const content = [\n header,\n importImplementation,\n fetchHeader,\n clientImplementation,\n ].join('\\n');\n const outputPath = upath.join(dirname, `http-client${extension}`);\n\n return [\n {\n content,\n path: outputPath,\n },\n ];\n};\n\nexport const generateExtraFiles: ClientExtraFilesBuilder = async (\n verbOptions,\n output,\n context,\n) => {\n const [server, zods, httpClients] = await Promise.all([\n generateServer(verbOptions, output, context),\n generateZodFiles(verbOptions, output, context),\n generateHttpClinetFiles(verbOptions, output, context),\n ]);\n\n return [...server, ...zods, ...httpClients];\n};\n\nconst mcpClientBuilder: ClientGeneratorsBuilder = {\n client: generateMcp,\n header: getMcpHeader,\n extraFiles: generateExtraFiles,\n};\n\nexport const builder = () => () => mcpClientBuilder;\n\nexport default builder;\n"],"mappings":"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","names":["src_exports","__export","builder","src_default","generateClient","generateFetchHeader","module","__toCommonJS","import_core","import_core2"]}
|
|
1
|
+
{"version":3,"sources":["../../fetch/src/index.ts","../src/index.ts"],"sourcesContent":["import { ClientHeaderBuilder, pascal } from '@orval/core';\nimport {\n camel,\n ClientBuilder,\n ClientGeneratorsBuilder,\n generateFormDataAndUrlEncodedFunction,\n generateVerbImports,\n GeneratorOptions,\n GeneratorVerbOptions,\n GetterPropType,\n stringify,\n toObjectString,\n generateBodyOptions,\n isObject,\n resolveRef,\n} from '@orval/core';\nimport {\n PathItemObject,\n ParameterObject,\n ReferenceObject,\n} from 'openapi3-ts/oas30';\n\nexport const generateRequestFunction = (\n {\n queryParams,\n headers,\n operationName,\n response,\n mutator,\n body,\n props,\n verb,\n formData,\n formUrlEncoded,\n override,\n }: GeneratorVerbOptions,\n { route, context, pathRoute }: GeneratorOptions,\n) => {\n const isRequestOptions = override?.requestOptions !== false;\n const isFormData = override?.formData.disabled === false;\n const isFormUrlEncoded = override?.formUrlEncoded !== false;\n\n const getUrlFnName = camel(`get-${operationName}-url`);\n const getUrlFnProps = toObjectString(\n props.filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS ||\n prop.type === GetterPropType.QUERY_PARAM,\n ),\n 'implementation',\n );\n\n const spec = context.specs[context.specKey].paths[pathRoute] as\n | PathItemObject\n | undefined;\n const parameters =\n spec?.[verb]?.parameters || ([] as (ParameterObject | ReferenceObject)[]);\n\n const explodeParameters = parameters.filter((parameter) => {\n const { schema } = resolveRef<ParameterObject>(parameter, context);\n\n return schema.in === 'query' && schema.explode;\n });\n\n const explodeParametersNames = explodeParameters.map((parameter) => {\n const { schema } = resolveRef<ParameterObject>(parameter, context);\n\n return schema.name;\n });\n\n const explodeArrayImplementation =\n explodeParameters.length > 0\n ? `const explodeParameters = ${JSON.stringify(explodeParametersNames)};\n\n if (value instanceof Array && explodeParameters.includes(key)) {\n value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));\n return;\n }\n `\n : '';\n\n const isExplodeParametersOnly =\n explodeParameters.length === parameters.length;\n\n const nomalParamsImplementation = `if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }`;\n\n const getUrlFnImplementation = `export const ${getUrlFnName} = (${getUrlFnProps}) => {\n${\n queryParams\n ? ` const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n ${explodeArrayImplementation}\n ${!isExplodeParametersOnly ? nomalParamsImplementation : ''}\n });`\n : ''\n}\n\n ${queryParams ? `const stringifiedParams = normalizedParams.toString();` : ``}\n\n ${\n queryParams\n ? `return stringifiedParams.length > 0 ? \\`${route}${'?${stringifiedParams}'}\\` : \\`${route}\\``\n : `return \\`${route}\\``\n }\n}\\n`;\n\n const isContentTypeNdJson = (contentType: string) =>\n contentType === 'application/nd-json' ||\n contentType === 'application/x-ndjson';\n\n const isNdJson = response.contentTypes.some(isContentTypeNdJson);\n const responseTypeName = fetchResponseTypeName(\n override.fetch.includeHttpResponseReturnType,\n isNdJson ? 'Response' : response.definition.success,\n operationName,\n );\n\n const allResponses = [...response.types.success, ...response.types.errors];\n if (allResponses.length === 0) {\n allResponses.push({\n contentType: '',\n hasReadonlyProps: false,\n imports: [],\n isEnum: false,\n isRef: false,\n key: 'default',\n schemas: [],\n type: 'unknown',\n value: 'unknown',\n });\n }\n const nonDefaultStatuses = allResponses\n .filter((r) => r.key !== 'default')\n .map((r) => r.key);\n const responseDataTypes = allResponses\n .map(\n (r) => `export type ${responseTypeName}${pascal(r.key)} = {\n ${isContentTypeNdJson(r.contentType) ? 'stream: Response' : `data: ${r.value || 'unknown'}`}\n status: ${\n r.key === 'default'\n ? nonDefaultStatuses.length\n ? `Exclude<HTTPStatusCodes, ${nonDefaultStatuses.join(' | ')}>`\n : 'number'\n : r.key\n }\n}`,\n )\n .join('\\n\\n');\n\n const compositeName = `${responseTypeName}Composite`;\n const compositeResponse = `${compositeName} = ${allResponses.map((r) => `${responseTypeName}${pascal(r.key)}`).join(' | ')}`;\n\n const responseTypeImplementation = override.fetch\n .includeHttpResponseReturnType\n ? `${responseDataTypes}\n \nexport type ${compositeResponse};\n \nexport type ${responseTypeName} = ${compositeName} & {\n headers: Headers;\n}\\n\\n`\n : '';\n\n const getUrlFnProperties = props\n .filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.QUERY_PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS,\n )\n .map((param) => {\n if (param.type === GetterPropType.NAMED_PATH_PARAMS) {\n return param.destructured;\n } else {\n return param.name;\n }\n })\n .join(',');\n\n const args = `${toObjectString(props, 'implementation')} ${isRequestOptions ? `options?: RequestInit` : ''}`;\n const returnType = `Promise<${responseTypeName}>`;\n\n const globalFetchOptions = isObject(override?.requestOptions)\n ? `${stringify(override?.requestOptions)?.slice(1, -1)?.trim()}`\n : '';\n const fetchMethodOption = `method: '${verb.toUpperCase()}'`;\n const ignoreContentTypes = ['multipart/form-data'];\n const fetchHeadersOption =\n body.contentType && !ignoreContentTypes.includes(body.contentType)\n ? `headers: { 'Content-Type': '${body.contentType}',${headers ? '...headers,' : ''} ...options?.headers }`\n : headers\n ? 'headers: {...headers, ...options?.headers}'\n : '';\n const requestBodyParams = generateBodyOptions(\n body,\n isFormData,\n isFormUrlEncoded,\n );\n const fetchBodyOption = requestBodyParams\n ? (isFormData && body.formData) || (isFormUrlEncoded && body.formUrlEncoded)\n ? `body: ${requestBodyParams}`\n : `body: JSON.stringify(${requestBodyParams})`\n : '';\n\n const fetchFnOptions = `${getUrlFnName}(${getUrlFnProperties}),\n {${globalFetchOptions ? '\\n' : ''} ${globalFetchOptions}\n ${isRequestOptions ? '...options,' : ''}\n ${fetchMethodOption}${fetchHeadersOption ? ',' : ''}\n ${fetchHeadersOption}${fetchBodyOption ? ',' : ''}\n ${fetchBodyOption}\n }\n`;\n const fetchResponseImplementation = isNdJson\n ? `const stream = await fetch(${fetchFnOptions})\n\n ${override.fetch.includeHttpResponseReturnType ? 'return { status: stream.status, stream, headers: stream.headers }' : `return stream`}\n `\n : `const res = await fetch(${fetchFnOptions})\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: ${responseTypeName}${override.fetch.includeHttpResponseReturnType ? `['data']` : ''} = body ? JSON.parse(body) : {}\n\n ${override.fetch.includeHttpResponseReturnType ? `return { data, status: res.status, headers: res.headers } as ${responseTypeName}` : 'return data'}\n`;\n const customFetchResponseImplementation = `return ${mutator?.name}<${responseTypeName}>(${fetchFnOptions});`;\n\n const bodyForm = generateFormDataAndUrlEncodedFunction({\n formData,\n formUrlEncoded,\n body,\n isFormData,\n isFormUrlEncoded,\n });\n\n const fetchImplementationBody = mutator\n ? customFetchResponseImplementation\n : fetchResponseImplementation;\n\n const fetchImplementation = `export const ${operationName} = async (${args}): ${returnType} => {\n ${bodyForm ? ` ${bodyForm}` : ''}\n ${fetchImplementationBody}}\n`;\n\n const implementation =\n `${responseTypeImplementation}` +\n `${getUrlFnImplementation}\\n` +\n `${fetchImplementation}\\n`;\n\n return implementation;\n};\n\nexport const fetchResponseTypeName = (\n includeHttpResponseReturnType: boolean,\n definitionSuccessResponse: string,\n operationName: string,\n) => {\n return includeHttpResponseReturnType\n ? `${operationName}Response`\n : definitionSuccessResponse;\n};\n\nexport const generateClient: ClientBuilder = (verbOptions, options) => {\n const imports = generateVerbImports(verbOptions);\n const functionImplementation = generateRequestFunction(verbOptions, options);\n\n return {\n implementation: `${functionImplementation}\\n`,\n imports,\n };\n};\n\nconst getHTTPStatusCodes = () => `\nexport type HTTPStatusCode1xx = 100 | 101 | 102 | 103;\nexport type HTTPStatusCode2xx = 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207;\nexport type HTTPStatusCode3xx = 300 | 301 | 302 | 303 | 304 | 305 | 307 | 308;\nexport type HTTPStatusCode4xx = 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 426 | 428 | 429 | 431 | 451;\nexport type HTTPStatusCode5xx = 500 | 501 | 502 | 503 | 504 | 505 | 507 | 511;\nexport type HTTPStatusCodes = HTTPStatusCode1xx | HTTPStatusCode2xx | HTTPStatusCode3xx | HTTPStatusCode4xx | HTTPStatusCode5xx;\n\n`;\n\nexport const generateFetchHeader: ClientHeaderBuilder = ({\n clientImplementation,\n}) => {\n return clientImplementation.includes('<HTTPStatusCodes,')\n ? getHTTPStatusCodes()\n : '';\n};\n\nconst fetchClientBuilder: ClientGeneratorsBuilder = {\n client: generateClient,\n header: generateFetchHeader,\n dependencies: () => [],\n};\n\nexport const builder = () => () => fetchClientBuilder;\n\nexport default builder;\n","import {\n generateVerbImports,\n ClientBuilder,\n ClientExtraFilesBuilder,\n ClientGeneratorsBuilder,\n ClientHeaderBuilder,\n ContextSpecs,\n generateMutatorImports,\n GeneratorMutator,\n GeneratorVerbOptions,\n getFileInfo,\n jsDoc,\n NormalizedOutputOptions,\n upath,\n camel,\n pascal,\n getFullRoute,\n} from '@orval/core';\nimport { generateZod } from '@orval/zod';\nimport {\n generateRequestFunction as generateFetchRequestFunction,\n generateClient,\n generateFetchHeader,\n} from '@orval/fetch';\n\nimport { InfoObject } from 'openapi3-ts/oas30';\n\nconst getHeader = (\n option: false | ((info: InfoObject) => string | string[]),\n info: InfoObject,\n): string => {\n if (!option) {\n return '';\n }\n\n const header = option(info);\n\n return Array.isArray(header) ? jsDoc({ description: header }) : header;\n};\n\nexport const getMcpHeader: ClientHeaderBuilder = ({\n verbOptions,\n output,\n clientImplementation,\n}) => {\n const targetInfo = getFileInfo(output.target);\n const schemaInfo = getFileInfo(output.schemas);\n\n const relativeSchemaImportPath = output.schemas\n ? upath.relativeSafe(targetInfo.dirname, schemaInfo.dirname)\n : './' + targetInfo.filename + '.schemas';\n\n const importSchemaNames = Object.values(verbOptions)\n .flatMap((verbOption) => {\n const imports = [];\n const pascalOperationName = pascal(verbOption.operationName);\n\n if (verbOption.queryParams) {\n imports.push(`${pascalOperationName}Params`);\n }\n\n if (verbOption.body.definition) {\n imports.push(`${pascalOperationName}Body`);\n }\n\n return imports;\n })\n .reduce((acc, name) => {\n if (!acc.find((i) => i === name)) {\n acc.push(name);\n }\n return acc;\n }, [] as string[]);\n\n const importSchemasImplementation = `import {\\n ${importSchemaNames.join(\n ',\\n ',\n )}\\n} from '${relativeSchemaImportPath}';\n`;\n\n const relativeFetchClientPath = './http-client';\n const importFetchClientNames = Object.values(verbOptions)\n .flatMap((verbOption) => verbOption.operationName)\n .reduce((acc, name) => {\n if (!acc.find((i) => i === name)) {\n acc.push(name);\n }\n\n return acc;\n }, [] as string[]);\n\n const importFetchClientImplementation = `import {\\n ${importFetchClientNames.join(\n ',\\n ',\n )}\\n} from '${relativeFetchClientPath}';\n `;\n\n const content = [\n importSchemasImplementation,\n importFetchClientImplementation,\n ].join('\\n');\n\n return content + '\\n';\n};\n\nexport const generateMcp: ClientBuilder = async (verbOptions, options) => {\n const handlerArgsTypes = [];\n const pathParamsType = verbOptions.params\n .map((param) => {\n const paramName = param.name.split(': ')[0];\n const paramType = param.implementation.split(': ')[1];\n return ` ${paramName}: ${paramType}`;\n })\n .join(',\\n');\n if (pathParamsType) {\n handlerArgsTypes.push(` pathParams: {\\n${pathParamsType}\\n };`);\n }\n if (verbOptions.queryParams) {\n handlerArgsTypes.push(\n ` queryParams: ${verbOptions.queryParams.schema.name};`,\n );\n }\n if (verbOptions.body.definition) {\n handlerArgsTypes.push(` bodyParams: ${verbOptions.body.definition};`);\n }\n\n const handlerArgsName = `${verbOptions.operationName}Args`;\n const handlerArgsImplementation = handlerArgsTypes.length\n ? `\nexport type ${handlerArgsName} = {\n${handlerArgsTypes.join('\\n')}\n}\n`\n : '';\n\n const fetchParams = [];\n if (verbOptions.params.length) {\n const pathParamsArgs = verbOptions.params\n .map((param) => {\n const paramName = param.name.split(': ')[0];\n\n return `args.pathParams.${paramName}`;\n })\n .join(', ');\n\n fetchParams.push(`${pathParamsArgs}`);\n }\n if (verbOptions.body.definition) fetchParams.push(`args.bodyParams`);\n if (verbOptions.queryParams) fetchParams.push(`args.queryParams`);\n\n const handlerName = `${verbOptions.operationName}Handler`;\n const handlerImplementation = `\nexport const ${handlerName} = async (${handlerArgsTypes.length ? `args: ${handlerArgsName}` : ''}) => {\n const res = await ${verbOptions.operationName}(${fetchParams.join(', ')});\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};`;\n\n const handlersImplementation = [\n handlerArgsImplementation,\n handlerImplementation,\n ].join('');\n\n return {\n implementation: handlersImplementation ? `${handlersImplementation}\\n` : '',\n imports: [],\n };\n};\n\nexport const generateServer = async (\n verbOptions: Record<string, GeneratorVerbOptions>,\n output: NormalizedOutputOptions,\n context: ContextSpecs,\n) => {\n const info = context.specs[context.specKey].info;\n const { extension, dirname } = getFileInfo(output.target);\n const serverPath = upath.join(dirname, `server${extension}`);\n const header = getHeader(output.override.header, info);\n\n const toolImplementations = Object.values(verbOptions)\n .map((verbOption) => {\n const imputSchemaTypes = [];\n if (verbOption.params.length)\n imputSchemaTypes.push(\n ` pathParams: ${verbOption.operationName}Params`,\n );\n if (verbOption.queryParams)\n imputSchemaTypes.push(\n ` queryParams: ${verbOption.operationName}QueryParams`,\n );\n if (verbOption.body.definition)\n imputSchemaTypes.push(` bodyParams: ${verbOption.operationName}Body`);\n\n const imputSchemaImplementation = imputSchemaTypes.length\n ? ` {\n ${imputSchemaTypes.join(',\\n ')}\n },`\n : '';\n\n const toolImplementation = `\nserver.tool(\n '${verbOption.operationName}',\n '${verbOption.summary}',${imputSchemaImplementation ? `\\n${imputSchemaImplementation}` : ''}\n ${verbOption.operationName}Handler\n);`;\n\n return toolImplementation;\n })\n .join('\\n');\n\n const importToolSchemas = Object.values(verbOptions)\n .flatMap((verbOption) => {\n const imports = [];\n\n if (verbOption.headers)\n imports.push(` ${verbOption.operationName}Header`);\n if (verbOption.params.length)\n imports.push(` ${verbOption.operationName}Params`);\n if (verbOption.queryParams)\n imports.push(` ${verbOption.operationName}QueryParams`);\n if (verbOption.body.definition)\n imports.push(` ${verbOption.operationName}Body`);\n\n return imports;\n })\n .join(',\\n');\n const importToolSchemasImplementation = `import {\\n${importToolSchemas}\\n} from './tool-schemas.zod';`;\n\n const importHandlers = Object.values(verbOptions)\n .filter((verbOption) =>\n toolImplementations.includes(`${verbOption.operationName}Handler`),\n )\n .map((verbOption) => ` ${verbOption.operationName}Handler`)\n .join(`,\\n`);\n const importHandlersImplementation = `import {\\n${importHandlers}\\n} from './handlers';`;\n\n const importDependenciesImplementation = `import {\n McpServer\n} from '@modelcontextprotocol/sdk/server/mcp.js';\n \nimport {\n StdioServerTransport\n} from '@modelcontextprotocol/sdk/server/stdio.js'; \n`;\n const newMcpServerImplementation = `\nconst server = new McpServer({\n name: '${camel(info.title)}Server',\n version: '1.0.0',\n});\n`;\n const serverConnectImplementation = `\nconst transport = new StdioServerTransport();\n\nserver.connect(transport).then(() => {\n console.error('MCP server running on stdio');\n}).catch(console.error);\n`;\n\n const content = [\n header,\n importDependenciesImplementation,\n importHandlersImplementation,\n importToolSchemasImplementation,\n newMcpServerImplementation,\n toolImplementations,\n serverConnectImplementation,\n ].join('\\n');\n\n return [\n {\n content,\n path: serverPath,\n },\n ];\n};\n\nconst generateZodFiles = async (\n verbOptions: Record<string, GeneratorVerbOptions>,\n output: NormalizedOutputOptions,\n context: ContextSpecs,\n) => {\n const { extension, dirname, filename } = getFileInfo(output.target);\n\n const header = getHeader(\n output.override.header,\n context.specs[context.specKey].info,\n );\n\n const zods = await Promise.all(\n Object.values(verbOptions).map((verbOption) =>\n generateZod(\n verbOption,\n {\n route: verbOption.route,\n pathRoute: verbOption.pathRoute,\n override: output.override,\n context,\n mock: output.mock,\n output: output.target!,\n },\n output.client,\n ),\n ),\n );\n\n const allMutators = zods.reduce(\n (acc, z) => {\n (z.mutators ?? []).forEach((mutator) => {\n acc[mutator.name] = mutator;\n });\n return acc;\n },\n {} as Record<string, GeneratorMutator>,\n );\n\n const mutatorsImports = generateMutatorImports({\n mutators: Object.values(allMutators),\n });\n\n let content = `${header}import { z as zod } from 'zod';\\n${mutatorsImports}\\n`;\n\n const zodPath = upath.join(dirname, `tool-schemas.zod${extension}`);\n\n content += zods.map((zod) => zod.implementation).join('\\n');\n\n return [\n {\n content,\n path: zodPath,\n },\n ];\n};\n\nconst generateHttpClinetFiles = async (\n verbOptions: Record<string, GeneratorVerbOptions>,\n output: NormalizedOutputOptions,\n context: ContextSpecs,\n) => {\n const { extension, dirname, filename } = getFileInfo(output.target);\n\n const header = getHeader(\n output.override.header,\n context.specs[context.specKey].info,\n );\n\n const clients = await Promise.all(\n Object.values(verbOptions).map((verbOption) => {\n const fullRoute = getFullRoute(\n verbOption.route,\n context.specs[context.specKey].servers,\n output.baseUrl,\n );\n\n const options = {\n route: fullRoute,\n pathRoute: verbOption.pathRoute,\n override: output.override,\n context,\n mock: output.mock,\n output: output.target!,\n };\n\n return generateClient(verbOption, options, output.client, output);\n }),\n );\n\n const clientImplementation = clients\n .map((client) => client.implementation)\n .join('\\n');\n\n const relativeSchemasPath = output.schemas\n ? upath.relativeSafe(dirname, getFileInfo(output.schemas).dirname)\n : './' + filename + '.schemas';\n const importNames = clients\n .flatMap((client) => client.imports)\n .reduce((acc, imp) => {\n if (!acc.find((i) => i === imp.name)) {\n acc.push(imp.name);\n }\n\n return acc;\n }, [] as string[]);\n const importImplementation = `import { ${importNames.join(\n ',\\n',\n )} } from '${relativeSchemasPath}';`;\n\n const fetchHeader = generateFetchHeader({\n title: '',\n isRequestOptions: false,\n isMutator: false,\n noFunction: false,\n isGlobalMutator: false,\n provideIn: false,\n hasAwaitedType: false,\n output,\n verbOptions,\n clientImplementation,\n });\n\n const content = [\n header,\n importImplementation,\n fetchHeader,\n clientImplementation,\n ].join('\\n');\n const outputPath = upath.join(dirname, `http-client${extension}`);\n\n return [\n {\n content,\n path: outputPath,\n },\n ];\n};\n\nexport const generateExtraFiles: ClientExtraFilesBuilder = async (\n verbOptions,\n output,\n context,\n) => {\n const [server, zods, httpClients] = await Promise.all([\n generateServer(verbOptions, output, context),\n generateZodFiles(verbOptions, output, context),\n generateHttpClinetFiles(verbOptions, output, context),\n ]);\n\n return [...server, ...zods, ...httpClients];\n};\n\nconst mcpClientBuilder: ClientGeneratorsBuilder = {\n client: generateMcp,\n header: getMcpHeader,\n extraFiles: generateExtraFiles,\n};\n\nexport const builder = () => () => mcpClientBuilder;\n\nexport default builder;\n"],"mappings":"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","names":["index_exports","__export","builder","index_default","generateClient","generateFetchHeader","module","__toCommonJS","import_core","import_core2"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orval/mcp",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.10.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"lint": "eslint src/**/*.ts"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@orval/core": "7.
|
|
17
|
-
"@orval/zod": "7.
|
|
16
|
+
"@orval/core": "7.10.0",
|
|
17
|
+
"@orval/zod": "7.10.0"
|
|
18
18
|
}
|
|
19
19
|
}
|