File: //opt/code/node_modules/patch-package/dist/detectPackageManager.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var fs = require("fs");
var path = require("./path");
var chalk = require("chalk");
var process = require("process");
function detectPackageManager(appRootPath, overridePackageManager) {
var packageLockExists = fs.existsSync(path.join(appRootPath, "package-lock.json"));
var shrinkWrapExists = fs.existsSync(path.join(appRootPath, "npm-shrinkwrap.json"));
var yarnLockExists = fs.existsSync(path.join(appRootPath, "yarn.lock"));
if ((packageLockExists || shrinkWrapExists) && yarnLockExists) {
if (overridePackageManager) {
return overridePackageManager;
}
else {
printSelectingDefaultMessage();
return shrinkWrapExists ? "npm-shrinkwrap" : "npm";
}
}
else if (packageLockExists || shrinkWrapExists) {
if (overridePackageManager === "yarn") {
printNoYarnLockfileError();
process.exit(1);
}
else {
return shrinkWrapExists ? "npm-shrinkwrap" : "npm";
}
}
else if (yarnLockExists) {
return "yarn";
}
else {
printNoLockfilesError();
process.exit(1);
}
throw Error();
}
exports.default = detectPackageManager;
function printNoYarnLockfileError() {
console.error("\n" + chalk.red.bold("**ERROR**") + " " + chalk.red("The --use-yarn option was specified but there is no yarn.lock file") + "\n");
}
function printNoLockfilesError() {
console.error("\n" + chalk.red.bold("**ERROR**") + " " + chalk.red("No package-lock.json, npm-shrinkwrap.json, or yarn.lock file.\n\nYou must use either npm@>=5, yarn, or npm-shrinkwrap to manage this project's\ndependencies.") + "\n");
}
function printSelectingDefaultMessage() {
console.info(chalk.bold("patch-package") + ": you have both yarn.lock and package-lock.json\nDefaulting to using " + chalk.bold("npm") + "\nYou can override this setting by passing --use-yarn or deleting\npackage-lock.json if you don't need it\n");
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0UGFja2FnZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGV0ZWN0UGFja2FnZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1QkFBd0I7QUFDeEIsNkJBQThCO0FBQzlCLDZCQUE4QjtBQUM5QixpQ0FBa0M7QUFJbEMsOEJBQ0UsV0FBbUIsRUFDbkIsc0JBQTZDO0lBRTdDLElBQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsQ0FDNUMsQ0FBQTtJQUNELElBQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsQ0FDOUMsQ0FBQTtJQUNELElBQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQTtJQUN6RSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixJQUFJLGdCQUFnQixDQUFDLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQztRQUM5RCxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7WUFDM0IsTUFBTSxDQUFDLHNCQUFzQixDQUFBO1FBQy9CLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLDRCQUE0QixFQUFFLENBQUE7WUFDOUIsTUFBTSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtRQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDakQsRUFBRSxDQUFDLENBQUMsc0JBQXNCLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN0Qyx3QkFBd0IsRUFBRSxDQUFBO1lBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sTUFBTSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtRQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUE7SUFDZixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixxQkFBcUIsRUFBRSxDQUFBO1FBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUNELE1BQU0sS0FBSyxFQUFFLENBQUE7QUFDZixDQUFDO0FBaENELHVDQWdDQztBQUVEO0lBQ0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUNkLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFJLEtBQUssQ0FBQyxHQUFHLENBQ3RDLG9FQUFvRSxDQUNyRSxPQUNGLENBQUMsQ0FBQTtBQUNGLENBQUM7QUFFRDtJQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FDZCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBSSxLQUFLLENBQUMsR0FBRyxDQUN0QywrSkFHVSxDQUNYLE9BQ0YsQ0FBQyxDQUFBO0FBQ0YsQ0FBQztBQUVEO0lBQ0UsT0FBTyxDQUFDLElBQUksQ0FDUCxLQUFLLENBQUMsSUFBSSxDQUNYLGVBQWUsQ0FDaEIsNkVBQ2lCLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdIQUd0QyxDQUNFLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcIi4vcGF0aFwiXG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tIFwiY2hhbGtcIlxuaW1wb3J0ICogYXMgcHJvY2VzcyBmcm9tIFwicHJvY2Vzc1wiXG5cbmV4cG9ydCB0eXBlIFBhY2thZ2VNYW5hZ2VyID0gXCJ5YXJuXCIgfCBcIm5wbVwiIHwgXCJucG0tc2hyaW5rd3JhcFwiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRldGVjdFBhY2thZ2VNYW5hZ2VyKFxuICBhcHBSb290UGF0aDogc3RyaW5nLFxuICBvdmVycmlkZVBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlciB8IG51bGwsXG4pOiBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHBhY2thZ2VMb2NrRXhpc3RzID0gZnMuZXhpc3RzU3luYyhcbiAgICBwYXRoLmpvaW4oYXBwUm9vdFBhdGgsIFwicGFja2FnZS1sb2NrLmpzb25cIiksXG4gIClcbiAgY29uc3Qgc2hyaW5rV3JhcEV4aXN0cyA9IGZzLmV4aXN0c1N5bmMoXG4gICAgcGF0aC5qb2luKGFwcFJvb3RQYXRoLCBcIm5wbS1zaHJpbmt3cmFwLmpzb25cIiksXG4gIClcbiAgY29uc3QgeWFybkxvY2tFeGlzdHMgPSBmcy5leGlzdHNTeW5jKHBhdGguam9pbihhcHBSb290UGF0aCwgXCJ5YXJuLmxvY2tcIikpXG4gIGlmICgocGFja2FnZUxvY2tFeGlzdHMgfHwgc2hyaW5rV3JhcEV4aXN0cykgJiYgeWFybkxvY2tFeGlzdHMpIHtcbiAgICBpZiAob3ZlcnJpZGVQYWNrYWdlTWFuYWdlcikge1xuICAgICAgcmV0dXJuIG92ZXJyaWRlUGFja2FnZU1hbmFnZXJcbiAgICB9IGVsc2Uge1xuICAgICAgcHJpbnRTZWxlY3RpbmdEZWZhdWx0TWVzc2FnZSgpXG4gICAgICByZXR1cm4gc2hyaW5rV3JhcEV4aXN0cyA/IFwibnBtLXNocmlua3dyYXBcIiA6IFwibnBtXCJcbiAgICB9XG4gIH0gZWxzZSBpZiAocGFja2FnZUxvY2tFeGlzdHMgfHwgc2hyaW5rV3JhcEV4aXN0cykge1xuICAgIGlmIChvdmVycmlkZVBhY2thZ2VNYW5hZ2VyID09PSBcInlhcm5cIikge1xuICAgICAgcHJpbnROb1lhcm5Mb2NrZmlsZUVycm9yKClcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc2hyaW5rV3JhcEV4aXN0cyA/IFwibnBtLXNocmlua3dyYXBcIiA6IFwibnBtXCJcbiAgICB9XG4gIH0gZWxzZSBpZiAoeWFybkxvY2tFeGlzdHMpIHtcbiAgICByZXR1cm4gXCJ5YXJuXCJcbiAgfSBlbHNlIHtcbiAgICBwcmludE5vTG9ja2ZpbGVzRXJyb3IoKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG4gIHRocm93IEVycm9yKClcbn1cblxuZnVuY3Rpb24gcHJpbnROb1lhcm5Mb2NrZmlsZUVycm9yKCkge1xuICBjb25zb2xlLmVycm9yKGBcbiR7Y2hhbGsucmVkLmJvbGQoXCIqKkVSUk9SKipcIil9ICR7Y2hhbGsucmVkKFxuICAgIGBUaGUgLS11c2UteWFybiBvcHRpb24gd2FzIHNwZWNpZmllZCBidXQgdGhlcmUgaXMgbm8geWFybi5sb2NrIGZpbGVgLFxuICApfVxuYClcbn1cblxuZnVuY3Rpb24gcHJpbnROb0xvY2tmaWxlc0Vycm9yKCkge1xuICBjb25zb2xlLmVycm9yKGBcbiR7Y2hhbGsucmVkLmJvbGQoXCIqKkVSUk9SKipcIil9ICR7Y2hhbGsucmVkKFxuICAgIGBObyBwYWNrYWdlLWxvY2suanNvbiwgbnBtLXNocmlua3dyYXAuanNvbiwgb3IgeWFybi5sb2NrIGZpbGUuXG5cbllvdSBtdXN0IHVzZSBlaXRoZXIgbnBtQD49NSwgeWFybiwgb3IgbnBtLXNocmlua3dyYXAgdG8gbWFuYWdlIHRoaXMgcHJvamVjdCdzXG5kZXBlbmRlbmNpZXMuYCxcbiAgKX1cbmApXG59XG5cbmZ1bmN0aW9uIHByaW50U2VsZWN0aW5nRGVmYXVsdE1lc3NhZ2UoKSB7XG4gIGNvbnNvbGUuaW5mbyhcbiAgICBgJHtjaGFsay5ib2xkKFxuICAgICAgXCJwYXRjaC1wYWNrYWdlXCIsXG4gICAgKX06IHlvdSBoYXZlIGJvdGggeWFybi5sb2NrIGFuZCBwYWNrYWdlLWxvY2suanNvblxuRGVmYXVsdGluZyB0byB1c2luZyAke2NoYWxrLmJvbGQoXCJucG1cIil9XG5Zb3UgY2FuIG92ZXJyaWRlIHRoaXMgc2V0dGluZyBieSBwYXNzaW5nIC0tdXNlLXlhcm4gb3IgZGVsZXRpbmdcbnBhY2thZ2UtbG9jay5qc29uIGlmIHlvdSBkb24ndCBuZWVkIGl0XG5gLFxuICApXG59XG4iXX0=