vercel 25.1.0 → 25.1.1-canary.10

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 +761 -208
  2. package/package.json +17 -14
package/dist/index.js CHANGED
@@ -68574,6 +68574,87 @@ module.exports.array = (stream, options) => getStream(stream, Object.assign({},
68574
68574
  module.exports.MaxBufferError = MaxBufferError;
68575
68575
 
68576
68576
 
68577
+ /***/ }),
68578
+
68579
+ /***/ 13495:
68580
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
68581
+
68582
+ const process = __webpack_require__(63129),
68583
+ splitCharacter = '<##>'
68584
+
68585
+ const executeCommand = (command, options, callback) => {
68586
+ let dst = __dirname
68587
+
68588
+ if(!!options && options.dst) {
68589
+ dst = options.dst
68590
+ }
68591
+
68592
+ process.exec(command, {cwd: dst}, function(err, stdout, stderr) {
68593
+ if (stdout === '') {
68594
+ callback('this does not look like a git repo')
68595
+ return
68596
+ }
68597
+
68598
+ if (stderr) {
68599
+ callback(stderr)
68600
+ return
68601
+ }
68602
+
68603
+ callback(null, stdout)
68604
+ })
68605
+ }
68606
+
68607
+ const prettyFormat = ["%h", "%H", "%s", "%f", "%b", "%at", "%ct", "%an", "%ae", "%cn", "%ce", "%N", ""]
68608
+
68609
+ const getCommandString = splitCharacter =>
68610
+ 'git log -1 --pretty=format:"' + prettyFormat.join(splitCharacter) +'"' +
68611
+ ' && git rev-parse --abbrev-ref HEAD' +
68612
+ ' && git tag --contains HEAD'
68613
+
68614
+ const getLastCommit = (callback, options) => {
68615
+ const command = getCommandString(splitCharacter)
68616
+
68617
+ executeCommand(command, options, function(err, res) {
68618
+ if (err) {
68619
+ callback(err)
68620
+ return
68621
+ }
68622
+
68623
+ var a = res.split(splitCharacter)
68624
+
68625
+ // e.g. master\n or master\nv1.1\n or master\nv1.1\nv1.2\n
68626
+ var branchAndTags = a[a.length-1].split('\n').filter(n => n)
68627
+ var branch = branchAndTags[0]
68628
+ var tags = branchAndTags.slice(1)
68629
+
68630
+ callback(null, {
68631
+ shortHash: a[0],
68632
+ hash: a[1],
68633
+ subject: a[2],
68634
+ sanitizedSubject: a[3],
68635
+ body: a[4],
68636
+ authoredOn: a[5],
68637
+ committedOn: a[6],
68638
+ author: {
68639
+ name: a[7],
68640
+ email: a[8],
68641
+ },
68642
+ committer: {
68643
+ name: a[9],
68644
+ email: a[10]
68645
+ },
68646
+ notes: a[11],
68647
+ branch,
68648
+ tags
68649
+ })
68650
+ })
68651
+ }
68652
+
68653
+ module.exports = {
68654
+ getLastCommit
68655
+ }
68656
+
68657
+
68577
68658
  /***/ }),
68578
68659
 
68579
68660
  /***/ 97507:
@@ -202740,7 +202821,7 @@ async function detectBuilders(files, pkg, options = {}) {
202740
202821
  // and package.json can be served as static files
202741
202822
  frontendBuilder = {
202742
202823
  use: '@vercel/static',
202743
- src: '!{api/**,package.json}',
202824
+ src: '!{api/**,package.json,middleware.[jt]s}',
202744
202825
  config: {
202745
202826
  zeroConfig: true,
202746
202827
  },
@@ -202790,7 +202871,13 @@ async function detectBuilders(files, pkg, options = {}) {
202790
202871
  }
202791
202872
  exports.detectBuilders = detectBuilders;
202792
202873
  function maybeGetApiBuilder(fileName, apiMatches, options) {
202793
- if (!fileName.startsWith('api/')) {
202874
+ const middleware = fileName === 'middleware.js' || fileName === 'middleware.ts';
202875
+ // Root-level Middleware file is handled by `@vercel/next`, so don't
202876
+ // schedule a separate Builder when "nextjs" framework is selected
202877
+ if (middleware && options.projectSettings?.framework === 'nextjs') {
202878
+ return null;
202879
+ }
202880
+ if (!(fileName.startsWith('api/') || middleware)) {
202794
202881
  return null;
202795
202882
  }
202796
202883
  if (fileName.includes('/.')) {
@@ -202809,11 +202896,14 @@ function maybeGetApiBuilder(fileName, apiMatches, options) {
202809
202896
  return src === fileName || minimatch_1.default(fileName, src);
202810
202897
  });
202811
202898
  const { fnPattern, func } = getFunction(fileName, options);
202812
- const use = (func && func.runtime) || (match && match.use);
202899
+ const use = func?.runtime || match?.use;
202813
202900
  if (!use) {
202814
202901
  return null;
202815
202902
  }
202816
202903
  const config = { zeroConfig: true };
202904
+ if (middleware) {
202905
+ config.middleware = true;
202906
+ }
202817
202907
  if (fnPattern && func) {
202818
202908
  config.functions = { [fnPattern]: func };
202819
202909
  if (func.includeFiles) {
@@ -202843,6 +202933,7 @@ function getFunction(fileName, { functions = {} }) {
202843
202933
  function getApiMatches() {
202844
202934
  const config = { zeroConfig: true };
202845
202935
  return [
202936
+ { src: 'middleware.[jt]s', use: `@vercel/node`, config },
202846
202937
  { src: 'api/**/*.js', use: `@vercel/node`, config },
202847
202938
  { src: 'api/**/*.mjs', use: `@vercel/node`, config },
202848
202939
  { src: 'api/**/*.ts', use: `@vercel/node`, config },
@@ -203387,7 +203478,7 @@ function sortFilesBySegmentCount(fileA, fileB) {
203387
203478
  /***/ }),
203388
203479
 
203389
203480
  /***/ 1182:
203390
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_981248__) {
203481
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_981719__) {
203391
203482
 
203392
203483
  "use strict";
203393
203484
 
@@ -203396,8 +203487,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
203396
203487
  };
203397
203488
  Object.defineProperty(exports, "__esModule", ({ value: true }));
203398
203489
  exports.detectFileSystemAPI = void 0;
203399
- const semver_1 = __importDefault(__nested_webpack_require_981248__(2879));
203400
- const _1 = __nested_webpack_require_981248__(2855);
203490
+ const semver_1 = __importDefault(__nested_webpack_require_981719__(2879));
203491
+ const _1 = __nested_webpack_require_981719__(2855);
203401
203492
  const enableFileSystemApiFrameworks = new Set(['solidstart']);
203402
203493
  /**
203403
203494
  * If the Deployment can be built with the new File System API,
@@ -203841,7 +203932,7 @@ function getSuggestion(topLevelProp, additionalProperty) {
203841
203932
  /***/ }),
203842
203933
 
203843
203934
  /***/ 2397:
203844
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_997181__) {
203935
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_997652__) {
203845
203936
 
203846
203937
  "use strict";
203847
203938
 
@@ -203849,8 +203940,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
203849
203940
  return (mod && mod.__esModule) ? mod : { "default": mod };
203850
203941
  };
203851
203942
  Object.defineProperty(exports, "__esModule", ({ value: true }));
203852
- const assert_1 = __importDefault(__nested_webpack_require_997181__(2357));
203853
- const into_stream_1 = __importDefault(__nested_webpack_require_997181__(6130));
203943
+ const assert_1 = __importDefault(__nested_webpack_require_997652__(2357));
203944
+ const into_stream_1 = __importDefault(__nested_webpack_require_997652__(6130));
203854
203945
  class FileBlob {
203855
203946
  constructor({ mode = 0o100644, contentType, data }) {
203856
203947
  assert_1.default(typeof mode === 'number');
@@ -203885,7 +203976,7 @@ exports.default = FileBlob;
203885
203976
  /***/ }),
203886
203977
 
203887
203978
  /***/ 9331:
203888
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_998699__) {
203979
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_999170__) {
203889
203980
 
203890
203981
  "use strict";
203891
203982
 
@@ -203893,11 +203984,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
203893
203984
  return (mod && mod.__esModule) ? mod : { "default": mod };
203894
203985
  };
203895
203986
  Object.defineProperty(exports, "__esModule", ({ value: true }));
203896
- const assert_1 = __importDefault(__nested_webpack_require_998699__(2357));
203897
- const fs_extra_1 = __importDefault(__nested_webpack_require_998699__(5392));
203898
- const multistream_1 = __importDefault(__nested_webpack_require_998699__(8179));
203899
- const path_1 = __importDefault(__nested_webpack_require_998699__(5622));
203900
- const async_sema_1 = __importDefault(__nested_webpack_require_998699__(5758));
203987
+ const assert_1 = __importDefault(__nested_webpack_require_999170__(2357));
203988
+ const fs_extra_1 = __importDefault(__nested_webpack_require_999170__(5392));
203989
+ const multistream_1 = __importDefault(__nested_webpack_require_999170__(8179));
203990
+ const path_1 = __importDefault(__nested_webpack_require_999170__(5622));
203991
+ const async_sema_1 = __importDefault(__nested_webpack_require_999170__(5758));
203901
203992
  const semaToPreventEMFILE = new async_sema_1.default(20);
203902
203993
  class FileFsRef {
203903
203994
  constructor({ mode = 0o100644, contentType, fsPath }) {
@@ -203963,7 +204054,7 @@ exports.default = FileFsRef;
203963
204054
  /***/ }),
203964
204055
 
203965
204056
  /***/ 5187:
203966
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1001503__) {
204057
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1001974__) {
203967
204058
 
203968
204059
  "use strict";
203969
204060
 
@@ -203971,11 +204062,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
203971
204062
  return (mod && mod.__esModule) ? mod : { "default": mod };
203972
204063
  };
203973
204064
  Object.defineProperty(exports, "__esModule", ({ value: true }));
203974
- const assert_1 = __importDefault(__nested_webpack_require_1001503__(2357));
203975
- const node_fetch_1 = __importDefault(__nested_webpack_require_1001503__(2197));
203976
- const multistream_1 = __importDefault(__nested_webpack_require_1001503__(8179));
203977
- const async_retry_1 = __importDefault(__nested_webpack_require_1001503__(3691));
203978
- const async_sema_1 = __importDefault(__nested_webpack_require_1001503__(5758));
204065
+ const assert_1 = __importDefault(__nested_webpack_require_1001974__(2357));
204066
+ const node_fetch_1 = __importDefault(__nested_webpack_require_1001974__(2197));
204067
+ const multistream_1 = __importDefault(__nested_webpack_require_1001974__(8179));
204068
+ const async_retry_1 = __importDefault(__nested_webpack_require_1001974__(3691));
204069
+ const async_sema_1 = __importDefault(__nested_webpack_require_1001974__(5758));
203979
204070
  const semaToDownloadFromS3 = new async_sema_1.default(5);
203980
204071
  class BailableError extends Error {
203981
204072
  constructor(...args) {
@@ -204056,7 +204147,7 @@ exports.default = FileRef;
204056
204147
  /***/ }),
204057
204148
 
204058
204149
  /***/ 1611:
204059
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1004904__) {
204150
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1005375__) {
204060
204151
 
204061
204152
  "use strict";
204062
204153
 
@@ -204065,11 +204156,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
204065
204156
  };
204066
204157
  Object.defineProperty(exports, "__esModule", ({ value: true }));
204067
204158
  exports.isSymbolicLink = void 0;
204068
- const path_1 = __importDefault(__nested_webpack_require_1004904__(5622));
204069
- const debug_1 = __importDefault(__nested_webpack_require_1004904__(1868));
204070
- const file_fs_ref_1 = __importDefault(__nested_webpack_require_1004904__(9331));
204071
- const fs_extra_1 = __nested_webpack_require_1004904__(5392);
204072
- const stream_to_buffer_1 = __importDefault(__nested_webpack_require_1004904__(2560));
204159
+ const path_1 = __importDefault(__nested_webpack_require_1005375__(5622));
204160
+ const debug_1 = __importDefault(__nested_webpack_require_1005375__(1868));
204161
+ const file_fs_ref_1 = __importDefault(__nested_webpack_require_1005375__(9331));
204162
+ const fs_extra_1 = __nested_webpack_require_1005375__(5392);
204163
+ const stream_to_buffer_1 = __importDefault(__nested_webpack_require_1005375__(2560));
204073
204164
  const S_IFMT = 61440; /* 0170000 type of file */
204074
204165
  const S_IFLNK = 40960; /* 0120000 symbolic link */
204075
204166
  function isSymbolicLink(mode) {
@@ -204142,7 +204233,7 @@ exports.default = download;
204142
204233
  /***/ }),
