postcss 7.0.2 → 7.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of postcss might be problematic. Click here for more details.
- package/CHANGELOG.md +14 -1
- package/README.md +35 -0
- package/docs/architecture.md +5 -5
- package/docs/guidelines/plugin.md +10 -10
- package/docs/guidelines/runner.md +2 -2
- package/lib/at-rule.js +21 -23
- package/lib/comment.js +15 -19
- package/lib/container.js +195 -205
- package/lib/css-syntax-error.js +42 -39
- package/lib/declaration.js +15 -19
- package/lib/input.js +56 -50
- package/lib/lazy-result.js +58 -76
- package/lib/list.js +7 -8
- package/lib/map-generator.js +110 -80
- package/lib/node.js +84 -89
- package/lib/parse.js +12 -12
- package/lib/parser.js +162 -104
- package/lib/postcss.d.ts +5 -1
- package/lib/postcss.js +43 -54
- package/lib/previous-map.js +42 -46
- package/lib/processor.js +32 -30
- package/lib/result.js +29 -26
- package/lib/root.js +24 -25
- package/lib/rule.js +20 -25
- package/lib/stringifier.js +72 -53
- package/lib/stringify.js +8 -8
- package/lib/terminal-highlight.js +30 -29
- package/lib/tokenize.js +57 -73
- package/lib/vendor.js +10 -9
- package/lib/warn-once.js +4 -3
- package/lib/warning.js +24 -17
- package/package.json +9 -3
- package/README-cn.md +0 -349
- package/gulpfile.js +0 -101
@@ -1,37 +1,32 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
exports.default = void 0;
|
4
5
|
|
5
|
-
var _chalk = require(
|
6
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
6
7
|
|
7
|
-
var
|
8
|
+
var _tokenize = _interopRequireDefault(require("./tokenize"));
|
8
9
|
|
9
|
-
var
|
10
|
-
|
11
|
-
var _tokenize2 = _interopRequireDefault(_tokenize);
|
12
|
-
|
13
|
-
var _input = require('./input');
|
14
|
-
|
15
|
-
var _input2 = _interopRequireDefault(_input);
|
10
|
+
var _input = _interopRequireDefault(require("./input"));
|
16
11
|
|
17
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
18
13
|
|
19
14
|
var HIGHLIGHT_THEME = {
|
20
|
-
'brackets':
|
21
|
-
'at-word':
|
22
|
-
'comment':
|
23
|
-
'string':
|
24
|
-
'class':
|
25
|
-
'call':
|
26
|
-
'hash':
|
27
|
-
'(':
|
28
|
-
')':
|
29
|
-
'{':
|
30
|
-
'}':
|
31
|
-
'[':
|
32
|
-
']':
|
33
|
-
':':
|
34
|
-
';':
|
15
|
+
'brackets': _chalk.default.cyan,
|
16
|
+
'at-word': _chalk.default.cyan,
|
17
|
+
'comment': _chalk.default.gray,
|
18
|
+
'string': _chalk.default.green,
|
19
|
+
'class': _chalk.default.yellow,
|
20
|
+
'call': _chalk.default.cyan,
|
21
|
+
'hash': _chalk.default.magenta,
|
22
|
+
'(': _chalk.default.cyan,
|
23
|
+
')': _chalk.default.cyan,
|
24
|
+
'{': _chalk.default.yellow,
|
25
|
+
'}': _chalk.default.yellow,
|
26
|
+
'[': _chalk.default.yellow,
|
27
|
+
']': _chalk.default.yellow,
|
28
|
+
':': _chalk.default.yellow,
|
29
|
+
';': _chalk.default.yellow
|
35
30
|
};
|
36
31
|
|
37
32
|
function getTokenType(_ref, processor) {
|
@@ -42,6 +37,7 @@ function getTokenType(_ref, processor) {
|
|
42
37
|
if (value[0] === '.') {
|
43
38
|
return 'class';
|
44
39
|
}
|
40
|
+
|
45
41
|
if (value[0] === '#') {
|
46
42
|
return 'hash';
|
47
43
|
}
|
@@ -57,12 +53,15 @@ function getTokenType(_ref, processor) {
|
|
57
53
|
}
|
58
54
|
|
59
55
|
function terminalHighlight(css) {
|
60
|
-
var processor = (0,
|
56
|
+
var processor = (0, _tokenize.default)(new _input.default(css), {
|
57
|
+
ignoreErrors: true
|
58
|
+
});
|
61
59
|
var result = '';
|
62
60
|
|
63
61
|
var _loop = function _loop() {
|
64
62
|
var token = processor.nextToken();
|
65
63
|
var color = HIGHLIGHT_THEME[getTokenType(token, processor)];
|
64
|
+
|
66
65
|
if (color) {
|
67
66
|
result += token[1].split(/\r?\n/).map(function (i) {
|
68
67
|
return color(i);
|
@@ -75,9 +74,11 @@ function terminalHighlight(css) {
|
|
75
74
|
while (!processor.endOfFile()) {
|
76
75
|
_loop();
|
77
76
|
}
|
77
|
+
|
78
78
|
return result;
|
79
79
|
}
|
80
80
|
|
81
|
-
|
82
|
-
|
83
|
-
|
81
|
+
var _default = terminalHighlight;
|
82
|
+
exports.default = _default;
|
83
|
+
module.exports = exports.default;
|
84
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlcm1pbmFsLWhpZ2hsaWdodC5lczYiXSwibmFtZXMiOlsiSElHSExJR0hUX1RIRU1FIiwiY2hhbGsiLCJjeWFuIiwiZ3JheSIsImdyZWVuIiwieWVsbG93IiwibWFnZW50YSIsImdldFRva2VuVHlwZSIsInByb2Nlc3NvciIsInR5cGUiLCJ2YWx1ZSIsImVuZE9mRmlsZSIsIm5leHQiLCJuZXh0VG9rZW4iLCJiYWNrIiwidGVybWluYWxIaWdobGlnaHQiLCJjc3MiLCJJbnB1dCIsImlnbm9yZUVycm9ycyIsInJlc3VsdCIsInRva2VuIiwiY29sb3IiLCJzcGxpdCIsIm1hcCIsImkiLCJqb2luIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztBQUVBOztBQUNBOzs7O0FBRUEsSUFBTUEsZUFBZSxHQUFHO0FBQ3RCLGNBQVlDLGVBQU1DLElBREk7QUFFdEIsYUFBV0QsZUFBTUMsSUFGSztBQUd0QixhQUFXRCxlQUFNRSxJQUhLO0FBSXRCLFlBQVVGLGVBQU1HLEtBSk07QUFLdEIsV0FBU0gsZUFBTUksTUFMTztBQU10QixVQUFRSixlQUFNQyxJQU5RO0FBT3RCLFVBQVFELGVBQU1LLE9BUFE7QUFRdEIsT0FBS0wsZUFBTUMsSUFSVztBQVN0QixPQUFLRCxlQUFNQyxJQVRXO0FBVXRCLE9BQUtELGVBQU1JLE1BVlc7QUFXdEIsT0FBS0osZUFBTUksTUFYVztBQVl0QixPQUFLSixlQUFNSSxNQVpXO0FBYXRCLE9BQUtKLGVBQU1JLE1BYlc7QUFjdEIsT0FBS0osZUFBTUksTUFkVztBQWV0QixPQUFLSixlQUFNSTtBQWZXLENBQXhCOztBQWtCQSxTQUFTRSxZQUFULE9BQXNDQyxTQUF0QyxFQUFpRDtBQUFBLE1BQXpCQyxJQUF5QjtBQUFBLE1BQW5CQyxLQUFtQjs7QUFDL0MsTUFBSUQsSUFBSSxLQUFLLE1BQWIsRUFBcUI7QUFDbkIsUUFBSUMsS0FBSyxDQUFDLENBQUQsQ0FBTCxLQUFhLEdBQWpCLEVBQXNCO0FBQ3BCLGFBQU8sT0FBUDtBQUNEOztBQUNELFFBQUlBLEtBQUssQ0FBQyxDQUFELENBQUwsS0FBYSxHQUFqQixFQUFzQjtBQUNwQixhQUFPLE1BQVA7QUFDRDtBQUNGOztBQUVELE1BQUksQ0FBQ0YsU0FBUyxDQUFDRyxTQUFWLEVBQUwsRUFBNEI7QUFDMUIsUUFBSUMsSUFBSSxHQUFHSixTQUFTLENBQUNLLFNBQVYsRUFBWDtBQUNBTCxJQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUYsSUFBZjtBQUNBLFFBQUlBLElBQUksQ0FBQyxDQUFELENBQUosS0FBWSxVQUFaLElBQTBCQSxJQUFJLENBQUMsQ0FBRCxDQUFKLEtBQVksR0FBMUMsRUFBK0MsT0FBTyxNQUFQO0FBQ2hEOztBQUVELFNBQU9ILElBQVA7QUFDRDs7QUFFRCxTQUFTTSxpQkFBVCxDQUE0QkMsR0FBNUIsRUFBaUM7QUFDL0IsTUFBSVIsU0FBUyxHQUFHLHVCQUFVLElBQUlTLGNBQUosQ0FBVUQsR0FBVixDQUFWLEVBQTBCO0FBQUVFLElBQUFBLFlBQVksRUFBRTtBQUFoQixHQUExQixDQUFoQjtBQUNBLE1BQUlDLE1BQU0sR0FBRyxFQUFiOztBQUYrQjtBQUk3QixRQUFJQyxLQUFLLEdBQUdaLFNBQVMsQ0FBQ0ssU0FBVixFQUFaO0FBQ0EsUUFBSVEsS0FBSyxHQUFHckIsZUFBZSxDQUFDTyxZQUFZLENBQUNhLEtBQUQsRUFBUVosU0FBUixDQUFiLENBQTNCOztBQUNBLFFBQUlhLEtBQUosRUFBVztBQUNURixNQUFBQSxNQUFNLElBQUlDLEtBQUssQ0FBQyxDQUFELENBQUwsQ0FBU0UsS0FBVCxDQUFlLE9BQWYsRUFDUEMsR0FETyxDQUNILFVBQUFDLENBQUM7QUFBQSxlQUFJSCxLQUFLLENBQUNHLENBQUQsQ0FBVDtBQUFBLE9BREUsRUFFUEMsSUFGTyxDQUVGLElBRkUsQ0FBVjtBQUdELEtBSkQsTUFJTztBQUNMTixNQUFBQSxNQUFNLElBQUlDLEtBQUssQ0FBQyxDQUFELENBQWY7QUFDRDtBQVo0Qjs7QUFHL0IsU0FBTyxDQUFDWixTQUFTLENBQUNHLFNBQVYsRUFBUixFQUErQjtBQUFBO0FBVTlCOztBQUNELFNBQU9RLE1BQVA7QUFDRDs7ZUFFY0osaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnXG5cbmltcG9ydCB0b2tlbml6ZXIgZnJvbSAnLi90b2tlbml6ZSdcbmltcG9ydCBJbnB1dCBmcm9tICcuL2lucHV0J1xuXG5jb25zdCBISUdITElHSFRfVEhFTUUgPSB7XG4gICdicmFja2V0cyc6IGNoYWxrLmN5YW4sXG4gICdhdC13b3JkJzogY2hhbGsuY3lhbixcbiAgJ2NvbW1lbnQnOiBjaGFsay5ncmF5LFxuICAnc3RyaW5nJzogY2hhbGsuZ3JlZW4sXG4gICdjbGFzcyc6IGNoYWxrLnllbGxvdyxcbiAgJ2NhbGwnOiBjaGFsay5jeWFuLFxuICAnaGFzaCc6IGNoYWxrLm1hZ2VudGEsXG4gICcoJzogY2hhbGsuY3lhbixcbiAgJyknOiBjaGFsay5jeWFuLFxuICAneyc6IGNoYWxrLnllbGxvdyxcbiAgJ30nOiBjaGFsay55ZWxsb3csXG4gICdbJzogY2hhbGsueWVsbG93LFxuICAnXSc6IGNoYWxrLnllbGxvdyxcbiAgJzonOiBjaGFsay55ZWxsb3csXG4gICc7JzogY2hhbGsueWVsbG93XG59XG5cbmZ1bmN0aW9uIGdldFRva2VuVHlwZSAoW3R5cGUsIHZhbHVlXSwgcHJvY2Vzc29yKSB7XG4gIGlmICh0eXBlID09PSAnd29yZCcpIHtcbiAgICBpZiAodmFsdWVbMF0gPT09ICcuJykge1xuICAgICAgcmV0dXJuICdjbGFzcydcbiAgICB9XG4gICAgaWYgKHZhbHVlWzBdID09PSAnIycpIHtcbiAgICAgIHJldHVybiAnaGFzaCdcbiAgICB9XG4gIH1cblxuICBpZiAoIXByb2Nlc3Nvci5lbmRPZkZpbGUoKSkge1xuICAgIGxldCBuZXh0ID0gcHJvY2Vzc29yLm5leHRUb2tlbigpXG4gICAgcHJvY2Vzc29yLmJhY2sobmV4dClcbiAgICBpZiAobmV4dFswXSA9PT0gJ2JyYWNrZXRzJyB8fCBuZXh0WzBdID09PSAnKCcpIHJldHVybiAnY2FsbCdcbiAgfVxuXG4gIHJldHVybiB0eXBlXG59XG5cbmZ1bmN0aW9uIHRlcm1pbmFsSGlnaGxpZ2h0IChjc3MpIHtcbiAgbGV0IHByb2Nlc3NvciA9IHRva2VuaXplcihuZXcgSW5wdXQoY3NzKSwgeyBpZ25vcmVFcnJvcnM6IHRydWUgfSlcbiAgbGV0IHJlc3VsdCA9ICcnXG4gIHdoaWxlICghcHJvY2Vzc29yLmVuZE9mRmlsZSgpKSB7XG4gICAgbGV0IHRva2VuID0gcHJvY2Vzc29yLm5leHRUb2tlbigpXG4gICAgbGV0IGNvbG9yID0gSElHSExJR0hUX1RIRU1FW2dldFRva2VuVHlwZSh0b2tlbiwgcHJvY2Vzc29yKV1cbiAgICBpZiAoY29sb3IpIHtcbiAgICAgIHJlc3VsdCArPSB0b2tlblsxXS5zcGxpdCgvXFxyP1xcbi8pXG4gICAgICAgIC5tYXAoaSA9PiBjb2xvcihpKSlcbiAgICAgICAgLmpvaW4oJ1xcbicpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCArPSB0b2tlblsxXVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRlcm1pbmFsSGlnaGxpZ2h0XG4iXSwiZmlsZSI6InRlcm1pbmFsLWhpZ2hsaWdodC5qcyJ9
|
package/lib/tokenize.js
CHANGED
@@ -1,53 +1,40 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = tokenizer;
|
5
|
-
var SINGLE_QUOTE =
|
6
|
-
var DOUBLE_QUOTE =
|
7
|
-
var BACKSLASH =
|
8
|
-
var SLASH =
|
9
|
-
var NEWLINE =
|
10
|
-
var SPACE =
|
11
|
-
var FEED =
|
12
|
-
var TAB =
|
13
|
-
var CR =
|
14
|
-
var OPEN_SQUARE =
|
15
|
-
var CLOSE_SQUARE =
|
16
|
-
var OPEN_PARENTHESES =
|
17
|
-
var CLOSE_PARENTHESES =
|
18
|
-
var OPEN_CURLY =
|
19
|
-
var CLOSE_CURLY =
|
20
|
-
var SEMICOLON =
|
21
|
-
var ASTERISK =
|
22
|
-
var COLON =
|
23
|
-
var AT =
|
24
|
-
|
5
|
+
var SINGLE_QUOTE = '\''.charCodeAt(0);
|
6
|
+
var DOUBLE_QUOTE = '"'.charCodeAt(0);
|
7
|
+
var BACKSLASH = '\\'.charCodeAt(0);
|
8
|
+
var SLASH = '/'.charCodeAt(0);
|
9
|
+
var NEWLINE = '\n'.charCodeAt(0);
|
10
|
+
var SPACE = ' '.charCodeAt(0);
|
11
|
+
var FEED = '\f'.charCodeAt(0);
|
12
|
+
var TAB = '\t'.charCodeAt(0);
|
13
|
+
var CR = '\r'.charCodeAt(0);
|
14
|
+
var OPEN_SQUARE = '['.charCodeAt(0);
|
15
|
+
var CLOSE_SQUARE = ']'.charCodeAt(0);
|
16
|
+
var OPEN_PARENTHESES = '('.charCodeAt(0);
|
17
|
+
var CLOSE_PARENTHESES = ')'.charCodeAt(0);
|
18
|
+
var OPEN_CURLY = '{'.charCodeAt(0);
|
19
|
+
var CLOSE_CURLY = '}'.charCodeAt(0);
|
20
|
+
var SEMICOLON = ';'.charCodeAt(0);
|
21
|
+
var ASTERISK = '*'.charCodeAt(0);
|
22
|
+
var COLON = ':'.charCodeAt(0);
|
23
|
+
var AT = '@'.charCodeAt(0);
|
25
24
|
var RE_AT_END = /[ \n\t\r\f{}()'"\\;/[\]#]/g;
|
26
25
|
var RE_WORD_END = /[ \n\t\r\f(){}:;@!'"\\\][#]|\/(?=\*)/g;
|
27
26
|
var RE_BAD_BRACKET = /.[\\/("'\n]/;
|
28
27
|
var RE_HEX_ESCAPE = /[a-f0-9]/i;
|
29
28
|
|
30
|
-
function tokenizer(input) {
|
31
|
-
|
29
|
+
function tokenizer(input, options) {
|
30
|
+
if (options === void 0) {
|
31
|
+
options = {};
|
32
|
+
}
|
32
33
|
|
33
34
|
var css = input.css.valueOf();
|
34
35
|
var ignore = options.ignoreErrors;
|
35
|
-
|
36
|
-
var
|
37
|
-
next = void 0,
|
38
|
-
quote = void 0,
|
39
|
-
lines = void 0,
|
40
|
-
last = void 0,
|
41
|
-
content = void 0,
|
42
|
-
escape = void 0;
|
43
|
-
var nextLine = void 0,
|
44
|
-
nextOffset = void 0,
|
45
|
-
escaped = void 0,
|
46
|
-
escapePos = void 0,
|
47
|
-
prev = void 0,
|
48
|
-
n = void 0,
|
49
|
-
currentToken = void 0;
|
50
|
-
|
36
|
+
var code, next, quote, lines, last, content, escape;
|
37
|
+
var nextLine, nextOffset, escaped, escapePos, prev, n, currentToken;
|
51
38
|
var length = css.length;
|
52
39
|
var offset = -1;
|
53
40
|
var line = 1;
|
@@ -63,11 +50,12 @@ function tokenizer(input) {
|
|
63
50
|
return returned.length === 0 && pos >= length;
|
64
51
|
}
|
65
52
|
|
66
|
-
function nextToken() {
|
53
|
+
function nextToken(opts) {
|
67
54
|
if (returned.length) return returned.pop();
|
68
55
|
if (pos >= length) return;
|
69
|
-
|
56
|
+
var ignoreUnclosed = opts ? opts.ignoreUnclosed : false;
|
70
57
|
code = css.charCodeAt(pos);
|
58
|
+
|
71
59
|
if (code === NEWLINE || code === FEED || code === CR && css.charCodeAt(pos + 1) !== NEWLINE) {
|
72
60
|
offset = pos;
|
73
61
|
line += 1;
|
@@ -80,9 +68,11 @@ function tokenizer(input) {
|
|
80
68
|
case CR:
|
81
69
|
case FEED:
|
82
70
|
next = pos;
|
71
|
+
|
83
72
|
do {
|
84
73
|
next += 1;
|
85
74
|
code = css.charCodeAt(next);
|
75
|
+
|
86
76
|
if (code === NEWLINE) {
|
87
77
|
offset = next;
|
88
78
|
line += 1;
|
@@ -94,46 +84,38 @@ function tokenizer(input) {
|
|
94
84
|
break;
|
95
85
|
|
96
86
|
case OPEN_SQUARE:
|
97
|
-
currentToken = ['[', '[', line, pos - offset];
|
98
|
-
break;
|
99
|
-
|
100
87
|
case CLOSE_SQUARE:
|
101
|
-
currentToken = [']', ']', line, pos - offset];
|
102
|
-
break;
|
103
|
-
|
104
88
|
case OPEN_CURLY:
|
105
|
-
currentToken = ['{', '{', line, pos - offset];
|
106
|
-
break;
|
107
|
-
|
108
89
|
case CLOSE_CURLY:
|
109
|
-
currentToken = ['}', '}', line, pos - offset];
|
110
|
-
break;
|
111
|
-
|
112
90
|
case COLON:
|
113
|
-
currentToken = [':', ':', line, pos - offset];
|
114
|
-
break;
|
115
|
-
|
116
91
|
case SEMICOLON:
|
117
|
-
|
92
|
+
case CLOSE_PARENTHESES:
|
93
|
+
var controlChar = String.fromCharCode(code);
|
94
|
+
currentToken = [controlChar, controlChar, line, pos - offset];
|
118
95
|
break;
|
119
96
|
|
120
97
|
case OPEN_PARENTHESES:
|
121
98
|
prev = buffer.length ? buffer.pop()[1] : '';
|
122
99
|
n = css.charCodeAt(pos + 1);
|
100
|
+
|
123
101
|
if (prev === 'url' && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {
|
124
102
|
next = pos;
|
103
|
+
|
125
104
|
do {
|
126
105
|
escaped = false;
|
127
106
|
next = css.indexOf(')', next + 1);
|
107
|
+
|
128
108
|
if (next === -1) {
|
129
|
-
if (ignore) {
|
109
|
+
if (ignore || ignoreUnclosed) {
|
130
110
|
next = pos;
|
131
111
|
break;
|
132
112
|
} else {
|
133
113
|
unclosed('bracket');
|
134
114
|
}
|
135
115
|
}
|
116
|
+
|
136
117
|
escapePos = next;
|
118
|
+
|
137
119
|
while (css.charCodeAt(escapePos - 1) === BACKSLASH) {
|
138
120
|
escapePos -= 1;
|
139
121
|
escaped = !escaped;
|
@@ -141,7 +123,6 @@ function tokenizer(input) {
|
|
141
123
|
} while (escaped);
|
142
124
|
|
143
125
|
currentToken = ['brackets', css.slice(pos, next + 1), line, pos - offset, line, next - offset];
|
144
|
-
|
145
126
|
pos = next;
|
146
127
|
} else {
|
147
128
|
next = css.indexOf(')', pos + 1);
|
@@ -157,26 +138,26 @@ function tokenizer(input) {
|
|
157
138
|
|
158
139
|
break;
|
159
140
|
|
160
|
-
case CLOSE_PARENTHESES:
|
161
|
-
currentToken = [')', ')', line, pos - offset];
|
162
|
-
break;
|
163
|
-
|
164
141
|
case SINGLE_QUOTE:
|
165
142
|
case DOUBLE_QUOTE:
|
166
143
|
quote = code === SINGLE_QUOTE ? '\'' : '"';
|
167
144
|
next = pos;
|
145
|
+
|
168
146
|
do {
|
169
147
|
escaped = false;
|
170
148
|
next = css.indexOf(quote, next + 1);
|
149
|
+
|
171
150
|
if (next === -1) {
|
172
|
-
if (ignore) {
|
151
|
+
if (ignore || ignoreUnclosed) {
|
173
152
|
next = pos + 1;
|
174
153
|
break;
|
175
154
|
} else {
|
176
155
|
unclosed('string');
|
177
156
|
}
|
178
157
|
}
|
158
|
+
|
179
159
|
escapePos = next;
|
160
|
+
|
180
161
|
while (css.charCodeAt(escapePos - 1) === BACKSLASH) {
|
181
162
|
escapePos -= 1;
|
182
163
|
escaped = !escaped;
|
@@ -196,7 +177,6 @@ function tokenizer(input) {
|
|
196
177
|
}
|
197
178
|
|
198
179
|
currentToken = ['string', css.slice(pos, next + 1), line, pos - offset, nextLine, next - nextOffset];
|
199
|
-
|
200
180
|
offset = nextOffset;
|
201
181
|
line = nextLine;
|
202
182
|
pos = next;
|
@@ -205,6 +185,7 @@ function tokenizer(input) {
|
|
205
185
|
case AT:
|
206
186
|
RE_AT_END.lastIndex = pos + 1;
|
207
187
|
RE_AT_END.test(css);
|
188
|
+
|
208
189
|
if (RE_AT_END.lastIndex === 0) {
|
209
190
|
next = css.length - 1;
|
210
191
|
} else {
|
@@ -212,24 +193,28 @@ function tokenizer(input) {
|
|
212
193
|
}
|
213
194
|
|
214
195
|
currentToken = ['at-word', css.slice(pos, next + 1), line, pos - offset, line, next - offset];
|
215
|
-
|
216
196
|
pos = next;
|
217
197
|
break;
|
218
198
|
|
219
199
|
case BACKSLASH:
|
220
200
|
next = pos;
|
221
201
|
escape = true;
|
202
|
+
|
222
203
|
while (css.charCodeAt(next + 1) === BACKSLASH) {
|
223
204
|
next += 1;
|
224
205
|
escape = !escape;
|
225
206
|
}
|
207
|
+
|
226
208
|
code = css.charCodeAt(next + 1);
|
209
|
+
|
227
210
|
if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {
|
228
211
|
next += 1;
|
212
|
+
|
229
213
|
if (RE_HEX_ESCAPE.test(css.charAt(next))) {
|
230
214
|
while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {
|
231
215
|
next += 1;
|
232
216
|
}
|
217
|
+
|
233
218
|
if (css.charCodeAt(next + 1) === SPACE) {
|
234
219
|
next += 1;
|
235
220
|
}
|
@@ -237,15 +222,15 @@ function tokenizer(input) {
|
|
237
222
|
}
|
238
223
|
|
239
224
|
currentToken = ['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset];
|
240
|
-
|
241
225
|
pos = next;
|
242
226
|
break;
|
243
227
|
|
244
228
|
default:
|
245
229
|
if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {
|
246
230
|
next = css.indexOf('*/', pos + 2) + 1;
|
231
|
+
|
247
232
|
if (next === 0) {
|
248
|
-
if (ignore) {
|
233
|
+
if (ignore || ignoreUnclosed) {
|
249
234
|
next = css.length;
|
250
235
|
} else {
|
251
236
|
unclosed('comment');
|
@@ -265,13 +250,13 @@ function tokenizer(input) {
|
|
265
250
|
}
|
266
251
|
|
267
252
|
currentToken = ['comment', content, line, pos - offset, nextLine, next - nextOffset];
|
268
|
-
|
269
253
|
offset = nextOffset;
|
270
254
|
line = nextLine;
|
271
255
|
pos = next;
|
272
256
|
} else {
|
273
257
|
RE_WORD_END.lastIndex = pos + 1;
|
274
258
|
RE_WORD_END.test(css);
|
259
|
+
|
275
260
|
if (RE_WORD_END.lastIndex === 0) {
|
276
261
|
next = css.length - 1;
|
277
262
|
} else {
|
@@ -279,9 +264,7 @@ function tokenizer(input) {
|
|
279
264
|
}
|
280
265
|
|
281
266
|
currentToken = ['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset];
|
282
|
-
|
283
267
|
buffer.push(currentToken);
|
284
|
-
|
285
268
|
pos = next;
|
286
269
|
}
|
287
270
|
|
@@ -302,5 +285,6 @@ function tokenizer(input) {
|
|
302
285
|
endOfFile: endOfFile
|
303
286
|
};
|
304
287
|
}
|
305
|
-
|
306
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRva2VuaXplLmVzNiJdLCJuYW1lcyI6WyJ0b2tlbml6ZXIiLCJTSU5HTEVfUVVPVEUiLCJET1VCTEVfUVVPVEUiLCJCQUNLU0xBU0giLCJTTEFTSCIsIk5FV0xJTkUiLCJTUEFDRSIsIkZFRUQiLCJUQUIiLCJDUiIsIk9QRU5fU1FVQVJFIiwiQ0xPU0VfU1FVQVJFIiwiT1BFTl9QQVJFTlRIRVNFUyIsIkNMT1NFX1BBUkVOVEhFU0VTIiwiT1BFTl9DVVJMWSIsIkNMT1NFX0NVUkxZIiwiU0VNSUNPTE9OIiwiQVNURVJJU0siLCJDT0xPTiIsIkFUIiwiUkVfQVRfRU5EIiwiUkVfV09SRF9FTkQiLCJSRV9CQURfQlJBQ0tFVCIsIlJFX0hFWF9FU0NBUEUiLCJpbnB1dCIsIm9wdGlvbnMiLCJjc3MiLCJ2YWx1ZU9mIiwiaWdub3JlIiwiaWdub3JlRXJyb3JzIiwiY29kZSIsIm5leHQiLCJxdW90ZSIsImxpbmVzIiwibGFzdCIsImNvbnRlbnQiLCJlc2NhcGUiLCJuZXh0TGluZSIsIm5leHRPZmZzZXQiLCJlc2NhcGVkIiwiZXNjYXBlUG9zIiwicHJldiIsIm4iLCJjdXJyZW50VG9rZW4iLCJsZW5ndGgiLCJvZmZzZXQiLCJsaW5lIiwicG9zIiwiYnVmZmVyIiwicmV0dXJuZWQiLCJ1bmNsb3NlZCIsIndoYXQiLCJlcnJvciIsImVuZE9mRmlsZSIsIm5leHRUb2tlbiIsInBvcCIsImNoYXJDb2RlQXQiLCJzbGljZSIsImluZGV4T2YiLCJ0ZXN0Iiwic3BsaXQiLCJsYXN0SW5kZXgiLCJjaGFyQXQiLCJwdXNoIiwiYmFjayIsInRva2VuIl0sIm1hcHBpbmdzIjoiOzs7a0JBeUJ3QkEsUztBQXpCeEIsSUFBTUMsaUJBQU47QUFDQSxJQUFNQyxpQkFBTjtBQUNBLElBQU1DLGNBQU47QUFDQSxJQUFNQyxVQUFOO0FBQ0EsSUFBTUMsWUFBTjtBQUNBLElBQU1DLFVBQU47QUFDQSxJQUFNQyxTQUFOO0FBQ0EsSUFBTUMsT0FBTjtBQUNBLElBQU1DLE9BQU47QUFDQSxJ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SUFBWDtBQUNBUix5QkFBYU8sTUFBYjtBQUNEOztBQUVERix5QkFBZSxDQUFDLFNBQUQsRUFBWVIsT0FBWixFQUNiVyxJQURhLEVBQ1BDLE1BQU1GLE1BREMsRUFFYlIsUUFGYSxFQUVITixPQUFPTyxVQUZKLENBQWY7O0FBS0FPLG1CQUFTUCxVQUFUO0FBQ0FRLGlCQUFPVCxRQUFQO0FBQ0FVLGdCQUFNaEIsSUFBTjtBQUNELFNBOUJELE1BOEJPO0FBQ0xWLHNCQUFZd0MsU0FBWixHQUF3QmQsTUFBTSxDQUE5QjtBQUNBMUIsc0JBQVlzQyxJQUFaLENBQWlCakMsR0FBakI7QUFDQSxjQUFJTCxZQUFZd0MsU0FBWixLQUEwQixDQUE5QixFQUFpQztBQUMvQjlCLG1CQUFPTCxJQUFJa0IsTUFBSixHQUFhLENBQXBCO0FBQ0QsV0FGRCxNQUVPO0FBQ0xiLG1CQUFPVixZQUFZd0MsU0FBWixHQUF3QixDQUEvQjtBQUNEOztBQUVEbEIseUJBQWUsQ0FBQyxNQUFELEVBQVNqQixJQUFJK0IsS0FBSixDQUFVVixHQUFWLEVBQWVoQixPQUFPLENBQXRCLENBQVQsRUFDYmUsSUFEYSxFQUNQQyxNQUFNRixNQURDLEVBRWJDLElBRmEsRUFFUGYsT0FBT2MsTUFGQSxDQUFmOztBQUtBRyxpQkFBT2UsSUFBUCxDQUFZcEIsWUFBWjs7QUFFQUksZ0JBQU1oQixJQUFOO0FBQ0Q7O0FBRUQ7QUE1UEo7O0FBK1BBZ0I7QUFDQSxXQUFPSixZQUFQO0FBQ0Q7O0FBRUQsV0FBU3FCLElBQVQsQ0FBZUMsS0FBZixFQUFzQjtBQUNwQmhCLGFBQVNjLElBQVQsQ0FBY0UsS0FBZDtBQUNEOztBQUVELFNBQU87QUFDTEQsY0FESztBQUVMVix3QkFGSztBQUdMRDtBQUhLLEdBQVA7QUFLRCIsImZpbGUiOiJ0b2tlbml6ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNJTkdMRV9RVU9URSA9ICdcXCcnLmNoYXJDb2RlQXQoMClcbmNvbnN0IERPVUJMRV9RVU9URSA9ICdcIicuY2hhckNvZGVBdCgwKVxuY29uc3QgQkFDS1NMQVNIID0gJ1xcXFwnLmNoYXJDb2RlQXQoMClcbmNvbnN0IFNMQVNIID0gJy8nLmNoYXJDb2RlQXQoMClcbmNvbnN0IE5FV0xJTkUgPSAnXFxuJy5jaGFyQ29kZUF0KDApXG5jb25zdCBTUEFDRSA9ICcgJy5jaGFyQ29kZUF0KDApXG5jb25zdCBGRUVEID0gJ1xcZicuY2hhckNvZGVBdCgwKVxuY29uc3QgVEFCID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxuY29uc3QgQ1IgPSAnXFxyJy5jaGFyQ29kZUF0KDApXG5jb25zdCBPUEVOX1NRVUFSRSA9ICdbJy5jaGFyQ29kZUF0KDApXG5jb25zdCBDTE9TRV9TUVVBUkUgPSAnXScuY2hhckNvZGVBdCgwKVxuY29uc3QgT1BFTl9QQVJFTlRIRVNFUyA9ICcoJy5jaGFyQ29kZUF0KDApXG5jb25zdCBDTE9TRV9QQVJFTlRIRVNFUyA9ICcpJy5jaGFyQ29kZUF0KDApXG5jb25zdCBPUEVOX0NVUkxZID0gJ3snLmNoYXJDb2RlQXQoMClcbmNvbnN0IENMT1NFX0NVUkxZID0gJ30nLmNoYXJDb2RlQXQoMClcbmNvbnN0IFNFTUlDT0xPTiA9ICc7Jy5jaGFyQ29kZUF0KDApXG5jb25zdCBBU1RFUklTSyA9ICcqJy5jaGFyQ29kZUF0KDApXG5jb25zdCBDT0xPTiA9ICc6Jy5jaGFyQ29kZUF0KDApXG5jb25zdCBBVCA9ICdAJy5jaGFyQ29kZUF0KDApXG5cbmNvbnN0IFJFX0FUX0VORCA9IC9bIFxcblxcdFxcclxcZnt9KCknXCJcXFxcOy9bXFxdI10vZ1xuY29uc3QgUkVfV09SRF9FTkQgPSAvWyBcXG5cXHRcXHJcXGYoKXt9OjtAISdcIlxcXFxcXF1bI118XFwvKD89XFwqKS9nXG5jb25zdCBSRV9CQURfQlJBQ0tFVCA9IC8uW1xcXFwvKFwiJ1xcbl0vXG5jb25zdCBSRV9IRVhfRVNDQVBFID0gL1thLWYwLTldL2lcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9rZW5pemVyIChpbnB1dCwgb3B0aW9ucyA9IHt9KSB7XG4gIGxldCBjc3MgPSBpbnB1dC5jc3MudmFsdWVPZigpXG4gIGxldCBpZ25vcmUgPSBvcHRpb25zLmlnbm9yZUVycm9yc1xuXG4gIGxldCBjb2RlLCBuZXh0LCBxdW90ZSwgbGluZXMsIGxhc3QsIGNvbnRlbnQsIGVzY2FwZVxuICBsZXQgbmV4dExpbmUsIG5leHRPZmZzZXQsIGVzY2FwZWQsIGVzY2FwZVBvcywgcHJldiwgbiwgY3VycmVudFRva2VuXG5cbiAgbGV0IGxlbmd0aCA9IGNzcy5sZW5ndGhcbiAgbGV0IG9mZnNldCA9IC0xXG4gIGxldCBsaW5lID0gMVxuICBsZXQgcG9zID0gMFxuICBsZXQgYnVmZmVyID0gW11cbiAgbGV0IHJldHVybmVkID0gW11cblxuICBmdW5jdGlvbiB1bmNsb3NlZCAod2hhdCkge1xuICAgIHRocm93IGlucHV0LmVycm9yKCdVbmNsb3NlZCAnICsgd2hhdCwgbGluZSwgcG9zIC0gb2Zmc2V0KVxuICB9XG5cbiAgZnVuY3Rpb24gZW5kT2ZGaWxlICgpIHtcbiAgICByZXR1cm4gcmV0dXJuZWQubGVuZ3RoID09PSAwICYmIHBvcyA+PSBsZW5ndGhcbiAgfVxuXG4gIGZ1bmN0aW9uIG5leHRUb2tlbiAoKSB7XG4gICAgaWYgKHJldHVybmVkLmxlbmd0aCkgcmV0dXJuIHJldHVybmVkLnBvcCgpXG4gICAgaWYgKHBvcyA+PSBsZW5ndGgpIHJldHVyblxuXG4gICAgY29kZSA9IGNzcy5jaGFyQ29kZUF0KHBvcylcbiAgICBpZiAoXG4gICAgICBjb2RlID09PSBORVdMSU5FIHx8IGNvZGUgPT09IEZFRUQgfHxcbiAgICAgIChjb2RlID09PSBDUiAmJiBjc3MuY2hhckNvZGVBdChwb3MgKyAxKSAhPT0gTkVXTElORSlcbiAgICApIHtcbiAgICAgIG9mZnNldCA9IHBvc1xuICAgICAgbGluZSArPSAxXG4gICAgfVxuXG4gICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICBjYXNlIE5FV0xJTkU6XG4gICAgICBjYXNlIFNQQUNFOlxuICAgICAgY2FzZSBUQUI6XG4gICAgICBjYXNlIENSOlxuICAgICAgY2FzZSBGRUVEOlxuICAgICAgICBuZXh0ID0gcG9zXG4gICAgICAgIGRvIHtcbiAgICAgICAgICBuZXh0ICs9IDFcbiAgICAgICAgICBjb2RlID0gY3NzLmNoYXJDb2RlQXQobmV4dClcbiAgICAgICAgICBpZiAoY29kZSA9PT0gTkVXTElORSkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gbmV4dFxuICAgICAgICAgICAgbGluZSArPSAxXG4gICAgICAgICAgfVxuICAgICAgICB9IHdoaWxlIChcbiAgICAgICAgICBjb2RlID09PSBTUEFDRSB8fFxuICAgICAgICAgIGNvZGUgPT09IE5FV0xJTkUgfHxcbiAgICAgICAgICBjb2RlID09PSBUQUIgfHxcbiAgICAgICAgICBjb2RlID09PSBDUiB8fFxuICAgICAgICAgIGNvZGUgPT09IEZFRURcbiAgICAgICAgKVxuXG4gICAgICAgIGN1cnJlbnRUb2tlbiA9IFsnc3BhY2UnLCBjc3Muc2xpY2UocG9zLCBuZXh0KV1cbiAgICAgICAgcG9zID0gbmV4dCAtIDFcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSBPUEVOX1NRVUFSRTpcbiAgICAgICAgY3VycmVudFRva2VuID0gWydbJywgJ1snLCBsaW5lLCBwb3MgLSBvZmZzZXRdXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgQ0xPU0VfU1FVQVJFOlxuICAgICAgICBjdXJyZW50VG9rZW4gPSBbJ10nLCAnXScsIGxpbmUsIHBvcyAtIG9mZnNldF1cbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSBPUEVOX0NVUkxZOlxuICAgICAgICBjdXJyZW50VG9rZW4gPSBbJ3snLCAneycsIGxpbmUsIHBvcyAtIG9mZnNldF1cbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSBDTE9TRV9DVVJMWTpcbiAgICAgICAgY3VycmVudFRva2VuID0gWyd9JywgJ30nLCBsaW5lLCBwb3MgLSBvZmZzZXRdXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgQ09MT046XG4gICAgICAgIGN1cnJlbnRUb2tlbiA9IFsnOicsICc6JywgbGluZSwgcG9zIC0gb2Zmc2V0XVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlIFNFTUlDT0xPTjpcbiAgICAgICAgY3VycmVudFRva2VuID0gWyc7JywgJzsnLCBsaW5lLCBwb3MgLSBvZmZzZXRdXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgT1BFTl9QQVJFTlRIRVNFUzpcbiAgICAgICAgcHJldiA9IGJ1ZmZlci5sZW5ndGggPyBidWZmZXIucG9wKClbMV0gOiAnJ1xuICAgICAgICBuID0gY3NzLmNoYXJDb2RlQXQocG9zICsgMSlcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHByZXYgPT09ICd1cmwnICYmXG4gICAgICAgICAgbiAhPT0gU0lOR0xFX1FVT1RFICYmIG4gIT09IERPVUJMRV9RVU9URSAmJlxuICAgICAgICAgIG4gIT09IFNQQUNFICYmIG4gIT09IE5FV0xJTkUgJiYgbiAhPT0gVEFCICYmXG4gICAgICAgICAgbiAhPT0gRkVFRCAmJiBuICE9PSBDUlxuICAgICAgICApIHtcbiAgICAgICAgICBuZXh0ID0gcG9zXG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgZXNjYXBlZCA9IGZhbHNlXG4gICAgICAgICAgICBuZXh0ID0gY3NzLmluZGV4T2YoJyknLCBuZXh0ICsgMSlcbiAgICAgICAgICAgIGlmIChuZXh0ID09PSAtMSkge1xuICAgICAgICAgICAgICBpZiAoaWdub3JlKSB7XG4gICAgICAgICAgICAgICAgbmV4dCA9IHBvc1xuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdW5jbG9zZWQoJ2JyYWNrZXQnKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlc2NhcGVQb3MgPSBuZXh0XG4gICAgICAgICAgICB3aGlsZSAoY3NzLmNoYXJDb2RlQXQoZXNjYXBlUG9zIC0gMSkgPT09IEJBQ0tTTEFTSCkge1xuICAgICAgICAgICAgICBlc2NhcGVQb3MgLT0gMVxuICAgICAgICAgICAgICBlc2NhcGVkID0gIWVzY2FwZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IHdoaWxlIChlc2NhcGVkKVxuXG4gICAgICAgICAgY3VycmVudFRva2VuID0gWydicmFja2V0cycsIGNzcy5zbGljZShwb3MsIG5leHQgKyAxKSxcbiAgICAgICAgICAgIGxpbmUsIHBvcyAtIG9mZnNldCxcbiAgICAgICAgICAgIGxpbmUsIG5leHQgLSBvZmZzZXRcbiAgICAgICAgICBdXG5cbiAgICAgICAgICBwb3MgPSBuZXh0XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV4dCA9IGNzcy5pbmRleE9mKCcpJywgcG9zICsgMSlcbiAgICAgICAgICBjb250ZW50ID0gY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpXG5cbiAgICAgICAgICBpZiAobmV4dCA9PT0gLTEgfHwgUkVfQkFEX0JSQUNLRVQudGVzdChjb250ZW50KSkge1xuICAgICAgICAgICAgY3VycmVudFRva2VuID0gWycoJywgJygnLCBsaW5lLCBwb3MgLSBvZmZzZXRdXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRUb2tlbiA9IFsnYnJhY2tldHMnLCBjb250ZW50LFxuICAgICAgICAgICAgICBsaW5lLCBwb3MgLSBvZmZzZXQsXG4gICAgICAgICAgICAgIGxpbmUsIG5leHQgLSBvZmZzZXRcbiAgICAgICAgICAgIF1cbiAgICAgICAgICAgIHBvcyA9IG5leHRcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlIENMT1NFX1BBUkVOVEhFU0VTOlxuICAgICAgICBjdXJyZW50VG9rZW4gPSBbJyknLCAnKScsIGxpbmUsIHBvcyAtIG9mZnNldF1cbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSBTSU5HTEVfUVVPVEU6XG4gICAgICBjYXNlIERPVUJMRV9RVU9URTpcbiAgICAgICAgcXVvdGUgPSBjb2RlID09PSBTSU5HTEVfUVVPVEUgPyAnXFwnJyA6ICdcIidcbiAgICAgICAgbmV4dCA9IHBvc1xuICAgICAgICBkbyB7XG4gICAgICAgICAgZXNjYXBlZCA9IGZhbHNlXG4gICAgICAgICAgbmV4dCA9IGNzcy5pbmRleE9mKHF1b3RlLCBuZXh0ICsgMSlcbiAgICAgICAgICBpZiAobmV4dCA9PT0gLTEpIHtcbiAgICAgICAgICAgIGlmIChpZ25vcmUpIHtcbiAgICAgICAgICAgICAgbmV4dCA9IHBvcyArIDFcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHVuY2xvc2VkKCdzdHJpbmcnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBlc2NhcGVQb3MgPSBuZXh0XG4gICAgICAgICAgd2hpbGUgKGNzcy5jaGFyQ29kZUF0KGVzY2FwZVBvcyAtIDEpID09PSBCQUNLU0xBU0gpIHtcbiAgICAgICAgICAgIGVzY2FwZVBvcyAtPSAxXG4gICAgICAgICAgICBlc2NhcGVkID0gIWVzY2FwZWRcbiAgICAgICAgICB9XG4gICAgICAgIH0gd2hpbGUgKGVzY2FwZWQpXG5cbiAgICAgICAgY29udGVudCA9IGNzcy5zbGljZShwb3MsIG5leHQgKyAxKVxuICAgICAgICBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpXG4gICAgICAgIGxhc3QgPSBsaW5lcy5sZW5ndGggLSAxXG5cbiAgICAgICAgaWYgKGxhc3QgPiAwKSB7XG4gICAgICAgICAgbmV4dExpbmUgPSBsaW5lICsgbGFzdFxuICAgICAgICAgIG5leHRPZmZzZXQgPSBuZXh0IC0gbGluZXNbbGFzdF0ubGVuZ3RoXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV4dExpbmUgPSBsaW5lXG4gICAgICAgICAgbmV4dE9mZnNldCA9IG9mZnNldFxuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudFRva2VuID0gWydzdHJpbmcnLCBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSksXG4gICAgICAgICAgbGluZSwgcG9zIC0gb2Zmc2V0LFxuICAgICAgICAgIG5leHRMaW5lLCBuZXh0IC0gbmV4dE9mZnNldFxuICAgICAgICBdXG5cbiAgICAgICAgb2Zmc2V0ID0gbmV4dE9mZnNldFxuICAgICAgICBsaW5lID0gbmV4dExpbmVcbiAgICAgICAgcG9zID0gbmV4dFxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlIEFUOlxuICAgICAgICBSRV9BVF9FTkQubGFzdEluZGV4ID0gcG9zICsgMVxuICAgICAgICBSRV9BVF9FTkQudGVzdChjc3MpXG4gICAgICAgIGlmIChSRV9BVF9FTkQubGFzdEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgbmV4dCA9IGNzcy5sZW5ndGggLSAxXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV4dCA9IFJFX0FUX0VORC5sYXN0SW5kZXggLSAyXG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50VG9rZW4gPSBbJ2F0LXdvcmQnLCBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSksXG4gICAgICAgICAgbGluZSwgcG9zIC0gb2Zmc2V0LFxuICAgICAgICAgIGxpbmUsIG5leHQgLSBvZmZzZXRcbiAgICAgICAgXVxuXG4gICAgICAgIHBvcyA9IG5leHRcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSBCQUNLU0xBU0g6XG4gICAgICAgIG5leHQgPSBwb3NcbiAgICAgICAgZXNjYXBlID0gdHJ1ZVxuICAgICAgICB3aGlsZSAoY3NzLmNoYXJDb2RlQXQobmV4dCArIDEpID09PSBCQUNLU0xBU0gpIHtcbiAgICAgICAgICBuZXh0ICs9IDFcbiAgICAgICAgICBlc2NhcGUgPSAhZXNjYXBlXG4gICAgICAgIH1cbiAgICAgICAgY29kZSA9IGNzcy5jaGFyQ29kZUF0KG5leHQgKyAxKVxuICAgICAgICBpZiAoXG4gICAgICAgICAgZXNjYXBlICYmXG4gICAgICAgICAgY29kZSAhPT0gU0xBU0ggJiZcbiAgICAgICAgICBjb2RlICE9PSBTUEFDRSAmJlxuICAgICAgICAgIGNvZGUgIT09IE5FV0xJTkUgJiZcbiAgICAgICAgICBjb2RlICE9PSBUQUIgJiZcbiAgICAgICAgICBjb2RlICE9PSBDUiAmJlxuICAgICAgICAgIGNvZGUgIT09IEZFRURcbiAgICAgICAgKSB7XG4gICAgICAgICAgbmV4dCArPSAxXG4gICAgICAgICAgaWYgKFJFX0hFWF9FU0NBUEUudGVzdChjc3MuY2hhckF0KG5leHQpKSkge1xuICAgICAgICAgICAgd2hpbGUgKFJFX0hFWF9FU0NBUEUudGVzdChjc3MuY2hhckF0KG5leHQgKyAxKSkpIHtcbiAgICAgICAgICAgICAgbmV4dCArPSAxXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3NzLmNoYXJDb2RlQXQobmV4dCArIDEpID09PSBTUEFDRSkge1xuICAgICAgICAgICAgICBuZXh0ICs9IDFcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50VG9rZW4gPSBbJ3dvcmQnLCBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSksXG4gICAgICAgICAgbGluZSwgcG9zIC0gb2Zmc2V0LFxuICAgICAgICAgIGxpbmUsIG5leHQgLSBvZmZzZXRcbiAgICAgICAgXVxuXG4gICAgICAgIHBvcyA9IG5leHRcbiAgICAgICAgYnJlYWtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGNvZGUgPT09IFNMQVNIICYmIGNzcy5jaGFyQ29kZUF0KHBvcyArIDEpID09PSBBU1RFUklTSykge1xuICAgICAgICAgIG5leHQgPSBjc3MuaW5kZXhPZignKi8nLCBwb3MgKyAyKSArIDFcbiAgICAgICAgICBpZiAobmV4dCA9PT0gMCkge1xuICAgICAgICAgICAgaWYgKGlnbm9yZSkge1xuICAgICAgICAgICAgICBuZXh0ID0gY3NzLmxlbmd0aFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdW5jbG9zZWQoJ2NvbW1lbnQnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRlbnQgPSBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSlcbiAgICAgICAgICBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpXG4gICAgICAgICAgbGFzdCA9IGxpbmVzLmxlbmd0aCAtIDFcblxuICAgICAgICAgIGlmIChsYXN0ID4gMCkge1xuICAgICAgICAgICAgbmV4dExpbmUgPSBsaW5lICsgbGFzdFxuICAgICAgICAgICAgbmV4dE9mZnNldCA9IG5leHQgLSBsaW5lc1tsYXN0XS5sZW5ndGhcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dExpbmUgPSBsaW5lXG4gICAgICAgICAgICBuZXh0T2Zmc2V0ID0gb2Zmc2V0XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY3VycmVudFRva2VuID0gWydjb21tZW50JywgY29udGVudCxcbiAgICAgICAgICAgIGxpbmUsIHBvcyAtIG9mZnNldCxcbiAgICAgICAgICAgIG5leHRMaW5lLCBuZXh0IC0gbmV4dE9mZnNldFxuICAgICAgICAgIF1cblxuICAgICAgICAgIG9mZnNldCA9IG5leHRPZmZzZXRcbiAgICAgICAgICBsaW5lID0gbmV4dExpbmVcbiAgICAgICAgICBwb3MgPSBuZXh0XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgUkVfV09SRF9FTkQubGFzdEluZGV4ID0gcG9zICsgMVxuICAgICAgICAgIFJFX1dPUkRfRU5ELnRlc3QoY3NzKVxuICAgICAgICAgIGlmIChSRV9XT1JEX0VORC5sYXN0SW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIG5leHQgPSBjc3MubGVuZ3RoIC0gMVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXh0ID0gUkVfV09SRF9FTkQubGFzdEluZGV4IC0gMlxuICAgICAgICAgIH1cblxuICAgICAgICAgIGN1cnJlbnRUb2tlbiA9IFsnd29yZCcsIGNzcy5zbGljZShwb3MsIG5leHQgKyAxKSxcbiAgICAgICAgICAgIGxpbmUsIHBvcyAtIG9mZnNldCxcbiAgICAgICAgICAgIGxpbmUsIG5leHQgLSBvZmZzZXRcbiAgICAgICAgICBdXG5cbiAgICAgICAgICBidWZmZXIucHVzaChjdXJyZW50VG9rZW4pXG5cbiAgICAgICAgICBwb3MgPSBuZXh0XG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIHBvcysrXG4gICAgcmV0dXJuIGN1cnJlbnRUb2tlblxuICB9XG5cbiAgZnVuY3Rpb24gYmFjayAodG9rZW4pIHtcbiAgICByZXR1cm5lZC5wdXNoKHRva2VuKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBiYWNrLFxuICAgIG5leHRUb2tlbixcbiAgICBlbmRPZkZpbGVcbiAgfVxufVxuIl19
|
288
|
+
|
289
|
+
module.exports = exports.default;
|
290
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRva2VuaXplLmVzNiJdLCJuYW1lcyI6WyJTSU5HTEVfUVVPVEUiLCJjaGFyQ29kZUF0IiwiRE9VQkxFX1FVT1RFIiwiQkFDS1NMQVNIIiwiU0xBU0giLCJORVdMSU5FIiwiU1BBQ0UiLCJGRUVEIiwiVEFCIiwiQ1IiLCJPUEVOX1NRVUFSRSIsIkNMT1NFX1NRVUFSRSIsIk9QRU5fUEFSRU5USEVTRVMiLCJDTE9TRV9QQVJFTlRIRVNFUyIsIk9QRU5fQ1VSTFkiLCJDTE9TRV9DVVJMWSIsIlNFTUlDT0xPTiIsIkFTVEVSSVNLIiwiQ09MT04iLCJBVCIsIlJFX0FUX0VORCIsIlJFX1dPUkRfRU5EIiwiUkVfQkFEX0JSQUNLRVQiLCJSRV9IRVhfRVNDQVBFIiwidG9rZW5pemVyIiwiaW5wdXQiLCJvcHRpb25zIiwiY3NzIiwidmFsdWVPZiIsImlnbm9yZSIsImlnbm9yZUVycm9ycyIsImNvZGUiLCJuZXh0IiwicXVvdGUiLCJsaW5lcyIsImxhc3QiLCJjb250ZW50IiwiZXNjYXBlIiwibmV4dExpbmUiLCJuZXh0T2Zmc2V0IiwiZXNjYXBlZCIsImVzY2FwZVBvcyIsInByZXYiLCJuIiwiY3VycmVudFRva2VuIiwibGVuZ3RoIiwib2Zmc2V0IiwibGluZSIsInBvcyIsImJ1ZmZlciIsInJldHVybmVkIiwidW5jbG9zZWQiLCJ3aGF0IiwiZXJyb3IiLCJlbmRPZkZpbGUiLCJuZXh0VG9rZW4iLCJvcHRzIiwicG9wIiwiaWdub3JlVW5jbG9zZWQiLCJzbGljZSIsImNvbnRyb2xDaGFyIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiaW5kZXhPZiIsInRlc3QiLCJzcGxpdCIsImxhc3RJbmRleCIsImNoYXJBdCIsInB1c2giLCJiYWNrIiwidG9rZW4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFNQSxZQUFZLEdBQUcsS0FBS0MsVUFBTCxDQUFnQixDQUFoQixDQUFyQjtBQUNBLElBQU1DLFlBQVksR0FBRyxJQUFJRCxVQUFKLENBQWUsQ0FBZixDQUFyQjtBQUNB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LEtBQWQ7QUFDRDs7QUFFRCxTQUFPO0FBQ0xELElBQUFBLElBQUksRUFBSkEsSUFESztBQUVMZCxJQUFBQSxTQUFTLEVBQVRBLFNBRks7QUFHTEQsSUFBQUEsU0FBUyxFQUFUQTtBQUhLLEdBQVA7QUFLRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNJTkdMRV9RVU9URSA9ICdcXCcnLmNoYXJDb2RlQXQoMClcbmNvbnN0IERPVUJMRV9RVU9URSA9ICdcIicuY2hhckNvZGVBdCgwKVxuY29uc3QgQkFDS1NMQVNIID0gJ1xcXFwnLmNoYXJDb2RlQXQoMClcbmNvbnN0IFNMQVNIID0gJy8nLmNoYXJDb2RlQXQoMClcbmNvbnN0IE5FV0xJTkUgPSAnXFxuJy5jaGFyQ29kZUF0KDApXG5jb25zdCBTUEFDRSA9ICcgJy5jaGFyQ29kZUF0KDApXG5jb25zdCBGRUVEID0gJ1xcZicuY2hhckNvZGVBdCgwKVxuY29uc3QgVEFCID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxuY29uc3QgQ1IgPSAnXFxyJy5jaGFyQ29kZUF0KDApXG5jb25zdCBPUEVOX1NRVUFSRSA9ICdbJy5jaGFyQ29kZUF0KDApXG5jb25zdCBDTE9TRV9TUVVBUkUgPSAnXScuY2hhckNvZGVBdCgwKVxuY29uc3QgT1BFTl9QQVJFTlRIRVNFUyA9ICcoJy5jaGFyQ29kZUF0KDApXG5jb25zdCBDTE9TRV9QQVJFTlRIRVNFUyA9ICcpJy5jaGFyQ29kZUF0KDApXG5jb25zdCBPUEVOX0NVUkxZID0gJ3snLmNoYXJDb2RlQXQoMClcbmNvbnN0IENMT1NFX0NVUkxZID0gJ30nLmNoYXJDb2RlQXQoMClcbmNvbnN0IFNFTUlDT0xPTiA9ICc7Jy5jaGFyQ29kZUF0KDApXG5jb25zdCBBU1RFUklTSyA9ICcqJy5jaGFyQ29kZUF0KDApXG5jb25zdCBDT0xPTiA9ICc6Jy5jaGFyQ29kZUF0KDApXG5jb25zdCBBVCA9ICdAJy5jaGFyQ29kZUF0KDApXG5cbmNvbnN0IFJFX0FUX0VORCA9IC9bIFxcblxcdFxcclxcZnt9KCknXCJcXFxcOy9bXFxdI10vZ1xuY29uc3QgUkVfV09SRF9FTkQgPSAvWyBcXG5cXHRcXHJcXGYoKXt9OjtAISdcIlxcXFxcXF1bI118XFwvKD89XFwqKS9nXG5jb25zdCBSRV9CQURfQlJBQ0tFVCA9IC8uW1xcXFwvKFwiJ1xcbl0vXG5jb25zdCBSRV9IRVhfRVNDQVBFID0gL1thLWYwLTldL2lcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9rZW5pemVyIChpbnB1dCwgb3B0aW9ucyA9IHt9KSB7XG4gIGxldCBjc3MgPSBpbnB1dC5jc3MudmFsdWVPZigpXG4gIGxldCBpZ25vcmUgPSBvcHRpb25zLmlnbm9yZUVycm9yc1xuXG4gIGxldCBjb2RlLCBuZXh0LCBxdW90ZSwgbGluZXMsIGxhc3QsIGNvbnRlbnQsIGVzY2FwZVxuICBsZXQgbmV4dExpbmUsIG5leHRPZmZzZXQsIGVzY2FwZWQsIGVzY2FwZVBvcywgcHJldiwgbiwgY3VycmVudFRva2VuXG5cbiAgbGV0IGxlbmd0aCA9IGNzcy5sZW5ndGhcbiAgbGV0IG9mZnNldCA9IC0xXG4gIGxldCBsaW5lID0gMVxuICBsZXQgcG9zID0gMFxuICBsZXQgYnVmZmVyID0gW11cbiAgbGV0IHJldHVybmVkID0gW11cblxuICBmdW5jdGlvbiB1bmNsb3NlZCAod2hhdCkge1xuICAgIHRocm93IGlucHV0LmVycm9yKCdVbmNsb3NlZCAnICsgd2hhdCwgbGluZSwgcG9zIC0gb2Zmc2V0KVxuICB9XG5cbiAgZnVuY3Rpb24gZW5kT2ZGaWxlICgpIHtcbiAgICByZXR1cm4gcmV0dXJuZWQubGVuZ3RoID09PSAwICYmIHBvcyA+PSBsZW5ndGhcbiAgfVxuXG4gIGZ1bmN0aW9uIG5leHRUb2tlbiAob3B0cykge1xuICAgIGlmIChyZXR1cm5lZC5sZW5ndGgpIHJldHVybiByZXR1cm5lZC5wb3AoKVxuICAgIGlmIChwb3MgPj0gbGVuZ3RoKSByZXR1cm5cblxuICAgIGxldCBpZ25vcmVVbmNsb3NlZCA9IG9wdHMgPyBvcHRzLmlnbm9yZVVuY2xvc2VkIDogZmFsc2VcblxuICAgIGNvZGUgPSBjc3MuY2hhckNvZGVBdChwb3MpXG4gICAgaWYgKFxuICAgICAgY29kZSA9PT0gTkVXTElORSB8fCBjb2RlID09PSBGRUVEIHx8XG4gICAgICAoY29kZSA9PT0gQ1IgJiYgY3NzLmNoYXJDb2RlQXQocG9zICsgMSkgIT09IE5FV0xJTkUpXG4gICAgKSB7XG4gICAgICBvZmZzZXQgPSBwb3NcbiAgICAgIGxpbmUgKz0gMVxuICAgIH1cblxuICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgY2FzZSBORVdMSU5FOlxuICAgICAgY2FzZSBTUEFDRTpcbiAgICAgIGNhc2UgVEFCOlxuICAgICAgY2FzZSBDUjpcbiAgICAgIGNhc2UgRkVFRDpcbiAgICAgICAgbmV4dCA9IHBvc1xuICAgICAgICBkbyB7XG4gICAgICAgICAgbmV4dCArPSAxXG4gICAgICAgICAgY29kZSA9IGNzcy5jaGFyQ29kZUF0KG5leHQpXG4gICAgICAgICAgaWYgKGNvZGUgPT09IE5FV0xJTkUpIHtcbiAgICAgICAgICAgIG9mZnNldCA9IG5leHRcbiAgICAgICAgICAgIGxpbmUgKz0gMVxuICAgICAgICAgIH1cbiAgICAgICAgfSB3aGlsZSAoXG4gICAgICAgICAgY29kZSA9PT0gU1BBQ0UgfHxcbiAgICAgICAgICBjb2RlID09PSBORVdMSU5FIHx8XG4gICAgICAgICAgY29kZSA9PT0gVEFCIHx8XG4gICAgICAgICAgY29kZSA9PT0gQ1IgfHxcbiAgICAgICAgICBjb2RlID09PSBGRUVEXG4gICAgICAgIClcblxuICAgICAgICBjdXJyZW50VG9rZW4gPSBbJ3NwYWNlJywgY3NzLnNsaWNlKHBvcywgbmV4dCldXG4gICAgICAgIHBvcyA9IG5leHQgLSAxXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgT1BFTl9TUVVBUkU6XG4gICAgICBjYXNlIENMT1NFX1NRVUFSRTpcbiAgICAgIGNhc2UgT1BFTl9DVVJMWTpcbiAgICAgIGNhc2UgQ0xPU0VfQ1VSTFk6XG4gICAgICBjYXNlIENPTE9OOlxuICAgICAgY2FzZSBTRU1JQ09MT046XG4gICAgICBjYXNlIENMT1NFX1BBUkVOVEhFU0VTOlxuICAgICAgICBsZXQgY29udHJvbENoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpXG4gICAgICAgIGN1cnJlbnRUb2tlbiA9IFtjb250cm9sQ2hhciwgY29udHJvbENoYXIsIGxpbmUsIHBvcyAtIG9mZnNldF1cbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSBPUEVOX1BBUkVOVEhFU0VTOlxuICAgICAgICBwcmV2ID0gYnVmZmVyLmxlbmd0aCA/IGJ1ZmZlci5wb3AoKVsxXSA6ICcnXG4gICAgICAgIG4gPSBjc3MuY2hhckNvZGVBdChwb3MgKyAxKVxuICAgICAgICBpZiAoXG4gICAgICAgICAgcHJldiA9PT0gJ3VybCcgJiZcbiAgICAgICAgICBuICE9PSBTSU5HTEVfUVVPVEUgJiYgbiAhPT0gRE9VQkxFX1FVT1RFICYmXG4gICAgICAgICAgbiAhPT0gU1BBQ0UgJiYgbiAhPT0gTkVXTElORSAmJiBuICE9PSBUQUIgJiZcbiAgICAgICAgICBuICE9PSBGRUVEICYmIG4gIT09IENSXG4gICAgICAgICkge1xuICAgICAgICAgIG5leHQgPSBwb3NcbiAgICAgICAgICBkbyB7XG4gICAgICAgICAgICBlc2NhcGVkID0gZmFsc2VcbiAgICAgICAgICAgIG5leHQgPSBjc3MuaW5kZXhPZignKScsIG5leHQgKyAxKVxuICAgICAgICAgICAgaWYgKG5leHQgPT09IC0xKSB7XG4gICAgICAgICAgICAgIGlmIChpZ25vcmUgfHwgaWdub3JlVW5jbG9zZWQpIHtcbiAgICAgICAgICAgICAgICBuZXh0ID0gcG9zXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1bmNsb3NlZCgnYnJhY2tldCcpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVzY2FwZVBvcyA9IG5leHRcbiAgICAgICAgICAgIHdoaWxlIChjc3MuY2hhckNvZGVBdChlc2NhcGVQb3MgLSAxKSA9PT0gQkFDS1NMQVNIKSB7XG4gICAgICAgICAgICAgIGVzY2FwZVBvcyAtPSAxXG4gICAgICAgICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gd2hpbGUgKGVzY2FwZWQpXG5cbiAgICAgICAgICBjdXJyZW50VG9rZW4gPSBbJ2JyYWNrZXRzJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgICAgbGluZSwgcG9zIC0gb2Zmc2V0LFxuICAgICAgICAgICAgbGluZSwgbmV4dCAtIG9mZnNldFxuICAgICAgICAgIF1cblxuICAgICAgICAgIHBvcyA9IG5leHRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXh0ID0gY3NzLmluZGV4T2YoJyknLCBwb3MgKyAxKVxuICAgICAgICAgIGNvbnRlbnQgPSBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSlcblxuICAgICAgICAgIGlmIChuZXh0ID09PSAtMSB8fCBSRV9CQURfQlJBQ0tFVC50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICAgICAgICBjdXJyZW50VG9rZW4gPSBbJygnLCAnKCcsIGxpbmUsIHBvcyAtIG9mZnNldF1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3VycmVudFRva2VuID0gWydicmFja2V0cycsIGNvbnRlbnQsXG4gICAgICAgICAgICAgIGxpbmUsIHBvcyAtIG9mZnNldCxcbiAgICAgICAgICAgICAgbGluZSwgbmV4dCAtIG9mZnNldFxuICAgICAgICAgICAgXVxuICAgICAgICAgICAgcG9zID0gbmV4dFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgU0lOR0xFX1FVT1RFOlxuICAgICAgY2FzZSBET1VCTEVfUVVPVEU6XG4gICAgICAgIHF1b3RlID0gY29kZSA9PT0gU0lOR0xFX1FVT1RFID8gJ1xcJycgOiAnXCInXG4gICAgICAgIG5leHQgPSBwb3NcbiAgICAgICAgZG8ge1xuICAgICAgICAgIGVzY2FwZWQgPSBmYWxzZVxuICAgICAgICAgIG5leHQgPSBjc3MuaW5kZXhPZihxdW90ZSwgbmV4dCArIDEpXG4gICAgICAgICAgaWYgKG5leHQgPT09IC0xKSB7XG4gICAgICAgICAgICBpZiAoaWdub3JlIHx8IGlnbm9yZVVuY2xvc2VkKSB7XG4gICAgICAgICAgICAgIG5leHQgPSBwb3MgKyAxXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB1bmNsb3NlZCgnc3RyaW5nJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZXNjYXBlUG9zID0gbmV4dFxuICAgICAgICAgIHdoaWxlIChjc3MuY2hhckNvZGVBdChlc2NhcGVQb3MgLSAxKSA9PT0gQkFDS1NMQVNIKSB7XG4gICAgICAgICAgICBlc2NhcGVQb3MgLT0gMVxuICAgICAgICAgICAgZXNjYXBlZCA9ICFlc2NhcGVkXG4gICAgICAgICAgfVxuICAgICAgICB9IHdoaWxlIChlc2NhcGVkKVxuXG4gICAgICAgIGNvbnRlbnQgPSBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSlcbiAgICAgICAgbGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKVxuICAgICAgICBsYXN0ID0gbGluZXMubGVuZ3RoIC0gMVxuXG4gICAgICAgIGlmIChsYXN0ID4gMCkge1xuICAgICAgICAgIG5leHRMaW5lID0gbGluZSArIGxhc3RcbiAgICAgICAgICBuZXh0T2Zmc2V0ID0gbmV4dCAtIGxpbmVzW2xhc3RdLmxlbmd0aFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5leHRMaW5lID0gbGluZVxuICAgICAgICAgIG5leHRPZmZzZXQgPSBvZmZzZXRcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRUb2tlbiA9IFsnc3RyaW5nJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgIGxpbmUsIHBvcyAtIG9mZnNldCxcbiAgICAgICAgICBuZXh0TGluZSwgbmV4dCAtIG5leHRPZmZzZXRcbiAgICAgICAgXVxuXG4gICAgICAgIG9mZnNldCA9IG5leHRPZmZzZXRcbiAgICAgICAgbGluZSA9IG5leHRMaW5lXG4gICAgICAgIHBvcyA9IG5leHRcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSBBVDpcbiAgICAgICAgUkVfQVRfRU5ELmxhc3RJbmRleCA9IHBvcyArIDFcbiAgICAgICAgUkVfQVRfRU5ELnRlc3QoY3NzKVxuICAgICAgICBpZiAoUkVfQVRfRU5ELmxhc3RJbmRleCA9PT0gMCkge1xuICAgICAgICAgIG5leHQgPSBjc3MubGVuZ3RoIC0gMVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5leHQgPSBSRV9BVF9FTkQubGFzdEluZGV4IC0gMlxuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudFRva2VuID0gWydhdC13b3JkJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgIGxpbmUsIHBvcyAtIG9mZnNldCxcbiAgICAgICAgICBsaW5lLCBuZXh0IC0gb2Zmc2V0XG4gICAgICAgIF1cblxuICAgICAgICBwb3MgPSBuZXh0XG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgQkFDS1NMQVNIOlxuICAgICAgICBuZXh0ID0gcG9zXG4gICAgICAgIGVzY2FwZSA9IHRydWVcbiAgICAgICAgd2hpbGUgKGNzcy5jaGFyQ29kZUF0KG5leHQgKyAxKSA9PT0gQkFDS1NMQVNIKSB7XG4gICAgICAgICAgbmV4dCArPSAxXG4gICAgICAgICAgZXNjYXBlID0gIWVzY2FwZVxuICAgICAgICB9XG4gICAgICAgIGNvZGUgPSBjc3MuY2hhckNvZGVBdChuZXh0ICsgMSlcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGVzY2FwZSAmJlxuICAgICAgICAgIGNvZGUgIT09IFNMQVNIICYmXG4gICAgICAgICAgY29kZSAhPT0gU1BBQ0UgJiZcbiAgICAgICAgICBjb2RlICE9PSBORVdMSU5FICYmXG4gICAgICAgICAgY29kZSAhPT0gVEFCICYmXG4gICAgICAgICAgY29kZSAhPT0gQ1IgJiZcbiAgICAgICAgICBjb2RlICE9PSBGRUVEXG4gICAgICAgICkge1xuICAgICAgICAgIG5leHQgKz0gMVxuICAgICAgICAgIGlmIChSRV9IRVhfRVNDQVBFLnRlc3QoY3NzLmNoYXJBdChuZXh0KSkpIHtcbiAgICAgICAgICAgIHdoaWxlIChSRV9IRVhfRVNDQVBFLnRlc3QoY3NzLmNoYXJBdChuZXh0ICsgMSkpKSB7XG4gICAgICAgICAgICAgIG5leHQgKz0gMVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNzcy5jaGFyQ29kZUF0KG5leHQgKyAxKSA9PT0gU1BBQ0UpIHtcbiAgICAgICAgICAgICAgbmV4dCArPSAxXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudFRva2VuID0gWyd3b3JkJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgIGxpbmUsIHBvcyAtIG9mZnNldCxcbiAgICAgICAgICBsaW5lLCBuZXh0IC0gb2Zmc2V0XG4gICAgICAgIF1cblxuICAgICAgICBwb3MgPSBuZXh0XG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChjb2RlID09PSBTTEFTSCAmJiBjc3MuY2hhckNvZGVBdChwb3MgKyAxKSA9PT0gQVNURVJJU0spIHtcbiAgICAgICAgICBuZXh0ID0gY3NzLmluZGV4T2YoJyovJywgcG9zICsgMikgKyAxXG4gICAgICAgICAgaWYgKG5leHQgPT09IDApIHtcbiAgICAgICAgICAgIGlmIChpZ25vcmUgfHwgaWdub3JlVW5jbG9zZWQpIHtcbiAgICAgICAgICAgICAgbmV4dCA9IGNzcy5sZW5ndGhcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHVuY2xvc2VkKCdjb21tZW50JylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250ZW50ID0gY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpXG4gICAgICAgICAgbGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKVxuICAgICAgICAgIGxhc3QgPSBsaW5lcy5sZW5ndGggLSAxXG5cbiAgICAgICAgICBpZiAobGFzdCA+IDApIHtcbiAgICAgICAgICAgIG5leHRMaW5lID0gbGluZSArIGxhc3RcbiAgICAgICAgICAgIG5leHRPZmZzZXQgPSBuZXh0IC0gbGluZXNbbGFzdF0ubGVuZ3RoXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5leHRMaW5lID0gbGluZVxuICAgICAgICAgICAgbmV4dE9mZnNldCA9IG9mZnNldFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGN1cnJlbnRUb2tlbiA9IFsnY29tbWVudCcsIGNvbnRlbnQsXG4gICAgICAgICAgICBsaW5lLCBwb3MgLSBvZmZzZXQsXG4gICAgICAgICAgICBuZXh0TGluZSwgbmV4dCAtIG5leHRPZmZzZXRcbiAgICAgICAgICBdXG5cbiAgICAgICAgICBvZmZzZXQgPSBuZXh0T2Zmc2V0XG4gICAgICAgICAgbGluZSA9IG5leHRMaW5lXG4gICAgICAgICAgcG9zID0gbmV4dFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIFJFX1dPUkRfRU5ELmxhc3RJbmRleCA9IHBvcyArIDFcbiAgICAgICAgICBSRV9XT1JEX0VORC50ZXN0KGNzcylcbiAgICAgICAgICBpZiAoUkVfV09SRF9FTkQubGFzdEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICBuZXh0ID0gY3NzLmxlbmd0aCAtIDFcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCA9IFJFX1dPUkRfRU5ELmxhc3RJbmRleCAtIDJcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjdXJyZW50VG9rZW4gPSBbJ3dvcmQnLCBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSksXG4gICAgICAgICAgICBsaW5lLCBwb3MgLSBvZmZzZXQsXG4gICAgICAgICAgICBsaW5lLCBuZXh0IC0gb2Zmc2V0XG4gICAgICAgICAgXVxuXG4gICAgICAgICAgYnVmZmVyLnB1c2goY3VycmVudFRva2VuKVxuXG4gICAgICAgICAgcG9zID0gbmV4dFxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBwb3MrK1xuICAgIHJldHVybiBjdXJyZW50VG9rZW5cbiAgfVxuXG4gIGZ1bmN0aW9uIGJhY2sgKHRva2VuKSB7XG4gICAgcmV0dXJuZWQucHVzaCh0b2tlbilcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYmFjayxcbiAgICBuZXh0VG9rZW4sXG4gICAgZW5kT2ZGaWxlXG4gIH1cbn1cbiJdLCJmaWxlIjoidG9rZW5pemUuanMifQ==
|
package/lib/vendor.js
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
exports.default = void 0;
|
5
|
+
|
4
6
|
/**
|
5
7
|
* Contains helpers for working with vendor prefixes.
|
6
8
|
*
|
@@ -10,7 +12,6 @@ exports.__esModule = true;
|
|
10
12
|
* @namespace vendor
|
11
13
|
*/
|
12
14
|
var vendor = {
|
13
|
-
|
14
15
|
/**
|
15
16
|
* Returns the vendor prefix extracted from an input string.
|
16
17
|
*
|
@@ -24,13 +25,13 @@ var vendor = {
|
|
24
25
|
*/
|
25
26
|
prefix: function prefix(prop) {
|
26
27
|
var match = prop.match(/^(-\w+-)/);
|
28
|
+
|
27
29
|
if (match) {
|
28
30
|
return match[0];
|
29
|
-
} else {
|
30
|
-
return '';
|
31
31
|
}
|
32
|
-
},
|
33
32
|
|
33
|
+
return '';
|
34
|
+
},
|
34
35
|
|
35
36
|
/**
|
36
37
|
* Returns the input string stripped of its vendor prefix.
|
@@ -46,7 +47,7 @@ var vendor = {
|
|
46
47
|
return prop.replace(/^-\w+-/, '');
|
47
48
|
}
|
48
49
|
};
|
49
|
-
|
50
|
-
exports.default =
|
51
|
-
module.exports = exports
|
52
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
50
|
+
var _default = vendor;
|
51
|
+
exports.default = _default;
|
52
|
+
module.exports = exports.default;
|
53
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlbmRvci5lczYiXSwibmFtZXMiOlsidmVuZG9yIiwicHJlZml4IiwicHJvcCIsIm1hdGNoIiwidW5wcmVmaXhlZCIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7O0FBUUEsSUFBSUEsTUFBTSxHQUFHO0FBRVg7Ozs7Ozs7Ozs7O0FBV0FDLEVBQUFBLE1BYlcsa0JBYUhDLElBYkcsRUFhRztBQUNaLFFBQUlDLEtBQUssR0FBR0QsSUFBSSxDQUFDQyxLQUFMLENBQVcsVUFBWCxDQUFaOztBQUNBLFFBQUlBLEtBQUosRUFBVztBQUNULGFBQU9BLEtBQUssQ0FBQyxDQUFELENBQVo7QUFDRDs7QUFFRCxXQUFPLEVBQVA7QUFDRCxHQXBCVTs7QUFzQlg7Ozs7Ozs7Ozs7QUFVQUMsRUFBQUEsVUFoQ1csc0JBZ0NDRixJQWhDRCxFQWdDTztBQUNoQixXQUFPQSxJQUFJLENBQUNHLE9BQUwsQ0FBYSxRQUFiLEVBQXVCLEVBQXZCLENBQVA7QUFDRDtBQWxDVSxDQUFiO2VBc0NlTCxNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250YWlucyBoZWxwZXJzIGZvciB3b3JraW5nIHdpdGggdmVuZG9yIHByZWZpeGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCB2ZW5kb3IgPSBwb3N0Y3NzLnZlbmRvclxuICpcbiAqIEBuYW1lc3BhY2UgdmVuZG9yXG4gKi9cbmxldCB2ZW5kb3IgPSB7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZlbmRvciBwcmVmaXggZXh0cmFjdGVkIGZyb20gYW4gaW5wdXQgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcCBTdHJpbmcgd2l0aCBvciB3aXRob3V0IHZlbmRvciBwcmVmaXguXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ30gdmVuZG9yIHByZWZpeCBvciBlbXB0eSBzdHJpbmdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogcG9zdGNzcy52ZW5kb3IucHJlZml4KCctbW96LXRhYi1zaXplJykgLy89PiAnLW1vei0nXG4gICAqIHBvc3Rjc3MudmVuZG9yLnByZWZpeCgndGFiLXNpemUnKSAgICAgIC8vPT4gJydcbiAgICovXG4gIHByZWZpeCAocHJvcCkge1xuICAgIGxldCBtYXRjaCA9IHByb3AubWF0Y2goL14oLVxcdystKS8pXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4gbWF0Y2hbMF1cbiAgICB9XG5cbiAgICByZXR1cm4gJydcbiAgfSxcblxuICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBpbnB1dCBzdHJpbmcgc3RyaXBwZWQgb2YgaXRzIHZlbmRvciBwcmVmaXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcCBTdHJpbmcgd2l0aCBvciB3aXRob3V0IHZlbmRvciBwcmVmaXguXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFN0cmluZyBuYW1lIHdpdGhvdXQgdmVuZG9yIHByZWZpeGVzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwb3N0Y3NzLnZlbmRvci51bnByZWZpeGVkKCctbW96LXRhYi1zaXplJykgLy89PiAndGFiLXNpemUnXG4gICAgICovXG4gIHVucHJlZml4ZWQgKHByb3ApIHtcbiAgICByZXR1cm4gcHJvcC5yZXBsYWNlKC9eLVxcdystLywgJycpXG4gIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCB2ZW5kb3JcbiJdLCJmaWxlIjoidmVuZG9yLmpzIn0=
|
package/lib/warn-once.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.default = warnOnce;
|
@@ -12,5 +12,6 @@ function warnOnce(message) {
|
|
12
12
|
console.warn(message);
|
13
13
|
}
|
14
14
|
}
|
15
|
-
|
16
|
-
|
15
|
+
|
16
|
+
module.exports = exports.default;
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndhcm4tb25jZS5lczYiXSwibmFtZXMiOlsicHJpbnRlZCIsIndhcm5PbmNlIiwibWVzc2FnZSIsImNvbnNvbGUiLCJ3YXJuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBSUEsT0FBTyxHQUFHLEVBQWQ7O0FBRWUsU0FBU0MsUUFBVCxDQUFtQkMsT0FBbkIsRUFBNEI7QUFDekMsTUFBSUYsT0FBTyxDQUFDRSxPQUFELENBQVgsRUFBc0I7QUFDdEJGLEVBQUFBLE9BQU8sQ0FBQ0UsT0FBRCxDQUFQLEdBQW1CLElBQW5COztBQUVBLE1BQUksT0FBT0MsT0FBUCxLQUFtQixXQUFuQixJQUFrQ0EsT0FBTyxDQUFDQyxJQUE5QyxFQUFvRDtBQUNsREQsSUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWFGLE9BQWI7QUFDRDtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsibGV0IHByaW50ZWQgPSB7IH1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2Fybk9uY2UgKG1lc3NhZ2UpIHtcbiAgaWYgKHByaW50ZWRbbWVzc2FnZV0pIHJldHVyblxuICBwcmludGVkW21lc3NhZ2VdID0gdHJ1ZVxuXG4gIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgY29uc29sZS53YXJuKSB7XG4gICAgY29uc29sZS53YXJuKG1lc3NhZ2UpXG4gIH1cbn1cbiJdLCJmaWxlIjoid2Fybi1vbmNlLmpzIn0=
|