From 8e35da9045a80a9000c699ebcef8ea6218b19b93 Mon Sep 17 00:00:00 2001
From: JPeer264
Date: Wed, 21 Aug 2019 20:40:14 +0200
Subject: [PATCH 1/7] Chore: add husky/lint-staged | travis lint check
---
.travis.yml | 3 +
package.json | 13 +
yarn.lock | 786 ++++++++++++++++++++++++++++++++++++++++++++++++++-
3 files changed, 794 insertions(+), 8 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 14c9d3a..b1d5934 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,6 +7,9 @@ node_js:
- 10
install:
- yarn
+script:
+ - npm run lint
+ - npm test
notifications:
email:
on_failure: change
diff --git a/package.json b/package.json
index 98633bb..e18d07b 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,17 @@
"!test/files/**/*.js"
]
},
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
+ },
+ "lint-staged": {
+ "*.js": [
+ "eslint --fix",
+ "git add"
+ ]
+ },
"keywords": [
"css",
"minify",
@@ -61,6 +72,8 @@
"eslint-config-airbnb-base": "^11.2.0",
"eslint-plugin-import": "^2.7.0",
"html-minifier": "^3.5.20",
+ "husky": "^3.0.4",
+ "lint-staged": "^9.2.3",
"nyc": "^12.0.2"
}
}
diff --git a/yarn.lock b/yarn.lock
index 75b6852..eb8b191 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -44,6 +44,13 @@
dependencies:
"@babel/highlight" "7.0.0-beta.51"
+"@babel/code-frame@^7.0.0":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
+ integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
+ dependencies:
+ "@babel/highlight" "^7.0.0"
+
"@babel/generator@7.0.0-beta.51":
version "7.0.0-beta.51"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.51.tgz#6c7575ffde761d07485e04baedc0392c6d9e30f6"
@@ -82,6 +89,15 @@
esutils "^2.0.2"
js-tokens "^3.0.0"
+"@babel/highlight@^7.0.0":
+ version "7.5.0"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
+ integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==
+ dependencies:
+ chalk "^2.0.0"
+ esutils "^2.0.2"
+ js-tokens "^4.0.0"
+
"@babel/parser@7.0.0-beta.51":
version "7.0.0-beta.51"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.51.tgz#27cec2df409df60af58270ed8f6aa55409ea86f6"
@@ -133,6 +149,34 @@
pretty-ms "^0.2.1"
text-table "^0.2.0"
+"@nodelib/fs.scandir@2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz#7fa8fed654939e1a39753d286b48b4836d00e0eb"
+ integrity sha512-NT/skIZjgotDSiXs0WqYhgcuBKhUMgfekCmCGtkUAiLqZdOnrdjmZr9wRl3ll64J9NF79uZ4fk16Dx0yMc/Xbg==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.1"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.1", "@nodelib/fs.stat@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.1.tgz#814f71b1167390cfcb6a6b3d9cdeb0951a192c14"
+ integrity sha512-+RqhBlLn6YRBGOIoVYthsG0J9dfpO79eJyN7BYBkZJtfqrBwf2KK+rD/M/yjZR6WBmIhAgOV7S60eCgaSWtbFw==
+
+"@nodelib/fs.walk@^1.2.1":
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.2.tgz#6a6450c5e17012abd81450eb74949a4d970d2807"
+ integrity sha512-J/DR3+W12uCzAJkw7niXDcqcKBg6+5G5Q/ZpThpGNzAUz70eOR6RV4XnnSN01qHZiVl0eavoxJsBypQoKsV2QQ==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.1"
+ fastq "^1.6.0"
+
+"@samverschueren/stream-to-observable@^0.3.0":
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
+ integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==
+ dependencies:
+ any-observable "^0.3.0"
+
"@types/babel-types@*", "@types/babel-types@^7.0.0":
version "7.0.4"
resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.4.tgz#bfd5b0d0d1ba13e351dff65b6e52783b816826c8"
@@ -143,6 +187,35 @@
dependencies:
"@types/babel-types" "*"
+"@types/events@*":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
+ integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
+
+"@types/glob@^7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
+ integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==
+ dependencies:
+ "@types/events" "*"
+ "@types/minimatch" "*"
+ "@types/node" "*"
+
+"@types/minimatch@*":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
+ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
+
+"@types/node@*":
+ version "12.7.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.2.tgz#c4e63af5e8823ce9cc3f0b34f7b998c2171f0c44"
+ integrity sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==
+
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
+ integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
+
abbrev@1:
version "1.0.9"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
@@ -253,6 +326,11 @@ ansi-styles@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
+any-observable@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
+ integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
+
anymatch@^1.3.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
@@ -330,6 +408,11 @@ array-union@^1.0.1:
dependencies:
array-uniq "^1.0.1"
+array-union@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+ integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
array-uniq@^1.0.1, array-uniq@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
@@ -1112,6 +1195,13 @@ braces@^2.3.1:
split-string "^3.0.2"
to-regex "^3.0.1"
+braces@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
browserslist@^3.2.6:
version "3.2.8"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6"
@@ -1166,16 +1256,35 @@ call-signature@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996"
+caller-callsite@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+ integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+ dependencies:
+ callsites "^2.0.0"
+
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
dependencies:
callsites "^0.2.0"
+caller-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+ integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+ dependencies:
+ caller-callsite "^2.0.0"
+
callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
+callsites@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
+ integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
+
camel-case@3.0.x:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
@@ -1229,7 +1338,7 @@ chalk@^0.4.0:
has-color "~0.1.0"
strip-ansi "~0.1.0"
-chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
+chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
@@ -1255,7 +1364,7 @@ chalk@^2.0.1:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^2.4.2:
+chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
dependencies:
@@ -1292,6 +1401,11 @@ ci-info@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.4.0.tgz#4841d53cad49f11b827b648ebde27a6e189b412f"
+ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+
circular-json@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d"
@@ -1323,7 +1437,7 @@ cli-boxes@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
-cli-cursor@^2.1.0:
+cli-cursor@^2.0.0, cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
dependencies:
@@ -1333,6 +1447,14 @@ cli-spinners@^1.0.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a"
+cli-truncate@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
+ integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=
+ dependencies:
+ slice-ansi "0.0.4"
+ string-width "^1.0.1"
+
cli-truncate@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086"
@@ -1413,6 +1535,11 @@ commander@2.17.x, commander@^2.11.0, commander@~2.17.1:
version "2.17.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
+commander@^2.20.0:
+ version "2.20.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
+ integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
+
commander@^2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
@@ -1514,6 +1641,16 @@ core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+cosmiconfig@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
+ integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
+ dependencies:
+ import-fresh "^2.0.0"
+ is-directory "^0.3.1"
+ js-yaml "^3.13.1"
+ parse-json "^4.0.0"
+
coveralls@^2.11.15:
version "2.11.15"
resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-2.11.15.tgz#37d3474369d66c14f33fa73a9d25cee6e099fca0"
@@ -1545,6 +1682,17 @@ cross-spawn@^5.0.1:
shebang-command "^1.2.0"
which "^1.2.9"
+cross-spawn@^6.0.0, cross-spawn@^6.0.5:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+ dependencies:
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
cryptiles@2.x.x:
version "2.0.5"
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
@@ -1567,6 +1715,11 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
+date-fns@^1.27.2:
+ version "1.30.1"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
+ integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
+
date-time@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/date-time/-/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07"
@@ -1599,6 +1752,13 @@ debug@^3.0.1, debug@^3.1.0:
dependencies:
ms "2.0.0"
+debug@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
+ integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
+ dependencies:
+ ms "^2.1.1"
+
decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -1611,6 +1771,11 @@ decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+dedent@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
+ integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
+
deep-equal@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
@@ -1667,6 +1832,17 @@ del@^2.0.2:
pinkie-promise "^2.0.0"
rimraf "^2.2.8"
+del@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/del/-/del-5.0.0.tgz#4fa698b7a1ffb4e2ab3e8929ed699799654d6720"
+ integrity sha512-TfU3nUY0WDIhN18eq+pgpbLY9AfL5RfiE9czKaTSolc6aK7qASXfDErvYgjV1UqCR4sNXDoxO0/idPmhDUt2Sg==
+ dependencies:
+ globby "^10.0.0"
+ is-path-cwd "^2.0.0"
+ is-path-in-cwd "^2.0.0"
+ p-map "^2.0.0"
+ rimraf "^2.6.3"
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -1689,6 +1865,13 @@ detect-libc@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+dir-glob@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+ integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+ dependencies:
+ path-type "^4.0.0"
+
doctrine@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
@@ -1727,6 +1910,11 @@ electron-to-chromium@^1.3.47:
version "1.3.61"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.61.tgz#a8ac295b28d0f03d85e37326fd16b6b6b17a1795"
+elegant-spinner@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
+ integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
+
empower-core@^0.6.1:
version "0.6.2"
resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.2.tgz#5adef566088e31fba80ba0a36df47d7094169144"
@@ -1734,6 +1922,13 @@ empower-core@^0.6.1:
call-signature "0.0.2"
core-js "^2.0.0"
+end-of-stream@^1.1.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
+ integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
+ dependencies:
+ once "^1.4.0"
+
equal-length@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c"
@@ -1928,6 +2123,34 @@ execa@^0.7.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
+execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+execa@^2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-2.0.4.tgz#2f5cc589c81db316628627004ea4e37b93391d8e"
+ integrity sha512-VcQfhuGD51vQUQtKIq2fjGDLDbL6N1DTQVpYzxZ7LPIXw3HqTuIz6uxRmpV1qf8i31LHf2kjiaGI+GdHwRgbnQ==
+ dependencies:
+ cross-spawn "^6.0.5"
+ get-stream "^5.0.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^3.0.0"
+ onetime "^5.1.0"
+ p-finally "^2.0.0"
+ signal-exit "^3.0.2"
+ strip-final-newline "^2.0.0"
+
expand-brackets@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
@@ -2008,10 +2231,37 @@ fast-diff@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
+fast-glob@^3.0.3:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.0.4.tgz#d484a41005cb6faeb399b951fd1bd70ddaebb602"
+ integrity sha512-wkIbV6qg37xTJwqSsdnIphL1e+LaGz4AIQqr00mIubMaEhv1/HEmJ0uuCGZRNRUkZZmOB5mJKO0ZUTVq+SxMQg==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.1"
+ "@nodelib/fs.walk" "^1.2.1"
+ glob-parent "^5.0.0"
+ is-glob "^4.0.1"
+ merge2 "^1.2.3"
+ micromatch "^4.0.2"
+
fast-levenshtein@~2.0.4:
version "2.0.5"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2"
+fastq@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2"
+ integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==
+ dependencies:
+ reusify "^1.0.0"
+
+figures@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
+ dependencies:
+ escape-string-regexp "^1.0.5"
+ object-assign "^4.1.0"
+
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
@@ -2048,6 +2298,13 @@ fill-range@^4.0.0:
repeat-string "^1.6.1"
to-regex-range "^2.1.0"
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
find-cache-dir@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
@@ -2077,6 +2334,14 @@ find-up@^2.0.0, find-up@^2.1.0:
dependencies:
locate-path "^2.0.0"
+find-up@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
flat-cache@^1.2.1:
version "1.2.2"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
@@ -2200,6 +2465,11 @@ get-caller-file@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+get-own-enumerable-property-symbols@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203"
+ integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg==
+
get-port@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc"
@@ -2208,10 +2478,29 @@ get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
+get-stdin@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6"
+ integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==
+
get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+get-stream@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ dependencies:
+ pump "^3.0.0"
+
+get-stream@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9"
+ integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==
+ dependencies:
+ pump "^3.0.0"
+
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -2246,6 +2535,13 @@ glob-parent@^2.0.0:
dependencies:
is-glob "^2.0.0"
+glob-parent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954"
+ integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==
+ dependencies:
+ is-glob "^4.0.1"
+
glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
@@ -2257,6 +2553,18 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.2:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^7.1.3:
+ version "7.1.4"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
+ integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
global-dirs@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
@@ -2271,6 +2579,20 @@ globals@^9.17.0, globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+globby@^10.0.0:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22"
+ integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==
+ dependencies:
+ "@types/glob" "^7.1.1"
+ array-union "^2.1.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.0.3"
+ glob "^7.1.3"
+ ignore "^5.1.1"
+ merge2 "^1.2.3"
+ slash "^3.0.0"
+
globby@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
@@ -2469,6 +2791,23 @@ hullabaloo-config-manager@^1.1.0:
resolve-from "^3.0.0"
safe-buffer "^5.0.1"
+husky@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/husky/-/husky-3.0.4.tgz#10a48ac11ab50859b0939750fa0b4e07ad0bf669"
+ integrity sha512-7Rnt8aJfy+MlV28snmYK7O7vWwtOfeVxV6KhLpUFXlmx5ukQ1nQmNUB7QsAwSgdySB5X+bm7q7JIRgazqBUzKA==
+ dependencies:
+ chalk "^2.4.2"
+ cosmiconfig "^5.2.1"
+ execa "^1.0.0"
+ get-stdin "^7.0.0"
+ is-ci "^2.0.0"
+ opencollective-postinstall "^2.0.2"
+ pkg-dir "^4.2.0"
+ please-upgrade-node "^3.2.0"
+ read-pkg "^5.1.1"
+ run-node "^1.0.0"
+ slash "^3.0.0"
+
iconv-lite@^0.4.17:
version "0.4.18"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
@@ -2493,6 +2832,19 @@ ignore@^3.3.3:
version "3.3.3"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d"
+ignore@^5.1.1:
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
+ integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==
+
+import-fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+ integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+ dependencies:
+ caller-path "^2.0.0"
+ resolve-from "^3.0.0"
+
import-lazy@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
@@ -2612,6 +2964,13 @@ is-ci@^1.0.10, is-ci@^1.0.7:
dependencies:
ci-info "^1.3.0"
+is-ci@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+ integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
+ dependencies:
+ ci-info "^2.0.0"
+
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -2644,6 +3003,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
is-data-descriptor "^1.0.0"
kind-of "^6.0.2"
+is-directory@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+ integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
+
is-dotfile@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
@@ -2679,6 +3043,11 @@ is-extglob@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
is-finite@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
@@ -2705,6 +3074,13 @@ is-glob@^2.0.0, is-glob@^2.0.1:
dependencies:
is-extglob "^1.0.0"
+is-glob@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+ integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+ dependencies:
+ is-extglob "^2.1.1"
+
is-installed-globally@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80"
@@ -2741,7 +3117,12 @@ is-number@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
-is-obj@^1.0.0:
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-obj@^1.0.0, is-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
@@ -2751,7 +3132,7 @@ is-observable@^0.2.0:
dependencies:
symbol-observable "^0.2.2"
-is-observable@^1.0.0:
+is-observable@^1.0.0, is-observable@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
dependencies:
@@ -2761,18 +3142,37 @@ is-path-cwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
+is-path-cwd@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
+ integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
+
is-path-in-cwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
dependencies:
is-path-inside "^1.0.0"
+is-path-in-cwd@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb"
+ integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==
+ dependencies:
+ is-path-inside "^2.1.0"
+
is-path-inside@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f"
dependencies:
path-is-inside "^1.0.1"
+is-path-inside@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2"
+ integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==
+ dependencies:
+ path-is-inside "^1.0.2"
+
is-plain-obj@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
@@ -2807,6 +3207,11 @@ is-regex@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637"
+is-regexp@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
+ integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
+
is-resolvable@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
@@ -2821,6 +3226,11 @@ is-stream@^1.0.0, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+is-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
+ integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
+
is-symbol@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
@@ -2932,7 +3342,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-"js-tokens@^3.0.0 || ^4.0.0":
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -2950,6 +3360,14 @@ js-yaml@^3.10.0:
argparse "^1.0.7"
esprima "^4.0.0"
+js-yaml@^3.13.1:
+ version "3.13.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+ integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
js-yaml@^3.8.4:
version "3.9.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.0.tgz#4ffbbf25c2ac963b8299dc74da7e3740de1c18ce"
@@ -3095,6 +3513,75 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+lines-and-columns@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
+ integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
+
+lint-staged@^9.2.3:
+ version "9.2.3"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.2.3.tgz#a4ef2b7033f83e8dbc718556610e20e0098356c0"
+ integrity sha512-ovDmF0c0VJDTP0VmwLetJQ+lVGyNqOkTniwO9S0MOJxGxIExpSRTL56/ZmvXZ1tHNA53GBbXQbfS8RnNGRXFjg==
+ dependencies:
+ chalk "^2.4.2"
+ commander "^2.20.0"
+ cosmiconfig "^5.2.1"
+ debug "^4.1.1"
+ dedent "^0.7.0"
+ del "^5.0.0"
+ execa "^2.0.3"
+ listr "^0.14.3"
+ log-symbols "^3.0.0"
+ micromatch "^4.0.2"
+ normalize-path "^3.0.0"
+ please-upgrade-node "^3.1.1"
+ string-argv "^0.3.0"
+ stringify-object "^3.3.0"
+
+listr-silent-renderer@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
+ integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=
+
+listr-update-renderer@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2"
+ integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==
+ dependencies:
+ chalk "^1.1.3"
+ cli-truncate "^0.2.1"
+ elegant-spinner "^1.0.1"
+ figures "^1.7.0"
+ indent-string "^3.0.0"
+ log-symbols "^1.0.2"
+ log-update "^2.3.0"
+ strip-ansi "^3.0.1"
+
+listr-verbose-renderer@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db"
+ integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==
+ dependencies:
+ chalk "^2.4.1"
+ cli-cursor "^2.1.0"
+ date-fns "^1.27.2"
+ figures "^2.0.0"
+
+listr@^0.14.3:
+ version "0.14.3"
+ resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586"
+ integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==
+ dependencies:
+ "@samverschueren/stream-to-observable" "^0.3.0"
+ is-observable "^1.1.0"
+ is-promise "^2.1.0"
+ is-stream "^1.1.0"
+ listr-silent-renderer "^1.1.1"
+ listr-update-renderer "^0.5.0"
+ listr-verbose-renderer "^0.5.0"
+ p-map "^2.0.0"
+ rxjs "^6.3.3"
+
load-json-file@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -3130,6 +3617,13 @@ locate-path@^2.0.0:
p-locate "^2.0.0"
path-exists "^3.0.0"
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
lodash.clonedeep@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
@@ -3182,6 +3676,29 @@ log-driver@1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056"
+log-symbols@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
+ integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=
+ dependencies:
+ chalk "^1.0.0"
+
+log-symbols@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4"
+ integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==
+ dependencies:
+ chalk "^2.4.2"
+
+log-update@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
+ integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg=
+ dependencies:
+ ansi-escapes "^3.0.0"
+ cli-cursor "^2.0.0"
+ wrap-ansi "^3.0.1"
+
longest@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
@@ -3287,6 +3804,16 @@ merge-source-map@^1.1.0:
dependencies:
source-map "^0.6.1"
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.2.3:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.4.tgz#c9269589e6885a60cf80605d9522d4b67ca646e3"
+ integrity sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A==
+
micromatch@^2.1.5:
version "2.3.11"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
@@ -3323,6 +3850,14 @@ micromatch@^3.1.10, micromatch@^3.1.8:
snapdragon "^0.8.1"
to-regex "^3.0.2"
+micromatch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
+ integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.0.5"
+
mime-db@~1.24.0:
version "1.24.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c"
@@ -3337,6 +3872,11 @@ mimic-fn@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
minimatch@^3.0.0, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -3391,6 +3931,11 @@ ms@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+ms@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
multimatch@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
@@ -3436,6 +3981,11 @@ needle@^2.2.1:
iconv-lite "^0.4.4"
sax "^1.2.4"
+nice-try@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
no-case@^2.2.0:
version "2.3.2"
resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
@@ -3477,12 +4027,27 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
+normalize-package-data@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+ dependencies:
+ hosted-git-info "^2.1.4"
+ resolve "^1.10.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
normalize-path@^2.0.0, normalize-path@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
dependencies:
remove-trailing-separator "^1.0.1"
+normalize-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
npm-bundled@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
@@ -3500,6 +4065,13 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
+npm-run-path@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5"
+ integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==
+ dependencies:
+ path-key "^3.0.0"
+
npmlog@^4.0.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
@@ -3609,7 +4181,7 @@ observable-to-promise@^0.5.0:
is-observable "^0.2.0"
symbol-observable "^1.0.4"
-once@^1.3.0:
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
@@ -3621,6 +4193,18 @@ onetime@^2.0.0:
dependencies:
mimic-fn "^1.0.0"
+onetime@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5"
+ integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+opencollective-postinstall@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89"
+ integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==
+
optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
@@ -3678,16 +4262,45 @@ p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+p-finally@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
+ integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
+
p-limit@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
+p-limit@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537"
+ integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==
+ dependencies:
+ p-try "^2.0.0"
+
p-locate@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
dependencies:
p-limit "^1.1.0"
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-map@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+ integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
package-hash@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-1.2.0.tgz#003e56cd57b736a6ed6114cc2b81542672770e44"
@@ -3740,6 +4353,16 @@ parse-json@^4.0.0:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
+parse-json@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f"
+ integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+ lines-and-columns "^1.1.6"
+
parse-ms@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-0.1.2.tgz#dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e"
@@ -3770,6 +4393,11 @@ path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -3778,14 +4406,24 @@ path-is-inside@^1.0.1, path-is-inside@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
-path-key@^2.0.0:
+path-key@^2.0.0, path-key@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+path-key@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3"
+ integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg==
+
path-parse@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+path-parse@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
@@ -3800,6 +4438,16 @@ path-type@^2.0.0:
dependencies:
pify "^2.0.0"
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+picomatch@^2.0.5:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6"
+ integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==
+
pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -3847,6 +4495,20 @@ pkg-dir@^2.0.0:
dependencies:
find-up "^2.1.0"
+pkg-dir@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+ dependencies:
+ find-up "^4.0.0"
+
+please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
+ integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
+ dependencies:
+ semver-compare "^1.0.0"
+
plur@^2.0.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a"
@@ -3978,6 +4640,14 @@ pug-walk@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.7.tgz#c00d5c5128bac5806bec15d2b7e7cdabe42531f3"
+pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
@@ -4058,6 +4728,16 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
+read-pkg@^5.1.1:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
+ dependencies:
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
+
readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
@@ -4277,6 +4957,13 @@ resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+resolve@^1.10.0:
+ version "1.12.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
+ integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==
+ dependencies:
+ path-parse "^1.0.6"
+
resolve@^1.2.0:
version "1.3.3"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
@@ -4294,6 +4981,11 @@ ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+reusify@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
right-align@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
@@ -4312,12 +5004,29 @@ rimraf@^2.6.1, rimraf@^2.6.2:
dependencies:
glob "^7.0.5"
+rimraf@^2.6.3:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ dependencies:
+ glob "^7.1.3"
+
run-async@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
dependencies:
is-promise "^2.1.0"
+run-node@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e"
+ integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==
+
+run-parallel@^1.1.9:
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
+ integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
+
rx-lite-aggregates@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
@@ -4328,6 +5037,13 @@ rx-lite@*, rx-lite@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
+rxjs@^6.3.3:
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7"
+ integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==
+ dependencies:
+ tslib "^1.9.0"
+
safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -4350,6 +5066,11 @@ sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+semver-compare@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
+ integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
+
semver-diff@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
@@ -4412,6 +5133,11 @@ slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
slice-ansi@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
@@ -4571,6 +5297,11 @@ static-extend@^0.1.1:
define-property "^0.2.5"
object-copy "^0.1.0"
+string-argv@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.0.tgz#0ea99e7257fea5e97a1bfcdfc19cf12d68e6ec6a"
+ integrity sha512-NGZHq3nkSXVtGZXTBjFru3MNfoZyIzN25T7BmvdgnSC0LCJczAGLLMQLyjywSIaAoqSemgLzBRHOsnrHbt60+Q==
+
string-width@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
@@ -4609,6 +5340,15 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
+stringify-object@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
+ integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
+ dependencies:
+ get-own-enumerable-property-symbols "^3.0.0"
+ is-obj "^1.0.1"
+ is-regexp "^1.0.0"
+
stringstream@~0.0.4:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
@@ -4649,6 +5389,11 @@ strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
strip-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
@@ -4794,6 +5539,13 @@ to-regex-range@^2.1.0:
is-number "^3.0.0"
repeat-string "^1.6.1"
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
to-regex@^3.0.1, to-regex@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
@@ -4829,6 +5581,11 @@ tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
+tslib@^1.9.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
+ integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
+
tunnel-agent@~0.4.1:
version "0.4.3"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
@@ -4843,6 +5600,11 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
+type-fest@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -5029,6 +5791,14 @@ wrap-ansi@^2.0.0:
string-width "^1.0.1"
strip-ansi "^3.0.1"
+wrap-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
+ integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=
+ dependencies:
+ string-width "^2.1.1"
+ strip-ansi "^4.0.0"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
From a10956db058b3b9c296a9a7ea350b2d1a49aae6b Mon Sep 17 00:00:00 2001
From: JPeer264
Date: Wed, 21 Aug 2019 20:43:23 +0200
Subject: [PATCH 2/7] Chore: drop support for node v6, add support v12
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index b1d5934..b0cc5a5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,9 +2,9 @@ language: node_js
sudo: true
dist: trusty
node_js:
- - 6
- 8
- 10
+ - 12
install:
- yarn
script:
From c230f137461a29658de9b836154a3ba717264fae Mon Sep 17 00:00:00 2001
From: X-Ryl669
Date: Thu, 22 Aug 2019 07:55:58 +0200
Subject: [PATCH 3/7] Update rcs core (#44)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Update code to support changes in RCS core
* Add support for true options from config file.
Don't allow non JSX file to run with JSX arguments
* Chore: install rcs-core@next
* Fix all tests to run with the changes
* Improve code coverage
* Make linter happy!
* Fix requested changes
Co-authored-by: Jan Peer Stöcklmair
---
README.md | 4 +-
docs/api/{includeConfig.md => config.md} | 22 ++++-
index.js | 4 +-
lib/config/config.js | 39 ++++++++
lib/config/includeConfig.js | 20 ----
lib/mapping/generateMapping.js | 8 +-
lib/mapping/generateMappingSync.js | 10 +-
lib/mapping/loadMapping.js | 27 +++---
lib/process/process.js | 2 +
lib/process/processSync.js | 3 +-
lib/process/replaceData.js | 13 ++-
package.json | 3 +-
test/config.js | 94 +++++++++++++++++++
.../files/fixtures/js/{react.js => react.jsx} | 0
test/files/fixtures/unknown.txt | 1 +
.../results/css/css-variables-ignore.css | 16 ++--
test/files/results/css/css-variables.css | 34 +++----
test/files/results/css/style-prefix.css | 16 ++--
test/files/results/css/style.css | 16 ++--
test/files/results/css/style2.css | 2 +-
test/files/results/css/subdirectory/style.css | 2 +-
test/files/results/html/index-with-style.html | 6 +-
test/files/results/js/{react.js => react.jsx} | 0
test/files/results/unknown.txt | 1 +
test/generateMapping.js | 30 +++---
test/generateMappingSync.js | 22 ++---
test/includeConfig.js | 67 -------------
test/integration.js | 6 +-
test/integration_mapping.js | 14 +--
test/loadMapping.js | 18 ++--
test/processAuto.js | 22 ++++-
test/processAutoSync.js | 8 +-
test/processCss.js | 7 +-
test/processCssSync.js | 6 +-
test/processJs.js | 22 ++---
test/processJsSync.js | 26 ++---
test/processPug.js | 8 +-
test/processPugSync.js | 8 +-
yarn.lock | 8 +-
39 files changed, 359 insertions(+), 256 deletions(-)
rename docs/api/{includeConfig.md => config.md} (78%)
create mode 100644 lib/config/config.js
delete mode 100644 lib/config/includeConfig.js
create mode 100644 test/config.js
rename test/files/fixtures/js/{react.js => react.jsx} (100%)
create mode 100644 test/files/fixtures/unknown.txt
rename test/files/results/js/{react.js => react.jsx} (100%)
create mode 100644 test/files/results/unknown.txt
delete mode 100644 test/includeConfig.js
diff --git a/README.md b/README.md
index 32eef27..eb94398 100644
--- a/README.md
+++ b/README.md
@@ -38,7 +38,7 @@ Async:
const rcs = require('rename-css-selectors')
// if you want to include the .rcsrc config
-rcs.includeConfig();
+rcs.config.load();
// if you have some generated mappings - load them!
// you can also specify the string although it does not exist yet.
@@ -98,7 +98,7 @@ try {
- [rcs.process.any](docs/api/processAny.md)
- [rcs.generateMapping](docs/api/generateMapping.md)
- [rcs.loadMapping](docs/api/loadMapping.md)
-- [rcs.includeConfig](docs/api/includeConfig.md)
+- [rcs.config](docs/api/config.md)
# LICENSE
diff --git a/docs/api/includeConfig.md b/docs/api/config.md
similarity index 78%
rename from docs/api/includeConfig.md
rename to docs/api/config.md
index e2ca21d..1eaacaf 100644
--- a/docs/api/includeConfig.md
+++ b/docs/api/config.md
@@ -1,6 +1,6 @@
-# includeConfig
+# Config
-**includeConfig([pathLocation])**
+**Config.load([pathLocation])**
> All available configs [here](#rcs-config)
@@ -23,6 +23,7 @@ rcs.includeConfig();
- [Example](#example)
- [Exclude](#exclude-classes-and-ids)
+- [Ignore](#ignore-files)
- [Include from other projects](#include-renamed-classes-from-other-project)
### Example
@@ -70,3 +71,20 @@ Let's exclude 4 classes and id's: `js`, `flexbox`, `canvas` and `svg`
]
}
```
+
+### Ignore files
+
+`ignore`
+
+If you need to ignore some file or some file pattern from processing, this is how to do it using minimatch pattern (glob)
+Please notice that filepathes are matched absolutely.
+
+```json
+{
+ "ignore": [
+ "relativeFile.js",
+ "**/*.min.js",
+ ]
+}
+```
+
diff --git a/index.js b/index.js
index af38807..dc5f7b5 100644
--- a/index.js
+++ b/index.js
@@ -8,7 +8,7 @@ const generateMapping = require('./lib/mapping/generateMapping');
const loadMapping = require('./lib/mapping/loadMapping');
// config
-const includeConfig = require('./lib/config/includeConfig');
+const config = require('./lib/config/config');
module.exports = {
process: {
@@ -28,5 +28,5 @@ module.exports = {
generateMappingSync,
generateMapping,
loadMapping,
- includeConfig,
+ config,
};
diff --git a/lib/config/config.js b/lib/config/config.js
new file mode 100644
index 0000000..c268c65
--- /dev/null
+++ b/lib/config/config.js
@@ -0,0 +1,39 @@
+const rcs = require('rcs-core');
+const path = require('path');
+const json = require('json-extra');
+const minimatch = require('minimatch');
+
+class Config {
+ constructor() {
+ this.ignorePatterns = [];
+ }
+
+ load(pathString = path.join(process.cwd(), '.rcsrc')) {
+ let configObject;
+
+ configObject = json.readToObjSync(pathString);
+
+ if (!configObject) {
+ // package.json .rcs if no other config is found
+ configObject = json.readToObjSync(path.join(process.cwd(), 'package.json')).rcs;
+ }
+
+ if (configObject.exclude) {
+ rcs.selectorsLibrary.setExclude(configObject.exclude);
+ }
+
+ if (configObject.reserve) {
+ rcs.selectorsLibrary.setReserved(configObject.reserve);
+ }
+
+ if (configObject.ignore) {
+ this.ignorePatterns = configObject.ignore;
+ }
+ }
+
+ isIgnored(filePath) {
+ return this.ignorePatterns.some(pattern => minimatch(filePath, pattern));
+ }
+}
+
+module.exports = new Config();
diff --git a/lib/config/includeConfig.js b/lib/config/includeConfig.js
deleted file mode 100644
index 1df72f8..0000000
--- a/lib/config/includeConfig.js
+++ /dev/null
@@ -1,20 +0,0 @@
-const rcs = require('rcs-core');
-const path = require('path');
-const json = require('json-extra');
-
-const include = (pathString = path.join(process.cwd(), '.rcsrc')) => {
- let configObject;
-
- configObject = json.readToObjSync(pathString);
-
- if (!configObject) {
- // package.json .rcs if no other config is found
- configObject = json.readToObjSync(path.join(process.cwd(), 'package.json')).rcs;
- }
-
- if (configObject.exclude) {
- rcs.selectorLibrary.setExclude(configObject.exclude);
- }
-}; // /include
-
-module.exports = include;
diff --git a/lib/mapping/generateMapping.js b/lib/mapping/generateMapping.js
index 66b9301..315a9c0 100644
--- a/lib/mapping/generateMapping.js
+++ b/lib/mapping/generateMapping.js
@@ -47,11 +47,17 @@ const generateMapping = (pathString, opts, cb) => {
fileName = options.cssMapping;
}
- const cssMappingArray = rcs.selectorLibrary.getAll({
+ const cssClassMappingArray = rcs.selectorsLibrary.getClassSelector().getAll({
extend: options.extended,
getRenamedValues: !options.origValues,
addSelectorType: options.isSelectors,
});
+ const cssIdMappingArray = rcs.selectorsLibrary.getIdSelector().getAll({
+ extend: options.extended,
+ getRenamedValues: !options.origValues,
+ addSelectorType: options.isSelectors,
+ });
+ const cssMappingArray = { class: cssClassMappingArray, id: cssIdMappingArray };
const cssMappingJsonString = json.check(cssMappingArray) ? cssMappingArray : json.stringify(cssMappingArray, null, '\t');
let writeData = cssMappingJsonString;
diff --git a/lib/mapping/generateMappingSync.js b/lib/mapping/generateMappingSync.js
index af18eb4..fd6c95a 100644
--- a/lib/mapping/generateMappingSync.js
+++ b/lib/mapping/generateMappingSync.js
@@ -20,9 +20,11 @@ const generateMappingSync = (pathString, options) => {
overwrite: false,
};
+ // eslint-disable-next-line no-param-reassign
options = merge({}, optionsDefault, options);
if (options.cssMappingMin) {
+ // eslint-disable-next-line no-param-reassign
options.origValues = false;
mappingName = 'CSS_NAME_MAPPING_MIN';
fileName = `${fileName}_min`;
@@ -37,11 +39,17 @@ const generateMappingSync = (pathString, options) => {
fileName = options.cssMapping;
}
- const cssMappingArray = rcs.selectorLibrary.getAll({
+ const cssClassMappingArray = rcs.selectorsLibrary.getClassSelector().getAll({
extend: options.extended,
getRenamedValues: !options.origValues,
addSelectorType: options.isSelectors,
});
+ const cssIdMappingArray = rcs.selectorsLibrary.getIdSelector().getAll({
+ extend: options.extended,
+ getRenamedValues: !options.origValues,
+ addSelectorType: options.isSelectors,
+ });
+ const cssMappingArray = { class: cssClassMappingArray, id: cssIdMappingArray };
const cssMappingJsonString = json.check(cssMappingArray) ? cssMappingArray : json.stringify(cssMappingArray, null, '\t');
let writeData = cssMappingJsonString;
diff --git a/lib/mapping/loadMapping.js b/lib/mapping/loadMapping.js
index 5270993..b9256da 100644
--- a/lib/mapping/loadMapping.js
+++ b/lib/mapping/loadMapping.js
@@ -2,38 +2,39 @@ const merge = require('lodash.merge');
const rcs = require('rcs-core');
const json = require('json-extra');
-const loadMapping = (pathString, options) => {
+const loadReversed = selectors =>
+ Object.entries(selectors).reduce(
+ (prev, [key, value]) => merge(prev, { [key.charAt(0) + value]: key.slice(1, key.length) })
+ , {});
+
+const loadMapping = (pathString, options = {}) => {
let selectors = pathString;
const optionsDefault = {
origValues: true,
};
- options = options || {};
+ // eslint-disable-next-line no-param-reassign
options = merge({}, optionsDefault, options);
if (typeof pathString === 'string') {
selectors = json.readToObjSync(pathString, 'utf8');
}
- if (!options.origValues) {
- const tempSelectors = {};
-
- Object.keys(selectors).forEach((key) => {
- const value = selectors[key];
- const modKey = key.slice(1, key.length);
+ let classes = selectors.class || {};
+ let ids = selectors.id || {};
- tempSelectors[key.charAt(0) + value] = modKey;
- });
-
- selectors = tempSelectors;
+ if (!options.origValues) {
+ classes = loadReversed(classes);
+ ids = loadReversed(ids);
}
if (!selectors || typeof selectors !== 'object') {
return;
}
- rcs.selectorLibrary.setMultiple(selectors);
+ rcs.selectorsLibrary.getClassSelector().setMultiple(classes);
+ rcs.selectorsLibrary.getIdSelector().setMultiple(ids);
}; // /loadMapping
module.exports = loadMapping;
diff --git a/lib/process/process.js b/lib/process/process.js
index aa743c7..6d66813 100644
--- a/lib/process/process.js
+++ b/lib/process/process.js
@@ -10,6 +10,7 @@ const assert = require('assert');
const save = require('../helper/save');
const replaceData = require('./replaceData');
const { fileExt, availableTypes, optionsDefault } = require('./defaults');
+const config = require('../config/config');
const rcsProcess = (pathString, opts, cb) => {
let globString = pathString;
@@ -37,6 +38,7 @@ const rcsProcess = (pathString, opts, cb) => {
glob(globString, {
cwd: options.cwd,
+ ignore: config.ignorePatterns,
}, (errGlob, filesArray) => {
if (errGlob) {
return callback(errGlob);
diff --git a/lib/process/processSync.js b/lib/process/processSync.js
index 915ca10..62d76a1 100644
--- a/lib/process/processSync.js
+++ b/lib/process/processSync.js
@@ -8,6 +8,7 @@ const assert = require('assert');
const saveSync = require('../helper/saveSync');
const replaceData = require('./replaceData');
const { fileExt, availableTypes, optionsDefault } = require('./defaults');
+const config = require('../config/config');
/**
* The synchronous method for process
@@ -25,7 +26,7 @@ const processSync = (pathString, opts) => {
globString = `{${pathString.join(',')}}`;
}
- const globArray = glob.sync(globString, { cwd: options.cwd });
+ const globArray = glob.sync(globString, { cwd: options.cwd, ignore: config.ignorePatterns });
const cssHtmlFiles = globArray.filter(file => (
fileExt.css.includes(path.extname(file))
|| fileExt.html.includes(path.extname(file))
diff --git a/lib/process/replaceData.js b/lib/process/replaceData.js
index 3f3a90d..26f7a21 100644
--- a/lib/process/replaceData.js
+++ b/lib/process/replaceData.js
@@ -1,3 +1,4 @@
+const merge = require('lodash.merge');
const rcs = require('rcs-core');
const path = require('path');
const { fileExt } = require('./defaults');
@@ -5,6 +6,7 @@ const { fileExt } = require('./defaults');
const replaceData = (filePath, fileData, options) => {
let data;
+ const sourceFile = { sourceFile: filePath };
if (
options.type === 'js' ||
(
@@ -12,7 +14,8 @@ const replaceData = (filePath, fileData, options) => {
fileExt.js.includes(path.extname(filePath))
)
) {
- data = rcs.replace.js(fileData, options.parserOptions);
+ const jsxType = { ecmaFeatures: { jsx: path.extname(filePath).match(/jsx/i) !== null } };
+ data = rcs.replace.js(fileData, merge(jsxType, options.parserOptions, sourceFile));
} else if (
options.type === 'css' ||
(
@@ -20,7 +23,7 @@ const replaceData = (filePath, fileData, options) => {
fileExt.css.includes(path.extname(filePath))
)
) {
- data = rcs.replace.css(fileData);
+ data = rcs.replace.css(fileData, sourceFile);
} else if (
options.type === 'html' ||
(
@@ -28,7 +31,7 @@ const replaceData = (filePath, fileData, options) => {
fileExt.html.includes(path.extname(filePath))
)
) {
- data = rcs.replace.html(fileData);
+ data = rcs.replace.html(fileData, sourceFile);
} else if (
options.type === 'pug' ||
(
@@ -36,9 +39,9 @@ const replaceData = (filePath, fileData, options) => {
fileExt.pug.includes(path.extname(filePath))
)
) {
- data = rcs.replace.pug(fileData);
+ data = rcs.replace.pug(fileData, sourceFile);
} else {
- data = rcs.replace.any(fileData);
+ data = rcs.replace.any(fileData, sourceFile);
}
return data;
diff --git a/package.json b/package.json
index e18d07b..7088c0a 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,8 @@
"glob": "^7.1.1",
"json-extra": "^0.5.0",
"lodash.merge": "^4.6.1",
- "rcs-core": "^2.6.2",
+ "minimatch": "^3.0.4",
+ "rcs-core": "^3.0.0-alpha.0",
"universalify": "^0.1.2"
},
"devDependencies": {
diff --git a/test/config.js b/test/config.js
new file mode 100644
index 0000000..81938cd
--- /dev/null
+++ b/test/config.js
@@ -0,0 +1,94 @@
+import test from 'ava';
+import path from 'path';
+import fs from 'fs-extra';
+import rcs from 'rcs-core';
+
+import config from '../lib/config/config';
+
+const testFiles = path.join(process.cwd(), '/test/files');
+
+test.beforeEach(() => {
+ rcs.selectorsLibrary.getClassSelector().nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcs.selectorsLibrary.getIdSelector().nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcs.selectorsLibrary.reset();
+ rcs.keyframesLibrary.reset();
+});
+
+test.cb('should set the config with package.json', (t) => {
+ // include config
+ config.load();
+
+ // include new settings
+ rcs.selectorsLibrary.set(['.js', '.any-value']);
+
+ t.is(rcs.selectorsLibrary.get('js'), 'js');
+ t.is(rcs.selectorsLibrary.get('any-value'), 'a');
+
+ t.end();
+});
+
+test.cb('should set the config with .rcsrc', (t) => {
+ const file = '.rcsrc';
+
+ fs.writeFileSync(file, `{
+ "exclude": [
+ "flexbox",
+ "no-js"
+ ],
+ "reserve": [
+ "ad"
+ ]
+ }`, {
+ encoding: 'utf8',
+ });
+
+ // include config
+ config.load();
+
+ // include new settings
+ rcs.selectorsLibrary.set(['.flexbox', '.any-value']);
+
+ t.is(rcs.selectorsLibrary.get('flexbox'), 'flexbox');
+ t.is(rcs.selectorsLibrary.get('any-value'), 'a');
+
+ fs.removeSync(file);
+
+ t.end();
+});
+
+test.cb('should set the config with package.json', (t) => {
+ // include config
+ config.load(path.join(testFiles, '/config.json'));
+
+ // include new settings
+ rcs.selectorsLibrary.set(['.own-file', '.any-value']);
+
+ t.is(rcs.selectorsLibrary.get('own-file'), 'own-file');
+ t.is(rcs.selectorsLibrary.get('any-value'), 'a');
+
+ t.end();
+});
+
+test.cb('should load ignored patterns', (t) => {
+ const file = '.rcsrc';
+
+ fs.writeFileSync(file, `{
+ "ignore": [
+ "a.js",
+ "**.min.js"
+ ]
+ }`, {
+ encoding: 'utf8',
+ });
+
+ // include config
+ config.load();
+
+ t.true(config.isIgnored('a.js'));
+ t.true(config.isIgnored('b.min.js'));
+ t.false(config.isIgnored('b.js'));
+
+ fs.removeSync(file);
+
+ t.end();
+});
diff --git a/test/files/fixtures/js/react.js b/test/files/fixtures/js/react.jsx
similarity index 100%
rename from test/files/fixtures/js/react.js
rename to test/files/fixtures/js/react.jsx
diff --git a/test/files/fixtures/unknown.txt b/test/files/fixtures/unknown.txt
new file mode 100644
index 0000000..bdec289
--- /dev/null
+++ b/test/files/fixtures/unknown.txt
@@ -0,0 +1 @@
+some '.jp-block' going here
diff --git a/test/files/results/css/css-variables-ignore.css b/test/files/results/css/css-variables-ignore.css
index 63c312f..1aa7157 100644
--- a/test/files/results/css/css-variables-ignore.css
+++ b/test/files/results/css/css-variables-ignore.css
@@ -46,17 +46,17 @@
content: 'block__element--modifier';
}
-#i {
+#a {
content: 'id';
}
-.j[src] {
+.i[src] {
content: 'attribute';
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
@media screen and (min-width: .40em) {
- #i {
+ #a {
height: .20px;
width: .20em;
}
@@ -68,7 +68,7 @@
@media screen and (min-width: 40em)
{
- #i
+ #a
{
height: .20px;
width: .20em;
@@ -79,22 +79,22 @@ h1 {
color: red;
}
-.k {
+.j {
content: 'reveal';
color: #eee;
font-size: .5rem;
}
-.l.k {
+.k.j {
content: 'js reveal';
margin-right: calc(var(--theme-primary, var(--0px)) - var(--theme-secondary, var(--0px)));
margin-bottom: calc(var(--theme-tertiary, var(--0px)) - var(--theme-primary, var(--0px)));
}
-.m.k {
+.l.j {
content: 'js reveal';
}
-.n {
+.m {
content: 'js-reveal';
}
diff --git a/test/files/results/css/css-variables.css b/test/files/results/css/css-variables.css
index 8909a2c..3541abf 100644
--- a/test/files/results/css/css-variables.css
+++ b/test/files/results/css/css-variables.css
@@ -1,16 +1,16 @@
-.d {
+.a {
--a: #111;
--b: #f0f0f0;
--c: #999;
}
-.e {
+.b {
--a: red;
--b: white;
--c: black;
}
-.f {
+.c {
color: var(--a);
background-color: var(--b);
font-size: 1.2em;
@@ -22,41 +22,41 @@
margin: 0 0 20px;
}
-.g {
+.d {
content: 'block';
}
-.h {
+.e {
content: 'block__element';
}
-.i {
+.f {
content: 'block__element--modifier';
}
-.j{
+.g{
content: 'block--modifier';
}
-.k:before {
+.h:before {
content: 'before';
}
-.i {
+.f {
content: 'block__element--modifier';
}
-#l {
+#a {
content: 'id';
}
-.m[src] {
+.i[src] {
content: 'attribute';
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
@media screen and (min-width: .40em) {
- #l {
+ #a {
height: .20px;
width: .20em;
}
@@ -68,7 +68,7 @@
@media screen and (min-width: 40em)
{
- #l
+ #a
{
height: .20px;
width: .20em;
@@ -79,22 +79,22 @@ h1 {
color: red;
}
-.n {
+.j {
content: 'reveal';
color: #eee;
font-size: .5rem;
}
-.o.n {
+.k.j {
content: 'js reveal';
margin-right: calc(var(--a, var(--0px)) - var(--b, var(--0px)));
margin-bottom: calc(var(--c, var(--0px)) - var(--a, var(--0px)));
}
-.p.n {
+.l.j {
content: 'js reveal';
}
-.q {
+.m {
content: 'js-reveal';
}
diff --git a/test/files/results/css/style-prefix.css b/test/files/results/css/style-prefix.css
index 0d6d26a..b63220a 100644
--- a/test/files/results/css/style-prefix.css
+++ b/test/files/results/css/style-prefix.css
@@ -22,17 +22,17 @@
content: 'block__element--modifier';
}
-#prefixed-f {
+#prefixed-a {
content: 'id';
}
-.prefixed-g[src] {
+.prefixed-f[src] {
content: 'attribute';
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
@media screen and (min-width: .40em) {
- #prefixed-f {
+ #prefixed-a {
height: .20px;
width: .20em;
}
@@ -44,7 +44,7 @@
@media screen and (min-width: 40em)
{
- #prefixed-f
+ #prefixed-a
{
height: .20px;
width: .20em;
@@ -55,20 +55,20 @@ h1 {
color: red;
}
-.prefixed-h {
+.prefixed-g {
content: 'reveal';
color: #eee;
font-size: .5rem;
}
-.prefixed-i.prefixed-h {
+.prefixed-h.prefixed-g {
content: 'js reveal';
}
-.prefixed-j.prefixed-h {
+.prefixed-i.prefixed-g {
content: 'js reveal';
}
-.prefixed-k {
+.prefixed-j {
content: 'js-reveal';
}
diff --git a/test/files/results/css/style.css b/test/files/results/css/style.css
index 11558b4..dfeaa48 100644
--- a/test/files/results/css/style.css
+++ b/test/files/results/css/style.css
@@ -22,17 +22,17 @@
content: 'block__element--modifier';
}
-#f {
+#a {
content: 'id';
}
-.g[src] {
+.f[src] {
content: 'attribute';
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
@media screen and (min-width: .40em) {
- #f {
+ #a {
height: .20px;
width: .20em;
}
@@ -44,7 +44,7 @@
@media screen and (min-width: 40em)
{
- #f
+ #a
{
height: .20px;
width: .20em;
@@ -55,20 +55,20 @@ h1 {
color: red;
}
-.h {
+.g {
content: 'reveal';
color: #eee;
font-size: .5rem;
}
-.i.h {
+.h.g {
content: 'js reveal';
}
-.j.h {
+.i.g {
content: 'js reveal';
}
-.k {
+.j {
content: 'js-reveal';
}
diff --git a/test/files/results/css/style2.css b/test/files/results/css/style2.css
index b841264..cb1f3f3 100644
--- a/test/files/results/css/style2.css
+++ b/test/files/results/css/style2.css
@@ -1,4 +1,4 @@
-#f {
+#a {
content: 'id';
}
diff --git a/test/files/results/css/subdirectory/style.css b/test/files/results/css/subdirectory/style.css
index 52ea801..4f047dd 100644
--- a/test/files/results/css/subdirectory/style.css
+++ b/test/files/results/css/subdirectory/style.css
@@ -22,6 +22,6 @@
content: 'before';
}
-#f {
+#a {
content: 'id';
}
diff --git a/test/files/results/html/index-with-style.html b/test/files/results/html/index-with-style.html
index 9c857e1..f38da18 100644
--- a/test/files/results/html/index-with-style.html
+++ b/test/files/results/html/index-with-style.html
@@ -9,11 +9,11 @@
diff --git a/test/files/results/js/react.js b/test/files/results/js/react.jsx
similarity index 100%
rename from test/files/results/js/react.js
rename to test/files/results/js/react.jsx
diff --git a/test/files/results/unknown.txt b/test/files/results/unknown.txt
new file mode 100644
index 0000000..c108447
--- /dev/null
+++ b/test/files/results/unknown.txt
@@ -0,0 +1 @@
+some '.a' going here
diff --git a/test/generateMapping.js b/test/generateMapping.js
index 5bd60d1..f8cd068 100644
--- a/test/generateMapping.js
+++ b/test/generateMapping.js
@@ -12,9 +12,9 @@ const fixturesCwd = path.join(process.cwd(), '/test/files/fixtures');
test.beforeEach.cb((t) => {
fs.removeSync(testCwd);
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
rcs.process.css('**/style*.css', {
@@ -30,8 +30,8 @@ test.cb('should create the normal mapping file', (t) => {
const cssMapping = json.readToObjSync(path.join(testCwd, '/renaming_map.json'), 'utf8');
t.falsy(err);
- t.is(cssMapping['.jp-block'], 'a');
- t.is(cssMapping['.jp-block__element'], 'b');
+ t.is(cssMapping.class['.jp-block'], 'a');
+ t.is(cssMapping.class['.jp-block__element'], 'b');
t.end();
});
@@ -45,8 +45,8 @@ test.cb('should create the minified mapping file', (t) => {
const cssMappingMin = json.readToObjSync(path.join(testCwd, '/renaming_map_min.json'), 'utf8');
t.falsy(err);
- t.is(cssMappingMin['.a'], 'jp-block');
- t.is(cssMappingMin['.b'], 'jp-block__element');
+ t.is(cssMappingMin.class['.a'], 'jp-block');
+ t.is(cssMappingMin.class['.b'], 'jp-block__element');
t.end();
});
@@ -59,9 +59,8 @@ test.cb('should create the extended normal mapping file', (t) => {
const cssMapping = json.readToObjSync(path.join(testCwd, '/renaming_map.json'), 'utf8');
t.falsy(err);
- t.truthy(cssMapping['.jp-block'].type);
- t.truthy(cssMapping['.jp-block'].typeChar);
- t.is(cssMapping['.jp-block'].type, 'class');
+ t.truthy(cssMapping.class['.jp-block'].type);
+ t.is(cssMapping.class['.jp-block'].type, 'class');
t.end();
});
@@ -76,8 +75,7 @@ test.cb('should create the minified mapping file', (t) => {
const cssMappingMin = json.readToObjSync(path.join(testCwd, '/renaming_map_min.json'), 'utf8');
t.falsy(err);
- t.truthy(cssMappingMin['.a'].typeChar);
- t.is(cssMappingMin['.a'].type, 'class');
+ t.is(cssMappingMin.class['.a'].type, 'class');
t.end();
});
@@ -90,8 +88,8 @@ test.cb('should create the minified mapping file with a custom name', (t) => {
const cssMappingMin = json.readToObjSync(path.join(testCwd, '/custom-name.json'), 'utf8');
t.falsy(err);
- t.is(cssMappingMin['.a'], 'jp-block');
- t.is(cssMappingMin['.b'], 'jp-block__element');
+ t.is(cssMappingMin.class['.a'], 'jp-block');
+ t.is(cssMappingMin.class['.b'], 'jp-block__element');
t.end();
});
@@ -139,8 +137,8 @@ test.cb('should create the custom names minified mapping file', (t) => {
const cssMapping = json.readToObjSync(path.join(testCwd, '/custom-name.json'), 'utf8');
t.falsy(err);
- t.is(cssMapping['.jp-block'], 'a');
- t.is(cssMapping['.jp-block__element'], 'b');
+ t.is(cssMapping.class['.jp-block'], 'a');
+ t.is(cssMapping.class['.jp-block__element'], 'b');
t.end();
});
diff --git a/test/generateMappingSync.js b/test/generateMappingSync.js
index 9511ce6..7402d82 100644
--- a/test/generateMappingSync.js
+++ b/test/generateMappingSync.js
@@ -11,9 +11,9 @@ const testCwd = path.join(process.cwd(), '/test/files/testCache');
const fixturesCwd = path.join(process.cwd(), '/test/files/fixtures');
test.beforeEach.cb((t) => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
rcs.process.css('**/style*.css', {
@@ -33,8 +33,8 @@ test('should create the normal mapping file synchronously', (t) => {
const cssMapping = json.readToObjSync(path.join(testCwd, '/renaming_map.json'), 'utf8');
- t.is(cssMapping['.jp-block'], 'a');
- t.is(cssMapping['.jp-block__element'], 'b');
+ t.is(cssMapping.class['.jp-block'], 'a');
+ t.is(cssMapping.class['.jp-block__element'], 'b');
});
test('should create the minified mapping file synchronously', (t) => {
@@ -45,8 +45,8 @@ test('should create the minified mapping file synchronously', (t) => {
const cssMappingMin = json.readToObjSync(path.join(testCwd, '/renaming_map_min.json'), 'utf8');
- t.is(cssMappingMin['.a'], 'jp-block');
- t.is(cssMappingMin['.b'], 'jp-block__element');
+ t.is(cssMappingMin.class['.a'], 'jp-block');
+ t.is(cssMappingMin.class['.b'], 'jp-block__element');
});
test('should create the custom names minified mapping file synchronously', (t) => {
@@ -56,8 +56,8 @@ test('should create the custom names minified mapping file synchronously', (t) =
const cssMapping = json.readToObjSync(path.join(testCwd, '/custom-name.json'), 'utf8');
- t.is(cssMapping['.jp-block'], 'a');
- t.is(cssMapping['.jp-block__element'], 'b');
+ t.is(cssMapping.class['.jp-block'], 'a');
+ t.is(cssMapping.class['.jp-block__element'], 'b');
});
test('should create the minified mapping file with a custom name synchronously', (t) => {
@@ -67,8 +67,8 @@ test('should create the minified mapping file with a custom name synchronously',
const cssMappingMin = json.readToObjSync(path.join(testCwd, '/custom-name.json'), 'utf8');
- t.is(cssMappingMin['.a'], 'jp-block');
- t.is(cssMappingMin['.b'], 'jp-block__element');
+ t.is(cssMappingMin.class['.a'], 'jp-block');
+ t.is(cssMappingMin.class['.b'], 'jp-block__element');
});
test('should create the minified mapping js file synchronously', (t) => {
diff --git a/test/includeConfig.js b/test/includeConfig.js
deleted file mode 100644
index e0b5c6a..0000000
--- a/test/includeConfig.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import test from 'ava';
-import path from 'path';
-import fs from 'fs-extra';
-import rcs from 'rcs-core';
-
-import includeConfig from '../lib/config/includeConfig';
-
-const testFiles = path.join(process.cwd(), '/test/files');
-
-test.beforeEach(() => {
- rcs.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcs.nameGenerator.reset();
- rcs.selectorLibrary.reset();
- rcs.keyframesLibrary.reset();
-});
-
-test.cb('should set the config with package.json', (t) => {
- // include config
- includeConfig();
-
- // include new settings
- rcs.selectorLibrary.set(['.js', '.any-value']);
-
- t.is(rcs.selectorLibrary.get('js'), 'js');
- t.is(rcs.selectorLibrary.get('any-value'), 'a');
-
- t.end();
-});
-
-test.cb('should set the config with .rcsrc', (t) => {
- const file = '.rcsrc';
-
- fs.writeFileSync(file, `{
- "exclude": [
- "flexbox",
- "no-js"
- ]
- }`, {
- encoding: 'utf8',
- });
-
- // include config
- includeConfig();
-
- // include new settings
- rcs.selectorLibrary.set(['.flexbox', '.any-value']);
-
- t.is(rcs.selectorLibrary.get('flexbox'), 'flexbox');
- t.is(rcs.selectorLibrary.get('any-value'), 'a');
-
- fs.removeSync(file);
-
- t.end();
-});
-
-test.cb('should set the config with package.json', (t) => {
- // include config
- includeConfig(path.join(testFiles, '/config.json'));
-
- // include new settings
- rcs.selectorLibrary.set(['.own-file', '.any-value']);
-
- t.is(rcs.selectorLibrary.get('own-file'), 'own-file');
- t.is(rcs.selectorLibrary.get('any-value'), 'a');
-
- t.end();
-});
diff --git a/test/integration.js b/test/integration.js
index ab67354..ead5357 100644
--- a/test/integration.js
+++ b/test/integration.js
@@ -11,9 +11,9 @@ const testCwd = path.join(testFiles, 'testCache');
const fixturesCwd = path.join(testFiles, 'fixtures');
test.beforeEach(() => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
});
diff --git a/test/integration_mapping.js b/test/integration_mapping.js
index 5af8a1b..0e000ce 100644
--- a/test/integration_mapping.js
+++ b/test/integration_mapping.js
@@ -12,9 +12,9 @@ const fixturesCwd = './test/files/fixtures';
const resultsCwd = './test/files/results';
test.beforeEach.cb((t) => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
rcs.process.css('**/style*.css', {
@@ -22,9 +22,7 @@ test.beforeEach.cb((t) => {
cwd: fixturesCwd,
}, () => {
rcs.generateMapping(testCwd, () => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
t.end();
@@ -104,9 +102,7 @@ test.cb('should load from a filestring', (t) => {
cwd: fixturesCwd,
}, () => {
rcs.generateMapping(testCwd, { cssMappingMin: true }, () => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
rcs.loadMapping(path.join(testCwd, '/renaming_map_min.json'), { origValues: false });
diff --git a/test/loadMapping.js b/test/loadMapping.js
index e6036e6..6caa57e 100644
--- a/test/loadMapping.js
+++ b/test/loadMapping.js
@@ -8,10 +8,8 @@ import loadMapping from '../lib/mapping/loadMapping';
const testCwd = path.join(process.cwd(), '/test/files/testCache');
test.beforeEach(() => {
- rcs.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcs.nameGenerator.reset();
- rcs.selectorLibrary.reset();
- rcs.keyframesLibrary.reset();
+ rcs.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcs.selectorsLibrary.reset();
});
test.afterEach(() => {
@@ -20,11 +18,15 @@ test.afterEach(() => {
test('should load from an object', (t) => {
loadMapping({
- '.jp-block': 'a-class',
- '#compressed': 'b',
+ class: {
+ '.jp-block': 'a-class',
+ },
+ id: {
+ '#compressed': 'b',
+ },
});
- t.is(rcs.selectorLibrary.get('jp-block'), 'a-class');
- t.is(rcs.selectorLibrary.get('#compressed'), 'b');
+ t.is(rcs.selectorsLibrary.get('jp-block'), 'a-class');
+ t.is(rcs.selectorsLibrary.get('#compressed'), 'b');
});
diff --git a/test/processAuto.js b/test/processAuto.js
index 4326484..09e5091 100644
--- a/test/processAuto.js
+++ b/test/processAuto.js
@@ -11,10 +11,11 @@ const fixturesCwd = 'test/files/fixtures';
const resultsCwd = 'test/files/results';
test.beforeEach(() => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
rcsCore.keyframesLibrary.reset();
+ rcsCore.cssVariablesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
rcsCore.cssVariablesLibrary.reset();
});
@@ -44,6 +45,21 @@ test.cb('should process css files', (t) => {
});
});
+test.cb('should process unknown files', (t) => {
+ rcs.process.auto(['css/style.css', 'unknown.txt'], {
+ newPath: testCwd,
+ cwd: fixturesCwd,
+ }, (err) => {
+ const newFile = fs.readFileSync(path.join(testCwd, 'unknown.txt'), 'utf8');
+ const expectedFile = fs.readFileSync(path.join(resultsCwd, 'unknown.txt'), 'utf8');
+
+ t.falsy(err);
+ t.is(newFile, expectedFile);
+
+ t.end();
+ });
+});
+
test.cb('processing | should process all files automatically', (t) => {
rcs.process.auto(['**/*.{js,html}', 'css/style.css'], {
newPath: testCwd,
diff --git a/test/processAutoSync.js b/test/processAutoSync.js
index 6abcf94..c3d2492 100644
--- a/test/processAutoSync.js
+++ b/test/processAutoSync.js
@@ -11,10 +11,12 @@ const fixturesCwd = 'test/files/fixtures';
const resultsCwd = 'test/files/results';
test.beforeEach(() => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
rcsCore.keyframesLibrary.reset();
+ rcsCore.cssVariablesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.cssVariablesLibrary.reset();
});
test.afterEach(() => {
diff --git a/test/processCss.js b/test/processCss.js
index aa94a0b..a9dc168 100644
--- a/test/processCss.js
+++ b/test/processCss.js
@@ -10,9 +10,10 @@ const fixturesCwd = 'test/files/fixtures';
const resultsCwd = 'test/files/results';
test.beforeEach(() => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.cssVariablesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
});
diff --git a/test/processCssSync.js b/test/processCssSync.js
index 76f00db..176dc43 100644
--- a/test/processCssSync.js
+++ b/test/processCssSync.js
@@ -10,9 +10,9 @@ const fixturesCwd = 'test/files/fixtures';
const resultsCwd = 'test/files/results';
test.beforeEach(() => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
});
diff --git a/test/processJs.js b/test/processJs.js
index 189a48f..768d60a 100644
--- a/test/processJs.js
+++ b/test/processJs.js
@@ -11,12 +11,12 @@ const resultsCwd = 'test/files/results';
test.before(() => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
- rcsCore.selectorLibrary.fillLibrary(fs.readFileSync(path.join(fixturesCwd, '/css/style.css'), 'utf8'));
+ rcsCore.selectorsLibrary.fillLibrary(fs.readFileSync(path.join(fixturesCwd, '/css/style.css'), 'utf8'));
});
test.afterEach(() => {
@@ -39,12 +39,12 @@ test.cb('should process js files', (t) => {
});
test.cb('should process jsx files', (t) => {
- rcs.process.js('js/react.js', {
+ rcs.process.js('js/react.jsx', {
newPath: testCwd,
cwd: fixturesCwd,
}, (err) => {
- const newFile = fs.readFileSync(path.join(testCwd, '/js/react.js'), 'utf8');
- const expectedFile = fs.readFileSync(path.join(resultsCwd, '/js/react.js'), 'utf8');
+ const newFile = fs.readFileSync(path.join(testCwd, '/js/react.jsx'), 'utf8');
+ const expectedFile = fs.readFileSync(path.join(resultsCwd, '/js/react.jsx'), 'utf8');
t.falsy(err);
t.is(newFile, expectedFile);
@@ -54,7 +54,7 @@ test.cb('should process jsx files', (t) => {
});
test.cb('should not process jsx files', (t) => {
- rcs.process.js('js/react.js', {
+ rcs.process.js('js/react.jsx', {
newPath: testCwd,
cwd: fixturesCwd,
parserOptions: {
@@ -85,17 +85,17 @@ test.cb('should process complex files', (t) => {
});
test.cb('should not process multiple files', (t) => {
- rcs.process.js('js/*.js', {
+ rcs.process.js('js/*.js*', {
newPath: testCwd,
cwd: fixturesCwd,
jsx: true,
}, (err) => {
const newFile = fs.readFileSync(path.join(testCwd, '/js/complex.js'), 'utf8');
const newFileTwo = fs.readFileSync(path.join(testCwd, '/js/main.js'), 'utf8');
- const newFileThree = fs.readFileSync(path.join(testCwd, '/js/react.js'), 'utf8');
+ const newFileThree = fs.readFileSync(path.join(testCwd, '/js/react.jsx'), 'utf8');
const expectedFile = fs.readFileSync(path.join(resultsCwd, '/js/complex.js'), 'utf8');
const expectedFileTwo = fs.readFileSync(path.join(resultsCwd, '/js/main.js'), 'utf8');
- const expectedFileThree = fs.readFileSync(path.join(resultsCwd, '/js/react.js'), 'utf8');
+ const expectedFileThree = fs.readFileSync(path.join(resultsCwd, '/js/react.jsx'), 'utf8');
t.falsy(err);
t.is(newFile, expectedFile);
diff --git a/test/processJsSync.js b/test/processJsSync.js
index da04930..713a173 100644
--- a/test/processJsSync.js
+++ b/test/processJsSync.js
@@ -10,12 +10,12 @@ const fixturesCwd = 'test/files/fixtures';
const resultsCwd = 'test/files/results';
test.before(() => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
- rcsCore.selectorLibrary.fillLibrary(fs.readFileSync(path.join(fixturesCwd, '/css/style.css'), 'utf8'));
+ rcsCore.selectorsLibrary.fillLibrary(fs.readFileSync(path.join(fixturesCwd, '/css/style.css'), 'utf8'));
});
test.afterEach(() => {
@@ -35,26 +35,26 @@ test('should process js files', (t) => {
});
test('should process jsx files', (t) => {
- rcs.process.jsSync('js/react.js', {
+ rcs.process.jsSync('js/react.jsx', {
newPath: testCwd,
cwd: fixturesCwd,
jsx: true,
});
- const newFile = fs.readFileSync(path.join(testCwd, '/js/react.js'), 'utf8');
- const expectedFile = fs.readFileSync(path.join(resultsCwd, '/js/react.js'), 'utf8');
+ const newFile = fs.readFileSync(path.join(testCwd, '/js/react.jsx'), 'utf8');
+ const expectedFile = fs.readFileSync(path.join(resultsCwd, '/js/react.jsx'), 'utf8');
t.is(newFile, expectedFile);
});
test('should not process jsx files', (t) => {
- rcs.process.jsSync('js/react.js', {
+ rcs.process.jsSync('js/react.jsx', {
newPath: testCwd,
cwd: fixturesCwd,
});
- const newFile = fs.readFileSync(path.join(testCwd, '/js/react.js'), 'utf8');
- const expectedFile = fs.readFileSync(path.join(testCwd, '/js/react.js'), 'utf8');
+ const newFile = fs.readFileSync(path.join(testCwd, '/js/react.jsx'), 'utf8');
+ const expectedFile = fs.readFileSync(path.join(testCwd, '/js/react.jsx'), 'utf8');
t.is(newFile, expectedFile);
});
@@ -72,7 +72,7 @@ test('should process complex files', (t) => {
});
test('should not process multiple files', (t) => {
- rcs.process.jsSync('js/*.js', {
+ rcs.process.jsSync('js/*.js*', {
newPath: testCwd,
cwd: fixturesCwd,
jsx: true,
@@ -80,10 +80,10 @@ test('should not process multiple files', (t) => {
const newFile = fs.readFileSync(path.join(testCwd, '/js/complex.js'), 'utf8');
const newFileTwo = fs.readFileSync(path.join(testCwd, '/js/main.js'), 'utf8');
- const newFileThree = fs.readFileSync(path.join(testCwd, '/js/react.js'), 'utf8');
+ const newFileThree = fs.readFileSync(path.join(testCwd, '/js/react.jsx'), 'utf8');
const expectedFile = fs.readFileSync(path.join(resultsCwd, '/js/complex.js'), 'utf8');
const expectedFileTwo = fs.readFileSync(path.join(resultsCwd, '/js/main.js'), 'utf8');
- const expectedFileThree = fs.readFileSync(path.join(resultsCwd, '/js/react.js'), 'utf8');
+ const expectedFileThree = fs.readFileSync(path.join(resultsCwd, '/js/react.jsx'), 'utf8');
t.is(newFile, expectedFile);
t.is(newFileTwo, expectedFileTwo);
diff --git a/test/processPug.js b/test/processPug.js
index 3b38088..5b4653f 100644
--- a/test/processPug.js
+++ b/test/processPug.js
@@ -11,12 +11,12 @@ const resultsCwd = 'test/files/results';
test.before(() => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
- rcsCore.selectorLibrary.fillLibrary(fs.readFileSync(path.join(fixturesCwd, '/css/style.css'), 'utf8'));
+ rcsCore.selectorsLibrary.fillLibrary(fs.readFileSync(path.join(fixturesCwd, '/css/style.css'), 'utf8'));
});
test.afterEach(() => {
diff --git a/test/processPugSync.js b/test/processPugSync.js
index 0a61c1d..3641c65 100644
--- a/test/processPugSync.js
+++ b/test/processPugSync.js
@@ -11,12 +11,12 @@ const resultsCwd = 'test/files/results';
test.before(() => {
- rcsCore.nameGenerator.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
- rcsCore.nameGenerator.reset();
- rcsCore.selectorLibrary.reset();
+ rcsCore.selectorsLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.keyframesLibrary.setAlphabet('#abcdefghijklmnopqrstuvwxyz');
+ rcsCore.selectorsLibrary.reset();
rcsCore.keyframesLibrary.reset();
- rcsCore.selectorLibrary.fillLibrary(fs.readFileSync(path.join(fixturesCwd, '/css/style.css'), 'utf8'));
+ rcsCore.selectorsLibrary.fillLibrary(fs.readFileSync(path.join(fixturesCwd, '/css/style.css'), 'utf8'));
});
test.afterEach(() => {
diff --git a/yarn.lock b/yarn.lock
index eb8b191..6725a5e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4673,10 +4673,10 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-rcs-core@^2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/rcs-core/-/rcs-core-2.6.2.tgz#446f864c796867235d403dc9cda6d4018d85b7d5"
- integrity sha512-SYXc11j/BL8+8KcXGqB/9hV4BZEYljPUrXpE6GAt81Wss/Hg1nJC/H8cg/Segiy8+ZqFDAkZAdz0E1eOhqThMQ==
+rcs-core@^3.0.0-alpha.0:
+ version "3.0.0-alpha.0"
+ resolved "https://registry.yarnpkg.com/rcs-core/-/rcs-core-3.0.0-alpha.0.tgz#71ba419c3036a05f134443731b43ca8452895d80"
+ integrity sha512-DoVBUVjBlJvq47/6BhGdcchkXDN/NBveJztCehV8hAR5/JlsWm1VBwDlICEvspsEwt7ockDF0kARcSzoTtSa1w==
dependencies:
array-includes "^3.0.2"
ast-traverse "^0.1.1"
From 33a372221633bc55ca9425228e4580e21ba80f5c Mon Sep 17 00:00:00 2001
From: X-Ryl669
Date: Fri, 23 Aug 2019 10:13:10 +0200
Subject: [PATCH 4/7] Add support for warning the user about bad library usage
(#46)
* Add support for warning the user about bad library usage
* Fix tests for new rcs-core version
---
lib/process/process.js | 2 ++
lib/process/processSync.js | 2 ++
package.json | 2 +-
test/files/results/js/main.js | 2 +-
yarn.lock | 8 ++++----
5 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/lib/process/process.js b/lib/process/process.js
index 6d66813..d0b14f1 100644
--- a/lib/process/process.js
+++ b/lib/process/process.js
@@ -131,6 +131,8 @@ const rcsProcess = (pathString, opts, cb) => {
});
});
}, (errProcess) => {
+ rcs.warnings.warn();
+
if (errProcess) {
return callback(errProcess);
}
diff --git a/lib/process/processSync.js b/lib/process/processSync.js
index 62d76a1..528f443 100644
--- a/lib/process/processSync.js
+++ b/lib/process/processSync.js
@@ -68,6 +68,8 @@ const processSync = (pathString, opts) => {
saveSync(joinedPath, data, { overwrite: shouldOverwrite });
});
+
+ rcs.warnings.warn();
}; // /processSync
module.exports = processSync;
diff --git a/package.json b/package.json
index 7088c0a..6d7911c 100644
--- a/package.json
+++ b/package.json
@@ -60,7 +60,7 @@
"json-extra": "^0.5.0",
"lodash.merge": "^4.6.1",
"minimatch": "^3.0.4",
- "rcs-core": "^3.0.0-alpha.0",
+ "rcs-core": "^3.0.0-alpha.1",
"universalify": "^0.1.2"
},
"devDependencies": {
diff --git a/test/files/results/js/main.js b/test/files/results/js/main.js
index aa940ed..ede96ee 100644
--- a/test/files/results/js/main.js
+++ b/test/files/results/js/main.js
@@ -3,7 +3,7 @@
$(".a");
// vanillaJS example
-document.getElementsByClassName(" b");
+document.getElementsByClassName(" jp-block__element");
document.getElementById("c");
const restSpread = {
diff --git a/yarn.lock b/yarn.lock
index 6725a5e..3a193fd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4673,10 +4673,10 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-rcs-core@^3.0.0-alpha.0:
- version "3.0.0-alpha.0"
- resolved "https://registry.yarnpkg.com/rcs-core/-/rcs-core-3.0.0-alpha.0.tgz#71ba419c3036a05f134443731b43ca8452895d80"
- integrity sha512-DoVBUVjBlJvq47/6BhGdcchkXDN/NBveJztCehV8hAR5/JlsWm1VBwDlICEvspsEwt7ockDF0kARcSzoTtSa1w==
+rcs-core@^3.0.0-alpha.1:
+ version "3.0.0-alpha.1"
+ resolved "https://registry.yarnpkg.com/rcs-core/-/rcs-core-3.0.0-alpha.1.tgz#681d9d78100e2e6da008c1288b6cb7da6d90b46b"
+ integrity sha512-kDdUsDevOfUPbrpYDfjyrfrFQ3n2fY3YLYZgYDF4lwEu7igLSPzMlZO9aok+deGHegpyPN5uklkb3RKJVrj6XA==
dependencies:
array-includes "^3.0.2"
ast-traverse "^0.1.1"
From 4cf2420235069aaac502698892a226d4833efbc9 Mon Sep 17 00:00:00 2001
From: X-Ryl669
Date: Fri, 23 Aug 2019 23:27:40 +0200
Subject: [PATCH 5/7] Improve documentation with usual caveats (#45)
* Improve documentation with the usual caveats
* Link caveats with main documentation
* Improve documentation with actual example
* Added missing link
---
README.md | 8 +++
docs/caveats.md | 155 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 163 insertions(+)
create mode 100644 docs/caveats.md
diff --git a/README.md b/README.md
index eb94398..1adccc9 100644
--- a/README.md
+++ b/README.md
@@ -14,8 +14,10 @@ You can also use a config file with the combination of [generateMapping](#genera
- [Installation](#installation)
- [Usage](#usage)
- [Methods](#methods)
+- [Caveats](#caveats)
- [LICENSE](#license)
+
## Installation
Install with [npm](https://docs.npmjs.com/cli/install) or [yarn](https://yarnpkg.com/en/docs/install)
@@ -100,6 +102,12 @@ try {
- [rcs.loadMapping](docs/api/loadMapping.md)
- [rcs.config](docs/api/config.md)
+## Caveats
+
+Correctly using `rename-css-selectors` on large project means few rules should be followed.
+[This document](docs/caveats.md) explains most of them.
+
+
# LICENSE
MIT © [Jan Peer Stöcklmair](https://www.jpeer.at)
diff --git a/docs/caveats.md b/docs/caveats.md
new file mode 100644
index 0000000..22671d2
--- /dev/null
+++ b/docs/caveats.md
@@ -0,0 +1,155 @@
+# Using rename-css-selectors correctly and patterns to avoid
+
+`rename-css-selectors` is using `rcs-core` to perform its CSS selectors optimization.
+The core is performing three steps on your files:
+1. Extracting CSS's class and id selectors, keyframes, variables and attributes selectors
+2. Assigning minified value for each entry it has found
+3. Trying to replace all elements that could match in your files with the minified version
+
+## Caveats for step 1
+Currently, the first step is done on CSS syntax only (either from CSS files or extracted from HTML's `
+
+ Yeah
+
+
+```
+Here, the *key* `'b'` in the javascript code can refer to the tag name `` (when being called by `document.querySelector`) or to the class `.b` (when being called by `document.getElementsByClassName`.
+The core does not run your code (it only parses it) and, as such, can't figure out when a variable is being used for the former or latter case.
+Please notice that the core can't expect a *class* selection by looking at `getElementsByClassName` since you can be using any library that's abstracting this (like jQuery, React...).
+
+So, to avoid this caveat, you can either:
+* Avoid conflicting class name with potential HTML tag name (don't name your CSS class like `.b` or `.i` or `.span`, ...)
+* Avoid using `getElementById`, `getElementsByClassName` in your javascript code (and only fallback to `querySelector` and `querySelectorsAll`)
+* Reserve some mapping so the core can't use them (check the `config.reserve` array in the documentation about how to do that)
+* Exclude any selector that's conflicting with any HTML tag name (check the `config.exclude` array in the documentation about how to do that)
+
+
+### Warning:
+
+In the example above, `` can be what the core is generating for your initial class `something`. So the example above could have been generated from this source:
+```
+
+
+ Yeah
+
+
+```
+In that case, the initial code is semantically wrong since the `querySelector` should return `undefined`. The minified CSS selector code will thus return a different result in that case.
+
+If you had followed the advice above and excluded (or reserved) all potential HTML tag name (see below), then `something` won't be mapped to `b`, but, for example, `t` and the initial code behavior will be preserved.
+
+Similarly, if your initial code was:
+```js
+...
+var a = 'b';
+...
+```
+then the core will generate a warning telling you that `b` is already used in the renaming map and that you should fix the ambiguity.
+
+If you are in such cases (you are using `getElementById` et al) then the easiest solution is to exclude all potential HTML tag name with a config file containing:
+```json
+{
+ "exclude": [
+"html", "head", "title", "base", "link", "meta", "style", "body", "article", "section", "nav", "aside",
+"h1", "h2", "h3", "h4", "h5", "h6", "hgroup", "address", "p", "hr", "pre", "blockquote", "ol", "ul",
+"menu", "li", "dl", "dt", "dd", "figure", "figcaption", "main", "div", "a", "em", "strong", "small",
+"s", "cite", "q", "dfn", "abbr", "ruby", "rt", "rp", "data", "time", "code", "var", "samp", "kbd",
+"sub", "sup", "i", "b", "u", "mark", "bdi", "bdo", "span", "br", "wbr", "ins", "del", "picture",
+"source", "img", "iframe", "embed", "object", "param", "video", "audio", "track", "map", "area",
+"table", "caption", "colgroup", "col", "tbody", "thead", "tfoot", "tr", "td", "th", "form", "label",
+"input", "button", "select", "datalist", "optgroup", "option", "textarea", "output", "progress", "meter",
+"fieldset", "legend", "details", "summary", "dialog", "script", "noscript", "template", "slot", "canvas"]
+}
+```
+The incovenient being that such selectors won't be minified (think about `header` for example, it's quite common for a class name)
+
+## Caveat for step 3
+
+Replacement is relatively safe for CSS and HTML (again, because such format are explicit enough to avoiding ambiguity).
+
+Replacements inside Javascript code is much harder because a string for a selector can be generated from many small parts (like in `var a = '.' + objClass;`), can be used in functions that have different semantics (like `getElementById` and `querySelector`), etc...
+
+So, here's the way the core is trying to resolve ambiguities (but as seen above, not all ambiguities can be solved):
+
+1. Ecmascript template, like in ``var a = `some text ${jsVar}`;`` is parsed like HTML, looking for `class="X"` or `id='Y'` or `for="Z"`.
+ If you use template code to make your CSS selector from each part, it'll fail:
+ Don't write ``var myClass = 'something'; var sel = `.${myClass}`;``, but instead `var myClass = '.something'`.
+
+2. Each string literal is extracted from your javascript code and:
+ 1. If it contains some CSS specific selectors chars (like `#` or `.` or ` ` etc...), then it's parsed as a CSS selector. **This is safer and usually gives the expected result.**
+ 2. If it does not contain some CSS specific selectors (like a single word), then it's tried as an ID selector first and if not found as a class selector (or not replaced if not found in either one).
+ **This can lead to the ambiguity shown above.**
+
+So, to avoid such ambiguity, try to store your class or id with their respective prefix (`.` or `#`) in your code, and rely on `querySelector` et al.
+
+For example, here are some replacement selected by the library, with these CSS selector:
+
+```css
+.something {} // Mapped to .a
+#test {} // Mapped to #a
+.test {} // Mapped to .b
+```
+
+
+
+| Initial code | Replaced code | Reason |
+|---|---|---|
+|`var a = 'something';`|`var a = 'b';`| The core could not deduce the string literal is a selector, so fallback to searching for any rule with `something`, class had one|
+|`var a = 'test';`|`var a = 'a';`| The core could not deduce the string literal is a selector and in fallback to search for any rule, it selected #test=>#a since it was searched first|
+|`var a = '.something';`|`var a = '.a';`| The core deduced a class selector was required and replaced it|
+|`var a = '.test';`|`var a = '.b';`| The core deduced a class selector was required and replaced it|
+|`var a = ' something';`|`var a = ' something';`| The core deduced the string literal is a CSS selector, but could not find any match|
+|`var a = 'div[class=something]';`|`var a = 'div[class=a]';`| The core deduced the attribute selector was related to a class selector and replaced it|
+|`var a = 'input[name=something]';`|`var a = 'input[name=something]';`| The core deduced the attribute selector wasn't related to a class, id or for attribute, no replacement was done|
+|`var a = 'b #test, .something';`|`var a = 'b #a, .a';`| The core parsed all selectors and produced correct replacement for each of them|
+
+
+### Another remark:
+
+Some are writing CSS selector this way:
+```css
+div[class = something]
+{
+color: red;
+}
+```
+This is perfectly safe from javascript code (if you have `var a = 'div[class=something]';`), then this will be replaced correctly by the core (*to* `var a = 'div[class=b]';`).
+
+This however requires much more work from the developper so this is not a solution we recommend.
+
+
From 1764ccc4f74c13574ee6a75e4e2a38a857754440 Mon Sep 17 00:00:00 2001
From: JPeer264
Date: Sun, 24 Nov 2019 10:14:59 +0100
Subject: [PATCH 6/7] Chore: update rcs-core to latest alpha 3
---
lib/config/config.js | 4 ++--
lib/mapping/generateMapping.js | 4 ++--
lib/mapping/generateMappingSync.js | 4 ++--
lib/mapping/loadMapping.js | 4 ++--
lib/process/process.js | 4 ++--
lib/process/processSync.js | 4 ++--
lib/process/replaceData.js | 10 +++++-----
package.json | 2 +-
yarn.lock | 8 ++++----
9 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/lib/config/config.js b/lib/config/config.js
index c268c65..42d2e47 100644
--- a/lib/config/config.js
+++ b/lib/config/config.js
@@ -19,11 +19,11 @@ class Config {
}
if (configObject.exclude) {
- rcs.selectorsLibrary.setExclude(configObject.exclude);
+ rcs.default.selectorsLibrary.setExclude(configObject.exclude);
}
if (configObject.reserve) {
- rcs.selectorsLibrary.setReserved(configObject.reserve);
+ rcs.default.selectorsLibrary.setReserved(configObject.reserve);
}
if (configObject.ignore) {
diff --git a/lib/mapping/generateMapping.js b/lib/mapping/generateMapping.js
index 315a9c0..2fda88b 100644
--- a/lib/mapping/generateMapping.js
+++ b/lib/mapping/generateMapping.js
@@ -47,12 +47,12 @@ const generateMapping = (pathString, opts, cb) => {
fileName = options.cssMapping;
}
- const cssClassMappingArray = rcs.selectorsLibrary.getClassSelector().getAll({
+ const cssClassMappingArray = rcs.default.selectorsLibrary.getClassSelector().getAll({
extend: options.extended,
getRenamedValues: !options.origValues,
addSelectorType: options.isSelectors,
});
- const cssIdMappingArray = rcs.selectorsLibrary.getIdSelector().getAll({
+ const cssIdMappingArray = rcs.default.selectorsLibrary.getIdSelector().getAll({
extend: options.extended,
getRenamedValues: !options.origValues,
addSelectorType: options.isSelectors,
diff --git a/lib/mapping/generateMappingSync.js b/lib/mapping/generateMappingSync.js
index fd6c95a..0c8f4a4 100644
--- a/lib/mapping/generateMappingSync.js
+++ b/lib/mapping/generateMappingSync.js
@@ -39,12 +39,12 @@ const generateMappingSync = (pathString, options) => {
fileName = options.cssMapping;
}
- const cssClassMappingArray = rcs.selectorsLibrary.getClassSelector().getAll({
+ const cssClassMappingArray = rcs.default.selectorsLibrary.getClassSelector().getAll({
extend: options.extended,
getRenamedValues: !options.origValues,
addSelectorType: options.isSelectors,
});
- const cssIdMappingArray = rcs.selectorsLibrary.getIdSelector().getAll({
+ const cssIdMappingArray = rcs.default.selectorsLibrary.getIdSelector().getAll({
extend: options.extended,
getRenamedValues: !options.origValues,
addSelectorType: options.isSelectors,
diff --git a/lib/mapping/loadMapping.js b/lib/mapping/loadMapping.js
index b9256da..0145f3d 100644
--- a/lib/mapping/loadMapping.js
+++ b/lib/mapping/loadMapping.js
@@ -33,8 +33,8 @@ const loadMapping = (pathString, options = {}) => {
return;
}
- rcs.selectorsLibrary.getClassSelector().setMultiple(classes);
- rcs.selectorsLibrary.getIdSelector().setMultiple(ids);
+ rcs.default.selectorsLibrary.getClassSelector().setMultiple(classes);
+ rcs.default.selectorsLibrary.getIdSelector().setMultiple(ids);
}; // /loadMapping
module.exports = loadMapping;
diff --git a/lib/process/process.js b/lib/process/process.js
index d0b14f1..59fd7fc 100644
--- a/lib/process/process.js
+++ b/lib/process/process.js
@@ -77,7 +77,7 @@ const rcsProcess = (pathString, opts, cb) => {
const isHtml = fileExt.html.includes(path.extname(filePath));
- rcs.fillLibraries(
+ rcs.default.fillLibraries(
bufferData.toString(),
{
prefix: options.prefix,
@@ -131,7 +131,7 @@ const rcsProcess = (pathString, opts, cb) => {
});
});
}, (errProcess) => {
- rcs.warnings.warn();
+ rcs.default.warnings.warn();
if (errProcess) {
return callback(errProcess);
diff --git a/lib/process/processSync.js b/lib/process/processSync.js
index 528f443..2278d0d 100644
--- a/lib/process/processSync.js
+++ b/lib/process/processSync.js
@@ -40,7 +40,7 @@ const processSync = (pathString, opts) => {
const fileData = fs.readFileSync(path.join(options.cwd, filePath), 'utf8');
const isHtml = fileExt.html.includes(path.extname(filePath));
- rcs.fillLibraries(
+ rcs.default.fillLibraries(
fileData.toString(),
{
prefix: options.prefix,
@@ -69,7 +69,7 @@ const processSync = (pathString, opts) => {
saveSync(joinedPath, data, { overwrite: shouldOverwrite });
});
- rcs.warnings.warn();
+ rcs.default.warnings.warn();
}; // /processSync
module.exports = processSync;
diff --git a/lib/process/replaceData.js b/lib/process/replaceData.js
index 26f7a21..819dc40 100644
--- a/lib/process/replaceData.js
+++ b/lib/process/replaceData.js
@@ -15,7 +15,7 @@ const replaceData = (filePath, fileData, options) => {
)
) {
const jsxType = { ecmaFeatures: { jsx: path.extname(filePath).match(/jsx/i) !== null } };
- data = rcs.replace.js(fileData, merge(jsxType, options.parserOptions, sourceFile));
+ data = rcs.default.replace.js(fileData, merge(jsxType, options.parserOptions, sourceFile));
} else if (
options.type === 'css' ||
(
@@ -23,7 +23,7 @@ const replaceData = (filePath, fileData, options) => {
fileExt.css.includes(path.extname(filePath))
)
) {
- data = rcs.replace.css(fileData, sourceFile);
+ data = rcs.default.replace.css(fileData, sourceFile);
} else if (
options.type === 'html' ||
(
@@ -31,7 +31,7 @@ const replaceData = (filePath, fileData, options) => {
fileExt.html.includes(path.extname(filePath))
)
) {
- data = rcs.replace.html(fileData, sourceFile);
+ data = rcs.default.replace.html(fileData, sourceFile);
} else if (
options.type === 'pug' ||
(
@@ -39,9 +39,9 @@ const replaceData = (filePath, fileData, options) => {
fileExt.pug.includes(path.extname(filePath))
)
) {
- data = rcs.replace.pug(fileData, sourceFile);
+ data = rcs.default.replace.pug(fileData, sourceFile);
} else {
- data = rcs.replace.any(fileData, sourceFile);
+ data = rcs.default.replace.any(fileData, sourceFile);
}
return data;
diff --git a/package.json b/package.json
index 6d7911c..1755992 100644
--- a/package.json
+++ b/package.json
@@ -60,7 +60,7 @@
"json-extra": "^0.5.0",
"lodash.merge": "^4.6.1",
"minimatch": "^3.0.4",
- "rcs-core": "^3.0.0-alpha.1",
+ "rcs-core": "^3.0.0-alpha.3",
"universalify": "^0.1.2"
},
"devDependencies": {
diff --git a/yarn.lock b/yarn.lock
index 3a193fd..6a5e706 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4673,10 +4673,10 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-rcs-core@^3.0.0-alpha.1:
- version "3.0.0-alpha.1"
- resolved "https://registry.yarnpkg.com/rcs-core/-/rcs-core-3.0.0-alpha.1.tgz#681d9d78100e2e6da008c1288b6cb7da6d90b46b"
- integrity sha512-kDdUsDevOfUPbrpYDfjyrfrFQ3n2fY3YLYZgYDF4lwEu7igLSPzMlZO9aok+deGHegpyPN5uklkb3RKJVrj6XA==
+rcs-core@^3.0.0-alpha.3:
+ version "3.0.0-alpha.3"
+ resolved "https://registry.yarnpkg.com/rcs-core/-/rcs-core-3.0.0-alpha.3.tgz#c1e0134606bb054f811670b2daeb7f9c0b10bd83"
+ integrity sha512-VQp2aDy5ttdD8bBIC9oEdPkkw/x6wME/3E6TxBW+M2YmWTyNJJXj4/kQCF5zebrahChiS+k3aWR4tIcADURpig==
dependencies:
array-includes "^3.0.2"
ast-traverse "^0.1.1"
From 9875bcee7361396c17eb49cdbc48f0bb270da54e Mon Sep 17 00:00:00 2001
From: JPeer264
Date: Sun, 24 Nov 2019 10:15:57 +0100
Subject: [PATCH 7/7] 3.2.6
---
CHANGELOG.md | 9 +++++++++
package.json | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c70097c..4d8294a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+3.2.6 - November, 24 2019
+
+* 1764ccc Chore: update rcs-core to latest alpha 3 (JPeer264)
+* 4cf2420 Improve documentation with usual caveats (#45) (X-Ryl669)
+* 33a3722 Add support for warning the user about bad library usage (#46) (X-Ryl669)
+* c230f13 Update rcs core (#44) (X-Ryl669)
+* a10956d Chore: drop support for node v6, add support v12 (JPeer264)
+* 8e35da9 Chore: add husky/lint-staged | travis lint check (JPeer264)
+
3.2.5 - August, 01 2019
* 5f6bf01 Test: add testcase for #43 (JPeer264)
diff --git a/package.json b/package.json
index 1755992..760a83c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "rename-css-selectors",
- "version": "3.2.5",
+ "version": "3.2.6",
"description": "Rename css classes and id's in files",
"main": "./index.js",
"scripts": {