204143
204234
 
204144
204235
  /***/ 5706:
204145
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1008361__) {
204236
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1008832__) {
204146
204237
 
204147
204238
  "use strict";
204148
204239
 
@@ -204151,7 +204242,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
204151
204242
  };
204152
204243
  Object.defineProperty(exports, "__esModule", ({ value: true }));
204153
204244
  exports.getGlobFs = void 0;
204154
- const fs_1 = __importDefault(__nested_webpack_require_1008361__(5747));
204245
+ const fs_1 = __importDefault(__nested_webpack_require_1008832__(5747));
204155
204246
  function normalizePath(path) {
204156
204247
  // on windows, this will return a path like
204157
204248
  // D:/c/package.json
@@ -204221,14 +204312,14 @@ exports.getGlobFs = getGlobFs;
204221
204312
  /***/ }),
204222
204313
 
204223
204314
  /***/ 3838:
204224
- /***/ ((__unused_webpack_module, exports, __nested_webpack_require_1010817__) => {
204315
+ /***/ ((__unused_webpack_module, exports, __nested_webpack_require_1011288__) => {
204225
204316
 
204226
204317
  "use strict";
204227
204318
 
204228
204319
  Object.defineProperty(exports, "__esModule", ({ value: true }));
204229
- const path_1 = __nested_webpack_require_1010817__(5622);
204230
- const os_1 = __nested_webpack_require_1010817__(2087);
204231
- const fs_extra_1 = __nested_webpack_require_1010817__(5392);
204320
+ const path_1 = __nested_webpack_require_1011288__(5622);
204321
+ const os_1 = __nested_webpack_require_1011288__(2087);
204322
+ const fs_extra_1 = __nested_webpack_require_1011288__(5392);
204232
204323
  async function getWritableDirectory() {
204233
204324
  const name = Math.floor(Math.random() * 0x7fffffff).toString(16);
204234
204325
  const directory = path_1.join(os_1.tmpdir(), name);
@@ -204241,7 +204332,7 @@ exports.default = getWritableDirectory;
204241
204332
  /***/ }),
204242
204333
 
204243
204334
  /***/ 4240:
204244
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1011397__) {
204335
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1011868__) {
204245
204336
 
204246
204337
  "use strict";
204247
204338
 
@@ -204249,13 +204340,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
204249
204340
  return (mod && mod.__esModule) ? mod : { "default": mod };
204250
204341
  };
204251
204342
  Object.defineProperty(exports, "__esModule", ({ value: true }));
204252
- const path_1 = __importDefault(__nested_webpack_require_1011397__(5622));
204253
- const assert_1 = __importDefault(__nested_webpack_require_1011397__(2357));
204254
- const glob_1 = __importDefault(__nested_webpack_require_1011397__(1104));
204255
- const util_1 = __nested_webpack_require_1011397__(1669);
204256
- const fs_extra_1 = __nested_webpack_require_1011397__(5392);
204257
- const normalize_path_1 = __nested_webpack_require_1011397__(6261);
204258
- const file_fs_ref_1 = __importDefault(__nested_webpack_require_1011397__(9331));
204343
+ const path_1 = __importDefault(__nested_webpack_require_1011868__(5622));
204344
+ const assert_1 = __importDefault(__nested_webpack_require_1011868__(2357));
204345
+ const glob_1 = __importDefault(__nested_webpack_require_1011868__(1104));
204346
+ const util_1 = __nested_webpack_require_1011868__(1669);
204347
+ const fs_extra_1 = __nested_webpack_require_1011868__(5392);
204348
+ const normalize_path_1 = __nested_webpack_require_1011868__(6261);
204349
+ const file_fs_ref_1 = __importDefault(__nested_webpack_require_1011868__(9331));
204259
204350
  const vanillaGlob = util_1.promisify(glob_1.default);
204260
204351
  async function glob(pattern, opts, mountpoint) {
204261
204352
  let options;
@@ -204301,7 +204392,7 @@ exports.default = glob;
204301
204392
  /***/ }),
204302
204393
 
204303
204394
  /***/ 7903:
204304
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1013593__) {
204395
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1014064__) {
204305
204396
 
204306
204397
  "use strict";
204307
204398
 
@@ -204310,9 +204401,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
204310
204401
  };
204311
204402
  Object.defineProperty(exports, "__esModule", ({ value: true }));
204312
204403
  exports.getSupportedNodeVersion = exports.getDiscontinuedNodeVersions = exports.getLatestNodeVersion = void 0;
204313
- const semver_1 = __nested_webpack_require_1013593__(2879);
204314
- const errors_1 = __nested_webpack_require_1013593__(3983);
204315
- const debug_1 = __importDefault(__nested_webpack_require_1013593__(1868));
204404
+ const semver_1 = __nested_webpack_require_1014064__(2879);
204405
+ const errors_1 = __nested_webpack_require_1014064__(3983);
204406
+ const debug_1 = __importDefault(__nested_webpack_require_1014064__(1868));
204316
204407
  const allOptions = [
204317
204408
  { major: 16, range: '16.x', runtime: 'nodejs16.x' },
204318
204409
  { major: 14, range: '14.x', runtime: 'nodejs14.x' },
@@ -204412,7 +204503,7 @@ exports.normalizePath = normalizePath;
204412
204503
  /***/ }),
204413
204504
 
204414
204505
  /***/ 7792:
204415
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1017596__) {
204506
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1018067__) {
204416
204507
 
204417
204508
  "use strict";
204418
204509
 
@@ -204421,9 +204512,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
204421
204512
  };
204422
204513
  Object.defineProperty(exports, "__esModule", ({ value: true }));
204423
204514
  exports.readConfigFile = void 0;
204424
- const js_yaml_1 = __importDefault(__nested_webpack_require_1017596__(6540));
204425
- const toml_1 = __importDefault(__nested_webpack_require_1017596__(9434));
204426
- const fs_extra_1 = __nested_webpack_require_1017596__(5392);
204515
+ const js_yaml_1 = __importDefault(__nested_webpack_require_1018067__(6540));
204516
+ const toml_1 = __importDefault(__nested_webpack_require_1018067__(9434));
204517
+ const fs_extra_1 = __nested_webpack_require_1018067__(5392);
204427
204518
  async function readFileOrNull(file) {
204428
204519
  try {
204429
204520
  const data = await fs_extra_1.readFile(file);
@@ -204478,7 +204569,7 @@ exports.default = rename;
204478
204569
  /***/ }),
204479
204570
 
204480
204571
  /***/ 1442:
204481
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1019389__) {
204572
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1019860__) {
204482
204573
 
204483
204574
  "use strict";
204484
204575
 
@@ -204487,17 +204578,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
204487
204578
  };
204488
204579
  Object.defineProperty(exports, "__esModule", ({ value: true }));
204489
204580
  exports.installDependencies = exports.getScriptName = exports.runPipInstall = exports.runBundleInstall = exports.runPackageJsonScript = exports.runCustomInstallCommand = exports.getEnvForPackageManager = exports.runNpmInstall = exports.walkParentDirs = exports.scanParentDirs = exports.getNodeVersion = exports.getSpawnOptions = exports.runShellScript = exports.getNodeBinPath = exports.execCommand = exports.spawnCommand = exports.execAsync = exports.spawnAsync = void 0;
204490
- const assert_1 = __importDefault(__nested_webpack_require_1019389__(2357));
204491
- const fs_extra_1 = __importDefault(__nested_webpack_require_1019389__(5392));
204492
- const path_1 = __importDefault(__nested_webpack_require_1019389__(5622));
204493
- const async_sema_1 = __importDefault(__nested_webpack_require_1019389__(5758));
204494
- const cross_spawn_1 = __importDefault(__nested_webpack_require_1019389__(7618));
204495
- const semver_1 = __nested_webpack_require_1019389__(2879);
204496
- const util_1 = __nested_webpack_require_1019389__(1669);
204497
- const debug_1 = __importDefault(__nested_webpack_require_1019389__(1868));
204498
- const errors_1 = __nested_webpack_require_1019389__(3983);
204499
- const node_version_1 = __nested_webpack_require_1019389__(7903);
204500
- const read_config_file_1 = __nested_webpack_require_1019389__(7792);
204581
+ const assert_1 = __importDefault(__nested_webpack_require_1019860__(2357));
204582
+ const fs_extra_1 = __importDefault(__nested_webpack_require_1019860__(5392));
204583
+ const path_1 = __importDefault(__nested_webpack_require_1019860__(5622));
204584
+ const async_sema_1 = __importDefault(__nested_webpack_require_1019860__(5758));
204585
+ const cross_spawn_1 = __importDefault(__nested_webpack_require_1019860__(7618));
204586
+ const semver_1 = __nested_webpack_require_1019860__(2879);
204587
+ const util_1 = __nested_webpack_require_1019860__(1669);
204588
+ const debug_1 = __importDefault(__nested_webpack_require_1019860__(1868));
204589
+ const errors_1 = __nested_webpack_require_1019860__(3983);
204590
+ const node_version_1 = __nested_webpack_require_1019860__(7903);
204591
+ const read_config_file_1 = __nested_webpack_require_1019860__(7792);
204501
204592
  // Only allow one `runNpmInstall()` invocation to run concurrently
204502
204593
  const runNpmInstallSema = new async_sema_1.default(1);
204503
204594
  function spawnAsync(command, args, opts = {}) {
@@ -204912,7 +205003,7 @@ exports.installDependencies = util_1.deprecate(runNpmInstall, 'installDependenci
204912
205003
  /***/ }),
204913
205004
 
204914
205005
  /***/ 2560:
204915
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1037610__) {
205006
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1038081__) {
204916
205007
 
204917
205008
  "use strict";
204918
205009
 
@@ -204920,7 +205011,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
204920
205011
  return (mod && mod.__esModule) ? mod : { "default": mod };
204921
205012
  };
204922
205013
  Object.defineProperty(exports, "__esModule", ({ value: true }));
204923
- const end_of_stream_1 = __importDefault(__nested_webpack_require_1037610__(687));
205014
+ const end_of_stream_1 = __importDefault(__nested_webpack_require_1038081__(687));
204924
205015
  function streamToBuffer(stream) {
204925
205016
  return new Promise((resolve, reject) => {
204926
205017
  const buffers = [];
@@ -204949,7 +205040,7 @@ exports.default = streamToBuffer;
204949
205040
  /***/ }),
204950
205041
 
204951
205042
  /***/ 1148:
204952
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1038678__) {
205043
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1039149__) {
204953
205044
 
204954
205045
  "use strict";
204955
205046
 
@@ -204957,9 +205048,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
204957
205048
  return (mod && mod.__esModule) ? mod : { "default": mod };
204958
205049
  };
