vercel 28.14.1 → 28.15.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 +115 -15
  2. package/package.json +14 -14
package/dist/index.js CHANGED
@@ -189252,13 +189252,25 @@ async function getMonorepoDefaultSettings(projectName, projectPath, relativeToRo
189252
189252
  if (!hasBuildPipeline) {
189253
189253
  throw new MissingBuildPipeline();
189254
189254
  }
189255
+ if (projectPath === '/') {
189256
+ return {
189257
+ monorepoManager: 'turbo',
189258
+ buildCommand: 'npx turbo run build',
189259
+ installCommand: packageManager ? `${packageManager} install` : null,
189260
+ commandForIgnoringBuildStep: 'npx turbo-ignore',
189261
+ };
189262
+ }
189255
189263
  return {
189256
189264
  monorepoManager: 'turbo',
189257
- buildCommand: `cd ${relativeToRoot} && npx turbo run build --filter={${projectPath}}...`,
189265
+ buildCommand: projectPath
189266
+ ? `cd ${relativeToRoot} && npx turbo run build --filter={${projectPath}}...`
189267
+ : null,
189258
189268
  installCommand: packageManager === 'npm'
189259
189269
  ? `${packageManager} install --prefix=${relativeToRoot}`
189260
- : `${packageManager} install`,
189261
- commandForIgnoringBuildStep: `npx turbo-ignore`,
189270
+ : packageManager
189271
+ ? `${packageManager} install`
189272
+ : null,
189273
+ commandForIgnoringBuildStep: 'npx turbo-ignore',
189262
189274
  };
189263
189275
  }
189264
189276
  else if (monorepoManager === 'nx') {
@@ -189293,12 +189305,23 @@ async function getMonorepoDefaultSettings(projectName, projectPath, relativeToRo
189293
189305
  throw new MissingBuildTarget();
189294
189306
  }
189295
189307
  }
189308
+ if (projectPath === '/') {
189309
+ return {
189310
+ monorepoManager: 'nx',
189311
+ buildCommand: 'npx nx build',
189312
+ installCommand: packageManager ? `${packageManager} install` : null,
189313
+ };
189314
+ }
189296
189315
  return {
189297
189316
  monorepoManager: 'nx',
189298
- buildCommand: `cd ${relativeToRoot} && npx nx build ${projectName}`,
189317
+ buildCommand: projectName
189318
+ ? `cd ${relativeToRoot} && npx nx build ${projectName}`
189319
+ : null,
189299
189320
  installCommand: packageManager === 'npm'
189300
189321
  ? `${packageManager} install --prefix=${relativeToRoot}`
189301
- : `${packageManager} install`,
189322
+ : packageManager
189323
+ ? `${packageManager} install`
189324
+ : null,
189302
189325
  };
189303
189326
  }
189304
189327
  // TODO (@Ethan-Arrowood) - Revisit rush support when we can test it better
@@ -191891,10 +191914,15 @@ async function main(client) {
191891
191914
  project = await (0, project_settings_1.readProjectSettings)((0, path_1.join)(cwd, link_1.VERCEL_DIR));
191892
191915
  }
191893
191916
  // Delete output directory from potential previous build
191917
+ const defaultOutputDir = (0, path_1.join)(cwd, write_build_result_1.OUTPUT_DIR);
191894
191918
  const outputDir = argv['--output']
191895
191919
  ? (0, path_1.resolve)(argv['--output'])
