Skip to content

Commit 8d6dfe9

Browse files
authored
feat: support detect pnpm (#16)
* feat: support detect pnpm * feat: support detect pnpm not in monorepo * fix: update cli output * revert: restore yarn.lock
1 parent 0edfd63 commit 8d6dfe9

File tree

3 files changed

+120
-137
lines changed

3 files changed

+120
-137
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
"README.md"
1919
],
2020
"dependencies": {
21+
"@antfu/install-pkg": "^0.3.1",
2122
"@clack/prompts": "^0.6.3",
22-
"kolorist": "^1.8.0",
23-
"pkg-install": "^1.0.0"
23+
"kolorist": "^1.8.0"
2424
},
2525
"devDependencies": {
2626
"@types/node": "^20.2.3",
@@ -30,4 +30,4 @@
3030
"typescript": "^5.0.0"
3131
},
3232
"prettier": "prettier-config-rschristian"
33-
}
33+
}

src/index.js

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { promises as fs, existsSync } from 'node:fs';
33
import { dirname, resolve } from 'node:path';
44
import { fileURLToPath } from 'node:url';
55
import * as prompts from '@clack/prompts';
6-
import { install, projectInstall } from 'pkg-install';
6+
import { installPackage, detectPackageManager } from '@antfu/install-pkg';
77
import * as kl from 'kolorist';
88

99
const s = prompts.spinner();
@@ -16,7 +16,13 @@ const brandColor = /** @type {const} */ ([174, 128, 255]);
1616
//
1717
// Don't love the flag, need to find a better name.
1818
const skipHint = process.argv.slice(2).includes('--skip-hints');
19-
const packageManager = /yarn/.test(process.env.npm_execpath) ? 'yarn' : 'npm';
19+
const packageManager =
20+
(await detectPackageManager()) ??
21+
(/yarn/.test(process.env.npm_execpath)
22+
? 'yarn'
23+
: process.env.PNPM_PACKAGE_NAME
24+
? 'pnpm'
25+
: 'npm');
2026

