{"version":3,"file":"js/chunk-vendors-06593165-legacy.afcc0395.js","mappings":"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","sources":["webpack://ouvidoria/./node_modules/postcss/lib/at-rule.js","webpack://ouvidoria/./node_modules/postcss/lib/comment.js","webpack://ouvidoria/./node_modules/postcss/lib/container.js","webpack://ouvidoria/./node_modules/postcss/lib/css-syntax-error.js","webpack://ouvidoria/./node_modules/postcss/lib/declaration.js","webpack://ouvidoria/./node_modules/postcss/lib/document.js","webpack://ouvidoria/./node_modules/postcss/lib/fromJSON.js","webpack://ouvidoria/./node_modules/postcss/lib/input.js","webpack://ouvidoria/./node_modules/postcss/lib/lazy-result.js","webpack://ouvidoria/./node_modules/postcss/lib/list.js","webpack://ouvidoria/./node_modules/postcss/lib/map-generator.js","webpack://ouvidoria/./node_modules/postcss/lib/no-work-result.js","webpack://ouvidoria/./node_modules/postcss/lib/node.js","webpack://ouvidoria/./node_modules/postcss/lib/parse.js","webpack://ouvidoria/./node_modules/postcss/lib/parser.js","webpack://ouvidoria/./node_modules/postcss/lib/postcss.js","webpack://ouvidoria/./node_modules/postcss/lib/previous-map.js","webpack://ouvidoria/./node_modules/postcss/lib/processor.js","webpack://ouvidoria/./node_modules/postcss/lib/result.js","webpack://ouvidoria/./node_modules/postcss/lib/root.js","webpack://ouvidoria/./node_modules/postcss/lib/rule.js","webpack://ouvidoria/./node_modules/postcss/lib/stringifier.js","webpack://ouvidoria/./node_modules/postcss/lib/stringify.js","webpack://ouvidoria/./node_modules/postcss/lib/symbols.js","webpack://ouvidoria/./node_modules/postcss/lib/tokenize.js","webpack://ouvidoria/./node_modules/postcss/lib/warn-once.js","webpack://ouvidoria/./node_modules/postcss/lib/warning.js"],"sourcesContent":["'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Node = require('./node')\nlet { isClean, my } = require('./symbols')\n\nlet AtRule, parse, Root, Rule\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markTreeDirty(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markTreeDirty(i)\n }\n }\n}\n\nclass Container extends Node {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(\n add,\n this.proxyOf.nodes[existIndex],\n type\n ).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (typeof nodes === 'undefined') {\n nodes = []\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector || nodes.selectors) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markTreeDirty(i)\n\n if (!i.raws) i.raws = {}\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : ''\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n\n let aside = text => text\n let mark = text => text\n let highlight = text => text\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n if (terminalHighlight) {\n highlight = text => terminalHighlight(text)\n }\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n let maxWidth = String(end).length\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n if (line.length > 160) {\n let padding = 20\n let subLineStart = Math.max(0, this.column - padding)\n let subLineEnd = Math.max(\n this.column + padding,\n this.endColumn + padding\n )\n let subLine = line.slice(subLineStart, subLineEnd)\n\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line\n .slice(0, Math.min(this.column - 1, padding - 1))\n .replace(/[^\\t]/g, ' ')\n\n return (\n mark('>') +\n aside(gutter) +\n highlight(subLine) +\n '\\n ' +\n spacing +\n mark('^')\n )\n }\n\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n\n return (\n mark('>') +\n aside(gutter) +\n highlight(line) +\n '\\n ' +\n spacing +\n mark('^')\n )\n }\n\n return ' ' + aside(gutter) + highlight(line)\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Input = require('./input')\nlet PreviousMap = require('./previous-map')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { nanoid } = require('nanoid/non-secure')\nlet { isAbsolute, resolve } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\nlet terminalHighlight = require('./terminal-highlight')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = ''\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let endColumn, endLine, result\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, line, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n }\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n\n get from() {\n return this.file || this.id\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet Container = require('./container')\nlet Document = require('./document')\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nlet Result = require('./result')\nlet Root = require('./root')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\nlet warnOnce = require('./warn-once')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet { dirname, relative, resolve, sep } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.originalCSS = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = null\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.startsWith('# sourceMappingURL=')) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n })\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : ''\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n\n let line = 1\n let column = 1\n\n let noSource = ''\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let last, lines\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n path(file) {\n if (this.mapOpts.absolute) return file\n if (file.charCodeAt(0) === 60 /* `<` */) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n let cached = this.memoizedPaths.get(file)\n if (cached) return cached\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.originalCSS, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : ''\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nconst Result = require('./result')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n } else {\n map.clearAnnotation()\n this.result.css = map.css\n }\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n /* c8 ignore next 3 */\n markClean() {\n this[isClean] = true\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation)\n } else if (opts.word) {\n stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index, stringRepresentation)\n }\n return pos\n }\n\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n }\n let end = this.source.end\n ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n }\n : {\n column: start.column + 1,\n line: start.line\n }\n\n if (opts.word) {\n let stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation)\n end = this.positionInside(\n index + opts.word.length,\n stringRepresentation\n )\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n }\n } else if (typeof opts.endIndex === 'number') {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { column: start.column + 1, line: start.line }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Container = require('./container')\nlet Input = require('./input')\nlet Parser = require('./parser')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet tokenizer = require('./tokenize')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.source.end.offset++\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n node.source.end.offset++\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n\n colon(tokens) {\n let brackets = 0\n let prev, token, type\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().startsWith('!') && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().startsWith('!')) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current.source.end.offset++\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.root.source.end = this.getPosition(this.tokenizer.position())\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n column: pos.col,\n line: pos.line,\n offset\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n // Errors\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Container = require('./container')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet Document = require('./document')\nlet fromJSON = require('./fromJSON')\nlet Input = require('./input')\nlet LazyResult = require('./lazy-result')\nlet list = require('./list')\nlet Node = require('./node')\nlet parse = require('./parse')\nlet Processor = require('./processor')\nlet Result = require('./result.js')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet stringify = require('./stringify')\nlet Warning = require('./warning')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","'use strict'\n\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n let uriMatch = text.match(charsetUri) || text.match(uri)\n if (uriMatch) {\n return decodeURIComponent(text.substr(uriMatch[0].length))\n }\n\n let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri)\n if (baseUriMatch) {\n return fromBase64(text.substr(baseUriMatch[0].length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet Document = require('./document')\nlet LazyResult = require('./lazy-result')\nlet NoWorkResult = require('./no-work-result')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.47'\n this.plugins = this.normalize(plugins)\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n\n process(css, opts = {}) {\n if (\n !this.plugins.length &&\n !opts.parser &&\n !opts.stringifier &&\n !opts.syntax\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nconst DEFAULT_RAW = {\n after: '\\n',\n beforeClose: '\\n',\n beforeComment: '\\n',\n beforeDecl: '\\n',\n beforeOpen: ' ',\n beforeRule: '\\n',\n colon: ': ',\n commentLeft: ' ',\n commentRight: ' ',\n emptyBody: '',\n indent: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, content, escape, next, quote\n let currentToken, escaped, escapePos, n, prev\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n"],"names":["Container","AtRule","constructor","defaults","super","this","type","append","children","proxyOf","nodes","prepend","module","exports","default","registerAtRule","Node","Comment","parse","Root","Rule","Declaration","isClean","my","cleanSource","map","i","source","markTreeDirty","node","child","normalize","last","push","markDirty","cleanRaws","keepBetween","each","callback","index","result","iterator","getIterator","indexes","length","every","condition","lastEach","getProxyProcessor","get","prop","startsWith","args","toProxy","cb","other","root","set","value","indexOf","insertAfter","exist","add","existIndex","reverse","splice","id","insertBefore","sample","Array","isArray","slice","parent","removeChild","Error","String","selector","selectors","name","text","processed","rebuild","raws","before","replace","first","unshift","removeAll","undefined","replaceValues","pattern","opts","walkDecls","decl","props","includes","fast","some","walk","e","addToError","walkAtRules","RegExp","test","walkComments","walkRules","registerParse","dependant","registerRule","registerRoot","Object","setPrototypeOf","prototype","forEach","pico","terminalHighlight","CssSyntaxError","message","line","column","file","plugin","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","isColorSupported","aside","mark","highlight","bold","gray","red","createColors","lines","split","start","Math","max","end","min","maxWidth","number","gutter","padding","subLineStart","subLineEnd","subLine","spacing","join","toString","code","variable","LazyResult","Processor","Document","toResult","lazy","stringify","registerLazyResult","registerProcessor","Input","PreviousMap","fromJSON","json","inputs","n","ownInputs","input","inputHydrated","__proto__","inputId","nanoid","isAbsolute","resolve","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","fromOffsetCache","Symbol","sourceMapAvailable","Boolean","pathAvailable","hasBOM","from","consumer","mapResolve","error","offset","pos","fromOffset","col","origin","url","lastLine","lineToIndex","prevIndex","l","mid","sourceRoot","to","fromUrl","originalPositionFor","URL","mapFile","protocol","sourceContentFor","toJSON","consumerCache","registerInput","MapGenerator","Result","TYPE_TO_CLASS_NAME","atrule","comment","document","rule","PLUGIN_PROPS","AtRuleExit","CommentExit","DeclarationExit","DocumentExit","Once","OnceExit","postcssPlugin","prepare","RootExit","RuleExit","NOT_VISITORS","CHILDREN","isPromise","obj","then","getEvents","key","toLowerCase","toStack","events","eventIndex","visitorIndex","visitors","cleanMarks","postcss","processor","stringified","inline","prev","parser","syntax","helpers","plugins","async","Promise","reject","processing","runAsync","onRejected","catch","onFinally","getAsyncError","handleError","lastPlugin","postcssVersion","err","console","prepareVisitors","listeners","event","version","filter","hasListener","keys","promise","runOnRoot","stack","visitTick","visitor","roots","subRoot","all","sync","str","stringifier","data","generate","walkSync","visitSync","onFulfilled","visit","pop","warnings","content","messages","toStringTag","registerPostcss","list","comma","string","space","spaces","separators","array","current","func","inQuote","prevQuote","escape","letter","trim","dirname","relative","sep","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","Map","memoizedPaths","memoizedURLs","addAnnotation","isInline","toBase64","annotation","outputFile","eol","applyPrevMaps","previous","toUrl","path","sourcesContent","applySourceMap","clearAnnotation","isMap","generateMap","generateString","fromSourceMap","ignoreInvalidMapping","addMapping","generated","original","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","match","lastIndexOf","p","childless","semicolon","withContent","charCodeAt","cached","previousMaps","already","toFileUrl","setSourceContent","Buffer","window","btoa","unescape","encodeURIComponent","fileURL","encodeURI","NoWorkResult","_processor","_css","_opts","_map","self","defineProperty","generatedCSS","generatedMap","_root","Stringifier","cloneNode","cloned","hasOwnProperty","call","j","clone","postcssNode","s","after","assign","overrides","between","cloneAfter","cloneBefore","rangeBy","markClean","next","positionBy","stringRepresentation","positionInside","word","endIndex","raw","defaultType","remove","replaceWith","bookmark","foundSelf","_","fixed","emitInputs","inputsNextIndex","proxyCache","Proxy","warn","Parser","tokenizer","SAFE_COMMENT_NEIGHBOR","empty","findLastWithPosition","tokens","token","createTokenizer","shift","unnamedAtrule","init","open","params","brackets","endOfFile","nextToken","getPosition","spacesAndCommentsFromEnd","afterName","spacesAndCommentsFromStart","checkMissedSemicolon","colon","founded","element","entries","doubleColon","left","right","customProperty","unknownWord","firstSpaces","precheckMissedSemicolon","important","stringFrom","spacesFromEnd","cache","hasWord","concat","emptyRule","unexpectedClose","endFile","unclosedBlock","position","freeSemicolon","ownSemicolon","bracket","back","unclosedBracket","clean","reduce","lastTokenType","Warning","initializer","warningPrinted","creator","LANG","transformer","process","processOpts","pluginOpts","atRule","existsSync","readFileSync","fromBase64","atob","loadAnnotation","startWith","loadMap","decodeInline","baseCharsetUri","baseUri","charsetUri","uri","uriMatch","decodeURIComponent","substr","baseUriMatch","encoding","getAnnotationURL","sourceMapString","mappings","_mappings","sections","comments","substring","loadFile","JSON","prevPath","normalized","use","warning","ignore","values","DEFAULT_RAW","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","commentLeft","commentRight","emptyBody","indent","capitalize","toUpperCase","builder","rawValue","block","beforeAfter","detect","buf","depth","step","body","own","rawCache","method","rawBeforeClose","rawBeforeComment","rawBeforeDecl","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","parts","rawSemicolon","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","options","quote","currentToken","escaped","escapePos","valueOf","ignoreErrors","buffer","returned","unclosed","what","ignoreUnclosed","controlChar","fromCharCode","lastIndex","charAt","printed","range","opt"],"sourceRoot":""}