vercel 28.4.17 → 28.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +259 -150
  2. package/package.json +5 -6
package/dist/index.js CHANGED
@@ -205215,138 +205215,6 @@ exports.fromPromise = function (fn) {
205215
205215
  }
205216
205216
 
205217
205217
 
205218
- /***/ }),
205219
-
205220
- /***/ 36732:
205221
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
205222
-
205223
- const isWindows = process.platform === 'win32' ||
205224
- process.env.OSTYPE === 'cygwin' ||
205225
- process.env.OSTYPE === 'msys'
205226
-
205227
- const path = __webpack_require__(85622)
205228
- const COLON = isWindows ? ';' : ':'
205229
- const isexe = __webpack_require__(80228)
205230
-
205231
- const getNotFoundError = (cmd) =>
205232
- Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })
205233
-
205234
- const getPathInfo = (cmd, opt) => {
205235
- const colon = opt.colon || COLON
205236
-
205237
- // If it has a slash, then we don't bother searching the pathenv.
205238
- // just check the file itself, and that's it.
205239
- const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? ['']
205240
- : (
205241
- [
205242
- // windows always checks the cwd first
205243
- ...(isWindows ? [process.cwd()] : []),
205244
- ...(opt.path || process.env.PATH ||
205245
- /* istanbul ignore next: very unusual */ '').split(colon),
205246
- ]
205247
- )
205248
- const pathExtExe = isWindows
205249
- ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'
205250
- : ''
205251
- const pathExt = isWindows ? pathExtExe.split(colon) : ['']
205252
-
205253
- if (isWindows) {
205254
- if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
205255
- pathExt.unshift('')
205256
- }
205257
-
205258
- return {
205259
- pathEnv,
205260
- pathExt,
205261
- pathExtExe,
205262
- }
205263
- }
205264
-
205265
- const which = (cmd, opt, cb) => {
205266
- if (typeof opt === 'function') {
205267
- cb = opt
205268
- opt = {}
205269
- }
205270
- if (!opt)
205271
- opt = {}
205272
-
205273
- const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
205274
- const found = []
205275
-
205276
- const step = i => new Promise((resolve, reject) => {
205277
- if (i === pathEnv.length)
205278
- return opt.all && found.length ? resolve(found)
205279
- : reject(getNotFoundError(cmd))
205280
-
205281
- const ppRaw = pathEnv[i]
205282
- const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
205283
-
205284
- const pCmd = path.join(pathPart, cmd)
205285
- const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
205286
- : pCmd
205287
-
205288
- resolve(subStep(p, i, 0))
205289
- })
205290
-
205291
- const subStep = (p, i, ii) => new Promise((resolve, reject) => {
205292
- if (ii === pathExt.length)
205293
- return resolve(step(i + 1))
205294
- const ext = pathExt[ii]
205295
- isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {
205296
- if (!er && is) {
205297
- if (opt.all)
205298
- found.push(p + ext)
205299
- else
205300
- return resolve(p + ext)
205301
- }
205302
- return resolve(subStep(p, i, ii + 1))
205303
- })
205304
- })
205305
-
205306
- return cb ? step(0).then(res => cb(null, res), cb) : step(0)
205307
- }
205308
-
205309
- const whichSync = (cmd, opt) => {
205310
- opt = opt || {}
205311
-
205312
- const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
205313
- const found = []
205314
-
205315
- for (let i = 0; i < pathEnv.length; i ++) {
205316
- const ppRaw = pathEnv[i]
205317
- const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
205318
-
205319
- const pCmd = path.join(pathPart, cmd)
205320
- const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
205321
- : pCmd
205322
-
205323
- for (let j = 0; j < pathExt.length; j ++) {
205324
- const cur = p + pathExt[j]
205325
- try {
205326
- const is = isexe.sync(cur, { pathExt: pathExtExe })
205327
- if (is) {
205328
- if (opt.all)
205329
- found.push(cur)
205330
- else
205331
- return cur
205332
- }
205333
- } catch (ex) {}
205334
- }
205335
- }
205336
-
205337
- if (opt.all && found.length)
205338
- return found
205339
-
205340
- if (opt.nothrow)
205341
- return null
205342
-
205343
- throw getNotFoundError(cmd)
205344
- }
205345
-
205346
- module.exports = which
205347
- which.sync = whichSync
205348
-
205349
-
205350
205218
  /***/ }),
205351
205219
 
205352
205220
  /***/ 87556:
@@ -220138,6 +220006,78 @@ exports.DetectorFilesystem = DetectorFilesystem;
220138
220006
 
220139
220007
  /***/ }),
220140
220008
 