191896
- : (0, path_1.join)(cwd, write_build_result_1.OUTPUT_DIR);
191897
- await fs_extra_1.default.remove(outputDir);
191920
+ : defaultOutputDir;
191921
+ await Promise.all([
191922
+ fs_extra_1.default.remove(outputDir),
191923
+ // Also delete `.vercel/output`, in case the script is targeting Build Output API directly
191924
+ outputDir !== defaultOutputDir ? fs_extra_1.default.remove(defaultOutputDir) : undefined,
191925
+ ]);
191898
191926
  const buildsJson = {
191899
191927
  '//': 'This file was generated by the `vercel build` command. It is not part of the Build Output API.',
191900
191928
  target,
@@ -192100,6 +192128,20 @@ async function doBuild(client, project, buildsJson, cwd, outputDir) {
192100
192128
  }
192101
192129
  try {
192102
192130
  const { builder, pkg: builderPkg } = builderWithPkg;
192131
+ for (const key of [
192132
+ 'buildCommand',
192133
+ 'installCommand',
192134
+ 'outputDirectory',
192135
+ 'nodeVersion',
192136
+ ]) {
192137
+ const value = projectSettings[key];
192138
+ if (typeof value === 'string') {
192139
+ const envKey = `VERCEL_PROJECT_SETTINGS_` +
192140
+ key.replace(/[A-Z]/g, letter => `_${letter}`).toUpperCase();
192141
+ process.env[envKey] = value;
192142
+ output.debug(`Setting env ${envKey} to "${value}"`);
192143
+ }
192144
+ }
192103
192145
  const buildConfig = isZeroConfig
192104
192146
  ? {
192105
192147
  outputDirectory: projectSettings.outputDirectory ?? undefined,
@@ -200214,6 +200256,57 @@ async function installBuilders(buildersDir, buildersToAdd, output) {
200214
200256
  }
200215
200257
 
200216
200258
 
200259
+ /***/ }),
200260
+
200261
+ /***/ 14556:
200262
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
200263
+
200264
+ "use strict";
200265
+
200266
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
200267
+ exports.merge = void 0;
200268
+ const path_1 = __webpack_require__(85622);
200269
+ const error_utils_1 = __webpack_require__(39799);
200270
+ const fs_extra_1 = __webpack_require__(36365);
200271
+ /**
200272
+ * Merge a directory into another directory. A `move` file operation is preferred,
200273
+ * falling back to a recursive `move` of contents within the source directory.
200274
+ */
200275
+ async function merge(source, destination) {
200276
+ const destStat = await (0, fs_extra_1.stat)(destination).catch(err => err);
200277
+ if ((0, error_utils_1.isErrnoException)(destStat)) {
200278
+ if (destStat.code === 'ENOENT') {
200279
+ // Destination does not exist, so move directly
200280
+ await (0, fs_extra_1.move)(source, destination);
200281
+ return;
200282
+ }
200283
+ // Some other kind of error, bail
200284
+ throw destStat;
200285
+ }
200286
+ else if (destStat.isDirectory()) {
200287
+ // Destination is already a directory, so merge contents recursively
200288
+ const contents = await (0, fs_extra_1.readdir)(source).catch(err => err);
200289
+ if ((0, error_utils_1.isErrnoException)(contents)) {
200290
+ // If source is not a directory, then fall through to rm + move
200291
+ if (contents.code !== 'ENOTDIR') {
200292
+ // Any other error then bail
200293
+ throw contents;
200294
+ }
200295
+ }
200296
+ else {
200297
+ await Promise.all(contents.map(name => merge((0, path_1.join)(source, name), (0, path_1.join)(destination, name))));
200298
+ // Source should be empty at this point
200299
+ await (0, fs_extra_1.rmdir)(source);
200300
+ return;
200301
+ }
200302
+ }
200303
+ // Destination is not a directory, or dest is a dir + source is not, so overwrite
200304
+ await (0, fs_extra_1.remove)(destination);
200305
+ await (0, fs_extra_1.move)(source, destination);
200306
+ }
200307
+ exports.merge = merge;
200308
+
200309
+
200217
200310
  /***/ }),
200218
200311
 
200219
200312
  /***/ 21481:
@@ -200248,8 +200341,12 @@ async function setMonorepoDefaultSettings(cwd, workPath, projectSettings, output
200248
200341
  }
200249
200342
  const { monorepoManager, ...commands } = result;
200250
200343
  output.log(`Automatically detected ${(0, title_1.default)(monorepoManager)} monorepo manager. Attempting to assign default settings.`);
200251
- setCommand('buildCommand', commands.buildCommand);
200252
- setCommand('installCommand', commands.installCommand);
200344
+ if (commands.buildCommand) {
200345
+ setCommand('buildCommand', commands.buildCommand);
200346
+ }
200347
+ if (commands.installCommand) {
200348
+ setCommand('installCommand', commands.installCommand);
200349
+ }
200253
200350
  if (commands.commandForIgnoringBuildStep) {
200254
200351
  setCommand('commandForIgnoringBuildStep', commands.commandForIgnoringBuildStep);
200255
200352
  }
@@ -200487,6 +200584,7 @@ const mime_types_1 = __importDefault(__webpack_require__(92981));
200487
200584
  const path_1 = __webpack_require__(85622);
