/
eb
/
Surf
Обзор
Документация
Войти
/
eb
/
Surf
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/postcss/lib/map-generator.js
354 строки
30 KB
EvgeniyBudaev
Initial commit
17 фев 2020, 09:02
17 фев 2020, 09:02
bb6f06f
Код
Авторство
О чём код?
"use strict"; exports.__esModule = true; exports.default = void 0; var _sourceMap = _interopRequireDefault(require("source-map")); var _path = _interopRequireDefault(require("path")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var MapGenerator = /*#__PURE__*/ function () { function MapGenerator(stringify, root, opts) { this.stringify = stringify; this.mapOpts = opts.map || {}; this.root = root; this.opts = opts; } var _proto = MapGenerator.prototype; _proto.isMap = function isMap() { if (typeof this.opts.map !== 'undefined') { return !!this.opts.map; } return this.previous().length > 0; }; _proto.previous = function previous() { var _this = this; if (!this.previousMaps) { this.previousMaps = []; this.root.walk(function (node) { if (node.source && node.source.input.map) { var map = node.source.input.map; if (_this.previousMaps.indexOf(map) === -1) { _this.previousMaps.push(map); } } }); } return this.previousMaps; }; _proto.isInline = function isInline() { if (typeof this.mapOpts.inline !== 'undefined') { return this.mapOpts.inline; } var annotation = this.mapOpts.annotation; if (typeof annotation !== 'undefined' && annotation !== true) { return false; } if (this.previous().length) { return this.previous().some(function (i) { return i.inline; }); } return true; }; _proto.isSourcesContent = function isSourcesContent() { if (typeof this.mapOpts.sourcesContent !== 'undefined') { return this.mapOpts.sourcesContent; } if (this.previous().length) { return this.previous().some(function (i) { return i.withContent(); }); } return true; }; _proto.clearAnnotation = function clearAnnotation() { if (this.mapOpts.annotation === false) return; var node; for (var i = this.root.nodes.length - 1; i >= 0; i--) { node = this.root.nodes[i]; if (node.type !== 'comment') continue; if (node.text.indexOf('# sourceMappingURL=') === 0) { this.root.removeChild(i); } } }; _proto.setSourcesContent = function setSourcesContent() { var _this2 = this; var already = {}; this.root.walk(function (node) { if (node.source) { var from = node.source.input.from; if (from && !already[from]) { already[from] = true; var relative = _this2.relative(from); _this2.map.setSourceContent(relative, node.source.input.css); } } }); }; _proto.applyPrevMaps = function applyPrevMaps() { for (var _iterator = this.previous(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; if (_isArray) { if (_i >= _iterator.length) break; _ref = _iterator[_i++]; } else { _i = _iterator.next(); if (_i.done) break; _ref = _i.value; } var prev = _ref; var from = this.relative(prev.file); var root = prev.root || _path.default.dirname(prev.file); var map = void 0; if (this.mapOpts.sourcesContent === false) { map = new _sourceMap.default.SourceMapConsumer(prev.text); if (map.sourcesContent) { map.sourcesContent = map.sourcesContent.map(function () { return null; }); } } else { map = prev.consumer(); } this.map.applySourceMap(map, from, this.relative(root)); } }; _proto.isAnnotation = function isAnnotation() { if (this.isInline()) { return true; } if (typeof this.mapOpts.annotation !== 'undefined') { return this.mapOpts.annotation; } if (this.previous().length) { return this.previous().some(function (i) { return i.annotation; }); } return true; }; _proto.toBase64 = function toBase64(str) { if (Buffer) { return Buffer.from(str).toString('base64'); } return window.btoa(unescape(encodeURIComponent(str))); }; _proto.addAnnotation = function addAnnotation() { var content; if (this.isInline()) { content = 'data:application/json;base64,' + this.toBase64(this.map.toString()); } else if (typeof this.mapOpts.annotation === 'string') { content = this.mapOpts.annotation; } else { content = this.outputFile() + '.map'; } var eol = '\n'; if (this.css.indexOf('\r\n') !== -1) eol = '\r\n'; this.css += eol + '/*# sourceMappingURL=' + content + ' */'; }; _proto.outputFile = function outputFile() { if (this.opts.to) { return this.relative(this.opts.to); } if (this.opts.from) { return this.relative(this.opts.from); } return 'to.css'; }; _proto.generateMap = function generateMap() { this.generateString(); if (this.isSourcesContent()) this.setSourcesContent(); if (this.previous().length > 0) this.applyPrevMaps(); if (this.isAnnotation()) this.addAnnotation(); if (this.isInline()) { return [this.css]; } return [this.css, this.map]; }; _proto.relative = function relative(file) { if (file.indexOf('<') === 0) return file; if (/^\w+:\/\//.test(file)) return file; var from = this.opts.to ? _path.default.dirname(this.opts.to) : '.'; if (typeof this.mapOpts.annotation === 'string') { from = _path.default.dirname(_path.default.resolve(from, this.mapOpts.annotation)); } file = _path.default.relative(from, file); if (_path.default.sep === '\\') { return file.replace(/\\/g, '/'); } return file; }; _proto.sourcePath = function sourcePath(node) { if (this.mapOpts.from) { return this.mapOpts.from; } return this.relative(node.source.input.from); }; _proto.generateString = function generateString() { var _this3 = this; this.css = ''; this.map = new _sourceMap.default.SourceMapGenerator({ file: this.outputFile() }); var line = 1; var column = 1; var lines, last; this.stringify(this.root, function (str, node, type) { _this3.css += str; if (node && type !== 'end') { if (node.source && node.source.start) { _this3.map.addMapping({ source: _this3.sourcePath(node), generated: { line: line, column: column - 1 }, original: { line: node.source.start.line, column: node.source.start.column - 1 } }); } else { _this3.map.addMapping({ source: '<no source>', original: { line: 1, column: 0 }, generated: { line: line, column: column - 1 } }); } } lines = str.match(/\n/g); if (lines) { line += lines.length; last = str.lastIndexOf('\n'); column = str.length - last; } else { column += str.length; } if (node && type !== 'start') { var p = node.parent || { raws: {} }; if (node.type !== 'decl' || node !== p.last || p.raws.semicolon) { if (node.source && node.source.end) { _this3.map.addMapping({ source: _this3.sourcePath(node), generated: { line: line, column: column - 2 }, original: { line: node.source.end.line, column: node.source.end.column - 1 } }); } else { _this3.map.addMapping({ source: '<no source>', original: { line: 1, column: 0 }, generated: { line: line, column: column - 1 } }); } } } }); }; _proto.generate = function generate() { this.clearAnnotation(); if (this.isMap()) { return this.generateMap(); } var result = ''; this.stringify(this.root, function (i) { result += i; }); return [result]; }; return MapGenerator; }(); var _default = MapGenerator; exports.default = _default; module.exports = exports.default; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1hcC1nZW5lcmF0b3IuZXM2Il0sIm5hbWVzIjpbIk1hcEdlbmVyYXRvciIsInN0cmluZ2lmeSIsInJvb3QiLCJvcHRzIiwibWFwT3B0c … [Строка слишком длинная. Вы можете скачать файл]