inline-style-parser 0.2.8 → 0.2.9

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.
package/cjs/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  // http://www.w3.org/TR/CSS21/grammar.html
4
4
  // https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
5
- var COMMENT_REGEX = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
5
+ var COMMENT_REGEX = /\/\*(?:[^*]|\*(?!\/))*\*\//g;
6
6
 
7
7
  var NEWLINE_REGEX = /\n/g;
8
8
  var WHITESPACE_REGEX = /^\s*/;
@@ -10,12 +10,10 @@ var WHITESPACE_REGEX = /^\s*/;
10
10
  // declaration
11
11
  var PROPERTY_REGEX = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
12
12
  var COLON_REGEX = /^:\s*/;
13
- var VALUE_REGEX = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|[^};])+)/;
13
+ var VALUE_REGEX =
14
+ /^((?:'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|url\((?:'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|[^)]*)\)|[^};])+)/;
14
15
  var SEMICOLON_REGEX = /^[;\s]*/;
15
16
 
16
- // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill
17
- var TRIM_REGEX = /^\s+|\s+$/g;
18
-
19
17
  // strings
20
18
  var NEWLINE = '\n';
21
19
  var FORWARD_SLASH = '/';
@@ -207,9 +205,9 @@ function index (style, options) {
207
205
 
208
206
  var ret = pos({
209
207
  type: TYPE_DECLARATION,
210
- property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),
208
+ property: prop[0].replace(COMMENT_REGEX, EMPTY_STRING).trim(),
211
209
  value: val
212
- ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))
210
+ ? val[0].replace(COMMENT_REGEX, EMPTY_STRING).trim()
213
211
  : EMPTY_STRING
214
212
  });
215
213
 
@@ -243,15 +241,5 @@ function index (style, options) {
243
241
  return declarations();
244
242
  }
245
243
 
246
- /**
247
- * Trim `str`.
248
- *
249
- * @param {String} str
250
- * @return {String}
251
- */
252
- function trim(str) {
253
- return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;
254
- }
255
-
256
244
  module.exports = index;
257
245
  //# sourceMappingURL=index.js.map
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../index.js"],"sourcesContent":["// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} rules\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n while ((c = comment())) {\n rules.push(c);\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n comments(decls);\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../index.js"],"sourcesContent":["// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX =\n /^((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|url\\((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|[^)]*)\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} rules\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n while ((c = comment())) {\n rules.push(c);\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: prop[0].replace(COMMENT_REGEX, EMPTY_STRING).trim(),\n value: val\n ? val[0].replace(COMMENT_REGEX, EMPTY_STRING).trim()\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n comments(decls);\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
 
7
7
  // http://www.w3.org/TR/CSS21/grammar.html
8
8
  // https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
9
- var COMMENT_REGEX = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
9
+ var COMMENT_REGEX = /\/\*(?:[^*]|\*(?!\/))*\*\//g;
10
10
 
11
11
  var NEWLINE_REGEX = /\n/g;
12
12
  var WHITESPACE_REGEX = /^\s*/;
@@ -14,12 +14,10 @@
14
14
  // declaration
15
15
  var PROPERTY_REGEX = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
16
16
  var COLON_REGEX = /^:\s*/;
17
- var VALUE_REGEX = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|[^};])+)/;
17
+ var VALUE_REGEX =
18
+ /^((?:'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|url\((?:'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|[^)]*)\)|[^};])+)/;
18
19
  var SEMICOLON_REGEX = /^[;\s]*/;
19
20
 
20
- // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill
21
- var TRIM_REGEX = /^\s+|\s+$/g;
22
-
23
21
  // strings
24
22
  var NEWLINE = '\n';
25
23
  var FORWARD_SLASH = '/';
@@ -211,9 +209,9 @@
211
209
 
212
210
  var ret = pos({
213
211
  type: TYPE_DECLARATION,
214
- property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),
212
+ property: prop[0].replace(COMMENT_REGEX, EMPTY_STRING).trim(),
215
213
  value: val
216
- ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))
214
+ ? val[0].replace(COMMENT_REGEX, EMPTY_STRING).trim()
217
215
  : EMPTY_STRING
218
216
  });
219
217
 
@@ -247,16 +245,6 @@
247
245
  return declarations();
248
246
  }
249
247
 
250
- /**
251
- * Trim `str`.
252
- *
253
- * @param {String} str
254
- * @return {String}
255
- */
256
- function trim(str) {
257
- return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;
258
- }
259
-
260
248
  return index;
