: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
if (typeof line !== 'undefined' && typeof column !== 'undefined') {
if (typeof line === 'number') {
this.column = line.column
this.endLine = column.line
this.endColumn = column.column
if (Error.captureStackTrace) {
Error.captureStackTrace(this, CssSyntaxError)
this.message = this.plugin ? this.plugin + ': ' : ''
this.message += this.file ? this.file : '<css input>'
if (typeof this.line !== 'undefined') {
this.message += ':' + this.line + ':' + this.column
this.message += ': ' + this.reason
if (!this.source) return ''
if (color == null) color = pico.isColorSupported
if (color) css = terminalHighlight(css)
let lines = css.split(/\r?\n/)
let start = Math.max(this.line - 3, 0)
let end = Math.min(this.line + 2, lines.length)
let maxWidth = String(end).length
let { bold, gray, red } = pico.createColors(true)
mark = text => bold(red(text))
aside = text => gray(text)
mark = aside = str => str
let number = start + 1 + index
let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '
if (number === this.line) {
aside(gutter.replace(/\d/g, ' ')) +
line.slice(0, this.column - 1).replace(/[^\t]/g, ' ')
return mark('>') + aside(gutter) + line + '\n ' + spacing + mark('^')
return ' ' + aside(gutter) + line
let code = this.showSourceCode()
code = '\n\n' + code + '\n'
return this.name + ': ' + this.message + code
module.exports = CssSyntaxError
CssSyntaxError.default = CssSyntaxError
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
let Node = __webpack_require__(7490)
class Declaration extends Node {
typeof defaults.value !== 'undefined' &&
typeof defaults.value !== 'string'
defaults = { ...defaults, value: String(defaults.value) }
return this.prop.startsWith('--') || this.prop[0] === '$'
module.exports = Declaration
Declaration.default = Declaration
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
let Container = __webpack_require__(683)
let LazyResult, Processor
class Document extends Container {
// type needs to be passed to super, otherwise child roots won't be normalized correctly
super({ type: 'document', ...defaults })
let lazy = new LazyResult(new Processor(), this, opts)
Document.registerLazyResult = dependant => {
Document.registerProcessor = dependant => {
module.exports = Document
Document.default = Document
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
let Declaration = __webpack_require__(1516)
let PreviousMap = __webpack_require__(5696)
let Comment = __webpack_require__(6589)
let AtRule = __webpack_require__(1326)
let Input = __webpack_require__(5380)
let Root = __webpack_require__(9434)
let Rule = __webpack_require__(4092)
function fromJSON(json, inputs) {
if (Array.isArray(json)) return json.map(n => fromJSON(n))
let { inputs: ownInputs, ...defaults } = json
for (let input of ownInputs) {
let inputHydrated = { ...input, __proto__: Input.prototype }
__proto__: PreviousMap.prototype
inputs.push(inputHydrated)
defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))
let { inputId, ...source } = defaults.source
defaults.source.input = inputs[inputId]
if (defaults.type === 'root') {
return new Root(defaults)
} else if (defaults.type === 'decl') {
return new Declaration(defaults)
} else if (defaults.type === 'rule') {
return new Rule(defaults)
} else if (defaults.type === 'comment') {
return new Comment(defaults)
} else if (defaults.type === 'atrule') {
return new AtRule(defaults)
throw new Error('Unknown node type: ' + json.type)
module.exports = fromJSON
fromJSON.default = fromJSON
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
let { SourceMapConsumer, SourceMapGenerator } = __webpack_require__(1866)
let { fileURLToPath, pathToFileURL } = __webpack_require__(2739)
let { isAbsolute, resolve } = __webpack_require__(197)
let { nanoid } = __webpack_require__(5042)
let terminalHighlight = __webpack_require__(9746)
let CssSyntaxError = __webpack_require__(356)
let PreviousMap = __webpack_require__(5696)
let fromOffsetCache = Symbol('fromOffsetCache')
let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)
let pathAvailable = Boolean(resolve && isAbsolute)
constructor(css, opts = {}) {
typeof css === 'undefined' ||
(typeof css === 'object' && !css.toString)
throw new Error(`PostCSS received ${css} instead of CSS string`)
this.css = css.toString()
if (this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE') {
this.css = this.css.slice(1)
/^\w+:\/\//.test(opts.from) ||
this.file = resolve(opts.from)
if (pathAvailable && sourceMapAvailable) {
let map = new PreviousMap(this.css, opts)
let file = map.consumer().file
if (!this.file && file) this.file = this.mapResolve(file)
this.id = '<input css ' + nanoid(6) + '>'
if (this.map) this.map.file = this.from
error(message, line, column, opts = {}) {
let result, endLine, endColumn
if (line && typeof line === 'object') {
if (typeof start.offset === 'number') {
let pos = this.fromOffset(start.offset)
if (typeof end.offset === 'number') {
let pos = this.fromOffset(end.offset)
let pos = this.fromOffset(line)
let origin = this.origin(line, column, endLine, endColumn)
result = new CssSyntaxError(
origin.endLine === undefined
: { column: origin.column, line: origin.line },
origin.endLine === undefined
: { column: origin.endColumn, line: origin.endLine },
result = new CssSyntaxError(
endLine === undefined ? line : { column, line },
endLine === undefined ? column : { column: endColumn, line: endLine },
result.input = { column, endColumn, endLine, line, source: this.css }
result.input.url = pathToFileURL(this.file).toString()
result.input.file = this.file
let lastLine, lineToIndex
if (!this[fromOffsetCache]) {
let lines = this.css.split('\n')
lineToIndex = new Array(lines.length)
for (let i = 0, l = lines.length; i < l; i++) {
lineToIndex[i] = prevIndex
prevIndex += lines[i].length + 1
this[fromOffsetCache] = lineToIndex
lineToIndex = this[fromOffsetCache]
lastLine = lineToIndex[lineToIndex.length - 1]
if (offset >= lastLine) {
min = lineToIndex.length - 1
let max = lineToIndex.length - 2
mid = min + ((max - min) >> 1)
if (offset < lineToIndex[mid]) {
} else if (offset >= lineToIndex[mid + 1]) {
col: offset - lineToIndex[min] + 1,
if (/^\w+:\/\//.test(file)) {
return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)
origin(line, column, endLine, endColumn) {
if (!this.map) return false
let consumer = this.map.consumer()
let from = consumer.originalPositionFor({ column, line })
if (!from.source) return false
if (typeof endLine === 'number') {
to = consumer.originalPositionFor({ column: endColumn, line: endLine })
if (isAbsolute(from.source)) {
fromUrl = pathToFileURL(from.source)
this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)
endColumn: to && to.column,
if (fromUrl.protocol === 'file:') {
result.file = fileURLToPath(fromUrl)
throw new Error(`file: protocol is not available in this PostCSS build`)
let source = consumer.sourceContentFor(from.source)
if (source) result.source = source
for (let name of ['hasBOM', 'css', 'file', 'id']) {
if (this[name] != null) {
json.map = { ...this.map }
if (json.map.consumerCache) {
json.map.consumerCache = undefined
return this.file || this.id
if (terminalHighlight && terminalHighlight.registerInput) {
terminalHighlight.registerInput(Input)
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
let { isClean, my } = __webpack_require__(1381)
let MapGenerator = __webpack_require__(1670)
let stringify = __webpack_require__(633)
let Container = __webpack_require__(683)
let Document = __webpack_require__(271)
let warnOnce = __webpack_require__(3122)
let Result = __webpack_require__(9055)
let parse = __webpack_require__(4295)
let Root = __webpack_require__(9434)
const TYPE_TO_CLASS_NAME = {