'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var CompilerDOM = require('@vue/compiler-dom'); var sourceMap = require('source-map'); var path = require('path'); var compilerCore = require('@vue/compiler-core'); var url = require('url'); var shared = require('@vue/shared'); var CompilerSSR = require('@vue/compiler-ssr'); var postcss = require('postcss'); var selectorParser = require('postcss-selector-parser'); var merge = require('merge-source-map'); var MagicString = require('magic-string'); var parser = require('@babel/parser'); var estreeWalker = require('estree-walker'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { n[k] = e[k]; }); } n['default'] = e; return Object.freeze(n); } var CompilerDOM__namespace = /*#__PURE__*/_interopNamespace(CompilerDOM); var path__default = /*#__PURE__*/_interopDefaultLegacy(path); var CompilerSSR__namespace = /*#__PURE__*/_interopNamespace(CompilerSSR); var postcss__default = /*#__PURE__*/_interopDefaultLegacy(postcss); var selectorParser__default = /*#__PURE__*/_interopDefaultLegacy(selectorParser); var merge__default = /*#__PURE__*/_interopDefaultLegacy(merge); var MagicString__default = /*#__PURE__*/_interopDefaultLegacy(MagicString); const SFC_CACHE_MAX_SIZE = 500; const sourceToSFC = new (require('lru-cache'))(SFC_CACHE_MAX_SIZE); function parse(source, { sourceMap = true, filename = 'component.vue', sourceRoot = '', pad = false, compiler = CompilerDOM__namespace } = {}) { const sourceKey = source + sourceMap + filename + sourceRoot + pad + compiler.parse; const cache = sourceToSFC.get(sourceKey); if (cache) { return cache; } const descriptor = { filename, source, template: null, script: null, scriptSetup: null, styles: [], customBlocks: [] }; const errors = []; const ast = compiler.parse(source, { // there are no components at SFC parsing level isNativeTag: () => true, // preserve all whitespaces isPreTag: () => true, getTextMode: ({ tag, props }, parent) => { // all top level elements except