{"version":3,"file":"js/vendor.e624142af828810890db.bundle.js","mappings":"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","sources":["webpack:///../node_modules/postcss/lib/at-rule.js","webpack:///../node_modules/postcss/lib/comment.js","webpack:///../node_modules/postcss/lib/container.js","webpack:///../node_modules/postcss/lib/css-syntax-error.js","webpack:///../node_modules/postcss/lib/declaration.js","webpack:///../node_modules/postcss/lib/document.js","webpack:///../node_modules/postcss/lib/fromJSON.js","webpack:///../node_modules/postcss/lib/input.js","webpack:///../node_modules/postcss/lib/lazy-result.js","webpack:///../node_modules/postcss/lib/list.js","webpack:///../node_modules/postcss/lib/map-generator.js","webpack:///../node_modules/postcss/lib/node.js","webpack:///../node_modules/postcss/lib/parse.js","webpack:///../node_modules/postcss/lib/parser.js","webpack:///../node_modules/postcss/lib/postcss.js","webpack:///../node_modules/postcss/lib/previous-map.js","webpack:///../node_modules/postcss/lib/processor.js","webpack:///../node_modules/postcss/lib/result.js","webpack:///../node_modules/postcss/lib/root.js","webpack:///../node_modules/postcss/lib/rule.js","webpack:///../node_modules/postcss/lib/stringifier.js","webpack:///../node_modules/postcss/lib/stringify.js","webpack:///../node_modules/postcss/lib/symbols.js","webpack:///../node_modules/postcss/lib/tokenize.js","webpack:///../node_modules/postcss/lib/warn-once.js","webpack:///../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\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 push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\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 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 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 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 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 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 cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n insertBefore(exist, add) {\n exist = this.index(exist)\n\n let type = exist === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[exist], type).reverse()\n for (let node of nodes) this.proxyOf.nodes.splice(exist, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (exist <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertAfter(exist, add) {\n exist = this.index(exist)\n\n let nodes = this.normalize(add, this.proxyOf.nodes[exist]).reverse()\n for (let node of nodes) this.proxyOf.nodes.splice(exist + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (exist < index) {\n this.indexes[id] = index + nodes.length\n }\n }\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 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 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 every(condition) {\n return this.nodes.every(condition)\n }\n\n some(condition) {\n return this.nodes.some(condition)\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 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 normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).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 // istanbul 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\n return i\n })\n\n return processed\n }\n\n getProxyProcessor() {\n return {\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 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 }\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\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n// istanbul ignore next\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 }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\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 this.line = line\n this.column = column\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : ''\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n 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, red, gray } = 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 { resolve, isAbsolute } = 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 = ''\n }\n if (this.map) this.map.file = this.from\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 line: min + 1,\n col: offset - lineToIndex[min] + 1\n }\n }\n\n error(message, line, column, opts = {}) {\n let result\n if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n let origin = this.origin(line, column)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.line,\n origin.column,\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n line,\n column,\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { line, column, 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 origin(line, column) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ line, column })\n if (!from.source) return false\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 url: fromUrl.toString(),\n line: from.line,\n column: from.column\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n // istanbul ignore next\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 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 get from() {\n return this.file || this.id\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\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 document: 'Document',\n root: 'Root',\n atrule: 'AtRule',\n rule: 'Rule',\n decl: 'Declaration',\n comment: 'Comment'\n}\n\nconst PLUGIN_PROPS = {\n postcssPlugin: true,\n prepare: true,\n Once: true,\n Document: true,\n Root: true,\n Declaration: true,\n Rule: true,\n AtRule: true,\n Comment: true,\n DeclarationExit: true,\n RuleExit: true,\n AtRuleExit: true,\n CommentExit: true,\n RootExit: true,\n DocumentExit: true,\n OnceExit: true\n}\n\nconst NOT_VISITORS = {\n postcssPlugin: true,\n prepare: true,\n Once: 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 node,\n events,\n eventIndex: 0,\n visitors: [],\n visitorIndex: 0,\n iterator: 0\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 // istanbul ignore next\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, result: this.result, postcss }\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 get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.stringify().css\n }\n\n get content() {\n return this.stringify().content\n }\n\n get map() {\n return this.stringify().map\n }\n\n get root() {\n return this.sync().root\n }\n\n get messages() {\n return this.sync().messages\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n toString() {\n return this.css\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 catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\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 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 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 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 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 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 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 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 // istanbul ignore next\n if (console && console.error) console.error(err)\n }\n return error\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 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 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\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 split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let quote = false\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 (quote) {\n if (letter === quote) {\n quote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n quote = 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 space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n comma(string) {\n return list.split(string, [','], true)\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, resolve, relative, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\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 previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\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 }\n\n return this.previousMaps\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 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 clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\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 }\n\n setSourcesContent() {\n let already = {}\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 this.map.setSourceContent(\n this.toUrl(this.path(from)),\n node.source.input.css\n )\n }\n }\n })\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 = map.sourcesContent.map(() => 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 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 toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n // istanbul ignore next\n return window.btoa(unescape(encodeURIComponent(str)))\n }\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\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n }\n if (this.opts.from) {\n return this.path(this.opts.from)\n }\n return 'to.css'\n }\n\n generateMap() {\n this.generateString()\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n }\n return [this.css, this.map]\n }\n\n path(file) {\n if (file.indexOf('<') === 0) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n if (this.mapOpts.absolute) return file\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 file = relative(from, file)\n return file\n }\n\n toUrl(path) {\n if (sep === '\\\\') {\n // istanbul ignore next\n path = path.replace(/\\\\/g, '/')\n }\n return encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.mapOpts.absolute) {\n if (pathToFileURL) {\n return pathToFileURL(node.source.input.from).toString()\n } else {\n // istanbul ignore next\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n\n let line = 1\n let column = 1\n\n let noSource = ''\n let mapping = {\n source: '',\n generated: { line: 0, column: 0 },\n original: { line: 0, column: 0 }\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 if (node.type !== 'decl' || 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 generate() {\n this.clearAnnotation()\n\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n }\n\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n}\n\nmodule.exports = MapGenerator\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 // istanbul ignore next\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 error(message, opts = {}) {\n if (this.source) {\n let pos = this.positionBy(opts)\n return this.source.input.error(message, pos.line, pos.column, opts)\n }\n return new CssSyntaxError(message)\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 remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\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 assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\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 cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\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 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 next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\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 before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\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 raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\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 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 // istanbul ignore next\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 inputId,\n start: value.start,\n end: value.end\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 positionInside(index) {\n let string = 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 { line, column }\n }\n\n positionBy(opts) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index)\n } else if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index)\n }\n return pos\n }\n\n getProxyProcessor() {\n return {\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 prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n },\n\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 }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\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 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 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\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 this.customProperty = false\n\n this.createTokenizer()\n this.root.source = { input, start: { offset: 0, line: 1, column: 1 } }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\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 comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\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 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 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 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 this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\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 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 node.source.end = this.getPosition(last[3] || last[2])\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 let firstSpaces = this.spacesAndCommentsFromStart(tokens)\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 this.raw(node, 'value', tokens)\n if (hasWord) {\n node.raws.between += firstSpaces\n } else {\n node.value = firstSpaces + node.value\n }\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\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 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 }\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 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 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 = 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 }\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 offset,\n line: pos.line,\n column: pos.col\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n start: this.getPosition(offset),\n input: this.input\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n raw(node, prop, tokens) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n let pattern = /^([#.|])?(\\w)+/i\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n\n if (type === 'comment' && node.type === 'rule') {\n prev = tokens[i - 1]\n next = tokens[i + 1]\n\n if (\n prev[0] !== 'space' &&\n next[0] !== 'space' &&\n pattern.test(prev[1]) &&\n pattern.test(next[1])\n ) {\n value += token[1]\n } else {\n clean = false\n }\n\n continue\n }\n\n if (type === 'comment' || (type === 'space' && i === length - 1)) {\n clean = false\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] = { value, raw }\n }\n node[prop] = value\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 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 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 // Errors\n\n unclosedBracket(bracket) {\n throw this.input.error('Unclosed bracket', bracket[2])\n }\n\n unknownWord(tokens) {\n throw this.input.error('Unknown word', tokens[0][2])\n }\n\n unexpectedClose(token) {\n throw this.input.error('Unexpected }', token[2])\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 doubleColon(token) {\n throw this.input.error('Double colon', token[2])\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error('At-rule without name', token[2])\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\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\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 if (console && console.warn) {\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 // istanbul ignore next\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n function creator(...args) {\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.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 // istanbul ignore next\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 withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\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 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 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 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\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.3.11'\n this.plugins = this.normalize(plugins)\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n\n process(css, opts = {}) {\n if (\n this.plugins.length === 0 &&\n typeof opts.parser === 'undefined' &&\n typeof opts.stringifier === 'undefined' &&\n typeof opts.syntax === 'undefined' &&\n !opts.hideNothingWarning\n ) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(\n 'You did not set any plugins, parser, or stringifier. ' +\n 'Right now, PostCSS does nothing. Pick plugins for your case ' +\n 'on https://www.postcss.parts/ and use them in postcss.config.js.'\n )\n }\n }\n }\n return new LazyResult(this, css, opts)\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\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 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 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 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","'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 colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' ',\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 stringify(node, semicolon) {\n /* istanbul ignore if */\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 this[node.type](node, semicolon)\n }\n\n document(node) {\n this.body(node)\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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\nmodule.exports = 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 = /.[\\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 nextToken,\n endOfFile,\n position\n }\n}\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 pos = opts.node.positionBy(opts)\n this.line = pos.line\n this.column = pos.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 plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n"],"names":["Container","AtRule","constructor","defaults","super","this","type","append","children","proxyOf","nodes","prepend","module","exports","default","registerAtRule","Node","Comment","parse","Rule","isClean","my","Declaration","cleanSource","map","i","source","markDirtyUp","node","push","child","parent","each","callback","index","result","iterator","getIterator","indexes","length","walk","e","addToError","walkDecls","prop","RegExp","test","walkRules","selector","walkAtRules","name","walkComments","normalize","last","markDirty","reverse","first","unshift","id","cleanRaws","keepBetween","insertBefore","exist","add","splice","insertAfter","removeChild","undefined","removeAll","replaceValues","pattern","opts","decl","props","includes","fast","value","replace","every","condition","some","indexOf","sample","Array","isArray","slice","Error","String","text","rebuild","raws","before","getProxyProcessor","set","get","startsWith","args","toProxy","cb","other","root","lastEach","registerParse","dependant","registerRule","Object","setPrototypeOf","prototype","forEach","pico","terminalHighlight","CssSyntaxError","message","line","column","file","plugin","reason","setMessage","captureStackTrace","showSourceCode","color","css","isColorSupported","mark","aside","lines","split","start","Math","max","end","min","maxWidth","bold","red","gray","createColors","str","number","gutter","spacing","join","toString","code","variable","LazyResult","Processor","Document","toResult","stringify","registerLazyResult","registerProcessor","PreviousMap","Input","Root","fromJSON","json","inputs","n","ownInputs","input","inputHydrated","__proto__","inputId","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","resolve","isAbsolute","nanoid","fromOffsetCache","Symbol","sourceMapAvailable","Boolean","pathAvailable","hasBOM","from","consumer","mapResolve","fromOffset","offset","lastLine","lineToIndex","prevIndex","l","mid","col","error","pos","origin","url","fromUrl","originalPositionFor","URL","sourceRoot","mapFile","protocol","sourceContentFor","toJSON","consumerCache","registerInput","MapGenerator","Result","TYPE_TO_CLASS_NAME","document","atrule","rule","comment","PLUGIN_PROPS","postcssPlugin","prepare","Once","DeclarationExit","RuleExit","AtRuleExit","CommentExit","RootExit","DocumentExit","OnceExit","NOT_VISITORS","isPromise","obj","then","getEvents","key","toLowerCase","toStack","events","eventIndex","visitors","visitorIndex","cleanMarks","postcss","processor","stringified","processed","inline","prev","parser","syntax","helpers","plugins","toStringTag","content","sync","messages","warnings","onFulfilled","onRejected","async","catch","finally","onFinally","Promise","reject","processing","runAsync","getAsyncError","runOnRoot","prepareVisitors","hasListener","walkSync","listeners","subRoot","visitSync","stringifier","data","generate","event","visitor","promise","lastPlugin","handleError","roots","all","postcssVersion","err","console","stack","visitTick","version","filter","keys","visit","pop","registerPostcss","list","string","separators","array","current","func","quote","escape","letter","trim","space","comma","dirname","relative","sep","mapOpts","isMap","previous","previousMaps","isInline","annotation","isSourcesContent","sourcesContent","withContent","clearAnnotation","setSourcesContent","already","setSourceContent","toUrl","path","applyPrevMaps","applySourceMap","isAnnotation","toBase64","Buffer","window","btoa","unescape","encodeURIComponent","addAnnotation","to","outputFile","eol","generateMap","generateString","absolute","encodeURI","sourcePath","noSource","mapping","generated","original","addMapping","match","lastIndexOf","p","semicolon","Stringifier","cloneNode","cloned","hasOwnProperty","call","j","clone","positionBy","warn","remove","assign","overrides","cloneBefore","cloneAfter","replaceWith","bookmark","foundSelf","next","after","raw","defaultType","between","_","fixed","emitInputs","Map","inputsNextIndex","positionInside","word","proxyCache","Proxy","postcssNode","s","Parser","tokenizer","spaces","customProperty","createTokenizer","token","endOfFile","nextToken","freeSemicolon","emptyRule","endFile","init","getPosition","left","right","colon","bracket","brackets","tokens","back","unclosedBracket","unknownWord","spacesAndCommentsFromEnd","shift","firstSpaces","spacesAndCommentsFromStart","precheckMissedSemicolon","important","stringFrom","spacesFromEnd","cache","hasWord","checkMissedSemicolon","unnamedAtrule","open","params","afterName","unexpectedClose","unclosedBlock","ownSemicolon","clean","reduce","lastTokenType","element","entries","doubleColon","founded","Warning","initializer","creator","transformer","process","env","LANG","defineProperty","processOpts","pluginOpts","atRule","existsSync","readFileSync","loadAnnotation","startWith","loadMap","substr","getAnnotationURL","sourceMapString","comments","substring","decodeInline","decodeURIComponent","lastMatch","atob","encoding","loadFile","fromSourceMap","JSON","prevPath","mappings","_mappings","sections","use","concat","hideNothingWarning","normalized","warning","ignore","selectors","values","DEFAULT_RAW","indent","beforeDecl","beforeRule","beforeOpen","beforeClose","beforeComment","emptyBody","commentLeft","commentRight","builder","body","rawValue","block","own","detect","rawCache","beforeAfter","method","toUpperCase","rawSemicolon","rawEmptyBody","rawIndent","parts","rawBeforeComment","rawBeforeDecl","rawBeforeRule","rawBeforeClose","rawBeforeOpen","rawColon","buf","depth","step","SINGLE_QUOTE","charCodeAt","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","options","escaped","escapePos","currentToken","valueOf","ignoreErrors","buffer","returned","unclosed","what","ignoreUnclosed","controlChar","fromCharCode","lastIndex","charAt","position","printed","opt"],"sourceRoot":""}