vercel 27.1.0 → 27.1.3

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 +118 -58
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -230737,6 +230737,7 @@ const stamp_1 = __importDefault(__webpack_require__(92205));
230737
230737
  const write_build_result_1 = __webpack_require__(28689);
230738
230738
  const import_builders_1 = __webpack_require__(57049);
230739
230739
  const corepack_1 = __webpack_require__(51806);
230740
+ const sort_builders_1 = __webpack_require__(40233);
230740
230741
  const help = () => {
230741
230742
  return console.log(`
230742
230743
  ${chalk_1.default.bold(`${cli.logo} ${cli.name} build`)}
@@ -230923,26 +230924,33 @@ async function main(client) {
230923
230924
  await fs_extra_1.default.mkdirp(outputDir);
230924
230925
  const ops = [];
230925
230926
  // Write the `detectedBuilders` result to output dir
230926
- ops.push(fs_extra_1.default.writeJSON(path_1.join(outputDir, 'builds.json'), {
230927
- '//': 'This file was generated by the `vercel build` command. It is not part of the Build Output API.',
230928
- target,
230929
- argv: process.argv,
230930
- builds: builds.map(build => {
230931
- const builderWithPkg = buildersWithPkgs.get(build.use);
230932
- if (!builderWithPkg) {
230933
- throw new Error(`Failed to load Builder "${build.use}"`);
230934
- }
230935
- const { builder, pkg: builderPkg } = builderWithPkg;
230936
- return {
230927
+ const buildsJsonBuilds = new Map(builds.map(build => {
230928
+ const builderWithPkg = buildersWithPkgs.get(build.use);
230929
+ if (!builderWithPkg) {
230930
+ throw new Error(`Failed to load Builder "${build.use}"`);
230931
+ }
230932
+ const { builder, pkg: builderPkg } = builderWithPkg;
230933
+ return [
230934
+ build,
230935
+ {
230937
230936
  require: builderPkg.name,
230938
230937
  requirePath: builderWithPkg.path,
230939
230938
  apiVersion: builder.version,
230940
230939
  ...build,
230941
- };
230942
- }),
230943
- }, {
230944
- spaces: 2,
230940
+ },
230941
+ ];
230945
230942
  }));
230943
+ const buildsJson = {
230944
+ '//': 'This file was generated by the `vercel build` command. It is not part of the Build Output API.',
230945
+ target,
230946
+ argv: process.argv,
230947
+ builds: Array.from(buildsJsonBuilds.values()),
230948
+ };
230949
+ const buildsJsonPath = path_1.join(outputDir, 'builds.json');
230950
+ const writeBuildsJsonPromise = fs_extra_1.default.writeJSON(buildsJsonPath, buildsJson, {
230951
+ spaces: 2,
230952
+ });
230953
+ ops.push(writeBuildsJsonPromise);
230946
230954
  // The `meta` config property is re-used for each Builder
230947
230955
  // invocation so that Builders can share state between
230948
230956
  // subsequent entrypoint builds.
@@ -230951,47 +230959,66 @@ async function main(client) {
230951
230959
  cliVersion: pkg_1.default.version,
230952
230960
  };
230953
230961
  // Execute Builders for detected entrypoints
230954
- // TODO: parallelize builds
230962
+ // TODO: parallelize builds (except for frontend)
230963
+ const sortedBuilders = sort_builders_1.sortBuilders(builds);
230955
230964
  const buildResults = new Map();
230956
230965
  const overrides = [];
230957
230966
  const repoRootPath = cwd;
230958
230967
  const corepackShimDir = await corepack_1.initCorepack({ repoRootPath });
230959
- for (const build of builds) {
230968
+ for (const build of sortedBuilders) {
230960
230969
  if (typeof build.src !== 'string')
230961
230970
  continue;
230962
230971
  const builderWithPkg = buildersWithPkgs.get(build.use);
230963
230972
  if (!builderWithPkg) {
230964
230973
  throw new Error(`Failed to load Builder "${build.use}"`);
230965
230974
  }
230966
- const { builder, pkg: builderPkg } = builderWithPkg;
230967
- const buildConfig = {
230968
- outputDirectory: project.settings.outputDirectory ?? undefined,
230969
- ...build.config,
230970
- projectSettings: project.settings,
230971
- installCommand: project.settings.installCommand ?? undefined,
230972
- devCommand: project.settings.devCommand ?? undefined,
230973
- buildCommand: project.settings.buildCommand ?? undefined,
230974
- framework: project.settings.framework,
230975
- nodeVersion: project.settings.nodeVersion,
230976
- };
230977
- const buildOptions = {
230978
- files: filesMap,
230979
- entrypoint: build.src,
230980
- workPath,
230981
- repoRootPath,
230982
- config: buildConfig,
230983
- meta,
230984
- };
230985
- output.debug(`Building entrypoint "${build.src}" with "${builderPkg.name}"`);
230986
- const buildResult = await builder.build(buildOptions);
230987
- // Store the build result to generate the final `config.json` after
230988
- // all builds have completed
230989
- buildResults.set(build, buildResult);
230990
- // Start flushing the file outputs to the filesystem asynchronously
230991
- ops.push(write_build_result_1.writeBuildResult(outputDir, buildResult, build, builder, builderPkg, vercelConfig?.cleanUrls).then(override => {
230992
- if (override)
230993
- overrides.push(override);
230994
- }, err => err));
230975
+ try {
230976
+ const { builder, pkg: builderPkg } = builderWithPkg;
230977
+ const buildConfig = {
230978
+ outputDirectory: project.settings.outputDirectory ?? undefined,
230979
+ ...build.config,
230980
+ projectSettings: project.settings,
230981
+ installCommand: project.settings.installCommand ?? undefined,
230982
+ devCommand: project.settings.devCommand ?? undefined,
230983
+ buildCommand: project.settings.buildCommand ?? undefined,
230984
+ framework: project.settings.framework,
230985
+ nodeVersion: project.settings.nodeVersion,
230986
+ };
230987
+ const buildOptions = {
230988
+ files: filesMap,
230989
+ entrypoint: build.src,
230990
+ workPath,
230991
+ repoRootPath,
230992
+ config: buildConfig,
230993
+ meta,
230994
+ };
230995
+ output.debug(`Building entrypoint "${build.src}" with "${builderPkg.name}"`);
230996
+ const buildResult = await builder.build(buildOptions);
230997
+ // Store the build result to generate the final `config.json` after
230998
+ // all builds have completed
230999
+ buildResults.set(build, buildResult);
231000
+ // Start flushing the file outputs to the filesystem asynchronously
231001
+ ops.push(write_build_result_1.writeBuildResult(outputDir, buildResult, build, builder, builderPkg, vercelConfig?.cleanUrls).then(override => {
231002
+ if (override)
231003
+ overrides.push(override);
231004
+ }, err => err));
231005
+ }
231006
+ catch (err) {
231007
+ await writeBuildsJsonPromise;
231008
+ const buildJsonBuild = buildsJsonBuilds.get(build);
231009
+ if (buildJsonBuild) {
231010
+ buildJsonBuild.error = {
231011
+ name: err.name,
231012
+ message: err.message,
231013
+ stack: err.stack,
231014
+ ...err,
231015
+ };
231016
+ await fs_extra_1.default.writeJSON(buildsJsonPath, buildsJson, {
231017
+ spaces: 2,
231018
+ });
231019
+ }
231020
+ return 1;
231021
+ }
230995
231022
  }
230996
231023
  if (corepackShimDir) {
230997
231024
  corepack_1.cleanupCorepack(corepackShimDir);
@@ -231886,6 +231913,7 @@ exports.default = async (client) => {
231886
231913
  // deprecated
231887
231914
  '--name': String,
231888
231915
  '-n': '--name',
231916
+ '--no-clipboard': Boolean,
231889
231917
  '--target': String,
231890
231918
  });
231891
231919
  }
@@ -231950,6 +231978,9 @@ exports.default = async (client) => {
231950
231978
  if (argv['--name']) {
231951
231979
  output.print(`${emoji_1.prependEmoji(`The ${param_1.default('--name')} option is deprecated (https://vercel.link/name-flag)`, emoji_1.emoji('warning'))}\n`);
231952
231980
  }
231981
+ if (argv['--no-clipboard']) {
231982
+ output.print(`${emoji_1.prependEmoji(`The ${param_1.default('--no-clipboard')} option was ignored because it is the default behavior. Please remove it.`, emoji_1.emoji('warning'))}\n`);
231983
+ }
231953
231984
  // build `target`
231954
231985
  const target = parse_target_1.default(output, argv['--target'], argv['--prod']);
231955
231986
  if (typeof target === 'number') {
@@ -238909,6 +238940,29 @@ async function installBuilders(buildersDir, buildersToAdd, output) {
238909
238940
  }
238910
238941
 
238911
238942
 
238943
+ /***/ }),
238944
+
238945
+ /***/ 40233:
238946
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
238947
+
238948
+ "use strict";
238949
+
238950
+ var __importDefault = (this && this.__importDefault) || function (mod) {
238951
+ return (mod && mod.__esModule) ? mod : { "default": mod };
238952
+ };
238953
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
238954
+ exports.sortBuilders = void 0;
238955
+ const frameworks_1 = __importDefault(__webpack_require__(48438));
238956
+ function sortBuilders(builds) {
238957
+ const frontendRuntimeSet = new Set(frameworks_1.default.map(f => f.useRuntime?.use || '@vercel/static-build'));
238958
+ const toNumber = (build) => (frontendRuntimeSet.has(build.use) ? 0 : 1);
238959
+ return builds.sort((build1, build2) => {
238960
+ return toNumber(build1) - toNumber(build2);
238961
+ });
238962
+ }
238963
+ exports.sortBuilders = sortBuilders;
238964
+
238965
+
238912
238966
  /***/ }),
238913
238967
 
238914
238968
  /***/ 33274:
@@ -239093,6 +239147,7 @@ const build_utils_1 = __webpack_require__(3131);
239093
239147
  const promisepipe_1 = __importDefault(__webpack_require__(48568));
239094
239148
  const unzip_1 = __webpack_require__(58168);
239095
239149
  const link_1 = __webpack_require__(67630);
239150
+ const { normalize } = path_1.posix;
239096
239151
  exports.OUTPUT_DIR = path_1.join(link_1.VERCEL_DIR, 'output');
239097
239152
  async function writeBuildResult(outputDir, buildResult, build, builder, builderPkg, cleanUrls) {
239098
239153
  const { version } = builder;
@@ -239118,6 +239173,12 @@ function isFile(v) {
239118
239173
  const type = v?.type;
239119
239174
  return type === 'FileRef' || type === 'FileFsRef' || type === 'FileBlob';
239120
239175
  }
239176
+ /**
239177
+ * Remove duplicate slashes as well as leading/trailing slashes.
239178
+ */
239179
+ function stripDuplicateSlashes(path) {
239180
+ return normalize(path).replace(/(^\/|\/$)/g, '');
239181
+ }
239121
239182
  /**
239122
239183
  * Writes the output from the `build()` return value of a v2 Builder to
239123
239184
  * the filesystem.
@@ -239130,16 +239191,17 @@ async function writeBuildResultV2(outputDir, buildResult, cleanUrls) {
239130
239191
  const lambdas = new Map();
239131
239192
  const overrides = {};
239132
239193
  for (const [path, output] of Object.entries(buildResult.output)) {
239194
+ const normalizedPath = stripDuplicateSlashes(path);
239133
239195
  if (isLambda(output)) {
239134
- await writeLambda(outputDir, output, path, lambdas);
239196
+ await writeLambda(outputDir, output, normalizedPath, lambdas);
239135
239197
  }
239136
239198
  else if (isPrerender(output)) {
239137
- await writeLambda(outputDir, output.lambda, path, lambdas);
239199
+ await writeLambda(outputDir, output.lambda, normalizedPath, lambdas);
239138
239200
  // Write the fallback file alongside the Lambda directory
239139
239201
  let fallback = output.fallback;
239140
239202
  if (fallback) {
239141
239203
  const ext = getFileExtension(fallback);
239142
- const fallbackName = `${path}.prerender-fallback${ext}`;
239204
+ const fallbackName = `${normalizedPath}.prerender-fallback${ext}`;
239143
239205
  const fallbackPath = path_1.join(outputDir, 'functions', fallbackName);
239144
239206
  const stream = fallback.toStream();
239145
239207
  await promisepipe_1.default(stream, fs_extra_1.default.createWriteStream(fallbackPath, { mode: fallback.mode }));
@@ -239148,7 +239210,7 @@ async function writeBuildResultV2(outputDir, buildResult, cleanUrls) {
239148
239210
  fsPath: path_1.basename(fallbackName),
239149
239211
  });
239150
239212
  }
239151
- const prerenderConfigPath = path_1.join(outputDir, 'functions', `${path}.prerender-config.json`);
239213
+ const prerenderConfigPath = path_1.join(outputDir, 'functions', `${normalizedPath}.prerender-config.json`);
239152
239214
  const prerenderConfig = {
239153
239215
  ...output,
239154
239216
  lambda: undefined,
@@ -239157,13 +239219,13 @@ async function writeBuildResultV2(outputDir, buildResult, cleanUrls) {
239157
239219
  await fs_extra_1.default.writeJSON(prerenderConfigPath, prerenderConfig, { spaces: 2 });
239158
239220
  }
239159
239221
  else if (isFile(output)) {
239160
- await writeStaticFile(outputDir, output, path, overrides, cleanUrls);
239222
+ await writeStaticFile(outputDir, output, normalizedPath, overrides, cleanUrls);
239161
239223
  }
239162
239224
  else if (isEdgeFunction(output)) {
239163
- await writeEdgeFunction(outputDir, output, path);
239225
+ await writeEdgeFunction(outputDir, output, normalizedPath);
239164
239226
  }
239165
239227
  else {
239166
- throw new Error(`Unsupported output type: "${output.type}" for ${path}`);
239228
+ throw new Error(`Unsupported output type: "${output.type}" for ${normalizedPath}`);
239167
239229
  }
239168
239230
  }
239169
239231
  return Object.keys(overrides).length > 0 ? overrides : undefined;
@@ -239179,9 +239241,7 @@ async function writeBuildResultV3(outputDir, buildResult, build) {
239179
239241
  throw new Error(`Expected "build.src" to be a string`);
239180
239242
  }
239181
239243
  const ext = path_1.extname(src);
239182
- const path = build.config?.zeroConfig
239183
- ? src.substring(0, src.length - ext.length)
239184
- : src;
239244
+ const path = stripDuplicateSlashes(build.config?.zeroConfig ? src.substring(0, src.length - ext.length) : src);
239185
239245
  if (isLambda(output)) {
239186
239246
  await writeLambda(outputDir, output, path);
239187
239247
  }
@@ -252626,7 +252686,7 @@ module.exports = JSON.parse("{\"application/1d-interleaved-parityfec\":{\"source
252626
252686
  /***/ ((module) => {
252627
252687
 
252628
252688
  "use strict";
252629
- module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"27.1.0\",\"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/\",\"prepublishOnly\":\"yarn build\",\"coverage\":\"codecov\",\"build\":\"node -r ts-eager/register ./scripts/build.ts\",\"build-dev\":\"node -r ts-eager/register ./scripts/build.ts --dev\"},\"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.0.2\",\"@vercel/go\":\"2.0.6\",\"@vercel/hydrogen\":\"0.0.3\",\"@vercel/next\":\"3.1.5\",\"@vercel/node\":\"2.4.3\",\"@vercel/python\":\"3.0.6\",\"@vercel/redwood\":\"1.0.7\",\"@vercel/remix\":\"1.0.8\",\"@vercel/ruby\":\"1.3.14\",\"@vercel/static-build\":\"1.0.6\",\"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\",\"@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\":\"11.11.0\",\"@types/node-fetch\":\"2.5.10\",\"@types/npm-package-arg\":\"6.1.0\",\"@types/pluralize\":\"0.0.29\",\"@types/progress\":\"2.0.3\",\"@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.1.1\",\"@vercel/frameworks\":\"1.1.0\",\"@vercel/fs-detectors\":\"2.0.0\",\"@vercel/ncc\":\"0.24.0\",\"@zeit/fun\":\"0.11.2\",\"@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\",\"bytes\":\"3.0.0\",\"chalk\":\"4.1.0\",\"chance\":\"1.1.7\",\"chokidar\":\"3.3.1\",\"codecov\":\"3.8.2\",\"cpy\":\"7.2.0\",\"credit-card\":\"3.0.1\",\"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.1\",\"npm-package-arg\":\"6.1.0\",\"open\":\"8.4.0\",\"ora\":\"3.4.0\",\"pcre-to-regexp\":\"1.0.0\",\"pluralize\":\"7.0.0\",\"progress\":\"2.0.3\",\"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\":\"8.3.0\",\"typescript\":\"4.3.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\"]},\"gitHead\":\"d2f8d178f77e15cb490cce73f5766537d892f763\"}");
252689
+ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"27.1.3\",\"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/\",\"prepublishOnly\":\"yarn build\",\"coverage\":\"codecov\",\"build\":\"node -r ts-eager/register ./scripts/build.ts\",\"build-dev\":\"node -r ts-eager/register ./scripts/build.ts --dev\"},\"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.0.2\",\"@vercel/go\":\"2.0.6\",\"@vercel/hydrogen\":\"0.0.3\",\"@vercel/next\":\"3.1.5\",\"@vercel/node\":\"2.4.3\",\"@vercel/python\":\"3.0.6\",\"@vercel/redwood\":\"1.0.7\",\"@vercel/remix\":\"1.0.8\",\"@vercel/ruby\":\"1.3.14\",\"@vercel/static-build\":\"1.0.7\",\"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\",\"@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\":\"11.11.0\",\"@types/node-fetch\":\"2.5.10\",\"@types/npm-package-arg\":\"6.1.0\",\"@types/pluralize\":\"0.0.29\",\"@types/progress\":\"2.0.3\",\"@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.1.1\",\"@vercel/frameworks\":\"1.1.0\",\"@vercel/fs-detectors\":\"2.0.0\",\"@vercel/ncc\":\"0.24.0\",\"@zeit/fun\":\"0.11.2\",\"@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\",\"bytes\":\"3.0.0\",\"chalk\":\"4.1.0\",\"chance\":\"1.1.7\",\"chokidar\":\"3.3.1\",\"codecov\":\"3.8.2\",\"cpy\":\"7.2.0\",\"credit-card\":\"3.0.1\",\"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.1\",\"npm-package-arg\":\"6.1.0\",\"open\":\"8.4.0\",\"ora\":\"3.4.0\",\"pcre-to-regexp\":\"1.0.0\",\"pluralize\":\"7.0.0\",\"progress\":\"2.0.3\",\"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\":\"8.3.0\",\"typescript\":\"4.3.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\"]},\"gitHead\":\"e2d4efab08e15a9f9177672e1591ba92ba1b7090\"}");
252630
252690
 
252631
252691
  /***/ }),
252632
252692
 
@@ -252642,7 +252702,7 @@ module.exports = JSON.parse("{\"VISA\":\"Visa\",\"MASTERCARD\":\"MasterCard\",\"
252642
252702
  /***/ ((module) => {
252643
252703
 
252644
252704
  "use strict";
252645
- module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.1.1\",\"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\":\"yarn 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\":\"yarn test tests/unit.*test.*\"},\"engines\":{\"node\":\">= 14\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.1\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.4.1\",\"@types/minimatch\":\"3.0.5\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"12.0.4\",\"@types/node-fetch\":\"2.5.4\",\"@types/recursive-readdir\":\"2.2.0\",\"typescript\":\"4.3.4\"},\"jest\":{\"preset\":\"ts-jest\",\"testEnvironment\":\"node\",\"verbose\":false,\"setupFilesAfterEnv\":[\"<rootDir>/tests/setup/index.ts\"]},\"dependencies\":{\"@vercel/build-utils\":\"5.0.2\",\"@vercel/routing-utils\":\"1.13.5\",\"@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.1\",\"querystring\":\"^0.2.0\",\"sleep-promise\":\"8.0.1\"},\"gitHead\":\"d2f8d178f77e15cb490cce73f5766537d892f763\"}");
252705
+ module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.1.1\",\"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\":\"yarn 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\":\"yarn test tests/unit.*test.*\"},\"engines\":{\"node\":\">= 14\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.1\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.4.1\",\"@types/minimatch\":\"3.0.5\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"12.0.4\",\"@types/node-fetch\":\"2.5.4\",\"@types/recursive-readdir\":\"2.2.0\",\"typescript\":\"4.3.4\"},\"jest\":{\"preset\":\"ts-jest\",\"testEnvironment\":\"node\",\"verbose\":false,\"setupFilesAfterEnv\":[\"<rootDir>/tests/setup/index.ts\"]},\"dependencies\":{\"@vercel/build-utils\":\"5.0.2\",\"@vercel/routing-utils\":\"1.13.5\",\"@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.1\",\"querystring\":\"^0.2.0\",\"sleep-promise\":\"8.0.1\"}}");
252646
252706
 
252647
252707
  /***/ }),
252648
252708
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "27.1.0",
3
+ "version": "27.1.3",
4
4
  "preferGlobal": true,
5
5
  "license": "Apache-2.0",
6
6
  "description": "The command-line interface for Vercel",
@@ -51,7 +51,7 @@
51
51
  "@vercel/redwood": "1.0.7",
52
52
  "@vercel/remix": "1.0.8",
53
53
  "@vercel/ruby": "1.3.14",
54
- "@vercel/static-build": "1.0.6",
54
+ "@vercel/static-build": "1.0.7",
55
55
  "update-notifier": "5.1.0"
56
56
  },
57
57
  "devDependencies": {
@@ -195,5 +195,5 @@
195
195
  "<rootDir>/test/**/*.test.ts"
196
196
  ]
197
197
  },
198
- "gitHead": "d2f8d178f77e15cb490cce73f5766537d892f763"
198
+ "gitHead": "e2d4efab08e15a9f9177672e1591ba92ba1b7090"
199
199
  }