200488
200585
  const build_utils_1 = __webpack_require__(63445);
200489
200586
  const promisepipe_1 = __importDefault(__webpack_require__(79860));
200587
+ const merge_1 = __webpack_require__(14556);
200490
200588
  const unzip_1 = __webpack_require__(37585);
200491
200589
  const link_1 = __webpack_require__(49347);
200492
200590
  const client_1 = __webpack_require__(40521);
@@ -200716,11 +200814,13 @@ async function writeLambda(outputDir, lambda, path, functionConfiguration, lambd
200716
200814
  else {
200717
200815
  throw new Error('Malformed `Lambda` - no "files" present');
200718
200816
  }
200817
+ const cron = functionConfiguration?.cron ?? lambda.cron;
200719
200818
  const memory = functionConfiguration?.memory ?? lambda.memory;
200720
200819
  const maxDuration = functionConfiguration?.maxDuration ?? lambda.maxDuration;
200721
200820
  const config = {
200722
200821
  ...lambda,
200723
200822
  handler: (0, build_utils_1.normalizePath)(lambda.handler),
200823
+ cron,
200724
200824
  memory,
200725
200825
  maxDuration,
200726
200826
  type: undefined,
@@ -200764,7 +200864,7 @@ async function mergeBuilderOutput(outputDir, buildResult) {
200764
200864
  // so no need to do anything
200765
200865
  return;
200766
200866
  }
200767
- await fs_extra_1.default.copy(buildResult.buildOutputPath, outputDir);
200867
+ await (0, merge_1.merge)(buildResult.buildOutputPath, outputDir);
200768
200868
  }
200769
200869
  /**
200770
200870
  * Attempts to return the file extension (i.e. `.html`) from the given
@@ -203165,7 +203265,7 @@ exports.default = isURL;
203165
203265
  Object.defineProperty(exports, "__esModule", ({ value: true }));
203166
203266
  const mime_types_1 = __webpack_require__(92981);
203167
203267
  function getMimeType(fileName) {
203168
- return (0, mime_types_1.lookup)(fileName) || 'application/octet-stream';
203268
+ return (0, mime_types_1.contentType)(fileName) || 'application/octet-stream';
203169
203269
  }
203170
203270
  exports.default = getMimeType;
203171
203271
 
@@ -204919,11 +205019,11 @@ class DevServer {
204919
205019
  body = `${json}\n`;
204920
205020
  }
204921
205021
  else if (accept.includes('html')) {
204922
- res.setHeader('content-type', 'text/html');
205022
+ res.setHeader('content-type', 'text/html; charset=utf-8');
204923
205023
  body = (0, redirect_1.default)({ location, statusCode });
204924
205024
  }
204925
205025
  else {
204926
- res.setHeader('content-type', 'text/plain');
205026
+ res.setHeader('content-type', 'text/plain; charset=utf-8');
204927
205027
  body = `Redirecting to ${location} (${statusCode})\n`;
204928
205028
  }
204929
205029
  res.end(body);
@@ -214588,7 +214688,7 @@ module.exports = JSON.parse("[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"vali
214588
214688
  /***/ ((module) => {
214589
214689
 
214590
214690
  "use strict";
214591
- module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.14.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\",\"test-unit\":\"pnpm test test/unit/\",\"test-integration-cli\":\"rimraf test/fixtures/integration && ava test/integration.js --serial --fail-fast --verbose\",\"test-integration-dev\":\"pnpm 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\":\"6.0.1\",\"@vercel/go\":\"2.3.0\",\"@vercel/hydrogen\":\"0.0.46\",\"@vercel/next\":\"3.3.20\",\"@vercel/node\":\"2.8.17\",\"@vercel/python\":\"3.1.42\",\"@vercel/redwood\":\"1.0.53\",\"@vercel/remix\":\"1.2.9\",\"@vercel/ruby\":\"1.3.58\",\"@vercel/static-build\":\"1.3.1\"},\"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/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/qs\":\"6.9.7\",\"@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.3.4\",\"@vercel/error-utils\":\"1.0.8\",\"@vercel/frameworks\":\"1.3.0\",\"@vercel/fs-detectors\":\"3.7.7\",\"@vercel/fun\":\"1.0.4\",\"@vercel/ncc\":\"0.24.0\",\"@vercel/routing-utils\":\"2.1.8\",\"@zeit/source-map-support\":\"0.6.2\",\"ajv\":\"6.12.2\",\"alpha-sort\":\"2.0.1\",\"ansi-escapes\":\"4.3.2\",\"ansi-regex\":\"5.0.1\",\"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-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\",\"jest-matcher-utils\":\"29.3.1\",\"json5\":\"2.2.1\",\"jsonlines\":\"0.1.1\",\"line-async-iterator\":\"3.0.0\",\"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\":\"6.0.1\",\"stripe\":\"5.1.0\",\"supports-hyperlinks\":\"2.2.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.9.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\"]}}");
214691
+ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.15.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\",\"test-unit\":\"pnpm test test/unit/\",\"test-integration-cli\":\"rimraf test/fixtures/integration && ava test/integration.js --serial --fail-fast --verbose\",\"test-integration-dev\":\"pnpm 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\":\"6.2.0\",\"@vercel/go\":\"2.3.2\",\"@vercel/hydrogen\":\"0.0.48\",\"@vercel/next\":\"3.4.0\",\"@vercel/node\":\"2.9.1\",\"@vercel/python\":\"3.1.44\",\"@vercel/redwood\":\"1.1.0\",\"@vercel/remix\":\"1.2.11\",\"@vercel/ruby\":\"1.3.60\",\"@vercel/static-build\":\"1.3.3\"},\"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/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/qs\":\"6.9.7\",\"@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.3.6\",\"@vercel/error-utils\":\"1.0.8\",\"@vercel/frameworks\":\"1.3.0\",\"@vercel/fs-detectors\":\"3.7.9\",\"@vercel/fun\":\"1.0.4\",\"@vercel/ncc\":\"0.24.0\",\"@vercel/routing-utils\":\"2.1.8\",\"@zeit/source-map-support\":\"0.6.2\",\"ajv\":\"6.12.2\",\"alpha-sort\":\"2.0.1\",\"ansi-escapes\":\"4.3.2\",\"ansi-regex\":\"5.0.1\",\"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-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\",\"jest-matcher-utils\":\"29.3.1\",\"json5\":\"2.2.1\",\"jsonlines\":\"0.1.1\",\"line-async-iterator\":\"3.0.0\",\"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\":\"6.0.1\",\"stripe\":\"5.1.0\",\"supports-hyperlinks\":\"2.2.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.9.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\"]}}");
214592
214692
 
214593
214693
  /***/ }),