220009
+ /***/ 24885:
220010
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
220011
+
220012
+ "use strict";
220013
+
220014
+ var __importDefault = (this && this.__importDefault) || function (mod) {
220015
+ return (mod && mod.__esModule) ? mod : { "default": mod };
220016
+ };
220017
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
220018
+ exports.LocalFileSystemDetector = void 0;
220019
+ const promises_1 = __importDefault(__webpack_require__(69225));
220020
+ const path_1 = __importDefault(__webpack_require__(85622));
220021
+ const filesystem_1 = __webpack_require__(56114);
220022
+ const error_utils_1 = __webpack_require__(35772);
220023
+ class LocalFileSystemDetector extends filesystem_1.DetectorFilesystem {
220024
+ constructor(rootPath) {
220025
+ super();
220026
+ this.rootPath = rootPath;
220027
+ }
220028
+ async _hasPath(name) {
220029
+ try {
220030
+ await promises_1.default.stat(this.getFilePath(name));
220031
+ return true;
220032
+ }
220033
+ catch (err) {
220034
+ if (error_utils_1.isErrnoException(err) && err.code === 'ENOENT') {
220035
+ return false;
220036
+ }
220037
+ throw err;
220038
+ }
220039
+ }
220040
+ _readFile(name) {
220041
+ return promises_1.default.readFile(this.getFilePath(name));
220042
+ }
220043
+ async _isFile(name) {
220044
+ const stat = await promises_1.default.stat(this.getFilePath(name));
220045
+ return stat.isFile();
220046
+ }
220047
+ async _readdir(name) {
220048
+ const dirPath = this.getFilePath(name);
220049
+ const dir = await promises_1.default.readdir(dirPath, {
220050
+ withFileTypes: true,
220051
+ });
220052
+ const getType = (dirent) => {
220053
+ if (dirent.isFile()) {
220054
+ return 'file';
220055
+ }
220056
+ else if (dirent.isDirectory()) {
220057
+ return 'dir';
220058
+ }
220059
+ else {
220060
+ throw new Error(`Dirent was neither file nor directory`);
220061
+ }
220062
+ };
220063
+ return dir.map(dirent => ({
220064
+ name: dirent.name,
220065
+ path: path_1.default.join(dirPath, dirent.name),
220066
+ type: getType(dirent),
220067
+ }));
220068
+ }
220069
+ _chdir(name) {
220070
+ return new LocalFileSystemDetector(this.getFilePath(name));
220071
+ }
220072
+ getFilePath(name) {
220073
+ return path_1.default.join(this.rootPath, name);
220074
+ }
220075
+ }
220076
+ exports.LocalFileSystemDetector = LocalFileSystemDetector;
220077
+ //# sourceMappingURL=local-file-system-detector.js.map
220078
+
220079
+ /***/ }),
220080
+
220141
220081
  /***/ 47968:
220142
220082
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
220143
220083
 
@@ -220191,7 +220131,7 @@ exports.getProjectPaths = getProjectPaths;
220191
220131
  "use strict";
220192
220132
 
220193
220133
  Object.defineProperty(exports, "__esModule", ({ value: true }));
220194
- exports.isStaticRuntime = exports.isOfficialRuntime = exports.monorepoManagers = exports.getWorkspacePackagePaths = exports.getWorkspaces = exports.workspaceManagers = exports.DetectorFilesystem = exports.getProjectPaths = exports.detectFramework = exports.detectFileSystemAPI = exports.detectApiExtensions = exports.detectApiDirectory = exports.detectOutputDirectory = exports.detectBuilders = void 0;
220134
+ exports.packageManagers = exports.isStaticRuntime = exports.isOfficialRuntime = exports.monorepoManagers = exports.getWorkspacePackagePaths = exports.getWorkspaces = exports.workspaceManagers = exports.LocalFileSystemDetector = exports.DetectorFilesystem = exports.getProjectPaths = exports.detectFramework = exports.detectFileSystemAPI = exports.detectApiExtensions = exports.detectApiDirectory = exports.detectOutputDirectory = exports.detectBuilders = void 0;
220195
220135
  var detect_builders_1 = __webpack_require__(48163);
220196
220136
  Object.defineProperty(exports, "detectBuilders", ({ enumerable: true, get: function () { return detect_builders_1.detectBuilders; } }));
220197
220137
  Object.defineProperty(exports, "detectOutputDirectory", ({ enumerable: true, get: function () { return detect_builders_1.detectOutputDirectory; } }));
@@ -220205,6 +220145,8 @@ var get_project_paths_1 = __webpack_require__(47968);
220205
220145
  Object.defineProperty(exports, "getProjectPaths", ({ enumerable: true, get: function () { return get_project_paths_1.getProjectPaths; } }));
220206
220146
  var filesystem_1 = __webpack_require__(56114);
220207
220147
  Object.defineProperty(exports, "DetectorFilesystem", ({ enumerable: true, get: function () { return filesystem_1.DetectorFilesystem; } }));
220148
+ var local_file_system_detector_1 = __webpack_require__(24885);
220149
+ Object.defineProperty(exports, "LocalFileSystemDetector", ({ enumerable: true, get: function () { return local_file_system_detector_1.LocalFileSystemDetector; } }));
220208
220150
  var workspace_managers_1 = __webpack_require__(20503);
220209
220151
  Object.defineProperty(exports, "workspaceManagers", ({ enumerable: true, get: function () { return workspace_managers_1.workspaceManagers; } }));
220210
220152
  var get_workspaces_1 = __webpack_require__(54899);