261
249
 
262
250
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"inline-style-parser.js","sources":["../index.js"],"sourcesContent":["// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} rules\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n while ((c = comment())) {\n rules.push(c);\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n comments(decls);\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inline-style-parser.js","sources":["../index.js"],"sourcesContent":["// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX =\n /^((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|url\\((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|[^)]*)\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} rules\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n while ((c = comment())) {\n rules.push(c);\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: prop[0].replace(COMMENT_REGEX, EMPTY_STRING).trim(),\n value: val\n ? val[0].replace(COMMENT_REGEX, EMPTY_STRING).trim()\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n comments(decls);\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).InlineStyleParser=e()}(this,(function(){"use strict";var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,e=/\n/g,r=/^\s*/,t=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|[^};])+)/,u=/^[;\s]*/,c=/^\s+|\s+$/g,f="";function s(n){return n?n.replace(c,f):f}return function(c,a){if("string"!=typeof c)throw new TypeError("First argument must be a string");if(!c)return[];a=a||{};var l=1,p=1;function h(n){var r=n.match(e);r&&(l+=r.length);var t=n.lastIndexOf("\n");p=~t?n.length-t:p+n.length}function m(){var n={line:l,column:p};return function(e){return e.position=new v(n),y(),e}}function v(n){this.start=n,this.end={line:l,column:p},this.source=a.source}function d(n){var e=new Error(a.source+":"+l+":"+p+": "+n);if(e.reason=n,e.filename=a.source,e.line=l,e.column=p,e.source=c,!a.silent)throw e}function g(n){var e=n.exec(c);if(e){var r=e[0];return h(r),c=c.slice(r.length),e}}function y(){g(r)}function w(n){for(var e;e=A();)n.push(e);return n}function A(){var n=m();if("/"==c.charAt(0)&&"*"==c.charAt(1)){for(var e=2;f!=c.charAt(e)&&("*"!=c.charAt(e)||"/"!=c.charAt(e+1));)++e;if(e+=2,f===c.charAt(e-1))return d("End of comment missing");var r=c.slice(2,e-2);return p+=2,h(r),c=c.slice(e),p+=2,n({type:"comment",comment:r})}}function b(){var e=m(),r=g(t);if(r){if(A(),!g(o))return d("property missing ':'");var c=g(i),a=e({type:"declaration",property:s(r[0].replace(n,f)),value:c?s(c[0].replace(n,f)):f});return g(u),a}}return v.prototype.content=c,y(),function(){var n,e=[];for(w(e);n=b();)e.push(n),w(e);return e}()}}));
1
+ !function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(n="undefined"!=typeof globalThis?globalThis:n||self).InlineStyleParser=r()}(this,(function(){"use strict";var n=/\/\*(?:[^*]|\*(?!\/))*\*\//g,r=/\n/g,e=/^\s*/,t=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|url\((?:'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|[^)]*)\)|[^};])+)/,u=/^[;\s]*/;return function(c,f){if("string"!=typeof c)throw new TypeError("First argument must be a string");if(!c)return[];f=f||{};var s=1,a=1;function l(n){var e=n.match(r);e&&(s+=e.length);var t=n.lastIndexOf("\n");a=~t?n.length-t:a+n.length}function h(){var n={line:s,column:a};return function(r){return r.position=new p(n),d(),r}}function p(n){this.start=n,this.end={line:s,column:a},this.source=f.source}function m(n){var r=new Error(f.source+":"+s+":"+a+": "+n);if(r.reason=n,r.filename=f.source,r.line=s,r.column=a,r.source=c,!f.silent)throw r}function v(n){var r=n.exec(c);if(r){var e=r[0];return l(e),c=c.slice(e.length),r}}function d(){v(e)}function g(n){for(var r;r=y();)n.push(r);return n}function y(){var n=h();if("/"==c.charAt(0)&&"*"==c.charAt(1)){for(var r=2;""!=c.charAt(r)&&("*"!=c.charAt(r)||"/"!=c.charAt(r+1));)++r;if(r+=2,""===c.charAt(r-1))return m("End of comment missing");var e=c.slice(2,r-2);return a+=2,l(e),c=c.slice(r),a+=2,n({type:"comment",comment:e})}}function w(){var r=h(),e=v(t);if(e){if(y(),!v(i))return m("property missing ':'");var c=v(o),f=r({type:"declaration",property:e[0].replace(n,"").trim(),value:c?c[0].replace(n,"").trim():""});return v(u),f}}return p.prototype.content=c,d(),function(){var n,r=[];for(g(r);n=w();)r.push(n),g(r);return r}()}}));
2
2
  //# sourceMappingURL=inline-style-parser.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-style-parser.min.js","sources":["../index.js"],"sourcesContent":["// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} rules\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n while ((c = comment())) {\n rules.push(c);\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n comments(decls);\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n"],"names":["COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","trim","str","replace","style","options","TypeError","lineno","column","updatePosition","lines","match","length","i","lastIndexOf","position","start","line","node","Position","whitespace","this","end","source","error","msg","err","Error","reason","filename","silent","re","m","exec","slice","comments","rules","c","comment","push","pos","charAt","type","declaration","prop","val","ret","property","value","prototype","content","decl","decls","declarations"],"mappings":"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"}
1
+ {"version":3,"file":"inline-style-parser.min.js","sources":["../index.js"],"sourcesContent":["// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX =\n /^((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|url\\((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|[^)]*)\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} rules\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n while ((c = comment())) {\n rules.push(c);\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: prop[0].replace(COMMENT_REGEX, EMPTY_STRING).trim(),\n value: val\n ? val[0].replace(COMMENT_REGEX, EMPTY_STRING).trim()\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n comments(decls);\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n"],"names":["COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","style","options","TypeError","lineno","column","updatePosition","str","lines","match","length","i","lastIndexOf","position","start","line","node","Position","whitespace","this","end","source","error","msg","err","Error","reason","filename","silent","re","m","exec","slice","comments","rules","c","comment","push","pos","charAt","type","declaration","prop","val","ret","property","replace","trim","value","prototype","content","decl","decls","declarations"],"mappings":"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"}
package/esm/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  // http://www.w3.org/TR/CSS21/grammar.html
2
2
  // https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
3
- var COMMENT_REGEX = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
3
+ var COMMENT_REGEX = /\/\*(?:[^*]|\*(?!\/))*\*\//g;
4
4
 
5
5
  var NEWLINE_REGEX = /\n/g;
6
6
  var WHITESPACE_REGEX = /^\s*/;
@@ -8,12 +8,10 @@ var WHITESPACE_REGEX = /^\s*/;
8
8
  // declaration
9
9
  var PROPERTY_REGEX = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
10
10
  var COLON_REGEX = /^:\s*/;
11
- var VALUE_REGEX = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|[^};])+)/;
11
+ var VALUE_REGEX =
12
+ /^((?:'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|url\((?:'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|[^)]*)\)|[^};])+)/;
12
13
  var SEMICOLON_REGEX = /^[;\s]*/;
