{"version":3,"file":"static/npm.postcss.21c6947d.js","mappings":"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","sources":["../node_modules/postcss/lib/at-rule.js","../node_modules/postcss/lib/comment.js","../node_modules/postcss/lib/container.js","../node_modules/postcss/lib/css-syntax-error.js","../node_modules/postcss/lib/declaration.js","../node_modules/postcss/lib/document.js","../node_modules/postcss/lib/fromJSON.js","../node_modules/postcss/lib/input.js","../node_modules/postcss/lib/lazy-result.js","../node_modules/postcss/lib/list.js","../node_modules/postcss/lib/map-generator.js","../node_modules/postcss/lib/no-work-result.js","../node_modules/postcss/lib/node.js","../node_modules/postcss/lib/parse.js","../node_modules/postcss/lib/parser.js","../node_modules/postcss/lib/postcss.js","../node_modules/postcss/lib/previous-map.js","../node_modules/postcss/lib/processor.js","../node_modules/postcss/lib/result.js","../node_modules/postcss/lib/root.js","../node_modules/postcss/lib/rule.js","../node_modules/postcss/lib/stringifier.js","../node_modules/postcss/lib/stringify.js","../node_modules/postcss/lib/symbols.js","../node_modules/postcss/lib/tokenize.js","../node_modules/postcss/lib/warn-once.js","../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 { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\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 markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(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(add, this.proxyOf.nodes[existIndex], type).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) {\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]) markDirtyUp(i)\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 : '<css input>'\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 if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\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\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\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 let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + 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 Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\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 { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { isAbsolute, resolve } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\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 = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\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 { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\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 { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, relative, resolve, sep } = require('path')\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.indexOf('# sourceMappingURL=') === 0) {\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 : '<no source>'\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 = '<no source>'\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let lines, last\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 : '<no source>'\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 stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\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 { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\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 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(index + opts.word.length, stringRepresentation)\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 Parser = require('./parser')\nlet Input = require('./input')\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 Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\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 token, type, prev\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().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\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 CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\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 { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\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 if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.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=/gm)\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 NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.38'\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, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\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","require","AtRule","constructor","defaults","super","this","type","append","proxyOf","nodes","arguments","prepend","module","exports","default","registerAtRule","Node","Comment","parse","Rule","Root","isClean","my","Declaration","cleanSource","map","i","source","markDirtyUp","node","_len","length","children","Array","_key","child","normalize","last","push","markDirty","cleanRaws","keepBetween","each","callback","index","result","iterator","getIterator","indexes","every","condition","lastEach","getProxyProcessor","get","prop","startsWith","_len2","args","_key2","toProxy","cb","_len3","other","_key3","root","set","value","indexOf","insertAfter","exist","add","existIndex","reverse","splice","id","insertBefore","sample","isArray","slice","parent","removeChild","Error","String","selector","name","text","rebuild","raws","before","replace","_len4","_key4","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","mark","aside","lines","split","start","Math","max","end","min","maxWidth","bold","gray","red","createColors","str","number","gutter","spacing","join","toString","code","variable","LazyResult","Processor","Document","toResult","stringify","registerLazyResult","registerProcessor","PreviousMap","Input","fromJSON","json","inputs","n","ownInputs","input","inputHydrated","__proto__","inputId","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","isAbsolute","resolve","nanoid","fromOffsetCache","Symbol","sourceMapAvailable","Boolean","pathAvailable","concat","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","processed","inline","prev","parser","syntax","helpers","plugins","async","Promise","reject","processing","runAsync","catch","onRejected","finally","onFinally","getAsyncError","handleError","lastPlugin","postcssVersion","err","console","prepareVisitors","listeners","event","version","filter","hasListener","keys","promise","runOnRoot","stack","visitTick","visitor","roots","subRoot","all","sync","stringifier","data","generate","walkSync","visitSync","onFulfilled","visit","pop","warnings","content","messages","toStringTag","registerPostcss","list","comma","string","space","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","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","next","positionBy","stringRepresentation","positionInside","word","endIndex","raw","defaultType","remove","replaceWith","bookmark","foundSelf","_","fixed","emitInputs","inputsNextIndex","proxyCache","Proxy","warn","Parser","tokenizer","SAFE_COMMENT_NEIGHBOR","empty","spaces","createTokenizer","token","shift","unnamedAtrule","init","open","params","brackets","endOfFile","nextToken","getPosition","spacesAndCommentsFromEnd","afterName","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","colon","founded","element","entries","doubleColon","left","right","customProperty","findLastWithPosition","unknownWord","firstSpaces","precheckMissedSemicolon","important","stringFrom","spacesFromEnd","cache","emptyRule","unexpectedClose","endFile","unclosedBlock","position","freeSemicolon","ownSemicolon","bracket","back","unclosedBracket","clean","reduce","lastTokenType","Warning","initializer","warningPrinted","creator","process","LANG","transformer","processOpts","pluginOpts","atRule","existsSync","readFileSync","loadAnnotation","startWith","loadMap","decodeInline","decodeURIComponent","substr","lastMatch","atob","encoding","getAnnotationURL","sourceMapString","mappings","_mappings","sections","comments","substring","loadFile","JSON","prevPath","normalized","use","warning","ignore","selectors","values","DEFAULT_RAW","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","commentLeft","commentRight","emptyBody","indent","builder","rawValue","block","beforeAfter","detect","buf","depth","step","body","own","rawCache","method","toUpperCase","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","quote","escaped","escapePos","currentToken","options","valueOf","ignoreErrors","buffer","returned","unclosed","what","ignoreUnclosed","controlChar","fromCharCode","lastIndex","charAt","printed","range","opt"],"sourceRoot":""}