@@ -220216,6 +220158,8 @@ Object.defineProperty(exports, "monorepoManagers", ({ enumerable: true, get: fun
220216
220158
  var is_official_runtime_1 = __webpack_require__(78800);
220217
220159
  Object.defineProperty(exports, "isOfficialRuntime", ({ enumerable: true, get: function () { return is_official_runtime_1.isOfficialRuntime; } }));
220218
220160
  Object.defineProperty(exports, "isStaticRuntime", ({ enumerable: true, get: function () { return is_official_runtime_1.isStaticRuntime; } }));
220161
+ var package_managers_1 = __webpack_require__(3334);
220162
+ Object.defineProperty(exports, "packageManagers", ({ enumerable: true, get: function () { return package_managers_1.packageManagers; } }));
220219
220163
  //# sourceMappingURL=index.js.map
220220
220164
 
220221
220165
  /***/ }),
@@ -220364,6 +220308,73 @@ exports.default = exports.monorepoManagers;
220364
220308
 
220365
220309
  /***/ }),
220366
220310
 
220311
+ /***/ 3334:
220312
+ /***/ ((__unused_webpack_module, exports) => {
220313
+
220314
+ "use strict";
220315
+
220316
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
220317
+ exports.packageManagers = void 0;
220318
+ exports.packageManagers = [
220319
+ {
220320
+ name: 'npm',
220321
+ slug: 'npm',
220322
+ logo: '',
220323
+ darkModeLogo: '',
220324
+ detectors: {
220325
+ some: [
220326
+ {
220327
+ path: 'package-lock.json',
220328
+ },
220329
+ {
220330
+ path: 'package.json',
220331
+ matchContent: '"packageManager":\\s*"npm@.*"',
220332
+ },
220333
+ ],
220334
+ },
220335
+ },
220336
+ {
220337
+ name: 'pnpm',
220338
+ slug: 'pnpm',
220339
+ logo: '',
220340
+ darkModeLogo: '',
220341
+ detectors: {
220342
+ some: [
220343
+ {
220344
+ path: 'pnpm-lock.yaml',
220345
+ },
220346
+ {
220347
+ path: 'package.json',
220348
+ matchContent: '"packageManager":\\s*"pnpm@.*"',
220349
+ },
220350
+ ],
220351
+ },
220352
+ },
220353
+ {
220354
+ name: 'yarn',
220355
+ slug: 'yarn',
220356
+ logo: '',
220357
+ darkModeLogo: '',
220358
+ detectors: {
220359
+ some: [
220360
+ {
220361
+ path: 'yarn.lock',
220362
+ },
220363
+ {
220364
+ path: 'package.json',
220365
+ matchContent: '"packageManager":\\s*"yarn@.*"',
220366
+ },
220367
+ {
220368
+ path: 'package.json',
220369
+ },
220370
+ ],
220371
+ },
220372
+ },
220373
+ ];
220374
+ //# sourceMappingURL=package-managers.js.map
220375
+
220376
+ /***/ }),
220377
+
220367
220378
  /***/ 53355:
220368
220379
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
220369
220380
 
@@ -232232,6 +232243,7 @@ const corepack_1 = __webpack_require__(51806);
232232
232243
  const sort_builders_1 = __webpack_require__(40233);
232233
232244
  const error_1 = __webpack_require__(54094);
232234
232245
  const validate_config_1 = __webpack_require__(14864);