214594
214694
 
@@ -214596,7 +214696,7 @@ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.14.1\",\"pref
214596
214696
  /***/ ((module) => {
214597
214697
 
214598
214698
  "use strict";
214599
- module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.3.4\",\"main\":\"dist/index.js\",\"typings\":\"dist/index.d.ts\",\"homepage\":\"https://vercel.com\",\"license\":\"MIT\",\"files\":[\"dist\"],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/client\"},\"scripts\":{\"build\":\"tsc\",\"test-integration-once\":\"pnpm test tests/create-deployment.test.ts tests/create-legacy-deployment.test.ts tests/paths.test.ts\",\"test\":\"jest --env node --verbose --runInBand --bail\",\"test-unit\":\"pnpm test tests/unit.*test.*\"},\"engines\":{\"node\":\">= 14\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.5\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.4.1\",\"@types/minimatch\":\"3.0.5\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"14.18.33\",\"@types/node-fetch\":\"2.5.4\",\"@types/recursive-readdir\":\"2.2.0\",\"@types/tar-fs\":\"1.16.1\",\"typescript\":\"4.3.4\"},\"jest\":{\"preset\":\"ts-jest\",\"testEnvironment\":\"node\",\"verbose\":false,\"setupFilesAfterEnv\":[\"<rootDir>/tests/setup/index.ts\"]},\"dependencies\":{\"@vercel/build-utils\":\"6.0.1\",\"@vercel/routing-utils\":\"2.1.8\",\"@zeit/fetch\":\"5.2.0\",\"async-retry\":\"1.2.3\",\"async-sema\":\"3.0.0\",\"fs-extra\":\"8.0.1\",\"ignore\":\"4.0.6\",\"minimatch\":\"5.0.1\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.7\",\"querystring\":\"^0.2.0\",\"sleep-promise\":\"8.0.1\",\"tar-fs\":\"1.16.3\"}}");
214699
+ module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.3.6\",\"main\":\"dist/index.js\",\"typings\":\"dist/index.d.ts\",\"homepage\":\"https://vercel.com\",\"license\":\"MIT\",\"files\":[\"dist\"],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/client\"},\"scripts\":{\"build\":\"tsc\",\"test-integration-once\":\"pnpm test tests/create-deployment.test.ts tests/create-legacy-deployment.test.ts tests/paths.test.ts\",\"test\":\"jest --env node --verbose --runInBand --bail\",\"test-unit\":\"pnpm test tests/unit.*test.*\"},\"engines\":{\"node\":\">= 14\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.5\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.4.1\",\"@types/minimatch\":\"3.0.5\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"14.18.33\",\"@types/node-fetch\":\"2.5.4\",\"@types/recursive-readdir\":\"2.2.0\",\"@types/tar-fs\":\"1.16.1\",\"typescript\":\"4.3.4\"},\"jest\":{\"preset\":\"ts-jest\",\"testEnvironment\":\"node\",\"verbose\":false,\"setupFilesAfterEnv\":[\"<rootDir>/tests/setup/index.ts\"]},\"dependencies\":{\"@vercel/build-utils\":\"6.2.0\",\"@vercel/routing-utils\":\"2.1.8\",\"@zeit/fetch\":\"5.2.0\",\"async-retry\":\"1.2.3\",\"async-sema\":\"3.0.0\",\"fs-extra\":\"8.0.1\",\"ignore\":\"4.0.6\",\"minimatch\":\"5.0.1\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.7\",\"querystring\":\"^0.2.0\",\"sleep-promise\":\"8.0.1\",\"tar-fs\":\"1.16.3\"}}");
214600
214700
 
