"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray")); const Asset = require('../Asset'); const postcss = require('postcss'); const valueParser = require('postcss-value-parser'); const postcssTransform = require('../transforms/postcss'); const CssSyntaxError = require('postcss/lib/css-syntax-error'); const SourceMap = require('../SourceMap'); const loadSourceMap = require('../utils/loadSourceMap'); const path = require('path'); const urlJoin = require('../utils/urlJoin'); const isURL = require('../utils/is-url'); const URL_RE = /url\s*\("?(?![a-z]+:)/; const IMPORT_RE = /@import/; const COMPOSES_RE = /composes:.+from\s*("|').*("|')\s*;?/; const FROM_IMPORT_RE = /.+from\s*(?:"|')(.*)(?:"|')\s*;?/; const PROTOCOL_RE = /^[a-z]+:/; class CSSAsset extends Asset { constructor(name, options) { super(name, options); this.type = 'css'; this.previousSourceMap = this.options.rendition ? this.options.rendition.map : null; } mightHaveDependencies() { return !/\.css$/.test(this.name) || IMPORT_RE.test(this.contents) || COMPOSES_RE.test(this.contents) || URL_RE.test(this.contents); } parse(code) { let root = postcss.parse(code, { from: this.name }); return new CSSAst(code, root); } collectDependencies() { this.ast.root.walkAtRules('import', rule => { let params = valueParser(rule.params); let _params$nodes = (0, _toArray2.default)(params.nodes), name = _params$nodes[0], media = _params$nodes.slice(1); let dep; if (name.type === 'function' && name.value === 'url' && name.nodes.length) { name = name.nodes[0]; } dep = name.value; if (!dep) { throw new Error('Could not find import name for ' + rule); } if (PROTOCOL_RE.test(dep)) { return; } // If this came from an inline