232246
+ const monorepo_1 = __webpack_require__(46570);
232235
232247
  const help = () => {
232236
232248
  return console.log(`
232237
232249
  ${chalk_1.default.bold(`${cli.logo} ${cli.name} build`)}
@@ -232249,7 +232261,7 @@ const help = () => {
232249
232261
 
232250
232262
  ${chalk_1.default.dim('Examples:')}
232251
232263
 
232252
- ${chalk_1.default.gray('')} Build the project
232264
+ ${chalk_1.default.gray('-')} Build the project
232253
232265
 
232254
232266
  ${chalk_1.default.cyan(`$ ${cli.name} build`)}
232255
232267
  ${chalk_1.default.cyan(`$ ${cli.name} build --cwd ./path-to-project`)}
@@ -232408,6 +232420,7 @@ async function doBuild(client, project, buildsJson, cwd, outputDir) {
232408
232420
  ...project.settings,
232409
232421
  ...(0, project_settings_1.pickOverrides)(localConfig),
232410
232422
  };
232423
+ await (0, monorepo_1.setMonorepoDefaultSettings)(cwd, workPath, projectSettings, output);
232411
232424
  // Get a list of source files
232412
232425
  const files = (await (0, get_files_1.staticFiles)(workPath, client)).map(f => (0, build_utils_1.normalizePath)((0, path_1.relative)(workPath, f)));
232413
232426
  const routesResult = (0, routing_utils_1.getTransformedRoutes)(localConfig);
@@ -240472,6 +240485,106 @@ async function installBuilders(buildersDir, buildersToAdd, output) {
240472
240485
  }
240473
240486
 
240474
240487
 
240488
+ /***/ }),
240489
+
240490
+ /***/ 46570:
240491
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
240492
+
240493
+ "use strict";
240494
+
240495
+ var __importDefault = (this && this.__importDefault) || function (mod) {
240496
+ return (mod && mod.__esModule) ? mod : { "default": mod };
240497
+ };
240498
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
240499
+ exports.setMonorepoDefaultSettings = void 0;
240500
+ const fs_extra_1 = __importDefault(__webpack_require__(45392));
240501
+ const path_1 = __webpack_require__(85622);
240502
+ const fs_detectors_1 = __webpack_require__(20302);
240503
+ const title_1 = __importDefault(__webpack_require__(45676));
240504
+ async function setMonorepoDefaultSettings(cwd, workPath, projectSettings, output) {
240505
+ const localFileSystem = new fs_detectors_1.LocalFileSystemDetector(cwd);
240506
+ const [monorepoManager, packageManager] = await Promise.all([
240507
+ (0, fs_detectors_1.detectFramework)({
240508
+ fs: localFileSystem,
240509
+ frameworkList: fs_detectors_1.monorepoManagers,
240510
+ }),
240511
+ (0, fs_detectors_1.detectFramework)({
240512
+ fs: localFileSystem,
240513
+ frameworkList: fs_detectors_1.packageManagers,
240514
+ }),
240515
+ ]);
240516
+ const projectName = (0, path_1.basename)(workPath);
240517
+ const relativeToRoot = (0, path_1.relative)(workPath, cwd);
240518
+ const setCommand = (command, value) => {
240519
+ if (projectSettings[command]) {
240520
+ output.warn(`Cannot automatically assign ${command} as it is already set via project settings or configuarion overrides.`);
240521
+ }
240522
+ else {
240523
+ projectSettings[command] = value;
240524
+ }
240525
+ };
240526
+ if (monorepoManager) {
240527
+ output.log(`Automatically detected ${(0, title_1.default)(monorepoManager)} monorepo manager. Attempting to assign default \`buildCommand\` and \`installCommand\` settings.`);
240528
+ }
240529
+ if (monorepoManager === 'turbo') {
240530
+ // No ENOENT handling required here since conditional wouldn't be `true` unless `turbo.json` was found.
240531
+ const turboJSON = JSON.parse(fs_extra_1.default.readFileSync((0, path_1.join)(cwd, 'turbo.json'), 'utf-8'));
240532
+ if (!turboJSON?.pipeline?.build) {
240533
+ output.warn('Missing required `build` pipeline in turbo.json. Skipping automatic setting assignment.');
240534
+ return;
240535
+ }
240536
+ setCommand('buildCommand', `cd ${relativeToRoot} && npx turbo run build --filter=${projectName}...`);
240537
+ setCommand('installCommand', `cd ${relativeToRoot} && ${packageManager} install`);
240538
+ }
240539
+ else if (monorepoManager === 'nx') {
240540
+ // No ENOENT handling required here since conditional wouldn't be `true` unless `nx.json` was found.
240541
+ const nxJSON = JSON.parse(fs_extra_1.default.readFileSync((0, path_1.join)(cwd, 'nx.json'), 'utf-8'));
240542
+ if (!nxJSON?.targetDefaults?.build) {
240543
+ output.log('Missing default `build` target in nx.json. Checking for project level Nx configuration...');
240544
+ const [projectJSONBuf, packageJsonBuf] = await Promise.all([
240545
+ fs_extra_1.default.readFile((0, path_1.join)(workPath, 'project.json')).catch(() => null),
240546
+ fs_extra_1.default.readFile((0, path_1.join)(workPath, 'package.json')).catch(() => null),
240547
+ ]);
240548
+ let hasBuildTarget = false;
240549
+ if (projectJSONBuf) {
240550
+ output.log('Found project.json Nx configuration.');
240551
+ const projectJSON = JSON.parse(projectJSONBuf.toString('utf-8'));
240552
+ if (projectJSON?.targets?.build) {
240553
+ hasBuildTarget = true;
240554
+ }
240555
+ }
240556
+ if (packageJsonBuf) {
240557
+ const packageJSON = JSON.parse(packageJsonBuf.toString('utf-8'));
240558
+ if (packageJSON?.nx) {
240559
+ output.log('Found package.json Nx configuration.');
240560
+ if (packageJSON.nx.targets?.build) {
240561
+ hasBuildTarget = true;
240562
+ }
240563
+ }
240564
+ }
240565
+ if (!hasBuildTarget) {
240566
+ output.warn('Missing required `build` target in either project.json or package.json Nx configuration. Skipping automatic setting assignment.');
240567
+ return;
240568
+ }
240569
+ }
240570
+ setCommand('buildCommand', `cd ${relativeToRoot} && npx nx build ${projectName}`);
240571
+ setCommand('installCommand', `cd ${relativeToRoot} && ${packageManager} install`);
240572
+ }
240573
+ // TODO (@Ethan-Arrowood) - Revisit rush support when we can test it better
240574
+ /* else if (monorepoManager === 'rush') {
240575
+ setCommand(
240576
+ 'buildCommand',
240577
+ `node ${relativeToRoot}/common/scripts/install-run-rush.js build --to ${projectName}`
240578
+ );
240579
+ setCommand(
240580
+ 'installCommand',
240581
+ `node ${relativeToRoot}/common/scripts/install-run-rush.js install`
240582
+ );
240583
+ } */
240584
+ }
240585
+ exports.setMonorepoDefaultSettings = setMonorepoDefaultSettings;
240586
+
240587
+
240475
240588
  /***/ }),
