Security update for Core, with self-updated composer
[yaffs-website] / node_modules / uncss / node_modules / postcss / lib / input.js
1 'use strict';
2
3 exports.__esModule = true;
4
5 var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
6
7 var _cssSyntaxError = require('./css-syntax-error');
8
9 var _cssSyntaxError2 = _interopRequireDefault(_cssSyntaxError);
10
11 var _previousMap = require('./previous-map');
12
13 var _previousMap2 = _interopRequireDefault(_previousMap);
14
15 var _path = require('path');
16
17 var _path2 = _interopRequireDefault(_path);
18
19 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22
23 var sequence = 0;
24
25 var Input = function () {
26     function Input(css) {
27         var opts = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
28
29         _classCallCheck(this, Input);
30
31         this.css = css.toString();
32
33         if (this.css[0] === '' || this.css[0] === '￾') {
34             this.css = this.css.slice(1);
35         }
36
37         if (opts.from) this.file = _path2.default.resolve(opts.from);
38
39         var map = new _previousMap2.default(this.css, opts);
40         if (map.text) {
41             this.map = map;
42             var file = map.consumer().file;
43             if (!this.file && file) this.file = this.mapResolve(file);
44         }
45
46         if (!this.file) {
47             sequence += 1;
48             this.id = '<input css ' + sequence + '>';
49         }
50         if (this.map) this.map.file = this.from;
51     }
52
53     Input.prototype.error = function error(message, line, column) {
54         var opts = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];
55
56         var result = void 0;
57         var origin = this.origin(line, column);
58         if (origin) {
59             result = new _cssSyntaxError2.default(message, origin.line, origin.column, origin.source, origin.file, opts.plugin);
60         } else {
61             result = new _cssSyntaxError2.default(message, line, column, this.css, this.file, opts.plugin);
62         }
63
64         result.input = { line: line, column: column, source: this.css };
65         if (this.file) result.input.file = this.file;
66
67         return result;
68     };
69
70     Input.prototype.origin = function origin(line, column) {
71         if (!this.map) return false;
72         var consumer = this.map.consumer();
73
74         var from = consumer.originalPositionFor({ line: line, column: column });
75         if (!from.source) return false;
76
77         var result = {
78             file: this.mapResolve(from.source),
79             line: from.line,
80             column: from.column
81         };
82
83         var source = consumer.sourceContentFor(from.source);
84         if (source) result.source = source;
85
86         return result;
87     };
88
89     Input.prototype.mapResolve = function mapResolve(file) {
90         return _path2.default.resolve(this.map.consumer().sourceRoot || '.', file);
91     };
92
93     _createClass(Input, [{
94         key: 'from',
95         get: function get() {
96             return this.file || this.id;
97         }
98     }]);
99
100     return Input;
101 }();
102
103 exports.default = Input;
104 module.exports = exports['default'];