vercel 28.8.0 → 28.10.0

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 +362 -127
  2. package/package.json +19 -21
package/dist/index.js CHANGED
@@ -146125,6 +146125,109 @@ module.exports = {
146125
146125
  };
146126
146126
 
146127
146127
 
146128
+ /***/ }),
146129
+
146130
+ /***/ 93948:
146131
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
146132
+
146133
+ "use strict";
146134
+
146135
+ const supportsColor = __webpack_require__(30395);
146136
+ const hasFlag = __webpack_require__(76738);
146137
+
146138
+ function parseVersion(versionString) {
146139
+ if (/^\d{3,4}$/.test(versionString)) {
146140
+ // Env var doesn't always use dots. example: 4601 => 46.1.0
146141
+ const m = /(\d{1,2})(\d{2})/.exec(versionString);
146142
+ return {
146143
+ major: 0,
146144
+ minor: parseInt(m[1], 10),
146145
+ patch: parseInt(m[2], 10)
146146
+ };
146147
+ }
146148
+
146149
+ const versions = (versionString || '').split('.').map(n => parseInt(n, 10));
146150
+ return {
146151
+ major: versions[0],
146152
+ minor: versions[1],
146153
+ patch: versions[2]
146154
+ };
146155
+ }
146156
+
146157
+ function supportsHyperlink(stream) {
146158
+ const {env} = process;
146159
+
146160
+ if ('FORCE_HYPERLINK' in env) {
146161
+ return !(env.FORCE_HYPERLINK.length > 0 && parseInt(env.FORCE_HYPERLINK, 10) === 0);
146162
+ }
146163
+
146164
+ if (hasFlag('no-hyperlink') || hasFlag('no-hyperlinks') || hasFlag('hyperlink=false') || hasFlag('hyperlink=never')) {
146165
+ return false;
146166
+ }
146167
+
146168
+ if (hasFlag('hyperlink=true') || hasFlag('hyperlink=always')) {
146169
+ return true;
146170
+ }
146171
+
146172
+ // If they specify no colors, they probably don't want hyperlinks.
146173
+ if (!supportsColor.supportsColor(stream)) {
146174
+ return false;
146175
+ }
146176
+
146177
+ if (stream && !stream.isTTY) {
146178
+ return false;
146179
+ }
146180
+
146181
+ if (process.platform === 'win32') {
146182
+ return false;
146183
+ }
146184
+
146185
+ if ('NETLIFY' in env) {
146186
+ return true;
146187
+ }
146188
+
146189
+ if ('CI' in env) {
146190
+ return false;
146191
+ }
146192
+
146193
+ if ('TEAMCITY_VERSION' in env) {
146194
+ return false;
146195
+ }
146196
+
146197
+ if ('TERM_PROGRAM' in env) {
146198
+ const version = parseVersion(env.TERM_PROGRAM_VERSION);
146199
+
146200
+ switch (env.TERM_PROGRAM) {
146201
+ case 'iTerm.app':
146202
+ if (version.major === 3) {
146203
+ return version.minor >= 1;
146204
+ }
146205
+
146206
+ return version.major > 3;
146207
+ // No default
146208
+ }
146209
+ }
146210
+
146211
+ if ('VTE_VERSION' in env) {
146212
+ // 0.50.0 was supposed to support hyperlinks, but throws a segfault
146213
+ if (env.VTE_VERSION === '0.50.0') {
146214
+ return false;
146215
+ }
146216
+
146217
+ const version = parseVersion(env.VTE_VERSION);
146218
+ return version.major > 0 || version.minor >= 50;
146219
+ }
146220
+
146221
+ return false;
146222
+ }
146223
+
146224
+ module.exports = {
146225
+ supportsHyperlink,
146226
+ stdout: supportsHyperlink(process.stdout),
146227
+ stderr: supportsHyperlink(process.stderr)
146228
+ };
146229
+
146230
+
146128
146231
  /***/ }),
146129
146232
 
146130
146233
  /***/ 29969:
@@ -193279,6 +193382,28 @@ function fullDiff (maxWidth, curWidth) {
193279
193382
  }
193280
193383
 
193281
193384
 
193385
+ /***/ }),
193386
+
193387
+ /***/ 48100:
193388
+ /***/ ((module) => {
193389
+
193390
+ "use strict";
193391
+
193392
+
193393
+ module.exports = options => {
193394
+ options = Object.assign({
193395
+ onlyFirst: false
193396
+ }, options);
193397
+
193398
+ const pattern = [
193399
+ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
193400
+ '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'
193401
+ ].join('|');
193402
+
193403
+ return new RegExp(pattern, options.onlyFirst ? undefined : 'g');
193404
+ };
193405
+
193406
+
193282
193407
  /***/ }),
193283
193408
 
193284
193409
  /***/ 42581:
