From 65450d9c04790ccc9fb06eac81ea6d8f3cdbfaac Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Thu, 12 Dec 2019 19:48:33 +0300 Subject: [PATCH 1/9] fix: logic for order and media queries for imports (#1018) --- src/runtime/api.js | 31 +- test/__snapshots__/import-option.test.js.snap | 517 ++++++++++++++++-- test/__snapshots__/loader.test.js.snap | 198 ++----- test/fixtures/import/import.css | 16 +- test/fixtures/import/order-1.css | 4 +- test/fixtures/import/order-2.css | 4 +- test/fixtures/import/order-3-1.css | 3 + test/fixtures/import/order-3.css | 5 + test/fixtures/import/order-4-1.css | 3 + test/fixtures/import/order-4-2-1.css | 3 + test/fixtures/import/order-4-2-2.css | 3 + test/fixtures/import/order-4-2.css | 6 + test/fixtures/import/order-4.css | 6 + test/fixtures/import/order.css | 3 + test/runtime/__snapshots__/api.test.js.snap | 6 +- 15 files changed, 588 insertions(+), 220 deletions(-) create mode 100644 test/fixtures/import/order-3-1.css create mode 100644 test/fixtures/import/order-3.css create mode 100644 test/fixtures/import/order-4-1.css create mode 100644 test/fixtures/import/order-4-2-1.css create mode 100644 test/fixtures/import/order-4-2-2.css create mode 100644 test/fixtures/import/order-4-2.css create mode 100644 test/fixtures/import/order-4.css diff --git a/src/runtime/api.js b/src/runtime/api.js index 117f5263..b2acad8c 100644 --- a/src/runtime/api.js +++ b/src/runtime/api.js @@ -13,7 +13,7 @@ module.exports = function(useSourceMap) { const content = cssWithMappingToString(item, useSourceMap); if (item[2]) { - return `@media ${item[2]}{${content}}`; + return `@media ${item[2]} {${content}}`; } return content; @@ -28,33 +28,18 @@ module.exports = function(useSourceMap) { modules = [[null, modules, '']]; } - const alreadyImportedModules = {}; - - for (let i = 0; i < this.length; i++) { - // eslint-disable-next-line prefer-destructuring - const id = this[i][0]; - - if (id != null) { - alreadyImportedModules[id] = true; - } - } - for (let i = 0; i < modules.length; i++) { - const item = modules[i]; + const item = [].concat(modules[i]); - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if (item[0] == null || !alreadyImportedModules[item[0]]) { - if (mediaQuery && !item[2]) { + if (mediaQuery) { + if (!item[2]) { item[2] = mediaQuery; - } else if (mediaQuery) { - item[2] = `(${item[2]}) and (${mediaQuery})`; + } else { + item[2] = `${mediaQuery} and ${item[2]}`; } - - list.push(item); } + + list.push(item); } }; diff --git a/test/__snapshots__/import-option.test.js.snap b/test/__snapshots__/import-option.test.js.snap index e2befe22..e97bc6e2 100644 --- a/test/__snapshots__/import-option.test.js.snap +++ b/test/__snapshots__/import-option.test.js.snap @@ -10,7 +10,7 @@ Array [ b: b; } ", - "((min-width: 100px)) and (screen and print)", + "screen and (orientation:landscape) and (min-width: 100px)", ], Array [ 2, @@ -18,7 +18,15 @@ Array [ c: c; } ", - "screen and print", + "screen and (orientation:landscape)", + ], + Array [ + 3, + ".test { + d: d; +} +", + "(min-width: 100px)", ], Array [ 1, @@ -43,12 +51,12 @@ Array [ Array [ 1, "@import url(http://example.com/other-style.css);", - "screen and print", + "screen and (orientation:landscape)", ], Array [ 1, "@import url(http://example.com/other-style.css);", - "screen and print", + "screen and (orientation:landscape)", ], Array [ 1, @@ -70,6 +78,14 @@ Array [ ", "", ], + Array [ + 5, + ".other-query { + f: f; +} +", + "screen and (orientation:landscape)", + ], Array [ 1, "@import url(https://fonts.googleapis.com/css?family=Roboto);", @@ -127,6 +143,30 @@ Array [ ".strange { color: red; } +", + "", + ], + Array [ + 11, + ".strange { + color: red; +} +", + "", + ], + Array [ + 11, + ".strange { + color: red; +} +", + "", + ], + Array [ + 11, + ".strange { + color: red; +} ", "", ], @@ -156,10 +196,10 @@ Array [ @import url(); @import url(''); @import url(\\"\\"); -@import url(test.css) screen and print; -@import url(test.css) SCREEN AND PRINT; -@import url(test.css)screen and print; -@import url(test.css) screen and print; +@import url(test.css) screen and (orientation:landscape); +@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE); +@import url(test.css)screen and (orientation:landscape); +@import url(test.css) screen and (orientation:landscape); @import url(~package/test.css); @import ; @import foo-bar; @@ -231,19 +271,19 @@ var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??ref- var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and print\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"(min-width: 100px)\\"); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); exports.push([module.id, \\"@import url(http://example.com/style.css#hash);\\"]); exports.push([module.id, \\"@import url(http://example.com/style.css?#hash);\\"]); exports.push([module.id, \\"@import url(http://example.com/style.css?foo=bar#hash);\\"]); -exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and print\\"]); -exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and print\\"]); +exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); +exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); exports.push([module.id, \\"@import url(//example.com/style.css);\\"]); exports.i(___CSS_LOADER_AT_RULE_IMPORT_2___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___, \\"screen and print\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___, \\"screen and (orientation:landscape)\\"); exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Roboto);\\"]); exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC);\\"]); exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);\\"]); @@ -258,7 +298,7 @@ exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module -exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and print;\\\\n@import url(test.css) SCREEN AND PRINT;\\\\n@import url(test.css)screen and print;\\\\n@import url(test.css) screen and print;\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\\\n@import './te\\\\\\\\\\\\nst.css';\\\\n@import './te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css';\\\\n@import url('./te\\\\\\\\\\\\nst.css');\\\\n@import url('./te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css');\\\\n@import './test test.css';\\\\n@import url('./test test.css');\\\\n@import './test\\\\\\\\ test.css';\\\\n@import url('./test\\\\\\\\ test.css');\\\\n@import './test%20test.css';\\\\n@import url('./test%20test.css');\\\\n@import './\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import './t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import url(./test\\\\\\\\ test.css);\\\\n@import url(./t\\\\\\\\65st%20test.css);\\\\n@import url('./t\\\\\\\\65st%20test.css');\\\\n@import url(\\\\\\"./t\\\\\\\\65st%20test.css\\\\\\");\\\\n@import \\\\\\"./t\\\\\\\\65st%20test.css\\\\\\";\\\\n@import './t\\\\\\\\65st%20test.css';\\\\n@import url( test.css );\\\\n\\", \\"\\"]); +exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);\\\\n@import url(test.css)screen and (orientation:landscape);\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\\\n@import './te\\\\\\\\\\\\nst.css';\\\\n@import './te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css';\\\\n@import url('./te\\\\\\\\\\\\nst.css');\\\\n@import url('./te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css');\\\\n@import './test test.css';\\\\n@import url('./test test.css');\\\\n@import './test\\\\\\\\ test.css';\\\\n@import url('./test\\\\\\\\ test.css');\\\\n@import './test%20test.css';\\\\n@import url('./test%20test.css');\\\\n@import './\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import './t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import url(./test\\\\\\\\ test.css);\\\\n@import url(./t\\\\\\\\65st%20test.css);\\\\n@import url('./t\\\\\\\\65st%20test.css');\\\\n@import url(\\\\\\"./t\\\\\\\\65st%20test.css\\\\\\");\\\\n@import \\\\\\"./t\\\\\\\\65st%20test.css\\\\\\";\\\\n@import './t\\\\\\\\65st%20test.css';\\\\n@import url( test.css );\\\\n\\", \\"\\"]); " `; @@ -350,19 +390,19 @@ Array [ @import url(); @import url(''); @import url(\\"\\"); -@import url(test.css) screen and print; -@import url(test.css) SCREEN AND PRINT; -@import url(test.css)screen and print; -@import url(test.css) screen and print; -@import url(test-media.css) screen and print; +@import url(test.css) screen and (orientation:landscape); +@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE); +@import url(test.css)screen and (orientation:landscape); +@import url(test.css) screen and (orientation:landscape); +@import url(test-media.css) screen and (orientation:landscape); @import url(test-other.css) (min-width: 100px); @import url(http://example.com/style.css); @import url(http://example.com/style.css); @import url(http://example.com/style.css#hash); @import url(http://example.com/style.css?#hash); @import url(http://example.com/style.css?foo=bar#hash); -@import url(http://example.com/other-style.css) screen and print; -@import url(http://example.com/other-style.css) screen and print; +@import url(http://example.com/other-style.css) screen and (orientation:landscape); +@import url(http://example.com/other-style.css) screen and (orientation:landscape); @import url(\\"//example.com/style.css\\"); @import url(~package/test.css); @import ; @@ -371,7 +411,7 @@ Array [ @import url('http://') :root {} @import url('query.css?foo=1&bar=1'); @import url('other-query.css?foo=1&bar=1#hash'); -@import url('other-query.css?foo=1&bar=1#hash') screen and print; +@import url('other-query.css?foo=1&bar=1#hash') screen and (orientation:landscape); @import url('https://fonts.googleapis.com/css?family=Roboto'); @import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC'); @import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto'); @@ -444,7 +484,7 @@ var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module -exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and print;\\\\n@import url(test.css) SCREEN AND PRINT;\\\\n@import url(test.css)screen and print;\\\\n@import url(test.css) screen and print;\\\\n@import url(test-media.css) screen and print;\\\\n@import url(test-other.css) (min-width: 100px);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css#hash);\\\\n@import url(http://example.com/style.css?#hash);\\\\n@import url(http://example.com/style.css?foo=bar#hash);\\\\n@import url(http://example.com/other-style.css) screen and print;\\\\n@import url(http://example.com/other-style.css) screen and print;\\\\n@import url(\\\\\\"//example.com/style.css\\\\\\");\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n@import url('query.css?foo=1&bar=1');\\\\n@import url('other-query.css?foo=1&bar=1#hash');\\\\n@import url('other-query.css?foo=1&bar=1#hash') screen and print;\\\\n@import url('https://fonts.googleapis.com/css?family=Roboto');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto');\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n@import url('./relative.css');\\\\n@import url('../import/top-relative.css');\\\\n@import url(~package/tilde.css);\\\\n@import url(~aliasesImport/alias.css);\\\\n@import url('./url.css');\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\\\n@import './te\\\\\\\\\\\\nst.css';\\\\n@import './te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css';\\\\n@import url('./te\\\\\\\\\\\\nst.css');\\\\n@import url('./te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css');\\\\n\\\\n@import \\\\\\"./te'st.css\\\\\\";\\\\n@import url(\\\\\\"./te'st.css\\\\\\");\\\\n@import './te\\\\\\\\'st.css';\\\\n@import url('./te\\\\\\\\'st.css');\\\\n@import './test test.css';\\\\n@import url('./test test.css');\\\\n@import './test\\\\\\\\ test.css';\\\\n@import url('./test\\\\\\\\ test.css');\\\\n@import './test%20test.css';\\\\n@import url('./test%20test.css');\\\\n@import './\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import './t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import url(./test\\\\\\\\ test.css);\\\\n@import url(./t\\\\\\\\65st%20test.css);\\\\n@import url('./t\\\\\\\\65st%20test.css');\\\\n@import url(\\\\\\"./t\\\\\\\\65st%20test.css\\\\\\");\\\\n@import \\\\\\"./t\\\\\\\\65st%20test.css\\\\\\";\\\\n@import './t\\\\\\\\65st%20test.css';\\\\n@import url( test.css );\\\\n\\", \\"\\"]); +exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);\\\\n@import url(test.css)screen and (orientation:landscape);\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test-media.css) screen and (orientation:landscape);\\\\n@import url(test-other.css) (min-width: 100px);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css#hash);\\\\n@import url(http://example.com/style.css?#hash);\\\\n@import url(http://example.com/style.css?foo=bar#hash);\\\\n@import url(http://example.com/other-style.css) screen and (orientation:landscape);\\\\n@import url(http://example.com/other-style.css) screen and (orientation:landscape);\\\\n@import url(\\\\\\"//example.com/style.css\\\\\\");\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n@import url('query.css?foo=1&bar=1');\\\\n@import url('other-query.css?foo=1&bar=1#hash');\\\\n@import url('other-query.css?foo=1&bar=1#hash') screen and (orientation:landscape);\\\\n@import url('https://fonts.googleapis.com/css?family=Roboto');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto');\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n@import url('./relative.css');\\\\n@import url('../import/top-relative.css');\\\\n@import url(~package/tilde.css);\\\\n@import url(~aliasesImport/alias.css);\\\\n@import url('./url.css');\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\\\n@import './te\\\\\\\\\\\\nst.css';\\\\n@import './te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css';\\\\n@import url('./te\\\\\\\\\\\\nst.css');\\\\n@import url('./te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css');\\\\n\\\\n@import \\\\\\"./te'st.css\\\\\\";\\\\n@import url(\\\\\\"./te'st.css\\\\\\");\\\\n@import './te\\\\\\\\'st.css';\\\\n@import url('./te\\\\\\\\'st.css');\\\\n@import './test test.css';\\\\n@import url('./test test.css');\\\\n@import './test\\\\\\\\ test.css';\\\\n@import url('./test\\\\\\\\ test.css');\\\\n@import './test%20test.css';\\\\n@import url('./test%20test.css');\\\\n@import './\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import './t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import url(./test\\\\\\\\ test.css);\\\\n@import url(./t\\\\\\\\65st%20test.css);\\\\n@import url('./t\\\\\\\\65st%20test.css');\\\\n@import url(\\\\\\"./t\\\\\\\\65st%20test.css\\\\\\");\\\\n@import \\\\\\"./t\\\\\\\\65st%20test.css\\\\\\";\\\\n@import './t\\\\\\\\65st%20test.css';\\\\n@import url( test.css );\\\\n\\", \\"\\"]); " `; @@ -456,8 +496,8 @@ exports[`import option should keep original order: module (evaluated) 1`] = ` Array [ Array [ 2, - "div { - background: red; + ".order-1 { + color: red; } ", "", @@ -468,8 +508,20 @@ Array [ ], Array [ 3, - "div { - background: blue; + ".order-1 { + color: red; +} +", + "", + ], + Array [ + 1, + "@import url(http://example.com/style.css);", + ], + Array [ + 2, + ".order-1 { + color: red; } ", "", @@ -478,14 +530,78 @@ Array [ 1, "@import url(http://example.com/style.css);", ], + Array [ + 3, + ".order-1 { + color: red; +} +", + "screen and (min-width: 2000px)", + ], Array [ 1, "@import url(http://example.com/style.css);", ], + Array [ + 5, + ".order-3-1 { + color: white; +} +", + "screen and (orientation:landscape)", + ], + Array [ + 4, + ".order-3 { + color: red; +} +", + "", + ], Array [ 1, "@import url(http://example.com/style.css);", ], + Array [ + 6, + ".order-4-1 { + color: red; +} +", + "screen and (min-width: 1000px)", + ], + Array [ + 8, + ".order-4-2-1 { + color: red; +} +", + "screen and (min-width: 2000px)", + ], + Array [ + 9, + ".order-4-2-2 { + color: red; +} +", + "screen and (min-width: 2000px) and (orientation:landscape)", + ], + Array [ + 7, + ".order-4-2 { + color: red; +} +", + "screen and (min-width: 2000px)", + ], + Array [ + 5, + ".order-4 { + color: red; +} +", + "screen", + ], Array [ 1, "div { @@ -503,6 +619,8 @@ exports[`import option should keep original order: module 1`] = ` var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./order-1.css\\"); var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4-0!./order-2.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4-0!./order-3.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4-0!./order-4.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); @@ -512,6 +630,9 @@ exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"screen and (min-width: 2000px)\\"); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_2___); +exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___, \\"screen\\"); // Module exports.push([module.id, \\"div {\\\\n width: 100%;\\\\n height: 200px;\\\\n}\\\\n\\", \\"\\"]); " @@ -531,13 +652,125 @@ Array [ ", "", ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "screen and (orientation:landscape)", + ], + Array [ + 2, + ".test { + a: a; +} +", + "screen and (orientation: landscape)", + ], + Array [ + 2, + ".test { + a: a; +} +", + "screen and (orientation:landscape)", + ], + Array [ + 2, + ".test { + a: a; +} +", + "screen and (orientation:landscape)", + ], Array [ 4, "a { b: b; } ", - "((min-width: 100px)) and (screen and print)", + "screen and (orientation:landscape) and (min-width: 100px)", ], Array [ 3, @@ -545,7 +778,15 @@ Array [ c: c; } ", - "screen and print", + "screen and (orientation:landscape)", + ], + Array [ + 4, + ".test { + d: d; +} +", + "(min-width: 100px)", ], Array [ 1, @@ -570,12 +811,12 @@ Array [ Array [ 1, "@import url(http://example.com/other-style.css);", - "screen and print", + "screen and (orientation:landscape)", ], Array [ 1, "@import url(http://example.com/other-style.css);", - "screen and print", + "screen and (orientation:landscape)", ], Array [ 1, @@ -605,6 +846,14 @@ Array [ ", "", ], + Array [ + 7, + ".other-query { + f: f; +} +", + "screen and (orientation:landscape)", + ], Array [ 1, "@import url(https://fonts.googleapis.com/css?family=Roboto);", @@ -654,6 +903,70 @@ Array [ ".background-imported { background: url(/webpack/public/path/img.png); } +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 13, + ".strange { + color: red; +} +", + "", + ], + Array [ + 13, + ".strange { + color: red; +} +", + "", + ], + Array [ + 13, + ".strange { + color: red; +} ", "", ], @@ -670,6 +983,134 @@ Array [ ".space { color: gray; } +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 14, + ".space { + color: gray; +} +", + "", + ], + Array [ + 2, + ".test { + a: a; +} ", "", ], @@ -738,24 +1179,24 @@ exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and print\\"); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and print\\"); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and print\\"); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and print\\"); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"screen and print\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation: landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"screen and (orientation:landscape)\\"); exports.i(___CSS_LOADER_AT_RULE_IMPORT_2___, \\"(min-width: 100px)\\"); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); exports.push([module.id, \\"@import url(http://example.com/style.css#hash);\\"]); exports.push([module.id, \\"@import url(http://example.com/style.css?#hash);\\"]); exports.push([module.id, \\"@import url(http://example.com/style.css?foo=bar#hash);\\"]); -exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and print\\"]); -exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and print\\"]); +exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); +exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); exports.push([module.id, \\"@import url(//example.com/style.css);\\"]); exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_4___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___, \\"screen and print\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___, \\"screen and (orientation:landscape)\\"); exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Roboto);\\"]); exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC);\\"]); exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);\\"]); diff --git a/test/__snapshots__/loader.test.js.snap b/test/__snapshots__/loader.test.js.snap index 0405fbdd..3b9a433c 100644 --- a/test/__snapshots__/loader.test.js.snap +++ b/test/__snapshots__/loader.test.js.snap @@ -16,7 +16,7 @@ module.exports = function(useSourceMap) { const content = cssWithMappingToString(item, useSourceMap); if (item[2]) { - return \`@media \${item[2]}{\${content}}\`; + return \`@media \${item[2]} {\${content}}\`; } return content; @@ -31,33 +31,18 @@ module.exports = function(useSourceMap) { modules = [[null, modules, '']]; } - const alreadyImportedModules = {}; - - for (let i = 0; i < this.length; i++) { - // eslint-disable-next-line prefer-destructuring - const id = this[i][0]; - - if (id != null) { - alreadyImportedModules[id] = true; - } - } - for (let i = 0; i < modules.length; i++) { - const item = modules[i]; - - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if (item[0] == null || !alreadyImportedModules[item[0]]) { - if (mediaQuery && !item[2]) { + const item = [].concat(modules[i]); + + if (mediaQuery) { + if (!item[2]) { item[2] = mediaQuery; - } else if (mediaQuery) { - item[2] = \`(\${item[2]}) and (\${mediaQuery})\`; + } else { + item[2] = \`\${mediaQuery} and \${item[2]}\`; } - - list.push(item); } + + list.push(item); } }; @@ -322,7 +307,7 @@ module.exports = function(useSourceMap) { const content = cssWithMappingToString(item, useSourceMap); if (item[2]) { - return \`@media \${item[2]}{\${content}}\`; + return \`@media \${item[2]} {\${content}}\`; } return content; @@ -337,33 +322,18 @@ module.exports = function(useSourceMap) { modules = [[null, modules, '']]; } - const alreadyImportedModules = {}; - - for (let i = 0; i < this.length; i++) { - // eslint-disable-next-line prefer-destructuring - const id = this[i][0]; - - if (id != null) { - alreadyImportedModules[id] = true; - } - } - for (let i = 0; i < modules.length; i++) { - const item = modules[i]; - - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if (item[0] == null || !alreadyImportedModules[item[0]]) { - if (mediaQuery && !item[2]) { + const item = [].concat(modules[i]); + + if (mediaQuery) { + if (!item[2]) { item[2] = mediaQuery; - } else if (mediaQuery) { - item[2] = \`(\${item[2]}) and (\${mediaQuery})\`; + } else { + item[2] = \`\${mediaQuery} and \${item[2]}\`; } - - list.push(item); } + + list.push(item); } }; @@ -652,7 +622,7 @@ module.exports = function(useSourceMap) { const content = cssWithMappingToString(item, useSourceMap); if (item[2]) { - return \`@media \${item[2]}{\${content}}\`; + return \`@media \${item[2]} {\${content}}\`; } return content; @@ -667,33 +637,18 @@ module.exports = function(useSourceMap) { modules = [[null, modules, '']]; } - const alreadyImportedModules = {}; - - for (let i = 0; i < this.length; i++) { - // eslint-disable-next-line prefer-destructuring - const id = this[i][0]; - - if (id != null) { - alreadyImportedModules[id] = true; - } - } - for (let i = 0; i < modules.length; i++) { - const item = modules[i]; - - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if (item[0] == null || !alreadyImportedModules[item[0]]) { - if (mediaQuery && !item[2]) { + const item = [].concat(modules[i]); + + if (mediaQuery) { + if (!item[2]) { item[2] = mediaQuery; - } else if (mediaQuery) { - item[2] = \`(\${item[2]}) and (\${mediaQuery})\`; + } else { + item[2] = \`\${mediaQuery} and \${item[2]}\`; } - - list.push(item); } + + list.push(item); } }; @@ -958,7 +913,7 @@ module.exports = function(useSourceMap) { const content = cssWithMappingToString(item, useSourceMap); if (item[2]) { - return \`@media \${item[2]}{\${content}}\`; + return \`@media \${item[2]} {\${content}}\`; } return content; @@ -973,33 +928,18 @@ module.exports = function(useSourceMap) { modules = [[null, modules, '']]; } - const alreadyImportedModules = {}; - - for (let i = 0; i < this.length; i++) { - // eslint-disable-next-line prefer-destructuring - const id = this[i][0]; - - if (id != null) { - alreadyImportedModules[id] = true; - } - } - for (let i = 0; i < modules.length; i++) { - const item = modules[i]; - - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if (item[0] == null || !alreadyImportedModules[item[0]]) { - if (mediaQuery && !item[2]) { + const item = [].concat(modules[i]); + + if (mediaQuery) { + if (!item[2]) { item[2] = mediaQuery; - } else if (mediaQuery) { - item[2] = \`(\${item[2]}) and (\${mediaQuery})\`; + } else { + item[2] = \`\${mediaQuery} and \${item[2]}\`; } - - list.push(item); } + + list.push(item); } }; @@ -1428,7 +1368,7 @@ module.exports = function(useSourceMap) { const content = cssWithMappingToString(item, useSourceMap); if (item[2]) { - return \`@media \${item[2]}{\${content}}\`; + return \`@media \${item[2]} {\${content}}\`; } return content; @@ -1443,33 +1383,18 @@ module.exports = function(useSourceMap) { modules = [[null, modules, '']]; } - const alreadyImportedModules = {}; - - for (let i = 0; i < this.length; i++) { - // eslint-disable-next-line prefer-destructuring - const id = this[i][0]; - - if (id != null) { - alreadyImportedModules[id] = true; - } - } - for (let i = 0; i < modules.length; i++) { - const item = modules[i]; - - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if (item[0] == null || !alreadyImportedModules[item[0]]) { - if (mediaQuery && !item[2]) { + const item = [].concat(modules[i]); + + if (mediaQuery) { + if (!item[2]) { item[2] = mediaQuery; - } else if (mediaQuery) { - item[2] = \`(\${item[2]}) and (\${mediaQuery})\`; + } else { + item[2] = \`\${mediaQuery} and \${item[2]}\`; } - - list.push(item); } + + list.push(item); } }; @@ -1708,7 +1633,7 @@ module.exports = function(useSourceMap) { const content = cssWithMappingToString(item, useSourceMap); if (item[2]) { - return \`@media \${item[2]}{\${content}}\`; + return \`@media \${item[2]} {\${content}}\`; } return content; @@ -1723,33 +1648,18 @@ module.exports = function(useSourceMap) { modules = [[null, modules, '']]; } - const alreadyImportedModules = {}; - - for (let i = 0; i < this.length; i++) { - // eslint-disable-next-line prefer-destructuring - const id = this[i][0]; - - if (id != null) { - alreadyImportedModules[id] = true; - } - } - for (let i = 0; i < modules.length; i++) { - const item = modules[i]; - - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if (item[0] == null || !alreadyImportedModules[item[0]]) { - if (mediaQuery && !item[2]) { + const item = [].concat(modules[i]); + + if (mediaQuery) { + if (!item[2]) { item[2] = mediaQuery; - } else if (mediaQuery) { - item[2] = \`(\${item[2]}) and (\${mediaQuery})\`; + } else { + item[2] = \`\${mediaQuery} and \${item[2]}\`; } - - list.push(item); } + + list.push(item); } }; diff --git a/test/fixtures/import/import.css b/test/fixtures/import/import.css index b6e7afa5..a9630d92 100644 --- a/test/fixtures/import/import.css +++ b/test/fixtures/import/import.css @@ -22,19 +22,19 @@ @import url(); @import url(''); @import url(""); -@import url(test.css) screen and print; -@import url(test.css) SCREEN AND PRINT; -@import url(test.css)screen and print; -@import url(test.css) screen and print; -@import url(test-media.css) screen and print; +@import url(test.css) screen and (orientation:landscape); +@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE); +@import url(test.css)screen and (orientation:landscape); +@import url(test.css) screen and (orientation:landscape); +@import url(test-media.css) screen and (orientation:landscape); @import url(test-other.css) (min-width: 100px); @import url(http://example.com/style.css); @import url(http://example.com/style.css); @import url(http://example.com/style.css#hash); @import url(http://example.com/style.css?#hash); @import url(http://example.com/style.css?foo=bar#hash); -@import url(http://example.com/other-style.css) screen and print; -@import url(http://example.com/other-style.css) screen and print; +@import url(http://example.com/other-style.css) screen and (orientation:landscape); +@import url(http://example.com/other-style.css) screen and (orientation:landscape); @import url("//example.com/style.css"); @import url(~package/test.css); @import ; @@ -43,7 +43,7 @@ @import url('http://') :root {} @import url('query.css?foo=1&bar=1'); @import url('other-query.css?foo=1&bar=1#hash'); -@import url('other-query.css?foo=1&bar=1#hash') screen and print; +@import url('other-query.css?foo=1&bar=1#hash') screen and (orientation:landscape); @import url('https://fonts.googleapis.com/css?family=Roboto'); @import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC'); @import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto'); diff --git a/test/fixtures/import/order-1.css b/test/fixtures/import/order-1.css index 6380c4c5..3e23caf8 100644 --- a/test/fixtures/import/order-1.css +++ b/test/fixtures/import/order-1.css @@ -1,3 +1,3 @@ -div { - background: red; +.order-1 { + color: red; } diff --git a/test/fixtures/import/order-2.css b/test/fixtures/import/order-2.css index d352d54f..3e23caf8 100644 --- a/test/fixtures/import/order-2.css +++ b/test/fixtures/import/order-2.css @@ -1,3 +1,3 @@ -div { - background: blue; +.order-1 { + color: red; } diff --git a/test/fixtures/import/order-3-1.css b/test/fixtures/import/order-3-1.css new file mode 100644 index 00000000..f34c6020 --- /dev/null +++ b/test/fixtures/import/order-3-1.css @@ -0,0 +1,3 @@ +.order-3-1 { + color: white; +} diff --git a/test/fixtures/import/order-3.css b/test/fixtures/import/order-3.css new file mode 100644 index 00000000..2894e271 --- /dev/null +++ b/test/fixtures/import/order-3.css @@ -0,0 +1,5 @@ +@import url('./order-3-1.css') screen and (orientation:landscape); + +.order-3 { + color: red; +} diff --git a/test/fixtures/import/order-4-1.css b/test/fixtures/import/order-4-1.css new file mode 100644 index 00000000..d80177cb --- /dev/null +++ b/test/fixtures/import/order-4-1.css @@ -0,0 +1,3 @@ +.order-4-1 { + color: red; +} diff --git a/test/fixtures/import/order-4-2-1.css b/test/fixtures/import/order-4-2-1.css new file mode 100644 index 00000000..d063acd2 --- /dev/null +++ b/test/fixtures/import/order-4-2-1.css @@ -0,0 +1,3 @@ +.order-4-2-1 { + color: red; +} diff --git a/test/fixtures/import/order-4-2-2.css b/test/fixtures/import/order-4-2-2.css new file mode 100644 index 00000000..851d03b2 --- /dev/null +++ b/test/fixtures/import/order-4-2-2.css @@ -0,0 +1,3 @@ +.order-4-2-2 { + color: red; +} diff --git a/test/fixtures/import/order-4-2.css b/test/fixtures/import/order-4-2.css new file mode 100644 index 00000000..319f2869 --- /dev/null +++ b/test/fixtures/import/order-4-2.css @@ -0,0 +1,6 @@ +@import url('./order-4-2-1.css'); +@import url('./order-4-2-2.css') (orientation:landscape); + +.order-4-2 { + color: red; +} diff --git a/test/fixtures/import/order-4.css b/test/fixtures/import/order-4.css new file mode 100644 index 00000000..66940a71 --- /dev/null +++ b/test/fixtures/import/order-4.css @@ -0,0 +1,6 @@ +@import url('./order-4-1.css') (min-width: 1000px); +@import url('./order-4-2.css') (min-width: 2000px); + +.order-4 { + color: red; +} diff --git a/test/fixtures/import/order.css b/test/fixtures/import/order.css index 6e6bd41b..0f138102 100644 --- a/test/fixtures/import/order.css +++ b/test/fixtures/import/order.css @@ -6,6 +6,9 @@ @import url(http://example.com/style.css); @import url('./order-2.css') screen and (min-width: 2000px); @import url(http://example.com/style.css); +@import url('./order-3.css'); +@import url(http://example.com/style.css); +@import url('./order-4.css') screen; div { width: 100%; diff --git a/test/runtime/__snapshots__/api.test.js.snap b/test/runtime/__snapshots__/api.test.js.snap index 7f342391..c2abf102 100644 --- a/test/runtime/__snapshots__/api.test.js.snap +++ b/test/runtime/__snapshots__/api.test.js.snap @@ -1,14 +1,14 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`api should import modules 1`] = `"body { b: 2; }body { c: 3; }@media print{body { d: 4; }}@media screen{body { a: 1; }}"`; +exports[`api should import modules 1`] = `"body { b: 2; }body { c: 3; }body { b: 2; }@media print {body { b: 2; }}@media print {body { d: 4; }}@media screen {body { a: 1; }}"`; -exports[`api should import named modules 1`] = `"body { b: 2; }body { c: 3; }@media print{body { d: 4; }}@media screen{body { a: 1; }}"`; +exports[`api should import named modules 1`] = `"body { b: 2; }body { c: 3; }body { b: 2; }@media print {body { b: 2; }}@media print {body { d: 4; }}@media screen {body { a: 1; }}"`; exports[`api should toString a single module 1`] = `"body { a: 1; }"`; exports[`api should toString multiple modules 1`] = `"body { b: 2; }body { a: 1; }"`; -exports[`api should toString with media query 1`] = `"@media screen{body { a: 1; }}"`; +exports[`api should toString with media query 1`] = `"@media screen {body { a: 1; }}"`; exports[`api should toString with source mapping 1`] = ` "body { a: 1; } From ee40727658f603460058b70654f4d0695d3783f7 Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Fri, 13 Dec 2019 14:48:16 +0300 Subject: [PATCH 2/9] chore(defaults): update (#1020) --- .editorconfig | 1 - CHANGELOG.md | 7 ++ azure-pipelines.yml | 58 +++++++---- lint-staged.config.js | 2 +- package-lock.json | 201 +++++++++++++++++++++++------------- package.json | 32 +++--- test/helpers.js | 8 +- test/modules-option.test.js | 2 + 8 files changed, 200 insertions(+), 111 deletions(-) diff --git a/.editorconfig b/.editorconfig index 9f89f364..5f795282 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,5 +9,4 @@ insert_final_newline = true trim_trailing_whitespace = true [*.md] -insert_final_newline = true trim_trailing_whitespace = false diff --git a/CHANGELOG.md b/CHANGELOG.md index 31f4e3e4..b4f61eb4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [3.3.2](https://github.com/webpack-contrib/css-loader/compare/v3.3.1...v3.3.2) (2019-12-12) + + +### Bug Fixes + +* logic for order and media queries for imports ([1fb5134](https://github.com/webpack-contrib/css-loader/commit/1fb51340a7719b6f5b517cb71ea85ec5d45c1199)) + ### [3.3.1](https://github.com/webpack-contrib/css-loader/compare/v3.3.0...v3.3.1) (2019-12-12) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 500925c2..192d686e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,10 +2,13 @@ trigger: - master - next +variables: + npm_config_cache: $(Pipeline.Workspace)/.npm + jobs: - job: Lint pool: - vmImage: ubuntu-16.04 + vmImage: ubuntu-latest steps: - task: NodeTool@0 inputs: @@ -20,10 +23,12 @@ jobs: node -v npm -v displayName: 'Print versions' - - task: Npm@1 + - task: CacheBeta@1 inputs: - command: custom - customCommand: ci + key: npm | $(Agent.OS) | package-lock.json + path: $(npm_config_cache) + displayName: 'Cache npm' + - script: npm ci displayName: 'Install dependencies' - script: npm run lint displayName: 'Run lint' @@ -34,10 +39,13 @@ jobs: - job: Linux pool: - vmImage: ubuntu-16.04 + vmImage: ubuntu-latest strategy: - maxParallel: 4 + maxParallel: 5 matrix: + node-13: + node_version: ^13.0.0 + webpack_version: latest node-12: node_version: ^12.0.0 webpack_version: latest @@ -65,10 +73,12 @@ jobs: node -v npm -v displayName: 'Print versions' - - task: Npm@1 + - task: CacheBeta@1 inputs: - command: custom - customCommand: ci + key: npm | $(Agent.OS) | package-lock.json + path: $(npm_config_cache) + displayName: 'Cache npm' + - script: npm ci displayName: 'Install dependencies' - script: npm i webpack@$(webpack_version) displayName: 'Install "webpack@$(webpack_version)"' @@ -86,10 +96,13 @@ jobs: - job: macOS pool: - vmImage: macOS-10.14 + vmImage: macOS-latest strategy: - maxParallel: 4 + maxParallel: 5 matrix: + node-13: + node_version: ^13.0.0 + webpack_version: latest node-12: node_version: ^12.0.0 webpack_version: latest @@ -117,10 +130,12 @@ jobs: node -v npm -v displayName: 'Print versions' - - task: Npm@1 + - task: CacheBeta@1 inputs: - command: custom - customCommand: ci + key: npm | $(Agent.OS) | package-lock.json + path: $(npm_config_cache) + displayName: 'Cache npm' + - script: npm ci displayName: 'Install dependencies' - script: npm i webpack@$(webpack_version) displayName: 'Install "webpack@$(webpack_version)"' @@ -138,10 +153,13 @@ jobs: - job: Windows pool: - vmImage: windows-2019 + vmImage: windows-latest strategy: - maxParallel: 4 + maxParallel: 5 matrix: + node-13: + node_version: ^13.0.0 + webpack_version: latest node-12: node_version: ^12.0.0 webpack_version: latest @@ -172,10 +190,12 @@ jobs: node -v npm -v displayName: 'Print versions' - - task: Npm@1 + - task: CacheBeta@1 inputs: - command: custom - customCommand: ci + key: npm | $(Agent.OS) | package-lock.json + path: $(npm_config_cache) + displayName: 'Cache npm' + - script: npm ci displayName: 'Install dependencies' - script: npm i webpack@$(webpack_version) displayName: 'Install "webpack@$(webpack_version)"' diff --git a/lint-staged.config.js b/lint-staged.config.js index 77a86a71..618a5ec4 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -1,4 +1,4 @@ module.exports = { '*.js': ['prettier --write', 'eslint --fix', 'git add'], - '*.{json,md,yml,css}': ['prettier --write', 'git add'], + '*.{json,md,yml,css,ts}': ['prettier --write', 'git add'], }; diff --git a/package-lock.json b/package-lock.json index eeea1746..e868fc77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "css-loader", - "version": "3.3.1", + "version": "3.3.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1691,9 +1691,9 @@ } }, "@webpack-contrib/defaults": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@webpack-contrib/defaults/-/defaults-5.1.1.tgz", - "integrity": "sha512-UvWJSpCBVzDpCASLhBuiSw/S5i57Z3FqO5X2cRqkvDR6TlhaPp0cXLr7R83xyRs2+eZ5pyl9UnP8HtSJx1s7Fw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@webpack-contrib/defaults/-/defaults-6.3.0.tgz", + "integrity": "sha512-B5oYSmvwWbDILf2mgmJFkQe/BdWoiRm3+KbUkVAl/UdowvWKDDFd5w77WpGES3BTY+bgd4+GYf4cBXNQdbEv4Q==", "dev": true, "requires": { "chalk": "^2.3.0", @@ -1941,13 +1941,13 @@ "dev": true }, "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.0.tgz", + "integrity": "sha512-ONOEQoKrvXPKk7Su92Co0YMqYO32FfqJTzkKU9u2UpIXyYZIzLSvpdg4AwvSw4mSUW0czu6inK+zby6Oj6gDjQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.0" } }, "array-union": { @@ -1963,14 +1963,13 @@ "dev": true }, "array.prototype.flat": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.2.tgz", - "integrity": "sha512-VXjh7lAL4KXKF2hY4FnEW9eRW6IhdvFW1sN/JwLbmECbCgACCnBHNyP3lFiYuttr0jxRN9Bsc5+G27dMseSWqQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.15.0", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.0-next.1" } }, "arrify": { @@ -3583,9 +3582,9 @@ "dev": true }, "core-js-compat": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.8.tgz", - "integrity": "sha512-l3WTmnXHV2Sfu5VuD7EHE2w7y+K68+kULKt5RJg8ZJk3YhHF1qLD4O8v8AmNq+8vbOwnPFFDvds25/AoEvMqlQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.5.0.tgz", + "integrity": "sha512-E7iJB72svRjJTnm9HDvujzNVMCm3ZcDYEedkJ/sDTNsy/0yooCd9Cg7GSzE7b4e0LfIkjijdB1tqg0pGwxWeWg==", "dev": true, "requires": { "browserslist": "^4.8.2", @@ -4309,6 +4308,18 @@ "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } } }, "errno": { @@ -4330,9 +4341,9 @@ } }, "es-abstract": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.3.tgz", - "integrity": "sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==", + "version": "1.17.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz", + "integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", @@ -4343,6 +4354,7 @@ "is-regex": "^1.0.4", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", + "object.assign": "^4.1.0", "string.prototype.trimleft": "^2.1.0", "string.prototype.trimright": "^2.1.0" } @@ -5061,6 +5073,12 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, + "fast-extend": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fast-extend/-/fast-extend-1.0.2.tgz", + "integrity": "sha512-XXA9RmlPatkFKUzqVZAFth18R4Wo+Xug/S+C7YlYA3xrXwfPlW3dqNwOb4hvQo7wZJ2cNDYhrYuPzVOfHy5/uQ==", + "dev": true + }, "fast-glob": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz", @@ -5401,6 +5419,12 @@ "universalify": "^0.1.0" } }, + "fs-monkey": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-0.3.3.tgz", + "integrity": "sha512-FNUvuTAJ3CqCQb5ELn+qCbGR/Zllhf2HtwsdAtBi59s1WeCjKMT81fHcSu7dwIskqGVK+MmOrb7VOBlq3/SItw==", + "dev": true + }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -5426,9 +5450,9 @@ "dev": true }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.10.tgz", + "integrity": "sha512-Dw5DScF/8AWhWzWRbnQrFJfeR/TOJZjRr9Du9kfmd8t234ICcVeDBlauFl/jVcE5ZewhlPoCFvIqp0SE3kAVxA==", "dev": true, "optional": true, "requires": { @@ -5481,7 +5505,7 @@ } }, "chownr": { - "version": "1.1.1", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true @@ -5511,7 +5535,7 @@ "optional": true }, "debug": { - "version": "4.1.1", + "version": "3.2.6", "bundled": true, "dev": true, "optional": true, @@ -5538,12 +5562,12 @@ "optional": true }, "fs-minipass": { - "version": "1.2.5", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -5569,7 +5593,7 @@ } }, "glob": { - "version": "7.1.3", + "version": "7.1.6", "bundled": true, "dev": true, "optional": true, @@ -5598,7 +5622,7 @@ } }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "optional": true, @@ -5617,7 +5641,7 @@ } }, "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, "dev": true, "optional": true @@ -5659,7 +5683,7 @@ "optional": true }, "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "optional": true, @@ -5669,12 +5693,12 @@ } }, "minizlib": { - "version": "1.2.1", + "version": "1.3.3", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -5687,18 +5711,18 @@ } }, "ms": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^4.1.0", + "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } @@ -5732,13 +5756,22 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.4.1", + "version": "1.4.7", "bundled": true, "dev": true, "optional": true, @@ -5809,7 +5842,7 @@ "optional": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "dev": true, "optional": true @@ -5850,7 +5883,7 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, "dev": true, "optional": true, @@ -5877,7 +5910,7 @@ "optional": true }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "dev": true, "optional": true @@ -5930,18 +5963,18 @@ "optional": true }, "tar": { - "version": "4.4.8", + "version": "4.4.13", "bundled": true, "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -5966,7 +5999,7 @@ "optional": true }, "yallist": { - "version": "3.0.3", + "version": "3.1.1", "bundled": true, "dev": true, "optional": true @@ -8663,10 +8696,20 @@ "safe-buffer": "^5.1.2" } }, + "memfs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.0.1.tgz", + "integrity": "sha512-v8MPoino1vfmwl2LDbFAg5tgPd7EPvKLvcSkx/CDJGB3JCGyHZSasRtC63wmM+iHFXh4cooYCu+cWCd1dqh2+A==", + "dev": true, + "requires": { + "fast-extend": "1.0.2", + "fs-monkey": "0.3.3" + } + }, "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { "errno": "^0.1.3", @@ -9256,13 +9299,13 @@ } }, "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "object.pick": { @@ -9275,13 +9318,13 @@ } }, "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", + "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "has": "^1.0.3" } @@ -10547,9 +10590,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.1.tgz", + "integrity": "sha512-7LutE94sz/NKSYegK+/4E77+8DipxF+Qn2Tmu362AcmsF2NYq/wx3+ObvU90TKEhjf7hQoFXo23ajjrXP7eUgg==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -11572,9 +11615,9 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "string-argv": { @@ -11646,6 +11689,26 @@ "define-properties": "^1.1.2", "es-abstract": "^1.4.3", "function-bind": "^1.0.2" + }, + "dependencies": { + "es-abstract": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.3.tgz", + "integrity": "sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + } + } } }, "string.prototype.trimleft": { @@ -12483,16 +12546,6 @@ "estraverse": "^4.1.1" } }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", diff --git a/package.json b/package.json index 12ec1230..003bbb85 100644 --- a/package.json +++ b/package.json @@ -1,35 +1,39 @@ { "name": "css-loader", - "version": "3.3.1", + "version": "3.3.2", "description": "css loader module for webpack", "license": "MIT", "repository": "webpack-contrib/css-loader", "author": "Tobias Koppers @sokra", "homepage": "https://github.com/webpack-contrib/css-loader", "bugs": "https://github.com/webpack-contrib/css-loader/issues", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, "main": "dist/cjs.js", "engines": { "node": ">= 8.9.0" }, "scripts": { "start": "npm run build -- -w", - "prebuild": "npm run clean", - "build": "cross-env NODE_ENV=production babel src -d dist --ignore \"src/**/*.test.js\" --copy-files", + "clean": "del-cli dist", "validate:runtime": "es-check es5 \"dist/runtime/**/*.js\"", + "prebuild": "npm run clean", + "build": "cross-env NODE_ENV=production babel src -d dist --copy-files", "postbuild": "npm run validate:runtime", - "clean": "del-cli dist", "commitlint": "commitlint --from=master", - "lint:prettier": "prettier \"{**/*,*}.{js,json,md,yml,css}\" --list-different", - "lint:js": "eslint --cache src test", - "lint": "npm-run-all -l -p \"lint:**\"", - "prepare": "npm run build", - "release": "standard-version", "security": "npm audit", + "lint:prettier": "prettier \"{**/*,*}.{js,json,md,yml,css,ts}\" --list-different", + "lint:js": "eslint --cache .", + "lint": "npm-run-all -l -p \"lint:**\"", "test:only": "cross-env NODE_ENV=test jest", - "test:watch": "cross-env NODE_ENV=test jest --watch", - "test:coverage": "cross-env NODE_ENV=test jest --collectCoverageFrom=\"src/**/*.js\" --coverage", + "test:watch": "npm run test:only -- --watch", + "test:coverage": "npm run test:only -- --collectCoverageFrom=\"src/**/*.js\" --coverage", "pretest": "npm run lint", - "test": "cross-env NODE_ENV=test npm run test:coverage", + "test": "npm run test:coverage", + "prepare": "npm run build", + "release": "standard-version", "defaults": "webpack-defaults" }, "files": [ @@ -60,7 +64,7 @@ "@babel/preset-env": "^7.7.4", "@commitlint/cli": "^8.2.0", "@commitlint/config-conventional": "^8.2.0", - "@webpack-contrib/defaults": "^5.0.2", + "@webpack-contrib/defaults": "^6.3.0", "@webpack-contrib/eslint-config-webpack": "^3.0.0", "babel-jest": "^24.9.0", "commitlint-azure-pipelines-cli": "^1.0.2", @@ -76,7 +80,7 @@ "jest": "^24.9.0", "jest-junit": "^9.0.0", "lint-staged": "^9.5.0", - "memory-fs": "^0.5.0", + "memfs": "^3.0.1", "npm-run-all": "^4.1.5", "postcss-loader": "^3.0.0", "postcss-preset-env": "^6.7.0", diff --git a/test/helpers.js b/test/helpers.js index dc182401..12c85f8c 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -3,7 +3,7 @@ import path from 'path'; import del from 'del'; import webpack from 'webpack'; -import MemoryFS from 'memory-fs'; +import { createFsFromVolume, Volume } from 'memfs'; import stripAnsi from 'strip-ansi'; import normalizePath from 'normalize-path'; @@ -205,7 +205,11 @@ function compile(fixture, config = {}, options = {}) { const compiler = webpack(config); if (!options.output) { - compiler.outputFileSystem = new MemoryFS(); + const outputFileSystem = createFsFromVolume(new Volume()); + // Todo remove when we drop webpack@4 support + outputFileSystem.join = path.join.bind(path); + + compiler.outputFileSystem = outputFileSystem; } return new Promise((resolve, reject) => diff --git a/test/modules-option.test.js b/test/modules-option.test.js index 61496b33..05645abe 100644 --- a/test/modules-option.test.js +++ b/test/modules-option.test.js @@ -6,6 +6,8 @@ import { webpack, evaluated } from './helpers'; const testCasesPath = path.join(__dirname, 'fixtures/modules/tests-cases'); const testCases = fs.readdirSync(testCasesPath); +jest.setTimeout(30000); + describe('modules', () => { [ true, From ea26c56f6ef691ba78c5042900cfcb3cf1efed32 Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Mon, 16 Dec 2019 16:30:10 +0300 Subject: [PATCH 3/9] test: refactor * test: refactor * test: refactor url option test * test: refactor onlyLocals option test * test: refactor import option test * test: refactor localsConvention option test * test: refactor * test: refactor icss * test: refactor importLoaders option * test: refactor loader code * test: refactor modules code * test: refactor sourceMap code * test: refactor * test: refactor * test: refactor * test: refactor * test: refactor * test: refactor * test: refactor * test: refactor * test: refactor * test: refactor * test: refactor * test: refactor * test: refactor * test: refactor --- src/utils.js | 2 +- test/__snapshots__/icss.test.js.snap | 254 +- test/__snapshots__/import-option.test.js.snap | 1517 +- .../importLoaders-option.test.js.snap | 116 +- test/__snapshots__/loader.test.js.snap | 1825 +-- .../localsConvention-option.test.js.snap | 250 +- .../__snapshots__/modules-option.test.js.snap | 13267 +++++++++------- .../onlyLocals-option.test.js.snap | 75 +- .../sourceMap-option.test.js.snap | 365 +- test/__snapshots__/url-option.test.js.snap | 788 +- .../validate-options.test.js.snap | 204 +- test/cjs.test.js | 10 +- test/fixtures/basic.js | 7 +- test/fixtures/empty.js | 5 + .../source.js | 5 + .../tests-cases/duplicate-export/source.js | 5 + .../icss/tests-cases/empty-export/source.js | 5 + .../icss/tests-cases/empty-import/source.js | 5 + .../export-reserved-keywords/source.js | 5 + .../icss/tests-cases/export/source.js | 5 + .../import-reserved-keywords/source.js | 5 + .../icss/tests-cases/import/source.js | 5 + .../tests-cases/multiple-export/source.js | 5 + .../multiple-keys-values-in-export/source.js | 5 + test/fixtures/import/import.js | 5 + test/fixtures/import/order.js | 5 + test/fixtures/invalid.js | 5 + .../fixtures/modules/{ => composes}/alias.css | 0 .../{ => composes}/composes-duplicate.css | 2 +- .../modules/composes/composes-duplicate.js | 5 + .../modules/{ => composes}/composes.css | 10 +- test/fixtures/modules/composes/composes.js | 5 + .../{ => composes}/imported-simple.css | 0 .../modules/{ => composes}/relative.css | 0 .../modules/{ => composes}/something.css | 0 .../modules/{ => composes}/test-other.css | 0 .../modules/{ => composes}/top-relative.css | 0 .../modules/{ => composes}/values.css | 0 test/fixtures/modules/getLocalIdent.css | 7 - test/fixtures/modules/issue-286/source.js | 5 + test/fixtures/modules/issue-636/source.js | 5 + .../node_modules/@localpackage/color.css | 0 .../node_modules/@localpackage/style.css | 6 + .../node_modules/@otherlocalpackage/style.css | 0 .../node_modules/package/style.css | 0 .../issue-861/resolving-from-node_modules.css | 8 + .../issue-861/resolving-from-node_modules.js | 5 + test/fixtures/modules/issue-966/button.js | 5 + .../{ => issue-967}/path-placeholder.css | 0 .../modules/issue-967/path-placeholder.js | 5 + .../file.with.many.dots.in.name.css | 0 .../issue-980/file.with.many.dots.in.name.js | 5 + .../modules/{ => issue-995}/issue-995.css | 0 test/fixtures/modules/issue-995/issue-995.js | 5 + .../{ => localIdentName}/localIdentName.css | 0 .../modules/localIdentName/localIdentName.js | 5 + .../localsConvention.css | 0 .../localsConvention/localsConvention.js | 5 + .../node_modules/@localpackage/style.css | 6 - test/fixtures/modules/order/index.js | 5 + test/fixtures/modules/{ => pure}/pure.css | 0 test/fixtures/modules/pure/pure.js | 5 + .../modules/resolving-inside-node-modules.css | 8 - .../modules/tests-cases/animation/source.js | 5 + .../modules/tests-cases/class-names/source.js | 5 + .../tests-cases/comment-in-local/source.js | 5 + .../modules/tests-cases/comments/source.js | 5 + .../modules/tests-cases/composes-1/source.js | 5 + .../modules/tests-cases/composes-2/source.js | 5 + .../tests-cases/composes-multiple/source.js | 5 + .../composes-with-importing/source.js | 5 + .../modules/tests-cases/composes/source.js | 5 + .../tests-cases/declaration-value/source.js | 5 + .../modules/tests-cases/issue-589/source.js | 5 + .../keyframes-and-animation/source.js | 5 + .../modules/tests-cases/leak-scope/source.js | 5 + .../modules/tests-cases/local-2/source.js | 5 + .../tests-cases/local-and-composes/source.js | 5 + .../tests-cases/local-with-string/source.js | 5 + .../modules/tests-cases/local/source.js | 5 + .../modules/tests-cases/media-2/source.js | 5 + .../modules/tests-cases/media/source.js | 5 + .../tests-cases/mode-switching/source.js | 5 + .../modules/tests-cases/simple/source.js | 5 + .../modules/tests-cases/urls/source.js | 5 + .../modules/tests-cases/values-1/source.js | 5 + .../modules/tests-cases/values-10/source.js | 5 + .../modules/tests-cases/values-2/source.js | 5 + .../modules/tests-cases/values-3/source.js | 5 + .../modules/tests-cases/values-4/source.js | 5 + .../modules/tests-cases/values-5/source.js | 5 + .../modules/tests-cases/values-6/source.js | 5 + .../modules/tests-cases/values-7/source.js | 5 + .../modules/tests-cases/values-8/source.js | 5 + .../modules/tests-cases/values-9/source.js | 5 + .../modules/tests-cases/values/source.js | 5 + test/fixtures/nested-import/source.js | 5 + test/fixtures/postcss-present-env/source.js | 5 + test/fixtures/scss/source.js | 5 + test/fixtures/simple.css | 3 + test/fixtures/simple.js | 5 + test/fixtures/source-map/basic-postcss.js | 5 + test/fixtures/source-map/basic-scss.js | 5 + test/fixtures/source-map/basic.js | 5 + test/fixtures/url/url.js | 5 + test/helpers.js | 271 - test/helpers/compile.js | 11 + test/helpers/execute.js | 22 + test/helpers/getCompiler.js | 60 + test/helpers/getErrors.js | 5 + test/helpers/getModuleSource.js | 6 + test/helpers/getWarnings.js | 5 + test/helpers/index.js | 21 + test/helpers/normalizeErrors.js | 29 + test/helpers/readAsset.js | 23 + test/helpers/readAssets.js | 11 + test/icss.test.js | 31 +- test/import-option.test.js | 130 +- test/importLoaders-option.test.js | 242 +- test/loader.test.js | 363 +- test/localsConvention-option.test.js | 214 +- test/modules-option.test.js | 973 +- test/onlyLocals-option.test.js | 49 +- test/runtime/__snapshots__/api.test.js.snap | 4 +- test/runtime/api.test.js | 13 +- test/sourceMap-option.test.js | 668 +- test/url-option.test.js | 110 +- test/validate-options.test.js | 214 +- 128 files changed, 12630 insertions(+), 9915 deletions(-) create mode 100644 test/fixtures/empty.js create mode 100644 test/fixtures/icss/tests-cases/duplicate-export-in-multiple-export/source.js create mode 100644 test/fixtures/icss/tests-cases/duplicate-export/source.js create mode 100644 test/fixtures/icss/tests-cases/empty-export/source.js create mode 100644 test/fixtures/icss/tests-cases/empty-import/source.js create mode 100644 test/fixtures/icss/tests-cases/export-reserved-keywords/source.js create mode 100644 test/fixtures/icss/tests-cases/export/source.js create mode 100644 test/fixtures/icss/tests-cases/import-reserved-keywords/source.js create mode 100644 test/fixtures/icss/tests-cases/import/source.js create mode 100644 test/fixtures/icss/tests-cases/multiple-export/source.js create mode 100644 test/fixtures/icss/tests-cases/multiple-keys-values-in-export/source.js create mode 100644 test/fixtures/import/import.js create mode 100644 test/fixtures/import/order.js create mode 100644 test/fixtures/invalid.js rename test/fixtures/modules/{ => composes}/alias.css (100%) rename test/fixtures/modules/{ => composes}/composes-duplicate.css (67%) create mode 100644 test/fixtures/modules/composes/composes-duplicate.js rename test/fixtures/modules/{ => composes}/composes.css (89%) create mode 100644 test/fixtures/modules/composes/composes.js rename test/fixtures/modules/{ => composes}/imported-simple.css (100%) rename test/fixtures/modules/{ => composes}/relative.css (100%) rename test/fixtures/modules/{ => composes}/something.css (100%) rename test/fixtures/modules/{ => composes}/test-other.css (100%) rename test/fixtures/modules/{ => composes}/top-relative.css (100%) rename test/fixtures/modules/{ => composes}/values.css (100%) delete mode 100644 test/fixtures/modules/getLocalIdent.css create mode 100644 test/fixtures/modules/issue-286/source.js create mode 100644 test/fixtures/modules/issue-636/source.js rename test/fixtures/modules/{ => issue-861}/node_modules/@localpackage/color.css (100%) create mode 100644 test/fixtures/modules/issue-861/node_modules/@localpackage/style.css rename test/fixtures/modules/{ => issue-861}/node_modules/@otherlocalpackage/style.css (100%) rename test/fixtures/modules/{ => issue-861}/node_modules/package/style.css (100%) create mode 100644 test/fixtures/modules/issue-861/resolving-from-node_modules.css create mode 100644 test/fixtures/modules/issue-861/resolving-from-node_modules.js create mode 100644 test/fixtures/modules/issue-966/button.js rename test/fixtures/modules/{ => issue-967}/path-placeholder.css (100%) create mode 100644 test/fixtures/modules/issue-967/path-placeholder.js rename test/fixtures/modules/{ => issue-980}/file.with.many.dots.in.name.css (100%) create mode 100644 test/fixtures/modules/issue-980/file.with.many.dots.in.name.js rename test/fixtures/modules/{ => issue-995}/issue-995.css (100%) create mode 100644 test/fixtures/modules/issue-995/issue-995.js rename test/fixtures/modules/{ => localIdentName}/localIdentName.css (100%) create mode 100644 test/fixtures/modules/localIdentName/localIdentName.js rename test/fixtures/modules/{ => localsConvention}/localsConvention.css (100%) create mode 100644 test/fixtures/modules/localsConvention/localsConvention.js delete mode 100644 test/fixtures/modules/node_modules/@localpackage/style.css create mode 100644 test/fixtures/modules/order/index.js rename test/fixtures/modules/{ => pure}/pure.css (100%) create mode 100644 test/fixtures/modules/pure/pure.js delete mode 100644 test/fixtures/modules/resolving-inside-node-modules.css create mode 100644 test/fixtures/modules/tests-cases/animation/source.js create mode 100644 test/fixtures/modules/tests-cases/class-names/source.js create mode 100644 test/fixtures/modules/tests-cases/comment-in-local/source.js create mode 100644 test/fixtures/modules/tests-cases/comments/source.js create mode 100644 test/fixtures/modules/tests-cases/composes-1/source.js create mode 100644 test/fixtures/modules/tests-cases/composes-2/source.js create mode 100644 test/fixtures/modules/tests-cases/composes-multiple/source.js create mode 100644 test/fixtures/modules/tests-cases/composes-with-importing/source.js create mode 100644 test/fixtures/modules/tests-cases/composes/source.js create mode 100644 test/fixtures/modules/tests-cases/declaration-value/source.js create mode 100644 test/fixtures/modules/tests-cases/issue-589/source.js create mode 100644 test/fixtures/modules/tests-cases/keyframes-and-animation/source.js create mode 100644 test/fixtures/modules/tests-cases/leak-scope/source.js create mode 100644 test/fixtures/modules/tests-cases/local-2/source.js create mode 100644 test/fixtures/modules/tests-cases/local-and-composes/source.js create mode 100644 test/fixtures/modules/tests-cases/local-with-string/source.js create mode 100644 test/fixtures/modules/tests-cases/local/source.js create mode 100644 test/fixtures/modules/tests-cases/media-2/source.js create mode 100644 test/fixtures/modules/tests-cases/media/source.js create mode 100644 test/fixtures/modules/tests-cases/mode-switching/source.js create mode 100644 test/fixtures/modules/tests-cases/simple/source.js create mode 100644 test/fixtures/modules/tests-cases/urls/source.js create mode 100644 test/fixtures/modules/tests-cases/values-1/source.js create mode 100644 test/fixtures/modules/tests-cases/values-10/source.js create mode 100644 test/fixtures/modules/tests-cases/values-2/source.js create mode 100644 test/fixtures/modules/tests-cases/values-3/source.js create mode 100644 test/fixtures/modules/tests-cases/values-4/source.js create mode 100644 test/fixtures/modules/tests-cases/values-5/source.js create mode 100644 test/fixtures/modules/tests-cases/values-6/source.js create mode 100644 test/fixtures/modules/tests-cases/values-7/source.js create mode 100644 test/fixtures/modules/tests-cases/values-8/source.js create mode 100644 test/fixtures/modules/tests-cases/values-9/source.js create mode 100644 test/fixtures/modules/tests-cases/values/source.js create mode 100644 test/fixtures/nested-import/source.js create mode 100644 test/fixtures/postcss-present-env/source.js create mode 100644 test/fixtures/scss/source.js create mode 100644 test/fixtures/simple.css create mode 100644 test/fixtures/simple.js create mode 100644 test/fixtures/source-map/basic-postcss.js create mode 100644 test/fixtures/source-map/basic-scss.js create mode 100644 test/fixtures/source-map/basic.js create mode 100644 test/fixtures/url/url.js delete mode 100644 test/helpers.js create mode 100644 test/helpers/compile.js create mode 100644 test/helpers/execute.js create mode 100644 test/helpers/getCompiler.js create mode 100644 test/helpers/getErrors.js create mode 100644 test/helpers/getModuleSource.js create mode 100644 test/helpers/getWarnings.js create mode 100644 test/helpers/index.js create mode 100644 test/helpers/normalizeErrors.js create mode 100644 test/helpers/readAsset.js create mode 100644 test/helpers/readAssets.js diff --git a/src/utils.js b/src/utils.js index cfbf69f5..010183ef 100644 --- a/src/utils.js +++ b/src/utils.js @@ -162,7 +162,7 @@ function normalizeSourceMap(map) { // Some loader emit source map as string // Strip any JSON XSSI avoidance prefix from the string (as documented in the source maps specification), and then parse the string as JSON. if (typeof newMap === 'string') { - newMap = JSON.parse(newMap.replace(/^\)]}'[^\n]*\n/, '')); + newMap = JSON.parse(newMap); } // Source maps should use forward slash because it is URLs (https://github.com/mozilla/source-map/issues/91) diff --git a/test/__snapshots__/icss.test.js.snap b/test/__snapshots__/icss.test.js.snap index ff8f2468..542389d2 100644 --- a/test/__snapshots__/icss.test.js.snap +++ b/test/__snapshots__/icss.test.js.snap @@ -1,17 +1,23 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`ICSS case duplicate-export: errors 1`] = `Array []`; - -exports[`ICSS case duplicate-export: locals 1`] = ` -Object { - "_test": "_right_value", -} +exports[`ICSS show work with the case "duplicate-export": errors 1`] = `Array []`; + +exports[`ICSS show work with the case "duplicate-export": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"_test\\": \\"_right_value\\" +};" `; -exports[`ICSS case duplicate-export: module (evaluated) 1`] = ` +exports[`ICSS show work with the case "duplicate-export": result 1`] = ` Array [ Array [ - 1, + "./icss/tests-cases/duplicate-export/source.css", " ", "", @@ -19,20 +25,26 @@ Array [ ] `; -exports[`ICSS case duplicate-export: warnings 1`] = `Array []`; +exports[`ICSS show work with the case "duplicate-export": warnings 1`] = `Array []`; -exports[`ICSS case duplicate-export-in-multiple-export: errors 1`] = `Array []`; +exports[`ICSS show work with the case "duplicate-export-in-multiple-export": errors 1`] = `Array []`; -exports[`ICSS case duplicate-export-in-multiple-export: locals 1`] = ` -Object { - "_test": "_right_value", -} +exports[`ICSS show work with the case "duplicate-export-in-multiple-export": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"_test\\": \\"_right_value\\" +};" `; -exports[`ICSS case duplicate-export-in-multiple-export: module (evaluated) 1`] = ` +exports[`ICSS show work with the case "duplicate-export-in-multiple-export": result 1`] = ` Array [ Array [ - 1, + "./icss/tests-cases/duplicate-export-in-multiple-export/source.css", " ", "", @@ -40,16 +52,23 @@ Array [ ] `; -exports[`ICSS case duplicate-export-in-multiple-export: warnings 1`] = `Array []`; +exports[`ICSS show work with the case "duplicate-export-in-multiple-export": warnings 1`] = `Array []`; -exports[`ICSS case empty-export: errors 1`] = `Array []`; +exports[`ICSS show work with the case "empty-export": errors 1`] = `Array []`; -exports[`ICSS case empty-export: locals 1`] = `undefined`; +exports[`ICSS show work with the case "empty-export": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +" +`; -exports[`ICSS case empty-export: module (evaluated) 1`] = ` +exports[`ICSS show work with the case "empty-export": result 1`] = ` Array [ Array [ - 1, + "./icss/tests-cases/empty-export/source.css", " ", "", @@ -57,16 +76,23 @@ Array [ ] `; -exports[`ICSS case empty-export: warnings 1`] = `Array []`; +exports[`ICSS show work with the case "empty-export": warnings 1`] = `Array []`; -exports[`ICSS case empty-import: errors 1`] = `Array []`; +exports[`ICSS show work with the case "empty-import": errors 1`] = `Array []`; -exports[`ICSS case empty-import: locals 1`] = `undefined`; +exports[`ICSS show work with the case "empty-import": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +" +`; -exports[`ICSS case empty-import: module (evaluated) 1`] = ` +exports[`ICSS show work with the case "empty-import": result 1`] = ` Array [ Array [ - 1, + "./icss/tests-cases/empty-import/source.css", " ", "", @@ -74,20 +100,26 @@ Array [ ] `; -exports[`ICSS case empty-import: warnings 1`] = `Array []`; +exports[`ICSS show work with the case "empty-import": warnings 1`] = `Array []`; -exports[`ICSS case export: errors 1`] = `Array []`; +exports[`ICSS show work with the case "export": errors 1`] = `Array []`; -exports[`ICSS case export: locals 1`] = ` -Object { - "_test": "_test", -} +exports[`ICSS show work with the case "export": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"_test\\": \\"_test\\" +};" `; -exports[`ICSS case export: module (evaluated) 1`] = ` +exports[`ICSS show work with the case "export": result 1`] = ` Array [ Array [ - 1, + "./icss/tests-cases/export/source.css", " ", "", @@ -95,21 +127,27 @@ Array [ ] `; -exports[`ICSS case export: warnings 1`] = `Array []`; - -exports[`ICSS case export-reserved-keywords: errors 1`] = `Array []`; - -exports[`ICSS case export-reserved-keywords: locals 1`] = ` -Object { - "constructor": "constructor", - "toString": "toString", -} +exports[`ICSS show work with the case "export": warnings 1`] = `Array []`; + +exports[`ICSS show work with the case "export-reserved-keywords": errors 1`] = `Array []`; + +exports[`ICSS show work with the case "export-reserved-keywords": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"constructor\\": \\"constructor\\", + \\"toString\\": \\"toString\\" +};" `; -exports[`ICSS case export-reserved-keywords: module (evaluated) 1`] = ` +exports[`ICSS show work with the case "export-reserved-keywords": result 1`] = ` Array [ Array [ - 1, + "./icss/tests-cases/export-reserved-keywords/source.css", " ", "", @@ -117,26 +155,34 @@ Array [ ] `; -exports[`ICSS case export-reserved-keywords: warnings 1`] = `Array []`; - -exports[`ICSS case import: errors 1`] = `Array []`; - -exports[`ICSS case import: locals 1`] = ` -Object { - "primary-color": "red", -} +exports[`ICSS show work with the case "export-reserved-keywords": warnings 1`] = `Array []`; + +exports[`ICSS show work with the case "import": errors 1`] = `Array []`; + +exports[`ICSS show work with the case "import": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./vars.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".className {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"primary-color\\"] + \\";\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"primary-color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"primary-color\\"] + \\"\\" +};" `; -exports[`ICSS case import: module (evaluated) 1`] = ` +exports[`ICSS show work with the case "import": result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!./icss/tests-cases/import/vars.css", " ", "", ], Array [ - 1, + "./icss/tests-cases/import/source.css", ".className { color: red; } @@ -146,27 +192,35 @@ Array [ ] `; -exports[`ICSS case import: warnings 1`] = `Array []`; - -exports[`ICSS case import-reserved-keywords: errors 1`] = `Array []`; - -exports[`ICSS case import-reserved-keywords: locals 1`] = ` -Object { - "primary-color": "red", - "secondary-color": "block", -} +exports[`ICSS show work with the case "import": warnings 1`] = `Array []`; + +exports[`ICSS show work with the case "import-reserved-keywords": errors 1`] = `Array []`; + +exports[`ICSS show work with the case "import-reserved-keywords": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./vars.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".className {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"primary-color\\"] + \\";\\\\n display: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"secondary-color\\"] + \\";\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"primary-color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"primary-color\\"] + \\"\\", + \\"secondary-color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"secondary-color\\"] + \\"\\" +};" `; -exports[`ICSS case import-reserved-keywords: module (evaluated) 1`] = ` +exports[`ICSS show work with the case "import-reserved-keywords": result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!./icss/tests-cases/import-reserved-keywords/vars.css", " ", "", ], Array [ - 1, + "./icss/tests-cases/import-reserved-keywords/source.css", ".className { color: red; display: block; @@ -177,21 +231,27 @@ Array [ ] `; -exports[`ICSS case import-reserved-keywords: warnings 1`] = `Array []`; - -exports[`ICSS case multiple-export: errors 1`] = `Array []`; - -exports[`ICSS case multiple-export: locals 1`] = ` -Object { - "_foo": "_bar", - "_test": "_test", -} +exports[`ICSS show work with the case "import-reserved-keywords": warnings 1`] = `Array []`; + +exports[`ICSS show work with the case "multiple-export": errors 1`] = `Array []`; + +exports[`ICSS show work with the case "multiple-export": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"_test\\": \\"_test\\", + \\"_foo\\": \\"_bar\\" +};" `; -exports[`ICSS case multiple-export: module (evaluated) 1`] = ` +exports[`ICSS show work with the case "multiple-export": result 1`] = ` Array [ Array [ - 1, + "./icss/tests-cases/multiple-export/source.css", " ", "", @@ -199,24 +259,30 @@ Array [ ] `; -exports[`ICSS case multiple-export: warnings 1`] = `Array []`; - -exports[`ICSS case multiple-keys-values-in-export: errors 1`] = `Array []`; - -exports[`ICSS case multiple-keys-values-in-export: locals 1`] = ` -Object { - "_test": "_test", - "_test1": "1", - "_test2": "'string'", - "_test3": "1px 2px 3px", - "_test4": "1px 2px 3px, 1px 2px 3px", -} +exports[`ICSS show work with the case "multiple-export": warnings 1`] = `Array []`; + +exports[`ICSS show work with the case "multiple-keys-values-in-export": errors 1`] = `Array []`; + +exports[`ICSS show work with the case "multiple-keys-values-in-export": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"_test\\": \\"_test\\", + \\"_test1\\": \\"1\\", + \\"_test2\\": \\"'string'\\", + \\"_test3\\": \\"1px 2px 3px\\", + \\"_test4\\": \\"1px 2px 3px, 1px 2px 3px\\" +};" `; -exports[`ICSS case multiple-keys-values-in-export: module (evaluated) 1`] = ` +exports[`ICSS show work with the case "multiple-keys-values-in-export": result 1`] = ` Array [ Array [ - 1, + "./icss/tests-cases/multiple-keys-values-in-export/source.css", " ", "", @@ -224,4 +290,4 @@ Array [ ] `; -exports[`ICSS case multiple-keys-values-in-export: warnings 1`] = `Array []`; +exports[`ICSS show work with the case "multiple-keys-values-in-export": warnings 1`] = `Array []`; diff --git a/test/__snapshots__/import-option.test.js.snap b/test/__snapshots__/import-option.test.js.snap index e97bc6e2..ddcb4b4d 100644 --- a/test/__snapshots__/import-option.test.js.snap +++ b/test/__snapshots__/import-option.test.js.snap @@ -1,11 +1,208 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`import option Function: errors 1`] = `Array []`; +exports[`"import" option should keep original order: errors 1`] = `Array []`; -exports[`import option Function: module (evaluated) 1`] = ` +exports[`"import" option should keep original order: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./order-1.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4!./order-2.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4!./order-3.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4!./order-4.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___); +exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"screen and (min-width: 2000px)\\"); +exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_2___); +exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___, \\"screen\\"); +// Module +exports.push([module.id, \\"div {\\\\n width: 100%;\\\\n height: 200px;\\\\n}\\\\n\\", \\"\\"]); +" +`; + +exports[`"import" option should keep original order: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./import/order-1.css", + ".order-1 { + color: red; +} +", + "", + ], + Array [ + "./import/order.css", + "@import url(http://example.com/style.css);", + ], + Array [ + "../../src/index.js?!./import/order-2.css", + ".order-1 { + color: red; +} +", + "", + ], + Array [ + "./import/order.css", + "@import url(http://example.com/style.css);", + ], + Array [ + "../../src/index.js?!./import/order-1.css", + ".order-1 { + color: red; +} +", + "", + ], + Array [ + "./import/order.css", + "@import url(http://example.com/style.css);", + ], + Array [ + "../../src/index.js?!./import/order-2.css", + ".order-1 { + color: red; +} +", + "screen and (min-width: 2000px)", + ], + Array [ + "./import/order.css", + "@import url(http://example.com/style.css);", + ], + Array [ + "../../src/index.js?!./import/order-3-1.css", + ".order-3-1 { + color: white; +} +", + "screen and (orientation:landscape)", + ], + Array [ + "../../src/index.js?!./import/order-3.css", + ".order-3 { + color: red; +} +", + "", + ], + Array [ + "./import/order.css", + "@import url(http://example.com/style.css);", + ], + Array [ + "../../src/index.js?!./import/order-4-1.css", + ".order-4-1 { + color: red; +} +", + "screen and (min-width: 1000px)", + ], + Array [ + "../../src/index.js?!./import/order-4-2-1.css", + ".order-4-2-1 { + color: red; +} +", + "screen and (min-width: 2000px)", + ], + Array [ + "../../src/index.js?!./import/order-4-2-2.css", + ".order-4-2-2 { + color: red; +} +", + "screen and (min-width: 2000px) and (orientation:landscape)", + ], + Array [ + "../../src/index.js?!./import/order-4-2.css", + ".order-4-2 { + color: red; +} +", + "screen and (min-width: 2000px)", + ], + Array [ + "../../src/index.js?!./import/order-4.css", + ".order-4 { + color: red; +} +", + "screen", + ], + Array [ + "./import/order.css", + "div { + width: 100%; + height: 200px; +} +", + "", + ], +] +`; + +exports[`"import" option should keep original order: warnings 1`] = `Array []`; + +exports[`"import" option should work when "Function": errors 1`] = `Array []`; + +exports[`"import" option should work when "Function": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./test-media.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4!./test-other.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4!./query.css?foo=1&bar=1\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4!./other-query.css?foo=1&bar=1#hash\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??ref--4!./relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??ref--4!../import/top-relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??ref--4!package/tilde.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??ref--4!aliasesImport/alias.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??ref--4!./url.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??ref--4!./te'st.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"(min-width: 100px)\\"); +exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.push([module.id, \\"@import url(http://example.com/style.css#hash);\\"]); +exports.push([module.id, \\"@import url(http://example.com/style.css?#hash);\\"]); +exports.push([module.id, \\"@import url(http://example.com/style.css?foo=bar#hash);\\"]); +exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); +exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); +exports.push([module.id, \\"@import url(//example.com/style.css);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_2___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___, \\"screen and (orientation:landscape)\\"); +exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Roboto);\\"]); +exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC);\\"]); +exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_4___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_6___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_7___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_8___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);\\\\n@import url(test.css)screen and (orientation:landscape);\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\\\n@import './te\\\\\\\\\\\\nst.css';\\\\n@import './te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css';\\\\n@import url('./te\\\\\\\\\\\\nst.css');\\\\n@import url('./te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css');\\\\n@import './test test.css';\\\\n@import url('./test test.css');\\\\n@import './test\\\\\\\\ test.css';\\\\n@import url('./test\\\\\\\\ test.css');\\\\n@import './test%20test.css';\\\\n@import url('./test%20test.css');\\\\n@import './\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import './t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import url(./test\\\\\\\\ test.css);\\\\n@import url(./t\\\\\\\\65st%20test.css);\\\\n@import url('./t\\\\\\\\65st%20test.css');\\\\n@import url(\\\\\\"./t\\\\\\\\65st%20test.css\\\\\\");\\\\n@import \\\\\\"./t\\\\\\\\65st%20test.css\\\\\\";\\\\n@import './t\\\\\\\\65st%20test.css';\\\\n@import url( test.css );\\\\n\\", \\"\\"]); +" +`; + +exports[`"import" option should work when "Function": result 1`] = ` Array [ Array [ - 3, + "../../src/index.js?!./import/test-nested-media.css", "a { b: b; } @@ -13,7 +210,7 @@ Array [ "screen and (orientation:landscape) and (min-width: 100px)", ], Array [ - 2, + "../../src/index.js?!./import/test-media.css", ".test { c: c; } @@ -21,7 +218,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - 3, + "../../src/index.js?!./import/test-other.css", ".test { d: d; } @@ -29,41 +226,41 @@ Array [ "(min-width: 100px)", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/style.css);", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/style.css);", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/style.css#hash);", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/style.css?#hash);", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/style.css?foo=bar#hash);", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/other-style.css);", "screen and (orientation:landscape)", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/other-style.css);", "screen and (orientation:landscape)", ], Array [ - 1, + "./import/import.css", "@import url(//example.com/style.css);", ], Array [ - 4, + "../../src/index.js?!./import/query.css?foo=1&bar=1", ".query { e: e; } @@ -71,7 +268,7 @@ Array [ "", ], Array [ - 5, + "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", ".other-query { f: f; } @@ -79,7 +276,7 @@ Array [ "", ], Array [ - 5, + "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", ".other-query { f: f; } @@ -87,19 +284,19 @@ Array [ "screen and (orientation:landscape)", ], Array [ - 1, + "./import/import.css", "@import url(https://fonts.googleapis.com/css?family=Roboto);", ], Array [ - 1, + "./import/import.css", "@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC);", ], Array [ - 1, + "./import/import.css", "@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);", ], Array [ - 6, + "../../src/index.js?!./import/relative.css", ".relative { color: red; } @@ -107,7 +304,7 @@ Array [ "", ], Array [ - 7, + "../../src/index.js?!./import/top-relative.css", ".top-relative { color: black; } @@ -115,7 +312,7 @@ Array [ "", ], Array [ - 8, + "../../src/index.js?!./import/node_modules/package/tilde.css", ".tilde { color: yellow; } @@ -123,7 +320,7 @@ Array [ "", ], Array [ - 9, + "../../src/index.js?!./import/alias.css", ".alias { color: red; } @@ -131,7 +328,7 @@ Array [ "", ], Array [ - 10, + "../../src/index.js?!./import/url.css", ".background-imported { background: url(/webpack/public/path/img.png); } @@ -139,7 +336,7 @@ Array [ "", ], Array [ - 11, + "../../src/index.js?!./import/te'st.css", ".strange { color: red; } @@ -147,7 +344,7 @@ Array [ "", ], Array [ - 11, + "../../src/index.js?!./import/te'st.css", ".strange { color: red; } @@ -155,7 +352,7 @@ Array [ "", ], Array [ - 11, + "../../src/index.js?!./import/te'st.css", ".strange { color: red; } @@ -163,7 +360,7 @@ Array [ "", ], Array [ - 11, + "../../src/index.js?!./import/te'st.css", ".strange { color: red; } @@ -171,7 +368,7 @@ Array [ "", ], Array [ - 1, + "./import/import.css", "@import url(test.css); @import url('test.css'); @import url(\\"test.css\\"); @@ -255,54 +452,7 @@ st.css'); ] `; -exports[`import option Function: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./test-media.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4-0!./test-other.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4-0!./query.css?foo=1&bar=1\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4-0!./other-query.css?foo=1&bar=1#hash\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??ref--4-0!./relative.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??ref--4-0!../import/top-relative.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??ref--4-0!package/tilde.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??ref--4-0!aliasesImport/alias.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??ref--4-0!./url.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??ref--4-0!./te'st.css\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"(min-width: 100px)\\"); -exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); -exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); -exports.push([module.id, \\"@import url(http://example.com/style.css#hash);\\"]); -exports.push([module.id, \\"@import url(http://example.com/style.css?#hash);\\"]); -exports.push([module.id, \\"@import url(http://example.com/style.css?foo=bar#hash);\\"]); -exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); -exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); -exports.push([module.id, \\"@import url(//example.com/style.css);\\"]); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_2___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___, \\"screen and (orientation:landscape)\\"); -exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Roboto);\\"]); -exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC);\\"]); -exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);\\"]); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_4___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_6___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_7___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_8___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);\\\\n@import url(test.css)screen and (orientation:landscape);\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\\\n@import './te\\\\\\\\\\\\nst.css';\\\\n@import './te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css';\\\\n@import url('./te\\\\\\\\\\\\nst.css');\\\\n@import url('./te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css');\\\\n@import './test test.css';\\\\n@import url('./test test.css');\\\\n@import './test\\\\\\\\ test.css';\\\\n@import url('./test\\\\\\\\ test.css');\\\\n@import './test%20test.css';\\\\n@import url('./test%20test.css');\\\\n@import './\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import './t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import url(./test\\\\\\\\ test.css);\\\\n@import url(./t\\\\\\\\65st%20test.css);\\\\n@import url('./t\\\\\\\\65st%20test.css');\\\\n@import url(\\\\\\"./t\\\\\\\\65st%20test.css\\\\\\");\\\\n@import \\\\\\"./t\\\\\\\\65st%20test.css\\\\\\";\\\\n@import './t\\\\\\\\65st%20test.css';\\\\n@import url( test.css );\\\\n\\", \\"\\"]); -" -`; - -exports[`import option Function: warnings 1`] = ` +exports[`"import" option should work when "Function": warnings 1`] = ` Array [ "ModuleWarning: Module Warning (from \`replaced original path\`): Warning @@ -360,292 +510,885 @@ Warning ] `; -exports[`import option false: errors 1`] = `Array []`; - -exports[`import option false: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "@import url(test.css); -@import url('test.css'); -@import url(\\"test.css\\"); -@IMPORT url(test.css); -@import URL(test.css); -@import url(test.css ); -@import url( test.css); -@import url( test.css ); -@import url( - test.css -); -@import url(); -@import url(''); -@import url(\\"\\"); -@import \\"test.css\\"; -@import 'test.css'; -@import ''; -@import \\"\\"; -@import \\" \\"; -@import \\" -\\"; -@import url(); -@import url(''); -@import url(\\"\\"); -@import url(test.css) screen and (orientation:landscape); -@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE); -@import url(test.css)screen and (orientation:landscape); -@import url(test.css) screen and (orientation:landscape); -@import url(test-media.css) screen and (orientation:landscape); -@import url(test-other.css) (min-width: 100px); -@import url(http://example.com/style.css); -@import url(http://example.com/style.css); -@import url(http://example.com/style.css#hash); -@import url(http://example.com/style.css?#hash); -@import url(http://example.com/style.css?foo=bar#hash); -@import url(http://example.com/other-style.css) screen and (orientation:landscape); -@import url(http://example.com/other-style.css) screen and (orientation:landscape); -@import url(\\"//example.com/style.css\\"); -@import url(~package/test.css); -@import ; -@import foo-bar; -@import-normalize; -@import url('http://') :root {} -@import url('query.css?foo=1&bar=1'); -@import url('other-query.css?foo=1&bar=1#hash'); -@import url('other-query.css?foo=1&bar=1#hash') screen and (orientation:landscape); -@import url('https://fonts.googleapis.com/css?family=Roboto'); -@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC'); -@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto'); - -.class { - a: b c d; -} +exports[`"import" option should work when not specified: errors 1`] = `Array []`; -.foo { - @import 'path.css'; -} - -@import url('./relative.css'); -@import url('../import/top-relative.css'); -@import url(~package/tilde.css); -@import url(~aliasesImport/alias.css); -@import url('./url.css'); - -.background { - background: url(/webpack/public/path/img.png); -} - -@import url(./test.css); - -@import './te\\\\ -st.css'; -@import './te\\\\ -\\\\ -\\\\ -st.css'; -@import url('./te\\\\ -st.css'); -@import url('./te\\\\ -\\\\ -\\\\ -st.css'); - -@import \\"./te'st.css\\"; -@import url(\\"./te'st.css\\"); -@import './te\\\\'st.css'; -@import url('./te\\\\'st.css'); -@import './test test.css'; -@import url('./test test.css'); -@import './test\\\\ test.css'; -@import url('./test\\\\ test.css'); -@import './test%20test.css'; -@import url('./test%20test.css'); -@import './\\\\74\\\\65\\\\73\\\\74.css'; -@import url('./\\\\74\\\\65\\\\73\\\\74.css'); -@import './t\\\\65\\\\73\\\\74.css'; -@import url('./t\\\\65\\\\73\\\\74.css'); -@import url(./test\\\\ test.css); -@import url(./t\\\\65st%20test.css); -@import url('./t\\\\65st%20test.css'); -@import url(\\"./t\\\\65st%20test.css\\"); -@import \\"./t\\\\65st%20test.css\\"; -@import './t\\\\65st%20test.css'; -@import url( test.css ); -", - "", - ], -] -`; - -exports[`import option false: module 1`] = ` +exports[`"import" option should work when not specified: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./test.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4!./test-media.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4!./test-other.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4!package/test.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??ref--4!./query.css?foo=1&bar=1\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??ref--4!./other-query.css?foo=1&bar=1#hash\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??ref--4!./relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??ref--4!../import/top-relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??ref--4!package/tilde.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??ref--4!aliasesImport/alias.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_10___ = require(\\"-!../../../src/index.js??ref--4!./url.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_11___ = require(\\"-!../../../src/index.js??ref--4!./te'st.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_12___ = require(\\"-!../../../src/index.js??ref--4!./test test.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation: landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_2___, \\"(min-width: 100px)\\"); +exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); +exports.push([module.id, \\"@import url(http://example.com/style.css#hash);\\"]); +exports.push([module.id, \\"@import url(http://example.com/style.css?#hash);\\"]); +exports.push([module.id, \\"@import url(http://example.com/style.css?foo=bar#hash);\\"]); +exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); +exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); +exports.push([module.id, \\"@import url(//example.com/style.css);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_4___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___, \\"screen and (orientation:landscape)\\"); +exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Roboto);\\"]); +exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC);\\"]); +exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_6___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_7___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_8___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_10___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module -exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);\\\\n@import url(test.css)screen and (orientation:landscape);\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test-media.css) screen and (orientation:landscape);\\\\n@import url(test-other.css) (min-width: 100px);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css#hash);\\\\n@import url(http://example.com/style.css?#hash);\\\\n@import url(http://example.com/style.css?foo=bar#hash);\\\\n@import url(http://example.com/other-style.css) screen and (orientation:landscape);\\\\n@import url(http://example.com/other-style.css) screen and (orientation:landscape);\\\\n@import url(\\\\\\"//example.com/style.css\\\\\\");\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n@import url('query.css?foo=1&bar=1');\\\\n@import url('other-query.css?foo=1&bar=1#hash');\\\\n@import url('other-query.css?foo=1&bar=1#hash') screen and (orientation:landscape);\\\\n@import url('https://fonts.googleapis.com/css?family=Roboto');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto');\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n@import url('./relative.css');\\\\n@import url('../import/top-relative.css');\\\\n@import url(~package/tilde.css);\\\\n@import url(~aliasesImport/alias.css);\\\\n@import url('./url.css');\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\\\n@import './te\\\\\\\\\\\\nst.css';\\\\n@import './te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css';\\\\n@import url('./te\\\\\\\\\\\\nst.css');\\\\n@import url('./te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css');\\\\n\\\\n@import \\\\\\"./te'st.css\\\\\\";\\\\n@import url(\\\\\\"./te'st.css\\\\\\");\\\\n@import './te\\\\\\\\'st.css';\\\\n@import url('./te\\\\\\\\'st.css');\\\\n@import './test test.css';\\\\n@import url('./test test.css');\\\\n@import './test\\\\\\\\ test.css';\\\\n@import url('./test\\\\\\\\ test.css');\\\\n@import './test%20test.css';\\\\n@import url('./test%20test.css');\\\\n@import './\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import './t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import url(./test\\\\\\\\ test.css);\\\\n@import url(./t\\\\\\\\65st%20test.css);\\\\n@import url('./t\\\\\\\\65st%20test.css');\\\\n@import url(\\\\\\"./t\\\\\\\\65st%20test.css\\\\\\");\\\\n@import \\\\\\"./t\\\\\\\\65st%20test.css\\\\\\";\\\\n@import './t\\\\\\\\65st%20test.css';\\\\n@import url( test.css );\\\\n\\", \\"\\"]); +exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); " `; -exports[`import option false: warnings 1`] = `Array []`; - -exports[`import option should keep original order: errors 1`] = `Array []`; - -exports[`import option should keep original order: module (evaluated) 1`] = ` +exports[`"import" option should work when not specified: result 1`] = ` Array [ Array [ - 2, - ".order-1 { - color: red; + "../../src/index.js?!./import/test.css", + ".test { + a: a; } ", "", ], Array [ - 1, - "@import url(http://example.com/style.css);", + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", ], Array [ - 3, - ".order-1 { - color: red; + "../../src/index.js?!./import/test.css", + ".test { + a: a; } ", "", ], Array [ - 1, - "@import url(http://example.com/style.css);", + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", ], Array [ - 2, - ".order-1 { - color: red; + "../../src/index.js?!./import/test.css", + ".test { + a: a; } ", "", ], Array [ - 1, - "@import url(http://example.com/style.css);", + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", ], Array [ - 3, - ".order-1 { - color: red; + "../../src/index.js?!./import/test.css", + ".test { + a: a; } ", - "screen and (min-width: 2000px)", + "", ], Array [ - 1, - "@import url(http://example.com/style.css);", + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", ], Array [ - 5, - ".order-3-1 { - color: white; + "../../src/index.js?!./import/test.css", + ".test { + a: a; } ", - "screen and (orientation:landscape)", + "", ], Array [ - 4, - ".order-3 { - color: red; + "../../src/index.js?!./import/test.css", + ".test { + a: a; } ", "", ], Array [ - 1, - "@import url(http://example.com/style.css);", + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", ], Array [ - 6, - ".order-4-1 { - color: red; + "../../src/index.js?!./import/test.css", + ".test { + a: a; } ", - "screen and (min-width: 1000px)", + "screen and (orientation:landscape)", ], Array [ - 8, - ".order-4-2-1 { - color: red; + "../../src/index.js?!./import/test.css", + ".test { + a: a; } ", - "screen and (min-width: 2000px)", + "screen and (orientation: landscape)", ], Array [ - 9, - ".order-4-2-2 { - color: red; + "../../src/index.js?!./import/test.css", + ".test { + a: a; } ", - "screen and (min-width: 2000px) and (orientation:landscape)", + "screen and (orientation:landscape)", ], Array [ - 7, - ".order-4-2 { - color: red; + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "screen and (orientation:landscape)", + ], + Array [ + "../../src/index.js?!./import/test-nested-media.css", + "a { + b: b; +} +", + "screen and (orientation:landscape) and (min-width: 100px)", + ], + Array [ + "../../src/index.js?!./import/test-media.css", + ".test { + c: c; +} +", + "screen and (orientation:landscape)", + ], + Array [ + "../../src/index.js?!./import/test-other.css", + ".test { + d: d; +} +", + "(min-width: 100px)", + ], + Array [ + "./import/import.css", + "@import url(http://example.com/style.css);", + ], + Array [ + "./import/import.css", + "@import url(http://example.com/style.css);", + ], + Array [ + "./import/import.css", + "@import url(http://example.com/style.css#hash);", + ], + Array [ + "./import/import.css", + "@import url(http://example.com/style.css?#hash);", + ], + Array [ + "./import/import.css", + "@import url(http://example.com/style.css?foo=bar#hash);", + ], + Array [ + "./import/import.css", + "@import url(http://example.com/other-style.css);", + "screen and (orientation:landscape)", + ], + Array [ + "./import/import.css", + "@import url(http://example.com/other-style.css);", + "screen and (orientation:landscape)", + ], + Array [ + "./import/import.css", + "@import url(//example.com/style.css);", + ], + Array [ + "../../src/index.js?!./import/node_modules/package/test.css", + ".test { + d: d +} +", + "", + ], + Array [ + "../../src/index.js?!./import/query.css?foo=1&bar=1", + ".query { + e: e; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", + ".other-query { + f: f; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", + ".other-query { + f: f; +} +", + "screen and (orientation:landscape)", + ], + Array [ + "./import/import.css", + "@import url(https://fonts.googleapis.com/css?family=Roboto);", + ], + Array [ + "./import/import.css", + "@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC);", + ], + Array [ + "./import/import.css", + "@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);", + ], + Array [ + "../../src/index.js?!./import/relative.css", + ".relative { + color: red; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/top-relative.css", + ".top-relative { + color: black; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/node_modules/package/tilde.css", + ".tilde { + color: yellow; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/alias.css", + ".alias { + color: red; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/url.css", + ".background-imported { + background: url(/webpack/public/path/img.png); +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/te'st.css", + ".strange { + color: red; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/te'st.css", + ".strange { + color: red; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/te'st.css", + ".strange { + color: red; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/te'st.css", + ".strange { + color: red; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test test.css", + ".space { + color: gray; +} +", + "", + ], + Array [ + "../../src/index.js?!./import/test.css", + ".test { + a: a; +} +", + "", + ], + Array [ + "./import/import.css", + "@import url(); +@import url(''); +@import url(\\"\\"); +@import ''; +@import \\"\\"; +@import \\" \\"; +@import \\" +\\"; +@import url(); +@import url(''); +@import url(\\"\\"); +@import ; +@import foo-bar; +@import-normalize; +@import url('http://') :root {} + +.class { + a: b c d; +} + +.foo { + @import 'path.css'; +} + +.background { + background: url(/webpack/public/path/img.png); +} +", + "", + ], +] +`; + +exports[`"import" option should work when not specified: warnings 1`] = ` +Array [ + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(12:1) Unable to find uri in '@import url()'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(13:1) Unable to find uri in '@import url('')'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(14:1) Unable to find uri in '@import url(\\"\\")'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(17:1) Unable to find uri in '@import '''", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(18:1) Unable to find uri in '@import \\"\\"'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(19:1) Unable to find uri in '@import \\" \\"'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(20:1) Unable to find uri in '@import \\" +\\"'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(22:1) Unable to find uri in '@import url()'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(23:1) Unable to find uri in '@import url('')'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(24:1) Unable to find uri in '@import url(\\"\\")'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(40:1) Unable to find uri in '@import '", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(41:1) Unable to find uri in '@import foo-bar'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(43:1) It looks like you didn't end your @import statement correctly. Child nodes are attached to it.", +] +`; + +exports[`"import" option should work with a value equal to "false": errors 1`] = `Array []`; + +exports[`"import" option should work with a value equal to "false": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);\\\\n@import url(test.css)screen and (orientation:landscape);\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test-media.css) screen and (orientation:landscape);\\\\n@import url(test-other.css) (min-width: 100px);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css#hash);\\\\n@import url(http://example.com/style.css?#hash);\\\\n@import url(http://example.com/style.css?foo=bar#hash);\\\\n@import url(http://example.com/other-style.css) screen and (orientation:landscape);\\\\n@import url(http://example.com/other-style.css) screen and (orientation:landscape);\\\\n@import url(\\\\\\"//example.com/style.css\\\\\\");\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n@import url('query.css?foo=1&bar=1');\\\\n@import url('other-query.css?foo=1&bar=1#hash');\\\\n@import url('other-query.css?foo=1&bar=1#hash') screen and (orientation:landscape);\\\\n@import url('https://fonts.googleapis.com/css?family=Roboto');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto');\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n@import url('./relative.css');\\\\n@import url('../import/top-relative.css');\\\\n@import url(~package/tilde.css);\\\\n@import url(~aliasesImport/alias.css);\\\\n@import url('./url.css');\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\\\n@import './te\\\\\\\\\\\\nst.css';\\\\n@import './te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css';\\\\n@import url('./te\\\\\\\\\\\\nst.css');\\\\n@import url('./te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css');\\\\n\\\\n@import \\\\\\"./te'st.css\\\\\\";\\\\n@import url(\\\\\\"./te'st.css\\\\\\");\\\\n@import './te\\\\\\\\'st.css';\\\\n@import url('./te\\\\\\\\'st.css');\\\\n@import './test test.css';\\\\n@import url('./test test.css');\\\\n@import './test\\\\\\\\ test.css';\\\\n@import url('./test\\\\\\\\ test.css');\\\\n@import './test%20test.css';\\\\n@import url('./test%20test.css');\\\\n@import './\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import './t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import url(./test\\\\\\\\ test.css);\\\\n@import url(./t\\\\\\\\65st%20test.css);\\\\n@import url('./t\\\\\\\\65st%20test.css');\\\\n@import url(\\\\\\"./t\\\\\\\\65st%20test.css\\\\\\");\\\\n@import \\\\\\"./t\\\\\\\\65st%20test.css\\\\\\";\\\\n@import './t\\\\\\\\65st%20test.css';\\\\n@import url( test.css );\\\\n\\", \\"\\"]); +" +`; + +exports[`"import" option should work with a value equal to "false": result 1`] = ` +Array [ + Array [ + "./import/import.css", + "@import url(test.css); +@import url('test.css'); +@import url(\\"test.css\\"); +@IMPORT url(test.css); +@import URL(test.css); +@import url(test.css ); +@import url( test.css); +@import url( test.css ); +@import url( + test.css +); +@import url(); +@import url(''); +@import url(\\"\\"); +@import \\"test.css\\"; +@import 'test.css'; +@import ''; +@import \\"\\"; +@import \\" \\"; +@import \\" +\\"; +@import url(); +@import url(''); +@import url(\\"\\"); +@import url(test.css) screen and (orientation:landscape); +@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE); +@import url(test.css)screen and (orientation:landscape); +@import url(test.css) screen and (orientation:landscape); +@import url(test-media.css) screen and (orientation:landscape); +@import url(test-other.css) (min-width: 100px); +@import url(http://example.com/style.css); +@import url(http://example.com/style.css); +@import url(http://example.com/style.css#hash); +@import url(http://example.com/style.css?#hash); +@import url(http://example.com/style.css?foo=bar#hash); +@import url(http://example.com/other-style.css) screen and (orientation:landscape); +@import url(http://example.com/other-style.css) screen and (orientation:landscape); +@import url(\\"//example.com/style.css\\"); +@import url(~package/test.css); +@import ; +@import foo-bar; +@import-normalize; +@import url('http://') :root {} +@import url('query.css?foo=1&bar=1'); +@import url('other-query.css?foo=1&bar=1#hash'); +@import url('other-query.css?foo=1&bar=1#hash') screen and (orientation:landscape); +@import url('https://fonts.googleapis.com/css?family=Roboto'); +@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC'); +@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto'); + +.class { + a: b c d; } -", - "screen and (min-width: 2000px)", - ], - Array [ - 5, - ".order-4 { - color: red; + +.foo { + @import 'path.css'; } -", - "screen", - ], - Array [ - 1, - "div { - width: 100%; - height: 200px; + +@import url('./relative.css'); +@import url('../import/top-relative.css'); +@import url(~package/tilde.css); +@import url(~aliasesImport/alias.css); +@import url('./url.css'); + +.background { + background: url(/webpack/public/path/img.png); } + +@import url(./test.css); + +@import './te\\\\ +st.css'; +@import './te\\\\ +\\\\ +\\\\ +st.css'; +@import url('./te\\\\ +st.css'); +@import url('./te\\\\ +\\\\ +\\\\ +st.css'); + +@import \\"./te'st.css\\"; +@import url(\\"./te'st.css\\"); +@import './te\\\\'st.css'; +@import url('./te\\\\'st.css'); +@import './test test.css'; +@import url('./test test.css'); +@import './test\\\\ test.css'; +@import url('./test\\\\ test.css'); +@import './test%20test.css'; +@import url('./test%20test.css'); +@import './\\\\74\\\\65\\\\73\\\\74.css'; +@import url('./\\\\74\\\\65\\\\73\\\\74.css'); +@import './t\\\\65\\\\73\\\\74.css'; +@import url('./t\\\\65\\\\73\\\\74.css'); +@import url(./test\\\\ test.css); +@import url(./t\\\\65st%20test.css); +@import url('./t\\\\65st%20test.css'); +@import url(\\"./t\\\\65st%20test.css\\"); +@import \\"./t\\\\65st%20test.css\\"; +@import './t\\\\65st%20test.css'; +@import url( test.css ); ", "", ], ] `; -exports[`import option should keep original order: module 1`] = ` +exports[`"import" option should work with a value equal to "false": warnings 1`] = `Array []`; + +exports[`"import" option should work with a value equal to "true": errors 1`] = `Array []`; + +exports[`"import" option should work with a value equal to "true": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./order-1.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4-0!./order-2.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4-0!./order-3.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4-0!./order-4.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./test.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4!./test-media.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4!./test-other.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4!package/test.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??ref--4!./query.css?foo=1&bar=1\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??ref--4!./other-query.css?foo=1&bar=1#hash\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??ref--4!./relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??ref--4!../import/top-relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??ref--4!package/tilde.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??ref--4!aliasesImport/alias.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_10___ = require(\\"-!../../../src/index.js??ref--4!./url.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_11___ = require(\\"-!../../../src/index.js??ref--4!./te'st.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_12___ = require(\\"-!../../../src/index.js??ref--4!./test test.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___); -exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation: landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"screen and (orientation:landscape)\\"); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_2___, \\"(min-width: 100px)\\"); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"screen and (min-width: 2000px)\\"); -exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_2___); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___, \\"screen\\"); +exports.push([module.id, \\"@import url(http://example.com/style.css#hash);\\"]); +exports.push([module.id, \\"@import url(http://example.com/style.css?#hash);\\"]); +exports.push([module.id, \\"@import url(http://example.com/style.css?foo=bar#hash);\\"]); +exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); +exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); +exports.push([module.id, \\"@import url(//example.com/style.css);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_4___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___, \\"screen and (orientation:landscape)\\"); +exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Roboto);\\"]); +exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC);\\"]); +exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);\\"]); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_6___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_7___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_8___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_10___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module -exports.push([module.id, \\"div {\\\\n width: 100%;\\\\n height: 200px;\\\\n}\\\\n\\", \\"\\"]); +exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); " `; -exports[`import option should keep original order: warnings 1`] = `Array []`; - -exports[`import option true: errors 1`] = `Array []`; - -exports[`import option true: module (evaluated) 1`] = ` +exports[`"import" option should work with a value equal to "true": result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -653,7 +1396,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -661,7 +1404,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -669,7 +1412,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -677,7 +1420,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -685,7 +1428,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -693,7 +1436,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -701,7 +1444,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -709,7 +1452,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -717,7 +1460,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -725,7 +1468,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -733,7 +1476,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -741,7 +1484,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -749,7 +1492,7 @@ Array [ "screen and (orientation: landscape)", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -757,7 +1500,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -765,7 +1508,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - 4, + "../../src/index.js?!./import/test-nested-media.css", "a { b: b; } @@ -773,7 +1516,7 @@ Array [ "screen and (orientation:landscape) and (min-width: 100px)", ], Array [ - 3, + "../../src/index.js?!./import/test-media.css", ".test { c: c; } @@ -781,7 +1524,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - 4, + "../../src/index.js?!./import/test-other.css", ".test { d: d; } @@ -789,41 +1532,41 @@ Array [ "(min-width: 100px)", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/style.css);", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/style.css);", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/style.css#hash);", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/style.css?#hash);", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/style.css?foo=bar#hash);", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/other-style.css);", "screen and (orientation:landscape)", ], Array [ - 1, + "./import/import.css", "@import url(http://example.com/other-style.css);", "screen and (orientation:landscape)", ], Array [ - 1, + "./import/import.css", "@import url(//example.com/style.css);", ], Array [ - 5, + "../../src/index.js?!./import/node_modules/package/test.css", ".test { d: d } @@ -831,7 +1574,7 @@ Array [ "", ], Array [ - 6, + "../../src/index.js?!./import/query.css?foo=1&bar=1", ".query { e: e; } @@ -839,7 +1582,7 @@ Array [ "", ], Array [ - 7, + "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", ".other-query { f: f; } @@ -847,7 +1590,7 @@ Array [ "", ], Array [ - 7, + "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", ".other-query { f: f; } @@ -855,19 +1598,19 @@ Array [ "screen and (orientation:landscape)", ], Array [ - 1, + "./import/import.css", "@import url(https://fonts.googleapis.com/css?family=Roboto);", ], Array [ - 1, + "./import/import.css", "@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC);", ], Array [ - 1, + "./import/import.css", "@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);", ], Array [ - 8, + "../../src/index.js?!./import/relative.css", ".relative { color: red; } @@ -875,7 +1618,7 @@ Array [ "", ], Array [ - 9, + "../../src/index.js?!./import/top-relative.css", ".top-relative { color: black; } @@ -883,7 +1626,7 @@ Array [ "", ], Array [ - 10, + "../../src/index.js?!./import/node_modules/package/tilde.css", ".tilde { color: yellow; } @@ -891,7 +1634,7 @@ Array [ "", ], Array [ - 11, + "../../src/index.js?!./import/alias.css", ".alias { color: red; } @@ -899,7 +1642,7 @@ Array [ "", ], Array [ - 12, + "../../src/index.js?!./import/url.css", ".background-imported { background: url(/webpack/public/path/img.png); } @@ -907,7 +1650,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -915,7 +1658,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -923,7 +1666,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -931,7 +1674,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -939,7 +1682,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -947,7 +1690,7 @@ Array [ "", ], Array [ - 13, + "../../src/index.js?!./import/te'st.css", ".strange { color: red; } @@ -955,7 +1698,7 @@ Array [ "", ], Array [ - 13, + "../../src/index.js?!./import/te'st.css", ".strange { color: red; } @@ -963,7 +1706,7 @@ Array [ "", ], Array [ - 13, + "../../src/index.js?!./import/te'st.css", ".strange { color: red; } @@ -971,7 +1714,7 @@ Array [ "", ], Array [ - 13, + "../../src/index.js?!./import/te'st.css", ".strange { color: red; } @@ -979,7 +1722,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -987,7 +1730,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -995,7 +1738,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -1003,7 +1746,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -1011,7 +1754,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -1019,7 +1762,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -1027,7 +1770,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -1035,7 +1778,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -1043,7 +1786,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -1051,7 +1794,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -1059,7 +1802,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -1067,7 +1810,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -1075,7 +1818,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -1083,7 +1826,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -1091,7 +1834,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -1099,7 +1842,7 @@ Array [ "", ], Array [ - 14, + "../../src/index.js?!./import/test test.css", ".space { color: gray; } @@ -1107,7 +1850,7 @@ Array [ "", ], Array [ - 2, + "../../src/index.js?!./import/test.css", ".test { a: a; } @@ -1115,7 +1858,7 @@ Array [ "", ], Array [ - 1, + "./import/import.css", "@import url(); @import url(''); @import url(\\"\\"); @@ -1149,95 +1892,7 @@ Array [ ] `; -exports[`import option true: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./test.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4-0!./test-media.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4-0!./test-other.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4-0!package/test.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??ref--4-0!./query.css?foo=1&bar=1\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??ref--4-0!./other-query.css?foo=1&bar=1#hash\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??ref--4-0!./relative.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??ref--4-0!../import/top-relative.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??ref--4-0!package/tilde.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??ref--4-0!aliasesImport/alias.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_10___ = require(\\"-!../../../src/index.js??ref--4-0!./url.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_11___ = require(\\"-!../../../src/index.js??ref--4-0!./te'st.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_12___ = require(\\"-!../../../src/index.js??ref--4-0!./test test.css\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation: landscape)\\"); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"screen and (orientation:landscape)\\"); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_2___, \\"(min-width: 100px)\\"); -exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); -exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); -exports.push([module.id, \\"@import url(http://example.com/style.css#hash);\\"]); -exports.push([module.id, \\"@import url(http://example.com/style.css?#hash);\\"]); -exports.push([module.id, \\"@import url(http://example.com/style.css?foo=bar#hash);\\"]); -exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); -exports.push([module.id, \\"@import url(http://example.com/other-style.css);\\", \\"screen and (orientation:landscape)\\"]); -exports.push([module.id, \\"@import url(//example.com/style.css);\\"]); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_4___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_5___, \\"screen and (orientation:landscape)\\"); -exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Roboto);\\"]); -exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC);\\"]); -exports.push([module.id, \\"@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);\\"]); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_6___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_7___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_8___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_10___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_11___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_12___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); -" -`; - -exports[`import option true: warnings 1`] = ` +exports[`"import" option should work with a value equal to "true": warnings 1`] = ` Array [ "ModuleWarning: Module Warning (from \`replaced original path\`): Warning diff --git a/test/__snapshots__/importLoaders-option.test.js.snap b/test/__snapshots__/importLoaders-option.test.js.snap index 9f71c56f..c009faec 100644 --- a/test/__snapshots__/importLoaders-option.test.js.snap +++ b/test/__snapshots__/importLoaders-option.test.js.snap @@ -1,11 +1,22 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`importLoaders option 0 (\`postcss-loader\` before): errors 1`] = `Array []`; +exports[`"importLoaders" option should work when not specified: errors 1`] = `Array []`; -exports[`importLoaders option 0 (\`postcss-loader\` before): module (evaluated) 1`] = ` +exports[`"importLoaders" option should work when not specified: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js!./imported.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +// Module +exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255, 0.9);\\\\n}\\\\n\\", \\"\\"]); +" +`; + +exports[`"importLoaders" option should work when not specified: result 1`] = ` Array [ Array [ - 2, + "../../src/index.js!./nested-import/imported.css", ".bar { color: blue; color: rgb(0 0 100% / 90%); @@ -14,7 +25,7 @@ Array [ "", ], Array [ - 1, + "./nested-import/source.css", ".foo { color: red; color: rgba(0, 0, 255, 0.9); @@ -25,10 +36,14 @@ Array [ ] `; -exports[`importLoaders option 0 (\`postcss-loader\` before): module 1`] = ` +exports[`"importLoaders" option should work when not specified: warnings 1`] = `Array []`; + +exports[`"importLoaders" option should work with a value equal to "0" (\`postcss-loader\` before): errors 1`] = `Array []`; + +exports[`"importLoaders" option should work with a value equal to "0" (\`postcss-loader\` before): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-rules-0!./imported.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module @@ -36,23 +51,19 @@ exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255 " `; -exports[`importLoaders option 0 (\`postcss-loader\` before): warnings 1`] = `Array []`; - -exports[`importLoaders option 1 (\`postcss-loader\` before): errors 1`] = `Array []`; - -exports[`importLoaders option 1 (\`postcss-loader\` before): module (evaluated) 1`] = ` +exports[`"importLoaders" option should work with a value equal to "0" (\`postcss-loader\` before): result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!./nested-import/imported.css", ".bar { color: blue; - color: rgba(0, 0, 255, 0.9); + color: rgb(0 0 100% / 90%); } ", "", ], Array [ - 1, + "./nested-import/source.css", ".foo { color: red; color: rgba(0, 0, 255, 0.9); @@ -63,10 +74,14 @@ Array [ ] `; -exports[`importLoaders option 1 (\`postcss-loader\` before): module 1`] = ` +exports[`"importLoaders" option should work with a value equal to "0" (\`postcss-loader\` before): warnings 1`] = `Array []`; + +exports[`"importLoaders" option should work with a value equal to "1" ("postcss-loader" before): errors 1`] = `Array []`; + +exports[`"importLoaders" option should work with a value equal to "1" ("postcss-loader" before): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!../../../node_modules/postcss-loader/src/index.js??ref--4-1!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-rules-0!../../../node_modules/postcss-loader/src/index.js??ref--4-rules-1!./imported.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module @@ -74,26 +89,22 @@ exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255 " `; -exports[`importLoaders option 1 (\`postcss-loader\` before): warnings 1`] = `Array []`; - -exports[`importLoaders option 1 (no loaders before): errors 1`] = `Array []`; - -exports[`importLoaders option 1 (no loaders before): module (evaluated) 1`] = ` +exports[`"importLoaders" option should work with a value equal to "1" ("postcss-loader" before): result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!../../node_modules/postcss-loader/src/index.js?!./nested-import/imported.css", ".bar { color: blue; - color: rgb(0 0 100% / 90%); + color: rgba(0, 0, 255, 0.9); } ", "", ], Array [ - 1, + "./nested-import/source.css", ".foo { color: red; - color: rgb(0 0 100% / 90%); + color: rgba(0, 0, 255, 0.9); } ", "", @@ -101,10 +112,14 @@ Array [ ] `; -exports[`importLoaders option 1 (no loaders before): module 1`] = ` +exports[`"importLoaders" option should work with a value equal to "1" ("postcss-loader" before): warnings 1`] = `Array []`; + +exports[`"importLoaders" option should work with a value equal to "1" (no loaders before): errors 1`] = `Array []`; + +exports[`"importLoaders" option should work with a value equal to "1" (no loaders before): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./imported.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module @@ -112,26 +127,22 @@ exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgb(0 0 100% / " `; -exports[`importLoaders option 1 (no loaders before): warnings 1`] = `Array []`; - -exports[`importLoaders option 2 (\`postcss-loader\` before): errors 1`] = `Array []`; - -exports[`importLoaders option 2 (\`postcss-loader\` before): module (evaluated) 1`] = ` +exports[`"importLoaders" option should work with a value equal to "1" (no loaders before): result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!./nested-import/imported.css", ".bar { color: blue; - color: rgba(0, 0, 255, 0.9); + color: rgb(0 0 100% / 90%); } ", "", ], Array [ - 1, + "./nested-import/source.css", ".foo { color: red; - color: rgba(0, 0, 255, 0.9); + color: rgb(0 0 100% / 90%); } ", "", @@ -139,10 +150,14 @@ Array [ ] `; -exports[`importLoaders option 2 (\`postcss-loader\` before): module 1`] = ` +exports[`"importLoaders" option should work with a value equal to "1" (no loaders before): warnings 1`] = `Array []`; + +exports[`"importLoaders" option should work with a value equal to "2" ("postcss-loader" before): errors 1`] = `Array []`; + +exports[`"importLoaders" option should work with a value equal to "2" ("postcss-loader" before): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!../../../node_modules/postcss-loader/src/index.js??ref--4-1!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-rules-0!../../../node_modules/postcss-loader/src/index.js??ref--4-rules-1!./imported.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module @@ -150,23 +165,19 @@ exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255 " `; -exports[`importLoaders option 2 (\`postcss-loader\` before): warnings 1`] = `Array []`; - -exports[`importLoaders option not specify (no loader before): errors 1`] = `Array []`; - -exports[`importLoaders option not specify (no loader before): module (evaluated) 1`] = ` +exports[`"importLoaders" option should work with a value equal to "2" ("postcss-loader" before): result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!../../node_modules/postcss-loader/src/index.js?!./nested-import/imported.css", ".bar { color: blue; - color: rgb(0 0 100% / 90%); + color: rgba(0, 0, 255, 0.9); } ", "", ], Array [ - 1, + "./nested-import/source.css", ".foo { color: red; color: rgba(0, 0, 255, 0.9); @@ -177,15 +188,4 @@ Array [ ] `; -exports[`importLoaders option not specify (no loader before): module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -// Module -exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255, 0.9);\\\\n}\\\\n\\", \\"\\"]); -" -`; - -exports[`importLoaders option not specify (no loader before): warnings 1`] = `Array []`; +exports[`"importLoaders" option should work with a value equal to "2" ("postcss-loader" before): warnings 1`] = `Array []`; diff --git a/test/__snapshots__/loader.test.js.snap b/test/__snapshots__/loader.test.js.snap index 3b9a433c..f62d14af 100644 --- a/test/__snapshots__/loader.test.js.snap +++ b/test/__snapshots__/loader.test.js.snap @@ -1,131 +1,195 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`global\`): api 1`] = ` -"/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -// eslint-disable-next-line func-names -module.exports = function(useSourceMap) { - const list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map((item) => { - const content = cssWithMappingToString(item, useSourceMap); - - if (item[2]) { - return \`@media \${item[2]} {\${content}}\`; - } - - return content; - }).join(''); - }; +exports[`loader should reuse \`ast\` from "postcss-loader": errors 1`] = `Array []`; - // import a list of modules into the list - // eslint-disable-next-line func-names - list.i = function(modules, mediaQuery) { - if (typeof modules === 'string') { - // eslint-disable-next-line no-param-reassign - modules = [[null, modules, '']]; - } - - for (let i = 0; i < modules.length; i++) { - const item = [].concat(modules[i]); - - if (mediaQuery) { - if (!item[2]) { - item[2] = mediaQuery; - } else { - item[2] = \`\${mediaQuery} and \${item[2]}\`; - } - } - - list.push(item); - } - }; +exports[`loader should reuse \`ast\` from "postcss-loader": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img1x.png\\"); +var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img2x.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +exports.push([module.id, \\":root {\\\\n --fontSize: 1rem;\\\\n --mainColor: rgba(18,52,86,0.47059);\\\\n --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n overflow-x: hidden;\\\\n overflow-y: auto;\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n body {\\\\n color: rgba(18,52,86,0.47059);\\\\n color: var(--mainColor);\\\\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n font-size: 1rem;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(1rem * 1.5);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n word-wrap: break-word;\\\\n padding-left: calc(1rem / 2 + 1px);\\\\n padding-right: calc(1rem / 2 + 1px);\\\\n padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n margin-top: 0;\\\\n margin-bottom: 0;\\\\n}\\\\n\\\\nmain.hero, .hero.main {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\\\\n\\\\nmain.hero, .hero.main {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n}\\\\n\\\\nmain.hero, .hero.main {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") 2x);\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") 2x);\\\\n}\\\\n\\\\na {\\\\n color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n color: #639;\\\\n }\\\\n\\", \\"\\"]); +" +`; - return list; -}; +exports[`loader should reuse \`ast\` from "postcss-loader": result 1`] = ` +Array [ + Array [ + "./postcss-present-env/source.css", + ":root { + --fontSize: 1rem; + --mainColor: rgba(18,52,86,0.47059); + --secondaryColor: rgba(102, 51, 153, 0.9); +} -function cssWithMappingToString(item, useSourceMap) { - const content = item[1] || ''; - // eslint-disable-next-line prefer-destructuring - const cssMapping = item[3]; +html { + overflow-x: hidden; + overflow-y: auto; + overflow: hidden auto; +} - if (!cssMapping) { - return content; +@media (max-width: 50rem) { + body { + color: rgba(18,52,86,0.47059); + color: var(--mainColor); + font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif; + font-size: 1rem; + font-size: var(--fontSize); + line-height: calc(1rem * 1.5); + line-height: calc(var(--fontSize) * 1.5); + word-wrap: break-word; + padding-left: calc(1rem / 2 + 1px); + padding-right: calc(1rem / 2 + 1px); + padding-left: calc(var(--fontSize) / 2 + 1px); + padding-right: calc(var(--fontSize) / 2 + 1px); } +} - if (useSourceMap && typeof btoa === 'function') { - const sourceMapping = toComment(cssMapping); - const sourceURLs = cssMapping.sources.map( - (source) => \`/*# sourceURL=\${cssMapping.sourceRoot}\${source} */\` - ); +h1,h2,h3,h4,h5,h6 { + margin-top: 0; + margin-bottom: 0; +} - return [content] - .concat(sourceURLs) - .concat([sourceMapping]) - .join('\\\\n'); - } +main.hero, .hero.main { + background-image: url(/webpack/public/path/img1x.png); +} + +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { - return [content].join('\\\\n'); +main.hero, .hero.main { + background-image: url(/webpack/public/path/img2x.png); +} } -// Adapted from convert-source-map (MIT) -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - const base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - const data = \`sourceMappingURL=data:application/json;charset=utf-8;base64,\${base64}\`; +main.hero, .hero.main { + background-image: -webkit-image-set(url(/webpack/public/path/img1x.png) 1x, url(/webpack/public/path/img2x.png) 2x); + background-image: image-set(url(/webpack/public/path/img1x.png) 1x, url(/webpack/public/path/img2x.png) 2x); +} - return \`/*# \${data} */\`; +a { + color: rgba(0, 0, 255, 0.9) } + +a:hover { + color: #639; + } +", + "", + ], +] +`; + +exports[`loader should reuse \`ast\` from "postcss-loader": warnings 1`] = `Array []`; + +exports[`loader should throw error on invalid css syntax: errors 1`] = ` +Array [ + "ModuleBuildError: Module build failed (from \`replaced original path\`): +CssSyntaxError + +(2:3) Unknown word + + 1 | .some { +> 2 | invalid css; + | ^ + 3 | } + 4 | +", +] +`; + +exports[`loader should throw error on invalid css syntax: warnings 1`] = `Array []`; + +exports[`loader should throws error when no loader(s) for assets: errors 1`] = ` +Array [ + "ModuleParseError: Module parse failed: Unexpected character '�' (1:0) +You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders +(Source code omitted for this binary file)", +] +`; + +exports[`loader should throws error when no loader(s) for assets: warnings 1`] = `Array []`; + +exports[`loader should work with "sass-loader": errors 1`] = `Array []`; + +exports[`loader should work with "sass-loader": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); " `; -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`global\`): errors 1`] = `Array []`; +exports[`loader should work with "sass-loader": result 1`] = ` +Array [ + Array [ + "./scss/source.scss", + "body { + font: 100% Helvetica, sans-serif; + color: #333; +}", + "", + ], +] +`; + +exports[`loader should work with "sass-loader": warnings 1`] = `Array []`; -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`global\`): escape 1`] = ` -"module.exports = (url, options) => { - if (!options) { - // eslint-disable-next-line no-param-reassign - options = {}; - } +exports[`loader should work with ModuleConcatenationPlugin (file-loader): errors 1`] = `Array []`; - // eslint-disable-next-line no-underscore-dangle, no-param-reassign - url = url && url.__esModule ? url.default : url; +exports[`loader should work with ModuleConcatenationPlugin (file-loader): warnings 1`] = `Array []`; - if (typeof url !== 'string') { - return url; - } +exports[`loader should work with ModuleConcatenationPlugin (url-loader): errors 1`] = `Array []`; - // If url is already wrapped in quotes, remove them - if (/^['\\"].*['\\"]$/.test(url)) { - // eslint-disable-next-line no-param-reassign - url = url.slice(1, -1); - } +exports[`loader should work with ModuleConcatenationPlugin (url-loader): warnings 1`] = `Array []`; - if (options.hash) { - // eslint-disable-next-line no-param-reassign - url += options.hash; - } +exports[`loader should work with empty css: errors 1`] = `Array []`; - // Should url be wrapped? - // See https://drafts.csswg.org/css-values-3/#urls - if (/[\\"'() \\\\t\\\\n]/.test(url) || options.needQuotes) { - return \`\\"\${url.replace(/\\"/g, '\\\\\\\\\\"').replace(/\\\\n/g, '\\\\\\\\n')}\\"\`; - } +exports[`loader should work with empty css: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\", \\"\\"]); +" +`; + +exports[`loader should work with empty css: result 1`] = ` +Array [ + Array [ + "./empty.css", + "", + "", + ], +] +`; + +exports[`loader should work with empty css: warnings 1`] = `Array []`; + +exports[`loader should work with empty options: errors 1`] = `Array []`; - return url; -}; +exports[`loader should work with empty options: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); " `; -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`global\`): module (evaluated) 1`] = ` +exports[`loader should work with empty options: result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!./imported.css", ".foo { color: red; } @@ -133,7 +197,7 @@ Array [ "", ], Array [ - 1, + "./basic.css", "@charset \\"UTF-8\\"; /* Comment */ @@ -275,10 +339,14 @@ a[href=\\"\\" i] { ] `; -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`global\`): module 1`] = ` +exports[`loader should work with empty options: warnings 1`] = `Array []`; + +exports[`loader should work: errors 1`] = `Array []`; + +exports[`loader should work: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??ref--4-0!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??ref--4!./imported.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); @@ -289,152 +357,28 @@ exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */ " `; -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`global\`): warnings 1`] = `Array []`; - -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`local\`): api 1`] = ` -"/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -// eslint-disable-next-line func-names -module.exports = function(useSourceMap) { - const list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map((item) => { - const content = cssWithMappingToString(item, useSourceMap); - - if (item[2]) { - return \`@media \${item[2]} {\${content}}\`; - } - - return content; - }).join(''); - }; - - // import a list of modules into the list - // eslint-disable-next-line func-names - list.i = function(modules, mediaQuery) { - if (typeof modules === 'string') { - // eslint-disable-next-line no-param-reassign - modules = [[null, modules, '']]; - } - - for (let i = 0; i < modules.length; i++) { - const item = [].concat(modules[i]); - - if (mediaQuery) { - if (!item[2]) { - item[2] = mediaQuery; - } else { - item[2] = \`\${mediaQuery} and \${item[2]}\`; - } - } - - list.push(item); - } - }; - - return list; -}; - -function cssWithMappingToString(item, useSourceMap) { - const content = item[1] || ''; - // eslint-disable-next-line prefer-destructuring - const cssMapping = item[3]; - - if (!cssMapping) { - return content; - } - - if (useSourceMap && typeof btoa === 'function') { - const sourceMapping = toComment(cssMapping); - const sourceURLs = cssMapping.sources.map( - (source) => \`/*# sourceURL=\${cssMapping.sourceRoot}\${source} */\` - ); - - return [content] - .concat(sourceURLs) - .concat([sourceMapping]) - .join('\\\\n'); - } - - return [content].join('\\\\n'); -} - -// Adapted from convert-source-map (MIT) -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - const base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - const data = \`sourceMappingURL=data:application/json;charset=utf-8;base64,\${base64}\`; - - return \`/*# \${data} */\`; -} -" -`; - -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`local\`): errors 1`] = `Array []`; - -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`local\`): escape 1`] = ` -"module.exports = (url, options) => { - if (!options) { - // eslint-disable-next-line no-param-reassign - options = {}; - } - - // eslint-disable-next-line no-underscore-dangle, no-param-reassign - url = url && url.__esModule ? url.default : url; - - if (typeof url !== 'string') { - return url; - } - - // If url is already wrapped in quotes, remove them - if (/^['\\"].*['\\"]$/.test(url)) { - // eslint-disable-next-line no-param-reassign - url = url.slice(1, -1); - } - - if (options.hash) { - // eslint-disable-next-line no-param-reassign - url += options.hash; - } - - // Should url be wrapped? - // See https://drafts.csswg.org/css-values-3/#urls - if (/[\\"'() \\\\t\\\\n]/.test(url) || options.needQuotes) { - return \`\\"\${url.replace(/\\"/g, '\\\\\\\\\\"').replace(/\\\\n/g, '\\\\\\\\n')}\\"\`; - } - - return url; -}; -" -`; - -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`local\`): module (evaluated) 1`] = ` +exports[`loader should work: result 1`] = ` Array [ Array [ - 2, - ".KTxgbb6qrDrjy0obHlZaJ { + "../../src/index.js?!./imported.css", + ".foo { color: red; } ", "", ], Array [ - 1, + "./basic.css", "@charset \\"UTF-8\\"; /* Comment */ -._1PSZ4tK4URrenXyNSoawrx { +.class { color: red; background: url(/webpack/public/path/img.png); } -._3YYoEr128Gk7ZgfRycu4tr { +.class-duplicate-url { background: url(/webpack/public/path/img.png); } @@ -443,13 +387,13 @@ Array [ --bar: 2px; } -._1PSZ4tK4URrenXyNSoawrx { a: b c d; } +.class { a: b c d; } -._1LWD9ZV4XMmN23IPiMONS3 {} +.two {} -._3i3CD1fyX8bvzRt1H0IV-f { a: b c d; } +.u-m\\\\+ { a: b c d; } -._1PSZ4tK4URrenXyNSoawrx { content: \\"\\\\F10C\\" } +.class { content: \\"\\\\F10C\\" } @media only screen and (max-width: 600px) { body { @@ -457,7 +401,7 @@ Array [ } } -._1PSZ4tK4URrenXyNSoawrx { +.class { content: \\"\\\\2193\\"; content: \\"\\\\2193\\\\2193\\"; content: \\"\\\\2193 \\\\2193\\"; @@ -465,53 +409,53 @@ Array [ content: \\"\\\\2193 \\\\2193 \\\\2193\\"; } -._1fWEySWrY44TvDnJ8JNxnE {} -._1fWEySWrY44TvDnJ8JNxnE {} +.-top {} +.\\\\-top {} -#Zmuw5k7Gg4hpgd6CVBEkq {} +#\\\\#test {} -.nz2GDQ2B9PRi6GmzRwbUM { +.grid { display: flex; flex-wrap: wrap; } -.nz2GDQ2B9PRi6GmzRwbUM._1fWEySWrY44TvDnJ8JNxnE { +.grid.\\\\-top { align-items: flex-start; } -.nz2GDQ2B9PRi6GmzRwbUM._1fWEySWrY44TvDnJ8JNxnE { +.grid.-top { align-items: flex-start; } -.nz2GDQ2B9PRi6GmzRwbUM._12Sbi_HmVVsUl9TM-zo3h- { +.grid.\\\\-middle { align-items: center; } -.nz2GDQ2B9PRi6GmzRwbUM.gpFhy6a0Dyg4XrktE4jA3 { +.grid.\\\\-bottom { align-items: flex-end; } -._3i3CD1fyX8bvzRt1H0IV-f {} +.u-m\\\\00002b {} -.YDvxHwoU5TyTmW1oTkKgw {} +.u-m00002b {} -#_3i3CD1fyX8bvzRt1H0IV-f {} +#u-m\\\\+ {} body { font-family: '微软雅黑'; /* some chinese font name */ } -._3txeRUnk43pQ_ialOcI-1F { +.myStyle { content: '\\\\e901'; } -._3txeRUnk43pQ_ialOcI-1F { +.myStyle { content: '\\\\E901'; } -._3Zu4uw_Urs6mU3AHN6h0NV {} +.♫ {} -._4_pn9LmAb2XtAy0kg4FN_ {} /* matches elements with class=\\":\`(\\" */ -._2LEttkwzH7jRE93Ku8MGqY {} /* matches elements with class=\\"1a2b3c\\" */ -#_2E85FJStrx25rDG2lYWifC {} /* matches the element with id=\\"#fake-id\\" */ -#_2pyPm3oWgKQ-rjECcnFYrX {} /* matches the element with id=\\"-a-b-c-\\" */ -#_2pmolVDQD2g7wt3ejy2doK {} /* matches the element with id=\\"©\\" */ +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ :root { --title-align: center; @@ -528,7 +472,7 @@ body { }; } -._2mQhIWfQwYBHR8C-27Rb-E { +.test { content: \\"\\\\2014\\\\A0\\"; content: \\"\\\\2014 \\\\A0\\"; content: \\"\\\\A0 \\\\2014\\"; @@ -537,11 +481,11 @@ body { background-color: #000\\\\9; } -._2H1jUQC4I1yE2c9CEwXfAS._3HDHfIW-5V2j3qdUcRiaMD ._2eB5NM0D15e1HQWl3AHa8q:before{ +.light.on .bulb:before{ content: '💡'; } -.JNjvwXXuHnb_zjhkwPzBD { +.base64 { background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); } @@ -566,1365 +510,4 @@ a[href=\\"\\" i] { ] `; -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`local\`): module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??ref--4-0!./imported.css\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n._1PSZ4tK4URrenXyNSoawrx {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n._3YYoEr128Gk7ZgfRycu4tr {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n._1PSZ4tK4URrenXyNSoawrx { a: b c d; }\\\\n\\\\n._1LWD9ZV4XMmN23IPiMONS3 {}\\\\n\\\\n._3i3CD1fyX8bvzRt1H0IV-f { a: b c d; }\\\\n\\\\n._1PSZ4tK4URrenXyNSoawrx { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n._1PSZ4tK4URrenXyNSoawrx {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n._1fWEySWrY44TvDnJ8JNxnE {}\\\\n._1fWEySWrY44TvDnJ8JNxnE {}\\\\n\\\\n#Zmuw5k7Gg4hpgd6CVBEkq {}\\\\n\\\\n.nz2GDQ2B9PRi6GmzRwbUM {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.nz2GDQ2B9PRi6GmzRwbUM._1fWEySWrY44TvDnJ8JNxnE {\\\\n align-items: flex-start;\\\\n}\\\\n.nz2GDQ2B9PRi6GmzRwbUM._1fWEySWrY44TvDnJ8JNxnE {\\\\n align-items: flex-start;\\\\n}\\\\n.nz2GDQ2B9PRi6GmzRwbUM._12Sbi_HmVVsUl9TM-zo3h- {\\\\n align-items: center;\\\\n}\\\\n.nz2GDQ2B9PRi6GmzRwbUM.gpFhy6a0Dyg4XrktE4jA3 {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n._3i3CD1fyX8bvzRt1H0IV-f {}\\\\n\\\\n.YDvxHwoU5TyTmW1oTkKgw {}\\\\n\\\\n#_3i3CD1fyX8bvzRt1H0IV-f {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n._3txeRUnk43pQ_ialOcI-1F {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n._3txeRUnk43pQ_ialOcI-1F {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n._3Zu4uw_Urs6mU3AHN6h0NV {}\\\\n\\\\n._4_pn9LmAb2XtAy0kg4FN_ {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n._2LEttkwzH7jRE93Ku8MGqY {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#_2E85FJStrx25rDG2lYWifC {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#_2pyPm3oWgKQ-rjECcnFYrX {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#_2pmolVDQD2g7wt3ejy2doK {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n._2mQhIWfQwYBHR8C-27Rb-E {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n._2H1jUQC4I1yE2c9CEwXfAS._3HDHfIW-5V2j3qdUcRiaMD ._2eB5NM0D15e1HQWl3AHa8q:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.JNjvwXXuHnb_zjhkwPzBD {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -exports.locals = { - \\"class\\": \\"_1PSZ4tK4URrenXyNSoawrx\\", - \\"class-duplicate-url\\": \\"_3YYoEr128Gk7ZgfRycu4tr\\", - \\"two\\": \\"_1LWD9ZV4XMmN23IPiMONS3\\", - \\"u-m+\\": \\"_3i3CD1fyX8bvzRt1H0IV-f\\", - \\"-top\\": \\"_1fWEySWrY44TvDnJ8JNxnE\\", - \\"#test\\": \\"Zmuw5k7Gg4hpgd6CVBEkq\\", - \\"grid\\": \\"nz2GDQ2B9PRi6GmzRwbUM\\", - \\"-middle\\": \\"_12Sbi_HmVVsUl9TM-zo3h-\\", - \\"-bottom\\": \\"gpFhy6a0Dyg4XrktE4jA3\\", - \\"u-m00002b\\": \\"YDvxHwoU5TyTmW1oTkKgw\\", - \\"myStyle\\": \\"_3txeRUnk43pQ_ialOcI-1F\\", - \\"♫\\": \\"_3Zu4uw_Urs6mU3AHN6h0NV\\", - \\":\`(\\": \\"_4_pn9LmAb2XtAy0kg4FN_\\", - \\"1a2b3c\\": \\"_2LEttkwzH7jRE93Ku8MGqY\\", - \\"#fake-id\\": \\"_2E85FJStrx25rDG2lYWifC\\", - \\"-a-b-c-\\": \\"_2pyPm3oWgKQ-rjECcnFYrX\\", - \\"©\\": \\"_2pmolVDQD2g7wt3ejy2doK\\", - \\"test\\": \\"_2mQhIWfQwYBHR8C-27Rb-E\\", - \\"light\\": \\"_2H1jUQC4I1yE2c9CEwXfAS\\", - \\"on\\": \\"_3HDHfIW-5V2j3qdUcRiaMD\\", - \\"bulb\\": \\"_2eB5NM0D15e1HQWl3AHa8q\\", - \\"base64\\": \\"JNjvwXXuHnb_zjhkwPzBD\\" -};" -`; - -exports[`loader should compile with \`css\` entry point (with \`modules\` and scope \`local\`): warnings 1`] = `Array []`; - -exports[`loader should compile with \`css\` entry point: api 1`] = ` -"/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -// eslint-disable-next-line func-names -module.exports = function(useSourceMap) { - const list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map((item) => { - const content = cssWithMappingToString(item, useSourceMap); - - if (item[2]) { - return \`@media \${item[2]} {\${content}}\`; - } - - return content; - }).join(''); - }; - - // import a list of modules into the list - // eslint-disable-next-line func-names - list.i = function(modules, mediaQuery) { - if (typeof modules === 'string') { - // eslint-disable-next-line no-param-reassign - modules = [[null, modules, '']]; - } - - for (let i = 0; i < modules.length; i++) { - const item = [].concat(modules[i]); - - if (mediaQuery) { - if (!item[2]) { - item[2] = mediaQuery; - } else { - item[2] = \`\${mediaQuery} and \${item[2]}\`; - } - } - - list.push(item); - } - }; - - return list; -}; - -function cssWithMappingToString(item, useSourceMap) { - const content = item[1] || ''; - // eslint-disable-next-line prefer-destructuring - const cssMapping = item[3]; - - if (!cssMapping) { - return content; - } - - if (useSourceMap && typeof btoa === 'function') { - const sourceMapping = toComment(cssMapping); - const sourceURLs = cssMapping.sources.map( - (source) => \`/*# sourceURL=\${cssMapping.sourceRoot}\${source} */\` - ); - - return [content] - .concat(sourceURLs) - .concat([sourceMapping]) - .join('\\\\n'); - } - - return [content].join('\\\\n'); -} - -// Adapted from convert-source-map (MIT) -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - const base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - const data = \`sourceMappingURL=data:application/json;charset=utf-8;base64,\${base64}\`; - - return \`/*# \${data} */\`; -} -" -`; - -exports[`loader should compile with \`css\` entry point: errors 1`] = `Array []`; - -exports[`loader should compile with \`css\` entry point: escape 1`] = ` -"module.exports = (url, options) => { - if (!options) { - // eslint-disable-next-line no-param-reassign - options = {}; - } - - // eslint-disable-next-line no-underscore-dangle, no-param-reassign - url = url && url.__esModule ? url.default : url; - - if (typeof url !== 'string') { - return url; - } - - // If url is already wrapped in quotes, remove them - if (/^['\\"].*['\\"]$/.test(url)) { - // eslint-disable-next-line no-param-reassign - url = url.slice(1, -1); - } - - if (options.hash) { - // eslint-disable-next-line no-param-reassign - url += options.hash; - } - - // Should url be wrapped? - // See https://drafts.csswg.org/css-values-3/#urls - if (/[\\"'() \\\\t\\\\n]/.test(url) || options.needQuotes) { - return \`\\"\${url.replace(/\\"/g, '\\\\\\\\\\"').replace(/\\\\n/g, '\\\\\\\\n')}\\"\`; - } - - return url; -}; -" -`; - -exports[`loader should compile with \`css\` entry point: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - ".foo { - color: red; -} -", - "", - ], - Array [ - 1, - "@charset \\"UTF-8\\"; - -/* Comment */ - -.class { - color: red; - background: url(/webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(/webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} -", - "", - ], -] -`; - -exports[`loader should compile with \`css\` entry point: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??ref--4-0!./imported.css\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -" -`; - -exports[`loader should compile with \`css\` entry point: warnings 1`] = `Array []`; - -exports[`loader should compile with \`js\` entry point: api 1`] = ` -"/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -// eslint-disable-next-line func-names -module.exports = function(useSourceMap) { - const list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map((item) => { - const content = cssWithMappingToString(item, useSourceMap); - - if (item[2]) { - return \`@media \${item[2]} {\${content}}\`; - } - - return content; - }).join(''); - }; - - // import a list of modules into the list - // eslint-disable-next-line func-names - list.i = function(modules, mediaQuery) { - if (typeof modules === 'string') { - // eslint-disable-next-line no-param-reassign - modules = [[null, modules, '']]; - } - - for (let i = 0; i < modules.length; i++) { - const item = [].concat(modules[i]); - - if (mediaQuery) { - if (!item[2]) { - item[2] = mediaQuery; - } else { - item[2] = \`\${mediaQuery} and \${item[2]}\`; - } - } - - list.push(item); - } - }; - - return list; -}; - -function cssWithMappingToString(item, useSourceMap) { - const content = item[1] || ''; - // eslint-disable-next-line prefer-destructuring - const cssMapping = item[3]; - - if (!cssMapping) { - return content; - } - - if (useSourceMap && typeof btoa === 'function') { - const sourceMapping = toComment(cssMapping); - const sourceURLs = cssMapping.sources.map( - (source) => \`/*# sourceURL=\${cssMapping.sourceRoot}\${source} */\` - ); - - return [content] - .concat(sourceURLs) - .concat([sourceMapping]) - .join('\\\\n'); - } - - return [content].join('\\\\n'); -} - -// Adapted from convert-source-map (MIT) -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - const base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - const data = \`sourceMappingURL=data:application/json;charset=utf-8;base64,\${base64}\`; - - return \`/*# \${data} */\`; -} -" -`; - -exports[`loader should compile with \`js\` entry point: errors 1`] = `Array []`; - -exports[`loader should compile with \`js\` entry point: escape 1`] = ` -"module.exports = (url, options) => { - if (!options) { - // eslint-disable-next-line no-param-reassign - options = {}; - } - - // eslint-disable-next-line no-underscore-dangle, no-param-reassign - url = url && url.__esModule ? url.default : url; - - if (typeof url !== 'string') { - return url; - } - - // If url is already wrapped in quotes, remove them - if (/^['\\"].*['\\"]$/.test(url)) { - // eslint-disable-next-line no-param-reassign - url = url.slice(1, -1); - } - - if (options.hash) { - // eslint-disable-next-line no-param-reassign - url += options.hash; - } - - // Should url be wrapped? - // See https://drafts.csswg.org/css-values-3/#urls - if (/[\\"'() \\\\t\\\\n]/.test(url) || options.needQuotes) { - return \`\\"\${url.replace(/\\"/g, '\\\\\\\\\\"').replace(/\\\\n/g, '\\\\\\\\n')}\\"\`; - } - - return url; -}; -" -`; - -exports[`loader should compile with \`js\` entry point: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - ".foo { - color: red; -} -", - "", - ], - Array [ - 1, - "@charset \\"UTF-8\\"; - -/* Comment */ - -.class { - color: red; - background: url(/webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(/webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} -", - "", - ], -] -`; - -exports[`loader should compile with \`js\` entry point: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??ref--4-0!./imported.css\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -" -`; - -exports[`loader should compile with \`js\` entry point: warnings 1`] = `Array []`; - -exports[`loader should compile with empty css entry point: errors 1`] = `Array []`; - -exports[`loader should compile with empty css entry point: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "", - "", - ], -] -`; - -exports[`loader should compile with empty css entry point: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -// Module -exports.push([module.id, \\"\\", \\"\\"]); -" -`; - -exports[`loader should compile with empty css entry point: warnings 1`] = `Array []`; - -exports[`loader should compile with empty options: errors 1`] = `Array []`; - -exports[`loader should compile with empty options: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "", - "", - ], -] -`; - -exports[`loader should compile with empty options: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -// Module -exports.push([module.id, \\"\\", \\"\\"]); -" -`; - -exports[`loader should compile with empty options: warnings 1`] = `Array []`; - -exports[`loader should throw error on invalid css syntax: errors 1`] = ` -Array [ - "ModuleBuildError: Module build failed (from \`replaced original path\`): -CssSyntaxError - -(2:3) Unknown word - - 1 | .some { -> 2 | invalid css; - | ^ - 3 | } - 4 | -", -] -`; - -exports[`loader should throw error on invalid css syntax: warnings 1`] = `Array []`; - -exports[`loader should throws error when no loader for assets: errors 1`] = ` -Array [ - "ModuleParseError: Module parse failed: Unexpected character '�' (1:0) -You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders -(Source code omitted for this binary file)", -] -`; - -exports[`loader should throws error when no loader for assets: warnings 1`] = `Array []`; - -exports[`loader should work with ModuleConcatenationPlugin (file-loader): assets 1`] = ` -"/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = \\"\\"; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 1); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -// eslint-disable-next-line func-names -module.exports = function(useSourceMap) { - const list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map((item) => { - const content = cssWithMappingToString(item, useSourceMap); - - if (item[2]) { - return \`@media \${item[2]} {\${content}}\`; - } - - return content; - }).join(''); - }; - - // import a list of modules into the list - // eslint-disable-next-line func-names - list.i = function(modules, mediaQuery) { - if (typeof modules === 'string') { - // eslint-disable-next-line no-param-reassign - modules = [[null, modules, '']]; - } - - for (let i = 0; i < modules.length; i++) { - const item = [].concat(modules[i]); - - if (mediaQuery) { - if (!item[2]) { - item[2] = mediaQuery; - } else { - item[2] = \`\${mediaQuery} and \${item[2]}\`; - } - } - - list.push(item); - } - }; - - return list; -}; - -function cssWithMappingToString(item, useSourceMap) { - const content = item[1] || ''; - // eslint-disable-next-line prefer-destructuring - const cssMapping = item[3]; - - if (!cssMapping) { - return content; - } - - if (useSourceMap && typeof btoa === 'function') { - const sourceMapping = toComment(cssMapping); - const sourceURLs = cssMapping.sources.map( - (source) => \`/*# sourceURL=\${cssMapping.sourceRoot}\${source} */\` - ); - - return [content] - .concat(sourceURLs) - .concat([sourceMapping]) - .join('\\\\n'); - } - - return [content].join('\\\\n'); -} - -// Adapted from convert-source-map (MIT) -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - const base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - const data = \`sourceMappingURL=data:application/json;charset=utf-8;base64,\${base64}\`; - - return \`/*# \${data} */\`; -} - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -/* eslint-disable */ -const styles = __webpack_require__(2); - -console.log(styles); - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -// Imports -var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(0); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = __webpack_require__(3); -var ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(4); -var ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(5); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -exports.push([module.i, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -// Imports -var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(0); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -// Module -exports.push([module.i, \\".foo {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - -module.exports = (url, options) => { - if (!options) { - // eslint-disable-next-line no-param-reassign - options = {}; - } - - // eslint-disable-next-line no-underscore-dangle, no-param-reassign - url = url && url.__esModule ? url.default : url; - - if (typeof url !== 'string') { - return url; - } - - // If url is already wrapped in quotes, remove them - if (/^['\\"].*['\\"]$/.test(url)) { - // eslint-disable-next-line no-param-reassign - url = url.slice(1, -1); - } - - if (options.hash) { - // eslint-disable-next-line no-param-reassign - url += options.hash; - } - - // Should url be wrapped? - // See https://drafts.csswg.org/css-values-3/#urls - if (/[\\"'() \\\\t\\\\n]/.test(url) || options.needQuotes) { - return \`\\"\${url.replace(/\\"/g, '\\\\\\\\\\"').replace(/\\\\n/g, '\\\\\\\\n')}\\"\`; - } - - return url; -}; - - -/***/ }), -/* 5 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -\\"use strict\\"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__[\\"default\\"] = (__webpack_require__.p + \\"img.png\\"); - -/***/ }) -/******/ ]); -//# sourceMappingURL=main.bundle.js.map" -`; - -exports[`loader should work with ModuleConcatenationPlugin (file-loader): errors 1`] = `Array []`; - -exports[`loader should work with ModuleConcatenationPlugin (file-loader): warnings 1`] = `Array []`; - -exports[`loader should work with ModuleConcatenationPlugin (url-loader): assets 1`] = ` -"/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = \\"\\"; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 1); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -// eslint-disable-next-line func-names -module.exports = function(useSourceMap) { - const list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map((item) => { - const content = cssWithMappingToString(item, useSourceMap); - - if (item[2]) { - return \`@media \${item[2]} {\${content}}\`; - } - - return content; - }).join(''); - }; - - // import a list of modules into the list - // eslint-disable-next-line func-names - list.i = function(modules, mediaQuery) { - if (typeof modules === 'string') { - // eslint-disable-next-line no-param-reassign - modules = [[null, modules, '']]; - } - - for (let i = 0; i < modules.length; i++) { - const item = [].concat(modules[i]); - - if (mediaQuery) { - if (!item[2]) { - item[2] = mediaQuery; - } else { - item[2] = \`\${mediaQuery} and \${item[2]}\`; - } - } - - list.push(item); - } - }; - - return list; -}; - -function cssWithMappingToString(item, useSourceMap) { - const content = item[1] || ''; - // eslint-disable-next-line prefer-destructuring - const cssMapping = item[3]; - - if (!cssMapping) { - return content; - } - - if (useSourceMap && typeof btoa === 'function') { - const sourceMapping = toComment(cssMapping); - const sourceURLs = cssMapping.sources.map( - (source) => \`/*# sourceURL=\${cssMapping.sourceRoot}\${source} */\` - ); - - return [content] - .concat(sourceURLs) - .concat([sourceMapping]) - .join('\\\\n'); - } - - return [content].join('\\\\n'); -} - -// Adapted from convert-source-map (MIT) -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - const base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - const data = \`sourceMappingURL=data:application/json;charset=utf-8;base64,\${base64}\`; - - return \`/*# \${data} */\`; -} - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -/* eslint-disable */ -const styles = __webpack_require__(2); - -console.log(styles); - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -// Imports -var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(0); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = __webpack_require__(3); -var ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(4); -var ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(5); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -exports.push([module.i, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -// Imports -var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(0); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -// Module -exports.push([module.i, \\".foo {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - -module.exports = (url, options) => { - if (!options) { - // eslint-disable-next-line no-param-reassign - options = {}; - } - - // eslint-disable-next-line no-underscore-dangle, no-param-reassign - url = url && url.__esModule ? url.default : url; - - if (typeof url !== 'string') { - return url; - } - - // If url is already wrapped in quotes, remove them - if (/^['\\"].*['\\"]$/.test(url)) { - // eslint-disable-next-line no-param-reassign - url = url.slice(1, -1); - } - - if (options.hash) { - // eslint-disable-next-line no-param-reassign - url += options.hash; - } - - // Should url be wrapped? - // See https://drafts.csswg.org/css-values-3/#urls - if (/[\\"'() \\\\t\\\\n]/.test(url) || options.needQuotes) { - return \`\\"\${url.replace(/\\"/g, '\\\\\\\\\\"').replace(/\\\\n/g, '\\\\\\\\n')}\\"\`; - } - - return url; -}; - - -/***/ }), -/* 5 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -\\"use strict\\"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__[\\"default\\"] = (\\"data:image/png;base64,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\\"); - -/***/ }) -/******/ ]); -//# sourceMappingURL=main.bundle.js.map" -`; - -exports[`loader should work with ModuleConcatenationPlugin (url-loader): errors 1`] = `Array []`; - -exports[`loader should work with ModuleConcatenationPlugin (url-loader): warnings 1`] = `Array []`; - -exports[`loader using together with "postcss-loader" and reuse \`ast\`: errors 1`] = `Array []`; - -exports[`loader using together with "postcss-loader" and reuse \`ast\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ":root { - --fontSize: 1rem; - --mainColor: rgba(18,52,86,0.47059); - --secondaryColor: rgba(102, 51, 153, 0.9); -} - -html { - overflow-x: hidden; - overflow-y: auto; - overflow: hidden auto; -} - -@media (max-width: 50rem) { - body { - color: rgba(18,52,86,0.47059); - color: var(--mainColor); - font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif; - font-size: 1rem; - font-size: var(--fontSize); - line-height: calc(1rem * 1.5); - line-height: calc(var(--fontSize) * 1.5); - word-wrap: break-word; - padding-left: calc(1rem / 2 + 1px); - padding-right: calc(1rem / 2 + 1px); - padding-left: calc(var(--fontSize) / 2 + 1px); - padding-right: calc(var(--fontSize) / 2 + 1px); - } -} - -h1,h2,h3,h4,h5,h6 { - margin-top: 0; - margin-bottom: 0; -} - -main.hero, .hero.main { - background-image: url(/webpack/public/path/img1x.png); -} - -@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { - -main.hero, .hero.main { - background-image: url(/webpack/public/path/img2x.png); -} -} - -main.hero, .hero.main { - background-image: -webkit-image-set(url(/webpack/public/path/img1x.png) 1x, url(/webpack/public/path/img2x.png) 2x); - background-image: image-set(url(/webpack/public/path/img1x.png) 1x, url(/webpack/public/path/img2x.png) 2x); -} - -a { - color: rgba(0, 0, 255, 0.9) -} - -a:hover { - color: #639; - } -", - "", - ], -] -`; - -exports[`loader using together with "postcss-loader" and reuse \`ast\`: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img1x.png\\"); -var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img2x.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -exports.push([module.id, \\":root {\\\\n --fontSize: 1rem;\\\\n --mainColor: rgba(18,52,86,0.47059);\\\\n --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n overflow-x: hidden;\\\\n overflow-y: auto;\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n body {\\\\n color: rgba(18,52,86,0.47059);\\\\n color: var(--mainColor);\\\\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n font-size: 1rem;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(1rem * 1.5);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n word-wrap: break-word;\\\\n padding-left: calc(1rem / 2 + 1px);\\\\n padding-right: calc(1rem / 2 + 1px);\\\\n padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n margin-top: 0;\\\\n margin-bottom: 0;\\\\n}\\\\n\\\\nmain.hero, .hero.main {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\\\\n\\\\nmain.hero, .hero.main {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n}\\\\n\\\\nmain.hero, .hero.main {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") 2x);\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") 2x);\\\\n}\\\\n\\\\na {\\\\n color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n color: #639;\\\\n }\\\\n\\", \\"\\"]); -" -`; - -exports[`loader using together with "postcss-loader" and reuse \`ast\`: warnings 1`] = `Array []`; - -exports[`loader using together with "sass-loader": errors 1`] = `Array []`; - -exports[`loader using together with "sass-loader": errors 2`] = `Array []`; - -exports[`loader using together with "sass-loader": module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "body { - font: 100% Helvetica, sans-serif; - color: #333; -}", - "", - ], -] -`; - -exports[`loader using together with "sass-loader": module (evaluated) 2`] = ` -Array [ - Array [ - 1, - "body { - font: 100% Helvetica, sans-serif; - color: #333; -}", - "", - ], -] -`; - -exports[`loader using together with "sass-loader": module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -// Module -exports.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); -" -`; - -exports[`loader using together with "sass-loader": module 2`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -// Module -exports.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); -" -`; - -exports[`loader using together with "sass-loader": warnings 1`] = `Array []`; - -exports[`loader using together with "sass-loader": warnings 2`] = `Array []`; +exports[`loader should work: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/localsConvention-option.test.js.snap b/test/__snapshots__/localsConvention-option.test.js.snap index 4925e0ac..a4589ee2 100644 --- a/test/__snapshots__/localsConvention-option.test.js.snap +++ b/test/__snapshots__/localsConvention-option.test.js.snap @@ -1,30 +1,36 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`localsConvention option asIs: errors 1`] = `Array []`; - -exports[`localsConvention option asIs: locals 1`] = ` -Object { - "btn--info_is-disabled_1": "aF9yrid0BHOaiL3bSWCyJ", - "btn-info_is-disabled": "_2HovG-ymIjf-Q-jdQr_LQ-", - "foo": "bar", - "my-btn-info_is-disabled": "value", - "simple": "_2UqJ0qi8H2Q5R46tr_dUvz", -} +exports[`"localsConvention" option should work when not specified: errors 1`] = `Array []`; + +exports[`"localsConvention" option should work when not specified: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"foo\\": \\"bar\\", + \\"my-btn-info_is-disabled\\": \\"value\\", + \\"btn-info_is-disabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", + \\"btn--info_is-disabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", + \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" +};" `; -exports[`localsConvention option asIs: module (evaluated) 1`] = ` +exports[`"localsConvention" option should work when not specified: result 1`] = ` Array [ Array [ - 1, - "._2HovG-ymIjf-Q-jdQr_LQ- { + "./modules/localsConvention/localsConvention.css", + ".erBXHZCN_thRYfCnk-aH8 { color: blue; } -.aF9yrid0BHOaiL3bSWCyJ { +._2YsQE-S0o0NRXfC6XNApz2 { color: blue; } -._2UqJ0qi8H2Q5R46tr_dUvz { +._3gGBcJHZU3seQVP5aq7Ksq { color: red; } @@ -37,36 +43,39 @@ a { ] `; -exports[`localsConvention option asIs: warnings 1`] = `Array []`; - -exports[`localsConvention option camelCase: errors 1`] = `Array []`; - -exports[`localsConvention option camelCase: locals 1`] = ` -Object { - "btn--info_is-disabled_1": "aF9yrid0BHOaiL3bSWCyJ", - "btn-info_is-disabled": "_2HovG-ymIjf-Q-jdQr_LQ-", - "btnInfoIsDisabled": "_2HovG-ymIjf-Q-jdQr_LQ-", - "btnInfoIsDisabled1": "aF9yrid0BHOaiL3bSWCyJ", - "foo": "bar", - "my-btn-info_is-disabled": "value", - "myBtnInfoIsDisabled": "value", - "simple": "_2UqJ0qi8H2Q5R46tr_dUvz", -} +exports[`"localsConvention" option should work when not specified: warnings 1`] = `Array []`; + +exports[`"localsConvention" option should work with a value equal to "asIs": errors 1`] = `Array []`; + +exports[`"localsConvention" option should work with a value equal to "asIs": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"foo\\": \\"bar\\", + \\"my-btn-info_is-disabled\\": \\"value\\", + \\"btn-info_is-disabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", + \\"btn--info_is-disabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", + \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" +};" `; -exports[`localsConvention option camelCase: module (evaluated) 1`] = ` +exports[`"localsConvention" option should work with a value equal to "asIs": result 1`] = ` Array [ Array [ - 1, - "._2HovG-ymIjf-Q-jdQr_LQ- { + "./modules/localsConvention/localsConvention.css", + ".erBXHZCN_thRYfCnk-aH8 { color: blue; } -.aF9yrid0BHOaiL3bSWCyJ { +._2YsQE-S0o0NRXfC6XNApz2 { color: blue; } -._2UqJ0qi8H2Q5R46tr_dUvz { +._3gGBcJHZU3seQVP5aq7Ksq { color: red; } @@ -79,33 +88,42 @@ a { ] `; -exports[`localsConvention option camelCase: warnings 1`] = `Array []`; - -exports[`localsConvention option camelCaseOnly: errors 1`] = `Array []`; - -exports[`localsConvention option camelCaseOnly: locals 1`] = ` -Object { - "btnInfoIsDisabled": "_2HovG-ymIjf-Q-jdQr_LQ-", - "btnInfoIsDisabled1": "aF9yrid0BHOaiL3bSWCyJ", - "foo": "bar", - "myBtnInfoIsDisabled": "value", - "simple": "_2UqJ0qi8H2Q5R46tr_dUvz", -} +exports[`"localsConvention" option should work with a value equal to "asIs": warnings 1`] = `Array []`; + +exports[`"localsConvention" option should work with a value equal to "camelCase": errors 1`] = `Array []`; + +exports[`"localsConvention" option should work with a value equal to "camelCase": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"foo\\": \\"bar\\", + \\"my-btn-info_is-disabled\\": \\"value\\", + \\"myBtnInfoIsDisabled\\": \\"value\\", + \\"btn-info_is-disabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", + \\"btnInfoIsDisabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", + \\"btn--info_is-disabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", + \\"btnInfoIsDisabled1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", + \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" +};" `; -exports[`localsConvention option camelCaseOnly: module (evaluated) 1`] = ` +exports[`"localsConvention" option should work with a value equal to "camelCase": result 1`] = ` Array [ Array [ - 1, - "._2HovG-ymIjf-Q-jdQr_LQ- { + "./modules/localsConvention/localsConvention.css", + ".erBXHZCN_thRYfCnk-aH8 { color: blue; } -.aF9yrid0BHOaiL3bSWCyJ { +._2YsQE-S0o0NRXfC6XNApz2 { color: blue; } -._2UqJ0qi8H2Q5R46tr_dUvz { +._3gGBcJHZU3seQVP5aq7Ksq { color: red; } @@ -118,36 +136,39 @@ a { ] `; -exports[`localsConvention option camelCaseOnly: warnings 1`] = `Array []`; - -exports[`localsConvention option dashes: errors 1`] = `Array []`; - -exports[`localsConvention option dashes: locals 1`] = ` -Object { - "btn--info_is-disabled_1": "aF9yrid0BHOaiL3bSWCyJ", - "btn-info_is-disabled": "_2HovG-ymIjf-Q-jdQr_LQ-", - "btnInfo_isDisabled": "_2HovG-ymIjf-Q-jdQr_LQ-", - "btnInfo_isDisabled_1": "aF9yrid0BHOaiL3bSWCyJ", - "foo": "bar", - "my-btn-info_is-disabled": "value", - "myBtnInfo_isDisabled": "value", - "simple": "_2UqJ0qi8H2Q5R46tr_dUvz", -} +exports[`"localsConvention" option should work with a value equal to "camelCase": warnings 1`] = `Array []`; + +exports[`"localsConvention" option should work with a value equal to "camelCaseOnly": errors 1`] = `Array []`; + +exports[`"localsConvention" option should work with a value equal to "camelCaseOnly": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"foo\\": \\"bar\\", + \\"myBtnInfoIsDisabled\\": \\"value\\", + \\"btnInfoIsDisabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", + \\"btnInfoIsDisabled1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", + \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" +};" `; -exports[`localsConvention option dashes: module (evaluated) 1`] = ` +exports[`"localsConvention" option should work with a value equal to "camelCaseOnly": result 1`] = ` Array [ Array [ - 1, - "._2HovG-ymIjf-Q-jdQr_LQ- { + "./modules/localsConvention/localsConvention.css", + ".erBXHZCN_thRYfCnk-aH8 { color: blue; } -.aF9yrid0BHOaiL3bSWCyJ { +._2YsQE-S0o0NRXfC6XNApz2 { color: blue; } -._2UqJ0qi8H2Q5R46tr_dUvz { +._3gGBcJHZU3seQVP5aq7Ksq { color: red; } @@ -160,33 +181,42 @@ a { ] `; -exports[`localsConvention option dashes: warnings 1`] = `Array []`; - -exports[`localsConvention option dashesOnly: errors 1`] = `Array []`; - -exports[`localsConvention option dashesOnly: locals 1`] = ` -Object { - "btnInfo_isDisabled": "_2HovG-ymIjf-Q-jdQr_LQ-", - "btnInfo_isDisabled_1": "aF9yrid0BHOaiL3bSWCyJ", - "foo": "bar", - "myBtnInfo_isDisabled": "value", - "simple": "_2UqJ0qi8H2Q5R46tr_dUvz", -} +exports[`"localsConvention" option should work with a value equal to "camelCaseOnly": warnings 1`] = `Array []`; + +exports[`"localsConvention" option should work with a value equal to "dashes": errors 1`] = `Array []`; + +exports[`"localsConvention" option should work with a value equal to "dashes": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"foo\\": \\"bar\\", + \\"my-btn-info_is-disabled\\": \\"value\\", + \\"myBtnInfo_isDisabled\\": \\"value\\", + \\"btn-info_is-disabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", + \\"btnInfo_isDisabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", + \\"btn--info_is-disabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", + \\"btnInfo_isDisabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", + \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" +};" `; -exports[`localsConvention option dashesOnly: module (evaluated) 1`] = ` +exports[`"localsConvention" option should work with a value equal to "dashes": result 1`] = ` Array [ Array [ - 1, - "._2HovG-ymIjf-Q-jdQr_LQ- { + "./modules/localsConvention/localsConvention.css", + ".erBXHZCN_thRYfCnk-aH8 { color: blue; } -.aF9yrid0BHOaiL3bSWCyJ { +._2YsQE-S0o0NRXfC6XNApz2 { color: blue; } -._2UqJ0qi8H2Q5R46tr_dUvz { +._3gGBcJHZU3seQVP5aq7Ksq { color: red; } @@ -199,33 +229,39 @@ a { ] `; -exports[`localsConvention option dashesOnly: warnings 1`] = `Array []`; - -exports[`localsConvention option not specified: errors 1`] = `Array []`; - -exports[`localsConvention option not specified: locals 1`] = ` -Object { - "btn--info_is-disabled_1": "aF9yrid0BHOaiL3bSWCyJ", - "btn-info_is-disabled": "_2HovG-ymIjf-Q-jdQr_LQ-", - "foo": "bar", - "my-btn-info_is-disabled": "value", - "simple": "_2UqJ0qi8H2Q5R46tr_dUvz", -} +exports[`"localsConvention" option should work with a value equal to "dashes": warnings 1`] = `Array []`; + +exports[`"localsConvention" option should work with a value equal to "dashesOnly": errors 1`] = `Array []`; + +exports[`"localsConvention" option should work with a value equal to "dashesOnly": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"foo\\": \\"bar\\", + \\"myBtnInfo_isDisabled\\": \\"value\\", + \\"btnInfo_isDisabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", + \\"btnInfo_isDisabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", + \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" +};" `; -exports[`localsConvention option not specified: module (evaluated) 1`] = ` +exports[`"localsConvention" option should work with a value equal to "dashesOnly": result 1`] = ` Array [ Array [ - 1, - "._2HovG-ymIjf-Q-jdQr_LQ- { + "./modules/localsConvention/localsConvention.css", + ".erBXHZCN_thRYfCnk-aH8 { color: blue; } -.aF9yrid0BHOaiL3bSWCyJ { +._2YsQE-S0o0NRXfC6XNApz2 { color: blue; } -._2UqJ0qi8H2Q5R46tr_dUvz { +._3gGBcJHZU3seQVP5aq7Ksq { color: red; } @@ -238,4 +274,4 @@ a { ] `; -exports[`localsConvention option not specified: warnings 1`] = `Array []`; +exports[`"localsConvention" option should work with a value equal to "dashesOnly": warnings 1`] = `Array []`; diff --git a/test/__snapshots__/modules-option.test.js.snap b/test/__snapshots__/modules-option.test.js.snap index f4fb5883..0598da1c 100644 --- a/test/__snapshots__/modules-option.test.js.snap +++ b/test/__snapshots__/modules-option.test.js.snap @@ -1,169 +1,127 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`modules case \`animation\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option issue #286: errors 1`] = `Array []`; -exports[`modules case \`animation\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option issue #286: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"./dep.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".b--main { }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"main\\": \\"b--main \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"red\\"] + \\"\\" +};" +`; -exports[`modules case \`animation\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option issue #286: result 1`] = ` Array [ Array [ - 1, - "a { - animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out; - -} + "./modules/issue-286/dep.css", + ".a--red { color: red } ", "", ], -] -`; - -exports[`modules case \`animation\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; - -exports[`modules case \`animation\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; - -exports[`modules case \`animation\` (\`modules\` value is \`global)\`: locals 1`] = `undefined`; - -exports[`modules case \`animation\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - "a { - animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out; - -} + "./modules/issue-286/source.css", + ".b--main { } ", "", ], ] `; -exports[`modules case \`animation\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option issue #286: warnings 1`] = `Array []`; -exports[`modules case \`animation\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option issue #636: errors 1`] = `Array []`; -exports[`modules case \`animation\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "fade-in": "_3XZSV759G141XcbTZgtQkF", - "slide-right": "_2jinakhsfBWcUNZSsOxUHz", -} +exports[`"modules" option issue #636: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4-rules-0!../../../../node_modules/sass-loader/dist/cjs.js??ref--4-rules-1!./foo.scss\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".prefix-bar {\\\\n}\\", \\"\\"]); +// Exports +exports.locals = { + \\"bar\\": \\"prefix-bar \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"foo\\"] + \\"\\" +};" `; -exports[`modules case \`animation\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option issue #636: result 1`] = ` Array [ Array [ - 1, - "a { - animation: _2jinakhsfBWcUNZSsOxUHz 300ms forwards ease-out, _3XZSV759G141XcbTZgtQkF 300ms forwards ease-out; - -} -", + "../../src/index.js?!../../node_modules/sass-loader/dist/cjs.js?!./modules/issue-636/foo.scss", + ".prefix-foo { + color: red; +}", "", ], -] -`; - -exports[`modules case \`animation\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; - -exports[`modules case \`animation\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; - -exports[`modules case \`animation\` (\`modules\` value is \`object with mode global)\`: locals 1`] = `undefined`; - -exports[`modules case \`animation\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - "a { - animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out; - -} -", + "./modules/issue-636/source.scss", + ".prefix-bar { +}", "", ], ] `; -exports[`modules case \`animation\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option issue #636: warnings 1`] = `Array []`; -exports[`modules case \`animation\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option issue #861: errors 1`] = `Array []`; -exports[`modules case \`animation\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "fade-in": "_fade-in", - "slide-right": "_slide-right", -} +exports[`"modules" option issue #861: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./node_modules/@localpackage/color.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??ref--4!./node_modules/@localpackage/style.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\"._2TvhMv03l8C6o3eyE8OUU3 {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color-grey\\"] + \\";\\\\n margin: 0;\\\\n padding: 0;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color-grey\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color-grey\\"] + \\"\\", + \\"copyright\\": \\"_2TvhMv03l8C6o3eyE8OUU3 \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"type-heading\\"] + \\"\\" +};" `; -exports[`modules case \`animation\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option issue #861: result 1`] = ` Array [ Array [ - 1, - "a { - animation: _slide-right 300ms forwards ease-out, _fade-in 300ms forwards ease-out; - -} + "../../src/index.js?!./modules/issue-861/node_modules/@localpackage/color.css", + " ", "", ], -] -`; - -exports[`modules case \`animation\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; - -exports[`modules case \`animation\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; - -exports[`modules case \`animation\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "fade-in": "_3XZSV759G141XcbTZgtQkF", - "slide-right": "_2jinakhsfBWcUNZSsOxUHz", -} -`; - -exports[`modules case \`animation\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - "a { - animation: _2jinakhsfBWcUNZSsOxUHz 300ms forwards ease-out, _3XZSV759G141XcbTZgtQkF 300ms forwards ease-out; - + "../../src/index.js?!./modules/issue-861/node_modules/@otherlocalpackage/style.css", + "._3_UmHSyGSKHfkAuB_4PF0r { + display: flex; } ", "", ], -] -`; - -exports[`modules case \`animation\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; - -exports[`modules case \`class-names\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; - -exports[`modules case \`class-names\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; - -exports[`modules case \`class-names\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - ".class-1, .class-10 .bar-1 { - color: green; + "../../src/index.js?!./modules/issue-861/node_modules/@localpackage/style.css", + "._3tsKb6RyTte_M89z1nGia_ { + color: red; + margin: 0; + padding: 0; } ", "", ], -] -`; - -exports[`modules case \`class-names\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; - -exports[`modules case \`class-names\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; - -exports[`modules case \`class-names\` (\`modules\` value is \`global)\`: locals 1`] = `undefined`; - -exports[`modules case \`class-names\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - ".class-1, .class-10 .bar-1 { - color: green; + "./modules/issue-861/resolving-from-node_modules.css", + "._2TvhMv03l8C6o3eyE8OUU3 { + color: gray; + margin: 0; + padding: 0; } ", "", @@ -171,24 +129,28 @@ Array [ ] `; -exports[`modules case \`class-names\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option issue #861: warnings 1`] = `Array []`; -exports[`modules case \`class-names\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option issue #966: errors 1`] = `Array []`; -exports[`modules case \`class-names\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "bar-1": "_3GpM4NK17tELexNK1Szvws", - "class-1": "_1GNZOTxutjEX7cZ3Ec7knU", - "class-10": "_15N9BXxWirSgwhYficwysK", -} +exports[`"modules" option issue #966: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".button.hey {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"button\\": \\"button.hey\\" +};" `; -exports[`modules case \`class-names\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option issue #966: result 1`] = ` Array [ Array [ - 1, - "._1GNZOTxutjEX7cZ3Ec7knU, ._15N9BXxWirSgwhYficwysK ._3GpM4NK17tELexNK1Szvws { - color: green; + "./modules/issue-966/button.css", + ".button.hey { + color: red; } ", "", @@ -196,43 +158,38 @@ Array [ ] `; -exports[`modules case \`class-names\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option issue #966: warnings 1`] = `Array []`; -exports[`modules case \`class-names\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option issue #967: errors 1`] = `Array []`; -exports[`modules case \`class-names\` (\`modules\` value is \`object with mode global)\`: locals 1`] = `undefined`; +exports[`"modules" option issue #967: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".modules-issue-967-path-placeholder__foo__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- {\\\\n color: red;\\\\n}\\\\n\\\\n.modules-issue-967-path-placeholder__foo\\\\\\\\/bar__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- {\\\\n color: blue;\\\\n}\\\\n\\\\n.modules-issue-967-path-placeholder__\\\\\\\\[\\\\\\\\/\\\\\\\\?\\\\\\\\<\\\\\\\\>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\3A \\\\\\\\*\\\\\\\\|\\\\\\\\\\\\\\"\\\\\\\\3A \\\\\\\\]__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"foo\\": \\"modules-issue-967-path-placeholder__foo__--sep---sep---sep---sep----sep---sep---sep---sep---sep--\\", + \\"foo/bar\\": \\"modules-issue-967-path-placeholder__foo/bar__--sep---sep---sep---sep----sep---sep---sep---sep---sep--\\", + \\"[/?<>\\\\\\\\\\\\\\\\:*|\\\\\\":]\\": \\"modules-issue-967-path-placeholder__[/?<>\\\\\\\\\\\\\\\\:*|\\\\\\":]__--sep---sep---sep---sep----sep---sep---sep---sep---sep--\\" +};" +`; -exports[`modules case \`class-names\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option issue #967: result 1`] = ` Array [ Array [ - 1, - ".class-1, .class-10 .bar-1 { - color: green; + "./modules/issue-967/path-placeholder.css", + ".modules-issue-967-path-placeholder__foo__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- { + color: red; } -", - "", - ], -] -`; - -exports[`modules case \`class-names\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`class-names\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; - -exports[`modules case \`class-names\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "bar-1": "_bar-1", - "class-1": "_class-1", - "class-10": "_class-10", +.modules-issue-967-path-placeholder__foo\\\\/bar__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- { + color: blue; } -`; -exports[`modules case \`class-names\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._class-1, ._class-10 ._bar-1 { - color: green; +.modules-issue-967-path-placeholder__\\\\[\\\\/\\\\?\\\\<\\\\>\\\\\\\\\\\\\\\\\\\\3A \\\\*\\\\|\\\\\\"\\\\3A \\\\]__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- { + color: yellow; } ", "", @@ -240,24 +197,28 @@ Array [ ] `; -exports[`modules case \`class-names\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option issue #967: warnings 1`] = `Array []`; -exports[`modules case \`class-names\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option issue #980: errors 1`] = `Array []`; -exports[`modules case \`class-names\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "bar-1": "_3GpM4NK17tELexNK1Szvws", - "class-1": "_1GNZOTxutjEX7cZ3Ec7knU", - "class-10": "_15N9BXxWirSgwhYficwysK", -} +exports[`"modules" option issue #980: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".file-with-many-dots-in-name_a_22FL3 {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"file-with-many-dots-in-name_a_22FL3\\" +};" `; -exports[`modules case \`class-names\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option issue #980: result 1`] = ` Array [ Array [ - 1, - "._1GNZOTxutjEX7cZ3Ec7knU, ._15N9BXxWirSgwhYficwysK ._3GpM4NK17tELexNK1Szvws { - color: green; + "./modules/issue-980/file.with.many.dots.in.name.css", + ".file-with-many-dots-in-name_a_22FL3 { + color: red; } ", "", @@ -265,901 +226,1040 @@ Array [ ] `; -exports[`modules case \`class-names\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; - -exports[`modules case \`comment-in-local\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; - -exports[`modules case \`comment-in-local\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; - -exports[`modules case \`comment-in-local\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ":local(.c1/*.c2*/.c3) { background: red; } -", - "", - ], -] -`; - -exports[`modules case \`comment-in-local\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option issue #980: warnings 1`] = `Array []`; -exports[`modules case \`comment-in-local\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option issue #995: errors 1`] = `Array []`; -exports[`modules case \`comment-in-local\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "c1": "_1xn1UbV-5a_s7ig53fR7Lz", - "c3": "_36mr1nZ1pdjd1s5j3RV-z7", -} +exports[`"modules" option issue #995: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"/* class=\\\\\\"😀\\\\\\" */\\\\n.a {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.a.b {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.a .b {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" */\\\\n.😀 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.😀.😓 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.😀 .😓 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" */\\\\n.\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.\\\\\\\\1F600.\\\\\\\\1F613 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.\\\\\\\\1F600 .\\\\\\\\1F613 {\\\\n color: red;\\\\n}\\\\n\\\\n/* Local */\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" */\\\\n.\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.\\\\\\\\1F600.\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.\\\\\\\\1F600 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 .a .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 .\\\\\\\\1F600 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\ndiv:not(.\\\\\\\\1F600) {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 .b {\\\\n color: red;\\\\n}\\\\n\\\\n.b .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F613 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F613 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 > .\\\\\\\\1F600 > .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"😀\\", + \\"b\\": \\"😀\\", + \\"c\\": \\"😀\\" +};" `; -exports[`modules case \`comment-in-local\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option issue #995: result 1`] = ` Array [ Array [ - 1, - "._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; } -", - "", - ], -] -`; + "./modules/issue-995/issue-995.css", + "/* class=\\"😀\\" */ +.a { + color: red; +} -exports[`modules case \`comment-in-local\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +/* class=\\"😀 😓\\" */ +.a.b { + color: red; +} -exports[`modules case \`comment-in-local\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +/* class=\\"😀\\" > class=\\"😓\\" */ +.a .b { + color: red; +} -exports[`modules case \`comment-in-local\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "c1": "_1xn1UbV-5a_s7ig53fR7Lz", - "c3": "_36mr1nZ1pdjd1s5j3RV-z7", +/* class=\\"😀\\" */ +.😀 { + color: red; } -`; -exports[`modules case \`comment-in-local\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; } -", - "", - ], -] -`; +/* class=\\"😀 😓\\" */ +.😀.😓 { + color: red; +} -exports[`modules case \`comment-in-local\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +/* class=\\"😀\\" > class=\\"😓\\" */ +.😀 .😓 { + color: red; +} -exports[`modules case \`comment-in-local\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +/* class=\\"😀\\" */ +.\\\\1F600 { + color: red; +} -exports[`modules case \`comment-in-local\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "c1": "_c1", - "c3": "_c3", +/* class=\\"😀 😓\\" */ +.\\\\1F600.\\\\1F613 { + color: red; } -`; -exports[`modules case \`comment-in-local\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._c1/*.c2*/._c3 { background: red; } -", - "", - ], -] -`; +/* class=\\"😀\\" > class=\\"😓\\" */ +.\\\\1F600 .\\\\1F613 { + color: red; +} -exports[`modules case \`comment-in-local\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +/* Local */ -exports[`modules case \`comment-in-local\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +/* class=\\"😀\\" */ +.\\\\1F600 { + color: red; +} -exports[`modules case \`comment-in-local\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "c1": "_c1", - "c3": "_c3", +/* class=\\"😀 😓\\" */ +.\\\\1F600.\\\\1F600 { + color: red; } -`; -exports[`modules case \`comment-in-local\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._c1/*.c2*/._c3 { background: red; } -", - "", - ], -] -`; - -exports[`modules case \`comment-in-local\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; - -exports[`modules case \`comment-in-local\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; - -exports[`modules case \`comment-in-local\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "c1": "_1xn1UbV-5a_s7ig53fR7Lz", - "c3": "_36mr1nZ1pdjd1s5j3RV-z7", +/* class=\\"😀\\" > class=\\"😓\\" */ +.\\\\1F600 .\\\\1F600 { + color: red; } -`; - -exports[`modules case \`comment-in-local\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; } -", - "", - ], -] -`; - -exports[`modules case \`comment-in-local\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; - -exports[`modules case \`comments\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; - -exports[`modules case \`comments\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; - -exports[`modules case \`comments\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "/* - * a ' above - */ -.bg { - background-image: url(/webpack/public/path/img.png); +.\\\\1F600 .a .\\\\1F600 { + color: red; } -/* - * a ' below - */ -", - "", - ], -] -`; +.\\\\1F600 .\\\\1F600 .\\\\1F600 { + color: red; +} -exports[`modules case \`comments\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +div:not(.\\\\1F600) { + color: red; +} -exports[`modules case \`comments\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +.\\\\1F600 .b { + color: red; +} -exports[`modules case \`comments\` (\`modules\` value is \`global)\`: locals 1`] = `undefined`; +.b .\\\\1F600 { + color: red; +} -exports[`modules case \`comments\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "/* - * a ' above - */ +.\\\\1F613 .\\\\1F600 { + color: red; +} -.bg { - background-image: url(/webpack/public/path/img.png); +.\\\\1F613 .\\\\1F600 { + color: red; } -/* - * a ' below - */ +.\\\\1F600 > .\\\\1F600 > .\\\\1F600 { + color: red; +} ", "", ], ] `; -exports[`modules case \`comments\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option issue #995: warnings 1`] = `Array []`; -exports[`modules case \`comments\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should avoid unnecessary "require": errors 1`] = `Array []`; -exports[`modules case \`comments\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "bg": "_28-VAWbJ8gQCgX50Jcqtzs", -} +exports[`"modules" option should avoid unnecessary "require": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./imported-simple.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._1UgilPFsYxSK4gX5ZkTYCj {\\\\n color: red;\\\\n}\\\\n\\\\n._3V5dPWs_xG519C1PGI1Njd {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"simple-foo\\": \\"_1UgilPFsYxSK4gX5ZkTYCj \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"imported-simple\\"] + \\"\\", + \\"simple-bar\\": \\"_3V5dPWs_xG519C1PGI1Njd \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"imported-simple\\"] + \\"\\" +};" `; -exports[`modules case \`comments\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should avoid unnecessary "require": result 1`] = ` Array [ Array [ - 1, - "/* - * a ' above - */ - -._28-VAWbJ8gQCgX50Jcqtzs { - background-image: url(/webpack/public/path/img.png); + "../../src/index.js?!./modules/composes/imported-simple.css", + "._15HqoDBChWnuDGxJ6jOtUV { + display: block; } - -/* - * a ' below - */ ", "", ], -] -`; - -exports[`modules case \`comments\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; - -exports[`modules case \`comments\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; - -exports[`modules case \`comments\` (\`modules\` value is \`object with mode global)\`: locals 1`] = `undefined`; - -exports[`modules case \`comments\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - "/* - * a ' above - */ - -.bg { - background-image: url(/webpack/public/path/img.png); + "./modules/composes/composes-duplicate.css", + "._1UgilPFsYxSK4gX5ZkTYCj { + color: red; } -/* - * a ' below - */ +._3V5dPWs_xG519C1PGI1Njd { + color: red; +} ", "", ], ] `; -exports[`modules case \`comments\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should avoid unnecessary "require": warnings 1`] = `Array []`; -exports[`modules case \`comments\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should keep order: errors 1`] = `Array []`; -exports[`modules case \`comments\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "bg": "_bg", -} +exports[`"modules" option should keep order: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./order-1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??ref--4!./order-2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\".Wjk4jowq_W5p9UqAWNj8p {\\\\n display: block;\\\\n}\\\\n\\\\n._1hTJaGPJyAIYbIwkbYwOGW {\\\\n display: inline;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"simple\\": \\"Wjk4jowq_W5p9UqAWNj8p \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"order-1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"order-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"order-1-1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"order-2-2\\"] + \\"\\", + \\"simple-other\\": \\"_1hTJaGPJyAIYbIwkbYwOGW \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"order-1\\"] + \\"\\" +};" `; -exports[`modules case \`comments\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should keep order: result 1`] = ` Array [ Array [ - 1, - "/* - * a ' above - */ - -._bg { - background-image: url(/webpack/public/path/img.png); + "../../src/index.js?!./modules/order/order-1.css", + "._2r9YTNQEwCk0bSiZCuc7Ol { + color: red; } -/* - * a ' below - */ +.He7W3er8OE_ZP1m7aP7eb { + color: aliceblue; +} ", "", ], -] -`; - -exports[`modules case \`comments\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; - -exports[`modules case \`comments\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; - -exports[`modules case \`comments\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "bg": "_28-VAWbJ8gQCgX50Jcqtzs", -} -`; - -exports[`modules case \`comments\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - "/* - * a ' above - */ - -._28-VAWbJ8gQCgX50Jcqtzs { - background-image: url(/webpack/public/path/img.png); + "../../src/index.js?!./modules/order/order-2.css", + "._18ve634MAK3QtupmRo9lo3 { + color: blue; } -/* - * a ' below - */ +.z6vp19LKudIK0nOAVOTAc { + color: azure; +} ", "", ], -] -`; - -exports[`modules case \`comments\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; - -exports[`modules case \`composes\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; - -exports[`modules case \`composes\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; - -exports[`modules case \`composes\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - ":local(.c1) { a: 1; } -:local(.c2) { composes: c1; b: 1; } + "./modules/order/index.css", + ".Wjk4jowq_W5p9UqAWNj8p { + display: block; +} + +._1hTJaGPJyAIYbIwkbYwOGW { + display: inline; +} ", "", ], ] `; -exports[`modules case \`composes\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should keep order: warnings 1`] = `Array []`; -exports[`modules case \`composes\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should should work with two leading hyphens: errors 1`] = `Array []`; -exports[`modules case \`composes\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "c1": "_2lVGKlfYXzywV6_acW1a3J", - "c2": "_2FPXZHdIWogtLWkFQcjYj7 _2lVGKlfYXzywV6_acW1a3J", -} +exports[`"modules" option should should work with two leading hyphens: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._--test {\\\\n background: red;\\\\n}\\\\n\\\\n._--_test {\\\\n background: blue;\\\\n}\\\\n\\\\n._--className {\\\\n background: red;\\\\n}\\\\n\\\\n#_--someId {\\\\n background: green;\\\\n}\\\\n\\\\n._--className ._--subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#_--someId ._--subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n._---a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n._--m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n._--B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n._--\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n._--\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#_--\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#_---a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#_--© {\\\\n color: black;\\\\n}\\\\n\\\\n._--♥ { background: lime; }\\\\n._--© { background: lime; }\\\\n._--“‘’” { background: lime; }\\\\n._--☺☃ { background: lime; }\\\\n._--⌘⌥ { background: lime; }\\\\n._--𝄞♪♩♫♬ { background: lime; }\\\\n._--💩 { background: lime; }\\\\n._--\\\\\\\\? { background: lime; }\\\\n._--\\\\\\\\@ { background: lime; }\\\\n._--\\\\\\\\. { background: lime; }\\\\n._--\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n._--\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n._--\\\\\\\\31 23 { background: lime; }\\\\n._--\\\\\\\\31 a2b3c { background: lime; }\\\\n._--\\\\\\\\ { background: lime; }\\\\n._--\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n._--\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n._--\\\\\\\\# { background: lime; }\\\\n._--\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n._--\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n._--\\\\\\\\_ { background: lime; }\\\\n._--\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n._--\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n._--foo\\\\\\\\.bar { background: lime; }\\\\n._--\\\\\\\\3A hover { background: lime; }\\\\n._--\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n._--\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n._--f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n._--f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n._--f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n._--f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n._--f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n._--f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n._--f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n._--foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._--foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._--foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._--foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"_--123\\", + \\"test\\": \\"_--test\\", + \\"_test\\": \\"_--_test\\", + \\"className\\": \\"_--className\\", + \\"someId\\": \\"_--someId\\", + \\"subClass\\": \\"_--subClass\\", + \\"-a0-34a___f\\": \\"_---a0-34a___f\\", + \\"m_x_@\\": \\"_--m_x_@\\", + \\"B&W?\\": \\"_--B&W?\\", + \\":\`(\\": \\"_--:\`(\\", + \\"1a2b3c\\": \\"_--1a2b3c\\", + \\"#fake-id\\": \\"_--#fake-id\\", + \\"-a-b-c-\\": \\"_---a-b-c-\\", + \\"©\\": \\"_--©\\", + \\"♥\\": \\"_--♥\\", + \\"“‘’”\\": \\"_--“‘’”\\", + \\"☺☃\\": \\"_--☺☃\\", + \\"⌘⌥\\": \\"_--⌘⌥\\", + \\"𝄞♪♩♫♬\\": \\"_--𝄞♪♩♫♬\\", + \\"💩\\": \\"_--💩\\", + \\"?\\": \\"_--?\\", + \\"@\\": \\"_--@\\", + \\".\\": \\"_--.\\", + \\":)\\": \\"_--:)\\", + \\"

\\": \\"_--

\\", + \\"<><<<>><>\\": \\"_--<><<<>><>\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"_--++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\", + \\"#\\": \\"_--#\\", + \\"##\\": \\"_--##\\", + \\"#.#.#\\": \\"_--#.#.#\\", + \\"_\\": \\"_--_\\", + \\"{}\\": \\"_--{}\\", + \\"foo.bar\\": \\"_--foo.bar\\", + \\":hover\\": \\"_--:hover\\", + \\":hover:focus:active\\": \\"_--:hover:focus:active\\", + \\"[attr=value]\\": \\"_--[attr=value]\\", + \\"f/o/o\\": \\"_--f/o/o\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"_--f\\\\\\\\o\\\\\\\\o\\", + \\"f*o*o\\": \\"_--f*o*o\\", + \\"f!o!o\\": \\"_--f!o!o\\", + \\"f'o'o\\": \\"_--f'o'o\\", + \\"f~o~o\\": \\"_--f~o~o\\", + \\"f+o+o\\": \\"_--f+o+o\\", + \\"foo/bar\\": \\"_--foo/bar\\", + \\"foo\\\\\\\\bar\\": \\"_--foo\\\\\\\\bar\\", + \\"foo/bar/baz\\": \\"_--foo/bar/baz\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"_--foo\\\\\\\\bar\\\\\\\\baz\\" +};" `; -exports[`modules case \`composes\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should should work with two leading hyphens: result 1`] = ` Array [ Array [ - 1, - "._2lVGKlfYXzywV6_acW1a3J { a: 1; } -._2FPXZHdIWogtLWkFQcjYj7 { b: 1; } -", - "", - ], -] -`; + "./modules/localIdentName/localIdentName.css", + "._--test { + background: red; +} -exports[`modules case \`composes\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +._--_test { + background: blue; +} -exports[`modules case \`composes\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +._--className { + background: red; +} -exports[`modules case \`composes\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "c1": "_2lVGKlfYXzywV6_acW1a3J", - "c2": "_2FPXZHdIWogtLWkFQcjYj7 _2lVGKlfYXzywV6_acW1a3J", +#_--someId { + background: green; } -`; -exports[`modules case \`composes\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._2lVGKlfYXzywV6_acW1a3J { a: 1; } -._2FPXZHdIWogtLWkFQcjYj7 { b: 1; } -", - "", - ], -] -`; +._--className ._--subClass { + color: green; +} -exports[`modules case \`composes\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +#_--someId ._--subClass { + color: blue; +} -exports[`modules case \`composes\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +._---a0-34a___f { + color: red; +} -exports[`modules case \`composes\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "c1": "_c1", - "c2": "_c2 _c1", +._--m_x_\\\\@ { + margin-left: auto !important; + margin-right: auto !important; } -`; -exports[`modules case \`composes\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._c1 { a: 1; } -._c2 { b: 1; } -", - "", - ], -] -`; +._--B\\\\&W\\\\? { + margin-left: auto !important; + margin-right: auto !important; +} -exports[`modules case \`composes\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +/* matches elements with class=\\":\`(\\" */ +._--\\\\3A \\\\\`\\\\( { + color: aqua; +} -exports[`modules case \`composes\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +/* matches elements with class=\\"1a2b3c\\" */ +._--\\\\31 a2b3c { + color: aliceblue; +} -exports[`modules case \`composes\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "c1": "_c1", - "c2": "_c2 _c1", +/* matches the element with id=\\"#fake-id\\" */ +#_--\\\\#fake-id { + color: antiquewhite; } -`; -exports[`modules case \`composes\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._c1 { a: 1; } -._c2 { b: 1; } -", - "", - ], -] -`; +/* matches the element with id=\\"-a-b-c-\\" */ +#_---a-b-c- { + color: azure; +} + +/* matches the element with id=\\"©\\" */ +#_--© { + color: black; +} + +._--♥ { background: lime; } +._--© { background: lime; } +._--“‘’” { background: lime; } +._--☺☃ { background: lime; } +._--⌘⌥ { background: lime; } +._--𝄞♪♩♫♬ { background: lime; } +._--💩 { background: lime; } +._--\\\\? { background: lime; } +._--\\\\@ { background: lime; } +._--\\\\. { background: lime; } +._--\\\\3A \\\\) { background: lime; } +._--\\\\3A \\\\\`\\\\( { background: lime; } +._--\\\\31 23 { background: lime; } +._--\\\\31 a2b3c { background: lime; } +._--\\\\ { background: lime; } +._--\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\> { background: lime; } +._--\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\. { background: lime; } +._--\\\\# { background: lime; } +._--\\\\#\\\\# { background: lime; } +._--\\\\#\\\\.\\\\#\\\\.\\\\# { background: lime; } +._--\\\\_ { background: lime; } +._--\\\\{\\\\} { background: lime; } +._--\\\\#fake\\\\-id { background: lime; } +._--foo\\\\.bar { background: lime; } +._--\\\\3A hover { background: lime; } +._--\\\\3A hover\\\\3A focus\\\\3A active { background: lime; } +._--\\\\[attr\\\\=value\\\\] { background: lime; } +._--f\\\\/o\\\\/o { background: lime; } +._--f\\\\\\\\o\\\\\\\\o { background: lime; } +._--f\\\\*o\\\\*o { background: lime; } +._--f\\\\!o\\\\!o { background: lime; } +._--f\\\\'o\\\\'o { background: lime; } +._--f\\\\~o\\\\~o { background: lime; } +._--f\\\\+o\\\\+o { background: lime; } -exports[`modules case \`composes\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +._--foo\\\\/bar { + background: hotpink; +} -exports[`modules case \`composes\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +._--foo\\\\\\\\bar { + background: hotpink; +} -exports[`modules case \`composes\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "c1": "_2lVGKlfYXzywV6_acW1a3J", - "c2": "_2FPXZHdIWogtLWkFQcjYj7 _2lVGKlfYXzywV6_acW1a3J", +._--foo\\\\/bar\\\\/baz { + background: hotpink; } -`; -exports[`modules case \`composes\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._2lVGKlfYXzywV6_acW1a3J { a: 1; } -._2FPXZHdIWogtLWkFQcjYj7 { b: 1; } +._--foo\\\\\\\\bar\\\\\\\\baz { + background: hotpink; +} ", "", ], ] `; -exports[`modules case \`composes\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should should work with two leading hyphens: warnings 1`] = `Array []`; -exports[`modules case \`composes-1\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should should work with two leading underscore: errors 1`] = `Array []`; -exports[`modules case \`composes-1\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should should work with two leading underscore: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".__test {\\\\n background: red;\\\\n}\\\\n\\\\n.___test {\\\\n background: blue;\\\\n}\\\\n\\\\n.__className {\\\\n background: red;\\\\n}\\\\n\\\\n#__someId {\\\\n background: green;\\\\n}\\\\n\\\\n.__className .__subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#__someId .__subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n.__-a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n.__m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.__B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.__\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.__\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#__\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#__-a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#__© {\\\\n color: black;\\\\n}\\\\n\\\\n.__♥ { background: lime; }\\\\n.__© { background: lime; }\\\\n.__“‘’” { background: lime; }\\\\n.__☺☃ { background: lime; }\\\\n.__⌘⌥ { background: lime; }\\\\n.__𝄞♪♩♫♬ { background: lime; }\\\\n.__💩 { background: lime; }\\\\n.__\\\\\\\\? { background: lime; }\\\\n.__\\\\\\\\@ { background: lime; }\\\\n.__\\\\\\\\. { background: lime; }\\\\n.__\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n.__\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n.__\\\\\\\\31 23 { background: lime; }\\\\n.__\\\\\\\\31 a2b3c { background: lime; }\\\\n.__\\\\\\\\ { background: lime; }\\\\n.__\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n.__\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n.__\\\\\\\\# { background: lime; }\\\\n.__\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n.__\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n.__\\\\\\\\_ { background: lime; }\\\\n.__\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n.__\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n.__foo\\\\\\\\.bar { background: lime; }\\\\n.__\\\\\\\\3A hover { background: lime; }\\\\n.__\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n.__\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n.__f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n.__f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n.__f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n.__f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n.__f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n.__f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n.__f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n.__foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.__foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.__foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.__foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"__123\\", + \\"test\\": \\"__test\\", + \\"_test\\": \\"___test\\", + \\"className\\": \\"__className\\", + \\"someId\\": \\"__someId\\", + \\"subClass\\": \\"__subClass\\", + \\"-a0-34a___f\\": \\"__-a0-34a___f\\", + \\"m_x_@\\": \\"__m_x_@\\", + \\"B&W?\\": \\"__B&W?\\", + \\":\`(\\": \\"__:\`(\\", + \\"1a2b3c\\": \\"__1a2b3c\\", + \\"#fake-id\\": \\"__#fake-id\\", + \\"-a-b-c-\\": \\"__-a-b-c-\\", + \\"©\\": \\"__©\\", + \\"♥\\": \\"__♥\\", + \\"“‘’”\\": \\"__“‘’”\\", + \\"☺☃\\": \\"__☺☃\\", + \\"⌘⌥\\": \\"__⌘⌥\\", + \\"𝄞♪♩♫♬\\": \\"__𝄞♪♩♫♬\\", + \\"💩\\": \\"__💩\\", + \\"?\\": \\"__?\\", + \\"@\\": \\"__@\\", + \\".\\": \\"__.\\", + \\":)\\": \\"__:)\\", + \\"

\\": \\"__

\\", + \\"<><<<>><>\\": \\"__<><<<>><>\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"__++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\", + \\"#\\": \\"__#\\", + \\"##\\": \\"__##\\", + \\"#.#.#\\": \\"__#.#.#\\", + \\"_\\": \\"___\\", + \\"{}\\": \\"__{}\\", + \\"foo.bar\\": \\"__foo.bar\\", + \\":hover\\": \\"__:hover\\", + \\":hover:focus:active\\": \\"__:hover:focus:active\\", + \\"[attr=value]\\": \\"__[attr=value]\\", + \\"f/o/o\\": \\"__f/o/o\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"__f\\\\\\\\o\\\\\\\\o\\", + \\"f*o*o\\": \\"__f*o*o\\", + \\"f!o!o\\": \\"__f!o!o\\", + \\"f'o'o\\": \\"__f'o'o\\", + \\"f~o~o\\": \\"__f~o~o\\", + \\"f+o+o\\": \\"__f+o+o\\", + \\"foo/bar\\": \\"__foo/bar\\", + \\"foo\\\\\\\\bar\\": \\"__foo\\\\\\\\bar\\", + \\"foo/bar/baz\\": \\"__foo/bar/baz\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"__foo\\\\\\\\bar\\\\\\\\baz\\" +};" +`; -exports[`modules case \`composes-1\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should should work with two leading underscore: result 1`] = ` Array [ Array [ - 1, - ":local(.c1) { composes: c2 from \\"./file.css\\"; b: 1; } -:local(.c3) { composes: c1; b: 3; } -:local(.c5) { composes: c2 c4 from \\"./file.css\\"; b: 5; } -", - "", - ], -] -`; + "./modules/localIdentName/localIdentName.css", + ".__test { + background: red; +} -exports[`modules case \`composes-1\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +.___test { + background: blue; +} -exports[`modules case \`composes-1\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +.__className { + background: red; +} -exports[`modules case \`composes-1\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "c1": "_1DZQbqp1oX8etdFa5oSOnV _1xYJRliqpSHYzUvktbdaCo", - "c3": "_1PKuwglb3xQB3gwJBZx6_G _1DZQbqp1oX8etdFa5oSOnV _1xYJRliqpSHYzUvktbdaCo", - "c5": "_1MtdK0_soIbU20fcYBbRAe _1xYJRliqpSHYzUvktbdaCo _1jdJRc6HaM3lHykxBSOeII", +#__someId { + background: green; } -`; -exports[`modules case \`composes-1\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._1xYJRliqpSHYzUvktbdaCo { - color: red; +.__className .__subClass { + color: green; } -._1jdJRc6HaM3lHykxBSOeII { +#__someId .__subClass { color: blue; } -.test{ - c: d +.__-a0-34a___f { + color: red; } -", - "", - ], - Array [ - 1, - "._1DZQbqp1oX8etdFa5oSOnV { b: 1; } -._1PKuwglb3xQB3gwJBZx6_G { b: 3; } -._1MtdK0_soIbU20fcYBbRAe { b: 5; } -", - "", - ], -] -`; -exports[`modules case \`composes-1\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; - -exports[`modules case \`composes-1\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +.__m_x_\\\\@ { + margin-left: auto !important; + margin-right: auto !important; +} -exports[`modules case \`composes-1\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "c1": "_1DZQbqp1oX8etdFa5oSOnV _1xYJRliqpSHYzUvktbdaCo", - "c3": "_1PKuwglb3xQB3gwJBZx6_G _1DZQbqp1oX8etdFa5oSOnV _1xYJRliqpSHYzUvktbdaCo", - "c5": "_1MtdK0_soIbU20fcYBbRAe _1xYJRliqpSHYzUvktbdaCo _1jdJRc6HaM3lHykxBSOeII", +.__B\\\\&W\\\\? { + margin-left: auto !important; + margin-right: auto !important; } -`; -exports[`modules case \`composes-1\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._1xYJRliqpSHYzUvktbdaCo { - color: red; +/* matches elements with class=\\":\`(\\" */ +.__\\\\3A \\\\\`\\\\( { + color: aqua; } -._1jdJRc6HaM3lHykxBSOeII { - color: blue; +/* matches elements with class=\\"1a2b3c\\" */ +.__\\\\31 a2b3c { + color: aliceblue; } -._3YdnDqqBfyyJ_9JKWIle3X{ - c: d +/* matches the element with id=\\"#fake-id\\" */ +#__\\\\#fake-id { + color: antiquewhite; } -", - "", - ], - Array [ - 1, - "._1DZQbqp1oX8etdFa5oSOnV { b: 1; } -._1PKuwglb3xQB3gwJBZx6_G { b: 3; } -._1MtdK0_soIbU20fcYBbRAe { b: 5; } -", - "", - ], -] -`; -exports[`modules case \`composes-1\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +/* matches the element with id=\\"-a-b-c-\\" */ +#__-a-b-c- { + color: azure; +} -exports[`modules case \`composes-1\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +/* matches the element with id=\\"©\\" */ +#__© { + color: black; +} -exports[`modules case \`composes-1\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "c1": "_c1 _c2", - "c3": "_c3 _c1 _c2", - "c5": "_c5 _c2 _c4", +.__♥ { background: lime; } +.__© { background: lime; } +.__“‘’” { background: lime; } +.__☺☃ { background: lime; } +.__⌘⌥ { background: lime; } +.__𝄞♪♩♫♬ { background: lime; } +.__💩 { background: lime; } +.__\\\\? { background: lime; } +.__\\\\@ { background: lime; } +.__\\\\. { background: lime; } +.__\\\\3A \\\\) { background: lime; } +.__\\\\3A \\\\\`\\\\( { background: lime; } +.__\\\\31 23 { background: lime; } +.__\\\\31 a2b3c { background: lime; } +.__\\\\ { background: lime; } +.__\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\> { background: lime; } +.__\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\. { background: lime; } +.__\\\\# { background: lime; } +.__\\\\#\\\\# { background: lime; } +.__\\\\#\\\\.\\\\#\\\\.\\\\# { background: lime; } +.__\\\\_ { background: lime; } +.__\\\\{\\\\} { background: lime; } +.__\\\\#fake\\\\-id { background: lime; } +.__foo\\\\.bar { background: lime; } +.__\\\\3A hover { background: lime; } +.__\\\\3A hover\\\\3A focus\\\\3A active { background: lime; } +.__\\\\[attr\\\\=value\\\\] { background: lime; } +.__f\\\\/o\\\\/o { background: lime; } +.__f\\\\\\\\o\\\\\\\\o { background: lime; } +.__f\\\\*o\\\\*o { background: lime; } +.__f\\\\!o\\\\!o { background: lime; } +.__f\\\\'o\\\\'o { background: lime; } +.__f\\\\~o\\\\~o { background: lime; } +.__f\\\\+o\\\\+o { background: lime; } + +.__foo\\\\/bar { + background: hotpink; } -`; -exports[`modules case \`composes-1\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._c2 { - color: red; +.__foo\\\\\\\\bar { + background: hotpink; } -._c4 { - color: blue; +.__foo\\\\/bar\\\\/baz { + background: hotpink; } -.test{ - c: d +.__foo\\\\\\\\bar\\\\\\\\baz { + background: hotpink; } -", - "", - ], - Array [ - 1, - "._c1 { b: 1; } -._c3 { b: 3; } -._c5 { b: 5; } ", "", ], ] `; -exports[`modules case \`composes-1\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should should work with two leading underscore: warnings 1`] = `Array []`; -exports[`modules case \`composes-1\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should support resolving in composes: errors 1`] = `Array []`; -exports[`modules case \`composes-1\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "c1": "_c1 _c2", - "c3": "_c3 _c1 _c2", - "c5": "_c5 _c2 _c4", -} +exports[`"modules" option should support resolving in composes: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./values.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??ref--4!./something.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_2___ = require(\\"-!../../../../src/index.js??ref--4!./imported-simple.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_3___ = require(\\"-!../../../../src/index.js??ref--4!./relative.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_4___ = require(\\"-!../../../../src/index.js??ref--4!./top-relative.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_5___ = require(\\"-!../../../../src/index.js??ref--4!../issue-861/node_modules/package/style.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_6___ = require(\\"-!../../../../src/index.js??ref--4!aliasesComposes/alias.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./test-other.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"../../url/img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +exports.i(___CSS_LOADER_ICSS_IMPORT_2___); +exports.i(___CSS_LOADER_ICSS_IMPORT_3___); +exports.i(___CSS_LOADER_ICSS_IMPORT_4___); +exports.i(___CSS_LOADER_ICSS_IMPORT_5___); +exports.i(___CSS_LOADER_ICSS_IMPORT_6___); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"(min-width: 100px)\\"); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\".fSErEFKw3e7Iv0EmVr4Ii {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-def\\"] + \\";\\\\n}\\\\n\\\\n._1NrOxbibeQ5qcRoPL7kDtu {\\\\n color: blue;\\\\n}\\\\n\\\\n.djNAVB7y500wM1pkOwuGn {\\\\n display: block;\\\\n}\\\\n\\\\n._291GtMV2HIwa4Iis74myBh {\\\\n width: \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"v-something\\"] + \\";\\\\n}\\\\n\\\\n._2KPSOif5_L54Ue252-4SMZ {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-other\\"] + \\";\\\\n}\\\\n\\\\n._1ZuFusdyp6cE2KJ9RECux1 {\\\\n prop: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-def\\"] + \\";\\\\n duplicate: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-other\\"] + \\";\\\\n}\\\\n\\\\n.dMcylihD3G3oGCNWDsAa3 {\\\\n color: red;\\\\n}\\\\n\\\\n._2t9qA9qE4OH2A3DVwUtOFP {\\\\n color: yellow;\\\\n}\\\\n\\\\n._1XQGy4UOqsVVHSULdn-uc6 {\\\\n color: gray;\\\\n}\\\\n\\\\n._3oZRfl5v6W4ji2oerfYhpL {\\\\n color: gray;\\\\n}\\\\n\\\\n._1KLfOsDDmt6EGUIDKukOvV {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.PxB1r-csu3e3lUOZiD69t {\\\\n color: #BF4040;\\\\n}\\\\n\\\\n._2nUmv-YIlxvzza9j2rJQjJ {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n ._21OP3aGLw7Si4lLuiK3vhf {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"s-white\\"] + \\" {\\\\n color: white;\\\\n}\\\\n\\\\n@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"m-small\\"] + \\" {\\\\n ._21OP3aGLw7Si4lLuiK3vhf {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n@value v-comment: /* comment */;\\\\n\\\\n.zbowt65f4EBNzWh_uiPv0 {\\\\n v-ident: validIdent;\\\\n v-pre-defined-ident: left;\\\\n v-string: 'content';\\\\n v-string-1: '';\\\\n v-url: url(https://www.exammple.com/images/my-background.png);\\\\n v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n v-integer: 100;\\\\n v-integer-1: -100;\\\\n v-integer-2: +100;\\\\n v-number: .60;\\\\n v-number-1: -456.8;\\\\n v-number-2: -3.4e-2;\\\\n v-dimension: 12px;\\\\n v-percentage: 100%;\\\\n v-hex: #fff;\\\\n v-comment: v-comment 10px v-comment;\\\\n v-function: rgb(0,0,0);\\\\n v-unicode-range: U+0025-00FF;\\\\n mutliple: #fff .60 100%;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: 'content';\\\\n}\\\\n\\\\n@supports (content: 'content') {\\\\n a {\\\\n content: 'content';\\\\n }\\\\n}\\\\n\\\\n[class~='content'] {\\\\n color:green;\\\\n}\\\\n\\\\n._3yApLlXpoidfnd3JfO_WEf {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"v-def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-def\\"] + \\"\\", + \\"v-other\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-other\\"] + \\"\\", + \\"s-white\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"s-white\\"] + \\"\\", + \\"m-small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"m-small\\"] + \\"\\", + \\"v-something\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"v-something\\"] + \\"\\", + \\"v-foo\\": \\"blue\\", + \\"v-bar\\": \\"block\\", + \\"v-primary\\": \\"#BF4040\\", + \\"s-black\\": \\"black-selector\\", + \\"m-large\\": \\"(min-width: 960px)\\", + \\"v-ident\\": \\"validIdent\\", + \\"v-pre-defined-ident\\": \\"left\\", + \\"v-string\\": \\"'content'\\", + \\"v-string-1\\": \\"''\\", + \\"v-url\\": \\"url(https://www.exammple.com/images/my-background.png)\\", + \\"v-url-1\\": \\"url('https://www.exammple.com/images/my-background.png')\\", + \\"v-url-2\\": \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\", + \\"v-integer\\": \\"100\\", + \\"v-integer-1\\": \\"-100\\", + \\"v-integer-2\\": \\"+100\\", + \\"v-number\\": \\".60\\", + \\"v-number-1\\": \\"-456.8\\", + \\"v-number-2\\": \\"-3.4e-2\\", + \\"v-dimension\\": \\"12px\\", + \\"v-percentage\\": \\"100%\\", + \\"v-hex\\": \\"#fff\\", + \\"v-function\\": \\"rgb(0,0,0)\\", + \\"v-unicode-range\\": \\"U+0025-00FF\\", + \\"ghi\\": \\"fSErEFKw3e7Iv0EmVr4Ii\\", + \\"class\\": \\"_1NrOxbibeQ5qcRoPL7kDtu\\", + \\"other\\": \\"djNAVB7y500wM1pkOwuGn\\", + \\"other-other\\": \\"_291GtMV2HIwa4Iis74myBh\\", + \\"green\\": \\"_2KPSOif5_L54Ue252-4SMZ\\", + \\"foo\\": \\"_1ZuFusdyp6cE2KJ9RECux1\\", + \\"simple\\": \\"dMcylihD3G3oGCNWDsAa3 \\" + ___CSS_LOADER_ICSS_IMPORT_2___.locals[\\"imported-simple\\"] + \\"\\", + \\"relative\\": \\"_2t9qA9qE4OH2A3DVwUtOFP \\" + ___CSS_LOADER_ICSS_IMPORT_3___.locals[\\"imported-relative\\"] + \\"\\", + \\"top-relative\\": \\"_1XQGy4UOqsVVHSULdn-uc6 \\" + ___CSS_LOADER_ICSS_IMPORT_4___.locals[\\"imported-relative\\"] + \\"\\", + \\"module\\": \\"_3oZRfl5v6W4ji2oerfYhpL \\" + ___CSS_LOADER_ICSS_IMPORT_5___.locals[\\"imported-module\\"] + \\"\\", + \\"alias\\": \\"_1KLfOsDDmt6EGUIDKukOvV \\" + ___CSS_LOADER_ICSS_IMPORT_6___.locals[\\"imported-alias\\"] + \\"\\", + \\"primary-selector\\": \\"PxB1r-csu3e3lUOZiD69t\\", + \\"black-selector\\": \\"_2nUmv-YIlxvzza9j2rJQjJ\\", + \\"header\\": \\"_21OP3aGLw7Si4lLuiK3vhf\\", + \\"foobarbaz\\": \\"zbowt65f4EBNzWh_uiPv0\\", + \\"url\\": \\"_3yApLlXpoidfnd3JfO_WEf\\" +};" `; -exports[`modules case \`composes-1\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should support resolving in composes: result 1`] = ` Array [ Array [ - 2, - "._c2 { - color: red; -} - -._c4 { - color: blue; -} - -._test{ - c: d -} + "../../src/index.js?!./modules/composes/values.css", + " ", "", ], Array [ - 1, - "._c1 { b: 1; } -._c3 { b: 3; } -._c5 { b: 5; } + "../../src/index.js?!./modules/composes/something.css", + " ", "", ], -] -`; - -exports[`modules case \`composes-1\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; - -exports[`modules case \`composes-1\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; - -exports[`modules case \`composes-1\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "c1": "_1DZQbqp1oX8etdFa5oSOnV _1xYJRliqpSHYzUvktbdaCo", - "c3": "_1PKuwglb3xQB3gwJBZx6_G _1DZQbqp1oX8etdFa5oSOnV _1xYJRliqpSHYzUvktbdaCo", - "c5": "_1MtdK0_soIbU20fcYBbRAe _1xYJRliqpSHYzUvktbdaCo _1jdJRc6HaM3lHykxBSOeII", -} -`; - -exports[`modules case \`composes-1\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ Array [ - 2, - "._1xYJRliqpSHYzUvktbdaCo { - color: red; -} - -._1jdJRc6HaM3lHykxBSOeII { - color: blue; + "../../src/index.js?!./modules/composes/imported-simple.css", + "._15HqoDBChWnuDGxJ6jOtUV { + display: block; } - -._3YdnDqqBfyyJ_9JKWIle3X{ - c: d +", + "", + ], + Array [ + "../../src/index.js?!./modules/composes/relative.css", + "._2XpGrQ60AX7p8fQT9hACyH { + display: inline; } ", "", ], Array [ - 1, - "._1DZQbqp1oX8etdFa5oSOnV { b: 1; } -._1PKuwglb3xQB3gwJBZx6_G { b: 3; } -._1MtdK0_soIbU20fcYBbRAe { b: 5; } + "../../src/index.js?!./modules/composes/top-relative.css", + "._1Ua1iZV27bUg7cs1NExheb { + display: flex; +} ", "", ], -] -`; - -exports[`modules case \`composes-1\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; - -exports[`modules case \`composes-2\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; - -exports[`modules case \`composes-2\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; - -exports[`modules case \`composes-2\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - ":local(.c1) { composes: c-2 from \\"./file.css\\"; b: 1; } -:local(.c3) { composes: c1; b: 3; } -:local(.c5) { composes: c-2 c4 from \\"./file.css\\"; b: 5; } + "../../src/index.js?!./modules/issue-861/node_modules/package/style.css", + ".HM73Ud1_EQz1eaYocwagZ { + display: inline-block; +} ", "", ], -] -`; + Array [ + "../../src/index.js?!./modules/composes/alias.css", + "._1qxfPu6Vbru-xS0LA5GWJT { + display: table; +} +", + "", + ], + Array [ + "../../src/index.js?!./modules/composes/test-other.css", + "._2KbNYW68v_VxbQ8XdpUuGh { + d: d; +} +", + "(min-width: 100px)", + ], + Array [ + "./modules/composes/composes.css", + ".fSErEFKw3e7Iv0EmVr4Ii { + color: red; +} -exports[`modules case \`composes-2\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +._1NrOxbibeQ5qcRoPL7kDtu { + color: blue; +} -exports[`modules case \`composes-2\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +.djNAVB7y500wM1pkOwuGn { + display: block; +} -exports[`modules case \`composes-2\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "c1": "_2tj5Xzv7Ei8HGFvkrlGXyv _3CxjkH18CkEkRZ4FO4v-NQ", - "c3": "_1TPNBQGz_snQ6aGvXARYo0 _2tj5Xzv7Ei8HGFvkrlGXyv _3CxjkH18CkEkRZ4FO4v-NQ", - "c5": "rkDOmH5RkgZGaQ5Fey09Z _3CxjkH18CkEkRZ4FO4v-NQ G8VU3XI3HtOvZPlSEb9S3", +._291GtMV2HIwa4Iis74myBh { + width: 2112moon; } -`; -exports[`modules case \`composes-2\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._3CxjkH18CkEkRZ4FO4v-NQ { +._2KPSOif5_L54Ue252-4SMZ { + color: green; +} + +._1ZuFusdyp6cE2KJ9RECux1 { + prop: red; + duplicate: green; +} + +.dMcylihD3G3oGCNWDsAa3 { color: red; } -.G8VU3XI3HtOvZPlSEb9S3 { - color: blue; +._2t9qA9qE4OH2A3DVwUtOFP { + color: yellow; } -.test{ - c: d +._1XQGy4UOqsVVHSULdn-uc6 { + color: gray; } -", - "", - ], - Array [ - 1, - "._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; } -._1TPNBQGz_snQ6aGvXARYo0 { b: 3; } -.rkDOmH5RkgZGaQ5Fey09Z { b: 5; } -", - "", - ], -] -`; -exports[`modules case \`composes-2\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +._3oZRfl5v6W4ji2oerfYhpL { + color: gray; +} -exports[`modules case \`composes-2\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +._1KLfOsDDmt6EGUIDKukOvV { + color: gainsboro; +} -exports[`modules case \`composes-2\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "c1": "_2tj5Xzv7Ei8HGFvkrlGXyv _3CxjkH18CkEkRZ4FO4v-NQ", - "c3": "_1TPNBQGz_snQ6aGvXARYo0 _2tj5Xzv7Ei8HGFvkrlGXyv _3CxjkH18CkEkRZ4FO4v-NQ", - "c5": "rkDOmH5RkgZGaQ5Fey09Z _3CxjkH18CkEkRZ4FO4v-NQ G8VU3XI3HtOvZPlSEb9S3", +.PxB1r-csu3e3lUOZiD69t { + color: #BF4040; } -`; -exports[`modules case \`composes-2\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._3CxjkH18CkEkRZ4FO4v-NQ { - color: red; +._2nUmv-YIlxvzza9j2rJQjJ { + color: black; } -.G8VU3XI3HtOvZPlSEb9S3 { - color: blue; +@media (min-width: 960px) { + ._21OP3aGLw7Si4lLuiK3vhf { + padding: 0 20px; + } } -._10rrqoQ7Mb3ZcY6LixlnpR{ - c: d +.white { + color: white; } -", - "", - ], - Array [ - 1, - "._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; } -._1TPNBQGz_snQ6aGvXARYo0 { b: 3; } -.rkDOmH5RkgZGaQ5Fey09Z { b: 5; } -", - "", - ], -] -`; -exports[`modules case \`composes-2\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +@media (min-width: 320px) { + ._21OP3aGLw7Si4lLuiK3vhf { + padding: 20px 20px; + } +} +@value v-comment: /* comment */; + +.zbowt65f4EBNzWh_uiPv0 { + v-ident: validIdent; + v-pre-defined-ident: left; + v-string: 'content'; + v-string-1: ''; + v-url: url(https://www.exammple.com/images/my-background.png); + v-url-1: url('https://www.exammple.com/images/my-background.png'); + v-url-2: url(\\"https://www.exammple.com/images/my-background.png\\"); + v-integer: 100; + v-integer-1: -100; + v-integer-2: +100; + v-number: .60; + v-number-1: -456.8; + v-number-2: -3.4e-2; + v-dimension: 12px; + v-percentage: 100%; + v-hex: #fff; + v-comment: v-comment 10px v-comment; + v-function: rgb(0,0,0); + v-unicode-range: U+0025-00FF; + mutliple: #fff .60 100%; +} -exports[`modules case \`composes-2\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`composes-2\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "c1": "_c1 _c-2", - "c3": "_c3 _c1 _c-2", - "c5": "_c5 _c-2 _c4", +a { + content: 'content'; } -`; -exports[`modules case \`composes-2\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._c-2 { - color: red; +@supports (content: 'content') { + a { + content: 'content'; + } } -._c4 { - color: blue; +[class~='content'] { + color:green; } -.test{ - c: d +._3yApLlXpoidfnd3JfO_WEf { + background: url(/webpack/public/path/img.png); } -", - "", - ], - Array [ - 1, - "._c1 { b: 1; } -._c3 { b: 3; } -._c5 { b: 5; } ", "", ], ] `; -exports[`modules case \`composes-2\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should support resolving in composes: warnings 1`] = `Array []`; -exports[`modules case \`composes-2\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work and correctly replace escaped symbols: errors 1`] = `Array []`; -exports[`modules case \`composes-2\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "c1": "_c1 _c-2", - "c3": "_c3 _c1 _c-2", - "c5": "_c5 _c-2 _c4", -} +exports[`"modules" option should work and correctly replace escaped symbols: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".test--_cpw {\\\\n background: red;\\\\n}\\\\n\\\\n._test--1dIr {\\\\n background: blue;\\\\n}\\\\n\\\\n.className--2YAI {\\\\n background: red;\\\\n}\\\\n\\\\n#someId--2mXV {\\\\n background: green;\\\\n}\\\\n\\\\n.className--2YAI .subClass--hcOs {\\\\n color: green;\\\\n}\\\\n\\\\n#someId--2mXV .subClass--hcOs {\\\\n color: blue;\\\\n}\\\\n\\\\n.-a0-34a___f--AnzW {\\\\n color: red;\\\\n}\\\\n\\\\n.m_x_\\\\\\\\@--Nqdt {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.B\\\\\\\\&W\\\\\\\\?--IYdL {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--riRD {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.\\\\\\\\31 a2b3c--zIJ8 {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#\\\\\\\\#fake-id--3i8C {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#-a-b-c---1LFn {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#©--1rph {\\\\n color: black;\\\\n}\\\\n\\\\n.♥--3hI- { background: lime; }\\\\n.©--1rph { background: lime; }\\\\n.“‘’”--2-Fc { background: lime; }\\\\n.☺☃--1ndr { background: lime; }\\\\n.⌘⌥--gxaZ { background: lime; }\\\\n.𝄞♪♩♫♬--mLhO { background: lime; }\\\\n.💩--2t9K { background: lime; }\\\\n.\\\\\\\\?--2I0o { background: lime; }\\\\n.\\\\\\\\@--sCVd { background: lime; }\\\\n.\\\\\\\\.--1HRZ { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\)--mhBL { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--riRD { background: lime; }\\\\n.\\\\\\\\31 23--12FW { background: lime; }\\\\n.\\\\\\\\31 a2b3c--zIJ8 { background: lime; }\\\\n.\\\\\\\\--IjVt { background: lime; }\\\\n.\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\>--oXLW { background: lime; }\\\\n.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.--2HMg { background: lime; }\\\\n.\\\\\\\\#--2hLv { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\#--2LwZ { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\#--i0DF { background: lime; }\\\\n.\\\\\\\\_--1er0 { background: lime; }\\\\n.\\\\\\\\{\\\\\\\\}--2qPT { background: lime; }\\\\n.\\\\\\\\#fake\\\\\\\\-id--3i8C { background: lime; }\\\\n.foo\\\\\\\\.bar--1Tdk { background: lime; }\\\\n.\\\\\\\\3A hover--1vI4 { background: lime; }\\\\n.\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active--2ElO { background: lime; }\\\\n.\\\\\\\\[attr\\\\\\\\=value\\\\\\\\]--1AJ- { background: lime; }\\\\n.f\\\\\\\\/o\\\\\\\\/o--3Zs0 { background: lime; }\\\\n.f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o--3D2d { background: lime; }\\\\n.f\\\\\\\\*o\\\\\\\\*o--2HQY { background: lime; }\\\\n.f\\\\\\\\!o\\\\\\\\!o--1HIX { background: lime; }\\\\n.f\\\\\\\\'o\\\\\\\\'o--3hCQ { background: lime; }\\\\n.f\\\\\\\\~o\\\\\\\\~o--fXtA { background: lime; }\\\\n.f\\\\\\\\+o\\\\\\\\+o--7duh { background: lime; }\\\\n\\\\n.foo\\\\\\\\/bar--1iGa {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar--7qaP {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\/bar\\\\\\\\/baz--24g3 {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz--2NRI {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"123--12FW\\", + \\"test\\": \\"test--_cpw\\", + \\"_test\\": \\"_test--1dIr\\", + \\"className\\": \\"className--2YAI\\", + \\"someId\\": \\"someId--2mXV\\", + \\"subClass\\": \\"subClass--hcOs\\", + \\"-a0-34a___f\\": \\"-a0-34a___f--AnzW\\", + \\"m_x_@\\": \\"m_x_@--Nqdt\\", + \\"B&W?\\": \\"B&W?--IYdL\\", + \\":\`(\\": \\":\`(--riRD\\", + \\"1a2b3c\\": \\"1a2b3c--zIJ8\\", + \\"#fake-id\\": \\"#fake-id--3i8C\\", + \\"-a-b-c-\\": \\"-a-b-c---1LFn\\", + \\"©\\": \\"©--1rph\\", + \\"♥\\": \\"♥--3hI-\\", + \\"“‘’”\\": \\"“‘’”--2-Fc\\", + \\"☺☃\\": \\"☺☃--1ndr\\", + \\"⌘⌥\\": \\"⌘⌥--gxaZ\\", + \\"𝄞♪♩♫♬\\": \\"𝄞♪♩♫♬--mLhO\\", + \\"💩\\": \\"💩--2t9K\\", + \\"?\\": \\"?--2I0o\\", + \\"@\\": \\"@--sCVd\\", + \\".\\": \\".--1HRZ\\", + \\":)\\": \\":)--mhBL\\", + \\"

\\": \\"

--IjVt\\", + \\"<><<<>><>\\": \\"<><<<>><>--oXLW\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.--2HMg\\", + \\"#\\": \\"#--2hLv\\", + \\"##\\": \\"##--2LwZ\\", + \\"#.#.#\\": \\"#.#.#--i0DF\\", + \\"_\\": \\"_--1er0\\", + \\"{}\\": \\"{}--2qPT\\", + \\"foo.bar\\": \\"foo.bar--1Tdk\\", + \\":hover\\": \\":hover--1vI4\\", + \\":hover:focus:active\\": \\":hover:focus:active--2ElO\\", + \\"[attr=value]\\": \\"[attr=value]--1AJ-\\", + \\"f/o/o\\": \\"f/o/o--3Zs0\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"f\\\\\\\\o\\\\\\\\o--3D2d\\", + \\"f*o*o\\": \\"f*o*o--2HQY\\", + \\"f!o!o\\": \\"f!o!o--1HIX\\", + \\"f'o'o\\": \\"f'o'o--3hCQ\\", + \\"f~o~o\\": \\"f~o~o--fXtA\\", + \\"f+o+o\\": \\"f+o+o--7duh\\", + \\"foo/bar\\": \\"foo/bar--1iGa\\", + \\"foo\\\\\\\\bar\\": \\"foo\\\\\\\\bar--7qaP\\", + \\"foo/bar/baz\\": \\"foo/bar/baz--24g3\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\\\\\\\bar\\\\\\\\baz--2NRI\\" +};" `; -exports[`modules case \`composes-2\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work and correctly replace escaped symbols: result 1`] = ` Array [ Array [ - 2, - "._c-2 { - color: red; + "./modules/localIdentName/localIdentName.css", + ".test--_cpw { + background: red; } -._c4 { - color: blue; +._test--1dIr { + background: blue; } -._test{ - c: d +.className--2YAI { + background: red; } -", - "", - ], - Array [ - 1, - "._c1 { b: 1; } -._c3 { b: 3; } -._c5 { b: 5; } -", - "", - ], -] -`; -exports[`modules case \`composes-2\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +#someId--2mXV { + background: green; +} -exports[`modules case \`composes-2\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +.className--2YAI .subClass--hcOs { + color: green; +} -exports[`modules case \`composes-2\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "c1": "_2tj5Xzv7Ei8HGFvkrlGXyv _3CxjkH18CkEkRZ4FO4v-NQ", - "c3": "_1TPNBQGz_snQ6aGvXARYo0 _2tj5Xzv7Ei8HGFvkrlGXyv _3CxjkH18CkEkRZ4FO4v-NQ", - "c5": "rkDOmH5RkgZGaQ5Fey09Z _3CxjkH18CkEkRZ4FO4v-NQ G8VU3XI3HtOvZPlSEb9S3", +#someId--2mXV .subClass--hcOs { + color: blue; } -`; -exports[`modules case \`composes-2\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._3CxjkH18CkEkRZ4FO4v-NQ { +.-a0-34a___f--AnzW { color: red; } -.G8VU3XI3HtOvZPlSEb9S3 { - color: blue; +.m_x_\\\\@--Nqdt { + margin-left: auto !important; + margin-right: auto !important; } -._10rrqoQ7Mb3ZcY6LixlnpR{ - c: d +.B\\\\&W\\\\?--IYdL { + margin-left: auto !important; + margin-right: auto !important; } -", - "", - ], - Array [ - 1, - "._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; } -._1TPNBQGz_snQ6aGvXARYo0 { b: 3; } -.rkDOmH5RkgZGaQ5Fey09Z { b: 5; } -", - "", - ], -] -`; -exports[`modules case \`composes-2\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +/* matches elements with class=\\":\`(\\" */ +.\\\\3A \\\\\`\\\\(--riRD { + color: aqua; +} -exports[`modules case \`composes-multiple\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +/* matches elements with class=\\"1a2b3c\\" */ +.\\\\31 a2b3c--zIJ8 { + color: aliceblue; +} -exports[`modules case \`composes-multiple\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +/* matches the element with id=\\"#fake-id\\" */ +#\\\\#fake-id--3i8C { + color: antiquewhite; +} -exports[`modules case \`composes-multiple\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ":local(.abc) { - composes: def1 from \\"./file1.css\\"; - composes: def2 from \\"./file2.css\\"; +/* matches the element with id=\\"-a-b-c-\\" */ +#-a-b-c---1LFn { + color: azure; +} + +/* matches the element with id=\\"©\\" */ +#©--1rph { + color: black; +} + +.♥--3hI- { background: lime; } +.©--1rph { background: lime; } +.“‘’”--2-Fc { background: lime; } +.☺☃--1ndr { background: lime; } +.⌘⌥--gxaZ { background: lime; } +.𝄞♪♩♫♬--mLhO { background: lime; } +.💩--2t9K { background: lime; } +.\\\\?--2I0o { background: lime; } +.\\\\@--sCVd { background: lime; } +.\\\\.--1HRZ { background: lime; } +.\\\\3A \\\\)--mhBL { background: lime; } +.\\\\3A \\\\\`\\\\(--riRD { background: lime; } +.\\\\31 23--12FW { background: lime; } +.\\\\31 a2b3c--zIJ8 { background: lime; } +.\\\\--IjVt { background: lime; } +.\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\>--oXLW { background: lime; } +.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\.--2HMg { background: lime; } +.\\\\#--2hLv { background: lime; } +.\\\\#\\\\#--2LwZ { background: lime; } +.\\\\#\\\\.\\\\#\\\\.\\\\#--i0DF { background: lime; } +.\\\\_--1er0 { background: lime; } +.\\\\{\\\\}--2qPT { background: lime; } +.\\\\#fake\\\\-id--3i8C { background: lime; } +.foo\\\\.bar--1Tdk { background: lime; } +.\\\\3A hover--1vI4 { background: lime; } +.\\\\3A hover\\\\3A focus\\\\3A active--2ElO { background: lime; } +.\\\\[attr\\\\=value\\\\]--1AJ- { background: lime; } +.f\\\\/o\\\\/o--3Zs0 { background: lime; } +.f\\\\\\\\o\\\\\\\\o--3D2d { background: lime; } +.f\\\\*o\\\\*o--2HQY { background: lime; } +.f\\\\!o\\\\!o--1HIX { background: lime; } +.f\\\\'o\\\\'o--3hCQ { background: lime; } +.f\\\\~o\\\\~o--fXtA { background: lime; } +.f\\\\+o\\\\+o--7duh { background: lime; } + +.foo\\\\/bar--1iGa { + background: hotpink; +} + +.foo\\\\\\\\bar--7qaP { + background: hotpink; +} + +.foo\\\\/bar\\\\/baz--24g3 { + background: hotpink; +} + +.foo\\\\\\\\bar\\\\\\\\baz--2NRI { + background: hotpink; } ", "", @@ -1167,113 +1267,184 @@ Array [ ] `; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work and correctly replace escaped symbols: warnings 1`] = `Array []`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work and has "undefined" context if no context was given: errors 1`] = `Array []`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "abc": "_1bAv4bLL8-hE3a7MyZXrT- _3hEvHUTrMHercKPgTBsK6W _1UYEX_kWsPgokwmdBHI8pU", -} +exports[`"modules" option should work and has "undefined" context if no context was given: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".foo {\\\\n background: red;\\\\n}\\\\n\\\\n.foo {\\\\n background: blue;\\\\n}\\\\n\\\\n.foo {\\\\n background: red;\\\\n}\\\\n\\\\n#foo {\\\\n background: green;\\\\n}\\\\n\\\\n.foo .foo {\\\\n color: green;\\\\n}\\\\n\\\\n#foo .foo {\\\\n color: blue;\\\\n}\\\\n\\\\n.foo {\\\\n color: red;\\\\n}\\\\n\\\\n.foo {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.foo {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.foo {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.foo {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#foo {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#foo {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#foo {\\\\n color: black;\\\\n}\\\\n\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"foo\\", + \\"test\\": \\"foo\\", + \\"_test\\": \\"foo\\", + \\"className\\": \\"foo\\", + \\"someId\\": \\"foo\\", + \\"subClass\\": \\"foo\\", + \\"-a0-34a___f\\": \\"foo\\", + \\"m_x_@\\": \\"foo\\", + \\"B&W?\\": \\"foo\\", + \\":\`(\\": \\"foo\\", + \\"1a2b3c\\": \\"foo\\", + \\"#fake-id\\": \\"foo\\", + \\"-a-b-c-\\": \\"foo\\", + \\"©\\": \\"foo\\", + \\"♥\\": \\"foo\\", + \\"“‘’”\\": \\"foo\\", + \\"☺☃\\": \\"foo\\", + \\"⌘⌥\\": \\"foo\\", + \\"𝄞♪♩♫♬\\": \\"foo\\", + \\"💩\\": \\"foo\\", + \\"?\\": \\"foo\\", + \\"@\\": \\"foo\\", + \\".\\": \\"foo\\", + \\":)\\": \\"foo\\", + \\"

\\": \\"foo\\", + \\"<><<<>><>\\": \\"foo\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"foo\\", + \\"#\\": \\"foo\\", + \\"##\\": \\"foo\\", + \\"#.#.#\\": \\"foo\\", + \\"_\\": \\"foo\\", + \\"{}\\": \\"foo\\", + \\"foo.bar\\": \\"foo\\", + \\":hover\\": \\"foo\\", + \\":hover:focus:active\\": \\"foo\\", + \\"[attr=value]\\": \\"foo\\", + \\"f/o/o\\": \\"foo\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"foo\\", + \\"f*o*o\\": \\"foo\\", + \\"f!o!o\\": \\"foo\\", + \\"f'o'o\\": \\"foo\\", + \\"f~o~o\\": \\"foo\\", + \\"f+o+o\\": \\"foo\\", + \\"foo/bar\\": \\"foo\\", + \\"foo\\\\\\\\bar\\": \\"foo\\", + \\"foo/bar/baz\\": \\"foo\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\" +};" `; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work and has "undefined" context if no context was given: result 1`] = ` Array [ Array [ - 2, - "._3hEvHUTrMHercKPgTBsK6W { - color: red; + "./modules/localIdentName/localIdentName.css", + ".foo { + background: red; } -", - "", - ], - Array [ - 3, - "._1UYEX_kWsPgokwmdBHI8pU { - color: blue; + +.foo { + background: blue; } -", - "", - ], - Array [ - 1, - "._1bAv4bLL8-hE3a7MyZXrT- { + +.foo { + background: red; } -", - "", - ], -] -`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +#foo { + background: green; +} -exports[`modules case \`composes-multiple\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +.foo .foo { + color: green; +} -exports[`modules case \`composes-multiple\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "abc": "_1bAv4bLL8-hE3a7MyZXrT- _3hEvHUTrMHercKPgTBsK6W _1UYEX_kWsPgokwmdBHI8pU", +#foo .foo { + color: blue; } -`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._3hEvHUTrMHercKPgTBsK6W { +.foo { color: red; } -", - "", - ], - Array [ - 3, - "._1UYEX_kWsPgokwmdBHI8pU { - color: blue; + +.foo { + margin-left: auto !important; + margin-right: auto !important; } -", - "", - ], - Array [ - 1, - "._1bAv4bLL8-hE3a7MyZXrT- { + +.foo { + margin-left: auto !important; + margin-right: auto !important; } -", - "", - ], -] -`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +/* matches elements with class=\\":\`(\\" */ +.foo { + color: aqua; +} -exports[`modules case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +/* matches elements with class=\\"1a2b3c\\" */ +.foo { + color: aliceblue; +} -exports[`modules case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "abc": "_abc _def1 _def2", +/* matches the element with id=\\"#fake-id\\" */ +#foo { + color: antiquewhite; } -`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._def1 { - color: red; +/* matches the element with id=\\"-a-b-c-\\" */ +#foo { + color: azure; } -", - "", - ], - Array [ - 3, - "._def2 { - color: blue; + +/* matches the element with id=\\"©\\" */ +#foo { + color: black; } -", - "", - ], - Array [ - 1, - "._abc { + +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } + +.foo { + background: hotpink; +} + +.foo { + background: hotpink; +} + +.foo { + background: hotpink; +} + +.foo { + background: hotpink; } ", "", @@ -1281,124 +1452,184 @@ Array [ ] `; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work and has "undefined" context if no context was given: warnings 1`] = `Array []`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work and prefix leading hyphen when digit is first: errors 1`] = `Array []`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "abc": "_abc _def1 _def2", -} +exports[`"modules" option should work and prefix leading hyphen when digit is first: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._-1test {\\\\n background: red;\\\\n}\\\\n\\\\n._-1_test {\\\\n background: blue;\\\\n}\\\\n\\\\n._-1className {\\\\n background: red;\\\\n}\\\\n\\\\n#_-1someId {\\\\n background: green;\\\\n}\\\\n\\\\n._-1className ._-1subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#_-1someId ._-1subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n._-1-a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n._-1m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n._-1B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n._-1\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n._-1\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#_-1\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#_-1-a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#_-1© {\\\\n color: black;\\\\n}\\\\n\\\\n._-1♥ { background: lime; }\\\\n._-1© { background: lime; }\\\\n._-1“‘’” { background: lime; }\\\\n._-1☺☃ { background: lime; }\\\\n._-1⌘⌥ { background: lime; }\\\\n._-1𝄞♪♩♫♬ { background: lime; }\\\\n._-1💩 { background: lime; }\\\\n._-1\\\\\\\\? { background: lime; }\\\\n._-1\\\\\\\\@ { background: lime; }\\\\n._-1\\\\\\\\. { background: lime; }\\\\n._-1\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n._-1\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n._-1\\\\\\\\31 23 { background: lime; }\\\\n._-1\\\\\\\\31 a2b3c { background: lime; }\\\\n._-1\\\\\\\\ { background: lime; }\\\\n._-1\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n._-1\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n._-1\\\\\\\\# { background: lime; }\\\\n._-1\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n._-1\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n._-1\\\\\\\\_ { background: lime; }\\\\n._-1\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n._-1\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n._-1foo\\\\\\\\.bar { background: lime; }\\\\n._-1\\\\\\\\3A hover { background: lime; }\\\\n._-1\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n._-1\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n._-1f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n._-1f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n._-1f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n._-1f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n._-1f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n._-1f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n._-1f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n._-1foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._-1foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._-1foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._-1foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"_-1123\\", + \\"test\\": \\"_-1test\\", + \\"_test\\": \\"_-1_test\\", + \\"className\\": \\"_-1className\\", + \\"someId\\": \\"_-1someId\\", + \\"subClass\\": \\"_-1subClass\\", + \\"-a0-34a___f\\": \\"_-1-a0-34a___f\\", + \\"m_x_@\\": \\"_-1m_x_@\\", + \\"B&W?\\": \\"_-1B&W?\\", + \\":\`(\\": \\"_-1:\`(\\", + \\"1a2b3c\\": \\"_-11a2b3c\\", + \\"#fake-id\\": \\"_-1#fake-id\\", + \\"-a-b-c-\\": \\"_-1-a-b-c-\\", + \\"©\\": \\"_-1©\\", + \\"♥\\": \\"_-1♥\\", + \\"“‘’”\\": \\"_-1“‘’”\\", + \\"☺☃\\": \\"_-1☺☃\\", + \\"⌘⌥\\": \\"_-1⌘⌥\\", + \\"𝄞♪♩♫♬\\": \\"_-1𝄞♪♩♫♬\\", + \\"💩\\": \\"_-1💩\\", + \\"?\\": \\"_-1?\\", + \\"@\\": \\"_-1@\\", + \\".\\": \\"_-1.\\", + \\":)\\": \\"_-1:)\\", + \\"

\\": \\"_-1

\\", + \\"<><<<>><>\\": \\"_-1<><<<>><>\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"_-1++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\", + \\"#\\": \\"_-1#\\", + \\"##\\": \\"_-1##\\", + \\"#.#.#\\": \\"_-1#.#.#\\", + \\"_\\": \\"_-1_\\", + \\"{}\\": \\"_-1{}\\", + \\"foo.bar\\": \\"_-1foo.bar\\", + \\":hover\\": \\"_-1:hover\\", + \\":hover:focus:active\\": \\"_-1:hover:focus:active\\", + \\"[attr=value]\\": \\"_-1[attr=value]\\", + \\"f/o/o\\": \\"_-1f/o/o\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"_-1f\\\\\\\\o\\\\\\\\o\\", + \\"f*o*o\\": \\"_-1f*o*o\\", + \\"f!o!o\\": \\"_-1f!o!o\\", + \\"f'o'o\\": \\"_-1f'o'o\\", + \\"f~o~o\\": \\"_-1f~o~o\\", + \\"f+o+o\\": \\"_-1f+o+o\\", + \\"foo/bar\\": \\"_-1foo/bar\\", + \\"foo\\\\\\\\bar\\": \\"_-1foo\\\\\\\\bar\\", + \\"foo/bar/baz\\": \\"_-1foo/bar/baz\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"_-1foo\\\\\\\\bar\\\\\\\\baz\\" +};" `; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work and prefix leading hyphen when digit is first: result 1`] = ` Array [ Array [ - 2, - "._def1 { - color: red; + "./modules/localIdentName/localIdentName.css", + "._-1test { + background: red; } -", - "", - ], - Array [ - 3, - "._def2 { - color: blue; + +._-1_test { + background: blue; } -", - "", - ], - Array [ - 1, - "._abc { + +._-1className { + background: red; } -", - "", - ], -] -`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +#_-1someId { + background: green; +} -exports[`modules case \`composes-multiple\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +._-1className ._-1subClass { + color: green; +} -exports[`modules case \`composes-multiple\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "abc": "_1bAv4bLL8-hE3a7MyZXrT- _3hEvHUTrMHercKPgTBsK6W _1UYEX_kWsPgokwmdBHI8pU", +#_-1someId ._-1subClass { + color: blue; } -`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._3hEvHUTrMHercKPgTBsK6W { +._-1-a0-34a___f { color: red; } -", - "", - ], - Array [ - 3, - "._1UYEX_kWsPgokwmdBHI8pU { - color: blue; + +._-1m_x_\\\\@ { + margin-left: auto !important; + margin-right: auto !important; } -", - "", - ], - Array [ - 1, - "._1bAv4bLL8-hE3a7MyZXrT- { + +._-1B\\\\&W\\\\? { + margin-left: auto !important; + margin-right: auto !important; } -", - "", - ], -] -`; -exports[`modules case \`composes-multiple\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +/* matches elements with class=\\":\`(\\" */ +._-1\\\\3A \\\\\`\\\\( { + color: aqua; +} -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +/* matches elements with class=\\"1a2b3c\\" */ +._-1\\\\31 a2b3c { + color: aliceblue; +} -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +/* matches the element with id=\\"#fake-id\\" */ +#_-1\\\\#fake-id { + color: antiquewhite; +} -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ":local(.abc) { - composes: def from \\"./file.css\\"; +/* matches the element with id=\\"-a-b-c-\\" */ +#_-1-a-b-c- { + color: azure; } -", - "", - ], -] -`; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +/* matches the element with id=\\"©\\" */ +#_-1© { + color: black; +} + +._-1♥ { background: lime; } +._-1© { background: lime; } +._-1“‘’” { background: lime; } +._-1☺☃ { background: lime; } +._-1⌘⌥ { background: lime; } +._-1𝄞♪♩♫♬ { background: lime; } +._-1💩 { background: lime; } +._-1\\\\? { background: lime; } +._-1\\\\@ { background: lime; } +._-1\\\\. { background: lime; } +._-1\\\\3A \\\\) { background: lime; } +._-1\\\\3A \\\\\`\\\\( { background: lime; } +._-1\\\\31 23 { background: lime; } +._-1\\\\31 a2b3c { background: lime; } +._-1\\\\ { background: lime; } +._-1\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\> { background: lime; } +._-1\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\. { background: lime; } +._-1\\\\# { background: lime; } +._-1\\\\#\\\\# { background: lime; } +._-1\\\\#\\\\.\\\\#\\\\.\\\\# { background: lime; } +._-1\\\\_ { background: lime; } +._-1\\\\{\\\\} { background: lime; } +._-1\\\\#fake\\\\-id { background: lime; } +._-1foo\\\\.bar { background: lime; } +._-1\\\\3A hover { background: lime; } +._-1\\\\3A hover\\\\3A focus\\\\3A active { background: lime; } +._-1\\\\[attr\\\\=value\\\\] { background: lime; } +._-1f\\\\/o\\\\/o { background: lime; } +._-1f\\\\\\\\o\\\\\\\\o { background: lime; } +._-1f\\\\*o\\\\*o { background: lime; } +._-1f\\\\!o\\\\!o { background: lime; } +._-1f\\\\'o\\\\'o { background: lime; } +._-1f\\\\~o\\\\~o { background: lime; } +._-1f\\\\+o\\\\+o { background: lime; } -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +._-1foo\\\\/bar { + background: hotpink; +} -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "abc": "_3sT-Lzs6aj6TM9J3mM7_Cj zu3DT3PNuTYdVravHX310", +._-1foo\\\\\\\\bar { + background: hotpink; } -`; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - ".zu3DT3PNuTYdVravHX310 { - color: red; +._-1foo\\\\/bar\\\\/baz { + background: hotpink; } -", - "", - ], - Array [ - 1, - "._3sT-Lzs6aj6TM9J3mM7_Cj { + +._-1foo\\\\\\\\bar\\\\\\\\baz { + background: hotpink; } ", "", @@ -1406,119 +1637,184 @@ Array [ ] `; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work and prefix leading hyphen when digit is first: warnings 1`] = `Array []`; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work and respect the "context" option: errors 1`] = `Array []`; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "abc": "_3sT-Lzs6aj6TM9J3mM7_Cj zu3DT3PNuTYdVravHX310", -} +exports[`"modules" option should work and respect the "context" option: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._3bArYx5R {\\\\n background: red;\\\\n}\\\\n\\\\n.XTGsNhBt {\\\\n background: blue;\\\\n}\\\\n\\\\n._2ilfWoxp {\\\\n background: red;\\\\n}\\\\n\\\\n#_3v-9Lk1C {\\\\n background: green;\\\\n}\\\\n\\\\n._2ilfWoxp ._3DLY7Ja5 {\\\\n color: green;\\\\n}\\\\n\\\\n#_3v-9Lk1C ._3DLY7Ja5 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2skz9EDS {\\\\n color: red;\\\\n}\\\\n\\\\n._1pEJLEFa {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n._36Mz6bXX {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n._3smFtgP1 {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n._3nWh_bmc {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#_3zyOTdoW {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#SXlBpmLd {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#_3wIdKrg5 {\\\\n color: black;\\\\n}\\\\n\\\\n._3CvZATcw { background: lime; }\\\\n._3wIdKrg5 { background: lime; }\\\\n._1lLtTh58 { background: lime; }\\\\n._129OOBpF { background: lime; }\\\\n._31l8-xW6 { background: lime; }\\\\n._3PTmP7dH { background: lime; }\\\\n._3iDx9JjF { background: lime; }\\\\n.gjylLYRz { background: lime; }\\\\n.t5XxN6Cw { background: lime; }\\\\n.fEcdI_Ta { background: lime; }\\\\n._3JwMk5Ks { background: lime; }\\\\n._3smFtgP1 { background: lime; }\\\\n._30YAJl6C { background: lime; }\\\\n._3nWh_bmc { background: lime; }\\\\n.juMfCdyH { background: lime; }\\\\n._1nZHf2m5 { background: lime; }\\\\n._3tH-JgLJ { background: lime; }\\\\n._1d4pWlls { background: lime; }\\\\n._1yrD9kGf { background: lime; }\\\\n._181tN6YI { background: lime; }\\\\n._3XX_EoMh { background: lime; }\\\\n._1okItBzL { background: lime; }\\\\n._3zyOTdoW { background: lime; }\\\\n.D1UTMFUQ { background: lime; }\\\\n._1VdiVnid { background: lime; }\\\\n._3bwG403y { background: lime; }\\\\n._2dg-ho4t { background: lime; }\\\\n._3MAXcubw { background: lime; }\\\\n.S0VDfqvq { background: lime; }\\\\n._1Dj0PRAS { background: lime; }\\\\n._3SZwCzRS { background: lime; }\\\\n.mapSsRAG { background: lime; }\\\\n._10Kpk0ys { background: lime; }\\\\n._3t38eY4A { background: lime; }\\\\n\\\\n._37a0QYL7 {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._2hUYlBhh {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._1GrpvCLQ {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._2iqkFI_a {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"_30YAJl6C\\", + \\"test\\": \\"_3bArYx5R\\", + \\"_test\\": \\"XTGsNhBt\\", + \\"className\\": \\"_2ilfWoxp\\", + \\"someId\\": \\"_3v-9Lk1C\\", + \\"subClass\\": \\"_3DLY7Ja5\\", + \\"-a0-34a___f\\": \\"_2skz9EDS\\", + \\"m_x_@\\": \\"_1pEJLEFa\\", + \\"B&W?\\": \\"_36Mz6bXX\\", + \\":\`(\\": \\"_3smFtgP1\\", + \\"1a2b3c\\": \\"_3nWh_bmc\\", + \\"#fake-id\\": \\"_3zyOTdoW\\", + \\"-a-b-c-\\": \\"SXlBpmLd\\", + \\"©\\": \\"_3wIdKrg5\\", + \\"♥\\": \\"_3CvZATcw\\", + \\"“‘’”\\": \\"_1lLtTh58\\", + \\"☺☃\\": \\"_129OOBpF\\", + \\"⌘⌥\\": \\"_31l8-xW6\\", + \\"𝄞♪♩♫♬\\": \\"_3PTmP7dH\\", + \\"💩\\": \\"_3iDx9JjF\\", + \\"?\\": \\"gjylLYRz\\", + \\"@\\": \\"t5XxN6Cw\\", + \\".\\": \\"fEcdI_Ta\\", + \\":)\\": \\"_3JwMk5Ks\\", + \\"

\\": \\"juMfCdyH\\", + \\"<><<<>><>\\": \\"_1nZHf2m5\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"_3tH-JgLJ\\", + \\"#\\": \\"_1d4pWlls\\", + \\"##\\": \\"_1yrD9kGf\\", + \\"#.#.#\\": \\"_181tN6YI\\", + \\"_\\": \\"_3XX_EoMh\\", + \\"{}\\": \\"_1okItBzL\\", + \\"foo.bar\\": \\"D1UTMFUQ\\", + \\":hover\\": \\"_1VdiVnid\\", + \\":hover:focus:active\\": \\"_3bwG403y\\", + \\"[attr=value]\\": \\"_2dg-ho4t\\", + \\"f/o/o\\": \\"_3MAXcubw\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"S0VDfqvq\\", + \\"f*o*o\\": \\"_1Dj0PRAS\\", + \\"f!o!o\\": \\"_3SZwCzRS\\", + \\"f'o'o\\": \\"mapSsRAG\\", + \\"f~o~o\\": \\"_10Kpk0ys\\", + \\"f+o+o\\": \\"_3t38eY4A\\", + \\"foo/bar\\": \\"_37a0QYL7\\", + \\"foo\\\\\\\\bar\\": \\"_2hUYlBhh\\", + \\"foo/bar/baz\\": \\"_1GrpvCLQ\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"_2iqkFI_a\\" +};" `; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work and respect the "context" option: result 1`] = ` Array [ Array [ - 2, - ".zu3DT3PNuTYdVravHX310 { - color: red; + "./modules/localIdentName/localIdentName.css", + "._3bArYx5R { + background: red; } -", - "", - ], - Array [ - 1, - "._3sT-Lzs6aj6TM9J3mM7_Cj { + +.XTGsNhBt { + background: blue; } -", - "", - ], -] -`; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +._2ilfWoxp { + background: red; +} -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +#_3v-9Lk1C { + background: green; +} -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "abc": "_abc _def", +._2ilfWoxp ._3DLY7Ja5 { + color: green; } -`; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._def { +#_3v-9Lk1C ._3DLY7Ja5 { + color: blue; +} + +._2skz9EDS { color: red; } -", - "", - ], - Array [ - 1, - "._abc { + +._1pEJLEFa { + margin-left: auto !important; + margin-right: auto !important; } -", - "", - ], -] -`; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +._36Mz6bXX { + margin-left: auto !important; + margin-right: auto !important; +} -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +/* matches elements with class=\\":\`(\\" */ +._3smFtgP1 { + color: aqua; +} -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "abc": "_abc _def", +/* matches elements with class=\\"1a2b3c\\" */ +._3nWh_bmc { + color: aliceblue; } -`; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - "._def { - color: red; +/* matches the element with id=\\"#fake-id\\" */ +#_3zyOTdoW { + color: antiquewhite; } -", - "", - ], - Array [ - 1, - "._abc { + +/* matches the element with id=\\"-a-b-c-\\" */ +#SXlBpmLd { + color: azure; } -", - "", - ], -] -`; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +/* matches the element with id=\\"©\\" */ +#_3wIdKrg5 { + color: black; +} -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +._3CvZATcw { background: lime; } +._3wIdKrg5 { background: lime; } +._1lLtTh58 { background: lime; } +._129OOBpF { background: lime; } +._31l8-xW6 { background: lime; } +._3PTmP7dH { background: lime; } +._3iDx9JjF { background: lime; } +.gjylLYRz { background: lime; } +.t5XxN6Cw { background: lime; } +.fEcdI_Ta { background: lime; } +._3JwMk5Ks { background: lime; } +._3smFtgP1 { background: lime; } +._30YAJl6C { background: lime; } +._3nWh_bmc { background: lime; } +.juMfCdyH { background: lime; } +._1nZHf2m5 { background: lime; } +._3tH-JgLJ { background: lime; } +._1d4pWlls { background: lime; } +._1yrD9kGf { background: lime; } +._181tN6YI { background: lime; } +._3XX_EoMh { background: lime; } +._1okItBzL { background: lime; } +._3zyOTdoW { background: lime; } +.D1UTMFUQ { background: lime; } +._1VdiVnid { background: lime; } +._3bwG403y { background: lime; } +._2dg-ho4t { background: lime; } +._3MAXcubw { background: lime; } +.S0VDfqvq { background: lime; } +._1Dj0PRAS { background: lime; } +._3SZwCzRS { background: lime; } +.mapSsRAG { background: lime; } +._10Kpk0ys { background: lime; } +._3t38eY4A { background: lime; } + +._37a0QYL7 { + background: hotpink; +} -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "abc": "_3sT-Lzs6aj6TM9J3mM7_Cj zu3DT3PNuTYdVravHX310", +._2hUYlBhh { + background: hotpink; } -`; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - ".zu3DT3PNuTYdVravHX310 { - color: red; +._1GrpvCLQ { + background: hotpink; } -", - "", - ], - Array [ - 1, - "._3sT-Lzs6aj6TM9J3mM7_Cj { + +._2iqkFI_a { + background: hotpink; } ", "", @@ -1526,114 +1822,184 @@ Array [ ] `; -exports[`modules case \`composes-with-importing\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work and respect the "context" option: warnings 1`] = `Array []`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work and respect the "getLocalIdent" option: errors 1`] = `Array []`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work and respect the "getLocalIdent" option: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".foo {\\\\n background: red;\\\\n}\\\\n\\\\n.foo {\\\\n background: blue;\\\\n}\\\\n\\\\n.foo {\\\\n background: red;\\\\n}\\\\n\\\\n#foo {\\\\n background: green;\\\\n}\\\\n\\\\n.foo .foo {\\\\n color: green;\\\\n}\\\\n\\\\n#foo .foo {\\\\n color: blue;\\\\n}\\\\n\\\\n.foo {\\\\n color: red;\\\\n}\\\\n\\\\n.foo {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.foo {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.foo {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.foo {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#foo {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#foo {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#foo {\\\\n color: black;\\\\n}\\\\n\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"foo\\", + \\"test\\": \\"foo\\", + \\"_test\\": \\"foo\\", + \\"className\\": \\"foo\\", + \\"someId\\": \\"foo\\", + \\"subClass\\": \\"foo\\", + \\"-a0-34a___f\\": \\"foo\\", + \\"m_x_@\\": \\"foo\\", + \\"B&W?\\": \\"foo\\", + \\":\`(\\": \\"foo\\", + \\"1a2b3c\\": \\"foo\\", + \\"#fake-id\\": \\"foo\\", + \\"-a-b-c-\\": \\"foo\\", + \\"©\\": \\"foo\\", + \\"♥\\": \\"foo\\", + \\"“‘’”\\": \\"foo\\", + \\"☺☃\\": \\"foo\\", + \\"⌘⌥\\": \\"foo\\", + \\"𝄞♪♩♫♬\\": \\"foo\\", + \\"💩\\": \\"foo\\", + \\"?\\": \\"foo\\", + \\"@\\": \\"foo\\", + \\".\\": \\"foo\\", + \\":)\\": \\"foo\\", + \\"

\\": \\"foo\\", + \\"<><<<>><>\\": \\"foo\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"foo\\", + \\"#\\": \\"foo\\", + \\"##\\": \\"foo\\", + \\"#.#.#\\": \\"foo\\", + \\"_\\": \\"foo\\", + \\"{}\\": \\"foo\\", + \\"foo.bar\\": \\"foo\\", + \\":hover\\": \\"foo\\", + \\":hover:focus:active\\": \\"foo\\", + \\"[attr=value]\\": \\"foo\\", + \\"f/o/o\\": \\"foo\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"foo\\", + \\"f*o*o\\": \\"foo\\", + \\"f!o!o\\": \\"foo\\", + \\"f'o'o\\": \\"foo\\", + \\"f~o~o\\": \\"foo\\", + \\"f+o+o\\": \\"foo\\", + \\"foo/bar\\": \\"foo\\", + \\"foo\\\\\\\\bar\\": \\"foo\\", + \\"foo/bar/baz\\": \\"foo\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\" +};" +`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work and respect the "getLocalIdent" option: result 1`] = ` Array [ Array [ - 1, - "@value blue: red; + "./modules/localIdentName/localIdentName.css", + ".foo { + background: red; +} -.a { - border: 1px solid blue; +.foo { + background: blue; } -", - "", - ], -] -`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +.foo { + background: red; +} -exports[`modules case \`declaration-value\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +#foo { + background: green; +} -exports[`modules case \`declaration-value\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "blue": "red", +.foo .foo { + color: green; } -`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".a { - border: 1px solid red; +#foo .foo { + color: blue; } -", - "", - ], -] -`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +.foo { + color: red; +} -exports[`modules case \`declaration-value\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +.foo { + margin-left: auto !important; + margin-right: auto !important; +} -exports[`modules case \`declaration-value\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "a": "rUmYXW8EUSiAHIrtvLLrL", - "blue": "red", +.foo { + margin-left: auto !important; + margin-right: auto !important; } -`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".rUmYXW8EUSiAHIrtvLLrL { - border: 1px solid red; +/* matches elements with class=\\":\`(\\" */ +.foo { + color: aqua; } -", - "", - ], -] -`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +/* matches elements with class=\\"1a2b3c\\" */ +.foo { + color: aliceblue; +} -exports[`modules case \`declaration-value\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +/* matches the element with id=\\"#fake-id\\" */ +#foo { + color: antiquewhite; +} -exports[`modules case \`declaration-value\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "blue": "red", +/* matches the element with id=\\"-a-b-c-\\" */ +#foo { + color: azure; } -`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".a { - border: 1px solid red; +/* matches the element with id=\\"©\\" */ +#foo { + color: black; } -", - "", - ], -] -`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } +.foo { background: lime; } + +.foo { + background: hotpink; +} -exports[`modules case \`declaration-value\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +.foo { + background: hotpink; +} -exports[`modules case \`declaration-value\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "a": "_a", - "blue": "red", +.foo { + background: hotpink; } -`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._a { - border: 1px solid red; +.foo { + background: hotpink; } ", "", @@ -1641,83 +2007,184 @@ Array [ ] `; -exports[`modules case \`declaration-value\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work and respect the "getLocalIdent" option: warnings 1`] = `Array []`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work and respect the "hashPrefix" option: errors 1`] = `Array []`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "a": "rUmYXW8EUSiAHIrtvLLrL", - "blue": "red", -} +exports[`"modules" option should work and respect the "hashPrefix" option: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".test--0142b21a44dabb9819108414c865df64 {\\\\n background: red;\\\\n}\\\\n\\\\n._test--cde93c8860a038e1411d22cb771488ac {\\\\n background: blue;\\\\n}\\\\n\\\\n.className--c26790b0ff95d07b06b20d60cf577fd0 {\\\\n background: red;\\\\n}\\\\n\\\\n#someId--8eb7b7f9ce9981fd21fd6d5fc4381bf6 {\\\\n background: green;\\\\n}\\\\n\\\\n.className--c26790b0ff95d07b06b20d60cf577fd0 .subClass--54070e7ec2a737162df117984ecc1761 {\\\\n color: green;\\\\n}\\\\n\\\\n#someId--8eb7b7f9ce9981fd21fd6d5fc4381bf6 .subClass--54070e7ec2a737162df117984ecc1761 {\\\\n color: blue;\\\\n}\\\\n\\\\n.-a0-34a___f--e6b44b8956c576006aee9cdfc7b8d960 {\\\\n color: red;\\\\n}\\\\n\\\\n.m_x_\\\\\\\\@--fbb667cb25a70369de60821c8e36b6fd {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.B\\\\\\\\&W\\\\\\\\?--f1decb173a621f94b1a405675462d8d2 {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--0cb50f97a33928f08d2935be79b3fb60 {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.\\\\\\\\31 a2b3c--4fd20a7ba770527d2b5181e00d5edc42 {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#\\\\\\\\#fake-id--f50da82e1d107cda50fa45b135c86822 {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#-a-b-c---db03ce70db75ed1c1bce599b1d18a186 {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#©--7e0826759ac2aeb5fca6e32aa1edb329 {\\\\n color: black;\\\\n}\\\\n\\\\n.♥--e5560e4053337bd76daf9c2e75d3d7d0 { background: lime; }\\\\n.©--7e0826759ac2aeb5fca6e32aa1edb329 { background: lime; }\\\\n.“‘’”--8e1e3e4cc7221b3ff51633038fafe426 { background: lime; }\\\\n.☺☃--ebe5c837d5daf12d16f0daa8c61eb11e { background: lime; }\\\\n.⌘⌥--a85dfad97e5b6b370e7c1477411c7af2 { background: lime; }\\\\n.𝄞♪♩♫♬--4c4549c449045769b60d0b58e8938127 { background: lime; }\\\\n.💩--864ce6a5b06391cf964f32c546bfda16 { background: lime; }\\\\n.\\\\\\\\?--03cb0d319a1c01d96b21cce53cc35bf4 { background: lime; }\\\\n.\\\\\\\\@--dd774107a0c2a338e9f095f7f70b54d7 { background: lime; }\\\\n.\\\\\\\\.--e11fe8c7f53154b0b2d6cc27502a200e { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\)--a796bbeca4dff990227350b8dd6f9034 { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--0cb50f97a33928f08d2935be79b3fb60 { background: lime; }\\\\n.\\\\\\\\31 23--87aac6eecc0561fe00a4fab8675db52e { background: lime; }\\\\n.\\\\\\\\31 a2b3c--4fd20a7ba770527d2b5181e00d5edc42 { background: lime; }\\\\n.\\\\\\\\--3477ce97df51423d68db9eb33e056c6b { background: lime; }\\\\n.\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\>--a62ab97a8311b28d0df9758cadb75555 { background: lime; }\\\\n.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.--8a18745abe2facd291ae8c5c6ceabbdf { background: lime; }\\\\n.\\\\\\\\#--57d53edb0e5a6757ce6b205b47cc174d { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\#--ed672da0a00b94520ab8a4eb3c786471 { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\#--f686c0028f3b4932cfd2689eae7db8e7 { background: lime; }\\\\n.\\\\\\\\_--709d19d25c02b59c930033d7ebb27bf3 { background: lime; }\\\\n.\\\\\\\\{\\\\\\\\}--03559aa34d08925b7b37b68cbbbab061 { background: lime; }\\\\n.\\\\\\\\#fake\\\\\\\\-id--f50da82e1d107cda50fa45b135c86822 { background: lime; }\\\\n.foo\\\\\\\\.bar--cdeeba651d743a1c9c8726b82a53f3e7 { background: lime; }\\\\n.\\\\\\\\3A hover--eedb9b11365e5f804ae9e9ca4e4a93eb { background: lime; }\\\\n.\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active--fd12204dbd7c44f5cdba57e249953c73 { background: lime; }\\\\n.\\\\\\\\[attr\\\\\\\\=value\\\\\\\\]--fedf0fe616433390cc587cefb1e06f3c { background: lime; }\\\\n.f\\\\\\\\/o\\\\\\\\/o--872f3df58491fec851e2d142ef35a3f6 { background: lime; }\\\\n.f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o--afacca2cad66f8fa5b5cf8423518de57 { background: lime; }\\\\n.f\\\\\\\\*o\\\\\\\\*o--098250e92a511c126ef033e2590afcf0 { background: lime; }\\\\n.f\\\\\\\\!o\\\\\\\\!o--5f5ea08f8761ed29077cbf1f17dc6b68 { background: lime; }\\\\n.f\\\\\\\\'o\\\\\\\\'o--43951ef60179b3812e63d74831c1e010 { background: lime; }\\\\n.f\\\\\\\\~o\\\\\\\\~o--5f27f8554b923243815e3866b257c4e4 { background: lime; }\\\\n.f\\\\\\\\+o\\\\\\\\+o--61ecc2824b4db3e9cc7e5a2afedce309 { background: lime; }\\\\n\\\\n.foo\\\\\\\\/bar--282fddfcdf932d9d3664c146306a3c3a {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar--aec6247bb9290ae6726f5a36f5816c09 {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\/bar\\\\\\\\/baz--d2a732e8a4a273013b0b929ab95835c2 {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz--bc6ce37cc0c680420ee5056f527a94e7 {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"123--87aac6eecc0561fe00a4fab8675db52e\\", + \\"test\\": \\"test--0142b21a44dabb9819108414c865df64\\", + \\"_test\\": \\"_test--cde93c8860a038e1411d22cb771488ac\\", + \\"className\\": \\"className--c26790b0ff95d07b06b20d60cf577fd0\\", + \\"someId\\": \\"someId--8eb7b7f9ce9981fd21fd6d5fc4381bf6\\", + \\"subClass\\": \\"subClass--54070e7ec2a737162df117984ecc1761\\", + \\"-a0-34a___f\\": \\"-a0-34a___f--e6b44b8956c576006aee9cdfc7b8d960\\", + \\"m_x_@\\": \\"m_x_@--fbb667cb25a70369de60821c8e36b6fd\\", + \\"B&W?\\": \\"B&W?--f1decb173a621f94b1a405675462d8d2\\", + \\":\`(\\": \\":\`(--0cb50f97a33928f08d2935be79b3fb60\\", + \\"1a2b3c\\": \\"1a2b3c--4fd20a7ba770527d2b5181e00d5edc42\\", + \\"#fake-id\\": \\"#fake-id--f50da82e1d107cda50fa45b135c86822\\", + \\"-a-b-c-\\": \\"-a-b-c---db03ce70db75ed1c1bce599b1d18a186\\", + \\"©\\": \\"©--7e0826759ac2aeb5fca6e32aa1edb329\\", + \\"♥\\": \\"♥--e5560e4053337bd76daf9c2e75d3d7d0\\", + \\"“‘’”\\": \\"“‘’”--8e1e3e4cc7221b3ff51633038fafe426\\", + \\"☺☃\\": \\"☺☃--ebe5c837d5daf12d16f0daa8c61eb11e\\", + \\"⌘⌥\\": \\"⌘⌥--a85dfad97e5b6b370e7c1477411c7af2\\", + \\"𝄞♪♩♫♬\\": \\"𝄞♪♩♫♬--4c4549c449045769b60d0b58e8938127\\", + \\"💩\\": \\"💩--864ce6a5b06391cf964f32c546bfda16\\", + \\"?\\": \\"?--03cb0d319a1c01d96b21cce53cc35bf4\\", + \\"@\\": \\"@--dd774107a0c2a338e9f095f7f70b54d7\\", + \\".\\": \\".--e11fe8c7f53154b0b2d6cc27502a200e\\", + \\":)\\": \\":)--a796bbeca4dff990227350b8dd6f9034\\", + \\"

\\": \\"

--3477ce97df51423d68db9eb33e056c6b\\", + \\"<><<<>><>\\": \\"<><<<>><>--a62ab97a8311b28d0df9758cadb75555\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.--8a18745abe2facd291ae8c5c6ceabbdf\\", + \\"#\\": \\"#--57d53edb0e5a6757ce6b205b47cc174d\\", + \\"##\\": \\"##--ed672da0a00b94520ab8a4eb3c786471\\", + \\"#.#.#\\": \\"#.#.#--f686c0028f3b4932cfd2689eae7db8e7\\", + \\"_\\": \\"_--709d19d25c02b59c930033d7ebb27bf3\\", + \\"{}\\": \\"{}--03559aa34d08925b7b37b68cbbbab061\\", + \\"foo.bar\\": \\"foo.bar--cdeeba651d743a1c9c8726b82a53f3e7\\", + \\":hover\\": \\":hover--eedb9b11365e5f804ae9e9ca4e4a93eb\\", + \\":hover:focus:active\\": \\":hover:focus:active--fd12204dbd7c44f5cdba57e249953c73\\", + \\"[attr=value]\\": \\"[attr=value]--fedf0fe616433390cc587cefb1e06f3c\\", + \\"f/o/o\\": \\"f/o/o--872f3df58491fec851e2d142ef35a3f6\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"f\\\\\\\\o\\\\\\\\o--afacca2cad66f8fa5b5cf8423518de57\\", + \\"f*o*o\\": \\"f*o*o--098250e92a511c126ef033e2590afcf0\\", + \\"f!o!o\\": \\"f!o!o--5f5ea08f8761ed29077cbf1f17dc6b68\\", + \\"f'o'o\\": \\"f'o'o--43951ef60179b3812e63d74831c1e010\\", + \\"f~o~o\\": \\"f~o~o--5f27f8554b923243815e3866b257c4e4\\", + \\"f+o+o\\": \\"f+o+o--61ecc2824b4db3e9cc7e5a2afedce309\\", + \\"foo/bar\\": \\"foo/bar--282fddfcdf932d9d3664c146306a3c3a\\", + \\"foo\\\\\\\\bar\\": \\"foo\\\\\\\\bar--aec6247bb9290ae6726f5a36f5816c09\\", + \\"foo/bar/baz\\": \\"foo/bar/baz--d2a732e8a4a273013b0b929ab95835c2\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\\\\\\\bar\\\\\\\\baz--bc6ce37cc0c680420ee5056f527a94e7\\" +};" `; -exports[`modules case \`declaration-value\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work and respect the "hashPrefix" option: result 1`] = ` Array [ Array [ - 1, - ".rUmYXW8EUSiAHIrtvLLrL { - border: 1px solid red; + "./modules/localIdentName/localIdentName.css", + ".test--0142b21a44dabb9819108414c865df64 { + background: red; } -", - "", - ], -] -`; -exports[`modules case \`declaration-value\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +._test--cde93c8860a038e1411d22cb771488ac { + background: blue; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +.className--c26790b0ff95d07b06b20d60cf577fd0 { + background: red; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +#someId--8eb7b7f9ce9981fd21fd6d5fc4381bf6 { + background: green; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "body:before { - content: ''; - background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); +.className--c26790b0ff95d07b06b20d60cf577fd0 .subClass--54070e7ec2a737162df117984ecc1761 { + color: green; +} + +#someId--8eb7b7f9ce9981fd21fd6d5fc4381bf6 .subClass--54070e7ec2a737162df117984ecc1761 { + color: blue; } -", - "", - ], -] -`; -exports[`modules case \`issue-589\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +.-a0-34a___f--e6b44b8956c576006aee9cdfc7b8d960 { + color: red; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +.m_x_\\\\@--fbb667cb25a70369de60821c8e36b6fd { + margin-left: auto !important; + margin-right: auto !important; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`global)\`: locals 1`] = `undefined`; +.B\\\\&W\\\\?--f1decb173a621f94b1a405675462d8d2 { + margin-left: auto !important; + margin-right: auto !important; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "body:before { - content: ''; - background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); +/* matches elements with class=\\":\`(\\" */ +.\\\\3A \\\\\`\\\\(--0cb50f97a33928f08d2935be79b3fb60 { + color: aqua; } -", - "", - ], -] -`; -exports[`modules case \`issue-589\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +/* matches elements with class=\\"1a2b3c\\" */ +.\\\\31 a2b3c--4fd20a7ba770527d2b5181e00d5edc42 { + color: aliceblue; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +/* matches the element with id=\\"#fake-id\\" */ +#\\\\#fake-id--f50da82e1d107cda50fa45b135c86822 { + color: antiquewhite; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`local)\`: locals 1`] = `undefined`; +/* matches the element with id=\\"-a-b-c-\\" */ +#-a-b-c---db03ce70db75ed1c1bce599b1d18a186 { + color: azure; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "body:before { - content: ''; - background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); +/* matches the element with id=\\"©\\" */ +#©--7e0826759ac2aeb5fca6e32aa1edb329 { + color: black; +} + +.♥--e5560e4053337bd76daf9c2e75d3d7d0 { background: lime; } +.©--7e0826759ac2aeb5fca6e32aa1edb329 { background: lime; } +.“‘’”--8e1e3e4cc7221b3ff51633038fafe426 { background: lime; } +.☺☃--ebe5c837d5daf12d16f0daa8c61eb11e { background: lime; } +.⌘⌥--a85dfad97e5b6b370e7c1477411c7af2 { background: lime; } +.𝄞♪♩♫♬--4c4549c449045769b60d0b58e8938127 { background: lime; } +.💩--864ce6a5b06391cf964f32c546bfda16 { background: lime; } +.\\\\?--03cb0d319a1c01d96b21cce53cc35bf4 { background: lime; } +.\\\\@--dd774107a0c2a338e9f095f7f70b54d7 { background: lime; } +.\\\\.--e11fe8c7f53154b0b2d6cc27502a200e { background: lime; } +.\\\\3A \\\\)--a796bbeca4dff990227350b8dd6f9034 { background: lime; } +.\\\\3A \\\\\`\\\\(--0cb50f97a33928f08d2935be79b3fb60 { background: lime; } +.\\\\31 23--87aac6eecc0561fe00a4fab8675db52e { background: lime; } +.\\\\31 a2b3c--4fd20a7ba770527d2b5181e00d5edc42 { background: lime; } +.\\\\--3477ce97df51423d68db9eb33e056c6b { background: lime; } +.\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\>--a62ab97a8311b28d0df9758cadb75555 { background: lime; } +.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\.--8a18745abe2facd291ae8c5c6ceabbdf { background: lime; } +.\\\\#--57d53edb0e5a6757ce6b205b47cc174d { background: lime; } +.\\\\#\\\\#--ed672da0a00b94520ab8a4eb3c786471 { background: lime; } +.\\\\#\\\\.\\\\#\\\\.\\\\#--f686c0028f3b4932cfd2689eae7db8e7 { background: lime; } +.\\\\_--709d19d25c02b59c930033d7ebb27bf3 { background: lime; } +.\\\\{\\\\}--03559aa34d08925b7b37b68cbbbab061 { background: lime; } +.\\\\#fake\\\\-id--f50da82e1d107cda50fa45b135c86822 { background: lime; } +.foo\\\\.bar--cdeeba651d743a1c9c8726b82a53f3e7 { background: lime; } +.\\\\3A hover--eedb9b11365e5f804ae9e9ca4e4a93eb { background: lime; } +.\\\\3A hover\\\\3A focus\\\\3A active--fd12204dbd7c44f5cdba57e249953c73 { background: lime; } +.\\\\[attr\\\\=value\\\\]--fedf0fe616433390cc587cefb1e06f3c { background: lime; } +.f\\\\/o\\\\/o--872f3df58491fec851e2d142ef35a3f6 { background: lime; } +.f\\\\\\\\o\\\\\\\\o--afacca2cad66f8fa5b5cf8423518de57 { background: lime; } +.f\\\\*o\\\\*o--098250e92a511c126ef033e2590afcf0 { background: lime; } +.f\\\\!o\\\\!o--5f5ea08f8761ed29077cbf1f17dc6b68 { background: lime; } +.f\\\\'o\\\\'o--43951ef60179b3812e63d74831c1e010 { background: lime; } +.f\\\\~o\\\\~o--5f27f8554b923243815e3866b257c4e4 { background: lime; } +.f\\\\+o\\\\+o--61ecc2824b4db3e9cc7e5a2afedce309 { background: lime; } + +.foo\\\\/bar--282fddfcdf932d9d3664c146306a3c3a { + background: hotpink; +} + +.foo\\\\\\\\bar--aec6247bb9290ae6726f5a36f5816c09 { + background: hotpink; +} + +.foo\\\\/bar\\\\/baz--d2a732e8a4a273013b0b929ab95835c2 { + background: hotpink; +} + +.foo\\\\\\\\bar\\\\\\\\baz--bc6ce37cc0c680420ee5056f527a94e7 { + background: hotpink; } ", "", @@ -1725,123 +2192,184 @@ Array [ ] `; -exports[`modules case \`issue-589\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work and respect the "hashPrefix" option: warnings 1`] = `Array []`; -exports[`modules case \`issue-589\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work and respect the "localIdentName" option: errors 1`] = `Array []`; -exports[`modules case \`issue-589\` (\`modules\` value is \`object with mode global)\`: locals 1`] = `undefined`; - -exports[`modules case \`issue-589\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "body:before { - content: ''; - background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); -} -", - "", - ], -] +exports[`"modules" option should work and respect the "localIdentName" option: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".localIdentName--test--3bArY {\\\\n background: red;\\\\n}\\\\n\\\\n.localIdentName--_test--XTGsN {\\\\n background: blue;\\\\n}\\\\n\\\\n.localIdentName--className--2ilfW {\\\\n background: red;\\\\n}\\\\n\\\\n#localIdentName--someId--3v-9L {\\\\n background: green;\\\\n}\\\\n\\\\n.localIdentName--className--2ilfW .localIdentName--subClass--3DLY7 {\\\\n color: green;\\\\n}\\\\n\\\\n#localIdentName--someId--3v-9L .localIdentName--subClass--3DLY7 {\\\\n color: blue;\\\\n}\\\\n\\\\n.localIdentName---a0-34a___f--2skz9 {\\\\n color: red;\\\\n}\\\\n\\\\n.localIdentName--m_x_\\\\\\\\@--1pEJL {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.localIdentName--B\\\\\\\\&W\\\\\\\\?--36Mz6 {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.localIdentName--\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--3smFt {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.localIdentName--\\\\\\\\31 a2b3c--3nWh_ {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#localIdentName--\\\\\\\\#fake-id--3zyOT {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#localIdentName---a-b-c---SXlBp {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#localIdentName--©--3wIdK {\\\\n color: black;\\\\n}\\\\n\\\\n.localIdentName--♥--3CvZA { background: lime; }\\\\n.localIdentName--©--3wIdK { background: lime; }\\\\n.localIdentName--“‘’”--1lLtT { background: lime; }\\\\n.localIdentName--☺☃--129OO { background: lime; }\\\\n.localIdentName--⌘⌥--31l8- { background: lime; }\\\\n.localIdentName--𝄞♪♩♫♬--3PTmP { background: lime; }\\\\n.localIdentName--💩--3iDx9 { background: lime; }\\\\n.localIdentName--\\\\\\\\?--gjylL { background: lime; }\\\\n.localIdentName--\\\\\\\\@--t5XxN { background: lime; }\\\\n.localIdentName--\\\\\\\\.--fEcdI { background: lime; }\\\\n.localIdentName--\\\\\\\\3A \\\\\\\\)--3JwMk { background: lime; }\\\\n.localIdentName--\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--3smFt { background: lime; }\\\\n.localIdentName--\\\\\\\\31 23--30YAJ { background: lime; }\\\\n.localIdentName--\\\\\\\\31 a2b3c--3nWh_ { background: lime; }\\\\n.localIdentName--\\\\\\\\--juMfC { background: lime; }\\\\n.localIdentName--\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\>--1nZHf { background: lime; }\\\\n.localIdentName--\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.--3tH-J { background: lime; }\\\\n.localIdentName--\\\\\\\\#--1d4pW { background: lime; }\\\\n.localIdentName--\\\\\\\\#\\\\\\\\#--1yrD9 { background: lime; }\\\\n.localIdentName--\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\#--181tN { background: lime; }\\\\n.localIdentName--\\\\\\\\_--3XX_E { background: lime; }\\\\n.localIdentName--\\\\\\\\{\\\\\\\\}--1okIt { background: lime; }\\\\n.localIdentName--\\\\\\\\#fake\\\\\\\\-id--3zyOT { background: lime; }\\\\n.localIdentName--foo\\\\\\\\.bar--D1UTM { background: lime; }\\\\n.localIdentName--\\\\\\\\3A hover--1VdiV { background: lime; }\\\\n.localIdentName--\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active--3bwG4 { background: lime; }\\\\n.localIdentName--\\\\\\\\[attr\\\\\\\\=value\\\\\\\\]--2dg-h { background: lime; }\\\\n.localIdentName--f\\\\\\\\/o\\\\\\\\/o--3MAXc { background: lime; }\\\\n.localIdentName--f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o--S0VDf { background: lime; }\\\\n.localIdentName--f\\\\\\\\*o\\\\\\\\*o--1Dj0P { background: lime; }\\\\n.localIdentName--f\\\\\\\\!o\\\\\\\\!o--3SZwC { background: lime; }\\\\n.localIdentName--f\\\\\\\\'o\\\\\\\\'o--mapSs { background: lime; }\\\\n.localIdentName--f\\\\\\\\~o\\\\\\\\~o--10Kpk { background: lime; }\\\\n.localIdentName--f\\\\\\\\+o\\\\\\\\+o--3t38e { background: lime; }\\\\n\\\\n.localIdentName--foo\\\\\\\\/bar--37a0Q {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.localIdentName--foo\\\\\\\\\\\\\\\\bar--2hUYl {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.localIdentName--foo\\\\\\\\/bar\\\\\\\\/baz--1Grpv {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.localIdentName--foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz--2iqkF {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"localIdentName--123--30YAJ\\", + \\"test\\": \\"localIdentName--test--3bArY\\", + \\"_test\\": \\"localIdentName--_test--XTGsN\\", + \\"className\\": \\"localIdentName--className--2ilfW\\", + \\"someId\\": \\"localIdentName--someId--3v-9L\\", + \\"subClass\\": \\"localIdentName--subClass--3DLY7\\", + \\"-a0-34a___f\\": \\"localIdentName---a0-34a___f--2skz9\\", + \\"m_x_@\\": \\"localIdentName--m_x_@--1pEJL\\", + \\"B&W?\\": \\"localIdentName--B&W?--36Mz6\\", + \\":\`(\\": \\"localIdentName--:\`(--3smFt\\", + \\"1a2b3c\\": \\"localIdentName--1a2b3c--3nWh_\\", + \\"#fake-id\\": \\"localIdentName--#fake-id--3zyOT\\", + \\"-a-b-c-\\": \\"localIdentName---a-b-c---SXlBp\\", + \\"©\\": \\"localIdentName--©--3wIdK\\", + \\"♥\\": \\"localIdentName--♥--3CvZA\\", + \\"“‘’”\\": \\"localIdentName--“‘’”--1lLtT\\", + \\"☺☃\\": \\"localIdentName--☺☃--129OO\\", + \\"⌘⌥\\": \\"localIdentName--⌘⌥--31l8-\\", + \\"𝄞♪♩♫♬\\": \\"localIdentName--𝄞♪♩♫♬--3PTmP\\", + \\"💩\\": \\"localIdentName--💩--3iDx9\\", + \\"?\\": \\"localIdentName--?--gjylL\\", + \\"@\\": \\"localIdentName--@--t5XxN\\", + \\".\\": \\"localIdentName--.--fEcdI\\", + \\":)\\": \\"localIdentName--:)--3JwMk\\", + \\"

\\": \\"localIdentName--

--juMfC\\", + \\"<><<<>><>\\": \\"localIdentName--<><<<>><>--1nZHf\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"localIdentName--++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.--3tH-J\\", + \\"#\\": \\"localIdentName--#--1d4pW\\", + \\"##\\": \\"localIdentName--##--1yrD9\\", + \\"#.#.#\\": \\"localIdentName--#.#.#--181tN\\", + \\"_\\": \\"localIdentName--_--3XX_E\\", + \\"{}\\": \\"localIdentName--{}--1okIt\\", + \\"foo.bar\\": \\"localIdentName--foo.bar--D1UTM\\", + \\":hover\\": \\"localIdentName--:hover--1VdiV\\", + \\":hover:focus:active\\": \\"localIdentName--:hover:focus:active--3bwG4\\", + \\"[attr=value]\\": \\"localIdentName--[attr=value]--2dg-h\\", + \\"f/o/o\\": \\"localIdentName--f/o/o--3MAXc\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"localIdentName--f\\\\\\\\o\\\\\\\\o--S0VDf\\", + \\"f*o*o\\": \\"localIdentName--f*o*o--1Dj0P\\", + \\"f!o!o\\": \\"localIdentName--f!o!o--3SZwC\\", + \\"f'o'o\\": \\"localIdentName--f'o'o--mapSs\\", + \\"f~o~o\\": \\"localIdentName--f~o~o--10Kpk\\", + \\"f+o+o\\": \\"localIdentName--f+o+o--3t38e\\", + \\"foo/bar\\": \\"localIdentName--foo/bar--37a0Q\\", + \\"foo\\\\\\\\bar\\": \\"localIdentName--foo\\\\\\\\bar--2hUYl\\", + \\"foo/bar/baz\\": \\"localIdentName--foo/bar/baz--1Grpv\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"localIdentName--foo\\\\\\\\bar\\\\\\\\baz--2iqkF\\" +};" `; -exports[`modules case \`issue-589\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; - -exports[`modules case \`issue-589\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; - -exports[`modules case \`issue-589\` (\`modules\` value is \`object with mode local)\`: locals 1`] = `undefined`; - -exports[`modules case \`issue-589\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work and respect the "localIdentName" option: result 1`] = ` Array [ Array [ - 1, - "body:before { - content: ''; - background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); + "./modules/localIdentName/localIdentName.css", + ".localIdentName--test--3bArY { + background: red; } -", - "", - ], -] -`; -exports[`modules case \`issue-589\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +.localIdentName--_test--XTGsN { + background: blue; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +.localIdentName--className--2ilfW { + background: red; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`true)\`: locals 1`] = `undefined`; +#localIdentName--someId--3v-9L { + background: green; +} -exports[`modules case \`issue-589\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "body:before { - content: ''; - background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); +.localIdentName--className--2ilfW .localIdentName--subClass--3DLY7 { + color: green; } -", - "", - ], -] -`; -exports[`modules case \`issue-589\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +#localIdentName--someId--3v-9L .localIdentName--subClass--3DLY7 { + color: blue; +} -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +.localIdentName---a0-34a___f--2skz9 { + color: red; +} -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +.localIdentName--m_x_\\\\@--1pEJL { + margin-left: auto !important; + margin-right: auto !important; +} -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".a { - color: green; +.localIdentName--B\\\\&W\\\\?--36Mz6 { + margin-left: auto !important; + margin-right: auto !important; } -@keyframes bounce { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +/* matches elements with class=\\":\`(\\" */ +.localIdentName--\\\\3A \\\\\`\\\\(--3smFt { + color: aqua; } -@-webkit-keyframes bounce2 { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +/* matches elements with class=\\"1a2b3c\\" */ +.localIdentName--\\\\31 a2b3c--3nWh_ { + color: aliceblue; } -.bounce { - animation-name: bounce; - animation: bounce2 1s ease; +/* matches the element with id=\\"#fake-id\\" */ +#localIdentName--\\\\#fake-id--3zyOT { + color: antiquewhite; } -.bounce2 { - color: green; - animation: bounce 1s ease; - animation-name: bounce2; +/* matches the element with id=\\"-a-b-c-\\" */ +#localIdentName---a-b-c---SXlBp { + color: azure; } -.bounce3 { - animation: bounce 1s ease, bounce2 +/* matches the element with id=\\"©\\" */ +#localIdentName--©--3wIdK { + color: black; } -.bounce4 { - animation: bounce 1s ease, bounce2; +.localIdentName--♥--3CvZA { background: lime; } +.localIdentName--©--3wIdK { background: lime; } +.localIdentName--“‘’”--1lLtT { background: lime; } +.localIdentName--☺☃--129OO { background: lime; } +.localIdentName--⌘⌥--31l8- { background: lime; } +.localIdentName--𝄞♪♩♫♬--3PTmP { background: lime; } +.localIdentName--💩--3iDx9 { background: lime; } +.localIdentName--\\\\?--gjylL { background: lime; } +.localIdentName--\\\\@--t5XxN { background: lime; } +.localIdentName--\\\\.--fEcdI { background: lime; } +.localIdentName--\\\\3A \\\\)--3JwMk { background: lime; } +.localIdentName--\\\\3A \\\\\`\\\\(--3smFt { background: lime; } +.localIdentName--\\\\31 23--30YAJ { background: lime; } +.localIdentName--\\\\31 a2b3c--3nWh_ { background: lime; } +.localIdentName--\\\\--juMfC { background: lime; } +.localIdentName--\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\>--1nZHf { background: lime; } +.localIdentName--\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\.--3tH-J { background: lime; } +.localIdentName--\\\\#--1d4pW { background: lime; } +.localIdentName--\\\\#\\\\#--1yrD9 { background: lime; } +.localIdentName--\\\\#\\\\.\\\\#\\\\.\\\\#--181tN { background: lime; } +.localIdentName--\\\\_--3XX_E { background: lime; } +.localIdentName--\\\\{\\\\}--1okIt { background: lime; } +.localIdentName--\\\\#fake\\\\-id--3zyOT { background: lime; } +.localIdentName--foo\\\\.bar--D1UTM { background: lime; } +.localIdentName--\\\\3A hover--1VdiV { background: lime; } +.localIdentName--\\\\3A hover\\\\3A focus\\\\3A active--3bwG4 { background: lime; } +.localIdentName--\\\\[attr\\\\=value\\\\]--2dg-h { background: lime; } +.localIdentName--f\\\\/o\\\\/o--3MAXc { background: lime; } +.localIdentName--f\\\\\\\\o\\\\\\\\o--S0VDf { background: lime; } +.localIdentName--f\\\\*o\\\\*o--1Dj0P { background: lime; } +.localIdentName--f\\\\!o\\\\!o--3SZwC { background: lime; } +.localIdentName--f\\\\'o\\\\'o--mapSs { background: lime; } +.localIdentName--f\\\\~o\\\\~o--10Kpk { background: lime; } +.localIdentName--f\\\\+o\\\\+o--3t38e { background: lime; } + +.localIdentName--foo\\\\/bar--37a0Q { + background: hotpink; } -.b { - color: green; +.localIdentName--foo\\\\\\\\bar--2hUYl { + background: hotpink; +} + +.localIdentName--foo\\\\/bar\\\\/baz--1Grpv { + background: hotpink; +} + +.localIdentName--foo\\\\\\\\bar\\\\\\\\baz--2iqkF { + background: hotpink; } ", "", @@ -1849,136 +2377,184 @@ Array [ ] `; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work and respect the "localIdentName" option: warnings 1`] = `Array []`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work and respect the "path" placeholder: errors 1`] = `Array []`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`global)\`: locals 1`] = `undefined`; +exports[`"modules" option should work and respect the "path" placeholder: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".fixtures-modules-localIdentName-localIdentName__test {\\\\n background: red;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName___test {\\\\n background: blue;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__className {\\\\n background: red;\\\\n}\\\\n\\\\n#fixtures-modules-localIdentName-localIdentName__someId {\\\\n background: green;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__className .fixtures-modules-localIdentName-localIdentName__subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#fixtures-modules-localIdentName-localIdentName__someId .fixtures-modules-localIdentName-localIdentName__subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__-a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#fixtures-modules-localIdentName-localIdentName__\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#fixtures-modules-localIdentName-localIdentName__-a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#fixtures-modules-localIdentName-localIdentName__© {\\\\n color: black;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__♥ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__© { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__“‘’” { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__☺☃ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__⌘⌥ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__𝄞♪♩♫♬ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__💩 { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\? { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\@ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\. { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\31 23 { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\31 a2b3c { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\# { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\_ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\.bar { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\3A hover { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"fixtures-modules-localIdentName-localIdentName__123\\", + \\"test\\": \\"fixtures-modules-localIdentName-localIdentName__test\\", + \\"_test\\": \\"fixtures-modules-localIdentName-localIdentName___test\\", + \\"className\\": \\"fixtures-modules-localIdentName-localIdentName__className\\", + \\"someId\\": \\"fixtures-modules-localIdentName-localIdentName__someId\\", + \\"subClass\\": \\"fixtures-modules-localIdentName-localIdentName__subClass\\", + \\"-a0-34a___f\\": \\"fixtures-modules-localIdentName-localIdentName__-a0-34a___f\\", + \\"m_x_@\\": \\"fixtures-modules-localIdentName-localIdentName__m_x_@\\", + \\"B&W?\\": \\"fixtures-modules-localIdentName-localIdentName__B&W?\\", + \\":\`(\\": \\"fixtures-modules-localIdentName-localIdentName__:\`(\\", + \\"1a2b3c\\": \\"fixtures-modules-localIdentName-localIdentName__1a2b3c\\", + \\"#fake-id\\": \\"fixtures-modules-localIdentName-localIdentName__#fake-id\\", + \\"-a-b-c-\\": \\"fixtures-modules-localIdentName-localIdentName__-a-b-c-\\", + \\"©\\": \\"fixtures-modules-localIdentName-localIdentName__©\\", + \\"♥\\": \\"fixtures-modules-localIdentName-localIdentName__♥\\", + \\"“‘’”\\": \\"fixtures-modules-localIdentName-localIdentName__“‘’”\\", + \\"☺☃\\": \\"fixtures-modules-localIdentName-localIdentName__☺☃\\", + \\"⌘⌥\\": \\"fixtures-modules-localIdentName-localIdentName__⌘⌥\\", + \\"𝄞♪♩♫♬\\": \\"fixtures-modules-localIdentName-localIdentName__𝄞♪♩♫♬\\", + \\"💩\\": \\"fixtures-modules-localIdentName-localIdentName__💩\\", + \\"?\\": \\"fixtures-modules-localIdentName-localIdentName__?\\", + \\"@\\": \\"fixtures-modules-localIdentName-localIdentName__@\\", + \\".\\": \\"fixtures-modules-localIdentName-localIdentName__.\\", + \\":)\\": \\"fixtures-modules-localIdentName-localIdentName__:)\\", + \\"

\\": \\"fixtures-modules-localIdentName-localIdentName__

\\", + \\"<><<<>><>\\": \\"fixtures-modules-localIdentName-localIdentName__<><<<>><>\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"fixtures-modules-localIdentName-localIdentName__++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\", + \\"#\\": \\"fixtures-modules-localIdentName-localIdentName__#\\", + \\"##\\": \\"fixtures-modules-localIdentName-localIdentName__##\\", + \\"#.#.#\\": \\"fixtures-modules-localIdentName-localIdentName__#.#.#\\", + \\"_\\": \\"fixtures-modules-localIdentName-localIdentName___\\", + \\"{}\\": \\"fixtures-modules-localIdentName-localIdentName__{}\\", + \\"foo.bar\\": \\"fixtures-modules-localIdentName-localIdentName__foo.bar\\", + \\":hover\\": \\"fixtures-modules-localIdentName-localIdentName__:hover\\", + \\":hover:focus:active\\": \\"fixtures-modules-localIdentName-localIdentName__:hover:focus:active\\", + \\"[attr=value]\\": \\"fixtures-modules-localIdentName-localIdentName__[attr=value]\\", + \\"f/o/o\\": \\"fixtures-modules-localIdentName-localIdentName__f/o/o\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"fixtures-modules-localIdentName-localIdentName__f\\\\\\\\o\\\\\\\\o\\", + \\"f*o*o\\": \\"fixtures-modules-localIdentName-localIdentName__f*o*o\\", + \\"f!o!o\\": \\"fixtures-modules-localIdentName-localIdentName__f!o!o\\", + \\"f'o'o\\": \\"fixtures-modules-localIdentName-localIdentName__f'o'o\\", + \\"f~o~o\\": \\"fixtures-modules-localIdentName-localIdentName__f~o~o\\", + \\"f+o+o\\": \\"fixtures-modules-localIdentName-localIdentName__f+o+o\\", + \\"foo/bar\\": \\"fixtures-modules-localIdentName-localIdentName__foo/bar\\", + \\"foo\\\\\\\\bar\\": \\"fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\bar\\", + \\"foo/bar/baz\\": \\"fixtures-modules-localIdentName-localIdentName__foo/bar/baz\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\bar\\\\\\\\baz\\" +};" +`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work and respect the "path" placeholder: result 1`] = ` Array [ Array [ - 1, - ".a { - color: green; + "./modules/localIdentName/localIdentName.css", + ".fixtures-modules-localIdentName-localIdentName__test { + background: red; } -@keyframes bounce { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +.fixtures-modules-localIdentName-localIdentName___test { + background: blue; } -@-webkit-keyframes bounce2 { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +.fixtures-modules-localIdentName-localIdentName__className { + background: red; } -.bounce { - animation-name: bounce; - animation: bounce2 1s ease; +#fixtures-modules-localIdentName-localIdentName__someId { + background: green; } -.bounce2 { - color: green; - animation: bounce 1s ease; - animation-name: bounce2; +.fixtures-modules-localIdentName-localIdentName__className .fixtures-modules-localIdentName-localIdentName__subClass { + color: green; } -.bounce3 { - animation: bounce 1s ease, bounce2 +#fixtures-modules-localIdentName-localIdentName__someId .fixtures-modules-localIdentName-localIdentName__subClass { + color: blue; } -.bounce4 { - animation: bounce 1s ease, bounce2; +.fixtures-modules-localIdentName-localIdentName__-a0-34a___f { + color: red; } -.b { - color: green; +.fixtures-modules-localIdentName-localIdentName__m_x_\\\\@ { + margin-left: auto !important; + margin-right: auto !important; } -", - "", - ], -] -`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; - -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +.fixtures-modules-localIdentName-localIdentName__B\\\\&W\\\\? { + margin-left: auto !important; + margin-right: auto !important; +} -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "a": "_1AzRoWem1zBzZ9hLlF5IJC", - "b": "_1eH5GHM6EfKYOklEd2mhle", - "bounce": "_355y8MvF-ilfLoMa6xQMuq", - "bounce2": "_20oF72x8NQuWNrNLEjvczE", - "bounce3": "_3OQHSo2d42CWSR-npTXaic", - "bounce4": "_3bL1lmhMKE-Qlk83VSMCHN", +/* matches elements with class=\\":\`(\\" */ +.fixtures-modules-localIdentName-localIdentName__\\\\3A \\\\\`\\\\( { + color: aqua; } -`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._1AzRoWem1zBzZ9hLlF5IJC { - color: green; +/* matches elements with class=\\"1a2b3c\\" */ +.fixtures-modules-localIdentName-localIdentName__\\\\31 a2b3c { + color: aliceblue; } -@keyframes _355y8MvF-ilfLoMa6xQMuq { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +/* matches the element with id=\\"#fake-id\\" */ +#fixtures-modules-localIdentName-localIdentName__\\\\#fake-id { + color: antiquewhite; } -@-webkit-keyframes _20oF72x8NQuWNrNLEjvczE { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +/* matches the element with id=\\"-a-b-c-\\" */ +#fixtures-modules-localIdentName-localIdentName__-a-b-c- { + color: azure; } -._355y8MvF-ilfLoMa6xQMuq { - animation-name: _355y8MvF-ilfLoMa6xQMuq; - animation: _20oF72x8NQuWNrNLEjvczE 1s ease; +/* matches the element with id=\\"©\\" */ +#fixtures-modules-localIdentName-localIdentName__© { + color: black; } -._20oF72x8NQuWNrNLEjvczE { - color: green; - animation: _355y8MvF-ilfLoMa6xQMuq 1s ease; - animation-name: _20oF72x8NQuWNrNLEjvczE; +.fixtures-modules-localIdentName-localIdentName__♥ { background: lime; } +.fixtures-modules-localIdentName-localIdentName__© { background: lime; } +.fixtures-modules-localIdentName-localIdentName__“‘’” { background: lime; } +.fixtures-modules-localIdentName-localIdentName__☺☃ { background: lime; } +.fixtures-modules-localIdentName-localIdentName__⌘⌥ { background: lime; } +.fixtures-modules-localIdentName-localIdentName__𝄞♪♩♫♬ { background: lime; } +.fixtures-modules-localIdentName-localIdentName__💩 { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\? { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\@ { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\. { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\3A \\\\) { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\3A \\\\\`\\\\( { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\31 23 { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\31 a2b3c { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\ { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\> { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\. { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\# { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\#\\\\# { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\#\\\\.\\\\#\\\\.\\\\# { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\_ { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\{\\\\} { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\#fake\\\\-id { background: lime; } +.fixtures-modules-localIdentName-localIdentName__foo\\\\.bar { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\3A hover { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\3A hover\\\\3A focus\\\\3A active { background: lime; } +.fixtures-modules-localIdentName-localIdentName__\\\\[attr\\\\=value\\\\] { background: lime; } +.fixtures-modules-localIdentName-localIdentName__f\\\\/o\\\\/o { background: lime; } +.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\o\\\\\\\\o { background: lime; } +.fixtures-modules-localIdentName-localIdentName__f\\\\*o\\\\*o { background: lime; } +.fixtures-modules-localIdentName-localIdentName__f\\\\!o\\\\!o { background: lime; } +.fixtures-modules-localIdentName-localIdentName__f\\\\'o\\\\'o { background: lime; } +.fixtures-modules-localIdentName-localIdentName__f\\\\~o\\\\~o { background: lime; } +.fixtures-modules-localIdentName-localIdentName__f\\\\+o\\\\+o { background: lime; } + +.fixtures-modules-localIdentName-localIdentName__foo\\\\/bar { + background: hotpink; } -._3OQHSo2d42CWSR-npTXaic { - animation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE +.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\bar { + background: hotpink; } -._3bL1lmhMKE-Qlk83VSMCHN { - animation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE; +.fixtures-modules-localIdentName-localIdentName__foo\\\\/bar\\\\/baz { + background: hotpink; } -._1eH5GHM6EfKYOklEd2mhle { - color: green; +.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\bar\\\\\\\\baz { + background: hotpink; } ", "", @@ -1986,63 +2562,78 @@ Array [ ] `; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work and respect the "path" placeholder: warnings 1`] = `Array []`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work and support "pure" mode #2: errors 1`] = `Array []`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`object with mode global)\`: locals 1`] = `undefined`; +exports[`"modules" option should work and support "pure" mode #2: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1ORNYXwneW2JZ8HOIELZsO {\\\\n color: red;\\\\n}\\\\n\\\\nh1 ._1YzI-dPdJjO8MFoqnmHSiS {\\\\n color: green;\\\\n}\\\\n\\\\n._19XuUcEihnxeccG4GuGcFK h1 {\\\\n color: blue;\\\\n}\\\\n\\\\n._28hFOdkf6HPeamArMDTyjg h1 .X_RacgG5tjWeZG02q-q84 {\\\\n color: red;\\\\n}\\\\n\\\\n#_3eOAbv4_jk5PEpaqUX_vV_ {\\\\n color: red;\\\\n}\\\\n\\\\nh1 #_3eYZhuXQ5Ha1DcKYJnSpdv {\\\\n color: green;\\\\n}\\\\n\\\\n#tbNgruvlVjTBtv4zb7xzW h1 {\\\\n color: blue;\\\\n}\\\\n\\\\n#_1pV9OUnTdQPjZdQ4zHh8fk h1 #_14gkAn2VC8A8K862gBpfxU {\\\\n color: red;\\\\n}\\\\n\\\\n._1jv12xYuqjtEG-3ZW0dplp .bar ._1Ruta1CeojEt_QePDvXgV4 {\\\\n color: white;\\\\n}\\\\n\\\\n.FTCrXWhb6BcHdiPxKhbDq ._3Spcb1SWXkMsVPOJBD4FCA ._3J8yK5Q14ZQ1VUMZ3vk9yl {\\\\n color: black;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"foo\\": \\"_1ORNYXwneW2JZ8HOIELZsO\\", + \\"foo-1\\": \\"_1YzI-dPdJjO8MFoqnmHSiS\\", + \\"foo-2\\": \\"_19XuUcEihnxeccG4GuGcFK\\", + \\"foo-3\\": \\"_28hFOdkf6HPeamArMDTyjg\\", + \\"foo-4\\": \\"X_RacgG5tjWeZG02q-q84\\", + \\"foo-5\\": \\"_3eOAbv4_jk5PEpaqUX_vV_\\", + \\"foo-6\\": \\"_3eYZhuXQ5Ha1DcKYJnSpdv\\", + \\"foo-7\\": \\"tbNgruvlVjTBtv4zb7xzW\\", + \\"foo-8\\": \\"_1pV9OUnTdQPjZdQ4zHh8fk\\", + \\"foo-9\\": \\"_14gkAn2VC8A8K862gBpfxU\\", + \\"bar-1\\": \\"_1jv12xYuqjtEG-3ZW0dplp\\", + \\"bar-2\\": \\"_1Ruta1CeojEt_QePDvXgV4\\", + \\"baz-3\\": \\"FTCrXWhb6BcHdiPxKhbDq\\", + \\"baz\\": \\"_3Spcb1SWXkMsVPOJBD4FCA\\", + \\"bar-4\\": \\"_3J8yK5Q14ZQ1VUMZ3vk9yl\\" +};" +`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work and support "pure" mode #2: result 1`] = ` Array [ Array [ - 1, - ".a { - color: green; + "./modules/pure/pure.css", + "._1ORNYXwneW2JZ8HOIELZsO { + color: red; } -@keyframes bounce { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +h1 ._1YzI-dPdJjO8MFoqnmHSiS { + color: green; } -@-webkit-keyframes bounce2 { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +._19XuUcEihnxeccG4GuGcFK h1 { + color: blue; } -.bounce { - animation-name: bounce; - animation: bounce2 1s ease; +._28hFOdkf6HPeamArMDTyjg h1 .X_RacgG5tjWeZG02q-q84 { + color: red; } -.bounce2 { - color: green; - animation: bounce 1s ease; - animation-name: bounce2; +#_3eOAbv4_jk5PEpaqUX_vV_ { + color: red; } -.bounce3 { - animation: bounce 1s ease, bounce2 +h1 #_3eYZhuXQ5Ha1DcKYJnSpdv { + color: green; } -.bounce4 { - animation: bounce 1s ease, bounce2; +#tbNgruvlVjTBtv4zb7xzW h1 { + color: blue; } -.b { - color: green; +#_1pV9OUnTdQPjZdQ4zHh8fk h1 #_14gkAn2VC8A8K862gBpfxU { + color: red; +} + +._1jv12xYuqjtEG-3ZW0dplp .bar ._1Ruta1CeojEt_QePDvXgV4 { + color: white; +} + +.FTCrXWhb6BcHdiPxKhbDq ._3Spcb1SWXkMsVPOJBD4FCA ._3J8yK5Q14ZQ1VUMZ3vk9yl { + color: black; } ", "", @@ -2050,72 +2641,78 @@ Array [ ] `; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work and support "pure" mode #2: warnings 1`] = `Array []`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work and support "pure" mode: errors 1`] = `Array []`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "a": "_a", - "b": "_b", - "bounce": "_bounce", - "bounce2": "_bounce2", - "bounce3": "_bounce3", - "bounce4": "_bounce4", -} +exports[`"modules" option should work and support "pure" mode: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1ORNYXwneW2JZ8HOIELZsO {\\\\n color: red;\\\\n}\\\\n\\\\nh1 ._1YzI-dPdJjO8MFoqnmHSiS {\\\\n color: green;\\\\n}\\\\n\\\\n._19XuUcEihnxeccG4GuGcFK h1 {\\\\n color: blue;\\\\n}\\\\n\\\\n._28hFOdkf6HPeamArMDTyjg h1 .X_RacgG5tjWeZG02q-q84 {\\\\n color: red;\\\\n}\\\\n\\\\n#_3eOAbv4_jk5PEpaqUX_vV_ {\\\\n color: red;\\\\n}\\\\n\\\\nh1 #_3eYZhuXQ5Ha1DcKYJnSpdv {\\\\n color: green;\\\\n}\\\\n\\\\n#tbNgruvlVjTBtv4zb7xzW h1 {\\\\n color: blue;\\\\n}\\\\n\\\\n#_1pV9OUnTdQPjZdQ4zHh8fk h1 #_14gkAn2VC8A8K862gBpfxU {\\\\n color: red;\\\\n}\\\\n\\\\n._1jv12xYuqjtEG-3ZW0dplp .bar ._1Ruta1CeojEt_QePDvXgV4 {\\\\n color: white;\\\\n}\\\\n\\\\n.FTCrXWhb6BcHdiPxKhbDq ._3Spcb1SWXkMsVPOJBD4FCA ._3J8yK5Q14ZQ1VUMZ3vk9yl {\\\\n color: black;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"foo\\": \\"_1ORNYXwneW2JZ8HOIELZsO\\", + \\"foo-1\\": \\"_1YzI-dPdJjO8MFoqnmHSiS\\", + \\"foo-2\\": \\"_19XuUcEihnxeccG4GuGcFK\\", + \\"foo-3\\": \\"_28hFOdkf6HPeamArMDTyjg\\", + \\"foo-4\\": \\"X_RacgG5tjWeZG02q-q84\\", + \\"foo-5\\": \\"_3eOAbv4_jk5PEpaqUX_vV_\\", + \\"foo-6\\": \\"_3eYZhuXQ5Ha1DcKYJnSpdv\\", + \\"foo-7\\": \\"tbNgruvlVjTBtv4zb7xzW\\", + \\"foo-8\\": \\"_1pV9OUnTdQPjZdQ4zHh8fk\\", + \\"foo-9\\": \\"_14gkAn2VC8A8K862gBpfxU\\", + \\"bar-1\\": \\"_1jv12xYuqjtEG-3ZW0dplp\\", + \\"bar-2\\": \\"_1Ruta1CeojEt_QePDvXgV4\\", + \\"baz-3\\": \\"FTCrXWhb6BcHdiPxKhbDq\\", + \\"baz\\": \\"_3Spcb1SWXkMsVPOJBD4FCA\\", + \\"bar-4\\": \\"_3J8yK5Q14ZQ1VUMZ3vk9yl\\" +};" `; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work and support "pure" mode: result 1`] = ` Array [ Array [ - 1, - "._a { - color: green; + "./modules/pure/pure.css", + "._1ORNYXwneW2JZ8HOIELZsO { + color: red; } -@keyframes _bounce { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +h1 ._1YzI-dPdJjO8MFoqnmHSiS { + color: green; } -@-webkit-keyframes _bounce2 { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +._19XuUcEihnxeccG4GuGcFK h1 { + color: blue; } -._bounce { - animation-name: _bounce; - animation: _bounce2 1s ease; +._28hFOdkf6HPeamArMDTyjg h1 .X_RacgG5tjWeZG02q-q84 { + color: red; } -._bounce2 { - color: green; - animation: _bounce 1s ease; - animation-name: _bounce2; +#_3eOAbv4_jk5PEpaqUX_vV_ { + color: red; } -._bounce3 { - animation: _bounce 1s ease, _bounce2 +h1 #_3eYZhuXQ5Ha1DcKYJnSpdv { + color: green; } -._bounce4 { - animation: _bounce 1s ease, _bounce2; +#tbNgruvlVjTBtv4zb7xzW h1 { + color: blue; } -._b { - color: green; +#_1pV9OUnTdQPjZdQ4zHh8fk h1 #_14gkAn2VC8A8K862gBpfxU { + color: red; +} + +._1jv12xYuqjtEG-3ZW0dplp .bar ._1Ruta1CeojEt_QePDvXgV4 { + color: white; +} + +.FTCrXWhb6BcHdiPxKhbDq ._3Spcb1SWXkMsVPOJBD4FCA ._3J8yK5Q14ZQ1VUMZ3vk9yl { + color: black; } ", "", @@ -2123,125 +2720,184 @@ Array [ ] `; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work and support "pure" mode: warnings 1`] = `Array []`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work when the "getLocalIdent" option returns "false": errors 1`] = `Array []`; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "a": "_1AzRoWem1zBzZ9hLlF5IJC", - "b": "_1eH5GHM6EfKYOklEd2mhle", - "bounce": "_355y8MvF-ilfLoMa6xQMuq", - "bounce2": "_20oF72x8NQuWNrNLEjvczE", - "bounce3": "_3OQHSo2d42CWSR-npTXaic", - "bounce4": "_3bL1lmhMKE-Qlk83VSMCHN", -} +exports[`"modules" option should work when the "getLocalIdent" option returns "false": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".test {\\\\n background: red;\\\\n}\\\\n\\\\n._test {\\\\n background: blue;\\\\n}\\\\n\\\\n.className {\\\\n background: red;\\\\n}\\\\n\\\\n#someId {\\\\n background: green;\\\\n}\\\\n\\\\n.className .subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#someId .subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n.-a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n.m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#-a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#© {\\\\n color: black;\\\\n}\\\\n\\\\n.♥ { background: lime; }\\\\n.© { background: lime; }\\\\n.“‘’” { background: lime; }\\\\n.☺☃ { background: lime; }\\\\n.⌘⌥ { background: lime; }\\\\n.𝄞♪♩♫♬ { background: lime; }\\\\n.💩 { background: lime; }\\\\n.\\\\\\\\? { background: lime; }\\\\n.\\\\\\\\@ { background: lime; }\\\\n.\\\\\\\\. { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n.\\\\\\\\31 23 { background: lime; }\\\\n.\\\\\\\\31 a2b3c { background: lime; }\\\\n.\\\\\\\\ { background: lime; }\\\\n.\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n.\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\_ { background: lime; }\\\\n.\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n.\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n.foo\\\\\\\\.bar { background: lime; }\\\\n.\\\\\\\\3A hover { background: lime; }\\\\n.\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n.\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n.f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n.f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n.f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n.f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n.f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n.f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n.f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n.foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"123\\", + \\"test\\": \\"test\\", + \\"_test\\": \\"_test\\", + \\"className\\": \\"className\\", + \\"someId\\": \\"someId\\", + \\"subClass\\": \\"subClass\\", + \\"-a0-34a___f\\": \\"-a0-34a___f\\", + \\"m_x_@\\": \\"m_x_@\\", + \\"B&W?\\": \\"B&W?\\", + \\":\`(\\": \\":\`(\\", + \\"1a2b3c\\": \\"1a2b3c\\", + \\"#fake-id\\": \\"#fake-id\\", + \\"-a-b-c-\\": \\"-a-b-c-\\", + \\"©\\": \\"©\\", + \\"♥\\": \\"♥\\", + \\"“‘’”\\": \\"“‘’”\\", + \\"☺☃\\": \\"☺☃\\", + \\"⌘⌥\\": \\"⌘⌥\\", + \\"𝄞♪♩♫♬\\": \\"𝄞♪♩♫♬\\", + \\"💩\\": \\"💩\\", + \\"?\\": \\"?\\", + \\"@\\": \\"@\\", + \\".\\": \\".\\", + \\":)\\": \\":)\\", + \\"

\\": \\"

\\", + \\"<><<<>><>\\": \\"<><<<>><>\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\", + \\"#\\": \\"#\\", + \\"##\\": \\"##\\", + \\"#.#.#\\": \\"#.#.#\\", + \\"_\\": \\"_\\", + \\"{}\\": \\"{}\\", + \\"foo.bar\\": \\"foo.bar\\", + \\":hover\\": \\":hover\\", + \\":hover:focus:active\\": \\":hover:focus:active\\", + \\"[attr=value]\\": \\"[attr=value]\\", + \\"f/o/o\\": \\"f/o/o\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"f\\\\\\\\o\\\\\\\\o\\", + \\"f*o*o\\": \\"f*o*o\\", + \\"f!o!o\\": \\"f!o!o\\", + \\"f'o'o\\": \\"f'o'o\\", + \\"f~o~o\\": \\"f~o~o\\", + \\"f+o+o\\": \\"f+o+o\\", + \\"foo/bar\\": \\"foo/bar\\", + \\"foo\\\\\\\\bar\\": \\"foo\\\\\\\\bar\\", + \\"foo/bar/baz\\": \\"foo/bar/baz\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\\\\\\\bar\\\\\\\\baz\\" +};" `; -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work when the "getLocalIdent" option returns "false": result 1`] = ` Array [ Array [ - 1, - "._1AzRoWem1zBzZ9hLlF5IJC { - color: green; + "./modules/localIdentName/localIdentName.css", + ".test { + background: red; } -@keyframes _355y8MvF-ilfLoMa6xQMuq { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +._test { + background: blue; } -@-webkit-keyframes _20oF72x8NQuWNrNLEjvczE { - 0% { - transform: translateY(-100%); - opacity: 0; - } - 5% { - transform: translateY(-100%); - opacity: 0; - } +.className { + background: red; } -._355y8MvF-ilfLoMa6xQMuq { - animation-name: _355y8MvF-ilfLoMa6xQMuq; - animation: _20oF72x8NQuWNrNLEjvczE 1s ease; +#someId { + background: green; } -._20oF72x8NQuWNrNLEjvczE { - color: green; - animation: _355y8MvF-ilfLoMa6xQMuq 1s ease; - animation-name: _20oF72x8NQuWNrNLEjvczE; +.className .subClass { + color: green; } -._3OQHSo2d42CWSR-npTXaic { - animation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE +#someId .subClass { + color: blue; } -._3bL1lmhMKE-Qlk83VSMCHN { - animation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE; +.-a0-34a___f { + color: red; } -._1eH5GHM6EfKYOklEd2mhle { - color: green; +.m_x_\\\\@ { + margin-left: auto !important; + margin-right: auto !important; } -", - "", - ], -] -`; - -exports[`modules case \`keyframes-and-animation\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +.B\\\\&W\\\\? { + margin-left: auto !important; + margin-right: auto !important; +} -exports[`modules case \`leak-scope\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +/* matches elements with class=\\":\`(\\" */ +.\\\\3A \\\\\`\\\\( { + color: aqua; +} -exports[`modules case \`leak-scope\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".a { - color: green; - animation: a; +/* matches elements with class=\\"1a2b3c\\" */ +.\\\\31 a2b3c { + color: aliceblue; } -@keyframes b { - 0% { left: 10px; } - 100% { left: 20px; } +/* matches the element with id=\\"#fake-id\\" */ +#\\\\#fake-id { + color: antiquewhite; } -.b { - animation: b; +/* matches the element with id=\\"-a-b-c-\\" */ +#-a-b-c- { + color: azure; } -@keyframes :global(c) { - 0% { left: 10px; } - 100% { left: 20px; } +/* matches the element with id=\\"©\\" */ +#© { + color: black; } -.c { - animation: c1; - animation: c2, c3, c4; +.♥ { background: lime; } +.© { background: lime; } +.“‘’” { background: lime; } +.☺☃ { background: lime; } +.⌘⌥ { background: lime; } +.𝄞♪♩♫♬ { background: lime; } +.💩 { background: lime; } +.\\\\? { background: lime; } +.\\\\@ { background: lime; } +.\\\\. { background: lime; } +.\\\\3A \\\\) { background: lime; } +.\\\\3A \\\\\`\\\\( { background: lime; } +.\\\\31 23 { background: lime; } +.\\\\31 a2b3c { background: lime; } +.\\\\ { background: lime; } +.\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\> { background: lime; } +.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\. { background: lime; } +.\\\\# { background: lime; } +.\\\\#\\\\# { background: lime; } +.\\\\#\\\\.\\\\#\\\\.\\\\# { background: lime; } +.\\\\_ { background: lime; } +.\\\\{\\\\} { background: lime; } +.\\\\#fake\\\\-id { background: lime; } +.foo\\\\.bar { background: lime; } +.\\\\3A hover { background: lime; } +.\\\\3A hover\\\\3A focus\\\\3A active { background: lime; } +.\\\\[attr\\\\=value\\\\] { background: lime; } +.f\\\\/o\\\\/o { background: lime; } +.f\\\\\\\\o\\\\\\\\o { background: lime; } +.f\\\\*o\\\\*o { background: lime; } +.f\\\\!o\\\\!o { background: lime; } +.f\\\\'o\\\\'o { background: lime; } +.f\\\\~o\\\\~o { background: lime; } +.f\\\\+o\\\\+o { background: lime; } + +.foo\\\\/bar { + background: hotpink; } -@keyframes :global(d) { - 0% { left: 10px; } - 100% { left: 20px; } +.foo\\\\\\\\bar { + background: hotpink; } -:global .d1 { - animation: d1; - animation: d2, d3, d4; +.foo\\\\/bar\\\\/baz { + background: hotpink; } -:global(.d2) { - animation: d2; +.foo\\\\\\\\bar\\\\\\\\baz { + background: hotpink; } ", "", @@ -2249,52 +2905,53 @@ Array [ ] `; -exports[`modules case \`leak-scope\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work when the "getLocalIdent" option returns "false": warnings 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`global)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"a {\\\\n animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - ".a { - color: green; - animation: a; -} + "./modules/tests-cases/animation/source.css", + "a { + animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out; -@keyframes b { - 0% { left: 10px; } - 100% { left: 20px; } } +", + "", + ], +] +`; -.b { - animation: b; -} +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -@keyframes c { - 0% { left: 10px; } - 100% { left: 20px; } -} +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -.c { - animation: c1; - animation: c2, c3, c4; -} +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"a {\\\\n animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); +" +`; -@keyframes d { - 0% { left: 10px; } - 100% { left: 20px; } -} - -.d1 { - animation: d1; - animation: d2, d3, d4; -} +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/animation/source.css", + "a { + animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out; -.d2 { - animation: d2; } ", "", @@ -2302,63 +2959,30 @@ Array [ ] `; -exports[`modules case \`leak-scope\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "a": "_1OjK2G7L6Ypn9Qqa8lly-H", - "b": "_2cTRWn5QG4xtPeFL2wrKvv", - "c": "_3MHGI9_Tl4A_kJUxXx1q2j", - "c1": "_1PQ8UpcdVbFbAcYs6wdRXj", - "c2": "_3JhTjOsNov-pQXnd3o0JJ", - "c3": "_9skQ6KRXi6qCorV5zNSyV", - "c4": "_1Gh6Pqr28qXCExbnssOGX9", - "d2": "_35GAwk8Rb2LyIN0pSAXjyy", -} +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"a {\\\\n animation: _2jinakhsfBWcUNZSsOxUHz 300ms forwards ease-out, _3XZSV759G141XcbTZgtQkF 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"slide-right\\": \\"_2jinakhsfBWcUNZSsOxUHz\\", + \\"fade-in\\": \\"_3XZSV759G141XcbTZgtQkF\\" +};" `; -exports[`modules case \`leak-scope\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - "._1OjK2G7L6Ypn9Qqa8lly-H { - color: green; - animation: _1OjK2G7L6Ypn9Qqa8lly-H; -} - -@keyframes _2cTRWn5QG4xtPeFL2wrKvv { - 0% { left: 10px; } - 100% { left: 20px; } -} - -._2cTRWn5QG4xtPeFL2wrKvv { - animation: _2cTRWn5QG4xtPeFL2wrKvv; -} - -@keyframes c { - 0% { left: 10px; } - 100% { left: 20px; } -} - -._3MHGI9_Tl4A_kJUxXx1q2j { - animation: _1PQ8UpcdVbFbAcYs6wdRXj; - animation: _3JhTjOsNov-pQXnd3o0JJ, _9skQ6KRXi6qCorV5zNSyV, _1Gh6Pqr28qXCExbnssOGX9; -} - -@keyframes d { - 0% { left: 10px; } - 100% { left: 20px; } -} - -.d1 { - animation: d1; - animation: d2, d3, d4; -} + "./modules/tests-cases/animation/source.css", + "a { + animation: _2jinakhsfBWcUNZSsOxUHz 300ms forwards ease-out, _3XZSV759G141XcbTZgtQkF 300ms forwards ease-out; -.d2 { - animation: _35GAwk8Rb2LyIN0pSAXjyy; } ", "", @@ -2366,52 +2990,26 @@ Array [ ] `; -exports[`modules case \`leak-scope\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`object with mode global)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"a {\\\\n animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - ".a { - color: green; - animation: a; -} - -@keyframes b { - 0% { left: 10px; } - 100% { left: 20px; } -} - -.b { - animation: b; -} - -@keyframes c { - 0% { left: 10px; } - 100% { left: 20px; } -} - -.c { - animation: c1; - animation: c2, c3, c4; -} - -@keyframes d { - 0% { left: 10px; } - 100% { left: 20px; } -} - -.d1 { - animation: d1; - animation: d2, d3, d4; -} + "./modules/tests-cases/animation/source.css", + "a { + animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out; -.d2 { - animation: d2; } ", "", @@ -2419,63 +3017,30 @@ Array [ ] `; -exports[`modules case \`leak-scope\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "a": "_a", - "b": "_b", - "c": "_c", - "c1": "_c1", - "c2": "_c2", - "c3": "_c3", - "c4": "_c4", - "d2": "_d2", -} +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"a {\\\\n animation: _slide-right 300ms forwards ease-out, _fade-in 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"slide-right\\": \\"_slide-right\\", + \\"fade-in\\": \\"_fade-in\\" +};" `; -exports[`modules case \`leak-scope\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - "._a { - color: green; - animation: _a; -} - -@keyframes _b { - 0% { left: 10px; } - 100% { left: 20px; } -} - -._b { - animation: _b; -} - -@keyframes c { - 0% { left: 10px; } - 100% { left: 20px; } -} - -._c { - animation: _c1; - animation: _c2, _c3, _c4; -} - -@keyframes d { - 0% { left: 10px; } - 100% { left: 20px; } -} - -.d1 { - animation: d1; - animation: d2, d3, d4; -} + "./modules/tests-cases/animation/source.css", + "a { + animation: _slide-right 300ms forwards ease-out, _fade-in 300ms forwards ease-out; -.d2 { - animation: _d2; } ", "", @@ -2483,63 +3048,30 @@ Array [ ] `; -exports[`modules case \`leak-scope\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`leak-scope\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "a": "_1OjK2G7L6Ypn9Qqa8lly-H", - "b": "_2cTRWn5QG4xtPeFL2wrKvv", - "c": "_3MHGI9_Tl4A_kJUxXx1q2j", - "c1": "_1PQ8UpcdVbFbAcYs6wdRXj", - "c2": "_3JhTjOsNov-pQXnd3o0JJ", - "c3": "_9skQ6KRXi6qCorV5zNSyV", - "c4": "_1Gh6Pqr28qXCExbnssOGX9", - "d2": "_35GAwk8Rb2LyIN0pSAXjyy", -} +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"a {\\\\n animation: _2jinakhsfBWcUNZSsOxUHz 300ms forwards ease-out, _3XZSV759G141XcbTZgtQkF 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"slide-right\\": \\"_2jinakhsfBWcUNZSsOxUHz\\", + \\"fade-in\\": \\"_3XZSV759G141XcbTZgtQkF\\" +};" `; -exports[`modules case \`leak-scope\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - "._1OjK2G7L6Ypn9Qqa8lly-H { - color: green; - animation: _1OjK2G7L6Ypn9Qqa8lly-H; -} - -@keyframes _2cTRWn5QG4xtPeFL2wrKvv { - 0% { left: 10px; } - 100% { left: 20px; } -} - -._2cTRWn5QG4xtPeFL2wrKvv { - animation: _2cTRWn5QG4xtPeFL2wrKvv; -} - -@keyframes c { - 0% { left: 10px; } - 100% { left: 20px; } -} - -._3MHGI9_Tl4A_kJUxXx1q2j { - animation: _1PQ8UpcdVbFbAcYs6wdRXj; - animation: _3JhTjOsNov-pQXnd3o0JJ, _9skQ6KRXi6qCorV5zNSyV, _1Gh6Pqr28qXCExbnssOGX9; -} - -@keyframes d { - 0% { left: 10px; } - 100% { left: 20px; } -} - -.d1 { - animation: d1; - animation: d2, d3, d4; -} + "./modules/tests-cases/animation/source.css", + "a { + animation: _2jinakhsfBWcUNZSsOxUHz 300ms forwards ease-out, _3XZSV759G141XcbTZgtQkF 300ms forwards ease-out; -.d2 { - animation: _35GAwk8Rb2LyIN0pSAXjyy; } ", "", @@ -2547,22 +3079,25 @@ Array [ ] `; -exports[`modules case \`leak-scope\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".class-1, .class-10 .bar-1 {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`local\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - ".abc :local(.def) { - color: red; -} - -:local .ghi .jkl { - color: blue; + "./modules/tests-cases/class-names/source.css", + ".class-1, .class-10 .bar-1 { + color: green; } ", "", @@ -2570,28 +3105,25 @@ Array [ ] `; -exports[`modules case \`local\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "def": "_1UnGDcMVVYIU_547CDqQJU", - "ghi": "_1k8c5svlAtK4vFkSsZdl4o", - "jkl": "pRQR9FSSkxNL6roex-uGp", -} +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".class-1, .class-10 .bar-1 {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`local\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - ".abc ._1UnGDcMVVYIU_547CDqQJU { - color: red; -} - -._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp { - color: blue; + "./modules/tests-cases/class-names/source.css", + ".class-1, .class-10 .bar-1 { + color: green; } ", "", @@ -2599,29 +3131,30 @@ Array [ ] `; -exports[`modules case \`local\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "abc": "_2EPIUiYqPKxP0HS9Vgqa8e", - "def": "_1UnGDcMVVYIU_547CDqQJU", - "ghi": "_1k8c5svlAtK4vFkSsZdl4o", - "jkl": "pRQR9FSSkxNL6roex-uGp", -} +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1GNZOTxutjEX7cZ3Ec7knU, ._15N9BXxWirSgwhYficwysK ._3GpM4NK17tELexNK1Szvws {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"class-1\\": \\"_1GNZOTxutjEX7cZ3Ec7knU\\", + \\"class-10\\": \\"_15N9BXxWirSgwhYficwysK\\", + \\"bar-1\\": \\"_3GpM4NK17tELexNK1Szvws\\" +};" `; -exports[`modules case \`local\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - "._2EPIUiYqPKxP0HS9Vgqa8e ._1UnGDcMVVYIU_547CDqQJU { - color: red; -} - -._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp { - color: blue; + "./modules/tests-cases/class-names/source.css", + "._1GNZOTxutjEX7cZ3Ec7knU, ._15N9BXxWirSgwhYficwysK ._3GpM4NK17tELexNK1Szvws { + color: green; } ", "", @@ -2629,28 +3162,25 @@ Array [ ] `; -exports[`modules case \`local\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "def": "_def", - "ghi": "_ghi", - "jkl": "_jkl", -} +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".class-1, .class-10 .bar-1 {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`local\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - ".abc ._def { - color: red; -} - -._ghi ._jkl { - color: blue; + "./modules/tests-cases/class-names/source.css", + ".class-1, .class-10 .bar-1 { + color: green; } ", "", @@ -2658,29 +3188,30 @@ Array [ ] `; -exports[`modules case \`local\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "abc": "_abc", - "def": "_def", - "ghi": "_ghi", - "jkl": "_jkl", -} +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._class-1, ._class-10 ._bar-1 {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"class-1\\": \\"_class-1\\", + \\"class-10\\": \\"_class-10\\", + \\"bar-1\\": \\"_bar-1\\" +};" `; -exports[`modules case \`local\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - "._abc ._def { - color: red; -} - -._ghi ._jkl { - color: blue; + "./modules/tests-cases/class-names/source.css", + "._class-1, ._class-10 ._bar-1 { + color: green; } ", "", @@ -2688,29 +3219,30 @@ Array [ ] `; -exports[`modules case \`local\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; - -exports[`modules case \`local\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "abc": "_2EPIUiYqPKxP0HS9Vgqa8e", - "def": "_1UnGDcMVVYIU_547CDqQJU", - "ghi": "_1k8c5svlAtK4vFkSsZdl4o", - "jkl": "pRQR9FSSkxNL6roex-uGp", -} -`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`local\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._2EPIUiYqPKxP0HS9Vgqa8e ._1UnGDcMVVYIU_547CDqQJU { - color: red; -} +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1GNZOTxutjEX7cZ3Ec7knU, ._15N9BXxWirSgwhYficwysK ._3GpM4NK17tELexNK1Szvws {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"class-1\\": \\"_1GNZOTxutjEX7cZ3Ec7knU\\", + \\"class-10\\": \\"_15N9BXxWirSgwhYficwysK\\", + \\"bar-1\\": \\"_3GpM4NK17tELexNK1Szvws\\" +};" +`; -._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp { - color: blue; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/class-names/source.css", + "._1GNZOTxutjEX7cZ3Ec7knU, ._15N9BXxWirSgwhYficwysK ._3GpM4NK17tELexNK1Szvws { + color: green; } ", "", @@ -2718,961 +3250,1277 @@ Array [ ] `; -exports[`modules case \`local\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\":local(.c1/*.c2*/.c3) { background: red; }\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`local-2\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - ":local(.className) { background: red; } -:local(#someId) { background: green; } -:local(.className .subClass) { color: green; } -:local(#someId .subClass) { color: blue; } + "./modules/tests-cases/comment-in-local/source.css", + ":local(.c1/*.c2*/.c3) { background: red; } ", "", ], ] `; -exports[`modules case \`local-2\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "className": "PTH0TZDPxpREaV5cxtahd", - "someId": "_1XQl0Np_jYcDGudXKxmL8A", - "subClass": "_2MrzTmc8jtF-E5FfuMPQie", -} +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_1xn1UbV-5a_s7ig53fR7Lz\\", + \\"c3\\": \\"_36mr1nZ1pdjd1s5j3RV-z7\\" +};" `; -exports[`modules case \`local-2\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - ".PTH0TZDPxpREaV5cxtahd { background: red; } -#_1XQl0Np_jYcDGudXKxmL8A { background: green; } -.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; } -#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; } + "./modules/tests-cases/comment-in-local/source.css", + "._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; } ", "", ], ] `; -exports[`modules case \`local-2\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "className": "PTH0TZDPxpREaV5cxtahd", - "someId": "_1XQl0Np_jYcDGudXKxmL8A", - "subClass": "_2MrzTmc8jtF-E5FfuMPQie", -} +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_1xn1UbV-5a_s7ig53fR7Lz\\", + \\"c3\\": \\"_36mr1nZ1pdjd1s5j3RV-z7\\" +};" `; -exports[`modules case \`local-2\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - ".PTH0TZDPxpREaV5cxtahd { background: red; } -#_1XQl0Np_jYcDGudXKxmL8A { background: green; } -.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; } -#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; } + "./modules/tests-cases/comment-in-local/source.css", + "._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; } ", "", ], ] `; -exports[`modules case \`local-2\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "className": "_className", - "someId": "_someId", - "subClass": "_subClass", -} +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._c1/*.c2*/._c3 { background: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_c1\\", + \\"c3\\": \\"_c3\\" +};" `; -exports[`modules case \`local-2\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - "._className { background: red; } -#_someId { background: green; } -._className ._subClass { color: green; } -#_someId ._subClass { color: blue; } + "./modules/tests-cases/comment-in-local/source.css", + "._c1/*.c2*/._c3 { background: red; } ", "", ], ] `; -exports[`modules case \`local-2\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "className": "_className", - "someId": "_someId", - "subClass": "_subClass", -} +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._c1/*.c2*/._c3 { background: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_c1\\", + \\"c3\\": \\"_c3\\" +};" `; -exports[`modules case \`local-2\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - "._className { background: red; } -#_someId { background: green; } -._className ._subClass { color: green; } -#_someId ._subClass { color: blue; } + "./modules/tests-cases/comment-in-local/source.css", + "._c1/*.c2*/._c3 { background: red; } ", "", ], ] `; -exports[`modules case \`local-2\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`local-2\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "className": "PTH0TZDPxpREaV5cxtahd", - "someId": "_1XQl0Np_jYcDGudXKxmL8A", - "subClass": "_2MrzTmc8jtF-E5FfuMPQie", -} +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_1xn1UbV-5a_s7ig53fR7Lz\\", + \\"c3\\": \\"_36mr1nZ1pdjd1s5j3RV-z7\\" +};" `; -exports[`modules case \`local-2\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - ".PTH0TZDPxpREaV5cxtahd { background: red; } -#_1XQl0Np_jYcDGudXKxmL8A { background: green; } -.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; } -#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; } + "./modules/tests-cases/comment-in-local/source.css", + "._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; } ", "", ], ] `; -exports[`modules case \`local-2\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n.bg {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - ":local(.abc) { - color: red; -} -:local(.def) { - composes: abc; - background: green; + "./modules/tests-cases/comments/source.css", + "/* + * a ' above + */ + +.bg { + background-image: url(/webpack/public/path/img.png); } + +/* + * a ' below + */ ", "", ], ] `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "abc": "_1wzWGMZGmVz3uhGAmwbXwR", - "def": "_3zcEXyCxYPLdb_6bVqY6Df _1wzWGMZGmVz3uhGAmwbXwR", -} +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n.bg {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "._1wzWGMZGmVz3uhGAmwbXwR { - color: red; -} -._3zcEXyCxYPLdb_6bVqY6Df { - background: green; + "./modules/tests-cases/comments/source.css", + "/* + * a ' above + */ + +.bg { + background-image: url(/webpack/public/path/img.png); } + +/* + * a ' below + */ ", "", ], ] `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "abc": "_1wzWGMZGmVz3uhGAmwbXwR", - "def": "_3zcEXyCxYPLdb_6bVqY6Df _1wzWGMZGmVz3uhGAmwbXwR", -} +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n._28-VAWbJ8gQCgX50Jcqtzs {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"bg\\": \\"_28-VAWbJ8gQCgX50Jcqtzs\\" +};" `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - "._1wzWGMZGmVz3uhGAmwbXwR { - color: red; -} -._3zcEXyCxYPLdb_6bVqY6Df { - background: green; + "./modules/tests-cases/comments/source.css", + "/* + * a ' above + */ + +._28-VAWbJ8gQCgX50Jcqtzs { + background-image: url(/webpack/public/path/img.png); } + +/* + * a ' below + */ ", "", ], ] `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "abc": "_abc", - "def": "_def _abc", -} +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n.bg {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - "._abc { - color: red; -} -._def { - background: green; + "./modules/tests-cases/comments/source.css", + "/* + * a ' above + */ + +.bg { + background-image: url(/webpack/public/path/img.png); } + +/* + * a ' below + */ ", "", ], ] `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "abc": "_abc", - "def": "_def _abc", -} +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n._bg {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"bg\\": \\"_bg\\" +};" `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - "._abc { - color: red; -} -._def { - background: green; + "./modules/tests-cases/comments/source.css", + "/* + * a ' above + */ + +._bg { + background-image: url(/webpack/public/path/img.png); } + +/* + * a ' below + */ ", "", ], ] `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "abc": "_1wzWGMZGmVz3uhGAmwbXwR", - "def": "_3zcEXyCxYPLdb_6bVqY6Df _1wzWGMZGmVz3uhGAmwbXwR", -} +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n._28-VAWbJ8gQCgX50Jcqtzs {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"bg\\": \\"_28-VAWbJ8gQCgX50Jcqtzs\\" +};" `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - "._1wzWGMZGmVz3uhGAmwbXwR { - color: red; -} -._3zcEXyCxYPLdb_6bVqY6Df { - background: green; + "./modules/tests-cases/comments/source.css", + "/* + * a ' above + */ + +._28-VAWbJ8gQCgX50Jcqtzs { + background-image: url(/webpack/public/path/img.png); } + +/* + * a ' below + */ ", "", ], ] `; -exports[`modules case \`local-and-composes\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\":local(.c1) { a: 1; }\\\\n:local(.c2) { composes: c1; b: 1; }\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - ":local(.c1[data-attr=\\".c2)]'\\"]:not(.c3):not(.c4)) { - background: red; -} + "./modules/tests-cases/composes/source.css", + ":local(.c1) { a: 1; } +:local(.c2) { composes: c1; b: 1; } ", "", ], ] `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "c1": "_1sz8PE1ejGPcGRSnIAWKZt", - "c3": "_2DFDxRic974g-wJ7S9rbP1", - "c4": "xo8O_am1gQUkHa-_J-WSe", -} +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._2lVGKlfYXzywV6_acW1a3J { a: 1; }\\\\n._2FPXZHdIWogtLWkFQcjYj7 { b: 1; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_2lVGKlfYXzywV6_acW1a3J\\", + \\"c2\\": \\"_2FPXZHdIWogtLWkFQcjYj7 _2lVGKlfYXzywV6_acW1a3J\\" +};" `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\".c2)]'\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) { - background: red; -} + "./modules/tests-cases/composes/source.css", + "._2lVGKlfYXzywV6_acW1a3J { a: 1; } +._2FPXZHdIWogtLWkFQcjYj7 { b: 1; } ", "", ], ] `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "c1": "_1sz8PE1ejGPcGRSnIAWKZt", - "c3": "_2DFDxRic974g-wJ7S9rbP1", - "c4": "xo8O_am1gQUkHa-_J-WSe", -} +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._2lVGKlfYXzywV6_acW1a3J { a: 1; }\\\\n._2FPXZHdIWogtLWkFQcjYj7 { b: 1; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_2lVGKlfYXzywV6_acW1a3J\\", + \\"c2\\": \\"_2FPXZHdIWogtLWkFQcjYj7 _2lVGKlfYXzywV6_acW1a3J\\" +};" `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - "._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\".c2)]'\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) { - background: red; -} + "./modules/tests-cases/composes/source.css", + "._2lVGKlfYXzywV6_acW1a3J { a: 1; } +._2FPXZHdIWogtLWkFQcjYj7 { b: 1; } ", "", ], ] `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "c1": "_c1", - "c3": "_c3", - "c4": "_c4", -} +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._c1 { a: 1; }\\\\n._c2 { b: 1; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_c1\\", + \\"c2\\": \\"_c2 _c1\\" +};" `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - "._c1[data-attr=\\".c2)]'\\"]:not(._c3):not(._c4) { - background: red; -} + "./modules/tests-cases/composes/source.css", + "._c1 { a: 1; } +._c2 { b: 1; } ", "", ], ] `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "c1": "_c1", - "c3": "_c3", - "c4": "_c4", -} +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._c1 { a: 1; }\\\\n._c2 { b: 1; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_c1\\", + \\"c2\\": \\"_c2 _c1\\" +};" `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - "._c1[data-attr=\\".c2)]'\\"]:not(._c3):not(._c4) { - background: red; -} + "./modules/tests-cases/composes/source.css", + "._c1 { a: 1; } +._c2 { b: 1; } ", "", ], ] `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`local-with-string\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "c1": "_1sz8PE1ejGPcGRSnIAWKZt", - "c3": "_2DFDxRic974g-wJ7S9rbP1", - "c4": "xo8O_am1gQUkHa-_J-WSe", -} +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._2lVGKlfYXzywV6_acW1a3J { a: 1; }\\\\n._2FPXZHdIWogtLWkFQcjYj7 { b: 1; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_2lVGKlfYXzywV6_acW1a3J\\", + \\"c2\\": \\"_2FPXZHdIWogtLWkFQcjYj7 _2lVGKlfYXzywV6_acW1a3J\\" +};" `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - "._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\".c2)]'\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) { - background: red; -} + "./modules/tests-cases/composes/source.css", + "._2lVGKlfYXzywV6_acW1a3J { a: 1; } +._2FPXZHdIWogtLWkFQcjYj7 { b: 1; } ", "", ], ] `; -exports[`modules case \`local-with-string\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\":local(.c1) { composes: c2 from \\\\\\"./file.css\\\\\\"; b: 1; }\\\\n:local(.c3) { composes: c1; b: 3; }\\\\n:local(.c5) { composes: c2 c4 from \\\\\\"./file.css\\\\\\"; b: 5; }\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`media\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - "@value small: (max-width: 599px); - -@media small { - .header { - box-shadow: 0 0 4px #1F4F7F; - } -} + "./modules/tests-cases/composes-1/source.css", + ":local(.c1) { composes: c2 from \\"./file.css\\"; b: 1; } +:local(.c3) { composes: c1; b: 3; } +:local(.c5) { composes: c2 c4 from \\"./file.css\\"; b: 5; } ", "", ], ] `; -exports[`modules case \`media\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "small": "(max-width: 599px)", -} +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._1DZQbqp1oX8etdFa5oSOnV { b: 1; }\\\\n._1PKuwglb3xQB3gwJBZx6_G { b: 3; }\\\\n._1MtdK0_soIbU20fcYBbRAe { b: 5; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", + \\"c3\\": \\"_1PKuwglb3xQB3gwJBZx6_G _1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", + \\"c5\\": \\"_1MtdK0_soIbU20fcYBbRAe \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" +};" `; -exports[`modules case \`media\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "@media (max-width: 599px) { - .header { - box-shadow: 0 0 4px #1F4F7F; - } + "../../src/index.js?!./modules/tests-cases/composes-1/file.css", + "._1xYJRliqpSHYzUvktbdaCo { + color: red; +} + +._1jdJRc6HaM3lHykxBSOeII { + color: blue; +} + +.test{ + c: d } +", + "", + ], + Array [ + "./modules/tests-cases/composes-1/source.css", + "._1DZQbqp1oX8etdFa5oSOnV { b: 1; } +._1PKuwglb3xQB3gwJBZx6_G { b: 3; } +._1MtdK0_soIbU20fcYBbRAe { b: 5; } ", "", ], ] `; -exports[`modules case \`media\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "header": "_1wyVAJXtjGZLoQNO_yG8b3", - "small": "(max-width: 599px)", -} +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._1DZQbqp1oX8etdFa5oSOnV { b: 1; }\\\\n._1PKuwglb3xQB3gwJBZx6_G { b: 3; }\\\\n._1MtdK0_soIbU20fcYBbRAe { b: 5; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", + \\"c3\\": \\"_1PKuwglb3xQB3gwJBZx6_G _1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", + \\"c5\\": \\"_1MtdK0_soIbU20fcYBbRAe \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" +};" `; -exports[`modules case \`media\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - "@media (max-width: 599px) { - ._1wyVAJXtjGZLoQNO_yG8b3 { - box-shadow: 0 0 4px #1F4F7F; - } + "../../src/index.js?!./modules/tests-cases/composes-1/file.css", + "._1xYJRliqpSHYzUvktbdaCo { + color: red; +} + +._1jdJRc6HaM3lHykxBSOeII { + color: blue; } + +._3YdnDqqBfyyJ_9JKWIle3X{ + c: d +} +", + "", + ], + Array [ + "./modules/tests-cases/composes-1/source.css", + "._1DZQbqp1oX8etdFa5oSOnV { b: 1; } +._1PKuwglb3xQB3gwJBZx6_G { b: 3; } +._1MtdK0_soIbU20fcYBbRAe { b: 5; } ", "", ], ] `; -exports[`modules case \`media\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "small": "(max-width: 599px)", -} +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", + \\"c3\\": \\"_c3 _c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", + \\"c5\\": \\"_c5 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" +};" `; -exports[`modules case \`media\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - "@media (max-width: 599px) { - .header { - box-shadow: 0 0 4px #1F4F7F; - } + "../../src/index.js?!./modules/tests-cases/composes-1/file.css", + "._c2 { + color: red; +} + +._c4 { + color: blue; +} + +.test{ + c: d } +", + "", + ], + Array [ + "./modules/tests-cases/composes-1/source.css", + "._c1 { b: 1; } +._c3 { b: 3; } +._c5 { b: 5; } ", "", ], ] `; -exports[`modules case \`media\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "header": "_header", - "small": "(max-width: 599px)", -} +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", + \\"c3\\": \\"_c3 _c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", + \\"c5\\": \\"_c5 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" +};" `; -exports[`modules case \`media\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - "@media (max-width: 599px) { - ._header { - box-shadow: 0 0 4px #1F4F7F; - } + "../../src/index.js?!./modules/tests-cases/composes-1/file.css", + "._c2 { + color: red; +} + +._c4 { + color: blue; +} + +._test{ + c: d } +", + "", + ], + Array [ + "./modules/tests-cases/composes-1/source.css", + "._c1 { b: 1; } +._c3 { b: 3; } +._c5 { b: 5; } ", "", ], ] `; -exports[`modules case \`media\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`media\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "header": "_1wyVAJXtjGZLoQNO_yG8b3", - "small": "(max-width: 599px)", -} +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._1DZQbqp1oX8etdFa5oSOnV { b: 1; }\\\\n._1PKuwglb3xQB3gwJBZx6_G { b: 3; }\\\\n._1MtdK0_soIbU20fcYBbRAe { b: 5; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", + \\"c3\\": \\"_1PKuwglb3xQB3gwJBZx6_G _1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", + \\"c5\\": \\"_1MtdK0_soIbU20fcYBbRAe \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" +};" `; -exports[`modules case \`media\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - "@media (max-width: 599px) { - ._1wyVAJXtjGZLoQNO_yG8b3 { - box-shadow: 0 0 4px #1F4F7F; - } + "../../src/index.js?!./modules/tests-cases/composes-1/file.css", + "._1xYJRliqpSHYzUvktbdaCo { + color: red; +} + +._1jdJRc6HaM3lHykxBSOeII { + color: blue; +} + +._3YdnDqqBfyyJ_9JKWIle3X{ + c: d } +", + "", + ], + Array [ + "./modules/tests-cases/composes-1/source.css", + "._1DZQbqp1oX8etdFa5oSOnV { b: 1; } +._1PKuwglb3xQB3gwJBZx6_G { b: 3; } +._1MtdK0_soIbU20fcYBbRAe { b: 5; } ", "", ], ] `; -exports[`modules case \`media\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\":local(.c1) { composes: c-2 from \\\\\\"./file.css\\\\\\"; b: 1; }\\\\n:local(.c3) { composes: c1; b: 3; }\\\\n:local(.c5) { composes: c-2 c4 from \\\\\\"./file.css\\\\\\"; b: 5; }\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`media-2\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - "@value small from './file.css'; -@media small { - .header { - box-shadow: 0 0 4px #1F4F7F; - } -} + "./modules/tests-cases/composes-2/source.css", + ":local(.c1) { composes: c-2 from \\"./file.css\\"; b: 1; } +:local(.c3) { composes: c1; b: 3; } +:local(.c5) { composes: c-2 c4 from \\"./file.css\\"; b: 5; } ", "", ], ] `; -exports[`modules case \`media-2\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "small": "(max-width: 599px)", -} +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; }\\\\n._1TPNBQGz_snQ6aGvXARYo0 { b: 3; }\\\\n.rkDOmH5RkgZGaQ5Fey09Z { b: 5; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", + \\"c3\\": \\"_1TPNBQGz_snQ6aGvXARYo0 _2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", + \\"c5\\": \\"rkDOmH5RkgZGaQ5Fey09Z \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" +};" `; -exports[`modules case \`media-2\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 2, - " + "../../src/index.js?!./modules/tests-cases/composes-2/file.css", + "._3CxjkH18CkEkRZ4FO4v-NQ { + color: red; +} + +.G8VU3XI3HtOvZPlSEb9S3 { + color: blue; +} + +.test{ + c: d +} ", "", ], Array [ - 1, - "@media (max-width: 599px) { - .header { - box-shadow: 0 0 4px #1F4F7F; - } -} + "./modules/tests-cases/composes-2/source.css", + "._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; } +._1TPNBQGz_snQ6aGvXARYo0 { b: 3; } +.rkDOmH5RkgZGaQ5Fey09Z { b: 5; } ", "", ], ] `; -exports[`modules case \`media-2\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "header": "UbDEjEuweJXO7yHMpC8qp", - "small": "(max-width: 599px)", -} +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; }\\\\n._1TPNBQGz_snQ6aGvXARYo0 { b: 3; }\\\\n.rkDOmH5RkgZGaQ5Fey09Z { b: 5; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", + \\"c3\\": \\"_1TPNBQGz_snQ6aGvXARYo0 _2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", + \\"c5\\": \\"rkDOmH5RkgZGaQ5Fey09Z \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" +};" `; -exports[`modules case \`media-2\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 2, - " + "../../src/index.js?!./modules/tests-cases/composes-2/file.css", + "._3CxjkH18CkEkRZ4FO4v-NQ { + color: red; +} + +.G8VU3XI3HtOvZPlSEb9S3 { + color: blue; +} + +._10rrqoQ7Mb3ZcY6LixlnpR{ + c: d +} ", "", ], Array [ - 1, - "@media (max-width: 599px) { - .UbDEjEuweJXO7yHMpC8qp { - box-shadow: 0 0 4px #1F4F7F; - } -} + "./modules/tests-cases/composes-2/source.css", + "._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; } +._1TPNBQGz_snQ6aGvXARYo0 { b: 3; } +.rkDOmH5RkgZGaQ5Fey09Z { b: 5; } ", "", ], ] `; -exports[`modules case \`media-2\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "small": "(max-width: 599px)", -} +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", + \\"c3\\": \\"_c3 _c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", + \\"c5\\": \\"_c5 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" +};" `; -exports[`modules case \`media-2\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 2, - " + "../../src/index.js?!./modules/tests-cases/composes-2/file.css", + "._c-2 { + color: red; +} + +._c4 { + color: blue; +} + +.test{ + c: d +} ", "", ], Array [ - 1, - "@media (max-width: 599px) { - .header { - box-shadow: 0 0 4px #1F4F7F; - } -} + "./modules/tests-cases/composes-2/source.css", + "._c1 { b: 1; } +._c3 { b: 3; } +._c5 { b: 5; } ", "", ], ] `; -exports[`modules case \`media-2\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "header": "_header", - "small": "(max-width: 599px)", -} +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", + \\"c3\\": \\"_c3 _c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", + \\"c5\\": \\"_c5 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" +};" `; -exports[`modules case \`media-2\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 2, - " + "../../src/index.js?!./modules/tests-cases/composes-2/file.css", + "._c-2 { + color: red; +} + +._c4 { + color: blue; +} + +._test{ + c: d +} ", "", ], Array [ - 1, - "@media (max-width: 599px) { - ._header { - box-shadow: 0 0 4px #1F4F7F; - } -} + "./modules/tests-cases/composes-2/source.css", + "._c1 { b: 1; } +._c3 { b: 3; } +._c5 { b: 5; } ", "", ], ] `; -exports[`modules case \`media-2\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`media-2\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "header": "UbDEjEuweJXO7yHMpC8qp", - "small": "(max-width: 599px)", -} +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; }\\\\n._1TPNBQGz_snQ6aGvXARYo0 { b: 3; }\\\\n.rkDOmH5RkgZGaQ5Fey09Z { b: 5; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", + \\"c3\\": \\"_1TPNBQGz_snQ6aGvXARYo0 _2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", + \\"c5\\": \\"rkDOmH5RkgZGaQ5Fey09Z \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" +};" `; -exports[`modules case \`media-2\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 2, - " + "../../src/index.js?!./modules/tests-cases/composes-2/file.css", + "._3CxjkH18CkEkRZ4FO4v-NQ { + color: red; +} + +.G8VU3XI3HtOvZPlSEb9S3 { + color: blue; +} + +._10rrqoQ7Mb3ZcY6LixlnpR{ + c: d +} ", "", ], Array [ - 1, - "@media (max-width: 599px) { - .UbDEjEuweJXO7yHMpC8qp { - box-shadow: 0 0 4px #1F4F7F; - } -} + "./modules/tests-cases/composes-2/source.css", + "._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; } +._1TPNBQGz_snQ6aGvXARYo0 { b: 3; } +.rkDOmH5RkgZGaQ5Fey09Z { b: 5; } ", "", ], ] `; -exports[`modules case \`media-2\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`mode-switching\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`mode-switching\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\":local(.abc) {\\\\n composes: def1 from \\\\\\"./file1.css\\\\\\";\\\\n composes: def2 from \\\\\\"./file2.css\\\\\\";\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`mode-switching\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - ".c1 :local .c2 .c3 :global .c4 :local .c5, .c6 :local .c7 { background: red; } -.c8 { background: red; } + "./modules/tests-cases/composes-multiple/source.css", + ":local(.abc) { + composes: def1 from \\"./file1.css\\"; + composes: def2 from \\"./file2.css\\"; +} ", "", ], ] `; -exports[`modules case \`mode-switching\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`mode-switching\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`mode-switching\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "c2": "LgC5kpXZK3IOCPWWctF7f", - "c3": "_2ZTY7KJ2nkQND4VqlaSz9a", - "c5": "tEu6_PTqhxImp1tyYQTWz", - "c7": "FBEuAfqI8VKhU-w-9RNH", -} +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\"._1bAv4bLL8-hE3a7MyZXrT- {\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_1bAv4bLL8-hE3a7MyZXrT- \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def2\\"] + \\"\\" +};" `; -exports[`modules case \`mode-switching\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - ".c1 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .c6 .FBEuAfqI8VKhU-w-9RNH { background: red; } -.c8 { background: red; } + "../../src/index.js?!./modules/tests-cases/composes-multiple/file1.css", + "._3hEvHUTrMHercKPgTBsK6W { + color: red; +} ", "", ], -] -`; - -exports[`modules case \`mode-switching\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; - -exports[`modules case \`mode-switching\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; - -exports[`modules case \`mode-switching\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "c1": "_sSeqF3tTS8i-oJLOiW66", - "c2": "LgC5kpXZK3IOCPWWctF7f", - "c3": "_2ZTY7KJ2nkQND4VqlaSz9a", - "c5": "tEu6_PTqhxImp1tyYQTWz", - "c6": "sUDXsigYAAb8sNlOMs_Oc", - "c7": "FBEuAfqI8VKhU-w-9RNH", - "c8": "_1JUWq0LIxk9cx-H1cbqyAD", + Array [ + "../../src/index.js?!./modules/tests-cases/composes-multiple/file2.css", + "._1UYEX_kWsPgokwmdBHI8pU { + color: blue; } -`; - -exports[`modules case \`mode-switching\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` -Array [ +", + "", + ], Array [ - 1, - "._sSeqF3tTS8i-oJLOiW66 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .sUDXsigYAAb8sNlOMs_Oc .FBEuAfqI8VKhU-w-9RNH { background: red; } -._1JUWq0LIxk9cx-H1cbqyAD { background: red; } + "./modules/tests-cases/composes-multiple/source.css", + "._1bAv4bLL8-hE3a7MyZXrT- { +} ", "", ], ] `; -exports[`modules case \`mode-switching\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`mode-switching\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`mode-switching\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "c2": "_c2", - "c3": "_c3", - "c5": "_c5", - "c7": "_c7", -} +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\"._1bAv4bLL8-hE3a7MyZXrT- {\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_1bAv4bLL8-hE3a7MyZXrT- \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def2\\"] + \\"\\" +};" `; -exports[`modules case \`mode-switching\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - ".c1 ._c2 ._c3 .c4 ._c5, .c6 ._c7 { background: red; } -.c8 { background: red; } + "../../src/index.js?!./modules/tests-cases/composes-multiple/file1.css", + "._3hEvHUTrMHercKPgTBsK6W { + color: red; +} ", "", ], -] -`; - -exports[`modules case \`mode-switching\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; - -exports[`modules case \`mode-switching\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; - -exports[`modules case \`mode-switching\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "c1": "_c1", - "c2": "_c2", - "c3": "_c3", - "c5": "_c5", - "c6": "_c6", - "c7": "_c7", - "c8": "_c8", + Array [ + "../../src/index.js?!./modules/tests-cases/composes-multiple/file2.css", + "._1UYEX_kWsPgokwmdBHI8pU { + color: blue; } -`; - -exports[`modules case \`mode-switching\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` -Array [ +", + "", + ], Array [ - 1, - "._c1 ._c2 ._c3 .c4 ._c5, ._c6 ._c7 { background: red; } -._c8 { background: red; } + "./modules/tests-cases/composes-multiple/source.css", + "._1bAv4bLL8-hE3a7MyZXrT- { +} ", "", ], ] `; -exports[`modules case \`mode-switching\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`mode-switching\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`mode-switching\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "c1": "_sSeqF3tTS8i-oJLOiW66", - "c2": "LgC5kpXZK3IOCPWWctF7f", - "c3": "_2ZTY7KJ2nkQND4VqlaSz9a", - "c5": "tEu6_PTqhxImp1tyYQTWz", - "c6": "sUDXsigYAAb8sNlOMs_Oc", - "c7": "FBEuAfqI8VKhU-w-9RNH", - "c8": "_1JUWq0LIxk9cx-H1cbqyAD", -} +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_abc \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def2\\"] + \\"\\" +};" `; -exports[`modules case \`mode-switching\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - "._sSeqF3tTS8i-oJLOiW66 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .sUDXsigYAAb8sNlOMs_Oc .FBEuAfqI8VKhU-w-9RNH { background: red; } -._1JUWq0LIxk9cx-H1cbqyAD { background: red; } + "../../src/index.js?!./modules/tests-cases/composes-multiple/file1.css", + "._def1 { + color: red; +} ", "", ], -] -`; - -exports[`modules case \`mode-switching\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; - -exports[`modules case \`simple\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; - -exports[`modules case \`simple\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; - -exports[`modules case \`simple\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - ".a .b, .c .d, #id { - color: green; - font-size: 1.5pt; -} -a[href=\\"#b.c\\"].x.y { - color: green; - font-size: 1.5pt; + "../../src/index.js?!./modules/tests-cases/composes-multiple/file2.css", + "._def2 { + color: blue; } -@keyframes z { - 2.5% {color: green;} +", + "", + ], + Array [ + "./modules/tests-cases/composes-multiple/source.css", + "._abc { } ", "", @@ -3680,26 +4528,47 @@ a[href=\\"#b.c\\"].x.y { ] `; -exports[`modules case \`simple\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`simple\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`simple\` (\`modules\` value is \`global)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_abc \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def2\\"] + \\"\\" +};" +`; -exports[`modules case \`simple\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - ".a .b, .c .d, #id { - color: green; - font-size: 1.5pt; + "../../src/index.js?!./modules/tests-cases/composes-multiple/file1.css", + "._def1 { + color: red; } -a[href=\\"#b.c\\"].x.y { - color: green; - font-size: 1.5pt; +", + "", + ], + Array [ + "../../src/index.js?!./modules/tests-cases/composes-multiple/file2.css", + "._def2 { + color: blue; } -@keyframes z { - 2.5% {color: green;} +", + "", + ], + Array [ + "./modules/tests-cases/composes-multiple/source.css", + "._abc { } ", "", @@ -3707,37 +4576,47 @@ a[href=\\"#b.c\\"].x.y { ] `; -exports[`modules case \`simple\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`simple\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`simple\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "a": "_3Usq4DWpHHUfARGj76o2W1", - "b": "_2sE42PHfIbHjbGigpdA5M2", - "c": "_3JN7IxYrHx5fpD-QuNH8Vg", - "d": "_169FAY78xdP6MpwfqxWVlS", - "id": "_2w6DrNK6drHoI8na0s2YJu", - "x": "_3jqDKJEcQhMnSj5LXFzCMT", - "y": "_2CdavzdbxA-_uaXjgT2eG", - "z": "eawDxhAAUQ-HvrUhhwSML", -} +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\"._1bAv4bLL8-hE3a7MyZXrT- {\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_1bAv4bLL8-hE3a7MyZXrT- \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def2\\"] + \\"\\" +};" `; -exports[`modules case \`simple\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - "._3Usq4DWpHHUfARGj76o2W1 ._2sE42PHfIbHjbGigpdA5M2, ._3JN7IxYrHx5fpD-QuNH8Vg ._169FAY78xdP6MpwfqxWVlS, #_2w6DrNK6drHoI8na0s2YJu { - color: green; - font-size: 1.5pt; + "../../src/index.js?!./modules/tests-cases/composes-multiple/file1.css", + "._3hEvHUTrMHercKPgTBsK6W { + color: red; } -a[href=\\"#b.c\\"]._3jqDKJEcQhMnSj5LXFzCMT._2CdavzdbxA-_uaXjgT2eG { - color: green; - font-size: 1.5pt; +", + "", + ], + Array [ + "../../src/index.js?!./modules/tests-cases/composes-multiple/file2.css", + "._1UYEX_kWsPgokwmdBHI8pU { + color: blue; } -@keyframes eawDxhAAUQ-HvrUhhwSML { - 2.5% {color: green;} +", + "", + ], + Array [ + "./modules/tests-cases/composes-multiple/source.css", + "._1bAv4bLL8-hE3a7MyZXrT- { } ", "", @@ -3745,26 +4624,25 @@ a[href=\\"#b.c\\"]._3jqDKJEcQhMnSj5LXFzCMT._2CdavzdbxA-_uaXjgT2eG { ] `; -exports[`modules case \`simple\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`simple\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`simple\` (\`modules\` value is \`object with mode global)\`: locals 1`] = `undefined`; - -exports[`modules case \`simple\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\":local(.abc) {\\\\n composes: def from \\\\\\"./file.css\\\\\\";\\\\n}\\\\n\\", \\"\\"]); +" +`; + +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ Array [ - 1, - ".a .b, .c .d, #id { - color: green; - font-size: 1.5pt; -} -a[href=\\"#b.c\\"].x.y { - color: green; - font-size: 1.5pt; -} -@keyframes z { - 2.5% {color: green;} + "./modules/tests-cases/composes-with-importing/source.css", + ":local(.abc) { + composes: def from \\"./file.css\\"; } ", "", @@ -3772,37 +4650,37 @@ a[href=\\"#b.c\\"].x.y { ] `; -exports[`modules case \`simple\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`simple\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`simple\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "a": "_a", - "b": "_b", - "c": "_c", - "d": "_d", - "id": "_id", - "x": "_x", - "y": "_y", - "z": "_z", -} +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._3sT-Lzs6aj6TM9J3mM7_Cj {\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_3sT-Lzs6aj6TM9J3mM7_Cj \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" +};" `; -exports[`modules case \`simple\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "._a ._b, ._c ._d, #_id { - color: green; - font-size: 1.5pt; -} -a[href=\\"#b.c\\"]._x._y { - color: green; - font-size: 1.5pt; + "../../src/index.js?!./modules/tests-cases/composes-with-importing/file.css", + ".zu3DT3PNuTYdVravHX310 { + color: red; } -@keyframes _z { - 2.5% {color: green;} +", + "", + ], + Array [ + "./modules/tests-cases/composes-with-importing/source.css", + "._3sT-Lzs6aj6TM9J3mM7_Cj { } ", "", @@ -3810,37 +4688,37 @@ a[href=\\"#b.c\\"]._x._y { ] `; -exports[`modules case \`simple\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`simple\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`simple\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "a": "_3Usq4DWpHHUfARGj76o2W1", - "b": "_2sE42PHfIbHjbGigpdA5M2", - "c": "_3JN7IxYrHx5fpD-QuNH8Vg", - "d": "_169FAY78xdP6MpwfqxWVlS", - "id": "_2w6DrNK6drHoI8na0s2YJu", - "x": "_3jqDKJEcQhMnSj5LXFzCMT", - "y": "_2CdavzdbxA-_uaXjgT2eG", - "z": "eawDxhAAUQ-HvrUhhwSML", -} +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._3sT-Lzs6aj6TM9J3mM7_Cj {\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_3sT-Lzs6aj6TM9J3mM7_Cj \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" +};" `; -exports[`modules case \`simple\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - "._3Usq4DWpHHUfARGj76o2W1 ._2sE42PHfIbHjbGigpdA5M2, ._3JN7IxYrHx5fpD-QuNH8Vg ._169FAY78xdP6MpwfqxWVlS, #_2w6DrNK6drHoI8na0s2YJu { - color: green; - font-size: 1.5pt; -} -a[href=\\"#b.c\\"]._3jqDKJEcQhMnSj5LXFzCMT._2CdavzdbxA-_uaXjgT2eG { - color: green; - font-size: 1.5pt; + "../../src/index.js?!./modules/tests-cases/composes-with-importing/file.css", + ".zu3DT3PNuTYdVravHX310 { + color: red; } -@keyframes eawDxhAAUQ-HvrUhhwSML { - 2.5% {color: green;} +", + "", + ], + Array [ + "./modules/tests-cases/composes-with-importing/source.css", + "._3sT-Lzs6aj6TM9J3mM7_Cj { } ", "", @@ -3848,59 +4726,37 @@ a[href=\\"#b.c\\"]._3jqDKJEcQhMnSj5LXFzCMT._2CdavzdbxA-_uaXjgT2eG { ] `; -exports[`modules case \`simple\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`urls\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`urls\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_abc \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" +};" +`; -exports[`modules case \`urls\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - ".a { - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png#?iefix); - background: url(\\"#hash\\"); - background: url(\\"#\\"); - background: url(data:image/png;base64,AAA); - background: url(http://example.com/image.jpg); - background: url(//example.com/image.png); - background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; + "../../src/index.js?!./modules/tests-cases/composes-with-importing/file.css", + "._def { + color: red; } ", "", ], -] -`; - -exports[`modules case \`urls\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; - -exports[`modules case \`urls\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; - -exports[`modules case \`urls\` (\`modules\` value is \`global)\`: locals 1`] = `undefined`; - -exports[`modules case \`urls\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - ".a { - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png#?iefix); - background: url(\\"#hash\\"); - background: url(\\"#\\"); - background: url(data:image/png;base64,AAA); - background: url(http://example.com/image.jpg); - background: url(//example.com/image.png); - background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; + "./modules/tests-cases/composes-with-importing/source.css", + "._abc { } ", "", @@ -3908,63 +4764,37 @@ Array [ ] `; -exports[`modules case \`urls\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`urls\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`urls\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "a": "_1goi1QVFtUMjX82JoFfLLJ", -} +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_abc \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" +};" `; -exports[`modules case \`urls\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - "._1goi1QVFtUMjX82JoFfLLJ { - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png#?iefix); - background: url(\\"#hash\\"); - background: url(\\"#\\"); - background: url(data:image/png;base64,AAA); - background: url(http://example.com/image.jpg); - background: url(//example.com/image.png); - background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; + "../../src/index.js?!./modules/tests-cases/composes-with-importing/file.css", + "._def { + color: red; } ", "", ], -] -`; - -exports[`modules case \`urls\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; - -exports[`modules case \`urls\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; - -exports[`modules case \`urls\` (\`modules\` value is \`object with mode global)\`: locals 1`] = `undefined`; - -exports[`modules case \`urls\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - ".a { - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png#?iefix); - background: url(\\"#hash\\"); - background: url(\\"#\\"); - background: url(data:image/png;base64,AAA); - background: url(http://example.com/image.jpg); - background: url(//example.com/image.png); - background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; + "./modules/tests-cases/composes-with-importing/source.css", + "._abc { } ", "", @@ -3972,67 +4802,37 @@ Array [ ] `; -exports[`modules case \`urls\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`urls\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`urls\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "a": "_a", -} +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._3sT-Lzs6aj6TM9J3mM7_Cj {\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_3sT-Lzs6aj6TM9J3mM7_Cj \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" +};" `; -exports[`modules case \`urls\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - "._a { - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png#?iefix); - background: url(\\"#hash\\"); - background: url(\\"#\\"); - background: url(data:image/png;base64,AAA); - background: url(http://example.com/image.jpg); - background: url(//example.com/image.png); - background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; + "../../src/index.js?!./modules/tests-cases/composes-with-importing/file.css", + ".zu3DT3PNuTYdVravHX310 { + color: red; } ", "", ], -] -`; - -exports[`modules case \`urls\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; - -exports[`modules case \`urls\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; - -exports[`modules case \`urls\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "a": "_1goi1QVFtUMjX82JoFfLLJ", -} -`; - -exports[`modules case \`urls\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ Array [ - 1, - "._1goi1QVFtUMjX82JoFfLLJ { - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(\\"/webpack/public/path/img img.png\\"); - background: url(/webpack/public/path/img.png); - background: url(/webpack/public/path/img.png#?iefix); - background: url(\\"#hash\\"); - background: url(\\"#\\"); - background: url(data:image/png;base64,AAA); - background: url(http://example.com/image.jpg); - background: url(//example.com/image.png); - background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; + "./modules/tests-cases/composes-with-importing/source.css", + "._3sT-Lzs6aj6TM9J3mM7_Cj { } ", "", @@ -4040,24 +4840,27 @@ Array [ ] `; -exports[`modules case \`urls\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value blue: red;\\\\n\\\\n.a {\\\\n border: 1px solid blue;\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`values\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - "@value aaa: red; -@value bbb: green; -@value ccc: aaa; + "./modules/tests-cases/declaration-value/source.css", + "@value blue: red; .a { - background: aaa; - background: bbb; - background: ccc; + border: 1px solid blue; } ", "", @@ -4065,26 +4868,28 @@ Array [ ] `; -exports[`modules case \`values\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "aaa": "red", - "bbb": "green", - "ccc": "red", -} +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a {\\\\n border: 1px solid red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"blue\\": \\"red\\" +};" `; -exports[`modules case \`values\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, + "./modules/tests-cases/declaration-value/source.css", ".a { - background: red; - background: green; - background: red; + border: 1px solid red; } ", "", @@ -4092,27 +4897,29 @@ Array [ ] `; -exports[`modules case \`values\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "a": "_18yRHBx_s3xK1t_zOjEfo", - "aaa": "red", - "bbb": "green", - "ccc": "red", -} +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".rUmYXW8EUSiAHIrtvLLrL {\\\\n border: 1px solid red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"blue\\": \\"red\\", + \\"a\\": \\"rUmYXW8EUSiAHIrtvLLrL\\" +};" `; -exports[`modules case \`values\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - "._18yRHBx_s3xK1t_zOjEfo { - background: red; - background: green; - background: red; + "./modules/tests-cases/declaration-value/source.css", + ".rUmYXW8EUSiAHIrtvLLrL { + border: 1px solid red; } ", "", @@ -4120,26 +4927,28 @@ Array [ ] `; -exports[`modules case \`values\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "aaa": "red", - "bbb": "green", - "ccc": "red", -} +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a {\\\\n border: 1px solid red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"blue\\": \\"red\\" +};" `; -exports[`modules case \`values\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, + "./modules/tests-cases/declaration-value/source.css", ".a { - background: red; - background: green; - background: red; + border: 1px solid red; } ", "", @@ -4147,27 +4956,29 @@ Array [ ] `; -exports[`modules case \`values\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "a": "_a", - "aaa": "red", - "bbb": "green", - "ccc": "red", -} +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._a {\\\\n border: 1px solid red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"blue\\": \\"red\\", + \\"a\\": \\"_a\\" +};" `; -exports[`modules case \`values\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, + "./modules/tests-cases/declaration-value/source.css", "._a { - background: red; - background: green; - background: red; + border: 1px solid red; } ", "", @@ -4175,27 +4986,29 @@ Array [ ] `; -exports[`modules case \`values\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`values\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "a": "_18yRHBx_s3xK1t_zOjEfo", - "aaa": "red", - "bbb": "green", - "ccc": "red", -} +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".rUmYXW8EUSiAHIrtvLLrL {\\\\n border: 1px solid red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"blue\\": \\"red\\", + \\"a\\": \\"rUmYXW8EUSiAHIrtvLLrL\\" +};" `; -exports[`modules case \`values\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - "._18yRHBx_s3xK1t_zOjEfo { - background: red; - background: green; - background: red; + "./modules/tests-cases/declaration-value/source.css", + ".rUmYXW8EUSiAHIrtvLLrL { + border: 1px solid red; } ", "", @@ -4203,1109 +5016,1477 @@ Array [ ] `; -exports[`modules case \`values\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`values-1\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - "@value def: red; -@value ghi: 1px solid black; + "./modules/tests-cases/issue-589/source.css", + "body:before { + content: ''; + background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); +} ", "", ], ] `; -exports[`modules case \`values-1\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "1px solid black", -} +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-1\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - " + "./modules/tests-cases/issue-589/source.css", + "body:before { + content: ''; + background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); +} ", "", ], ] `; -exports[`modules case \`values-1\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "1px solid black", -} +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-1\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - " + "./modules/tests-cases/issue-589/source.css", + "body:before { + content: ''; + background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); +} ", "", ], ] `; -exports[`modules case \`values-1\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "1px solid black", -} +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-1\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - " + "./modules/tests-cases/issue-589/source.css", + "body:before { + content: ''; + background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); +} ", "", ], ] `; -exports[`modules case \`values-1\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "1px solid black", -} +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-1\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - " + "./modules/tests-cases/issue-589/source.css", + "body:before { + content: ''; + background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); +} ", "", ], ] `; -exports[`modules case \`values-1\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`values-1\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "1px solid black", -} +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-1\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - " + "./modules/tests-cases/issue-589/source.css", + "body:before { + content: ''; + background: url(/webpack/public/path/5b1f36bc41ab31f5b801d48ba1d65781.png); +} ", "", ], ] `; -exports[`modules case \`values-1\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`issue-589\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-2\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`values-2\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes bounce {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes bounce2 {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n.bounce {\\\\n\\\\tanimation-name: bounce;\\\\n\\\\tanimation: bounce2 1s ease;\\\\n}\\\\n\\\\n.bounce2 {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: bounce 1s ease;\\\\n\\\\tanimation-name: bounce2;\\\\n}\\\\n\\\\n.bounce3 {\\\\n\\\\tanimation: bounce 1s ease, bounce2\\\\n}\\\\n\\\\n.bounce4 {\\\\n\\\\tanimation: bounce 1s ease, bounce2;\\\\n}\\\\n\\\\n.b {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`values-2\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - "@value def: red; -.ghi { color: def; } -", - "", - ], -] -`; + "./modules/tests-cases/keyframes-and-animation/source.css", + ".a { + color: green; +} + +@keyframes bounce { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} + +@-webkit-keyframes bounce2 { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} -exports[`modules case \`values-2\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +.bounce { + animation-name: bounce; + animation: bounce2 1s ease; +} -exports[`modules case \`values-2\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +.bounce2 { + color: green; + animation: bounce 1s ease; + animation-name: bounce2; +} -exports[`modules case \`values-2\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "def": "red", +.bounce3 { + animation: bounce 1s ease, bounce2 } -`; -exports[`modules case \`values-2\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".ghi { color: red; } +.bounce4 { + animation: bounce 1s ease, bounce2; +} + +.b { + color: green; +} ", "", ], ] `; -exports[`modules case \`values-2\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-2\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-2\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "_2aKAT4pAinaabqEIFgdhTC", -} +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes bounce {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes bounce2 {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n.bounce {\\\\n\\\\tanimation-name: bounce;\\\\n\\\\tanimation: bounce2 1s ease;\\\\n}\\\\n\\\\n.bounce2 {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: bounce 1s ease;\\\\n\\\\tanimation-name: bounce2;\\\\n}\\\\n\\\\n.bounce3 {\\\\n\\\\tanimation: bounce 1s ease, bounce2\\\\n}\\\\n\\\\n.bounce4 {\\\\n\\\\tanimation: bounce 1s ease, bounce2;\\\\n}\\\\n\\\\n.b {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-2\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "._2aKAT4pAinaabqEIFgdhTC { color: red; } -", - "", - ], -] -`; + "./modules/tests-cases/keyframes-and-animation/source.css", + ".a { + color: green; +} + +@keyframes bounce { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} + +@-webkit-keyframes bounce2 { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} + +.bounce { + animation-name: bounce; + animation: bounce2 1s ease; +} -exports[`modules case \`values-2\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +.bounce2 { + color: green; + animation: bounce 1s ease; + animation-name: bounce2; +} -exports[`modules case \`values-2\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +.bounce3 { + animation: bounce 1s ease, bounce2 +} -exports[`modules case \`values-2\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "def": "red", +.bounce4 { + animation: bounce 1s ease, bounce2; } -`; -exports[`modules case \`values-2\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".ghi { color: red; } +.b { + color: green; +} ", "", ], ] `; -exports[`modules case \`values-2\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-2\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-2\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "_ghi", -} +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1AzRoWem1zBzZ9hLlF5IJC {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes _355y8MvF-ilfLoMa6xQMuq {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes _20oF72x8NQuWNrNLEjvczE {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n._355y8MvF-ilfLoMa6xQMuq {\\\\n\\\\tanimation-name: _355y8MvF-ilfLoMa6xQMuq;\\\\n\\\\tanimation: _20oF72x8NQuWNrNLEjvczE 1s ease;\\\\n}\\\\n\\\\n._20oF72x8NQuWNrNLEjvczE {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease;\\\\n\\\\tanimation-name: _20oF72x8NQuWNrNLEjvczE;\\\\n}\\\\n\\\\n._3OQHSo2d42CWSR-npTXaic {\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE\\\\n}\\\\n\\\\n._3bL1lmhMKE-Qlk83VSMCHN {\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE;\\\\n}\\\\n\\\\n._1eH5GHM6EfKYOklEd2mhle {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"_1AzRoWem1zBzZ9hLlF5IJC\\", + \\"bounce\\": \\"_355y8MvF-ilfLoMa6xQMuq\\", + \\"bounce2\\": \\"_20oF72x8NQuWNrNLEjvczE\\", + \\"bounce3\\": \\"_3OQHSo2d42CWSR-npTXaic\\", + \\"bounce4\\": \\"_3bL1lmhMKE-Qlk83VSMCHN\\", + \\"b\\": \\"_1eH5GHM6EfKYOklEd2mhle\\" +};" `; -exports[`modules case \`values-2\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - "._ghi { color: red; } -", - "", - ], -] -`; + "./modules/tests-cases/keyframes-and-animation/source.css", + "._1AzRoWem1zBzZ9hLlF5IJC { + color: green; +} + +@keyframes _355y8MvF-ilfLoMa6xQMuq { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} + +@-webkit-keyframes _20oF72x8NQuWNrNLEjvczE { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} + +._355y8MvF-ilfLoMa6xQMuq { + animation-name: _355y8MvF-ilfLoMa6xQMuq; + animation: _20oF72x8NQuWNrNLEjvczE 1s ease; +} -exports[`modules case \`values-2\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +._20oF72x8NQuWNrNLEjvczE { + color: green; + animation: _355y8MvF-ilfLoMa6xQMuq 1s ease; + animation-name: _20oF72x8NQuWNrNLEjvczE; +} -exports[`modules case \`values-2\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +._3OQHSo2d42CWSR-npTXaic { + animation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE +} -exports[`modules case \`values-2\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "_2aKAT4pAinaabqEIFgdhTC", +._3bL1lmhMKE-Qlk83VSMCHN { + animation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE; } -`; -exports[`modules case \`values-2\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._2aKAT4pAinaabqEIFgdhTC { color: red; } +._1eH5GHM6EfKYOklEd2mhle { + color: green; +} ", "", ], ] `; -exports[`modules case \`values-2\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-3\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-3\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes bounce {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes bounce2 {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n.bounce {\\\\n\\\\tanimation-name: bounce;\\\\n\\\\tanimation: bounce2 1s ease;\\\\n}\\\\n\\\\n.bounce2 {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: bounce 1s ease;\\\\n\\\\tanimation-name: bounce2;\\\\n}\\\\n\\\\n.bounce3 {\\\\n\\\\tanimation: bounce 1s ease, bounce2\\\\n}\\\\n\\\\n.bounce4 {\\\\n\\\\tanimation: bounce 1s ease, bounce2;\\\\n}\\\\n\\\\n.b {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`values-3\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - "@value def from './file.css'; -.ghi { color: def; } -", - "", - ], -] -`; + "./modules/tests-cases/keyframes-and-animation/source.css", + ".a { + color: green; +} + +@keyframes bounce { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} + +@-webkit-keyframes bounce2 { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} + +.bounce { + animation-name: bounce; + animation: bounce2 1s ease; +} -exports[`modules case \`values-3\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +.bounce2 { + color: green; + animation: bounce 1s ease; + animation-name: bounce2; +} -exports[`modules case \`values-3\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +.bounce3 { + animation: bounce 1s ease, bounce2 +} -exports[`modules case \`values-3\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "def": "red", +.bounce4 { + animation: bounce 1s ease, bounce2; } -`; -exports[`modules case \`values-3\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - " -", - "", - ], - Array [ - 1, - ".ghi { color: red; } +.b { + color: green; +} ", "", ], ] `; -exports[`modules case \`values-3\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-3\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-3\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "_29ART3-NNe4DU1X-5_7419", -} +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._a {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes _bounce {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes _bounce2 {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n._bounce {\\\\n\\\\tanimation-name: _bounce;\\\\n\\\\tanimation: _bounce2 1s ease;\\\\n}\\\\n\\\\n._bounce2 {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _bounce 1s ease;\\\\n\\\\tanimation-name: _bounce2;\\\\n}\\\\n\\\\n._bounce3 {\\\\n\\\\tanimation: _bounce 1s ease, _bounce2\\\\n}\\\\n\\\\n._bounce4 {\\\\n\\\\tanimation: _bounce 1s ease, _bounce2;\\\\n}\\\\n\\\\n._b {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"_a\\", + \\"bounce\\": \\"_bounce\\", + \\"bounce2\\": \\"_bounce2\\", + \\"bounce3\\": \\"_bounce3\\", + \\"bounce4\\": \\"_bounce4\\", + \\"b\\": \\"_b\\" +};" `; -exports[`modules case \`values-3\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._29ART3-NNe4DU1X-5_7419 { color: red; } -", - "", - ], -] -`; + "./modules/tests-cases/keyframes-and-animation/source.css", + "._a { + color: green; +} + +@keyframes _bounce { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} + +@-webkit-keyframes _bounce2 { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} + +._bounce { + animation-name: _bounce; + animation: _bounce2 1s ease; +} -exports[`modules case \`values-3\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +._bounce2 { + color: green; + animation: _bounce 1s ease; + animation-name: _bounce2; +} -exports[`modules case \`values-3\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +._bounce3 { + animation: _bounce 1s ease, _bounce2 +} -exports[`modules case \`values-3\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "def": "red", +._bounce4 { + animation: _bounce 1s ease, _bounce2; } -`; -exports[`modules case \`values-3\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - " -", - "", - ], - Array [ - 1, - ".ghi { color: red; } +._b { + color: green; +} ", "", ], ] `; -exports[`modules case \`values-3\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-3\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`values-3\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "_ghi", -} +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1AzRoWem1zBzZ9hLlF5IJC {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes _355y8MvF-ilfLoMa6xQMuq {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes _20oF72x8NQuWNrNLEjvczE {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n._355y8MvF-ilfLoMa6xQMuq {\\\\n\\\\tanimation-name: _355y8MvF-ilfLoMa6xQMuq;\\\\n\\\\tanimation: _20oF72x8NQuWNrNLEjvczE 1s ease;\\\\n}\\\\n\\\\n._20oF72x8NQuWNrNLEjvczE {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease;\\\\n\\\\tanimation-name: _20oF72x8NQuWNrNLEjvczE;\\\\n}\\\\n\\\\n._3OQHSo2d42CWSR-npTXaic {\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE\\\\n}\\\\n\\\\n._3bL1lmhMKE-Qlk83VSMCHN {\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE;\\\\n}\\\\n\\\\n._1eH5GHM6EfKYOklEd2mhle {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"_1AzRoWem1zBzZ9hLlF5IJC\\", + \\"bounce\\": \\"_355y8MvF-ilfLoMa6xQMuq\\", + \\"bounce2\\": \\"_20oF72x8NQuWNrNLEjvczE\\", + \\"bounce3\\": \\"_3OQHSo2d42CWSR-npTXaic\\", + \\"bounce4\\": \\"_3bL1lmhMKE-Qlk83VSMCHN\\", + \\"b\\": \\"_1eH5GHM6EfKYOklEd2mhle\\" +};" `; -exports[`modules case \`values-3\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._ghi { color: red; } -", - "", - ], -] -`; + "./modules/tests-cases/keyframes-and-animation/source.css", + "._1AzRoWem1zBzZ9hLlF5IJC { + color: green; +} + +@keyframes _355y8MvF-ilfLoMa6xQMuq { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} -exports[`modules case \`values-3\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +@-webkit-keyframes _20oF72x8NQuWNrNLEjvczE { + 0% { + transform: translateY(-100%); + opacity: 0; + } + 5% { + transform: translateY(-100%); + opacity: 0; + } +} + +._355y8MvF-ilfLoMa6xQMuq { + animation-name: _355y8MvF-ilfLoMa6xQMuq; + animation: _20oF72x8NQuWNrNLEjvczE 1s ease; +} -exports[`modules case \`values-3\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +._20oF72x8NQuWNrNLEjvczE { + color: green; + animation: _355y8MvF-ilfLoMa6xQMuq 1s ease; + animation-name: _20oF72x8NQuWNrNLEjvczE; +} -exports[`modules case \`values-3\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "def": "red", - "ghi": "_29ART3-NNe4DU1X-5_7419", +._3OQHSo2d42CWSR-npTXaic { + animation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE } -`; -exports[`modules case \`values-3\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._29ART3-NNe4DU1X-5_7419 { color: red; } +._3bL1lmhMKE-Qlk83VSMCHN { + animation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE; +} + +._1eH5GHM6EfKYOklEd2mhle { + color: green; +} ", "", ], ] `; -exports[`modules case \`values-3\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-4\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`values-4\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: a;\\\\n}\\\\n\\\\n@keyframes b {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.b {\\\\n\\\\tanimation: b;\\\\n}\\\\n\\\\n@keyframes :global(c) {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.c {\\\\n\\\\tanimation: c1;\\\\n\\\\tanimation: c2, c3, c4;\\\\n}\\\\n\\\\n@keyframes :global(d) {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n:global .d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n:global(.d2) {\\\\n\\\\tanimation: d2;\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`values-4\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - "@value def as aaa from './file1.css'; -@value def as bbb from './file2.css'; -.ghi { background: aaa, bbb, def; } -", - "", - ], -] -`; + "./modules/tests-cases/leak-scope/source.css", + ".a { + color: green; + animation: a; +} + +@keyframes b { + 0% { left: 10px; } + 100% { left: 20px; } +} + +.b { + animation: b; +} + +@keyframes :global(c) { + 0% { left: 10px; } + 100% { left: 20px; } +} -exports[`modules case \`values-4\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +.c { + animation: c1; + animation: c2, c3, c4; +} -exports[`modules case \`values-4\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +@keyframes :global(d) { + 0% { left: 10px; } + 100% { left: 20px; } +} -exports[`modules case \`values-4\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "aaa": "red", - "bbb": "green", +:global .d1 { + animation: d1; + animation: d2, d3, d4; } -`; -exports[`modules case \`values-4\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - " -", - "", - ], - Array [ - 3, - " -", - "", - ], - Array [ - 1, - ".ghi { background: red, green, def; } +:global(.d2) { + animation: d2; +} ", "", ], ] `; -exports[`modules case \`values-4\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-4\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-4\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "aaa": "red", - "bbb": "green", - "ghi": "_1vGjNPdz_qWrUvzTY2pCsS", -} +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: a;\\\\n}\\\\n\\\\n@keyframes b {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.b {\\\\n\\\\tanimation: b;\\\\n}\\\\n\\\\n@keyframes c {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.c {\\\\n\\\\tanimation: c1;\\\\n\\\\tanimation: c2, c3, c4;\\\\n}\\\\n\\\\n@keyframes d {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n.d2 {\\\\n\\\\tanimation: d2;\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-4\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 3, - " -", - "", - ], - Array [ - 1, - "._1vGjNPdz_qWrUvzTY2pCsS { background: red, green, def; } -", - "", - ], -] -`; + "./modules/tests-cases/leak-scope/source.css", + ".a { + color: green; + animation: a; +} + +@keyframes b { + 0% { left: 10px; } + 100% { left: 20px; } +} + +.b { + animation: b; +} -exports[`modules case \`values-4\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +@keyframes c { + 0% { left: 10px; } + 100% { left: 20px; } +} -exports[`modules case \`values-4\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +.c { + animation: c1; + animation: c2, c3, c4; +} -exports[`modules case \`values-4\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "aaa": "red", - "bbb": "green", +@keyframes d { + 0% { left: 10px; } + 100% { left: 20px; } } -`; -exports[`modules case \`values-4\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - " -", - "", - ], - Array [ - 3, - " -", - "", - ], - Array [ - 1, - ".ghi { background: red, green, def; } +.d1 { + animation: d1; + animation: d2, d3, d4; +} + +.d2 { + animation: d2; +} ", "", ], ] `; -exports[`modules case \`values-4\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-4\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-4\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "aaa": "red", - "bbb": "green", - "ghi": "_ghi", -} +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1OjK2G7L6Ypn9Qqa8lly-H {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _1OjK2G7L6Ypn9Qqa8lly-H;\\\\n}\\\\n\\\\n@keyframes _2cTRWn5QG4xtPeFL2wrKvv {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._2cTRWn5QG4xtPeFL2wrKvv {\\\\n\\\\tanimation: _2cTRWn5QG4xtPeFL2wrKvv;\\\\n}\\\\n\\\\n@keyframes c {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._3MHGI9_Tl4A_kJUxXx1q2j {\\\\n\\\\tanimation: _1PQ8UpcdVbFbAcYs6wdRXj;\\\\n\\\\tanimation: _3JhTjOsNov-pQXnd3o0JJ, _9skQ6KRXi6qCorV5zNSyV, _1Gh6Pqr28qXCExbnssOGX9;\\\\n}\\\\n\\\\n@keyframes d {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n.d2 {\\\\n\\\\tanimation: _35GAwk8Rb2LyIN0pSAXjyy;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"_1OjK2G7L6Ypn9Qqa8lly-H\\", + \\"b\\": \\"_2cTRWn5QG4xtPeFL2wrKvv\\", + \\"c\\": \\"_3MHGI9_Tl4A_kJUxXx1q2j\\", + \\"c1\\": \\"_1PQ8UpcdVbFbAcYs6wdRXj\\", + \\"c2\\": \\"_3JhTjOsNov-pQXnd3o0JJ\\", + \\"c3\\": \\"_9skQ6KRXi6qCorV5zNSyV\\", + \\"c4\\": \\"_1Gh6Pqr28qXCExbnssOGX9\\", + \\"d2\\": \\"_35GAwk8Rb2LyIN0pSAXjyy\\" +};" `; -exports[`modules case \`values-4\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 3, - " -", - "", - ], - Array [ - 1, - "._ghi { background: red, green, def; } -", - "", - ], -] -`; + "./modules/tests-cases/leak-scope/source.css", + "._1OjK2G7L6Ypn9Qqa8lly-H { + color: green; + animation: _1OjK2G7L6Ypn9Qqa8lly-H; +} + +@keyframes _2cTRWn5QG4xtPeFL2wrKvv { + 0% { left: 10px; } + 100% { left: 20px; } +} -exports[`modules case \`values-4\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +._2cTRWn5QG4xtPeFL2wrKvv { + animation: _2cTRWn5QG4xtPeFL2wrKvv; +} -exports[`modules case \`values-4\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +@keyframes c { + 0% { left: 10px; } + 100% { left: 20px; } +} -exports[`modules case \`values-4\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "aaa": "red", - "bbb": "green", - "ghi": "_1vGjNPdz_qWrUvzTY2pCsS", +._3MHGI9_Tl4A_kJUxXx1q2j { + animation: _1PQ8UpcdVbFbAcYs6wdRXj; + animation: _3JhTjOsNov-pQXnd3o0JJ, _9skQ6KRXi6qCorV5zNSyV, _1Gh6Pqr28qXCExbnssOGX9; } -`; -exports[`modules case \`values-4\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - " -", - "", - ], - Array [ - 3, - " -", - "", - ], - Array [ - 1, - "._1vGjNPdz_qWrUvzTY2pCsS { background: red, green, def; } +@keyframes d { + 0% { left: 10px; } + 100% { left: 20px; } +} + +.d1 { + animation: d1; + animation: d2, d3, d4; +} + +.d2 { + animation: _35GAwk8Rb2LyIN0pSAXjyy; +} ", "", ], ] `; -exports[`modules case \`values-4\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-5\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-5\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: a;\\\\n}\\\\n\\\\n@keyframes b {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.b {\\\\n\\\\tanimation: b;\\\\n}\\\\n\\\\n@keyframes c {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.c {\\\\n\\\\tanimation: c1;\\\\n\\\\tanimation: c2, c3, c4;\\\\n}\\\\n\\\\n@keyframes d {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n.d2 {\\\\n\\\\tanimation: d2;\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules case \`values-5\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - "@value color from './file1.css'; -@value shadow: 0 0 color,0 0 color; -.ghi { box-shadow: shadow; } -", - "", - ], -] -`; + "./modules/tests-cases/leak-scope/source.css", + ".a { + color: green; + animation: a; +} + +@keyframes b { + 0% { left: 10px; } + 100% { left: 20px; } +} + +.b { + animation: b; +} -exports[`modules case \`values-5\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +@keyframes c { + 0% { left: 10px; } + 100% { left: 20px; } +} -exports[`modules case \`values-5\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +.c { + animation: c1; + animation: c2, c3, c4; +} -exports[`modules case \`values-5\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "color": "red", - "shadow": "0 0 red,0 0 red", +@keyframes d { + 0% { left: 10px; } + 100% { left: 20px; } } -`; -exports[`modules case \`values-5\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - " -", - "", - ], - Array [ - 1, - ".ghi { box-shadow: 0 0 red,0 0 red; } +.d1 { + animation: d1; + animation: d2, d3, d4; +} + +.d2 { + animation: d2; +} ", "", ], ] `; -exports[`modules case \`values-5\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-5\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-5\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "color": "red", - "ghi": "_3Uw-A6Tr2LkIED6NTqwFvj", - "shadow": "0 0 red,0 0 red", -} +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._a {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _a;\\\\n}\\\\n\\\\n@keyframes _b {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._b {\\\\n\\\\tanimation: _b;\\\\n}\\\\n\\\\n@keyframes c {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._c {\\\\n\\\\tanimation: _c1;\\\\n\\\\tanimation: _c2, _c3, _c4;\\\\n}\\\\n\\\\n@keyframes d {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n.d2 {\\\\n\\\\tanimation: _d2;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"_a\\", + \\"b\\": \\"_b\\", + \\"c\\": \\"_c\\", + \\"c1\\": \\"_c1\\", + \\"c2\\": \\"_c2\\", + \\"c3\\": \\"_c3\\", + \\"c4\\": \\"_c4\\", + \\"d2\\": \\"_d2\\" +};" `; -exports[`modules case \`values-5\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._3Uw-A6Tr2LkIED6NTqwFvj { box-shadow: 0 0 red,0 0 red; } -", - "", - ], -] -`; + "./modules/tests-cases/leak-scope/source.css", + "._a { + color: green; + animation: _a; +} -exports[`modules case \`values-5\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +@keyframes _b { + 0% { left: 10px; } + 100% { left: 20px; } +} -exports[`modules case \`values-5\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +._b { + animation: _b; +} -exports[`modules case \`values-5\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "color": "red", - "shadow": "0 0 red,0 0 red", +@keyframes c { + 0% { left: 10px; } + 100% { left: 20px; } } -`; -exports[`modules case \`values-5\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` -Array [ - Array [ - 2, - " -", - "", - ], - Array [ - 1, - ".ghi { box-shadow: 0 0 red,0 0 red; } +._c { + animation: _c1; + animation: _c2, _c3, _c4; +} + +@keyframes d { + 0% { left: 10px; } + 100% { left: 20px; } +} + +.d1 { + animation: d1; + animation: d2, d3, d4; +} + +.d2 { + animation: _d2; +} ", "", ], ] `; -exports[`modules case \`values-5\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-5\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`values-5\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "color": "red", - "ghi": "_ghi", - "shadow": "0 0 red,0 0 red", -} +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1OjK2G7L6Ypn9Qqa8lly-H {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _1OjK2G7L6Ypn9Qqa8lly-H;\\\\n}\\\\n\\\\n@keyframes _2cTRWn5QG4xtPeFL2wrKvv {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._2cTRWn5QG4xtPeFL2wrKvv {\\\\n\\\\tanimation: _2cTRWn5QG4xtPeFL2wrKvv;\\\\n}\\\\n\\\\n@keyframes c {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._3MHGI9_Tl4A_kJUxXx1q2j {\\\\n\\\\tanimation: _1PQ8UpcdVbFbAcYs6wdRXj;\\\\n\\\\tanimation: _3JhTjOsNov-pQXnd3o0JJ, _9skQ6KRXi6qCorV5zNSyV, _1Gh6Pqr28qXCExbnssOGX9;\\\\n}\\\\n\\\\n@keyframes d {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n.d2 {\\\\n\\\\tanimation: _35GAwk8Rb2LyIN0pSAXjyy;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"_1OjK2G7L6Ypn9Qqa8lly-H\\", + \\"b\\": \\"_2cTRWn5QG4xtPeFL2wrKvv\\", + \\"c\\": \\"_3MHGI9_Tl4A_kJUxXx1q2j\\", + \\"c1\\": \\"_1PQ8UpcdVbFbAcYs6wdRXj\\", + \\"c2\\": \\"_3JhTjOsNov-pQXnd3o0JJ\\", + \\"c3\\": \\"_9skQ6KRXi6qCorV5zNSyV\\", + \\"c4\\": \\"_1Gh6Pqr28qXCExbnssOGX9\\", + \\"d2\\": \\"_35GAwk8Rb2LyIN0pSAXjyy\\" +};" `; -exports[`modules case \`values-5\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._ghi { box-shadow: 0 0 red,0 0 red; } + "./modules/tests-cases/leak-scope/source.css", + "._1OjK2G7L6Ypn9Qqa8lly-H { + color: green; + animation: _1OjK2G7L6Ypn9Qqa8lly-H; +} + +@keyframes _2cTRWn5QG4xtPeFL2wrKvv { + 0% { left: 10px; } + 100% { left: 20px; } +} + +._2cTRWn5QG4xtPeFL2wrKvv { + animation: _2cTRWn5QG4xtPeFL2wrKvv; +} + +@keyframes c { + 0% { left: 10px; } + 100% { left: 20px; } +} + +._3MHGI9_Tl4A_kJUxXx1q2j { + animation: _1PQ8UpcdVbFbAcYs6wdRXj; + animation: _3JhTjOsNov-pQXnd3o0JJ, _9skQ6KRXi6qCorV5zNSyV, _1Gh6Pqr28qXCExbnssOGX9; +} + +@keyframes d { + 0% { left: 10px; } + 100% { left: 20px; } +} + +.d1 { + animation: d1; + animation: d2, d3, d4; +} + +.d2 { + animation: _35GAwk8Rb2LyIN0pSAXjyy; +} ", "", ], ] `; -exports[`modules case \`values-5\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-5\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`values-5\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "color": "red", - "ghi": "_3Uw-A6Tr2LkIED6NTqwFvj", - "shadow": "0 0 red,0 0 red", -} +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".abc :local(.def) {\\\\n color: red;\\\\n}\\\\n\\\\n:local .ghi .jkl {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-5\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._3Uw-A6Tr2LkIED6NTqwFvj { box-shadow: 0 0 red,0 0 red; } + "./modules/tests-cases/local/source.css", + ".abc :local(.def) { + color: red; +} + +:local .ghi .jkl { + color: blue; +} ", "", ], ] `; -exports[`modules case \`values-5\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".abc ._1UnGDcMVVYIU_547CDqQJU {\\\\n color: red;\\\\n}\\\\n\\\\n._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"_1UnGDcMVVYIU_547CDqQJU\\", + \\"ghi\\": \\"_1k8c5svlAtK4vFkSsZdl4o\\", + \\"jkl\\": \\"pRQR9FSSkxNL6roex-uGp\\" +};" +`; -exports[`modules case \`values-6\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "@value color from './file1.css'; -@value shadow: 0 0 color ,0 0 color; -.ghi { box-shadow: shadow; } + "./modules/tests-cases/local/source.css", + ".abc ._1UnGDcMVVYIU_547CDqQJU { + color: red; +} + +._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp { + color: blue; +} ", "", ], ] `; -exports[`modules case \`values-6\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "color": "red", - "shadow": "0 0 red ,0 0 red", -} +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._2EPIUiYqPKxP0HS9Vgqa8e ._1UnGDcMVVYIU_547CDqQJU {\\\\n color: red;\\\\n}\\\\n\\\\n._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_2EPIUiYqPKxP0HS9Vgqa8e\\", + \\"def\\": \\"_1UnGDcMVVYIU_547CDqQJU\\", + \\"ghi\\": \\"_1k8c5svlAtK4vFkSsZdl4o\\", + \\"jkl\\": \\"pRQR9FSSkxNL6roex-uGp\\" +};" `; -exports[`modules case \`values-6\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - ".ghi { box-shadow: 0 0 red ,0 0 red; } + "./modules/tests-cases/local/source.css", + "._2EPIUiYqPKxP0HS9Vgqa8e ._1UnGDcMVVYIU_547CDqQJU { + color: red; +} + +._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp { + color: blue; +} ", "", ], ] `; -exports[`modules case \`values-6\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "color": "red", - "ghi": "_2qKjolC-wu9Dp8-RCkWiLN", - "shadow": "0 0 red ,0 0 red", -} +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".abc ._def {\\\\n color: red;\\\\n}\\\\n\\\\n._ghi ._jkl {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"_def\\", + \\"ghi\\": \\"_ghi\\", + \\"jkl\\": \\"_jkl\\" +};" `; -exports[`modules case \`values-6\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._2qKjolC-wu9Dp8-RCkWiLN { box-shadow: 0 0 red ,0 0 red; } + "./modules/tests-cases/local/source.css", + ".abc ._def { + color: red; +} + +._ghi ._jkl { + color: blue; +} ", "", ], ] `; -exports[`modules case \`values-6\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "color": "red", - "shadow": "0 0 red ,0 0 red", -} +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._abc ._def {\\\\n color: red;\\\\n}\\\\n\\\\n._ghi ._jkl {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_abc\\", + \\"def\\": \\"_def\\", + \\"ghi\\": \\"_ghi\\", + \\"jkl\\": \\"_jkl\\" +};" `; -exports[`modules case \`values-6\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - ".ghi { box-shadow: 0 0 red ,0 0 red; } + "./modules/tests-cases/local/source.css", + "._abc ._def { + color: red; +} + +._ghi ._jkl { + color: blue; +} ", "", ], ] `; -exports[`modules case \`values-6\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "color": "red", - "ghi": "_ghi", - "shadow": "0 0 red ,0 0 red", -} +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._2EPIUiYqPKxP0HS9Vgqa8e ._1UnGDcMVVYIU_547CDqQJU {\\\\n color: red;\\\\n}\\\\n\\\\n._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_2EPIUiYqPKxP0HS9Vgqa8e\\", + \\"def\\": \\"_1UnGDcMVVYIU_547CDqQJU\\", + \\"ghi\\": \\"_1k8c5svlAtK4vFkSsZdl4o\\", + \\"jkl\\": \\"pRQR9FSSkxNL6roex-uGp\\" +};" `; -exports[`modules case \`values-6\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._ghi { box-shadow: 0 0 red ,0 0 red; } + "./modules/tests-cases/local/source.css", + "._2EPIUiYqPKxP0HS9Vgqa8e ._1UnGDcMVVYIU_547CDqQJU { + color: red; +} + +._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp { + color: blue; +} ", "", ], ] `; -exports[`modules case \`values-6\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`values-6\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "color": "red", - "ghi": "_2qKjolC-wu9Dp8-RCkWiLN", - "shadow": "0 0 red ,0 0 red", -} +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\":local(.className) { background: red; }\\\\n:local(#someId) { background: green; }\\\\n:local(.className .subClass) { color: green; }\\\\n:local(#someId .subClass) { color: blue; }\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-6\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._2qKjolC-wu9Dp8-RCkWiLN { box-shadow: 0 0 red ,0 0 red; } + "./modules/tests-cases/local-2/source.css", + ":local(.className) { background: red; } +:local(#someId) { background: green; } +:local(.className .subClass) { color: green; } +:local(#someId .subClass) { color: blue; } ", "", ], ] `; -exports[`modules case \`values-6\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".PTH0TZDPxpREaV5cxtahd { background: red; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A { background: green; }\\\\n.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"className\\": \\"PTH0TZDPxpREaV5cxtahd\\", + \\"someId\\": \\"_1XQl0Np_jYcDGudXKxmL8A\\", + \\"subClass\\": \\"_2MrzTmc8jtF-E5FfuMPQie\\" +};" +`; -exports[`modules case \`values-7\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "@value color from './file1.css'; -@value shadow: 0 0 color, 0 0 color; -.ghi { box-shadow: shadow; } + "./modules/tests-cases/local-2/source.css", + ".PTH0TZDPxpREaV5cxtahd { background: red; } +#_1XQl0Np_jYcDGudXKxmL8A { background: green; } +.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; } +#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; } ", "", ], ] `; -exports[`modules case \`values-7\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "color": "red", - "shadow": "0 0 red, 0 0 red", -} +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".PTH0TZDPxpREaV5cxtahd { background: red; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A { background: green; }\\\\n.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"className\\": \\"PTH0TZDPxpREaV5cxtahd\\", + \\"someId\\": \\"_1XQl0Np_jYcDGudXKxmL8A\\", + \\"subClass\\": \\"_2MrzTmc8jtF-E5FfuMPQie\\" +};" `; -exports[`modules case \`values-7\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - ".ghi { box-shadow: 0 0 red, 0 0 red; } + "./modules/tests-cases/local-2/source.css", + ".PTH0TZDPxpREaV5cxtahd { background: red; } +#_1XQl0Np_jYcDGudXKxmL8A { background: green; } +.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; } +#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; } ", "", ], ] `; -exports[`modules case \`values-7\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "color": "red", - "ghi": "_1SVUxnI1T0vYEcq2VXU5pr", - "shadow": "0 0 red, 0 0 red", -} +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._className { background: red; }\\\\n#_someId { background: green; }\\\\n._className ._subClass { color: green; }\\\\n#_someId ._subClass { color: blue; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"className\\": \\"_className\\", + \\"someId\\": \\"_someId\\", + \\"subClass\\": \\"_subClass\\" +};" `; -exports[`modules case \`values-7\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._1SVUxnI1T0vYEcq2VXU5pr { box-shadow: 0 0 red, 0 0 red; } + "./modules/tests-cases/local-2/source.css", + "._className { background: red; } +#_someId { background: green; } +._className ._subClass { color: green; } +#_someId ._subClass { color: blue; } ", "", ], ] `; -exports[`modules case \`values-7\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "color": "red", - "shadow": "0 0 red, 0 0 red", -} +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._className { background: red; }\\\\n#_someId { background: green; }\\\\n._className ._subClass { color: green; }\\\\n#_someId ._subClass { color: blue; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"className\\": \\"_className\\", + \\"someId\\": \\"_someId\\", + \\"subClass\\": \\"_subClass\\" +};" `; -exports[`modules case \`values-7\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - ".ghi { box-shadow: 0 0 red, 0 0 red; } + "./modules/tests-cases/local-2/source.css", + "._className { background: red; } +#_someId { background: green; } +._className ._subClass { color: green; } +#_someId ._subClass { color: blue; } ", "", ], ] `; -exports[`modules case \`values-7\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "color": "red", - "ghi": "_ghi", - "shadow": "0 0 red, 0 0 red", -} +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".PTH0TZDPxpREaV5cxtahd { background: red; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A { background: green; }\\\\n.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"className\\": \\"PTH0TZDPxpREaV5cxtahd\\", + \\"someId\\": \\"_1XQl0Np_jYcDGudXKxmL8A\\", + \\"subClass\\": \\"_2MrzTmc8jtF-E5FfuMPQie\\" +};" `; -exports[`modules case \`values-7\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._ghi { box-shadow: 0 0 red, 0 0 red; } + "./modules/tests-cases/local-2/source.css", + ".PTH0TZDPxpREaV5cxtahd { background: red; } +#_1XQl0Np_jYcDGudXKxmL8A { background: green; } +.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; } +#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; } ", "", ], ] `; -exports[`modules case \`values-7\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`values-7\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "color": "red", - "ghi": "_1SVUxnI1T0vYEcq2VXU5pr", - "shadow": "0 0 red, 0 0 red", -} +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\":local(.abc) {\\\\n color: red;\\\\n}\\\\n:local(.def) {\\\\n composes: abc;\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-7\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 2, - " -", - "", - ], - Array [ - 1, - "._1SVUxnI1T0vYEcq2VXU5pr { box-shadow: 0 0 red, 0 0 red; } + "./modules/tests-cases/local-and-composes/source.css", + ":local(.abc) { + color: red; +} +:local(.def) { + composes: abc; + background: green; +} ", "", ], ] `; -exports[`modules case \`values-7\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1wzWGMZGmVz3uhGAmwbXwR {\\\\n color: red;\\\\n}\\\\n._3zcEXyCxYPLdb_6bVqY6Df {\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_1wzWGMZGmVz3uhGAmwbXwR\\", + \\"def\\": \\"_3zcEXyCxYPLdb_6bVqY6Df _1wzWGMZGmVz3uhGAmwbXwR\\" +};" +`; -exports[`modules case \`values-8\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "@value shadow-color: rgba(0, 0, 0, 0.5); - -.shadow { - box-shadow: 0 10px 10px shadow-color, - 10px 0px 5px shadow-color; + "./modules/tests-cases/local-and-composes/source.css", + "._1wzWGMZGmVz3uhGAmwbXwR { + color: red; +} +._3zcEXyCxYPLdb_6bVqY6Df { + background: green; } ", "", @@ -5313,23 +6494,32 @@ Array [ ] `; -exports[`modules case \`values-8\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "shadow-color": "rgba(0, 0, 0, 0.5)", -} +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1wzWGMZGmVz3uhGAmwbXwR {\\\\n color: red;\\\\n}\\\\n._3zcEXyCxYPLdb_6bVqY6Df {\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_1wzWGMZGmVz3uhGAmwbXwR\\", + \\"def\\": \\"_3zcEXyCxYPLdb_6bVqY6Df _1wzWGMZGmVz3uhGAmwbXwR\\" +};" `; -exports[`modules case \`values-8\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - ".shadow { - box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5), - 10px 0px 5px rgba(0, 0, 0, 0.5); + "./modules/tests-cases/local-and-composes/source.css", + "._1wzWGMZGmVz3uhGAmwbXwR { + color: red; +} +._3zcEXyCxYPLdb_6bVqY6Df { + background: green; } ", "", @@ -5337,24 +6527,32 @@ Array [ ] `; -exports[`modules case \`values-8\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "shadow": "_3fhB2YwAmhjTmtcd6ofBQH", - "shadow-color": "rgba(0, 0, 0, 0.5)", -} +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._abc {\\\\n color: red;\\\\n}\\\\n._def {\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_abc\\", + \\"def\\": \\"_def _abc\\" +};" `; -exports[`modules case \`values-8\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - "._3fhB2YwAmhjTmtcd6ofBQH { - box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5), - 10px 0px 5px rgba(0, 0, 0, 0.5); + "./modules/tests-cases/local-and-composes/source.css", + "._abc { + color: red; +} +._def { + background: green; } ", "", @@ -5362,23 +6560,32 @@ Array [ ] `; -exports[`modules case \`values-8\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "shadow-color": "rgba(0, 0, 0, 0.5)", -} +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._abc {\\\\n color: red;\\\\n}\\\\n._def {\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_abc\\", + \\"def\\": \\"_def _abc\\" +};" `; -exports[`modules case \`values-8\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - ".shadow { - box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5), - 10px 0px 5px rgba(0, 0, 0, 0.5); + "./modules/tests-cases/local-and-composes/source.css", + "._abc { + color: red; +} +._def { + background: green; } ", "", @@ -5386,24 +6593,32 @@ Array [ ] `; -exports[`modules case \`values-8\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "shadow": "_shadow", - "shadow-color": "rgba(0, 0, 0, 0.5)", -} +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1wzWGMZGmVz3uhGAmwbXwR {\\\\n color: red;\\\\n}\\\\n._3zcEXyCxYPLdb_6bVqY6Df {\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"abc\\": \\"_1wzWGMZGmVz3uhGAmwbXwR\\", + \\"def\\": \\"_3zcEXyCxYPLdb_6bVqY6Df _1wzWGMZGmVz3uhGAmwbXwR\\" +};" `; -exports[`modules case \`values-8\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - "._shadow { - box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5), - 10px 0px 5px rgba(0, 0, 0, 0.5); + "./modules/tests-cases/local-and-composes/source.css", + "._1wzWGMZGmVz3uhGAmwbXwR { + color: red; +} +._3zcEXyCxYPLdb_6bVqY6Df { + background: green; } ", "", @@ -5411,24 +6626,25 @@ Array [ ] `; -exports[`modules case \`values-8\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`values-8\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "shadow": "_3fhB2YwAmhjTmtcd6ofBQH", - "shadow-color": "rgba(0, 0, 0, 0.5)", -} +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\":local(.c1[data-attr=\\\\\\".c2)]'\\\\\\"]:not(.c3):not(.c4)) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-8\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - "._3fhB2YwAmhjTmtcd6ofBQH { - box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5), - 10px 0px 5px rgba(0, 0, 0, 0.5); + "./modules/tests-cases/local-with-string/source.css", + ":local(.c1[data-attr=\\".c2)]'\\"]:not(.c3):not(.c4)) { + background: red; } ", "", @@ -5436,44 +6652,30 @@ Array [ ] `; -exports[`modules case \`values-8\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\\\\\".c2)]'\\\\\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_1sz8PE1ejGPcGRSnIAWKZt\\", + \\"c3\\": \\"_2DFDxRic974g-wJ7S9rbP1\\", + \\"c4\\": \\"xo8O_am1gQUkHa-_J-WSe\\" +};" +`; -exports[`modules case \`values-9\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "@value def: red; - -.foo1 { - prop: func(def); -} - -.foo2 { - prop: func(10px def); -} - -.foo3 { - prop: func(def 10px); -} - -.foo4 { - prop: func(10px def 10px); -} - -.foo5 { - prop: func(10px, def); -} - -.foo6 { - prop: func(def, 10px); -} - -.foo7 { - prop: func(10px, def, 10px); + "./modules/tests-cases/local-with-string/source.css", + "._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\".c2)]'\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) { + background: red; } ", "", @@ -5481,46 +6683,30 @@ Array [ ] `; -exports[`modules case \`values-9\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "def": "red", -} +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\\\\\".c2)]'\\\\\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_1sz8PE1ejGPcGRSnIAWKZt\\", + \\"c3\\": \\"_2DFDxRic974g-wJ7S9rbP1\\", + \\"c4\\": \\"xo8O_am1gQUkHa-_J-WSe\\" +};" `; -exports[`modules case \`values-9\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - ".foo1 { - prop: func(red); -} - -.foo2 { - prop: func(10px red); -} - -.foo3 { - prop: func(red 10px); -} - -.foo4 { - prop: func(10px red 10px); -} - -.foo5 { - prop: func(10px, red); -} - -.foo6 { - prop: func(red, 10px); -} - -.foo7 { - prop: func(10px, red, 10px); + "./modules/tests-cases/local-with-string/source.css", + "._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\".c2)]'\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) { + background: red; } ", "", @@ -5528,53 +6714,30 @@ Array [ ] `; -exports[`modules case \`values-9\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "def": "red", - "foo1": "_1V2U7x4U8oxxooLcDA25iL", - "foo2": "_3E1mOwwzg7yDREAM1sTqrf", - "foo3": "_1jURUggvUGFLzQ1zAWjNep", - "foo4": "_2gTeanreYt1oKNw6pvYDuQ", - "foo5": "_1FHimE7YIOvZ66qJzb5oD7", - "foo6": "_2ZsNKxzBYz6NW_ITMiAbSo", - "foo7": "_18TpSE38_jlCbLotZMXh67", -} +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._c1[data-attr=\\\\\\".c2)]'\\\\\\"]:not(._c3):not(._c4) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_c1\\", + \\"c3\\": \\"_c3\\", + \\"c4\\": \\"_c4\\" +};" `; -exports[`modules case \`values-9\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - "._1V2U7x4U8oxxooLcDA25iL { - prop: func(red); -} - -._3E1mOwwzg7yDREAM1sTqrf { - prop: func(10px red); -} - -._1jURUggvUGFLzQ1zAWjNep { - prop: func(red 10px); -} - -._2gTeanreYt1oKNw6pvYDuQ { - prop: func(10px red 10px); -} - -._1FHimE7YIOvZ66qJzb5oD7 { - prop: func(10px, red); -} - -._2ZsNKxzBYz6NW_ITMiAbSo { - prop: func(red, 10px); -} - -._18TpSE38_jlCbLotZMXh67 { - prop: func(10px, red, 10px); + "./modules/tests-cases/local-with-string/source.css", + "._c1[data-attr=\\".c2)]'\\"]:not(._c3):not(._c4) { + background: red; } ", "", @@ -5582,46 +6745,61 @@ Array [ ] `; -exports[`modules case \`values-9\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "def": "red", -} +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._c1[data-attr=\\\\\\".c2)]'\\\\\\"]:not(._c3):not(._c4) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_c1\\", + \\"c3\\": \\"_c3\\", + \\"c4\\": \\"_c4\\" +};" `; -exports[`modules case \`values-9\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - ".foo1 { - prop: func(red); -} - -.foo2 { - prop: func(10px red); -} - -.foo3 { - prop: func(red 10px); + "./modules/tests-cases/local-with-string/source.css", + "._c1[data-attr=\\".c2)]'\\"]:not(._c3):not(._c4) { + background: red; } +", + "", + ], +] +`; -.foo4 { - prop: func(10px red 10px); -} +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -.foo5 { - prop: func(10px, red); -} +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -.foo6 { - prop: func(red, 10px); -} +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\\\\\".c2)]'\\\\\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_1sz8PE1ejGPcGRSnIAWKZt\\", + \\"c3\\": \\"_2DFDxRic974g-wJ7S9rbP1\\", + \\"c4\\": \\"xo8O_am1gQUkHa-_J-WSe\\" +};" +`; -.foo7 { - prop: func(10px, red, 10px); +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/local-with-string/source.css", + "._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\".c2)]'\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) { + background: red; } ", "", @@ -5629,53 +6807,29 @@ Array [ ] `; -exports[`modules case \`values-9\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "def": "red", - "foo1": "_foo1", - "foo2": "_foo2", - "foo3": "_foo3", - "foo4": "_foo4", - "foo5": "_foo5", - "foo6": "_foo6", - "foo7": "_foo7", -} +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value small: (max-width: 599px);\\\\n\\\\n@media small {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-9\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - "._foo1 { - prop: func(red); -} - -._foo2 { - prop: func(10px red); -} - -._foo3 { - prop: func(red 10px); -} - -._foo4 { - prop: func(10px red 10px); -} - -._foo5 { - prop: func(10px, red); -} - -._foo6 { - prop: func(red, 10px); -} + "./modules/tests-cases/media/source.css", + "@value small: (max-width: 599px); -._foo7 { - prop: func(10px, red, 10px); +@media small { + .header { + box-shadow: 0 0 4px #1F4F7F; + } } ", "", @@ -5683,53 +6837,62 @@ Array [ ] `; -exports[`modules case \`values-9\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-9\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "def": "red", - "foo1": "_1V2U7x4U8oxxooLcDA25iL", - "foo2": "_3E1mOwwzg7yDREAM1sTqrf", - "foo3": "_1jURUggvUGFLzQ1zAWjNep", - "foo4": "_2gTeanreYt1oKNw6pvYDuQ", - "foo5": "_1FHimE7YIOvZ66qJzb5oD7", - "foo6": "_2ZsNKxzBYz6NW_ITMiAbSo", - "foo7": "_18TpSE38_jlCbLotZMXh67", -} +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@media (max-width: 599px) {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"small\\": \\"(max-width: 599px)\\" +};" `; -exports[`modules case \`values-9\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "._1V2U7x4U8oxxooLcDA25iL { - prop: func(red); -} - -._3E1mOwwzg7yDREAM1sTqrf { - prop: func(10px red); -} - -._1jURUggvUGFLzQ1zAWjNep { - prop: func(red 10px); + "./modules/tests-cases/media/source.css", + "@media (max-width: 599px) { + .header { + box-shadow: 0 0 4px #1F4F7F; + } } +", + "", + ], +] +`; -._2gTeanreYt1oKNw6pvYDuQ { - prop: func(10px red 10px); -} +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -._1FHimE7YIOvZ66qJzb5oD7 { - prop: func(10px, red); -} +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -._2ZsNKxzBYz6NW_ITMiAbSo { - prop: func(red, 10px); -} +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@media (max-width: 599px) {\\\\n ._1wyVAJXtjGZLoQNO_yG8b3 {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"small\\": \\"(max-width: 599px)\\", + \\"header\\": \\"_1wyVAJXtjGZLoQNO_yG8b3\\" +};" +`; -._18TpSE38_jlCbLotZMXh67 { - prop: func(10px, red, 10px); +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/media/source.css", + "@media (max-width: 599px) { + ._1wyVAJXtjGZLoQNO_yG8b3 { + box-shadow: 0 0 4px #1F4F7F; + } } ", "", @@ -5737,32 +6900,29 @@ Array [ ] `; -exports[`modules case \`values-9\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`false)\`: locals 1`] = `undefined`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@media (max-width: 599px) {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"small\\": \\"(max-width: 599px)\\" +};" +`; -exports[`modules case \`values-10\` (\`modules\` value is \`false)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - "@value v-primary: #BF4040; -@value s-black: black-selector; -@value m-large: (min-width: 960px); - -.header { - color: v-primary; - padding: 0 10px; -} - -.s-black { - color: black; -} - -@media m-large { + "./modules/tests-cases/media/source.css", + "@media (max-width: 599px) { .header { - padding: 0 20px; + box-shadow: 0 0 4px #1F4F7F; } } ", @@ -5771,34 +6931,30 @@ Array [ ] `; -exports[`modules case \`values-10\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`global)\`: locals 1`] = ` -Object { - "m-large": "(min-width: 960px)", - "s-black": "black-selector", - "v-primary": "#BF4040", -} +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@media (max-width: 599px) {\\\\n ._header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"small\\": \\"(max-width: 599px)\\", + \\"header\\": \\"_header\\" +};" `; -exports[`modules case \`values-10\` (\`modules\` value is \`global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - ".header { - color: #BF4040; - padding: 0 10px; -} - -.black-selector { - color: black; -} - -@media (min-width: 960px) { - .header { - padding: 0 20px; + "./modules/tests-cases/media/source.css", + "@media (max-width: 599px) { + ._header { + box-shadow: 0 0 4px #1F4F7F; } } ", @@ -5807,36 +6963,30 @@ Array [ ] `; -exports[`modules case \`values-10\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`local)\`: locals 1`] = ` -Object { - "black-selector": "_3xId28FIeFVmNWx5IWeWqN", - "header": "ODvOrT6QaJbrNxuVwTgHn", - "m-large": "(min-width: 960px)", - "s-black": "black-selector", - "v-primary": "#BF4040", -} +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@media (max-width: 599px) {\\\\n ._1wyVAJXtjGZLoQNO_yG8b3 {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"small\\": \\"(max-width: 599px)\\", + \\"header\\": \\"_1wyVAJXtjGZLoQNO_yG8b3\\" +};" `; -exports[`modules case \`values-10\` (\`modules\` value is \`local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - ".ODvOrT6QaJbrNxuVwTgHn { - color: #BF4040; - padding: 0 10px; -} - -._3xId28FIeFVmNWx5IWeWqN { - color: black; -} - -@media (min-width: 960px) { - .ODvOrT6QaJbrNxuVwTgHn { - padding: 0 20px; + "./modules/tests-cases/media/source.css", + "@media (max-width: 599px) { + ._1wyVAJXtjGZLoQNO_yG8b3 { + box-shadow: 0 0 4px #1F4F7F; } } ", @@ -5845,34 +6995,27 @@ Array [ ] `; -exports[`modules case \`values-10\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`media\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`object with mode global)\`: locals 1`] = ` -Object { - "m-large": "(min-width: 960px)", - "s-black": "black-selector", - "v-primary": "#BF4040", -} +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value small from './file.css';\\\\n@media small {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules case \`values-10\` (\`modules\` value is \`object with mode global)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - ".header { - color: #BF4040; - padding: 0 10px; -} - -.black-selector { - color: black; -} - -@media (min-width: 960px) { + "./modules/tests-cases/media-2/source.css", + "@value small from './file.css'; +@media small { .header { - padding: 0 20px; + box-shadow: 0 0 4px #1F4F7F; } } ", @@ -5881,36 +7024,37 @@ Array [ ] `; -exports[`modules case \`values-10\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`object with mode local)\`: locals 1`] = ` -Object { - "black-selector": "_black-selector", - "header": "_header", - "m-large": "(min-width: 960px)", - "s-black": "black-selector", - "v-primary": "#BF4040", -} +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\" {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\"\\" +};" `; -exports[`modules case \`values-10\` (\`modules\` value is \`object with mode local)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - "._header { - color: #BF4040; - padding: 0 10px; -} - -._black-selector { - color: black; -} - -@media (min-width: 960px) { - ._header { - padding: 0 20px; + "../../src/index.js?!./modules/tests-cases/media-2/file.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/media-2/source.css", + "@media (max-width: 599px) { + .header { + box-shadow: 0 0 4px #1F4F7F; } } ", @@ -5919,36 +7063,38 @@ Array [ ] `; -exports[`modules case \`values-10\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules case \`values-10\` (\`modules\` value is \`true)\`: locals 1`] = ` -Object { - "black-selector": "_3xId28FIeFVmNWx5IWeWqN", - "header": "ODvOrT6QaJbrNxuVwTgHn", - "m-large": "(min-width: 960px)", - "s-black": "black-selector", - "v-primary": "#BF4040", -} +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\" {\\\\n .UbDEjEuweJXO7yHMpC8qp {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\"\\", + \\"header\\": \\"UbDEjEuweJXO7yHMpC8qp\\" +};" `; -exports[`modules case \`values-10\` (\`modules\` value is \`true)\`: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - ".ODvOrT6QaJbrNxuVwTgHn { - color: #BF4040; - padding: 0 10px; -} - -._3xId28FIeFVmNWx5IWeWqN { - color: black; -} - -@media (min-width: 960px) { - .ODvOrT6QaJbrNxuVwTgHn { - padding: 0 20px; + "../../src/index.js?!./modules/tests-cases/media-2/file.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/media-2/source.css", + "@media (max-width: 599px) { + .UbDEjEuweJXO7yHMpC8qp { + box-shadow: 0 0 4px #1F4F7F; } } ", @@ -5957,402 +7103,341 @@ Array [ ] `; -exports[`modules case \`values-10\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules composes should supports resolving: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\" {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\"\\" +};" +`; -exports[`modules composes should supports resolving: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!./modules/tests-cases/media-2/file.css", " ", "", ], Array [ - 3, - " + "./modules/tests-cases/media-2/source.css", + "@media (max-width: 599px) { + .header { + box-shadow: 0 0 4px #1F4F7F; + } +} ", "", ], +] +`; + +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\" {\\\\n ._header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\"\\", + \\"header\\": \\"_header\\" +};" +`; + +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ Array [ - 4, - "._22ETk3ZhhvjVe-4dAULcsF { - display: block; -} + "../../src/index.js?!./modules/tests-cases/media-2/file.css", + " ", "", ], Array [ - 5, - ".dSGVakTZ8YY-XNW64tg9F { - display: inline; -} -", - "", - ], - Array [ - 6, - "._1SUuyapRQ82dAPS8r7zmpY { - display: flex; + "./modules/tests-cases/media-2/source.css", + "@media (max-width: 599px) { + ._header { + box-shadow: 0 0 4px #1F4F7F; + } } ", "", ], +] +`; + +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\" {\\\\n .UbDEjEuweJXO7yHMpC8qp {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\"\\", + \\"header\\": \\"UbDEjEuweJXO7yHMpC8qp\\" +};" +`; + +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ Array [ - 7, - "._2n5szs-7uGKzfFTp9NTK64 { - display: inline-block; -} + "../../src/index.js?!./modules/tests-cases/media-2/file.css", + " ", "", ], Array [ - 8, - "._37nzOIvIANGnEtP1lWjZDN { - display: table; + "./modules/tests-cases/media-2/source.css", + "@media (max-width: 599px) { + .UbDEjEuweJXO7yHMpC8qp { + box-shadow: 0 0 4px #1F4F7F; + } } ", "", ], - Array [ - 9, - "._2Nehoi0wFTN-8p0fEfvUYd { - d: d; -} -", - "(min-width: 100px)", - ], - Array [ - 1, - "._14uFt0lIVKKAlKTTT29IIQ { - color: red; -} - -._3XDgIzfUIQkaUInpEdo7fN { - color: blue; -} - -._1wABXM_RabWHj--wsPrhvM { - display: block; -} - -._1DFEYnAfn9LZyk4fErI86e { - width: 2112moon; -} - -.Ywv5coVC2RU-pIFhN9O4w { - color: green; -} - -._1tAbIwITRWAdZZE6wKNk9O { - prop: red; - duplicate: green; -} - -.Q3SQ3BwtBwUFLlg6adzOI { - color: red; -} - -._1n5XhXj4SFnYrwziC3un0d { - color: yellow; -} - -._3dnFnGkAVAiMA6etF-naHc { - color: gray; -} - -._1xUePnlnafMQ1cExy3PUWT { - color: gray; -} - -._26Jdfenl9Xn8HXwb2jipvt { - color: gainsboro; -} - -._1ya4VhsDkuPhQeVHQydw2Y { - color: #BF4040; -} - -.sGE1Q_LliVEZU2Q4q9j4K { - color: black; -} - -@media (min-width: 960px) { - ._2zSMJ4hQh0FesbZjiKW_ya { - padding: 0 20px; - } -} - -.white { - color: white; -} - -@media (min-width: 320px) { - ._2zSMJ4hQh0FesbZjiKW_ya { - padding: 20px 20px; - } -} -@value v-comment: /* comment */; - -._3qS0_85PLYhk_pNQ69KfSo { - v-ident: validIdent; - v-pre-defined-ident: left; - v-string: 'content'; - v-string-1: ''; - v-url: url(https://www.exammple.com/images/my-background.png); - v-url-1: url('https://www.exammple.com/images/my-background.png'); - v-url-2: url(\\"https://www.exammple.com/images/my-background.png\\"); - v-integer: 100; - v-integer-1: -100; - v-integer-2: +100; - v-number: .60; - v-number-1: -456.8; - v-number-2: -3.4e-2; - v-dimension: 12px; - v-percentage: 100%; - v-hex: #fff; - v-comment: v-comment 10px v-comment; - v-function: rgb(0,0,0); - v-unicode-range: U+0025-00FF; - mutliple: #fff .60 100%; -} - +] +`; -a { - content: 'content'; -} +exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -@supports (content: 'content') { - a { - content: 'content'; - } -} +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -[class~='content'] { - color:green; -} +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".c1 :local .c2 .c3 :global .c4 :local .c5, .c6 :local .c7 { background: red; }\\\\n.c8 { background: red; }\\\\n\\", \\"\\"]); +" +`; -._340mxt1qHaYWfC81FJUajb { - background: url(/webpack/public/path/img.png); -} +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/mode-switching/source.css", + ".c1 :local .c2 .c3 :global .c4 :local .c5, .c6 :local .c7 { background: red; } +.c8 { background: red; } ", "", ], ] `; -exports[`modules composes should supports resolving: module 1`] = ` +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./values.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4-0!./something.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4-0!./imported-simple.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4-0!./relative.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_4___ = require(\\"-!../../../src/index.js??ref--4-0!../modules/top-relative.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_5___ = require(\\"-!../../../src/index.js??ref--4-0!package/style.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_6___ = require(\\"-!../../../src/index.js??ref--4-0!aliasesComposes/alias.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./test-other.css\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"../url/img.png\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); -exports.i(___CSS_LOADER_ICSS_IMPORT_1___); -exports.i(___CSS_LOADER_ICSS_IMPORT_2___); -exports.i(___CSS_LOADER_ICSS_IMPORT_3___); -exports.i(___CSS_LOADER_ICSS_IMPORT_4___); -exports.i(___CSS_LOADER_ICSS_IMPORT_5___); -exports.i(___CSS_LOADER_ICSS_IMPORT_6___); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"(min-width: 100px)\\"); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module -exports.push([module.id, \\"._14uFt0lIVKKAlKTTT29IIQ {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-def\\"] + \\";\\\\n}\\\\n\\\\n._3XDgIzfUIQkaUInpEdo7fN {\\\\n color: blue;\\\\n}\\\\n\\\\n._1wABXM_RabWHj--wsPrhvM {\\\\n display: block;\\\\n}\\\\n\\\\n._1DFEYnAfn9LZyk4fErI86e {\\\\n width: \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"v-something\\"] + \\";\\\\n}\\\\n\\\\n.Ywv5coVC2RU-pIFhN9O4w {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-other\\"] + \\";\\\\n}\\\\n\\\\n._1tAbIwITRWAdZZE6wKNk9O {\\\\n prop: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-def\\"] + \\";\\\\n duplicate: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-other\\"] + \\";\\\\n}\\\\n\\\\n.Q3SQ3BwtBwUFLlg6adzOI {\\\\n color: red;\\\\n}\\\\n\\\\n._1n5XhXj4SFnYrwziC3un0d {\\\\n color: yellow;\\\\n}\\\\n\\\\n._3dnFnGkAVAiMA6etF-naHc {\\\\n color: gray;\\\\n}\\\\n\\\\n._1xUePnlnafMQ1cExy3PUWT {\\\\n color: gray;\\\\n}\\\\n\\\\n._26Jdfenl9Xn8HXwb2jipvt {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n._1ya4VhsDkuPhQeVHQydw2Y {\\\\n color: #BF4040;\\\\n}\\\\n\\\\n.sGE1Q_LliVEZU2Q4q9j4K {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n ._2zSMJ4hQh0FesbZjiKW_ya {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"s-white\\"] + \\" {\\\\n color: white;\\\\n}\\\\n\\\\n@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"m-small\\"] + \\" {\\\\n ._2zSMJ4hQh0FesbZjiKW_ya {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n@value v-comment: /* comment */;\\\\n\\\\n._3qS0_85PLYhk_pNQ69KfSo {\\\\n v-ident: validIdent;\\\\n v-pre-defined-ident: left;\\\\n v-string: 'content';\\\\n v-string-1: '';\\\\n v-url: url(https://www.exammple.com/images/my-background.png);\\\\n v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n v-integer: 100;\\\\n v-integer-1: -100;\\\\n v-integer-2: +100;\\\\n v-number: .60;\\\\n v-number-1: -456.8;\\\\n v-number-2: -3.4e-2;\\\\n v-dimension: 12px;\\\\n v-percentage: 100%;\\\\n v-hex: #fff;\\\\n v-comment: v-comment 10px v-comment;\\\\n v-function: rgb(0,0,0);\\\\n v-unicode-range: U+0025-00FF;\\\\n mutliple: #fff .60 100%;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: 'content';\\\\n}\\\\n\\\\n@supports (content: 'content') {\\\\n a {\\\\n content: 'content';\\\\n }\\\\n}\\\\n\\\\n[class~='content'] {\\\\n color:green;\\\\n}\\\\n\\\\n._340mxt1qHaYWfC81FJUajb {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +exports.push([module.id, \\".c1 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .c6 .FBEuAfqI8VKhU-w-9RNH { background: red; }\\\\n.c8 { background: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { - \\"v-def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-def\\"] + \\"\\", - \\"v-other\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"v-other\\"] + \\"\\", - \\"s-white\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"s-white\\"] + \\"\\", - \\"m-small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"m-small\\"] + \\"\\", - \\"v-something\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"v-something\\"] + \\"\\", - \\"v-foo\\": \\"blue\\", - \\"v-bar\\": \\"block\\", - \\"v-primary\\": \\"#BF4040\\", - \\"s-black\\": \\"black-selector\\", - \\"m-large\\": \\"(min-width: 960px)\\", - \\"v-ident\\": \\"validIdent\\", - \\"v-pre-defined-ident\\": \\"left\\", - \\"v-string\\": \\"'content'\\", - \\"v-string-1\\": \\"''\\", - \\"v-url\\": \\"url(https://www.exammple.com/images/my-background.png)\\", - \\"v-url-1\\": \\"url('https://www.exammple.com/images/my-background.png')\\", - \\"v-url-2\\": \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\", - \\"v-integer\\": \\"100\\", - \\"v-integer-1\\": \\"-100\\", - \\"v-integer-2\\": \\"+100\\", - \\"v-number\\": \\".60\\", - \\"v-number-1\\": \\"-456.8\\", - \\"v-number-2\\": \\"-3.4e-2\\", - \\"v-dimension\\": \\"12px\\", - \\"v-percentage\\": \\"100%\\", - \\"v-hex\\": \\"#fff\\", - \\"v-function\\": \\"rgb(0,0,0)\\", - \\"v-unicode-range\\": \\"U+0025-00FF\\", - \\"ghi\\": \\"_14uFt0lIVKKAlKTTT29IIQ\\", - \\"class\\": \\"_3XDgIzfUIQkaUInpEdo7fN\\", - \\"other\\": \\"_1wABXM_RabWHj--wsPrhvM\\", - \\"other-other\\": \\"_1DFEYnAfn9LZyk4fErI86e\\", - \\"green\\": \\"Ywv5coVC2RU-pIFhN9O4w\\", - \\"foo\\": \\"_1tAbIwITRWAdZZE6wKNk9O\\", - \\"simple\\": \\"Q3SQ3BwtBwUFLlg6adzOI \\" + ___CSS_LOADER_ICSS_IMPORT_2___.locals[\\"imported-simple\\"] + \\"\\", - \\"relative\\": \\"_1n5XhXj4SFnYrwziC3un0d \\" + ___CSS_LOADER_ICSS_IMPORT_3___.locals[\\"imported-relative\\"] + \\"\\", - \\"top-relative\\": \\"_3dnFnGkAVAiMA6etF-naHc \\" + ___CSS_LOADER_ICSS_IMPORT_4___.locals[\\"imported-relative\\"] + \\"\\", - \\"module\\": \\"_1xUePnlnafMQ1cExy3PUWT \\" + ___CSS_LOADER_ICSS_IMPORT_5___.locals[\\"imported-module\\"] + \\"\\", - \\"alias\\": \\"_26Jdfenl9Xn8HXwb2jipvt \\" + ___CSS_LOADER_ICSS_IMPORT_6___.locals[\\"imported-alias\\"] + \\"\\", - \\"primary-selector\\": \\"_1ya4VhsDkuPhQeVHQydw2Y\\", - \\"black-selector\\": \\"sGE1Q_LliVEZU2Q4q9j4K\\", - \\"header\\": \\"_2zSMJ4hQh0FesbZjiKW_ya\\", - \\"foobarbaz\\": \\"_3qS0_85PLYhk_pNQ69KfSo\\", - \\"url\\": \\"_340mxt1qHaYWfC81FJUajb\\" + \\"c2\\": \\"LgC5kpXZK3IOCPWWctF7f\\", + \\"c3\\": \\"_2ZTY7KJ2nkQND4VqlaSz9a\\", + \\"c5\\": \\"tEu6_PTqhxImp1tyYQTWz\\", + \\"c7\\": \\"FBEuAfqI8VKhU-w-9RNH\\" };" `; -exports[`modules composes should supports resolving: warnings 1`] = `Array []`; - -exports[`modules getLocalIdent should be allowed to return false: errors 1`] = `Array []`; - -exports[`modules getLocalIdent should be allowed to return false: locals 1`] = ` -Object { - "abc": "abc", - "def": "def", - "ghi": "ghi", - "jkl": "jkl", -} -`; - -exports[`modules getLocalIdent should be allowed to return false: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - ".abc .def { - color: red; -} - -.ghi .jkl { - color: blue; -} + "./modules/tests-cases/mode-switching/source.css", + ".c1 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .c6 .FBEuAfqI8VKhU-w-9RNH { background: red; } +.c8 { background: red; } ", "", ], ] `; -exports[`modules getLocalIdent should be allowed to return false: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules issue #286: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._sSeqF3tTS8i-oJLOiW66 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .sUDXsigYAAb8sNlOMs_Oc .FBEuAfqI8VKhU-w-9RNH { background: red; }\\\\n._1JUWq0LIxk9cx-H1cbqyAD { background: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_sSeqF3tTS8i-oJLOiW66\\", + \\"c2\\": \\"LgC5kpXZK3IOCPWWctF7f\\", + \\"c3\\": \\"_2ZTY7KJ2nkQND4VqlaSz9a\\", + \\"c5\\": \\"tEu6_PTqhxImp1tyYQTWz\\", + \\"c6\\": \\"sUDXsigYAAb8sNlOMs_Oc\\", + \\"c7\\": \\"FBEuAfqI8VKhU-w-9RNH\\", + \\"c8\\": \\"_1JUWq0LIxk9cx-H1cbqyAD\\" +};" +`; -exports[`modules issue #286: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 2, - ".a--red { color: red } -", - "", - ], - Array [ - 1, - ".b--main { } + "./modules/tests-cases/mode-switching/source.css", + "._sSeqF3tTS8i-oJLOiW66 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .sUDXsigYAAb8sNlOMs_Oc .FBEuAfqI8VKhU-w-9RNH { background: red; } +._1JUWq0LIxk9cx-H1cbqyAD { background: red; } ", "", ], ] `; -exports[`modules issue #286: module 1`] = ` +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"./dep.css\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module -exports.push([module.id, \\".b--main { }\\\\n\\", \\"\\"]); +exports.push([module.id, \\".c1 ._c2 ._c3 .c4 ._c5, .c6 ._c7 { background: red; }\\\\n.c8 { background: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { - \\"main\\": \\"b--main \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"red\\"] + \\"\\" + \\"c2\\": \\"_c2\\", + \\"c3\\": \\"_c3\\", + \\"c5\\": \\"_c5\\", + \\"c7\\": \\"_c7\\" };" `; -exports[`modules issue #286: warnings 1`] = `Array []`; - -exports[`modules issue #636: errors 1`] = `Array []`; - -exports[`modules issue #636: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 2, - ".prefix-foo { - color: red; -}", - "", - ], - Array [ - 1, - ".prefix-bar { -}", + "./modules/tests-cases/mode-switching/source.css", + ".c1 ._c2 ._c3 .c4 ._c5, .c6 ._c7 { background: red; } +.c8 { background: red; } +", "", ], ] `; -exports[`modules issue #636: module 1`] = ` +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4-0!../../../../node_modules/sass-loader/dist/cjs.js??ref--4-1!./foo.scss\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module -exports.push([module.id, \\".prefix-bar {\\\\n}\\", \\"\\"]); +exports.push([module.id, \\"._c1 ._c2 ._c3 .c4 ._c5, ._c6 ._c7 { background: red; }\\\\n._c8 { background: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { - \\"bar\\": \\"prefix-bar \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"foo\\"] + \\"\\" + \\"c1\\": \\"_c1\\", + \\"c2\\": \\"_c2\\", + \\"c3\\": \\"_c3\\", + \\"c5\\": \\"_c5\\", + \\"c6\\": \\"_c6\\", + \\"c7\\": \\"_c7\\", + \\"c8\\": \\"_c8\\" };" `; -exports[`modules issue #636: warnings 1`] = `Array []`; - -exports[`modules issue #861: errors 1`] = `Array []`; - -exports[`modules issue #861: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 2, - " + "./modules/tests-cases/mode-switching/source.css", + "._c1 ._c2 ._c3 .c4 ._c5, ._c6 ._c7 { background: red; } +._c8 { background: red; } ", "", ], +] +`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._sSeqF3tTS8i-oJLOiW66 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .sUDXsigYAAb8sNlOMs_Oc .FBEuAfqI8VKhU-w-9RNH { background: red; }\\\\n._1JUWq0LIxk9cx-H1cbqyAD { background: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"c1\\": \\"_sSeqF3tTS8i-oJLOiW66\\", + \\"c2\\": \\"LgC5kpXZK3IOCPWWctF7f\\", + \\"c3\\": \\"_2ZTY7KJ2nkQND4VqlaSz9a\\", + \\"c5\\": \\"tEu6_PTqhxImp1tyYQTWz\\", + \\"c6\\": \\"sUDXsigYAAb8sNlOMs_Oc\\", + \\"c7\\": \\"FBEuAfqI8VKhU-w-9RNH\\", + \\"c8\\": \\"_1JUWq0LIxk9cx-H1cbqyAD\\" +};" +`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ Array [ - 4, - "._1ef5Heix1Kf4k0qYvyWRRO { - display: flex; -} -", - "", - ], - Array [ - 3, - ".L8pnpYm5VAu49S290uPMA { - color: red; - margin: 0; - padding: 0; -} + "./modules/tests-cases/mode-switching/source.css", + "._sSeqF3tTS8i-oJLOiW66 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .sUDXsigYAAb8sNlOMs_Oc .FBEuAfqI8VKhU-w-9RNH { background: red; } +._1JUWq0LIxk9cx-H1cbqyAD { background: red; } ", "", ], +] +`; + +exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a .b, .c .d, #id {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"].x.y {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes z {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); +" +`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ Array [ - 1, - "._2gV2e6TcHcPgyDTzxbvkKa { - color: gray; - margin: 0; - padding: 0; + "./modules/tests-cases/simple/source.css", + ".a .b, .c .d, #id { + color: green; + font-size: 1.5pt; +} +a[href=\\"#b.c\\"].x.y { + color: green; + font-size: 1.5pt; +} +@keyframes z { + 2.5% {color: green;} } ", "", @@ -6360,33 +7445,33 @@ Array [ ] `; -exports[`modules issue #861: module 1`] = ` +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!@localpackage/color.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4-0!@localpackage/style.css\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); -exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module -exports.push([module.id, \\"._2gV2e6TcHcPgyDTzxbvkKa {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color-grey\\"] + \\";\\\\n margin: 0;\\\\n padding: 0;\\\\n}\\\\n\\", \\"\\"]); -// Exports -exports.locals = { - \\"color-grey\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color-grey\\"] + \\"\\", - \\"copyright\\": \\"_2gV2e6TcHcPgyDTzxbvkKa \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"type-heading\\"] + \\"\\" -};" +exports.push([module.id, \\".a .b, .c .d, #id {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"].x.y {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes z {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules issue #861: warnings 1`] = `Array []`; - -exports[`modules issue #966: errors 1`] = `Array []`; - -exports[`modules issue #966: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 1, - ".button.hey { - color: red; + "./modules/tests-cases/simple/source.css", + ".a .b, .c .d, #id { + color: green; + font-size: 1.5pt; +} +a[href=\\"#b.c\\"].x.y { + color: green; + font-size: 1.5pt; +} +@keyframes z { + 2.5% {color: green;} } ", "", @@ -6394,36 +7479,43 @@ Array [ ] `; -exports[`modules issue #966: module 1`] = ` +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); // Module -exports.push([module.id, \\".button.hey {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +exports.push([module.id, \\"._3Usq4DWpHHUfARGj76o2W1 ._2sE42PHfIbHjbGigpdA5M2, ._3JN7IxYrHx5fpD-QuNH8Vg ._169FAY78xdP6MpwfqxWVlS, #_2w6DrNK6drHoI8na0s2YJu {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"]._3jqDKJEcQhMnSj5LXFzCMT._2CdavzdbxA-_uaXjgT2eG {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes eawDxhAAUQ-HvrUhhwSML {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { - \\"button\\": \\"button.hey\\" + \\"a\\": \\"_3Usq4DWpHHUfARGj76o2W1\\", + \\"b\\": \\"_2sE42PHfIbHjbGigpdA5M2\\", + \\"c\\": \\"_3JN7IxYrHx5fpD-QuNH8Vg\\", + \\"d\\": \\"_169FAY78xdP6MpwfqxWVlS\\", + \\"id\\": \\"_2w6DrNK6drHoI8na0s2YJu\\", + \\"x\\": \\"_3jqDKJEcQhMnSj5LXFzCMT\\", + \\"y\\": \\"_2CdavzdbxA-_uaXjgT2eG\\", + \\"z\\": \\"eawDxhAAUQ-HvrUhhwSML\\" };" `; -exports[`modules issue #966: warnings 1`] = `Array []`; - -exports[`modules issue #967: errors 1`] = `Array []`; - -exports[`modules issue #967: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - ".modules-path-placeholder__foo__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- { - color: red; + "./modules/tests-cases/simple/source.css", + "._3Usq4DWpHHUfARGj76o2W1 ._2sE42PHfIbHjbGigpdA5M2, ._3JN7IxYrHx5fpD-QuNH8Vg ._169FAY78xdP6MpwfqxWVlS, #_2w6DrNK6drHoI8na0s2YJu { + color: green; + font-size: 1.5pt; } - -.modules-path-placeholder__foo\\\\/bar__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- { - color: blue; +a[href=\\"#b.c\\"]._3jqDKJEcQhMnSj5LXFzCMT._2CdavzdbxA-_uaXjgT2eG { + color: green; + font-size: 1.5pt; } - -.modules-path-placeholder__\\\\[\\\\/\\\\?\\\\<\\\\>\\\\\\\\\\\\\\\\\\\\3A \\\\*\\\\|\\\\\\"\\\\3A \\\\]__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- { - color: yellow; +@keyframes eawDxhAAUQ-HvrUhhwSML { + 2.5% {color: green;} } ", "", @@ -6431,30 +7523,33 @@ Array [ ] `; -exports[`modules issue #967: module 1`] = ` +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); // Module -exports.push([module.id, \\".modules-path-placeholder__foo__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- {\\\\n color: red;\\\\n}\\\\n\\\\n.modules-path-placeholder__foo\\\\\\\\/bar__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- {\\\\n color: blue;\\\\n}\\\\n\\\\n.modules-path-placeholder__\\\\\\\\[\\\\\\\\/\\\\\\\\?\\\\\\\\<\\\\\\\\>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\3A \\\\\\\\*\\\\\\\\|\\\\\\\\\\\\\\"\\\\\\\\3A \\\\\\\\]__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); -// Exports -exports.locals = { - \\"foo\\": \\"modules-path-placeholder__foo__--sep---sep---sep---sep----sep---sep---sep---sep---sep--\\", - \\"foo/bar\\": \\"modules-path-placeholder__foo/bar__--sep---sep---sep---sep----sep---sep---sep---sep---sep--\\", - \\"[/?<>\\\\\\\\\\\\\\\\:*|\\\\\\":]\\": \\"modules-path-placeholder__[/?<>\\\\\\\\\\\\\\\\:*|\\\\\\":]__--sep---sep---sep---sep----sep---sep---sep---sep---sep--\\" -};" +exports.push([module.id, \\".a .b, .c .d, #id {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"].x.y {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes z {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules issue #967: warnings 1`] = `Array []`; - -exports[`modules issue #980: errors 1`] = `Array []`; - -exports[`modules issue #980: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - ".file-with-many-dots-in-name_a_1j0Lw { - color: red; + "./modules/tests-cases/simple/source.css", + ".a .b, .c .d, #id { + color: green; + font-size: 1.5pt; +} +a[href=\\"#b.c\\"].x.y { + color: green; + font-size: 1.5pt; +} +@keyframes z { + 2.5% {color: green;} } ", "", @@ -6462,118 +7557,43 @@ Array [ ] `; -exports[`modules issue #980: module 1`] = ` +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); // Module -exports.push([module.id, \\".file-with-many-dots-in-name_a_1j0Lw {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +exports.push([module.id, \\"._a ._b, ._c ._d, #_id {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"]._x._y {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes _z {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { - \\"a\\": \\"file-with-many-dots-in-name_a_1j0Lw\\" + \\"a\\": \\"_a\\", + \\"b\\": \\"_b\\", + \\"c\\": \\"_c\\", + \\"d\\": \\"_d\\", + \\"id\\": \\"_id\\", + \\"x\\": \\"_x\\", + \\"y\\": \\"_y\\", + \\"z\\": \\"_z\\" };" `; -exports[`modules issue #980: warnings 1`] = `Array []`; - -exports[`modules issue #995: errors 1`] = `Array []`; - -exports[`modules issue #995: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - 1, - "/* class=\\"😀\\" */ -.a { - color: red; -} - -/* class=\\"😀 😓\\" */ -.a.b { - color: red; -} - -/* class=\\"😀\\" > class=\\"😓\\" */ -.a .b { - color: red; -} - -/* class=\\"😀\\" */ -.😀 { - color: red; -} - -/* class=\\"😀 😓\\" */ -.😀.😓 { - color: red; -} - -/* class=\\"😀\\" > class=\\"😓\\" */ -.😀 .😓 { - color: red; -} - -/* class=\\"😀\\" */ -.\\\\1F600 { - color: red; -} - -/* class=\\"😀 😓\\" */ -.\\\\1F600.\\\\1F613 { - color: red; -} - -/* class=\\"😀\\" > class=\\"😓\\" */ -.\\\\1F600 .\\\\1F613 { - color: red; -} - -/* Local */ - -/* class=\\"😀\\" */ -.\\\\1F600 { - color: red; -} - -/* class=\\"😀 😓\\" */ -.\\\\1F600.\\\\1F600 { - color: red; -} - -/* class=\\"😀\\" > class=\\"😓\\" */ -.\\\\1F600 .\\\\1F600 { - color: red; -} - -.\\\\1F600 .a .\\\\1F600 { - color: red; -} - -.\\\\1F600 .\\\\1F600 .\\\\1F600 { - color: red; -} - -div:not(.\\\\1F600) { - color: red; -} - -.\\\\1F600 .b { - color: red; -} - -.b .\\\\1F600 { - color: red; -} - -.\\\\1F613 .\\\\1F600 { - color: red; + "./modules/tests-cases/simple/source.css", + "._a ._b, ._c ._d, #_id { + color: green; + font-size: 1.5pt; } - -.\\\\1F613 .\\\\1F600 { - color: red; +a[href=\\"#b.c\\"]._x._y { + color: green; + font-size: 1.5pt; } - -.\\\\1F600 > .\\\\1F600 > .\\\\1F600 { - color: red; +@keyframes _z { + 2.5% {color: green;} } ", "", @@ -6581,43 +7601,43 @@ div:not(.\\\\1F600) { ] `; -exports[`modules issue #995: module 1`] = ` +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); // Module -exports.push([module.id, \\"/* class=\\\\\\"😀\\\\\\" */\\\\n.a {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.a.b {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.a .b {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" */\\\\n.😀 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.😀.😓 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.😀 .😓 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" */\\\\n.\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.\\\\\\\\1F600.\\\\\\\\1F613 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.\\\\\\\\1F600 .\\\\\\\\1F613 {\\\\n color: red;\\\\n}\\\\n\\\\n/* Local */\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" */\\\\n.\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.\\\\\\\\1F600.\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.\\\\\\\\1F600 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 .a .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 .\\\\\\\\1F600 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\ndiv:not(.\\\\\\\\1F600) {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 .b {\\\\n color: red;\\\\n}\\\\n\\\\n.b .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F613 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F613 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 > .\\\\\\\\1F600 > .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +exports.push([module.id, \\"._3Usq4DWpHHUfARGj76o2W1 ._2sE42PHfIbHjbGigpdA5M2, ._3JN7IxYrHx5fpD-QuNH8Vg ._169FAY78xdP6MpwfqxWVlS, #_2w6DrNK6drHoI8na0s2YJu {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"]._3jqDKJEcQhMnSj5LXFzCMT._2CdavzdbxA-_uaXjgT2eG {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes eawDxhAAUQ-HvrUhhwSML {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { - \\"a\\": \\"😀\\", - \\"b\\": \\"😀\\", - \\"c\\": \\"😀\\" + \\"a\\": \\"_3Usq4DWpHHUfARGj76o2W1\\", + \\"b\\": \\"_2sE42PHfIbHjbGigpdA5M2\\", + \\"c\\": \\"_3JN7IxYrHx5fpD-QuNH8Vg\\", + \\"d\\": \\"_169FAY78xdP6MpwfqxWVlS\\", + \\"id\\": \\"_2w6DrNK6drHoI8na0s2YJu\\", + \\"x\\": \\"_3jqDKJEcQhMnSj5LXFzCMT\\", + \\"y\\": \\"_2CdavzdbxA-_uaXjgT2eG\\", + \\"z\\": \\"eawDxhAAUQ-HvrUhhwSML\\" };" `; -exports[`modules issue #995: warnings 1`] = `Array []`; - -exports[`modules should accepts all arguments for getLocalIdent option: errors 1`] = `Array []`; - -exports[`modules should accepts all arguments for getLocalIdent option: locals 1`] = ` -Object { - "abc": "foo", - "def": "foo", - "ghi": "foo", - "jkl": "foo", -} -`; - -exports[`modules should accepts all arguments for getLocalIdent option: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - 1, - ".foo .foo { - color: red; + "./modules/tests-cases/simple/source.css", + "._3Usq4DWpHHUfARGj76o2W1 ._2sE42PHfIbHjbGigpdA5M2, ._3JN7IxYrHx5fpD-QuNH8Vg ._169FAY78xdP6MpwfqxWVlS, #_2w6DrNK6drHoI8na0s2YJu { + color: green; + font-size: 1.5pt; } - -.foo .foo { - color: blue; +a[href=\\"#b.c\\"]._3jqDKJEcQhMnSj5LXFzCMT._2CdavzdbxA-_uaXjgT2eG { + color: green; + font-size: 1.5pt; +} +@keyframes eawDxhAAUQ-HvrUhhwSML { + 2.5% {color: green;} } ", "", @@ -6625,28 +7645,42 @@ Array [ ] `; -exports[`modules should accepts all arguments for getLocalIdent option: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules should avoid unnecessary "require": errors 1`] = `Array []`; +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); +// Module +exports.push([module.id, \\".a {\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n\\\\tbackground: url(\\\\\\"#hash\\\\\\");\\\\n\\\\tbackground: url(\\\\\\"#\\\\\\");\\\\n\\\\tbackground: url(data:image/png;base64,AAA);\\\\n\\\\tbackground: url(http://example.com/image.jpg);\\\\n\\\\tbackground: url(//example.com/image.png);\\\\n\\\\tbackground: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") xyz;\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`modules should avoid unnecessary "require": module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 2, - "._22ETk3ZhhvjVe-4dAULcsF { - display: block; -} -", - "", - ], - Array [ - 1, - "._1UrsXQ2x66vvn0IAbZqRYi { - color: red; -} - -._3xlGH7JLMDZsCqOwH83KaV { - color: red; + "./modules/tests-cases/urls/source.css", + ".a { + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png#?iefix); + background: url(\\"#hash\\"); + background: url(\\"#\\"); + background: url(data:image/png;base64,AAA); + background: url(http://example.com/image.jpg); + background: url(//example.com/image.png); + background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; } ", "", @@ -6654,193 +7688,223 @@ Array [ ] `; -exports[`modules should avoid unnecessary "require": module 1`] = ` +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./imported-simple.css\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); // Module -exports.push([module.id, \\"._1UrsXQ2x66vvn0IAbZqRYi {\\\\n color: red;\\\\n}\\\\n\\\\n._3xlGH7JLMDZsCqOwH83KaV {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); -// Exports -exports.locals = { - \\"simple-foo\\": \\"_1UrsXQ2x66vvn0IAbZqRYi \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"imported-simple\\"] + \\"\\", - \\"simple-bar\\": \\"_3xlGH7JLMDZsCqOwH83KaV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"imported-simple\\"] + \\"\\" -};" -`; - -exports[`modules should avoid unnecessary "require": warnings 1`] = `Array []`; - -exports[`modules should correctly replace escaped symbols in selector with localIdentName option: errors 1`] = `Array []`; - -exports[`modules should correctly replace escaped symbols in selector with localIdentName option: locals 1`] = ` -Object { - "#": "#--1cQh", - "##": "##--1u97", - "#.#.#": "#.#.#--2QoP", - "#fake-id": "#fake-id--1d23", - "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.--2vJ9", - "-a-b-c-": "-a-b-c---opia", - "-a0-34a___f": "-a0-34a___f--2nJ5", - ".": ".--2hyg", - "123": "123--jOxY", - "1a2b3c": "1a2b3c--1_Xs", - ":)": ":)--2tSN", - ":\`(": ":\`(--3G_T", - ":hover": ":hover--1EAJ", - ":hover:focus:active": ":hover:focus:active--1v8f", - "<><<<>><>": "<><<<>><>--2mic", - "

": "

--dDVm", - "?": "?--2DX4", - "@": "@--mE1z", - "B&W?": "B&W?--1s8i", - "[attr=value]": "[attr=value]--2y3U", - "_": "_--2vOX", - "_test": "_test--23te", - "className": "className--1E8H", - "f!o!o": "f!o!o--3x3B", - "f'o'o": "f'o'o--2fVl", - "f*o*o": "f*o*o--3sRc", - "f+o+o": "f+o+o--38BA", - "f/o/o": "f/o/o--OYOz", - "f\\\\o\\\\o": "f\\\\o\\\\o--1Knj", - "foo.bar": "foo.bar--3ZJa", - "foo/bar": "foo/bar--36uD", - "foo/bar/baz": "foo/bar/baz--oTEb", - "foo\\\\bar": "foo\\\\bar--2KL0", - "foo\\\\bar\\\\baz": "foo\\\\bar\\\\baz--2Id2", - "f~o~o": "f~o~o--lYb3", - "m_x_@": "m_x_@--2G3b", - "someId": "someId--3w7J", - "subClass": "subClass--3lo0", - "test": "test--NW9Y", - "{}": "{}--3lRh", - "©": "©--143H", - "“‘’”": "“‘’”--2yW9", - "⌘⌥": "⌘⌥--6z9v", - "☺☃": "☺☃--3sW7", - "♥": "♥--8xlN", - "𝄞♪♩♫♬": "𝄞♪♩♫♬--1JEq", - "💩": "💩--2i25", -} -`; - -exports[`modules should correctly replace escaped symbols in selector with localIdentName option: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".test--NW9Y { - background: red; -} - -._test--23te { - background: blue; -} +exports.push([module.id, \\".a {\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n\\\\tbackground: url(\\\\\\"#hash\\\\\\");\\\\n\\\\tbackground: url(\\\\\\"#\\\\\\");\\\\n\\\\tbackground: url(data:image/png;base64,AAA);\\\\n\\\\tbackground: url(http://example.com/image.jpg);\\\\n\\\\tbackground: url(//example.com/image.png);\\\\n\\\\tbackground: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") xyz;\\\\n}\\\\n\\", \\"\\"]); +" +`; -.className--1E8H { - background: red; +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/urls/source.css", + ".a { + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png#?iefix); + background: url(\\"#hash\\"); + background: url(\\"#\\"); + background: url(data:image/png;base64,AAA); + background: url(http://example.com/image.jpg); + background: url(//example.com/image.png); + background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; } +", + "", + ], +] +`; -#someId--3w7J { - background: green; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -.className--1E8H .subClass--3lo0 { - color: green; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -#someId--3w7J .subClass--3lo0 { - color: blue; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); +// Module +exports.push([module.id, \\"._1goi1QVFtUMjX82JoFfLLJ {\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n\\\\tbackground: url(\\\\\\"#hash\\\\\\");\\\\n\\\\tbackground: url(\\\\\\"#\\\\\\");\\\\n\\\\tbackground: url(data:image/png;base64,AAA);\\\\n\\\\tbackground: url(http://example.com/image.jpg);\\\\n\\\\tbackground: url(//example.com/image.png);\\\\n\\\\tbackground: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") xyz;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"_1goi1QVFtUMjX82JoFfLLJ\\" +};" +`; -.-a0-34a___f--2nJ5 { - color: red; +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/urls/source.css", + "._1goi1QVFtUMjX82JoFfLLJ { + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png#?iefix); + background: url(\\"#hash\\"); + background: url(\\"#\\"); + background: url(data:image/png;base64,AAA); + background: url(http://example.com/image.jpg); + background: url(//example.com/image.png); + background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; } +", + "", + ], +] +`; -.m_x_\\\\@--2G3b { - margin-left: auto !important; - margin-right: auto !important; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -.B\\\\&W\\\\?--1s8i { - margin-left: auto !important; - margin-right: auto !important; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -/* matches elements with class=\\":\`(\\" */ -.\\\\3A \\\\\`\\\\(--3G_T { - color: aqua; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); +// Module +exports.push([module.id, \\".a {\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n\\\\tbackground: url(\\\\\\"#hash\\\\\\");\\\\n\\\\tbackground: url(\\\\\\"#\\\\\\");\\\\n\\\\tbackground: url(data:image/png;base64,AAA);\\\\n\\\\tbackground: url(http://example.com/image.jpg);\\\\n\\\\tbackground: url(//example.com/image.png);\\\\n\\\\tbackground: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") xyz;\\\\n}\\\\n\\", \\"\\"]); +" +`; -/* matches elements with class=\\"1a2b3c\\" */ -.\\\\31 a2b3c--1_Xs { - color: aliceblue; +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/urls/source.css", + ".a { + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png#?iefix); + background: url(\\"#hash\\"); + background: url(\\"#\\"); + background: url(data:image/png;base64,AAA); + background: url(http://example.com/image.jpg); + background: url(//example.com/image.png); + background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; } +", + "", + ], +] +`; -/* matches the element with id=\\"#fake-id\\" */ -#\\\\#fake-id--1d23 { - color: antiquewhite; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -/* matches the element with id=\\"-a-b-c-\\" */ -#-a-b-c---opia { - color: azure; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -/* matches the element with id=\\"©\\" */ -#©--143H { - color: black; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); +// Module +exports.push([module.id, \\"._a {\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n\\\\tbackground: url(\\\\\\"#hash\\\\\\");\\\\n\\\\tbackground: url(\\\\\\"#\\\\\\");\\\\n\\\\tbackground: url(data:image/png;base64,AAA);\\\\n\\\\tbackground: url(http://example.com/image.jpg);\\\\n\\\\tbackground: url(//example.com/image.png);\\\\n\\\\tbackground: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") xyz;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"_a\\" +};" +`; -.♥--8xlN { background: lime; } -.©--143H { background: lime; } -.“‘’”--2yW9 { background: lime; } -.☺☃--3sW7 { background: lime; } -.⌘⌥--6z9v { background: lime; } -.𝄞♪♩♫♬--1JEq { background: lime; } -.💩--2i25 { background: lime; } -.\\\\?--2DX4 { background: lime; } -.\\\\@--mE1z { background: lime; } -.\\\\.--2hyg { background: lime; } -.\\\\3A \\\\)--2tSN { background: lime; } -.\\\\3A \\\\\`\\\\(--3G_T { background: lime; } -.\\\\31 23--jOxY { background: lime; } -.\\\\31 a2b3c--1_Xs { background: lime; } -.\\\\--dDVm { background: lime; } -.\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\>--2mic { background: lime; } -.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\.--2vJ9 { background: lime; } -.\\\\#--1cQh { background: lime; } -.\\\\#\\\\#--1u97 { background: lime; } -.\\\\#\\\\.\\\\#\\\\.\\\\#--2QoP { background: lime; } -.\\\\_--2vOX { background: lime; } -.\\\\{\\\\}--3lRh { background: lime; } -.\\\\#fake\\\\-id--1d23 { background: lime; } -.foo\\\\.bar--3ZJa { background: lime; } -.\\\\3A hover--1EAJ { background: lime; } -.\\\\3A hover\\\\3A focus\\\\3A active--1v8f { background: lime; } -.\\\\[attr\\\\=value\\\\]--2y3U { background: lime; } -.f\\\\/o\\\\/o--OYOz { background: lime; } -.f\\\\\\\\o\\\\\\\\o--1Knj { background: lime; } -.f\\\\*o\\\\*o--3sRc { background: lime; } -.f\\\\!o\\\\!o--3x3B { background: lime; } -.f\\\\'o\\\\'o--2fVl { background: lime; } -.f\\\\~o\\\\~o--lYb3 { background: lime; } -.f\\\\+o\\\\+o--38BA { background: lime; } - -.foo\\\\/bar--36uD { - background: hotpink; +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/urls/source.css", + "._a { + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png#?iefix); + background: url(\\"#hash\\"); + background: url(\\"#\\"); + background: url(data:image/png;base64,AAA); + background: url(http://example.com/image.jpg); + background: url(//example.com/image.png); + background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; } +", + "", + ], +] +`; -.foo\\\\\\\\bar--2KL0 { - background: hotpink; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -.foo\\\\/bar\\\\/baz--oTEb { - background: hotpink; -} +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -.foo\\\\\\\\bar\\\\\\\\baz--2Id2 { - background: hotpink; +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); +// Module +exports.push([module.id, \\"._1goi1QVFtUMjX82JoFfLLJ {\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n\\\\tbackground: url(\\\\\\"#hash\\\\\\");\\\\n\\\\tbackground: url(\\\\\\"#\\\\\\");\\\\n\\\\tbackground: url(data:image/png;base64,AAA);\\\\n\\\\tbackground: url(http://example.com/image.jpg);\\\\n\\\\tbackground: url(//example.com/image.png);\\\\n\\\\tbackground: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") xyz;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"a\\": \\"_1goi1QVFtUMjX82JoFfLLJ\\" +};" +`; + +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/urls/source.css", + "._1goi1QVFtUMjX82JoFfLLJ { + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png#?iefix); + background: url(\\"#hash\\"); + background: url(\\"#\\"); + background: url(data:image/png;base64,AAA); + background: url(http://example.com/image.jpg); + background: url(//example.com/image.png); + background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(/webpack/public/path/img.png) url(\\"/webpack/public/path/img img.png\\") xyz; } ", "", @@ -6848,29 +7912,31 @@ Array [ ] `; -exports[`modules should correctly replace escaped symbols in selector with localIdentName option: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -exports[`modules should have an undefined context if no context was given: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -exports[`modules should have an undefined context if no context was given: locals 1`] = ` -Object { - "abc": "foo", - "def": "foo", - "ghi": "foo", - "jkl": "foo", -} +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value aaa: red;\\\\n@value bbb: green;\\\\n@value ccc: aaa;\\\\n\\\\n.a {\\\\n\\\\tbackground: aaa;\\\\n\\\\tbackground: bbb;\\\\n\\\\tbackground: ccc;\\\\n}\\\\n\\", \\"\\"]); +" `; -exports[`modules should have an undefined context if no context was given: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`false)\`: result 1`] = ` Array [ Array [ - 1, - ".foo .foo { - color: red; -} + "./modules/tests-cases/values/source.css", + "@value aaa: red; +@value bbb: green; +@value ccc: aaa; -.foo .foo { - color: blue; +.a { + background: aaa; + background: bbb; + background: ccc; } ", "", @@ -6878,44 +7944,99 @@ Array [ ] `; -exports[`modules should have an undefined context if no context was given: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -exports[`modules should keep order: errors 1`] = `Array []`; +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a {\\\\n\\\\tbackground: red;\\\\n\\\\tbackground: green;\\\\n\\\\tbackground: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"aaa\\": \\"red\\", + \\"bbb\\": \\"green\\", + \\"ccc\\": \\"red\\" +};" +`; -exports[`modules should keep order: module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - 2, - "._2r9YTNQEwCk0bSiZCuc7Ol { - color: red; -} - -.He7W3er8OE_ZP1m7aP7eb { - color: aliceblue; + "./modules/tests-cases/values/source.css", + ".a { + background: red; + background: green; + background: red; } ", "", ], - Array [ - 3, - "._18ve634MAK3QtupmRo9lo3 { - color: blue; -} +] +`; -.z6vp19LKudIK0nOAVOTAc { - color: azure; +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._18yRHBx_s3xK1t_zOjEfo {\\\\n\\\\tbackground: red;\\\\n\\\\tbackground: green;\\\\n\\\\tbackground: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"aaa\\": \\"red\\", + \\"bbb\\": \\"green\\", + \\"ccc\\": \\"red\\", + \\"a\\": \\"_18yRHBx_s3xK1t_zOjEfo\\" +};" +`; + +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values/source.css", + "._18yRHBx_s3xK1t_zOjEfo { + background: red; + background: green; + background: red; } ", "", ], - Array [ - 1, - ".Wjk4jowq_W5p9UqAWNj8p { - display: block; -} +] +`; -._1hTJaGPJyAIYbIwkbYwOGW { - display: inline; +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".a {\\\\n\\\\tbackground: red;\\\\n\\\\tbackground: green;\\\\n\\\\tbackground: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"aaa\\": \\"red\\", + \\"bbb\\": \\"green\\", + \\"ccc\\": \\"red\\" +};" +`; + +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values/source.css", + ".a { + background: red; + background: green; + background: red; } ", "", @@ -6923,374 +8044,1656 @@ Array [ ] `; -exports[`modules should keep order: module 1`] = ` +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4-0!./order-1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??ref--4-0!./order-2.css\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); -exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module -exports.push([module.id, \\".Wjk4jowq_W5p9UqAWNj8p {\\\\n display: block;\\\\n}\\\\n\\\\n._1hTJaGPJyAIYbIwkbYwOGW {\\\\n display: inline;\\\\n}\\\\n\\", \\"\\"]); +exports.push([module.id, \\"._a {\\\\n\\\\tbackground: red;\\\\n\\\\tbackground: green;\\\\n\\\\tbackground: red;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { - \\"simple\\": \\"Wjk4jowq_W5p9UqAWNj8p \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"order-1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"order-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"order-1-1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"order-2-2\\"] + \\"\\", - \\"simple-other\\": \\"_1hTJaGPJyAIYbIwkbYwOGW \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"order-1\\"] + \\"\\" + \\"aaa\\": \\"red\\", + \\"bbb\\": \\"green\\", + \\"ccc\\": \\"red\\", + \\"a\\": \\"_a\\" };" `; -exports[`modules should keep order: warnings 1`] = `Array []`; - -exports[`modules should prefixes leading hyphen + digit with underscore with localIdentName option: errors 1`] = `Array []`; - -exports[`modules should prefixes leading hyphen + digit with underscore with localIdentName option: locals 1`] = ` -Object { - "#": "_-1#", - "##": "_-1##", - "#.#.#": "_-1#.#.#", - "#fake-id": "_-1#fake-id", - "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "_-1++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.", - "-a-b-c-": "_-1-a-b-c-", - "-a0-34a___f": "_-1-a0-34a___f", - ".": "_-1.", - "123": "_-1123", - "1a2b3c": "_-11a2b3c", - ":)": "_-1:)", - ":\`(": "_-1:\`(", - ":hover": "_-1:hover", - ":hover:focus:active": "_-1:hover:focus:active", - "<><<<>><>": "_-1<><<<>><>", - "

": "_-1

", - "?": "_-1?", - "@": "_-1@", - "B&W?": "_-1B&W?", - "[attr=value]": "_-1[attr=value]", - "_": "_-1_", - "_test": "_-1_test", - "className": "_-1className", - "f!o!o": "_-1f!o!o", - "f'o'o": "_-1f'o'o", - "f*o*o": "_-1f*o*o", - "f+o+o": "_-1f+o+o", - "f/o/o": "_-1f/o/o", - "f\\\\o\\\\o": "_-1f\\\\o\\\\o", - "foo.bar": "_-1foo.bar", - "foo/bar": "_-1foo/bar", - "foo/bar/baz": "_-1foo/bar/baz", - "foo\\\\bar": "_-1foo\\\\bar", - "foo\\\\bar\\\\baz": "_-1foo\\\\bar\\\\baz", - "f~o~o": "_-1f~o~o", - "m_x_@": "_-1m_x_@", - "someId": "_-1someId", - "subClass": "_-1subClass", - "test": "_-1test", - "{}": "_-1{}", - "©": "_-1©", - "“‘’”": "_-1“‘’”", - "⌘⌥": "_-1⌘⌥", - "☺☃": "_-1☺☃", - "♥": "_-1♥", - "𝄞♪♩♫♬": "_-1𝄞♪♩♫♬", - "💩": "_-1💩", -} -`; - -exports[`modules should prefixes leading hyphen + digit with underscore with localIdentName option: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._-1test { - background: red; -} - -._-1_test { - background: blue; -} - -._-1className { - background: red; +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values/source.css", + "._a { + background: red; + background: green; + background: red; } +", + "", + ], +] +`; -#_-1someId { - background: green; -} +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -._-1className ._-1subClass { - color: green; -} +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -#_-1someId ._-1subClass { - color: blue; -} +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._18yRHBx_s3xK1t_zOjEfo {\\\\n\\\\tbackground: red;\\\\n\\\\tbackground: green;\\\\n\\\\tbackground: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"aaa\\": \\"red\\", + \\"bbb\\": \\"green\\", + \\"ccc\\": \\"red\\", + \\"a\\": \\"_18yRHBx_s3xK1t_zOjEfo\\" +};" +`; -._-1-a0-34a___f { - color: red; +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values/source.css", + "._18yRHBx_s3xK1t_zOjEfo { + background: red; + background: green; + background: red; } +", + "", + ], +] +`; -._-1m_x_\\\\@ { - margin-left: auto !important; - margin-right: auto !important; -} +exports[`"modules" option should work with case \`values\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -._-1B\\\\&W\\\\? { - margin-left: auto !important; - margin-right: auto !important; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -/* matches elements with class=\\":\`(\\" */ -._-1\\\\3A \\\\\`\\\\( { - color: aqua; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value def: red;\\\\n@value ghi: 1px solid black;\\\\n\\", \\"\\"]); +" +`; -/* matches elements with class=\\"1a2b3c\\" */ -._-1\\\\31 a2b3c { - color: aliceblue; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-1/source.css", + "@value def: red; +@value ghi: 1px solid black; +", + "", + ], +] +`; -/* matches the element with id=\\"#fake-id\\" */ -#_-1\\\\#fake-id { - color: antiquewhite; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -/* matches the element with id=\\"-a-b-c-\\" */ -#_-1-a-b-c- { - color: azure; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -/* matches the element with id=\\"©\\" */ -#_-1© { - color: black; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"ghi\\": \\"1px solid black\\" +};" +`; -._-1♥ { background: lime; } -._-1© { background: lime; } -._-1“‘’” { background: lime; } -._-1☺☃ { background: lime; } -._-1⌘⌥ { background: lime; } -._-1𝄞♪♩♫♬ { background: lime; } -._-1💩 { background: lime; } -._-1\\\\? { background: lime; } -._-1\\\\@ { background: lime; } -._-1\\\\. { background: lime; } -._-1\\\\3A \\\\) { background: lime; } -._-1\\\\3A \\\\\`\\\\( { background: lime; } -._-1\\\\31 23 { background: lime; } -._-1\\\\31 a2b3c { background: lime; } -._-1\\\\ { background: lime; } -._-1\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\> { background: lime; } -._-1\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\. { background: lime; } -._-1\\\\# { background: lime; } -._-1\\\\#\\\\# { background: lime; } -._-1\\\\#\\\\.\\\\#\\\\.\\\\# { background: lime; } -._-1\\\\_ { background: lime; } -._-1\\\\{\\\\} { background: lime; } -._-1\\\\#fake\\\\-id { background: lime; } -._-1foo\\\\.bar { background: lime; } -._-1\\\\3A hover { background: lime; } -._-1\\\\3A hover\\\\3A focus\\\\3A active { background: lime; } -._-1\\\\[attr\\\\=value\\\\] { background: lime; } -._-1f\\\\/o\\\\/o { background: lime; } -._-1f\\\\\\\\o\\\\\\\\o { background: lime; } -._-1f\\\\*o\\\\*o { background: lime; } -._-1f\\\\!o\\\\!o { background: lime; } -._-1f\\\\'o\\\\'o { background: lime; } -._-1f\\\\~o\\\\~o { background: lime; } -._-1f\\\\+o\\\\+o { background: lime; } +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-1/source.css", + " +", + "", + ], +] +`; -._-1foo\\\\/bar { - background: hotpink; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -._-1foo\\\\\\\\bar { - background: hotpink; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -._-1foo\\\\/bar\\\\/baz { - background: hotpink; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"ghi\\": \\"1px solid black\\" +};" +`; -._-1foo\\\\\\\\bar\\\\\\\\baz { - background: hotpink; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-1/source.css", + " ", "", ], ] `; -exports[`modules should prefixes leading hyphen + digit with underscore with localIdentName option: warnings 1`] = `Array []`; - -exports[`modules should prefixes two leading hyphens with underscore with localIdentName option: errors 1`] = `Array []`; - -exports[`modules should prefixes two leading hyphens with underscore with localIdentName option: locals 1`] = ` -Object { - "#": "_--#", - "##": "_--##", - "#.#.#": "_--#.#.#", - "#fake-id": "_--#fake-id", - "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "_--++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.", - "-a-b-c-": "_---a-b-c-", - "-a0-34a___f": "_---a0-34a___f", - ".": "_--.", - "123": "_--123", - "1a2b3c": "_--1a2b3c", - ":)": "_--:)", - ":\`(": "_--:\`(", - ":hover": "_--:hover", - ":hover:focus:active": "_--:hover:focus:active", - "<><<<>><>": "_--<><<<>><>", - "

": "_--

", - "?": "_--?", - "@": "_--@", - "B&W?": "_--B&W?", - "[attr=value]": "_--[attr=value]", - "_": "_--_", - "_test": "_--_test", - "className": "_--className", - "f!o!o": "_--f!o!o", - "f'o'o": "_--f'o'o", - "f*o*o": "_--f*o*o", - "f+o+o": "_--f+o+o", - "f/o/o": "_--f/o/o", - "f\\\\o\\\\o": "_--f\\\\o\\\\o", - "foo.bar": "_--foo.bar", - "foo/bar": "_--foo/bar", - "foo/bar/baz": "_--foo/bar/baz", - "foo\\\\bar": "_--foo\\\\bar", - "foo\\\\bar\\\\baz": "_--foo\\\\bar\\\\baz", - "f~o~o": "_--f~o~o", - "m_x_@": "_--m_x_@", - "someId": "_--someId", - "subClass": "_--subClass", - "test": "_--test", - "{}": "_--{}", - "©": "_--©", - "“‘’”": "_--“‘’”", - "⌘⌥": "_--⌘⌥", - "☺☃": "_--☺☃", - "♥": "_--♥", - "𝄞♪♩♫♬": "_--𝄞♪♩♫♬", - "💩": "_--💩", -} -`; - -exports[`modules should prefixes two leading hyphens with underscore with localIdentName option: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._--test { - background: red; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -._--_test { - background: blue; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -._--className { - background: red; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"ghi\\": \\"1px solid black\\" +};" +`; -#_--someId { - background: green; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-1/source.css", + " +", + "", + ], +] +`; -._--className ._--subClass { - color: green; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -#_--someId ._--subClass { - color: blue; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -._---a0-34a___f { - color: red; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"ghi\\": \\"1px solid black\\" +};" +`; -._--m_x_\\\\@ { - margin-left: auto !important; - margin-right: auto !important; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-1/source.css", + " +", + "", + ], +] +`; -._--B\\\\&W\\\\? { - margin-left: auto !important; - margin-right: auto !important; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -/* matches elements with class=\\":\`(\\" */ -._--\\\\3A \\\\\`\\\\( { - color: aqua; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -/* matches elements with class=\\"1a2b3c\\" */ -._--\\\\31 a2b3c { - color: aliceblue; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"ghi\\": \\"1px solid black\\" +};" +`; -/* matches the element with id=\\"#fake-id\\" */ -#_--\\\\#fake-id { - color: antiquewhite; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-1/source.css", + " +", + "", + ], +] +`; -/* matches the element with id=\\"-a-b-c-\\" */ -#_---a-b-c- { - color: azure; -} +exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -/* matches the element with id=\\"©\\" */ -#_--© { - color: black; -} +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -._--♥ { background: lime; } -._--© { background: lime; } -._--“‘’” { background: lime; } -._--☺☃ { background: lime; } -._--⌘⌥ { background: lime; } -._--𝄞♪♩♫♬ { background: lime; } -._--💩 { background: lime; } -._--\\\\? { background: lime; } -._--\\\\@ { background: lime; } -._--\\\\. { background: lime; } -._--\\\\3A \\\\) { background: lime; } -._--\\\\3A \\\\\`\\\\( { background: lime; } -._--\\\\31 23 { background: lime; } -._--\\\\31 a2b3c { background: lime; } -._--\\\\ { background: lime; } -._--\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\> { background: lime; } -._--\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\. { background: lime; } -._--\\\\# { background: lime; } -._--\\\\#\\\\# { background: lime; } -._--\\\\#\\\\.\\\\#\\\\.\\\\# { background: lime; } -._--\\\\_ { background: lime; } -._--\\\\{\\\\} { background: lime; } -._--\\\\#fake\\\\-id { background: lime; } -._--foo\\\\.bar { background: lime; } -._--\\\\3A hover { background: lime; } -._--\\\\3A hover\\\\3A focus\\\\3A active { background: lime; } -._--\\\\[attr\\\\=value\\\\] { background: lime; } -._--f\\\\/o\\\\/o { background: lime; } -._--f\\\\\\\\o\\\\\\\\o { background: lime; } -._--f\\\\*o\\\\*o { background: lime; } -._--f\\\\!o\\\\!o { background: lime; } -._--f\\\\'o\\\\'o { background: lime; } -._--f\\\\~o\\\\~o { background: lime; } -._--f\\\\+o\\\\+o { background: lime; } +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value def: red;\\\\n.ghi { color: def; }\\\\n\\", \\"\\"]); +" +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-2/source.css", + "@value def: red; +.ghi { color: def; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".ghi { color: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\" +};" +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-2/source.css", + ".ghi { color: red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._2aKAT4pAinaabqEIFgdhTC { color: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"ghi\\": \\"_2aKAT4pAinaabqEIFgdhTC\\" +};" +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-2/source.css", + "._2aKAT4pAinaabqEIFgdhTC { color: red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".ghi { color: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\" +};" +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-2/source.css", + ".ghi { color: red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._ghi { color: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"ghi\\": \\"_ghi\\" +};" +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-2/source.css", + "._ghi { color: red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._2aKAT4pAinaabqEIFgdhTC { color: red; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"ghi\\": \\"_2aKAT4pAinaabqEIFgdhTC\\" +};" +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-2/source.css", + "._2aKAT4pAinaabqEIFgdhTC { color: red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value def from './file.css';\\\\n.ghi { color: def; }\\\\n\\", \\"\\"]); +" +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-3/source.css", + "@value def from './file.css'; +.ghi { color: def; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".ghi { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" +};" +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-3/file.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-3/source.css", + ".ghi { color: red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._29ART3-NNe4DU1X-5_7419 { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", + \\"ghi\\": \\"_29ART3-NNe4DU1X-5_7419\\" +};" +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-3/file.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-3/source.css", + "._29ART3-NNe4DU1X-5_7419 { color: red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".ghi { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" +};" +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-3/file.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-3/source.css", + ".ghi { color: red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._ghi { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", + \\"ghi\\": \\"_ghi\\" +};" +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-3/file.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-3/source.css", + "._ghi { color: red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._29ART3-NNe4DU1X-5_7419 { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", + \\"ghi\\": \\"_29ART3-NNe4DU1X-5_7419\\" +};" +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-3/file.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-3/source.css", + "._29ART3-NNe4DU1X-5_7419 { color: red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value def as aaa from './file1.css';\\\\n@value def as bbb from './file2.css';\\\\n.ghi { background: aaa, bbb, def; }\\\\n\\", \\"\\"]); +" +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-4/source.css", + "@value def as aaa from './file1.css'; +@value def as bbb from './file2.css'; +.ghi { background: aaa, bbb, def; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\".ghi { background: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\", \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\", def; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"aaa\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", + \\"bbb\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\"\\" +};" +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-4/file1.css", + " +", + "", + ], + Array [ + "../../src/index.js?!./modules/tests-cases/values-4/file2.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-4/source.css", + ".ghi { background: red, green, def; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\"._1vGjNPdz_qWrUvzTY2pCsS { background: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\", \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\", def; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"aaa\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", + \\"bbb\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\"\\", + \\"ghi\\": \\"_1vGjNPdz_qWrUvzTY2pCsS\\" +};" +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-4/file1.css", + " +", + "", + ], + Array [ + "../../src/index.js?!./modules/tests-cases/values-4/file2.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-4/source.css", + "._1vGjNPdz_qWrUvzTY2pCsS { background: red, green, def; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\".ghi { background: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\", \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\", def; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"aaa\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", + \\"bbb\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\"\\" +};" +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-4/file1.css", + " +", + "", + ], + Array [ + "../../src/index.js?!./modules/tests-cases/values-4/file2.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-4/source.css", + ".ghi { background: red, green, def; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\"._ghi { background: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\", \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\", def; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"aaa\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", + \\"bbb\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\"\\", + \\"ghi\\": \\"_ghi\\" +};" +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-4/file1.css", + " +", + "", + ], + Array [ + "../../src/index.js?!./modules/tests-cases/values-4/file2.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-4/source.css", + "._ghi { background: red, green, def; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___); +// Module +exports.push([module.id, \\"._1vGjNPdz_qWrUvzTY2pCsS { background: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\", \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\", def; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"aaa\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", + \\"bbb\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\"\\", + \\"ghi\\": \\"_1vGjNPdz_qWrUvzTY2pCsS\\" +};" +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-4/file1.css", + " +", + "", + ], + Array [ + "../../src/index.js?!./modules/tests-cases/values-4/file2.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-4/source.css", + "._1vGjNPdz_qWrUvzTY2pCsS { background: red, green, def; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value color from './file1.css';\\\\n@value shadow: 0 0 color,0 0 color;\\\\n.ghi { box-shadow: shadow; }\\\\n\\", \\"\\"]); +" +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-5/source.css", + "@value color from './file1.css'; +@value shadow: 0 0 color,0 0 color; +.ghi { box-shadow: shadow; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" +};" +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-5/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-5/source.css", + ".ghi { box-shadow: 0 0 red,0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._3Uw-A6Tr2LkIED6NTqwFvj { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"ghi\\": \\"_3Uw-A6Tr2LkIED6NTqwFvj\\" +};" +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-5/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-5/source.css", + "._3Uw-A6Tr2LkIED6NTqwFvj { box-shadow: 0 0 red,0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" +};" +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-5/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-5/source.css", + ".ghi { box-shadow: 0 0 red,0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"ghi\\": \\"_ghi\\" +};" +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-5/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-5/source.css", + "._ghi { box-shadow: 0 0 red,0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._3Uw-A6Tr2LkIED6NTqwFvj { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"ghi\\": \\"_3Uw-A6Tr2LkIED6NTqwFvj\\" +};" +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-5/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-5/source.css", + "._3Uw-A6Tr2LkIED6NTqwFvj { box-shadow: 0 0 red,0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value color from './file1.css';\\\\n@value shadow: 0 0 color ,0 0 color;\\\\n.ghi { box-shadow: shadow; }\\\\n\\", \\"\\"]); +" +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-6/source.css", + "@value color from './file1.css'; +@value shadow: 0 0 color ,0 0 color; +.ghi { box-shadow: shadow; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" +};" +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-6/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-6/source.css", + ".ghi { box-shadow: 0 0 red ,0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._2qKjolC-wu9Dp8-RCkWiLN { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"ghi\\": \\"_2qKjolC-wu9Dp8-RCkWiLN\\" +};" +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-6/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-6/source.css", + "._2qKjolC-wu9Dp8-RCkWiLN { box-shadow: 0 0 red ,0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" +};" +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-6/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-6/source.css", + ".ghi { box-shadow: 0 0 red ,0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"ghi\\": \\"_ghi\\" +};" +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-6/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-6/source.css", + "._ghi { box-shadow: 0 0 red ,0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._2qKjolC-wu9Dp8-RCkWiLN { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"ghi\\": \\"_2qKjolC-wu9Dp8-RCkWiLN\\" +};" +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-6/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-6/source.css", + "._2qKjolC-wu9Dp8-RCkWiLN { box-shadow: 0 0 red ,0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value color from './file1.css';\\\\n@value shadow: 0 0 color, 0 0 color;\\\\n.ghi { box-shadow: shadow; }\\\\n\\", \\"\\"]); +" +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-7/source.css", + "@value color from './file1.css'; +@value shadow: 0 0 color, 0 0 color; +.ghi { box-shadow: shadow; } +", + "", + ], +] +`; -._--foo\\\\/bar { - background: hotpink; +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" +};" +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-7/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-7/source.css", + ".ghi { box-shadow: 0 0 red, 0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._1SVUxnI1T0vYEcq2VXU5pr { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"ghi\\": \\"_1SVUxnI1T0vYEcq2VXU5pr\\" +};" +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-7/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-7/source.css", + "._1SVUxnI1T0vYEcq2VXU5pr { box-shadow: 0 0 red, 0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" +};" +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-7/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-7/source.css", + ".ghi { box-shadow: 0 0 red, 0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"ghi\\": \\"_ghi\\" +};" +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-7/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-7/source.css", + "._ghi { box-shadow: 0 0 red, 0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +// Module +exports.push([module.id, \\"._1SVUxnI1T0vYEcq2VXU5pr { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", + \\"ghi\\": \\"_1SVUxnI1T0vYEcq2VXU5pr\\" +};" +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./modules/tests-cases/values-7/file1.css", + " +", + "", + ], + Array [ + "./modules/tests-cases/values-7/source.css", + "._1SVUxnI1T0vYEcq2VXU5pr { box-shadow: 0 0 red, 0 0 red; } +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value shadow-color: rgba(0, 0, 0, 0.5);\\\\n\\\\n.shadow {\\\\n box-shadow: 0 10px 10px shadow-color,\\\\n 10px 0px 5px shadow-color;\\\\n}\\\\n\\", \\"\\"]); +" +`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-8/source.css", + "@value shadow-color: rgba(0, 0, 0, 0.5); + +.shadow { + box-shadow: 0 10px 10px shadow-color, + 10px 0px 5px shadow-color; } +", + "", + ], +] +`; -._--foo\\\\\\\\bar { - background: hotpink; +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".shadow {\\\\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),\\\\n 10px 0px 5px rgba(0, 0, 0, 0.5);\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"shadow-color\\": \\"rgba(0, 0, 0, 0.5)\\" +};" +`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-8/source.css", + ".shadow { + box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5), + 10px 0px 5px rgba(0, 0, 0, 0.5); } +", + "", + ], +] +`; -._--foo\\\\/bar\\\\/baz { - background: hotpink; +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._3fhB2YwAmhjTmtcd6ofBQH {\\\\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),\\\\n 10px 0px 5px rgba(0, 0, 0, 0.5);\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"shadow-color\\": \\"rgba(0, 0, 0, 0.5)\\", + \\"shadow\\": \\"_3fhB2YwAmhjTmtcd6ofBQH\\" +};" +`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-8/source.css", + "._3fhB2YwAmhjTmtcd6ofBQH { + box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5), + 10px 0px 5px rgba(0, 0, 0, 0.5); +} +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".shadow {\\\\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),\\\\n 10px 0px 5px rgba(0, 0, 0, 0.5);\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"shadow-color\\": \\"rgba(0, 0, 0, 0.5)\\" +};" +`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-8/source.css", + ".shadow { + box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5), + 10px 0px 5px rgba(0, 0, 0, 0.5); } +", + "", + ], +] +`; -._--foo\\\\\\\\bar\\\\\\\\baz { - background: hotpink; +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._shadow {\\\\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),\\\\n 10px 0px 5px rgba(0, 0, 0, 0.5);\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"shadow-color\\": \\"rgba(0, 0, 0, 0.5)\\", + \\"shadow\\": \\"_shadow\\" +};" +`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-8/source.css", + "._shadow { + box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5), + 10px 0px 5px rgba(0, 0, 0, 0.5); +} +", + "", + ], +] +`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._3fhB2YwAmhjTmtcd6ofBQH {\\\\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),\\\\n 10px 0px 5px rgba(0, 0, 0, 0.5);\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"shadow-color\\": \\"rgba(0, 0, 0, 0.5)\\", + \\"shadow\\": \\"_3fhB2YwAmhjTmtcd6ofBQH\\" +};" +`; + +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-8/source.css", + "._3fhB2YwAmhjTmtcd6ofBQH { + box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5), + 10px 0px 5px rgba(0, 0, 0, 0.5); } ", "", @@ -7298,178 +9701,104 @@ Array [ ] `; -exports[`modules should prefixes two leading hyphens with underscore with localIdentName option: warnings 1`] = `Array []`; - -exports[`modules should respects context option: errors 1`] = `Array []`; - -exports[`modules should respects context option: locals 1`] = ` -Object { - "#": "O8Yw611P", - "##": "_3er0DBiz", - "#.#.#": "_22RlZfs4", - "#fake-id": "_3i_zUQNU", - "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "_3hmdGGWi", - "-a-b-c-": "_1cY1s7c1", - "-a0-34a___f": "_3RHUZpqp", - ".": "nfd9MoI8", - "123": "_3JQcZq0t", - "1a2b3c": "_3IsxVsEE", - ":)": "_3EKgIWue", - ":\`(": "_3oWIzQc7", - ":hover": "B2whyhV4", - ":hover:focus:active": "_3R7r57b4", - "<><<<>><>": "Tr9vNLcW", - "

": "_3Lowms-R", - "?": "mRRxxKEQ", - "@": "_3ZlTEPhx", - "B&W?": "_3d3wghvo", - "[attr=value]": "_3GgRcos7", - "_": "_2V6oBdW4", - "_test": "_3Q--BATR", - "className": "_3wBIH6Tw", - "f!o!o": "_2pDEJqK-", - "f'o'o": "_3297Sjlr", - "f*o*o": "MI6DPcI5", - "f+o+o": "_3aNwyLoj", - "f/o/o": "jbPgrxdZ", - "f\\\\o\\\\o": "_3x1WTWOH", - "foo.bar": "_2FVtFG40", - "foo/bar": "_13Q-TIeR", - "foo/bar/baz": "_1I8mGSan", - "foo\\\\bar": "LKTPJkpW", - "foo\\\\bar\\\\baz": "xcAsBCbt", - "f~o~o": "_1TY6Bok1", - "m_x_@": "_3SfN7O2q", - "someId": "mxosG-Ww", - "subClass": "_3jIM-zUk", - "test": "_1Os7JVOf", - "{}": "_2ZR3d8gm", - "©": "_3QaoFt--", - "“‘’”": "_3xI9AT1p", - "⌘⌥": "_1V-to4Of", - "☺☃": "uy8uve6R", - "♥": "kO1_7SYu", - "𝄞♪♩♫♬": "_1tfs0VJo", - "💩": "_2Cl61yWh", -} -`; - -exports[`modules should respects context option: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._1Os7JVOf { - background: red; -} +exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; -._3Q--BATR { - background: blue; -} +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; -._3wBIH6Tw { - background: red; -} +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value def: red;\\\\n\\\\n.foo1 {\\\\n prop: func(def);\\\\n}\\\\n\\\\n.foo2 {\\\\n prop: func(10px def);\\\\n}\\\\n\\\\n.foo3 {\\\\n prop: func(def 10px);\\\\n}\\\\n\\\\n.foo4 {\\\\n prop: func(10px def 10px);\\\\n}\\\\n\\\\n.foo5 {\\\\n prop: func(10px, def);\\\\n}\\\\n\\\\n.foo6 {\\\\n prop: func(def, 10px);\\\\n}\\\\n\\\\n.foo7 {\\\\n prop: func(10px, def, 10px);\\\\n}\\\\n\\", \\"\\"]); +" +`; -#mxosG-Ww { - background: green; -} +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-9/source.css", + "@value def: red; -._3wBIH6Tw ._3jIM-zUk { - color: green; +.foo1 { + prop: func(def); } -#mxosG-Ww ._3jIM-zUk { - color: blue; +.foo2 { + prop: func(10px def); } -._3RHUZpqp { - color: red; +.foo3 { + prop: func(def 10px); } -._3SfN7O2q { - margin-left: auto !important; - margin-right: auto !important; +.foo4 { + prop: func(10px def 10px); } -._3d3wghvo { - margin-left: auto !important; - margin-right: auto !important; +.foo5 { + prop: func(10px, def); } -/* matches elements with class=\\":\`(\\" */ -._3oWIzQc7 { - color: aqua; +.foo6 { + prop: func(def, 10px); } -/* matches elements with class=\\"1a2b3c\\" */ -._3IsxVsEE { - color: aliceblue; +.foo7 { + prop: func(10px, def, 10px); } +", + "", + ], +] +`; -/* matches the element with id=\\"#fake-id\\" */ -#_3i_zUQNU { - color: antiquewhite; +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".foo1 {\\\\n prop: func(red);\\\\n}\\\\n\\\\n.foo2 {\\\\n prop: func(10px red);\\\\n}\\\\n\\\\n.foo3 {\\\\n prop: func(red 10px);\\\\n}\\\\n\\\\n.foo4 {\\\\n prop: func(10px red 10px);\\\\n}\\\\n\\\\n.foo5 {\\\\n prop: func(10px, red);\\\\n}\\\\n\\\\n.foo6 {\\\\n prop: func(red, 10px);\\\\n}\\\\n\\\\n.foo7 {\\\\n prop: func(10px, red, 10px);\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\" +};" +`; + +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-9/source.css", + ".foo1 { + prop: func(red); } -/* matches the element with id=\\"-a-b-c-\\" */ -#_1cY1s7c1 { - color: azure; +.foo2 { + prop: func(10px red); } -/* matches the element with id=\\"©\\" */ -#_3QaoFt-- { - color: black; +.foo3 { + prop: func(red 10px); } -.kO1_7SYu { background: lime; } -._3QaoFt-- { background: lime; } -._3xI9AT1p { background: lime; } -.uy8uve6R { background: lime; } -._1V-to4Of { background: lime; } -._1tfs0VJo { background: lime; } -._2Cl61yWh { background: lime; } -.mRRxxKEQ { background: lime; } -._3ZlTEPhx { background: lime; } -.nfd9MoI8 { background: lime; } -._3EKgIWue { background: lime; } -._3oWIzQc7 { background: lime; } -._3JQcZq0t { background: lime; } -._3IsxVsEE { background: lime; } -._3Lowms-R { background: lime; } -.Tr9vNLcW { background: lime; } -._3hmdGGWi { background: lime; } -.O8Yw611P { background: lime; } -._3er0DBiz { background: lime; } -._22RlZfs4 { background: lime; } -._2V6oBdW4 { background: lime; } -._2ZR3d8gm { background: lime; } -._3i_zUQNU { background: lime; } -._2FVtFG40 { background: lime; } -.B2whyhV4 { background: lime; } -._3R7r57b4 { background: lime; } -._3GgRcos7 { background: lime; } -.jbPgrxdZ { background: lime; } -._3x1WTWOH { background: lime; } -.MI6DPcI5 { background: lime; } -._2pDEJqK- { background: lime; } -._3297Sjlr { background: lime; } -._1TY6Bok1 { background: lime; } -._3aNwyLoj { background: lime; } - -._13Q-TIeR { - background: hotpink; +.foo4 { + prop: func(10px red 10px); } -.LKTPJkpW { - background: hotpink; +.foo5 { + prop: func(10px, red); } -._1I8mGSan { - background: hotpink; +.foo6 { + prop: func(red, 10px); } -.xcAsBCbt { - background: hotpink; +.foo7 { + prop: func(10px, red, 10px); } ", "", @@ -7477,29 +9806,59 @@ Array [ ] `; -exports[`modules should respects context option: warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -exports[`modules should respects getLocalIdent option (global mode): errors 1`] = `Array []`; +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -exports[`modules should respects getLocalIdent option (global mode): locals 1`] = ` -Object { - "abc": "foo", - "def": "foo", - "ghi": "foo", - "jkl": "foo", -} +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1V2U7x4U8oxxooLcDA25iL {\\\\n prop: func(red);\\\\n}\\\\n\\\\n._3E1mOwwzg7yDREAM1sTqrf {\\\\n prop: func(10px red);\\\\n}\\\\n\\\\n._1jURUggvUGFLzQ1zAWjNep {\\\\n prop: func(red 10px);\\\\n}\\\\n\\\\n._2gTeanreYt1oKNw6pvYDuQ {\\\\n prop: func(10px red 10px);\\\\n}\\\\n\\\\n._1FHimE7YIOvZ66qJzb5oD7 {\\\\n prop: func(10px, red);\\\\n}\\\\n\\\\n._2ZsNKxzBYz6NW_ITMiAbSo {\\\\n prop: func(red, 10px);\\\\n}\\\\n\\\\n._18TpSE38_jlCbLotZMXh67 {\\\\n prop: func(10px, red, 10px);\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"foo1\\": \\"_1V2U7x4U8oxxooLcDA25iL\\", + \\"foo2\\": \\"_3E1mOwwzg7yDREAM1sTqrf\\", + \\"foo3\\": \\"_1jURUggvUGFLzQ1zAWjNep\\", + \\"foo4\\": \\"_2gTeanreYt1oKNw6pvYDuQ\\", + \\"foo5\\": \\"_1FHimE7YIOvZ66qJzb5oD7\\", + \\"foo6\\": \\"_2ZsNKxzBYz6NW_ITMiAbSo\\", + \\"foo7\\": \\"_18TpSE38_jlCbLotZMXh67\\" +};" `; -exports[`modules should respects getLocalIdent option (global mode): module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - 1, - ".foo .foo { - color: red; + "./modules/tests-cases/values-9/source.css", + "._1V2U7x4U8oxxooLcDA25iL { + prop: func(red); } -.foo .foo { - color: blue; +._3E1mOwwzg7yDREAM1sTqrf { + prop: func(10px red); +} + +._1jURUggvUGFLzQ1zAWjNep { + prop: func(red 10px); +} + +._2gTeanreYt1oKNw6pvYDuQ { + prop: func(10px red 10px); +} + +._1FHimE7YIOvZ66qJzb5oD7 { + prop: func(10px, red); +} + +._2ZsNKxzBYz6NW_ITMiAbSo { + prop: func(red, 10px); +} + +._18TpSE38_jlCbLotZMXh67 { + prop: func(10px, red, 10px); } ", "", @@ -7507,29 +9866,52 @@ Array [ ] `; -exports[`modules should respects getLocalIdent option (global mode): warnings 1`] = `Array []`; +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -exports[`modules should respects getLocalIdent option (local mode): errors 1`] = `Array []`; +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -exports[`modules should respects getLocalIdent option (local mode): locals 1`] = ` -Object { - "abc": "foo", - "def": "foo", - "ghi": "foo", - "jkl": "foo", -} +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".foo1 {\\\\n prop: func(red);\\\\n}\\\\n\\\\n.foo2 {\\\\n prop: func(10px red);\\\\n}\\\\n\\\\n.foo3 {\\\\n prop: func(red 10px);\\\\n}\\\\n\\\\n.foo4 {\\\\n prop: func(10px red 10px);\\\\n}\\\\n\\\\n.foo5 {\\\\n prop: func(10px, red);\\\\n}\\\\n\\\\n.foo6 {\\\\n prop: func(red, 10px);\\\\n}\\\\n\\\\n.foo7 {\\\\n prop: func(10px, red, 10px);\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\" +};" `; -exports[`modules should respects getLocalIdent option (local mode): module (evaluated) 1`] = ` +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - 1, - ".foo .foo { - color: red; + "./modules/tests-cases/values-9/source.css", + ".foo1 { + prop: func(red); } -.foo .foo { - color: blue; +.foo2 { + prop: func(10px red); +} + +.foo3 { + prop: func(red 10px); +} + +.foo4 { + prop: func(10px red 10px); +} + +.foo5 { + prop: func(10px, red); +} + +.foo6 { + prop: func(red, 10px); +} + +.foo7 { + prop: func(10px, red, 10px); } ", "", @@ -7537,178 +9919,160 @@ Array [ ] `; -exports[`modules should respects getLocalIdent option (local mode): warnings 1`] = `Array []`; - -exports[`modules should respects hashPrefix option with localIdentName option: errors 1`] = `Array []`; - -exports[`modules should respects hashPrefix option with localIdentName option: locals 1`] = ` -Object { - "#": "#--8caa1febb853c79bc5740a51d69b0603", - "##": "##--e6e70cede894cf8ecef86891b00438fa", - "#.#.#": "#.#.#--f93b20473b91262c9634348506fe36fe", - "#fake-id": "#fake-id--a0d1d29b3c920aa3985fb11586f994e6", - "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.--937528d96919903e5a5172d04ced259a", - "-a-b-c-": "-a-b-c---5b1d694462fbb9af324bb0ed2a08d755", - "-a0-34a___f": "-a0-34a___f--e99d667fe0ceff9363b011302ac3f508", - ".": ".--12cd2fe5f9c81510bf687df3b6461cb1", - "123": "123--e5bcdf25b52ca483d65894eae427ccff", - "1a2b3c": "1a2b3c--165cab18879cee9a48ae4cbb5fdd39a8", - ":)": ":)--2f61aa454a9e7fd205da87e665dff51b", - ":\`(": ":\`(--612466e663a46fe230e6db648089b4c4", - ":hover": ":hover--af8b669c2dc29371d450d428f0bfa5d2", - ":hover:focus:active": ":hover:focus:active--5c55d7a925c8ee5de2e8f175badce4d6", - "<><<<>><>": "<><<<>><>--ac5886bfd5b1a8264bdda01deaf52762", - "

": "

--c168cd4e00ec053d5bd509da80f5db38", - "?": "?--4f09eb0a56c6b8f25f7ef4def006df7e", - "@": "@--254139a6858615f890093da92bb4c90b", - "B&W?": "B&W?--8c20b8856e47b8157bf47451b1b6d9a6", - "[attr=value]": "[attr=value]--db83b30c2535d713bd9f8fd195909f24", - "_": "_--f18cdd3b2ff360c3f4c10cc7559ff003", - "_test": "_test--d745495d407559ef605c9072243801fd", - "className": "className--eab624d1bc6b9c6b6a4278d1030dd690", - "f!o!o": "f!o!o--ea3b21fd9d4327fbc9d8b949a2bd5823", - "f'o'o": "f'o'o--95fe160ec21a5b70221e47b09b21fcd2", - "f*o*o": "f*o*o--a5f60f217da867c314860c5b2e28bbfd", - "f+o+o": "f+o+o--1e99689a1b3985adff358f3bd4aea7ed", - "f/o/o": "f/o/o--5de918433a006304ca487065b8626dd4", - "f\\\\o\\\\o": "f\\\\o\\\\o--e9ae2e1857289425acfa40a3f741babd", - "foo.bar": "foo.bar--e1dfb05dd5c7c36228cc87fe2cd0c6b1", - "foo/bar": "foo/bar--5b852e67587217ab19651f30a9b4df53", - "foo/bar/baz": "foo/bar/baz--d917a2cf9531290fbf3aa43e0cc0520f", - "foo\\\\bar": "foo\\\\bar--6cf70ff94feb1257af10e9ddcc47d54f", - "foo\\\\bar\\\\baz": "foo\\\\bar\\\\baz--1900aa5b4b5b2443299cc5e8afa9b3b4", - "f~o~o": "f~o~o--b9707d2eae11417a88a3f638b64eca30", - "m_x_@": "m_x_@--de463fc45a1e6dd0ed23f26a568f1d61", - "someId": "someId--a0ce220cc9bbb1ee0e85cc0d1f0c6aa9", - "subClass": "subClass--2c82998be8a2b2e94ad7be56c9e685cd", - "test": "test--307c32aa793aaec9aecded85a9fdd448", - "{}": "{}--6db4a8e6a78415e8209253db0c3dd7c5", - "©": "©--074c8458dd077a052783bb5f4c5b5911", - "“‘’”": "“‘’”--00f526c32cd5eec8f5de2965f2ca9457", - "⌘⌥": "⌘⌥--c42685a7cfeb3b510a6d8169d58bf02d", - "☺☃": "☺☃--0ea31e7c348b5949a05bce4eebcb59eb", - "♥": "♥--37952b59a9aa684be1d91192f863babf", - "𝄞♪♩♫♬": "𝄞♪♩♫♬--ece85fb9868788feab6a8f1259b9ff9d", - "💩": "💩--1c19fe6dd9ca556af34bbda8a2cbbbdf", -} -`; - -exports[`modules should respects hashPrefix option with localIdentName option: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".test--307c32aa793aaec9aecded85a9fdd448 { - background: red; -} +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -._test--d745495d407559ef605c9072243801fd { - background: blue; +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._foo1 {\\\\n prop: func(red);\\\\n}\\\\n\\\\n._foo2 {\\\\n prop: func(10px red);\\\\n}\\\\n\\\\n._foo3 {\\\\n prop: func(red 10px);\\\\n}\\\\n\\\\n._foo4 {\\\\n prop: func(10px red 10px);\\\\n}\\\\n\\\\n._foo5 {\\\\n prop: func(10px, red);\\\\n}\\\\n\\\\n._foo6 {\\\\n prop: func(red, 10px);\\\\n}\\\\n\\\\n._foo7 {\\\\n prop: func(10px, red, 10px);\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"foo1\\": \\"_foo1\\", + \\"foo2\\": \\"_foo2\\", + \\"foo3\\": \\"_foo3\\", + \\"foo4\\": \\"_foo4\\", + \\"foo5\\": \\"_foo5\\", + \\"foo6\\": \\"_foo6\\", + \\"foo7\\": \\"_foo7\\" +};" +`; + +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-9/source.css", + "._foo1 { + prop: func(red); } -.className--eab624d1bc6b9c6b6a4278d1030dd690 { - background: red; +._foo2 { + prop: func(10px red); } -#someId--a0ce220cc9bbb1ee0e85cc0d1f0c6aa9 { - background: green; +._foo3 { + prop: func(red 10px); } -.className--eab624d1bc6b9c6b6a4278d1030dd690 .subClass--2c82998be8a2b2e94ad7be56c9e685cd { - color: green; +._foo4 { + prop: func(10px red 10px); } -#someId--a0ce220cc9bbb1ee0e85cc0d1f0c6aa9 .subClass--2c82998be8a2b2e94ad7be56c9e685cd { - color: blue; +._foo5 { + prop: func(10px, red); } -.-a0-34a___f--e99d667fe0ceff9363b011302ac3f508 { - color: red; +._foo6 { + prop: func(red, 10px); } -.m_x_\\\\@--de463fc45a1e6dd0ed23f26a568f1d61 { - margin-left: auto !important; - margin-right: auto !important; +._foo7 { + prop: func(10px, red, 10px); } +", + "", + ], +] +`; -.B\\\\&W\\\\?--8c20b8856e47b8157bf47451b1b6d9a6 { - margin-left: auto !important; - margin-right: auto !important; +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._1V2U7x4U8oxxooLcDA25iL {\\\\n prop: func(red);\\\\n}\\\\n\\\\n._3E1mOwwzg7yDREAM1sTqrf {\\\\n prop: func(10px red);\\\\n}\\\\n\\\\n._1jURUggvUGFLzQ1zAWjNep {\\\\n prop: func(red 10px);\\\\n}\\\\n\\\\n._2gTeanreYt1oKNw6pvYDuQ {\\\\n prop: func(10px red 10px);\\\\n}\\\\n\\\\n._1FHimE7YIOvZ66qJzb5oD7 {\\\\n prop: func(10px, red);\\\\n}\\\\n\\\\n._2ZsNKxzBYz6NW_ITMiAbSo {\\\\n prop: func(red, 10px);\\\\n}\\\\n\\\\n._18TpSE38_jlCbLotZMXh67 {\\\\n prop: func(10px, red, 10px);\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"def\\": \\"red\\", + \\"foo1\\": \\"_1V2U7x4U8oxxooLcDA25iL\\", + \\"foo2\\": \\"_3E1mOwwzg7yDREAM1sTqrf\\", + \\"foo3\\": \\"_1jURUggvUGFLzQ1zAWjNep\\", + \\"foo4\\": \\"_2gTeanreYt1oKNw6pvYDuQ\\", + \\"foo5\\": \\"_1FHimE7YIOvZ66qJzb5oD7\\", + \\"foo6\\": \\"_2ZsNKxzBYz6NW_ITMiAbSo\\", + \\"foo7\\": \\"_18TpSE38_jlCbLotZMXh67\\" +};" +`; + +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-9/source.css", + "._1V2U7x4U8oxxooLcDA25iL { + prop: func(red); } -/* matches elements with class=\\":\`(\\" */ -.\\\\3A \\\\\`\\\\(--612466e663a46fe230e6db648089b4c4 { - color: aqua; +._3E1mOwwzg7yDREAM1sTqrf { + prop: func(10px red); } -/* matches elements with class=\\"1a2b3c\\" */ -.\\\\31 a2b3c--165cab18879cee9a48ae4cbb5fdd39a8 { - color: aliceblue; +._1jURUggvUGFLzQ1zAWjNep { + prop: func(red 10px); } -/* matches the element with id=\\"#fake-id\\" */ -#\\\\#fake-id--a0d1d29b3c920aa3985fb11586f994e6 { - color: antiquewhite; +._2gTeanreYt1oKNw6pvYDuQ { + prop: func(10px red 10px); } -/* matches the element with id=\\"-a-b-c-\\" */ -#-a-b-c---5b1d694462fbb9af324bb0ed2a08d755 { - color: azure; +._1FHimE7YIOvZ66qJzb5oD7 { + prop: func(10px, red); } -/* matches the element with id=\\"©\\" */ -#©--074c8458dd077a052783bb5f4c5b5911 { - color: black; +._2ZsNKxzBYz6NW_ITMiAbSo { + prop: func(red, 10px); } -.♥--37952b59a9aa684be1d91192f863babf { background: lime; } -.©--074c8458dd077a052783bb5f4c5b5911 { background: lime; } -.“‘’”--00f526c32cd5eec8f5de2965f2ca9457 { background: lime; } -.☺☃--0ea31e7c348b5949a05bce4eebcb59eb { background: lime; } -.⌘⌥--c42685a7cfeb3b510a6d8169d58bf02d { background: lime; } -.𝄞♪♩♫♬--ece85fb9868788feab6a8f1259b9ff9d { background: lime; } -.💩--1c19fe6dd9ca556af34bbda8a2cbbbdf { background: lime; } -.\\\\?--4f09eb0a56c6b8f25f7ef4def006df7e { background: lime; } -.\\\\@--254139a6858615f890093da92bb4c90b { background: lime; } -.\\\\.--12cd2fe5f9c81510bf687df3b6461cb1 { background: lime; } -.\\\\3A \\\\)--2f61aa454a9e7fd205da87e665dff51b { background: lime; } -.\\\\3A \\\\\`\\\\(--612466e663a46fe230e6db648089b4c4 { background: lime; } -.\\\\31 23--e5bcdf25b52ca483d65894eae427ccff { background: lime; } -.\\\\31 a2b3c--165cab18879cee9a48ae4cbb5fdd39a8 { background: lime; } -.\\\\--c168cd4e00ec053d5bd509da80f5db38 { background: lime; } -.\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\>--ac5886bfd5b1a8264bdda01deaf52762 { background: lime; } -.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\.--937528d96919903e5a5172d04ced259a { background: lime; } -.\\\\#--8caa1febb853c79bc5740a51d69b0603 { background: lime; } -.\\\\#\\\\#--e6e70cede894cf8ecef86891b00438fa { background: lime; } -.\\\\#\\\\.\\\\#\\\\.\\\\#--f93b20473b91262c9634348506fe36fe { background: lime; } -.\\\\_--f18cdd3b2ff360c3f4c10cc7559ff003 { background: lime; } -.\\\\{\\\\}--6db4a8e6a78415e8209253db0c3dd7c5 { background: lime; } -.\\\\#fake\\\\-id--a0d1d29b3c920aa3985fb11586f994e6 { background: lime; } -.foo\\\\.bar--e1dfb05dd5c7c36228cc87fe2cd0c6b1 { background: lime; } -.\\\\3A hover--af8b669c2dc29371d450d428f0bfa5d2 { background: lime; } -.\\\\3A hover\\\\3A focus\\\\3A active--5c55d7a925c8ee5de2e8f175badce4d6 { background: lime; } -.\\\\[attr\\\\=value\\\\]--db83b30c2535d713bd9f8fd195909f24 { background: lime; } -.f\\\\/o\\\\/o--5de918433a006304ca487065b8626dd4 { background: lime; } -.f\\\\\\\\o\\\\\\\\o--e9ae2e1857289425acfa40a3f741babd { background: lime; } -.f\\\\*o\\\\*o--a5f60f217da867c314860c5b2e28bbfd { background: lime; } -.f\\\\!o\\\\!o--ea3b21fd9d4327fbc9d8b949a2bd5823 { background: lime; } -.f\\\\'o\\\\'o--95fe160ec21a5b70221e47b09b21fcd2 { background: lime; } -.f\\\\~o\\\\~o--b9707d2eae11417a88a3f638b64eca30 { background: lime; } -.f\\\\+o\\\\+o--1e99689a1b3985adff358f3bd4aea7ed { background: lime; } - -.foo\\\\/bar--5b852e67587217ab19651f30a9b4df53 { - background: hotpink; +._18TpSE38_jlCbLotZMXh67 { + prop: func(10px, red, 10px); } +", + "", + ], +] +`; -.foo\\\\\\\\bar--6cf70ff94feb1257af10e9ddcc47d54f { - background: hotpink; +exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`false)\`: errors 1`] = `Array []`; + +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`false)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"@value v-primary: #BF4040;\\\\n@value s-black: black-selector;\\\\n@value m-large: (min-width: 960px);\\\\n\\\\n.header {\\\\n color: v-primary;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n.s-black {\\\\n color: black;\\\\n}\\\\n\\\\n@media m-large {\\\\n .header {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +" +`; + +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`false)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-10/source.css", + "@value v-primary: #BF4040; +@value s-black: black-selector; +@value m-large: (min-width: 960px); + +.header { + color: v-primary; + padding: 0 10px; } -.foo\\\\/bar\\\\/baz--d917a2cf9531290fbf3aa43e0cc0520f { - background: hotpink; +.s-black { + color: black; } -.foo\\\\\\\\bar\\\\\\\\baz--1900aa5b4b5b2443299cc5e8afa9b3b4 { - background: hotpink; +@media m-large { + .header { + padding: 0 20px; + } } ", "", @@ -7716,178 +10080,85 @@ Array [ ] `; -exports[`modules should respects hashPrefix option with localIdentName option: warnings 1`] = `Array []`; - -exports[`modules should respects localIdentName option: errors 1`] = `Array []`; - -exports[`modules should respects localIdentName option: locals 1`] = ` -Object { - "#": "localIdentName--#--O8Yw6", - "##": "localIdentName--##--3er0D", - "#.#.#": "localIdentName--#.#.#--22RlZ", - "#fake-id": "localIdentName--#fake-id--3i_zU", - "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "localIdentName--++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.--3hmdG", - "-a-b-c-": "localIdentName---a-b-c---1cY1s", - "-a0-34a___f": "localIdentName---a0-34a___f--3RHUZ", - ".": "localIdentName--.--nfd9M", - "123": "localIdentName--123--3JQcZ", - "1a2b3c": "localIdentName--1a2b3c--3IsxV", - ":)": "localIdentName--:)--3EKgI", - ":\`(": "localIdentName--:\`(--3oWIz", - ":hover": "localIdentName--:hover--B2why", - ":hover:focus:active": "localIdentName--:hover:focus:active--3R7r5", - "<><<<>><>": "localIdentName--<><<<>><>--Tr9vN", - "

": "localIdentName--

--3Lowm", - "?": "localIdentName--?--mRRxx", - "@": "localIdentName--@--3ZlTE", - "B&W?": "localIdentName--B&W?--3d3wg", - "[attr=value]": "localIdentName--[attr=value]--3GgRc", - "_": "localIdentName--_--2V6oB", - "_test": "localIdentName--_test--3Q--B", - "className": "localIdentName--className--3wBIH", - "f!o!o": "localIdentName--f!o!o--2pDEJ", - "f'o'o": "localIdentName--f'o'o--3297S", - "f*o*o": "localIdentName--f*o*o--MI6DP", - "f+o+o": "localIdentName--f+o+o--3aNwy", - "f/o/o": "localIdentName--f/o/o--jbPgr", - "f\\\\o\\\\o": "localIdentName--f\\\\o\\\\o--3x1WT", - "foo.bar": "localIdentName--foo.bar--2FVtF", - "foo/bar": "localIdentName--foo/bar--13Q-T", - "foo/bar/baz": "localIdentName--foo/bar/baz--1I8mG", - "foo\\\\bar": "localIdentName--foo\\\\bar--LKTPJ", - "foo\\\\bar\\\\baz": "localIdentName--foo\\\\bar\\\\baz--xcAsB", - "f~o~o": "localIdentName--f~o~o--1TY6B", - "m_x_@": "localIdentName--m_x_@--3SfN7", - "someId": "localIdentName--someId--mxosG", - "subClass": "localIdentName--subClass--3jIM-", - "test": "localIdentName--test--1Os7J", - "{}": "localIdentName--{}--2ZR3d", - "©": "localIdentName--©--3QaoF", - "“‘’”": "localIdentName--“‘’”--3xI9A", - "⌘⌥": "localIdentName--⌘⌥--1V-to", - "☺☃": "localIdentName--☺☃--uy8uv", - "♥": "localIdentName--♥--kO1_7", - "𝄞♪♩♫♬": "localIdentName--𝄞♪♩♫♬--1tfs0", - "💩": "localIdentName--💩--2Cl61", -} -`; - -exports[`modules should respects localIdentName option: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".localIdentName--test--1Os7J { - background: red; -} - -.localIdentName--_test--3Q--B { - background: blue; -} - -.localIdentName--className--3wBIH { - background: red; -} - -#localIdentName--someId--mxosG { - background: green; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`false)\`: warnings 1`] = `Array []`; -.localIdentName--className--3wBIH .localIdentName--subClass--3jIM- { - color: green; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`global)\`: errors 1`] = `Array []`; -#localIdentName--someId--mxosG .localIdentName--subClass--3jIM- { - color: blue; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".header {\\\\n color: #BF4040;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n.black-selector {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .header {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"v-primary\\": \\"#BF4040\\", + \\"s-black\\": \\"black-selector\\", + \\"m-large\\": \\"(min-width: 960px)\\" +};" +`; -.localIdentName---a0-34a___f--3RHUZ { - color: red; +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-10/source.css", + ".header { + color: #BF4040; + padding: 0 10px; } -.localIdentName--m_x_\\\\@--3SfN7 { - margin-left: auto !important; - margin-right: auto !important; +.black-selector { + color: black; } -.localIdentName--B\\\\&W\\\\?--3d3wg { - margin-left: auto !important; - margin-right: auto !important; +@media (min-width: 960px) { + .header { + padding: 0 20px; + } } +", + "", + ], +] +`; -/* matches elements with class=\\":\`(\\" */ -.localIdentName--\\\\3A \\\\\`\\\\(--3oWIz { - color: aqua; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`global)\`: warnings 1`] = `Array []`; -/* matches elements with class=\\"1a2b3c\\" */ -.localIdentName--\\\\31 a2b3c--3IsxV { - color: aliceblue; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`local)\`: errors 1`] = `Array []`; -/* matches the element with id=\\"#fake-id\\" */ -#localIdentName--\\\\#fake-id--3i_zU { - color: antiquewhite; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".ODvOrT6QaJbrNxuVwTgHn {\\\\n color: #BF4040;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n._3xId28FIeFVmNWx5IWeWqN {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .ODvOrT6QaJbrNxuVwTgHn {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"v-primary\\": \\"#BF4040\\", + \\"s-black\\": \\"black-selector\\", + \\"m-large\\": \\"(min-width: 960px)\\", + \\"header\\": \\"ODvOrT6QaJbrNxuVwTgHn\\", + \\"black-selector\\": \\"_3xId28FIeFVmNWx5IWeWqN\\" +};" +`; -/* matches the element with id=\\"-a-b-c-\\" */ -#localIdentName---a-b-c---1cY1s { - color: azure; +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-10/source.css", + ".ODvOrT6QaJbrNxuVwTgHn { + color: #BF4040; + padding: 0 10px; } -/* matches the element with id=\\"©\\" */ -#localIdentName--©--3QaoF { +._3xId28FIeFVmNWx5IWeWqN { color: black; } -.localIdentName--♥--kO1_7 { background: lime; } -.localIdentName--©--3QaoF { background: lime; } -.localIdentName--“‘’”--3xI9A { background: lime; } -.localIdentName--☺☃--uy8uv { background: lime; } -.localIdentName--⌘⌥--1V-to { background: lime; } -.localIdentName--𝄞♪♩♫♬--1tfs0 { background: lime; } -.localIdentName--💩--2Cl61 { background: lime; } -.localIdentName--\\\\?--mRRxx { background: lime; } -.localIdentName--\\\\@--3ZlTE { background: lime; } -.localIdentName--\\\\.--nfd9M { background: lime; } -.localIdentName--\\\\3A \\\\)--3EKgI { background: lime; } -.localIdentName--\\\\3A \\\\\`\\\\(--3oWIz { background: lime; } -.localIdentName--\\\\31 23--3JQcZ { background: lime; } -.localIdentName--\\\\31 a2b3c--3IsxV { background: lime; } -.localIdentName--\\\\--3Lowm { background: lime; } -.localIdentName--\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\>--Tr9vN { background: lime; } -.localIdentName--\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\.--3hmdG { background: lime; } -.localIdentName--\\\\#--O8Yw6 { background: lime; } -.localIdentName--\\\\#\\\\#--3er0D { background: lime; } -.localIdentName--\\\\#\\\\.\\\\#\\\\.\\\\#--22RlZ { background: lime; } -.localIdentName--\\\\_--2V6oB { background: lime; } -.localIdentName--\\\\{\\\\}--2ZR3d { background: lime; } -.localIdentName--\\\\#fake\\\\-id--3i_zU { background: lime; } -.localIdentName--foo\\\\.bar--2FVtF { background: lime; } -.localIdentName--\\\\3A hover--B2why { background: lime; } -.localIdentName--\\\\3A hover\\\\3A focus\\\\3A active--3R7r5 { background: lime; } -.localIdentName--\\\\[attr\\\\=value\\\\]--3GgRc { background: lime; } -.localIdentName--f\\\\/o\\\\/o--jbPgr { background: lime; } -.localIdentName--f\\\\\\\\o\\\\\\\\o--3x1WT { background: lime; } -.localIdentName--f\\\\*o\\\\*o--MI6DP { background: lime; } -.localIdentName--f\\\\!o\\\\!o--2pDEJ { background: lime; } -.localIdentName--f\\\\'o\\\\'o--3297S { background: lime; } -.localIdentName--f\\\\~o\\\\~o--1TY6B { background: lime; } -.localIdentName--f\\\\+o\\\\+o--3aNwy { background: lime; } - -.localIdentName--foo\\\\/bar--13Q-T { - background: hotpink; -} - -.localIdentName--foo\\\\\\\\bar--LKTPJ { - background: hotpink; -} - -.localIdentName--foo\\\\/bar\\\\/baz--1I8mG { - background: hotpink; -} - -.localIdentName--foo\\\\\\\\bar\\\\\\\\baz--xcAsB { - background: hotpink; +@media (min-width: 960px) { + .ODvOrT6QaJbrNxuVwTgHn { + padding: 0 20px; + } } ", "", @@ -7895,178 +10166,129 @@ Array [ ] `; -exports[`modules should respects localIdentName option: warnings 1`] = `Array []`; - -exports[`modules should respects path in localIdentName option: errors 1`] = `Array []`; - -exports[`modules should respects path in localIdentName option: locals 1`] = ` -Object { - "#": "fixtures-modules-localIdentName__#", - "##": "fixtures-modules-localIdentName__##", - "#.#.#": "fixtures-modules-localIdentName__#.#.#", - "#fake-id": "fixtures-modules-localIdentName__#fake-id", - "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "fixtures-modules-localIdentName__++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.", - "-a-b-c-": "fixtures-modules-localIdentName__-a-b-c-", - "-a0-34a___f": "fixtures-modules-localIdentName__-a0-34a___f", - ".": "fixtures-modules-localIdentName__.", - "123": "fixtures-modules-localIdentName__123", - "1a2b3c": "fixtures-modules-localIdentName__1a2b3c", - ":)": "fixtures-modules-localIdentName__:)", - ":\`(": "fixtures-modules-localIdentName__:\`(", - ":hover": "fixtures-modules-localIdentName__:hover", - ":hover:focus:active": "fixtures-modules-localIdentName__:hover:focus:active", - "<><<<>><>": "fixtures-modules-localIdentName__<><<<>><>", - "

": "fixtures-modules-localIdentName__

", - "?": "fixtures-modules-localIdentName__?", - "@": "fixtures-modules-localIdentName__@", - "B&W?": "fixtures-modules-localIdentName__B&W?", - "[attr=value]": "fixtures-modules-localIdentName__[attr=value]", - "_": "fixtures-modules-localIdentName___", - "_test": "fixtures-modules-localIdentName___test", - "className": "fixtures-modules-localIdentName__className", - "f!o!o": "fixtures-modules-localIdentName__f!o!o", - "f'o'o": "fixtures-modules-localIdentName__f'o'o", - "f*o*o": "fixtures-modules-localIdentName__f*o*o", - "f+o+o": "fixtures-modules-localIdentName__f+o+o", - "f/o/o": "fixtures-modules-localIdentName__f/o/o", - "f\\\\o\\\\o": "fixtures-modules-localIdentName__f\\\\o\\\\o", - "foo.bar": "fixtures-modules-localIdentName__foo.bar", - "foo/bar": "fixtures-modules-localIdentName__foo/bar", - "foo/bar/baz": "fixtures-modules-localIdentName__foo/bar/baz", - "foo\\\\bar": "fixtures-modules-localIdentName__foo\\\\bar", - "foo\\\\bar\\\\baz": "fixtures-modules-localIdentName__foo\\\\bar\\\\baz", - "f~o~o": "fixtures-modules-localIdentName__f~o~o", - "m_x_@": "fixtures-modules-localIdentName__m_x_@", - "someId": "fixtures-modules-localIdentName__someId", - "subClass": "fixtures-modules-localIdentName__subClass", - "test": "fixtures-modules-localIdentName__test", - "{}": "fixtures-modules-localIdentName__{}", - "©": "fixtures-modules-localIdentName__©", - "“‘’”": "fixtures-modules-localIdentName__“‘’”", - "⌘⌥": "fixtures-modules-localIdentName__⌘⌥", - "☺☃": "fixtures-modules-localIdentName__☺☃", - "♥": "fixtures-modules-localIdentName__♥", - "𝄞♪♩♫♬": "fixtures-modules-localIdentName__𝄞♪♩♫♬", - "💩": "fixtures-modules-localIdentName__💩", -} -`; - -exports[`modules should respects path in localIdentName option: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - ".fixtures-modules-localIdentName__test { - background: red; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`local)\`: warnings 1`] = `Array []`; -.fixtures-modules-localIdentName___test { - background: blue; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode global)\`: errors 1`] = `Array []`; -.fixtures-modules-localIdentName__className { - background: red; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".header {\\\\n color: #BF4040;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n.black-selector {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .header {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"v-primary\\": \\"#BF4040\\", + \\"s-black\\": \\"black-selector\\", + \\"m-large\\": \\"(min-width: 960px)\\" +};" +`; -#fixtures-modules-localIdentName__someId { - background: green; +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-10/source.css", + ".header { + color: #BF4040; + padding: 0 10px; } -.fixtures-modules-localIdentName__className .fixtures-modules-localIdentName__subClass { - color: green; +.black-selector { + color: black; } -#fixtures-modules-localIdentName__someId .fixtures-modules-localIdentName__subClass { - color: blue; +@media (min-width: 960px) { + .header { + padding: 0 20px; + } } +", + "", + ], +] +`; -.fixtures-modules-localIdentName__-a0-34a___f { - color: red; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode global)\`: warnings 1`] = `Array []`; -.fixtures-modules-localIdentName__m_x_\\\\@ { - margin-left: auto !important; - margin-right: auto !important; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode local)\`: errors 1`] = `Array []`; -.fixtures-modules-localIdentName__B\\\\&W\\\\? { - margin-left: auto !important; - margin-right: auto !important; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"._header {\\\\n color: #BF4040;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n._black-selector {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n ._header {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"v-primary\\": \\"#BF4040\\", + \\"s-black\\": \\"black-selector\\", + \\"m-large\\": \\"(min-width: 960px)\\", + \\"header\\": \\"_header\\", + \\"black-selector\\": \\"_black-selector\\" +};" +`; -/* matches elements with class=\\":\`(\\" */ -.fixtures-modules-localIdentName__\\\\3A \\\\\`\\\\( { - color: aqua; +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-10/source.css", + "._header { + color: #BF4040; + padding: 0 10px; } -/* matches elements with class=\\"1a2b3c\\" */ -.fixtures-modules-localIdentName__\\\\31 a2b3c { - color: aliceblue; +._black-selector { + color: black; } -/* matches the element with id=\\"#fake-id\\" */ -#fixtures-modules-localIdentName__\\\\#fake-id { - color: antiquewhite; +@media (min-width: 960px) { + ._header { + padding: 0 20px; + } } +", + "", + ], +] +`; -/* matches the element with id=\\"-a-b-c-\\" */ -#fixtures-modules-localIdentName__-a-b-c- { - color: azure; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode local)\`: warnings 1`] = `Array []`; -/* matches the element with id=\\"©\\" */ -#fixtures-modules-localIdentName__© { - color: black; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`true)\`: errors 1`] = `Array []`; -.fixtures-modules-localIdentName__♥ { background: lime; } -.fixtures-modules-localIdentName__© { background: lime; } -.fixtures-modules-localIdentName__“‘’” { background: lime; } -.fixtures-modules-localIdentName__☺☃ { background: lime; } -.fixtures-modules-localIdentName__⌘⌥ { background: lime; } -.fixtures-modules-localIdentName__𝄞♪♩♫♬ { background: lime; } -.fixtures-modules-localIdentName__💩 { background: lime; } -.fixtures-modules-localIdentName__\\\\? { background: lime; } -.fixtures-modules-localIdentName__\\\\@ { background: lime; } -.fixtures-modules-localIdentName__\\\\. { background: lime; } -.fixtures-modules-localIdentName__\\\\3A \\\\) { background: lime; } -.fixtures-modules-localIdentName__\\\\3A \\\\\`\\\\( { background: lime; } -.fixtures-modules-localIdentName__\\\\31 23 { background: lime; } -.fixtures-modules-localIdentName__\\\\31 a2b3c { background: lime; } -.fixtures-modules-localIdentName__\\\\ { background: lime; } -.fixtures-modules-localIdentName__\\\\<\\\\>\\\\<\\\\<\\\\<\\\\>\\\\>\\\\<\\\\> { background: lime; } -.fixtures-modules-localIdentName__\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\[\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\>\\\\+\\\\+\\\\+\\\\>\\\\+\\\\<\\\\<\\\\<\\\\<\\\\-\\\\]\\\\>\\\\+\\\\+\\\\.\\\\>\\\\+\\\\.\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\.\\\\+\\\\+\\\\+\\\\.\\\\>\\\\+\\\\+\\\\.\\\\<\\\\<\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\+\\\\.\\\\>\\\\.\\\\+\\\\+\\\\+\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\-\\\\.\\\\>\\\\+\\\\.\\\\>\\\\. { background: lime; } -.fixtures-modules-localIdentName__\\\\# { background: lime; } -.fixtures-modules-localIdentName__\\\\#\\\\# { background: lime; } -.fixtures-modules-localIdentName__\\\\#\\\\.\\\\#\\\\.\\\\# { background: lime; } -.fixtures-modules-localIdentName__\\\\_ { background: lime; } -.fixtures-modules-localIdentName__\\\\{\\\\} { background: lime; } -.fixtures-modules-localIdentName__\\\\#fake\\\\-id { background: lime; } -.fixtures-modules-localIdentName__foo\\\\.bar { background: lime; } -.fixtures-modules-localIdentName__\\\\3A hover { background: lime; } -.fixtures-modules-localIdentName__\\\\3A hover\\\\3A focus\\\\3A active { background: lime; } -.fixtures-modules-localIdentName__\\\\[attr\\\\=value\\\\] { background: lime; } -.fixtures-modules-localIdentName__f\\\\/o\\\\/o { background: lime; } -.fixtures-modules-localIdentName__f\\\\\\\\o\\\\\\\\o { background: lime; } -.fixtures-modules-localIdentName__f\\\\*o\\\\*o { background: lime; } -.fixtures-modules-localIdentName__f\\\\!o\\\\!o { background: lime; } -.fixtures-modules-localIdentName__f\\\\'o\\\\'o { background: lime; } -.fixtures-modules-localIdentName__f\\\\~o\\\\~o { background: lime; } -.fixtures-modules-localIdentName__f\\\\+o\\\\+o { background: lime; } - -.fixtures-modules-localIdentName__foo\\\\/bar { - background: hotpink; -} +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`true)\`: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".ODvOrT6QaJbrNxuVwTgHn {\\\\n color: #BF4040;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n._3xId28FIeFVmNWx5IWeWqN {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .ODvOrT6QaJbrNxuVwTgHn {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"v-primary\\": \\"#BF4040\\", + \\"s-black\\": \\"black-selector\\", + \\"m-large\\": \\"(min-width: 960px)\\", + \\"header\\": \\"ODvOrT6QaJbrNxuVwTgHn\\", + \\"black-selector\\": \\"_3xId28FIeFVmNWx5IWeWqN\\" +};" +`; -.fixtures-modules-localIdentName__foo\\\\\\\\bar { - background: hotpink; +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`true)\`: result 1`] = ` +Array [ + Array [ + "./modules/tests-cases/values-10/source.css", + ".ODvOrT6QaJbrNxuVwTgHn { + color: #BF4040; + padding: 0 10px; } -.fixtures-modules-localIdentName__foo\\\\/bar\\\\/baz { - background: hotpink; +._3xId28FIeFVmNWx5IWeWqN { + color: black; } -.fixtures-modules-localIdentName__foo\\\\\\\\bar\\\\\\\\baz { - background: hotpink; +@media (min-width: 960px) { + .ODvOrT6QaJbrNxuVwTgHn { + padding: 0 20px; + } } ", "", @@ -8074,66 +10296,72 @@ Array [ ] `; -exports[`modules should respects path in localIdentName option: warnings 1`] = `Array []`; - -exports[`modules should saves underscore prefix in exported class names with localIdentName option: errors 1`] = `Array []`; - -exports[`modules should saves underscore prefix in exported class names with localIdentName option: locals 1`] = ` -Object { - "#": "#", - "##": "##", - "#.#.#": "#.#.#", - "#fake-id": "#fake-id", - "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.": "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.", - "-a-b-c-": "-a-b-c-", - "-a0-34a___f": "-a0-34a___f", - ".": ".", - "123": "123", - "1a2b3c": "1a2b3c", - ":)": ":)", - ":\`(": ":\`(", - ":hover": ":hover", - ":hover:focus:active": ":hover:focus:active", - "<><<<>><>": "<><<<>><>", - "

": "

", - "?": "?", - "@": "@", - "B&W?": "B&W?", - "[attr=value]": "[attr=value]", - "_": "_", - "_test": "_test", - "className": "className", - "f!o!o": "f!o!o", - "f'o'o": "f'o'o", - "f*o*o": "f*o*o", - "f+o+o": "f+o+o", - "f/o/o": "f/o/o", - "f\\\\o\\\\o": "f\\\\o\\\\o", - "foo.bar": "foo.bar", - "foo/bar": "foo/bar", - "foo/bar/baz": "foo/bar/baz", - "foo\\\\bar": "foo\\\\bar", - "foo\\\\bar\\\\baz": "foo\\\\bar\\\\baz", - "f~o~o": "f~o~o", - "m_x_@": "m_x_@", - "someId": "someId", - "subClass": "subClass", - "test": "test", - "{}": "{}", - "©": "©", - "“‘’”": "“‘’”", - "⌘⌥": "⌘⌥", - "☺☃": "☺☃", - "♥": "♥", - "𝄞♪♩♫♬": "𝄞♪♩♫♬", - "💩": "💩", -} -`; - -exports[`modules should saves underscore prefix in exported class names with localIdentName option: module (evaluated) 1`] = ` -Array [ - Array [ - 1, +exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`true)\`: warnings 1`] = `Array []`; + +exports[`"modules" option should work with the "[local]" placeholder for the "localIdentName" option: errors 1`] = `Array []`; + +exports[`"modules" option should work with the "[local]" placeholder for the "localIdentName" option: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".test {\\\\n background: red;\\\\n}\\\\n\\\\n._test {\\\\n background: blue;\\\\n}\\\\n\\\\n.className {\\\\n background: red;\\\\n}\\\\n\\\\n#someId {\\\\n background: green;\\\\n}\\\\n\\\\n.className .subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#someId .subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n.-a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n.m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#-a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#© {\\\\n color: black;\\\\n}\\\\n\\\\n.♥ { background: lime; }\\\\n.© { background: lime; }\\\\n.“‘’” { background: lime; }\\\\n.☺☃ { background: lime; }\\\\n.⌘⌥ { background: lime; }\\\\n.𝄞♪♩♫♬ { background: lime; }\\\\n.💩 { background: lime; }\\\\n.\\\\\\\\? { background: lime; }\\\\n.\\\\\\\\@ { background: lime; }\\\\n.\\\\\\\\. { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n.\\\\\\\\31 23 { background: lime; }\\\\n.\\\\\\\\31 a2b3c { background: lime; }\\\\n.\\\\\\\\ { background: lime; }\\\\n.\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n.\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\_ { background: lime; }\\\\n.\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n.\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n.foo\\\\\\\\.bar { background: lime; }\\\\n.\\\\\\\\3A hover { background: lime; }\\\\n.\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n.\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n.f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n.f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n.f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n.f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n.f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n.f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n.f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n.foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"123\\": \\"123\\", + \\"test\\": \\"test\\", + \\"_test\\": \\"_test\\", + \\"className\\": \\"className\\", + \\"someId\\": \\"someId\\", + \\"subClass\\": \\"subClass\\", + \\"-a0-34a___f\\": \\"-a0-34a___f\\", + \\"m_x_@\\": \\"m_x_@\\", + \\"B&W?\\": \\"B&W?\\", + \\":\`(\\": \\":\`(\\", + \\"1a2b3c\\": \\"1a2b3c\\", + \\"#fake-id\\": \\"#fake-id\\", + \\"-a-b-c-\\": \\"-a-b-c-\\", + \\"©\\": \\"©\\", + \\"♥\\": \\"♥\\", + \\"“‘’”\\": \\"“‘’”\\", + \\"☺☃\\": \\"☺☃\\", + \\"⌘⌥\\": \\"⌘⌥\\", + \\"𝄞♪♩♫♬\\": \\"𝄞♪♩♫♬\\", + \\"💩\\": \\"💩\\", + \\"?\\": \\"?\\", + \\"@\\": \\"@\\", + \\".\\": \\".\\", + \\":)\\": \\":)\\", + \\"

\\": \\"

\\", + \\"<><<<>><>\\": \\"<><<<>><>\\", + \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\": \\"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.\\", + \\"#\\": \\"#\\", + \\"##\\": \\"##\\", + \\"#.#.#\\": \\"#.#.#\\", + \\"_\\": \\"_\\", + \\"{}\\": \\"{}\\", + \\"foo.bar\\": \\"foo.bar\\", + \\":hover\\": \\":hover\\", + \\":hover:focus:active\\": \\":hover:focus:active\\", + \\"[attr=value]\\": \\"[attr=value]\\", + \\"f/o/o\\": \\"f/o/o\\", + \\"f\\\\\\\\o\\\\\\\\o\\": \\"f\\\\\\\\o\\\\\\\\o\\", + \\"f*o*o\\": \\"f*o*o\\", + \\"f!o!o\\": \\"f!o!o\\", + \\"f'o'o\\": \\"f'o'o\\", + \\"f~o~o\\": \\"f~o~o\\", + \\"f+o+o\\": \\"f+o+o\\", + \\"foo/bar\\": \\"foo/bar\\", + \\"foo\\\\\\\\bar\\": \\"foo\\\\\\\\bar\\", + \\"foo/bar/baz\\": \\"foo/bar/baz\\", + \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\\\\\\\bar\\\\\\\\baz\\" +};" +`; + +exports[`"modules" option should work with the "[local]" placeholder for the "localIdentName" option: result 1`] = ` +Array [ + Array [ + "./modules/localIdentName/localIdentName.css", ".test { background: red; } @@ -8253,83 +10481,4 @@ Array [ ] `; -exports[`modules should saves underscore prefix in exported class names with localIdentName option: warnings 1`] = `Array []`; - -exports[`modules should support "pure" value: errors 1`] = `Array []`; - -exports[`modules should support "pure" value: module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "._3nNRq3PQ9uK67a19lT8NHq { - color: red; -} - -h1 ._2-tJ-0L9xa__ypZabJN82L { - color: green; -} - -._1ItNtG9CwOxu2Vxb-etJHN h1 { - color: blue; -} - -.SDNtlQ92cFx6fiH6yuh5K h1 ._35UJyh7y0HgDlh3_YNNxbm { - color: red; -} - -#_15-F5dpJOOl0BGWwx4yHdh { - color: red; -} - -h1 #_1NoAfl4L6pYsi53yvE4szS { - color: green; -} - -#Gf_c6hz7pPUKG_4DBKZX_ h1 { - color: blue; -} - -#gcol1OF3vPJZQgK7JWvsX h1 #_3vlp1YEgWrcYSofV_DbgLl { - color: red; -} - -._1aIXXfKePbQyIoBtx5r_i3 .bar ._1yneLDnIvMLhNduXi5yqqV { - color: white; -} - -._2u-qJxyLPtRRB90K5UQGa1 .Xt6ycOTkGG2zy0zRDe6BK ._3M5wEyAlDWBbzYBzLLARxJ { - color: black; -} -", - "", - ], -] -`; - -exports[`modules should support "pure" value: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -// Module -exports.push([module.id, \\"._3nNRq3PQ9uK67a19lT8NHq {\\\\n color: red;\\\\n}\\\\n\\\\nh1 ._2-tJ-0L9xa__ypZabJN82L {\\\\n color: green;\\\\n}\\\\n\\\\n._1ItNtG9CwOxu2Vxb-etJHN h1 {\\\\n color: blue;\\\\n}\\\\n\\\\n.SDNtlQ92cFx6fiH6yuh5K h1 ._35UJyh7y0HgDlh3_YNNxbm {\\\\n color: red;\\\\n}\\\\n\\\\n#_15-F5dpJOOl0BGWwx4yHdh {\\\\n color: red;\\\\n}\\\\n\\\\nh1 #_1NoAfl4L6pYsi53yvE4szS {\\\\n color: green;\\\\n}\\\\n\\\\n#Gf_c6hz7pPUKG_4DBKZX_ h1 {\\\\n color: blue;\\\\n}\\\\n\\\\n#gcol1OF3vPJZQgK7JWvsX h1 #_3vlp1YEgWrcYSofV_DbgLl {\\\\n color: red;\\\\n}\\\\n\\\\n._1aIXXfKePbQyIoBtx5r_i3 .bar ._1yneLDnIvMLhNduXi5yqqV {\\\\n color: white;\\\\n}\\\\n\\\\n._2u-qJxyLPtRRB90K5UQGa1 .Xt6ycOTkGG2zy0zRDe6BK ._3M5wEyAlDWBbzYBzLLARxJ {\\\\n color: black;\\\\n}\\\\n\\", \\"\\"]); -// Exports -exports.locals = { - \\"foo\\": \\"_3nNRq3PQ9uK67a19lT8NHq\\", - \\"foo-1\\": \\"_2-tJ-0L9xa__ypZabJN82L\\", - \\"foo-2\\": \\"_1ItNtG9CwOxu2Vxb-etJHN\\", - \\"foo-3\\": \\"SDNtlQ92cFx6fiH6yuh5K\\", - \\"foo-4\\": \\"_35UJyh7y0HgDlh3_YNNxbm\\", - \\"foo-5\\": \\"_15-F5dpJOOl0BGWwx4yHdh\\", - \\"foo-6\\": \\"_1NoAfl4L6pYsi53yvE4szS\\", - \\"foo-7\\": \\"Gf_c6hz7pPUKG_4DBKZX_\\", - \\"foo-8\\": \\"gcol1OF3vPJZQgK7JWvsX\\", - \\"foo-9\\": \\"_3vlp1YEgWrcYSofV_DbgLl\\", - \\"bar-1\\": \\"_1aIXXfKePbQyIoBtx5r_i3\\", - \\"bar-2\\": \\"_1yneLDnIvMLhNduXi5yqqV\\", - \\"baz-3\\": \\"_2u-qJxyLPtRRB90K5UQGa1\\", - \\"baz\\": \\"Xt6ycOTkGG2zy0zRDe6BK\\", - \\"bar-4\\": \\"_3M5wEyAlDWBbzYBzLLARxJ\\" -};" -`; - -exports[`modules should support "pure" value: warnings 1`] = `Array []`; +exports[`"modules" option should work with the "[local]" placeholder for the "localIdentName" option: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/onlyLocals-option.test.js.snap b/test/__snapshots__/onlyLocals-option.test.js.snap index 98b474ee..878d0d39 100644 --- a/test/__snapshots__/onlyLocals-option.test.js.snap +++ b/test/__snapshots__/onlyLocals-option.test.js.snap @@ -1,16 +1,16 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`modules true: errors 1`] = `Array []`; +exports[`"onlyLocals" option should work: errors 1`] = `Array []`; -exports[`modules true: module 1`] = ` +exports[`"onlyLocals" option should work: module 1`] = ` "// Imports -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./values.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4-0!./something.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4-0!./imported-simple.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4-0!./relative.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_4___ = require(\\"-!../../../src/index.js??ref--4-0!../modules/top-relative.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_5___ = require(\\"-!../../../src/index.js??ref--4-0!package/style.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_6___ = require(\\"-!../../../src/index.js??ref--4-0!aliasesComposes/alias.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./values.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??ref--4!./something.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_2___ = require(\\"-!../../../../src/index.js??ref--4!./imported-simple.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_3___ = require(\\"-!../../../../src/index.js??ref--4!./relative.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_4___ = require(\\"-!../../../../src/index.js??ref--4!./top-relative.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_5___ = require(\\"-!../../../../src/index.js??ref--4!../issue-861/node_modules/package/style.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_6___ = require(\\"-!../../../../src/index.js??ref--4!aliasesComposes/alias.css\\"); // Exports module.exports = { \\"v-def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___[\\"v-def\\"] + \\"\\", @@ -60,14 +60,53 @@ module.exports = { };" `; -exports[`modules true: values module 1`] = ` -"// Exports -module.exports = { - \\"v-def\\": \\"red\\", - \\"v-other\\": \\"green\\", - \\"s-white\\": \\"white\\", - \\"m-small\\": \\"(min-width: 320px)\\" -};" +exports[`"onlyLocals" option should work: result 1`] = ` +Object { + "alias": "_alias _imported-alias", + "black-selector": "_black-selector", + "class": "_class", + "foo": "_foo", + "foobarbaz": "_foobarbaz", + "ghi": "_ghi", + "green": "_green", + "header": "_header", + "m-large": "(min-width: 960px)", + "m-small": "(min-width: 320px)", + "module": "_module _imported-module", + "other": "_other", + "other-other": "_other-other", + "primary-selector": "_primary-selector", + "relative": "_relative _imported-relative", + "s-black": "black-selector", + "s-white": "white", + "simple": "_simple _imported-simple", + "top-relative": "_top-relative undefined", + "url": "_url", + "v-bar": "block", + "v-def": "red", + "v-dimension": "12px", + "v-foo": "blue", + "v-function": "rgb(0,0,0)", + "v-hex": "#fff", + "v-ident": "validIdent", + "v-integer": "100", + "v-integer-1": "-100", + "v-integer-2": "+100", + "v-number": ".60", + "v-number-1": "-456.8", + "v-number-2": "-3.4e-2", + "v-other": "green", + "v-percentage": "100%", + "v-pre-defined-ident": "left", + "v-primary": "#BF4040", + "v-something": "2112moon", + "v-string": "'content'", + "v-string-1": "''", + "v-unicode-range": "U+0025-00FF", + "v-url": "url(https://www.exammple.com/images/my-background.png)", + "v-url-1": "url('https://www.exammple.com/images/my-background.png')", + "v-url-2": "url(\\"https://www.exammple.com/images/my-background.png\\")", +} `; -exports[`modules true: warnings 1`] = `Array []`; +exports[`"onlyLocals" option should work: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/sourceMap-option.test.js.snap b/test/__snapshots__/sourceMap-option.test.js.snap index 43c55cae..ec3d2b85 100644 --- a/test/__snapshots__/sourceMap-option.test.js.snap +++ b/test/__snapshots__/sourceMap-option.test.js.snap @@ -1,11 +1,20 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`sourceMap option false should not generate source map when source map is \`null\` from other loader: errors 1`] = `Array []`; +exports[`"sourceMap" option false should not generate source maps when source maps equal to "null" from an other loader: errors 1`] = `Array []`; + +exports[`"sourceMap" option false should not generate source maps when source maps equal to "null" from an other loader: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`sourceMap option false should not generate source map when source map is \`null\` from other loader: module (evaluated) 1`] = ` +exports[`"sourceMap" option false should not generate source maps when source maps equal to "null" from an other loader: result 1`] = ` Array [ Array [ - 1, + "./source-map/basic.css", ".class { color: red; } @@ -15,14 +24,23 @@ Array [ ] `; -exports[`sourceMap option false should not generate source map when source map is \`null\` from other loader: warnings 1`] = `Array []`; +exports[`"sourceMap" option false should not generate source maps when source maps equal to "null" from an other loader: warnings 1`] = `Array []`; + +exports[`"sourceMap" option false should not generate source maps when source maps equal to "undefined" from an other loader: errors 1`] = `Array []`; -exports[`sourceMap option false should not generate source map when source map is \`undefined\` from other loader: errors 1`] = `Array []`; +exports[`"sourceMap" option false should not generate source maps when source maps equal to "undefined" from an other loader: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`sourceMap option false should not generate source map when source map is \`undefined\` from other loader: module (evaluated) 1`] = ` +exports[`"sourceMap" option false should not generate source maps when source maps equal to "undefined" from an other loader: result 1`] = ` Array [ Array [ - 1, + "./source-map/basic.css", ".class { color: red; } @@ -32,14 +50,23 @@ Array [ ] `; -exports[`sourceMap option false should not generate source map when source map is \`undefined\` from other loader: warnings 1`] = `Array []`; +exports[`"sourceMap" option false should not generate source maps when source maps equal to "undefined" from an other loader: warnings 1`] = `Array []`; -exports[`sourceMap option false should not generate source map: errors 1`] = `Array []`; +exports[`"sourceMap" option false should not generate source maps when source maps is valid and string from an other loader: errors 1`] = `Array []`; + +exports[`"sourceMap" option false should not generate source maps when source maps is valid and string from an other loader: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`sourceMap option false should not generate source map: module (evaluated) 1`] = ` +exports[`"sourceMap" option false should not generate source maps when source maps is valid and string from an other loader: result 1`] = ` Array [ Array [ - 1, + "./source-map/basic.css", ".class { color: red; } @@ -49,14 +76,87 @@ Array [ ] `; -exports[`sourceMap option false should not generate source map: warnings 1`] = `Array []`; +exports[`"sourceMap" option false should not generate source maps when source maps is valid and string from an other loader: warnings 1`] = `Array []`; + +exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`postcss-loader\`): errors 1`] = `Array []`; + +exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`postcss-loader\`): module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\":root {\\\\n --fontSize: 1rem;\\\\n --mainColor: rgba(18,52,86,0.47059);\\\\n --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n overflow-x: hidden;\\\\n overflow-y: auto;\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n body {\\\\n color: rgba(18,52,86,0.47059);\\\\n color: var(--mainColor);\\\\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n font-size: 1rem;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(1rem * 1.5);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n word-wrap: break-word;\\\\n padding-left: calc(1rem / 2 + 1px);\\\\n padding-right: calc(1rem / 2 + 1px);\\\\n padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n margin-top: 0;\\\\n margin-bottom: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n color: #639;\\\\n }\\\\n\\", \\"\\"]); +" +`; + +exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`postcss-loader\`): result 1`] = ` +Array [ + Array [ + "./source-map/basic.postcss.css", + ":root { + --fontSize: 1rem; + --mainColor: rgba(18,52,86,0.47059); + --secondaryColor: rgba(102, 51, 153, 0.9); +} + +html { + overflow-x: hidden; + overflow-y: auto; + overflow: hidden auto; +} + +@media (max-width: 50rem) { + body { + color: rgba(18,52,86,0.47059); + color: var(--mainColor); + font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif; + font-size: 1rem; + font-size: var(--fontSize); + line-height: calc(1rem * 1.5); + line-height: calc(var(--fontSize) * 1.5); + word-wrap: break-word; + padding-left: calc(1rem / 2 + 1px); + padding-right: calc(1rem / 2 + 1px); + padding-left: calc(var(--fontSize) / 2 + 1px); + padding-right: calc(var(--fontSize) / 2 + 1px); + } +} + +h1,h2,h3,h4,h5,h6 { + margin-top: 0; + margin-bottom: 0; +} + +a { + color: rgba(0, 0, 255, 0.9) +} + +a:hover { + color: #639; + } +", + "", + ], +] +`; + +exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`postcss-loader\`): warnings 1`] = `Array []`; -exports[`sourceMap option should not generate sourceMap when source map is valid from other loader (\`sass-loader\`): errors 1`] = `Array []`; +exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`sass-loader\`): errors 1`] = `Array []`; + +exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`sass-loader\`): module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); +" +`; -exports[`sourceMap option should not generate sourceMap when source map is valid from other loader (\`sass-loader\`): module (evaluated) 1`] = ` +exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`sass-loader\`): result 1`] = ` Array [ Array [ - 1, + "./source-map/basic.scss", "body { font: 100% Helvetica, sans-serif; color: #333; @@ -66,25 +166,86 @@ Array [ ] `; -exports[`sourceMap option should not generate sourceMap when source map is valid from other loader (\`sass-loader\`): warnings 1`] = `Array []`; +exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`sass-loader\`): warnings 1`] = `Array []`; + +exports[`"sourceMap" option false should not generate source maps: errors 1`] = `Array []`; + +exports[`"sourceMap" option false should not generate source maps: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +" +`; + +exports[`"sourceMap" option false should not generate source maps: result 1`] = ` +Array [ + Array [ + "./source-map/basic.css", + ".class { + color: red; +} +", + "", + ], +] +`; + +exports[`"sourceMap" option false should not generate source maps: warnings 1`] = `Array []`; + +exports[`"sourceMap" option not specified should not generate source maps: errors 1`] = `Array []`; + +exports[`"sourceMap" option not specified should not generate source maps: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +" +`; + +exports[`"sourceMap" option not specified should not generate source maps: result 1`] = ` +Array [ + Array [ + "./source-map/basic.css", + ".class { + color: red; +} +", + "", + ], +] +`; + +exports[`"sourceMap" option not specified should not generate source maps: warnings 1`] = `Array []`; -exports[`sourceMap option true should generate source map when source map is \`null\` from other loader: errors 1`] = `Array []`; +exports[`"sourceMap" option true should generate source maps when source maps equal to "null" from an other loader: errors 1`] = `Array []`; -exports[`sourceMap option true should generate source map when source map is \`null\` from other loader: module (evaluated) 1`] = ` +exports[`"sourceMap" option true should generate source maps when source maps equal to "null" from an other loader: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(true); +// Module +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +" +`; + +exports[`"sourceMap" option true should generate source maps when source maps equal to "null" from an other loader: result 1`] = ` Array [ Array [ - 1, + "./source-map/basic.css", ".class { color: red; } ", "", Object { - "file": "../../basic.css", + "file": "basic.css", "mappings": "AAAA;EACE,UAAU;AACZ", "names": Array [], "sources": Array [ - "../../basic.css", + "basic.css", ], "sourcesContent": Array [ ".class { @@ -98,25 +259,34 @@ Array [ ] `; -exports[`sourceMap option true should generate source map when source map is \`null\` from other loader: warnings 1`] = `Array []`; +exports[`"sourceMap" option true should generate source maps when source maps equal to "null" from an other loader: warnings 1`] = `Array []`; -exports[`sourceMap option true should generate source map when source map is \`undefined\` from other loader: errors 1`] = `Array []`; +exports[`"sourceMap" option true should generate source maps when source maps equal to "undefined" from an other loader: errors 1`] = `Array []`; -exports[`sourceMap option true should generate source map when source map is \`undefined\` from other loader: module (evaluated) 1`] = ` +exports[`"sourceMap" option true should generate source maps when source maps equal to "undefined" from an other loader: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(true); +// Module +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +" +`; + +exports[`"sourceMap" option true should generate source maps when source maps equal to "undefined" from an other loader: result 1`] = ` Array [ Array [ - 1, + "./source-map/basic.css", ".class { color: red; } ", "", Object { - "file": "../../basic.css", + "file": "basic.css", "mappings": "AAAA;EACE,UAAU;AACZ", "names": Array [], "sources": Array [ - "../../basic.css", + "basic.css", ], "sourcesContent": Array [ ".class { @@ -130,64 +300,36 @@ Array [ ] `; -exports[`sourceMap option true should generate source map when source map is \`undefined\` from other loader: warnings 1`] = `Array []`; +exports[`"sourceMap" option true should generate source maps when source maps equal to "undefined" from an other loader: warnings 1`] = `Array []`; + +exports[`"sourceMap" option true should generate source maps when source maps is valid and string from an other loader: errors 1`] = `Array []`; -exports[`sourceMap option true should generate source map when source map is valid and it is string from other loader: errors 1`] = `Array []`; +exports[`"sourceMap" option true should generate source maps when source maps is valid and string from an other loader: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(true); +// Module +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +" +`; -exports[`sourceMap option true should generate source map when source map is valid and it is string from other loader: module (evaluated) 1`] = ` +exports[`"sourceMap" option true should generate source maps when source maps is valid and string from an other loader: result 1`] = ` Array [ Array [ - 1, + "./source-map/basic.css", ".class { color: red; } ", "", Object { - "file": "../../basic.css", - "mappings": "AAGA;EACE,UAAA;ACFF", + "file": "basic.css", + "mappings": "AAAA;EACE,UAAU;AACZ", "names": Array [], "sources": Array [ - "source-map/basic.postcss.css", - "../../basic.css", + "basic.css", ], "sourcesContent": Array [ - "@custom-media --viewport-medium (width <= 50rem); -@custom-selector :--heading h1, h2, h3, h4, h5, h6; - -:root { - --fontSize: 1rem; - --mainColor: #12345678; - --secondaryColor: lab(32.5 38.5 -47.6 / 90%); -} - -html { - overflow: hidden auto; -} - -@media (--viewport-medium) { - body { - color: var(--mainColor); - font-family: system-ui; - font-size: var(--fontSize); - line-height: calc(var(--fontSize) * 1.5); - overflow-wrap: break-word; - padding-inline: calc(var(--fontSize) / 2 + 1px); - } -} - -:--heading { - margin-block: 0; -} - -a { - color: rgb(0 0 100% / 90%); - -&:hover { - color: rebeccapurple; - } -} -", ".class { color: red; } @@ -199,14 +341,23 @@ a { ] `; -exports[`sourceMap option true should generate source map when source map is valid and it is string from other loader: warnings 1`] = `Array []`; +exports[`"sourceMap" option true should generate source maps when source maps is valid and string from an other loader: warnings 1`] = `Array []`; -exports[`sourceMap option true should generate source map when source map is valid from other loader (\`postcss-loader\`): errors 1`] = `Array []`; +exports[`"sourceMap" option true should generate source maps when source maps is valid from an other loader (\`postcss-loader\`): errors 1`] = `Array []`; + +exports[`"sourceMap" option true should generate source maps when source maps is valid from an other loader (\`postcss-loader\`): module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(true); +// Module +exports.push([module.id, \\":root {\\\\n --fontSize: 1rem;\\\\n --mainColor: rgba(18,52,86,0.47059);\\\\n --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n overflow-x: hidden;\\\\n overflow-y: auto;\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n body {\\\\n color: rgba(18,52,86,0.47059);\\\\n color: var(--mainColor);\\\\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n font-size: 1rem;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(1rem * 1.5);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n word-wrap: break-word;\\\\n padding-left: calc(1rem / 2 + 1px);\\\\n padding-right: calc(1rem / 2 + 1px);\\\\n padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n margin-top: 0;\\\\n margin-bottom: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n color: #639;\\\\n }\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.postcss.css\\"],\\"names\\":[],\\"mappings\\":\\"AAGA;EACE,gBAAgB;EAChB,mCAAsB;EACtB,yCAA4C;AAC9C;;AAEA;EACE,kBAAqB;EAArB,gBAAqB;EAArB,qBAAqB;AACvB;;AAEA;EACE;IACE,6BAAuB;IAAvB,uBAAuB;IACvB,iGAAsB;IACtB,eAA0B;IAA1B,0BAA0B;IAC1B,6BAAwC;IAAxC,wCAAwC;IACxC,qBAAyB;IACzB,kCAA+C;IAA/C,mCAA+C;IAA/C,6CAA+C;IAA/C,8CAA+C;EACjD;AACF;;AAEA;EACE,aAAe;EAAf,gBAAe;AACjB;;AAEA;EACE;AAKF;;AAHA;GACG,WAAoB;CACtB\\",\\"file\\":\\"basic.postcss.css\\",\\"sourcesContent\\":[\\"@custom-media --viewport-medium (width <= 50rem);\\\\n@custom-selector :--heading h1, h2, h3, h4, h5, h6;\\\\n\\\\n:root {\\\\n --fontSize: 1rem;\\\\n --mainColor: #12345678;\\\\n --secondaryColor: lab(32.5 38.5 -47.6 / 90%);\\\\n}\\\\n\\\\nhtml {\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (--viewport-medium) {\\\\n body {\\\\n color: var(--mainColor);\\\\n font-family: system-ui;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n overflow-wrap: break-word;\\\\n padding-inline: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\n:--heading {\\\\n margin-block: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgb(0 0 100% / 90%);\\\\n\\\\n&:hover {\\\\n color: rebeccapurple;\\\\n }\\\\n}\\\\n\\"]}]); +" +`; -exports[`sourceMap option true should generate source map when source map is valid from other loader (\`postcss-loader\`): module (evaluated) 1`] = ` +exports[`"sourceMap" option true should generate source maps when source maps is valid from an other loader (\`postcss-loader\`): result 1`] = ` Array [ Array [ - 1, + "./source-map/basic.postcss.css", ":root { --fontSize: 1rem; --mainColor: rgba(18,52,86,0.47059); @@ -251,11 +402,11 @@ a:hover { ", "", Object { - "file": "../../basic.postcss.css", + "file": "basic.postcss.css", "mappings": "AAGA;EACE,gBAAgB;EAChB,mCAAsB;EACtB,yCAA4C;AAC9C;;AAEA;EACE,kBAAqB;EAArB,gBAAqB;EAArB,qBAAqB;AACvB;;AAEA;EACE;IACE,6BAAuB;IAAvB,uBAAuB;IACvB,iGAAsB;IACtB,eAA0B;IAA1B,0BAA0B;IAC1B,6BAAwC;IAAxC,wCAAwC;IACxC,qBAAyB;IACzB,kCAA+C;IAA/C,mCAA+C;IAA/C,6CAA+C;IAA/C,8CAA+C;EACjD;AACF;;AAEA;EACE,aAAe;EAAf,gBAAe;AACjB;;AAEA;EACE;AAKF;;AAHA;GACG,WAAoB;CACtB", "names": Array [], "sources": Array [ - "../../basic.postcss.css", + "basic.postcss.css", ], "sourcesContent": Array [ "@custom-media --viewport-medium (width <= 50rem); @@ -301,66 +452,34 @@ a { ] `; -exports[`sourceMap option true should generate source map when source map is valid from other loader (\`postcss-loader\`): warnings 1`] = `Array []`; +exports[`"sourceMap" option true should generate source maps when source maps is valid from an other loader (\`postcss-loader\`): warnings 1`] = `Array []`; -exports[`sourceMap option true should generate source map when source map is valid from other loader (\`sass-loader\`): errors 1`] = `Array []`; - -exports[`sourceMap option true should generate source map when source map is valid from other loader (\`sass-loader\`): module (evaluated) 1`] = ` -Array [ - Array [ - 1, - "body { - font: 100% Helvetica, sans-serif; - color: #333; -}", - "", - Object { - "file": "../../basic.scss", - "mappings": "AAGA;EACE,gCAAA;EACA,WAJc;ACEhB", - "names": Array [], - "sources": Array [ - "source-map/basic.scss", - "../../basic.scss", - ], - "sourcesContent": Array [ - "$font-stack: Helvetica, sans-serif; -$primary-color: #333; +exports[`"sourceMap" option true should generate source maps: errors 1`] = `Array []`; -body { - font: 100% $font-stack; - color: $primary-color; -} -", - "body { - font: 100% Helvetica, sans-serif; - color: #333; -}", - ], - "version": 3, - }, - ], -] +exports[`"sourceMap" option true should generate source maps: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(true); +// Module +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +" `; -exports[`sourceMap option true should generate source map when source map is valid from other loader (\`sass-loader\`): warnings 1`] = `Array []`; - -exports[`sourceMap option true should generate source map: errors 1`] = `Array []`; - -exports[`sourceMap option true should generate source map: module (evaluated) 1`] = ` +exports[`"sourceMap" option true should generate source maps: result 1`] = ` Array [ Array [ - 1, + "./source-map/basic.css", ".class { color: red; } ", "", Object { - "file": "../../basic.css", + "file": "basic.css", "mappings": "AAAA;EACE,UAAU;AACZ", "names": Array [], "sources": Array [ - "../../basic.css", + "basic.css", ], "sourcesContent": Array [ ".class { @@ -374,4 +493,4 @@ Array [ ] `; -exports[`sourceMap option true should generate source map: warnings 1`] = `Array []`; +exports[`"sourceMap" option true should generate source maps: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/url-option.test.js.snap b/test/__snapshots__/url-option.test.js.snap index c4904a9b..16a57fab 100644 --- a/test/__snapshots__/url-option.test.js.snap +++ b/test/__snapshots__/url-option.test.js.snap @@ -1,11 +1,560 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`url option Function: errors 1`] = `Array []`; +exports[`"url" option should work when not specified: errors 1`] = `Array []`; -exports[`url option Function: module (evaluated) 1`] = ` +exports[`"url" option should work when not specified: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"package/img.png\\"); +var ___CSS_LOADER_URL_IMPORT_2___ = require(\\"./other-img.png\\"); +var ___CSS_LOADER_URL_IMPORT_3___ = require(\\"./img img.png\\"); +var ___CSS_LOADER_URL_IMPORT_4___ = require(\\"./font.woff\\"); +var ___CSS_LOADER_URL_IMPORT_5___ = require(\\"./font.woff2\\"); +var ___CSS_LOADER_URL_IMPORT_6___ = require(\\"./font.eot\\"); +var ___CSS_LOADER_URL_IMPORT_7___ = require(\\"package/font.ttf\\"); +var ___CSS_LOADER_URL_IMPORT_8___ = require(\\"./font with spaces.eot\\"); +var ___CSS_LOADER_URL_IMPORT_9___ = require(\\"./font.svg\\"); +var ___CSS_LOADER_URL_IMPORT_10___ = require(\\"./font.woff2?foo=bar\\"); +var ___CSS_LOADER_URL_IMPORT_11___ = require(\\"./img1x.png\\"); +var ___CSS_LOADER_URL_IMPORT_12___ = require(\\"./img2x.png\\"); +var ___CSS_LOADER_URL_IMPORT_13___ = require(\\"./img.png?foo\\"); +var ___CSS_LOADER_URL_IMPORT_14___ = require(\\"./img.png?foo=bar\\"); +var ___CSS_LOADER_URL_IMPORT_15___ = require(\\"./img.png?\\"); +var ___CSS_LOADER_URL_IMPORT_16___ = require(\\"./img-simple.png\\"); +var ___CSS_LOADER_URL_IMPORT_17___ = require(\\"../url/img-simple.png\\"); +var ___CSS_LOADER_URL_IMPORT_18___ = require(\\"aliasesImg/img.png\\"); +var ___CSS_LOADER_URL_IMPORT_19___ = require(\\"./nested/img.png\\"); +var ___CSS_LOADER_URL_IMPORT_20___ = require(\\"./img3x.png\\"); +var ___CSS_LOADER_URL_IMPORT_21___ = require(\\"./img1x.png?foo=bar\\"); +var ___CSS_LOADER_URL_IMPORT_22___ = require(\\"./img'img.png\\"); +var ___CSS_LOADER_URL_IMPORT_23___ = require(\\"./img'''img.png\\"); +var ___CSS_LOADER_URL_IMPORT_24___ = require(\\"./img(img.png\\"); +var ___CSS_LOADER_URL_IMPORT_25___ = require(\\"./img)img.png\\"); +var ___CSS_LOADER_URL_IMPORT_26___ = require(\\"./img'() img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___); +var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___); +var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___); +var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___); +var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___); +var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___); +var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___); +var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___, { hash: \\"#svgFontName\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___); +var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___); +var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___); +var ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); +var ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___); +var ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___); +var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___); +var ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___); +var ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___); +var ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___); +var ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { hash: \\"#hash\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { hash: \\"?#iefix\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___); +var ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___); +var ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___); +var ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___); +var ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___); +var ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___); +// Module +exports.push([module.id, \\".class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n\\\\n background-image: image-set(\\\\n \\\\n \\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n}\\\\n\\", \\"\\"]); +" +`; + +exports[`"url" option should work when not specified: result 1`] = ` +Array [ + Array [ + "../../src/index.js?!./url/imported.css", + ".bar { + background: url(/webpack/public/path/img-from-imported.png); +} +", + "", + ], + Array [ + "./url/url.css", + ".class { + background: url(/webpack/public/path/img.png); +} + +.class { + background: url(/webpack/public/path/img.png); +} + +.class { + background: url(/webpack/public/path/img.png); +} + +.class { + background: url(/webpack/public/path/img.png#hash); +} + +.class { + background: url( + /webpack/public/path/img.png + ); +} + +.class { + background: green url( /webpack/public/path/img.png ) xyz; +} + +.class { + background: green url( /webpack/public/path/img.png ) xyz; +} + +.class { + background: green url( /webpack/public/path/img.png ) xyz; +} + +.class { + background: green url(/webpack/public/path/img.png) url(/webpack/public/path/other-img.png) xyz; +} + +.class { + background: green url( \\"/webpack/public/path/img img.png\\" ) xyz; +} + +.class { + background: green url( \\"/webpack/public/path/img img.png\\" ) xyz; +} + +.class { + background: green url(/img.png) xyz; +} + +.class { + background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz; +} + +.class { + background-image: url(\\"data:image/svg+xml;charset=utf-8,\\"); +} + +.class { + background-image: url(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\"); +} + +.class { + filter: url('data:image/svg+xml;charset=utf-8,#filter'); +} + +.class { + filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter'); +} + +.highlight { + filter: url(#highlight); +} + +.highlight { + filter: url('#line-marker'); +} + +@font-face { + src: url(/webpack/public/path/font.woff) format('woff'), + url(/webpack/public/path/font.woff2) format('woff2'), + url(/webpack/public/path/font.eot) format('eot'), + url(/webpack/public/path/font.ttf) format('truetype'), + url(\\"/webpack/public/path/font with spaces.eot\\") format(\\"embedded-opentype\\"), + url(/webpack/public/path/font.svg#svgFontName) format('svg'), + url(/webpack/public/path/font.woff2) format('woff2'), + url(/webpack/public/path/font.eot?#iefix) format('embedded-opentype'), + url(\\"/webpack/public/path/font with spaces.eot?#iefix\\") format('embedded-opentype'); +} + +@media (min-width: 500px) { + body { + background: url(/webpack/public/path/img.png); + } +} + +a { + content: \\"do not use url(path)\\"; +} + +b { + content: 'do not \\"use\\" url(path)'; +} + +@keyframes anim { + background: green url(/webpack/public/path/img.png) xyz; +} + +.a { + background-image: -webkit-image-set(url(/webpack/public/path/img1x.png) 1x, url(/webpack/public/path/img2x.png) 2x) +} + +.a { + background-image: image-set(url(/webpack/public/path/img1x.png) 1x, url(/webpack/public/path/img2x.png) 2x) +} + +.class { + background: green url() xyz; +} + +.class { + background: green url('') xyz; +} + +.class { + background: green url(\\"\\") xyz; +} + +.class { + background: green url(' ') xyz; +} + +.class { + background: green url( + ) xyz; +} + +.class { + background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz; +} + +.class { + background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz; +} + +.class { + background: url(/webpack/public/path/img.png); +} + +.class { + background: url(/webpack/public/path/img.png); +} + +.class { + background: url(/webpack/public/path/img.png#hash); +} + +.class { + background: url(/webpack/public/path/img.png#hash); +} + +.class { + background: url(/webpack/public/path/img.png); +} + +.class { + background-image: url(/webpack/public/path/img.png) url(\\"data:image/svg+xml;charset=utf-8,\\") url(/webpack/public/path/img.png); +} + +.class { + background: ___CSS_LOADER_URL___; + background: ___CSS_LOADER_URL___INDEX___; + background: ___CSS_LOADER_URL___99999___; + background: ___CSS_LOADER_IMPORT___; + background: ___CSS_LOADER_IMPORT___INDEX___; + background: ___CSS_LOADER_IMPORT___99999___; +} + +.pure-url { + background: url(/webpack/public/path/img-simple.png); +} + +.not-resolved { + background: url('/img-simple.png'); +} + +.above-below { + background: url(/webpack/public/path/img-simple.png); +} + +.tilde { + background: url(/webpack/public/path/img.png); +} + +.aliases { + background: url(/webpack/public/path/img.png); +} + +a { + background: url(/webpack/public/path/img.png); +} + +a { + background: url(/webpack/public/path/img.png); +} + +@font-face { + src: url(\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\"); +} + +.class { + /* Broken */ + background-image: -webkit-image-set(); + background-image: -webkit-image-set(''); + background-image: image-set(); + background-image: image-set(''); + background-image: image-set(\\"\\"); + background-image: image-set(\\"\\" 1x); + background-image: image-set(url()); + background-image: image-set( + url() + ); + background-image: image-set(URL()); + background-image: image-set(url('')); + background-image: image-set(url(\\"\\")); + background-image: image-set(url('') 1x); + background-image: image-set(1x); + background-image: image-set( + 1x + ); + background: image-set(calc(1rem + 1px) 1x); + + /* Strings */ + background-image: -webkit-image-set(\\"/webpack/public/path/img1x.png\\" 1x, \\"/webpack/public/path/img2x.png\\" 2x); + background-image: image-set(\\"/webpack/public/path/img1x.png\\" 1x); + background-image: image-set(\\"/webpack/public/path/img1x.png\\" 1x, \\"/webpack/public/path/img2x.png\\" 2x); + background-image: image-set(\\"/webpack/public/path/img img.png\\" 1x, \\"/webpack/public/path/img img.png\\" 2x); + background-image: image-set(\\"/webpack/public/path/img1x.png\\" 1x, \\"/webpack/public/path/img2x.png\\" 2x), + image-set(\\"/webpack/public/path/img1x.png\\" 1x, \\"/webpack/public/path/img2x.png\\" 2x); + background-image: image-set( + \\"/webpack/public/path/img1x.png\\" 1x, + \\"/webpack/public/path/img2x.png\\" 2x, + \\"/webpack/public/path/img3x.png\\" 600dpi + ); + background-image: image-set(\\"/webpack/public/path/img1x.png\\" 1x); + background-image: image-set(\\"/webpack/public/path/img1x.png#hash\\" 1x); + background-image: image-set(\\"/webpack/public/path/img1x.png?#iefix\\" 1x); + + /* With \`url\` function */ + background-image: -webkit-image-set(url(/webpack/public/path/img1x.png) 1x, url(/webpack/public/path/img2x.png) 2x); + background-image: -webkit-image-set(url(/webpack/public/path/img1x.png) 1x); + background-image: -webkit-image-set( + url(/webpack/public/path/img1x.png) 1x + ); + background-image: image-set(url(/webpack/public/path/img1x.png) 1x); + background-image: image-set( + url(/webpack/public/path/img1x.png) 1x + ); + background-image: image-set(url(/webpack/public/path/img1x.png) 1x, url(/webpack/public/path/img2x.png) 2x); + background-image: image-set( + url(/webpack/public/path/img1x.png) 1x, + url(/webpack/public/path/img2x.png) 2x, + url(/webpack/public/path/img3x.png) 600dpi + ); + background-image: image-set(url(\\"/webpack/public/path/img img.png\\") 1x, url(\\"/webpack/public/path/img img.png\\") 2x); + + background-image: image-set(url(/webpack/public/path/img1x.png) 1x, \\"/webpack/public/path/img2x.png\\" 2x); +} + +.class { + /* Not allowed on windows */ + /* background: url(./img\\\\\\"img.png); */ + background: url(\\"/webpack/public/path/img'img.png\\"); + background: url(\\"/webpack/public/path/img'''img.png\\"); + background: url(\\"/webpack/public/path/img(img.png\\"); + background: url(\\"/webpack/public/path/img)img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(\\"/webpack/public/path/img'() img.png\\"); + + background-image: image-set( + + + url(\\"/webpack/public/path/img'''img.png\\") 2x, + url(\\"/webpack/public/path/img'img.png\\") 3x, + url(\\"/webpack/public/path/img(img.png\\") 4x, + url(\\"/webpack/public/path/img)img.png\\") 5x, + url(\\"/webpack/public/path/img img.png\\") 6x, + url(\\"/webpack/public/path/img'() img.png\\") 7x + ); +} + +.class-class-class { + background: url(\\"/webpack/public/path/img'''img.png\\"); + background: url(\\"/webpack/public/path/img'() img.png\\"); + background: url(\\"/webpack/public/path/img'img.png\\"); + background: url(\\"/webpack/public/path/img(img.png\\"); + background: url(\\"/webpack/public/path/img)img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); +} + +.class.class.class { + background: url(\\"/webpack/public/path/img(img.png\\"); + background: url(\\"/webpack/public/path/img(img.png\\"); +} + +.other-test-case { + background: url(\\"/webpack/public/path/img'''img.png\\"); + background: url(\\"/webpack/public/path/img'() img.png\\"); + background: url(\\"/webpack/public/path/img'img.png\\"); + background: url(\\"/webpack/public/path/img(img.png\\"); + background: url(\\"/webpack/public/path/img)img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(\\"/webpack/public/path/img'''img.png\\"); + background: url(\\"/webpack/public/path/img'() img.png\\"); + background: url(\\"/webpack/public/path/img'img.png\\"); + background: url(\\"/webpack/public/path/img(img.png\\"); + background: url(\\"/webpack/public/path/img)img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); +} + +.qqq { + background: url(/webpack/public/path/img.png); +} + +.www { + background: url(\\"/webpack/public/path/img'''img.png\\"); + background: url(\\"/webpack/public/path/img'() img.png\\"); + background: url(\\"/webpack/public/path/img'img.png\\"); + background: url(\\"/webpack/public/path/img(img.png\\"); + background: url(\\"/webpack/public/path/img)img.png\\"); + background: url(\\"/webpack/public/path/img img.png\\"); + background: url(/webpack/public/path/img.png); + background: url(/webpack/public/path/img.png); + background: url(\\"/webpack/public/path/img'img.png\\"); + background: url(\\"/webpack/public/path/img'() img.png\\"); + background: url(\\"/webpack/public/path/img'() img.png\\"); +} +", + "", + ], +] +`; + +exports[`"url" option should work when not specified: warnings 1`] = ` +Array [ + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(120:3) Unable to find uri in 'background: green url() xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(124:3) Unable to find uri in 'background: green url('') xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(128:3) Unable to find uri in 'background: green url(\\"\\") xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(132:3) Unable to find uri in 'background: green url(' ') xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(136:3) Unable to find uri in 'background: green url( + ) xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(216:3) Unable to find uri in 'background-image: -webkit-image-set('')'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(218:3) Unable to find uri in 'background-image: image-set('')'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(219:3) Unable to find uri in 'background-image: image-set(\\"\\")'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(220:3) Unable to find uri in 'background-image: image-set(\\"\\" 1x)'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(221:3) Unable to find uri in 'background-image: image-set(url())'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(222:3) Unable to find uri in 'background-image: image-set( + url() + )'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(225:3) Unable to find uri in 'background-image: image-set(URL())'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(226:3) Unable to find uri in 'background-image: image-set(url(''))'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(227:3) Unable to find uri in 'background-image: image-set(url(\\"\\"))'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(228:3) Unable to find uri in 'background-image: image-set(url('') 1x)'", +] +`; + +exports[`"url" option should work with a value equal to "Function": errors 1`] = `Array []`; + +exports[`"url" option should work with a value equal to "Function": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./font.woff\\"); +var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./font.woff2\\"); +var ___CSS_LOADER_URL_IMPORT_2___ = require(\\"./font.eot\\"); +var ___CSS_LOADER_URL_IMPORT_3___ = require(\\"package/font.ttf\\"); +var ___CSS_LOADER_URL_IMPORT_4___ = require(\\"./font with spaces.eot\\"); +var ___CSS_LOADER_URL_IMPORT_5___ = require(\\"./font.svg\\"); +var ___CSS_LOADER_URL_IMPORT_6___ = require(\\"./font.woff2?foo=bar\\"); +var ___CSS_LOADER_URL_IMPORT_7___ = require(\\"./img1x.png\\"); +var ___CSS_LOADER_URL_IMPORT_8___ = require(\\"./img2x.png\\"); +var ___CSS_LOADER_URL_IMPORT_9___ = require(\\"./img-simple.png\\"); +var ___CSS_LOADER_URL_IMPORT_10___ = require(\\"../url/img-simple.png\\"); +var ___CSS_LOADER_URL_IMPORT_11___ = require(\\"./img3x.png\\"); +var ___CSS_LOADER_URL_IMPORT_12___ = require(\\"./img1x.png?foo=bar\\"); +var ___CSS_LOADER_URL_IMPORT_13___ = require(\\"./img.png\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___); +var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___); +var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___); +var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___, { hash: \\"#svgFontName\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___); +var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___); +var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___); +var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___); +var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___); +var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___, { hash: \\"#hash\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___, { hash: \\"?#iefix\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___); +var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); +// Module +exports.push([module.id, \\".class {\\\\n background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\\\\\"./img.png\\\\\\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(./img\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\(img.png);\\\\n background: url(./img\\\\\\\\)img.png);\\\\n background: url(./img\\\\\\\\ img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n url(./img\\\\\\\\'img.png) 3x,\\\\n url(./img\\\\\\\\(img.png) 4x,\\\\n url(./img\\\\\\\\)img.png) 5x,\\\\n url(./img\\\\\\\\ img.png) 6x,\\\\n url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n background: url(\\\\\\"./img'img.png\\\\\\");\\\\n background: url(\\\\\\"./img(img.png\\\\\\");\\\\n background: url(\\\\\\"./img)img.png\\\\\\");\\\\n background: url('./img img.png');\\\\n background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n background: url(./img%27%27%27img.png);\\\\n background: url(./img%27%28%29%20img.png);\\\\n background: url(./img%27img.png);\\\\n background: url(./img%28img.png);\\\\n background: url(./img%29img.png);\\\\n background: url(./img%20img.png);\\\\n}\\\\n\\\\n.qqq {\\\\n background: url('img.png');\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\(img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\)img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n background: url(\\\\\\"./img\\\\\\\\27img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\28%29 img.png\\\\\\");\\\\n background: url(./img\\\\\\\\'\\\\\\\\28%29\\\\\\\\ img.png);\\\\n}\\\\n\\", \\"\\"]); +" +`; + +exports[`"url" option should work with a value equal to "Function": result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!./url/imported.css", ".bar { background: url(/webpack/public/path/img-from-imported.png); } @@ -13,7 +562,7 @@ Array [ "", ], Array [ - 1, + "./url/url.css", ".class { background: url('./img.png'); } @@ -363,54 +912,7 @@ a { ] `; -exports[`url option Function: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./font.woff\\"); -var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./font.woff2\\"); -var ___CSS_LOADER_URL_IMPORT_2___ = require(\\"./font.eot\\"); -var ___CSS_LOADER_URL_IMPORT_3___ = require(\\"package/font.ttf\\"); -var ___CSS_LOADER_URL_IMPORT_4___ = require(\\"./font with spaces.eot\\"); -var ___CSS_LOADER_URL_IMPORT_5___ = require(\\"./font.svg\\"); -var ___CSS_LOADER_URL_IMPORT_6___ = require(\\"./font.woff2?foo=bar\\"); -var ___CSS_LOADER_URL_IMPORT_7___ = require(\\"./img1x.png\\"); -var ___CSS_LOADER_URL_IMPORT_8___ = require(\\"./img2x.png\\"); -var ___CSS_LOADER_URL_IMPORT_9___ = require(\\"./img-simple.png\\"); -var ___CSS_LOADER_URL_IMPORT_10___ = require(\\"../url/img-simple.png\\"); -var ___CSS_LOADER_URL_IMPORT_11___ = require(\\"./img3x.png\\"); -var ___CSS_LOADER_URL_IMPORT_12___ = require(\\"./img1x.png?foo=bar\\"); -var ___CSS_LOADER_URL_IMPORT_13___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___); -var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___); -var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___); -var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___, { hash: \\"#svgFontName\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___); -var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___, { hash: \\"?#iefix\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___, { hash: \\"?#iefix\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___); -var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___); -var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___); -var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___); -var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___, { hash: \\"#hash\\", needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___, { hash: \\"?#iefix\\", needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___); -var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); -// Module -exports.push([module.id, \\".class {\\\\n background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\\\\\"./img.png\\\\\\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(./img\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\(img.png);\\\\n background: url(./img\\\\\\\\)img.png);\\\\n background: url(./img\\\\\\\\ img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n url(./img\\\\\\\\'img.png) 3x,\\\\n url(./img\\\\\\\\(img.png) 4x,\\\\n url(./img\\\\\\\\)img.png) 5x,\\\\n url(./img\\\\\\\\ img.png) 6x,\\\\n url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n background: url(\\\\\\"./img'img.png\\\\\\");\\\\n background: url(\\\\\\"./img(img.png\\\\\\");\\\\n background: url(\\\\\\"./img)img.png\\\\\\");\\\\n background: url('./img img.png');\\\\n background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n background: url(./img%27%27%27img.png);\\\\n background: url(./img%27%28%29%20img.png);\\\\n background: url(./img%27img.png);\\\\n background: url(./img%28img.png);\\\\n background: url(./img%29img.png);\\\\n background: url(./img%20img.png);\\\\n}\\\\n\\\\n.qqq {\\\\n background: url('img.png');\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\(img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\)img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n background: url(\\\\\\"./img\\\\\\\\27img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\28%29 img.png\\\\\\");\\\\n background: url(./img\\\\\\\\'\\\\\\\\28%29\\\\\\\\ img.png);\\\\n}\\\\n\\", \\"\\"]); -" -`; - -exports[`url option Function: warnings 1`] = ` +exports[`"url" option should work with a value equal to "Function": warnings 1`] = ` Array [ "ModuleWarning: Module Warning (from \`replaced original path\`): Warning @@ -478,12 +980,23 @@ Warning ] `; -exports[`url option false: errors 1`] = `Array []`; +exports[`"url" option should work with a value equal to "false": errors 1`] = `Array []`; + +exports[`"url" option should work with a value equal to "false": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./imported.css\\"); +exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +// Module +exports.push([module.id, \\".class {\\\\n background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\\\\\"./img.png\\\\\\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(./font.woff) format('woff'),\\\\n url('./font.woff2') format('woff2'),\\\\n url(\\\\\\"./font.eot\\\\\\") format('eot'),\\\\n url(~package/font.ttf) format('truetype'),\\\\n url(\\\\\\"./font with spaces.eot\\\\\\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url('./font.svg#svgFontName') format('svg'),\\\\n url('./font.woff2?foo=bar') format('woff2'),\\\\n url(\\\\\\"./font.eot?#iefix\\\\\\") format('embedded-opentype'),\\\\n url(\\\\\\"./font with spaces.eot?#iefix\\\\\\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url('img-simple.png');\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url('../url/img-simple.png');\\\\n}\\\\n\\\\n.tilde {\\\\n background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x),\\\\n image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\n \\\\\\"./img1x.png\\\\\\" 1x,\\\\n \\\\\\"./img2x.png\\\\\\" 2x,\\\\n \\\\\\"./img3x.png\\\\\\" 600dpi\\\\n );\\\\n background-image: image-set(\\\\\\"./img1x.png?foo=bar\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png#hash\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png?#iefix\\\\\\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\\\\\"./img1x.png\\\\\\") 1x\\\\n );\\\\n background-image: image-set(url(./img1x.png) 1x);\\\\n background-image: image-set(\\\\n url(./img1x.png) 1x\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n background-image: image-set(\\\\n url(./img1x.png) 1x,\\\\n url(./img2x.png) 2x,\\\\n url(./img3x.png) 600dpi\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(./img\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\(img.png);\\\\n background: url(./img\\\\\\\\)img.png);\\\\n background: url(./img\\\\\\\\ img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n url(./img\\\\\\\\'img.png) 3x,\\\\n url(./img\\\\\\\\(img.png) 4x,\\\\n url(./img\\\\\\\\)img.png) 5x,\\\\n url(./img\\\\\\\\ img.png) 6x,\\\\n url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n background: url(\\\\\\"./img'img.png\\\\\\");\\\\n background: url(\\\\\\"./img(img.png\\\\\\");\\\\n background: url(\\\\\\"./img)img.png\\\\\\");\\\\n background: url('./img img.png');\\\\n background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n background: url(./img%27%27%27img.png);\\\\n background: url(./img%27%28%29%20img.png);\\\\n background: url(./img%27img.png);\\\\n background: url(./img%28img.png);\\\\n background: url(./img%29img.png);\\\\n background: url(./img%20img.png);\\\\n}\\\\n\\\\n.qqq {\\\\n background: url('img.png');\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\(img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\)img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./\\\\\\\\69\\\\\\\\6D\\\\\\\\67.png\\\\\\");\\\\n background: url(./\\\\\\\\69\\\\\\\\6D\\\\\\\\67.png);\\\\n background: url(\\\\\\"./img\\\\\\\\27img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\28%29 img.png\\\\\\");\\\\n background: url(./img\\\\\\\\'\\\\\\\\28%29\\\\\\\\ img.png);\\\\n}\\\\n\\", \\"\\"]); +" +`; -exports[`url option false: module (evaluated) 1`] = ` +exports[`"url" option should work with a value equal to "false": result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!./url/imported.css", ".bar { background: url('./img-from-imported.png'); } @@ -491,7 +1004,7 @@ Array [ "", ], Array [ - 1, + "./url/url.css", ".class { background: url('./img.png'); } @@ -841,25 +1354,90 @@ a { ] `; -exports[`url option false: module 1`] = ` +exports[`"url" option should work with a value equal to "false": warnings 1`] = `Array []`; + +exports[`"url" option should work with a value equal to "true": errors 1`] = `Array []`; + +exports[`"url" option should work with a value equal to "true": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"package/img.png\\"); +var ___CSS_LOADER_URL_IMPORT_2___ = require(\\"./other-img.png\\"); +var ___CSS_LOADER_URL_IMPORT_3___ = require(\\"./img img.png\\"); +var ___CSS_LOADER_URL_IMPORT_4___ = require(\\"./font.woff\\"); +var ___CSS_LOADER_URL_IMPORT_5___ = require(\\"./font.woff2\\"); +var ___CSS_LOADER_URL_IMPORT_6___ = require(\\"./font.eot\\"); +var ___CSS_LOADER_URL_IMPORT_7___ = require(\\"package/font.ttf\\"); +var ___CSS_LOADER_URL_IMPORT_8___ = require(\\"./font with spaces.eot\\"); +var ___CSS_LOADER_URL_IMPORT_9___ = require(\\"./font.svg\\"); +var ___CSS_LOADER_URL_IMPORT_10___ = require(\\"./font.woff2?foo=bar\\"); +var ___CSS_LOADER_URL_IMPORT_11___ = require(\\"./img1x.png\\"); +var ___CSS_LOADER_URL_IMPORT_12___ = require(\\"./img2x.png\\"); +var ___CSS_LOADER_URL_IMPORT_13___ = require(\\"./img.png?foo\\"); +var ___CSS_LOADER_URL_IMPORT_14___ = require(\\"./img.png?foo=bar\\"); +var ___CSS_LOADER_URL_IMPORT_15___ = require(\\"./img.png?\\"); +var ___CSS_LOADER_URL_IMPORT_16___ = require(\\"./img-simple.png\\"); +var ___CSS_LOADER_URL_IMPORT_17___ = require(\\"../url/img-simple.png\\"); +var ___CSS_LOADER_URL_IMPORT_18___ = require(\\"aliasesImg/img.png\\"); +var ___CSS_LOADER_URL_IMPORT_19___ = require(\\"./nested/img.png\\"); +var ___CSS_LOADER_URL_IMPORT_20___ = require(\\"./img3x.png\\"); +var ___CSS_LOADER_URL_IMPORT_21___ = require(\\"./img1x.png?foo=bar\\"); +var ___CSS_LOADER_URL_IMPORT_22___ = require(\\"./img'img.png\\"); +var ___CSS_LOADER_URL_IMPORT_23___ = require(\\"./img'''img.png\\"); +var ___CSS_LOADER_URL_IMPORT_24___ = require(\\"./img(img.png\\"); +var ___CSS_LOADER_URL_IMPORT_25___ = require(\\"./img)img.png\\"); +var ___CSS_LOADER_URL_IMPORT_26___ = require(\\"./img'() img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___); +var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___); +var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___); +var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___); +var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___); +var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___); +var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___); +var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___, { hash: \\"#svgFontName\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___); +var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___); +var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___); +var ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); +var ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___); +var ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___); +var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___); +var ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___); +var ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___); +var ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___); +var ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { hash: \\"#hash\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { hash: \\"?#iefix\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___); +var ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___); +var ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___); +var ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___); +var ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___); +var ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___); // Module -exports.push([module.id, \\".class {\\\\n background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\\\\\"./img.png\\\\\\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(./font.woff) format('woff'),\\\\n url('./font.woff2') format('woff2'),\\\\n url(\\\\\\"./font.eot\\\\\\") format('eot'),\\\\n url(~package/font.ttf) format('truetype'),\\\\n url(\\\\\\"./font with spaces.eot\\\\\\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url('./font.svg#svgFontName') format('svg'),\\\\n url('./font.woff2?foo=bar') format('woff2'),\\\\n url(\\\\\\"./font.eot?#iefix\\\\\\") format('embedded-opentype'),\\\\n url(\\\\\\"./font with spaces.eot?#iefix\\\\\\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url('img-simple.png');\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url('../url/img-simple.png');\\\\n}\\\\n\\\\n.tilde {\\\\n background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x),\\\\n image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\n \\\\\\"./img1x.png\\\\\\" 1x,\\\\n \\\\\\"./img2x.png\\\\\\" 2x,\\\\n \\\\\\"./img3x.png\\\\\\" 600dpi\\\\n );\\\\n background-image: image-set(\\\\\\"./img1x.png?foo=bar\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png#hash\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png?#iefix\\\\\\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\\\\\"./img1x.png\\\\\\") 1x\\\\n );\\\\n background-image: image-set(url(./img1x.png) 1x);\\\\n background-image: image-set(\\\\n url(./img1x.png) 1x\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n background-image: image-set(\\\\n url(./img1x.png) 1x,\\\\n url(./img2x.png) 2x,\\\\n url(./img3x.png) 600dpi\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(./img\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\(img.png);\\\\n background: url(./img\\\\\\\\)img.png);\\\\n background: url(./img\\\\\\\\ img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n url(./img\\\\\\\\'img.png) 3x,\\\\n url(./img\\\\\\\\(img.png) 4x,\\\\n url(./img\\\\\\\\)img.png) 5x,\\\\n url(./img\\\\\\\\ img.png) 6x,\\\\n url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n background: url(\\\\\\"./img'img.png\\\\\\");\\\\n background: url(\\\\\\"./img(img.png\\\\\\");\\\\n background: url(\\\\\\"./img)img.png\\\\\\");\\\\n background: url('./img img.png');\\\\n background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n background: url(./img%27%27%27img.png);\\\\n background: url(./img%27%28%29%20img.png);\\\\n background: url(./img%27img.png);\\\\n background: url(./img%28img.png);\\\\n background: url(./img%29img.png);\\\\n background: url(./img%20img.png);\\\\n}\\\\n\\\\n.qqq {\\\\n background: url('img.png');\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\(img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\)img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./\\\\\\\\69\\\\\\\\6D\\\\\\\\67.png\\\\\\");\\\\n background: url(./\\\\\\\\69\\\\\\\\6D\\\\\\\\67.png);\\\\n background: url(\\\\\\"./img\\\\\\\\27img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\28%29 img.png\\\\\\");\\\\n background: url(./img\\\\\\\\'\\\\\\\\28%29\\\\\\\\ img.png);\\\\n}\\\\n\\", \\"\\"]); +exports.push([module.id, \\".class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n\\\\n background-image: image-set(\\\\n \\\\n \\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n}\\\\n\\", \\"\\"]); " `; -exports[`url option false: warnings 1`] = `Array []`; - -exports[`url option true: errors 1`] = `Array []`; - -exports[`url option true: module (evaluated) 1`] = ` +exports[`"url" option should work with a value equal to "true": result 1`] = ` Array [ Array [ - 2, + "../../src/index.js?!./url/imported.css", ".bar { background: url(/webpack/public/path/img-from-imported.png); } @@ -867,7 +1445,7 @@ Array [ "", ], Array [ - 1, + "./url/url.css", ".class { background: url(/webpack/public/path/img.png); } @@ -1212,83 +1790,7 @@ a { ] `; -exports[`url option true: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"package/img.png\\"); -var ___CSS_LOADER_URL_IMPORT_2___ = require(\\"./other-img.png\\"); -var ___CSS_LOADER_URL_IMPORT_3___ = require(\\"./img img.png\\"); -var ___CSS_LOADER_URL_IMPORT_4___ = require(\\"./font.woff\\"); -var ___CSS_LOADER_URL_IMPORT_5___ = require(\\"./font.woff2\\"); -var ___CSS_LOADER_URL_IMPORT_6___ = require(\\"./font.eot\\"); -var ___CSS_LOADER_URL_IMPORT_7___ = require(\\"package/font.ttf\\"); -var ___CSS_LOADER_URL_IMPORT_8___ = require(\\"./font with spaces.eot\\"); -var ___CSS_LOADER_URL_IMPORT_9___ = require(\\"./font.svg\\"); -var ___CSS_LOADER_URL_IMPORT_10___ = require(\\"./font.woff2?foo=bar\\"); -var ___CSS_LOADER_URL_IMPORT_11___ = require(\\"./img1x.png\\"); -var ___CSS_LOADER_URL_IMPORT_12___ = require(\\"./img2x.png\\"); -var ___CSS_LOADER_URL_IMPORT_13___ = require(\\"./img.png?foo\\"); -var ___CSS_LOADER_URL_IMPORT_14___ = require(\\"./img.png?foo=bar\\"); -var ___CSS_LOADER_URL_IMPORT_15___ = require(\\"./img.png?\\"); -var ___CSS_LOADER_URL_IMPORT_16___ = require(\\"./img-simple.png\\"); -var ___CSS_LOADER_URL_IMPORT_17___ = require(\\"../url/img-simple.png\\"); -var ___CSS_LOADER_URL_IMPORT_18___ = require(\\"aliasesImg/img.png\\"); -var ___CSS_LOADER_URL_IMPORT_19___ = require(\\"./nested/img.png\\"); -var ___CSS_LOADER_URL_IMPORT_20___ = require(\\"./img3x.png\\"); -var ___CSS_LOADER_URL_IMPORT_21___ = require(\\"./img1x.png?foo=bar\\"); -var ___CSS_LOADER_URL_IMPORT_22___ = require(\\"./img'img.png\\"); -var ___CSS_LOADER_URL_IMPORT_23___ = require(\\"./img'''img.png\\"); -var ___CSS_LOADER_URL_IMPORT_24___ = require(\\"./img(img.png\\"); -var ___CSS_LOADER_URL_IMPORT_25___ = require(\\"./img)img.png\\"); -var ___CSS_LOADER_URL_IMPORT_26___ = require(\\"./img'() img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___); -var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___); -var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___); -var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___); -var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___); -var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___); -var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___); -var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___, { hash: \\"#svgFontName\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___); -var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___, { hash: \\"?#iefix\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___, { hash: \\"?#iefix\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___); -var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___); -var ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); -var ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___); -var ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \\"#hash\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___); -var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___); -var ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___); -var ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___); -var ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___); -var ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { hash: \\"#hash\\", needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___, { hash: \\"?#iefix\\", needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___); -var ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___); -var ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___); -var ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___); -var ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___); -var ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___); -// Module -exports.push([module.id, \\".class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n\\\\n background-image: image-set(\\\\n \\\\n \\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n}\\\\n\\", \\"\\"]); -" -`; - -exports[`url option true: warnings 1`] = ` +exports[`"url" option should work with a value equal to "true": warnings 1`] = ` Array [ "ModuleWarning: Module Warning (from \`replaced original path\`): Warning diff --git a/test/__snapshots__/validate-options.test.js.snap b/test/__snapshots__/validate-options.test.js.snap index 90b16f6f..212f97ef 100644 --- a/test/__snapshots__/validate-options.test.js.snap +++ b/test/__snapshots__/validate-options.test.js.snap @@ -1,16 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`validate options 1`] = ` -"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.url should be one of these: - boolean | function - -> Enables/Disables 'url'/'image-set' functions handling (https://github.com/webpack-contrib/css-loader#url). - Details: - * options.url should be a boolean. - * options.url should be an instance of function." -`; - -exports[`validate options 2`] = ` +exports[`validate options should throw an error on the "import" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options.import should be one of these: boolean | function @@ -20,7 +10,89 @@ exports[`validate options 2`] = ` * options.import should be an instance of function." `; -exports[`validate options 3`] = ` +exports[`validate options should throw an error on the "importLoaders" option with "1" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.importLoaders should be one of these: + boolean | number + -> Enables/Disables or setups number of loaders applied before CSS loader (https://github.com/webpack-contrib/css-loader#importloaders). + Details: + * options.importLoaders should be a boolean. + * options.importLoaders should be a number." +`; + +exports[`validate options should throw an error on the "localsConvention" option with "unknown" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.localsConvention should be one of these: + \\"asIs\\" | \\"camelCase\\" | \\"camelCaseOnly\\" | \\"dashes\\" | \\"dashesOnly\\" + -> Style of exported classnames (https://github.com/webpack-contrib/css-loader#localsconvention)." +`; + +exports[`validate options should throw an error on the "modules" option with "{"context":true}" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.modules.context should be a string." +`; + +exports[`validate options should throw an error on the "modules" option with "{"getLocalIdent":[]}" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.modules should be one of these: + boolean | \\"local\\" | \\"global\\" | \\"pure\\" | object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? } + -> Enables/Disables CSS Modules and their configuration (https://github.com/webpack-contrib/css-loader#modules). + Details: + * options.modules.getLocalIdent should be one of these: + boolean | function + Details: + * options.modules.getLocalIdent should be a boolean. + * options.modules.getLocalIdent should be an instance of function." +`; + +exports[`validate options should throw an error on the "modules" option with "{"hashPrefix":true}" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.modules.hashPrefix should be a string." +`; + +exports[`validate options should throw an error on the "modules" option with "{"localIdentName":true}" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.modules.localIdentName should be a string." +`; + +exports[`validate options should throw an error on the "modules" option with "{"localIdentRegExp":true}" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.modules should be one of these: + boolean | \\"local\\" | \\"global\\" | \\"pure\\" | object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? } + -> Enables/Disables CSS Modules and their configuration (https://github.com/webpack-contrib/css-loader#modules). + Details: + * options.modules.localIdentRegExp should be one of these: + string | RegExp + Details: + * options.modules.localIdentRegExp should be a string. + * options.modules.localIdentRegExp should be an instance of RegExp." +`; + +exports[`validate options should throw an error on the "modules" option with "{"mode":"globals"}" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.modules.mode should be one of these: + \\"local\\" | \\"global\\" | \\"pure\\"" +`; + +exports[`validate options should throw an error on the "modules" option with "{"mode":"locals"}" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.modules.mode should be one of these: + \\"local\\" | \\"global\\" | \\"pure\\"" +`; + +exports[`validate options should throw an error on the "modules" option with "{"mode":"pures"}" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.modules.mode should be one of these: + \\"local\\" | \\"global\\" | \\"pure\\"" +`; + +exports[`validate options should throw an error on the "modules" option with "{"mode":true}" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.modules.mode should be one of these: + \\"local\\" | \\"global\\" | \\"pure\\"" +`; + +exports[`validate options should throw an error on the "modules" option with "globals" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options.modules should be one of these: boolean | \\"local\\" | \\"global\\" | \\"pure\\" | object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? } @@ -33,7 +105,7 @@ exports[`validate options 3`] = ` object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? }" `; -exports[`validate options 4`] = ` +exports[`validate options should throw an error on the "modules" option with "locals" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options.modules should be one of these: boolean | \\"local\\" | \\"global\\" | \\"pure\\" | object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? } @@ -46,7 +118,7 @@ exports[`validate options 4`] = ` object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? }" `; -exports[`validate options 5`] = ` +exports[`validate options should throw an error on the "modules" option with "pures" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options.modules should be one of these: boolean | \\"local\\" | \\"global\\" | \\"pure\\" | object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? } @@ -59,7 +131,7 @@ exports[`validate options 5`] = ` object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? }" `; -exports[`validate options 6`] = ` +exports[`validate options should throw an error on the "modules" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options.modules should be one of these: boolean | \\"local\\" | \\"global\\" | \\"pure\\" | object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? } @@ -72,102 +144,72 @@ exports[`validate options 6`] = ` object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? }" `; -exports[`validate options 7`] = ` -"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.modules.mode should be one of these: - \\"local\\" | \\"global\\" | \\"pure\\"" -`; - -exports[`validate options 8`] = ` +exports[`validate options should throw an error on the "onlyLocals" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.modules.mode should be one of these: - \\"local\\" | \\"global\\" | \\"pure\\"" + - options.onlyLocals should be a boolean. + -> Export only locals (https://github.com/webpack-contrib/css-loader#onlylocals)." `; -exports[`validate options 9`] = ` +exports[`validate options should throw an error on the "sourceMap" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.modules.mode should be one of these: - \\"local\\" | \\"global\\" | \\"pure\\"" + - options.sourceMap should be a boolean. + -> Enables/Disables generation of source maps (https://github.com/webpack-contrib/css-loader#sourcemap)." `; -exports[`validate options 10`] = ` +exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.modules.mode should be one of these: - \\"local\\" | \\"global\\" | \\"pure\\"" + - options has an unknown property 'unknown'. These properties are valid: + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" `; -exports[`validate options 11`] = ` +exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.modules.localIdentName should be a string." + - options has an unknown property 'unknown'. These properties are valid: + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" `; -exports[`validate options 12`] = ` +exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.modules.context should be a string." + - options has an unknown property 'unknown'. These properties are valid: + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" `; -exports[`validate options 13`] = ` +exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.modules.hashPrefix should be a string." + - options has an unknown property 'unknown'. These properties are valid: + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" `; -exports[`validate options 14`] = ` +exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.modules should be one of these: - boolean | \\"local\\" | \\"global\\" | \\"pure\\" | object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? } - -> Enables/Disables CSS Modules and their configuration (https://github.com/webpack-contrib/css-loader#modules). - Details: - * options.modules.getLocalIdent should be one of these: - boolean | function - Details: - * options.modules.getLocalIdent should be a boolean. - * options.modules.getLocalIdent should be an instance of function." + - options has an unknown property 'unknown'. These properties are valid: + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" `; -exports[`validate options 15`] = ` +exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.modules should be one of these: - boolean | \\"local\\" | \\"global\\" | \\"pure\\" | object { mode?, localIdentName?, localIdentRegExp?, context?, hashPrefix?, getLocalIdent? } - -> Enables/Disables CSS Modules and their configuration (https://github.com/webpack-contrib/css-loader#modules). - Details: - * options.modules.localIdentRegExp should be one of these: - string | RegExp - Details: - * options.modules.localIdentRegExp should be a string. - * options.modules.localIdentRegExp should be an instance of RegExp." + - options has an unknown property 'unknown'. These properties are valid: + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" `; -exports[`validate options 16`] = ` +exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.sourceMap should be a boolean. - -> Enables/Disables generation of source maps (https://github.com/webpack-contrib/css-loader#sourcemap)." + - options has an unknown property 'unknown'. These properties are valid: + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" `; -exports[`validate options 17`] = ` +exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.localsConvention should be one of these: - \\"asIs\\" | \\"camelCase\\" | \\"camelCaseOnly\\" | \\"dashes\\" | \\"dashesOnly\\" - -> Style of exported classnames (https://github.com/webpack-contrib/css-loader#localsconvention)." + - options has an unknown property 'unknown'. These properties are valid: + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" `; -exports[`validate options 18`] = ` +exports[`validate options should throw an error on the "url" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.importLoaders should be one of these: - boolean | number - -> Enables/Disables or setups number of loaders applied before CSS loader (https://github.com/webpack-contrib/css-loader#importloaders). + - options.url should be one of these: + boolean | function + -> Enables/Disables 'url'/'image-set' functions handling (https://github.com/webpack-contrib/css-loader#url). Details: - * options.importLoaders should be a boolean. - * options.importLoaders should be a number." -`; - -exports[`validate options 19`] = ` -"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options.onlyLocals should be a boolean. - -> Export only locals (https://github.com/webpack-contrib/css-loader#onlylocals)." -`; - -exports[`validate options 20`] = ` -"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" + * options.url should be a boolean. + * options.url should be an instance of function." `; diff --git a/test/cjs.test.js b/test/cjs.test.js index 8cad5877..8aba6ba8 100644 --- a/test/cjs.test.js +++ b/test/cjs.test.js @@ -1,8 +1,8 @@ -import loader from '../src'; -import CJSLoader from '../src/cjs'; +import src from '../src'; +import cjs from '../src/cjs'; -describe('CJS', () => { - it('should exported loader', () => { - expect(CJSLoader).toEqual(loader); +describe('cjs', () => { + it('should exported', () => { + expect(cjs).toEqual(src); }); }); diff --git a/test/fixtures/basic.js b/test/fixtures/basic.js index 1aef6aee..72afb950 100644 --- a/test/fixtures/basic.js +++ b/test/fixtures/basic.js @@ -1,4 +1,5 @@ -/* eslint-disable */ -const styles = require('./basic.css'); +import css from './basic.css'; -console.log(styles); +__export__ = css; + +export default css; diff --git a/test/fixtures/empty.js b/test/fixtures/empty.js new file mode 100644 index 00000000..585626e0 --- /dev/null +++ b/test/fixtures/empty.js @@ -0,0 +1,5 @@ +import css from './empty.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/icss/tests-cases/duplicate-export-in-multiple-export/source.js b/test/fixtures/icss/tests-cases/duplicate-export-in-multiple-export/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/icss/tests-cases/duplicate-export-in-multiple-export/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/icss/tests-cases/duplicate-export/source.js b/test/fixtures/icss/tests-cases/duplicate-export/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/icss/tests-cases/duplicate-export/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/icss/tests-cases/empty-export/source.js b/test/fixtures/icss/tests-cases/empty-export/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/icss/tests-cases/empty-export/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/icss/tests-cases/empty-import/source.js b/test/fixtures/icss/tests-cases/empty-import/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/icss/tests-cases/empty-import/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/icss/tests-cases/export-reserved-keywords/source.js b/test/fixtures/icss/tests-cases/export-reserved-keywords/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/icss/tests-cases/export-reserved-keywords/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/icss/tests-cases/export/source.js b/test/fixtures/icss/tests-cases/export/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/icss/tests-cases/export/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/icss/tests-cases/import-reserved-keywords/source.js b/test/fixtures/icss/tests-cases/import-reserved-keywords/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/icss/tests-cases/import-reserved-keywords/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/icss/tests-cases/import/source.js b/test/fixtures/icss/tests-cases/import/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/icss/tests-cases/import/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/icss/tests-cases/multiple-export/source.js b/test/fixtures/icss/tests-cases/multiple-export/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/icss/tests-cases/multiple-export/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/icss/tests-cases/multiple-keys-values-in-export/source.js b/test/fixtures/icss/tests-cases/multiple-keys-values-in-export/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/icss/tests-cases/multiple-keys-values-in-export/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/import/import.js b/test/fixtures/import/import.js new file mode 100644 index 00000000..1d033ab2 --- /dev/null +++ b/test/fixtures/import/import.js @@ -0,0 +1,5 @@ +import css from './import.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/import/order.js b/test/fixtures/import/order.js new file mode 100644 index 00000000..f9151028 --- /dev/null +++ b/test/fixtures/import/order.js @@ -0,0 +1,5 @@ +import css from './order.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/invalid.js b/test/fixtures/invalid.js new file mode 100644 index 00000000..e4f257c2 --- /dev/null +++ b/test/fixtures/invalid.js @@ -0,0 +1,5 @@ +import css from './invalid.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/alias.css b/test/fixtures/modules/composes/alias.css similarity index 100% rename from test/fixtures/modules/alias.css rename to test/fixtures/modules/composes/alias.css diff --git a/test/fixtures/modules/composes-duplicate.css b/test/fixtures/modules/composes/composes-duplicate.css similarity index 67% rename from test/fixtures/modules/composes-duplicate.css rename to test/fixtures/modules/composes/composes-duplicate.css index 284d98fc..8f96762c 100644 --- a/test/fixtures/modules/composes-duplicate.css +++ b/test/fixtures/modules/composes/composes-duplicate.css @@ -1,6 +1,6 @@ .simple-foo { color: red; - composes: imported-simple from 'imported-simple.css'; + composes: imported-simple from './imported-simple.css'; } .simple-bar { diff --git a/test/fixtures/modules/composes/composes-duplicate.js b/test/fixtures/modules/composes/composes-duplicate.js new file mode 100644 index 00000000..e687e14c --- /dev/null +++ b/test/fixtures/modules/composes/composes-duplicate.js @@ -0,0 +1,5 @@ +import css from './composes-duplicate.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/composes.css b/test/fixtures/modules/composes/composes.css similarity index 89% rename from test/fixtures/modules/composes.css rename to test/fixtures/modules/composes/composes.css index 57b3d184..e5680fef 100644 --- a/test/fixtures/modules/composes.css +++ b/test/fixtures/modules/composes/composes.css @@ -1,4 +1,4 @@ -@import url(test-other.css) (min-width: 100px); +@import url(./test-other.css) (min-width: 100px); @value v-def from './values.css'; @value v-other from './values.css'; @@ -39,7 +39,7 @@ .simple { color: red; - composes: imported-simple from 'imported-simple.css'; + composes: imported-simple from './imported-simple.css'; } .relative { @@ -49,12 +49,12 @@ .top-relative { color: gray; - composes: imported-relative from '../modules/top-relative.css'; + composes: imported-relative from './top-relative.css'; } .module { color: gray; - composes: imported-module from '~package/style.css'; + composes: imported-module from '../issue-861/node_modules/package/style.css'; } .alias { @@ -145,5 +145,5 @@ a { } .url { - background: url(../url/img.png); + background: url(../../url/img.png); } diff --git a/test/fixtures/modules/composes/composes.js b/test/fixtures/modules/composes/composes.js new file mode 100644 index 00000000..ba922e3f --- /dev/null +++ b/test/fixtures/modules/composes/composes.js @@ -0,0 +1,5 @@ +import css from './composes.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/imported-simple.css b/test/fixtures/modules/composes/imported-simple.css similarity index 100% rename from test/fixtures/modules/imported-simple.css rename to test/fixtures/modules/composes/imported-simple.css diff --git a/test/fixtures/modules/relative.css b/test/fixtures/modules/composes/relative.css similarity index 100% rename from test/fixtures/modules/relative.css rename to test/fixtures/modules/composes/relative.css diff --git a/test/fixtures/modules/something.css b/test/fixtures/modules/composes/something.css similarity index 100% rename from test/fixtures/modules/something.css rename to test/fixtures/modules/composes/something.css diff --git a/test/fixtures/modules/test-other.css b/test/fixtures/modules/composes/test-other.css similarity index 100% rename from test/fixtures/modules/test-other.css rename to test/fixtures/modules/composes/test-other.css diff --git a/test/fixtures/modules/top-relative.css b/test/fixtures/modules/composes/top-relative.css similarity index 100% rename from test/fixtures/modules/top-relative.css rename to test/fixtures/modules/composes/top-relative.css diff --git a/test/fixtures/modules/values.css b/test/fixtures/modules/composes/values.css similarity index 100% rename from test/fixtures/modules/values.css rename to test/fixtures/modules/composes/values.css diff --git a/test/fixtures/modules/getLocalIdent.css b/test/fixtures/modules/getLocalIdent.css deleted file mode 100644 index ca4a0ac5..00000000 --- a/test/fixtures/modules/getLocalIdent.css +++ /dev/null @@ -1,7 +0,0 @@ -.abc :local(.def) { - color: red; -} - -:local .ghi .jkl { - color: blue; -} diff --git a/test/fixtures/modules/issue-286/source.js b/test/fixtures/modules/issue-286/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/issue-286/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/issue-636/source.js b/test/fixtures/modules/issue-636/source.js new file mode 100644 index 00000000..1c39afc0 --- /dev/null +++ b/test/fixtures/modules/issue-636/source.js @@ -0,0 +1,5 @@ +import css from './source.scss'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/node_modules/@localpackage/color.css b/test/fixtures/modules/issue-861/node_modules/@localpackage/color.css similarity index 100% rename from test/fixtures/modules/node_modules/@localpackage/color.css rename to test/fixtures/modules/issue-861/node_modules/@localpackage/color.css diff --git a/test/fixtures/modules/issue-861/node_modules/@localpackage/style.css b/test/fixtures/modules/issue-861/node_modules/@localpackage/style.css new file mode 100644 index 00000000..942712b3 --- /dev/null +++ b/test/fixtures/modules/issue-861/node_modules/@localpackage/style.css @@ -0,0 +1,6 @@ +.type-heading { + color: red; + composes: type-heading2 from "../@otherlocalpackage/style.css"; + margin: 0; + padding: 0; +} diff --git a/test/fixtures/modules/node_modules/@otherlocalpackage/style.css b/test/fixtures/modules/issue-861/node_modules/@otherlocalpackage/style.css similarity index 100% rename from test/fixtures/modules/node_modules/@otherlocalpackage/style.css rename to test/fixtures/modules/issue-861/node_modules/@otherlocalpackage/style.css diff --git a/test/fixtures/modules/node_modules/package/style.css b/test/fixtures/modules/issue-861/node_modules/package/style.css similarity index 100% rename from test/fixtures/modules/node_modules/package/style.css rename to test/fixtures/modules/issue-861/node_modules/package/style.css diff --git a/test/fixtures/modules/issue-861/resolving-from-node_modules.css b/test/fixtures/modules/issue-861/resolving-from-node_modules.css new file mode 100644 index 00000000..4df75268 --- /dev/null +++ b/test/fixtures/modules/issue-861/resolving-from-node_modules.css @@ -0,0 +1,8 @@ +@value color-grey from "./node_modules/@localpackage/color.css"; + +.copyright { + color: color-grey; + composes: type-heading from "./node_modules/@localpackage/style.css"; + margin: 0; + padding: 0; +} diff --git a/test/fixtures/modules/issue-861/resolving-from-node_modules.js b/test/fixtures/modules/issue-861/resolving-from-node_modules.js new file mode 100644 index 00000000..524a7984 --- /dev/null +++ b/test/fixtures/modules/issue-861/resolving-from-node_modules.js @@ -0,0 +1,5 @@ +import css from './resolving-from-node_modules.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/issue-966/button.js b/test/fixtures/modules/issue-966/button.js new file mode 100644 index 00000000..861cb618 --- /dev/null +++ b/test/fixtures/modules/issue-966/button.js @@ -0,0 +1,5 @@ +import css from './button.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/path-placeholder.css b/test/fixtures/modules/issue-967/path-placeholder.css similarity index 100% rename from test/fixtures/modules/path-placeholder.css rename to test/fixtures/modules/issue-967/path-placeholder.css diff --git a/test/fixtures/modules/issue-967/path-placeholder.js b/test/fixtures/modules/issue-967/path-placeholder.js new file mode 100644 index 00000000..333652c6 --- /dev/null +++ b/test/fixtures/modules/issue-967/path-placeholder.js @@ -0,0 +1,5 @@ +import css from './path-placeholder.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/file.with.many.dots.in.name.css b/test/fixtures/modules/issue-980/file.with.many.dots.in.name.css similarity index 100% rename from test/fixtures/modules/file.with.many.dots.in.name.css rename to test/fixtures/modules/issue-980/file.with.many.dots.in.name.css diff --git a/test/fixtures/modules/issue-980/file.with.many.dots.in.name.js b/test/fixtures/modules/issue-980/file.with.many.dots.in.name.js new file mode 100644 index 00000000..e3da13fc --- /dev/null +++ b/test/fixtures/modules/issue-980/file.with.many.dots.in.name.js @@ -0,0 +1,5 @@ +import css from './file.with.many.dots.in.name.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/issue-995.css b/test/fixtures/modules/issue-995/issue-995.css similarity index 100% rename from test/fixtures/modules/issue-995.css rename to test/fixtures/modules/issue-995/issue-995.css diff --git a/test/fixtures/modules/issue-995/issue-995.js b/test/fixtures/modules/issue-995/issue-995.js new file mode 100644 index 00000000..018d3f5f --- /dev/null +++ b/test/fixtures/modules/issue-995/issue-995.js @@ -0,0 +1,5 @@ +import css from './issue-995.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/localIdentName.css b/test/fixtures/modules/localIdentName/localIdentName.css similarity index 100% rename from test/fixtures/modules/localIdentName.css rename to test/fixtures/modules/localIdentName/localIdentName.css diff --git a/test/fixtures/modules/localIdentName/localIdentName.js b/test/fixtures/modules/localIdentName/localIdentName.js new file mode 100644 index 00000000..69aa4989 --- /dev/null +++ b/test/fixtures/modules/localIdentName/localIdentName.js @@ -0,0 +1,5 @@ +import css from './localIdentName.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/localsConvention.css b/test/fixtures/modules/localsConvention/localsConvention.css similarity index 100% rename from test/fixtures/modules/localsConvention.css rename to test/fixtures/modules/localsConvention/localsConvention.css diff --git a/test/fixtures/modules/localsConvention/localsConvention.js b/test/fixtures/modules/localsConvention/localsConvention.js new file mode 100644 index 00000000..f9d5e3df --- /dev/null +++ b/test/fixtures/modules/localsConvention/localsConvention.js @@ -0,0 +1,5 @@ +import css from './localsConvention.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/node_modules/@localpackage/style.css b/test/fixtures/modules/node_modules/@localpackage/style.css deleted file mode 100644 index 0e3b37bf..00000000 --- a/test/fixtures/modules/node_modules/@localpackage/style.css +++ /dev/null @@ -1,6 +0,0 @@ -.type-heading { - color: red; - composes: type-heading2 from "~@otherlocalpackage/style.css"; - margin: 0; - padding: 0; -} diff --git a/test/fixtures/modules/order/index.js b/test/fixtures/modules/order/index.js new file mode 100644 index 00000000..e1a19303 --- /dev/null +++ b/test/fixtures/modules/order/index.js @@ -0,0 +1,5 @@ +import css from './index.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/pure.css b/test/fixtures/modules/pure/pure.css similarity index 100% rename from test/fixtures/modules/pure.css rename to test/fixtures/modules/pure/pure.css diff --git a/test/fixtures/modules/pure/pure.js b/test/fixtures/modules/pure/pure.js new file mode 100644 index 00000000..7454bf58 --- /dev/null +++ b/test/fixtures/modules/pure/pure.js @@ -0,0 +1,5 @@ +import css from './pure.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/resolving-inside-node-modules.css b/test/fixtures/modules/resolving-inside-node-modules.css deleted file mode 100644 index a9986d8f..00000000 --- a/test/fixtures/modules/resolving-inside-node-modules.css +++ /dev/null @@ -1,8 +0,0 @@ -@value color-grey from "~@localpackage/color.css"; - -.copyright { - color: color-grey; - composes: type-heading from "~@localpackage/style.css"; - margin: 0; - padding: 0; -} diff --git a/test/fixtures/modules/tests-cases/animation/source.js b/test/fixtures/modules/tests-cases/animation/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/animation/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/class-names/source.js b/test/fixtures/modules/tests-cases/class-names/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/class-names/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/comment-in-local/source.js b/test/fixtures/modules/tests-cases/comment-in-local/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/comment-in-local/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/comments/source.js b/test/fixtures/modules/tests-cases/comments/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/comments/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/composes-1/source.js b/test/fixtures/modules/tests-cases/composes-1/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/composes-1/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/composes-2/source.js b/test/fixtures/modules/tests-cases/composes-2/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/composes-2/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/composes-multiple/source.js b/test/fixtures/modules/tests-cases/composes-multiple/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/composes-multiple/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/composes-with-importing/source.js b/test/fixtures/modules/tests-cases/composes-with-importing/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/composes-with-importing/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/composes/source.js b/test/fixtures/modules/tests-cases/composes/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/composes/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/declaration-value/source.js b/test/fixtures/modules/tests-cases/declaration-value/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/declaration-value/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/issue-589/source.js b/test/fixtures/modules/tests-cases/issue-589/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/issue-589/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/keyframes-and-animation/source.js b/test/fixtures/modules/tests-cases/keyframes-and-animation/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/keyframes-and-animation/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/leak-scope/source.js b/test/fixtures/modules/tests-cases/leak-scope/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/leak-scope/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/local-2/source.js b/test/fixtures/modules/tests-cases/local-2/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/local-2/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/local-and-composes/source.js b/test/fixtures/modules/tests-cases/local-and-composes/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/local-and-composes/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/local-with-string/source.js b/test/fixtures/modules/tests-cases/local-with-string/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/local-with-string/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/local/source.js b/test/fixtures/modules/tests-cases/local/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/local/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/media-2/source.js b/test/fixtures/modules/tests-cases/media-2/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/media-2/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/media/source.js b/test/fixtures/modules/tests-cases/media/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/media/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/mode-switching/source.js b/test/fixtures/modules/tests-cases/mode-switching/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/mode-switching/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/simple/source.js b/test/fixtures/modules/tests-cases/simple/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/simple/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/urls/source.js b/test/fixtures/modules/tests-cases/urls/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/urls/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values-1/source.js b/test/fixtures/modules/tests-cases/values-1/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values-1/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values-10/source.js b/test/fixtures/modules/tests-cases/values-10/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values-10/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values-2/source.js b/test/fixtures/modules/tests-cases/values-2/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values-2/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values-3/source.js b/test/fixtures/modules/tests-cases/values-3/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values-3/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values-4/source.js b/test/fixtures/modules/tests-cases/values-4/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values-4/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values-5/source.js b/test/fixtures/modules/tests-cases/values-5/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values-5/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values-6/source.js b/test/fixtures/modules/tests-cases/values-6/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values-6/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values-7/source.js b/test/fixtures/modules/tests-cases/values-7/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values-7/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values-8/source.js b/test/fixtures/modules/tests-cases/values-8/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values-8/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values-9/source.js b/test/fixtures/modules/tests-cases/values-9/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values-9/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/modules/tests-cases/values/source.js b/test/fixtures/modules/tests-cases/values/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/tests-cases/values/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/nested-import/source.js b/test/fixtures/nested-import/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/nested-import/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/postcss-present-env/source.js b/test/fixtures/postcss-present-env/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/postcss-present-env/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/scss/source.js b/test/fixtures/scss/source.js new file mode 100644 index 00000000..1c39afc0 --- /dev/null +++ b/test/fixtures/scss/source.js @@ -0,0 +1,5 @@ +import css from './source.scss'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/simple.css b/test/fixtures/simple.css new file mode 100644 index 00000000..19fce739 --- /dev/null +++ b/test/fixtures/simple.css @@ -0,0 +1,3 @@ +.class { + color: red; +} diff --git a/test/fixtures/simple.js b/test/fixtures/simple.js new file mode 100644 index 00000000..bf740c72 --- /dev/null +++ b/test/fixtures/simple.js @@ -0,0 +1,5 @@ +import css from './simple.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/source-map/basic-postcss.js b/test/fixtures/source-map/basic-postcss.js new file mode 100644 index 00000000..ff2b03ea --- /dev/null +++ b/test/fixtures/source-map/basic-postcss.js @@ -0,0 +1,5 @@ +import css from './basic.postcss.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/source-map/basic-scss.js b/test/fixtures/source-map/basic-scss.js new file mode 100644 index 00000000..68ce09f0 --- /dev/null +++ b/test/fixtures/source-map/basic-scss.js @@ -0,0 +1,5 @@ +import css from './basic.scss'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/source-map/basic.js b/test/fixtures/source-map/basic.js new file mode 100644 index 00000000..72afb950 --- /dev/null +++ b/test/fixtures/source-map/basic.js @@ -0,0 +1,5 @@ +import css from './basic.css'; + +__export__ = css; + +export default css; diff --git a/test/fixtures/url/url.js b/test/fixtures/url/url.js new file mode 100644 index 00000000..188d1483 --- /dev/null +++ b/test/fixtures/url/url.js @@ -0,0 +1,5 @@ +import css from './url.css'; + +__export__ = css; + +export default css; diff --git a/test/helpers.js b/test/helpers.js deleted file mode 100644 index 12c85f8c..00000000 --- a/test/helpers.js +++ /dev/null @@ -1,271 +0,0 @@ -import vm from 'vm'; -import path from 'path'; - -import del from 'del'; -import webpack from 'webpack'; -import { createFsFromVolume, Volume } from 'memfs'; -import stripAnsi from 'strip-ansi'; -import normalizePath from 'normalize-path'; - -function evaluated(output, modules, moduleId = 1) { - let m; - try { - const fn = vm.runInThisContext( - `(function(module, exports, require) {var __webpack_public_path__ = '/webpack/public/path/';${output}})`, - 'testcase.js' - ); - m = { exports: {}, id: moduleId }; - fn(m, m.exports, (module) => { - if (module.indexOf('runtime/api') >= 0) { - // eslint-disable-next-line global-require - return require('../src/runtime/api'); - } - if (module.indexOf('runtime/get-url') >= 0) { - // eslint-disable-next-line global-require - return require('../src/runtime/getUrl'); - } - if (/^-!.*?!.*$/.test(module)) { - // eslint-disable-next-line no-param-reassign - module = module.replace(/-!(.*)?!/, ''); - } - if (modules && Array.isArray(modules)) { - const importedModule = modules.find((el) => { - const modulePath = el.identifier.split('!').pop(); - // We need refactor this logic - const importedPaths = [ - 'nested-import', - 'postcss-present-env', - 'icss/tests-cases/import', - 'icss/tests-cases/import-reserved-keywords', - 'import', - 'import/node_modules', - 'url', - 'url/node_modules', - 'modules/', - 'modules/issue-286', - 'modules/issue-636', - 'modules/order', - 'modules/node_modules', - 'modules/tests-cases/urls', - 'modules/tests-cases/issue-589', - 'modules/tests-cases/comments', - 'modules/tests-cases/values-3', - 'modules/tests-cases/values-4', - 'modules/tests-cases/values-5', - 'modules/tests-cases/values-6', - 'modules/tests-cases/values-7', - 'modules/tests-cases/composes-1', - 'modules/tests-cases/composes-2', - 'modules/tests-cases/composes-multiple', - 'modules/tests-cases/composes-with-importing', - 'modules/tests-cases/media-2', - '.', - ].map((importedPath) => - path.resolve( - __dirname, - `./fixtures/${importedPath}`, - module - .replace('aliasesImg/', '') - .replace('aliasesImport/', '') - .replace('aliasesComposes/', '') - .replace(/!!(.*)?!/, '') - ) - ); - - return importedPaths.includes(modulePath); - }); - - if (importedModule) { - // eslint-disable-next-line no-param-reassign - moduleId += 1; - return evaluated(importedModule.source, modules, moduleId); - } - - return 'nothing'; - } - return `{${module}}`; - }); - } catch (e) { - console.error(output); // eslint-disable-line no-console - throw e; - } - delete m.exports.toString; - delete m.exports.i; - return m.exports; -} - -const moduleConfig = (config) => { - return { - rules: config.rules - ? config.rules - : [ - { - test: (config.loader && config.loader.test) || /\.css$/, - use: [ - { - loader: path.resolve(__dirname, '../src/index.js'), - options: (config.loader && config.loader.options) || {}, - }, - ] - .concat( - config.sourceMap - ? [ - { - loader: path.resolve( - __dirname, - './fixtures/source-map-loader.js' - ), - options: { - sourceMap: config.sourceMap, - }, - }, - ] - : [] - ) - .concat( - config.postcssLoader - ? [ - { - loader: 'postcss-loader', - options: config.postcssLoaderOptions, - }, - ] - : [] - ) - .concat( - config.sassLoader - ? [ - { - loader: 'sass-loader', - options: config.sassLoaderOptions || {}, - }, - ] - : [] - ), - }, - config.disableFileLoader - ? {} - : { - test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, - use: { - loader: 'file-loader', - options: config.fileLoaderOptions || { - name: '[name].[ext]', - esModule: false, - }, - }, - }, - config.additionalLoader ? config.additionalLoader : {}, - ], - }; -}; -const pluginsConfig = (config) => [].concat(config.plugins || []); -const outputConfig = (config) => { - return { - path: path.resolve( - __dirname, - `../outputs/${config.output ? config.output : ''}` - ), - filename: '[name].bundle.js', - }; -}; - -function compile(fixture, config = {}, options = {}) { - // webpack Config - // eslint-disable-next-line no-param-reassign - config = { - mode: config.mode || 'development', - devtool: config.devtool || 'sourcemap', - context: path.resolve(__dirname, 'fixtures'), - entry: path.resolve(__dirname, 'fixtures', fixture), - output: outputConfig(config), - module: moduleConfig(config), - plugins: pluginsConfig(config), - optimization: { - minimize: false, - runtimeChunk: false, - }, - resolve: { - alias: { - aliasesImg: path.resolve(__dirname, 'fixtures/url'), - aliasesImport: path.resolve(__dirname, 'fixtures/import'), - aliasesComposes: path.resolve(__dirname, 'fixtures/modules'), - }, - }, - }; - - // Compiler Options - // eslint-disable-next-line no-param-reassign - options = Object.assign({ output: false }, options); - - if (options.output) { - del.sync(config.output.path); - } - - const compiler = webpack(config); - - if (!options.output) { - const outputFileSystem = createFsFromVolume(new Volume()); - // Todo remove when we drop webpack@4 support - outputFileSystem.join = path.join.bind(path); - - compiler.outputFileSystem = outputFileSystem; - } - - return new Promise((resolve, reject) => - compiler.run((error, stats) => { - if (error) { - return reject(error); - } - return resolve(stats); - }) - ); -} - -function normalizeErrors(errors) { - return errors.map((error) => { - const message = error.toString(); - - return stripAnsi(message) - .replace(/\(from .*?\)/, '(from `replaced original path`)') - .replace(/at(.*?)\(.*?\)/g, 'at$1(`replaced original path`)'); - }); -} - -function normalizeSourceMap(module) { - return module.map((m) => { - if (m[3]) { - if (m[3].file) { - // eslint-disable-next-line no-param-reassign - m[3].file = normalizePath( - path.relative(path.resolve(__dirname, 'fixtures'), m[3].file) - ); - } - - if (m[3].sourceRoot) { - // eslint-disable-next-line no-param-reassign - m[3].sourceRoot = normalizePath( - path.relative(path.resolve(__dirname, 'fixtures'), m[3].sourceRoot) - ); - } - - if (m[3].sources) { - // eslint-disable-next-line no-param-reassign - m[3].sources = m[3].sources.map((source) => - normalizePath( - path.relative(path.resolve(__dirname, 'fixtures'), source) - ) - ); - } - } - - return m; - }); -} - -module.exports = { - webpack: compile, - evaluated, - normalizeErrors, - normalizeSourceMap, -}; diff --git a/test/helpers/compile.js b/test/helpers/compile.js new file mode 100644 index 00000000..066873ab --- /dev/null +++ b/test/helpers/compile.js @@ -0,0 +1,11 @@ +export default (compiler) => { + return new Promise((resolve, reject) => { + compiler.run((error, stats) => { + if (error) { + return reject(error); + } + + return resolve(stats); + }); + }); +}; diff --git a/test/helpers/execute.js b/test/helpers/execute.js new file mode 100644 index 00000000..866001ae --- /dev/null +++ b/test/helpers/execute.js @@ -0,0 +1,22 @@ +import Module from 'module'; +import path from 'path'; + +const parentModule = module; + +export default (code) => { + const resource = 'test.js'; + const module = new Module(resource, parentModule); + // eslint-disable-next-line no-underscore-dangle + module.paths = Module._nodeModulePaths( + path.resolve(__dirname, '../fixtures') + ); + module.filename = resource; + + // eslint-disable-next-line no-underscore-dangle + module._compile( + `let __export__;${code};module.exports = __export__;`, + resource + ); + + return module.exports; +}; diff --git a/test/helpers/getCompiler.js b/test/helpers/getCompiler.js new file mode 100644 index 00000000..13eb2bd5 --- /dev/null +++ b/test/helpers/getCompiler.js @@ -0,0 +1,60 @@ +import path from 'path'; + +import webpack from 'webpack'; +import { createFsFromVolume, Volume } from 'memfs'; + +export default (fixture, loaderOptions = {}, config = {}) => { + const fullConfig = { + mode: 'development', + devtool: config.devtool || false, + context: path.resolve(__dirname, '../fixtures'), + entry: path.resolve(__dirname, '../fixtures', fixture), + output: { + path: path.resolve(__dirname, '../outputs'), + filename: '[name].bundle.js', + chunkFilename: '[name].chunk.js', + publicPath: '/webpack/public/path/', + }, + module: { + rules: [ + { + test: /\.css$/i, + loader: path.resolve(__dirname, '../../src'), + options: loaderOptions || {}, + }, + { + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, + loader: 'file-loader', + options: { name: '[name].[ext]' }, + }, + ], + }, + resolve: { + alias: { + aliasesImg: path.resolve(__dirname, '../fixtures/url'), + aliasesImport: path.resolve(__dirname, '../fixtures/import'), + aliasesComposes: path.resolve( + __dirname, + '../fixtures/modules/composes' + ), + }, + }, + optimization: { + minimize: false, + }, + plugins: [], + ...config, + }; + + const compiler = webpack(fullConfig); + + if (!config.outputFileSystem) { + const outputFileSystem = createFsFromVolume(new Volume()); + // Todo remove when we drop webpack@4 support + outputFileSystem.join = path.join.bind(path); + + compiler.outputFileSystem = outputFileSystem; + } + + return compiler; +}; diff --git a/test/helpers/getErrors.js b/test/helpers/getErrors.js new file mode 100644 index 00000000..716fbbb4 --- /dev/null +++ b/test/helpers/getErrors.js @@ -0,0 +1,5 @@ +import normalizeErrors from './normalizeErrors'; + +export default (stats) => { + return normalizeErrors(stats.compilation.errors); +}; diff --git a/test/helpers/getModuleSource.js b/test/helpers/getModuleSource.js new file mode 100644 index 00000000..fd36a3fc --- /dev/null +++ b/test/helpers/getModuleSource.js @@ -0,0 +1,6 @@ +export default (id, stats) => { + const { modules } = stats.toJson({ source: true }); + const module = modules.find((m) => m.id === id); + + return module.source; +}; diff --git a/test/helpers/getWarnings.js b/test/helpers/getWarnings.js new file mode 100644 index 00000000..c8a09d6d --- /dev/null +++ b/test/helpers/getWarnings.js @@ -0,0 +1,5 @@ +import normalizeErrors from './normalizeErrors'; + +export default (stats) => { + return normalizeErrors(stats.compilation.warnings); +}; diff --git a/test/helpers/index.js b/test/helpers/index.js new file mode 100644 index 00000000..0ec62aed --- /dev/null +++ b/test/helpers/index.js @@ -0,0 +1,21 @@ +import compile from './compile'; +import execute from './execute'; +import getCompiler from './getCompiler'; +import getErrors from './getErrors'; +import getModuleSource from './getModuleSource'; +import getWarnings from './getWarnings'; +import normalizeErrors from './normalizeErrors'; +import readAsset from './readAsset'; +import readsAssets from './readAssets'; + +export { + compile, + execute, + getCompiler, + getErrors, + getModuleSource, + getWarnings, + normalizeErrors, + readAsset, + readsAssets, +}; diff --git a/test/helpers/normalizeErrors.js b/test/helpers/normalizeErrors.js new file mode 100644 index 00000000..c6e47405 --- /dev/null +++ b/test/helpers/normalizeErrors.js @@ -0,0 +1,29 @@ +import stripAnsi from 'strip-ansi'; + +function removeCWD(str) { + const isWin = process.platform === 'win32'; + let cwd = process.cwd(); + + if (isWin) { + // eslint-disable-next-line no-param-reassign + str = str.replace(/\\/g, '/'); + // eslint-disable-next-line no-param-reassign + cwd = cwd.replace(/\\/g, '/'); + } + + return stripAnsi(str) + .replace(/\(from .*?\)/, '(from `replaced original path`)') + .replace(new RegExp(cwd, 'g'), ''); +} + +export default (errors) => { + return errors.map((error) => + removeCWD( + error + .toString() + .split('\n') + .slice(0, 12) + .join('\n') + ) + ); +}; diff --git a/test/helpers/readAsset.js b/test/helpers/readAsset.js new file mode 100644 index 00000000..8f4699f0 --- /dev/null +++ b/test/helpers/readAsset.js @@ -0,0 +1,23 @@ +import path from 'path'; + +export default (asset, compiler, stats) => { + const usedFs = compiler.outputFileSystem; + const outputPath = stats.compilation.outputOptions.path; + + let data = ''; + let targetFile = asset; + + const queryStringIdx = targetFile.indexOf('?'); + + if (queryStringIdx >= 0) { + targetFile = targetFile.substr(0, queryStringIdx); + } + + try { + data = usedFs.readFileSync(path.join(outputPath, targetFile)).toString(); + } catch (error) { + data = error.toString(); + } + + return data; +}; diff --git a/test/helpers/readAssets.js b/test/helpers/readAssets.js new file mode 100644 index 00000000..a2fb7837 --- /dev/null +++ b/test/helpers/readAssets.js @@ -0,0 +1,11 @@ +import readAsset from './readAsset'; + +export default function readAssets(compiler, stats) { + const assets = {}; + + Object.keys(stats.compilation.assets).forEach((asset) => { + assets[asset] = readAsset(asset, compiler, stats); + }); + + return assets; +} diff --git a/test/icss.test.js b/test/icss.test.js index d83875aa..ae676b40 100644 --- a/test/icss.test.js +++ b/test/icss.test.js @@ -1,24 +1,33 @@ import path from 'path'; import fs from 'fs'; -import { webpack, evaluated } from './helpers'; +import { + compile, + execute, + getCompiler, + getErrors, + getModuleSource, + getWarnings, + readAsset, +} from './helpers/index'; const testCasesPath = path.join(__dirname, 'fixtures/icss/tests-cases'); const testCases = fs.readdirSync(testCasesPath); describe('ICSS', () => { testCases.forEach((name) => { - it(`case ${name}`, async () => { - const testId = `./icss/tests-cases/${name}/source.css`; - const stats = await webpack(testId); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source, modules); + it(`show work with the case "${name}"`, async () => { + const compiler = getCompiler(`./icss/tests-cases/${name}/source.js`); + const stats = await compile(compiler); - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + getModuleSource(`./icss/tests-cases/${name}/source.css`, stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); }); }); diff --git a/test/import-option.test.js b/test/import-option.test.js index 58eac307..1d85906e 100644 --- a/test/import-option.test.js +++ b/test/import-option.test.js @@ -1,82 +1,92 @@ -import { webpack, evaluated, normalizeErrors } from './helpers'; +import { + compile, + execute, + getCompiler, + getErrors, + getModuleSource, + getWarnings, + readAsset, +} from './helpers/index'; -describe('import option', () => { - it('true', async () => { - const testId = './import/import.css'; - const stats = await webpack(testId); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); +describe('"import" option', () => { + it('should work when not specified', async () => { + const compiler = getCompiler('./import/import.js'); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + expect(getModuleSource('./import/import.css', stats)).toMatchSnapshot( + 'module' ); - expect(normalizeErrors(stats.compilation.warnings)).toMatchSnapshot( - 'warnings' + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + + it('should work with a value equal to "true"', async () => { + const compiler = getCompiler('./import/import.js', { import: true }); + const stats = await compile(compiler); + + expect(getModuleSource('./import/import.css', stats)).toMatchSnapshot( + 'module' ); - expect(normalizeErrors(stats.compilation.errors)).toMatchSnapshot('errors'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('false', async () => { - const config = { loader: { options: { import: false } } }; - const testId = './import/import.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); + it('should work with a value equal to "false"', async () => { + const compiler = getCompiler('./import/import.js', { import: false }); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + expect(getModuleSource('./import/import.css', stats)).toMatchSnapshot( + 'module' ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('Function', async () => { - const config = { - loader: { - options: { - import: (parsedImport, resourcePath) => { - expect(typeof resourcePath === 'string').toBe(true); + it('should work when "Function"', async () => { + const compiler = getCompiler('./import/import.js', { + import: (parsedImport, resourcePath) => { + expect(typeof resourcePath === 'string').toBe(true); - // Don't handle `test.css` - if (parsedImport.url.includes('test.css')) { - return false; - } + // Don't handle `test.css` + if (parsedImport.url.includes('test.css')) { + return false; + } - return true; - }, - }, + return true; }, - }; - const testId = './import/import.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); + }); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + expect(getModuleSource('./import/import.css', stats)).toMatchSnapshot( + 'module' ); - expect(normalizeErrors(stats.compilation.warnings)).toMatchSnapshot( - 'warnings' - ); - expect(normalizeErrors(stats.compilation.errors)).toMatchSnapshot('errors'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('should keep original order', async () => { - const testId = './import/order.css'; - const stats = await webpack(testId); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); + const compiler = getCompiler('./import/order.js'); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(normalizeErrors(stats.compilation.warnings)).toMatchSnapshot( - 'warnings' + expect(getModuleSource('./import/order.css', stats)).toMatchSnapshot( + 'module' ); - expect(normalizeErrors(stats.compilation.errors)).toMatchSnapshot('errors'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); }); diff --git a/test/importLoaders-option.test.js b/test/importLoaders-option.test.js index 25952b9c..63eb2bcf 100644 --- a/test/importLoaders-option.test.js +++ b/test/importLoaders-option.test.js @@ -1,106 +1,174 @@ +import path from 'path'; + import postcssPresetEnv from 'postcss-preset-env'; -import { webpack, evaluated } from './helpers'; +import { + compile, + execute, + getCompiler, + getErrors, + getModuleSource, + getWarnings, + readAsset, +} from './helpers/index'; -describe('importLoaders option', () => { - it('not specify (no loader before)', async () => { +describe('"importLoaders" option', () => { + it('should work when not specified', async () => { // It is hard to test `postcss` on reuse `ast`, please look on coverage before merging - const config = { - postcssLoader: true, - postcssLoaderOptions: { - plugins: () => [postcssPresetEnv({ stage: 0 })], - }, - }; - const testId = './nested-import/source.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + const compiler = getCompiler( + './nested-import/source.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + rules: [ + { loader: path.resolve(__dirname, '../src') }, + { + loader: 'postcss-loader', + options: { plugins: () => [postcssPresetEnv({ stage: 0 })] }, + }, + ], + }, + ], + }, + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); - }); + const stats = await compile(compiler); - it('1 (no loaders before)', async () => { - const config = { - loader: { options: { importLoaders: 1 } }, - }; - const testId = './nested-import/source.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); + expect( + getModuleSource('./nested-import/source.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + it('should work with a value equal to "0" (`postcss-loader` before)', async () => { + // It is hard to test `postcss` on reuse `ast`, please look on coverage before merging + const compiler = getCompiler( + './nested-import/source.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + rules: [ + { + loader: path.resolve(__dirname, '../src'), + options: { importLoaders: 0 }, + }, + { + loader: 'postcss-loader', + options: { plugins: () => [postcssPresetEnv({ stage: 0 })] }, + }, + ], + }, + ], + }, + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const stats = await compile(compiler); + + expect( + getModuleSource('./nested-import/source.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('0 (`postcss-loader` before)', async () => { - const config = { - loader: { options: { importLoaders: 0 } }, - postcssLoader: true, - postcssLoaderOptions: { - plugins: () => [postcssPresetEnv({ stage: 0 })], - }, - }; - const testId = './nested-import/source.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); + it('should work with a value equal to "1" (no loaders before)', async () => { + const compiler = getCompiler('./nested-import/source.js'); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + getModuleSource('./nested-import/source.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('1 (`postcss-loader` before)', async () => { - const config = { - loader: { options: { importLoaders: 1 } }, - postcssLoader: true, - postcssLoaderOptions: { - plugins: () => [postcssPresetEnv({ stage: 0 })], - }, - }; - const testId = './nested-import/source.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + it('should work with a value equal to "1" ("postcss-loader" before)', async () => { + // It is hard to test `postcss` on reuse `ast`, please look on coverage before merging + const compiler = getCompiler( + './nested-import/source.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + rules: [ + { + loader: path.resolve(__dirname, '../src'), + options: { importLoaders: 1 }, + }, + { + loader: 'postcss-loader', + options: { plugins: () => [postcssPresetEnv({ stage: 0 })] }, + }, + ], + }, + ], + }, + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); - }); + const stats = await compile(compiler); - it('2 (`postcss-loader` before)', async () => { - const config = { - loader: { options: { importLoaders: 2 } }, - postcssLoader: true, - postcssLoaderOptions: { - plugins: () => [postcssPresetEnv({ stage: 0 })], - }, - }; - const testId = './nested-import/source.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); + expect( + getModuleSource('./nested-import/source.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + it('should work with a value equal to "2" ("postcss-loader" before)', async () => { + // It is hard to test `postcss` on reuse `ast`, please look on coverage before merging + const compiler = getCompiler( + './nested-import/source.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + rules: [ + { + loader: path.resolve(__dirname, '../src'), + options: { importLoaders: 2 }, + }, + { + loader: 'postcss-loader', + options: { plugins: () => [postcssPresetEnv({ stage: 0 })] }, + }, + ], + }, + ], + }, + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const stats = await compile(compiler); + + expect( + getModuleSource('./nested-import/source.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); }); diff --git a/test/loader.test.js b/test/loader.test.js index 88e19386..1ebc0e3d 100644 --- a/test/loader.test.js +++ b/test/loader.test.js @@ -2,227 +2,212 @@ import path from 'path'; import postcssPresetEnv from 'postcss-preset-env'; -import { webpack, evaluated, normalizeErrors } from './helpers'; +import { + compile, + execute, + getCompiler, + getErrors, + getModuleSource, + getWarnings, + readAsset, +} from './helpers/index'; describe('loader', () => { - it('should compile with `js` entry point', async () => { - const stats = await webpack('basic.js'); - const { modules } = stats.toJson(); - const [, api, escape, module] = modules; - - expect(api.source).toMatchSnapshot('api'); - expect(escape.source).toMatchSnapshot('escape'); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); - }); - - it('should compile with `css` entry point', async () => { - const stats = await webpack('basic.css'); - const { modules } = stats.toJson(); - const [, runtime, escape, module] = modules; - - expect(runtime.source).toMatchSnapshot('api'); - expect(escape.source).toMatchSnapshot('escape'); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); - }); - - it('should compile with `css` entry point (with `modules` and scope `local`)', async () => { - const config = { loader: { options: { modules: 'local' } } }; - const stats = await webpack('basic.css', config); - const { modules } = stats.toJson(); - const [, runtime, escape, module] = modules; - - expect(runtime.source).toMatchSnapshot('api'); - expect(escape.source).toMatchSnapshot('escape'); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); - }); - - it('should compile with `css` entry point (with `modules` and scope `global`)', async () => { - const config = { loader: { options: { modules: 'global' } } }; - const stats = await webpack('basic.css', config); - const { modules } = stats.toJson(); - const [, runtime, escape, module] = modules; - - expect(runtime.source).toMatchSnapshot('api'); - expect(escape.source).toMatchSnapshot('escape'); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + it('should work', async () => { + const compiler = getCompiler('./basic.js'); + const stats = await compile(compiler); + + expect(getModuleSource('./basic.css', stats)).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should compile with empty css entry point', async () => { - const testId = './empty.css'; - const stats = await webpack(testId); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); + it('should work with empty css', async () => { + const compiler = getCompiler('./empty.js'); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect(getModuleSource('./empty.css', stats)).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should compile with empty options', async () => { - const config = { loader: { options: {} } }; - const testId = './empty.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); + it('should work with empty options', async () => { + const compiler = getCompiler('./basic.js', {}); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect(getModuleSource('./basic.css', stats)).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should throws error when no loader for assets', async () => { - const config = { - rules: [ - { - test: /\.css$/, - use: { - loader: path.resolve(__dirname, '../src/index'), - }, + it('should throws error when no loader(s) for assets', async () => { + const compiler = getCompiler( + './basic.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + loader: path.resolve(__dirname, '../src'), + }, + ], }, - ], - }; - const stats = await webpack('basic.css', config); + } + ); + const stats = await compile(compiler); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(normalizeErrors(stats.compilation.errors)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('should throw error on invalid css syntax', async () => { - const stats = await webpack('invalid.css'); + const compiler = getCompiler('./invalid.js', {}); + const stats = await compile(compiler); - expect(normalizeErrors(stats.compilation.warnings)).toMatchSnapshot( - 'warnings' - ); - expect(normalizeErrors(stats.compilation.errors)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('using together with "postcss-loader" and reuse `ast`', async () => { - // It is hard to test `postcss` on reuse `ast`, please look on coverage before merging - const config = { - postcssLoader: true, - postcssLoaderOptions: { - plugins: () => [postcssPresetEnv({ stage: 0 })], - }, - }; - const testId = './postcss-present-env/source.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + it('should reuse `ast` from "postcss-loader"', async () => { + const compiler = getCompiler( + './postcss-present-env/source.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + rules: [ + { + loader: path.resolve(__dirname, '../src'), + options: { importLoaders: 1 }, + }, + { + loader: 'postcss-loader', + options: { plugins: () => [postcssPresetEnv({ stage: 0 })] }, + }, + ], + }, + { + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, + loader: 'file-loader', + options: { name: '[name].[ext]' }, + }, + ], + }, + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const stats = await compile(compiler); + + expect( + getModuleSource('./postcss-present-env/source.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('using together with "sass-loader"', async () => { - const config = { - loader: { test: /\.s[ca]ss$/i }, - sassLoader: true, - sassLoaderOptions: { - // eslint-disable-next-line global-require - implementation: require('sass'), - }, - }; - const testId = './scss/source.scss'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + it('should work with "sass-loader"', async () => { + const compiler = getCompiler( + './scss/source.js', + {}, + { + module: { + rules: [ + { + test: /\.s[ca]ss$/i, + rules: [ + { loader: path.resolve(__dirname, '../src') }, + { + loader: 'sass-loader', + options: { + // eslint-disable-next-line global-require + implementation: require('sass'), + }, + }, + ], + }, + ], + }, + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); - }); + const stats = await compile(compiler); - it('using together with "sass-loader"', async () => { - const config = { - loader: { test: /\.s[ca]ss$/i }, - sassLoader: true, - sassLoaderOptions: { - // eslint-disable-next-line global-require - implementation: require('sass'), - }, - }; - const testId = './scss/source.scss'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + expect(getModuleSource('./scss/source.scss', stats)).toMatchSnapshot( + 'module' ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('should work with ModuleConcatenationPlugin (file-loader)', async () => { - const stats = await webpack('basic.js', { - mode: 'production', - fileLoaderOptions: { - name: '[name].[ext]', - esModules: true, - }, - }); - - expect(stats.compilation.assets['main.bundle.js'].source()).toMatchSnapshot( - 'assets' + const compiler = getCompiler( + './basic.js', + {}, + { + mode: 'production', + module: { + rules: [ + { + test: /\.css$/i, + loader: path.resolve(__dirname, '../src'), + }, + { + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, + loader: 'file-loader', + options: { name: '[name].[ext]', esModules: true }, + }, + ], + }, + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const stats = await compile(compiler); + + expect(stats.compilation.modules.length).toBe(6); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('should work with ModuleConcatenationPlugin (url-loader)', async () => { - const stats = await webpack('basic.js', { - mode: 'production', - disableFileLoader: true, - additionalLoader: { - test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, - use: { - loader: 'url-loader', - options: { - name: '[name].[ext]', - esModules: true, - }, + const compiler = getCompiler( + './basic.js', + {}, + { + mode: 'production', + module: { + rules: [ + { + test: /\.css$/i, + loader: path.resolve(__dirname, '../src'), + }, + { + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, + loader: 'url-loader', + options: { name: '[name].[ext]', limit: true, esModules: true }, + }, + ], }, - }, - }); - - expect(stats.compilation.assets['main.bundle.js'].source()).toMatchSnapshot( - 'assets' + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const stats = await compile(compiler); + + expect(stats.compilation.modules.length).toBe(6); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); }); diff --git a/test/localsConvention-option.test.js b/test/localsConvention-option.test.js index 5c8d7dda..2cb00853 100644 --- a/test/localsConvention-option.test.js +++ b/test/localsConvention-option.test.js @@ -1,122 +1,130 @@ -import { webpack, evaluated } from './helpers'; +import { + compile, + execute, + getCompiler, + getErrors, + getModuleSource, + getWarnings, + readAsset, +} from './helpers/index'; -describe('localsConvention option', () => { - it('not specified', async () => { - const config = { loader: { options: { modules: true } } }; - const testId = './modules/localsConvention.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); +describe('"localsConvention" option', () => { + it('should work when not specified', async () => { + const compiler = getCompiler( + './modules/localsConvention/localsConvention.js', + { + modules: true, + } + ); + const stats = await compile(compiler); - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + getModuleSource('./modules/localsConvention/localsConvention.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('asIs', async () => { - const config = { - loader: { - options: { - modules: true, - localsConvention: 'asIs', - }, - }, - }; - const testId = './modules/localsConvention.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); + it('should work with a value equal to "asIs"', async () => { + const compiler = getCompiler( + './modules/localsConvention/localsConvention.js', + { + modules: true, + localsConvention: 'asIs', + } + ); + const stats = await compile(compiler); - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + getModuleSource('./modules/localsConvention/localsConvention.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('camelCase', async () => { - const config = { - loader: { - options: { - modules: true, - localsConvention: 'camelCase', - }, - }, - }; - const testId = './modules/localsConvention.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); + it('should work with a value equal to "camelCase"', async () => { + const compiler = getCompiler( + './modules/localsConvention/localsConvention.js', + { + modules: true, + localsConvention: 'camelCase', + } + ); + const stats = await compile(compiler); - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + getModuleSource('./modules/localsConvention/localsConvention.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('camelCaseOnly', async () => { - const config = { - loader: { - options: { - modules: true, - localsConvention: 'camelCaseOnly', - }, - }, - }; - const testId = './modules/localsConvention.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); + it('should work with a value equal to "camelCaseOnly"', async () => { + const compiler = getCompiler( + './modules/localsConvention/localsConvention.js', + { + modules: true, + localsConvention: 'camelCaseOnly', + } + ); + const stats = await compile(compiler); - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + getModuleSource('./modules/localsConvention/localsConvention.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('dashes', async () => { - const config = { - loader: { - options: { - modules: true, - localsConvention: 'dashes', - }, - }, - }; - const testId = './modules/localsConvention.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); + it('should work with a value equal to "dashes"', async () => { + const compiler = getCompiler( + './modules/localsConvention/localsConvention.js', + { + modules: true, + localsConvention: 'dashes', + } + ); + const stats = await compile(compiler); - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + getModuleSource('./modules/localsConvention/localsConvention.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('dashesOnly', async () => { - const config = { - loader: { - options: { - modules: true, - localsConvention: 'dashesOnly', - }, - }, - }; - const testId = './modules/localsConvention.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); + it('should work with a value equal to "dashesOnly"', async () => { + const compiler = getCompiler( + './modules/localsConvention/localsConvention.js', + { + modules: true, + localsConvention: 'dashesOnly', + } + ); + const stats = await compile(compiler); - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + getModuleSource('./modules/localsConvention/localsConvention.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); }); diff --git a/test/modules-option.test.js b/test/modules-option.test.js index 05645abe..6ce59a41 100644 --- a/test/modules-option.test.js +++ b/test/modules-option.test.js @@ -1,14 +1,22 @@ import path from 'path'; import fs from 'fs'; -import { webpack, evaluated } from './helpers'; +import { + compile, + execute, + getCompiler, + getErrors, + getModuleSource, + getWarnings, + readAsset, +} from './helpers/index'; const testCasesPath = path.join(__dirname, 'fixtures/modules/tests-cases'); const testCases = fs.readdirSync(testCasesPath); jest.setTimeout(30000); -describe('modules', () => { +describe('"modules" option', () => { [ true, false, @@ -18,607 +26,528 @@ describe('modules', () => { { mode: 'global' }, ].forEach((modulesValue) => { testCases.forEach((name) => { - it(`case \`${name}\` (\`modules\` value is \`${ + it(`should work with case \`${name}\` (\`modules\` value is \`${ modulesValue.mode ? `object with mode ${modulesValue.mode}` : modulesValue })\``, async () => { - const config = { - loader: { - options: { - modules: modulesValue.mode - ? { - mode: modulesValue.mode, - localIdentName: '_[local]', - } - : modulesValue, - }, - }, - }; - const testId = `./modules/tests-cases/${name}/source.css`; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source, modules); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const pathToTest = `./modules/tests-cases/${name}/source.js`; + const moduleId = `./modules/tests-cases/${name}/source.css`; + const compiler = getCompiler(pathToTest, { + modules: modulesValue.mode + ? { mode: modulesValue.mode, localIdentName: '_[local]' } + : modulesValue, + }); + const stats = await compile(compiler); + + expect(getModuleSource(moduleId, stats)).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); }); }); - it('should support "pure" value', async () => { - const config = { - loader: { - options: { - modules: 'pure', - }, - }, - }; - const testId = './modules/pure.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + it('should work and support "pure" mode', async () => { + const compiler = getCompiler('./modules/pure/pure.js', { modules: 'pure' }); + const stats = await compile(compiler); + + expect(getModuleSource('./modules/pure/pure.css', stats)).toMatchSnapshot( + 'module' ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should respects localIdentName option', async () => { - const config = { - loader: { - options: { - modules: { - localIdentName: '[name]--[local]--[hash:base64:5]', - context: path.resolve(__dirname), - }, - }, - }, - }; - const testId = './modules/localIdentName.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source, modules); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + it('should work and support "pure" mode #2', async () => { + const compiler = getCompiler('./modules/pure/pure.js', { + modules: { mode: 'pure' }, + }); + const stats = await compile(compiler); + + expect(getModuleSource('./modules/pure/pure.css', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should respects context option', async () => { - const config = { - loader: { - options: { - modules: { - localIdentName: '[hash:base64:8]', - context: path.resolve(__dirname), - }, - }, - }, - }; - const testId = './modules/localIdentName.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source, modules); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + it('should work with the "[local]" placeholder for the "localIdentName" option', async () => { + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { localIdentName: '[local]' }, + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should respects path in localIdentName option', async () => { - const config = { - loader: { - options: { - modules: { - localIdentName: '[path][name]__[local]', - context: path.resolve(__dirname), - }, - }, + it('should work and respect the "localIdentName" option', async () => { + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { + localIdentName: '[name]--[local]--[hash:base64:5]', + context: path.resolve(__dirname), }, - }; - const testId = './modules/localIdentName.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source, modules); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should respects hashPrefix option with localIdentName option', async () => { - const config = { - loader: { - options: { - modules: { - localIdentName: '[local]--[hash]', - hashPrefix: 'x', - }, - }, + it('should work and respect the "context" option', async () => { + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { + localIdentName: '[hash:base64:8]', + context: path.resolve(__dirname), }, - }; - const testId = './modules/localIdentName.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source, modules); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should prefixes leading hyphen + digit with underscore with localIdentName option', async () => { - const config = { - loader: { - options: { - modules: { - localIdentName: '-1[local]', - }, - }, + it('should work and respect the "path" placeholder', async () => { + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { + localIdentName: '[path][name]__[local]', + context: path.resolve(__dirname), }, - }; - const testId = './modules/localIdentName.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source, modules); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should prefixes two leading hyphens with underscore with localIdentName option', async () => { - const config = { - loader: { - options: { - modules: { - localIdentName: '--[local]', - }, - }, + it('should work and respect the "hashPrefix" option', async () => { + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { + localIdentName: '[local]--[hash]', + hashPrefix: 'x', }, - }; - const testId = './modules/localIdentName.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source, modules); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should saves underscore prefix in exported class names with localIdentName option', async () => { - const config = { - loader: { - options: { - modules: { - localIdentName: '[local]', - }, - }, - }, - }; - const testId = './modules/localIdentName.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source, modules); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + it('should work and prefix leading hyphen when digit is first', async () => { + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { localIdentName: '-1[local]' }, + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should correctly replace escaped symbols in selector with localIdentName option', async () => { - const config = { - loader: { - options: { - modules: { - localIdentName: '[local]--[hash:base64:4]', - }, - importLoaders: 2, - }, - }, - }; - const testId = './modules/localIdentName.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source, modules); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + it('should should work with two leading hyphens', async () => { + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { localIdentName: '--[local]' }, + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should respects getLocalIdent option (local mode)', async () => { - const config = { - loader: { - options: { - modules: { - getLocalIdent() { - return 'foo'; - }, - }, - }, - }, - }; - const testId = './modules/getLocalIdent.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + it('should should work with two leading underscore', async () => { + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { localIdentName: '__[local]' }, + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should accepts all arguments for getLocalIdent option', async () => { - const config = { - loader: { - options: { - modules: { - localIdentRegExp: 'regExp', - context: 'context', - hashPrefix: 'hash', - getLocalIdent(loaderContext, localIdentName, localName, options) { - expect(loaderContext).toBeDefined(); - expect(typeof localIdentName).toBe('string'); - expect(typeof localName).toBe('string'); - expect(options).toBeDefined(); - - expect(options.regExp).toBe('regExp'); - expect(options.context).toBe('context'); - expect(options.hashPrefix).toBe('hash'); - - return 'foo'; - }, - }, - }, - }, - }; - const testId = './modules/getLocalIdent.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + it('should work and correctly replace escaped symbols', async () => { + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { localIdentName: '[local]--[hash:base64:4]' }, + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should have an undefined context if no context was given', async () => { - const config = { - loader: { - options: { - modules: { - getLocalIdent(loaderContext, localIdentName, localName, options) { - expect(options.context).toBeUndefined(); - return 'foo'; - }, - }, + it('should work and respect the "getLocalIdent" option', async () => { + expect.assertions(382); + + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { + localIdentRegExp: 'regExp', + context: 'context', + hashPrefix: 'hash', + getLocalIdent(loaderContext, localIdentName, localName, options) { + expect(loaderContext).toBeDefined(); + expect(typeof localIdentName).toBe('string'); + expect(typeof localName).toBe('string'); + expect(options).toBeDefined(); + + expect(options.regExp).toBe('regExp'); + expect(options.context).toBe('context'); + expect(options.hashPrefix).toBe('hash'); + + return 'foo'; }, }, - }; - const testId = './modules/getLocalIdent.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should respects getLocalIdent option (global mode)', async () => { - const config = { - loader: { - options: { - modules: { - getLocalIdent() { - return 'foo'; - }, - }, + it('should work and has "undefined" context if no context was given', async () => { + expect.assertions(58); + + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { + getLocalIdent(loaderContext, localIdentName, localName, options) { + expect(options.context).toBeUndefined(); + + return 'foo'; }, }, - }; - const testId = './modules/getLocalIdent.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('getLocalIdent should be allowed to return false', async () => { - const config = { - loader: { - options: { - modules: { - localIdentName: '[local]', - getLocalIdent: () => false, - }, - }, + it('should work when the "getLocalIdent" option returns "false"', async () => { + const compiler = getCompiler('./modules/localIdentName/localIdentName.js', { + modules: { + localIdentName: '[local]', + getLocalIdent: () => false, }, - }; - const testId = './modules/getLocalIdent.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const evaluatedModule = evaluated(module.source); - - expect(evaluatedModule).toMatchSnapshot('module (evaluated)'); - expect(evaluatedModule.locals).toMatchSnapshot('locals'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/localIdentName/localIdentName.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('composes should supports resolving', async () => { - const config = { - loader: { options: { import: true, modules: true } }, - }; - const testId = './modules/composes.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + it('should support resolving in composes', async () => { + const compiler = getCompiler('./modules/composes/composes.js', { + modules: true, + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/composes/composes.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('issue #286', async () => { - const config = { - loader: { - test: /source\.css$/, - options: { - importLoaders: false, - modules: { - localIdentName: 'b--[local]', - }, - }, - }, - additionalLoader: { - test: /dep\.css$/, - loader: path.resolve(__dirname, '../src/index.js'), - options: { - importLoaders: false, - modules: { - localIdentName: 'a--[local]', - }, + const compiler = getCompiler( + './modules/issue-286/source.js', + {}, + { + module: { + rules: [ + { + test: /source\.css$/, + loader: path.resolve(__dirname, '../src'), + options: { + importLoaders: false, + modules: { + localIdentName: 'b--[local]', + }, + }, + }, + { + test: /dep\.css$/, + loader: path.resolve(__dirname, '../src'), + options: { + importLoaders: false, + modules: { + localIdentName: 'a--[local]', + }, + }, + }, + ], }, - }, - }; - const testId = './modules/issue-286/source.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/issue-286/source.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('issue #636', async () => { - const config = { - loader: { - test: /\.s[ca]ss$/i, - options: { - modules: { - localIdentName: '[local]', - getLocalIdent: (context, localIdentName, localName) => - `prefix-${localName}`, - }, - importLoaders: 1, + const compiler = getCompiler( + './modules/issue-636/source.js', + {}, + { + module: { + rules: [ + { + test: /\.s[ca]ss$/i, + rules: [ + { + loader: path.resolve(__dirname, '../src'), + options: { + modules: { + localIdentName: '[local]', + getLocalIdent: (context, localIdentName, localName) => + `prefix-${localName}`, + }, + importLoaders: 1, + }, + }, + { + loader: 'sass-loader', + options: { + // eslint-disable-next-line global-require + implementation: require('sass'), + }, + }, + ], + }, + ], }, - }, - sassLoader: true, - sassLoaderOptions: { - // eslint-disable-next-line global-require - implementation: require('sass'), - }, - }; - const testId = './modules/issue-636/source.scss'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/issue-636/source.scss', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('issue #861', async () => { - const config = { - loader: { options: { modules: true } }, - }; - const testId = './modules/resolving-inside-node-modules.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + const compiler = getCompiler( + './modules/issue-861/resolving-from-node_modules.js', + { + modules: true, + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const stats = await compile(compiler); + + expect( + getModuleSource( + './modules/issue-861/resolving-from-node_modules.css', + stats + ) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('issue #967', async () => { - const config = { - loader: { - options: { - modules: { - mode: 'local', - localIdentName: - '[path][name]__[local]__/-sep-?-sep-<-sep->-sep-\\\\-sep-:-sep-*-sep-|-sep-"-sep-:', - }, - }, + it('issue #966', async () => { + const compiler = getCompiler('./modules/issue-966/button.js', { + modules: { + getLocalIdent: (ctx, localIdentName, localName) => `${localName}.hey`, }, - }; - const testId = './modules/path-placeholder.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/issue-966/button.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('issue #966', async () => { - const config = { - loader: { - options: { - modules: { - getLocalIdent: (ctx, localIdentName, localName) => - `${localName}.hey`, - }, - }, + it('issue #967', async () => { + const compiler = getCompiler('./modules/issue-967/path-placeholder.js', { + modules: { + mode: 'local', + localIdentName: + '[path][name]__[local]__/-sep-?-sep-<-sep->-sep-\\\\-sep-:-sep-*-sep-|-sep-"-sep-:', }, - }; - const testId = './modules/issue-966/button.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/issue-967/path-placeholder.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('issue #980', async () => { - const config = { - loader: { - options: { - modules: { - localIdentName: '[name]_[local]_[hash:base64:5]', - }, + const compiler = getCompiler( + './modules/issue-980/file.with.many.dots.in.name.js', + { + modules: { + localIdentName: '[name]_[local]_[hash:base64:5]', }, - }, - }; - const testId = './modules/file.with.many.dots.in.name.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + } ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const stats = await compile(compiler); + + expect( + getModuleSource( + './modules/issue-980/file.with.many.dots.in.name.css', + stats + ) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('issue #995', async () => { - const config = { - loader: { - options: { - modules: { - mode: 'global', - localIdentName: '😀', - }, - }, + const compiler = getCompiler('./modules/issue-995/issue-995.js', { + modules: { + mode: 'global', + localIdentName: '😀', }, - }; - const testId = './modules/issue-995.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/issue-995/issue-995.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('should avoid unnecessary "require"', async () => { - const config = { - loader: { - options: { - modules: true, - }, - }, - }; - const testId = './modules/composes-duplicate.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + const compiler = getCompiler('./modules/composes/composes-duplicate.js', { + modules: true, + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/composes/composes-duplicate.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); it('should keep order', async () => { - const config = { - loader: { - options: { - modules: true, - }, - }, - }; - const testId = './modules/order/index.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' + const compiler = getCompiler('./modules/order/index.js', { modules: true }); + const stats = await compile(compiler); + + expect(getModuleSource('./modules/order/index.css', stats)).toMatchSnapshot( + 'module' ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); }); diff --git a/test/onlyLocals-option.test.js b/test/onlyLocals-option.test.js index 2a75cedc..27896192 100644 --- a/test/onlyLocals-option.test.js +++ b/test/onlyLocals-option.test.js @@ -1,29 +1,28 @@ -import { webpack } from './helpers'; +import { + compile, + execute, + getCompiler, + getErrors, + getModuleSource, + getWarnings, + readAsset, +} from './helpers/index'; -describe('modules', () => { - it('true', async () => { - const config = { - loader: { - options: { - modules: { - mode: 'local', - localIdentName: '_[local]', - }, - onlyLocals: true, - }, - }, - }; - const testId = `./modules/composes.css`; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - const valueModule = modules.find((m) => - m.id.endsWith('./modules/values.css') - ); +describe('"onlyLocals" option', () => { + it('should work', async () => { + const compiler = getCompiler('./modules/composes/composes.js', { + modules: { mode: 'local', localIdentName: '_[local]' }, + onlyLocals: true, + }); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(valueModule.source).toMatchSnapshot('values module'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect( + getModuleSource('./modules/composes/composes.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); }); diff --git a/test/runtime/__snapshots__/api.test.js.snap b/test/runtime/__snapshots__/api.test.js.snap index c2abf102..59695e48 100644 --- a/test/runtime/__snapshots__/api.test.js.snap +++ b/test/runtime/__snapshots__/api.test.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`api should import modules 1`] = `"body { b: 2; }body { c: 3; }body { b: 2; }@media print {body { b: 2; }}@media print {body { d: 4; }}@media screen {body { a: 1; }}"`; +exports[`api should import modules 1`] = `"body { b: 2; }body { c: 3; }body { b: 2; }@media print {body { b: 2; }}@media print {body { d: 4; }}@media screen and (orientation:landscape) {body { a: 1; }}@media (orientation:landscape) {body { a: 1; }}"`; exports[`api should import named modules 1`] = `"body { b: 2; }body { c: 3; }body { b: 2; }@media print {body { b: 2; }}@media print {body { d: 4; }}@media screen {body { a: 1; }}"`; @@ -8,7 +8,7 @@ exports[`api should toString a single module 1`] = `"body { a: 1; }"`; exports[`api should toString multiple modules 1`] = `"body { b: 2; }body { a: 1; }"`; -exports[`api should toString with media query 1`] = `"@media screen {body { a: 1; }}"`; +exports[`api should toString with media query 1`] = `"body { b: 2; }body { c: 3; }body { b: 2; }@media print {body { b: 2; }}@media print {body { d: 4; }}@media screen {body { a: 1; }}"`; exports[`api should toString with source mapping 1`] = ` "body { a: 1; } diff --git a/test/runtime/api.test.js b/test/runtime/api.test.js index b407af5b..508139a5 100644 --- a/test/runtime/api.test.js +++ b/test/runtime/api.test.js @@ -39,14 +39,22 @@ describe('api', () => { it('should toString with media query', () => { const m = api(); - m.push([1, 'body { a: 1; }', 'screen']); + const m1 = [1, 'body { a: 1; }', 'screen']; + const m2 = [2, 'body { b: 2; }', '']; + const m3 = [3, 'body { c: 3; }', '']; + const m4 = [4, 'body { d: 4; }', '']; + + m.i([m2, m3], ''); + m.i([m2], ''); + m.i([m2, m4], 'print'); + m.push(m1); expect(m.toString()).toMatchSnapshot(); }); it('should import modules', () => { const m = api(); - const m1 = [1, 'body { a: 1; }', 'screen']; + const m1 = [1, 'body { a: 1; }', '(orientation:landscape)']; const m2 = [2, 'body { b: 2; }', '']; const m3 = [3, 'body { c: 3; }', '']; const m4 = [4, 'body { d: 4; }', '']; @@ -54,6 +62,7 @@ describe('api', () => { m.i([m2, m3], ''); m.i([m2], ''); m.i([m2, m4], 'print'); + m.i([m1], 'screen'); m.push(m1); expect(m.toString()).toMatchSnapshot(); diff --git a/test/sourceMap-option.test.js b/test/sourceMap-option.test.js index 92de774a..9be0a262 100644 --- a/test/sourceMap-option.test.js +++ b/test/sourceMap-option.test.js @@ -2,242 +2,492 @@ import path from 'path'; import postcssPresetEnv from 'postcss-preset-env'; -import { webpack, evaluated, normalizeSourceMap } from './helpers'; +import { + compile, + execute, + getCompiler, + getErrors, + getModuleSource, + getWarnings, + readAsset, +} from './helpers/index'; -describe('sourceMap option', () => { - describe('true', () => { - it('should generate source map', async () => { - const config = { - loader: { - options: { - sourceMap: true, - }, - }, - }; - const testId = './source-map/basic.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(normalizeSourceMap(evaluated(module.source))).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); +describe('"sourceMap" option', () => { + describe('not specified', () => { + it('should not generate source maps', async () => { + const compiler = getCompiler('./source-map/basic.js'); + const stats = await compile(compiler); + + expect(getModuleSource('./source-map/basic.css', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); + }); - it('should generate source map when source map is `null` from other loader', async () => { - const config = { - loader: { - options: { - sourceMap: true, - }, - }, - sourceMap: null, - }; - const testId = './source-map/basic.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(normalizeSourceMap(evaluated(module.source))).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + describe('true', () => { + it('should generate source maps', async () => { + const compiler = getCompiler('./source-map/basic.js', { + sourceMap: true, + }); + const stats = await compile(compiler); + + expect(getModuleSource('./source-map/basic.css', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should generate source map when source map is `undefined` from other loader', async () => { - const config = { - loader: { - options: { - sourceMap: true, + it('should generate source maps when source maps equal to "null" from an other loader', async () => { + const compiler = getCompiler( + './source-map/basic.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + use: [ + { + loader: path.resolve(__dirname, '../src'), + options: { sourceMap: true }, + }, + { + loader: path.resolve( + __dirname, + './fixtures/source-map-loader.js' + ), + options: { + sourceMap: null, + }, + }, + ], + }, + ], }, - }, - // eslint-disable-next-line no-undefined - sourceMap: undefined, - }; - const testId = './source-map/basic.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(normalizeSourceMap(evaluated(module.source))).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + } + ); + const stats = await compile(compiler); + + expect(getModuleSource('./source-map/basic.css', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should generate source map when source map is valid and it is string from other loader', async () => { - const config = { - loader: { - options: { - sourceMap: true, + it('should generate source maps when source maps equal to "undefined" from an other loader', async () => { + const compiler = getCompiler( + './source-map/basic.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + use: [ + { + loader: path.resolve(__dirname, '../src'), + options: { sourceMap: true }, + }, + { + loader: path.resolve( + __dirname, + './fixtures/source-map-loader.js' + ), + options: { + // eslint-disable-next-line no-undefined + sourceMap: undefined, + }, + }, + ], + }, + ], }, - }, - sourceMap: JSON.stringify({ - version: 3, - sources: [ - path.join(__dirname, 'fixtures/source-map/basic.postcss.css'), - ], - names: [], - mappings: - 'AAGA;EACE,gBAAgB;EAChB,mCAAsB;EACtB,yCAA4C;AAC9C;;AAEA;EACE,kBAAqB;EAArB,gBAAqB;EAArB,qBAAqB;AACvB;;AAEA;EACE;IACE,6BAAuB;IAAvB,uBAAuB;IACvB,iGAAsB;IACtB,eAA0B;IAA1B,0BAA0B;IAC1B,6BAAwC;IAAxC,wCAAwC;IACxC,qBAAyB;IACzB,kCAA+C;IAA/C,mCAA+C;IAA/C,6CAA+C;IAA/C,8CAA+C;EACjD;AACF;;AAEA;EACE,aAAe;EAAf,gBAAe;AACjB;;AAEA;EACE;AAKF;;AAHA;GACG,WAAoB;CACtB', - file: path.join(__dirname, 'fixtures/source-map/basic.postcss.css'), - sourcesContent: [ - '@custom-media --viewport-medium (width <= 50rem);\n@custom-selector :--heading h1, h2, h3, h4, h5, h6;\n\n:root {\n --fontSize: 1rem;\n --mainColor: #12345678;\n --secondaryColor: lab(32.5 38.5 -47.6 / 90%);\n}\n\nhtml {\n overflow: hidden auto;\n}\n\n@media (--viewport-medium) {\n body {\n color: var(--mainColor);\n font-family: system-ui;\n font-size: var(--fontSize);\n line-height: calc(var(--fontSize) * 1.5);\n overflow-wrap: break-word;\n padding-inline: calc(var(--fontSize) / 2 + 1px);\n }\n}\n\n:--heading {\n margin-block: 0;\n}\n\na {\n color: rgb(0 0 100% / 90%);\n\n&:hover {\n color: rebeccapurple;\n }\n}\n', - ], - }), - }; - const testId = './source-map/basic.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(normalizeSourceMap(evaluated(module.source))).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + } + ); + const stats = await compile(compiler); + + expect(getModuleSource('./source-map/basic.css', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should generate source map when source map is valid from other loader (`sass-loader`)', async () => { - const config = { - loader: { - test: /\.s[ca]ss$/i, - options: { - sourceMap: true, + it('should generate source maps when source maps is valid and string from an other loader', async () => { + const compiler = getCompiler( + './source-map/basic.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + use: [ + { + loader: path.resolve(__dirname, '../src'), + options: { sourceMap: true }, + }, + { + loader: path.resolve( + __dirname, + './fixtures/source-map-loader.js' + ), + options: { + sourceMap: JSON.stringify({ + foo: 'bar', + version: 3, + sources: ['basic.css'], + names: [], + mappings: 'AAAA;EACE,UAAU;AACZ', + file: 'basic.css', + sourcesContent: ['.class {\n color: red;\n}\n'], + }), + }, + }, + ], + }, + ], }, - }, - sassLoader: true, - sassLoaderOptions: { - // eslint-disable-next-line global-require - implementation: require('sass'), - sourceMap: true, - }, - }; - const testId = './source-map/basic.scss'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(normalizeSourceMap(evaluated(module.source))).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + } + ); + const stats = await compile(compiler); + + expect(getModuleSource('./source-map/basic.css', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should generate source map when source map is valid from other loader (`postcss-loader`)', async () => { - const config = { - loader: { - options: { - sourceMap: true, + it('should generate source maps when source maps is valid from an other loader (`postcss-loader`)', async () => { + const compiler = getCompiler( + './source-map/basic-postcss.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + rules: [ + { + loader: path.resolve(__dirname, '../src'), + options: { + sourceMap: true, + }, + }, + { + loader: 'postcss-loader', + options: { + plugins: () => [postcssPresetEnv({ stage: 0 })], + sourceMap: true, + }, + }, + ], + }, + ], }, - }, - postcssLoader: true, - postcssLoaderOptions: { - sourceMap: true, - plugins: () => [postcssPresetEnv({ stage: 0 })], - }, - }; - const testId = './source-map/basic.postcss.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(normalizeSourceMap(evaluated(module.source))).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + } + ); + const stats = await compile(compiler); + + expect( + getModuleSource('./source-map/basic.postcss.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); + + // TODO uncomment when `sass-loader` will always right source maps + // it('should generate source maps when source maps is valid from an other loader (`sass-loader`)', async () => { + // const compiler = getCompiler( + // './source-map/basic-scss.js', + // {}, + // { + // module: { + // rules: [ + // { + // test: /\.s[ca]ss$/i, + // rules: [ + // { + // loader: path.resolve(__dirname, '../src'), + // options: { + // sourceMap: true, + // }, + // }, + // { + // loader: 'sass-loader', + // options: { + // // eslint-disable-next-line global-require + // implementation: require('sass'), + // sourceMap: true, + // }, + // }, + // ], + // }, + // ], + // }, + // } + // ); + // const stats = await compile(compiler); + // + // expect(getModuleSource('./source-map/basic.scss', stats)).toMatchSnapshot('module'); + // expect(execute(readAsset('main.bundle.js', compiler, stats))).toMatchSnapshot('result'); + // expect(getWarnings(stats)).toMatchSnapshot('warnings'); + // expect(getErrors(stats)).toMatchSnapshot('errors'); + // }); }); describe('false', () => { - it('should not generate source map', async () => { - const config = { - loader: { - options: { - sourceMap: false, + it('should not generate source maps', async () => { + const compiler = getCompiler('./source-map/basic.js', { + sourceMap: false, + }); + const stats = await compile(compiler); + + expect(getModuleSource('./source-map/basic.css', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + + it('should not generate source maps when source maps equal to "null" from an other loader', async () => { + const compiler = getCompiler( + './source-map/basic.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + use: [ + { + loader: path.resolve(__dirname, '../src'), + options: { sourceMap: false }, + }, + { + loader: path.resolve( + __dirname, + './fixtures/source-map-loader.js' + ), + options: { + sourceMap: null, + }, + }, + ], + }, + ], }, - }, - }; - const testId = './source-map/basic.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(evaluated(module.source)).toMatchSnapshot('module (evaluated)'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + } + ); + const stats = await compile(compiler); + + expect(getModuleSource('./source-map/basic.css', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should not generate source map when source map is `null` from other loader', async () => { - const config = { - loader: { - options: { - sourceMap: false, + it('should not generate source maps when source maps equal to "undefined" from an other loader', async () => { + const compiler = getCompiler( + './source-map/basic.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + use: [ + { + loader: path.resolve(__dirname, '../src'), + options: { sourceMap: false }, + }, + { + loader: path.resolve( + __dirname, + './fixtures/source-map-loader.js' + ), + options: { + // eslint-disable-next-line no-undefined + sourceMap: undefined, + }, + }, + ], + }, + ], }, - }, - sourceMap: null, - }; - const testId = './source-map/basic.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(evaluated(module.source)).toMatchSnapshot('module (evaluated)'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + } + ); + const stats = await compile(compiler); + + expect(getModuleSource('./source-map/basic.css', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('should not generate source map when source map is `undefined` from other loader', async () => { - const config = { - loader: { - options: { - sourceMap: false, + it('should not generate source maps when source maps is valid and string from an other loader', async () => { + const compiler = getCompiler( + './source-map/basic.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + use: [ + { + loader: path.resolve(__dirname, '../src'), + options: { sourceMap: false }, + }, + { + loader: path.resolve( + __dirname, + './fixtures/source-map-loader.js' + ), + options: { + sourceMap: JSON.stringify({ + foo: 'bar', + version: 3, + sources: ['basic.css'], + names: [], + mappings: 'AAAA;EACE,UAAU;AACZ', + file: 'basic.css', + sourcesContent: ['.class {\n color: red;\n}\n'], + }), + }, + }, + ], + }, + ], }, - }, - // eslint-disable-next-line no-undefined - sourceMap: undefined, - }; - const testId = './source-map/basic.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(evaluated(module.source)).toMatchSnapshot('module (evaluated)'); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + } + ); + const stats = await compile(compiler); + + expect(getModuleSource('./source-map/basic.css', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - }); - it('should not generate sourceMap when source map is valid from other loader (`sass-loader`)', async () => { - const config = { - loader: { - test: /\.s[ca]ss$/i, - options: { - sourceMap: false, - }, - }, - sassLoader: true, - sassLoaderOptions: { - // eslint-disable-next-line global-require - implementation: require('sass'), - sourceMap: true, - }, - }; - const testId = './source-map/basic.scss'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); - - expect(normalizeSourceMap(evaluated(module.source))).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + it('should not generate source maps when source maps is valid from an other loader (`postcss-loader`)', async () => { + const compiler = getCompiler( + './source-map/basic-postcss.js', + {}, + { + module: { + rules: [ + { + test: /\.css$/i, + rules: [ + { + loader: path.resolve(__dirname, '../src'), + options: { + sourceMap: false, + }, + }, + { + loader: 'postcss-loader', + options: { + plugins: () => [postcssPresetEnv({ stage: 0 })], + }, + }, + ], + }, + ], + }, + } + ); + const stats = await compile(compiler); + + expect( + getModuleSource('./source-map/basic.postcss.css', stats) + ).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + + it('should not generate source maps when source maps is valid from an other loader (`sass-loader`)', async () => { + const compiler = getCompiler( + './source-map/basic-scss.js', + {}, + { + module: { + rules: [ + { + test: /\.s[ca]ss$/i, + rules: [ + { + loader: path.resolve(__dirname, '../src'), + options: { + sourceMap: false, + }, + }, + { + loader: 'sass-loader', + options: { + // eslint-disable-next-line global-require + implementation: require('sass'), + sourceMap: true, + }, + }, + ], + }, + ], + }, + } + ); + const stats = await compile(compiler); + + expect(getModuleSource('./source-map/basic.scss', stats)).toMatchSnapshot( + 'module' + ); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); }); }); diff --git a/test/url-option.test.js b/test/url-option.test.js index d716d182..59e34c1d 100644 --- a/test/url-option.test.js +++ b/test/url-option.test.js @@ -1,66 +1,70 @@ -import { webpack, evaluated, normalizeErrors } from './helpers'; +import { + compile, + execute, + getCompiler, + getErrors, + getModuleSource, + getWarnings, + readAsset, +} from './helpers/index'; -describe('url option', () => { - it('true', async () => { - const testId = './url/url.css'; - const stats = await webpack(testId); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); +describe('"url" option', () => { + it('should work when not specified', async () => { + const compiler = getCompiler('./url/url.js'); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(normalizeErrors(stats.compilation.warnings)).toMatchSnapshot( - 'warnings' - ); - expect(normalizeErrors(stats.compilation.errors)).toMatchSnapshot('errors'); + expect(getModuleSource('./url/url.css', stats)).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('false', async () => { - const config = { loader: { options: { url: false } } }; - const testId = './url/url.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); + it('should work with a value equal to "true"', async () => { + const compiler = getCompiler('./url/url.js', { url: true }); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(stats.compilation.warnings).toMatchSnapshot('warnings'); - expect(stats.compilation.errors).toMatchSnapshot('errors'); + expect(getModuleSource('./url/url.css', stats)).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); - it('Function', async () => { - const config = { - loader: { - options: { - url: (url, resourcePath) => { - expect(typeof resourcePath === 'string').toBe(true); + it('should work with a value equal to "false"', async () => { + const compiler = getCompiler('./url/url.js', { url: false }); + const stats = await compile(compiler); - // Don't handle `img.png` - if (url.includes('img.png')) { - return false; - } + expect(getModuleSource('./url/url.css', stats)).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + + it('should work with a value equal to "Function"', async () => { + const compiler = getCompiler('./url/url.js', { + url: (url, resourcePath) => { + expect(typeof resourcePath === 'string').toBe(true); + + // Don't handle `img.png` + if (url.includes('img.png')) { + return false; + } - return true; - }, - }, + return true; }, - }; - const testId = './url/url.css'; - const stats = await webpack(testId, config); - const { modules } = stats.toJson(); - const module = modules.find((m) => m.id === testId); + }); + const stats = await compile(compiler); - expect(module.source).toMatchSnapshot('module'); - expect(evaluated(module.source, modules)).toMatchSnapshot( - 'module (evaluated)' - ); - expect(normalizeErrors(stats.compilation.warnings)).toMatchSnapshot( - 'warnings' - ); - expect(normalizeErrors(stats.compilation.errors)).toMatchSnapshot('errors'); + expect(getModuleSource('./url/url.css', stats)).toMatchSnapshot('module'); + expect( + execute(readAsset('main.bundle.js', compiler, stats)) + ).toMatchSnapshot('result'); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); }); }); diff --git a/test/validate-options.test.js b/test/validate-options.test.js index b15a0d0f..26b49cb6 100644 --- a/test/validate-options.test.js +++ b/test/validate-options.test.js @@ -1,118 +1,112 @@ -import loader from '../src/cjs'; +import { getCompiler, compile } from './helpers/index'; -it('validate options', () => { - const validate = (options) => - loader.call( - Object.assign( - {}, - { - query: options, - loaders: [], - remainingRequest: 'file.css', - currentRequest: 'file.css', - resourcePath: 'file.css', - async: () => (error) => { - if (error) { - throw error; - } - }, - } - ), - '.red { color: red; }' - ); - - expect(() => validate({ url: true })).not.toThrow(); - expect(() => validate({ url: false })).not.toThrow(); - expect(() => validate({ url: () => {} })).not.toThrow(); - expect(() => validate({ url: 'true' })).toThrowErrorMatchingSnapshot(); - - expect(() => validate({ import: true })).not.toThrow(); - expect(() => validate({ import: false })).not.toThrow(); - expect(() => validate({ import: () => {} })).not.toThrow(); - expect(() => validate({ import: 'true' })).toThrowErrorMatchingSnapshot(); - - expect(() => validate({ modules: true })).not.toThrow(); - expect(() => validate({ modules: false })).not.toThrow(); - expect(() => validate({ modules: 'global' })).not.toThrow(); - expect(() => validate({ modules: 'local' })).not.toThrow(); - expect(() => validate({ modules: 'pure' })).not.toThrow(); - expect(() => validate({ modules: { mode: 'local' } })).not.toThrow(); - expect(() => validate({ modules: { mode: 'global' } })).not.toThrow(); - expect(() => validate({ modules: { mode: 'pure' } })).not.toThrow(); - expect(() => validate({ modules: 'true' })).toThrowErrorMatchingSnapshot(); - expect(() => validate({ modules: 'globals' })).toThrowErrorMatchingSnapshot(); - expect(() => validate({ modules: 'locals' })).toThrowErrorMatchingSnapshot(); - expect(() => validate({ modules: 'pures' })).toThrowErrorMatchingSnapshot(); - expect(() => - validate({ modules: { mode: true } }) - ).toThrowErrorMatchingSnapshot(); - expect(() => - validate({ modules: { mode: 'true' } }) - ).toThrowErrorMatchingSnapshot(); - expect(() => - validate({ modules: { mode: 'locals' } }) - ).toThrowErrorMatchingSnapshot(); - expect(() => - validate({ modules: { mode: 'globals' } }) - ).toThrowErrorMatchingSnapshot(); - - expect(() => - validate({ - modules: { localIdentName: '[path][name]__[local]--[hash:base64:5]' }, - }) - ).not.toThrow(); - expect(() => - validate({ modules: { localIdentName: true } }) - ).toThrowErrorMatchingSnapshot(); +describe('validate options', () => { + const tests = { + url: { + success: [true, false, () => {}], + failure: ['true'], + }, + import: { + success: [true, false, () => {}], + failure: ['true'], + }, + modules: { + success: [ + true, + false, + 'global', + 'local', + 'pure', + { mode: 'global' }, + { mode: 'local' }, + { mode: 'pure' }, + { localIdentName: '[path][name]__[local]--[hash:base64:5]' }, + { context: 'context' }, + { hashPrefix: 'hash' }, + { getLocalIdent: () => {} }, + { localIdentRegExp: 'page-(.*)\\.js' }, + { localIdentRegExp: /page-(.*)\.js/ }, + ], + failure: [ + 'true', + 'globals', + 'locals', + 'pures', + { mode: true }, + { mode: 'globals' }, + { mode: 'locals' }, + { mode: 'pures' }, + { localIdentName: true }, + { context: true }, + { hashPrefix: true }, + { getLocalIdent: [] }, + { localIdentRegExp: true }, + ], + }, + sourceMap: { + success: [true, false], + failure: ['true'], + }, + localsConvention: { + success: ['camelCase', 'camelCaseOnly', 'dashes', 'dashesOnly'], + failure: ['unknown'], + }, + importLoaders: { + success: [false, 0, 1, 2], + failure: ['1'], + }, + onlyLocals: { + success: [true, false], + failure: ['true'], + }, + unknown: { + success: [], + failure: [1, true, false, 'test', /test/, [], {}, { foo: 'bar' }], + }, + }; - expect(() => validate({ modules: { context: 'context' } })).not.toThrow(); - expect(() => - validate({ modules: { context: true } }) - ).toThrowErrorMatchingSnapshot(); + function stringifyValue(value) { + if ( + Array.isArray(value) || + (value && typeof value === 'object' && value.constructor === Object) + ) { + return JSON.stringify(value); + } - expect(() => validate({ modules: { hashPrefix: 'hash' } })).not.toThrow(); - expect(() => - validate({ modules: { hashPrefix: true } }) - ).toThrowErrorMatchingSnapshot(); + return value; + } - expect(() => - validate({ modules: { getLocalIdent: () => {} } }) - ).not.toThrow(); - expect(() => - validate({ modules: { getLocalIdent: [] } }) - ).toThrowErrorMatchingSnapshot(); + async function createTestCase(key, value, type) { + it(`should ${ + type === 'success' ? 'successfully validate' : 'throw an error on' + } the "${key}" option with "${stringifyValue(value)}" value`, async () => { + const compiler = getCompiler('simple.js', { [key]: value }); + let stats; - expect(() => - validate({ modules: { localIdentRegExp: 'page-(.*)\\.js' } }) - ).not.toThrow(); - expect(() => - validate({ modules: { localIdentRegExp: /page-(.*)\.js/ } }) - ).not.toThrow(); - expect(() => - validate({ modules: { localIdentRegExp: true } }) - ).toThrowErrorMatchingSnapshot(); + try { + stats = await compile(compiler); + } finally { + if (type === 'success') { + expect(stats.hasErrors()).toBe(false); + } else if (type === 'failure') { + const { + compilation: { errors }, + } = stats; - expect(() => validate({ sourceMap: true })).not.toThrow(); - expect(() => validate({ sourceMap: false })).not.toThrow(); - expect(() => validate({ sourceMap: 'true' })).toThrowErrorMatchingSnapshot(); - - expect(() => validate({ localsConvention: 'camelCase' })).not.toThrow(); - expect(() => validate({ localsConvention: 'camelCaseOnly' })).not.toThrow(); - expect(() => validate({ localsConvention: 'dashes' })).not.toThrow(); - expect(() => validate({ localsConvention: 'dashesOnly' })).not.toThrow(); - expect(() => - validate({ localsConvention: 'unknown' }) - ).toThrowErrorMatchingSnapshot(); - - expect(() => validate({ importLoaders: false })).not.toThrow(); - expect(() => validate({ importLoaders: 0 })).not.toThrow(); - expect(() => validate({ importLoaders: 1 })).not.toThrow(); - expect(() => validate({ importLoaders: 2 })).not.toThrow(); - expect(() => validate({ importLoaders: '1' })).toThrowErrorMatchingSnapshot(); - - expect(() => validate({ onlyLocals: true })).not.toThrow(); - expect(() => validate({ onlyLocals: false })).not.toThrow(); - expect(() => validate({ onlyLocals: 'true' })).toThrowErrorMatchingSnapshot(); + expect(errors).toHaveLength(1); + expect(() => { + throw new Error(errors[0].error.message); + }).toThrowErrorMatchingSnapshot(); + } + } + }); + } - expect(() => validate({ unknown: 'unknown' })).toThrowErrorMatchingSnapshot(); + for (const [key, values] of Object.entries(tests)) { + for (const type of Object.keys(values)) { + for (const value of values[type]) { + createTestCase(key, value, type); + } + } + } }); From 0016e49db7bf85ed45fc9ec88ec9c3f333c8601c Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Mon, 16 Dec 2019 17:54:39 +0300 Subject: [PATCH 4/9] test: webpack5 (#1023) * test: webpack@5 * test: webpack@5 * test: webpack@5 * test: webpack@5 * test: webpack@5 * test: webpack@5 * test: webpack@5 * test: webpack@5 --- azure-pipelines.yml | 3 - package-lock.json | 116 +++--- package.json | 8 +- test/__snapshots__/icss.test.js.snap | 8 +- test/__snapshots__/import-option.test.js.snap | 344 +++++++++--------- .../importLoaders-option.test.js.snap | 16 +- test/__snapshots__/loader.test.js.snap | 8 +- .../__snapshots__/modules-option.test.js.snap | 298 +++++++-------- .../onlyLocals-option.test.js.snap | 14 +- test/__snapshots__/url-option.test.js.snap | 16 +- test/helpers/getCompiler.js | 8 +- test/helpers/getExecutedCode.js | 17 + test/helpers/getModuleSource.js | 6 +- test/helpers/index.js | 2 + test/icss.test.js | 5 +- test/import-option.test.js | 33 +- test/importLoaders-option.test.js | 39 +- test/loader.test.js | 47 ++- test/localsConvention-option.test.js | 39 +- test/modules-option.test.js | 151 ++++---- test/onlyLocals-option.test.js | 9 +- test/sourceMap-option.test.js | 31 +- test/url-option.test.js | 27 +- 23 files changed, 637 insertions(+), 608 deletions(-) create mode 100644 test/helpers/getExecutedCode.js diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 192d686e..6616426d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -58,7 +58,6 @@ jobs: node-10-canary: node_version: ^10.13.0 webpack_version: next - continue_on_error: true steps: - task: NodeTool@0 inputs: @@ -115,7 +114,6 @@ jobs: node-10-canary: node_version: ^10.13.0 webpack_version: next - continue_on_error: true steps: - task: NodeTool@0 inputs: @@ -172,7 +170,6 @@ jobs: node-10-canary: node_version: ^10.13.0 webpack_version: next - continue_on_error: true steps: - script: 'git config --global core.autocrlf input' displayName: 'Config git core.autocrlf' diff --git a/package-lock.json b/package-lock.json index e868fc77..79338ad5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1476,9 +1476,9 @@ "dev": true }, "@types/node": { - "version": "12.12.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.17.tgz", - "integrity": "sha512-Is+l3mcHvs47sKy+afn2O1rV4ldZFU7W8101cNlOd+MRbjM4Onida8jSZnJdTe/0Pcf25g9BNIUsuugmE6puHA==", + "version": "12.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.18.tgz", + "integrity": "sha512-DBkZuIMFuAfjJHiunyRc+aNvmXYNwV1IPMgGKGlwCp6zh6MKrVtmvjSWK/axWcD25KJffkXgkfvFra8ndenXAw==", "dev": true }, "@types/normalize-package-data": { @@ -1786,6 +1786,12 @@ "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", "dev": true }, + "add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", + "dev": true + }, "aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", @@ -2369,6 +2375,16 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -2683,9 +2699,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001015", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz", - "integrity": "sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ==", + "version": "1.0.30001016", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz", + "integrity": "sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==", "dev": true }, "caporal": { @@ -3170,11 +3186,12 @@ } }, "conventional-changelog-core": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.1.1.tgz", - "integrity": "sha512-fBre5P6U9n914Da6Cj82vIfRU2DhTLGr1eDPXWA7AamxTpd4cd0jgdS7Aieas5Vn5WXOJNFRDNl6PrYLEonImg==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.1.4.tgz", + "integrity": "sha512-LO58ZbEpp1Ul+y/vOI8rJRsWkovsYkCFbOCVgi6UnVfU8WC0F8K8VQQwaBZWWUpb6JvEiN4GBR5baRP2txZ+Vg==", "dev": true, "requires": { + "add-stream": "^1.0.0", "conventional-changelog-writer": "^4.0.11", "conventional-commits-parser": "^3.0.8", "dateformat": "^3.0.0", @@ -4530,9 +4547,9 @@ "dev": true }, "inquirer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz", - "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.1.tgz", + "integrity": "sha512-V1FFQ3TIO15det8PijPLFR9M9baSlnRs9nL7zWu1MNVA2T9YVl9ZbrHJhYs7e9X8jeMZ3lr2JH/rdHFgNCBdYw==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -4544,7 +4561,7 @@ "lodash": "^4.17.15", "mute-stream": "0.0.8", "run-async": "^2.2.0", - "rxjs": "^6.4.0", + "rxjs": "^6.5.3", "string-width": "^4.1.0", "strip-ansi": "^5.1.0", "through": "^2.3.6" @@ -5147,9 +5164,9 @@ } }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -5210,6 +5227,13 @@ "schema-utils": "^2.5.0" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -5450,14 +5474,15 @@ "dev": true }, "fsevents": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.10.tgz", - "integrity": "sha512-Dw5DScF/8AWhWzWRbnQrFJfeR/TOJZjRr9Du9kfmd8t234ICcVeDBlauFl/jVcE5ZewhlPoCFvIqp0SE3kAVxA==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -5728,7 +5753,7 @@ } }, "node-pre-gyp": { - "version": "0.12.0", + "version": "0.14.0", "bundled": true, "dev": true, "optional": true, @@ -5742,7 +5767,7 @@ "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^4" + "tar": "^4.4.2" } }, "nopt": { @@ -7243,12 +7268,12 @@ "dev": true }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "has": "^1.0.1" + "has": "^1.0.3" } }, "is-regexp": { @@ -11681,34 +11706,13 @@ } }, "string.prototype.padend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", - "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz", + "integrity": "sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" - }, - "dependencies": { - "es-abstract": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.3.tgz", - "integrity": "sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" - } - } + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "string.prototype.trimleft": { @@ -12500,9 +12504,9 @@ "dev": true }, "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "version": "4.41.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", + "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -12525,7 +12529,7 @@ "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", + "terser-webpack-plugin": "^1.4.3", "watchpack": "^1.6.0", "webpack-sources": "^1.4.1" }, diff --git a/package.json b/package.json index 003bbb85..09bf9c73 100644 --- a/package.json +++ b/package.json @@ -37,12 +37,10 @@ "defaults": "webpack-defaults" }, "files": [ - "dist/", - "lib/", - "index.js" + "dist" ], "peerDependencies": { - "webpack": "^4.0.0" + "webpack": "^4.0.0 || ^5.0.0" }, "dependencies": { "camelcase": "^5.3.1", @@ -90,7 +88,7 @@ "standard-version": "^7.0.1", "strip-ansi": "^6.0.0", "url-loader": "^3.0.0", - "webpack": "^4.41.2" + "webpack": "^4.41.3" }, "keywords": [ "webpack", diff --git a/test/__snapshots__/icss.test.js.snap b/test/__snapshots__/icss.test.js.snap index 542389d2..bb4dbf57 100644 --- a/test/__snapshots__/icss.test.js.snap +++ b/test/__snapshots__/icss.test.js.snap @@ -162,7 +162,7 @@ exports[`ICSS show work with the case "import": errors 1`] = `Array []`; exports[`ICSS show work with the case "import": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./vars.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./vars.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -176,7 +176,7 @@ exports.locals = { exports[`ICSS show work with the case "import": result 1`] = ` Array [ Array [ - "../../src/index.js?!./icss/tests-cases/import/vars.css", + "../../src/index.js?[ident]!./icss/tests-cases/import/vars.css", " ", "", @@ -199,7 +199,7 @@ exports[`ICSS show work with the case "import-reserved-keywords": errors 1`] = ` exports[`ICSS show work with the case "import-reserved-keywords": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./vars.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./vars.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -214,7 +214,7 @@ exports.locals = { exports[`ICSS show work with the case "import-reserved-keywords": result 1`] = ` Array [ Array [ - "../../src/index.js?!./icss/tests-cases/import-reserved-keywords/vars.css", + "../../src/index.js?[ident]!./icss/tests-cases/import-reserved-keywords/vars.css", " ", "", diff --git a/test/__snapshots__/import-option.test.js.snap b/test/__snapshots__/import-option.test.js.snap index ddcb4b4d..4ea197a1 100644 --- a/test/__snapshots__/import-option.test.js.snap +++ b/test/__snapshots__/import-option.test.js.snap @@ -5,10 +5,10 @@ exports[`"import" option should keep original order: errors 1`] = `Array []`; exports[`"import" option should keep original order: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./order-1.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4!./order-2.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4!./order-3.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4!./order-4.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./order-1.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??[ident]!./order-2.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??[ident]!./order-3.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??[ident]!./order-4.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); @@ -29,7 +29,7 @@ exports.push([module.id, \\"div {\\\\n width: 100%;\\\\n height: 200px;\\\\n}\ exports[`"import" option should keep original order: result 1`] = ` Array [ Array [ - "../../src/index.js?!./import/order-1.css", + "../../src/index.js?[ident]!./import/order-1.css", ".order-1 { color: red; } @@ -41,7 +41,7 @@ Array [ "@import url(http://example.com/style.css);", ], Array [ - "../../src/index.js?!./import/order-2.css", + "../../src/index.js?[ident]!./import/order-2.css", ".order-1 { color: red; } @@ -53,7 +53,7 @@ Array [ "@import url(http://example.com/style.css);", ], Array [ - "../../src/index.js?!./import/order-1.css", + "../../src/index.js?[ident]!./import/order-1.css", ".order-1 { color: red; } @@ -65,7 +65,7 @@ Array [ "@import url(http://example.com/style.css);", ], Array [ - "../../src/index.js?!./import/order-2.css", + "../../src/index.js?[ident]!./import/order-2.css", ".order-1 { color: red; } @@ -77,7 +77,7 @@ Array [ "@import url(http://example.com/style.css);", ], Array [ - "../../src/index.js?!./import/order-3-1.css", + "../../src/index.js?[ident]!./import/order-3-1.css", ".order-3-1 { color: white; } @@ -85,7 +85,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/order-3.css", + "../../src/index.js?[ident]!./import/order-3.css", ".order-3 { color: red; } @@ -97,7 +97,7 @@ Array [ "@import url(http://example.com/style.css);", ], Array [ - "../../src/index.js?!./import/order-4-1.css", + "../../src/index.js?[ident]!./import/order-4-1.css", ".order-4-1 { color: red; } @@ -105,7 +105,7 @@ Array [ "screen and (min-width: 1000px)", ], Array [ - "../../src/index.js?!./import/order-4-2-1.css", + "../../src/index.js?[ident]!./import/order-4-2-1.css", ".order-4-2-1 { color: red; } @@ -113,7 +113,7 @@ Array [ "screen and (min-width: 2000px)", ], Array [ - "../../src/index.js?!./import/order-4-2-2.css", + "../../src/index.js?[ident]!./import/order-4-2-2.css", ".order-4-2-2 { color: red; } @@ -121,7 +121,7 @@ Array [ "screen and (min-width: 2000px) and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/order-4-2.css", + "../../src/index.js?[ident]!./import/order-4-2.css", ".order-4-2 { color: red; } @@ -129,7 +129,7 @@ Array [ "screen and (min-width: 2000px)", ], Array [ - "../../src/index.js?!./import/order-4.css", + "../../src/index.js?[ident]!./import/order-4.css", ".order-4 { color: red; } @@ -155,16 +155,16 @@ exports[`"import" option should work when "Function": errors 1`] = `Array []`; exports[`"import" option should work when "Function": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./test-media.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4!./test-other.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4!./query.css?foo=1&bar=1\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4!./other-query.css?foo=1&bar=1#hash\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??ref--4!./relative.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??ref--4!../import/top-relative.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??ref--4!package/tilde.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??ref--4!aliasesImport/alias.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??ref--4!./url.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??ref--4!./te'st.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./test-media.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??[ident]!./test-other.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??[ident]!./query.css?foo=1&bar=1\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??[ident]!./other-query.css?foo=1&bar=1#hash\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??[ident]!./relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??[ident]!../import/top-relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??[ident]!package/tilde.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??[ident]!aliasesImport/alias.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??[ident]!./url.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??[ident]!./te'st.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); @@ -202,7 +202,7 @@ exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\ exports[`"import" option should work when "Function": result 1`] = ` Array [ Array [ - "../../src/index.js?!./import/test-nested-media.css", + "../../src/index.js?[ident]!./import/test-nested-media.css", "a { b: b; } @@ -210,7 +210,7 @@ Array [ "screen and (orientation:landscape) and (min-width: 100px)", ], Array [ - "../../src/index.js?!./import/test-media.css", + "../../src/index.js?[ident]!./import/test-media.css", ".test { c: c; } @@ -218,7 +218,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/test-other.css", + "../../src/index.js?[ident]!./import/test-other.css", ".test { d: d; } @@ -260,7 +260,7 @@ Array [ "@import url(//example.com/style.css);", ], Array [ - "../../src/index.js?!./import/query.css?foo=1&bar=1", + "../../src/index.js?[ident]!./import/query.css?foo=1&bar=1", ".query { e: e; } @@ -268,7 +268,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", + "../../src/index.js?[ident]!./import/other-query.css?foo=1&bar=1#hash", ".other-query { f: f; } @@ -276,7 +276,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", + "../../src/index.js?[ident]!./import/other-query.css?foo=1&bar=1#hash", ".other-query { f: f; } @@ -296,7 +296,7 @@ Array [ "@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);", ], Array [ - "../../src/index.js?!./import/relative.css", + "../../src/index.js?[ident]!./import/relative.css", ".relative { color: red; } @@ -304,7 +304,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/top-relative.css", + "../../src/index.js?[ident]!./import/top-relative.css", ".top-relative { color: black; } @@ -312,7 +312,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/node_modules/package/tilde.css", + "../../src/index.js?[ident]!./import/node_modules/package/tilde.css", ".tilde { color: yellow; } @@ -320,7 +320,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/alias.css", + "../../src/index.js?[ident]!./import/alias.css", ".alias { color: red; } @@ -328,7 +328,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/url.css", + "../../src/index.js?[ident]!./import/url.css", ".background-imported { background: url(/webpack/public/path/img.png); } @@ -336,7 +336,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -344,7 +344,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -352,7 +352,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -360,7 +360,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -515,19 +515,19 @@ exports[`"import" option should work when not specified: errors 1`] = `Array []` exports[`"import" option should work when not specified: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./test.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4!./test-media.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4!./test-other.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4!package/test.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??ref--4!./query.css?foo=1&bar=1\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??ref--4!./other-query.css?foo=1&bar=1#hash\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??ref--4!./relative.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??ref--4!../import/top-relative.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??ref--4!package/tilde.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??ref--4!aliasesImport/alias.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_10___ = require(\\"-!../../../src/index.js??ref--4!./url.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_11___ = require(\\"-!../../../src/index.js??ref--4!./te'st.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_12___ = require(\\"-!../../../src/index.js??ref--4!./test test.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./test.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??[ident]!./test-media.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??[ident]!./test-other.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??[ident]!package/test.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??[ident]!./query.css?foo=1&bar=1\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??[ident]!./other-query.css?foo=1&bar=1#hash\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??[ident]!./relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??[ident]!../import/top-relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??[ident]!package/tilde.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??[ident]!aliasesImport/alias.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_10___ = require(\\"-!../../../src/index.js??[ident]!./url.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_11___ = require(\\"-!../../../src/index.js??[ident]!./te'st.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_12___ = require(\\"-!../../../src/index.js??[ident]!./test test.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); @@ -603,7 +603,7 @@ exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url( exports[`"import" option should work when not specified: result 1`] = ` Array [ Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -611,7 +611,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -619,7 +619,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -627,7 +627,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -635,7 +635,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -643,7 +643,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -651,7 +651,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -659,7 +659,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -667,7 +667,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -675,7 +675,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -683,7 +683,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -691,7 +691,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -699,7 +699,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -707,7 +707,7 @@ Array [ "screen and (orientation: landscape)", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -715,7 +715,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -723,7 +723,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/test-nested-media.css", + "../../src/index.js?[ident]!./import/test-nested-media.css", "a { b: b; } @@ -731,7 +731,7 @@ Array [ "screen and (orientation:landscape) and (min-width: 100px)", ], Array [ - "../../src/index.js?!./import/test-media.css", + "../../src/index.js?[ident]!./import/test-media.css", ".test { c: c; } @@ -739,7 +739,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/test-other.css", + "../../src/index.js?[ident]!./import/test-other.css", ".test { d: d; } @@ -781,7 +781,7 @@ Array [ "@import url(//example.com/style.css);", ], Array [ - "../../src/index.js?!./import/node_modules/package/test.css", + "../../src/index.js?[ident]!./import/node_modules/package/test.css", ".test { d: d } @@ -789,7 +789,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/query.css?foo=1&bar=1", + "../../src/index.js?[ident]!./import/query.css?foo=1&bar=1", ".query { e: e; } @@ -797,7 +797,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", + "../../src/index.js?[ident]!./import/other-query.css?foo=1&bar=1#hash", ".other-query { f: f; } @@ -805,7 +805,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", + "../../src/index.js?[ident]!./import/other-query.css?foo=1&bar=1#hash", ".other-query { f: f; } @@ -825,7 +825,7 @@ Array [ "@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);", ], Array [ - "../../src/index.js?!./import/relative.css", + "../../src/index.js?[ident]!./import/relative.css", ".relative { color: red; } @@ -833,7 +833,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/top-relative.css", + "../../src/index.js?[ident]!./import/top-relative.css", ".top-relative { color: black; } @@ -841,7 +841,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/node_modules/package/tilde.css", + "../../src/index.js?[ident]!./import/node_modules/package/tilde.css", ".tilde { color: yellow; } @@ -849,7 +849,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/alias.css", + "../../src/index.js?[ident]!./import/alias.css", ".alias { color: red; } @@ -857,7 +857,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/url.css", + "../../src/index.js?[ident]!./import/url.css", ".background-imported { background: url(/webpack/public/path/img.png); } @@ -865,7 +865,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -873,7 +873,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -881,7 +881,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -889,7 +889,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -897,7 +897,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -905,7 +905,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -913,7 +913,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -921,7 +921,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -929,7 +929,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -937,7 +937,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -945,7 +945,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -953,7 +953,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -961,7 +961,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -969,7 +969,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -977,7 +977,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -985,7 +985,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -993,7 +993,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1001,7 +1001,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1009,7 +1009,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1017,7 +1017,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1025,7 +1025,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1033,7 +1033,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1041,7 +1041,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1049,7 +1049,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1057,7 +1057,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1065,7 +1065,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1300,19 +1300,19 @@ exports[`"import" option should work with a value equal to "true": errors 1`] = exports[`"import" option should work with a value equal to "true": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./test.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??ref--4!./test-media.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??ref--4!./test-other.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??ref--4!package/test.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??ref--4!./query.css?foo=1&bar=1\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??ref--4!./other-query.css?foo=1&bar=1#hash\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??ref--4!./relative.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??ref--4!../import/top-relative.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??ref--4!package/tilde.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??ref--4!aliasesImport/alias.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_10___ = require(\\"-!../../../src/index.js??ref--4!./url.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_11___ = require(\\"-!../../../src/index.js??ref--4!./te'st.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_12___ = require(\\"-!../../../src/index.js??ref--4!./test test.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./test.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??[ident]!./test-media.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??[ident]!./test-other.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??[ident]!package/test.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_4___ = require(\\"-!../../../src/index.js??[ident]!./query.css?foo=1&bar=1\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_5___ = require(\\"-!../../../src/index.js??[ident]!./other-query.css?foo=1&bar=1#hash\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_6___ = require(\\"-!../../../src/index.js??[ident]!./relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_7___ = require(\\"-!../../../src/index.js??[ident]!../import/top-relative.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??[ident]!package/tilde.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??[ident]!aliasesImport/alias.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_10___ = require(\\"-!../../../src/index.js??[ident]!./url.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_11___ = require(\\"-!../../../src/index.js??[ident]!./te'st.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_12___ = require(\\"-!../../../src/index.js??[ident]!./test test.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); @@ -1388,7 +1388,7 @@ exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url( exports[`"import" option should work with a value equal to "true": result 1`] = ` Array [ Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1396,7 +1396,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1404,7 +1404,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1412,7 +1412,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1420,7 +1420,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1428,7 +1428,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1436,7 +1436,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1444,7 +1444,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1452,7 +1452,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1460,7 +1460,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1468,7 +1468,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1476,7 +1476,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1484,7 +1484,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1492,7 +1492,7 @@ Array [ "screen and (orientation: landscape)", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1500,7 +1500,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1508,7 +1508,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/test-nested-media.css", + "../../src/index.js?[ident]!./import/test-nested-media.css", "a { b: b; } @@ -1516,7 +1516,7 @@ Array [ "screen and (orientation:landscape) and (min-width: 100px)", ], Array [ - "../../src/index.js?!./import/test-media.css", + "../../src/index.js?[ident]!./import/test-media.css", ".test { c: c; } @@ -1524,7 +1524,7 @@ Array [ "screen and (orientation:landscape)", ], Array [ - "../../src/index.js?!./import/test-other.css", + "../../src/index.js?[ident]!./import/test-other.css", ".test { d: d; } @@ -1566,7 +1566,7 @@ Array [ "@import url(//example.com/style.css);", ], Array [ - "../../src/index.js?!./import/node_modules/package/test.css", + "../../src/index.js?[ident]!./import/node_modules/package/test.css", ".test { d: d } @@ -1574,7 +1574,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/query.css?foo=1&bar=1", + "../../src/index.js?[ident]!./import/query.css?foo=1&bar=1", ".query { e: e; } @@ -1582,7 +1582,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", + "../../src/index.js?[ident]!./import/other-query.css?foo=1&bar=1#hash", ".other-query { f: f; } @@ -1590,7 +1590,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/other-query.css?foo=1&bar=1#hash", + "../../src/index.js?[ident]!./import/other-query.css?foo=1&bar=1#hash", ".other-query { f: f; } @@ -1610,7 +1610,7 @@ Array [ "@import url(https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto);", ], Array [ - "../../src/index.js?!./import/relative.css", + "../../src/index.js?[ident]!./import/relative.css", ".relative { color: red; } @@ -1618,7 +1618,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/top-relative.css", + "../../src/index.js?[ident]!./import/top-relative.css", ".top-relative { color: black; } @@ -1626,7 +1626,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/node_modules/package/tilde.css", + "../../src/index.js?[ident]!./import/node_modules/package/tilde.css", ".tilde { color: yellow; } @@ -1634,7 +1634,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/alias.css", + "../../src/index.js?[ident]!./import/alias.css", ".alias { color: red; } @@ -1642,7 +1642,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/url.css", + "../../src/index.js?[ident]!./import/url.css", ".background-imported { background: url(/webpack/public/path/img.png); } @@ -1650,7 +1650,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1658,7 +1658,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1666,7 +1666,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1674,7 +1674,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1682,7 +1682,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1690,7 +1690,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -1698,7 +1698,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -1706,7 +1706,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -1714,7 +1714,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/te'st.css", + "../../src/index.js?[ident]!./import/te'st.css", ".strange { color: red; } @@ -1722,7 +1722,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1730,7 +1730,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1738,7 +1738,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1746,7 +1746,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1754,7 +1754,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1762,7 +1762,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1770,7 +1770,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1778,7 +1778,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1786,7 +1786,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1794,7 +1794,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } @@ -1802,7 +1802,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1810,7 +1810,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1818,7 +1818,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1826,7 +1826,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1834,7 +1834,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1842,7 +1842,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test test.css", + "../../src/index.js?[ident]!./import/test test.css", ".space { color: gray; } @@ -1850,7 +1850,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./import/test.css", + "../../src/index.js?[ident]!./import/test.css", ".test { a: a; } diff --git a/test/__snapshots__/importLoaders-option.test.js.snap b/test/__snapshots__/importLoaders-option.test.js.snap index c009faec..2e573e56 100644 --- a/test/__snapshots__/importLoaders-option.test.js.snap +++ b/test/__snapshots__/importLoaders-option.test.js.snap @@ -43,7 +43,7 @@ exports[`"importLoaders" option should work with a value equal to "0" (\`postcss exports[`"importLoaders" option should work with a value equal to "0" (\`postcss-loader\` before): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-rules-0!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module @@ -54,7 +54,7 @@ exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255 exports[`"importLoaders" option should work with a value equal to "0" (\`postcss-loader\` before): result 1`] = ` Array [ Array [ - "../../src/index.js?!./nested-import/imported.css", + "../../src/index.js?[ident]!./nested-import/imported.css", ".bar { color: blue; color: rgb(0 0 100% / 90%); @@ -81,7 +81,7 @@ exports[`"importLoaders" option should work with a value equal to "1" ("postcss- exports[`"importLoaders" option should work with a value equal to "1" ("postcss-loader" before): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-rules-0!../../../node_modules/postcss-loader/src/index.js??ref--4-rules-1!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module @@ -92,7 +92,7 @@ exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255 exports[`"importLoaders" option should work with a value equal to "1" ("postcss-loader" before): result 1`] = ` Array [ Array [ - "../../src/index.js?!../../node_modules/postcss-loader/src/index.js?!./nested-import/imported.css", + "../../src/index.js?[ident]!./nested-import/imported.css", ".bar { color: blue; color: rgba(0, 0, 255, 0.9); @@ -119,7 +119,7 @@ exports[`"importLoaders" option should work with a value equal to "1" (no loader exports[`"importLoaders" option should work with a value equal to "1" (no loaders before): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module @@ -130,7 +130,7 @@ exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgb(0 0 100% / exports[`"importLoaders" option should work with a value equal to "1" (no loaders before): result 1`] = ` Array [ Array [ - "../../src/index.js?!./nested-import/imported.css", + "../../src/index.js?[ident]!./nested-import/imported.css", ".bar { color: blue; color: rgb(0 0 100% / 90%); @@ -157,7 +157,7 @@ exports[`"importLoaders" option should work with a value equal to "2" ("postcss- exports[`"importLoaders" option should work with a value equal to "2" ("postcss-loader" before): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4-rules-0!../../../node_modules/postcss-loader/src/index.js??ref--4-rules-1!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module @@ -168,7 +168,7 @@ exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255 exports[`"importLoaders" option should work with a value equal to "2" ("postcss-loader" before): result 1`] = ` Array [ Array [ - "../../src/index.js?!../../node_modules/postcss-loader/src/index.js?!./nested-import/imported.css", + "../../src/index.js?[ident]!./nested-import/imported.css", ".bar { color: blue; color: rgba(0, 0, 255, 0.9); diff --git a/test/__snapshots__/loader.test.js.snap b/test/__snapshots__/loader.test.js.snap index f62d14af..005a280e 100644 --- a/test/__snapshots__/loader.test.js.snap +++ b/test/__snapshots__/loader.test.js.snap @@ -175,7 +175,7 @@ exports[`loader should work with empty options: errors 1`] = `Array []`; exports[`loader should work with empty options: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??[ident]!./imported.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); @@ -189,7 +189,7 @@ exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */ exports[`loader should work with empty options: result 1`] = ` Array [ Array [ - "../../src/index.js?!./imported.css", + "../../src/index.js?[ident]!./imported.css", ".foo { color: red; } @@ -346,7 +346,7 @@ exports[`loader should work: errors 1`] = `Array []`; exports[`loader should work: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??[ident]!./imported.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); @@ -360,7 +360,7 @@ exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */ exports[`loader should work: result 1`] = ` Array [ Array [ - "../../src/index.js?!./imported.css", + "../../src/index.js?[ident]!./imported.css", ".foo { color: red; } diff --git a/test/__snapshots__/modules-option.test.js.snap b/test/__snapshots__/modules-option.test.js.snap index 0598da1c..baf5825a 100644 --- a/test/__snapshots__/modules-option.test.js.snap +++ b/test/__snapshots__/modules-option.test.js.snap @@ -40,7 +40,7 @@ exports[`"modules" option issue #636: errors 1`] = `Array []`; exports[`"modules" option issue #636: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4-rules-0!../../../../node_modules/sass-loader/dist/cjs.js??ref--4-rules-1!./foo.scss\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./foo.scss\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -54,7 +54,7 @@ exports.locals = { exports[`"modules" option issue #636: result 1`] = ` Array [ Array [ - "../../src/index.js?!../../node_modules/sass-loader/dist/cjs.js?!./modules/issue-636/foo.scss", + "../../src/index.js?[ident]!./modules/issue-636/foo.scss", ".prefix-foo { color: red; }", @@ -76,8 +76,8 @@ exports[`"modules" option issue #861: errors 1`] = `Array []`; exports[`"modules" option issue #861: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./node_modules/@localpackage/color.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??ref--4!./node_modules/@localpackage/style.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./node_modules/@localpackage/color.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??[ident]!./node_modules/@localpackage/style.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -93,13 +93,13 @@ exports.locals = { exports[`"modules" option issue #861: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/issue-861/node_modules/@localpackage/color.css", + "../../src/index.js?[ident]!./modules/issue-861/node_modules/@localpackage/color.css", " ", "", ], Array [ - "../../src/index.js?!./modules/issue-861/node_modules/@otherlocalpackage/style.css", + "../../src/index.js?[ident]!./modules/issue-861/node_modules/@otherlocalpackage/style.css", "._3_UmHSyGSKHfkAuB_4PF0r { display: flex; } @@ -107,7 +107,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/issue-861/node_modules/@localpackage/style.css", + "../../src/index.js?[ident]!./modules/issue-861/node_modules/@localpackage/style.css", "._3tsKb6RyTte_M89z1nGia_ { color: red; margin: 0; @@ -354,7 +354,7 @@ exports[`"modules" option should avoid unnecessary "require": errors 1`] = `Arra exports[`"modules" option should avoid unnecessary "require": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./imported-simple.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./imported-simple.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -369,7 +369,7 @@ exports.locals = { exports[`"modules" option should avoid unnecessary "require": result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/composes/imported-simple.css", + "../../src/index.js?[ident]!./modules/composes/imported-simple.css", "._15HqoDBChWnuDGxJ6jOtUV { display: block; } @@ -398,8 +398,8 @@ exports[`"modules" option should keep order: errors 1`] = `Array []`; exports[`"modules" option should keep order: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./order-1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??ref--4!./order-2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./order-1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??[ident]!./order-2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -415,7 +415,7 @@ exports.locals = { exports[`"modules" option should keep order: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/order/order-1.css", + "../../src/index.js?[ident]!./modules/order/order-1.css", "._2r9YTNQEwCk0bSiZCuc7Ol { color: red; } @@ -427,7 +427,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/order/order-2.css", + "../../src/index.js?[ident]!./modules/order/order-2.css", "._18ve634MAK3QtupmRo9lo3 { color: blue; } @@ -830,14 +830,14 @@ exports[`"modules" option should support resolving in composes: errors 1`] = `Ar exports[`"modules" option should support resolving in composes: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./values.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??ref--4!./something.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_2___ = require(\\"-!../../../../src/index.js??ref--4!./imported-simple.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_3___ = require(\\"-!../../../../src/index.js??ref--4!./relative.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_4___ = require(\\"-!../../../../src/index.js??ref--4!./top-relative.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_5___ = require(\\"-!../../../../src/index.js??ref--4!../issue-861/node_modules/package/style.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_6___ = require(\\"-!../../../../src/index.js??ref--4!aliasesComposes/alias.css\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./test-other.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./values.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??[ident]!./something.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_2___ = require(\\"-!../../../../src/index.js??[ident]!./imported-simple.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_3___ = require(\\"-!../../../../src/index.js??[ident]!./relative.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_4___ = require(\\"-!../../../../src/index.js??[ident]!./top-relative.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_5___ = require(\\"-!../../../../src/index.js??[ident]!../issue-861/node_modules/package/style.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_6___ = require(\\"-!../../../../src/index.js??[ident]!aliasesComposes/alias.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./test-other.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"../../url/img.png\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); @@ -904,19 +904,19 @@ exports.locals = { exports[`"modules" option should support resolving in composes: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/composes/values.css", + "../../src/index.js?[ident]!./modules/composes/values.css", " ", "", ], Array [ - "../../src/index.js?!./modules/composes/something.css", + "../../src/index.js?[ident]!./modules/composes/something.css", " ", "", ], Array [ - "../../src/index.js?!./modules/composes/imported-simple.css", + "../../src/index.js?[ident]!./modules/composes/imported-simple.css", "._15HqoDBChWnuDGxJ6jOtUV { display: block; } @@ -924,7 +924,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/composes/relative.css", + "../../src/index.js?[ident]!./modules/composes/relative.css", "._2XpGrQ60AX7p8fQT9hACyH { display: inline; } @@ -932,7 +932,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/composes/top-relative.css", + "../../src/index.js?[ident]!./modules/composes/top-relative.css", "._1Ua1iZV27bUg7cs1NExheb { display: flex; } @@ -940,7 +940,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/issue-861/node_modules/package/style.css", + "../../src/index.js?[ident]!./modules/issue-861/node_modules/package/style.css", ".HM73Ud1_EQz1eaYocwagZ { display: inline-block; } @@ -948,7 +948,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/composes/alias.css", + "../../src/index.js?[ident]!./modules/composes/alias.css", "._1qxfPu6Vbru-xS0LA5GWJT { display: table; } @@ -956,7 +956,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/composes/test-other.css", + "../../src/index.js?[ident]!./modules/composes/test-other.css", "._2KbNYW68v_VxbQ8XdpUuGh { d: d; } @@ -3848,7 +3848,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -3864,7 +3864,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-1/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-1/file.css", "._1xYJRliqpSHYzUvktbdaCo { color: red; } @@ -3897,7 +3897,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -3913,7 +3913,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-1/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-1/file.css", "._1xYJRliqpSHYzUvktbdaCo { color: red; } @@ -3946,7 +3946,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -3962,7 +3962,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-1/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-1/file.css", "._c2 { color: red; } @@ -3995,7 +3995,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4011,7 +4011,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-1/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-1/file.css", "._c2 { color: red; } @@ -4044,7 +4044,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4060,7 +4060,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-1/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-1/file.css", "._1xYJRliqpSHYzUvktbdaCo { color: red; } @@ -4119,7 +4119,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4135,7 +4135,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-2/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-2/file.css", "._3CxjkH18CkEkRZ4FO4v-NQ { color: red; } @@ -4168,7 +4168,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4184,7 +4184,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-2/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-2/file.css", "._3CxjkH18CkEkRZ4FO4v-NQ { color: red; } @@ -4217,7 +4217,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4233,7 +4233,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-2/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-2/file.css", "._c-2 { color: red; } @@ -4266,7 +4266,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4282,7 +4282,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-2/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-2/file.css", "._c-2 { color: red; } @@ -4315,7 +4315,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4331,7 +4331,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-2/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-2/file.css", "._3CxjkH18CkEkRZ4FO4v-NQ { color: red; } @@ -4391,8 +4391,8 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -4407,7 +4407,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-multiple/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-multiple/file1.css", "._3hEvHUTrMHercKPgTBsK6W { color: red; } @@ -4415,7 +4415,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/tests-cases/composes-multiple/file2.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-multiple/file2.css", "._1UYEX_kWsPgokwmdBHI8pU { color: blue; } @@ -4439,8 +4439,8 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -4455,7 +4455,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-multiple/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-multiple/file1.css", "._3hEvHUTrMHercKPgTBsK6W { color: red; } @@ -4463,7 +4463,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/tests-cases/composes-multiple/file2.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-multiple/file2.css", "._1UYEX_kWsPgokwmdBHI8pU { color: blue; } @@ -4487,8 +4487,8 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -4503,7 +4503,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-multiple/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-multiple/file1.css", "._def1 { color: red; } @@ -4511,7 +4511,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/tests-cases/composes-multiple/file2.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-multiple/file2.css", "._def2 { color: blue; } @@ -4535,8 +4535,8 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -4551,7 +4551,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-multiple/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-multiple/file1.css", "._def1 { color: red; } @@ -4559,7 +4559,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/tests-cases/composes-multiple/file2.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-multiple/file2.css", "._def2 { color: blue; } @@ -4583,8 +4583,8 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -4599,7 +4599,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-multiple/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-multiple/file1.css", "._3hEvHUTrMHercKPgTBsK6W { color: red; } @@ -4607,7 +4607,7 @@ Array [ "", ], Array [ - "../../src/index.js?!./modules/tests-cases/composes-multiple/file2.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-multiple/file2.css", "._1UYEX_kWsPgokwmdBHI8pU { color: blue; } @@ -4657,7 +4657,7 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4671,7 +4671,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-with-importing/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-with-importing/file.css", ".zu3DT3PNuTYdVravHX310 { color: red; } @@ -4695,7 +4695,7 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4709,7 +4709,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-with-importing/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-with-importing/file.css", ".zu3DT3PNuTYdVravHX310 { color: red; } @@ -4733,7 +4733,7 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4747,7 +4747,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-with-importing/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-with-importing/file.css", "._def { color: red; } @@ -4771,7 +4771,7 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4785,7 +4785,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-with-importing/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-with-importing/file.css", "._def { color: red; } @@ -4809,7 +4809,7 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -4823,7 +4823,7 @@ exports.locals = { exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/composes-with-importing/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/composes-with-importing/file.css", ".zu3DT3PNuTYdVravHX310 { color: red; } @@ -7031,7 +7031,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -7045,7 +7045,7 @@ exports.locals = { exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/media-2/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/media-2/file.css", " ", "", @@ -7070,7 +7070,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -7085,7 +7085,7 @@ exports.locals = { exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/media-2/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/media-2/file.css", " ", "", @@ -7110,7 +7110,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -7124,7 +7124,7 @@ exports.locals = { exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/media-2/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/media-2/file.css", " ", "", @@ -7149,7 +7149,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -7164,7 +7164,7 @@ exports.locals = { exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/media-2/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/media-2/file.css", " ", "", @@ -7189,7 +7189,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -7204,7 +7204,7 @@ exports.locals = { exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/media-2/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/media-2/file.css", " ", "", @@ -8472,7 +8472,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -8486,7 +8486,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-3/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-3/file.css", " ", "", @@ -8507,7 +8507,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -8522,7 +8522,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-3/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-3/file.css", " ", "", @@ -8543,7 +8543,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -8557,7 +8557,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-3/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-3/file.css", " ", "", @@ -8578,7 +8578,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -8593,7 +8593,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-3/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-3/file.css", " ", "", @@ -8614,7 +8614,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -8629,7 +8629,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-3/file.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-3/file.css", " ", "", @@ -8676,8 +8676,8 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -8693,13 +8693,13 @@ exports.locals = { exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-4/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-4/file1.css", " ", "", ], Array [ - "../../src/index.js?!./modules/tests-cases/values-4/file2.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-4/file2.css", " ", "", @@ -8720,8 +8720,8 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -8738,13 +8738,13 @@ exports.locals = { exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-4/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-4/file1.css", " ", "", ], Array [ - "../../src/index.js?!./modules/tests-cases/values-4/file2.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-4/file2.css", " ", "", @@ -8765,8 +8765,8 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -8782,13 +8782,13 @@ exports.locals = { exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-4/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-4/file1.css", " ", "", ], Array [ - "../../src/index.js?!./modules/tests-cases/values-4/file2.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-4/file2.css", " ", "", @@ -8809,8 +8809,8 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -8827,13 +8827,13 @@ exports.locals = { exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-4/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-4/file1.css", " ", "", ], Array [ - "../../src/index.js?!./modules/tests-cases/values-4/file2.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-4/file2.css", " ", "", @@ -8854,8 +8854,8 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??ref--4!./file2.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); @@ -8872,13 +8872,13 @@ exports.locals = { exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-4/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-4/file1.css", " ", "", ], Array [ - "../../src/index.js?!./modules/tests-cases/values-4/file2.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-4/file2.css", " ", "", @@ -8925,7 +8925,7 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -8940,7 +8940,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-5/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-5/file1.css", " ", "", @@ -8961,7 +8961,7 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -8977,7 +8977,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-5/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-5/file1.css", " ", "", @@ -8998,7 +8998,7 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9013,7 +9013,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-5/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-5/file1.css", " ", "", @@ -9034,7 +9034,7 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9050,7 +9050,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-5/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-5/file1.css", " ", "", @@ -9071,7 +9071,7 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9087,7 +9087,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-5/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-5/file1.css", " ", "", @@ -9134,7 +9134,7 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9149,7 +9149,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-6/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-6/file1.css", " ", "", @@ -9170,7 +9170,7 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9186,7 +9186,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-6/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-6/file1.css", " ", "", @@ -9207,7 +9207,7 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9222,7 +9222,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-6/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-6/file1.css", " ", "", @@ -9243,7 +9243,7 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9259,7 +9259,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-6/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-6/file1.css", " ", "", @@ -9280,7 +9280,7 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9296,7 +9296,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-6/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-6/file1.css", " ", "", @@ -9343,7 +9343,7 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9358,7 +9358,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-7/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-7/file1.css", " ", "", @@ -9379,7 +9379,7 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9395,7 +9395,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-7/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-7/file1.css", " ", "", @@ -9416,7 +9416,7 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9431,7 +9431,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-7/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-7/file1.css", " ", "", @@ -9452,7 +9452,7 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9468,7 +9468,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-7/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-7/file1.css", " ", "", @@ -9489,7 +9489,7 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??ref--4!./file1.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module @@ -9505,7 +9505,7 @@ exports.locals = { exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`true)\`: result 1`] = ` Array [ Array [ - "../../src/index.js?!./modules/tests-cases/values-7/file1.css", + "../../src/index.js?[ident]!./modules/tests-cases/values-7/file1.css", " ", "", diff --git a/test/__snapshots__/onlyLocals-option.test.js.snap b/test/__snapshots__/onlyLocals-option.test.js.snap index 878d0d39..85a5a955 100644 --- a/test/__snapshots__/onlyLocals-option.test.js.snap +++ b/test/__snapshots__/onlyLocals-option.test.js.snap @@ -4,13 +4,13 @@ exports[`"onlyLocals" option should work: errors 1`] = `Array []`; exports[`"onlyLocals" option should work: module 1`] = ` "// Imports -var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??ref--4!./values.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??ref--4!./something.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_2___ = require(\\"-!../../../../src/index.js??ref--4!./imported-simple.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_3___ = require(\\"-!../../../../src/index.js??ref--4!./relative.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_4___ = require(\\"-!../../../../src/index.js??ref--4!./top-relative.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_5___ = require(\\"-!../../../../src/index.js??ref--4!../issue-861/node_modules/package/style.css\\"); -var ___CSS_LOADER_ICSS_IMPORT_6___ = require(\\"-!../../../../src/index.js??ref--4!aliasesComposes/alias.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./values.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??[ident]!./something.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_2___ = require(\\"-!../../../../src/index.js??[ident]!./imported-simple.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_3___ = require(\\"-!../../../../src/index.js??[ident]!./relative.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_4___ = require(\\"-!../../../../src/index.js??[ident]!./top-relative.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_5___ = require(\\"-!../../../../src/index.js??[ident]!../issue-861/node_modules/package/style.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_6___ = require(\\"-!../../../../src/index.js??[ident]!aliasesComposes/alias.css\\"); // Exports module.exports = { \\"v-def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___[\\"v-def\\"] + \\"\\", diff --git a/test/__snapshots__/url-option.test.js.snap b/test/__snapshots__/url-option.test.js.snap index 16a57fab..8cd1fb6c 100644 --- a/test/__snapshots__/url-option.test.js.snap +++ b/test/__snapshots__/url-option.test.js.snap @@ -5,7 +5,7 @@ exports[`"url" option should work when not specified: errors 1`] = `Array []`; exports[`"url" option should work when not specified: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"package/img.png\\"); @@ -81,7 +81,7 @@ exports.push([module.id, \\".class {\\\\n background: url(\\" + ___CSS_LOADER_U exports[`"url" option should work when not specified: result 1`] = ` Array [ Array [ - "../../src/index.js?!./url/imported.css", + "../../src/index.js?[ident]!./url/imported.css", ".bar { background: url(/webpack/public/path/img-from-imported.png); } @@ -507,7 +507,7 @@ exports[`"url" option should work with a value equal to "Function": errors 1`] = exports[`"url" option should work with a value equal to "Function": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./font.woff\\"); var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./font.woff2\\"); @@ -554,7 +554,7 @@ exports.push([module.id, \\".class {\\\\n background: url('./img.png');\\\\n}\\ exports[`"url" option should work with a value equal to "Function": result 1`] = ` Array [ Array [ - "../../src/index.js?!./url/imported.css", + "../../src/index.js?[ident]!./url/imported.css", ".bar { background: url(/webpack/public/path/img-from-imported.png); } @@ -985,7 +985,7 @@ exports[`"url" option should work with a value equal to "false": errors 1`] = `A exports[`"url" option should work with a value equal to "false": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module @@ -996,7 +996,7 @@ exports.push([module.id, \\".class {\\\\n background: url('./img.png');\\\\n}\\ exports[`"url" option should work with a value equal to "false": result 1`] = ` Array [ Array [ - "../../src/index.js?!./url/imported.css", + "../../src/index.js?[ident]!./url/imported.css", ".bar { background: url('./img-from-imported.png'); } @@ -1361,7 +1361,7 @@ exports[`"url" option should work with a value equal to "true": errors 1`] = `Ar exports[`"url" option should work with a value equal to "true": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??ref--4!./imported.css\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"package/img.png\\"); @@ -1437,7 +1437,7 @@ exports.push([module.id, \\".class {\\\\n background: url(\\" + ___CSS_LOADER_U exports[`"url" option should work with a value equal to "true": result 1`] = ` Array [ Array [ - "../../src/index.js?!./url/imported.css", + "../../src/index.js?[ident]!./url/imported.css", ".bar { background: url(/webpack/public/path/img-from-imported.png); } diff --git a/test/helpers/getCompiler.js b/test/helpers/getCompiler.js index 13eb2bd5..25b0490e 100644 --- a/test/helpers/getCompiler.js +++ b/test/helpers/getCompiler.js @@ -19,8 +19,12 @@ export default (fixture, loaderOptions = {}, config = {}) => { rules: [ { test: /\.css$/i, - loader: path.resolve(__dirname, '../../src'), - options: loaderOptions || {}, + use: [ + { + loader: path.resolve(__dirname, '../../src'), + options: loaderOptions || {}, + }, + ], }, { test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, diff --git a/test/helpers/getExecutedCode.js b/test/helpers/getExecutedCode.js new file mode 100644 index 00000000..d2d0b24d --- /dev/null +++ b/test/helpers/getExecutedCode.js @@ -0,0 +1,17 @@ +import { execute, readAsset } from './index'; + +export default (asset, compiler, stats) => { + let executed = execute(readAsset(asset, compiler, stats)); + + if (Array.isArray(executed)) { + executed = executed.map((module) => { + // Todo remove after drop webpack@4 + // eslint-disable-next-line no-param-reassign + module[0] = module[0].replace(/\?.*!/g, '?[ident]!'); + + return module; + }); + } + + return executed; +}; diff --git a/test/helpers/getModuleSource.js b/test/helpers/getModuleSource.js index fd36a3fc..fd60583b 100644 --- a/test/helpers/getModuleSource.js +++ b/test/helpers/getModuleSource.js @@ -1,6 +1,10 @@ export default (id, stats) => { const { modules } = stats.toJson({ source: true }); const module = modules.find((m) => m.id === id); + let { source } = module; - return module.source; + // Todo remove after drop webpack@4 support + source = source.replace(/\?\?.*!/g, '??[ident]!'); + + return source; }; diff --git a/test/helpers/index.js b/test/helpers/index.js index 0ec62aed..1dbb72f0 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -2,6 +2,7 @@ import compile from './compile'; import execute from './execute'; import getCompiler from './getCompiler'; import getErrors from './getErrors'; +import getExecutedCode from './getExecutedCode'; import getModuleSource from './getModuleSource'; import getWarnings from './getWarnings'; import normalizeErrors from './normalizeErrors'; @@ -13,6 +14,7 @@ export { execute, getCompiler, getErrors, + getExecutedCode, getModuleSource, getWarnings, normalizeErrors, diff --git a/test/icss.test.js b/test/icss.test.js index ae676b40..97a30650 100644 --- a/test/icss.test.js +++ b/test/icss.test.js @@ -3,12 +3,11 @@ import fs from 'fs'; import { compile, - execute, getCompiler, getErrors, + getExecutedCode, getModuleSource, getWarnings, - readAsset, } from './helpers/index'; const testCasesPath = path.join(__dirname, 'fixtures/icss/tests-cases'); @@ -24,7 +23,7 @@ describe('ICSS', () => { getModuleSource(`./icss/tests-cases/${name}/source.css`, stats) ).toMatchSnapshot('module'); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); diff --git a/test/import-option.test.js b/test/import-option.test.js index 1d85906e..74e52e7f 100644 --- a/test/import-option.test.js +++ b/test/import-option.test.js @@ -1,11 +1,10 @@ import { compile, - execute, getCompiler, getErrors, + getExecutedCode, getModuleSource, getWarnings, - readAsset, } from './helpers/index'; describe('"import" option', () => { @@ -16,9 +15,9 @@ describe('"import" option', () => { expect(getModuleSource('./import/import.css', stats)).toMatchSnapshot( 'module' ); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -30,9 +29,9 @@ describe('"import" option', () => { expect(getModuleSource('./import/import.css', stats)).toMatchSnapshot( 'module' ); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -44,9 +43,9 @@ describe('"import" option', () => { expect(getModuleSource('./import/import.css', stats)).toMatchSnapshot( 'module' ); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -69,9 +68,9 @@ describe('"import" option', () => { expect(getModuleSource('./import/import.css', stats)).toMatchSnapshot( 'module' ); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -83,9 +82,9 @@ describe('"import" option', () => { expect(getModuleSource('./import/order.css', stats)).toMatchSnapshot( 'module' ); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); diff --git a/test/importLoaders-option.test.js b/test/importLoaders-option.test.js index 63eb2bcf..96a2929a 100644 --- a/test/importLoaders-option.test.js +++ b/test/importLoaders-option.test.js @@ -4,12 +4,11 @@ import postcssPresetEnv from 'postcss-preset-env'; import { compile, - execute, getCompiler, getErrors, + getExecutedCode, getModuleSource, getWarnings, - readAsset, } from './helpers/index'; describe('"importLoaders" option', () => { @@ -40,9 +39,9 @@ describe('"importLoaders" option', () => { expect( getModuleSource('./nested-import/source.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -57,7 +56,7 @@ describe('"importLoaders" option', () => { rules: [ { test: /\.css$/i, - rules: [ + use: [ { loader: path.resolve(__dirname, '../src'), options: { importLoaders: 0 }, @@ -77,9 +76,9 @@ describe('"importLoaders" option', () => { expect( getModuleSource('./nested-import/source.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -91,9 +90,9 @@ describe('"importLoaders" option', () => { expect( getModuleSource('./nested-import/source.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -108,7 +107,7 @@ describe('"importLoaders" option', () => { rules: [ { test: /\.css$/i, - rules: [ + use: [ { loader: path.resolve(__dirname, '../src'), options: { importLoaders: 1 }, @@ -128,9 +127,9 @@ describe('"importLoaders" option', () => { expect( getModuleSource('./nested-import/source.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -145,7 +144,7 @@ describe('"importLoaders" option', () => { rules: [ { test: /\.css$/i, - rules: [ + use: [ { loader: path.resolve(__dirname, '../src'), options: { importLoaders: 2 }, @@ -165,9 +164,9 @@ describe('"importLoaders" option', () => { expect( getModuleSource('./nested-import/source.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); diff --git a/test/loader.test.js b/test/loader.test.js index 1ebc0e3d..40af0f9b 100644 --- a/test/loader.test.js +++ b/test/loader.test.js @@ -4,12 +4,11 @@ import postcssPresetEnv from 'postcss-preset-env'; import { compile, - execute, getCompiler, getErrors, + getExecutedCode, getModuleSource, getWarnings, - readAsset, } from './helpers/index'; describe('loader', () => { @@ -18,9 +17,9 @@ describe('loader', () => { const stats = await compile(compiler); expect(getModuleSource('./basic.css', stats)).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -30,9 +29,9 @@ describe('loader', () => { const stats = await compile(compiler); expect(getModuleSource('./empty.css', stats)).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -42,9 +41,9 @@ describe('loader', () => { const stats = await compile(compiler); expect(getModuleSource('./basic.css', stats)).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -112,9 +111,9 @@ describe('loader', () => { expect( getModuleSource('./postcss-present-env/source.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -148,9 +147,9 @@ describe('loader', () => { expect(getModuleSource('./scss/source.scss', stats)).toMatchSnapshot( 'module' ); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -178,7 +177,12 @@ describe('loader', () => { ); const stats = await compile(compiler); - expect(stats.compilation.modules.length).toBe(6); + if (stats.compilation.modules.size) { + expect(stats.compilation.modules.size).toBe(11); + } else { + expect(stats.compilation.modules.length).toBe(6); + } + expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -206,7 +210,12 @@ describe('loader', () => { ); const stats = await compile(compiler); - expect(stats.compilation.modules.length).toBe(6); + if (stats.compilation.modules.size) { + expect(stats.compilation.modules.size).toBe(10); + } else { + expect(stats.compilation.modules.length).toBe(6); + } + expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); diff --git a/test/localsConvention-option.test.js b/test/localsConvention-option.test.js index 2cb00853..ad62de97 100644 --- a/test/localsConvention-option.test.js +++ b/test/localsConvention-option.test.js @@ -1,11 +1,10 @@ import { compile, - execute, getCompiler, getErrors, + getExecutedCode, getModuleSource, getWarnings, - readAsset, } from './helpers/index'; describe('"localsConvention" option', () => { @@ -21,9 +20,9 @@ describe('"localsConvention" option', () => { expect( getModuleSource('./modules/localsConvention/localsConvention.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -41,9 +40,9 @@ describe('"localsConvention" option', () => { expect( getModuleSource('./modules/localsConvention/localsConvention.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -61,9 +60,9 @@ describe('"localsConvention" option', () => { expect( getModuleSource('./modules/localsConvention/localsConvention.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -81,9 +80,9 @@ describe('"localsConvention" option', () => { expect( getModuleSource('./modules/localsConvention/localsConvention.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -101,9 +100,9 @@ describe('"localsConvention" option', () => { expect( getModuleSource('./modules/localsConvention/localsConvention.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -121,9 +120,9 @@ describe('"localsConvention" option', () => { expect( getModuleSource('./modules/localsConvention/localsConvention.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); diff --git a/test/modules-option.test.js b/test/modules-option.test.js index 6ce59a41..d16e5927 100644 --- a/test/modules-option.test.js +++ b/test/modules-option.test.js @@ -3,12 +3,11 @@ import fs from 'fs'; import { compile, - execute, getCompiler, getErrors, + getExecutedCode, getModuleSource, getWarnings, - readAsset, } from './helpers/index'; const testCasesPath = path.join(__dirname, 'fixtures/modules/tests-cases'); @@ -42,7 +41,7 @@ describe('"modules" option', () => { expect(getModuleSource(moduleId, stats)).toMatchSnapshot('module'); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -57,9 +56,9 @@ describe('"modules" option', () => { expect(getModuleSource('./modules/pure/pure.css', stats)).toMatchSnapshot( 'module' ); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -73,9 +72,9 @@ describe('"modules" option', () => { expect(getModuleSource('./modules/pure/pure.css', stats)).toMatchSnapshot( 'module' ); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -89,9 +88,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -108,9 +107,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -127,9 +126,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -146,9 +145,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -165,9 +164,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -181,9 +180,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -197,9 +196,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -213,9 +212,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -229,9 +228,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -263,9 +262,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -287,9 +286,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -306,9 +305,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/localIdentName/localIdentName.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -322,9 +321,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/composes/composes.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -365,9 +364,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/issue-286/source.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -381,7 +380,7 @@ describe('"modules" option', () => { rules: [ { test: /\.s[ca]ss$/i, - rules: [ + use: [ { loader: path.resolve(__dirname, '../src'), options: { @@ -411,9 +410,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/issue-636/source.scss', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -433,9 +432,9 @@ describe('"modules" option', () => { stats ) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -451,9 +450,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/issue-966/button.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -471,9 +470,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/issue-967/path-placeholder.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -495,9 +494,9 @@ describe('"modules" option', () => { stats ) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -514,9 +513,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/issue-995/issue-995.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -530,9 +529,9 @@ describe('"modules" option', () => { expect( getModuleSource('./modules/composes/composes-duplicate.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -544,9 +543,9 @@ describe('"modules" option', () => { expect(getModuleSource('./modules/order/index.css', stats)).toMatchSnapshot( 'module' ); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); diff --git a/test/onlyLocals-option.test.js b/test/onlyLocals-option.test.js index 27896192..fd0f0b0d 100644 --- a/test/onlyLocals-option.test.js +++ b/test/onlyLocals-option.test.js @@ -1,11 +1,10 @@ import { compile, - execute, getCompiler, getErrors, + getExecutedCode, getModuleSource, getWarnings, - readAsset, } from './helpers/index'; describe('"onlyLocals" option', () => { @@ -19,9 +18,9 @@ describe('"onlyLocals" option', () => { expect( getModuleSource('./modules/composes/composes.css', stats) ).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); diff --git a/test/sourceMap-option.test.js b/test/sourceMap-option.test.js index 9be0a262..e5468cc8 100644 --- a/test/sourceMap-option.test.js +++ b/test/sourceMap-option.test.js @@ -4,12 +4,11 @@ import postcssPresetEnv from 'postcss-preset-env'; import { compile, - execute, getCompiler, getErrors, + getExecutedCode, getModuleSource, getWarnings, - readAsset, } from './helpers/index'; describe('"sourceMap" option', () => { @@ -22,7 +21,7 @@ describe('"sourceMap" option', () => { 'module' ); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -40,7 +39,7 @@ describe('"sourceMap" option', () => { 'module' ); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -81,7 +80,7 @@ describe('"sourceMap" option', () => { 'module' ); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -123,7 +122,7 @@ describe('"sourceMap" option', () => { 'module' ); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -172,7 +171,7 @@ describe('"sourceMap" option', () => { 'module' ); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -213,7 +212,7 @@ describe('"sourceMap" option', () => { getModuleSource('./source-map/basic.postcss.css', stats) ).toMatchSnapshot('module'); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -253,7 +252,9 @@ describe('"sourceMap" option', () => { // const stats = await compile(compiler); // // expect(getModuleSource('./source-map/basic.scss', stats)).toMatchSnapshot('module'); - // expect(execute(readAsset('main.bundle.js', compiler, stats))).toMatchSnapshot('result'); + // expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + // 'result' + // ); // expect(getWarnings(stats)).toMatchSnapshot('warnings'); // expect(getErrors(stats)).toMatchSnapshot('errors'); // }); @@ -270,7 +271,7 @@ describe('"sourceMap" option', () => { 'module' ); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -311,7 +312,7 @@ describe('"sourceMap" option', () => { 'module' ); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -353,7 +354,7 @@ describe('"sourceMap" option', () => { 'module' ); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -402,7 +403,7 @@ describe('"sourceMap" option', () => { 'module' ); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -442,7 +443,7 @@ describe('"sourceMap" option', () => { getModuleSource('./source-map/basic.postcss.css', stats) ).toMatchSnapshot('module'); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); @@ -484,7 +485,7 @@ describe('"sourceMap" option', () => { 'module' ); expect( - execute(readAsset('main.bundle.js', compiler, stats)) + getExecutedCode('main.bundle.js', compiler, stats) ).toMatchSnapshot('result'); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); diff --git a/test/url-option.test.js b/test/url-option.test.js index 59e34c1d..258ce6b7 100644 --- a/test/url-option.test.js +++ b/test/url-option.test.js @@ -1,11 +1,10 @@ import { compile, - execute, getCompiler, getErrors, + getExecutedCode, getModuleSource, getWarnings, - readAsset, } from './helpers/index'; describe('"url" option', () => { @@ -14,9 +13,9 @@ describe('"url" option', () => { const stats = await compile(compiler); expect(getModuleSource('./url/url.css', stats)).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -26,9 +25,9 @@ describe('"url" option', () => { const stats = await compile(compiler); expect(getModuleSource('./url/url.css', stats)).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -38,9 +37,9 @@ describe('"url" option', () => { const stats = await compile(compiler); expect(getModuleSource('./url/url.css', stats)).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); @@ -61,9 +60,9 @@ describe('"url" option', () => { const stats = await compile(compiler); expect(getModuleSource('./url/url.css', stats)).toMatchSnapshot('module'); - expect( - execute(readAsset('main.bundle.js', compiler, stats)) - ).toMatchSnapshot('result'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); From 23bc1e95555e1b88b0aab56ea496412b24911c29 Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Mon, 16 Dec 2019 20:15:48 +0300 Subject: [PATCH 5/9] refactor: code --- src/utils.js | 115 +- test/__snapshots__/icss.test.js.snap | 56 +- test/__snapshots__/import-option.test.js.snap | 20 +- .../importLoaders-option.test.js.snap | 20 +- test/__snapshots__/loader.test.js.snap | 20 +- .../localsConvention-option.test.js.snap | 36 +- .../__snapshots__/modules-option.test.js.snap | 1228 +++++++++++------ .../onlyLocals-option.test.js.snap | 3 +- .../sourceMap-option.test.js.snap | 48 +- test/__snapshots__/url-option.test.js.snap | 16 +- 10 files changed, 1055 insertions(+), 507 deletions(-) diff --git a/src/utils.js b/src/utils.js index 010183ef..4fc8efe3 100644 --- a/src/utils.js +++ b/src/utils.js @@ -221,9 +221,7 @@ function getImportCode( require.resolve('./runtime/api') )});` ); - codeItems.push( - `exports = module.exports = ___CSS_LOADER_API_IMPORT___(${sourceMap});` - ); + codeItems.push(`exports = ___CSS_LOADER_API_IMPORT___(${sourceMap});`); } imports.forEach((item) => { @@ -384,71 +382,82 @@ function getExportCode( replacers, localsConvention ) { - if (exports.length === 0) { - return ''; - } + const exportItems = []; + let exportLocalsCode; - const items = []; - const addExportedItem = (name, value) => { - items.push(`\t${JSON.stringify(name)}: ${JSON.stringify(value)}`); - }; + if (exports.length > 0) { + const exportLocals = []; + const addExportedLocal = (name, value) => { + exportLocals.push(`\t${JSON.stringify(name)}: ${JSON.stringify(value)}`); + }; - exports.forEach((item) => { - const { name, value } = item; + exports.forEach((item) => { + const { name, value } = item; - switch (localsConvention) { - case 'camelCase': { - addExportedItem(name, value); + switch (localsConvention) { + case 'camelCase': { + addExportedLocal(name, value); - const modifiedName = camelCase(name); + const modifiedName = camelCase(name); - if (modifiedName !== name) { - addExportedItem(modifiedName, value); + if (modifiedName !== name) { + addExportedLocal(modifiedName, value); + } + break; } - break; - } - case 'camelCaseOnly': { - addExportedItem(camelCase(name), value); - break; - } - case 'dashes': { - addExportedItem(name, value); + case 'camelCaseOnly': { + addExportedLocal(camelCase(name), value); + break; + } + case 'dashes': { + addExportedLocal(name, value); - const modifiedName = dashesCamelCase(name); + const modifiedName = dashesCamelCase(name); - if (modifiedName !== name) { - addExportedItem(modifiedName, value); + if (modifiedName !== name) { + addExportedLocal(modifiedName, value); + } + break; } - break; - } - case 'dashesOnly': { - addExportedItem(dashesCamelCase(name), value); - break; + case 'dashesOnly': { + addExportedLocal(dashesCamelCase(name), value); + break; + } + case 'asIs': + default: + addExportedLocal(name, value); + break; } - case 'asIs': - default: - addExportedItem(name, value); - break; - } - }); + }); - let exportCode = `// Exports\n${ - exportType === 'locals' ? 'module.exports' : 'exports.locals' - } = {\n${items.join(',\n')}\n};`; + exportLocalsCode = exportLocals.join(',\n'); - replacers.forEach((replacer) => { - if (replacer.type === 'icss-import') { - const { replacementName, importName, localName } = replacer; + replacers.forEach((replacer) => { + if (replacer.type === 'icss-import') { + const { replacementName, importName, localName } = replacer; - exportCode = exportCode.replace(new RegExp(replacementName, 'g'), () => - exportType === 'locals' - ? `" + ${importName}[${JSON.stringify(localName)}] + "` - : `" + ${importName}.locals[${JSON.stringify(localName)}] + "` - ); + exportLocalsCode = exportLocalsCode.replace( + new RegExp(replacementName, 'g'), + () => + exportType === 'locals' + ? `" + ${importName}[${JSON.stringify(localName)}] + "` + : `" + ${importName}.locals[${JSON.stringify(localName)}] + "` + ); + } + }); + } + + if (exportType === 'locals') { + exportItems.push(`module.exports = {\n${exportLocalsCode}\n};`); + } else { + if (exportLocalsCode) { + exportItems.push(`exports.locals = {\n${exportLocalsCode}\n};`); } - }); - return exportCode; + exportItems.push('module.exports = exports;'); + } + + return `// Exports\n${exportItems.join('\n')}\n`; } export { diff --git a/test/__snapshots__/icss.test.js.snap b/test/__snapshots__/icss.test.js.snap index bb4dbf57..9956ec3e 100644 --- a/test/__snapshots__/icss.test.js.snap +++ b/test/__snapshots__/icss.test.js.snap @@ -5,13 +5,15 @@ exports[`ICSS show work with the case "duplicate-export": errors 1`] = `Array [] exports[`ICSS show work with the case "duplicate-export": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"_test\\": \\"_right_value\\" -};" +}; +module.exports = exports; +" `; exports[`ICSS show work with the case "duplicate-export": result 1`] = ` @@ -32,13 +34,15 @@ exports[`ICSS show work with the case "duplicate-export-in-multiple-export": err exports[`ICSS show work with the case "duplicate-export-in-multiple-export": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"_test\\": \\"_right_value\\" -};" +}; +module.exports = exports; +" `; exports[`ICSS show work with the case "duplicate-export-in-multiple-export": result 1`] = ` @@ -59,9 +63,11 @@ exports[`ICSS show work with the case "empty-export": errors 1`] = `Array []`; exports[`ICSS show work with the case "empty-export": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -83,9 +89,11 @@ exports[`ICSS show work with the case "empty-import": errors 1`] = `Array []`; exports[`ICSS show work with the case "empty-import": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -107,13 +115,15 @@ exports[`ICSS show work with the case "export": errors 1`] = `Array []`; exports[`ICSS show work with the case "export": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"_test\\": \\"_test\\" -};" +}; +module.exports = exports; +" `; exports[`ICSS show work with the case "export": result 1`] = ` @@ -134,14 +144,16 @@ exports[`ICSS show work with the case "export-reserved-keywords": errors 1`] = ` exports[`ICSS show work with the case "export-reserved-keywords": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"constructor\\": \\"constructor\\", \\"toString\\": \\"toString\\" -};" +}; +module.exports = exports; +" `; exports[`ICSS show work with the case "export-reserved-keywords": result 1`] = ` @@ -163,14 +175,16 @@ exports[`ICSS show work with the case "import": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./vars.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".className {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"primary-color\\"] + \\";\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"primary-color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"primary-color\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`ICSS show work with the case "import": result 1`] = ` @@ -200,7 +214,7 @@ exports[`ICSS show work with the case "import-reserved-keywords": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./vars.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".className {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"primary-color\\"] + \\";\\\\n display: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"secondary-color\\"] + \\";\\\\n}\\\\n\\", \\"\\"]); @@ -208,7 +222,9 @@ exports.push([module.id, \\".className {\\\\n color: \\" + ___CSS_LOADER_ICSS_I exports.locals = { \\"primary-color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"primary-color\\"] + \\"\\", \\"secondary-color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"secondary-color\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`ICSS show work with the case "import-reserved-keywords": result 1`] = ` @@ -238,14 +254,16 @@ exports[`ICSS show work with the case "multiple-export": errors 1`] = `Array []` exports[`ICSS show work with the case "multiple-export": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"_test\\": \\"_test\\", \\"_foo\\": \\"_bar\\" -};" +}; +module.exports = exports; +" `; exports[`ICSS show work with the case "multiple-export": result 1`] = ` @@ -266,7 +284,7 @@ exports[`ICSS show work with the case "multiple-keys-values-in-export": errors 1 exports[`ICSS show work with the case "multiple-keys-values-in-export": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports @@ -276,7 +294,9 @@ exports.locals = { \\"_test2\\": \\"'string'\\", \\"_test3\\": \\"1px 2px 3px\\", \\"_test4\\": \\"1px 2px 3px, 1px 2px 3px\\" -};" +}; +module.exports = exports; +" `; exports[`ICSS show work with the case "multiple-keys-values-in-export": result 1`] = ` diff --git a/test/__snapshots__/import-option.test.js.snap b/test/__snapshots__/import-option.test.js.snap index 4ea197a1..a75336f9 100644 --- a/test/__snapshots__/import-option.test.js.snap +++ b/test/__snapshots__/import-option.test.js.snap @@ -9,7 +9,7 @@ var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ide var ___CSS_LOADER_AT_RULE_IMPORT_1___ = require(\\"-!../../../src/index.js??[ident]!./order-2.css\\"); var ___CSS_LOADER_AT_RULE_IMPORT_2___ = require(\\"-!../../../src/index.js??[ident]!./order-3.css\\"); var ___CSS_LOADER_AT_RULE_IMPORT_3___ = require(\\"-!../../../src/index.js??[ident]!./order-4.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___); @@ -23,6 +23,8 @@ exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); exports.i(___CSS_LOADER_AT_RULE_IMPORT_3___, \\"screen\\"); // Module exports.push([module.id, \\"div {\\\\n width: 100%;\\\\n height: 200px;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -167,7 +169,7 @@ var ___CSS_LOADER_AT_RULE_IMPORT_8___ = require(\\"-!../../../src/index.js??[ide var ___CSS_LOADER_AT_RULE_IMPORT_9___ = require(\\"-!../../../src/index.js??[ident]!./te'st.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___, \\"screen and (orientation:landscape)\\"); exports.i(___CSS_LOADER_AT_RULE_IMPORT_1___, \\"(min-width: 100px)\\"); exports.push([module.id, \\"@import url(http://example.com/style.css);\\"]); @@ -196,6 +198,8 @@ exports.i(___CSS_LOADER_AT_RULE_IMPORT_9___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);\\\\n@import url(test.css)screen and (orientation:landscape);\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\\\n@import './te\\\\\\\\\\\\nst.css';\\\\n@import './te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css';\\\\n@import url('./te\\\\\\\\\\\\nst.css');\\\\n@import url('./te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css');\\\\n@import './test test.css';\\\\n@import url('./test test.css');\\\\n@import './test\\\\\\\\ test.css';\\\\n@import url('./test\\\\\\\\ test.css');\\\\n@import './test%20test.css';\\\\n@import url('./test%20test.css');\\\\n@import './\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import './t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import url(./test\\\\\\\\ test.css);\\\\n@import url(./t\\\\\\\\65st%20test.css);\\\\n@import url('./t\\\\\\\\65st%20test.css');\\\\n@import url(\\\\\\"./t\\\\\\\\65st%20test.css\\\\\\");\\\\n@import \\\\\\"./t\\\\\\\\65st%20test.css\\\\\\";\\\\n@import './t\\\\\\\\65st%20test.css';\\\\n@import url( test.css );\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -530,7 +534,7 @@ var ___CSS_LOADER_AT_RULE_IMPORT_11___ = require(\\"-!../../../src/index.js??[id var ___CSS_LOADER_AT_RULE_IMPORT_12___ = require(\\"-!../../../src/index.js??[ident]!./test test.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); @@ -597,6 +601,8 @@ exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -1172,10 +1178,12 @@ exports[`"import" option should work with a value equal to "false": module 1`] = var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);\\\\n@import url(test.css)screen and (orientation:landscape);\\\\n@import url(test.css) screen and (orientation:landscape);\\\\n@import url(test-media.css) screen and (orientation:landscape);\\\\n@import url(test-other.css) (min-width: 100px);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css#hash);\\\\n@import url(http://example.com/style.css?#hash);\\\\n@import url(http://example.com/style.css?foo=bar#hash);\\\\n@import url(http://example.com/other-style.css) screen and (orientation:landscape);\\\\n@import url(http://example.com/other-style.css) screen and (orientation:landscape);\\\\n@import url(\\\\\\"//example.com/style.css\\\\\\");\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n@import url('query.css?foo=1&bar=1');\\\\n@import url('other-query.css?foo=1&bar=1#hash');\\\\n@import url('other-query.css?foo=1&bar=1#hash') screen and (orientation:landscape);\\\\n@import url('https://fonts.googleapis.com/css?family=Roboto');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto');\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n@import url('./relative.css');\\\\n@import url('../import/top-relative.css');\\\\n@import url(~package/tilde.css);\\\\n@import url(~aliasesImport/alias.css);\\\\n@import url('./url.css');\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@import url(./test.css);\\\\n\\\\n@import './te\\\\\\\\\\\\nst.css';\\\\n@import './te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css';\\\\n@import url('./te\\\\\\\\\\\\nst.css');\\\\n@import url('./te\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\nst.css');\\\\n\\\\n@import \\\\\\"./te'st.css\\\\\\";\\\\n@import url(\\\\\\"./te'st.css\\\\\\");\\\\n@import './te\\\\\\\\'st.css';\\\\n@import url('./te\\\\\\\\'st.css');\\\\n@import './test test.css';\\\\n@import url('./test test.css');\\\\n@import './test\\\\\\\\ test.css';\\\\n@import url('./test\\\\\\\\ test.css');\\\\n@import './test%20test.css';\\\\n@import url('./test%20test.css');\\\\n@import './\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./\\\\\\\\74\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import './t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css';\\\\n@import url('./t\\\\\\\\65\\\\\\\\73\\\\\\\\74.css');\\\\n@import url(./test\\\\\\\\ test.css);\\\\n@import url(./t\\\\\\\\65st%20test.css);\\\\n@import url('./t\\\\\\\\65st%20test.css');\\\\n@import url(\\\\\\"./t\\\\\\\\65st%20test.css\\\\\\");\\\\n@import \\\\\\"./t\\\\\\\\65st%20test.css\\\\\\";\\\\n@import './t\\\\\\\\65st%20test.css';\\\\n@import url( test.css );\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -1315,7 +1323,7 @@ var ___CSS_LOADER_AT_RULE_IMPORT_11___ = require(\\"-!../../../src/index.js??[id var ___CSS_LOADER_AT_RULE_IMPORT_12___ = require(\\"-!../../../src/index.js??[ident]!./test test.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); @@ -1382,6 +1390,8 @@ exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\" \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; diff --git a/test/__snapshots__/importLoaders-option.test.js.snap b/test/__snapshots__/importLoaders-option.test.js.snap index 2e573e56..ec9a1d38 100644 --- a/test/__snapshots__/importLoaders-option.test.js.snap +++ b/test/__snapshots__/importLoaders-option.test.js.snap @@ -6,10 +6,12 @@ exports[`"importLoaders" option should work when not specified: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js!./imported.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255, 0.9);\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -44,10 +46,12 @@ exports[`"importLoaders" option should work with a value equal to "0" (\`postcss "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255, 0.9);\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -82,10 +86,12 @@ exports[`"importLoaders" option should work with a value equal to "1" ("postcss- "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255, 0.9);\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -120,10 +126,12 @@ exports[`"importLoaders" option should work with a value equal to "1" (no loader "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgb(0 0 100% / 90%);\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -158,10 +166,12 @@ exports[`"importLoaders" option should work with a value equal to "2" ("postcss- "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".foo {\\\\n color: red;\\\\n color: rgba(0, 0, 255, 0.9);\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; diff --git a/test/__snapshots__/loader.test.js.snap b/test/__snapshots__/loader.test.js.snap index 005a280e..dd9c88b7 100644 --- a/test/__snapshots__/loader.test.js.snap +++ b/test/__snapshots__/loader.test.js.snap @@ -8,11 +8,13 @@ var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img1x.png\\"); var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img2x.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); // Module exports.push([module.id, \\":root {\\\\n --fontSize: 1rem;\\\\n --mainColor: rgba(18,52,86,0.47059);\\\\n --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n overflow-x: hidden;\\\\n overflow-y: auto;\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n body {\\\\n color: rgba(18,52,86,0.47059);\\\\n color: var(--mainColor);\\\\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n font-size: 1rem;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(1rem * 1.5);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n word-wrap: break-word;\\\\n padding-left: calc(1rem / 2 + 1px);\\\\n padding-right: calc(1rem / 2 + 1px);\\\\n padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n margin-top: 0;\\\\n margin-bottom: 0;\\\\n}\\\\n\\\\nmain.hero, .hero.main {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\\\\n\\\\nmain.hero, .hero.main {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n}\\\\n\\\\nmain.hero, .hero.main {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") 2x);\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") 2x);\\\\n}\\\\n\\\\na {\\\\n color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n color: #639;\\\\n }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -118,9 +120,11 @@ exports[`loader should work with "sass-loader": errors 1`] = `Array []`; exports[`loader should work with "sass-loader": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -152,9 +156,11 @@ exports[`loader should work with empty css: errors 1`] = `Array []`; exports[`loader should work with empty css: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -178,11 +184,13 @@ var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??[ident]!./imported.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -349,11 +357,13 @@ var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??[ident]!./imported.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; diff --git a/test/__snapshots__/localsConvention-option.test.js.snap b/test/__snapshots__/localsConvention-option.test.js.snap index a4589ee2..637ddd50 100644 --- a/test/__snapshots__/localsConvention-option.test.js.snap +++ b/test/__snapshots__/localsConvention-option.test.js.snap @@ -5,7 +5,7 @@ exports[`"localsConvention" option should work when not specified: errors 1`] = exports[`"localsConvention" option should work when not specified: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -15,7 +15,9 @@ exports.locals = { \\"btn-info_is-disabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", \\"btn--info_is-disabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" -};" +}; +module.exports = exports; +" `; exports[`"localsConvention" option should work when not specified: result 1`] = ` @@ -50,7 +52,7 @@ exports[`"localsConvention" option should work with a value equal to "asIs": err exports[`"localsConvention" option should work with a value equal to "asIs": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -60,7 +62,9 @@ exports.locals = { \\"btn-info_is-disabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", \\"btn--info_is-disabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" -};" +}; +module.exports = exports; +" `; exports[`"localsConvention" option should work with a value equal to "asIs": result 1`] = ` @@ -95,7 +99,7 @@ exports[`"localsConvention" option should work with a value equal to "camelCase" exports[`"localsConvention" option should work with a value equal to "camelCase": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -108,7 +112,9 @@ exports.locals = { \\"btn--info_is-disabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", \\"btnInfoIsDisabled1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" -};" +}; +module.exports = exports; +" `; exports[`"localsConvention" option should work with a value equal to "camelCase": result 1`] = ` @@ -143,7 +149,7 @@ exports[`"localsConvention" option should work with a value equal to "camelCaseO exports[`"localsConvention" option should work with a value equal to "camelCaseOnly": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -153,7 +159,9 @@ exports.locals = { \\"btnInfoIsDisabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", \\"btnInfoIsDisabled1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" -};" +}; +module.exports = exports; +" `; exports[`"localsConvention" option should work with a value equal to "camelCaseOnly": result 1`] = ` @@ -188,7 +196,7 @@ exports[`"localsConvention" option should work with a value equal to "dashes": e exports[`"localsConvention" option should work with a value equal to "dashes": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -201,7 +209,9 @@ exports.locals = { \\"btn--info_is-disabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", \\"btnInfo_isDisabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" -};" +}; +module.exports = exports; +" `; exports[`"localsConvention" option should work with a value equal to "dashes": result 1`] = ` @@ -236,7 +246,7 @@ exports[`"localsConvention" option should work with a value equal to "dashesOnly exports[`"localsConvention" option should work with a value equal to "dashesOnly": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".erBXHZCN_thRYfCnk-aH8 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2YsQE-S0o0NRXfC6XNApz2 {\\\\n color: blue;\\\\n}\\\\n\\\\n._3gGBcJHZU3seQVP5aq7Ksq {\\\\n color: red;\\\\n}\\\\n\\\\na {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -246,7 +256,9 @@ exports.locals = { \\"btnInfo_isDisabled\\": \\"erBXHZCN_thRYfCnk-aH8\\", \\"btnInfo_isDisabled_1\\": \\"_2YsQE-S0o0NRXfC6XNApz2\\", \\"simple\\": \\"_3gGBcJHZU3seQVP5aq7Ksq\\" -};" +}; +module.exports = exports; +" `; exports[`"localsConvention" option should work with a value equal to "dashesOnly": result 1`] = ` diff --git a/test/__snapshots__/modules-option.test.js.snap b/test/__snapshots__/modules-option.test.js.snap index baf5825a..3bedff47 100644 --- a/test/__snapshots__/modules-option.test.js.snap +++ b/test/__snapshots__/modules-option.test.js.snap @@ -6,14 +6,16 @@ exports[`"modules" option issue #286: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"./dep.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".b--main { }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"main\\": \\"b--main \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"red\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option issue #286: result 1`] = ` @@ -41,14 +43,16 @@ exports[`"modules" option issue #636: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./foo.scss\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".prefix-bar {\\\\n}\\", \\"\\"]); // Exports exports.locals = { \\"bar\\": \\"prefix-bar \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"foo\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option issue #636: result 1`] = ` @@ -78,7 +82,7 @@ exports[`"modules" option issue #861: module 1`] = ` var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./node_modules/@localpackage/color.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??[ident]!./node_modules/@localpackage/style.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -87,7 +91,9 @@ exports.push([module.id, \\"._2TvhMv03l8C6o3eyE8OUU3 {\\\\n color: \\" + ___CSS exports.locals = { \\"color-grey\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color-grey\\"] + \\"\\", \\"copyright\\": \\"_2TvhMv03l8C6o3eyE8OUU3 \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"type-heading\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option issue #861: result 1`] = ` @@ -136,13 +142,15 @@ exports[`"modules" option issue #966: errors 1`] = `Array []`; exports[`"modules" option issue #966: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".button.hey {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"button\\": \\"button.hey\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option issue #966: result 1`] = ` @@ -165,7 +173,7 @@ exports[`"modules" option issue #967: errors 1`] = `Array []`; exports[`"modules" option issue #967: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".modules-issue-967-path-placeholder__foo__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- {\\\\n color: red;\\\\n}\\\\n\\\\n.modules-issue-967-path-placeholder__foo\\\\\\\\/bar__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- {\\\\n color: blue;\\\\n}\\\\n\\\\n.modules-issue-967-path-placeholder__\\\\\\\\[\\\\\\\\/\\\\\\\\?\\\\\\\\<\\\\\\\\>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\3A \\\\\\\\*\\\\\\\\|\\\\\\\\\\\\\\"\\\\\\\\3A \\\\\\\\]__--sep---sep---sep---sep----sep---sep---sep---sep---sep-- {\\\\n color: yellow;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -173,7 +181,9 @@ exports.locals = { \\"foo\\": \\"modules-issue-967-path-placeholder__foo__--sep---sep---sep---sep----sep---sep---sep---sep---sep--\\", \\"foo/bar\\": \\"modules-issue-967-path-placeholder__foo/bar__--sep---sep---sep---sep----sep---sep---sep---sep---sep--\\", \\"[/?<>\\\\\\\\\\\\\\\\:*|\\\\\\":]\\": \\"modules-issue-967-path-placeholder__[/?<>\\\\\\\\\\\\\\\\:*|\\\\\\":]__--sep---sep---sep---sep----sep---sep---sep---sep---sep--\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option issue #967: result 1`] = ` @@ -204,13 +214,15 @@ exports[`"modules" option issue #980: errors 1`] = `Array []`; exports[`"modules" option issue #980: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".file-with-many-dots-in-name_a_22FL3 {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"a\\": \\"file-with-many-dots-in-name_a_22FL3\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option issue #980: result 1`] = ` @@ -233,7 +245,7 @@ exports[`"modules" option issue #995: errors 1`] = `Array []`; exports[`"modules" option issue #995: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"/* class=\\\\\\"😀\\\\\\" */\\\\n.a {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.a.b {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.a .b {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" */\\\\n.😀 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.😀.😓 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.😀 .😓 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" */\\\\n.\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.\\\\\\\\1F600.\\\\\\\\1F613 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.\\\\\\\\1F600 .\\\\\\\\1F613 {\\\\n color: red;\\\\n}\\\\n\\\\n/* Local */\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" */\\\\n.\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀 😓\\\\\\" */\\\\n.\\\\\\\\1F600.\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n/* class=\\\\\\"😀\\\\\\" > class=\\\\\\"😓\\\\\\" */\\\\n.\\\\\\\\1F600 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 .a .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 .\\\\\\\\1F600 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\ndiv:not(.\\\\\\\\1F600) {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 .b {\\\\n color: red;\\\\n}\\\\n\\\\n.b .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F613 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F613 .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\\\n.\\\\\\\\1F600 > .\\\\\\\\1F600 > .\\\\\\\\1F600 {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -241,7 +253,9 @@ exports.locals = { \\"a\\": \\"😀\\", \\"b\\": \\"😀\\", \\"c\\": \\"😀\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option issue #995: result 1`] = ` @@ -355,7 +369,7 @@ exports[`"modules" option should avoid unnecessary "require": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./imported-simple.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._1UgilPFsYxSK4gX5ZkTYCj {\\\\n color: red;\\\\n}\\\\n\\\\n._3V5dPWs_xG519C1PGI1Njd {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); @@ -363,7 +377,9 @@ exports.push([module.id, \\"._1UgilPFsYxSK4gX5ZkTYCj {\\\\n color: red;\\\\n}\\ exports.locals = { \\"simple-foo\\": \\"_1UgilPFsYxSK4gX5ZkTYCj \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"imported-simple\\"] + \\"\\", \\"simple-bar\\": \\"_3V5dPWs_xG519C1PGI1Njd \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"imported-simple\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should avoid unnecessary "require": result 1`] = ` @@ -400,7 +416,7 @@ exports[`"modules" option should keep order: module 1`] = ` var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./order-1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??[ident]!./order-2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -409,7 +425,9 @@ exports.push([module.id, \\".Wjk4jowq_W5p9UqAWNj8p {\\\\n display: block;\\\\n} exports.locals = { \\"simple\\": \\"Wjk4jowq_W5p9UqAWNj8p \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"order-1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"order-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"order-1-1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"order-2-2\\"] + \\"\\", \\"simple-other\\": \\"_1hTJaGPJyAIYbIwkbYwOGW \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"order-1\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should keep order: result 1`] = ` @@ -460,7 +478,7 @@ exports[`"modules" option should should work with two leading hyphens: errors 1` exports[`"modules" option should should work with two leading hyphens: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._--test {\\\\n background: red;\\\\n}\\\\n\\\\n._--_test {\\\\n background: blue;\\\\n}\\\\n\\\\n._--className {\\\\n background: red;\\\\n}\\\\n\\\\n#_--someId {\\\\n background: green;\\\\n}\\\\n\\\\n._--className ._--subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#_--someId ._--subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n._---a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n._--m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n._--B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n._--\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n._--\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#_--\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#_---a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#_--© {\\\\n color: black;\\\\n}\\\\n\\\\n._--♥ { background: lime; }\\\\n._--© { background: lime; }\\\\n._--“‘’” { background: lime; }\\\\n._--☺☃ { background: lime; }\\\\n._--⌘⌥ { background: lime; }\\\\n._--𝄞♪♩♫♬ { background: lime; }\\\\n._--💩 { background: lime; }\\\\n._--\\\\\\\\? { background: lime; }\\\\n._--\\\\\\\\@ { background: lime; }\\\\n._--\\\\\\\\. { background: lime; }\\\\n._--\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n._--\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n._--\\\\\\\\31 23 { background: lime; }\\\\n._--\\\\\\\\31 a2b3c { background: lime; }\\\\n._--\\\\\\\\ { background: lime; }\\\\n._--\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n._--\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n._--\\\\\\\\# { background: lime; }\\\\n._--\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n._--\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n._--\\\\\\\\_ { background: lime; }\\\\n._--\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n._--\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n._--foo\\\\\\\\.bar { background: lime; }\\\\n._--\\\\\\\\3A hover { background: lime; }\\\\n._--\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n._--\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n._--f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n._--f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n._--f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n._--f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n._--f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n._--f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n._--f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n._--foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._--foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._--foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._--foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -512,7 +530,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"_--foo\\\\\\\\bar\\", \\"foo/bar/baz\\": \\"_--foo/bar/baz\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"_--foo\\\\\\\\bar\\\\\\\\baz\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should should work with two leading hyphens: result 1`] = ` @@ -645,7 +665,7 @@ exports[`"modules" option should should work with two leading underscore: errors exports[`"modules" option should should work with two leading underscore: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".__test {\\\\n background: red;\\\\n}\\\\n\\\\n.___test {\\\\n background: blue;\\\\n}\\\\n\\\\n.__className {\\\\n background: red;\\\\n}\\\\n\\\\n#__someId {\\\\n background: green;\\\\n}\\\\n\\\\n.__className .__subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#__someId .__subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n.__-a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n.__m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.__B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.__\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.__\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#__\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#__-a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#__© {\\\\n color: black;\\\\n}\\\\n\\\\n.__♥ { background: lime; }\\\\n.__© { background: lime; }\\\\n.__“‘’” { background: lime; }\\\\n.__☺☃ { background: lime; }\\\\n.__⌘⌥ { background: lime; }\\\\n.__𝄞♪♩♫♬ { background: lime; }\\\\n.__💩 { background: lime; }\\\\n.__\\\\\\\\? { background: lime; }\\\\n.__\\\\\\\\@ { background: lime; }\\\\n.__\\\\\\\\. { background: lime; }\\\\n.__\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n.__\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n.__\\\\\\\\31 23 { background: lime; }\\\\n.__\\\\\\\\31 a2b3c { background: lime; }\\\\n.__\\\\\\\\ { background: lime; }\\\\n.__\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n.__\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n.__\\\\\\\\# { background: lime; }\\\\n.__\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n.__\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n.__\\\\\\\\_ { background: lime; }\\\\n.__\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n.__\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n.__foo\\\\\\\\.bar { background: lime; }\\\\n.__\\\\\\\\3A hover { background: lime; }\\\\n.__\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n.__\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n.__f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n.__f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n.__f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n.__f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n.__f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n.__f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n.__f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n.__foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.__foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.__foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.__foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -697,7 +717,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"__foo\\\\\\\\bar\\", \\"foo/bar/baz\\": \\"__foo/bar/baz\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"__foo\\\\\\\\bar\\\\\\\\baz\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should should work with two leading underscore: result 1`] = ` @@ -840,7 +862,7 @@ var ___CSS_LOADER_ICSS_IMPORT_6___ = require(\\"-!../../../../src/index.js??[ide var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./test-other.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"../../url/img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); exports.i(___CSS_LOADER_ICSS_IMPORT_2___); @@ -898,7 +920,9 @@ exports.locals = { \\"header\\": \\"_21OP3aGLw7Si4lLuiK3vhf\\", \\"foobarbaz\\": \\"zbowt65f4EBNzWh_uiPv0\\", \\"url\\": \\"_3yApLlXpoidfnd3JfO_WEf\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should support resolving in composes: result 1`] = ` @@ -1089,7 +1113,7 @@ exports[`"modules" option should work and correctly replace escaped symbols: err exports[`"modules" option should work and correctly replace escaped symbols: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".test--_cpw {\\\\n background: red;\\\\n}\\\\n\\\\n._test--1dIr {\\\\n background: blue;\\\\n}\\\\n\\\\n.className--2YAI {\\\\n background: red;\\\\n}\\\\n\\\\n#someId--2mXV {\\\\n background: green;\\\\n}\\\\n\\\\n.className--2YAI .subClass--hcOs {\\\\n color: green;\\\\n}\\\\n\\\\n#someId--2mXV .subClass--hcOs {\\\\n color: blue;\\\\n}\\\\n\\\\n.-a0-34a___f--AnzW {\\\\n color: red;\\\\n}\\\\n\\\\n.m_x_\\\\\\\\@--Nqdt {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.B\\\\\\\\&W\\\\\\\\?--IYdL {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--riRD {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.\\\\\\\\31 a2b3c--zIJ8 {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#\\\\\\\\#fake-id--3i8C {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#-a-b-c---1LFn {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#©--1rph {\\\\n color: black;\\\\n}\\\\n\\\\n.♥--3hI- { background: lime; }\\\\n.©--1rph { background: lime; }\\\\n.“‘’”--2-Fc { background: lime; }\\\\n.☺☃--1ndr { background: lime; }\\\\n.⌘⌥--gxaZ { background: lime; }\\\\n.𝄞♪♩♫♬--mLhO { background: lime; }\\\\n.💩--2t9K { background: lime; }\\\\n.\\\\\\\\?--2I0o { background: lime; }\\\\n.\\\\\\\\@--sCVd { background: lime; }\\\\n.\\\\\\\\.--1HRZ { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\)--mhBL { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--riRD { background: lime; }\\\\n.\\\\\\\\31 23--12FW { background: lime; }\\\\n.\\\\\\\\31 a2b3c--zIJ8 { background: lime; }\\\\n.\\\\\\\\--IjVt { background: lime; }\\\\n.\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\>--oXLW { background: lime; }\\\\n.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.--2HMg { background: lime; }\\\\n.\\\\\\\\#--2hLv { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\#--2LwZ { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\#--i0DF { background: lime; }\\\\n.\\\\\\\\_--1er0 { background: lime; }\\\\n.\\\\\\\\{\\\\\\\\}--2qPT { background: lime; }\\\\n.\\\\\\\\#fake\\\\\\\\-id--3i8C { background: lime; }\\\\n.foo\\\\\\\\.bar--1Tdk { background: lime; }\\\\n.\\\\\\\\3A hover--1vI4 { background: lime; }\\\\n.\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active--2ElO { background: lime; }\\\\n.\\\\\\\\[attr\\\\\\\\=value\\\\\\\\]--1AJ- { background: lime; }\\\\n.f\\\\\\\\/o\\\\\\\\/o--3Zs0 { background: lime; }\\\\n.f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o--3D2d { background: lime; }\\\\n.f\\\\\\\\*o\\\\\\\\*o--2HQY { background: lime; }\\\\n.f\\\\\\\\!o\\\\\\\\!o--1HIX { background: lime; }\\\\n.f\\\\\\\\'o\\\\\\\\'o--3hCQ { background: lime; }\\\\n.f\\\\\\\\~o\\\\\\\\~o--fXtA { background: lime; }\\\\n.f\\\\\\\\+o\\\\\\\\+o--7duh { background: lime; }\\\\n\\\\n.foo\\\\\\\\/bar--1iGa {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar--7qaP {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\/bar\\\\\\\\/baz--24g3 {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz--2NRI {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -1141,7 +1165,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"foo\\\\\\\\bar--7qaP\\", \\"foo/bar/baz\\": \\"foo/bar/baz--24g3\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\\\\\\\bar\\\\\\\\baz--2NRI\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work and correctly replace escaped symbols: result 1`] = ` @@ -1274,7 +1300,7 @@ exports[`"modules" option should work and has "undefined" context if no context exports[`"modules" option should work and has "undefined" context if no context was given: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".foo {\\\\n background: red;\\\\n}\\\\n\\\\n.foo {\\\\n background: blue;\\\\n}\\\\n\\\\n.foo {\\\\n background: red;\\\\n}\\\\n\\\\n#foo {\\\\n background: green;\\\\n}\\\\n\\\\n.foo .foo {\\\\n color: green;\\\\n}\\\\n\\\\n#foo .foo {\\\\n color: blue;\\\\n}\\\\n\\\\n.foo {\\\\n color: red;\\\\n}\\\\n\\\\n.foo {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.foo {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.foo {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.foo {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#foo {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#foo {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#foo {\\\\n color: black;\\\\n}\\\\n\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -1326,7 +1352,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"foo\\", \\"foo/bar/baz\\": \\"foo\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work and has "undefined" context if no context was given: result 1`] = ` @@ -1459,7 +1487,7 @@ exports[`"modules" option should work and prefix leading hyphen when digit is fi exports[`"modules" option should work and prefix leading hyphen when digit is first: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._-1test {\\\\n background: red;\\\\n}\\\\n\\\\n._-1_test {\\\\n background: blue;\\\\n}\\\\n\\\\n._-1className {\\\\n background: red;\\\\n}\\\\n\\\\n#_-1someId {\\\\n background: green;\\\\n}\\\\n\\\\n._-1className ._-1subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#_-1someId ._-1subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n._-1-a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n._-1m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n._-1B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n._-1\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n._-1\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#_-1\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#_-1-a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#_-1© {\\\\n color: black;\\\\n}\\\\n\\\\n._-1♥ { background: lime; }\\\\n._-1© { background: lime; }\\\\n._-1“‘’” { background: lime; }\\\\n._-1☺☃ { background: lime; }\\\\n._-1⌘⌥ { background: lime; }\\\\n._-1𝄞♪♩♫♬ { background: lime; }\\\\n._-1💩 { background: lime; }\\\\n._-1\\\\\\\\? { background: lime; }\\\\n._-1\\\\\\\\@ { background: lime; }\\\\n._-1\\\\\\\\. { background: lime; }\\\\n._-1\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n._-1\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n._-1\\\\\\\\31 23 { background: lime; }\\\\n._-1\\\\\\\\31 a2b3c { background: lime; }\\\\n._-1\\\\\\\\ { background: lime; }\\\\n._-1\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n._-1\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n._-1\\\\\\\\# { background: lime; }\\\\n._-1\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n._-1\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n._-1\\\\\\\\_ { background: lime; }\\\\n._-1\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n._-1\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n._-1foo\\\\\\\\.bar { background: lime; }\\\\n._-1\\\\\\\\3A hover { background: lime; }\\\\n._-1\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n._-1\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n._-1f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n._-1f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n._-1f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n._-1f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n._-1f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n._-1f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n._-1f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n._-1foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._-1foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._-1foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._-1foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -1511,7 +1539,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"_-1foo\\\\\\\\bar\\", \\"foo/bar/baz\\": \\"_-1foo/bar/baz\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"_-1foo\\\\\\\\bar\\\\\\\\baz\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work and prefix leading hyphen when digit is first: result 1`] = ` @@ -1644,7 +1674,7 @@ exports[`"modules" option should work and respect the "context" option: errors 1 exports[`"modules" option should work and respect the "context" option: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._3bArYx5R {\\\\n background: red;\\\\n}\\\\n\\\\n.XTGsNhBt {\\\\n background: blue;\\\\n}\\\\n\\\\n._2ilfWoxp {\\\\n background: red;\\\\n}\\\\n\\\\n#_3v-9Lk1C {\\\\n background: green;\\\\n}\\\\n\\\\n._2ilfWoxp ._3DLY7Ja5 {\\\\n color: green;\\\\n}\\\\n\\\\n#_3v-9Lk1C ._3DLY7Ja5 {\\\\n color: blue;\\\\n}\\\\n\\\\n._2skz9EDS {\\\\n color: red;\\\\n}\\\\n\\\\n._1pEJLEFa {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n._36Mz6bXX {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n._3smFtgP1 {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n._3nWh_bmc {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#_3zyOTdoW {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#SXlBpmLd {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#_3wIdKrg5 {\\\\n color: black;\\\\n}\\\\n\\\\n._3CvZATcw { background: lime; }\\\\n._3wIdKrg5 { background: lime; }\\\\n._1lLtTh58 { background: lime; }\\\\n._129OOBpF { background: lime; }\\\\n._31l8-xW6 { background: lime; }\\\\n._3PTmP7dH { background: lime; }\\\\n._3iDx9JjF { background: lime; }\\\\n.gjylLYRz { background: lime; }\\\\n.t5XxN6Cw { background: lime; }\\\\n.fEcdI_Ta { background: lime; }\\\\n._3JwMk5Ks { background: lime; }\\\\n._3smFtgP1 { background: lime; }\\\\n._30YAJl6C { background: lime; }\\\\n._3nWh_bmc { background: lime; }\\\\n.juMfCdyH { background: lime; }\\\\n._1nZHf2m5 { background: lime; }\\\\n._3tH-JgLJ { background: lime; }\\\\n._1d4pWlls { background: lime; }\\\\n._1yrD9kGf { background: lime; }\\\\n._181tN6YI { background: lime; }\\\\n._3XX_EoMh { background: lime; }\\\\n._1okItBzL { background: lime; }\\\\n._3zyOTdoW { background: lime; }\\\\n.D1UTMFUQ { background: lime; }\\\\n._1VdiVnid { background: lime; }\\\\n._3bwG403y { background: lime; }\\\\n._2dg-ho4t { background: lime; }\\\\n._3MAXcubw { background: lime; }\\\\n.S0VDfqvq { background: lime; }\\\\n._1Dj0PRAS { background: lime; }\\\\n._3SZwCzRS { background: lime; }\\\\n.mapSsRAG { background: lime; }\\\\n._10Kpk0ys { background: lime; }\\\\n._3t38eY4A { background: lime; }\\\\n\\\\n._37a0QYL7 {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._2hUYlBhh {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._1GrpvCLQ {\\\\n background: hotpink;\\\\n}\\\\n\\\\n._2iqkFI_a {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -1696,7 +1726,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"_2hUYlBhh\\", \\"foo/bar/baz\\": \\"_1GrpvCLQ\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"_2iqkFI_a\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work and respect the "context" option: result 1`] = ` @@ -1829,7 +1861,7 @@ exports[`"modules" option should work and respect the "getLocalIdent" option: er exports[`"modules" option should work and respect the "getLocalIdent" option: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".foo {\\\\n background: red;\\\\n}\\\\n\\\\n.foo {\\\\n background: blue;\\\\n}\\\\n\\\\n.foo {\\\\n background: red;\\\\n}\\\\n\\\\n#foo {\\\\n background: green;\\\\n}\\\\n\\\\n.foo .foo {\\\\n color: green;\\\\n}\\\\n\\\\n#foo .foo {\\\\n color: blue;\\\\n}\\\\n\\\\n.foo {\\\\n color: red;\\\\n}\\\\n\\\\n.foo {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.foo {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.foo {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.foo {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#foo {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#foo {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#foo {\\\\n color: black;\\\\n}\\\\n\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n.foo { background: lime; }\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -1881,7 +1913,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"foo\\", \\"foo/bar/baz\\": \\"foo\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work and respect the "getLocalIdent" option: result 1`] = ` @@ -2014,7 +2048,7 @@ exports[`"modules" option should work and respect the "hashPrefix" option: error exports[`"modules" option should work and respect the "hashPrefix" option: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".test--0142b21a44dabb9819108414c865df64 {\\\\n background: red;\\\\n}\\\\n\\\\n._test--cde93c8860a038e1411d22cb771488ac {\\\\n background: blue;\\\\n}\\\\n\\\\n.className--c26790b0ff95d07b06b20d60cf577fd0 {\\\\n background: red;\\\\n}\\\\n\\\\n#someId--8eb7b7f9ce9981fd21fd6d5fc4381bf6 {\\\\n background: green;\\\\n}\\\\n\\\\n.className--c26790b0ff95d07b06b20d60cf577fd0 .subClass--54070e7ec2a737162df117984ecc1761 {\\\\n color: green;\\\\n}\\\\n\\\\n#someId--8eb7b7f9ce9981fd21fd6d5fc4381bf6 .subClass--54070e7ec2a737162df117984ecc1761 {\\\\n color: blue;\\\\n}\\\\n\\\\n.-a0-34a___f--e6b44b8956c576006aee9cdfc7b8d960 {\\\\n color: red;\\\\n}\\\\n\\\\n.m_x_\\\\\\\\@--fbb667cb25a70369de60821c8e36b6fd {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.B\\\\\\\\&W\\\\\\\\?--f1decb173a621f94b1a405675462d8d2 {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--0cb50f97a33928f08d2935be79b3fb60 {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.\\\\\\\\31 a2b3c--4fd20a7ba770527d2b5181e00d5edc42 {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#\\\\\\\\#fake-id--f50da82e1d107cda50fa45b135c86822 {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#-a-b-c---db03ce70db75ed1c1bce599b1d18a186 {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#©--7e0826759ac2aeb5fca6e32aa1edb329 {\\\\n color: black;\\\\n}\\\\n\\\\n.♥--e5560e4053337bd76daf9c2e75d3d7d0 { background: lime; }\\\\n.©--7e0826759ac2aeb5fca6e32aa1edb329 { background: lime; }\\\\n.“‘’”--8e1e3e4cc7221b3ff51633038fafe426 { background: lime; }\\\\n.☺☃--ebe5c837d5daf12d16f0daa8c61eb11e { background: lime; }\\\\n.⌘⌥--a85dfad97e5b6b370e7c1477411c7af2 { background: lime; }\\\\n.𝄞♪♩♫♬--4c4549c449045769b60d0b58e8938127 { background: lime; }\\\\n.💩--864ce6a5b06391cf964f32c546bfda16 { background: lime; }\\\\n.\\\\\\\\?--03cb0d319a1c01d96b21cce53cc35bf4 { background: lime; }\\\\n.\\\\\\\\@--dd774107a0c2a338e9f095f7f70b54d7 { background: lime; }\\\\n.\\\\\\\\.--e11fe8c7f53154b0b2d6cc27502a200e { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\)--a796bbeca4dff990227350b8dd6f9034 { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--0cb50f97a33928f08d2935be79b3fb60 { background: lime; }\\\\n.\\\\\\\\31 23--87aac6eecc0561fe00a4fab8675db52e { background: lime; }\\\\n.\\\\\\\\31 a2b3c--4fd20a7ba770527d2b5181e00d5edc42 { background: lime; }\\\\n.\\\\\\\\--3477ce97df51423d68db9eb33e056c6b { background: lime; }\\\\n.\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\>--a62ab97a8311b28d0df9758cadb75555 { background: lime; }\\\\n.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.--8a18745abe2facd291ae8c5c6ceabbdf { background: lime; }\\\\n.\\\\\\\\#--57d53edb0e5a6757ce6b205b47cc174d { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\#--ed672da0a00b94520ab8a4eb3c786471 { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\#--f686c0028f3b4932cfd2689eae7db8e7 { background: lime; }\\\\n.\\\\\\\\_--709d19d25c02b59c930033d7ebb27bf3 { background: lime; }\\\\n.\\\\\\\\{\\\\\\\\}--03559aa34d08925b7b37b68cbbbab061 { background: lime; }\\\\n.\\\\\\\\#fake\\\\\\\\-id--f50da82e1d107cda50fa45b135c86822 { background: lime; }\\\\n.foo\\\\\\\\.bar--cdeeba651d743a1c9c8726b82a53f3e7 { background: lime; }\\\\n.\\\\\\\\3A hover--eedb9b11365e5f804ae9e9ca4e4a93eb { background: lime; }\\\\n.\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active--fd12204dbd7c44f5cdba57e249953c73 { background: lime; }\\\\n.\\\\\\\\[attr\\\\\\\\=value\\\\\\\\]--fedf0fe616433390cc587cefb1e06f3c { background: lime; }\\\\n.f\\\\\\\\/o\\\\\\\\/o--872f3df58491fec851e2d142ef35a3f6 { background: lime; }\\\\n.f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o--afacca2cad66f8fa5b5cf8423518de57 { background: lime; }\\\\n.f\\\\\\\\*o\\\\\\\\*o--098250e92a511c126ef033e2590afcf0 { background: lime; }\\\\n.f\\\\\\\\!o\\\\\\\\!o--5f5ea08f8761ed29077cbf1f17dc6b68 { background: lime; }\\\\n.f\\\\\\\\'o\\\\\\\\'o--43951ef60179b3812e63d74831c1e010 { background: lime; }\\\\n.f\\\\\\\\~o\\\\\\\\~o--5f27f8554b923243815e3866b257c4e4 { background: lime; }\\\\n.f\\\\\\\\+o\\\\\\\\+o--61ecc2824b4db3e9cc7e5a2afedce309 { background: lime; }\\\\n\\\\n.foo\\\\\\\\/bar--282fddfcdf932d9d3664c146306a3c3a {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar--aec6247bb9290ae6726f5a36f5816c09 {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\/bar\\\\\\\\/baz--d2a732e8a4a273013b0b929ab95835c2 {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz--bc6ce37cc0c680420ee5056f527a94e7 {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -2066,7 +2100,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"foo\\\\\\\\bar--aec6247bb9290ae6726f5a36f5816c09\\", \\"foo/bar/baz\\": \\"foo/bar/baz--d2a732e8a4a273013b0b929ab95835c2\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\\\\\\\bar\\\\\\\\baz--bc6ce37cc0c680420ee5056f527a94e7\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work and respect the "hashPrefix" option: result 1`] = ` @@ -2199,7 +2235,7 @@ exports[`"modules" option should work and respect the "localIdentName" option: e exports[`"modules" option should work and respect the "localIdentName" option: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".localIdentName--test--3bArY {\\\\n background: red;\\\\n}\\\\n\\\\n.localIdentName--_test--XTGsN {\\\\n background: blue;\\\\n}\\\\n\\\\n.localIdentName--className--2ilfW {\\\\n background: red;\\\\n}\\\\n\\\\n#localIdentName--someId--3v-9L {\\\\n background: green;\\\\n}\\\\n\\\\n.localIdentName--className--2ilfW .localIdentName--subClass--3DLY7 {\\\\n color: green;\\\\n}\\\\n\\\\n#localIdentName--someId--3v-9L .localIdentName--subClass--3DLY7 {\\\\n color: blue;\\\\n}\\\\n\\\\n.localIdentName---a0-34a___f--2skz9 {\\\\n color: red;\\\\n}\\\\n\\\\n.localIdentName--m_x_\\\\\\\\@--1pEJL {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.localIdentName--B\\\\\\\\&W\\\\\\\\?--36Mz6 {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.localIdentName--\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--3smFt {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.localIdentName--\\\\\\\\31 a2b3c--3nWh_ {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#localIdentName--\\\\\\\\#fake-id--3zyOT {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#localIdentName---a-b-c---SXlBp {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#localIdentName--©--3wIdK {\\\\n color: black;\\\\n}\\\\n\\\\n.localIdentName--♥--3CvZA { background: lime; }\\\\n.localIdentName--©--3wIdK { background: lime; }\\\\n.localIdentName--“‘’”--1lLtT { background: lime; }\\\\n.localIdentName--☺☃--129OO { background: lime; }\\\\n.localIdentName--⌘⌥--31l8- { background: lime; }\\\\n.localIdentName--𝄞♪♩♫♬--3PTmP { background: lime; }\\\\n.localIdentName--💩--3iDx9 { background: lime; }\\\\n.localIdentName--\\\\\\\\?--gjylL { background: lime; }\\\\n.localIdentName--\\\\\\\\@--t5XxN { background: lime; }\\\\n.localIdentName--\\\\\\\\.--fEcdI { background: lime; }\\\\n.localIdentName--\\\\\\\\3A \\\\\\\\)--3JwMk { background: lime; }\\\\n.localIdentName--\\\\\\\\3A \\\\\\\\\`\\\\\\\\(--3smFt { background: lime; }\\\\n.localIdentName--\\\\\\\\31 23--30YAJ { background: lime; }\\\\n.localIdentName--\\\\\\\\31 a2b3c--3nWh_ { background: lime; }\\\\n.localIdentName--\\\\\\\\--juMfC { background: lime; }\\\\n.localIdentName--\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\>--1nZHf { background: lime; }\\\\n.localIdentName--\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.--3tH-J { background: lime; }\\\\n.localIdentName--\\\\\\\\#--1d4pW { background: lime; }\\\\n.localIdentName--\\\\\\\\#\\\\\\\\#--1yrD9 { background: lime; }\\\\n.localIdentName--\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\#--181tN { background: lime; }\\\\n.localIdentName--\\\\\\\\_--3XX_E { background: lime; }\\\\n.localIdentName--\\\\\\\\{\\\\\\\\}--1okIt { background: lime; }\\\\n.localIdentName--\\\\\\\\#fake\\\\\\\\-id--3zyOT { background: lime; }\\\\n.localIdentName--foo\\\\\\\\.bar--D1UTM { background: lime; }\\\\n.localIdentName--\\\\\\\\3A hover--1VdiV { background: lime; }\\\\n.localIdentName--\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active--3bwG4 { background: lime; }\\\\n.localIdentName--\\\\\\\\[attr\\\\\\\\=value\\\\\\\\]--2dg-h { background: lime; }\\\\n.localIdentName--f\\\\\\\\/o\\\\\\\\/o--3MAXc { background: lime; }\\\\n.localIdentName--f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o--S0VDf { background: lime; }\\\\n.localIdentName--f\\\\\\\\*o\\\\\\\\*o--1Dj0P { background: lime; }\\\\n.localIdentName--f\\\\\\\\!o\\\\\\\\!o--3SZwC { background: lime; }\\\\n.localIdentName--f\\\\\\\\'o\\\\\\\\'o--mapSs { background: lime; }\\\\n.localIdentName--f\\\\\\\\~o\\\\\\\\~o--10Kpk { background: lime; }\\\\n.localIdentName--f\\\\\\\\+o\\\\\\\\+o--3t38e { background: lime; }\\\\n\\\\n.localIdentName--foo\\\\\\\\/bar--37a0Q {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.localIdentName--foo\\\\\\\\\\\\\\\\bar--2hUYl {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.localIdentName--foo\\\\\\\\/bar\\\\\\\\/baz--1Grpv {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.localIdentName--foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz--2iqkF {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -2251,7 +2287,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"localIdentName--foo\\\\\\\\bar--2hUYl\\", \\"foo/bar/baz\\": \\"localIdentName--foo/bar/baz--1Grpv\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"localIdentName--foo\\\\\\\\bar\\\\\\\\baz--2iqkF\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work and respect the "localIdentName" option: result 1`] = ` @@ -2384,7 +2422,7 @@ exports[`"modules" option should work and respect the "path" placeholder: errors exports[`"modules" option should work and respect the "path" placeholder: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".fixtures-modules-localIdentName-localIdentName__test {\\\\n background: red;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName___test {\\\\n background: blue;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__className {\\\\n background: red;\\\\n}\\\\n\\\\n#fixtures-modules-localIdentName-localIdentName__someId {\\\\n background: green;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__className .fixtures-modules-localIdentName-localIdentName__subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#fixtures-modules-localIdentName-localIdentName__someId .fixtures-modules-localIdentName-localIdentName__subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__-a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#fixtures-modules-localIdentName-localIdentName__\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#fixtures-modules-localIdentName-localIdentName__-a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#fixtures-modules-localIdentName-localIdentName__© {\\\\n color: black;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__♥ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__© { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__“‘’” { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__☺☃ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__⌘⌥ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__𝄞♪♩♫♬ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__💩 { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\? { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\@ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\. { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\31 23 { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\31 a2b3c { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\# { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\_ { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\.bar { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\3A hover { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n.fixtures-modules-localIdentName-localIdentName__f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -2436,7 +2474,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\bar\\", \\"foo/bar/baz\\": \\"fixtures-modules-localIdentName-localIdentName__foo/bar/baz\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"fixtures-modules-localIdentName-localIdentName__foo\\\\\\\\bar\\\\\\\\baz\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work and respect the "path" placeholder: result 1`] = ` @@ -2569,7 +2609,7 @@ exports[`"modules" option should work and support "pure" mode #2: errors 1`] = ` exports[`"modules" option should work and support "pure" mode #2: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1ORNYXwneW2JZ8HOIELZsO {\\\\n color: red;\\\\n}\\\\n\\\\nh1 ._1YzI-dPdJjO8MFoqnmHSiS {\\\\n color: green;\\\\n}\\\\n\\\\n._19XuUcEihnxeccG4GuGcFK h1 {\\\\n color: blue;\\\\n}\\\\n\\\\n._28hFOdkf6HPeamArMDTyjg h1 .X_RacgG5tjWeZG02q-q84 {\\\\n color: red;\\\\n}\\\\n\\\\n#_3eOAbv4_jk5PEpaqUX_vV_ {\\\\n color: red;\\\\n}\\\\n\\\\nh1 #_3eYZhuXQ5Ha1DcKYJnSpdv {\\\\n color: green;\\\\n}\\\\n\\\\n#tbNgruvlVjTBtv4zb7xzW h1 {\\\\n color: blue;\\\\n}\\\\n\\\\n#_1pV9OUnTdQPjZdQ4zHh8fk h1 #_14gkAn2VC8A8K862gBpfxU {\\\\n color: red;\\\\n}\\\\n\\\\n._1jv12xYuqjtEG-3ZW0dplp .bar ._1Ruta1CeojEt_QePDvXgV4 {\\\\n color: white;\\\\n}\\\\n\\\\n.FTCrXWhb6BcHdiPxKhbDq ._3Spcb1SWXkMsVPOJBD4FCA ._3J8yK5Q14ZQ1VUMZ3vk9yl {\\\\n color: black;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -2589,7 +2629,9 @@ exports.locals = { \\"baz-3\\": \\"FTCrXWhb6BcHdiPxKhbDq\\", \\"baz\\": \\"_3Spcb1SWXkMsVPOJBD4FCA\\", \\"bar-4\\": \\"_3J8yK5Q14ZQ1VUMZ3vk9yl\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work and support "pure" mode #2: result 1`] = ` @@ -2648,7 +2690,7 @@ exports[`"modules" option should work and support "pure" mode: errors 1`] = `Arr exports[`"modules" option should work and support "pure" mode: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1ORNYXwneW2JZ8HOIELZsO {\\\\n color: red;\\\\n}\\\\n\\\\nh1 ._1YzI-dPdJjO8MFoqnmHSiS {\\\\n color: green;\\\\n}\\\\n\\\\n._19XuUcEihnxeccG4GuGcFK h1 {\\\\n color: blue;\\\\n}\\\\n\\\\n._28hFOdkf6HPeamArMDTyjg h1 .X_RacgG5tjWeZG02q-q84 {\\\\n color: red;\\\\n}\\\\n\\\\n#_3eOAbv4_jk5PEpaqUX_vV_ {\\\\n color: red;\\\\n}\\\\n\\\\nh1 #_3eYZhuXQ5Ha1DcKYJnSpdv {\\\\n color: green;\\\\n}\\\\n\\\\n#tbNgruvlVjTBtv4zb7xzW h1 {\\\\n color: blue;\\\\n}\\\\n\\\\n#_1pV9OUnTdQPjZdQ4zHh8fk h1 #_14gkAn2VC8A8K862gBpfxU {\\\\n color: red;\\\\n}\\\\n\\\\n._1jv12xYuqjtEG-3ZW0dplp .bar ._1Ruta1CeojEt_QePDvXgV4 {\\\\n color: white;\\\\n}\\\\n\\\\n.FTCrXWhb6BcHdiPxKhbDq ._3Spcb1SWXkMsVPOJBD4FCA ._3J8yK5Q14ZQ1VUMZ3vk9yl {\\\\n color: black;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -2668,7 +2710,9 @@ exports.locals = { \\"baz-3\\": \\"FTCrXWhb6BcHdiPxKhbDq\\", \\"baz\\": \\"_3Spcb1SWXkMsVPOJBD4FCA\\", \\"bar-4\\": \\"_3J8yK5Q14ZQ1VUMZ3vk9yl\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work and support "pure" mode: result 1`] = ` @@ -2727,7 +2771,7 @@ exports[`"modules" option should work when the "getLocalIdent" option returns "f exports[`"modules" option should work when the "getLocalIdent" option returns "false": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".test {\\\\n background: red;\\\\n}\\\\n\\\\n._test {\\\\n background: blue;\\\\n}\\\\n\\\\n.className {\\\\n background: red;\\\\n}\\\\n\\\\n#someId {\\\\n background: green;\\\\n}\\\\n\\\\n.className .subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#someId .subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n.-a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n.m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#-a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#© {\\\\n color: black;\\\\n}\\\\n\\\\n.♥ { background: lime; }\\\\n.© { background: lime; }\\\\n.“‘’” { background: lime; }\\\\n.☺☃ { background: lime; }\\\\n.⌘⌥ { background: lime; }\\\\n.𝄞♪♩♫♬ { background: lime; }\\\\n.💩 { background: lime; }\\\\n.\\\\\\\\? { background: lime; }\\\\n.\\\\\\\\@ { background: lime; }\\\\n.\\\\\\\\. { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n.\\\\\\\\31 23 { background: lime; }\\\\n.\\\\\\\\31 a2b3c { background: lime; }\\\\n.\\\\\\\\ { background: lime; }\\\\n.\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n.\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\_ { background: lime; }\\\\n.\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n.\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n.foo\\\\\\\\.bar { background: lime; }\\\\n.\\\\\\\\3A hover { background: lime; }\\\\n.\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n.\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n.f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n.f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n.f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n.f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n.f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n.f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n.f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n.foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -2779,7 +2823,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"foo\\\\\\\\bar\\", \\"foo/bar/baz\\": \\"foo/bar/baz\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\\\\\\\bar\\\\\\\\baz\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work when the "getLocalIdent" option returns "false": result 1`] = ` @@ -2912,9 +2958,11 @@ exports[`"modules" option should work with case \`animation\` (\`modules\` value exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"a {\\\\n animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -2939,9 +2987,11 @@ exports[`"modules" option should work with case \`animation\` (\`modules\` value exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"a {\\\\n animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -2966,14 +3016,16 @@ exports[`"modules" option should work with case \`animation\` (\`modules\` value exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"a {\\\\n animation: _2jinakhsfBWcUNZSsOxUHz 300ms forwards ease-out, _3XZSV759G141XcbTZgtQkF 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"slide-right\\": \\"_2jinakhsfBWcUNZSsOxUHz\\", \\"fade-in\\": \\"_3XZSV759G141XcbTZgtQkF\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -2997,9 +3049,11 @@ exports[`"modules" option should work with case \`animation\` (\`modules\` value exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"a {\\\\n animation: slide-right 300ms forwards ease-out, fade-in 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -3024,14 +3078,16 @@ exports[`"modules" option should work with case \`animation\` (\`modules\` value exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"a {\\\\n animation: _slide-right 300ms forwards ease-out, _fade-in 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"slide-right\\": \\"_slide-right\\", \\"fade-in\\": \\"_fade-in\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -3055,14 +3111,16 @@ exports[`"modules" option should work with case \`animation\` (\`modules\` value exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"a {\\\\n animation: _2jinakhsfBWcUNZSsOxUHz 300ms forwards ease-out, _3XZSV759G141XcbTZgtQkF 300ms forwards ease-out;\\\\n\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"slide-right\\": \\"_2jinakhsfBWcUNZSsOxUHz\\", \\"fade-in\\": \\"_3XZSV759G141XcbTZgtQkF\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`animation\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -3086,9 +3144,11 @@ exports[`"modules" option should work with case \`class-names\` (\`modules\` val exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".class-1, .class-10 .bar-1 {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -3112,9 +3172,11 @@ exports[`"modules" option should work with case \`class-names\` (\`modules\` val exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".class-1, .class-10 .bar-1 {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -3138,7 +3200,7 @@ exports[`"modules" option should work with case \`class-names\` (\`modules\` val exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1GNZOTxutjEX7cZ3Ec7knU, ._15N9BXxWirSgwhYficwysK ._3GpM4NK17tELexNK1Szvws {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -3146,7 +3208,9 @@ exports.locals = { \\"class-1\\": \\"_1GNZOTxutjEX7cZ3Ec7knU\\", \\"class-10\\": \\"_15N9BXxWirSgwhYficwysK\\", \\"bar-1\\": \\"_3GpM4NK17tELexNK1Szvws\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -3169,9 +3233,11 @@ exports[`"modules" option should work with case \`class-names\` (\`modules\` val exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".class-1, .class-10 .bar-1 {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -3195,7 +3261,7 @@ exports[`"modules" option should work with case \`class-names\` (\`modules\` val exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._class-1, ._class-10 ._bar-1 {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -3203,7 +3269,9 @@ exports.locals = { \\"class-1\\": \\"_class-1\\", \\"class-10\\": \\"_class-10\\", \\"bar-1\\": \\"_bar-1\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -3226,7 +3294,7 @@ exports[`"modules" option should work with case \`class-names\` (\`modules\` val exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1GNZOTxutjEX7cZ3Ec7knU, ._15N9BXxWirSgwhYficwysK ._3GpM4NK17tELexNK1Szvws {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -3234,7 +3302,9 @@ exports.locals = { \\"class-1\\": \\"_1GNZOTxutjEX7cZ3Ec7knU\\", \\"class-10\\": \\"_15N9BXxWirSgwhYficwysK\\", \\"bar-1\\": \\"_3GpM4NK17tELexNK1Szvws\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`class-names\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -3257,9 +3327,11 @@ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\":local(.c1/*.c2*/.c3) { background: red; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -3281,14 +3353,16 @@ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"c1\\": \\"_1xn1UbV-5a_s7ig53fR7Lz\\", \\"c3\\": \\"_36mr1nZ1pdjd1s5j3RV-z7\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -3309,14 +3383,16 @@ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"c1\\": \\"_1xn1UbV-5a_s7ig53fR7Lz\\", \\"c3\\": \\"_36mr1nZ1pdjd1s5j3RV-z7\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -3337,14 +3413,16 @@ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._c1/*.c2*/._c3 { background: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"c1\\": \\"_c1\\", \\"c3\\": \\"_c3\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -3365,14 +3443,16 @@ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._c1/*.c2*/._c3 { background: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"c1\\": \\"_c1\\", \\"c3\\": \\"_c3\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -3393,14 +3473,16 @@ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\ exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1xn1UbV-5a_s7ig53fR7Lz/*.c2*/._36mr1nZ1pdjd1s5j3RV-z7 { background: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"c1\\": \\"_1xn1UbV-5a_s7ig53fR7Lz\\", \\"c3\\": \\"_36mr1nZ1pdjd1s5j3RV-z7\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`comment-in-local\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -3423,10 +3505,12 @@ exports[`"modules" option should work with case \`comments\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n.bg {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -3460,10 +3544,12 @@ exports[`"modules" option should work with case \`comments\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n.bg {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -3497,14 +3583,16 @@ exports[`"modules" option should work with case \`comments\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n._28-VAWbJ8gQCgX50Jcqtzs {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"bg\\": \\"_28-VAWbJ8gQCgX50Jcqtzs\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -3537,10 +3625,12 @@ exports[`"modules" option should work with case \`comments\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n.bg {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -3574,14 +3664,16 @@ exports[`"modules" option should work with case \`comments\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n._bg {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"bg\\": \\"_bg\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -3614,14 +3706,16 @@ exports[`"modules" option should work with case \`comments\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"/*\\\\n * a ' above\\\\n */\\\\n\\\\n._28-VAWbJ8gQCgX50Jcqtzs {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n/*\\\\n * a ' below\\\\n */\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"bg\\": \\"_28-VAWbJ8gQCgX50Jcqtzs\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`comments\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -3652,9 +3746,11 @@ exports[`"modules" option should work with case \`composes\` (\`modules\` value exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\":local(.c1) { a: 1; }\\\\n:local(.c2) { composes: c1; b: 1; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -3677,14 +3773,16 @@ exports[`"modules" option should work with case \`composes\` (\`modules\` value exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._2lVGKlfYXzywV6_acW1a3J { a: 1; }\\\\n._2FPXZHdIWogtLWkFQcjYj7 { b: 1; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"c1\\": \\"_2lVGKlfYXzywV6_acW1a3J\\", \\"c2\\": \\"_2FPXZHdIWogtLWkFQcjYj7 _2lVGKlfYXzywV6_acW1a3J\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -3706,14 +3804,16 @@ exports[`"modules" option should work with case \`composes\` (\`modules\` value exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._2lVGKlfYXzywV6_acW1a3J { a: 1; }\\\\n._2FPXZHdIWogtLWkFQcjYj7 { b: 1; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"c1\\": \\"_2lVGKlfYXzywV6_acW1a3J\\", \\"c2\\": \\"_2FPXZHdIWogtLWkFQcjYj7 _2lVGKlfYXzywV6_acW1a3J\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -3735,14 +3835,16 @@ exports[`"modules" option should work with case \`composes\` (\`modules\` value exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._c1 { a: 1; }\\\\n._c2 { b: 1; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"c1\\": \\"_c1\\", \\"c2\\": \\"_c2 _c1\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -3764,14 +3866,16 @@ exports[`"modules" option should work with case \`composes\` (\`modules\` value exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._c1 { a: 1; }\\\\n._c2 { b: 1; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"c1\\": \\"_c1\\", \\"c2\\": \\"_c2 _c1\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -3793,14 +3897,16 @@ exports[`"modules" option should work with case \`composes\` (\`modules\` value exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._2lVGKlfYXzywV6_acW1a3J { a: 1; }\\\\n._2FPXZHdIWogtLWkFQcjYj7 { b: 1; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"c1\\": \\"_2lVGKlfYXzywV6_acW1a3J\\", \\"c2\\": \\"_2FPXZHdIWogtLWkFQcjYj7 _2lVGKlfYXzywV6_acW1a3J\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -3822,9 +3928,11 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\":local(.c1) { composes: c2 from \\\\\\"./file.css\\\\\\"; b: 1; }\\\\n:local(.c3) { composes: c1; b: 3; }\\\\n:local(.c5) { composes: c2 c4 from \\\\\\"./file.css\\\\\\"; b: 5; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -3849,7 +3957,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._1DZQbqp1oX8etdFa5oSOnV { b: 1; }\\\\n._1PKuwglb3xQB3gwJBZx6_G { b: 3; }\\\\n._1MtdK0_soIbU20fcYBbRAe { b: 5; }\\\\n\\", \\"\\"]); @@ -3858,7 +3966,9 @@ exports.locals = { \\"c1\\": \\"_1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", \\"c3\\": \\"_1PKuwglb3xQB3gwJBZx6_G _1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", \\"c5\\": \\"_1MtdK0_soIbU20fcYBbRAe \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -3898,7 +4008,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._1DZQbqp1oX8etdFa5oSOnV { b: 1; }\\\\n._1PKuwglb3xQB3gwJBZx6_G { b: 3; }\\\\n._1MtdK0_soIbU20fcYBbRAe { b: 5; }\\\\n\\", \\"\\"]); @@ -3907,7 +4017,9 @@ exports.locals = { \\"c1\\": \\"_1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", \\"c3\\": \\"_1PKuwglb3xQB3gwJBZx6_G _1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", \\"c5\\": \\"_1MtdK0_soIbU20fcYBbRAe \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -3947,7 +4059,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); @@ -3956,7 +4068,9 @@ exports.locals = { \\"c1\\": \\"_c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", \\"c3\\": \\"_c3 _c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", \\"c5\\": \\"_c5 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -3996,7 +4110,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); @@ -4005,7 +4119,9 @@ exports.locals = { \\"c1\\": \\"_c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", \\"c3\\": \\"_c3 _c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", \\"c5\\": \\"_c5 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -4045,7 +4161,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._1DZQbqp1oX8etdFa5oSOnV { b: 1; }\\\\n._1PKuwglb3xQB3gwJBZx6_G { b: 3; }\\\\n._1MtdK0_soIbU20fcYBbRAe { b: 5; }\\\\n\\", \\"\\"]); @@ -4054,7 +4170,9 @@ exports.locals = { \\"c1\\": \\"_1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", \\"c3\\": \\"_1PKuwglb3xQB3gwJBZx6_G _1DZQbqp1oX8etdFa5oSOnV \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\"\\", \\"c5\\": \\"_1MtdK0_soIbU20fcYBbRAe \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-1\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -4093,9 +4211,11 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\":local(.c1) { composes: c-2 from \\\\\\"./file.css\\\\\\"; b: 1; }\\\\n:local(.c3) { composes: c1; b: 3; }\\\\n:local(.c5) { composes: c-2 c4 from \\\\\\"./file.css\\\\\\"; b: 5; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -4120,7 +4240,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; }\\\\n._1TPNBQGz_snQ6aGvXARYo0 { b: 3; }\\\\n.rkDOmH5RkgZGaQ5Fey09Z { b: 5; }\\\\n\\", \\"\\"]); @@ -4129,7 +4249,9 @@ exports.locals = { \\"c1\\": \\"_2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", \\"c3\\": \\"_1TPNBQGz_snQ6aGvXARYo0 _2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", \\"c5\\": \\"rkDOmH5RkgZGaQ5Fey09Z \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -4169,7 +4291,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; }\\\\n._1TPNBQGz_snQ6aGvXARYo0 { b: 3; }\\\\n.rkDOmH5RkgZGaQ5Fey09Z { b: 5; }\\\\n\\", \\"\\"]); @@ -4178,7 +4300,9 @@ exports.locals = { \\"c1\\": \\"_2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", \\"c3\\": \\"_1TPNBQGz_snQ6aGvXARYo0 _2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", \\"c5\\": \\"rkDOmH5RkgZGaQ5Fey09Z \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -4218,7 +4342,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); @@ -4227,7 +4351,9 @@ exports.locals = { \\"c1\\": \\"_c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", \\"c3\\": \\"_c3 _c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", \\"c5\\": \\"_c5 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -4267,7 +4393,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); @@ -4276,7 +4402,9 @@ exports.locals = { \\"c1\\": \\"_c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", \\"c3\\": \\"_c3 _c1 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", \\"c5\\": \\"_c5 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -4316,7 +4444,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; }\\\\n._1TPNBQGz_snQ6aGvXARYo0 { b: 3; }\\\\n.rkDOmH5RkgZGaQ5Fey09Z { b: 5; }\\\\n\\", \\"\\"]); @@ -4325,7 +4453,9 @@ exports.locals = { \\"c1\\": \\"_2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", \\"c3\\": \\"_1TPNBQGz_snQ6aGvXARYo0 _2tj5Xzv7Ei8HGFvkrlGXyv \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\"\\", \\"c5\\": \\"rkDOmH5RkgZGaQ5Fey09Z \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c-2\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"c4\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-2\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -4364,9 +4494,11 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\":local(.abc) {\\\\n composes: def1 from \\\\\\"./file1.css\\\\\\";\\\\n composes: def2 from \\\\\\"./file2.css\\\\\\";\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -4393,7 +4525,7 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -4401,7 +4533,9 @@ exports.push([module.id, \\"._1bAv4bLL8-hE3a7MyZXrT- {\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_1bAv4bLL8-hE3a7MyZXrT- \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def2\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -4441,7 +4575,7 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -4449,7 +4583,9 @@ exports.push([module.id, \\"._1bAv4bLL8-hE3a7MyZXrT- {\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_1bAv4bLL8-hE3a7MyZXrT- \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def2\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -4489,7 +4625,7 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -4497,7 +4633,9 @@ exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_abc \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def2\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -4537,7 +4675,7 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -4545,7 +4683,9 @@ exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_abc \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def2\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -4585,7 +4725,7 @@ exports[`"modules" option should work with case \`composes-multiple\` (\`modules var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -4593,7 +4733,9 @@ exports.push([module.id, \\"._1bAv4bLL8-hE3a7MyZXrT- {\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_1bAv4bLL8-hE3a7MyZXrT- \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def1\\"] + \\" \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def2\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-multiple\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -4631,9 +4773,11 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\":local(.abc) {\\\\n composes: def from \\\\\\"./file.css\\\\\\";\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -4658,14 +4802,16 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._3sT-Lzs6aj6TM9J3mM7_Cj {\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_3sT-Lzs6aj6TM9J3mM7_Cj \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -4696,14 +4842,16 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._3sT-Lzs6aj6TM9J3mM7_Cj {\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_3sT-Lzs6aj6TM9J3mM7_Cj \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -4734,14 +4882,16 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_abc \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -4772,14 +4922,16 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_abc \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -4810,14 +4962,16 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._3sT-Lzs6aj6TM9J3mM7_Cj {\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_3sT-Lzs6aj6TM9J3mM7_Cj \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`composes-with-importing\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -4847,9 +5001,11 @@ exports[`"modules" option should work with case \`declaration-value\` (\`modules exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value blue: red;\\\\n\\\\n.a {\\\\n border: 1px solid blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -4875,13 +5031,15 @@ exports[`"modules" option should work with case \`declaration-value\` (\`modules exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a {\\\\n border: 1px solid red;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"blue\\": \\"red\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -4904,14 +5062,16 @@ exports[`"modules" option should work with case \`declaration-value\` (\`modules exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".rUmYXW8EUSiAHIrtvLLrL {\\\\n border: 1px solid red;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"blue\\": \\"red\\", \\"a\\": \\"rUmYXW8EUSiAHIrtvLLrL\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -4934,13 +5094,15 @@ exports[`"modules" option should work with case \`declaration-value\` (\`modules exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a {\\\\n border: 1px solid red;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"blue\\": \\"red\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -4963,14 +5125,16 @@ exports[`"modules" option should work with case \`declaration-value\` (\`modules exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._a {\\\\n border: 1px solid red;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"blue\\": \\"red\\", \\"a\\": \\"_a\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -4993,14 +5157,16 @@ exports[`"modules" option should work with case \`declaration-value\` (\`modules exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".rUmYXW8EUSiAHIrtvLLrL {\\\\n border: 1px solid red;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"blue\\": \\"red\\", \\"a\\": \\"rUmYXW8EUSiAHIrtvLLrL\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`declaration-value\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -5025,10 +5191,12 @@ exports[`"modules" option should work with case \`issue-589\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5055,10 +5223,12 @@ exports[`"modules" option should work with case \`issue-589\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5085,10 +5255,12 @@ exports[`"modules" option should work with case \`issue-589\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5115,10 +5287,12 @@ exports[`"modules" option should work with case \`issue-589\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5145,10 +5319,12 @@ exports[`"modules" option should work with case \`issue-589\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5175,10 +5351,12 @@ exports[`"modules" option should work with case \`issue-589\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"!!file-loader?esModule=false!./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module exports.push([module.id, \\"body:before {\\\\n content: '';\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5203,9 +5381,11 @@ exports[`"modules" option should work with case \`keyframes-and-animation\` (\`m exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes bounce {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes bounce2 {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n.bounce {\\\\n\\\\tanimation-name: bounce;\\\\n\\\\tanimation: bounce2 1s ease;\\\\n}\\\\n\\\\n.bounce2 {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: bounce 1s ease;\\\\n\\\\tanimation-name: bounce2;\\\\n}\\\\n\\\\n.bounce3 {\\\\n\\\\tanimation: bounce 1s ease, bounce2\\\\n}\\\\n\\\\n.bounce4 {\\\\n\\\\tanimation: bounce 1s ease, bounce2;\\\\n}\\\\n\\\\n.b {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5274,9 +5454,11 @@ exports[`"modules" option should work with case \`keyframes-and-animation\` (\`m exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes bounce {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes bounce2 {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n.bounce {\\\\n\\\\tanimation-name: bounce;\\\\n\\\\tanimation: bounce2 1s ease;\\\\n}\\\\n\\\\n.bounce2 {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: bounce 1s ease;\\\\n\\\\tanimation-name: bounce2;\\\\n}\\\\n\\\\n.bounce3 {\\\\n\\\\tanimation: bounce 1s ease, bounce2\\\\n}\\\\n\\\\n.bounce4 {\\\\n\\\\tanimation: bounce 1s ease, bounce2;\\\\n}\\\\n\\\\n.b {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5345,7 +5527,7 @@ exports[`"modules" option should work with case \`keyframes-and-animation\` (\`m exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1AzRoWem1zBzZ9hLlF5IJC {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes _355y8MvF-ilfLoMa6xQMuq {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes _20oF72x8NQuWNrNLEjvczE {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n._355y8MvF-ilfLoMa6xQMuq {\\\\n\\\\tanimation-name: _355y8MvF-ilfLoMa6xQMuq;\\\\n\\\\tanimation: _20oF72x8NQuWNrNLEjvczE 1s ease;\\\\n}\\\\n\\\\n._20oF72x8NQuWNrNLEjvczE {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease;\\\\n\\\\tanimation-name: _20oF72x8NQuWNrNLEjvczE;\\\\n}\\\\n\\\\n._3OQHSo2d42CWSR-npTXaic {\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE\\\\n}\\\\n\\\\n._3bL1lmhMKE-Qlk83VSMCHN {\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE;\\\\n}\\\\n\\\\n._1eH5GHM6EfKYOklEd2mhle {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -5356,7 +5538,9 @@ exports.locals = { \\"bounce3\\": \\"_3OQHSo2d42CWSR-npTXaic\\", \\"bounce4\\": \\"_3bL1lmhMKE-Qlk83VSMCHN\\", \\"b\\": \\"_1eH5GHM6EfKYOklEd2mhle\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -5424,9 +5608,11 @@ exports[`"modules" option should work with case \`keyframes-and-animation\` (\`m exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes bounce {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes bounce2 {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n.bounce {\\\\n\\\\tanimation-name: bounce;\\\\n\\\\tanimation: bounce2 1s ease;\\\\n}\\\\n\\\\n.bounce2 {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: bounce 1s ease;\\\\n\\\\tanimation-name: bounce2;\\\\n}\\\\n\\\\n.bounce3 {\\\\n\\\\tanimation: bounce 1s ease, bounce2\\\\n}\\\\n\\\\n.bounce4 {\\\\n\\\\tanimation: bounce 1s ease, bounce2;\\\\n}\\\\n\\\\n.b {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5495,7 +5681,7 @@ exports[`"modules" option should work with case \`keyframes-and-animation\` (\`m exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._a {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes _bounce {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes _bounce2 {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n._bounce {\\\\n\\\\tanimation-name: _bounce;\\\\n\\\\tanimation: _bounce2 1s ease;\\\\n}\\\\n\\\\n._bounce2 {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _bounce 1s ease;\\\\n\\\\tanimation-name: _bounce2;\\\\n}\\\\n\\\\n._bounce3 {\\\\n\\\\tanimation: _bounce 1s ease, _bounce2\\\\n}\\\\n\\\\n._bounce4 {\\\\n\\\\tanimation: _bounce 1s ease, _bounce2;\\\\n}\\\\n\\\\n._b {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -5506,7 +5692,9 @@ exports.locals = { \\"bounce3\\": \\"_bounce3\\", \\"bounce4\\": \\"_bounce4\\", \\"b\\": \\"_b\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -5574,7 +5762,7 @@ exports[`"modules" option should work with case \`keyframes-and-animation\` (\`m exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1AzRoWem1zBzZ9hLlF5IJC {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\\\n@keyframes _355y8MvF-ilfLoMa6xQMuq {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n@-webkit-keyframes _20oF72x8NQuWNrNLEjvczE {\\\\n\\\\t0% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n\\\\t5% {\\\\n\\\\t\\\\ttransform: translateY(-100%);\\\\n\\\\t\\\\topacity: 0;\\\\n\\\\t}\\\\n}\\\\n\\\\n._355y8MvF-ilfLoMa6xQMuq {\\\\n\\\\tanimation-name: _355y8MvF-ilfLoMa6xQMuq;\\\\n\\\\tanimation: _20oF72x8NQuWNrNLEjvczE 1s ease;\\\\n}\\\\n\\\\n._20oF72x8NQuWNrNLEjvczE {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease;\\\\n\\\\tanimation-name: _20oF72x8NQuWNrNLEjvczE;\\\\n}\\\\n\\\\n._3OQHSo2d42CWSR-npTXaic {\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE\\\\n}\\\\n\\\\n._3bL1lmhMKE-Qlk83VSMCHN {\\\\n\\\\tanimation: _355y8MvF-ilfLoMa6xQMuq 1s ease, _20oF72x8NQuWNrNLEjvczE;\\\\n}\\\\n\\\\n._1eH5GHM6EfKYOklEd2mhle {\\\\n\\\\tcolor: green;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -5585,7 +5773,9 @@ exports.locals = { \\"bounce3\\": \\"_3OQHSo2d42CWSR-npTXaic\\", \\"bounce4\\": \\"_3bL1lmhMKE-Qlk83VSMCHN\\", \\"b\\": \\"_1eH5GHM6EfKYOklEd2mhle\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`keyframes-and-animation\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -5653,9 +5843,11 @@ exports[`"modules" option should work with case \`leak-scope\` (\`modules\` valu exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: a;\\\\n}\\\\n\\\\n@keyframes b {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.b {\\\\n\\\\tanimation: b;\\\\n}\\\\n\\\\n@keyframes :global(c) {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.c {\\\\n\\\\tanimation: c1;\\\\n\\\\tanimation: c2, c3, c4;\\\\n}\\\\n\\\\n@keyframes :global(d) {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n:global .d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n:global(.d2) {\\\\n\\\\tanimation: d2;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5713,9 +5905,11 @@ exports[`"modules" option should work with case \`leak-scope\` (\`modules\` valu exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: a;\\\\n}\\\\n\\\\n@keyframes b {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.b {\\\\n\\\\tanimation: b;\\\\n}\\\\n\\\\n@keyframes c {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.c {\\\\n\\\\tanimation: c1;\\\\n\\\\tanimation: c2, c3, c4;\\\\n}\\\\n\\\\n@keyframes d {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n.d2 {\\\\n\\\\tanimation: d2;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5773,7 +5967,7 @@ exports[`"modules" option should work with case \`leak-scope\` (\`modules\` valu exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1OjK2G7L6Ypn9Qqa8lly-H {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _1OjK2G7L6Ypn9Qqa8lly-H;\\\\n}\\\\n\\\\n@keyframes _2cTRWn5QG4xtPeFL2wrKvv {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._2cTRWn5QG4xtPeFL2wrKvv {\\\\n\\\\tanimation: _2cTRWn5QG4xtPeFL2wrKvv;\\\\n}\\\\n\\\\n@keyframes c {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._3MHGI9_Tl4A_kJUxXx1q2j {\\\\n\\\\tanimation: _1PQ8UpcdVbFbAcYs6wdRXj;\\\\n\\\\tanimation: _3JhTjOsNov-pQXnd3o0JJ, _9skQ6KRXi6qCorV5zNSyV, _1Gh6Pqr28qXCExbnssOGX9;\\\\n}\\\\n\\\\n@keyframes d {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n.d2 {\\\\n\\\\tanimation: _35GAwk8Rb2LyIN0pSAXjyy;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -5786,7 +5980,9 @@ exports.locals = { \\"c3\\": \\"_9skQ6KRXi6qCorV5zNSyV\\", \\"c4\\": \\"_1Gh6Pqr28qXCExbnssOGX9\\", \\"d2\\": \\"_35GAwk8Rb2LyIN0pSAXjyy\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -5843,9 +6039,11 @@ exports[`"modules" option should work with case \`leak-scope\` (\`modules\` valu exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: a;\\\\n}\\\\n\\\\n@keyframes b {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.b {\\\\n\\\\tanimation: b;\\\\n}\\\\n\\\\n@keyframes c {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.c {\\\\n\\\\tanimation: c1;\\\\n\\\\tanimation: c2, c3, c4;\\\\n}\\\\n\\\\n@keyframes d {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n.d2 {\\\\n\\\\tanimation: d2;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -5903,7 +6101,7 @@ exports[`"modules" option should work with case \`leak-scope\` (\`modules\` valu exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._a {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _a;\\\\n}\\\\n\\\\n@keyframes _b {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._b {\\\\n\\\\tanimation: _b;\\\\n}\\\\n\\\\n@keyframes c {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._c {\\\\n\\\\tanimation: _c1;\\\\n\\\\tanimation: _c2, _c3, _c4;\\\\n}\\\\n\\\\n@keyframes d {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n.d2 {\\\\n\\\\tanimation: _d2;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -5916,7 +6114,9 @@ exports.locals = { \\"c3\\": \\"_c3\\", \\"c4\\": \\"_c4\\", \\"d2\\": \\"_d2\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -5973,7 +6173,7 @@ exports[`"modules" option should work with case \`leak-scope\` (\`modules\` valu exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1OjK2G7L6Ypn9Qqa8lly-H {\\\\n\\\\tcolor: green;\\\\n\\\\tanimation: _1OjK2G7L6Ypn9Qqa8lly-H;\\\\n}\\\\n\\\\n@keyframes _2cTRWn5QG4xtPeFL2wrKvv {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._2cTRWn5QG4xtPeFL2wrKvv {\\\\n\\\\tanimation: _2cTRWn5QG4xtPeFL2wrKvv;\\\\n}\\\\n\\\\n@keyframes c {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n._3MHGI9_Tl4A_kJUxXx1q2j {\\\\n\\\\tanimation: _1PQ8UpcdVbFbAcYs6wdRXj;\\\\n\\\\tanimation: _3JhTjOsNov-pQXnd3o0JJ, _9skQ6KRXi6qCorV5zNSyV, _1Gh6Pqr28qXCExbnssOGX9;\\\\n}\\\\n\\\\n@keyframes d {\\\\n\\\\t0% { left: 10px; }\\\\n\\\\t100% { left: 20px; }\\\\n}\\\\n\\\\n.d1 {\\\\n\\\\tanimation: d1;\\\\n\\\\tanimation: d2, d3, d4;\\\\n}\\\\n\\\\n.d2 {\\\\n\\\\tanimation: _35GAwk8Rb2LyIN0pSAXjyy;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -5986,7 +6186,9 @@ exports.locals = { \\"c3\\": \\"_9skQ6KRXi6qCorV5zNSyV\\", \\"c4\\": \\"_1Gh6Pqr28qXCExbnssOGX9\\", \\"d2\\": \\"_35GAwk8Rb2LyIN0pSAXjyy\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`leak-scope\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -6043,9 +6245,11 @@ exports[`"modules" option should work with case \`local\` (\`modules\` value is exports[`"modules" option should work with case \`local\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".abc :local(.def) {\\\\n color: red;\\\\n}\\\\n\\\\n:local .ghi .jkl {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -6073,7 +6277,7 @@ exports[`"modules" option should work with case \`local\` (\`modules\` value is exports[`"modules" option should work with case \`local\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".abc ._1UnGDcMVVYIU_547CDqQJU {\\\\n color: red;\\\\n}\\\\n\\\\n._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -6081,7 +6285,9 @@ exports.locals = { \\"def\\": \\"_1UnGDcMVVYIU_547CDqQJU\\", \\"ghi\\": \\"_1k8c5svlAtK4vFkSsZdl4o\\", \\"jkl\\": \\"pRQR9FSSkxNL6roex-uGp\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -6108,7 +6314,7 @@ exports[`"modules" option should work with case \`local\` (\`modules\` value is exports[`"modules" option should work with case \`local\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._2EPIUiYqPKxP0HS9Vgqa8e ._1UnGDcMVVYIU_547CDqQJU {\\\\n color: red;\\\\n}\\\\n\\\\n._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -6117,7 +6323,9 @@ exports.locals = { \\"def\\": \\"_1UnGDcMVVYIU_547CDqQJU\\", \\"ghi\\": \\"_1k8c5svlAtK4vFkSsZdl4o\\", \\"jkl\\": \\"pRQR9FSSkxNL6roex-uGp\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -6144,7 +6352,7 @@ exports[`"modules" option should work with case \`local\` (\`modules\` value is exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".abc ._def {\\\\n color: red;\\\\n}\\\\n\\\\n._ghi ._jkl {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -6152,7 +6360,9 @@ exports.locals = { \\"def\\": \\"_def\\", \\"ghi\\": \\"_ghi\\", \\"jkl\\": \\"_jkl\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -6179,7 +6389,7 @@ exports[`"modules" option should work with case \`local\` (\`modules\` value is exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._abc ._def {\\\\n color: red;\\\\n}\\\\n\\\\n._ghi ._jkl {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -6188,7 +6398,9 @@ exports.locals = { \\"def\\": \\"_def\\", \\"ghi\\": \\"_ghi\\", \\"jkl\\": \\"_jkl\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -6215,7 +6427,7 @@ exports[`"modules" option should work with case \`local\` (\`modules\` value is exports[`"modules" option should work with case \`local\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._2EPIUiYqPKxP0HS9Vgqa8e ._1UnGDcMVVYIU_547CDqQJU {\\\\n color: red;\\\\n}\\\\n\\\\n._1k8c5svlAtK4vFkSsZdl4o .pRQR9FSSkxNL6roex-uGp {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -6224,7 +6436,9 @@ exports.locals = { \\"def\\": \\"_1UnGDcMVVYIU_547CDqQJU\\", \\"ghi\\": \\"_1k8c5svlAtK4vFkSsZdl4o\\", \\"jkl\\": \\"pRQR9FSSkxNL6roex-uGp\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -6251,9 +6465,11 @@ exports[`"modules" option should work with case \`local-2\` (\`modules\` value i exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\":local(.className) { background: red; }\\\\n:local(#someId) { background: green; }\\\\n:local(.className .subClass) { color: green; }\\\\n:local(#someId .subClass) { color: blue; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -6278,7 +6494,7 @@ exports[`"modules" option should work with case \`local-2\` (\`modules\` value i exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".PTH0TZDPxpREaV5cxtahd { background: red; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A { background: green; }\\\\n.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; }\\\\n\\", \\"\\"]); // Exports @@ -6286,7 +6502,9 @@ exports.locals = { \\"className\\": \\"PTH0TZDPxpREaV5cxtahd\\", \\"someId\\": \\"_1XQl0Np_jYcDGudXKxmL8A\\", \\"subClass\\": \\"_2MrzTmc8jtF-E5FfuMPQie\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -6310,7 +6528,7 @@ exports[`"modules" option should work with case \`local-2\` (\`modules\` value i exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".PTH0TZDPxpREaV5cxtahd { background: red; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A { background: green; }\\\\n.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; }\\\\n\\", \\"\\"]); // Exports @@ -6318,7 +6536,9 @@ exports.locals = { \\"className\\": \\"PTH0TZDPxpREaV5cxtahd\\", \\"someId\\": \\"_1XQl0Np_jYcDGudXKxmL8A\\", \\"subClass\\": \\"_2MrzTmc8jtF-E5FfuMPQie\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -6342,7 +6562,7 @@ exports[`"modules" option should work with case \`local-2\` (\`modules\` value i exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._className { background: red; }\\\\n#_someId { background: green; }\\\\n._className ._subClass { color: green; }\\\\n#_someId ._subClass { color: blue; }\\\\n\\", \\"\\"]); // Exports @@ -6350,7 +6570,9 @@ exports.locals = { \\"className\\": \\"_className\\", \\"someId\\": \\"_someId\\", \\"subClass\\": \\"_subClass\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -6374,7 +6596,7 @@ exports[`"modules" option should work with case \`local-2\` (\`modules\` value i exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._className { background: red; }\\\\n#_someId { background: green; }\\\\n._className ._subClass { color: green; }\\\\n#_someId ._subClass { color: blue; }\\\\n\\", \\"\\"]); // Exports @@ -6382,7 +6604,9 @@ exports.locals = { \\"className\\": \\"_className\\", \\"someId\\": \\"_someId\\", \\"subClass\\": \\"_subClass\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -6406,7 +6630,7 @@ exports[`"modules" option should work with case \`local-2\` (\`modules\` value i exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".PTH0TZDPxpREaV5cxtahd { background: red; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A { background: green; }\\\\n.PTH0TZDPxpREaV5cxtahd ._2MrzTmc8jtF-E5FfuMPQie { color: green; }\\\\n#_1XQl0Np_jYcDGudXKxmL8A ._2MrzTmc8jtF-E5FfuMPQie { color: blue; }\\\\n\\", \\"\\"]); // Exports @@ -6414,7 +6638,9 @@ exports.locals = { \\"className\\": \\"PTH0TZDPxpREaV5cxtahd\\", \\"someId\\": \\"_1XQl0Np_jYcDGudXKxmL8A\\", \\"subClass\\": \\"_2MrzTmc8jtF-E5FfuMPQie\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-2\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -6438,9 +6664,11 @@ exports[`"modules" option should work with case \`local-and-composes\` (\`module exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\":local(.abc) {\\\\n color: red;\\\\n}\\\\n:local(.def) {\\\\n composes: abc;\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -6468,14 +6696,16 @@ exports[`"modules" option should work with case \`local-and-composes\` (\`module exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1wzWGMZGmVz3uhGAmwbXwR {\\\\n color: red;\\\\n}\\\\n._3zcEXyCxYPLdb_6bVqY6Df {\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_1wzWGMZGmVz3uhGAmwbXwR\\", \\"def\\": \\"_3zcEXyCxYPLdb_6bVqY6Df _1wzWGMZGmVz3uhGAmwbXwR\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -6501,14 +6731,16 @@ exports[`"modules" option should work with case \`local-and-composes\` (\`module exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1wzWGMZGmVz3uhGAmwbXwR {\\\\n color: red;\\\\n}\\\\n._3zcEXyCxYPLdb_6bVqY6Df {\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_1wzWGMZGmVz3uhGAmwbXwR\\", \\"def\\": \\"_3zcEXyCxYPLdb_6bVqY6Df _1wzWGMZGmVz3uhGAmwbXwR\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -6534,14 +6766,16 @@ exports[`"modules" option should work with case \`local-and-composes\` (\`module exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._abc {\\\\n color: red;\\\\n}\\\\n._def {\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_abc\\", \\"def\\": \\"_def _abc\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -6567,14 +6801,16 @@ exports[`"modules" option should work with case \`local-and-composes\` (\`module exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._abc {\\\\n color: red;\\\\n}\\\\n._def {\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_abc\\", \\"def\\": \\"_def _abc\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -6600,14 +6836,16 @@ exports[`"modules" option should work with case \`local-and-composes\` (\`module exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1wzWGMZGmVz3uhGAmwbXwR {\\\\n color: red;\\\\n}\\\\n._3zcEXyCxYPLdb_6bVqY6Df {\\\\n background: green;\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"abc\\": \\"_1wzWGMZGmVz3uhGAmwbXwR\\", \\"def\\": \\"_3zcEXyCxYPLdb_6bVqY6Df _1wzWGMZGmVz3uhGAmwbXwR\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-and-composes\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -6633,9 +6871,11 @@ exports[`"modules" option should work with case \`local-with-string\` (\`modules exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\":local(.c1[data-attr=\\\\\\".c2)]'\\\\\\"]:not(.c3):not(.c4)) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -6659,7 +6899,7 @@ exports[`"modules" option should work with case \`local-with-string\` (\`modules exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\\\\\".c2)]'\\\\\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -6667,7 +6907,9 @@ exports.locals = { \\"c1\\": \\"_1sz8PE1ejGPcGRSnIAWKZt\\", \\"c3\\": \\"_2DFDxRic974g-wJ7S9rbP1\\", \\"c4\\": \\"xo8O_am1gQUkHa-_J-WSe\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -6690,7 +6932,7 @@ exports[`"modules" option should work with case \`local-with-string\` (\`modules exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\\\\\".c2)]'\\\\\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -6698,7 +6940,9 @@ exports.locals = { \\"c1\\": \\"_1sz8PE1ejGPcGRSnIAWKZt\\", \\"c3\\": \\"_2DFDxRic974g-wJ7S9rbP1\\", \\"c4\\": \\"xo8O_am1gQUkHa-_J-WSe\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -6721,7 +6965,7 @@ exports[`"modules" option should work with case \`local-with-string\` (\`modules exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._c1[data-attr=\\\\\\".c2)]'\\\\\\"]:not(._c3):not(._c4) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -6729,7 +6973,9 @@ exports.locals = { \\"c1\\": \\"_c1\\", \\"c3\\": \\"_c3\\", \\"c4\\": \\"_c4\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -6752,7 +6998,7 @@ exports[`"modules" option should work with case \`local-with-string\` (\`modules exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._c1[data-attr=\\\\\\".c2)]'\\\\\\"]:not(._c3):not(._c4) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -6760,7 +7006,9 @@ exports.locals = { \\"c1\\": \\"_c1\\", \\"c3\\": \\"_c3\\", \\"c4\\": \\"_c4\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -6783,7 +7031,7 @@ exports[`"modules" option should work with case \`local-with-string\` (\`modules exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1sz8PE1ejGPcGRSnIAWKZt[data-attr=\\\\\\".c2)]'\\\\\\"]:not(._2DFDxRic974g-wJ7S9rbP1):not(.xo8O_am1gQUkHa-_J-WSe) {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -6791,7 +7039,9 @@ exports.locals = { \\"c1\\": \\"_1sz8PE1ejGPcGRSnIAWKZt\\", \\"c3\\": \\"_2DFDxRic974g-wJ7S9rbP1\\", \\"c4\\": \\"xo8O_am1gQUkHa-_J-WSe\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`local-with-string\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -6814,9 +7064,11 @@ exports[`"modules" option should work with case \`media\` (\`modules\` value is exports[`"modules" option should work with case \`media\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value small: (max-width: 599px);\\\\n\\\\n@media small {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -6844,13 +7096,15 @@ exports[`"modules" option should work with case \`media\` (\`modules\` value is exports[`"modules" option should work with case \`media\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@media (max-width: 599px) {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"small\\": \\"(max-width: 599px)\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`media\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -6875,14 +7129,16 @@ exports[`"modules" option should work with case \`media\` (\`modules\` value is exports[`"modules" option should work with case \`media\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@media (max-width: 599px) {\\\\n ._1wyVAJXtjGZLoQNO_yG8b3 {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"small\\": \\"(max-width: 599px)\\", \\"header\\": \\"_1wyVAJXtjGZLoQNO_yG8b3\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`media\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -6907,13 +7163,15 @@ exports[`"modules" option should work with case \`media\` (\`modules\` value is exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@media (max-width: 599px) {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"small\\": \\"(max-width: 599px)\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -6938,14 +7196,16 @@ exports[`"modules" option should work with case \`media\` (\`modules\` value is exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@media (max-width: 599px) {\\\\n ._header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"small\\": \\"(max-width: 599px)\\", \\"header\\": \\"_header\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`media\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -6970,14 +7230,16 @@ exports[`"modules" option should work with case \`media\` (\`modules\` value is exports[`"modules" option should work with case \`media\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@media (max-width: 599px) {\\\\n ._1wyVAJXtjGZLoQNO_yG8b3 {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"small\\": \\"(max-width: 599px)\\", \\"header\\": \\"_1wyVAJXtjGZLoQNO_yG8b3\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`media\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -7002,9 +7264,11 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value small from './file.css';\\\\n@media small {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -7032,14 +7296,16 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\" {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -7071,7 +7337,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\" {\\\\n .UbDEjEuweJXO7yHMpC8qp {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); @@ -7079,7 +7345,9 @@ exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\ exports.locals = { \\"small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\"\\", \\"header\\": \\"UbDEjEuweJXO7yHMpC8qp\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -7111,14 +7379,16 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\" {\\\\n .header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -7150,7 +7420,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\" {\\\\n ._header {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); @@ -7158,7 +7428,9 @@ exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\ exports.locals = { \\"small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\"\\", \\"header\\": \\"_header\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -7190,7 +7462,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\" {\\\\n .UbDEjEuweJXO7yHMpC8qp {\\\\n box-shadow: 0 0 4px #1F4F7F;\\\\n }\\\\n}\\\\n\\", \\"\\"]); @@ -7198,7 +7470,9 @@ exports.push([module.id, \\"@media \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\ exports.locals = { \\"small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"small\\"] + \\"\\", \\"header\\": \\"UbDEjEuweJXO7yHMpC8qp\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`media-2\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -7229,9 +7503,11 @@ exports[`"modules" option should work with case \`mode-switching\` (\`modules\` exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".c1 :local .c2 .c3 :global .c4 :local .c5, .c6 :local .c7 { background: red; }\\\\n.c8 { background: red; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -7254,7 +7530,7 @@ exports[`"modules" option should work with case \`mode-switching\` (\`modules\` exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".c1 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .c6 .FBEuAfqI8VKhU-w-9RNH { background: red; }\\\\n.c8 { background: red; }\\\\n\\", \\"\\"]); // Exports @@ -7263,7 +7539,9 @@ exports.locals = { \\"c3\\": \\"_2ZTY7KJ2nkQND4VqlaSz9a\\", \\"c5\\": \\"tEu6_PTqhxImp1tyYQTWz\\", \\"c7\\": \\"FBEuAfqI8VKhU-w-9RNH\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -7285,7 +7563,7 @@ exports[`"modules" option should work with case \`mode-switching\` (\`modules\` exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._sSeqF3tTS8i-oJLOiW66 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .sUDXsigYAAb8sNlOMs_Oc .FBEuAfqI8VKhU-w-9RNH { background: red; }\\\\n._1JUWq0LIxk9cx-H1cbqyAD { background: red; }\\\\n\\", \\"\\"]); // Exports @@ -7297,7 +7575,9 @@ exports.locals = { \\"c6\\": \\"sUDXsigYAAb8sNlOMs_Oc\\", \\"c7\\": \\"FBEuAfqI8VKhU-w-9RNH\\", \\"c8\\": \\"_1JUWq0LIxk9cx-H1cbqyAD\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -7319,7 +7599,7 @@ exports[`"modules" option should work with case \`mode-switching\` (\`modules\` exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".c1 ._c2 ._c3 .c4 ._c5, .c6 ._c7 { background: red; }\\\\n.c8 { background: red; }\\\\n\\", \\"\\"]); // Exports @@ -7328,7 +7608,9 @@ exports.locals = { \\"c3\\": \\"_c3\\", \\"c5\\": \\"_c5\\", \\"c7\\": \\"_c7\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -7350,7 +7632,7 @@ exports[`"modules" option should work with case \`mode-switching\` (\`modules\` exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._c1 ._c2 ._c3 .c4 ._c5, ._c6 ._c7 { background: red; }\\\\n._c8 { background: red; }\\\\n\\", \\"\\"]); // Exports @@ -7362,7 +7644,9 @@ exports.locals = { \\"c6\\": \\"_c6\\", \\"c7\\": \\"_c7\\", \\"c8\\": \\"_c8\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -7384,7 +7668,7 @@ exports[`"modules" option should work with case \`mode-switching\` (\`modules\` exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._sSeqF3tTS8i-oJLOiW66 .LgC5kpXZK3IOCPWWctF7f ._2ZTY7KJ2nkQND4VqlaSz9a .c4 .tEu6_PTqhxImp1tyYQTWz, .sUDXsigYAAb8sNlOMs_Oc .FBEuAfqI8VKhU-w-9RNH { background: red; }\\\\n._1JUWq0LIxk9cx-H1cbqyAD { background: red; }\\\\n\\", \\"\\"]); // Exports @@ -7396,7 +7680,9 @@ exports.locals = { \\"c6\\": \\"sUDXsigYAAb8sNlOMs_Oc\\", \\"c7\\": \\"FBEuAfqI8VKhU-w-9RNH\\", \\"c8\\": \\"_1JUWq0LIxk9cx-H1cbqyAD\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`mode-switching\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -7418,9 +7704,11 @@ exports[`"modules" option should work with case \`simple\` (\`modules\` value is exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a .b, .c .d, #id {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"].x.y {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes z {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -7452,9 +7740,11 @@ exports[`"modules" option should work with case \`simple\` (\`modules\` value is exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a .b, .c .d, #id {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"].x.y {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes z {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -7486,7 +7776,7 @@ exports[`"modules" option should work with case \`simple\` (\`modules\` value is exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._3Usq4DWpHHUfARGj76o2W1 ._2sE42PHfIbHjbGigpdA5M2, ._3JN7IxYrHx5fpD-QuNH8Vg ._169FAY78xdP6MpwfqxWVlS, #_2w6DrNK6drHoI8na0s2YJu {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"]._3jqDKJEcQhMnSj5LXFzCMT._2CdavzdbxA-_uaXjgT2eG {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes eawDxhAAUQ-HvrUhhwSML {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -7499,7 +7789,9 @@ exports.locals = { \\"x\\": \\"_3jqDKJEcQhMnSj5LXFzCMT\\", \\"y\\": \\"_2CdavzdbxA-_uaXjgT2eG\\", \\"z\\": \\"eawDxhAAUQ-HvrUhhwSML\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -7530,9 +7822,11 @@ exports[`"modules" option should work with case \`simple\` (\`modules\` value is exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a .b, .c .d, #id {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"].x.y {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes z {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -7564,7 +7858,7 @@ exports[`"modules" option should work with case \`simple\` (\`modules\` value is exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._a ._b, ._c ._d, #_id {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"]._x._y {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes _z {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -7577,7 +7871,9 @@ exports.locals = { \\"x\\": \\"_x\\", \\"y\\": \\"_y\\", \\"z\\": \\"_z\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -7608,7 +7904,7 @@ exports[`"modules" option should work with case \`simple\` (\`modules\` value is exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._3Usq4DWpHHUfARGj76o2W1 ._2sE42PHfIbHjbGigpdA5M2, ._3JN7IxYrHx5fpD-QuNH8Vg ._169FAY78xdP6MpwfqxWVlS, #_2w6DrNK6drHoI8na0s2YJu {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\na[href=\\\\\\"#b.c\\\\\\"]._3jqDKJEcQhMnSj5LXFzCMT._2CdavzdbxA-_uaXjgT2eG {\\\\n\\\\tcolor: green;\\\\n\\\\tfont-size: 1.5pt;\\\\n}\\\\n@keyframes eawDxhAAUQ-HvrUhhwSML {\\\\n 2.5% {color: green;}\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -7621,7 +7917,9 @@ exports.locals = { \\"x\\": \\"_3jqDKJEcQhMnSj5LXFzCMT\\", \\"y\\": \\"_2CdavzdbxA-_uaXjgT2eG\\", \\"z\\": \\"eawDxhAAUQ-HvrUhhwSML\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`simple\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -7655,12 +7953,14 @@ var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\ var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); // Module exports.push([module.id, \\".a {\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n\\\\tbackground: url(\\\\\\"#hash\\\\\\");\\\\n\\\\tbackground: url(\\\\\\"#\\\\\\");\\\\n\\\\tbackground: url(data:image/png;base64,AAA);\\\\n\\\\tbackground: url(http://example.com/image.jpg);\\\\n\\\\tbackground: url(//example.com/image.png);\\\\n\\\\tbackground: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") xyz;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -7698,12 +7998,14 @@ var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\ var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); // Module exports.push([module.id, \\".a {\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n\\\\tbackground: url(\\\\\\"#hash\\\\\\");\\\\n\\\\tbackground: url(\\\\\\"#\\\\\\");\\\\n\\\\tbackground: url(data:image/png;base64,AAA);\\\\n\\\\tbackground: url(http://example.com/image.jpg);\\\\n\\\\tbackground: url(//example.com/image.png);\\\\n\\\\tbackground: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") xyz;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -7741,7 +8043,7 @@ var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\ var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); @@ -7750,7 +8052,9 @@ exports.push([module.id, \\"._1goi1QVFtUMjX82JoFfLLJ {\\\\n\\\\tbackground: url( // Exports exports.locals = { \\"a\\": \\"_1goi1QVFtUMjX82JoFfLLJ\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -7787,12 +8091,14 @@ var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\ var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); // Module exports.push([module.id, \\".a {\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n\\\\tbackground: url(\\\\\\"#hash\\\\\\");\\\\n\\\\tbackground: url(\\\\\\"#\\\\\\");\\\\n\\\\tbackground: url(data:image/png;base64,AAA);\\\\n\\\\tbackground: url(http://example.com/image.jpg);\\\\n\\\\tbackground: url(//example.com/image.png);\\\\n\\\\tbackground: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") xyz;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -7830,7 +8136,7 @@ var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\ var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); @@ -7839,7 +8145,9 @@ exports.push([module.id, \\"._a {\\\\n\\\\tbackground: url(\\" + ___CSS_LOADER_U // Exports exports.locals = { \\"a\\": \\"_a\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -7876,7 +8184,7 @@ var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\ var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); var ___CSS_LOADER_URL_IMPORT_1___ = require(\\"./img img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#?iefix\\" }); @@ -7885,7 +8193,9 @@ exports.push([module.id, \\"._1goi1QVFtUMjX82JoFfLLJ {\\\\n\\\\tbackground: url( // Exports exports.locals = { \\"a\\": \\"_1goi1QVFtUMjX82JoFfLLJ\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`urls\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -7919,9 +8229,11 @@ exports[`"modules" option should work with case \`values\` (\`modules\` value is exports[`"modules" option should work with case \`values\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value aaa: red;\\\\n@value bbb: green;\\\\n@value ccc: aaa;\\\\n\\\\n.a {\\\\n\\\\tbackground: aaa;\\\\n\\\\tbackground: bbb;\\\\n\\\\tbackground: ccc;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -7951,7 +8263,7 @@ exports[`"modules" option should work with case \`values\` (\`modules\` value is exports[`"modules" option should work with case \`values\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a {\\\\n\\\\tbackground: red;\\\\n\\\\tbackground: green;\\\\n\\\\tbackground: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -7959,7 +8271,9 @@ exports.locals = { \\"aaa\\": \\"red\\", \\"bbb\\": \\"green\\", \\"ccc\\": \\"red\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -7984,7 +8298,7 @@ exports[`"modules" option should work with case \`values\` (\`modules\` value is exports[`"modules" option should work with case \`values\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._18yRHBx_s3xK1t_zOjEfo {\\\\n\\\\tbackground: red;\\\\n\\\\tbackground: green;\\\\n\\\\tbackground: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -7993,7 +8307,9 @@ exports.locals = { \\"bbb\\": \\"green\\", \\"ccc\\": \\"red\\", \\"a\\": \\"_18yRHBx_s3xK1t_zOjEfo\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -8018,7 +8334,7 @@ exports[`"modules" option should work with case \`values\` (\`modules\` value is exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".a {\\\\n\\\\tbackground: red;\\\\n\\\\tbackground: green;\\\\n\\\\tbackground: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -8026,7 +8342,9 @@ exports.locals = { \\"aaa\\": \\"red\\", \\"bbb\\": \\"green\\", \\"ccc\\": \\"red\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -8051,7 +8369,7 @@ exports[`"modules" option should work with case \`values\` (\`modules\` value is exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._a {\\\\n\\\\tbackground: red;\\\\n\\\\tbackground: green;\\\\n\\\\tbackground: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -8060,7 +8378,9 @@ exports.locals = { \\"bbb\\": \\"green\\", \\"ccc\\": \\"red\\", \\"a\\": \\"_a\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -8085,7 +8405,7 @@ exports[`"modules" option should work with case \`values\` (\`modules\` value is exports[`"modules" option should work with case \`values\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._18yRHBx_s3xK1t_zOjEfo {\\\\n\\\\tbackground: red;\\\\n\\\\tbackground: green;\\\\n\\\\tbackground: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -8094,7 +8414,9 @@ exports.locals = { \\"bbb\\": \\"green\\", \\"ccc\\": \\"red\\", \\"a\\": \\"_18yRHBx_s3xK1t_zOjEfo\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -8119,9 +8441,11 @@ exports[`"modules" option should work with case \`values-1\` (\`modules\` value exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value def: red;\\\\n@value ghi: 1px solid black;\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -8144,14 +8468,16 @@ exports[`"modules" option should work with case \`values-1\` (\`modules\` value exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\", \\"ghi\\": \\"1px solid black\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -8172,14 +8498,16 @@ exports[`"modules" option should work with case \`values-1\` (\`modules\` value exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\", \\"ghi\\": \\"1px solid black\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -8200,14 +8528,16 @@ exports[`"modules" option should work with case \`values-1\` (\`modules\` value exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\", \\"ghi\\": \\"1px solid black\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -8228,14 +8558,16 @@ exports[`"modules" option should work with case \`values-1\` (\`modules\` value exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\", \\"ghi\\": \\"1px solid black\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -8256,14 +8588,16 @@ exports[`"modules" option should work with case \`values-1\` (\`modules\` value exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\", \\"ghi\\": \\"1px solid black\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-1\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -8284,9 +8618,11 @@ exports[`"modules" option should work with case \`values-2\` (\`modules\` value exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value def: red;\\\\n.ghi { color: def; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -8309,13 +8645,15 @@ exports[`"modules" option should work with case \`values-2\` (\`modules\` value exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".ghi { color: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -8336,14 +8674,16 @@ exports[`"modules" option should work with case \`values-2\` (\`modules\` value exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._2aKAT4pAinaabqEIFgdhTC { color: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\", \\"ghi\\": \\"_2aKAT4pAinaabqEIFgdhTC\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -8364,13 +8704,15 @@ exports[`"modules" option should work with case \`values-2\` (\`modules\` value exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".ghi { color: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -8391,14 +8733,16 @@ exports[`"modules" option should work with case \`values-2\` (\`modules\` value exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._ghi { color: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\", \\"ghi\\": \\"_ghi\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -8419,14 +8763,16 @@ exports[`"modules" option should work with case \`values-2\` (\`modules\` value exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._2aKAT4pAinaabqEIFgdhTC { color: red; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\", \\"ghi\\": \\"_2aKAT4pAinaabqEIFgdhTC\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-2\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -8447,9 +8793,11 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value def from './file.css';\\\\n.ghi { color: def; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -8473,14 +8821,16 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".ghi { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -8508,7 +8858,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._29ART3-NNe4DU1X-5_7419 { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -8516,7 +8866,9 @@ exports.push([module.id, \\"._29ART3-NNe4DU1X-5_7419 { color: \\" + ___CSS_LOADE exports.locals = { \\"def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", \\"ghi\\": \\"_29ART3-NNe4DU1X-5_7419\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -8544,14 +8896,16 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".ghi { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -8579,7 +8933,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._ghi { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -8587,7 +8941,9 @@ exports.push([module.id, \\"._ghi { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___. exports.locals = { \\"def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", \\"ghi\\": \\"_ghi\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -8615,7 +8971,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._29ART3-NNe4DU1X-5_7419 { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -8623,7 +8979,9 @@ exports.push([module.id, \\"._29ART3-NNe4DU1X-5_7419 { color: \\" + ___CSS_LOADE exports.locals = { \\"def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", \\"ghi\\": \\"_29ART3-NNe4DU1X-5_7419\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-3\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -8650,9 +9008,11 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value def as aaa from './file1.css';\\\\n@value def as bbb from './file2.css';\\\\n.ghi { background: aaa, bbb, def; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -8678,7 +9038,7 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -8687,7 +9047,9 @@ exports.push([module.id, \\".ghi { background: \\" + ___CSS_LOADER_ICSS_IMPORT_0 exports.locals = { \\"aaa\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", \\"bbb\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -8722,7 +9084,7 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -8732,7 +9094,9 @@ exports.locals = { \\"aaa\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", \\"bbb\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\"\\", \\"ghi\\": \\"_1vGjNPdz_qWrUvzTY2pCsS\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -8767,7 +9131,7 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -8776,7 +9140,9 @@ exports.push([module.id, \\".ghi { background: \\" + ___CSS_LOADER_ICSS_IMPORT_0 exports.locals = { \\"aaa\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", \\"bbb\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -8811,7 +9177,7 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -8821,7 +9187,9 @@ exports.locals = { \\"aaa\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", \\"bbb\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\"\\", \\"ghi\\": \\"_ghi\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -8856,7 +9224,7 @@ exports[`"modules" option should work with case \`values-4\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../../src/index.js??[ident]!./file2.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); exports.i(___CSS_LOADER_ICSS_IMPORT_1___); // Module @@ -8866,7 +9234,9 @@ exports.locals = { \\"aaa\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"\\", \\"bbb\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\"\\", \\"ghi\\": \\"_1vGjNPdz_qWrUvzTY2pCsS\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-4\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -8899,9 +9269,11 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value color from './file1.css';\\\\n@value shadow: 0 0 color,0 0 color;\\\\n.ghi { box-shadow: shadow; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -8926,7 +9298,7 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -8934,7 +9306,9 @@ exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPO exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -8962,7 +9336,7 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._3Uw-A6Tr2LkIED6NTqwFvj { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -8971,7 +9345,9 @@ exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"ghi\\": \\"_3Uw-A6Tr2LkIED6NTqwFvj\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -8999,7 +9375,7 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9007,7 +9383,9 @@ exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPO exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -9035,7 +9413,7 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9044,7 +9422,9 @@ exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"ghi\\": \\"_ghi\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -9072,7 +9452,7 @@ exports[`"modules" option should work with case \`values-5\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._3Uw-A6Tr2LkIED6NTqwFvj { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9081,7 +9461,9 @@ exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\",0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"ghi\\": \\"_3Uw-A6Tr2LkIED6NTqwFvj\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-5\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -9108,9 +9490,11 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value color from './file1.css';\\\\n@value shadow: 0 0 color ,0 0 color;\\\\n.ghi { box-shadow: shadow; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -9135,7 +9519,7 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9143,7 +9527,9 @@ exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPO exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -9171,7 +9557,7 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._2qKjolC-wu9Dp8-RCkWiLN { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9180,7 +9566,9 @@ exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"ghi\\": \\"_2qKjolC-wu9Dp8-RCkWiLN\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -9208,7 +9596,7 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9216,7 +9604,9 @@ exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPO exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -9244,7 +9634,7 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9253,7 +9643,9 @@ exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"ghi\\": \\"_ghi\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -9281,7 +9673,7 @@ exports[`"modules" option should work with case \`values-6\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._2qKjolC-wu9Dp8-RCkWiLN { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9290,7 +9682,9 @@ exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\" ,0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"ghi\\": \\"_2qKjolC-wu9Dp8-RCkWiLN\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-6\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -9317,9 +9711,11 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value color from './file1.css';\\\\n@value shadow: 0 0 color, 0 0 color;\\\\n.ghi { box-shadow: shadow; }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -9344,7 +9740,7 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9352,7 +9748,9 @@ exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPO exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -9380,7 +9778,7 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._1SVUxnI1T0vYEcq2VXU5pr { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9389,7 +9787,9 @@ exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"ghi\\": \\"_1SVUxnI1T0vYEcq2VXU5pr\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -9417,7 +9817,7 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9425,7 +9825,9 @@ exports.push([module.id, \\".ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPO exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -9453,7 +9855,7 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._ghi { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9462,7 +9864,9 @@ exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"ghi\\": \\"_ghi\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -9490,7 +9894,7 @@ exports[`"modules" option should work with case \`values-7\` (\`modules\` value "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file1.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_ICSS_IMPORT_0___); // Module exports.push([module.id, \\"._1SVUxnI1T0vYEcq2VXU5pr { box-shadow: 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"; }\\\\n\\", \\"\\"]); @@ -9499,7 +9903,9 @@ exports.locals = { \\"color\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"shadow\\": \\"0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\", 0 0 \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"color\\"] + \\"\\", \\"ghi\\": \\"_1SVUxnI1T0vYEcq2VXU5pr\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-7\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -9526,9 +9932,11 @@ exports[`"modules" option should work with case \`values-8\` (\`modules\` value exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value shadow-color: rgba(0, 0, 0, 0.5);\\\\n\\\\n.shadow {\\\\n box-shadow: 0 10px 10px shadow-color,\\\\n 10px 0px 5px shadow-color;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -9555,13 +9963,15 @@ exports[`"modules" option should work with case \`values-8\` (\`modules\` value exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".shadow {\\\\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),\\\\n 10px 0px 5px rgba(0, 0, 0, 0.5);\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"shadow-color\\": \\"rgba(0, 0, 0, 0.5)\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -9585,14 +9995,16 @@ exports[`"modules" option should work with case \`values-8\` (\`modules\` value exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._3fhB2YwAmhjTmtcd6ofBQH {\\\\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),\\\\n 10px 0px 5px rgba(0, 0, 0, 0.5);\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"shadow-color\\": \\"rgba(0, 0, 0, 0.5)\\", \\"shadow\\": \\"_3fhB2YwAmhjTmtcd6ofBQH\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -9616,13 +10028,15 @@ exports[`"modules" option should work with case \`values-8\` (\`modules\` value exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".shadow {\\\\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),\\\\n 10px 0px 5px rgba(0, 0, 0, 0.5);\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"shadow-color\\": \\"rgba(0, 0, 0, 0.5)\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -9646,14 +10060,16 @@ exports[`"modules" option should work with case \`values-8\` (\`modules\` value exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._shadow {\\\\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),\\\\n 10px 0px 5px rgba(0, 0, 0, 0.5);\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"shadow-color\\": \\"rgba(0, 0, 0, 0.5)\\", \\"shadow\\": \\"_shadow\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -9677,14 +10093,16 @@ exports[`"modules" option should work with case \`values-8\` (\`modules\` value exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._3fhB2YwAmhjTmtcd6ofBQH {\\\\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.5),\\\\n 10px 0px 5px rgba(0, 0, 0, 0.5);\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"shadow-color\\": \\"rgba(0, 0, 0, 0.5)\\", \\"shadow\\": \\"_3fhB2YwAmhjTmtcd6ofBQH\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-8\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -9708,9 +10126,11 @@ exports[`"modules" option should work with case \`values-9\` (\`modules\` value exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value def: red;\\\\n\\\\n.foo1 {\\\\n prop: func(def);\\\\n}\\\\n\\\\n.foo2 {\\\\n prop: func(10px def);\\\\n}\\\\n\\\\n.foo3 {\\\\n prop: func(def 10px);\\\\n}\\\\n\\\\n.foo4 {\\\\n prop: func(10px def 10px);\\\\n}\\\\n\\\\n.foo5 {\\\\n prop: func(10px, def);\\\\n}\\\\n\\\\n.foo6 {\\\\n prop: func(def, 10px);\\\\n}\\\\n\\\\n.foo7 {\\\\n prop: func(10px, def, 10px);\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -9760,13 +10180,15 @@ exports[`"modules" option should work with case \`values-9\` (\`modules\` value exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".foo1 {\\\\n prop: func(red);\\\\n}\\\\n\\\\n.foo2 {\\\\n prop: func(10px red);\\\\n}\\\\n\\\\n.foo3 {\\\\n prop: func(red 10px);\\\\n}\\\\n\\\\n.foo4 {\\\\n prop: func(10px red 10px);\\\\n}\\\\n\\\\n.foo5 {\\\\n prop: func(10px, red);\\\\n}\\\\n\\\\n.foo6 {\\\\n prop: func(red, 10px);\\\\n}\\\\n\\\\n.foo7 {\\\\n prop: func(10px, red, 10px);\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -9813,7 +10235,7 @@ exports[`"modules" option should work with case \`values-9\` (\`modules\` value exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1V2U7x4U8oxxooLcDA25iL {\\\\n prop: func(red);\\\\n}\\\\n\\\\n._3E1mOwwzg7yDREAM1sTqrf {\\\\n prop: func(10px red);\\\\n}\\\\n\\\\n._1jURUggvUGFLzQ1zAWjNep {\\\\n prop: func(red 10px);\\\\n}\\\\n\\\\n._2gTeanreYt1oKNw6pvYDuQ {\\\\n prop: func(10px red 10px);\\\\n}\\\\n\\\\n._1FHimE7YIOvZ66qJzb5oD7 {\\\\n prop: func(10px, red);\\\\n}\\\\n\\\\n._2ZsNKxzBYz6NW_ITMiAbSo {\\\\n prop: func(red, 10px);\\\\n}\\\\n\\\\n._18TpSE38_jlCbLotZMXh67 {\\\\n prop: func(10px, red, 10px);\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -9826,7 +10248,9 @@ exports.locals = { \\"foo5\\": \\"_1FHimE7YIOvZ66qJzb5oD7\\", \\"foo6\\": \\"_2ZsNKxzBYz6NW_ITMiAbSo\\", \\"foo7\\": \\"_18TpSE38_jlCbLotZMXh67\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -9873,13 +10297,15 @@ exports[`"modules" option should work with case \`values-9\` (\`modules\` value exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".foo1 {\\\\n prop: func(red);\\\\n}\\\\n\\\\n.foo2 {\\\\n prop: func(10px red);\\\\n}\\\\n\\\\n.foo3 {\\\\n prop: func(red 10px);\\\\n}\\\\n\\\\n.foo4 {\\\\n prop: func(10px red 10px);\\\\n}\\\\n\\\\n.foo5 {\\\\n prop: func(10px, red);\\\\n}\\\\n\\\\n.foo6 {\\\\n prop: func(red, 10px);\\\\n}\\\\n\\\\n.foo7 {\\\\n prop: func(10px, red, 10px);\\\\n}\\\\n\\", \\"\\"]); // Exports exports.locals = { \\"def\\": \\"red\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -9926,7 +10352,7 @@ exports[`"modules" option should work with case \`values-9\` (\`modules\` value exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._foo1 {\\\\n prop: func(red);\\\\n}\\\\n\\\\n._foo2 {\\\\n prop: func(10px red);\\\\n}\\\\n\\\\n._foo3 {\\\\n prop: func(red 10px);\\\\n}\\\\n\\\\n._foo4 {\\\\n prop: func(10px red 10px);\\\\n}\\\\n\\\\n._foo5 {\\\\n prop: func(10px, red);\\\\n}\\\\n\\\\n._foo6 {\\\\n prop: func(red, 10px);\\\\n}\\\\n\\\\n._foo7 {\\\\n prop: func(10px, red, 10px);\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -9939,7 +10365,9 @@ exports.locals = { \\"foo5\\": \\"_foo5\\", \\"foo6\\": \\"_foo6\\", \\"foo7\\": \\"_foo7\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -9986,7 +10414,7 @@ exports[`"modules" option should work with case \`values-9\` (\`modules\` value exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._1V2U7x4U8oxxooLcDA25iL {\\\\n prop: func(red);\\\\n}\\\\n\\\\n._3E1mOwwzg7yDREAM1sTqrf {\\\\n prop: func(10px red);\\\\n}\\\\n\\\\n._1jURUggvUGFLzQ1zAWjNep {\\\\n prop: func(red 10px);\\\\n}\\\\n\\\\n._2gTeanreYt1oKNw6pvYDuQ {\\\\n prop: func(10px red 10px);\\\\n}\\\\n\\\\n._1FHimE7YIOvZ66qJzb5oD7 {\\\\n prop: func(10px, red);\\\\n}\\\\n\\\\n._2ZsNKxzBYz6NW_ITMiAbSo {\\\\n prop: func(red, 10px);\\\\n}\\\\n\\\\n._18TpSE38_jlCbLotZMXh67 {\\\\n prop: func(10px, red, 10px);\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -9999,7 +10427,9 @@ exports.locals = { \\"foo5\\": \\"_1FHimE7YIOvZ66qJzb5oD7\\", \\"foo6\\": \\"_2ZsNKxzBYz6NW_ITMiAbSo\\", \\"foo7\\": \\"_18TpSE38_jlCbLotZMXh67\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-9\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -10046,9 +10476,11 @@ exports[`"modules" option should work with case \`values-10\` (\`modules\` value exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`false)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"@value v-primary: #BF4040;\\\\n@value s-black: black-selector;\\\\n@value m-large: (min-width: 960px);\\\\n\\\\n.header {\\\\n color: v-primary;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n.s-black {\\\\n color: black;\\\\n}\\\\n\\\\n@media m-large {\\\\n .header {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -10087,7 +10519,7 @@ exports[`"modules" option should work with case \`values-10\` (\`modules\` value exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".header {\\\\n color: #BF4040;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n.black-selector {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .header {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -10095,7 +10527,9 @@ exports.locals = { \\"v-primary\\": \\"#BF4040\\", \\"s-black\\": \\"black-selector\\", \\"m-large\\": \\"(min-width: 960px)\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`global)\`: result 1`] = ` @@ -10129,7 +10563,7 @@ exports[`"modules" option should work with case \`values-10\` (\`modules\` value exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".ODvOrT6QaJbrNxuVwTgHn {\\\\n color: #BF4040;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n._3xId28FIeFVmNWx5IWeWqN {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .ODvOrT6QaJbrNxuVwTgHn {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -10139,7 +10573,9 @@ exports.locals = { \\"m-large\\": \\"(min-width: 960px)\\", \\"header\\": \\"ODvOrT6QaJbrNxuVwTgHn\\", \\"black-selector\\": \\"_3xId28FIeFVmNWx5IWeWqN\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`local)\`: result 1`] = ` @@ -10173,7 +10609,7 @@ exports[`"modules" option should work with case \`values-10\` (\`modules\` value exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode global)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".header {\\\\n color: #BF4040;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n.black-selector {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .header {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -10181,7 +10617,9 @@ exports.locals = { \\"v-primary\\": \\"#BF4040\\", \\"s-black\\": \\"black-selector\\", \\"m-large\\": \\"(min-width: 960px)\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode global)\`: result 1`] = ` @@ -10215,7 +10653,7 @@ exports[`"modules" option should work with case \`values-10\` (\`modules\` value exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode local)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"._header {\\\\n color: #BF4040;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n._black-selector {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n ._header {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -10225,7 +10663,9 @@ exports.locals = { \\"m-large\\": \\"(min-width: 960px)\\", \\"header\\": \\"_header\\", \\"black-selector\\": \\"_black-selector\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`object with mode local)\`: result 1`] = ` @@ -10259,7 +10699,7 @@ exports[`"modules" option should work with case \`values-10\` (\`modules\` value exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`true)\`: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".ODvOrT6QaJbrNxuVwTgHn {\\\\n color: #BF4040;\\\\n padding: 0 10px;\\\\n}\\\\n\\\\n._3xId28FIeFVmNWx5IWeWqN {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .ODvOrT6QaJbrNxuVwTgHn {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -10269,7 +10709,9 @@ exports.locals = { \\"m-large\\": \\"(min-width: 960px)\\", \\"header\\": \\"ODvOrT6QaJbrNxuVwTgHn\\", \\"black-selector\\": \\"_3xId28FIeFVmNWx5IWeWqN\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with case \`values-10\` (\`modules\` value is \`true)\`: result 1`] = ` @@ -10303,7 +10745,7 @@ exports[`"modules" option should work with the "[local]" placeholder for the "lo exports[`"modules" option should work with the "[local]" placeholder for the "localIdentName" option: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".test {\\\\n background: red;\\\\n}\\\\n\\\\n._test {\\\\n background: blue;\\\\n}\\\\n\\\\n.className {\\\\n background: red;\\\\n}\\\\n\\\\n#someId {\\\\n background: green;\\\\n}\\\\n\\\\n.className .subClass {\\\\n color: green;\\\\n}\\\\n\\\\n#someId .subClass {\\\\n color: blue;\\\\n}\\\\n\\\\n.-a0-34a___f {\\\\n color: red;\\\\n}\\\\n\\\\n.m_x_\\\\\\\\@ {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n.B\\\\\\\\&W\\\\\\\\? {\\\\n margin-left: auto !important;\\\\n margin-right: auto !important;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {\\\\n color: aqua;\\\\n}\\\\n\\\\n/* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {\\\\n color: aliceblue;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#\\\\\\\\#fake-id {\\\\n color: antiquewhite;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#-a-b-c- {\\\\n color: azure;\\\\n}\\\\n\\\\n/* matches the element with id=\\\\\\"©\\\\\\" */\\\\n#© {\\\\n color: black;\\\\n}\\\\n\\\\n.♥ { background: lime; }\\\\n.© { background: lime; }\\\\n.“‘’” { background: lime; }\\\\n.☺☃ { background: lime; }\\\\n.⌘⌥ { background: lime; }\\\\n.𝄞♪♩♫♬ { background: lime; }\\\\n.💩 { background: lime; }\\\\n.\\\\\\\\? { background: lime; }\\\\n.\\\\\\\\@ { background: lime; }\\\\n.\\\\\\\\. { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\) { background: lime; }\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( { background: lime; }\\\\n.\\\\\\\\31 23 { background: lime; }\\\\n.\\\\\\\\31 a2b3c { background: lime; }\\\\n.\\\\\\\\ { background: lime; }\\\\n.\\\\\\\\<\\\\\\\\>\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\>\\\\\\\\>\\\\\\\\<\\\\\\\\> { background: lime; }\\\\n.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\[\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\>\\\\\\\\+\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\<\\\\\\\\-\\\\\\\\]\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\<\\\\\\\\<\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\.\\\\\\\\+\\\\\\\\+\\\\\\\\+\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\-\\\\\\\\.\\\\\\\\>\\\\\\\\+\\\\\\\\.\\\\\\\\>\\\\\\\\. { background: lime; }\\\\n.\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\#\\\\\\\\.\\\\\\\\#\\\\\\\\.\\\\\\\\# { background: lime; }\\\\n.\\\\\\\\_ { background: lime; }\\\\n.\\\\\\\\{\\\\\\\\} { background: lime; }\\\\n.\\\\\\\\#fake\\\\\\\\-id { background: lime; }\\\\n.foo\\\\\\\\.bar { background: lime; }\\\\n.\\\\\\\\3A hover { background: lime; }\\\\n.\\\\\\\\3A hover\\\\\\\\3A focus\\\\\\\\3A active { background: lime; }\\\\n.\\\\\\\\[attr\\\\\\\\=value\\\\\\\\] { background: lime; }\\\\n.f\\\\\\\\/o\\\\\\\\/o { background: lime; }\\\\n.f\\\\\\\\\\\\\\\\o\\\\\\\\\\\\\\\\o { background: lime; }\\\\n.f\\\\\\\\*o\\\\\\\\*o { background: lime; }\\\\n.f\\\\\\\\!o\\\\\\\\!o { background: lime; }\\\\n.f\\\\\\\\'o\\\\\\\\'o { background: lime; }\\\\n.f\\\\\\\\~o\\\\\\\\~o { background: lime; }\\\\n.f\\\\\\\\+o\\\\\\\\+o { background: lime; }\\\\n\\\\n.foo\\\\\\\\/bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\/bar\\\\\\\\/baz {\\\\n background: hotpink;\\\\n}\\\\n\\\\n.foo\\\\\\\\\\\\\\\\bar\\\\\\\\\\\\\\\\baz {\\\\n background: hotpink;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -10355,7 +10797,9 @@ exports.locals = { \\"foo\\\\\\\\bar\\": \\"foo\\\\\\\\bar\\", \\"foo/bar/baz\\": \\"foo/bar/baz\\", \\"foo\\\\\\\\bar\\\\\\\\baz\\": \\"foo\\\\\\\\bar\\\\\\\\baz\\" -};" +}; +module.exports = exports; +" `; exports[`"modules" option should work with the "[local]" placeholder for the "localIdentName" option: result 1`] = ` diff --git a/test/__snapshots__/onlyLocals-option.test.js.snap b/test/__snapshots__/onlyLocals-option.test.js.snap index 85a5a955..0ec7a29e 100644 --- a/test/__snapshots__/onlyLocals-option.test.js.snap +++ b/test/__snapshots__/onlyLocals-option.test.js.snap @@ -57,7 +57,8 @@ module.exports = { \\"header\\": \\"_header\\", \\"foobarbaz\\": \\"_foobarbaz\\", \\"url\\": \\"_url\\" -};" +}; +" `; exports[`"onlyLocals" option should work: result 1`] = ` diff --git a/test/__snapshots__/sourceMap-option.test.js.snap b/test/__snapshots__/sourceMap-option.test.js.snap index ec3d2b85..34094921 100644 --- a/test/__snapshots__/sourceMap-option.test.js.snap +++ b/test/__snapshots__/sourceMap-option.test.js.snap @@ -5,9 +5,11 @@ exports[`"sourceMap" option false should not generate source maps when source ma exports[`"sourceMap" option false should not generate source maps when source maps equal to "null" from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -31,9 +33,11 @@ exports[`"sourceMap" option false should not generate source maps when source ma exports[`"sourceMap" option false should not generate source maps when source maps equal to "undefined" from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -57,9 +61,11 @@ exports[`"sourceMap" option false should not generate source maps when source ma exports[`"sourceMap" option false should not generate source maps when source maps is valid and string from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -83,9 +89,11 @@ exports[`"sourceMap" option false should not generate source maps when source ma exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`postcss-loader\`): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\":root {\\\\n --fontSize: 1rem;\\\\n --mainColor: rgba(18,52,86,0.47059);\\\\n --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n overflow-x: hidden;\\\\n overflow-y: auto;\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n body {\\\\n color: rgba(18,52,86,0.47059);\\\\n color: var(--mainColor);\\\\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n font-size: 1rem;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(1rem * 1.5);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n word-wrap: break-word;\\\\n padding-left: calc(1rem / 2 + 1px);\\\\n padding-right: calc(1rem / 2 + 1px);\\\\n padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n margin-top: 0;\\\\n margin-bottom: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n color: #639;\\\\n }\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -147,9 +155,11 @@ exports[`"sourceMap" option false should not generate source maps when source ma exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`sass-loader\`): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -173,9 +183,11 @@ exports[`"sourceMap" option false should not generate source maps: errors 1`] = exports[`"sourceMap" option false should not generate source maps: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -199,9 +211,11 @@ exports[`"sourceMap" option not specified should not generate source maps: error exports[`"sourceMap" option not specified should not generate source maps: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -225,9 +239,11 @@ exports[`"sourceMap" option true should generate source maps when source maps eq exports[`"sourceMap" option true should generate source maps when source maps equal to "null" from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(true); +exports = ___CSS_LOADER_API_IMPORT___(true); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +// Exports +module.exports = exports; " `; @@ -266,9 +282,11 @@ exports[`"sourceMap" option true should generate source maps when source maps eq exports[`"sourceMap" option true should generate source maps when source maps equal to "undefined" from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(true); +exports = ___CSS_LOADER_API_IMPORT___(true); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +// Exports +module.exports = exports; " `; @@ -307,9 +325,11 @@ exports[`"sourceMap" option true should generate source maps when source maps is exports[`"sourceMap" option true should generate source maps when source maps is valid and string from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(true); +exports = ___CSS_LOADER_API_IMPORT___(true); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +// Exports +module.exports = exports; " `; @@ -348,9 +368,11 @@ exports[`"sourceMap" option true should generate source maps when source maps is exports[`"sourceMap" option true should generate source maps when source maps is valid from an other loader (\`postcss-loader\`): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(true); +exports = ___CSS_LOADER_API_IMPORT___(true); // Module exports.push([module.id, \\":root {\\\\n --fontSize: 1rem;\\\\n --mainColor: rgba(18,52,86,0.47059);\\\\n --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n overflow-x: hidden;\\\\n overflow-y: auto;\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n body {\\\\n color: rgba(18,52,86,0.47059);\\\\n color: var(--mainColor);\\\\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n font-size: 1rem;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(1rem * 1.5);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n word-wrap: break-word;\\\\n padding-left: calc(1rem / 2 + 1px);\\\\n padding-right: calc(1rem / 2 + 1px);\\\\n padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n margin-top: 0;\\\\n margin-bottom: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n color: #639;\\\\n }\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.postcss.css\\"],\\"names\\":[],\\"mappings\\":\\"AAGA;EACE,gBAAgB;EAChB,mCAAsB;EACtB,yCAA4C;AAC9C;;AAEA;EACE,kBAAqB;EAArB,gBAAqB;EAArB,qBAAqB;AACvB;;AAEA;EACE;IACE,6BAAuB;IAAvB,uBAAuB;IACvB,iGAAsB;IACtB,eAA0B;IAA1B,0BAA0B;IAC1B,6BAAwC;IAAxC,wCAAwC;IACxC,qBAAyB;IACzB,kCAA+C;IAA/C,mCAA+C;IAA/C,6CAA+C;IAA/C,8CAA+C;EACjD;AACF;;AAEA;EACE,aAAe;EAAf,gBAAe;AACjB;;AAEA;EACE;AAKF;;AAHA;GACG,WAAoB;CACtB\\",\\"file\\":\\"basic.postcss.css\\",\\"sourcesContent\\":[\\"@custom-media --viewport-medium (width <= 50rem);\\\\n@custom-selector :--heading h1, h2, h3, h4, h5, h6;\\\\n\\\\n:root {\\\\n --fontSize: 1rem;\\\\n --mainColor: #12345678;\\\\n --secondaryColor: lab(32.5 38.5 -47.6 / 90%);\\\\n}\\\\n\\\\nhtml {\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (--viewport-medium) {\\\\n body {\\\\n color: var(--mainColor);\\\\n font-family: system-ui;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n overflow-wrap: break-word;\\\\n padding-inline: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\n:--heading {\\\\n margin-block: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgb(0 0 100% / 90%);\\\\n\\\\n&:hover {\\\\n color: rebeccapurple;\\\\n }\\\\n}\\\\n\\"]}]); +// Exports +module.exports = exports; " `; @@ -459,9 +481,11 @@ exports[`"sourceMap" option true should generate source maps: errors 1`] = `Arra exports[`"sourceMap" option true should generate source maps: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(true); +exports = ___CSS_LOADER_API_IMPORT___(true); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +// Exports +module.exports = exports; " `; diff --git a/test/__snapshots__/url-option.test.js.snap b/test/__snapshots__/url-option.test.js.snap index 8cd1fb6c..0fae4c49 100644 --- a/test/__snapshots__/url-option.test.js.snap +++ b/test/__snapshots__/url-option.test.js.snap @@ -34,7 +34,7 @@ var ___CSS_LOADER_URL_IMPORT_23___ = require(\\"./img'''img.png\\"); var ___CSS_LOADER_URL_IMPORT_24___ = require(\\"./img(img.png\\"); var ___CSS_LOADER_URL_IMPORT_25___ = require(\\"./img)img.png\\"); var ___CSS_LOADER_URL_IMPORT_26___ = require(\\"./img'() img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); @@ -75,6 +75,8 @@ var ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS var ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___); // Module exports.push([module.id, \\".class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n\\\\n background-image: image-set(\\\\n \\\\n \\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -523,7 +525,7 @@ var ___CSS_LOADER_URL_IMPORT_10___ = require(\\"../url/img-simple.png\\"); var ___CSS_LOADER_URL_IMPORT_11___ = require(\\"./img3x.png\\"); var ___CSS_LOADER_URL_IMPORT_12___ = require(\\"./img1x.png?foo=bar\\"); var ___CSS_LOADER_URL_IMPORT_13___ = require(\\"./img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); @@ -548,6 +550,8 @@ var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); // Module exports.push([module.id, \\".class {\\\\n background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\\\\\"./img.png\\\\\\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(./img\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\(img.png);\\\\n background: url(./img\\\\\\\\)img.png);\\\\n background: url(./img\\\\\\\\ img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n url(./img\\\\\\\\'img.png) 3x,\\\\n url(./img\\\\\\\\(img.png) 4x,\\\\n url(./img\\\\\\\\)img.png) 5x,\\\\n url(./img\\\\\\\\ img.png) 6x,\\\\n url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n background: url(\\\\\\"./img'img.png\\\\\\");\\\\n background: url(\\\\\\"./img(img.png\\\\\\");\\\\n background: url(\\\\\\"./img)img.png\\\\\\");\\\\n background: url('./img img.png');\\\\n background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n background: url(./img%27%27%27img.png);\\\\n background: url(./img%27%28%29%20img.png);\\\\n background: url(./img%27img.png);\\\\n background: url(./img%28img.png);\\\\n background: url(./img%29img.png);\\\\n background: url(./img%20img.png);\\\\n}\\\\n\\\\n.qqq {\\\\n background: url('img.png');\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\(img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\)img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n background: url(\\\\\\"./img\\\\\\\\27img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\28%29 img.png\\\\\\");\\\\n background: url(./img\\\\\\\\'\\\\\\\\28%29\\\\\\\\ img.png);\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -986,10 +990,12 @@ exports[`"url" option should work with a value equal to "false": module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".class {\\\\n background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\\\\\"./img.png\\\\\\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(./font.woff) format('woff'),\\\\n url('./font.woff2') format('woff2'),\\\\n url(\\\\\\"./font.eot\\\\\\") format('eot'),\\\\n url(~package/font.ttf) format('truetype'),\\\\n url(\\\\\\"./font with spaces.eot\\\\\\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url('./font.svg#svgFontName') format('svg'),\\\\n url('./font.woff2?foo=bar') format('woff2'),\\\\n url(\\\\\\"./font.eot?#iefix\\\\\\") format('embedded-opentype'),\\\\n url(\\\\\\"./font with spaces.eot?#iefix\\\\\\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url('img-simple.png');\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url('../url/img-simple.png');\\\\n}\\\\n\\\\n.tilde {\\\\n background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x),\\\\n image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\n \\\\\\"./img1x.png\\\\\\" 1x,\\\\n \\\\\\"./img2x.png\\\\\\" 2x,\\\\n \\\\\\"./img3x.png\\\\\\" 600dpi\\\\n );\\\\n background-image: image-set(\\\\\\"./img1x.png?foo=bar\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png#hash\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png?#iefix\\\\\\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\\\\\"./img1x.png\\\\\\") 1x\\\\n );\\\\n background-image: image-set(url(./img1x.png) 1x);\\\\n background-image: image-set(\\\\n url(./img1x.png) 1x\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n background-image: image-set(\\\\n url(./img1x.png) 1x,\\\\n url(./img2x.png) 2x,\\\\n url(./img3x.png) 600dpi\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(./img\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\(img.png);\\\\n background: url(./img\\\\\\\\)img.png);\\\\n background: url(./img\\\\\\\\ img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n url(./img\\\\\\\\'img.png) 3x,\\\\n url(./img\\\\\\\\(img.png) 4x,\\\\n url(./img\\\\\\\\)img.png) 5x,\\\\n url(./img\\\\\\\\ img.png) 6x,\\\\n url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n background: url(\\\\\\"./img'img.png\\\\\\");\\\\n background: url(\\\\\\"./img(img.png\\\\\\");\\\\n background: url(\\\\\\"./img)img.png\\\\\\");\\\\n background: url('./img img.png');\\\\n background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n background: url(./img%27%27%27img.png);\\\\n background: url(./img%27%28%29%20img.png);\\\\n background: url(./img%27img.png);\\\\n background: url(./img%28img.png);\\\\n background: url(./img%29img.png);\\\\n background: url(./img%20img.png);\\\\n}\\\\n\\\\n.qqq {\\\\n background: url('img.png');\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\(img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\)img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./\\\\\\\\69\\\\\\\\6D\\\\\\\\67.png\\\\\\");\\\\n background: url(./\\\\\\\\69\\\\\\\\6D\\\\\\\\67.png);\\\\n background: url(\\\\\\"./img\\\\\\\\27img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\28%29 img.png\\\\\\");\\\\n background: url(./img\\\\\\\\'\\\\\\\\28%29\\\\\\\\ img.png);\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; @@ -1390,7 +1396,7 @@ var ___CSS_LOADER_URL_IMPORT_23___ = require(\\"./img'''img.png\\"); var ___CSS_LOADER_URL_IMPORT_24___ = require(\\"./img(img.png\\"); var ___CSS_LOADER_URL_IMPORT_25___ = require(\\"./img)img.png\\"); var ___CSS_LOADER_URL_IMPORT_26___ = require(\\"./img'() img.png\\"); -exports = module.exports = ___CSS_LOADER_API_IMPORT___(false); +exports = ___CSS_LOADER_API_IMPORT___(false); exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); @@ -1431,6 +1437,8 @@ var ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS var ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___); // Module exports.push([module.id, \\".class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n\\\\n background-image: image-set(\\\\n \\\\n \\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; " `; From d358cdbe2c026afafa0279003cb6c8a3eff4c419 Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Tue, 17 Dec 2019 13:20:41 +0300 Subject: [PATCH 6/9] feat: `esModule` option (#1026) --- README.md | 29 ++ package-lock.json | 12 +- src/index.js | 9 +- src/options.json | 4 + src/utils.js | 87 ++++-- .../esModule-option.test.js.snap | 283 ++++++++++++++++++ test/__snapshots__/loader.test.js.snap | 4 + .../onlyLocals-option.test.js.snap | 112 +++++++ .../validate-options.test.js.snap | 22 +- test/esModule-option.test.js | 103 +++++++ test/fixtures/es-module/img.png | Bin 0 -> 78117 bytes test/fixtures/es-module/imported.css | 3 + test/fixtures/es-module/source.css | 10 + test/fixtures/es-module/source.js | 5 + test/loader.test.js | 42 ++- test/onlyLocals-option.test.js | 18 ++ test/validate-options.test.js | 4 + 17 files changed, 704 insertions(+), 43 deletions(-) create mode 100644 test/__snapshots__/esModule-option.test.js.snap create mode 100644 test/esModule-option.test.js create mode 100644 test/fixtures/es-module/img.png create mode 100644 test/fixtures/es-module/imported.css create mode 100644 test/fixtures/es-module/source.css create mode 100644 test/fixtures/es-module/source.js diff --git a/README.md b/README.md index 9179e787..8020201e 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,7 @@ module.exports = { | **[`importLoaders`](#importloaders)** | `{Number}` | `0` | Enables/Disables or setups number of loaders applied before CSS loader | | **[`localsConvention`](#localsconvention)** | `{String}` | `'asIs'` | Style of exported classnames | | **[`onlyLocals`](#onlylocals)** | `{Boolean}` | `false` | Export only locals | +| **[`esModule`](#esmodule)** | `{Boolean}` | `false` | Use ES modules syntax | ### `url` @@ -857,6 +858,34 @@ module.exports = { }; ``` +### `esModule` + +Type: `Boolean` +Default: `false` + +By default, `css-loader` generates JS modules that use the CommonJS modules syntax. +There are some cases in which using ES modules is beneficial, like in the case of [module concatenation](https://webpack.js.org/plugins/module-concatenation-plugin/) and [tree shaking](https://webpack.js.org/guides/tree-shaking/). + +You can enable a ES module syntax using: + +**webpack.config.js** + +```js +module.exports = { + module: { + rules: [ + { + test: /\.css$/i, + loader: 'css-loader', + options: { + esModule: true, + }, + }, + ], + }, +}; +``` + ## Examples ### Assets diff --git a/package-lock.json b/package-lock.json index 79338ad5..b509417c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9727,9 +9727,9 @@ "dev": true }, "postcss": { - "version": "7.0.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.24.tgz", - "integrity": "sha512-Xl0XvdNWg+CblAXzNvbSOUvgJXwSjmbAKORqyw9V2AlHrm1js2gFw9y3jibBAhpKZi8b5JzJCVh/FyzPsTtgTA==", + "version": "7.0.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.25.tgz", + "integrity": "sha512-NXXVvWq9icrm/TgQC0O6YVFi4StfJz46M1iNd/h6B26Nvh/HKI+q4YZtFN/EjcInZliEscO/WL10BXnc1E5nwg==", "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -11897,9 +11897,9 @@ "dev": true }, "terser": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", - "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", + "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", "dev": true, "requires": { "commander": "^2.20.0", diff --git a/src/index.js b/src/index.js index aeb94239..b4d7c311 100644 --- a/src/index.js +++ b/src/index.js @@ -107,12 +107,16 @@ export default function loader(content, map, meta) { } const { importLoaders, localsConvention } = options; + const esModule = + typeof options.esModule !== 'undefined' ? options.esModule : false; + const importCode = getImportCode( this, imports, exportType, sourceMap, - importLoaders + importLoaders, + esModule ); const moduleCode = getModuleCode( this, @@ -126,7 +130,8 @@ export default function loader(content, map, meta) { exports, exportType, replacers, - localsConvention + localsConvention, + esModule ); return callback(null, [importCode, moduleCode, exportCode].join('')); diff --git a/src/options.json b/src/options.json index efa13be8..e3125073 100644 --- a/src/options.json +++ b/src/options.json @@ -94,6 +94,10 @@ "onlyLocals": { "description": "Export only locals (https://github.com/webpack-contrib/css-loader#onlylocals).", "type": "boolean" + }, + "esModule": { + "description": "Use the ES modules syntax (https://github.com/webpack-contrib/css-loader#esmodule).", + "type": "boolean" } }, "type": "object" diff --git a/src/utils.js b/src/utils.js index 4fc8efe3..c5b00d10 100644 --- a/src/utils.js +++ b/src/utils.js @@ -205,7 +205,8 @@ function getImportCode( imports, exportType, sourceMap, - importLoaders + importLoaders, + esModule ) { const importItems = []; const codeItems = []; @@ -216,12 +217,21 @@ function getImportCode( if (exportType === 'full') { importItems.push( - `var ___CSS_LOADER_API_IMPORT___ = require(${stringifyRequest( - loaderContext, - require.resolve('./runtime/api') - )});` + esModule + ? `import ___CSS_LOADER_API_IMPORT___ from ${stringifyRequest( + loaderContext, + require.resolve('./runtime/api') + )};` + : `var ___CSS_LOADER_API_IMPORT___ = require(${stringifyRequest( + loaderContext, + require.resolve('./runtime/api') + )});` + ); + codeItems.push( + esModule + ? `var exports = ___CSS_LOADER_API_IMPORT___(${sourceMap});` + : `exports = ___CSS_LOADER_API_IMPORT___(${sourceMap});` ); - codeItems.push(`exports = ___CSS_LOADER_API_IMPORT___(${sourceMap});`); } imports.forEach((item) => { @@ -251,10 +261,15 @@ function getImportCode( importName = `___CSS_LOADER_AT_RULE_IMPORT_${atRuleImportNames.size}___`; importItems.push( - `var ${importName} = require(${stringifyRequest( - loaderContext, - importPrefix + url - )});` + esModule + ? `import ${importName} from ${stringifyRequest( + loaderContext, + importPrefix + url + )};` + : `var ${importName} = require(${stringifyRequest( + loaderContext, + importPrefix + url + )});` ); atRuleImportNames.set(url, importName); @@ -267,10 +282,15 @@ function getImportCode( { if (urlImportNames.size === 0) { importItems.push( - `var ___CSS_LOADER_GET_URL_IMPORT___ = require(${stringifyRequest( - loaderContext, - require.resolve('./runtime/getUrl.js') - )});` + esModule + ? `import ___CSS_LOADER_GET_URL_IMPORT___ from ${stringifyRequest( + loaderContext, + require.resolve('./runtime/getUrl.js') + )};` + : `var ___CSS_LOADER_GET_URL_IMPORT___ = require(${stringifyRequest( + loaderContext, + require.resolve('./runtime/getUrl.js') + )});` ); } @@ -281,10 +301,15 @@ function getImportCode( if (!importName) { importName = `___CSS_LOADER_URL_IMPORT_${urlImportNames.size}___`; importItems.push( - `var ${importName} = require(${stringifyRequest( - loaderContext, - url - )});` + esModule + ? `import ${importName} from ${stringifyRequest( + loaderContext, + url + )};` + : `var ${importName} = require(${stringifyRequest( + loaderContext, + url + )});` ); urlImportNames.set(url, importName); @@ -311,10 +336,15 @@ function getImportCode( } importItems.push( - `var ${importName} = require(${stringifyRequest( - loaderContext, - importPrefix + url - )});` + esModule + ? `import ${importName} from ${stringifyRequest( + loaderContext, + importPrefix + url + )};` + : `var ${importName} = require(${stringifyRequest( + loaderContext, + importPrefix + url + )});` ); if (exportType === 'full') { @@ -380,7 +410,8 @@ function getExportCode( exports, exportType, replacers, - localsConvention + localsConvention, + esModule ) { const exportItems = []; let exportLocalsCode; @@ -448,13 +479,19 @@ function getExportCode( } if (exportType === 'locals') { - exportItems.push(`module.exports = {\n${exportLocalsCode}\n};`); + exportItems.push( + `${ + esModule ? 'export default' : 'module.exports =' + } {\n${exportLocalsCode}\n};` + ); } else { if (exportLocalsCode) { exportItems.push(`exports.locals = {\n${exportLocalsCode}\n};`); } - exportItems.push('module.exports = exports;'); + exportItems.push( + `${esModule ? 'export default' : 'module.exports ='} exports;` + ); } return `// Exports\n${exportItems.join('\n')}\n`; diff --git a/test/__snapshots__/esModule-option.test.js.snap b/test/__snapshots__/esModule-option.test.js.snap new file mode 100644 index 00000000..9aca855e --- /dev/null +++ b/test/__snapshots__/esModule-option.test.js.snap @@ -0,0 +1,283 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`"esModule" option should work when not specified: errors 1`] = `Array []`; + +exports[`"esModule" option should work when not specified: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; +" +`; + +exports[`"esModule" option should work when not specified: result 1`] = ` +Array [ + Array [ + "../../src/index.js?[ident]!./es-module/imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./es-module/source.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(/webpack/public/path/img.png); +} +", + "", + ], +] +`; + +exports[`"esModule" option should work when not specified: warnings 1`] = `Array []`; + +exports[`"esModule" option should work with a value equal to "false": errors 1`] = `Array []`; + +exports[`"esModule" option should work with a value equal to "false": module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./imported.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./img.png\\"); +exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; +" +`; + +exports[`"esModule" option should work with a value equal to "false": result 1`] = ` +Array [ + Array [ + "../../src/index.js?[ident]!./es-module/imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./es-module/source.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(/webpack/public/path/img.png); +} +", + "", + ], +] +`; + +exports[`"esModule" option should work with a value equal to "false": warnings 1`] = `Array []`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "global": errors 1`] = `Array []`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "global": module 1`] = ` +"// Imports +import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../../src/index.js??[ident]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../src/runtime/getUrl.js\\"; +import ___CSS_LOADER_URL_IMPORT_0___ from \\"./img.png\\"; +var exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +export default exports; +" +`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "global": result 1`] = ` +Array [ + Array [ + "../../src/index.js?[ident]!./es-module/imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./es-module/source.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(/webpack/public/path/img.png); +} +", + "", + ], +] +`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "global": warnings 1`] = `Array []`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "local": errors 1`] = `Array []`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "local": module 1`] = ` +"// Imports +import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../../src/index.js??[ident]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../src/runtime/getUrl.js\\"; +import ___CSS_LOADER_URL_IMPORT_0___ from \\"./img.png\\"; +var exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n._3S58jeCkC6SOPhVLbU-Bwn {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"class\\": \\"_3S58jeCkC6SOPhVLbU-Bwn\\" +}; +export default exports; +" +`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "local": result 1`] = ` +Array [ + Array [ + "../../src/index.js?[ident]!./es-module/imported.css", + "._3xfjtZ03Dx7Cld7Debi-wl { + color: red; +} +", + "", + ], + Array [ + "./es-module/source.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +._3S58jeCkC6SOPhVLbU-Bwn { + color: red; + background: url(/webpack/public/path/img.png); +} +", + "", + ], +] +`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "local": warnings 1`] = `Array []`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "pure": errors 1`] = `Array []`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "pure": module 1`] = ` +"// Imports +import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../../src/index.js??[ident]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../src/runtime/getUrl.js\\"; +import ___CSS_LOADER_URL_IMPORT_0___ from \\"./img.png\\"; +var exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n._3S58jeCkC6SOPhVLbU-Bwn {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"class\\": \\"_3S58jeCkC6SOPhVLbU-Bwn\\" +}; +export default exports; +" +`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "pure": result 1`] = ` +Array [ + Array [ + "../../src/index.js?[ident]!./es-module/imported.css", + "._3xfjtZ03Dx7Cld7Debi-wl { + color: red; +} +", + "", + ], + Array [ + "./es-module/source.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +._3S58jeCkC6SOPhVLbU-Bwn { + color: red; + background: url(/webpack/public/path/img.png); +} +", + "", + ], +] +`; + +exports[`"esModule" option should work with a value equal to "true" and the "mode" value equal to "pure": warnings 1`] = `Array []`; + +exports[`"esModule" option should work with a value equal to "true": errors 1`] = `Array []`; + +exports[`"esModule" option should work with a value equal to "true": module 1`] = ` +"// Imports +import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../../src/index.js??[ident]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../src/runtime/getUrl.js\\"; +import ___CSS_LOADER_URL_IMPORT_0___ from \\"./img.png\\"; +var exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +export default exports; +" +`; + +exports[`"esModule" option should work with a value equal to "true": result 1`] = ` +Array [ + Array [ + "../../src/index.js?[ident]!./es-module/imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./es-module/source.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(/webpack/public/path/img.png); +} +", + "", + ], +] +`; + +exports[`"esModule" option should work with a value equal to "true": warnings 1`] = `Array []`; diff --git a/test/__snapshots__/loader.test.js.snap b/test/__snapshots__/loader.test.js.snap index dd9c88b7..681807fc 100644 --- a/test/__snapshots__/loader.test.js.snap +++ b/test/__snapshots__/loader.test.js.snap @@ -151,6 +151,10 @@ exports[`loader should work with ModuleConcatenationPlugin (url-loader): errors exports[`loader should work with ModuleConcatenationPlugin (url-loader): warnings 1`] = `Array []`; +exports[`loader should work with ModuleConcatenationPlugin: errors 1`] = `Array []`; + +exports[`loader should work with ModuleConcatenationPlugin: warnings 1`] = `Array []`; + exports[`loader should work with empty css: errors 1`] = `Array []`; exports[`loader should work with empty css: module 1`] = ` diff --git a/test/__snapshots__/onlyLocals-option.test.js.snap b/test/__snapshots__/onlyLocals-option.test.js.snap index 0ec7a29e..82845d42 100644 --- a/test/__snapshots__/onlyLocals-option.test.js.snap +++ b/test/__snapshots__/onlyLocals-option.test.js.snap @@ -1,5 +1,117 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`"onlyLocals" option should work with the "esModule" option: errors 1`] = `Array []`; + +exports[`"onlyLocals" option should work with the "esModule" option: module 1`] = ` +"// Imports +import ___CSS_LOADER_ICSS_IMPORT_0___ from \\"-!../../../../src/index.js??[ident]!./values.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_1___ from \\"-!../../../../src/index.js??[ident]!./something.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_2___ from \\"-!../../../../src/index.js??[ident]!./imported-simple.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_3___ from \\"-!../../../../src/index.js??[ident]!./relative.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_4___ from \\"-!../../../../src/index.js??[ident]!./top-relative.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_5___ from \\"-!../../../../src/index.js??[ident]!../issue-861/node_modules/package/style.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_6___ from \\"-!../../../../src/index.js??[ident]!aliasesComposes/alias.css\\"; +// Exports +export default { + \\"v-def\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___[\\"v-def\\"] + \\"\\", + \\"v-other\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___[\\"v-other\\"] + \\"\\", + \\"s-white\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___[\\"s-white\\"] + \\"\\", + \\"m-small\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0___[\\"m-small\\"] + \\"\\", + \\"v-something\\": \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1___[\\"v-something\\"] + \\"\\", + \\"v-foo\\": \\"blue\\", + \\"v-bar\\": \\"block\\", + \\"v-primary\\": \\"#BF4040\\", + \\"s-black\\": \\"black-selector\\", + \\"m-large\\": \\"(min-width: 960px)\\", + \\"v-ident\\": \\"validIdent\\", + \\"v-pre-defined-ident\\": \\"left\\", + \\"v-string\\": \\"'content'\\", + \\"v-string-1\\": \\"''\\", + \\"v-url\\": \\"url(https://www.exammple.com/images/my-background.png)\\", + \\"v-url-1\\": \\"url('https://www.exammple.com/images/my-background.png')\\", + \\"v-url-2\\": \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\", + \\"v-integer\\": \\"100\\", + \\"v-integer-1\\": \\"-100\\", + \\"v-integer-2\\": \\"+100\\", + \\"v-number\\": \\".60\\", + \\"v-number-1\\": \\"-456.8\\", + \\"v-number-2\\": \\"-3.4e-2\\", + \\"v-dimension\\": \\"12px\\", + \\"v-percentage\\": \\"100%\\", + \\"v-hex\\": \\"#fff\\", + \\"v-function\\": \\"rgb(0,0,0)\\", + \\"v-unicode-range\\": \\"U+0025-00FF\\", + \\"ghi\\": \\"_ghi\\", + \\"class\\": \\"_class\\", + \\"other\\": \\"_other\\", + \\"other-other\\": \\"_other-other\\", + \\"green\\": \\"_green\\", + \\"foo\\": \\"_foo\\", + \\"simple\\": \\"_simple \\" + ___CSS_LOADER_ICSS_IMPORT_2___[\\"imported-simple\\"] + \\"\\", + \\"relative\\": \\"_relative \\" + ___CSS_LOADER_ICSS_IMPORT_3___[\\"imported-relative\\"] + \\"\\", + \\"top-relative\\": \\"_top-relative \\" + ___CSS_LOADER_ICSS_IMPORT_4___[\\"imported-relative\\"] + \\"\\", + \\"module\\": \\"_module \\" + ___CSS_LOADER_ICSS_IMPORT_5___[\\"imported-module\\"] + \\"\\", + \\"alias\\": \\"_alias \\" + ___CSS_LOADER_ICSS_IMPORT_6___[\\"imported-alias\\"] + \\"\\", + \\"primary-selector\\": \\"_primary-selector\\", + \\"black-selector\\": \\"_black-selector\\", + \\"header\\": \\"_header\\", + \\"foobarbaz\\": \\"_foobarbaz\\", + \\"url\\": \\"_url\\" +}; +" +`; + +exports[`"onlyLocals" option should work with the "esModule" option: result 1`] = ` +Object { + "alias": "_alias _imported-alias", + "black-selector": "_black-selector", + "class": "_class", + "foo": "_foo", + "foobarbaz": "_foobarbaz", + "ghi": "_ghi", + "green": "_green", + "header": "_header", + "m-large": "(min-width: 960px)", + "m-small": "(min-width: 320px)", + "module": "_module _imported-module", + "other": "_other", + "other-other": "_other-other", + "primary-selector": "_primary-selector", + "relative": "_relative _imported-relative", + "s-black": "black-selector", + "s-white": "white", + "simple": "_simple _imported-simple", + "top-relative": "_top-relative undefined", + "url": "_url", + "v-bar": "block", + "v-def": "red", + "v-dimension": "12px", + "v-foo": "blue", + "v-function": "rgb(0,0,0)", + "v-hex": "#fff", + "v-ident": "validIdent", + "v-integer": "100", + "v-integer-1": "-100", + "v-integer-2": "+100", + "v-number": ".60", + "v-number-1": "-456.8", + "v-number-2": "-3.4e-2", + "v-other": "green", + "v-percentage": "100%", + "v-pre-defined-ident": "left", + "v-primary": "#BF4040", + "v-something": "2112moon", + "v-string": "'content'", + "v-string-1": "''", + "v-unicode-range": "U+0025-00FF", + "v-url": "url(https://www.exammple.com/images/my-background.png)", + "v-url-1": "url('https://www.exammple.com/images/my-background.png')", + "v-url-2": "url(\\"https://www.exammple.com/images/my-background.png\\")", +} +`; + +exports[`"onlyLocals" option should work with the "esModule" option: warnings 1`] = `Array []`; + exports[`"onlyLocals" option should work: errors 1`] = `Array []`; exports[`"onlyLocals" option should work: module 1`] = ` diff --git a/test/__snapshots__/validate-options.test.js.snap b/test/__snapshots__/validate-options.test.js.snap index 212f97ef..3b259f02 100644 --- a/test/__snapshots__/validate-options.test.js.snap +++ b/test/__snapshots__/validate-options.test.js.snap @@ -1,5 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`validate options should throw an error on the "esModule" option with "true" value 1`] = ` +"Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. + - options.esModule should be a boolean. + -> Use the ES modules syntax (https://github.com/webpack-contrib/css-loader#esmodule)." +`; + exports[`validate options should throw an error on the "import" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options.import should be one of these: @@ -159,49 +165,49 @@ exports[`validate options should throw an error on the "sourceMap" option with " exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals?, esModule? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals?, esModule? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals?, esModule? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals?, esModule? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals?, esModule? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals?, esModule? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals?, esModule? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals?, esModule? }" `; exports[`validate options should throw an error on the "url" option with "true" value 1`] = ` diff --git a/test/esModule-option.test.js b/test/esModule-option.test.js new file mode 100644 index 00000000..3bfdce61 --- /dev/null +++ b/test/esModule-option.test.js @@ -0,0 +1,103 @@ +import { + compile, + getCompiler, + getErrors, + getExecutedCode, + getModuleSource, + getWarnings, +} from './helpers/index'; + +describe('"esModule" option', () => { + it('should work when not specified', async () => { + const compiler = getCompiler('./es-module/source.js'); + const stats = await compile(compiler); + + expect(getModuleSource('./es-module/source.css', stats)).toMatchSnapshot( + 'module' + ); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + + it('should work with a value equal to "true"', async () => { + const compiler = getCompiler('./es-module/source.js', { esModule: true }); + const stats = await compile(compiler); + + expect(getModuleSource('./es-module/source.css', stats)).toMatchSnapshot( + 'module' + ); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + + it('should work with a value equal to "true" and the "mode" value equal to "local"', async () => { + const compiler = getCompiler('./es-module/source.js', { + esModule: true, + modules: 'local', + }); + const stats = await compile(compiler); + + expect(getModuleSource('./es-module/source.css', stats)).toMatchSnapshot( + 'module' + ); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + + it('should work with a value equal to "true" and the "mode" value equal to "global"', async () => { + const compiler = getCompiler('./es-module/source.js', { + esModule: true, + modules: 'global', + }); + const stats = await compile(compiler); + + expect(getModuleSource('./es-module/source.css', stats)).toMatchSnapshot( + 'module' + ); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + + it('should work with a value equal to "true" and the "mode" value equal to "pure"', async () => { + const compiler = getCompiler('./es-module/source.js', { + esModule: true, + modules: 'pure', + }); + const stats = await compile(compiler); + + expect(getModuleSource('./es-module/source.css', stats)).toMatchSnapshot( + 'module' + ); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + + it('should work with a value equal to "false"', async () => { + const compiler = getCompiler('./es-module/source.js', { esModule: false }); + const stats = await compile(compiler); + + expect(getModuleSource('./es-module/source.css', stats)).toMatchSnapshot( + 'module' + ); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); +}); diff --git a/test/fixtures/es-module/img.png b/test/fixtures/es-module/img.png new file mode 100644 index 0000000000000000000000000000000000000000..b74b839e2b868d2df9ea33cc1747eb7803d2d69c GIT binary patch literal 78117 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

T}Ke+!9t-m?i2X-;f#-{#p<{2~ia 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 { expect(getErrors(stats)).toMatchSnapshot('errors'); }); + it('should work with ModuleConcatenationPlugin', async () => { + const compiler = getCompiler( + './basic.js', + {}, + { + mode: 'production', + module: { + rules: [ + { + test: /\.css$/i, + use: [ + { + loader: path.resolve(__dirname, '../src'), + options: { esModule: true }, + }, + ], + }, + { + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, + loader: 'file-loader', + options: { name: '[name].[ext]', esModule: true }, + }, + ], + }, + } + ); + const stats = await compile(compiler); + + if (stats.compilation.modules.size) { + expect(stats.compilation.modules.size).toBe(10); + } else { + expect(stats.compilation.modules.length).toBe(6); + } + + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + it('should work with ModuleConcatenationPlugin (file-loader)', async () => { const compiler = getCompiler( './basic.js', @@ -169,7 +207,7 @@ describe('loader', () => { { test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, loader: 'file-loader', - options: { name: '[name].[ext]', esModules: true }, + options: { name: '[name].[ext]', esModule: true }, }, ], }, @@ -202,7 +240,7 @@ describe('loader', () => { { test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, loader: 'url-loader', - options: { name: '[name].[ext]', limit: true, esModules: true }, + options: { name: '[name].[ext]', limit: true, esModule: true }, }, ], }, diff --git a/test/onlyLocals-option.test.js b/test/onlyLocals-option.test.js index fd0f0b0d..04c819c2 100644 --- a/test/onlyLocals-option.test.js +++ b/test/onlyLocals-option.test.js @@ -24,4 +24,22 @@ describe('"onlyLocals" option', () => { expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); + + it('should work with the "esModule" option', async () => { + const compiler = getCompiler('./modules/composes/composes.js', { + modules: { mode: 'local', localIdentName: '_[local]' }, + onlyLocals: true, + esModule: true, + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/composes/composes.css', stats) + ).toMatchSnapshot('module'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); }); diff --git a/test/validate-options.test.js b/test/validate-options.test.js index 26b49cb6..814ee799 100644 --- a/test/validate-options.test.js +++ b/test/validate-options.test.js @@ -59,6 +59,10 @@ describe('validate options', () => { success: [true, false], failure: ['true'], }, + esModule: { + success: [true, false], + failure: ['true'], + }, unknown: { success: [], failure: [1, true, false, 'test', /test/, [], {}, { foo: 'bar' }], From 796fe28574f7fe7ba37a283b430672c4eb367893 Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Tue, 17 Dec 2019 13:39:26 +0300 Subject: [PATCH 7/9] Test more (#1024) * test: more * test: more * test: more * test: more * test: more --- test/__snapshots__/import-option.test.js.snap | 4 +- test/__snapshots__/loader.test.js.snap | 173 ++++++++++++++ .../sourceMap-option.test.js.snap | 221 ++++++++++++++++-- test/fixtures/import/order-2.css | 2 +- test/fixtures/source-map/basic.css | 2 + test/fixtures/source-map/basic.postcss.css | 2 + test/fixtures/source-map/nested/nested.css | 3 + .../source-map/nested/nested.postcss.css | 3 + test/helpers/getCompiler.js | 2 +- test/loader.test.js | 51 ++++ test/sourceMap-option.test.js | 8 +- 11 files changed, 449 insertions(+), 22 deletions(-) create mode 100644 test/fixtures/source-map/nested/nested.css create mode 100644 test/fixtures/source-map/nested/nested.postcss.css diff --git a/test/__snapshots__/import-option.test.js.snap b/test/__snapshots__/import-option.test.js.snap index a75336f9..2cd39431 100644 --- a/test/__snapshots__/import-option.test.js.snap +++ b/test/__snapshots__/import-option.test.js.snap @@ -44,7 +44,7 @@ Array [ ], Array [ "../../src/index.js?[ident]!./import/order-2.css", - ".order-1 { + ".order-2 { color: red; } ", @@ -68,7 +68,7 @@ Array [ ], Array [ "../../src/index.js?[ident]!./import/order-2.css", - ".order-1 { + ".order-2 { color: red; } ", diff --git a/test/__snapshots__/loader.test.js.snap b/test/__snapshots__/loader.test.js.snap index 681807fc..ef5ed1b2 100644 --- a/test/__snapshots__/loader.test.js.snap +++ b/test/__snapshots__/loader.test.js.snap @@ -115,6 +115,179 @@ You may need an appropriate loader to handle this file type, currently no loader exports[`loader should throws error when no loader(s) for assets: warnings 1`] = `Array []`; +exports[`loader should work with "asset" module type: errors 1`] = `Array []`; + +exports[`loader should work with "asset" module type: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js!./imported.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); +exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +module.exports = exports; +" +`; + +exports[`loader should work with "asset" module type: result 1`] = ` +Array [ + Array [ + "../../src/index.js!./imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./basic.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(/webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(/webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", + "", + ], +] +`; + +exports[`loader should work with "asset" module type: warnings 1`] = `Array []`; + exports[`loader should work with "sass-loader": errors 1`] = `Array []`; exports[`loader should work with "sass-loader": module 1`] = ` diff --git a/test/__snapshots__/sourceMap-option.test.js.snap b/test/__snapshots__/sourceMap-option.test.js.snap index 34094921..02092fd5 100644 --- a/test/__snapshots__/sourceMap-option.test.js.snap +++ b/test/__snapshots__/sourceMap-option.test.js.snap @@ -5,7 +5,9 @@ exports[`"sourceMap" option false should not generate source maps when source ma exports[`"sourceMap" option false should not generate source maps when source maps equal to "null" from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -15,6 +17,14 @@ module.exports = exports; exports[`"sourceMap" option false should not generate source maps when source maps equal to "null" from an other loader: result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.css", + ".nested { + color: blue; +} +", + "", + ], Array [ "./source-map/basic.css", ".class { @@ -33,7 +43,9 @@ exports[`"sourceMap" option false should not generate source maps when source ma exports[`"sourceMap" option false should not generate source maps when source maps equal to "undefined" from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -43,6 +55,14 @@ module.exports = exports; exports[`"sourceMap" option false should not generate source maps when source maps equal to "undefined" from an other loader: result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.css", + ".nested { + color: blue; +} +", + "", + ], Array [ "./source-map/basic.css", ".class { @@ -61,7 +81,9 @@ exports[`"sourceMap" option false should not generate source maps when source ma exports[`"sourceMap" option false should not generate source maps when source maps is valid and string from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -71,6 +93,14 @@ module.exports = exports; exports[`"sourceMap" option false should not generate source maps when source maps is valid and string from an other loader: result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.css", + ".nested { + color: blue; +} +", + "", + ], Array [ "./source-map/basic.css", ".class { @@ -89,7 +119,9 @@ exports[`"sourceMap" option false should not generate source maps when source ma exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`postcss-loader\`): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.postcss.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\":root {\\\\n --fontSize: 1rem;\\\\n --mainColor: rgba(18,52,86,0.47059);\\\\n --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n overflow-x: hidden;\\\\n overflow-y: auto;\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n body {\\\\n color: rgba(18,52,86,0.47059);\\\\n color: var(--mainColor);\\\\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n font-size: 1rem;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(1rem * 1.5);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n word-wrap: break-word;\\\\n padding-left: calc(1rem / 2 + 1px);\\\\n padding-right: calc(1rem / 2 + 1px);\\\\n padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n margin-top: 0;\\\\n margin-bottom: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n color: #639;\\\\n }\\\\n\\", \\"\\"]); // Exports @@ -99,6 +131,14 @@ module.exports = exports; exports[`"sourceMap" option false should not generate source maps when source maps is valid from an other loader (\`postcss-loader\`): result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.postcss.css", + ".nested { + color: blue; +} +", + "", + ], Array [ "./source-map/basic.postcss.css", ":root { @@ -183,7 +223,9 @@ exports[`"sourceMap" option false should not generate source maps: errors 1`] = exports[`"sourceMap" option false should not generate source maps: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -193,6 +235,14 @@ module.exports = exports; exports[`"sourceMap" option false should not generate source maps: result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.css", + ".nested { + color: blue; +} +", + "", + ], Array [ "./source-map/basic.css", ".class { @@ -211,7 +261,9 @@ exports[`"sourceMap" option not specified should not generate source maps: error exports[`"sourceMap" option not specified should not generate source maps: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -221,6 +273,14 @@ module.exports = exports; exports[`"sourceMap" option not specified should not generate source maps: result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.css", + ".nested { + color: blue; +} +", + "", + ], Array [ "./source-map/basic.css", ".class { @@ -239,9 +299,11 @@ exports[`"sourceMap" option true should generate source maps when source maps eq exports[`"sourceMap" option true should generate source maps when source maps equal to "null" from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.css\\"); exports = ___CSS_LOADER_API_IMPORT___(true); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module -exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAEA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\"@import \\\\\\"./nested/nested.css\\\\\\";\\\\n\\\\n.class {\\\\n color: red;\\\\n}\\\\n\\"]}]); // Exports module.exports = exports; " @@ -249,6 +311,29 @@ module.exports = exports; exports[`"sourceMap" option true should generate source maps when source maps equal to "null" from an other loader: result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.css", + ".nested { + color: blue; +} +", + "", + Object { + "file": "nested.css", + "mappings": "AAAA;EACE,WAAW;AACb", + "names": Array [], + "sources": Array [ + "nested.css", + ], + "sourcesContent": Array [ + ".nested { + color: blue; +} +", + ], + "version": 3, + }, + ], Array [ "./source-map/basic.css", ".class { @@ -258,13 +343,15 @@ Array [ "", Object { "file": "basic.css", - "mappings": "AAAA;EACE,UAAU;AACZ", + "mappings": "AAEA;EACE,UAAU;AACZ", "names": Array [], "sources": Array [ "basic.css", ], "sourcesContent": Array [ - ".class { + "@import \\"./nested/nested.css\\"; + +.class { color: red; } ", @@ -282,9 +369,11 @@ exports[`"sourceMap" option true should generate source maps when source maps eq exports[`"sourceMap" option true should generate source maps when source maps equal to "undefined" from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.css\\"); exports = ___CSS_LOADER_API_IMPORT___(true); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module -exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAEA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\"@import \\\\\\"./nested/nested.css\\\\\\";\\\\n\\\\n.class {\\\\n color: red;\\\\n}\\\\n\\"]}]); // Exports module.exports = exports; " @@ -292,6 +381,29 @@ module.exports = exports; exports[`"sourceMap" option true should generate source maps when source maps equal to "undefined" from an other loader: result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.css", + ".nested { + color: blue; +} +", + "", + Object { + "file": "nested.css", + "mappings": "AAAA;EACE,WAAW;AACb", + "names": Array [], + "sources": Array [ + "nested.css", + ], + "sourcesContent": Array [ + ".nested { + color: blue; +} +", + ], + "version": 3, + }, + ], Array [ "./source-map/basic.css", ".class { @@ -301,13 +413,15 @@ Array [ "", Object { "file": "basic.css", - "mappings": "AAAA;EACE,UAAU;AACZ", + "mappings": "AAEA;EACE,UAAU;AACZ", "names": Array [], "sources": Array [ "basic.css", ], "sourcesContent": Array [ - ".class { + "@import \\"./nested/nested.css\\"; + +.class { color: red; } ", @@ -325,9 +439,11 @@ exports[`"sourceMap" option true should generate source maps when source maps is exports[`"sourceMap" option true should generate source maps when source maps is valid and string from an other loader: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.css\\"); exports = ___CSS_LOADER_API_IMPORT___(true); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module -exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAEA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); // Exports module.exports = exports; " @@ -335,6 +451,29 @@ module.exports = exports; exports[`"sourceMap" option true should generate source maps when source maps is valid and string from an other loader: result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.css", + ".nested { + color: blue; +} +", + "", + Object { + "file": "nested.css", + "mappings": "AAAA;EACE,WAAW;AACb", + "names": Array [], + "sources": Array [ + "nested.css", + ], + "sourcesContent": Array [ + ".nested { + color: blue; +} +", + ], + "version": 3, + }, + ], Array [ "./source-map/basic.css", ".class { @@ -344,7 +483,7 @@ Array [ "", Object { "file": "basic.css", - "mappings": "AAAA;EACE,UAAU;AACZ", + "mappings": "AAEA;EACE,UAAU;AACZ", "names": Array [], "sources": Array [ "basic.css", @@ -368,9 +507,11 @@ exports[`"sourceMap" option true should generate source maps when source maps is exports[`"sourceMap" option true should generate source maps when source maps is valid from an other loader (\`postcss-loader\`): module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.postcss.css\\"); exports = ___CSS_LOADER_API_IMPORT___(true); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module -exports.push([module.id, \\":root {\\\\n --fontSize: 1rem;\\\\n --mainColor: rgba(18,52,86,0.47059);\\\\n --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n overflow-x: hidden;\\\\n overflow-y: auto;\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n body {\\\\n color: rgba(18,52,86,0.47059);\\\\n color: var(--mainColor);\\\\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n font-size: 1rem;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(1rem * 1.5);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n word-wrap: break-word;\\\\n padding-left: calc(1rem / 2 + 1px);\\\\n padding-right: calc(1rem / 2 + 1px);\\\\n padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n margin-top: 0;\\\\n margin-bottom: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n color: #639;\\\\n }\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.postcss.css\\"],\\"names\\":[],\\"mappings\\":\\"AAGA;EACE,gBAAgB;EAChB,mCAAsB;EACtB,yCAA4C;AAC9C;;AAEA;EACE,kBAAqB;EAArB,gBAAqB;EAArB,qBAAqB;AACvB;;AAEA;EACE;IACE,6BAAuB;IAAvB,uBAAuB;IACvB,iGAAsB;IACtB,eAA0B;IAA1B,0BAA0B;IAC1B,6BAAwC;IAAxC,wCAAwC;IACxC,qBAAyB;IACzB,kCAA+C;IAA/C,mCAA+C;IAA/C,6CAA+C;IAA/C,8CAA+C;EACjD;AACF;;AAEA;EACE,aAAe;EAAf,gBAAe;AACjB;;AAEA;EACE;AAKF;;AAHA;GACG,WAAoB;CACtB\\",\\"file\\":\\"basic.postcss.css\\",\\"sourcesContent\\":[\\"@custom-media --viewport-medium (width <= 50rem);\\\\n@custom-selector :--heading h1, h2, h3, h4, h5, h6;\\\\n\\\\n:root {\\\\n --fontSize: 1rem;\\\\n --mainColor: #12345678;\\\\n --secondaryColor: lab(32.5 38.5 -47.6 / 90%);\\\\n}\\\\n\\\\nhtml {\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (--viewport-medium) {\\\\n body {\\\\n color: var(--mainColor);\\\\n font-family: system-ui;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n overflow-wrap: break-word;\\\\n padding-inline: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\n:--heading {\\\\n margin-block: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgb(0 0 100% / 90%);\\\\n\\\\n&:hover {\\\\n color: rebeccapurple;\\\\n }\\\\n}\\\\n\\"]}]); +exports.push([module.id, \\":root {\\\\n --fontSize: 1rem;\\\\n --mainColor: rgba(18,52,86,0.47059);\\\\n --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n overflow-x: hidden;\\\\n overflow-y: auto;\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n body {\\\\n color: rgba(18,52,86,0.47059);\\\\n color: var(--mainColor);\\\\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n font-size: 1rem;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(1rem * 1.5);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n word-wrap: break-word;\\\\n padding-left: calc(1rem / 2 + 1px);\\\\n padding-right: calc(1rem / 2 + 1px);\\\\n padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n margin-top: 0;\\\\n margin-bottom: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n color: #639;\\\\n }\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.postcss.css\\"],\\"names\\":[],\\"mappings\\":\\"AAKA;EACE,gBAAgB;EAChB,mCAAsB;EACtB,yCAA4C;AAC9C;;AAEA;EACE,kBAAqB;EAArB,gBAAqB;EAArB,qBAAqB;AACvB;;AAEA;EACE;IACE,6BAAuB;IAAvB,uBAAuB;IACvB,iGAAsB;IACtB,eAA0B;IAA1B,0BAA0B;IAC1B,6BAAwC;IAAxC,wCAAwC;IACxC,qBAAyB;IACzB,kCAA+C;IAA/C,mCAA+C;IAA/C,6CAA+C;IAA/C,8CAA+C;EACjD;AACF;;AAEA;EACE,aAAe;EAAf,gBAAe;AACjB;;AAEA;EACE;AAKF;;AAHA;GACG,WAAoB;CACtB\\",\\"file\\":\\"basic.postcss.css\\",\\"sourcesContent\\":[\\"@import \\\\\\"./nested/nested.postcss.css\\\\\\";\\\\n\\\\n@custom-media --viewport-medium (width <= 50rem);\\\\n@custom-selector :--heading h1, h2, h3, h4, h5, h6;\\\\n\\\\n:root {\\\\n --fontSize: 1rem;\\\\n --mainColor: #12345678;\\\\n --secondaryColor: lab(32.5 38.5 -47.6 / 90%);\\\\n}\\\\n\\\\nhtml {\\\\n overflow: hidden auto;\\\\n}\\\\n\\\\n@media (--viewport-medium) {\\\\n body {\\\\n color: var(--mainColor);\\\\n font-family: system-ui;\\\\n font-size: var(--fontSize);\\\\n line-height: calc(var(--fontSize) * 1.5);\\\\n overflow-wrap: break-word;\\\\n padding-inline: calc(var(--fontSize) / 2 + 1px);\\\\n }\\\\n}\\\\n\\\\n:--heading {\\\\n margin-block: 0;\\\\n}\\\\n\\\\na {\\\\n color: rgb(0 0 100% / 90%);\\\\n\\\\n&:hover {\\\\n color: rebeccapurple;\\\\n }\\\\n}\\\\n\\"]}]); // Exports module.exports = exports; " @@ -378,6 +519,29 @@ module.exports = exports; exports[`"sourceMap" option true should generate source maps when source maps is valid from an other loader (\`postcss-loader\`): result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.postcss.css", + ".nested { + color: blue; +} +", + "", + Object { + "file": "nested.postcss.css", + "mappings": "AAAA;EACE,WAAW;AACb", + "names": Array [], + "sources": Array [ + "nested.postcss.css", + ], + "sourcesContent": Array [ + ".nested { + color: blue; +} +", + ], + "version": 3, + }, + ], Array [ "./source-map/basic.postcss.css", ":root { @@ -425,13 +589,15 @@ a:hover { "", Object { "file": "basic.postcss.css", - "mappings": "AAGA;EACE,gBAAgB;EAChB,mCAAsB;EACtB,yCAA4C;AAC9C;;AAEA;EACE,kBAAqB;EAArB,gBAAqB;EAArB,qBAAqB;AACvB;;AAEA;EACE;IACE,6BAAuB;IAAvB,uBAAuB;IACvB,iGAAsB;IACtB,eAA0B;IAA1B,0BAA0B;IAC1B,6BAAwC;IAAxC,wCAAwC;IACxC,qBAAyB;IACzB,kCAA+C;IAA/C,mCAA+C;IAA/C,6CAA+C;IAA/C,8CAA+C;EACjD;AACF;;AAEA;EACE,aAAe;EAAf,gBAAe;AACjB;;AAEA;EACE;AAKF;;AAHA;GACG,WAAoB;CACtB", + "mappings": "AAKA;EACE,gBAAgB;EAChB,mCAAsB;EACtB,yCAA4C;AAC9C;;AAEA;EACE,kBAAqB;EAArB,gBAAqB;EAArB,qBAAqB;AACvB;;AAEA;EACE;IACE,6BAAuB;IAAvB,uBAAuB;IACvB,iGAAsB;IACtB,eAA0B;IAA1B,0BAA0B;IAC1B,6BAAwC;IAAxC,wCAAwC;IACxC,qBAAyB;IACzB,kCAA+C;IAA/C,mCAA+C;IAA/C,6CAA+C;IAA/C,8CAA+C;EACjD;AACF;;AAEA;EACE,aAAe;EAAf,gBAAe;AACjB;;AAEA;EACE;AAKF;;AAHA;GACG,WAAoB;CACtB", "names": Array [], "sources": Array [ "basic.postcss.css", ], "sourcesContent": Array [ - "@custom-media --viewport-medium (width <= 50rem); + "@import \\"./nested/nested.postcss.css\\"; + +@custom-media --viewport-medium (width <= 50rem); @custom-selector :--heading h1, h2, h3, h4, h5, h6; :root { @@ -481,9 +647,11 @@ exports[`"sourceMap" option true should generate source maps: errors 1`] = `Arra exports[`"sourceMap" option true should generate source maps: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../src/index.js??[ident]!./nested/nested.css\\"); exports = ___CSS_LOADER_API_IMPORT___(true); +exports.i(___CSS_LOADER_AT_RULE_IMPORT_0___); // Module -exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\".class {\\\\n color: red;\\\\n}\\\\n\\"]}]); +exports.push([module.id, \\".class {\\\\n color: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAEA;EACE,UAAU;AACZ\\",\\"file\\":\\"basic.css\\",\\"sourcesContent\\":[\\"@import \\\\\\"./nested/nested.css\\\\\\";\\\\n\\\\n.class {\\\\n color: red;\\\\n}\\\\n\\"]}]); // Exports module.exports = exports; " @@ -491,6 +659,29 @@ module.exports = exports; exports[`"sourceMap" option true should generate source maps: result 1`] = ` Array [ + Array [ + "../../src/index.js?[ident]!./source-map/nested/nested.css", + ".nested { + color: blue; +} +", + "", + Object { + "file": "nested.css", + "mappings": "AAAA;EACE,WAAW;AACb", + "names": Array [], + "sources": Array [ + "nested.css", + ], + "sourcesContent": Array [ + ".nested { + color: blue; +} +", + ], + "version": 3, + }, + ], Array [ "./source-map/basic.css", ".class { @@ -500,13 +691,15 @@ Array [ "", Object { "file": "basic.css", - "mappings": "AAAA;EACE,UAAU;AACZ", + "mappings": "AAEA;EACE,UAAU;AACZ", "names": Array [], "sources": Array [ "basic.css", ], "sourcesContent": Array [ - ".class { + "@import \\"./nested/nested.css\\"; + +.class { color: red; } ", diff --git a/test/fixtures/import/order-2.css b/test/fixtures/import/order-2.css index 3e23caf8..a7c5b2c5 100644 --- a/test/fixtures/import/order-2.css +++ b/test/fixtures/import/order-2.css @@ -1,3 +1,3 @@ -.order-1 { +.order-2 { color: red; } diff --git a/test/fixtures/source-map/basic.css b/test/fixtures/source-map/basic.css index 19fce739..f125bf87 100644 --- a/test/fixtures/source-map/basic.css +++ b/test/fixtures/source-map/basic.css @@ -1,3 +1,5 @@ +@import "./nested/nested.css"; + .class { color: red; } diff --git a/test/fixtures/source-map/basic.postcss.css b/test/fixtures/source-map/basic.postcss.css index b95d332e..8da55590 100644 --- a/test/fixtures/source-map/basic.postcss.css +++ b/test/fixtures/source-map/basic.postcss.css @@ -1,3 +1,5 @@ +@import "./nested/nested.postcss.css"; + @custom-media --viewport-medium (width <= 50rem); @custom-selector :--heading h1, h2, h3, h4, h5, h6; diff --git a/test/fixtures/source-map/nested/nested.css b/test/fixtures/source-map/nested/nested.css new file mode 100644 index 00000000..c4313d19 --- /dev/null +++ b/test/fixtures/source-map/nested/nested.css @@ -0,0 +1,3 @@ +.nested { + color: blue; +} diff --git a/test/fixtures/source-map/nested/nested.postcss.css b/test/fixtures/source-map/nested/nested.postcss.css new file mode 100644 index 00000000..c4313d19 --- /dev/null +++ b/test/fixtures/source-map/nested/nested.postcss.css @@ -0,0 +1,3 @@ +.nested { + color: blue; +} diff --git a/test/helpers/getCompiler.js b/test/helpers/getCompiler.js index 25b0490e..e23cffba 100644 --- a/test/helpers/getCompiler.js +++ b/test/helpers/getCompiler.js @@ -27,7 +27,7 @@ export default (fixture, loaderOptions = {}, config = {}) => { ], }, { - test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/, + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/i, loader: 'file-loader', options: { name: '[name].[ext]' }, }, diff --git a/test/loader.test.js b/test/loader.test.js index da973d79..68741413 100644 --- a/test/loader.test.js +++ b/test/loader.test.js @@ -2,6 +2,8 @@ import path from 'path'; import postcssPresetEnv from 'postcss-preset-env'; +import { version } from 'webpack'; + import { compile, getCompiler, @@ -48,6 +50,55 @@ describe('loader', () => { expect(getErrors(stats)).toMatchSnapshot('errors'); }); + it('should work with "asset" module type', async () => { + const isWebpack5 = version[0] === '5'; + const config = { + module: { + rules: [ + { + test: /\.css$/i, + use: [ + { + loader: path.resolve(__dirname, '../src'), + }, + ], + }, + isWebpack5 + ? { + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/i, + type: 'asset', + } + : { + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/i, + loader: 'file-loader', + options: { name: '[name].[ext]' }, + }, + ], + }, + }; + + if (isWebpack5) { + config.experiments = { asset: true }; + config.output = { + path: path.resolve(__dirname, 'outputs'), + filename: '[name].bundle.js', + chunkFilename: '[name].chunk.js', + publicPath: '/webpack/public/path/', + assetModuleFilename: '[name][ext]', + }; + } + + const compiler = getCompiler('./basic.js', {}, config); + const stats = await compile(compiler); + + expect(getModuleSource('./basic.css', stats)).toMatchSnapshot('module'); + expect(getExecutedCode('main.bundle.js', compiler, stats)).toMatchSnapshot( + 'result' + ); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + }); + it('should throws error when no loader(s) for assets', async () => { const compiler = getCompiler( './basic.js', diff --git a/test/sourceMap-option.test.js b/test/sourceMap-option.test.js index e5468cc8..8aacdce8 100644 --- a/test/sourceMap-option.test.js +++ b/test/sourceMap-option.test.js @@ -186,7 +186,7 @@ describe('"sourceMap" option', () => { rules: [ { test: /\.css$/i, - rules: [ + use: [ { loader: path.resolve(__dirname, '../src'), options: { @@ -228,7 +228,7 @@ describe('"sourceMap" option', () => { // rules: [ // { // test: /\.s[ca]ss$/i, - // rules: [ + // use: [ // { // loader: path.resolve(__dirname, '../src'), // options: { @@ -418,7 +418,7 @@ describe('"sourceMap" option', () => { rules: [ { test: /\.css$/i, - rules: [ + use: [ { loader: path.resolve(__dirname, '../src'), options: { @@ -458,7 +458,7 @@ describe('"sourceMap" option', () => { rules: [ { test: /\.s[ca]ss$/i, - rules: [ + use: [ { loader: path.resolve(__dirname, '../src'), options: { From 63a74b2ccbec74c8e019e66465018c74378b95ad Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Tue, 17 Dec 2019 14:13:15 +0300 Subject: [PATCH 8/9] chore(deps): update (#1027) --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b509417c..d9804e6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7614,9 +7614,9 @@ } }, "jest-junit": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-9.0.0.tgz", - "integrity": "sha512-jnABGjL5pd2lhE1w3RIslZSufFbWQZGx8O3eluDES7qKxQuonXMtsPIi+4AKl4rtjb4DvMAjwLi4eHukc2FP/Q==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-10.0.0.tgz", + "integrity": "sha512-dbOVRyxHprdSpwSAR9/YshLwmnwf+RSl5hf0kCGlhAcEeZY9aRqo4oNmaT0tLC16Zy9D0zekDjWkjHGjXlglaQ==", "dev": true, "requires": { "jest-validate": "^24.9.0", diff --git a/package.json b/package.json index 09bf9c73..4af8324b 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "file-loader": "^5.0.2", "husky": "^3.1.0", "jest": "^24.9.0", - "jest-junit": "^9.0.0", + "jest-junit": "^10.0.0", "lint-staged": "^9.5.0", "memfs": "^3.0.1", "npm-run-all": "^4.1.5", From b95a779577ad12a491803ee33b1c3ce37f42477b Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Tue, 17 Dec 2019 16:57:15 +0300 Subject: [PATCH 9/9] chore(release): 3.4.0 --- CHANGELOG.md | 12 ++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4f61eb4..4c3b7b73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,18 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [3.4.0](https://github.com/webpack-contrib/css-loader/compare/v3.3.1...v3.4.0) (2019-12-17) + + +### Features + +* `esModule` option ([#1026](https://github.com/webpack-contrib/css-loader/issues/1026)) ([d358cdb](https://github.com/webpack-contrib/css-loader/commit/d358cdbe2c026afafa0279003cb6c8a3eff4c419)) + + +### Bug Fixes + +* logic for order and media queries for imports ([#1018](https://github.com/webpack-contrib/css-loader/issues/1018)) ([65450d9](https://github.com/webpack-contrib/css-loader/commit/65450d9c04790ccc9fb06eac81ea6d8f3cdbfaac)) + ### [3.3.2](https://github.com/webpack-contrib/css-loader/compare/v3.3.1...v3.3.2) (2019-12-12) diff --git a/package-lock.json b/package-lock.json index d9804e6a..ffd83df0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "css-loader", - "version": "3.3.2", + "version": "3.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4af8324b..b92fbf1c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "css-loader", - "version": "3.3.2", + "version": "3.4.0", "description": "css loader module for webpack", "license": "MIT", "repository": "webpack-contrib/css-loader",