204959
205050
  Object.defineProperty(exports, "__esModule", ({ value: true }));
204960
- const path_1 = __importDefault(__nested_webpack_require_1038678__(5622));
204961
- const fs_extra_1 = __importDefault(__nested_webpack_require_1038678__(5392));
204962
- const ignore_1 = __importDefault(__nested_webpack_require_1038678__(3556));
205051
+ const path_1 = __importDefault(__nested_webpack_require_1039149__(5622));
205052
+ const fs_extra_1 = __importDefault(__nested_webpack_require_1039149__(5392));
205053
+ const ignore_1 = __importDefault(__nested_webpack_require_1039149__(3556));
204963
205054
  function isCodedError(error) {
204964
205055
  return (error !== null &&
204965
205056
  error !== undefined &&
@@ -205016,13 +205107,13 @@ exports.default = default_1;
205016
205107
  /***/ }),
205017
205108
 
205018
205109
  /***/ 4678:
205019
- /***/ ((__unused_webpack_module, exports, __nested_webpack_require_1041052__) => {
205110
+ /***/ ((__unused_webpack_module, exports, __nested_webpack_require_1041523__) => {
205020
205111
 
205021
205112
  "use strict";
205022
205113
 
205023
205114
  Object.defineProperty(exports, "__esModule", ({ value: true }));
205024
205115
  exports.getPlatformEnv = void 0;
205025
- const errors_1 = __nested_webpack_require_1041052__(3983);
205116
+ const errors_1 = __nested_webpack_require_1041523__(3983);
205026
205117
  /**
205027
205118
  * Helper function to support both `VERCEL_` and legacy `NOW_` env vars.
205028
205119
  * Throws an error if *both* env vars are defined.
@@ -205047,10 +205138,57 @@ const getPlatformEnv = (name) => {
205047
205138
  exports.getPlatformEnv = getPlatformEnv;
205048
205139
 
205049
205140
 
205141
+ /***/ }),
205142
+
205143
+ /***/ 1886:
205144
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1042560__) {
205145
+
205146
+ "use strict";
205147
+
205148
+ var __importDefault = (this && this.__importDefault) || function (mod) {
205149
+ return (mod && mod.__esModule) ? mod : { "default": mod };
205150
+ };
205151
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
205152
+ exports.getProjectPaths = void 0;
205153
+ const detect_framework_1 = __nested_webpack_require_1042560__(5224);
205154
+ const frameworks_1 = __importDefault(__nested_webpack_require_1042560__(8438));
205155
+ const MAX_DEPTH_TRAVERSE = 3;
205156
+ const getProjectPaths = async ({ fs, path, skipPaths, depth = MAX_DEPTH_TRAVERSE, }) => {
205157
+ if (depth === 0)
205158
+ return [];
205159
+ const allPaths = [];
205160
+ const topPath = path ?? './';
205161
+ if (path && skipPaths?.includes(path)) {
205162
+ return allPaths;
205163
+ }
205164
+ const framework = await detect_framework_1.detectFramework({
205165
+ fs: fs.chdir(topPath),
205166
+ frameworkList: frameworks_1.default,
205167
+ });
205168
+ if (framework !== null)
205169
+ allPaths.push(topPath);
205170
+ if (depth > 1) {
205171
+ const directoryContents = await fs.readdir(topPath);
205172
+ const childDirectories = directoryContents.filter(stat => stat.type === 'dir' && !skipPaths?.includes(stat.path));
205173
+ const paths = (await Promise.all(childDirectories.map(({ path }) => {
205174
+ return exports.getProjectPaths({
205175
+ fs,
205176
+ path,
205177
+ depth: depth - 1,
205178
+ skipPaths,
205179
+ });
205180
+ }))).flat();
205181
+ return [...paths, ...allPaths];
205182
+ }
205183
+ return allPaths;
205184
+ };
205185
+ exports.getProjectPaths = getProjectPaths;
205186
+
205187
+
205050
205188
  /***/ }),
205051
205189
 
205052
205190
  /***/ 2855:
205053
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1042089__) {
205191
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1044116__) {
205054
205192
 
205055
205193
  "use strict";
205056
205194
 
@@ -205080,32 +205218,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
205080
205218
  return (mod && mod.__esModule) ? mod : { "default": mod };
205081
205219
  };
205082
205220
  Object.defineProperty(exports, "__esModule", ({ value: true }));
205083
- exports.workspaceManagers = exports.isStaticRuntime = exports.isOfficialRuntime = exports.normalizePath = exports.readConfigFile = exports.DetectorFilesystem = exports.detectFramework = exports.detectFileSystemAPI = exports.detectApiExtensions = exports.detectApiDirectory = exports.detectOutputDirectory = exports.detectBuilders = exports.EdgeFunction = exports.getIgnoreFilter = exports.scanParentDirs = exports.getLambdaOptionsFromFunction = exports.isSymbolicLink = exports.debug = exports.streamToBuffer = exports.getPlatformEnv = exports.getSpawnOptions = exports.getDiscontinuedNodeVersions = exports.getLatestNodeVersion = exports.getNodeVersion = exports.getEnvForPackageManager = exports.runCustomInstallCommand = exports.runShellScript = exports.runPipInstall = exports.runBundleInstall = exports.runNpmInstall = exports.getNodeBinPath = exports.walkParentDirs = exports.spawnCommand = exports.execCommand = exports.runPackageJsonScript = exports.installDependencies = exports.getScriptName = exports.spawnAsync = exports.execAsync = exports.rename = exports.glob = exports.getWriteableDirectory = exports.download = exports.Prerender = exports.createLambda = exports.NodejsLambda = exports.Lambda = exports.FileRef = exports.FileFsRef = exports.FileBlob = void 0;
205084
- exports.monorepoManagers = exports.getWorkspacePackagePaths = exports.getWorkspaces = void 0;
205085
- const file_blob_1 = __importDefault(__nested_webpack_require_1042089__(2397));
205221
+ exports.isStaticRuntime = exports.isOfficialRuntime = exports.normalizePath = exports.readConfigFile = exports.DetectorFilesystem = exports.getProjectPaths = exports.detectFramework = exports.detectFileSystemAPI = exports.detectApiExtensions = exports.detectApiDirectory = exports.detectOutputDirectory = exports.detectBuilders = exports.EdgeFunction = exports.getIgnoreFilter = exports.scanParentDirs = exports.getLambdaOptionsFromFunction = exports.isSymbolicLink = exports.debug = exports.streamToBuffer = exports.getPlatformEnv = exports.getSpawnOptions = exports.getDiscontinuedNodeVersions = exports.getLatestNodeVersion = exports.getNodeVersion = exports.getEnvForPackageManager = exports.runCustomInstallCommand = exports.runShellScript = exports.runPipInstall = exports.runBundleInstall = exports.runNpmInstall = exports.getNodeBinPath = exports.walkParentDirs = exports.spawnCommand = exports.execCommand = exports.runPackageJsonScript = exports.installDependencies = exports.getScriptName = exports.spawnAsync = exports.execAsync = exports.rename = exports.glob = exports.getWriteableDirectory = exports.download = exports.Prerender = exports.createLambda = exports.NodejsLambda = exports.Lambda = exports.FileRef = exports.FileFsRef = exports.FileBlob = void 0;
205222
+ exports.monorepoManagers = exports.getWorkspacePackagePaths = exports.getWorkspaces = exports.workspaceManagers = void 0;
205223
+ const file_blob_1 = __importDefault(__nested_webpack_require_1044116__(2397));
205086
205224
  exports.FileBlob = file_blob_1.default;
205087
- const file_fs_ref_1 = __importDefault(__nested_webpack_require_1042089__(9331));
205225
+ const file_fs_ref_1 = __importDefault(__nested_webpack_require_1044116__(9331));
205088
205226
  exports.FileFsRef = file_fs_ref_1.default;
205089
- const file_ref_1 = __importDefault(__nested_webpack_require_1042089__(5187));
205227
+ const file_ref_1 = __importDefault(__nested_webpack_require_1044116__(5187));
205090
205228
  exports.FileRef = file_ref_1.default;
205091
- const lambda_1 = __nested_webpack_require_1042089__(6721);
205229
+ const lambda_1 = __nested_webpack_require_1044116__(6721);
205092
205230
  Object.defineProperty(exports, "Lambda", ({ enumerable: true, get: function () { return lambda_1.Lambda; } }));
205093
205231
  Object.defineProperty(exports, "createLambda", ({ enumerable: true, get: function () { return lambda_1.createLambda; } }));
205094
205232
  Object.defineProperty(exports, "getLambdaOptionsFromFunction", ({ enumerable: true, get: function () { return lambda_1.getLambdaOptionsFromFunction; } }));
205095
- const nodejs_lambda_1 = __nested_webpack_require_1042089__(7049);
205233
+ const nodejs_lambda_1 = __nested_webpack_require_1044116__(7049);
205096
205234
  Object.defineProperty(exports, "NodejsLambda", ({ enumerable: true, get: function () { return nodejs_lambda_1.NodejsLambda; } }));
205097
- const prerender_1 = __nested_webpack_require_1042089__(2850);
205235
+ const prerender_1 = __nested_webpack_require_1044116__(2850);
205098
205236
  Object.defineProperty(exports, "Prerender", ({ enumerable: true, get: function () { return prerender_1.Prerender; } }));
205099
- const download_1 = __importStar(__nested_webpack_require_1042089__(1611));
205237
+ const download_1 = __importStar(__nested_webpack_require_1044116__(1611));
205100
205238
  exports.download = download_1.default;
205101
205239
  Object.defineProperty(exports, "isSymbolicLink", ({ enumerable: true, get: function () { return download_1.isSymbolicLink; } }));
205102
- const get_writable_directory_1 = __importDefault(__nested_webpack_require_1042089__(3838));
205240
+ const get_writable_directory_1 = __importDefault(__nested_webpack_require_1044116__(3838));
205103
205241
  exports.getWriteableDirectory = get_writable_directory_1.default;
205104
- const glob_1 = __importDefault(__nested_webpack_require_1042089__(4240));
205242
+ const glob_1 = __importDefault(__nested_webpack_require_1044116__(4240));
205105
205243
  exports.glob = glob_1.default;
205106
- const rename_1 = __importDefault(__nested_webpack_require_1042089__(6718));
205244
+ const rename_1 = __importDefault(__nested_webpack_require_1044116__(6718));
205107
205245
  exports.rename = rename_1.default;
205108
- const run_user_scripts_1 = __nested_webpack_require_1042089__(1442);
205246
+ const run_user_scripts_1 = __nested_webpack_require_1044116__(1442);
205109
205247
  Object.defineProperty(exports, "execAsync", ({ enumerable: true, get: function () { return run_user_scripts_1.execAsync; } }));
205110
205248
  Object.defineProperty(exports, "spawnAsync", ({ enumerable: true, get: function () { return run_user_scripts_1.spawnAsync; } }));
205111
205249
  Object.defineProperty(exports, "execCommand", ({ enumerable: true, get: function () { return run_user_scripts_1.execCommand; } }));
