{"version":3,"sources":["jsdelivr-header.js","/npm/wikilint@2.33.0/dist/index.js"],"names":[],"mappings":"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","file":"/npm/wikilint@2.33.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/wikilint@2.33.0/dist/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\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\n/* eslint n/exports-style: 0 */\nconst base_1 = require(\"./base\");\nconst debug_1 = require(\"./util/debug\");\nconst constants_1 = require(\"./util/constants\");\nconst string_1 = require(\"./util/string\");\nconst lintConfig_1 = require(\"./lib/lintConfig\");\nconst title_1 = require(\"./lib/title\");\n/* NOT FOR BROWSER ONLY */\nconst fs_1 = __importDefault(require(\"fs\"));\nconst path_1 = __importDefault(require(\"path\"));\nconst common_1 = require(\"@bhsd/common\");\nconst diff_1 = require(\"./util/diff\");\n/* NOT FOR BROWSER ONLY */\nconst re = new RegExp(String.raw `^https?:\\/\\/([^./]+)\\.(${common_1.wmf})\\.org`, 'iu');\n/**\n * 从根路径require\n * @param file 文件名\n * @param dir 子路径\n */\nconst rootRequire = (file, dir) => require(path_1.default.isAbsolute(file)\n    ? /* istanbul ignore next */ file\n    : path_1.default.join('..', file.includes('/') ? '' : dir, file));\n/* NOT FOR BROWSER ONLY END */\nlet viewOnly = true;\nlet lintConfig = (() => {\n    LINT: return new lintConfig_1.LintConfiguration();\n})(), i18n;\n/**\n * 判断参数顺序\n * @param includeOrPage include or page\n * @param configOrInclude config or include\n * @param pageOrConfig page or config\n */\nconst getParams = (includeOrPage, configOrInclude, pageOrConfig) => typeof includeOrPage === 'string'\n    ? [Boolean(configOrInclude), pageOrConfig, includeOrPage]\n    : [Boolean(includeOrPage), configOrInclude, pageOrConfig];\nconst Parser = {\n    config: 'default',\n    /** @implements */\n    get rules() {\n        LINT: return base_1.rules;\n    },\n    /** @implements */\n    get i18n() {\n        LINT: return { ...constants_1.enMsg, ...i18n };\n    },\n    set i18n(data) {\n        /* NOT FOR BROWSER ONLY */\n        if (typeof data === 'string') {\n            i18n = rootRequire(data, 'i18n');\n        }\n        else {\n            /* NOT FOR BROWSER ONLY END */\n            LINT: i18n = data;\n        }\n    },\n    /** @implements */\n    get lintConfig() {\n        LINT: return lintConfig;\n    },\n    set lintConfig(config) {\n        LINT: lintConfig = new lintConfig_1.LintConfiguration(config);\n    },\n    /** @implements */\n    get viewOnly() {\n        return viewOnly;\n    },\n    set viewOnly(value) {\n        if (viewOnly && !value) {\n            debug_1.Shadow.rev++;\n        }\n        viewOnly = value;\n    },\n    /* NOT FOR BROWSER ONLY */\n    configPaths: [],\n    /* NOT FOR BROWSER ONLY END */\n    /** @implements */\n    getConfig(config) {\n        /* NOT FOR BROWSER ONLY */\n        if (!config && typeof this.config === 'string') {\n            if (!path_1.default.isAbsolute(this.config)) {\n                for (const p of this.configPaths) {\n                    try {\n                        this.config = require(path_1.default.resolve(process.cwd(), p, this.config));\n                        break;\n                    }\n                    catch { }\n                }\n            }\n            if (typeof this.config === 'string') {\n                this.config = rootRequire(this.config, 'config');\n            }\n            /* istanbul ignore if */\n            if (this.config.doubleUnderscore.length < 3 || !('functionHook' in this.config)) {\n                (0, diff_1.error)(`The schema (${path_1.default.join(__dirname, '..', 'config', '.schema.json')}) of parser configuration is updated.`);\n            }\n            return this.getConfig();\n        }\n        /* NOT FOR BROWSER ONLY END */\n        const parserConfig = config ?? this.config, { doubleUnderscore, ext, parserFunction, variable, } = parserConfig;\n        for (let i = 0; i < 2; i++) {\n            if (doubleUnderscore.length > i + 2 && doubleUnderscore[i].length === 0) {\n                doubleUnderscore[i] = Object.keys(doubleUnderscore[i + 2]);\n            }\n        }\n        if (ext.includes('translate') && !variable.includes('translationlanguage')) {\n            variable.push('translationlanguage');\n            parserFunction[1]['TRANSLATIONLANGUAGE'] = 'translationlanguage';\n        }\n        return {\n            ...parserConfig,\n            excludes: [],\n        };\n    },\n    /** @implements */\n    msg(msg, arg = '') {\n        LINT: return msg\n            && (this.i18n[msg] ?? msg).replace('$1', this.msg(arg));\n    },\n    /** @implements */\n    normalizeTitle(title, defaultNs = 0, include, config = Parser.getConfig(), opt) {\n        let titleObj;\n        if (opt?.halfParsed) {\n            titleObj = new title_1.Title(title, defaultNs, config, opt);\n        }\n        else {\n            const { Token } = require('./src/index');\n            titleObj = debug_1.Shadow.run(() => {\n                const root = new Token(title, config);\n                root.type = 'root';\n                root.pageName = opt?.page;\n                root.parseOnce(0, include).parseOnce();\n                const t = new title_1.Title(root.firstChild.toString(), defaultNs, config, opt);\n                root.build();\n                for (const key of ['main', 'fragment']) {\n                    const str = t[key];\n                    if (str?.includes('\\0')) {\n                        const s = root.buildFromStr(str, constants_1.BuildMethod.Text);\n                        if (key === 'main') {\n                            t.main = s;\n                        }\n                        else {\n                            t.setFragment(s);\n                        }\n                    }\n                }\n                return t;\n            }, this);\n        }\n        return titleObj;\n    },\n    /** @implements */\n    parse(wikitext, includeOrPage, maxStageOrInclude, configOrStage, pageOrConfig) {\n        wikitext = (0, string_1.tidy)(wikitext);\n        let include, maxStage, config, page;\n        if (typeof includeOrPage === 'string') {\n            include = Boolean(maxStageOrInclude);\n            maxStage = configOrStage;\n            config = pageOrConfig;\n            page = includeOrPage;\n        }\n        else {\n            include = Boolean(includeOrPage);\n            maxStage = maxStageOrInclude;\n            config = configOrStage;\n            page = pageOrConfig;\n        }\n        maxStage ??= constants_1.MAX_STAGE;\n        config ??= this.getConfig();\n        let types;\n        LINT: {\n            if (typeof maxStage !== 'number') {\n                types = Array.isArray(maxStage) ? maxStage : [maxStage];\n                maxStage = Math.max(...types.map(t => base_1.stages[t] || constants_1.MAX_STAGE));\n            }\n        }\n        const { Token } = require('./src/index');\n        const root = debug_1.Shadow.run(() => {\n            const token = new Token(wikitext, config);\n            token.type = 'root';\n            token.pageName = page;\n            try {\n                return token.parse(maxStage, include);\n                /* NOT FOR BROWSER ONLY */\n            }\n            catch (e) /* istanbul ignore next */ {\n                if (e instanceof Error) {\n                    const file = path_1.default.join(__dirname, '..', 'errors', new Date().toISOString()), stage = token.getAttribute('stage');\n                    for (const k of Object.keys(config)) {\n                        if (k.startsWith('regex') || config[k] instanceof Set) {\n                            delete config[k];\n                        }\n                    }\n                    fs_1.default.writeFileSync(file, stage === constants_1.MAX_STAGE ? wikitext : token.toString());\n                    fs_1.default.writeFileSync(`${file}.err`, e.stack);\n                    fs_1.default.writeFileSync(`${file}.json`, JSON.stringify({ stage, include, config, page }, null, '\\t'));\n                }\n                throw e;\n            }\n            /* NOT FOR BROWSER ONLY END */\n        });\n        return root;\n    },\n    /** @implements */\n    parseWithRef(wikitext, ref, maxStage, include = ref.getAttribute('include')) {\n        return this.parse(wikitext, include, maxStage, ref.getAttribute('config'), ref.pageName);\n    },\n    /** @implements */\n    createLanguageService(uri = {}) {\n        LSP: {\n            const { LanguageService, tasks } = require('./lib/lsp');\n            return tasks.get(uri) ?? new LanguageService(uri);\n        }\n    },\n    /** @implements */\n    lint(wikitext, includeOrPage, configOrInclude, pageOrConfig) {\n        LINT: {\n            const [include, config, page] = getParams(includeOrPage, configOrInclude, pageOrConfig);\n            return debug_1.Shadow.internal(() => this.parse(wikitext, include, undefined, config, page).lint(), this);\n        }\n    },\n    /* NOT FOR BROWSER ONLY */\n    /** @implements */\n    getWMFSite(url) {\n        const mt = re.exec(url);\n        /* istanbul ignore if */\n        if (!mt) {\n            throw new RangeError('Not a recognizable WMF site!');\n        }\n        const type = mt[2].toLowerCase();\n        return [mt[1].toLowerCase() + (type === 'wikipedia' ? 'wiki' : type), mt[0]];\n    },\n    /* istanbul ignore next */\n    /** @implements */\n    async fetchConfig(site, url, user) {\n        const { default: fetchConfig } = require('./bin/config');\n        return this.getConfig(await fetchConfig(site, url, user, false, true));\n    },\n};\nconst def = {\n    default: { value: Parser },\n}, enumerable = new Set([\n    'lintConfig',\n    'normalizeTitle',\n    'parse',\n    'createLanguageService',\n    /* NOT FOR BROWSER ONLY */\n    'fetchConfig',\n]);\nfor (const key of Object.keys(Parser)) {\n    if (!enumerable.has(key)) {\n        def[key] = { enumerable: false };\n    }\n}\nObject.defineProperties(Parser, def);\nexports.default = Parser;\nmodule.exports = Parser;\n"]}