214601
214701
  /***/ }),
214602
214702
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "28.14.1",
3
+ "version": "28.15.1",
4
4
  "preferGlobal": true,
5
5
  "license": "Apache-2.0",
6
6
  "description": "The command-line interface for Vercel",
@@ -41,16 +41,16 @@
41
41
  "node": ">= 14"
42
42
  },
43
43
  "dependencies": {
44
- "@vercel/build-utils": "6.0.1",
45
- "@vercel/go": "2.3.0",
46
- "@vercel/hydrogen": "0.0.46",
47
- "@vercel/next": "3.3.20",
48
- "@vercel/node": "2.8.17",
49
- "@vercel/python": "3.1.42",
50
- "@vercel/redwood": "1.0.53",
51
- "@vercel/remix": "1.2.9",
52
- "@vercel/ruby": "1.3.58",
53
- "@vercel/static-build": "1.3.1"
44
+ "@vercel/build-utils": "6.2.0",
45
+ "@vercel/go": "2.3.2",
46
+ "@vercel/hydrogen": "0.0.48",
47
+ "@vercel/next": "3.4.0",
48
+ "@vercel/node": "2.9.1",
49
+ "@vercel/python": "3.1.44",
50
+ "@vercel/redwood": "1.1.0",
51
+ "@vercel/remix": "1.2.11",
52
+ "@vercel/ruby": "1.3.60",
53
+ "@vercel/static-build": "1.3.3"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@alex_neo/jest-expect-message": "1.0.5",
@@ -93,10 +93,10 @@
93
93
  "@types/which": "1.3.2",
94
94
  "@types/write-json-file": "2.2.1",
95
95
  "@types/yauzl-promise": "2.1.0",
96
- "@vercel/client": "12.3.4",
96
+ "@vercel/client": "12.3.6",
97
97
  "@vercel/error-utils": "1.0.8",
98
98
  "@vercel/frameworks": "1.3.0",
99
- "@vercel/fs-detectors": "3.7.7",
99
+ "@vercel/fs-detectors": "3.7.9",
100
100
  "@vercel/fun": "1.0.4",
101
101
  "@vercel/ncc": "0.24.0",
102
102
  "@vercel/routing-utils": "2.1.8",
@@ -195,5 +195,5 @@
195
195
  "<rootDir>/test/**/*.test.ts"
196
196
  ]
197
197
  },
198
- "gitHead": "ada9a48d57be8f4375494a369aaa98cee1f5eae2"
198
+ "gitHead": "a585969dd3b77a4ed36d6a2ca11b34f9050489f1"
199
199
  }