240476
240589
 
240477
240590
  /***/ 40233:
@@ -243784,7 +243897,6 @@ const directory_1 = __importDefault(__webpack_require__(52662));
243784
243897
  const get_port_1 = __importDefault(__webpack_require__(99142));
243785
243898
  const is_port_reachable_1 = __importDefault(__webpack_require__(74133));
243786
243899
  const fast_deep_equal_1 = __importDefault(__webpack_require__(27689));
243787
- const which_1 = __importDefault(__webpack_require__(36732));
243788
243900
  const npm_package_arg_1 = __importDefault(__webpack_require__(79726));
243789
243901
  const client_1 = __webpack_require__(20192);
243790
243902
  const routing_utils_1 = __webpack_require__(72948);
@@ -245362,6 +245474,9 @@ class DevServer {
245362
245474
  }, process.env, this.envConfigs.allEnv, {
245363
245475
  PORT: `${port}`,
245364
245476
  });
245477
+ // add the node_modules/.bin directory to the PATH
245478
+ const nodeBinPath = await (0, build_utils_1.getNodeBinPath)({ cwd });
245479
+ env.PATH = `${nodeBinPath}${path_1.default.delimiter}${env.PATH}`;
245365
245480
  // This is necesary so that the dev command in the Project
245366
245481
  // will work cross-platform (especially Windows).
245367
245482
  let command = devCommand
