diff --git a/package-lock.json b/package-lock.json index 1cad840ee..ea854cf30 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,16 +23,6 @@ } } }, - "JSONStream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", - "dev": true, - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", @@ -1163,8 +1153,8 @@ "integrity": "sha512-8od6g684Fhi5Vpp4ABRv/RBsW1AY6wSHbJHEK6FGTv+8jvAAnlABniZu/FVmX9TcirkHepaEsa1QGkRvbg0CKw==", "dev": true, "requires": { - "JSONStream": "1.3.1", "is-text-path": "1.0.1", + "JSONStream": "1.3.1", "lodash": "4.17.4", "meow": "3.7.0", "split2": "2.2.0", @@ -4605,6 +4595,16 @@ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", "dev": true }, + "JSONStream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", + "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", + "dev": true, + "requires": { + "jsonparse": "1.3.1", + "through": "2.3.8" + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -6597,6 +6597,15 @@ "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=", "dev": true }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, "string-length": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", @@ -6651,15 +6660,6 @@ } } }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, "stringify-object": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.2.1.tgz", diff --git a/packages/core/plugins/values-replace.js b/packages/core/plugins/values-replace.js index 9a0872544..6972d3fa6 100644 --- a/packages/core/plugins/values-replace.js +++ b/packages/core/plugins/values-replace.js @@ -69,6 +69,7 @@ module.exports = (css, result) => { matchRegex = new RegExp( Object.keys(values) + .sort((a, b) => b.length - a.length) .map((v) => `\\b${escape(v)}\\b`) .join("|"), "g" diff --git a/packages/core/test/__snapshots__/values.test.js.snap b/packages/core/test/__snapshots__/values.test.js.snap index 284d1b4f0..223fe78a8 100644 --- a/packages/core/test/__snapshots__/values.test.js.snap +++ b/packages/core/test/__snapshots__/values.test.js.snap @@ -73,6 +73,10 @@ exports[`/processor.js values should support value namespaces 1`] = ` .blue { color: blue; } + +.other { + color: #000; +} " `; diff --git a/packages/core/test/specimens/value-namespace.css b/packages/core/test/specimens/value-namespace.css index fc6bf717c..1589ef9eb 100644 --- a/packages/core/test/specimens/value-namespace.css +++ b/packages/core/test/specimens/value-namespace.css @@ -7,3 +7,7 @@ .blue { color: colors.b; } + +.other { + color: colors.base-other; +} diff --git a/packages/core/test/specimens/values.css b/packages/core/test/specimens/values.css index 4cea35ed8..e52bc5e87 100644 --- a/packages/core/test/specimens/values.css +++ b/packages/core/test/specimens/values.css @@ -1,2 +1,4 @@ @value a: red; @value b: blue; +@value base: #FFF; +@value base-other: #000;