13
14
 
14
- // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill
15
- var TRIM_REGEX = /^\s+|\s+$/g;
16
-
17
15
  // strings
18
16
  var NEWLINE = '\n';
19
17
  var FORWARD_SLASH = '/';
@@ -205,9 +203,9 @@ function index (style, options) {
205
203
 
206
204
  var ret = pos({
207
205
  type: TYPE_DECLARATION,
208
- property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),
206
+ property: prop[0].replace(COMMENT_REGEX, EMPTY_STRING).trim(),
209
207
  value: val
210
- ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))
208
+ ? val[0].replace(COMMENT_REGEX, EMPTY_STRING).trim()
211
209
  : EMPTY_STRING
212
210
  });
213
211
 
@@ -241,15 +239,5 @@ function index (style, options) {
241
239
  return declarations();
242
240
  }
243
241
 
244
- /**
245
- * Trim `str`.
246
- *
247
- * @param {String} str
248
- * @return {String}
249
- */
250
- function trim(str) {
251
- return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;
252
- }
253
-
254
242
  export { index as default };
255
243
  //# sourceMappingURL=index.mjs.map
package/esm/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../index.js"],"sourcesContent":["// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} rules\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n while ((c = comment())) {\n rules.push(c);\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n comments(decls);\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../index.js"],"sourcesContent":["// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX =\n /^((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|url\\((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|[^)]*)\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} rules\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n while ((c = comment())) {\n rules.push(c);\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: prop[0].replace(COMMENT_REGEX, EMPTY_STRING).trim(),\n value: val\n ? val[0].replace(COMMENT_REGEX, EMPTY_STRING).trim()\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n comments(decls);\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inline-style-parser",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "An inline style parser.",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.mjs",