@@ -205124,38 +205262,40 @@ Object.defineProperty(exports, "getNodeVersion", ({ enumerable: true, get: funct
205124
205262
  Object.defineProperty(exports, "getSpawnOptions", ({ enumerable: true, get: function () { return run_user_scripts_1.getSpawnOptions; } }));
205125
205263
  Object.defineProperty(exports, "getNodeBinPath", ({ enumerable: true, get: function () { return run_user_scripts_1.getNodeBinPath; } }));
205126
205264
  Object.defineProperty(exports, "scanParentDirs", ({ enumerable: true, get: function () { return run_user_scripts_1.scanParentDirs; } }));
205127
- const node_version_1 = __nested_webpack_require_1042089__(7903);
205265
+ const node_version_1 = __nested_webpack_require_1044116__(7903);
205128
205266
  Object.defineProperty(exports, "getLatestNodeVersion", ({ enumerable: true, get: function () { return node_version_1.getLatestNodeVersion; } }));
205129
205267
  Object.defineProperty(exports, "getDiscontinuedNodeVersions", ({ enumerable: true, get: function () { return node_version_1.getDiscontinuedNodeVersions; } }));
205130
- const stream_to_buffer_1 = __importDefault(__nested_webpack_require_1042089__(2560));
205268
+ const stream_to_buffer_1 = __importDefault(__nested_webpack_require_1044116__(2560));
205131
205269
  exports.streamToBuffer = stream_to_buffer_1.default;
205132
- const debug_1 = __importDefault(__nested_webpack_require_1042089__(1868));
205270
+ const debug_1 = __importDefault(__nested_webpack_require_1044116__(1868));
205133
205271
  exports.debug = debug_1.default;
205134
- const get_ignore_filter_1 = __importDefault(__nested_webpack_require_1042089__(1148));
205272
+ const get_ignore_filter_1 = __importDefault(__nested_webpack_require_1044116__(1148));
205135
205273
  exports.getIgnoreFilter = get_ignore_filter_1.default;
205136
- const get_platform_env_1 = __nested_webpack_require_1042089__(4678);
205274
+ const get_platform_env_1 = __nested_webpack_require_1044116__(4678);
205137
205275
  Object.defineProperty(exports, "getPlatformEnv", ({ enumerable: true, get: function () { return get_platform_env_1.getPlatformEnv; } }));
205138
- var edge_function_1 = __nested_webpack_require_1042089__(8038);
205276
+ var edge_function_1 = __nested_webpack_require_1044116__(8038);
205139
205277
  Object.defineProperty(exports, "EdgeFunction", ({ enumerable: true, get: function () { return edge_function_1.EdgeFunction; } }));
205140
- var detect_builders_1 = __nested_webpack_require_1042089__(4246);
205278
+ var detect_builders_1 = __nested_webpack_require_1044116__(4246);
205141
205279
  Object.defineProperty(exports, "detectBuilders", ({ enumerable: true, get: function () { return detect_builders_1.detectBuilders; } }));
205142
205280
  Object.defineProperty(exports, "detectOutputDirectory", ({ enumerable: true, get: function () { return detect_builders_1.detectOutputDirectory; } }));
205143
205281
  Object.defineProperty(exports, "detectApiDirectory", ({ enumerable: true, get: function () { return detect_builders_1.detectApiDirectory; } }));
205144
205282
  Object.defineProperty(exports, "detectApiExtensions", ({ enumerable: true, get: function () { return detect_builders_1.detectApiExtensions; } }));
205145
- var detect_file_system_api_1 = __nested_webpack_require_1042089__(1182);
205283
+ var detect_file_system_api_1 = __nested_webpack_require_1044116__(1182);
205146
205284
  Object.defineProperty(exports, "detectFileSystemAPI", ({ enumerable: true, get: function () { return detect_file_system_api_1.detectFileSystemAPI; } }));
205147
- var detect_framework_1 = __nested_webpack_require_1042089__(5224);
205285
+ var detect_framework_1 = __nested_webpack_require_1044116__(5224);
205148
205286
  Object.defineProperty(exports, "detectFramework", ({ enumerable: true, get: function () { return detect_framework_1.detectFramework; } }));
205149
- var filesystem_1 = __nested_webpack_require_1042089__(461);
205287
+ var get_project_paths_1 = __nested_webpack_require_1044116__(1886);
205288
+ Object.defineProperty(exports, "getProjectPaths", ({ enumerable: true, get: function () { return get_project_paths_1.getProjectPaths; } }));
205289
+ var filesystem_1 = __nested_webpack_require_1044116__(461);
205150
205290
  Object.defineProperty(exports, "DetectorFilesystem", ({ enumerable: true, get: function () { return filesystem_1.DetectorFilesystem; } }));
205151
- var read_config_file_1 = __nested_webpack_require_1042089__(7792);
205291
+ var read_config_file_1 = __nested_webpack_require_1044116__(7792);
205152
205292
  Object.defineProperty(exports, "readConfigFile", ({ enumerable: true, get: function () { return read_config_file_1.readConfigFile; } }));
205153
- var normalize_path_1 = __nested_webpack_require_1042089__(6261);
205293
+ var normalize_path_1 = __nested_webpack_require_1044116__(6261);
205154
205294
  Object.defineProperty(exports, "normalizePath", ({ enumerable: true, get: function () { return normalize_path_1.normalizePath; } }));
205155
- __exportStar(__nested_webpack_require_1042089__(2564), exports);
205156
- __exportStar(__nested_webpack_require_1042089__(2416), exports);
205157
- __exportStar(__nested_webpack_require_1042089__(5748), exports);
205158
- __exportStar(__nested_webpack_require_1042089__(3983), exports);
205295
+ __exportStar(__nested_webpack_require_1044116__(2564), exports);
205296
+ __exportStar(__nested_webpack_require_1044116__(2416), exports);
205297
+ __exportStar(__nested_webpack_require_1044116__(5748), exports);
205298
+ __exportStar(__nested_webpack_require_1044116__(3983), exports);
205159
205299
  /**
205160
205300
  * Helper function to support both `@vercel` and legacy `@now` official Runtimes.
205161
205301
  */
@@ -205173,20 +205313,20 @@ const isStaticRuntime = (name) => {
205173
205313
  return exports.isOfficialRuntime('static', name);
205174
205314
  };
205175
205315
  exports.isStaticRuntime = isStaticRuntime;
205176
- var workspace_managers_1 = __nested_webpack_require_1042089__(4896);
205316
+ var workspace_managers_1 = __nested_webpack_require_1044116__(4896);
205177
205317
  Object.defineProperty(exports, "workspaceManagers", ({ enumerable: true, get: function () { return workspace_managers_1.workspaceManagers; } }));
205178
- var get_workspaces_1 = __nested_webpack_require_1042089__(9740);
205318
+ var get_workspaces_1 = __nested_webpack_require_1044116__(9740);
205179
205319
  Object.defineProperty(exports, "getWorkspaces", ({ enumerable: true, get: function () { return get_workspaces_1.getWorkspaces; } }));
205180
- var get_workspace_package_paths_1 = __nested_webpack_require_1042089__(1953);
205320
+ var get_workspace_package_paths_1 = __nested_webpack_require_1044116__(1953);
205181
205321
  Object.defineProperty(exports, "getWorkspacePackagePaths", ({ enumerable: true, get: function () { return get_workspace_package_paths_1.getWorkspacePackagePaths; } }));
205182
- var monorepo_managers_1 = __nested_webpack_require_1042089__(6418);
205322
+ var monorepo_managers_1 = __nested_webpack_require_1044116__(6418);
205183
205323
  Object.defineProperty(exports, "monorepoManagers", ({ enumerable: true, get: function () { return monorepo_managers_1.monorepoManagers; } }));
205184
205324
 
205185
205325
 
205186
205326
  /***/ }),
205187
205327
 
205188
205328
  /***/ 6721:
205189
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1053309__) {
205329
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1055556__) {
205190
205330
 
205191
205331
  "use strict";
205192
205332
 
@@ -205195,13 +205335,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
205195
205335
  };
205196
205336
  Object.defineProperty(exports, "__esModule", ({ value: true }));
205197
205337
  exports.getLambdaOptionsFromFunction = exports.createZip = exports.createLambda = exports.Lambda = void 0;
205198
- const assert_1 = __importDefault(__nested_webpack_require_1053309__(2357));
205199
- const async_sema_1 = __importDefault(__nested_webpack_require_1053309__(5758));
205200
- const yazl_1 = __nested_webpack_require_1053309__(1223);
205201
- const minimatch_1 = __importDefault(__nested_webpack_require_1053309__(9566));
205202
- const fs_extra_1 = __nested_webpack_require_1053309__(5392);
205203
- const download_1 = __nested_webpack_require_1053309__(1611);
205204
- const stream_to_buffer_1 = __importDefault(__nested_webpack_require_1053309__(2560));
205338
+ const assert_1 = __importDefault(__nested_webpack_require_1055556__(2357));
205339
+ const async_sema_1 = __importDefault(__nested_webpack_require_1055556__(5758));
205340
+ const yazl_1 = __nested_webpack_require_1055556__(1223);
205341
+ const minimatch_1 = __importDefault(__nested_webpack_require_1055556__(9566));
205342
+ const fs_extra_1 = __nested_webpack_require_1055556__(5392);
205343
+ const download_1 = __nested_webpack_require_1055556__(1611);
205344
+ const stream_to_buffer_1 = __importDefault(__nested_webpack_require_1055556__(2560));
205205
205345
  class Lambda {
205206
205346
  constructor(opts) {
205207
205347
  const { handler, runtime, maxDuration, memory, environment = {}, allowQuery, regions, supportsMultiPayloads, } = opts;
@@ -205365,13 +205505,13 @@ exports.default = exports.monorepoManagers;
205365
205505
  /***/ }),
205366
205506
 
205367
205507
  /***/ 7049:
