From 6ab4b5fb2cab3fd10e7d8477e6dd182fdea4dcc5 Mon Sep 17 00:00:00 2001 From: g45t345rt Date: Wed, 24 Mar 2021 11:58:32 -0400 Subject: [PATCH] fix resolve css from node_modules --- package.json | 2 + src/index.ts | 32 +++-- test/index.js | 8 ++ test/tests/node_modules.ts | 1 + yarn.lock | 241 +++++++++++++++++++++++++++++++++---- 5 files changed, 249 insertions(+), 35 deletions(-) create mode 100644 test/tests/node_modules.ts diff --git a/package.json b/package.json index ed07ad1..35fea74 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "less": "^4.x", "postcss": "8.x", "postcss-modules": "^4.0.0", + "resolve-file": "^0.3.0", "sass": "^1.x", "stylus": "^0.x", "tmp": "^0.2.1" @@ -49,6 +50,7 @@ "cross-env": "^7.0.3", "esbuild": "^0.9.6", "mocha": "^8.3.2", + "normalize.css": "^8.0.1", "prettier": "^2.2.1", "typescript": "^4.2.3", "yorkie": "^2.0.0" diff --git a/src/index.ts b/src/index.ts index 2ce532a..222431d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -13,6 +13,7 @@ import postcss from "postcss"; import postcssModules from "postcss-modules"; import less from "less"; import stylus from "stylus"; +import resolveFile from "resolve-file"; interface PostCSSPluginOptions { plugins: PostCSSPlugin[]; @@ -58,21 +59,26 @@ const postCSSPlugin = ({ build.onResolve( { filter: /.\.(css|sass|scss|less|styl)$/ }, async (args) => { + // Namespace is empty when using CSS as an entrypoint if (args.namespace !== "file" && args.namespace !== "") return; - const sourceFullPath = path.resolve(args.resolveDir, args.path), - sourceExt = path.extname(sourceFullPath), - sourceBaseName = path.basename(sourceFullPath, sourceExt), - sourceDir = path.dirname(sourceFullPath), - sourceRelDir = path.relative(path.dirname(rootDir), sourceDir), - isModule = sourceBaseName.match(/\.module$/), - tmpDir = path.resolve(tmpDirPath, sourceRelDir), - tmpFilePath = path.resolve( - tmpDir, - `${sourceBaseName}-tmp-${Date.now()}-${sourceExt.replace(".", "")}${ - isModule ? ".module" : "" - }.css` - ); + // Resolve files also from node_modules (ex: npm normalize.css) + let sourceFullPath = resolveFile(args.path); + if (!sourceFullPath) + sourceFullPath = path.resolve(args.resolveDir, args.path); + + const sourceExt = path.extname(sourceFullPath); + const sourceBaseName = path.basename(sourceFullPath, sourceExt); + const sourceDir = path.dirname(sourceFullPath); + const sourceRelDir = path.relative(path.dirname(rootDir), sourceDir); + const isModule = sourceBaseName.match(/\.module$/); + const tmpDir = path.resolve(tmpDirPath, sourceRelDir); + const tmpFilePath = path.resolve( + tmpDir, + `${sourceBaseName}-tmp-${Date.now()}-${sourceExt.replace(".", "")}${ + isModule ? ".module" : "" + }.css` + ); await ensureDir(tmpDir); diff --git a/test/index.js b/test/index.js index 343f8e0..be96fd3 100644 --- a/test/index.js +++ b/test/index.js @@ -36,6 +36,14 @@ describe("PostCSS esbuild tests", () => { }) .catch(done); }); + it("Works with node_modules import", (done) => { + test(["tests/node_modules.ts"]) + .then((res) => { + assert(res); + done(); + }) + .catch(done); + }); }); function test(entryPoint) { diff --git a/test/tests/node_modules.ts b/test/tests/node_modules.ts new file mode 100644 index 0000000..868faf0 --- /dev/null +++ b/test/tests/node_modules.ts @@ -0,0 +1 @@ +import "normalize.css"; diff --git a/yarn.lock b/yarn.lock index a8150ea..6ec96ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -301,6 +301,14 @@ "resolved" "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" "version" "3.0.0" +"cwd@^0.10.0": + "integrity" "sha1-FyQAaUBXwioTsM8WFix+S3p/5Wc=" + "resolved" "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz" + "version" "0.10.0" + dependencies: + "find-pkg" "^0.1.2" + "fs-exists-sync" "^0.1.0" + "debug@^3.2.6": "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" @@ -345,9 +353,9 @@ "version" "5.0.0" "electron-to-chromium@^1.3.649": - "integrity" "sha512-RTD97QkdrJKaKwRv9h/wGAaoR2lGxNXEcBXS31vjitgTPwTWAbLdS7cEsBK68eEQy7p6YyT8D5BxBEYHu2SuwQ==" - "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.671.tgz" - "version" "1.3.671" + "integrity" "sha512-yuKKvBuXe+IWRp6DxqbGUxbPtamh5C+mEC38vZ0KLxQFpGG9TQn0DbPL9WhWhQnfNhLyzxmPYlCzShbs8QxGbA==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.696.tgz" + "version" "1.3.696" "emoji-regex@^8.0.0": "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" @@ -366,10 +374,10 @@ dependencies: "prr" "~1.0.1" -"esbuild@^0.8.49": - "integrity" "sha512-itiFVYv5UZz4NooO7/Y0bRGVDGz/M/cxKbl6zyNI5pnKaz1mZjvZXAFhhDVz6rGCmcdTKj5oag6rh8DaaSSmfQ==" - "resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.8.49.tgz" - "version" "0.8.49" +"esbuild@^0.9.6": + "integrity" "sha512-F6vASxU0wT/Davt9aj2qtDwDNSkQxh9VbyO56M7PDWD+D/Vgq/rmUDGDQo7te76W5auauVojjnQr/wTu3vpaUA==" + "resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.9.6.tgz" + "version" "0.9.6" "escalade@^3.1.1": "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" @@ -394,6 +402,27 @@ "signal-exit" "^3.0.0" "strip-eof" "^1.0.0" +"expand-tilde@^1.2.2": + "integrity" "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=" + "resolved" "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz" + "version" "1.2.2" + dependencies: + "os-homedir" "^1.0.1" + +"expand-tilde@^2.0.2": + "integrity" "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=" + "resolved" "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "homedir-polyfill" "^1.0.1" + +"extend-shallow@^2.0.1": + "integrity" "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=" + "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "is-extendable" "^0.1.0" + "fill-range@^7.0.1": "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" @@ -401,6 +430,21 @@ dependencies: "to-regex-range" "^5.0.1" +"find-file-up@^0.1.2": + "integrity" "sha1-z2gJG8+fMApA2kEbN9pczlovvqA=" + "resolved" "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz" + "version" "0.1.3" + dependencies: + "fs-exists-sync" "^0.1.0" + "resolve-dir" "^0.1.0" + +"find-pkg@^0.1.2": + "integrity" "sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc=" + "resolved" "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz" + "version" "0.1.2" + dependencies: + "find-file-up" "^0.1.2" + "find-up@5.0.0": "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" @@ -419,6 +463,11 @@ "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz" "version" "4.0.13" +"fs-exists-sync@^0.1.0": + "integrity" "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=" + "resolved" "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz" + "version" "0.1.0" + "fs-extra@^9.1.0": "integrity" "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==" "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" @@ -434,6 +483,11 @@ "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" "version" "1.0.0" +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + "generic-names@^2.0.1": "integrity" "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==" "resolved" "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz" @@ -457,9 +511,9 @@ "version" "3.0.0" "glob-parent@~5.1.0": - "integrity" "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==" - "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz" - "version" "5.1.1" + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" dependencies: "is-glob" "^4.0.1" @@ -475,6 +529,24 @@ "once" "^1.3.0" "path-is-absolute" "^1.0.0" +"global-modules@^0.2.3": + "integrity" "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=" + "resolved" "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz" + "version" "0.2.3" + dependencies: + "global-prefix" "^0.1.4" + "is-windows" "^0.2.0" + +"global-prefix@^0.1.4": + "integrity" "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=" + "resolved" "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz" + "version" "0.1.5" + dependencies: + "homedir-polyfill" "^1.0.0" + "ini" "^1.3.4" + "is-windows" "^0.2.0" + "which" "^1.2.12" + "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0": "integrity" "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" @@ -490,11 +562,25 @@ "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" "version" "4.0.0" +"has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + "he@1.2.0": "integrity" "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" "resolved" "https://registry.npmjs.org/he/-/he-1.2.0.tgz" "version" "1.2.0" +"homedir-polyfill@^1.0.0", "homedir-polyfill@^1.0.1": + "integrity" "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==" + "resolved" "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "parse-passwd" "^1.0.0" + "iconv-lite@^0.4.4": "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" @@ -535,6 +621,11 @@ "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" "version" "2.0.4" +"ini@^1.3.4": + "integrity" "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + "version" "1.3.8" + "is-binary-path@~2.1.0": "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -542,6 +633,11 @@ dependencies: "binary-extensions" "^2.0.0" +"is-buffer@^1.1.5": + "integrity" "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "version" "1.1.6" + "is-ci@^1.0.10": "integrity" "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==" "resolved" "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz" @@ -549,6 +645,18 @@ dependencies: "ci-info" "^1.5.0" +"is-core-module@^2.2.0": + "integrity" "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "has" "^1.0.3" + +"is-extendable@^0.1.0": + "integrity" "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + "version" "0.1.1" + "is-extglob@^2.1.1": "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" @@ -587,9 +695,14 @@ "version" "1.1.0" "is-what@^3.12.0": - "integrity" "sha512-qYTOcdAo0H0tvMTl9ZhsjpEZH5Q07JDVrPnFMAQgBM0UctGqVsKE7LgZPNZEFPw1EhUkpaBL/BKnRgVX7CoMTw==" - "resolved" "https://registry.npmjs.org/is-what/-/is-what-3.13.0.tgz" - "version" "3.13.0" + "integrity" "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==" + "resolved" "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz" + "version" "3.14.1" + +"is-windows@^0.2.0": + "integrity" "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=" + "resolved" "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz" + "version" "0.2.0" "isexe@^2.0.0": "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" @@ -619,6 +732,20 @@ optionalDependencies: "graceful-fs" "^4.1.6" +"kind-of@^3.0.2": + "integrity" "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "is-buffer" "^1.1.5" + +"lazy-cache@^2.0.2": + "integrity" "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=" + "resolved" "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "set-getter" "^0.1.0" + "less@^4.x": "integrity" "sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==" "resolved" "https://registry.npmjs.org/less/-/less-4.1.1.tgz" @@ -763,9 +890,9 @@ "sax" "^1.2.4" "node-releases@^1.1.70": - "integrity" "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==" - "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz" - "version" "1.1.70" + "integrity" "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz" + "version" "1.1.71" "normalize-path@^1.0.0": "integrity" "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=" @@ -782,6 +909,11 @@ "resolved" "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" "version" "0.1.2" +"normalize.css@^8.0.1": + "integrity" "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==" + "resolved" "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz" + "version" "8.0.1" + "npm-run-path@^2.0.0": "integrity" "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=" "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" @@ -796,6 +928,11 @@ dependencies: "wrappy" "1" +"os-homedir@^1.0.1": + "integrity" "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "resolved" "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + "version" "1.0.2" + "p-finally@^1.0.0": "integrity" "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" @@ -820,6 +957,11 @@ "resolved" "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz" "version" "1.0.1" +"parse-passwd@^1.0.0": + "integrity" "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + "resolved" "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" + "version" "1.0.0" + "path-exists@^4.0.0": "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" @@ -840,6 +982,11 @@ "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" "version" "3.1.1" +"path-parse@^1.0.6": + "integrity" "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" + "version" "1.0.6" + "pathval@^1.1.1": "integrity" "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" "resolved" "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" @@ -955,11 +1102,40 @@ "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" "version" "2.1.1" +"resolve-dir@^0.1.0": + "integrity" "sha1-shklmlYC+sXFxJatiUpujMQwJh4=" + "resolved" "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz" + "version" "0.1.1" + dependencies: + "expand-tilde" "^1.2.2" + "global-modules" "^0.2.3" + +"resolve-file@^0.3.0": + "integrity" "sha1-EeH7RkVm06fFAMt+lIHo8LAKFO8=" + "resolved" "https://registry.npmjs.org/resolve-file/-/resolve-file-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "cwd" "^0.10.0" + "expand-tilde" "^2.0.2" + "extend-shallow" "^2.0.1" + "fs-exists-sync" "^0.1.0" + "homedir-polyfill" "^1.0.1" + "lazy-cache" "^2.0.2" + "resolve" "^1.2.0" + "resolve-url@^0.2.1": "integrity" "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" "resolved" "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" "version" "0.2.1" +"resolve@^1.2.0": + "integrity" "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" + "version" "1.20.0" + dependencies: + "is-core-module" "^2.2.0" + "path-parse" "^1.0.6" + "rimraf@^3.0.0": "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" @@ -1006,6 +1182,13 @@ dependencies: "randombytes" "^2.1.0" +"set-getter@^0.1.0": + "integrity" "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=" + "resolved" "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz" + "version" "0.1.0" + dependencies: + "to-object-path" "^0.3.0" + "shebang-command@^1.2.0": "integrity" "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=" "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" @@ -1075,18 +1258,18 @@ "strip-ansi" "^4.0.0" "string-width@^4.1.0": - "integrity" "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz" - "version" "4.2.0" + "integrity" "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" + "version" "4.2.2" dependencies: "emoji-regex" "^8.0.0" "is-fullwidth-code-point" "^3.0.0" "strip-ansi" "^6.0.0" "string-width@^4.2.0": - "integrity" "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz" - "version" "4.2.0" + "integrity" "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" + "version" "4.2.2" dependencies: "emoji-regex" "^8.0.0" "is-fullwidth-code-point" "^3.0.0" @@ -1156,6 +1339,13 @@ dependencies: "rimraf" "^3.0.0" +"to-object-path@^0.3.0": + "integrity" "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=" + "resolved" "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "kind-of" "^3.0.2" + "to-regex-range@^5.0.1": "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -1198,6 +1388,13 @@ "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" "version" "1.0.2" +"which@^1.2.12": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + "which@^1.2.9": "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz"