.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / postcss-safe-parser / lib / safe-parser.js
1 'use strict';
2
3 exports.__esModule = true;
4
5 var _tokenize = require('postcss/lib/tokenize');
6
7 var _tokenize2 = _interopRequireDefault(_tokenize);
8
9 var _comment = require('postcss/lib/comment');
10
11 var _comment2 = _interopRequireDefault(_comment);
12
13 var _parser = require('postcss/lib/parser');
14
15 var _parser2 = _interopRequireDefault(_parser);
16
17 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
21 function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
22
23 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
24
25 var SafeParser = function (_Parser) {
26     _inherits(SafeParser, _Parser);
27
28     function SafeParser() {
29         _classCallCheck(this, SafeParser);
30
31         return _possibleConstructorReturn(this, _Parser.apply(this, arguments));
32     }
33
34     SafeParser.prototype.createTokenizer = function createTokenizer() {
35         this.tokenizer = (0, _tokenize2.default)(this.input, { ignoreErrors: true });
36     };
37
38     SafeParser.prototype.comment = function comment(token) {
39         var node = new _comment2.default();
40         this.init(node, token[2], token[3]);
41         node.source.end = { line: token[4], column: token[5] };
42
43         var text = token[1].slice(2);
44         if (text.slice(-2) === '*/') text = text.slice(0, -2);
45
46         if (/^\s*$/.test(text)) {
47             node.text = '';
48             node.raws.left = text;
49             node.raws.right = '';
50         } else {
51             var match = text.match(/^(\s*)([^]*[^\s])(\s*)$/);
52             node.text = match[2];
53             node.raws.left = match[1];
54             node.raws.right = match[3];
55         }
56     };
57
58     SafeParser.prototype.decl = function decl(tokens) {
59         if (tokens.length > 1) {
60             _Parser.prototype.decl.call(this, tokens);
61         }
62     };
63
64     SafeParser.prototype.unclosedBracket = function unclosedBracket() {};
65
66     SafeParser.prototype.unknownWord = function unknownWord(tokens) {
67         this.spaces += tokens.map(function (i) {
68             return i[1];
69         }).join('');
70     };
71
72     SafeParser.prototype.unexpectedClose = function unexpectedClose() {
73         this.current.raws.after += '}';
74     };
75
76     SafeParser.prototype.doubleColon = function doubleColon() {};
77
78     SafeParser.prototype.unnamedAtrule = function unnamedAtrule(node) {
79         node.name = '';
80     };
81
82     SafeParser.prototype.precheckMissedSemicolon = function precheckMissedSemicolon(tokens) {
83         var colon = this.colon(tokens);
84         if (colon === false) return;
85
86         var split = void 0;
87         for (split = colon - 1; split >= 0; split--) {
88             if (tokens[split][0] === 'word') break;
89         }
90         for (split -= 1; split >= 0; split--) {
91             if (tokens[split][0] !== 'space') {
92                 split += 1;
93                 break;
94             }
95         }
96         var other = tokens.splice(split, tokens.length - split);
97         this.decl(other);
98     };
99
100     SafeParser.prototype.checkMissedSemicolon = function checkMissedSemicolon() {};
101
102     SafeParser.prototype.endFile = function endFile() {
103         if (this.current.nodes && this.current.nodes.length) {
104             this.current.raws.semicolon = this.semicolon;
105         }
106         this.current.raws.after = (this.current.raws.after || '') + this.spaces;
107
108         while (this.current.parent) {
109             this.current = this.current.parent;
110             this.current.raws.after = '';
111         }
112     };
113
114     return SafeParser;
115 }(_parser2.default);
116
117 exports.default = SafeParser;
118 module.exports = exports['default'];
119 //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNhZmUtcGFyc2VyLmVzNiJdLCJuYW1lcyI6WyJTYWZlUGFyc2VyIiwiY3JlYXRlVG9rZW5pemVyIiwidG9rZW5pemVyIiwiaW5wdXQiLCJpZ25vcmVFcnJvcnMiLCJjb21tZW50IiwidG9rZW4iLCJub2RlIiwiaW5pdCIsInNvdXJjZSIsImVuZCIsImxpbmUiLCJjb2x1bW4iLCJ0ZXh0Iiwic2xpY2UiLCJ0ZXN0IiwicmF3cyIsImxlZnQiLCJyaWdodCIsIm1hdGNoIiwiZGVjbCIsInRva2VucyIsImxlbmd0aCIsInVuY2xvc2VkQnJhY2tldCIsInVua25vd25Xb3JkIiwic3BhY2VzIiwibWFwIiwiaSIsImpvaW4iLCJ1bmV4cGVjdGVkQ2xvc2UiLCJjdXJyZW50IiwiYWZ0ZXIiLCJkb3VibGVDb2xvbiIsInVubmFtZWRBdHJ1bGUiLCJuYW1lIiwicHJlY2hlY2tNaXNzZWRTZW1pY29sb24iLCJjb2xvbiIsInNwbGl0Iiwib3RoZXIiLCJzcGxpY2UiLCJjaGVja01pc3NlZFNlbWljb2xvbiIsImVuZEZpbGUiLCJub2RlcyIsInNlbWljb2xvbiIsInBhcmVudCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7O0lBRXFCQSxVOzs7Ozs7Ozs7eUJBRWpCQyxlLDhCQUFrQjtBQUNkLGFBQUtDLFNBQUwsR0FBaUIsd0JBQVUsS0FBS0MsS0FBZixFQUFzQixFQUFFQyxjQUFjLElBQWhCLEVBQXRCLENBQWpCO0FBQ0gsSzs7eUJBRURDLE8sb0JBQVFDLEssRUFBTztBQUNYLFlBQUlDLE9BQU8sdUJBQVg7QUFDQSxhQUFLQyxJQUFMLENBQVVELElBQVYsRUFBZ0JELE1BQU0sQ0FBTixDQUFoQixFQUEwQkEsTUFBTSxDQUFOLENBQTFCO0FBQ0FDLGFBQUtFLE1BQUwsQ0FBWUMsR0FBWixHQUFrQixFQUFFQyxNQUFNTCxNQUFNLENBQU4sQ0FBUixFQUFrQk0sUUFBUU4sTUFBTSxDQUFOLENBQTFCLEVBQWxCOztBQUVBLFlBQUlP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QkFBS2QsT0FBTCxHQUFlLEtBQUtBLE9BQUwsQ0FBYWMsTUFBNUI7QUFDQSxpQkFBS2QsT0FBTCxDQUFhZCxJQUFiLENBQWtCZSxLQUFsQixHQUEwQixFQUExQjtBQUNIO0FBQ0osSzs7Ozs7a0JBOUVnQi9CLFUiLCJmaWxlIjoic2FmZS1wYXJzZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdG9rZW5pemVyIGZyb20gJ3Bvc3Rjc3MvbGliL3Rva2VuaXplJztcbmltcG9ydCBDb21tZW50ICAgZnJvbSAncG9zdGNzcy9saWIvY29tbWVudCc7XG5pbXBvcnQgUGFyc2VyICAgIGZyb20gJ3Bvc3Rjc3MvbGliL3BhcnNlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNhZmVQYXJzZXIgZXh0ZW5kcyBQYXJzZXIge1xuXG4gICAgY3JlYXRlVG9rZW5pemVyKCkge1xuICAgICAgICB0aGlzLnRva2VuaXplciA9IHRva2VuaXplcih0aGlzLmlucHV0LCB7IGlnbm9yZUVycm9yczogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBjb21tZW50KHRva2VuKSB7XG4gICAgICAgIGxldCBub2RlID0gbmV3IENvbW1lbnQoKTtcbiAgICAgICAgdGhpcy5pbml0KG5vZGUsIHRva2VuWzJdLCB0b2tlblszXSk7XG4gICAgICAgIG5vZGUuc291cmNlLmVuZCA9IHsgbGluZTogdG9rZW5bNF0sIGNvbHVtbjogdG9rZW5bNV0gfTtcblxuICAgICAgICBsZXQgdGV4dCA9IHRva2VuWzFdLnNsaWNlKDIpO1xuICAgICAgICBpZiAoIHRleHQuc2xpY2UoLTIpID09PSAnKi8nICkgdGV4dCA9IHRleHQuc2xpY2UoMCwgLTIpO1xuXG4gICAgICAgIGlmICggL15cXHMqJC8udGVzdCh0ZXh0KSApIHtcbiAgICAgICAgICAgIG5vZGUudGV4dCAgICAgICA9ICcnO1xuICAgICAgICAgICAgbm9kZS5yYXdzLmxlZnQgID0gdGV4dDtcbiAgICAgICAgICAgIG5vZGUucmF3cy5yaWdodCA9ICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IG1hdGNoID0gdGV4dC5tYXRjaCgvXihcXHMqKShbXl0qW15cXHNdKShcXHMqKSQvKTtcbiAgICAgICAgICAgIG5vZGUudGV4dCAgICAgICA9IG1hdGNoWzJdO1xuICAgICAgICAgICAgbm9kZS5yYXdzLmxlZnQgID0gbWF0Y2hbMV07XG4gICAgICAgICAgICBub2RlLnJhd3MucmlnaHQgPSBtYXRjaFszXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlY2wodG9rZW5zKSB7XG4gICAgICAgIGlmICggdG9rZW5zLmxlbmd0aCA+IDEgKSB7XG4gICAgICAgICAgICBzdXBlci5kZWNsKHRva2Vucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmNsb3NlZEJyYWNrZXQoKSB7IH1cblxuICAgIHVua25vd25Xb3JkKHRva2Vucykge1xuICAgICAgICB0aGlzLnNwYWNlcyArPSB0b2tlbnMubWFwKGkgPT4gaVsxXSkuam9pbignJyk7XG4gICAgfVxuXG4gICAgdW5leHBlY3RlZENsb3NlKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnQucmF3cy5hZnRlciArPSAnfSc7XG4gICAgfVxuXG4gICAgZG91YmxlQ29sb24oKSB7IH1cblxuICAgIHVubmFtZWRBdHJ1bGUobm9kZSkge1xuICAgICAgICBub2RlLm5hbWUgPSAnJztcbiAgICB9XG5cbiAgICBwcmVjaGVja01pc3NlZFNlbWljb2xvbih0b2tlbnMpIHtcbiAgICAgICAgbGV0IGNvbG9uID0gdGhpcy5jb2xvbih0b2tlbnMpO1xuICAgICAgICBpZiAoIGNvbG9uID09PSBmYWxzZSApIHJldHVybjtcblxuICAgICAgICBsZXQgc3BsaXQ7XG4gICAgICAgIGZvciAoIHNwbGl0ID0gY29sb24gLSAxOyBzcGxpdCA+PSAwOyBzcGxpdC0tICkge1xuICAgICAgICAgICAgaWYgKCB0b2tlbnNbc3BsaXRdWzBdID09PSAnd29yZCcgKSBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBmb3IgKCBzcGxpdCAtPSAxOyBzcGxpdCA+PSAwOyBzcGxpdC0tICkge1xuICAgICAgICAgICAgaWYgKCB0b2tlbnNbc3BsaXRdWzBdICE9PSAnc3BhY2UnICkge1xuICAgICAgICAgICAgICAgIHNwbGl0ICs9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG90aGVyID0gdG9rZW5zLnNwbGljZShzcGxpdCwgdG9rZW5zLmxlbmd0aCAtIHNwbGl0KTtcbiAgICAgICAgdGhpcy5kZWNsKG90aGVyKTtcbiAgICB9XG5cbiAgICBjaGVja01pc3NlZFNlbWljb2xvbigpIHsgfVxuXG4gICAgZW5kRmlsZSgpIHtcbiAgICAgICAgaWYgKCB0aGlzLmN1cnJlbnQubm9kZXMgJiYgdGhpcy5jdXJyZW50Lm5vZGVzLmxlbmd0aCApIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudC5yYXdzLnNlbWljb2xvbiA9IHRoaXMuc2VtaWNvbG9uO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudC5yYXdzLmFmdGVyID0gKHRoaXMuY3VycmVudC5yYXdzLmFmdGVyIHx8ICcnKSArIHRoaXMuc3BhY2VzO1xuXG4gICAgICAgIHdoaWxlICggdGhpcy5jdXJyZW50LnBhcmVudCApIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudCA9IHRoaXMuY3VycmVudC5wYXJlbnQ7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnQucmF3cy5hZnRlciA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=