@@ -245372,20 +245487,6 @@ class DevServer {
245372
245487
  command,
245373
245488
  port,
245374
245489
  })}`);
245375
- const isNpxAvailable = await (0, which_1.default)('npx')
245376
- .then(() => true)
245377
- .catch(() => false);
245378
- if (isNpxAvailable) {
245379
- command = `npx --no-install ${command}`;
245380
- }
245381
- else {
245382
- const isYarnAvailable = await (0, which_1.default)('yarn')
245383
- .then(() => true)
245384
- .catch(() => false);
245385
- if (isYarnAvailable) {
245386
- command = `yarn run --silent ${command}`;
245387
- }
245388
- }
245389
245490
  this.output.debug(`Spawning dev command: ${command}`);
245390
245491
  const proxyPort = new RegExp(port.toString(), 'g');
245391
245492
  const p = (0, build_utils_1.spawnCommand)(command, {
@@ -254352,7 +254453,7 @@ module.exports = JSON.parse("{\"application/1d-interleaved-parityfec\":{\"source
254352
254453
  /***/ ((module) => {
254353
254454
 
254354
254455
  "use strict";
254355
- module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.4.17\",\"preferGlobal\":true,\"license\":\"Apache-2.0\",\"description\":\"The command-line interface for Vercel\",\"homepage\":\"https://vercel.com\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/cli\"},\"scripts\":{\"preinstall\":\"node ./scripts/preinstall.js\",\"test\":\"jest --env node --verbose --runInBand --bail --forceExit\",\"test-unit\":\"yarn test test/unit/\",\"test-integration-cli\":\"rimraf test/fixtures/integration && ava test/integration.js --serial --fail-fast --verbose\",\"test-integration-dev\":\"yarn test test/dev/\",\"coverage\":\"codecov\",\"build\":\"ts-node ./scripts/build.ts\",\"dev\":\"ts-node ./src/index.ts\"},\"bin\":{\"vc\":\"./dist/index.js\",\"vercel\":\"./dist/index.js\"},\"files\":[\"dist\",\"scripts/preinstall.js\"],\"ava\":{\"extensions\":[\"ts\"],\"require\":[\"ts-node/register/transpile-only\",\"esm\"]},\"engines\":{\"node\":\">= 14\"},\"dependencies\":{\"@vercel/build-utils\":\"5.5.7\",\"@vercel/go\":\"2.2.15\",\"@vercel/hydrogen\":\"0.0.29\",\"@vercel/next\":\"3.2.11\",\"@vercel/node\":\"2.6.2\",\"@vercel/python\":\"3.1.24\",\"@vercel/redwood\":\"1.0.35\",\"@vercel/remix\":\"1.0.35\",\"@vercel/ruby\":\"1.3.41\",\"@vercel/static-build\":\"1.0.36\",\"update-notifier\":\"5.1.0\"},\"devDependencies\":{\"@alex_neo/jest-expect-message\":\"1.0.5\",\"@next/env\":\"11.1.2\",\"@sentry/node\":\"5.5.0\",\"@sindresorhus/slugify\":\"0.11.0\",\"@swc/core\":\"1.2.218\",\"@tootallnate/once\":\"1.1.2\",\"@types/ansi-escapes\":\"3.0.0\",\"@types/ansi-regex\":\"4.0.0\",\"@types/async-retry\":\"1.2.1\",\"@types/bytes\":\"3.0.0\",\"@types/chance\":\"1.1.3\",\"@types/debug\":\"0.0.31\",\"@types/dotenv\":\"6.1.1\",\"@types/escape-html\":\"0.0.20\",\"@types/express\":\"4.17.13\",\"@types/fs-extra\":\"9.0.13\",\"@types/glob\":\"7.1.1\",\"@types/http-proxy\":\"1.16.2\",\"@types/ini\":\"1.3.31\",\"@types/inquirer\":\"7.3.1\",\"@types/jest\":\"27.4.1\",\"@types/jest-expect-message\":\"1.0.3\",\"@types/load-json-file\":\"2.0.7\",\"@types/mime-types\":\"2.1.0\",\"@types/minimatch\":\"3.0.3\",\"@types/mri\":\"1.1.0\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"14.18.33\",\"@types/node-fetch\":\"2.5.10\",\"@types/npm-package-arg\":\"6.1.0\",\"@types/pluralize\":\"0.0.29\",\"@types/psl\":\"1.1.0\",\"@types/semver\":\"6.0.1\",\"@types/tar-fs\":\"1.16.1\",\"@types/text-table\":\"0.2.0\",\"@types/title\":\"3.4.1\",\"@types/universal-analytics\":\"0.4.2\",\"@types/update-notifier\":\"5.1.0\",\"@types/which\":\"1.3.2\",\"@types/write-json-file\":\"2.2.1\",\"@types/yauzl-promise\":\"2.1.0\",\"@vercel/client\":\"12.2.17\",\"@vercel/error-utils\":\"1.0.3\",\"@vercel/frameworks\":\"1.1.12\",\"@vercel/fs-detectors\":\"3.4.9\",\"@vercel/fun\":\"1.0.4\",\"@vercel/ncc\":\"0.24.0\",\"@zeit/source-map-support\":\"0.6.2\",\"ajv\":\"6.12.2\",\"alpha-sort\":\"2.0.1\",\"ansi-escapes\":\"3.0.0\",\"ansi-regex\":\"3.0.0\",\"arg\":\"5.0.0\",\"async-listen\":\"1.2.0\",\"async-retry\":\"1.1.3\",\"async-sema\":\"2.1.4\",\"ava\":\"2.2.0\",\"boxen\":\"4.2.0\",\"bytes\":\"3.0.0\",\"chalk\":\"4.1.0\",\"chance\":\"1.1.7\",\"chokidar\":\"3.3.1\",\"codecov\":\"3.8.2\",\"cpy\":\"7.2.0\",\"date-fns\":\"1.29.0\",\"debug\":\"3.1.0\",\"dot\":\"1.1.3\",\"dotenv\":\"4.0.0\",\"email-prompt\":\"0.3.2\",\"email-validator\":\"1.1.1\",\"epipebomb\":\"1.0.0\",\"escape-html\":\"1.0.3\",\"esm\":\"3.1.4\",\"execa\":\"3.2.0\",\"express\":\"4.17.1\",\"fast-deep-equal\":\"3.1.3\",\"fs-extra\":\"10.0.0\",\"get-port\":\"5.1.1\",\"git-last-commit\":\"1.0.1\",\"glob\":\"7.1.2\",\"http-proxy\":\"1.18.1\",\"ini\":\"3.0.0\",\"inquirer\":\"7.0.4\",\"is-docker\":\"2.2.1\",\"is-port-reachable\":\"3.1.0\",\"is-url\":\"1.2.2\",\"jaro-winkler\":\"0.2.8\",\"jsonlines\":\"0.1.1\",\"load-json-file\":\"3.0.0\",\"mime-types\":\"2.1.24\",\"minimatch\":\"3.0.4\",\"mri\":\"1.1.5\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.7\",\"npm-package-arg\":\"6.1.0\",\"open\":\"8.4.0\",\"ora\":\"3.4.0\",\"pcre-to-regexp\":\"1.0.0\",\"pluralize\":\"7.0.0\",\"promisepipe\":\"3.0.0\",\"psl\":\"1.1.31\",\"qr-image\":\"3.2.0\",\"raw-body\":\"2.4.1\",\"rimraf\":\"3.0.2\",\"semver\":\"5.5.0\",\"serve-handler\":\"6.1.1\",\"strip-ansi\":\"5.2.0\",\"stripe\":\"5.1.0\",\"tar-fs\":\"1.16.3\",\"test-listen\":\"1.1.0\",\"text-table\":\"0.2.0\",\"title\":\"3.4.1\",\"tmp-promise\":\"1.0.3\",\"tree-kill\":\"1.2.2\",\"ts-node\":\"10.9.1\",\"typescript\":\"4.7.4\",\"universal-analytics\":\"0.4.20\",\"utility-types\":\"2.1.0\",\"which\":\"2.0.2\",\"write-json-file\":\"2.2.0\",\"xdg-app-paths\":\"5.1.0\",\"yauzl-promise\":\"2.1.3\"},\"jest\":{\"preset\":\"ts-jest\",\"globals\":{\"ts-jest\":{\"diagnostics\":false,\"isolatedModules\":true}},\"setupFilesAfterEnv\":[\"@alex_neo/jest-expect-message\"],\"verbose\":false,\"testEnvironment\":\"node\",\"testMatch\":[\"<rootDir>/test/**/*.test.ts\"]}}");
254456
+ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.5.1\",\"preferGlobal\":true,\"license\":\"Apache-2.0\",\"description\":\"The command-line interface for Vercel\",\"homepage\":\"https://vercel.com\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/cli\"},\"scripts\":{\"preinstall\":\"node ./scripts/preinstall.js\",\"test\":\"jest --env node --verbose --bail --forceExit\",\"test-unit\":\"yarn test test/unit/\",\"test-integration-cli\":\"rimraf test/fixtures/integration && ava test/integration.js --serial --fail-fast --verbose\",\"test-integration-dev\":\"yarn test test/dev/\",\"coverage\":\"codecov\",\"build\":\"ts-node ./scripts/build.ts\",\"dev\":\"ts-node ./src/index.ts\"},\"bin\":{\"vc\":\"./dist/index.js\",\"vercel\":\"./dist/index.js\"},\"files\":[\"dist\",\"scripts/preinstall.js\"],\"ava\":{\"extensions\":[\"ts\"],\"require\":[\"ts-node/register/transpile-only\",\"esm\"]},\"engines\":{\"node\":\">= 14\"},\"dependencies\":{\"@vercel/build-utils\":\"5.5.7\",\"@vercel/go\":\"2.2.15\",\"@vercel/hydrogen\":\"0.0.29\",\"@vercel/next\":\"3.2.11\",\"@vercel/node\":\"2.6.2\",\"@vercel/python\":\"3.1.25\",\"@vercel/redwood\":\"1.0.35\",\"@vercel/remix\":\"1.0.35\",\"@vercel/ruby\":\"1.3.41\",\"@vercel/static-build\":\"1.0.36\",\"update-notifier\":\"5.1.0\"},\"devDependencies\":{\"@alex_neo/jest-expect-message\":\"1.0.5\",\"@next/env\":\"11.1.2\",\"@sentry/node\":\"5.5.0\",\"@sindresorhus/slugify\":\"0.11.0\",\"@swc/core\":\"1.2.218\",\"@tootallnate/once\":\"1.1.2\",\"@types/ansi-escapes\":\"3.0.0\",\"@types/ansi-regex\":\"4.0.0\",\"@types/async-retry\":\"1.2.1\",\"@types/bytes\":\"3.0.0\",\"@types/chance\":\"1.1.3\",\"@types/debug\":\"0.0.31\",\"@types/dotenv\":\"6.1.1\",\"@types/escape-html\":\"0.0.20\",\"@types/express\":\"4.17.13\",\"@types/fs-extra\":\"9.0.13\",\"@types/glob\":\"7.1.1\",\"@types/http-proxy\":\"1.16.2\",\"@types/ini\":\"1.3.31\",\"@types/inquirer\":\"7.3.1\",\"@types/jest\":\"27.4.1\",\"@types/jest-expect-message\":\"1.0.3\",\"@types/load-json-file\":\"2.0.7\",\"@types/mime-types\":\"2.1.0\",\"@types/minimatch\":\"3.0.3\",\"@types/mri\":\"1.1.0\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"14.18.33\",\"@types/node-fetch\":\"2.5.10\",\"@types/npm-package-arg\":\"6.1.0\",\"@types/pluralize\":\"0.0.29\",\"@types/psl\":\"1.1.0\",\"@types/semver\":\"6.0.1\",\"@types/tar-fs\":\"1.16.1\",\"@types/text-table\":\"0.2.0\",\"@types/title\":\"3.4.1\",\"@types/universal-analytics\":\"0.4.2\",\"@types/update-notifier\":\"5.1.0\",\"@types/which\":\"1.3.2\",\"@types/write-json-file\":\"2.2.1\",\"@types/yauzl-promise\":\"2.1.0\",\"@vercel/client\":\"12.2.17\",\"@vercel/error-utils\":\"1.0.3\",\"@vercel/frameworks\":\"1.1.12\",\"@vercel/fs-detectors\":\"3.5.1\",\"@vercel/fun\":\"1.0.4\",\"@vercel/ncc\":\"0.24.0\",\"@zeit/source-map-support\":\"0.6.2\",\"ajv\":\"6.12.2\",\"alpha-sort\":\"2.0.1\",\"ansi-escapes\":\"3.0.0\",\"ansi-regex\":\"3.0.0\",\"arg\":\"5.0.0\",\"async-listen\":\"1.2.0\",\"async-retry\":\"1.1.3\",\"async-sema\":\"2.1.4\",\"ava\":\"2.2.0\",\"boxen\":\"4.2.0\",\"bytes\":\"3.0.0\",\"chalk\":\"4.1.0\",\"chance\":\"1.1.7\",\"chokidar\":\"3.3.1\",\"codecov\":\"3.8.2\",\"cpy\":\"7.2.0\",\"date-fns\":\"1.29.0\",\"debug\":\"3.1.0\",\"dot\":\"1.1.3\",\"dotenv\":\"4.0.0\",\"email-prompt\":\"0.3.2\",\"email-validator\":\"1.1.1\",\"epipebomb\":\"1.0.0\",\"escape-html\":\"1.0.3\",\"esm\":\"3.1.4\",\"execa\":\"3.2.0\",\"express\":\"4.17.1\",\"fast-deep-equal\":\"3.1.3\",\"fs-extra\":\"10.0.0\",\"get-port\":\"5.1.1\",\"git-last-commit\":\"1.0.1\",\"glob\":\"7.1.2\",\"http-proxy\":\"1.18.1\",\"ini\":\"3.0.0\",\"inquirer\":\"7.0.4\",\"is-docker\":\"2.2.1\",\"is-port-reachable\":\"3.1.0\",\"is-url\":\"1.2.2\",\"jaro-winkler\":\"0.2.8\",\"jsonlines\":\"0.1.1\",\"load-json-file\":\"3.0.0\",\"mime-types\":\"2.1.24\",\"minimatch\":\"3.0.4\",\"mri\":\"1.1.5\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.7\",\"npm-package-arg\":\"6.1.0\",\"open\":\"8.4.0\",\"ora\":\"3.4.0\",\"pcre-to-regexp\":\"1.0.0\",\"pluralize\":\"7.0.0\",\"promisepipe\":\"3.0.0\",\"psl\":\"1.1.31\",\"qr-image\":\"3.2.0\",\"raw-body\":\"2.4.1\",\"rimraf\":\"3.0.2\",\"semver\":\"5.5.0\",\"serve-handler\":\"6.1.1\",\"strip-ansi\":\"5.2.0\",\"stripe\":\"5.1.0\",\"tar-fs\":\"1.16.3\",\"test-listen\":\"1.1.0\",\"text-table\":\"0.2.0\",\"title\":\"3.4.1\",\"tmp-promise\":\"1.0.3\",\"tree-kill\":\"1.2.2\",\"ts-node\":\"10.9.1\",\"typescript\":\"4.7.4\",\"universal-analytics\":\"0.4.20\",\"utility-types\":\"2.1.0\",\"write-json-file\":\"2.2.0\",\"xdg-app-paths\":\"5.1.0\",\"yauzl-promise\":\"2.1.3\"},\"jest\":{\"preset\":\"ts-jest\",\"globals\":{\"ts-jest\":{\"diagnostics\":false,\"isolatedModules\":true}},\"setupFilesAfterEnv\":[\"@alex_neo/jest-expect-message\"],\"verbose\":false,\"testEnvironment\":\"node\",\"testMatch\":[\"<rootDir>/test/**/*.test.ts\"]}}");
254356
254457
 
254357
254458
  /***/ }),
254358
254459
 
@@ -254444,6 +254545,14 @@ module.exports = require("fs");
254444
254545
 
254445
254546
  /***/ }),
254446
254547
 
254548
+ /***/ 69225:
254549
+ /***/ ((module) => {
254550
+
254551
+ "use strict";
254552
+ module.exports = require("fs/promises");
254553
+
254554
+ /***/ }),
254555
+
254447
254556
  /***/ 98605:
254448
254557
  /***/ ((module) => {
254449
254558
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "28.4.17",
3
+ "version": "28.5.1",
4
4
  "preferGlobal": true,
5
5
  "license": "Apache-2.0",
6
6
  "description": "The command-line interface for Vercel",
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "scripts": {
14
14
  "preinstall": "node ./scripts/preinstall.js",
15
- "test": "jest --env node --verbose --runInBand --bail --forceExit",
15
+ "test": "jest --env node --verbose --bail --forceExit",
16
16
  "test-unit": "yarn test test/unit/",
17
17
  "test-integration-cli": "rimraf test/fixtures/integration && ava test/integration.js --serial --fail-fast --verbose",
18
18
  "test-integration-dev": "yarn test test/dev/",
@@ -46,7 +46,7 @@
46
46
  "@vercel/hydrogen": "0.0.29",
47
47
  "@vercel/next": "3.2.11",
48
48
  "@vercel/node": "2.6.2",
49
- "@vercel/python": "3.1.24",
49
+ "@vercel/python": "3.1.25",
50
50
  "@vercel/redwood": "1.0.35",
51
51
  "@vercel/remix": "1.0.35",
52
52
  "@vercel/ruby": "1.3.41",
@@ -98,7 +98,7 @@
98
98
  "@vercel/client": "12.2.17",
99
99
  "@vercel/error-utils": "1.0.3",
100
100
  "@vercel/frameworks": "1.1.12",
101
- "@vercel/fs-detectors": "3.4.9",
101
+ "@vercel/fs-detectors": "3.5.1",
102
102
  "@vercel/fun": "1.0.4",
103
103
  "@vercel/ncc": "0.24.0",
104
104
  "@zeit/source-map-support": "0.6.2",
@@ -172,7 +172,6 @@
172
172
  "typescript": "4.7.4",
173
173
  "universal-analytics": "0.4.20",
174
174
  "utility-types": "2.1.0",
175
- "which": "2.0.2",
176
175
  "write-json-file": "2.2.0",
177
176
  "xdg-app-paths": "5.1.0",
178
177
  "yauzl-promise": "2.1.3"
@@ -194,5 +193,5 @@
194
193
  "<rootDir>/test/**/*.test.ts"
195
194
  ]
196
195
  },
197
- "gitHead": "1b211f28dfdcb112f1aecb53a2b9f257ecc58420"
196
+ "gitHead": "4e41c0e0a60fa443e0a0b2a9aba539d02c9ffc10"
198
197
  }