2127
prompts.intro(
2228
kl.trueColor(...brandColor)(
@@ -88,7 +94,15 @@ const brandColor = /** @type {const} */ ([174, 128, 255]);
8894
if (!skipHint) {
8995
const gettingStarted = `
9096
${kl.dim('$')} ${kl.lightBlue(`cd ${dir}`)}
91-
${kl.dim('$')} ${kl.lightBlue(`${packageManager === 'npm' ? 'npm run' : 'yarn'} dev`)}
97+
${kl.dim('$')} ${kl.lightBlue(
98+
`${
99+
packageManager.includes('yarn')
100+
? 'yarn'
101+
: packageManager.includes('pnpm')
102+
? 'pnpm'
103+
: 'npm run'
104+
} dev`,
105+
)}
92106
`;
93107
prompts.note(gettingStarted.trim().replace(/^\t\t\t/gm, ''), 'Getting Started');
94108
}
@@ -200,26 +214,26 @@ async function templateDir(from, to, useTS) {
200214

201215
/**
202216
* @param {string} to
203-
* @param {'yarn' | 'npm'} packageManager
217+
* @param {import('@antfu/install-pkg').Agent} packageManager
204218
* @param {ConfigOptions} opts
205219
*/
206220
async function installDeps(to, packageManager, opts) {
207-
await projectInstall({ prefer: packageManager, cwd: to });
221+
await installPackage(['preact'], { packageManager, cwd: to });
208222

209223
if (opts.useTS) {
210-
await install(['typescript'], { prefer: packageManager, cwd: to, dev: true });
224+
await installPackage(['typescript'], { packageManager, cwd: to, dev: true });
211225
}
212226

213227
if (opts.useRouter || opts.usePrerender) {
214-
await install(['preact-iso', 'preact-render-to-string'], {
215-
prefer: packageManager,
228+
await installPackage(['preact-iso', 'preact-render-to-string'], {
229+
packageManager,
216230
cwd: to,
217231
});
218232
}
219233

220234
if (opts.useESLint) {
221-
await install(['eslint', 'eslint-config-preact'], {
222-
prefer: packageManager,
235+
await installPackage(['eslint', 'eslint-config-preact'], {
236+
packageManager,
223237
cwd: to,
224238
dev: true,
225239
});

yarn.lock

Lines changed: 93 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
# yarn lockfile v1
33

44

5+
"@antfu/install-pkg@^0.3.1":
6+
version "0.3.1"
7+
resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.3.1.tgz#f63b3c98f92b455cd0929d4503eab276c9680943"
8+
integrity sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==
9+
dependencies:
10+
execa "^8.0.1"
11+
512
"@clack/core@^0.3.2":
613
version "0.3.2"
714
resolved "https://registry.npmjs.org/@clack/core/-/core-0.3.2.tgz"
@@ -19,65 +26,49 @@
1926
picocolors "^1.0.0"
2027
sisteransi "^1.0.5"
2128

22-
"@types/execa@^0.9.0":
23-
version "0.9.0"
24-
resolved "https://registry.npmjs.org/@types/execa/-/execa-0.9.0.tgz"
25-
integrity sha512-mgfd93RhzjYBUHHV532turHC2j4l/qxsF/PbfDmprHDEUHmNZGlDn1CEsulGK3AfsPdhkWzZQT/S/k0UGhLGsA==
26-
dependencies:
27-
"@types/node" "*"
28-
29-
"@types/node@*", "@types/node@^20.2.3":
29+
"@types/node@^20.2.3":
3030
version "20.2.3"
3131
resolved "https://registry.npmjs.org/@types/node/-/node-20.2.3.tgz"
3232
integrity sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==
3333

34-
"@types/node@^11.9.4":
35-
version "11.15.54"
36-
resolved "https://registry.npmjs.org/@types/node/-/node-11.15.54.tgz"
37-
integrity sha512-1RWYiq+5UfozGsU6MwJyFX6BtktcT10XRjvcAQmskCtMcW3tPske88lM/nHv7BQG1w9KBXI1zPGuu5PnNCX14g==
38-
39-
cross-spawn@^6.0.0:
40-
version "6.0.5"
41-
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz"
42-
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
43-
dependencies:
44-
nice-try "^1.0.4"
45-
path-key "^2.0.1"
46-
semver "^5.5.0"
47-
shebang-command "^1.2.0"
48-
which "^1.2.9"
49-
50-
end-of-stream@^1.1.0:
51-
version "1.4.4"
52-
resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"
53-
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
34+
cross-spawn@^7.0.3:
35+
version "7.0.3"
36+
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
37+
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
5438
dependencies:
55-
once "^1.4.0"
56-
57-
execa@^1.0.0:
58-
version "1.0.0"
59-
resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz"
60-
integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
39+
path-key "^3.1.0"
40+
shebang-command "^2.0.0"
41+
which "^2.0.1"
42+
43+
execa@^8.0.1:
44+
version "8.0.1"
45+
resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c"
46+
integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==
6147
dependencies:
62-
cross-spawn "^6.0.0"
63-
get-stream "^4.0.0"
64-
is-stream "^1.1.0"
65-
npm-run-path "^2.0.0"
66-
p-finally "^1.0.0"
67-
signal-exit "^3.0.0"
68-
strip-eof "^1.0.0"
69-
70-
get-stream@^4.0.0:
71-
version "4.1.0"
72-
resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz"
73-
integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
74-
dependencies:
75-
pump "^3.0.0"
76-
77-
is-stream@^1.1.0:
78-
version "1.1.0"
79-
resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
80-
integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
48+
cross-spawn "^7.0.3"
49+
get-stream "^8.0.1"
50+
human-signals "^5.0.0"
51+
is-stream "^3.0.0"
52+
merge-stream "^2.0.0"
53+
npm-run-path "^5.1.0"
54+
onetime "^6.0.0"
55+
signal-exit "^4.1.0"
56+
strip-final-newline "^3.0.0"
57+
58+
get-stream@^8.0.1:
59+
version "8.0.1"
60+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2"
61+
integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==
62+
63+
human-signals@^5.0.0:
64+
version "5.0.0"
65+
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
66+
integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
67+
68+
is-stream@^3.0.0:
69+
version "3.0.0"
70+
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
71+
integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
8172

8273
isexe@^2.0.0:
8374
version "2.0.0"
@@ -89,49 +80,45 @@ kolorist@^1.8.0:
8980
resolved "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz"
9081
integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==
9182

92-
nice-try@^1.0.4:
93-
version "1.0.5"
94-
resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"
95-
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
96-
97-
npm-run-path@^2.0.0:
98-
version "2.0.2"
99-
resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz"
100-
integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
83+
merge-stream@^2.0.0:
84+
version "2.0.0"
85+
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
86+
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
87+
88+
mimic-fn@^4.0.0:
89+
version "4.0.0"
90+
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
91+
integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
92+
93+
npm-run-path@^5.1.0:
94+
version "5.2.0"
95+
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955"
96+
integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==
10197
dependencies:
102-
path-key "^2.0.0"
98+
path-key "^4.0.0"
10399

104-
once@^1.3.1, once@^1.4.0:
105-
version "1.4.0"
106-
resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
107-
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
100+
onetime@^6.0.0:
101+
version "6.0.0"
102+
resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
103+
integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
108104
dependencies:
109-
wrappy "1"
105+
mimic-fn "^4.0.0"
110106

111-
p-finally@^1.0.0:
112-
version "1.0.0"
113-
resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz"
114-
integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
107+
path-key@^3.1.0:
108+
version "3.1.1"
109+
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
110+
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
115111

116-
path-key@^2.0.0, path-key@^2.0.1:
117-
version "2.0.1"
118-
resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"
119-
integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
112+
path-key@^4.0.0:
113+
version "4.0.0"
114+
resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
115+
integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
120116

121117
picocolors@^1.0.0:
122118
version "1.0.0"
123119
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
124120
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
125121

126-
pkg-install@^1.0.0:
127-
version "1.0.0"
128-
resolved "https://registry.npmjs.org/pkg-install/-/pkg-install-1.0.0.tgz"
129-
integrity sha512-UGI8bfhrDb1KN01RZ7Bq08GRQc8rmVjxQ2up0g4mUHPCYDTK1FzQ0PMmLOBCHg3yaIijZ2U3Fn9ofLa4N392Ug==
130-
dependencies:
131-
"@types/execa" "^0.9.0"
132-
"@types/node" "^11.9.4"
133-
execa "^1.0.0"
134-
135122
preact@^10.15.0:
136123
version "10.15.0"
137124
resolved "https://registry.npmjs.org/preact/-/preact-10.15.0.tgz"
@@ -147,59 +134,41 @@ prettier@^2.6.2:
147134
resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz"
148135
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
149136

150-
pump@^3.0.0:
151-
version "3.0.0"
152-
resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"
153-
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
154-
dependencies:
155-
end-of-stream "^1.1.0"
156-
once "^1.3.1"
157-
158-
semver@^5.5.0:
159-
version "5.7.1"
160-
resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
161-
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
162-
163-
shebang-command@^1.2.0:
164-
version "1.2.0"
165-
resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"
166-
integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
137+
shebang-command@^2.0.0:
138+
version "2.0.0"
139+
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
140+
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
167141
dependencies:
168-
shebang-regex "^1.0.0"
142+
shebang-regex "^3.0.0"
169143

170-
shebang-regex@^1.0.0:
171-
version "1.0.0"
172-
resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"
173-
integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
144+
shebang-regex@^3.0.0:
145+
version "3.0.0"
146+
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
147+
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
174148

175-
signal-exit@^3.0.0:
176-
version "3.0.7"
177-
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
178-
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
149+
signal-exit@^4.1.0:
150+
version "4.1.0"
151+
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
152+
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
179153

180154
sisteransi@^1.0.5:
181155
version "1.0.5"
182156
resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz"
183157
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
184158

185-
strip-eof@^1.0.0:
186-
version "1.0.0"
187-
resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz"
188-
integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==
159+
strip-final-newline@^3.0.0:
160+
version "3.0.0"
161+
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
162+
integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
189163

190164
typescript@^5.0.0:
191165
version "5.0.4"
192166
resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz"
193167
integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
194168

195-
which@^1.2.9:
196-
version "1.3.1"
197-
resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
198-
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
169+
which@^2.0.1:
170+
version "2.0.2"
171+
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
172+
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
199173
dependencies:
200174
isexe "^2.0.0"
201-
202-
wrappy@1:
203-
version "1.0.2"
204-
resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
205-
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==

0 commit comments

Comments
 (0)