205368
- /***/ ((__unused_webpack_module, exports, __nested_webpack_require_1059819__) => {
205508
+ /***/ ((__unused_webpack_module, exports, __nested_webpack_require_1062066__) => {
205369
205509
 
205370
205510
  "use strict";
205371
205511
 
205372
205512
  Object.defineProperty(exports, "__esModule", ({ value: true }));
205373
205513
  exports.NodejsLambda = void 0;
205374
- const lambda_1 = __nested_webpack_require_1059819__(6721);
205514
+ const lambda_1 = __nested_webpack_require_1062066__(6721);
205375
205515
  class NodejsLambda extends lambda_1.Lambda {
205376
205516
  constructor({ shouldAddHelpers, shouldAddSourcemapSupport, awsLambdaHandler, ...opts }) {
205377
205517
  super(opts);
@@ -205508,13 +205648,13 @@ exports.buildsSchema = {
205508
205648
  /***/ }),
205509
205649
 
205510
205650
  /***/ 2564:
205511
- /***/ ((__unused_webpack_module, exports, __nested_webpack_require_1064164__) => {
205651
+ /***/ ((__unused_webpack_module, exports, __nested_webpack_require_1066411__) => {
205512
205652
 
205513
205653
  "use strict";
205514
205654
 
205515
205655
  Object.defineProperty(exports, "__esModule", ({ value: true }));
205516
205656
  exports.shouldServe = void 0;
205517
- const path_1 = __nested_webpack_require_1064164__(5622);
205657
+ const path_1 = __nested_webpack_require_1066411__(5622);
205518
205658
  const shouldServe = ({ entrypoint, files, requestPath, }) => {
205519
205659
  requestPath = requestPath.replace(/\/$/, ''); // sanitize trailing '/'
205520
205660
  entrypoint = entrypoint.replace(/\\/, '/'); // windows compatibility
@@ -205546,7 +205686,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
205546
205686
  /***/ }),
205547
205687
 
205548
205688
  /***/ 1953:
205549
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1065173__) {
205689
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1067420__) {
205550
205690
 
205551
205691
  "use strict";
205552
205692
 
@@ -205555,11 +205695,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
205555
205695
  };
205556
205696
  Object.defineProperty(exports, "__esModule", ({ value: true }));
205557
205697
  exports.getWorkspacePackagePaths = void 0;
205558
- const path_1 = __importDefault(__nested_webpack_require_1065173__(5622));
205559
- const js_yaml_1 = __importDefault(__nested_webpack_require_1065173__(6540));
205560
- const glob_1 = __importDefault(__nested_webpack_require_1065173__(1104));
205561
- const get_glob_fs_1 = __nested_webpack_require_1065173__(5706);
205562
- const normalize_path_1 = __nested_webpack_require_1065173__(6261);
205698
+ const path_1 = __importDefault(__nested_webpack_require_1067420__(5622));
205699
+ const js_yaml_1 = __importDefault(__nested_webpack_require_1067420__(6540));
205700
+ const glob_1 = __importDefault(__nested_webpack_require_1067420__(1104));
205701
+ const get_glob_fs_1 = __nested_webpack_require_1067420__(5706);
205702
+ const normalize_path_1 = __nested_webpack_require_1067420__(6261);
205563
205703
  const posixPath = path_1.default.posix;
205564
205704
  async function getWorkspacePackagePaths({ fs, workspace, }) {
205565
205705
  const { type, rootPath } = workspace;
@@ -205616,7 +205756,7 @@ async function getPnpmWorkspacePackagePaths({ fs, }) {
205616
205756
  /***/ }),
205617
205757
 
205618
205758
  /***/ 9740:
205619
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1067732__) {
205759
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1069979__) {
205620
205760
 
205621
205761
  "use strict";
205622
205762
 
@@ -205625,9 +205765,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
205625
205765
  };
205626
205766
  Object.defineProperty(exports, "__esModule", ({ value: true }));
205627
205767
  exports.getWorkspaces = void 0;
205628
- const path_1 = __importDefault(__nested_webpack_require_1067732__(5622));
205629
- const workspace_managers_1 = __nested_webpack_require_1067732__(4896);
205630
- const detect_framework_1 = __nested_webpack_require_1067732__(5224);
205768
+ const path_1 = __importDefault(__nested_webpack_require_1069979__(5622));
205769
+ const workspace_managers_1 = __nested_webpack_require_1069979__(4896);
205770
+ const detect_framework_1 = __nested_webpack_require_1069979__(5224);
205631
205771
  const MAX_DEPTH_TRAVERSE = 3;
205632
205772
  const posixPath = path_1.default.posix;
205633
205773
  async function getWorkspaces({ fs, depth = MAX_DEPTH_TRAVERSE, cwd = '/', }) {
@@ -205924,7 +206064,7 @@ module.exports = __webpack_require__(78761);
205924
206064
  /******/ var __webpack_module_cache__ = {};
205925
206065
  /******/
205926
206066
  /******/ // The require function
205927
- /******/ function __nested_webpack_require_1169508__(moduleId) {
206067
+ /******/ function __nested_webpack_require_1171755__(moduleId) {
205928
206068
  /******/ // Check if module is in cache
205929
206069
  /******/ if(__webpack_module_cache__[moduleId]) {
205930
206070
  /******/ return __webpack_module_cache__[moduleId].exports;
@@ -205939,7 +206079,7 @@ module.exports = __webpack_require__(78761);
205939
206079
  /******/ // Execute the module function
205940
206080
  /******/ var threw = true;
205941
206081
  /******/ try {
205942
- /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_1169508__);
206082
+ /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_1171755__);
205943
206083
  /******/ threw = false;
205944
206084
  /******/ } finally {
205945
206085
  /******/ if(threw) delete __webpack_module_cache__[moduleId];
@@ -205952,11 +206092,11 @@ module.exports = __webpack_require__(78761);
205952
206092
  /************************************************************************/
205953
206093
  /******/ /* webpack/runtime/compat */
205954
206094
  /******/
205955
- /******/ __nested_webpack_require_1169508__.ab = __dirname + "/";/************************************************************************/
206095
+ /******/ __nested_webpack_require_1171755__.ab = __dirname + "/";/************************************************************************/
205956
206096
  /******/ // module exports must be returned from runtime so entry inlining is disabled
205957
206097
  /******/ // startup
205958
206098
  /******/ // Load entry module and return exports
205959
- /******/ return __nested_webpack_require_1169508__(2855);
206099
+ /******/ return __nested_webpack_require_1171755__(2855);
205960
206100
  /******/ })()
205961
206101
  ;
205962
206102
 
@@ -212134,6 +212274,241 @@ module.exports = (flag, argv = process.argv) => {
212134
212274
  };
212135
212275
 
212136
212276
 
212277
+ /***/ }),
212278
+
212279
+ /***/ 61967:
212280
+ /***/ ((module) => {
212281
+
212282
+ const { hasOwnProperty } = Object.prototype
212283
+
212284
+ /* istanbul ignore next */
212285
+ const eol = typeof process !== 'undefined' &&
212286
+ process.platform === 'win32' ? '\r\n' : '\n'
212287
+
212288
+ const encode = (obj, opt) => {
212289
+ const children = []
212290
+ let out = ''
212291
+
212292
+ if (typeof opt === 'string') {
212293
+ opt = {
212294
+ section: opt,
212295
+ whitespace: false,
212296
+ }
212297
+ } else {
212298
+ opt = opt || Object.create(null)
212299
+ opt.whitespace = opt.whitespace === true
212300
+ }
212301
+
212302
+ const separator = opt.whitespace ? ' = ' : '='
212303
+
212304
+ for (const k of Object.keys(obj)) {
212305
+ const val = obj[k]
212306
+ if (val && Array.isArray(val)) {
212307
+ for (const item of val) {
212308
+ out += safe(k + '[]') + separator + safe(item) + eol
212309
+ }
212310
+ } else if (val && typeof val === 'object') {
212311
+ children.push(k)
212312
+ } else {
212313
+ out += safe(k) + separator + safe(val) + eol
212314
+ }
212315
+ }
212316
+
212317
+ if (opt.section && out.length) {
212318
+ out = '[' + safe(opt.section) + ']' + eol + out
212319
+ }
212320
+
212321
+ for (const k of children) {
212322
+ const nk = dotSplit(k).join('\\.')
212323
+ const section = (opt.section ? opt.section + '.' : '') + nk
212324
+ const { whitespace } = opt
212325
+ const child = encode(obj[k], {
212326
+ section,
212327
+ whitespace,
212328
+ })
212329
+ if (out.length && child.length) {
212330
+ out += eol
212331
+ }
212332
+
212333
+ out += child
212334
+ }
212335
+
212336
+ return out
212337
+ }
212338
+
212339
+ const dotSplit = str =>
212340
+ str.replace(/\1/g, '\u0002LITERAL\\1LITERAL\u0002')
212341
+ .replace(/\\\./g, '\u0001')
212342
+ .split(/\./)
212343
+ .map(part =>
212344
+ part.replace(/\1/g, '\\.')
212345
+ .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001'))
212346
+
212347
+ const decode = str => {
212348
+ const out = Object.create(null)
212349
+ let p = out
212350
+ let section = null
212351
+ // section |key = value
212352
+ const re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i
212353
+ const lines = str.split(/[\r\n]+/g)
212354
+
212355
+ for (const line of lines) {
212356
+ if (!line || line.match(/^\s*[;#]/)) {
212357
+ continue
212358
+ }
212359
+ const match = line.match(re)
212360
+ if (!match) {
212361
+ continue
212362
+ }
212363
+ if (match[1] !== undefined) {
212364
+ section = unsafe(match[1])
212365
+ if (section === '__proto__') {
212366
+ // not allowed
212367
+ // keep parsing the section, but don't attach it.
212368
+ p = Object.create(null)
212369
+ continue
212370
+ }
212371
+ p = out[section] = out[section] || Object.create(null)
212372
+ continue
212373
+ }
212374
+ const keyRaw = unsafe(match[2])
212375
+ const isArray = keyRaw.length > 2 && keyRaw.slice(-2) === '[]'
212376
+ const key = isArray ? keyRaw.slice(0, -2) : keyRaw
212377
+ if (key === '__proto__') {
212378
+ continue
212379
+ }
212380
+ const valueRaw = match[3] ? unsafe(match[4]) : true
212381
+ const value = valueRaw === 'true' ||
212382
+ valueRaw === 'false' ||
212383
+ valueRaw === 'null' ? JSON.parse(valueRaw)
212384
+ : valueRaw
212385
+
212386
+ // Convert keys with '[]' suffix to an array
212387
+ if (isArray) {
212388
+ if (!hasOwnProperty.call(p, key)) {
212389
+ p[key] = []
212390
+ } else if (!Array.isArray(p[key])) {
212391
+ p[key] = [p[key]]
212392
+ }
212393
+ }
212394
+
212395
+ // safeguard against resetting a previously defined
212396
+ // array by accidentally forgetting the brackets
212397
+ if (Array.isArray(p[key])) {
212398
+ p[key].push(value)
212399
+ } else {
212400
+ p[key] = value
212401
+ }
212402
+ }
212403
+
212404
+ // {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}}
212405
+ // use a filter to return the keys that have to be deleted.
212406
+ const remove = []
212407
+ for (const k of Object.keys(out)) {
212408
+ if (!hasOwnProperty.call(out, k) ||
212409
+ typeof out[k] !== 'object' ||
212410
+ Array.isArray(out[k])) {
212411
+ continue
212412
+ }
212413
+
212414
+ // see if the parent section is also an object.
212415
+ // if so, add it to that, and mark this one for deletion
212416
+ const parts = dotSplit(k)
212417
+ p = out
212418
+ const l = parts.pop()
212419
+ const nl = l.replace(/\\\./g, '.')
212420
+ for (const part of parts) {
212421
+ if (part === '__proto__') {
212422
+ continue
212423
+ }
212424
+ if (!hasOwnProperty.call(p, part) || typeof p[part] !== 'object') {
212425
+ p[part] = Object.create(null)
212426
+ }
212427
+ p = p[part]
212428
+ }
212429
+ if (p === out && nl === l) {
212430
+ continue
212431
+ }
212432
+
212433
+ p[nl] = out[k]
212434
+ remove.push(k)
212435
+ }
212436
+ for (const del of remove) {
212437
+ delete out[del]
212438
+ }
212439
+
212440
+ return out
212441
+ }
212442
+
212443
+ const isQuoted = val => {
212444
+ return (val.startsWith('"') && val.endsWith('"')) ||
212445
+ (val.startsWith("'") && val.endsWith("'"))
212446
+ }
212447
+
212448
+ const safe = val => {
212449
+ if (
212450
+ typeof val !== 'string' ||
212451
+ val.match(/[=\r\n]/) ||
212452
+ val.match(/^\[/) ||
212453
+ (val.length > 1 && isQuoted(val)) ||
212454
+ val !== val.trim()
212455
+ ) {
212456
+ return JSON.stringify(val)
212457
+ }
212458
+ return val.split(';').join('\\;').split('#').join('\\#')
212459
+ }
212460
+
212461
+ const unsafe = (val, doUnesc) => {
212462
+ val = (val || '').trim()
212463
+ if (isQuoted(val)) {
212464
+ // remove the single quotes before calling JSON.parse
212465
+ if (val.charAt(0) === "'") {
212466
+ val = val.slice(1, -1)
212467
+ }
212468
+ try {
212469
+ val = JSON.parse(val)
212470
+ } catch (_) {}
212471
+ } else {
212472
+ // walk the val to find the first not-escaped ; character
212473
+ let esc = false
212474
+ let unesc = ''
212475
+ for (let i = 0, l = val.length; i < l; i++) {
212476
+ const c = val.charAt(i)
212477
+ if (esc) {
212478
+ if ('\\;#'.indexOf(c) !== -1) {
212479
+ unesc += c
212480
+ } else {
212481
+ unesc += '\\' + c
212482
+ }
212483
+
212484
+ esc = false
212485
+ } else if (';#'.indexOf(c) !== -1) {
212486
+ break
212487
+ } else if (c === '\\') {
212488
+ esc = true
212489
+ } else {
212490
+ unesc += c
212491
+ }
212492
+ }
212493
+ if (esc) {
212494
+ unesc += '\\'
212495
+ }
212496
+
212497
+ return unesc.trim()
212498
+ }
212499
+ return val
212500
+ }
212501
+
212502
+ module.exports = {
212503
+ parse: decode,
212504
+ decode,
212505
+ stringify: encode,
212506
+ encode,
212507
+ safe,
212508
+ unsafe,
212509
+ }
212510
+
212511
+
212137
212512
  /***/ }),
212138
212513
 
212139
212514
  /***/ 16337:
@@ -230784,6 +231159,7 @@ const help = () => {
230784
231159
  -A ${chalk_1.default.bold.underline('FILE')}, --local-config=${chalk_1.default.bold.underline('FILE')} Path to the local ${'`vercel.json`'} file
230785
231160
  -Q ${chalk_1.default.bold.underline('DIR')}, --global-config=${chalk_1.default.bold.underline('DIR')} Path to the global ${'`.vercel`'} directory
230786
231161
  --cwd [path] The current working directory
231162
+ --output [path] Directory where built assets should be written to
230787
231163
  --prod Build a production deployment
230788
231164
  -d, --debug Debug mode [off]
230789
231165
  -y, --yes Skip the confirmation prompt
@@ -230810,7 +231186,9 @@ async function main(client) {
230810
231186
  // Parse CLI args
230811
231187
  const argv = get_args_1.default(client.argv.slice(2), {
230812
231188
  '--cwd': String,
231189
+ '--output': String,
230813
231190
  '--prod': Boolean,
231191
+ '--yes': Boolean,
230814
231192
  });
230815
231193
  if (argv['--help']) {
230816
231194
  help();
@@ -230821,29 +231199,40 @@ async function main(client) {
230821
231199
  process.chdir(argv['--cwd']);
230822
231200
  }
230823
231201
  const cwd = process.cwd();
231202
+ // Build `target` influences which environment variables will be used
231203
+ const target = argv['--prod'] ? 'production' : 'preview';
231204
+ const yes = Boolean(argv['--yes']);
230824
231205
  // TODO: read project settings from the API, fall back to local `project.json` if that fails
230825
231206
  // Read project settings, and pull them from Vercel if necessary
230826
231207
  let project = await project_settings_1.readProjectSettings(path_1.join(cwd, link_1.VERCEL_DIR));
230827
231208
  const isTTY = process.stdin.isTTY;
230828
231209
  while (!project?.settings) {
230829
- if (!isTTY) {
230830
- client.output.print(`No Project Settings found locally. Run ${cli.getCommandName('pull --yes')} to retreive them.`);
230831
- return 1;
231210
+ let confirmed = yes;
231211
+ if (!confirmed) {
231212
+ if (!isTTY) {
231213
+ client.output.print(`No Project Settings found locally. Run ${cli.getCommandName('pull --yes')} to retreive them.`);
231214
+ return 1;
231215
+ }
231216
+ confirmed = await confirm_1.default(`No Project Settings found locally. Run ${cli.getCommandName('pull')} for retrieving them?`, true);
230832
231217
  }
230833
- const confirmed = await confirm_1.default(`No Project Settings found locally. Run ${cli.getCommandName('pull')} for retrieving them?`, true);
230834
231218
  if (!confirmed) {
230835
231219
  client.output.print(`Aborted. No Project Settings retrieved.\n`);
230836
231220
  return 0;
230837
231221
  }
230838
- client.argv = [];
231222
+ const { argv: originalArgv } = client;
231223
+ client.argv = [
231224
+ ...originalArgv.slice(0, 2),
231225
+ 'pull',
231226
+ `--environment`,
231227
+ target,
231228
+ ];
230839
231229
  const result = await pull_1.default(client);
230840
231230
  if (result !== 0) {
230841
231231
  return result;
230842
231232
  }
231233
+ client.argv = originalArgv;
230843
231234
  project = await project_settings_1.readProjectSettings(path_1.join(cwd, link_1.VERCEL_DIR));
230844
231235
  }
230845
- // Build `target` influences which environment variables will be used
230846
- const target = argv['--prod'] ? 'production' : 'preview';
230847
231236
  // TODO: load env vars from the API, fall back to local files if that fails
230848
231237
  const envPath = await checkExists([
230849
231238
  path_1.join(cwd, link_1.VERCEL_DIR, `.env.${target}.local`),
@@ -230937,7 +231326,9 @@ async function main(client) {
230937
231326
  filesMap[path] = new build_utils_1.FileFsRef({ mode, fsPath });
230938
231327
  }
230939
231328
  // Delete output directory from potential previous build
230940
- const outputDir = path_1.join(cwd, write_build_result_1.OUTPUT_DIR);
231329
+ const outputDir = argv['--output']
231330
+ ? path_1.resolve(argv['--output'])
231331
+ : path_1.join(cwd, write_build_result_1.OUTPUT_DIR);
230941
231332
  await fs_extra_1.default.remove(outputDir);
230942
231333
  const buildStamp = stamp_1.default();
230943
231334
  // Create fresh new output directory
@@ -230947,6 +231338,7 @@ async function main(client) {
230947
231338
  ops.push(fs_extra_1.default.writeJSON(path_1.join(outputDir, 'builds.json'), {
230948
231339
  '//': 'This file was generated by the `vercel build` command. It is not part of the Build Output API.',
230949
231340
  target,
231341
+ argv: process.argv,
230950
231342
  builds: builds.map(build => {
230951
231343
  const builderWithPkg = buildersWithPkgs.get(build.use);
230952
231344
  if (!builderWithPkg) {
@@ -230955,6 +231347,7 @@ async function main(client) {
230955
231347
  const { builder, pkg: builderPkg } = builderWithPkg;
230956
231348
  return {
230957
231349
  require: builderPkg.name,
231350
+ requirePath: builderWithPkg.path,
230958
231351
  apiVersion: builder.version,
230959
231352
  ...build,
230960
231353
  };
@@ -231082,20 +231475,35 @@ async function main(client) {
231082
231475
  overrides: mergedOverrides,
231083
231476
  };
231084
231477
  await fs_extra_1.default.writeJSON(path_1.join(outputDir, 'config.json'), config, { spaces: 2 });
231085
- output.print(`${emoji_1.prependEmoji(`Build Completed in ${chalk_1.default.bold(write_build_result_1.OUTPUT_DIR)} ${chalk_1.default.gray(buildStamp())}`, emoji_1.emoji('success'))}\n`);
231478
+ const relOutputDir = path_1.relative(cwd, outputDir);
231479
+ output.print(`${emoji_1.prependEmoji(`Build Completed in ${chalk_1.default.bold(relOutputDir.startsWith('..') ? outputDir : relOutputDir)} ${chalk_1.default.gray(buildStamp())}`, emoji_1.emoji('success'))}\n`);
231086
231480
  return 0;
231087
231481
  }
231088
231482
  exports.default = main;
231089
231483
  function expandBuild(files, build) {
231090
- if (!build.src)
231091
- return [];
231092
- let pattern = build.src;
231093
- if (pattern[0] === '/') {
231484
+ if (!build.use) {
231485
+ throw new build_utils_1.NowBuildError({
231486
+ code: `invalid_build_specification`,
231487
+ message: 'Field `use` is missing in build specification',
231488
+ link: 'https://vercel.com/docs/configuration#project/builds',
231489
+ action: 'View Documentation',
231490
+ });
231491
+ }
231492
+ let src = path_1.normalize(build.src || '**');
231493
+ if (src === '.' || src === './') {
231494
+ throw new build_utils_1.NowBuildError({
231495
+ code: `invalid_build_specification`,
231496
+ message: 'A build `src` path resolves to an empty string',
231497
+ link: 'https://vercel.com/docs/configuration#project/builds',
231498
+ action: 'View Documentation',
231499
+ });
231500
+ }
231501
+ if (src[0] === '/') {
231094
231502
  // Remove a leading slash so that the globbing is relative
231095
231503
  // to `cwd` instead of the root of the filesystem.
231096
- pattern = pattern.substring(1);
231504
+ src = src.substring(1);
231097
231505
  }
231098
- const matches = files.filter(name => name === pattern || minimatch_1.default(name, pattern, { dot: true }));
231506
+ const matches = files.filter(name => name === src || minimatch_1.default(name, src, { dot: true }));
231099
231507
  return matches.map(m => {
231100
231508
  return {
231101
231509
  ...build,
@@ -231865,6 +232273,7 @@ const args_1 = __webpack_require__(56870);
231865
232273
  const get_deployment_checks_1 = __webpack_require__(58293);
231866
232274
  const parse_target_1 = __importDefault(__webpack_require__(77601));
231867
232275
  const get_prebuilt_json_1 = __importDefault(__webpack_require__(91307));
232276
+ const create_git_meta_1 = __webpack_require__(92282);
231868
232277
  exports.default = async (client) => {
231869
232278
  const { output } = client;
231870
232279
  let argv = null;
@@ -232093,6 +232502,7 @@ exports.default = async (client) => {
232093
232502
  }
232094
232503
  // build `meta`
232095
232504
  const meta = Object.assign({}, parse_meta_1.default(localConfig.meta), parse_meta_1.default(argv['--meta']));
232505
+ const gitMetadata = await create_git_meta_1.createGitMeta(path, output);
232096
232506
  // Merge dotenv config, `env` from vercel.json, and `--env` / `-e` arguments
232097
232507
  const deploymentEnv = Object.assign({}, parseEnv(localConfig.env), parseEnv(argv['--env']));
232098
232508
  // Merge build env out of `build.env` from vercel.json, and `--build-env` args
@@ -232119,6 +232529,14 @@ exports.default = async (client) => {
232119
232529
  });
232120
232530
  let deployStamp = stamp_1.default();
232121
232531
  let deployment = null;
232532
+ const localConfigurationOverrides = {
232533
+ buildCommand: localConfig?.buildCommand,
232534
+ devCommand: localConfig?.devCommand,
232535
+ framework: localConfig?.framework,
232536
+ commandForIgnoringBuildStep: localConfig?.ignoreCommand,
232537
+ installCommand: localConfig?.installCommand,
232538
+ outputDirectory: localConfig?.outputDirectory,
232539
+ };
232122
232540
  try {
232123
232541
  const createArgs = {
232124
232542
  name: project ? project.name : newProjectName,
@@ -232134,13 +232552,19 @@ exports.default = async (client) => {
232134
232552
  nowConfig: localConfig,
232135
232553
  regions,
232136
232554
  meta,
232555
+ gitMetadata,
232137
232556
  deployStamp,
232138
232557
  target,
232139
232558
  skipAutoDetectionConfirmation: autoConfirm,
232140
232559
  };
232141
232560
  if (!localConfig.builds || localConfig.builds.length === 0) {
232142
232561
  // Only add projectSettings for zero config deployments
232143
- createArgs.projectSettings = { sourceFilesOutsideRootDirectory };
232562
+ createArgs.projectSettings =
232563
+ status === 'not_linked'
232564
+ ? {
232565
+ sourceFilesOutsideRootDirectory,
232566
+ }
232567
+ : { ...localConfigurationOverrides, sourceFilesOutsideRootDirectory };
232144
232568
  }
232145
232569
  deployment = await create_deploy_1.default(client, now, contextName, [sourcePath], createArgs, org, !project, path);
232146
232570
  if (deployment.code === 'missing_project_settings') {
@@ -232152,7 +232576,7 @@ exports.default = async (client) => {
232152
232576
  projectSettings.sourceFilesOutsideRootDirectory =
232153
232577
  sourceFilesOutsideRootDirectory;
232154
232578
  }
232155
- const settings = await edit_project_settings_1.default(output, projectSettings, framework);
232579
+ const settings = await edit_project_settings_1.default(output, projectSettings, framework, false, localConfigurationOverrides);
232156
232580
  // deploy again, but send projectSettings this time
232157
232581
  createArgs.projectSettings = settings;
232158
232582
  deployStamp = stamp_1.default();
@@ -232505,9 +232929,11 @@ async function dev(client, opts, args) {
232505
232929
  // v3 Build Output because it will incorrectly be detected by
232506
232930
  // @vercel/static-build in BuildOutputV3.getBuildOutputDirectory()
232507
232931
  if (!devCommand) {
232508
- output.log(`Removing ${write_build_result_1.OUTPUT_DIR}`);
232509
232932
  const outputDir = path_1.join(cwd, write_build_result_1.OUTPUT_DIR);
232510
- await fs_extra_1.default.remove(outputDir);
232933
+ if (await fs_extra_1.default.pathExists(outputDir)) {
232934
+ output.log(`Removing ${write_build_result_1.OUTPUT_DIR}`);
232935
+ await fs_extra_1.default.remove(outputDir);
232936
+ }
232511
232937
  }
232512
232938
  const devServer = new server_1.default(cwd, {
232513
232939
  output,
@@ -233553,16 +233979,7 @@ async function inspect(client, opts, args) {
233553
233979
  output.print('\n');
233554
233980
  }
233555
233981
  if (domainConfig.misconfigured) {
233556
- output.warn(`This Domain is not configured properly. To configure it you should either:`, null, null, null, {
233557
- boxen: {
233558
- margin: {
233559
- left: 2,
233560
- right: 0,
233561
- bottom: 0,
233562
- top: 0,
233563
- },
233564
- },
233565
- });
233982
+ output.warn(`This Domain is not configured properly. To configure it you should either:`, null, null, null);
233566
233983
  output.print(` ${chalk_1.default.grey('a)')} ` +
233567
233984
  `Set the following record on your DNS provider to continue: ` +
233568
233985
  `${code_1.default(`A ${domainName} 76.76.21.21`)} ` +
@@ -234697,6 +235114,7 @@ exports.default = new Map([
234697
235114
  ['certs', 'certs'],
234698
235115
  ['deploy', 'deploy'],
234699
235116
  ['dev', 'dev'],
235117
+ ['develop', 'dev'],
234700
235118
  ['dns', 'dns'],
234701
235119
  ['domain', 'domains'],
234702
235120
  ['domains', 'domains'],
@@ -240260,6 +240678,84 @@ async function createDeploy(client, now, contextName, paths, createArgs, org, is
240260
240678
  exports.default = createDeploy;
240261
240679
 
240262
240680
 
240681
+ /***/ }),
240682
+
240683
+ /***/ 92282:
240684
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
240685
+
240686
+ "use strict";
240687
+
240688
+ var __importDefault = (this && this.__importDefault) || function (mod) {
240689
+ return (mod && mod.__esModule) ? mod : { "default": mod };
240690
+ };
240691
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
240692
+ exports.createGitMeta = exports.getRemoteUrl = exports.isDirty = void 0;
240693
+ const fs_extra_1 = __importDefault(__webpack_require__(45392));
240694
+ const path_1 = __webpack_require__(85622);
240695
+ const ini_1 = __importDefault(__webpack_require__(61967));
240696
+ const git_last_commit_1 = __importDefault(__webpack_require__(13495));
240697
+ const child_process_1 = __webpack_require__(63129);
240698
+ function isDirty(directory) {
240699
+ return new Promise((resolve, reject) => {
240700
+ child_process_1.exec('git status -s', { cwd: directory }, function (err, stdout, stderr) {
240701
+ if (err)
240702
+ return reject(err);
240703
+ if (stderr)
240704
+ return reject(new Error(`Failed to determine if git repo has been modified: ${stderr.trim()}`));
240705
+ resolve(stdout.trim().length > 0);
240706
+ });
240707
+ });
240708
+ }
240709
+ exports.isDirty = isDirty;
240710
+ function getLastCommit(directory) {
240711
+ return new Promise((resolve, reject) => {
240712
+ git_last_commit_1.default.getLastCommit((err, commit) => {
240713
+ if (err)
240714
+ return reject(err);
240715
+ resolve(commit);
240716
+ }, { dst: directory });
240717
+ });
240718
+ }
240719
+ async function getRemoteUrl(configPath, output) {
240720
+ let gitConfig;
240721
+ try {
240722
+ gitConfig = ini_1.default.parse(await fs_extra_1.default.readFile(configPath, 'utf-8'));
240723
+ }
240724
+ catch (error) {
240725
+ output.debug(`Error while parsing repo data: ${error.message}`);
240726
+ }
240727
+ if (!gitConfig) {
240728
+ return null;
240729
+ }
240730
+ const originUrl = gitConfig['remote "origin"']?.url;
240731
+ if (originUrl) {
240732
+ return originUrl;
240733
+ }
240734
+ return null;
240735
+ }
240736
+ exports.getRemoteUrl = getRemoteUrl;
240737
+ async function createGitMeta(directory, output) {
240738
+ const remoteUrl = await getRemoteUrl(path_1.join(directory, '.git/config'), output);
240739
+ // If we can't get the repo URL, then don't return any metadata
240740
+ if (!remoteUrl) {
240741
+ return;
240742
+ }
240743
+ const [commit, dirty] = await Promise.all([
240744
+ getLastCommit(directory),
240745
+ isDirty(directory),
240746
+ ]);
240747
+ return {
240748
+ remoteUrl,
240749
+ commitAuthorName: commit.author.name,
240750
+ commitMessage: commit.subject,
240751
+ commitRef: commit.branch,
240752
+ commitSha: commit.hash,
240753
+ dirty,
240754
+ };
240755
+ }
240756
+ exports.createGitMeta = createGitMeta;
240757
+
240758
+
240263
240759
  /***/ }),
240264
240760
 
240265
240761
  /***/ 80478:
@@ -241363,9 +241859,6 @@ async function getBuildMatches(vercelConfig, cwd, output, devServer, fileList) {
241363
241859
  // of Vercel deployments.
241364
241860
  src = src.substring(1);
241365
241861
  }
241366
- // We need to escape brackets since `glob` will
241367
- // try to find a group otherwise
241368
- src = src.replace(/(\[|\])/g, '[$1]');
241369
241862
  // lambda function files are trimmed of their file extension
241370
241863
  const mapToEntrypoint = new Map();
241371
241864
  const extensionless = devServer.getExtensionlessFile(src);
@@ -241373,6 +241866,9 @@ async function getBuildMatches(vercelConfig, cwd, output, devServer, fileList) {
241373
241866
  mapToEntrypoint.set(extensionless, src);
241374
241867
  src = extensionless;
241375
241868
  }
241869
+ // We need to escape brackets since `glob` will
241870
+ // try to find a group otherwise
241871
+ src = src.replace(/(\[|\])/g, '[$1]');
241376
241872
  const files = fileList
241377
241873
  .filter(name => name === src || minimatch_1.default(name, src, { dot: true }))
241378
241874
  .map(name => path_1.join(cwd, name));
@@ -243577,8 +244073,9 @@ function needsBlockingBuild(buildMatch) {
243577
244073
  return typeof builder.shouldServe !== 'function';
243578
244074
  }
243579
244075
  async function checkForPort(port, timeout) {
244076
+ const opts = { host: '127.0.0.1' };
243580
244077
  const start = Date.now();
243581
- while (!(await is_port_reachable_1.default(port))) {
244078
+ while (!(await is_port_reachable_1.default(port, opts))) {
243582
244079
  if (Date.now() - start > timeout) {
243583
244080
  throw new Error(`Detecting port ${port} timed out after ${timeout}ms`);
243584
244081
  }
@@ -247276,7 +247773,7 @@ class Now extends events_1.default {
247276
247773
  // Legacy
247277
247774
  nowConfig: nowConfig = {},
247278
247775
  // Latest
247279
- name, project, prebuilt = false, rootDirectory, wantsPublic, meta, regions, quiet = false, env, build, forceNew = false, withCache = false, target = null, deployStamp, projectSettings, skipAutoDetectionConfirmation, }, org, isSettingUpProject, cwd) {
247776
+ name, project, prebuilt = false, rootDirectory, wantsPublic, meta, gitMetadata, regions, quiet = false, env, build, forceNew = false, withCache = false, target = null, deployStamp, projectSettings, skipAutoDetectionConfirmation, }, org, isSettingUpProject, cwd) {
247280
247777
  let hashes = {};
247281
247778
  const uploadStamp = stamp_1.default();
247282
247779
  let requestBody = {
@@ -247287,6 +247784,7 @@ class Now extends events_1.default {
247287
247784
  name,
247288
247785
  project,
247289
247786
  meta,
247787
+ gitMetadata,
247290
247788
  regions,
247291
247789
  target: target || undefined,
247292
247790
  projectSettings,
@@ -247691,53 +248189,104 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
247691
248189
  const inquirer_1 = __importDefault(__webpack_require__(64016));
247692
248190
  const confirm_1 = __importDefault(__webpack_require__(33564));
247693
248191
  const chalk_1 = __importDefault(__webpack_require__(961));
248192
+ const frameworks_1 = __importDefault(__webpack_require__(48438));
247694
248193
  const is_setting_value_1 = __webpack_require__(41005);
247695
- const fields = [
247696
- { name: 'Build Command', value: 'buildCommand' },
247697
- { name: 'Output Directory', value: 'outputDirectory' },
247698
- { name: 'Development Command', value: 'devCommand' },
247699
- ];
247700
- async function editProjectSettings(output, projectSettings, framework, autoConfirm) {
247701
- // create new settings object, missing values will be filled with `null`
247702
- const settings = Object.assign({ framework: null }, projectSettings);
247703
- for (let field of fields) {
247704
- settings[field.value] =
247705
- (projectSettings && projectSettings[field.value]) || null;
248194
+ const settingMap = {
248195
+ buildCommand: 'Build Command',
248196
+ devCommand: 'Development Command',
248197
+ commandForIgnoringBuildStep: 'Ignore Command',
248198
+ installCommand: 'Install Command',
248199
+ outputDirectory: 'Output Directory',
248200
+ framework: 'Framework',
248201
+ };
248202
+ const settingKeys = Object.keys(settingMap).sort();
248203
+ async function editProjectSettings(output, projectSettings, framework, autoConfirm, localConfigurationOverrides) {
248204
+ // Create initial settings object defaulting everything to `null` and assigning what may exist in `projectSettings`
248205
+ const settings = Object.assign({
248206
+ buildCommand: null,
248207
+ devCommand: null,
248208
+ framework: null,
248209
+ commandForIgnoringBuildStep: null,
248210
+ installCommand: null,
248211
+ outputDirectory: null,
248212
+ }, projectSettings);
248213
+ // Start UX by displaying (and applying) overrides. They will be referenced throughout remainder of CLI.
248214
+ if (localConfigurationOverrides) {
248215
+ // Apply local overrides (from `vercel.json`)
248216
+ for (const setting of settingKeys) {
248217
+ const localConfigValue = localConfigurationOverrides[setting];
248218
+ if (localConfigValue)
248219
+ settings[setting] = localConfigValue;
248220
+ }
248221
+ output.print('Local settings detected in vercel.json:\n');
248222
+ // Print provided overrides including framework
248223
+ for (const setting of settingKeys) {
248224
+ const override = localConfigurationOverrides[setting];
248225
+ if (override) {
248226
+ output.print(`${chalk_1.default.dim(`- ${chalk_1.default.bold(`${settingMap[setting]}:`)} ${override}`)}\n`);
248227
+ }
248228
+ }
248229
+ // If framework is overridden, set it to the `framework` parameter and let the normal framework-flow occur
248230
+ if (localConfigurationOverrides.framework) {
248231
+ const overrideFramework = frameworks_1.default.find(f => f.slug === localConfigurationOverrides.framework);
248232
+ if (overrideFramework) {
248233
+ framework = overrideFramework;
248234
+ output.print(`Merging default Project Settings for ${framework.name}. Previously listed overrides are prioritized.\n`);
248235
+ }
248236
+ }
247706
248237
  }
247707
248238
  // skip editing project settings if no framework is detected
247708
248239
  if (!framework) {
247709
248240
  settings.framework = null;
247710
248241
  return settings;
247711
248242
  }
248243
+ // A missing framework slug implies the "Other" framework was selected
247712
248244
  output.print(!framework.slug
247713
248245
  ? `No framework detected. Default Project Settings:\n`
247714
248246
  : `Auto-detected Project Settings (${chalk_1.default.bold(framework.name)}):\n`);
247715
248247
  settings.framework = framework.slug;
247716
- for (let field of fields) {
247717
- const defaults = framework.settings[field.value];
247718
- output.print(chalk_1.default.dim(`- ${chalk_1.default.bold(`${field.name}:`)} ${`${is_setting_value_1.isSettingValue(defaults)
247719
- ? defaults.value
247720
- : chalk_1.default.italic(`${defaults.placeholder}`)}`}`) + '\n');
248248
+ // Now print defaults for the provided framework whether it was auto-detected or overwritten
248249
+ for (const setting of settingKeys) {
248250
+ if (setting === 'framework' || setting === 'commandForIgnoringBuildStep') {
248251
+ continue;
248252
+ }
248253
+ const defaultSetting = framework.settings[setting];
248254
+ const override = localConfigurationOverrides?.[setting];
248255
+ if (!override && defaultSetting) {
248256
+ output.print(`${chalk_1.default.dim(`- ${chalk_1.default.bold(`${settingMap[setting]}:`)} ${is_setting_value_1.isSettingValue(defaultSetting)
248257
+ ? defaultSetting.value
248258
+ : chalk_1.default.italic(`${defaultSetting.placeholder}`)}`)}\n`);
248259
+ }
247721
248260
  }
248261
+ // Prompt the user if they want to modify any settings not defined by local configuration.
247722
248262
  if (autoConfirm ||
247723
- !(await confirm_1.default(`Want to override the settings?`, false))) {
248263
+ !(await confirm_1.default('Want to modify these settings?', false))) {
247724
248264
  return settings;
247725
248265
  }
248266
+ const choices = settingKeys.reduce((acc, setting) => {
248267
+ const skip = setting === 'framework' ||
248268
+ setting === 'commandForIgnoringBuildStep' ||
248269
+ setting === 'installCommand' ||
248270
+ localConfigurationOverrides?.[setting];
248271
+ if (!skip) {
248272
+ acc.push({ name: settingMap[setting], value: setting });
248273
+ }
248274
+ return acc;
248275
+ }, []);
247726
248276
  const { settingFields } = await inquirer_1.default.prompt({
247727
248277
  name: 'settingFields',
247728
248278
  type: 'checkbox',
247729
248279
  message: 'Which settings would you like to overwrite (select multiple)?',
247730
- choices: fields,
248280
+ choices,
247731
248281
  });
247732
248282
  for (let setting of settingFields) {
247733
- const field = fields.find(f => f.value === setting);
247734
- const name = `${Date.now()}`;
248283
+ const field = settingMap[setting];
247735
248284
  const answers = await inquirer_1.default.prompt({
247736
248285
  type: 'input',
247737
- name: name,
247738
- message: `What's your ${chalk_1.default.bold(field ? field.name : setting)}?`,
248286
+ name: setting,
248287
+ message: `What's your ${chalk_1.default.bold(field)}?`,
247739
248288
  });
247740
- settings[setting] = answers[name];
248289
+ settings[setting] = answers[setting];
247741
248290
  }
247742
248291
  return settings;
247743
248292
  }
@@ -248831,6 +249380,14 @@ async function setupAndLink(client, path, { forceDelete = false, autoConfirm = f
248831
249380
  client,
248832
249381
  currentTeam: config.currentTeam,
248833
249382
  });
249383
+ const localConfigurationOverrides = {
249384
+ buildCommand: localConfig?.buildCommand,
249385
+ devCommand: localConfig?.devCommand,
249386
+ framework: localConfig?.framework,
249387
+ commandForIgnoringBuildStep: localConfig?.ignoreCommand,
249388
+ installCommand: localConfig?.installCommand,
249389
+ outputDirectory: localConfig?.outputDirectory,
249390
+ };
248834
249391
  const createArgs = {
248835
249392
  name: newProjectName,
248836
249393
  env: {},
@@ -248845,11 +249402,11 @@ async function setupAndLink(client, path, { forceDelete = false, autoConfirm = f
248845
249402
  deployStamp: stamp_1.default(),
248846
249403
  target: undefined,
248847
249404
  skipAutoDetectionConfirmation: false,
249405
+ projectSettings: {
249406
+ ...localConfigurationOverrides,
249407
+ sourceFilesOutsideRootDirectory,
249408
+ },
248848
249409
  };
248849
- if (isZeroConfig) {
248850
- // Only add projectSettings for zero config deployments
248851
- createArgs.projectSettings = { sourceFilesOutsideRootDirectory };
248852
- }
248853
249410
  const deployment = await create_deploy_1.default(client, now, config.currentTeam || 'current user', [sourcePath], createArgs, org, true, path);
248854
249411
  if (!deployment ||
248855
249412
  !('code' in deployment) ||
@@ -248865,7 +249422,7 @@ async function setupAndLink(client, path, { forceDelete = false, autoConfirm = f
248865
249422
  };
248866
249423
  }
248867
249424
  const { projectSettings, framework } = deployment;
248868
- settings = await edit_project_settings_1.default(output, projectSettings, framework, autoConfirm);
249425
+ settings = await edit_project_settings_1.default(output, projectSettings, framework, autoConfirm, localConfigurationOverrides);
248869
249426
  }
248870
249427
  if (rootDirectory) {
248871
249428
  settings.rootDirectory = rootDirectory;
@@ -249807,7 +250364,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
249807
250364
  Object.defineProperty(exports, "__esModule", ({ value: true }));
249808
250365
  exports.Output = void 0;
249809
250366
  const chalk_1 = __importDefault(__webpack_require__(961));
249810
- const boxen_1 = __importDefault(__webpack_require__(30396));
249811
250367
  const link_1 = __importDefault(__webpack_require__(98472));
249812
250368
  const wait_1 = __importDefault(__webpack_require__(22015));
249813
250369
  class Output {
@@ -249826,20 +250382,11 @@ class Output {
249826
250382
  this.dim = (str, color = chalk_1.default.grey) => {
249827
250383
  this.print(`${color(`> ${str}`)}\n`);
249828
250384
  };
249829
- this.warn = (str, slug = null, link = null, action = 'Learn More', options) => {
250385
+ this.warn = (str, slug = null, link = null, action = 'Learn More') => {
249830
250386
  const details = slug ? `https://err.sh/vercel/${slug}` : link;
249831
- this.print(boxen_1.default(chalk_1.default.bold.yellow('WARN! ') +
250387
+ this.print(chalk_1.default.yellow(chalk_1.default.bold('WARN! ') +
249832
250388
  str +
249833
- (details ? `\n${action}: ${link_1.default(details)}` : ''), {
249834
- padding: {
249835
- top: 0,
249836
- bottom: 0,
249837
- left: 1,
249838
- right: 1,
249839
- },
249840
- borderColor: 'yellow',
249841
- ...options?.boxen,
249842
- }));
250389
+ (details ? `\n${action}: ${link_1.default(details)}` : '')));
249843
250390
  this.print('\n');
249844
250391
  };
249845
250392
  this.note = (str) => {
@@ -250484,8 +251031,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
250484
251031
  return (mod && mod.__esModule) ? mod : { "default": mod };
250485
251032
  };
250486
251033
  Object.defineProperty(exports, "__esModule", ({ value: true }));
250487
- const package_json_1 = __importDefault(__webpack_require__(60306));
250488
- const pkg = package_json_1.default;
251034
+ const fs_1 = __importDefault(__webpack_require__(35747));
251035
+ const path_1 = __webpack_require__(85622);
251036
+ let rootDir = __dirname;
251037
+ while (!fs_1.default.existsSync(path_1.join(rootDir, 'package.json'))) {
251038
+ rootDir = path_1.join(rootDir, '..');
251039
+ }
251040
+ const pkgPath = path_1.join(rootDir, 'package.json');
251041
+ const pkg = JSON.parse(fs_1.default.readFileSync(pkgPath, 'utf8'));
250489
251042
  exports.default = pkg;
250490
251043
 
250491
251044
 
@@ -251875,7 +252428,7 @@ module.exports = JSON.parse("{\"application/1d-interleaved-parityfec\":{\"source
251875
252428
  /***/ ((module) => {
251876
252429
 
251877
252430
  "use strict";
251878
- module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"25.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\":\"4.1.0\",\"@vercel/go\":\"2.0.1\",\"@vercel/next\":\"3.0.1\",\"@vercel/node\":\"2.1.0\",\"@vercel/python\":\"3.0.1\",\"@vercel/redwood\":\"1.0.1\",\"@vercel/remix\":\"1.0.1\",\"@vercel/ruby\":\"1.3.9\",\"@vercel/static-build\":\"1.0.1\",\"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/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.0.1\",\"@vercel/frameworks\":\"1.0.1\",\"@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\",\"clipboardy\":\"2.1.0\",\"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\",\"glob\":\"7.1.2\",\"http-proxy\":\"1.18.1\",\"inquirer\":\"7.0.4\",\"is-docker\":\"2.2.1\",\"is-port-reachable\":\"3.0.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\":\"0c7b54edad6adf48505abf2cbec01691b85963bb\"}");
252431
+ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"25.1.1-canary.10\",\"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\":\"4.1.1-canary.1\",\"@vercel/go\":\"2.0.2-canary.1\",\"@vercel/next\":\"3.0.5-canary.0\",\"@vercel/node\":\"2.2.1-canary.1\",\"@vercel/python\":\"3.0.2-canary.1\",\"@vercel/redwood\":\"1.0.2-canary.1\",\"@vercel/remix\":\"1.0.2-canary.1\",\"@vercel/ruby\":\"1.3.10-canary.1\",\"@vercel/static-build\":\"1.0.2-canary.1\",\"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.0.2-canary.1\",\"@vercel/frameworks\":\"1.0.2-canary.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\",\"clipboardy\":\"2.1.0\",\"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\":\"b8b87b96da49fff38435d1e6ae123a721c8d7a4b\"}");
251879
252432
 
251880
252433
  /***/ }),
251881
252434
 
@@ -251891,7 +252444,7 @@ module.exports = JSON.parse("{\"VISA\":\"Visa\",\"MASTERCARD\":\"MasterCard\",\"
251891
252444
  /***/ ((module) => {
251892
252445
 
251893
252446
  "use strict";
251894
- module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.0.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\":\"4.1.0\",\"@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\":\"0c7b54edad6adf48505abf2cbec01691b85963bb\"}");
252447
+ module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.0.2-canary.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\":\"4.1.1-canary.1\",\"@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\"}}");
251895
252448
 
251896
252449
  /***/ }),
251897
252450