@@ -193354,7 +193479,7 @@ module.exports = x => {
193354
193479
 
193355
193480
  "use strict";
193356
193481
 
193357
- const stripAnsi = __webpack_require__(25077);
193482
+ const stripAnsi = __webpack_require__(83695);
193358
193483
  const isFullwidthCodePoint = __webpack_require__(13690);
193359
193484
  const emojiRegex = __webpack_require__(42581)();
193360
193485
 
@@ -193394,6 +193519,21 @@ module.exports = input => {
193394
193519
  };
193395
193520
 
193396
193521
 
193522
+ /***/ }),
193523
+
193524
+ /***/ 83695:
193525
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
193526
+
193527
+ "use strict";
193528
+
193529
+ const ansiRegex = __webpack_require__(48100);
193530
+
193531
+ const stripAnsi = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;
193532
+
193533
+ module.exports = stripAnsi;
193534
+ module.exports.default = stripAnsi;
193535
+
193536
+
193397
193537
  /***/ }),
193398
193538
 
193399
193539
  /***/ 17074:
@@ -193401,11 +193541,17 @@ module.exports = input => {
193401
193541
 
193402
193542
  "use strict";
193403
193543
 
193404
- const x = module.exports;
193544
+ const ansiEscapes = module.exports;
193545
+ // TODO: remove this in the next major version
193546
+ module.exports.default = ansiEscapes;
193547
+
193405
193548
  const ESC = '\u001B[';
193549
+ const OSC = '\u001B]';
193550
+ const BEL = '\u0007';
193551
+ const SEP = ';';
193406
193552
  const isTerminalApp = process.env.TERM_PROGRAM === 'Apple_Terminal';
193407
193553
 
193408
- x.cursorTo = (x, y) => {
193554
+ ansiEscapes.cursorTo = (x, y) => {
193409
193555
  if (typeof x !== 'number') {
193410
193556
  throw new TypeError('The `x` argument is required');
193411
193557
  }
@@ -193417,7 +193563,7 @@ x.cursorTo = (x, y) => {
193417
193563
  return ESC + (y + 1) + ';' + (x + 1) + 'H';
193418
193564
  };
193419
193565
 
193420
- x.cursorMove = (x, y) => {
193566
+ ansiEscapes.cursorMove = (x, y) => {
193421
193567
  if (typeof x !== 'number') {
193422
193568
  throw new TypeError('The `x` argument is required');
193423
193569
  }
@@ -193439,69 +193585,118 @@ x.cursorMove = (x, y) => {
193439
193585
  return ret;
193440
193586
  };
193441
193587
 
193442
- x.cursorUp = count => ESC + (typeof count === 'number' ? count : 1) + 'A';
193443
- x.cursorDown = count => ESC + (typeof count === 'number' ? count : 1) + 'B';
193444
- x.cursorForward = count => ESC + (typeof count === 'number' ? count : 1) + 'C';
193445
- x.cursorBackward = count => ESC + (typeof count === 'number' ? count : 1) + 'D';
193588
+ ansiEscapes.cursorUp = (count = 1) => ESC + count + 'A';
193589
+ ansiEscapes.cursorDown = (count = 1) => ESC + count + 'B';
193590
+ ansiEscapes.cursorForward = (count = 1) => ESC + count + 'C';
193591
+ ansiEscapes.cursorBackward = (count = 1) => ESC + count + 'D';
193446
193592
 
193447
- x.cursorLeft = ESC + 'G';
193448
- x.cursorSavePosition = ESC + (isTerminalApp ? '7' : 's');
193449
- x.cursorRestorePosition = ESC + (isTerminalApp ? '8' : 'u');
193450
- x.cursorGetPosition = ESC + '6n';
193451
- x.cursorNextLine = ESC + 'E';
193452
- x.cursorPrevLine = ESC + 'F';
193453
- x.cursorHide = ESC + '?25l';
193454
- x.cursorShow = ESC + '?25h';
193593
+ ansiEscapes.cursorLeft = ESC + 'G';
193594
+ ansiEscapes.cursorSavePosition = isTerminalApp ? '\u001B7' : ESC + 's';
193595
+ ansiEscapes.cursorRestorePosition = isTerminalApp ? '\u001B8' : ESC + 'u';
193596
+ ansiEscapes.cursorGetPosition = ESC + '6n';
193597
+ ansiEscapes.cursorNextLine = ESC + 'E';
193598
+ ansiEscapes.cursorPrevLine = ESC + 'F';
193599
+ ansiEscapes.cursorHide = ESC + '?25l';
193600
+ ansiEscapes.cursorShow = ESC + '?25h';
193455
193601
 
193456
- x.eraseLines = count => {
193602
+ ansiEscapes.eraseLines = count => {
193457
193603
  let clear = '';
193458
193604
 
193459
193605
  for (let i = 0; i < count; i++) {
193460
- clear += x.eraseLine + (i < count - 1 ? x.cursorUp() : '');
193606
+ clear += ansiEscapes.eraseLine + (i < count - 1 ? ansiEscapes.cursorUp() : '');
193461
193607
  }
193462
193608
 
193463
193609
  if (count) {
193464
- clear += x.cursorLeft;
193610
+ clear += ansiEscapes.cursorLeft;
193465
193611
  }
193466
193612
 
193467
193613
  return clear;
193468
193614
  };
193469
193615
 
193470
- x.eraseEndLine = ESC + 'K';
193471
- x.eraseStartLine = ESC + '1K';
193472
- x.eraseLine = ESC + '2K';
193473
- x.eraseDown = ESC + 'J';
193474
- x.eraseUp = ESC + '1J';
193475
- x.eraseScreen = ESC + '2J';
193476
- x.scrollUp = ESC + 'S';
193477
- x.scrollDown = ESC + 'T';
193616
+ ansiEscapes.eraseEndLine = ESC + 'K';
193617
+ ansiEscapes.eraseStartLine = ESC + '1K';
193618
+ ansiEscapes.eraseLine = ESC + '2K';
193619
+ ansiEscapes.eraseDown = ESC + 'J';
193620
+ ansiEscapes.eraseUp = ESC + '1J';
193621
+ ansiEscapes.eraseScreen = ESC + '2J';
193622
+ ansiEscapes.scrollUp = ESC + 'S';
193623
+ ansiEscapes.scrollDown = ESC + 'T';
193478
193624
 
193479
- x.clearScreen = '\u001Bc';
193480
- x.beep = '\u0007';
193625
+ ansiEscapes.clearScreen = '\u001Bc';
193481
193626
 
193482
- x.image = (buf, opts) => {
193483
- opts = opts || {};
193627
+ ansiEscapes.clearTerminal = process.platform === 'win32' ?
193628
+ `${ansiEscapes.eraseScreen}${ESC}0f` :
193629
+ // 1. Erases the screen (Only done in case `2` is not supported)
193630
+ // 2. Erases the whole screen including scrollback buffer
193631
+ // 3. Moves cursor to the top-left position
193632
+ // More info: https://www.real-world-systems.com/docs/ANSIcode.html
193633
+ `${ansiEscapes.eraseScreen}${ESC}3J${ESC}H`;
193484
193634
 
193485
- let ret = '\u001B]1337;File=inline=1';
193635
+ ansiEscapes.beep = BEL;
193486
193636
 
193487
- if (opts.width) {
193488
- ret += `;width=${opts.width}`;
193637
+ ansiEscapes.link = (text, url) => {
193638
+ return [
193639
+ OSC,
193640
+ '8',
193641
+ SEP,
193642
+ SEP,
193643
+ url,
193644
+ BEL,
193645
+ text,
193646
+ OSC,
193647
+ '8',
193648
+ SEP,
193649
+ SEP,
193650
+ BEL
193651
+ ].join('');
193652
+ };
193653
+
193654
+ ansiEscapes.image = (buffer, options = {}) => {
193655
+ let ret = `${OSC}1337;File=inline=1`;
193656
+
193657
+ if (options.width) {
193658
+ ret += `;width=${options.width}`;
193489
193659
  }
193490
193660
 
193491
- if (opts.height) {
193492
- ret += `;height=${opts.height}`;
193661
+ if (options.height) {
193662
+ ret += `;height=${options.height}`;
193493
193663
  }
193494
193664
 
193495
- if (opts.preserveAspectRatio === false) {
193665
+ if (options.preserveAspectRatio === false) {
193496
193666
  ret += ';preserveAspectRatio=0';
193497
193667
  }
193498
193668
 
193499
- return ret + ':' + buf.toString('base64') + '\u0007';
193669
+ return ret + ':' + buffer.toString('base64') + BEL;
193500
193670
  };
193501
193671
 
193502
- x.iTerm = {};
193672
+ ansiEscapes.iTerm = {
193673
+ setCwd: (cwd = process.cwd()) => `${OSC}50;CurrentDir=${cwd}${BEL}`,
193674
+
193675
+ annotation: (message, options = {}) => {
193676
+ let ret = `${OSC}1337;`;
193677
+
193678
+ const hasX = typeof options.x !== 'undefined';
193679
+ const hasY = typeof options.y !== 'undefined';
193680
+ if ((hasX || hasY) && !(hasX && hasY && typeof options.length !== 'undefined')) {
193681
+ throw new Error('`x`, `y` and `length` must be defined when `x` or `y` is defined');
193682
+ }
193683
+
193684
+ message = message.replace(/\|/g, '');
193685
+
193686
+ ret += options.isHidden ? 'AddHiddenAnnotation=' : 'AddAnnotation=';
193687
+
193688
+ if (options.length > 0) {
193689
+ ret +=
193690
+ (hasX ?
193691
+ [message, options.length, options.x, options.y] :
193692
+ [options.length, message]).join('|');
193693
+ } else {
193694
+ ret += message;
193695
+ }
193503
193696
 
193504
- x.iTerm.setCwd = cwd => '\u001B]50;CurrentDir=' + (cwd || process.cwd()) + '\u0007';
193697
+ return ret + BEL;
193698
+ }
193699
+ };
193505
193700
 
193506
193701
 
193507
193702
  /***/ }),
@@ -193512,13 +193707,13 @@ x.iTerm.setCwd = cwd => '\u001B]50;CurrentDir=' + (cwd || process.cwd()) + '\u00
193512
193707
  "use strict";
193513
193708
 
193514
193709
 
193515
- module.exports = () => {
193710
+ module.exports = ({onlyFirst = false} = {}) => {
193516
193711
  const pattern = [
193517
- '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)',
193518
- '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))'
193712
+ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
193713
+ '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'
193519
193714
  ].join('|');
193520
193715
 
193521
- return new RegExp(pattern, 'g');
193716
+ return new RegExp(pattern, onlyFirst ? undefined : 'g');
193522
193717
  };
193523
193718
 
193524
193719
 
@@ -206360,34 +206555,9 @@ module.exports = string => typeof string === 'string' ? string.replace(ansiRegex
206360
206555
 
206361
206556
  "use strict";
206362
206557
 
206363
- const ansiRegex = __webpack_require__(5331);
206364
-
206365
- const stripAnsi = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;
206366
-
206367
- module.exports = stripAnsi;
206368
- module.exports.default = stripAnsi;
206558
+ const ansiRegex = __webpack_require__(30678);
206369
206559
 
206370
-
206371
- /***/ }),
206372
-
206373
- /***/ 5331:
206374
- /***/ ((module) => {
206375
-
206376
- "use strict";
206377
-
206378
-
206379
- module.exports = options => {
206380
- options = Object.assign({
206381
- onlyFirst: false
206382
- }, options);
206383
-
206384
- const pattern = [
206385
- '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
206386
- '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'
206387
- ].join('|');
206388
-
206389
- return new RegExp(pattern, options.onlyFirst ? undefined : 'g');
206390
- };
206560
+ module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;
206391
206561
 
206392
206562
 
206393
206563
  /***/ }),
@@ -215156,20 +215326,21 @@ exports.frameworks = [
215156
215326
  ],
215157
215327
  },
215158
215328
  {
215159
- name: 'SvelteKit',
215329
+ name: 'SvelteKit (Legacy Beta)',
215160
215330
  slug: 'sveltekit',
215161
215331
  demo: 'https://sveltekit-template.vercel.app',
215162
215332
  logo: 'https://api-frameworks.vercel.sh/framework-logos/svelte.svg',
215163
215333
  screenshot: 'https://assets.vercel.com/image/upload/v1647366075/front/import/sveltekit.png',
215164
215334
  tagline: 'SvelteKit is a framework for building web applications of all sizes.',
215165
- description: 'A SvelteKit app optimized Edge-first.',
215335
+ description: 'A SvelteKit legacy app optimized Edge-first.',
215166
215336
  website: 'https://kit.svelte.dev',
215337
+ sort: 99,
215167
215338
  envPrefix: 'VITE_',
215168
215339
  detectors: {
215169
215340
  every: [
215170
215341
  {
215171
215342
  path: 'package.json',
215172
- matchContent: '"(dev)?(d|D)ependencies":\\s*{[^}]*"@sveltejs\\/kit":\\s*".+?"[^}]*}',
215343
+ matchContent: '"(dev)?(d|D)ependencies":\\s*{[^}]*"@sveltejs\\/kit":\\s*"1\\.0\\.0-next\\.(\\d+)"[^}]*}',
215173
215344
  },
215174
215345
  ],
215175
215346
  },
@@ -215191,6 +215362,41 @@ exports.frameworks = [
215191
215362
  },
215192
215363
  getOutputDirName: async () => 'public',
215193
215364
  },
215365
+ {
215366
+ name: 'SvelteKit',
215367
+ slug: 'sveltekit-1',
215368
+ demo: 'https://sveltekit-1-template.vercel.app',
215369
+ logo: 'https://api-frameworks.vercel.sh/framework-logos/svelte.svg',
215370
+ screenshot: 'https://assets.vercel.com/image/upload/v1647366075/front/import/sveltekit.png',
215371
+ tagline: 'SvelteKit is a framework for building web applications of all sizes.',
215372
+ description: 'A SvelteKit app optimized Edge-first.',
215373
+ website: 'https://kit.svelte.dev',
215374
+ detectors: {
215375
+ every: [
215376
+ {
215377
+ path: 'package.json',
215378
+ matchContent: '"(dev)?(d|D)ependencies":\\s*{[^}]*"@sveltejs\\/kit":\\s*".+?"[^}]*}',
215379
+ },
215380
+ ],
215381
+ },
215382
+ settings: {
215383
+ installCommand: {
215384
+ placeholder: '`yarn install`, `pnpm install`, or `npm install`',
215385
+ },
215386
+ buildCommand: {
215387
+ placeholder: 'vite build',
215388
+ value: 'vite build',
215389
+ },
215390
+ devCommand: {
215391
+ placeholder: 'vite dev',
215392
+ value: 'vite dev --port $PORT',
215393
+ },
215394
+ outputDirectory: {
215395
+ value: 'public',
215396
+ },
215397
+ },
215398
+ getOutputDirName: async () => 'public',
215399
+ },
215194
215400
  {
215195
215401
  name: 'Ionic React',
215196
215402
  slug: 'ionic-react',
@@ -215864,7 +216070,7 @@ exports.frameworks = [
215864
216070
  every: [
215865
216071
  {
215866
216072
  path: 'package.json',
215867
- matchContent: '"(dev)?(d|D)ependencies":\\s*{[^}]*vitepress:\\s*".+?"[^}]*}',
216073
+ matchContent: '"(dev)?(d|D)ependencies":\\s*{[^}]*"vitepress":\\s*".+?"[^}]*}',
215868
216074
  },
215869
216075
  ],
215870
216076
  },
@@ -237201,6 +237407,7 @@ const help = () => {
237201
237407
 
237202
237408
  -h, --help Output usage information
237203
237409
  --environment Set the Environment (development, preview, production) when pulling Environment Variables
237410
+ --git-branch Specify the Git branch to pull specific Environment Variables for
237204
237411
  -A ${chalk_1.default.bold.underline('FILE')}, --local-config=${chalk_1.default.bold.underline('FILE')} Path to the local ${'`vercel.json`'} file
237205
237412
  -Q ${chalk_1.default.bold.underline('DIR')}, --global-config=${chalk_1.default.bold.underline('DIR')} Path to the global ${'`.vercel`'} directory
237206
237413
  -d, --debug Debug mode [off]
@@ -237264,6 +237471,7 @@ async function main(client) {
237264
237471
  '--yes': Boolean,
237265
237472
  '-y': '--yes',
237266
237473
  '--environment': String,
237474
+ '--git-branch': String,
237267
237475
  });
237268
237476
  }
237269
237477
  catch (error) {
@@ -237450,6 +237658,7 @@ async function pull(client, project, environment, opts, args, output, cwd, sourc
237450
237658
  const [filename = '.env'] = args;
237451
237659
  const fullPath = (0, path_1.resolve)(cwd, filename);
237452
237660
  const skipConfirmation = opts['--yes'];
237661
+ const gitBranch = opts['--git-branch'];
237453
237662
  const head = tryReadHeadSync(fullPath, Buffer.byteLength(CONTENTS_PREFIX));
237454
237663
  const exists = typeof head !== 'undefined';
237455
237664
  if (head === CONTENTS_PREFIX) {
@@ -237466,6 +237675,7 @@ async function pull(client, project, environment, opts, args, output, cwd, sourc
237466
237675
  output.spinner('Downloading');
237467
237676
  const records = (await (0, get_env_records_1.pullEnvRecords)(output, client, project.id, source, {
237468
237677
  target: environment || types_1.ProjectEnvTarget.Development,
237678
+ gitBranch,
237469
237679
  })).env;
237470
237680
  let deltaString = '';
237471
237681
  let oldEnv;
@@ -239710,6 +239920,7 @@ function processArgs(client) {
239710
239920
  return (0, get_args_1.default)(client.argv.slice(2), {
239711
239921
  '--yes': Boolean,
239712
239922
  '--environment': String,
239923
+ '--git-branch': String,
239713
239924
  '--debug': Boolean,
239714
239925
  '-d': '--debug',
239715
239926
  '-y': '--yes',
@@ -241529,6 +241740,9 @@ async function performCreateAlias(client, contextName, deployment, alias) {
241529
241740
  if (err.code === 'invalid_alias') {
241530
241741
  return new ERRORS.InvalidAlias(alias);
241531
241742
  }
241743
+ if (err.code === 'deployment_not_ready') {
241744
+ return new ERRORS.DeploymentNotReady({ url: deployment.url });
241745
+ }
241532
241746
  if (err.status === 403) {
241533
241747
  if (err.code === 'alias_in_use') {
241534
241748
  return new ERRORS.AliasInUse(alias);
@@ -241537,9 +241751,6 @@ async function performCreateAlias(client, contextName, deployment, alias) {
241537
241751
  return new ERRORS.DomainPermissionDenied(alias, contextName);
241538
241752
  }
241539
241753
  }
241540
- if (err.status === 400) {
241541
- return new ERRORS.DeploymentNotReady({ url: deployment.url });
241542
- }
241543
241754
  }
241544
241755
  throw err;
241545
241756
  }
@@ -243888,16 +244099,20 @@ async function createGitMeta(directory, output, project) {
243888
244099
  if (!remoteUrl) {
243889
244100
  return;
243890
244101
  }
243891
- const [commit, dirty] = await Promise.all([
243892
- getLastCommit(directory).catch(err => {
243893
- output.debug(`Failed to get last commit. The directory is likely not a Git repo, there are no latest commits, or it is corrupted.\n${err}`);
243894
- return;
243895
- }),
243896
- isDirty(directory, output),
244102
+ const [commitResult, dirtyResult] = await Promise.allSettled([
244103
+ getLastCommit(directory),
244104
+ isDirty(directory),
243897
244105
  ]);
243898
- if (!commit) {
244106
+ if (commitResult.status === 'rejected') {
244107
+ output.debug(`Failed to get last commit. The directory is likely not a Git repo, there are no latest commits, or it is corrupted.\n${commitResult.reason}`);
243899
244108
  return;
243900
244109
  }
244110
+ if (dirtyResult.status === 'rejected') {
244111
+ output.debug(`Failed to determine if Git repo has been modified:\n${dirtyResult.reason}`);
244112
+ return;
244113
+ }
244114
+ const dirty = dirtyResult.value;
244115
+ const commit = commitResult.value;
243901
244116
  return {
243902
244117
  remoteUrl,
243903
244118
  commitAuthorName: commit.author.name,
@@ -243911,28 +244126,27 @@ exports.createGitMeta = createGitMeta;
243911
244126
  function getLastCommit(directory) {
243912
244127
  return new Promise((resolve, reject) => {
243913
244128
  git_last_commit_1.default.getLastCommit((err, commit) => {
243914
- if (err)
243915
- return reject(err);
244129
+ if (err) {
244130
+ return reject((0, error_utils_1.normalizeError)(err));
244131
+ }
243916
244132
  resolve(commit);
243917
244133
  }, { dst: directory });
243918
244134
  });
243919
244135
  }
243920
- function isDirty(directory, output) {
243921
- return new Promise(resolve => {
244136
+ function isDirty(directory) {
244137
+ return new Promise((resolve, reject) => {
243922
244138
  // note: we specify the `--no-optional-locks` git flag so that `git status`
243923
244139
  // does not perform any "optional" operations such as optimizing the index
243924
244140
  // in the background: https://git-scm.com/docs/git-status#_background_refresh
243925
244141
  (0, child_process_1.exec)('git --no-optional-locks status -s', { cwd: directory }, function (err, stdout, stderr) {
243926
- let debugMessage = `Failed to determine if Git repo has been modified:`;
243927
- stderr = stderr && stderr.trim();
243928
- if (err || stderr) {
243929
- if (err)
243930
- debugMessage += `\n${err}`;
243931
- if (stderr)
243932
- debugMessage += `\n${stderr.trim()}`;
243933
- output.debug(debugMessage);
243934
- return resolve(false);
244142
+ if (err) {
244143
+ return reject(err);
244144
+ }
244145
+ if (stderr !== undefined && stderr.trim().length > 0) {
244146
+ return reject(new Error(stderr));
243935
244147
  }
244148
+ // Example output (when dirty):
244149
+ // M ../fs-detectors/src/index.ts
243936
244150
  resolve(stdout.trim().length > 0);
243937
244151
  });
243938
244152
  });
@@ -248884,37 +249098,13 @@ exports.default = formatEnvTarget;
248884
249098
  /***/ }),
248885
249099
 
248886
249100
  /***/ 4622:
248887
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
249101
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
248888
249102
 
248889
249103
  "use strict";
248890
249104
 
248891
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
248892
- if (k2 === undefined) k2 = k;
248893
- var desc = Object.getOwnPropertyDescriptor(m, k);
248894
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
248895
- desc = { enumerable: true, get: function() { return m[k]; } };
248896
- }
248897
- Object.defineProperty(o, k2, desc);
248898
- }) : (function(o, m, k, k2) {
248899
- if (k2 === undefined) k2 = k;
248900
- o[k2] = m[k];
248901
- }));
248902
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
248903
- Object.defineProperty(o, "default", { enumerable: true, value: v });
248904
- }) : function(o, v) {
248905
- o["default"] = v;
248906
- });
248907
- var __importStar = (this && this.__importStar) || function (mod) {
248908
- if (mod && mod.__esModule) return mod;
248909
- var result = {};
248910
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
248911
- __setModuleDefault(result, mod);
248912
- return result;
248913
- };
248914
249105
  Object.defineProperty(exports, "__esModule", ({ value: true }));
248915
249106
  exports.pullEnvRecords = void 0;
248916
249107
  const url_1 = __webpack_require__(78835);
248917
- const path = __importStar(__webpack_require__(85622));
248918
249108
  async function getEnvRecords(output, client, projectId, source, { target, gitBranch, decrypt, } = {}) {
248919
249109
  output.debug(`Fetching Environment Variables of project ${projectId} and target ${target}`);
248920
249110
  const query = new url_1.URLSearchParams();
@@ -248939,7 +249129,10 @@ async function pullEnvRecords(output, client, projectId, source, { target, gitBr
248939
249129
  const query = new url_1.URLSearchParams();
248940
249130
  let url = `/v1/env/pull/${projectId}`;
248941
249131
  if (target) {
248942
- url = path.join(url, target, gitBranch ?? '');
249132
+ url += `/${encodeURIComponent(target)}`;
249133
+ if (gitBranch) {
249134
+ url += `/${encodeURIComponent(gitBranch)}`;
249135
+ }
248943
249136
  }
248944
249137
  if (source) {
248945
249138
  query.set('source', source);
@@ -253766,18 +253959,43 @@ exports.default = code;
253766
253959
 
253767
253960
  "use strict";
253768
253961
 
253962
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
253963
+ if (k2 === undefined) k2 = k;
253964
+ var desc = Object.getOwnPropertyDescriptor(m, k);
253965
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
253966
+ desc = { enumerable: true, get: function() { return m[k]; } };
253967
+ }
253968
+ Object.defineProperty(o, k2, desc);
253969
+ }) : (function(o, m, k, k2) {
253970
+ if (k2 === undefined) k2 = k;
253971
+ o[k2] = m[k];
253972
+ }));
253973
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
253974
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
253975
+ }) : function(o, v) {
253976
+ o["default"] = v;
253977
+ });
253978
+ var __importStar = (this && this.__importStar) || function (mod) {
253979
+ if (mod && mod.__esModule) return mod;
253980
+ var result = {};
253981
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
253982
+ __setModuleDefault(result, mod);
253983
+ return result;
253984
+ };
253769
253985
  var __importDefault = (this && this.__importDefault) || function (mod) {
253770
253986
  return (mod && mod.__esModule) ? mod : { "default": mod };
253771
253987
  };
253772
253988
  Object.defineProperty(exports, "__esModule", ({ value: true }));
253773
253989
  exports.Output = void 0;
253774
253990
  const chalk_1 = __importDefault(__webpack_require__(961));
253991
+ const ansiEscapes = __importStar(__webpack_require__(17074));
253992
+ const supports_hyperlinks_1 = __webpack_require__(93948);
253775
253993
  const link_1 = __importDefault(__webpack_require__(98472));
253776
253994
  const wait_1 = __importDefault(__webpack_require__(22015));
253777
253995
  const error_utils_1 = __webpack_require__(35772);
253778
253996
  const IS_TEST = process.env.NODE_ENV === 'test';
253779
253997
  class Output {
253780
- constructor(stream, { debug: debugEnabled = false } = {}) {
253998
+ constructor(stream, { debug: debugEnabled = false, supportsHyperlink = (0, supports_hyperlinks_1.supportsHyperlink)(stream), } = {}) {
253781
253999
  this.isDebugEnabled = () => {
253782
254000
  return this.debugEnabled;
253783
254001
  };
@@ -253870,8 +254088,25 @@ class Output {
253870
254088
  }
253871
254089
  return promise;
253872
254090
  };
254091
+ /**
254092
+ * Returns an ANSI formatted hyperlink when support has been enabled.
254093
+ */
254094
+ this.link = (text, url, { fallback } = {}) => {
254095
+ // Based on https://github.com/sindresorhus/terminal-link (MIT license)
254096
+ if (!this.supportsHyperlink) {
254097
+ // If the fallback has been explicitly disabled, don't modify the text itself
254098
+ if (fallback === false) {
254099
+ return (0, link_1.default)(text);
254100
+ }
254101
+ return typeof fallback === 'function'
254102
+ ? fallback()
254103
+ : `${text} (${(0, link_1.default)(url)})`;
254104
+ }
254105
+ return ansiEscapes.link(chalk_1.default.cyan(text), url);
254106
+ };
253873
254107
  this.stream = stream;
253874
254108
  this.debugEnabled = debugEnabled;
254109
+ this.supportsHyperlink = supportsHyperlink;
253875
254110
  this.spinnerMessage = '';
253876
254111
  this._spinner = null;
253877
254112
  }
@@ -256356,7 +256591,7 @@ module.exports = JSON.parse("{\"application/1d-interleaved-parityfec\":{\"source
256356
256591
  /***/ ((module) => {
256357
256592
 
256358
256593
  "use strict";
256359
- module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.8.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 --bail\",\"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.7.0\",\"@vercel/go\":\"2.2.19\",\"@vercel/hydrogen\":\"0.0.33\",\"@vercel/next\":\"3.3.2\",\"@vercel/node\":\"2.8.0\",\"@vercel/python\":\"3.1.29\",\"@vercel/redwood\":\"1.0.39\",\"@vercel/remix\":\"1.1.1\",\"@vercel/ruby\":\"1.3.45\",\"@vercel/static-build\":\"1.0.42\",\"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.21\",\"@vercel/error-utils\":\"1.0.3\",\"@vercel/frameworks\":\"1.1.14\",\"@vercel/fs-detectors\":\"3.5.4\",\"@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\",\"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\":\"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\"]}}");
256594
+ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.10.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 --bail\",\"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.7.1\",\"@vercel/go\":\"2.2.20\",\"@vercel/hydrogen\":\"0.0.34\",\"@vercel/next\":\"3.3.4\",\"@vercel/node\":\"2.8.1\",\"@vercel/python\":\"3.1.30\",\"@vercel/redwood\":\"1.0.40\",\"@vercel/remix\":\"1.1.2\",\"@vercel/ruby\":\"1.3.46\",\"@vercel/static-build\":\"1.0.43\",\"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/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.22\",\"@vercel/error-utils\":\"1.0.3\",\"@vercel/frameworks\":\"1.1.15\",\"@vercel/fs-detectors\":\"3.5.5\",\"@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\":\"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\",\"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.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\"]}}");
256360
256595
 
256361
256596
  /***/ }),
256362
256597
 
@@ -256364,7 +256599,7 @@ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.8.0\",\"prefe
256364
256599
  /***/ ((module) => {
256365
256600
 
256366
256601
  "use strict";
256367
- module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.2.21\",\"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\":\"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\":\"5.7.0\",\"@vercel/routing-utils\":\"2.1.3\",\"@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\"}}");
256602
+ module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.2.22\",\"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\":\"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\":\"5.7.1\",\"@vercel/routing-utils\":\"2.1.3\",\"@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\"}}");
256368
256603
 
256369
256604
  /***/ }),
256370
256605
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "28.8.0",
3
+ "version": "28.10.0",
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": "5.7.0",
45
- "@vercel/go": "2.2.19",
46
- "@vercel/hydrogen": "0.0.33",
47
- "@vercel/next": "3.3.2",
48
- "@vercel/node": "2.8.0",
49
- "@vercel/python": "3.1.29",
50
- "@vercel/redwood": "1.0.39",
51
- "@vercel/remix": "1.1.1",
52
- "@vercel/ruby": "1.3.45",
53
- "@vercel/static-build": "1.0.42",
44
+ "@vercel/build-utils": "5.7.1",
45
+ "@vercel/go": "2.2.20",
46
+ "@vercel/hydrogen": "0.0.34",
47
+ "@vercel/next": "3.3.4",
48
+ "@vercel/node": "2.8.1",
49
+ "@vercel/python": "3.1.30",
50
+ "@vercel/redwood": "1.0.40",
51
+ "@vercel/remix": "1.1.2",
52
+ "@vercel/ruby": "1.3.46",
53
+ "@vercel/static-build": "1.0.43",
54
54
  "update-notifier": "5.1.0"
55
55
  },
56
56
  "devDependencies": {
@@ -60,8 +60,6 @@
60
60
  "@sindresorhus/slugify": "0.11.0",
61
61
  "@swc/core": "1.2.218",
62
62
  "@tootallnate/once": "1.1.2",
63
- "@types/ansi-escapes": "3.0.0",
64
- "@types/ansi-regex": "4.0.0",
65
63
  "@types/async-retry": "1.2.1",
66
64
  "@types/bytes": "3.0.0",
67
65
  "@types/chance": "1.1.3",
@@ -95,17 +93,17 @@
95
93
  "@types/which": "1.3.2",
96
94
  "@types/write-json-file": "2.2.1",
97
95
  "@types/yauzl-promise": "2.1.0",
98
- "@vercel/client": "12.2.21",
96
+ "@vercel/client": "12.2.22",
99
97
  "@vercel/error-utils": "1.0.3",
100
- "@vercel/frameworks": "1.1.14",
101
- "@vercel/fs-detectors": "3.5.4",
98
+ "@vercel/frameworks": "1.1.15",
99
+ "@vercel/fs-detectors": "3.5.5",
102
100
  "@vercel/fun": "1.0.4",
103
101
  "@vercel/ncc": "0.24.0",
104
102
  "@zeit/source-map-support": "0.6.2",
105
103
  "ajv": "6.12.2",
106
104
  "alpha-sort": "2.0.1",
107
- "ansi-escapes": "3.0.0",
108
- "ansi-regex": "3.0.0",
105
+ "ansi-escapes": "4.3.2",
106
+ "ansi-regex": "5.0.1",
109
107
  "arg": "5.0.0",
110
108
  "async-listen": "1.2.0",
111
109
  "async-retry": "1.1.3",
@@ -122,7 +120,6 @@
122
120
  "debug": "3.1.0",
123
121
  "dot": "1.1.3",
124
122
  "dotenv": "4.0.0",
125
- "email-prompt": "0.3.2",
126
123
  "email-validator": "1.1.1",
127
124
  "epipebomb": "1.0.0",
128
125
  "escape-html": "1.0.3",
@@ -162,8 +159,9 @@
162
159
  "rimraf": "3.0.2",
163
160
  "semver": "5.5.0",
164
161
  "serve-handler": "6.1.1",
165
- "strip-ansi": "5.2.0",
162
+ "strip-ansi": "6.0.1",
166
163
  "stripe": "5.1.0",
164
+ "supports-hyperlinks": "2.2.0",
167
165
  "tar-fs": "1.16.3",
168
166
  "test-listen": "1.1.0",
169
167
  "text-table": "0.2.0",
@@ -195,5 +193,5 @@
195
193
  "<rootDir>/test/**/*.test.ts"
196
194
  ]
197
195
  },
198
- "gitHead": "584d0ea8535f1fad5588a4dc51269d4985a32875"
196
+ "gitHead": "04e9f771dff574e48d4128acd883935c50511425"
199
197
  }