UNPKG

mcp-swagger-parser

Version:

Enterprise-grade OpenAPI/Swagger specification parser for Model Context Protocol (MCP) projects

145 lines 6.09 kB
"use strict"; /** * @fileoverview MCP Swagger Parser - OpenAPI/Swagger specification parser for Model Context Protocol * @version 1.0.0 * @author MCP Swagger Team * @license MIT */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DEFAULT_TRANSFORMER_OPTIONS = exports.DEFAULT_PARSER_CONFIG = exports.PACKAGE_NAME = exports.VERSION = exports.predefinedGenerators = exports.CustomHeadersManager = exports.BearerAuthManager = exports.OpenAPIToMCPTransformer = exports.transformToMCPTools = exports.parseFromString = exports.parseFromUrl = exports.parseFromFile = void 0; exports.parseAndTransform = parseAndTransform; // Export types __exportStar(require("./types/index"), exports); // Export core functionality __exportStar(require("./core/parser"), exports); __exportStar(require("./core/validator"), exports); __exportStar(require("./core/normalizer"), exports); __exportStar(require("./core/version-detector"), exports); __exportStar(require("./core/swagger2openapi-converter"), exports); // Export parsers __exportStar(require("./parsers/base-parser"), exports); __exportStar(require("./parsers/url-parser"), exports); __exportStar(require("./parsers/file-parser"), exports); __exportStar(require("./parsers/text-parser"), exports); // Export extractors __exportStar(require("./extractors/index"), exports); // Export utilities __exportStar(require("./utils/index"), exports); // Export errors __exportStar(require("./errors/index"), exports); // Re-export commonly used functions for convenience const parser_1 = require("./core/parser"); const index_1 = require("./transformer/index"); // Create convenience functions const parseFromFile = async (filePath, config) => { const parser = new parser_1.OpenAPIParser(config); return parser.parseFromFile(filePath); }; exports.parseFromFile = parseFromFile; const parseFromUrl = async (url, config) => { const parser = new parser_1.OpenAPIParser(config); return parser.parseFromUrl(url); }; exports.parseFromUrl = parseFromUrl; const parseFromString = async (content, config) => { const parser = new parser_1.OpenAPIParser(config); return parser.parseFromString(content); }; exports.parseFromString = parseFromString; // Export transformer functions var index_2 = require("./transformer/index"); Object.defineProperty(exports, "transformToMCPTools", { enumerable: true, get: function () { return index_2.transformToMCPTools; } }); Object.defineProperty(exports, "OpenAPIToMCPTransformer", { enumerable: true, get: function () { return index_2.OpenAPIToMCPTransformer; } }); var bearer_auth_1 = require("./auth/bearer-auth"); Object.defineProperty(exports, "BearerAuthManager", { enumerable: true, get: function () { return bearer_auth_1.BearerAuthManager; } }); // Export custom headers var index_3 = require("./headers/index"); Object.defineProperty(exports, "CustomHeadersManager", { enumerable: true, get: function () { return index_3.CustomHeadersManager; } }); Object.defineProperty(exports, "predefinedGenerators", { enumerable: true, get: function () { return index_3.predefinedGenerators; } }); /** * High-level convenience function to parse and transform OpenAPI spec in one step * * @param source - File path, URL, or string content * @param options - Parser and transformer options * @returns Promise resolving to MCP tools array * * @example * ```typescript * // From file * const tools = await parseAndTransform('/path/to/swagger.json'); * * // From URL with options * const tools = await parseAndTransform('https://api.example.com/swagger.json', { * parserConfig: { strictMode: false }, * transformerOptions: { baseUrl: 'https://api.example.com' } * }); * * // From string * const swaggerJson = '{"openapi": "3.0.0", ...}'; * const tools = await parseAndTransform(swaggerJson, { isString: true }); * ``` */ async function parseAndTransform(source, options = {}) { const { isString = false, isUrl = false, parserConfig, transformerOptions } = options; let parseResult; if (isString) { parseResult = await (0, exports.parseFromString)(source, parserConfig); } else if (isUrl || source.startsWith('http://') || source.startsWith('https://')) { parseResult = await (0, exports.parseFromUrl)(source, parserConfig); } else { parseResult = await (0, exports.parseFromFile)(source, parserConfig); } return (0, index_1.transformToMCPTools)(parseResult.spec, transformerOptions); } /** * Package metadata */ exports.VERSION = '1.0.0'; exports.PACKAGE_NAME = 'mcp-swagger-parser'; /** * Default configurations */ exports.DEFAULT_PARSER_CONFIG = { validateSchema: true, resolveReferences: true, allowEmptyPaths: false, strictMode: false, customValidators: [], autoConvert: true, autoFix: true, swagger2Options: { patch: true, warnOnly: false, resolveInternal: false, targetVersion: '3.0.0', preserveRefs: true, warnProperty: 'x-s2o-warning', debug: false } }; exports.DEFAULT_TRANSFORMER_OPTIONS = { includeDeprecated: false, includeTags: [], excludeTags: [], requestTimeout: 30000, defaultHeaders: { 'Content-Type': 'application/json' }, debugHeaders: false, protectedHeaders: ['content-type', 'content-length', 'host', 'connection', 'transfer-encoding', 'upgrade'] }; //# sourceMappingURL=index.js.map