From df7960277be20ec80e9be1a41ac53baf69847fa0 Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Fri, 10 Jan 2020 19:45:00 +0300 Subject: [PATCH] fix: do not duplicate css on `composes` (#1040) --- package-lock.json | 1152 +++++++++-------- package.json | 28 +- src/runtime/api.js | 20 +- src/utils.js | 4 +- test/__snapshots__/icss.test.js.snap | 4 +- .../__snapshots__/modules-option.test.js.snap | 219 ++-- .../modules/dedupe/buttons/button.css | 6 + .../modules/dedupe/buttons/primary-button.css | 6 + .../dedupe/buttons/secondary-button.css | 6 + test/fixtures/modules/dedupe/source.css | 9 + test/fixtures/modules/dedupe/source.js | 5 + test/modules-option.test.js | 16 + test/runtime/api.test.js | 10 +- 13 files changed, 847 insertions(+), 638 deletions(-) create mode 100644 test/fixtures/modules/dedupe/buttons/button.css create mode 100644 test/fixtures/modules/dedupe/buttons/primary-button.css create mode 100644 test/fixtures/modules/dedupe/buttons/secondary-button.css create mode 100644 test/fixtures/modules/dedupe/source.css create mode 100644 test/fixtures/modules/dedupe/source.js diff --git a/package-lock.json b/package-lock.json index befea976..9b3116f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@babel/cli": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.7.5.tgz", - "integrity": "sha512-y2YrMGXM3NUyu1Myg0pxg+Lx6g8XhEyvLHYNRwTBV6fDek3H7Io6b7N/LXscLs4HWn4HxMdy7f2rM1rTMp2mFg==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.7.7.tgz", + "integrity": "sha512-XQw5KyCZyu/M8/0rYiZyuwbgIQNzOrJzs9dDLX+MieSgBwTLvTj4QVbLmxJACAIvQIDT7PtyHN2sC48EOWTgaA==", "dev": true, "requires": { "chokidar": "^2.1.8", @@ -39,15 +39,15 @@ } }, "@babel/core": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", - "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", + "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", + "@babel/generator": "^7.7.7", "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.5", + "@babel/parser": "^7.7.7", "@babel/template": "^7.7.4", "@babel/traverse": "^7.7.4", "@babel/types": "^7.7.4", @@ -93,9 +93,9 @@ } }, "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", + "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", "dev": true, "requires": { "@babel/types": "^7.7.4", @@ -337,9 +337,9 @@ } }, "@babel/parser": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", - "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", + "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { @@ -374,9 +374,9 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz", + "integrity": "sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -394,9 +394,9 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz", - "integrity": "sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz", + "integrity": "sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.7.4", @@ -531,9 +531,9 @@ } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz", - "integrity": "sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz", + "integrity": "sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.7.4", @@ -669,9 +669,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz", - "integrity": "sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz", + "integrity": "sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew==", "dev": true, "requires": { "@babel/helper-call-delegate": "^7.7.4", @@ -764,9 +764,9 @@ } }, "@babel/preset-env": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.6.tgz", - "integrity": "sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.7.tgz", + "integrity": "sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.4", @@ -774,9 +774,9 @@ "@babel/plugin-proposal-async-generator-functions": "^7.7.4", "@babel/plugin-proposal-dynamic-import": "^7.7.4", "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.4", + "@babel/plugin-proposal-object-rest-spread": "^7.7.7", "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.7.7", "@babel/plugin-syntax-async-generators": "^7.7.4", "@babel/plugin-syntax-dynamic-import": "^7.7.4", "@babel/plugin-syntax-json-strings": "^7.7.4", @@ -790,7 +790,7 @@ "@babel/plugin-transform-classes": "^7.7.4", "@babel/plugin-transform-computed-properties": "^7.7.4", "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.4", + "@babel/plugin-transform-dotall-regex": "^7.7.7", "@babel/plugin-transform-duplicate-keys": "^7.7.4", "@babel/plugin-transform-exponentiation-operator": "^7.7.4", "@babel/plugin-transform-for-of": "^7.7.4", @@ -804,7 +804,7 @@ "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", "@babel/plugin-transform-new-target": "^7.7.4", "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.4", + "@babel/plugin-transform-parameters": "^7.7.7", "@babel/plugin-transform-property-literals": "^7.7.4", "@babel/plugin-transform-regenerator": "^7.7.5", "@babel/plugin-transform-reserved-words": "^7.7.4", @@ -816,12 +816,29 @@ "@babel/plugin-transform-unicode-regex": "^7.7.4", "@babel/types": "^7.7.4", "browserslist": "^4.6.0", - "core-js-compat": "^3.4.7", + "core-js-compat": "^3.6.0", "invariant": "^2.2.2", "js-levenshtein": "^1.1.3", "semver": "^5.5.0" } }, + "@babel/runtime": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz", + "integrity": "sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true + } + } + }, "@babel/template": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", @@ -889,204 +906,167 @@ } }, "@commitlint/cli": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-8.2.0.tgz", - "integrity": "sha512-8fJ5pmytc38yw2QWbTTJmXLfSiWPwMkHH4govo9zJ/+ERPBF2jvlxD/dQvk24ezcizjKc6LFka2edYC4OQ+Dgw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-8.3.4.tgz", + "integrity": "sha512-lYL61eO5CG5Du3YTOt8eXg959awIpl/u2KL+msctbooUGTDtiknvBb1r7dbdpUYwVMWcgdKQsk9heB+FRdygfA==", "dev": true, "requires": { - "@commitlint/format": "^8.2.0", - "@commitlint/lint": "^8.2.0", - "@commitlint/load": "^8.2.0", - "@commitlint/read": "^8.2.0", + "@commitlint/format": "^8.3.4", + "@commitlint/lint": "^8.3.4", + "@commitlint/load": "^8.3.4", + "@commitlint/read": "^8.3.4", "babel-polyfill": "6.26.0", "chalk": "2.4.2", "get-stdin": "7.0.0", - "lodash": "4.17.14", + "lodash": "4.17.15", "meow": "5.0.0", "resolve-from": "5.0.0", "resolve-global": "1.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } } }, "@commitlint/config-conventional": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-8.2.0.tgz", - "integrity": "sha512-HuwlHQ3DyVhpK9GHgTMhJXD8Zp8PGIQVpQGYh/iTrEU6TVxdRC61BxIDZvfWatCaiG617Z/U8maRAFrqFM4TqA==", - "dev": true + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-8.3.4.tgz", + "integrity": "sha512-w0Yc5+aVAjZgjYqx29igBOnVCj8O22gy3Vo6Fyp7PwoS7+AYS1x3sN7IBq6i7Ae15Mv5P+rEx1pkxXo5zOMe4g==", + "dev": true, + "requires": { + "conventional-changelog-conventionalcommits": "4.2.1" + } }, "@commitlint/ensure": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.2.0.tgz", - "integrity": "sha512-XZZih/kcRrqK7lEORbSYCfqQw6byfsFbLygRGVdJMlCPGu9E2MjpwCtoj5z7y/lKfUB3MJaBhzn2muJqS1gC6A==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.3.4.tgz", + "integrity": "sha512-8NW77VxviLhD16O3EUd02lApMFnrHexq10YS4F4NftNoErKbKaJ0YYedktk2boKrtNRf/gQHY/Qf65edPx4ipw==", "dev": true, "requires": { - "lodash": "4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } + "lodash": "4.17.15" } }, "@commitlint/execute-rule": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.2.0.tgz", - "integrity": "sha512-9MBRthHaulbWTa8ReG2Oii2qc117NuvzhZdnkuKuYLhker7sUXGFcVhLanuWUKGyfyI2o9zVr/NHsNbCCsTzAA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz", + "integrity": "sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ==", "dev": true }, "@commitlint/format": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-8.2.0.tgz", - "integrity": "sha512-sA77agkDEMsEMrlGhrLtAg8vRexkOofEEv/CZX+4xlANyAz2kNwJvMg33lcL65CBhqKEnRRJRxfZ1ZqcujdKcQ==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-8.3.4.tgz", + "integrity": "sha512-809wlQ/ND6CLZON+w2Rb3YM2TLNDfU2xyyqpZeqzf2reJNpySMSUAeaO/fNDJSOKIsOsR3bI01rGu6hv28k+Nw==", "dev": true, "requires": { "chalk": "^2.0.1" } }, "@commitlint/is-ignored": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.2.0.tgz", - "integrity": "sha512-ADaGnKfbfV6KD1pETp0Qf7XAyc75xTy3WJlbvPbwZ4oPdBMsXF0oXEEGMis6qABfU2IXan5/KAJgAFX3vdd0jA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.3.4.tgz", + "integrity": "sha512-9RTWJvOW2ZvOh09xRnw7wQhcSp24ekeChDPAoZV13d5cTay0qcGFFthvwHs6URstKuu6Iasoxswtq0HmTWvoAg==", "dev": true, "requires": { "@types/semver": "^6.0.1", - "semver": "6.2.0" + "semver": "6.3.0" }, "dependencies": { "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "@commitlint/lint": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-8.2.0.tgz", - "integrity": "sha512-ch9JN8aR37ufdjoWv50jLfvFz9rWMgLW5HEkMGLsM/51gjekmQYS5NJg8S2+6F5+jmralAO7VkUMI6FukXKX0A==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-8.3.4.tgz", + "integrity": "sha512-ws1JLs7rNAcwlfYLKh0xhs3RNMcT4dYjyG0US/JenmSCrttzfAct+7IvdkAjkj6/3jsOn6fYaV4MhE6hfdPC9A==", "dev": true, "requires": { - "@commitlint/is-ignored": "^8.2.0", - "@commitlint/parse": "^8.2.0", - "@commitlint/rules": "^8.2.0", + "@commitlint/is-ignored": "^8.3.4", + "@commitlint/parse": "^8.3.4", + "@commitlint/rules": "^8.3.4", "babel-runtime": "^6.23.0", - "lodash": "4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } + "lodash": "4.17.15" } }, "@commitlint/load": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-8.2.0.tgz", - "integrity": "sha512-EV6PfAY/p83QynNd1llHxJiNxKmp43g8+7dZbyfHFbsGOdokrCnoelAVZ+WGgktXwLN/uXyfkcIAxwac015UYw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-8.3.4.tgz", + "integrity": "sha512-B4MylKvT02UE3VHC5098OHxsrgkADUy5AD4Cdkiy7oX/edWypEmvK7Wuns3B9dwluWP/iFM6daoWtpkCVZoRwQ==", "dev": true, "requires": { - "@commitlint/execute-rule": "^8.2.0", - "@commitlint/resolve-extends": "^8.2.0", + "@commitlint/execute-rule": "^8.3.4", + "@commitlint/resolve-extends": "^8.3.4", "babel-runtime": "^6.23.0", "chalk": "2.4.2", "cosmiconfig": "^5.2.0", - "lodash": "4.17.14", + "lodash": "4.17.15", "resolve-from": "^5.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } } }, "@commitlint/message": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-8.2.0.tgz", - "integrity": "sha512-LNsSwDLIFgE3nb/Sb1PIluYNy4Q8igdf4tpJCdv5JJDf7CZCZt3ZTglj0YutZZorpRRuHJsVIB2+dI4bVH3bFw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-8.3.4.tgz", + "integrity": "sha512-nEj5tknoOKXqBsaQtCtgPcsAaf5VCg3+fWhss4Vmtq40633xLq0irkdDdMEsYIx8rGR0XPBTukqzln9kAWCkcA==", "dev": true }, "@commitlint/parse": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-8.2.0.tgz", - "integrity": "sha512-vzouqroTXG6QXApkrps0gbeSYW6w5drpUk7QAeZIcaCSPsQXDM8eqqt98ZzlzLJHo5oPNXPX1AAVSTrssvHemA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-8.3.4.tgz", + "integrity": "sha512-b3uQvpUQWC20EBfKSfMRnyx5Wc4Cn778bVeVOFErF/cXQK725L1bYFvPnEjQO/GT8yGVzq2wtLaoEqjm1NJ/Bw==", "dev": true, "requires": { "conventional-changelog-angular": "^1.3.3", - "conventional-commits-parser": "^2.1.0", + "conventional-commits-parser": "^3.0.0", "lodash": "^4.17.11" } }, "@commitlint/read": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-8.2.0.tgz", - "integrity": "sha512-1tBai1VuSQmsOTsvJr3Fi/GZqX3zdxRqYe/yN4i3cLA5S2Y4QGJ5I3l6nGZlKgm/sSelTCVKHltrfWU8s5H7SA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-8.3.4.tgz", + "integrity": "sha512-FKv1kHPrvcAG5j+OSbd41IWexsbLhfIXpxVC/YwQZO+FR0EHmygxQNYs66r+GnhD1EfYJYM4WQIqd5bJRx6OIw==", "dev": true, "requires": { - "@commitlint/top-level": "^8.2.0", + "@commitlint/top-level": "^8.3.4", "@marionebl/sander": "^0.6.0", "babel-runtime": "^6.23.0", - "git-raw-commits": "^1.3.0" + "git-raw-commits": "^2.0.0" } }, "@commitlint/resolve-extends": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.2.0.tgz", - "integrity": "sha512-cwi0HUsDcD502HBP8huXfTkVuWmeo1Fiz3GKxNwMBBsJV4+bKa7QrtxbNpXhVuarX7QjWfNTvmW6KmFS7YK9uw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.3.4.tgz", + "integrity": "sha512-M34RLaAW1eGWgtkVtotHfPaJa+cZIARe8twKItd7RhWs7n/1W2py9GTFIiIEq95LBN1uah5vm1WQHsfLqPZYHA==", "dev": true, "requires": { "@types/node": "^12.0.2", "import-fresh": "^3.0.0", - "lodash": "4.17.14", + "lodash": "4.17.15", "resolve-from": "^5.0.0", "resolve-global": "^1.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } } }, "@commitlint/rules": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-8.2.0.tgz", - "integrity": "sha512-FlqSBBP2Gxt5Ibw+bxdYpzqYR6HI8NIBpaTBhAjSEAduQtdWFMOhF0zsgkwH7lHN7opaLcnY2fXxAhbzTmJQQA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-8.3.4.tgz", + "integrity": "sha512-xuC9dlqD5xgAoDFgnbs578cJySvwOSkMLQyZADb1xD5n7BNcUJfP8WjT9W1Aw8K3Wf8+Ym/ysr9FZHXInLeaRg==", "dev": true, "requires": { - "@commitlint/ensure": "^8.2.0", - "@commitlint/message": "^8.2.0", - "@commitlint/to-lines": "^8.2.0", + "@commitlint/ensure": "^8.3.4", + "@commitlint/message": "^8.3.4", + "@commitlint/to-lines": "^8.3.4", "babel-runtime": "^6.23.0" } }, "@commitlint/to-lines": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.2.0.tgz", - "integrity": "sha512-LXTYG3sMenlN5qwyTZ6czOULVcx46uMy+MEVqpvCgptqr/MZcV/C2J+S2o1DGwj1gOEFMpqrZaE3/1R2Q+N8ng==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.3.4.tgz", + "integrity": "sha512-5AvcdwRsMIVq0lrzXTwpbbG5fKRTWcHkhn/hCXJJ9pm1JidsnidS1y0RGkb3O50TEHGewhXwNoavxW9VToscUA==", "dev": true }, "@commitlint/top-level": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.2.0.tgz", - "integrity": "sha512-Yaw4KmYNy31/HhRUuZ+fupFcDalnfpdu4JGBgGAqS9aBHdMSSWdWqtAaDaxdtWjTZeN3O0sA2gOhXwvKwiDwvw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.3.4.tgz", + "integrity": "sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg==", "dev": true, "requires": { "find-up": "^4.0.0" @@ -1112,9 +1092,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -1427,6 +1407,12 @@ "@babel/types": "^7.3.0" } }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", @@ -1476,15 +1462,15 @@ "dev": true }, "@types/node": { - "version": "12.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.18.tgz", - "integrity": "sha512-DBkZuIMFuAfjJHiunyRc+aNvmXYNwV1IPMgGKGlwCp6zh6MKrVtmvjSWK/axWcD25KJffkXgkfvFra8ndenXAw==", + "version": "12.12.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.24.tgz", + "integrity": "sha512-1Ciqv9pqwVtW6FsIUKSZNB82E5Cu1I2bBTj1xuIHXLe/1zYLl3956Nbhg2MzSYHVfl9/rmanjbQIb7LibfCnug==", "dev": true }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, "@types/semver": { @@ -1500,9 +1486,9 @@ "dev": true }, "@types/yargs": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz", - "integrity": "sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.5.tgz", + "integrity": "sha512-CF/+sxTO7FOwbIRL4wMv0ZYLCRfMid2HQpzDRyViH7kSpfoAFiMdGqKIxb1PxWfjtQXQhnQuD33lvRHNwr809Q==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -1947,13 +1933,14 @@ "dev": true }, "array-includes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.0.tgz", - "integrity": "sha512-ONOEQoKrvXPKk7Su92Co0YMqYO32FfqJTzkKU9u2UpIXyYZIzLSvpdg4AwvSw4mSUW0czu6inK+zby6Oj6gDjQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.0" + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" } }, "array-union": { @@ -2215,9 +2202,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -2537,14 +2524,14 @@ } }, "browserslist": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz", - "integrity": "sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==", + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.3.tgz", + "integrity": "sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001015", + "caniuse-lite": "^1.0.30001017", "electron-to-chromium": "^1.3.322", - "node-releases": "^1.1.42" + "node-releases": "^1.1.44" } }, "bser": { @@ -2699,9 +2686,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001016", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz", - "integrity": "sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==", + "version": "1.0.30001020", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz", + "integrity": "sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA==", "dev": true }, "caporal": { @@ -3028,9 +3015,9 @@ } }, "commander": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz", - "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", + "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", "dev": true }, "comment-json": { @@ -3043,12 +3030,96 @@ } }, "commitlint-azure-pipelines-cli": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/commitlint-azure-pipelines-cli/-/commitlint-azure-pipelines-cli-1.0.2.tgz", - "integrity": "sha512-Uj5QatjR1HAifoJI7ZjNx3O8iuH0lUnTmja9jGIA4KjEPLfbyctob4i1JgOZ7tGQK918n1uoolyZBjbQ7h/WSw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/commitlint-azure-pipelines-cli/-/commitlint-azure-pipelines-cli-1.0.3.tgz", + "integrity": "sha512-ZS0Ansmu1c6MGncWdGIhQ0L3R3kJyX0ZVkMLG4GXeKx9aoVJudBJlfYztnsXwjpRFenFr8+Pd2xh3jM4Z4Etdg==", "dev": true, "requires": { - "execa": "^1.0.0" + "execa": "^4.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz", + "integrity": "sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "commondir": { @@ -3175,13 +3246,13 @@ "dev": true }, "conventional-changelog-conventionalcommits": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.3.tgz", - "integrity": "sha512-atGa+R4vvEhb8N/8v3IoW59gCBJeeFiX6uIbPu876ENAmkMwsenyn0R21kdDHJFLQdy6zW4J6b4xN8KI3b9oww==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.1.tgz", + "integrity": "sha512-vC02KucnkNNap+foDKFm7BVUSDAXktXrUJqGszUuYnt6T0J2azsbYz/w9TDc3VsrW2v6JOtiQWVcgZnporHr4Q==", "dev": true, "requires": { "compare-func": "^1.3.1", - "lodash": "^4.17.15", + "lodash": "^4.2.1", "q": "^1.5.1" } }, @@ -3207,21 +3278,6 @@ "through2": "^3.0.0" }, "dependencies": { - "conventional-commits-parser": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz", - "integrity": "sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ==", - "dev": true, - "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.1", - "lodash": "^4.17.15", - "meow": "^5.0.0", - "split2": "^2.0.0", - "through2": "^3.0.0", - "trim-off-newlines": "^1.0.0" - } - }, "git-raw-commits": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", @@ -3235,23 +3291,6 @@ "through2": "^2.0.0" }, "dependencies": { - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -3272,6 +3311,42 @@ "requires": { "meow": "^5.0.0", "semver": "^6.0.0" + }, + "dependencies": { + "meow": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", + "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" + } + } + } + }, + "meow": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" } }, "semver": { @@ -3279,15 +3354,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true - }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dev": true, - "requires": { - "readable-stream": "2 || 3" - } } } }, @@ -3366,15 +3432,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true - }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dev": true, - "requires": { - "readable-stream": "2 || 3" - } } } }, @@ -3389,37 +3446,18 @@ } }, "conventional-commits-parser": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz", - "integrity": "sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz", + "integrity": "sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ==", "dev": true, "requires": { "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", - "lodash": "^4.2.1", - "meow": "^4.0.0", + "is-text-path": "^1.0.1", + "lodash": "^4.17.15", + "meow": "^5.0.0", "split2": "^2.0.0", - "through2": "^2.0.0", + "through2": "^3.0.0", "trim-off-newlines": "^1.0.0" - }, - "dependencies": { - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - } } }, "conventional-recommended-bump": { @@ -3450,40 +3488,6 @@ "typedarray": "^0.0.6" } }, - "conventional-commits-parser": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz", - "integrity": "sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ==", - "dev": true, - "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.1", - "lodash": "^4.17.15", - "meow": "^5.0.0", - "split2": "^2.0.0", - "through2": "^3.0.0", - "trim-off-newlines": "^1.0.0" - }, - "dependencies": { - "meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" - } - } - } - }, "git-raw-commits": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", @@ -3495,33 +3499,6 @@ "meow": "^4.0.0", "split2": "^2.0.0", "through2": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } } }, "meow": { @@ -3553,12 +3530,30 @@ } }, "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "2 || 3" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } } } } @@ -3599,19 +3594,19 @@ "dev": true }, "core-js-compat": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.5.0.tgz", - "integrity": "sha512-E7iJB72svRjJTnm9HDvujzNVMCm3ZcDYEedkJ/sDTNsy/0yooCd9Cg7GSzE7b4e0LfIkjijdB1tqg0pGwxWeWg==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.2.tgz", + "integrity": "sha512-+G28dzfYGtAM+XGvB1C5AS1ZPKfQ47HLhcdeIQdZgQnJVdp7/D0m+W/TErwhgsX6CujRUk/LebB6dCrKrtJrvQ==", "dev": true, "requires": { - "browserslist": "^4.8.2", - "semver": "^6.3.0" + "browserslist": "^4.8.3", + "semver": "7.0.0" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true } } @@ -4202,9 +4197,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -4270,9 +4265,9 @@ } }, "electron-to-chromium": { - "version": "1.3.322", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", - "integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==", + "version": "1.3.330", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.330.tgz", + "integrity": "sha512-CUHUJ1c5mOqowGPhmSMHUDpZMpE33vocs77fCxIhVMG4tFNYSNhgE9n0WURxOgVO7nWaZpCiNTMwiHF8NAyP/Q==", "dev": true }, "elegant-spinner": { @@ -4358,22 +4353,22 @@ } }, "es-abstract": { - "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==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", + "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", "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", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", "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" + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" } }, "es-check": { @@ -4404,9 +4399,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz", + "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==", "dev": true, "requires": { "esprima": "^3.1.3", @@ -4425,9 +4420,9 @@ } }, "eslint": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.7.2.tgz", - "integrity": "sha512-qMlSWJaCSxDFr8fBPvJM9kJwbazrhNcBU3+DszDW1OlEwKBBRWsJc7NJFelvwQpanHCR14cOLD41x8Eqvo3Nng==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -4547,9 +4542,9 @@ "dev": true }, "inquirer": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.1.tgz", - "integrity": "sha512-V1FFQ3TIO15det8PijPLFR9M9baSlnRs9nL7zWu1MNVA2T9YVl9ZbrHJhYs7e9X8jeMZ3lr2JH/rdHFgNCBdYw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.3.tgz", + "integrity": "sha512-+OiOVeVydu4hnCGLCSX+wedovR/Yzskv9BFqUNNKq9uU2qg7LCcCo3R86S2E7WLo0y/x2pnEZfZe1CoYnORUAw==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -4585,15 +4580,6 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -4667,9 +4653,9 @@ } }, "eslint-config-prettier": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.7.0.tgz", - "integrity": "sha512-FamQVKM3jjUVwhG4hEMnbtsq7xOIDm+SY5iBPfR8gKsJoAB2IQnNF+bk1+8Fy44Nq7PPJaLvkRxILYdJWoguKQ==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.9.0.tgz", + "integrity": "sha512-k4E14HBtcLv0uqThaI6I/n1LEqROp8XaPu6SO9Z32u5NlGRC07Enu1Bh2KEFw4FNHbekH8yzbIU9kUGxbiGmCA==", "dev": true, "requires": { "get-stdin": "^6.0.0" @@ -4873,9 +4859,9 @@ "dev": true }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, "evp_bytestokey": { @@ -5288,9 +5274,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -6243,6 +6229,16 @@ "get-stdin": "^4.0.1" } }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", @@ -6304,35 +6300,16 @@ } }, "git-raw-commits": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.6.tgz", - "integrity": "sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.3.tgz", + "integrity": "sha512-SoSsFL5lnixVzctGEi2uykjA7B5I0AhO9x6kdzvGRHbxsa6JSEgrgy1esRKsfOKE1cgyOJ/KDR2Trxu157sb8w==", "dev": true, "requires": { "dargs": "^4.0.1", "lodash.template": "^4.0.2", - "meow": "^4.0.0", + "meow": "^5.0.0", "split2": "^2.0.0", - "through2": "^2.0.0" - }, - "dependencies": { - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - } + "through2": "^3.0.0" } }, "git-remote-origin-url": { @@ -6458,9 +6435,9 @@ "dev": true }, "globby": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", - "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "dev": true, "requires": { "@types/glob": "^7.1.1", @@ -6494,9 +6471,9 @@ "dev": true }, "handlebars": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", - "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.0.tgz", + "integrity": "sha512-PaZ6G6nYzfJ0Hd1WIhOpsnUPWh1R0Pg//r4wEYOtzG65c2V8RJQ/++yYlVmuoQ7EMXcb4eri5+FB2XH1Lwed9g==", "dev": true, "requires": { "neo-async": "^2.6.0", @@ -6660,25 +6637,77 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, "husky": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-3.1.0.tgz", - "integrity": "sha512-FJkPoHHB+6s4a+jwPqBudBDvYZsoQW5/HBuMSehC8qDiCe50kpcxeqFoDSlow+9I6wg47YxBoT3WxaURlrDIIQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.0.6.tgz", + "integrity": "sha512-OxsXXQXu/FYauV5GGhNpyN1yhQPQoDFUJwzHoshYc3wO//gC0PB9YNYLgBxKckfEce0FGEbzb498UecR3jNdZw==", "dev": true, "requires": { - "chalk": "^2.4.2", + "chalk": "^3.0.0", "ci-info": "^2.0.0", - "cosmiconfig": "^5.2.1", - "execa": "^1.0.0", + "cosmiconfig": "^6.0.0", "get-stdin": "^7.0.0", "opencollective-postinstall": "^2.0.2", "pkg-dir": "^4.2.0", "please-upgrade-node": "^3.2.0", - "read-pkg": "^5.2.0", - "run-node": "^1.0.0", - "slash": "^3.0.0" + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" }, "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -6689,6 +6718,12 @@ "path-exists": "^4.0.0" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -6699,9 +6734,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -6740,6 +6775,12 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -6749,29 +6790,20 @@ "find-up": "^4.0.0" } }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - } - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -6884,9 +6916,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -7092,9 +7124,9 @@ "dev": true }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true }, "is-ci": { @@ -7127,9 +7159,9 @@ } }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, "is-descriptor": { @@ -7288,6 +7320,12 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -8212,15 +8250,6 @@ "path-key": "^3.0.0" } }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, "p-finally": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", @@ -8722,9 +8751,9 @@ } }, "memfs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.0.1.tgz", - "integrity": "sha512-v8MPoino1vfmwl2LDbFAg5tgPd7EPvKLvcSkx/CDJGB3JCGyHZSasRtC63wmM+iHFXh4cooYCu+cWCd1dqh2+A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.0.3.tgz", + "integrity": "sha512-uElu3oR/dM4GeKu86Fqi73eKdafJmmAaxEHx3iSayN+/zvCA0PTcsa6r1QhpN75SqxqdC7rfHqKZzzq3pgKQ5g==", "dev": true, "requires": { "fast-extend": "1.0.2", @@ -8823,18 +8852,18 @@ "dev": true }, "mime-db": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", - "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==", + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", "dev": true }, "mime-types": { - "version": "2.1.25", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", - "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "dev": true, "requires": { - "mime-db": "1.42.0" + "mime-db": "1.43.0" } }, "mimic-fn": { @@ -8895,6 +8924,18 @@ "pumpify": "^1.3.3", "stream-each": "^1.1.0", "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "mixin-deep": { @@ -9001,9 +9042,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -9147,9 +9188,9 @@ } }, "node-releases": { - "version": "1.1.42", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.42.tgz", - "integrity": "sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA==", + "version": "1.1.45", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.45.tgz", + "integrity": "sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg==", "dev": true, "requires": { "semver": "^6.3.0" @@ -9364,10 +9405,13 @@ } }, "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } }, "opencollective-postinstall": { "version": "2.0.2", @@ -9655,9 +9699,9 @@ "dev": true }, "picomatch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.1.tgz", - "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", "dev": true }, "pidtree": { @@ -9727,9 +9771,9 @@ "dev": true }, "postcss": { - "version": "7.0.25", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.25.tgz", - "integrity": "sha512-NXXVvWq9icrm/TgQC0O6YVFi4StfJz46M1iNd/h6B26Nvh/HKI+q4YZtFN/EjcInZliEscO/WL10BXnc1E5nwg==", + "version": "7.0.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz", + "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==", "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -10349,9 +10393,9 @@ "dev": true }, "psl": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz", - "integrity": "sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", "dev": true }, "public-encrypt": { @@ -10495,9 +10539,9 @@ } }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -10615,9 +10659,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.1.tgz", - "integrity": "sha512-7LutE94sz/NKSYegK+/4E77+8DipxF+Qn2Tmu362AcmsF2NYq/wx3+ObvU90TKEhjf7hQoFXo23ajjrXP7eUgg==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", + "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -10746,9 +10790,9 @@ "dev": true }, "resolve": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", - "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", + "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -10800,6 +10844,14 @@ "requires": { "exit-hook": "^1.0.0", "onetime": "^1.0.0" + }, + "dependencies": { + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + } } }, "ret": { @@ -10848,12 +10900,6 @@ "is-promise": "^2.1.0" } }, - "run-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz", - "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", - "dev": true - }, "run-parallel": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", @@ -10876,9 +10922,9 @@ "dev": true }, "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -10923,31 +10969,31 @@ } }, "sass": { - "version": "1.23.7", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.23.7.tgz", - "integrity": "sha512-cYgc0fanwIpi0rXisGxl+/wadVQ/HX3RhpdRcjLdj2o2ye/sxUTpAxIhbmJy3PLQgRFbf6Pn8Jsrta2vdXcoOQ==", + "version": "1.24.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.24.4.tgz", + "integrity": "sha512-SqizkIEEcVPzmK1tYdlNRl/RSXMEwGcifL9GD+S2p9rEPdj6ycRbk4PWZs0jwlajNSyBPo/SXRB81i22SG0jmw==", "dev": true, "requires": { "chokidar": ">=2.0.0 <4.0.0" } }, "sass-loader": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.0.tgz", - "integrity": "sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.1.tgz", + "integrity": "sha512-ANR2JHuoxzCI+OPDA0hJBv1Y16A2021hucu0S3DOGgpukKzq9W+4vX9jhIqs4qibT5E7RIRsHMMrN0kdF5nUig==", "dev": true, "requires": { "clone-deep": "^4.0.1", "loader-utils": "^1.2.3", "neo-async": "^2.6.1", - "schema-utils": "^2.1.0", - "semver": "^6.3.0" + "schema-utils": "^2.6.1", + "semver": "^7.1.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", "dev": true } } @@ -11235,12 +11281,12 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -11336,6 +11382,18 @@ "dev": true, "requires": { "through2": "^2.0.2" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "sprintf-js": { @@ -11457,9 +11515,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -11716,9 +11774,9 @@ } }, "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -11726,9 +11784,9 @@ } }, "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -11897,9 +11955,9 @@ "dev": true }, "terser": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", - "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.2.tgz", + "integrity": "sha512-6FUjJdY2i3WZAtYBtnV06OOcOfzl+4hSKYE9wgac8rkLRBToPDDrBB2AcHwQD/OKDxbnvhVy2YgOPWO2SsKWqg==", "dev": true, "requires": { "commander": "^2.20.0", @@ -11977,9 +12035,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -12037,13 +12095,12 @@ "dev": true }, "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "2 || 3" } }, "timers-browserify": { @@ -12204,9 +12261,9 @@ "dev": true }, "uglify-js": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.2.tgz", - "integrity": "sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.4.tgz", + "integrity": "sha512-tinYWE8X1QfCHxS1lBS8yiDekyhSXOO6R66yNOCdUJeojxxw+PX2BHAz/BWyW7PQ7pkiWVxJfIEbiDxyLWvUGg==", "dev": true, "optional": true, "requires": { @@ -12504,9 +12561,9 @@ "dev": true }, "webpack": { - "version": "4.41.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", - "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", + "version": "4.41.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", + "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -12623,6 +12680,12 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, "winston": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz", @@ -12776,6 +12839,15 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, + "yaml": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", + "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3" + } + }, "yargs": { "version": "13.3.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", @@ -12826,9 +12898,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" diff --git a/package.json b/package.json index 6cb1a318..3ccad08e 100644 --- a/package.json +++ b/package.json @@ -57,38 +57,38 @@ "schema-utils": "^2.6.0" }, "devDependencies": { - "@babel/cli": "^7.7.4", - "@babel/core": "^7.7.4", - "@babel/preset-env": "^7.7.4", - "@commitlint/cli": "^8.2.0", - "@commitlint/config-conventional": "^8.2.0", + "@babel/cli": "^7.7.7", + "@babel/core": "^7.7.7", + "@babel/preset-env": "^7.7.7", + "@commitlint/cli": "^8.3.4", + "@commitlint/config-conventional": "^8.3.4", "@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", + "commitlint-azure-pipelines-cli": "^1.0.3", "cross-env": "^6.0.3", "del": "^5.1.0", "del-cli": "^3.0.0", "es-check": "^5.1.0", - "eslint": "^6.7.1", - "eslint-config-prettier": "^6.7.0", - "eslint-plugin-import": "^2.18.2", + "eslint": "^6.8.0", + "eslint-config-prettier": "^6.9.0", + "eslint-plugin-import": "^2.19.1", "file-loader": "^5.0.2", - "husky": "^3.1.0", + "husky": "^4.0.6", "jest": "^24.9.0", "jest-junit": "^10.0.0", "lint-staged": "^9.5.0", - "memfs": "^3.0.1", + "memfs": "^3.0.3", "npm-run-all": "^4.1.5", "postcss-loader": "^3.0.0", "postcss-preset-env": "^6.7.0", "prettier": "^1.19.1", - "sass": "^1.23.7", - "sass-loader": "^8.0.0", + "sass": "^1.24.4", + "sass-loader": "^8.0.1", "standard-version": "^7.0.1", "strip-ansi": "^6.0.0", "url-loader": "^3.0.0", - "webpack": "^4.41.3" + "webpack": "^4.41.5" }, "keywords": [ "webpack", diff --git a/src/runtime/api.js b/src/runtime/api.js index bf8a1cbc..0129e07b 100644 --- a/src/runtime/api.js +++ b/src/runtime/api.js @@ -22,15 +22,33 @@ module.exports = function(useSourceMap) { // import a list of modules into the list // eslint-disable-next-line func-names - list.i = function(modules, mediaQuery) { + list.i = function(modules, mediaQuery, dedupe) { if (typeof modules === 'string') { // eslint-disable-next-line no-param-reassign modules = [[null, modules, '']]; } + const alreadyImportedModules = {}; + + if (dedupe) { + 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 = [].concat(modules[i]); + if (dedupe && alreadyImportedModules[item[0]]) { + // eslint-disable-next-line no-continue + continue; + } + if (mediaQuery) { if (!item[2]) { item[2] = mediaQuery; diff --git a/src/utils.js b/src/utils.js index bdbf7910..9fecfcca 100644 --- a/src/utils.js +++ b/src/utils.js @@ -329,7 +329,7 @@ function getImportCode( case 'icss-import': { const { importName, url, media } = item; - const preparedMedia = media ? `, ${JSON.stringify(media)}` : ''; + const preparedMedia = media ? `, ${JSON.stringify(media)}` : ', ""'; if (!importPrefix) { importPrefix = getImportPrefix(loaderContext, importLoaders); @@ -348,7 +348,7 @@ function getImportCode( ); if (exportType === 'full') { - codeItems.push(`exports.i(${importName}${preparedMedia});`); + codeItems.push(`exports.i(${importName}${preparedMedia}, true);`); } } break; diff --git a/test/__snapshots__/icss.test.js.snap b/test/__snapshots__/icss.test.js.snap index 9956ec3e..7dfd9713 100644 --- a/test/__snapshots__/icss.test.js.snap +++ b/test/__snapshots__/icss.test.js.snap @@ -176,7 +176,7 @@ exports[`ICSS show work with the case "import": module 1`] = ` var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./vars.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\".className {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"primary-color\\"] + \\";\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -215,7 +215,7 @@ exports[`ICSS show work with the case "import-reserved-keywords": module 1`] = ` var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./vars.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 diff --git a/test/__snapshots__/modules-option.test.js.snap b/test/__snapshots__/modules-option.test.js.snap index 3bedff47..b9bd2fb6 100644 --- a/test/__snapshots__/modules-option.test.js.snap +++ b/test/__snapshots__/modules-option.test.js.snap @@ -7,7 +7,7 @@ exports[`"modules" option issue #286: module 1`] = ` var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"./dep.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\".b--main { }\\\\n\\", \\"\\"]); // Exports @@ -44,7 +44,7 @@ exports[`"modules" option issue #636: module 1`] = ` var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./foo.scss\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\".prefix-bar {\\\\n}\\", \\"\\"]); // Exports @@ -83,8 +83,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // 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 @@ -370,7 +370,7 @@ exports[`"modules" option should avoid unnecessary "require": module 1`] = ` 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 = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._1UgilPFsYxSK4gX5ZkTYCj {\\\\n color: red;\\\\n}\\\\n\\\\n._3V5dPWs_xG519C1PGI1Njd {\\\\n color: red;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -409,6 +409,77 @@ Array [ exports[`"modules" option should avoid unnecessary "require": warnings 1`] = `Array []`; +exports[`"modules" option should dedupe same modules in one module (issue #1037): errors 1`] = `Array []`; + +exports[`"modules" option should dedupe same modules in one module (issue #1037): module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../src/runtime/api.js\\"); +var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ident]!./buttons/primary-button.css\\"); +var ___CSS_LOADER_ICSS_IMPORT_1___ = require(\\"-!../../../../src/index.js??[ident]!./buttons/secondary-button.css\\"); +exports = ___CSS_LOADER_API_IMPORT___(false); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); +// Module +exports.push([module.id, \\".EzyG7UwnL9VTWJMm1zvyL\\\\n{\\\\n}\\\\n\\\\n.vO79o4trei2_Dt8Bi8s5W\\\\n{\\\\n}\\\\n\\", \\"\\"]); +// Exports +exports.locals = { + \\"nextButton\\": \\"EzyG7UwnL9VTWJMm1zvyL \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"primaryButton\\"] + \\"\\", + \\"backButton\\": \\"vO79o4trei2_Dt8Bi8s5W \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"secondaryButton\\"] + \\"\\" +}; +module.exports = exports; +" +`; + +exports[`"modules" option should dedupe same modules in one module (issue #1037): result 1`] = ` +Array [ + Array [ + "../../src/index.js?[ident]!./modules/dedupe/buttons/button.css", + "._2CDoM-NXLchQ7VXiH4UhCN +{ + border:none; + padding:7px 15px; + cursor:pointer; +} +", + "", + ], + Array [ + "../../src/index.js?[ident]!./modules/dedupe/buttons/primary-button.css", + ".z2okwFUvcW0z_ZC8D-5T_ +{ + background-color:blue; + color:white; +} +", + "", + ], + Array [ + "../../src/index.js?[ident]!./modules/dedupe/buttons/secondary-button.css", + ".L9-xT4xBLmBRaK2WDI00c +{ + background-color:#555; + color:white; +} +", + "", + ], + Array [ + "./modules/dedupe/source.css", + ".EzyG7UwnL9VTWJMm1zvyL +{ +} + +.vO79o4trei2_Dt8Bi8s5W +{ +} +", + "", + ], +] +`; + +exports[`"modules" option should dedupe same modules in one module (issue #1037): warnings 1`] = `Array []`; + exports[`"modules" option should keep order: errors 1`] = `Array []`; exports[`"modules" option should keep order: module 1`] = ` @@ -417,8 +488,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // Module exports.push([module.id, \\".Wjk4jowq_W5p9UqAWNj8p {\\\\n display: block;\\\\n}\\\\n\\\\n._1hTJaGPJyAIYbIwkbYwOGW {\\\\n display: inline;\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -863,13 +934,13 @@ var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../../../src/index.js??[ 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_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_ICSS_IMPORT_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_2___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_3___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_4___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_5___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_6___, \\"\\", true); 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 @@ -3958,7 +4029,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._1DZQbqp1oX8etdFa5oSOnV { b: 1; }\\\\n._1PKuwglb3xQB3gwJBZx6_G { b: 3; }\\\\n._1MtdK0_soIbU20fcYBbRAe { b: 5; }\\\\n\\", \\"\\"]); // Exports @@ -4009,7 +4080,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._1DZQbqp1oX8etdFa5oSOnV { b: 1; }\\\\n._1PKuwglb3xQB3gwJBZx6_G { b: 3; }\\\\n._1MtdK0_soIbU20fcYBbRAe { b: 5; }\\\\n\\", \\"\\"]); // Exports @@ -4060,7 +4131,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); // Exports @@ -4111,7 +4182,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); // Exports @@ -4162,7 +4233,7 @@ exports[`"modules" option should work with case \`composes-1\` (\`modules\` valu var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._1DZQbqp1oX8etdFa5oSOnV { b: 1; }\\\\n._1PKuwglb3xQB3gwJBZx6_G { b: 3; }\\\\n._1MtdK0_soIbU20fcYBbRAe { b: 5; }\\\\n\\", \\"\\"]); // Exports @@ -4241,7 +4312,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; }\\\\n._1TPNBQGz_snQ6aGvXARYo0 { b: 3; }\\\\n.rkDOmH5RkgZGaQ5Fey09Z { b: 5; }\\\\n\\", \\"\\"]); // Exports @@ -4292,7 +4363,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; }\\\\n._1TPNBQGz_snQ6aGvXARYo0 { b: 3; }\\\\n.rkDOmH5RkgZGaQ5Fey09Z { b: 5; }\\\\n\\", \\"\\"]); // Exports @@ -4343,7 +4414,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); // Exports @@ -4394,7 +4465,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._c1 { b: 1; }\\\\n._c3 { b: 3; }\\\\n._c5 { b: 5; }\\\\n\\", \\"\\"]); // Exports @@ -4445,7 +4516,7 @@ exports[`"modules" option should work with case \`composes-2\` (\`modules\` valu var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._2tj5Xzv7Ei8HGFvkrlGXyv { b: 1; }\\\\n._1TPNBQGz_snQ6aGvXARYo0 { b: 3; }\\\\n.rkDOmH5RkgZGaQ5Fey09Z { b: 5; }\\\\n\\", \\"\\"]); // Exports @@ -4526,8 +4597,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // Module exports.push([module.id, \\"._1bAv4bLL8-hE3a7MyZXrT- {\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -4576,8 +4647,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // Module exports.push([module.id, \\"._1bAv4bLL8-hE3a7MyZXrT- {\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -4626,8 +4697,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // Module exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -4676,8 +4747,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // Module exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -4726,8 +4797,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // Module exports.push([module.id, \\"._1bAv4bLL8-hE3a7MyZXrT- {\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -4803,7 +4874,7 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._3sT-Lzs6aj6TM9J3mM7_Cj {\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -4843,7 +4914,7 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._3sT-Lzs6aj6TM9J3mM7_Cj {\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -4883,7 +4954,7 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -4923,7 +4994,7 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._abc {\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -4963,7 +5034,7 @@ exports[`"modules" option should work with case \`composes-with-importing\` (\`m var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._3sT-Lzs6aj6TM9J3mM7_Cj {\\\\n}\\\\n\\", \\"\\"]); // Exports @@ -7297,7 +7368,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -7338,7 +7409,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -7380,7 +7451,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -7421,7 +7492,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -7463,7 +7534,7 @@ exports[`"modules" option should work with case \`media-2\` (\`modules\` value i var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -8822,7 +8893,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\".ghi { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); // Exports @@ -8859,7 +8930,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._29ART3-NNe4DU1X-5_7419 { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); // Exports @@ -8897,7 +8968,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\".ghi { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); // Exports @@ -8934,7 +9005,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._ghi { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); // Exports @@ -8972,7 +9043,7 @@ exports[`"modules" option should work with case \`values-3\` (\`modules\` value var ___CSS_LOADER_API_IMPORT___ = require(\\"../../../../../src/runtime/api.js\\"); var ___CSS_LOADER_ICSS_IMPORT_0___ = require(\\"-!../../../../../src/index.js??[ident]!./file.css\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // Module exports.push([module.id, \\"._29ART3-NNe4DU1X-5_7419 { color: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\"; }\\\\n\\", \\"\\"]); // Exports @@ -9039,8 +9110,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // Module exports.push([module.id, \\".ghi { background: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\", \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\", def; }\\\\n\\", \\"\\"]); // Exports @@ -9085,8 +9156,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // 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 @@ -9132,8 +9203,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // Module exports.push([module.id, \\".ghi { background: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\", \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\", def; }\\\\n\\", \\"\\"]); // Exports @@ -9178,8 +9249,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // Module exports.push([module.id, \\"._ghi { background: \\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\\"def\\"] + \\", \\" + ___CSS_LOADER_ICSS_IMPORT_1___.locals[\\"def\\"] + \\", def; }\\\\n\\", \\"\\"]); // Exports @@ -9225,8 +9296,8 @@ 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 = ___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_0___, \\"\\", true); +exports.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); // 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 @@ -9299,7 +9370,7 @@ exports[`"modules" option should work with case \`values-5\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9337,7 +9408,7 @@ exports[`"modules" option should work with case \`values-5\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9376,7 +9447,7 @@ exports[`"modules" option should work with case \`values-5\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9414,7 +9485,7 @@ exports[`"modules" option should work with case \`values-5\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9453,7 +9524,7 @@ exports[`"modules" option should work with case \`values-5\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9520,7 +9591,7 @@ exports[`"modules" option should work with case \`values-6\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9558,7 +9629,7 @@ exports[`"modules" option should work with case \`values-6\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9597,7 +9668,7 @@ exports[`"modules" option should work with case \`values-6\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9635,7 +9706,7 @@ exports[`"modules" option should work with case \`values-6\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9674,7 +9745,7 @@ exports[`"modules" option should work with case \`values-6\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9741,7 +9812,7 @@ exports[`"modules" option should work with case \`values-7\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9779,7 +9850,7 @@ exports[`"modules" option should work with case \`values-7\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9818,7 +9889,7 @@ exports[`"modules" option should work with case \`values-7\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9856,7 +9927,7 @@ exports[`"modules" option should work with case \`values-7\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 @@ -9895,7 +9966,7 @@ exports[`"modules" option should work with case \`values-7\` (\`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\\"); exports = ___CSS_LOADER_API_IMPORT___(false); -exports.i(___CSS_LOADER_ICSS_IMPORT_0___); +exports.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); // 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 diff --git a/test/fixtures/modules/dedupe/buttons/button.css b/test/fixtures/modules/dedupe/buttons/button.css new file mode 100644 index 00000000..63446188 --- /dev/null +++ b/test/fixtures/modules/dedupe/buttons/button.css @@ -0,0 +1,6 @@ +.button +{ + border:none; + padding:7px 15px; + cursor:pointer; +} diff --git a/test/fixtures/modules/dedupe/buttons/primary-button.css b/test/fixtures/modules/dedupe/buttons/primary-button.css new file mode 100644 index 00000000..17bd070d --- /dev/null +++ b/test/fixtures/modules/dedupe/buttons/primary-button.css @@ -0,0 +1,6 @@ +.primaryButton +{ + composes:button from './button.css'; + background-color:blue; + color:white; +} diff --git a/test/fixtures/modules/dedupe/buttons/secondary-button.css b/test/fixtures/modules/dedupe/buttons/secondary-button.css new file mode 100644 index 00000000..8d9eefc8 --- /dev/null +++ b/test/fixtures/modules/dedupe/buttons/secondary-button.css @@ -0,0 +1,6 @@ +.secondaryButton +{ + composes:button from './button.css'; + background-color:#555; + color:white; +} diff --git a/test/fixtures/modules/dedupe/source.css b/test/fixtures/modules/dedupe/source.css new file mode 100644 index 00000000..1abaadd3 --- /dev/null +++ b/test/fixtures/modules/dedupe/source.css @@ -0,0 +1,9 @@ +.nextButton +{ + composes:primaryButton from './buttons/primary-button.css'; +} + +.backButton +{ + composes:secondaryButton from './buttons/secondary-button.css'; +} diff --git a/test/fixtures/modules/dedupe/source.js b/test/fixtures/modules/dedupe/source.js new file mode 100644 index 00000000..1996779e --- /dev/null +++ b/test/fixtures/modules/dedupe/source.js @@ -0,0 +1,5 @@ +import css from './source.css'; + +__export__ = css; + +export default css; diff --git a/test/modules-option.test.js b/test/modules-option.test.js index d16e5927..6ba9d5fb 100644 --- a/test/modules-option.test.js +++ b/test/modules-option.test.js @@ -549,4 +549,20 @@ describe('"modules" option', () => { expect(getWarnings(stats)).toMatchSnapshot('warnings'); expect(getErrors(stats)).toMatchSnapshot('errors'); }); + + it('should dedupe same modules in one module (issue #1037)', async () => { + const compiler = getCompiler('./modules/dedupe/source.js', { + modules: true, + }); + const stats = await compile(compiler); + + expect( + getModuleSource('./modules/dedupe/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/runtime/api.test.js b/test/runtime/api.test.js index 8ff7a5d5..ced44a64 100644 --- a/test/runtime/api.test.js +++ b/test/runtime/api.test.js @@ -101,9 +101,7 @@ describe('api', () => { expect(m.toString()).toMatchSnapshot(); }); - it('should toString without source mapping if btoa not available', () => { - global.btoa = null; - + it('should toString with a source map without "sourceRoot"', () => { const m = api(true); m.push([ @@ -114,14 +112,15 @@ describe('api', () => { file: 'test.scss', sources: ['./path/to/test.scss'], mappings: 'AAAA;', - sourceRoot: 'webpack://', }, ]); expect(m.toString()).toMatchSnapshot(); }); - it.only('should toString with a source map without "sourceRoot"', () => { + it('should toString without source mapping if btoa not available', () => { + global.btoa = null; + const m = api(true); m.push([ @@ -132,6 +131,7 @@ describe('api', () => { file: 'test.scss', sources: ['./path/to/test.scss'], mappings: 'AAAA;', + sourceRoot: 'webpack://', }, ]);