{"version":3,"sources":["jsdelivr-header.js","/npm/joyer-cli-vue3-loader@17.4.2/dist/index.js"],"names":[],"mappings":"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","file":"/npm/joyer-cli-vue3-loader@17.4.2/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/joyer-cli-vue3-loader@17.4.2/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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VueLoaderPlugin = void 0;\nconst path = __importStar(require(\"path\"));\nconst qs = __importStar(require(\"querystring\"));\nconst hash = require(\"hash-sum\");\nconst compiler_1 = require(\"./compiler\");\nconst select_1 = require(\"./select\");\nconst hotReload_1 = require(\"./hotReload\");\nconst cssModules_1 = require(\"./cssModules\");\nconst formatError_1 = require(\"./formatError\");\nconst plugin_1 = __importDefault(require(\"./plugin\"));\nexports.VueLoaderPlugin = plugin_1.default;\nconst resolveScript_1 = require(\"./resolveScript\");\nconst descriptorCache_1 = require(\"./descriptorCache\");\nconst util_1 = require(\"./util\");\nlet errorEmitted = false;\nconst { parse } = compiler_1.compiler;\nconst exportHelperPath = require.resolve(\"./exportHelper\");\nfunction loader(source) {\n    var _a;\n    const loaderContext = this;\n    // check if plugin is installed\n    if (!errorEmitted &&\n        !loaderContext[\"thread-loader\"] &&\n        !loaderContext[plugin_1.default.NS]) {\n        loaderContext.emitError(new Error(`vue-loader was used without the corresponding plugin. ` +\n            `Make sure to include VueLoaderPlugin in your webpack config.`));\n        errorEmitted = true;\n    }\n    const stringifyRequest = (r) => (0, util_1.stringifyRequest)(loaderContext, r);\n    const { mode, target, sourceMap, rootContext, resourcePath, resourceQuery: _resourceQuery = \"\", _compiler, } = loaderContext;\n    const isWebpack5 = (0, util_1.testWebpack5)(_compiler);\n    const rawQuery = _resourceQuery.slice(1);\n    const incomingQuery = qs.parse(rawQuery);\n    const resourceQuery = rawQuery ? `&${rawQuery}` : \"\";\n    const options = ((0, util_1.getOptions)(loaderContext) || {});\n    const enableInlineMatchResource = isWebpack5 && Boolean(options.experimentalInlineMatchResource);\n    const isServer = (_a = options.isServerBuild) !== null && _a !== void 0 ? _a : target === \"node\";\n    const isProduction = mode === \"production\" || process.env.NODE_ENV === \"production\";\n    const filename = resourcePath.replace(/\\?.*$/, \"\");\n    const { descriptor, errors } = parse(source, {\n        filename,\n        sourceMap,\n        templateParseOptions: options.compilerOptions,\n    });\n    const asCustomElement = typeof options.customElement === \"boolean\"\n        ? options.customElement\n        : (options.customElement || /\\.ce\\.vue$/).test(filename);\n    // cache descriptor\n    (0, descriptorCache_1.setDescriptor)(filename, descriptor);\n    if (errors.length) {\n        errors.forEach((err) => {\n            (0, formatError_1.formatError)(err, source, resourcePath);\n            loaderContext.emitError(err);\n        });\n        return ``;\n    }\n    // module id for scoped CSS & hot-reload\n    const rawShortFilePath = path\n        .relative(rootContext || process.cwd(), filename)\n        .replace(/^(\\.\\.[\\/\\\\])+/, \"\");\n    const shortFilePath = rawShortFilePath.replace(/\\\\/g, \"/\");\n    const id = hash(isProduction\n        ? shortFilePath + \"\\n\" + source.replace(/\\r\\n/g, \"\\n\")\n        : shortFilePath);\n    // if the query has a type field, this is a language block request\n    // e.g. foo.vue?type=template&id=xxxxx\n    // and we will return early\n    if (incomingQuery.type) {\n        return (0, select_1.selectBlock)(descriptor, id, options, loaderContext, incomingQuery, !!options.appendExtension);\n    }\n    // feature information\n    const hasScoped = descriptor.styles.some((s) => s.scoped);\n    const needsHotReload = !isServer &&\n        !isProduction &&\n        !!(descriptor.script || descriptor.scriptSetup || descriptor.template) &&\n        options.hotReload !== false;\n    // extra properties to attach to the script object\n    // we need to do this in a tree-shaking friendly manner\n    const propsToAttach = [];\n    // script\n    let scriptImport = `const script = {}`;\n    let isTS = false;\n    const { script, scriptSetup } = descriptor;\n    if (script || scriptSetup) {\n        const lang = (script === null || script === void 0 ? void 0 : script.lang) || (scriptSetup === null || scriptSetup === void 0 ? void 0 : scriptSetup.lang);\n        isTS = !!(lang && /tsx?/.test(lang));\n        const externalQuery = Boolean(script && !scriptSetup && script.src)\n            ? `&external`\n            : ``;\n        const src = (script && !scriptSetup && script.src) || resourcePath;\n        const attrsQuery = attrsToQuery((scriptSetup || script).attrs, \"js\");\n        const query = `?vue&type=script${attrsQuery}${resourceQuery}${externalQuery}`;\n        let scriptRequest;\n        if (enableInlineMatchResource) {\n            scriptRequest = stringifyRequest((0, util_1.genMatchResource)(this, src, query, lang || \"js\"));\n        }\n        else {\n            scriptRequest = stringifyRequest(src + query);\n        }\n        scriptImport =\n            `import script from ${scriptRequest}\\n` +\n                // support named exports\n                `export * from ${scriptRequest}`;\n    }\n    // template\n    let templateImport = ``;\n    let templateRequest;\n    const renderFnName = isServer ? `ssrRender` : `render`;\n    const useInlineTemplate = (0, resolveScript_1.canInlineTemplate)(descriptor, isProduction);\n    if (descriptor.template && !useInlineTemplate) {\n        const src = descriptor.template.src || resourcePath;\n        const externalQuery = Boolean(descriptor.template.src) ? `&external` : ``;\n        const idQuery = `&id=${id}`;\n        const scopedQuery = hasScoped ? `&scoped=true` : ``;\n        const attrsQuery = attrsToQuery(descriptor.template.attrs);\n        const tsQuery = options.enableTsInTemplate !== false && isTS ? `&ts=true` : ``;\n        const query = `?vue&type=template${idQuery}${scopedQuery}${tsQuery}${attrsQuery}${resourceQuery}${externalQuery}`;\n        if (enableInlineMatchResource) {\n            templateRequest = stringifyRequest((0, util_1.genMatchResource)(this, src, query, options.enableTsInTemplate !== false && isTS ? \"ts\" : \"js\"));\n        }\n        else {\n            templateRequest = stringifyRequest(src + query);\n        }\n        templateImport = `import { ${renderFnName} } from ${templateRequest}`;\n        propsToAttach.push([renderFnName, renderFnName]);\n    }\n    // styles\n    let stylesCode = ``;\n    let hasCSSModules = false;\n    const nonWhitespaceRE = /\\S+/;\n    if (descriptor.styles.length) {\n        descriptor.styles\n            .filter((style) => style.src || nonWhitespaceRE.test(style.content))\n            .forEach((style, i) => {\n            const src = style.src || resourcePath;\n            const attrsQuery = attrsToQuery(style.attrs, \"css\");\n            const lang = String(style.attrs.lang || \"css\");\n            // make sure to only pass id when necessary so that we don't inject\n            // duplicate tags when multiple components import the same css file\n            const idQuery = !style.src || style.scoped ? `&id=${id}` : ``;\n            const inlineQuery = asCustomElement ? `&inline` : ``;\n            const externalQuery = Boolean(style.src) ? `&external` : ``;\n            const query = `?vue&type=style&index=${i}${idQuery}${inlineQuery}${attrsQuery}${resourceQuery}${externalQuery}`;\n            let styleRequest;\n            if (enableInlineMatchResource) {\n                styleRequest = stringifyRequest((0, util_1.genMatchResource)(this, src, query, lang));\n            }\n            else {\n                styleRequest = stringifyRequest(src + query);\n            }\n            if (style.module) {\n                if (asCustomElement) {\n                    loaderContext.emitError(new Error(`<style module> is not supported in custom element mode.`));\n                }\n                if (!hasCSSModules) {\n                    stylesCode += `\\nconst cssModules = {}`;\n                    propsToAttach.push([`__cssModules`, `cssModules`]);\n                    hasCSSModules = true;\n                }\n                stylesCode += (0, cssModules_1.genCSSModulesCode)(id, i, styleRequest, style.module, needsHotReload);\n            }\n            else {\n                if (asCustomElement) {\n                    stylesCode += `\\nimport _style_${i} from ${styleRequest}`;\n                }\n                else {\n                    stylesCode += `\\nimport ${styleRequest}`;\n                }\n            }\n            // TODO SSR critical CSS collection\n        });\n        if (asCustomElement) {\n            propsToAttach.push([\n                `styles`,\n                `[${descriptor.styles.map((_, i) => `_style_${i}`)}]`,\n            ]);\n        }\n    }\n    let code = [templateImport, scriptImport, stylesCode]\n        .filter(Boolean)\n        .join(\"\\n\");\n    // attach scope Id for runtime use\n    if (hasScoped) {\n        propsToAttach.push([`__scopeId`, `\"data-v-${id}\"`]);\n    }\n    // Expose filename. This is used by the devtools and Vue runtime warnings.\n    if (!isProduction) {\n        // Expose the file's full path in development, so that it can be opened\n        // from the devtools.\n        propsToAttach.push([\n            `__file`,\n            JSON.stringify(rawShortFilePath.replace(/\\\\/g, \"/\")),\n        ]);\n    }\n    else if (options.exposeFilename) {\n        // Libraries can opt-in to expose their components' filenames in production builds.\n        // For security reasons, only expose the file's basename in production.\n        propsToAttach.push([`__file`, JSON.stringify(path.basename(resourcePath))]);\n    }\n    // custom blocks\n    if (descriptor.customBlocks && descriptor.customBlocks.length) {\n        code += `\\n/* custom blocks */\\n`;\n        code +=\n            descriptor.customBlocks\n                .map((block, i) => {\n                const src = block.attrs.src || resourcePath;\n                const attrsQuery = attrsToQuery(block.attrs);\n                const blockTypeQuery = `&blockType=${qs.escape(block.type)}`;\n                const issuerQuery = block.attrs.src\n                    ? `&issuerPath=${qs.escape(resourcePath)}`\n                    : \"\";\n                const externalQuery = Boolean(block.attrs.src) ? `&external` : ``;\n                const query = `?vue&type=custom&index=${i}${blockTypeQuery}${issuerQuery}${attrsQuery}${resourceQuery}${externalQuery}`;\n                let customRequest;\n                if (enableInlineMatchResource) {\n                    customRequest = stringifyRequest((0, util_1.genMatchResource)(this, src, query, block.attrs.lang));\n                }\n                else {\n                    customRequest = stringifyRequest(src + query);\n                }\n                return (`import block${i} from ${customRequest}\\n` +\n                    `if (typeof block${i} === 'function') block${i}(script)`);\n            })\n                .join(`\\n`) + `\\n`;\n    }\n    // finalize\n    if (!propsToAttach.length) {\n        code += `\\n\\nconst __exports__ = script;`;\n    }\n    else {\n        code += `\\n\\nimport exportComponent from ${stringifyRequest(exportHelperPath)}`;\n        code += `\\nconst __exports__ = /*#__PURE__*/exportComponent(script, [${propsToAttach\n            .map(([key, val]) => `['${key}',${val}]`)\n            .join(\",\")}])`;\n    }\n    if (needsHotReload) {\n        code += (0, hotReload_1.genHotReloadCode)(id, templateRequest);\n    }\n    code += `\\n\\nexport default __exports__`;\n    return code;\n}\nexports.default = loader;\n// these are built-in query parameters so should be ignored\n// if the user happen to add them as attrs\nconst ignoreList = [\"id\", \"index\", \"src\", \"type\"];\nfunction attrsToQuery(attrs, langFallback) {\n    let query = ``;\n    for (const name in attrs) {\n        const value = attrs[name];\n        if (!ignoreList.includes(name)) {\n            query += `&${qs.escape(name)}=${value ? qs.escape(String(value)) : ``}`;\n        }\n    }\n    if (langFallback && !(`lang` in attrs)) {\n        query += `&lang=${langFallback}`;\n    }\n    return query;\n}\n"]}