{"version":3,"sources":["jsdelivr-header.js","/npm/docusaurus-plugin-openapi-docs-xvladqt@0.0.0-506/lib/index.js"],"names":[],"mappings":"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","file":"/npm/docusaurus-plugin-openapi-docs-xvladqt@0.0.0-506/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/docusaurus-plugin-openapi-docs-xvladqt@0.0.0-506/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n/* ============================================================================\n * Copyright (c) Palo Alto Networks\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n * ========================================================================== */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDocsPluginConfig = exports.isURL = void 0;\nconst fs_1 = __importDefault(require(\"fs\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst utils_1 = require(\"@docusaurus/utils\");\nconst chalk_1 = __importDefault(require(\"chalk\"));\nconst mustache_1 = require(\"mustache\");\nconst markdown_1 = require(\"./markdown\");\nconst openapi_1 = require(\"./openapi\");\nconst options_1 = require(\"./options\");\nconst sidebars_1 = __importDefault(require(\"./sidebars\"));\nfunction isURL(str) {\n    return /^(https?:)\\/\\//m.test(str);\n}\nexports.isURL = isURL;\nfunction getDocsPluginConfig(presetsPlugins, pluginId) {\n    // eslint-disable-next-line array-callback-return\n    const filteredConfig = presetsPlugins.filter((data) => {\n        // Search presets\n        if (Array.isArray(data)) {\n            if (typeof data[0] === \"string\" && data[0].endsWith(pluginId)) {\n                return data[1];\n            }\n            // Search plugin-content-docs instances\n            if (typeof data[0] === \"string\" &&\n                data[0] === \"@docusaurus/plugin-content-docs\") {\n                const configPluginId = data[1].id ? data[1].id : \"default\";\n                if (configPluginId === pluginId) {\n                    return data[1];\n                }\n            }\n        }\n    })[0];\n    if (filteredConfig) {\n        // Search presets, e.g. \"classic\"\n        if (filteredConfig[0].endsWith(pluginId)) {\n            return filteredConfig[1].docs;\n        }\n        // Search plugin-content-docs instances\n        if (filteredConfig[0] === \"@docusaurus/plugin-content-docs\") {\n            const configPluginId = filteredConfig[1].id\n                ? filteredConfig[1].id\n                : \"default\";\n            if (configPluginId === pluginId) {\n                return filteredConfig[1];\n            }\n        }\n    }\n    return;\n}\nexports.getDocsPluginConfig = getDocsPluginConfig;\nfunction getPluginConfig(plugins, pluginId) {\n    return plugins.filter((data) => data[1].id === pluginId)[0][1];\n}\nfunction getPluginInstances(plugins) {\n    return plugins.filter((data) => data[0] === \"docusaurus-plugin-openapi-docs\");\n}\nfunction pluginOpenAPIDocs(context, options) {\n    const { config, docsPluginId } = options;\n    const { siteDir, siteConfig } = context;\n    // Get routeBasePath and path from plugin-content-docs or preset\n    const presets = siteConfig.presets;\n    const plugins = siteConfig.plugins;\n    const presetsPlugins = presets.concat(plugins);\n    let docData = getDocsPluginConfig(presetsPlugins, docsPluginId);\n    let docRouteBasePath = docData ? docData.routeBasePath : undefined;\n    let docPath = docData ? (docData.path ? docData.path : \"docs\") : undefined;\n    async function generateApiDocs(options, pluginId) {\n        let { specPath, outputDir, template, downloadUrl, sidebarOptions } = options;\n        // Override docPath if pluginId provided\n        if (pluginId) {\n            docData = getDocsPluginConfig(presetsPlugins, pluginId);\n            docRouteBasePath = docData ? docData.routeBasePath : undefined;\n            docPath = docData ? (docData.path ? docData.path : \"docs\") : undefined;\n        }\n        const contentPath = isURL(specPath)\n            ? specPath\n            : path_1.default.resolve(siteDir, specPath);\n        try {\n            const openapiFiles = await (0, openapi_1.readOpenapiFiles)(contentPath, options);\n            const [loadedApi, tags] = await (0, openapi_1.processOpenapiFiles)(openapiFiles, sidebarOptions);\n            if (!fs_1.default.existsSync(outputDir)) {\n                try {\n                    fs_1.default.mkdirSync(outputDir, { recursive: true });\n                    console.log(chalk_1.default.green(`Successfully created \"${outputDir}\"`));\n                }\n                catch (err) {\n                    console.error(chalk_1.default.red(`Failed to create \"${outputDir}\"`), chalk_1.default.yellow(err));\n                }\n            }\n            // TODO: figure out better way to set default\n            if (Object.keys(sidebarOptions !== null && sidebarOptions !== void 0 ? sidebarOptions : {}).length > 0) {\n                const sidebarSlice = (0, sidebars_1.default)(sidebarOptions, options, loadedApi, tags, docPath);\n                const sidebarSliceTemplate = `module.exports = {{{slice}}};`;\n                const view = (0, mustache_1.render)(sidebarSliceTemplate, {\n                    slice: JSON.stringify(sidebarSlice),\n                });\n                if (!fs_1.default.existsSync(`${outputDir}/sidebar.js`)) {\n                    try {\n                        fs_1.default.writeFileSync(`${outputDir}/sidebar.js`, view, \"utf8\");\n                        console.log(chalk_1.default.green(`Successfully created \"${outputDir}/sidebar.js\"`));\n                    }\n                    catch (err) {\n                        console.error(chalk_1.default.red(`Failed to write \"${outputDir}/sidebar.js\"`), chalk_1.default.yellow(err));\n                    }\n                }\n            }\n            const mdTemplate = template\n                ? fs_1.default.readFileSync(template).toString()\n                : `---\nid: {{{id}}}\ntitle: \"{{{title}}}\"\ndescription: \"{{{frontMatter.description}}}\"\n{{^api}}\nsidebar_label: Introduction\n{{/api}}\n{{#api}}\nsidebar_label: {{{title}}}\n{{/api}}\n{{^api}}\nsidebar_position: 0\n{{/api}}\nhide_title: true\n{{#api}}\nhide_table_of_contents: true\n{{/api}}\n{{#json}}\napi: {{{json}}}\n{{/json}}\n{{#api.method}}\nsidebar_class_name: \"{{{api.method}}} api-method\"\n{{/api.method}}\n{{#infoPath}}\ninfo_path: {{{infoPath}}}\n{{/infoPath}}\n---\n\n{{{markdown}}}\n      `;\n            const infoMdTemplate = `---\nid: {{{id}}}\ntitle: \"{{{title}}}\"\ndescription: \"{{{frontMatter.description}}}\"\nsidebar_label: {{{title}}}\nhide_title: true\ncustom_edit_url: null\n---\n\n{{{markdown}}}\n\n\\`\\`\\`mdx-code-block\nimport DocCardList from '@theme/DocCardList';\nimport {useCurrentSidebarCategory} from '@docusaurus/theme-common';\n\n<DocCardList items={useCurrentSidebarCategory().items}/>\n\\`\\`\\`\n      `;\n            const tagMdTemplate = `---\nid: {{{id}}}\ntitle: \"{{{frontMatter.description}}}\"\ndescription: \"{{{frontMatter.description}}}\"\ncustom_edit_url: null\n---\n\n{{{markdown}}}\n\n\\`\\`\\`mdx-code-block\nimport DocCardList from '@theme/DocCardList';\nimport {useCurrentSidebarCategory} from '@docusaurus/theme-common';\n\n<DocCardList items={useCurrentSidebarCategory().items}/>\n\\`\\`\\`\n      `;\n            loadedApi.map(async (item) => {\n                if (item.type === \"info\") {\n                    if (downloadUrl && isURL(downloadUrl)) {\n                        item.downloadUrl = downloadUrl;\n                    }\n                }\n                const markdown = item.type === \"api\"\n                    ? (0, markdown_1.createApiPageMD)(item)\n                    : item.type === \"info\"\n                        ? (0, markdown_1.createInfoPageMD)(item)\n                        : (0, markdown_1.createTagPageMD)(item);\n                item.markdown = markdown;\n                if (item.type === \"api\") {\n                    item.json = JSON.stringify(item.api);\n                    let infoBasePath = `${outputDir}/${item.infoId}`;\n                    if (docRouteBasePath) {\n                        infoBasePath = `${docRouteBasePath}/${outputDir\n                            .split(docPath)[1]\n                            .replace(/^\\/+/g, \"\")}/${item.infoId}`.replace(/^\\/+/g, \"\");\n                    }\n                    if (item.infoId)\n                        item.infoPath = infoBasePath;\n                }\n                const view = (0, mustache_1.render)(mdTemplate, item);\n                const utils = (0, mustache_1.render)(infoMdTemplate, item);\n                // eslint-disable-next-line testing-library/render-result-naming-convention\n                const tagUtils = (0, mustache_1.render)(tagMdTemplate, item);\n                if (item.type === \"api\") {\n                    if (!fs_1.default.existsSync(`${outputDir}/${item.id}.api.mdx`)) {\n                        try {\n                            // kebabCase(arg) returns 0-length string when arg is undefined\n                            if (item.id.length === 0) {\n                                throw Error(\"Operation must have summary or operationId defined\");\n                            }\n                            fs_1.default.writeFileSync(`${outputDir}/${item.id}.api.mdx`, view, \"utf8\");\n                            console.log(chalk_1.default.green(`Successfully created \"${outputDir}/${item.id}.api.mdx\"`));\n                        }\n                        catch (err) {\n                            console.error(chalk_1.default.red(`Failed to write \"${outputDir}/${item.id}.api.mdx\"`), chalk_1.default.yellow(err));\n                        }\n                    }\n                }\n                // TODO: determine if we actually want/need this\n                if (item.type === \"info\") {\n                    if (!fs_1.default.existsSync(`${outputDir}/${item.id}.info.mdx`)) {\n                        try {\n                            (sidebarOptions === null || sidebarOptions === void 0 ? void 0 : sidebarOptions.categoryLinkSource) === \"info\" // Only use utils template if set to \"info\"\n                                ? fs_1.default.writeFileSync(`${outputDir}/${item.id}.info.mdx`, utils, \"utf8\")\n                                : fs_1.default.writeFileSync(`${outputDir}/${item.id}.info.mdx`, view, \"utf8\");\n                            console.log(chalk_1.default.green(`Successfully created \"${outputDir}/${item.id}.info.mdx\"`));\n                        }\n                        catch (err) {\n                            console.error(chalk_1.default.red(`Failed to write \"${outputDir}/${item.id}.info.mdx\"`), chalk_1.default.yellow(err));\n                        }\n                    }\n                }\n                if (item.type === \"tag\") {\n                    if (!fs_1.default.existsSync(`${outputDir}/${item.id}.tag.mdx`)) {\n                        try {\n                            fs_1.default.writeFileSync(`${outputDir}/${item.id}.tag.mdx`, tagUtils, \"utf8\");\n                            console.log(chalk_1.default.green(`Successfully created \"${outputDir}/${item.id}.tag.mdx\"`));\n                        }\n                        catch (err) {\n                            console.error(chalk_1.default.red(`Failed to write \"${outputDir}/${item.id}.tag.mdx\"`), chalk_1.default.yellow(err));\n                        }\n                    }\n                }\n                return;\n            });\n            return;\n        }\n        catch (e) {\n            console.error(chalk_1.default.red(`Loading of api failed for \"${contentPath}\"`));\n            throw e;\n        }\n    }\n    async function cleanApiDocs(options) {\n        const { outputDir } = options;\n        const apiDir = (0, utils_1.posixPath)(path_1.default.join(siteDir, outputDir));\n        const apiMdxFiles = await (0, utils_1.Globby)([\"*.api.mdx\", \"*.info.mdx\", \"*.tag.mdx\"], {\n            cwd: path_1.default.resolve(apiDir),\n            deep: 1,\n        });\n        const sidebarFile = await (0, utils_1.Globby)([\"sidebar.js\"], {\n            cwd: path_1.default.resolve(apiDir),\n            deep: 1,\n        });\n        apiMdxFiles.map((mdx) => fs_1.default.unlink(`${apiDir}/${mdx}`, (err) => {\n            if (err) {\n                console.error(chalk_1.default.red(`Cleanup failed for \"${apiDir}/${mdx}\"`), chalk_1.default.yellow(err));\n            }\n            else {\n                console.log(chalk_1.default.green(`Cleanup succeeded for \"${apiDir}/${mdx}\"`));\n            }\n        }));\n        sidebarFile.map((sidebar) => fs_1.default.unlink(`${apiDir}/${sidebar}`, (err) => {\n            if (err) {\n                console.error(chalk_1.default.red(`Cleanup failed for \"${apiDir}/${sidebar}\"`), chalk_1.default.yellow(err));\n            }\n            else {\n                console.log(chalk_1.default.green(`Cleanup succeeded for \"${apiDir}/${sidebar}\"`));\n            }\n        }));\n    }\n    async function generateVersions(versions, outputDir) {\n        let versionsArray = [];\n        for (const [version, metadata] of Object.entries(versions)) {\n            versionsArray.push({\n                version: version,\n                label: metadata.label,\n                baseUrl: metadata.baseUrl,\n            });\n        }\n        const versionsJson = JSON.stringify(versionsArray, null, 2);\n        try {\n            fs_1.default.writeFileSync(`${outputDir}/versions.json`, versionsJson, \"utf8\");\n            console.log(chalk_1.default.green(`Successfully created \"${outputDir}/versions.json\"`));\n        }\n        catch (err) {\n            console.error(chalk_1.default.red(`Failed to write \"${outputDir}/versions.json\"`), chalk_1.default.yellow(err));\n        }\n    }\n    async function cleanVersions(outputDir) {\n        if (fs_1.default.existsSync(`${outputDir}/versions.json`)) {\n            fs_1.default.unlink(`${outputDir}/versions.json`, (err) => {\n                if (err) {\n                    console.error(chalk_1.default.red(`Cleanup failed for \"${outputDir}/versions.json\"`), chalk_1.default.yellow(err));\n                }\n                else {\n                    console.log(chalk_1.default.green(`Cleanup succeeded for \"${outputDir}/versions.json\"`));\n                }\n            });\n        }\n    }\n    return {\n        name: `docusaurus-plugin-openapi-docs`,\n        extendCli(cli) {\n            cli\n                .command(`gen-api-docs`)\n                .description(`Generates OpenAPI docs in MDX file format and sidebar.js (if enabled).`)\n                .usage(\"<id>\")\n                .arguments(\"<id>\")\n                .option(\"-p, --plugin-id <plugin>\", \"OpenAPI docs plugin ID.\")\n                .action(async (id, instance) => {\n                var _a;\n                const options = instance.opts();\n                const pluginId = options.pluginId;\n                const pluginInstances = getPluginInstances(plugins);\n                let targetConfig;\n                let targetDocsPluginId;\n                if (pluginId) {\n                    try {\n                        const pluginConfig = getPluginConfig(plugins, pluginId);\n                        targetConfig = (_a = pluginConfig.config) !== null && _a !== void 0 ? _a : {};\n                        targetDocsPluginId = pluginConfig.docsPluginId;\n                    }\n                    catch {\n                        console.error(chalk_1.default.red(`OpenAPI docs plugin ID '${pluginId}' not found.`));\n                        return;\n                    }\n                }\n                else {\n                    if (pluginInstances.length > 1) {\n                        console.error(chalk_1.default.red(\"OpenAPI docs plugin ID must be specified when more than one plugin instance exists.\"));\n                        return;\n                    }\n                    targetConfig = config;\n                }\n                if (id === \"all\") {\n                    if (targetConfig[id]) {\n                        console.error(chalk_1.default.red(\"Can't use id 'all' for OpenAPI docs configuration key.\"));\n                    }\n                    else {\n                        Object.keys(targetConfig).forEach(async function (key) {\n                            await generateApiDocs(targetConfig[key], targetDocsPluginId);\n                        });\n                    }\n                }\n                else if (!targetConfig[id]) {\n                    console.error(chalk_1.default.red(`ID '${id}' does not exist in OpenAPI docs config.`));\n                }\n                else {\n                    await generateApiDocs(targetConfig[id], targetDocsPluginId);\n                }\n            });\n            cli\n                .command(`gen-api-docs:version`)\n                .description(`Generates versioned OpenAPI docs in MDX file format, versions.js and sidebar.js (if enabled).`)\n                .usage(\"<id:version>\")\n                .arguments(\"<id:version>\")\n                .option(\"-p, --plugin-id <plugin>\", \"OpenAPI docs plugin ID.\")\n                .action(async (id, instance) => {\n                var _a;\n                const options = instance.opts();\n                const pluginId = options.pluginId;\n                const pluginInstances = getPluginInstances(plugins);\n                let targetConfig;\n                let targetDocsPluginId;\n                if (pluginId) {\n                    try {\n                        const pluginConfig = getPluginConfig(plugins, pluginId);\n                        targetConfig = (_a = pluginConfig.config) !== null && _a !== void 0 ? _a : {};\n                        targetDocsPluginId = pluginConfig.docsPluginId;\n                    }\n                    catch {\n                        console.error(chalk_1.default.red(`OpenAPI docs plugin ID '${pluginId}' not found.`));\n                        return;\n                    }\n                }\n                else {\n                    if (pluginInstances.length > 1) {\n                        console.error(chalk_1.default.red(\"OpenAPI docs plugin ID must be specified when more than one plugin instance exists.\"));\n                        return;\n                    }\n                    targetConfig = config;\n                }\n                const [parentId, versionId] = id.split(\":\");\n                const parentConfig = Object.assign({}, targetConfig[parentId]);\n                const version = parentConfig.version;\n                const label = parentConfig.label;\n                const baseUrl = parentConfig.baseUrl;\n                let parentVersion = {};\n                parentVersion[version] = { label: label, baseUrl: baseUrl };\n                const { versions } = targetConfig[parentId];\n                const mergedVersions = Object.assign(parentVersion, versions);\n                // Prepare for merge\n                delete parentConfig.versions;\n                delete parentConfig.version;\n                delete parentConfig.label;\n                delete parentConfig.baseUrl;\n                // TODO: handle when no versions are defined by version command is passed\n                if (versionId === \"all\") {\n                    if (versions[id]) {\n                        console.error(chalk_1.default.red(\"Can't use id 'all' for OpenAPI docs versions configuration key.\"));\n                    }\n                    else {\n                        await generateVersions(mergedVersions, parentConfig.outputDir);\n                        Object.keys(versions).forEach(async (key) => {\n                            const versionConfig = versions[key];\n                            const mergedConfig = {\n                                ...parentConfig,\n                                ...versionConfig,\n                            };\n                            await generateApiDocs(mergedConfig, targetDocsPluginId);\n                        });\n                    }\n                }\n                else if (!versions[versionId]) {\n                    console.error(chalk_1.default.red(`Version ID '${versionId}' does not exist in OpenAPI docs versions config.`));\n                }\n                else {\n                    const versionConfig = versions[versionId];\n                    const mergedConfig = {\n                        ...parentConfig,\n                        ...versionConfig,\n                    };\n                    await generateVersions(mergedVersions, parentConfig.outputDir);\n                    await generateApiDocs(mergedConfig, targetDocsPluginId);\n                }\n            });\n            cli\n                .command(`clean-api-docs`)\n                .description(`Clears the generated OpenAPI docs MDX files and sidebar.js (if enabled).`)\n                .usage(\"<id>\")\n                .arguments(\"<id>\")\n                .option(\"-p, --plugin-id <plugin>\", \"OpenAPI docs plugin ID.\")\n                .action(async (id, instance) => {\n                var _a;\n                const options = instance.opts();\n                const pluginId = options.pluginId;\n                const pluginInstances = getPluginInstances(plugins);\n                let targetConfig;\n                if (pluginId) {\n                    try {\n                        const pluginConfig = getPluginConfig(plugins, pluginId);\n                        targetConfig = (_a = pluginConfig.config) !== null && _a !== void 0 ? _a : {};\n                    }\n                    catch {\n                        console.error(chalk_1.default.red(`OpenAPI docs plugin ID '${pluginId}' not found.`));\n                        return;\n                    }\n                }\n                else {\n                    if (pluginInstances.length > 1) {\n                        console.error(chalk_1.default.red(\"OpenAPI docs plugin ID must be specified when more than one plugin instance exists.\"));\n                        return;\n                    }\n                    targetConfig = config;\n                }\n                if (id === \"all\") {\n                    if (targetConfig[id]) {\n                        console.error(chalk_1.default.red(\"Can't use id 'all' for OpenAPI docs configuration key.\"));\n                    }\n                    else {\n                        Object.keys(targetConfig).forEach(async function (key) {\n                            await cleanApiDocs(targetConfig[key]);\n                        });\n                    }\n                }\n                else {\n                    await cleanApiDocs(targetConfig[id]);\n                }\n            });\n            cli\n                .command(`clean-api-docs:version`)\n                .description(`Clears the versioned, generated OpenAPI docs MDX files, versions.json and sidebar.js (if enabled).`)\n                .usage(\"<id:version>\")\n                .arguments(\"<id:version>\")\n                .option(\"-p, --plugin-id <plugin>\", \"OpenAPI docs plugin ID.\")\n                .action(async (id, instance) => {\n                var _a;\n                const options = instance.opts();\n                const pluginId = options.pluginId;\n                const pluginInstances = getPluginInstances(plugins);\n                let targetConfig;\n                if (pluginId) {\n                    try {\n                        const pluginConfig = getPluginConfig(plugins, pluginId);\n                        targetConfig = (_a = pluginConfig.config) !== null && _a !== void 0 ? _a : {};\n                    }\n                    catch {\n                        console.error(chalk_1.default.red(`OpenAPI docs plugin ID '${pluginId}' not found.`));\n                        return;\n                    }\n                }\n                else {\n                    if (pluginInstances.length > 1) {\n                        console.error(chalk_1.default.red(\"OpenAPI docs plugin ID must be specified when more than one plugin instance exists.\"));\n                        return;\n                    }\n                    targetConfig = config;\n                }\n                const [parentId, versionId] = id.split(\":\");\n                const { versions } = targetConfig[parentId];\n                const parentConfig = Object.assign({}, targetConfig[parentId]);\n                delete parentConfig.versions;\n                if (versionId === \"all\") {\n                    if (versions[id]) {\n                        chalk_1.default.red(\"Can't use id 'all' for OpenAPI docs versions configuration key.\");\n                    }\n                    else {\n                        await cleanVersions(parentConfig.outputDir);\n                        Object.keys(versions).forEach(async (key) => {\n                            const versionConfig = versions[key];\n                            const mergedConfig = {\n                                ...parentConfig,\n                                ...versionConfig,\n                            };\n                            await cleanApiDocs(mergedConfig);\n                        });\n                    }\n                }\n                else {\n                    const versionConfig = versions[versionId];\n                    const mergedConfig = {\n                        ...parentConfig,\n                        ...versionConfig,\n                    };\n                    await cleanApiDocs(mergedConfig);\n                }\n            });\n        },\n    };\n}\nexports.default = pluginOpenAPIDocs;\npluginOpenAPIDocs.validateOptions = ({ options, validate }) => {\n    const validatedOptions = validate(options_1.OptionsSchema, options);\n    return validatedOptions;\n};\n"]}