vercel 23.1.3-canary.61 → 23.1.3-canary.65

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 +250 -378
  2. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -217401,17 +217401,15 @@ function convertRuntimeToPlugin(buildRuntime, packageName, ext) {
217401
217401
  }
217402
217402
  const pages = {};
217403
217403
  const pluginName = packageName.replace('vercel-plugin-', '');
217404
- const traceDir = path_1.join(workPath, `.output`, `inputs`,
217404
+ const outputPath = path_1.join(workPath, '.output');
217405
+ const traceDir = path_1.join(outputPath, `inputs`,
217405
217406
  // Legacy Runtimes can only provide API Routes, so that's
217406
217407
  // why we can use this prefix for all of them. Here, we have to
217407
217408
  // make sure to not use a cryptic hash name, because people
217408
217409
  // need to be able to easily inspect the output.
217409
217410
  `api-routes-${pluginName}`);
217410
217411
  await fs_extra_1.default.ensureDir(traceDir);
217411
- let newPathsRuntime = new Set();
217412
- let linkersRuntime = [];
217413
- const entryDir = path_1.join('.output', 'server', 'pages');
217414
- const entryRoot = path_1.join(workPath, entryDir);
217412
+ const entryRoot = path_1.join(outputPath, 'server', 'pages');
217415
217413
  for (const entrypoint of Object.keys(entrypoints)) {
217416
217414
  const { output } = await buildRuntime({
217417
217415
  files: sourceFilesPreBuild,
@@ -217425,13 +217423,6 @@ function convertRuntimeToPlugin(buildRuntime, packageName, ext) {
217425
217423
  skipDownload: true,
217426
217424
  },
217427
217425
  });
217428
- // Legacy Runtimes tend to pollute the `workPath` with compiled results,
217429
- // because the `workPath` used to be a place that was a place where they could
217430
- // just put anything, but nowadays it's the working directory of the `vercel build`
217431
- // command, which is the place where the developer keeps their source files,
217432
- // so we don't want to pollute this space unnecessarily. That means we have to clean
217433
- // up files that were created by the build, which is done further below.
217434
- const sourceFilesAfterBuild = await getSourceFiles(workPath, ignoreFilter);
217435
217426
  // @ts-ignore This symbol is a private API
217436
217427
  const lambdaFiles = output[lambda_1.FILES_SYMBOL];
217437
217428
  // When deploying, the `files` that are passed to the Legacy Runtimes already
@@ -217445,6 +217436,7 @@ function convertRuntimeToPlugin(buildRuntime, packageName, ext) {
217445
217436
  }
217446
217437
  let handlerFileBase = output.handler;
217447
217438
  let handlerFile = lambdaFiles[handlerFileBase];
217439
+ let handlerHasImport = false;
217448
217440
  const { handler } = output;
217449
217441
  const handlerMethod = handler.split('.').pop();
217450
217442
  const handlerFileName = handler.replace(`.${handlerMethod}`, '');
@@ -217456,6 +217448,7 @@ function convertRuntimeToPlugin(buildRuntime, packageName, ext) {
217456
217448
  if (!handlerFile) {
217457
217449
  handlerFileBase = handlerFileName + ext;
217458
217450
  handlerFile = lambdaFiles[handlerFileBase];
217451
+ handlerHasImport = true;
217459
217452
  }
217460
217453
  if (!handlerFile || !handlerFile.fsPath) {
217461
217454
  throw new Error(`Could not find a handler file. Please ensure that \`files\` for the returned \`Lambda\` contains an \`FileFsRef\` named "${handlerFileBase}" with a valid \`fsPath\`.`);
@@ -217464,119 +217457,83 @@ function convertRuntimeToPlugin(buildRuntime, packageName, ext) {
217464
217457
  const entryBase = path_1.basename(entrypoint).replace(ext, handlerExtName);
217465
217458
  const entryPath = path_1.join(path_1.dirname(entrypoint), entryBase);
217466
217459
  const entry = path_1.join(entryRoot, entryPath);
217467
- // We never want to link here, only copy, because the launcher
217468
- // file often has the same name for every entrypoint, which means that
217469
- // every build for every entrypoint overwrites the launcher of the previous
217470
- // one, so linking would end with a broken reference.
217460
+ // Create the parent directory of the API Route that will be created
217461
+ // for the current entrypoint inside of `.output/server/pages/api`.
217471
217462
  await fs_extra_1.default.ensureDir(path_1.dirname(entry));
217472
- await fs_extra_1.default.copy(handlerFile.fsPath, entry);
217473
- const newFilesEntrypoint = [];
217474
- const newDirectoriesEntrypoint = [];
217475
- const preBuildFiles = Object.values(sourceFilesPreBuild).map(file => {
217476
- return file.fsPath;
217477
- });
217478
- // Generate a list of directories and files that weren't present
217479
- // before the entrypoint was processed by the Legacy Runtime, so
217480
- // that we can perform a cleanup later. We need to divide into files
217481
- // and directories because only cleaning up files might leave empty
217482
- // directories, and listing directories separately also speeds up the
217483
- // build because we can just delete them, which wipes all of their nested
217484
- // paths, instead of iterating through all files that should be deleted.
217485
- for (const file in sourceFilesAfterBuild) {
217486
- if (!sourceFilesPreBuild[file]) {
217487
- const path = sourceFilesAfterBuild[file].fsPath;
217488
- const dirPath = path_1.dirname(path);
217489
- // If none of the files that were present before the entrypoint
217490
- // was processed are contained within the directory we're looking
217491
- // at right now, then we know it's a newly added directory
217492
- // and it can therefore be removed later on.
217493
- const isNewDir = !preBuildFiles.some(filePath => {
217494
- return path_1.dirname(filePath).startsWith(dirPath);
217495
- });
217496
- // Check out the list of tracked directories that were
217497
- // newly added and see if one of them contains the path
217498
- // we're looking at.
217499
- const hasParentDir = newDirectoriesEntrypoint.some(dir => {
217500
- return path.startsWith(dir);
217501
- });
217502
- // If we have already tracked a directory that was newly
217503
- // added that sits above the file or directory that we're
217504
- // looking at, we don't need to add more entries to the list
217505
- // because when the parent will get removed in the future,
217506
- // all of its children (and therefore the path we're looking at)
217507
- // will automatically get removed anyways.
217508
- if (hasParentDir) {
217509
- continue;
217510
- }
217511
- if (isNewDir) {
217512
- newDirectoriesEntrypoint.push(dirPath);
217513
- }
217514
- else {
217515
- newFilesEntrypoint.push(path);
217516
- }
217517
- }
217518
- }
217519
- const tracedFiles = [];
217520
- const linkers = Object.entries(lambdaFiles).map(async ([relPath, file]) => {
217521
- const newPath = path_1.join(traceDir, relPath);
217522
- // The handler was already moved into position above.
217523
- if (relPath === handlerFileBase) {
217524
- return;
217525
- }
217526
- tracedFiles.push({ absolutePath: newPath, relativePath: relPath });
217527
- const { fsPath, type } = file;
217528
- if (fsPath) {
217529
- await fs_extra_1.default.ensureDir(path_1.dirname(newPath));
217530
- const isNewFile = newFilesEntrypoint.includes(fsPath);
217531
- const isInsideNewDirectory = newDirectoriesEntrypoint.some(dirPath => {
217532
- return fsPath.startsWith(dirPath);
217463
+ // For compiled languages, the launcher file will be binary and therefore
217464
+ // won't try to import a user-provided request handler (instead, it will
217465
+ // contain it). But for interpreted languages, the launcher might try to
217466
+ // load a user-provided request handler from the source file instead of bundling
217467
+ // it, so we have to adjust the import statement inside the launcher to point
217468
+ // to the respective source file. Previously, Legacy Runtimes simply expected
217469
+ // the user-provided request-handler to be copied right next to the launcher,
217470
+ // but with the new File System API, files won't be moved around unnecessarily.
217471
+ if (handlerHasImport) {
217472
+ const { fsPath } = handlerFile;
217473
+ const encoding = 'utf-8';
217474
+ // This is the true directory of the user-provided request handler in the
217475
+ // source files, so that's what we will use as an import path in the launcher.
217476
+ const locationPrefix = path_1.relative(entry, outputPath);
217477
+ let handlerContent = await fs_extra_1.default.readFile(fsPath, encoding);
217478
+ const importPaths = [
217479
+ // This is the full entrypoint path, like `./api/test.py`
217480
+ `./${entrypoint}`,
217481
+ // This is the entrypoint path without extension, like `api/test`
217482
+ entrypoint.slice(0, -ext.length),
217483
+ ];
217484
+ // Generate a list of regular expressions that we can use for
217485
+ // finding matches, but only allow matches if the import path is
217486
+ // wrapped inside single (') or double quotes (").
217487
+ const patterns = importPaths.map(path => {
217488
+ // eslint-disable-next-line no-useless-escape
217489
+ return new RegExp(`('|")(${path.replace(/\./g, '\\.')})('|")`, 'g');
217490
+ });
217491
+ let replacedMatch = null;
217492
+ for (const pattern of patterns) {
217493
+ const newContent = handlerContent.replace(pattern, (_, p1, p2, p3) => {
217494
+ return `${p1}${path_1.join(locationPrefix, p2)}${p3}`;
217533
217495
  });
217534
- // With this, we're making sure that files in the `workPath` that existed
217535
- // before the Legacy Runtime was invoked (source files) are linked from
217536
- // `.output` instead of copying there (the latter only happens if linking fails),
217537
- // which is the fastest solution. However, files that are created fresh
217538
- // by the Legacy Runtimes are always copied, because their link destinations
217539
- // are likely to be overwritten every time an entrypoint is processed by
217540
- // the Legacy Runtime. This is likely to overwrite the destination on subsequent
217541
- // runs, but that's also how `workPath` used to work originally, without
217542
- // the File System API (meaning that there was one `workPath` for all entrypoints).
217543
- if (isNewFile || isInsideNewDirectory) {
217544
- _1.debug(`Copying from ${fsPath} to ${newPath}`);
217545
- await fs_extra_1.default.copy(fsPath, newPath);
217546
- }
217547
- else {
217548
- await linkOrCopy(fsPath, newPath);
217496
+ if (newContent !== handlerContent) {
217497
+ _1.debug(`Replaced "${pattern}" inside "${entry}" to ensure correct import of user-provided request handler`);
217498
+ handlerContent = newContent;
217499
+ replacedMatch = true;
217549
217500
  }
217550
217501
  }
217551
- else if (type === 'FileBlob') {
217552
- const { data, mode } = file;
217553
- await fs_extra_1.default.writeFile(newPath, data, { mode });
217502
+ if (!replacedMatch) {
217503
+ new Error(`No replacable matches for "${importPaths[0]}" or "${importPaths[1]}" found in "${fsPath}"`);
217554
217504
  }
217555
- else {
217556
- throw new Error(`Unknown file type: ${type}`);
217557
- }
217558
- });
217559
- linkersRuntime = linkersRuntime.concat(linkers);
217505
+ await fs_extra_1.default.writeFile(entry, handlerContent, encoding);
217506
+ }
217507
+ else {
217508
+ await fs_extra_1.default.copy(handlerFile.fsPath, entry);
217509
+ }
217510
+ // Legacy Runtimes based on interpreted languages will create a new launcher file
217511
+ // for every entrypoint, but they will create each one inside `workPath`, which means that
217512
+ // the launcher for one entrypoint will overwrite the launcher provided for the previous
217513
+ // entrypoint. That's why, above, we copy the file contents into the new destination (and
217514
+ // optionally transform them along the way), instead of linking. We then also want to remove
217515
+ // the copy origin right here, so that the `workPath` doesn't contain a useless launcher file
217516
+ // once the build has finished running.
217517
+ await fs_extra_1.default.remove(handlerFile.fsPath);
217518
+ _1.debug(`Removed temporary file "${handlerFile.fsPath}"`);
217560
217519
  const nft = `${entry}.nft.json`;
217561
217520
  const json = JSON.stringify({
217562
- version: 1,
217563
- files: tracedFiles.map(file => ({
217564
- input: normalize_path_1.normalizePath(path_1.relative(path_1.dirname(nft), file.absolutePath)),
217565
- // We'd like to place all the dependency files right next
217566
- // to the final launcher file inside of the Lambda.
217567
- output: normalize_path_1.normalizePath(path_1.join(entryDir, 'api', file.relativePath)),
217568
- })),
217521
+ version: 2,
217522
+ files: Object.keys(lambdaFiles)
217523
+ .map(file => {
217524
+ const { fsPath } = lambdaFiles[file];
217525
+ if (!fsPath) {
217526
+ throw new Error(`File "${file}" is missing valid \`fsPath\` property`);
217527
+ }
217528
+ // The handler was already moved into position above.
217529
+ if (file === handlerFileBase) {
217530
+ return;
217531
+ }
217532
+ return normalize_path_1.normalizePath(path_1.relative(path_1.dirname(nft), fsPath));
217533
+ })
217534
+ .filter(Boolean),
217569
217535
  });
217570
- await fs_extra_1.default.ensureDir(path_1.dirname(nft));
217571
217536
  await fs_extra_1.default.writeFile(nft, json);
217572
- // Extend the list of directories and files that were created by the
217573
- // Legacy Runtime with the list of directories and files that were
217574
- // created for the entrypoint that was just processed above.
217575
- newPathsRuntime = new Set([
217576
- ...newPathsRuntime,
217577
- ...newFilesEntrypoint,
217578
- ...newDirectoriesEntrypoint,
217579
- ]);
217580
217537
  // Add an entry that will later on be added to the `functions-manifest.json`
217581
217538
  // file that is placed inside of the `.output` directory.
217582
217539
  pages[normalize_path_1.normalizePath(entryPath)] = {
@@ -217592,39 +217549,12 @@ function convertRuntimeToPlugin(buildRuntime, packageName, ext) {
217592
217549
  allowQuery: output.allowQuery,
217593
217550
  };
217594
217551
  }
217595
- // Instead of of waiting for all of the linking to be done for every
217596
- // entrypoint before processing the next one, we immediately handle all
217597
- // of them one after the other, while then waiting for the linking
217598
- // to finish right here, before we clean up newly created files below.
217599
- await Promise.all(linkersRuntime);
217600
- // A list of all the files that were created by the Legacy Runtime,
217601
- // which we'd like to remove from the File System.
217602
- const toRemove = Array.from(newPathsRuntime).map(path => {
217603
- _1.debug(`Removing ${path} as part of cleanup`);
217604
- return fs_extra_1.default.remove(path);
217605
- });
217606
- // Once all the entrypoints have been processed, we'd like to
217607
- // remove all the files from `workPath` that originally weren't present
217608
- // before the Legacy Runtime began running, because the `workPath`
217609
- // is nowadays the directory in which the user keeps their source code, since
217610
- // we're no longer running separate parallel builds for every Legacy Runtime.
217611
- await Promise.all(toRemove);
217612
217552
  // Add any Serverless Functions that were exposed by the Legacy Runtime
217613
217553
  // to the `functions-manifest.json` file provided in `.output`.
217614
217554
  await updateFunctionsManifest({ workPath, pages });
217615
217555
  };
217616
217556
  }
217617
217557
  exports.convertRuntimeToPlugin = convertRuntimeToPlugin;
217618
- async function linkOrCopy(existingPath, newPath) {
217619
- try {
217620
- await fs_extra_1.default.createLink(existingPath, newPath);
217621
- }
217622
- catch (err) {
217623
- if (err.code !== 'EEXIST') {
217624
- await fs_extra_1.default.copyFile(existingPath, newPath);
217625
- }
217626
- }
217627
- }
217628
217558
  async function readJson(filePath) {
217629
217559
  try {
217630
217560
  const str = await fs_extra_1.default.readFile(filePath, 'utf8');
@@ -217645,7 +217575,7 @@ async function updateFunctionsManifest({ workPath, pages, }) {
217645
217575
  const functionsManifestPath = path_1.join(workPath, '.output', 'functions-manifest.json');
217646
217576
  const functionsManifest = await readJson(functionsManifestPath);
217647
217577
  if (!functionsManifest.version)
217648
- functionsManifest.version = 1;
217578
+ functionsManifest.version = 2;
217649
217579
  if (!functionsManifest.pages)
217650
217580
  functionsManifest.pages = {};
217651
217581
  for (const [pageKey, pageConfig] of Object.entries(pages)) {
@@ -217698,12 +217628,12 @@ exports.updateRoutesManifest = updateRoutesManifest;
217698
217628
  /***/ }),
217699
217629
 
217700
217630
  /***/ 1868:
217701
- /***/ ((__unused_webpack_module, exports, __nested_webpack_require_933640__) => {
217631
+ /***/ ((__unused_webpack_module, exports, __nested_webpack_require_929744__) => {
217702
217632
 
217703
217633
  "use strict";
217704
217634
 
217705
217635
  Object.defineProperty(exports, "__esModule", ({ value: true }));
217706
- const _1 = __nested_webpack_require_933640__(2855);
217636
+ const _1 = __nested_webpack_require_929744__(2855);
217707
217637
  function debug(message, ...additional) {
217708
217638
  if (_1.getPlatformEnv('BUILDER_DEBUG')) {
217709
217639
  console.log(message, ...additional);
@@ -217715,7 +217645,7 @@ exports.default = debug;
217715
217645
  /***/ }),
217716
217646
 
217717
217647
  /***/ 4246:
217718
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_934025__) {
217648
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_930129__) {
217719
217649
 
217720
217650
  "use strict";
217721
217651
 
@@ -217724,11 +217654,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
217724
217654
  };
217725
217655
  Object.defineProperty(exports, "__esModule", ({ value: true }));
217726
217656
  exports.detectBuilders = exports.detectOutputDirectory = exports.detectApiDirectory = exports.detectApiExtensions = exports.sortFiles = void 0;
217727
- const minimatch_1 = __importDefault(__nested_webpack_require_934025__(9566));
217728
- const semver_1 = __nested_webpack_require_934025__(2879);
217729
- const path_1 = __nested_webpack_require_934025__(5622);
217730
- const frameworks_1 = __importDefault(__nested_webpack_require_934025__(8438));
217731
- const _1 = __nested_webpack_require_934025__(2855);
217657
+ const minimatch_1 = __importDefault(__nested_webpack_require_930129__(9566));
217658
+ const semver_1 = __nested_webpack_require_930129__(2879);
217659
+ const path_1 = __nested_webpack_require_930129__(5622);
217660
+ const frameworks_1 = __importDefault(__nested_webpack_require_930129__(8438));
217661
+ const _1 = __nested_webpack_require_930129__(2855);
217732
217662
  const slugToFramework = new Map(frameworks_1.default.map(f => [f.slug, f]));
217733
217663
  // We need to sort the file paths by alphabet to make
217734
217664
  // sure the routes stay in the same order e.g. for deduping
@@ -218787,7 +218717,7 @@ function getSuggestion(topLevelProp, additionalProperty) {
218787
218717
  /***/ }),
218788
218718
 
218789
218719
  /***/ 2397:
218790
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_973409__) {
218720
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_969513__) {
218791
218721
 
218792
218722
  "use strict";
218793
218723
 
@@ -218795,8 +218725,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
218795
218725
  return (mod && mod.__esModule) ? mod : { "default": mod };
218796
218726
  };
218797
218727
  Object.defineProperty(exports, "__esModule", ({ value: true }));
218798
- const assert_1 = __importDefault(__nested_webpack_require_973409__(2357));
218799
- const into_stream_1 = __importDefault(__nested_webpack_require_973409__(6130));
218728
+ const assert_1 = __importDefault(__nested_webpack_require_969513__(2357));
218729
+ const into_stream_1 = __importDefault(__nested_webpack_require_969513__(6130));
218800
218730
  class FileBlob {
218801
218731
  constructor({ mode = 0o100644, contentType, data }) {
218802
218732
  assert_1.default(typeof mode === 'number');
@@ -218828,7 +218758,7 @@ exports.default = FileBlob;
218828
218758
  /***/ }),
218829
218759
 
218830
218760
  /***/ 9331:
218831
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_974861__) {
218761
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_970965__) {
218832
218762
 
218833
218763
  "use strict";
218834
218764
 
@@ -218836,11 +218766,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
218836
218766
  return (mod && mod.__esModule) ? mod : { "default": mod };
218837
218767
  };
218838
218768
  Object.defineProperty(exports, "__esModule", ({ value: true }));
218839
- const assert_1 = __importDefault(__nested_webpack_require_974861__(2357));
218840
- const fs_extra_1 = __importDefault(__nested_webpack_require_974861__(5392));
218841
- const multistream_1 = __importDefault(__nested_webpack_require_974861__(8179));
218842
- const path_1 = __importDefault(__nested_webpack_require_974861__(5622));
218843
- const async_sema_1 = __importDefault(__nested_webpack_require_974861__(5758));
218769
+ const assert_1 = __importDefault(__nested_webpack_require_970965__(2357));
218770
+ const fs_extra_1 = __importDefault(__nested_webpack_require_970965__(5392));
218771
+ const multistream_1 = __importDefault(__nested_webpack_require_970965__(8179));
218772
+ const path_1 = __importDefault(__nested_webpack_require_970965__(5622));
218773
+ const async_sema_1 = __importDefault(__nested_webpack_require_970965__(5758));
218844
218774
  const semaToPreventEMFILE = new async_sema_1.default(20);
218845
218775
  class FileFsRef {
218846
218776
  constructor({ mode = 0o100644, contentType, fsPath }) {
@@ -218906,7 +218836,7 @@ exports.default = FileFsRef;
218906
218836
  /***/ }),
218907
218837
 
218908
218838
  /***/ 5187:
218909
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_977665__) {
218839
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_973769__) {
218910
218840
 
218911
218841
  "use strict";
218912
218842
 
@@ -218914,11 +218844,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
218914
218844
  return (mod && mod.__esModule) ? mod : { "default": mod };
218915
218845
  };
218916
218846
  Object.defineProperty(exports, "__esModule", ({ value: true }));
218917
- const assert_1 = __importDefault(__nested_webpack_require_977665__(2357));
218918
- const node_fetch_1 = __importDefault(__nested_webpack_require_977665__(2197));
218919
- const multistream_1 = __importDefault(__nested_webpack_require_977665__(8179));
218920
- const async_retry_1 = __importDefault(__nested_webpack_require_977665__(3691));
218921
- const async_sema_1 = __importDefault(__nested_webpack_require_977665__(5758));
218847
+ const assert_1 = __importDefault(__nested_webpack_require_973769__(2357));
218848
+ const node_fetch_1 = __importDefault(__nested_webpack_require_973769__(2197));
218849
+ const multistream_1 = __importDefault(__nested_webpack_require_973769__(8179));
218850
+ const async_retry_1 = __importDefault(__nested_webpack_require_973769__(3691));
218851
+ const async_sema_1 = __importDefault(__nested_webpack_require_973769__(5758));
218922
218852
  const semaToDownloadFromS3 = new async_sema_1.default(5);
218923
218853
  class BailableError extends Error {
218924
218854
  constructor(...args) {
@@ -218999,7 +218929,7 @@ exports.default = FileRef;
218999
218929
  /***/ }),
219000
218930
 
219001
218931
  /***/ 1611:
219002
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_981066__) {
218932
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_977170__) {
219003
218933
 
219004
218934
  "use strict";
219005
218935
 
@@ -219008,10 +218938,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
219008
218938
  };
219009
218939
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219010
218940
  exports.isSymbolicLink = void 0;
219011
- const path_1 = __importDefault(__nested_webpack_require_981066__(5622));
219012
- const debug_1 = __importDefault(__nested_webpack_require_981066__(1868));
219013
- const file_fs_ref_1 = __importDefault(__nested_webpack_require_981066__(9331));
219014
- const fs_extra_1 = __nested_webpack_require_981066__(5392);
218941
+ const path_1 = __importDefault(__nested_webpack_require_977170__(5622));
218942
+ const debug_1 = __importDefault(__nested_webpack_require_977170__(1868));
218943
+ const file_fs_ref_1 = __importDefault(__nested_webpack_require_977170__(9331));
218944
+ const fs_extra_1 = __nested_webpack_require_977170__(5392);
219015
218945
  const S_IFMT = 61440; /* 0170000 type of file */
219016
218946
  const S_IFLNK = 40960; /* 0120000 symbolic link */
219017
218947
  function isSymbolicLink(mode) {
@@ -219073,14 +219003,14 @@ exports.default = download;
219073
219003
  /***/ }),
219074
219004
 
219075
219005
  /***/ 3838:
219076
- /***/ ((__unused_webpack_module, exports, __nested_webpack_require_983891__) => {
219006
+ /***/ ((__unused_webpack_module, exports, __nested_webpack_require_979995__) => {
219077
219007
 
219078
219008
  "use strict";
219079
219009
 
219080
219010
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219081
- const path_1 = __nested_webpack_require_983891__(5622);
219082
- const os_1 = __nested_webpack_require_983891__(2087);
219083
- const fs_extra_1 = __nested_webpack_require_983891__(5392);
219011
+ const path_1 = __nested_webpack_require_979995__(5622);
219012
+ const os_1 = __nested_webpack_require_979995__(2087);
219013
+ const fs_extra_1 = __nested_webpack_require_979995__(5392);
219084
219014
  async function getWritableDirectory() {
219085
219015
  const name = Math.floor(Math.random() * 0x7fffffff).toString(16);
219086
219016
  const directory = path_1.join(os_1.tmpdir(), name);
@@ -219093,7 +219023,7 @@ exports.default = getWritableDirectory;
219093
219023
  /***/ }),
219094
219024
 
219095
219025
  /***/ 4240:
219096
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_984471__) {
219026
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_980575__) {
219097
219027
 
219098
219028
  "use strict";
219099
219029
 
@@ -219101,13 +219031,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
219101
219031
  return (mod && mod.__esModule) ? mod : { "default": mod };
219102
219032
  };
219103
219033
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219104
- const path_1 = __importDefault(__nested_webpack_require_984471__(5622));
219105
- const assert_1 = __importDefault(__nested_webpack_require_984471__(2357));
219106
- const glob_1 = __importDefault(__nested_webpack_require_984471__(1104));
219107
- const util_1 = __nested_webpack_require_984471__(1669);
219108
- const fs_extra_1 = __nested_webpack_require_984471__(5392);
219109
- const normalize_path_1 = __nested_webpack_require_984471__(6261);
219110
- const file_fs_ref_1 = __importDefault(__nested_webpack_require_984471__(9331));
219034
+ const path_1 = __importDefault(__nested_webpack_require_980575__(5622));
219035
+ const assert_1 = __importDefault(__nested_webpack_require_980575__(2357));
219036
+ const glob_1 = __importDefault(__nested_webpack_require_980575__(1104));
219037
+ const util_1 = __nested_webpack_require_980575__(1669);
219038
+ const fs_extra_1 = __nested_webpack_require_980575__(5392);
219039
+ const normalize_path_1 = __nested_webpack_require_980575__(6261);
219040
+ const file_fs_ref_1 = __importDefault(__nested_webpack_require_980575__(9331));
219111
219041
  const vanillaGlob = util_1.promisify(glob_1.default);
219112
219042
  async function glob(pattern, opts, mountpoint) {
219113
219043
  let options;
@@ -219153,7 +219083,7 @@ exports.default = glob;
219153
219083
  /***/ }),
219154
219084
 
219155
219085
  /***/ 7903:
219156
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_986667__) {
219086
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_982771__) {
219157
219087
 
219158
219088
  "use strict";
219159
219089
 
@@ -219162,9 +219092,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
219162
219092
  };
219163
219093
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219164
219094
  exports.getSupportedNodeVersion = exports.getDiscontinuedNodeVersions = exports.getLatestNodeVersion = void 0;
219165
- const semver_1 = __nested_webpack_require_986667__(2879);
219166
- const errors_1 = __nested_webpack_require_986667__(3983);
219167
- const debug_1 = __importDefault(__nested_webpack_require_986667__(1868));
219095
+ const semver_1 = __nested_webpack_require_982771__(2879);
219096
+ const errors_1 = __nested_webpack_require_982771__(3983);
219097
+ const debug_1 = __importDefault(__nested_webpack_require_982771__(1868));
219168
219098
  const allOptions = [
219169
219099
  { major: 14, range: '14.x', runtime: 'nodejs14.x' },
219170
219100
  { major: 12, range: '12.x', runtime: 'nodejs12.x' },
@@ -219258,7 +219188,7 @@ exports.normalizePath = normalizePath;
219258
219188
  /***/ }),
219259
219189
 
219260
219190
  /***/ 7792:
219261
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_990535__) {
219191
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_986639__) {
219262
219192
 
219263
219193
  "use strict";
219264
219194
 
@@ -219267,9 +219197,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
219267
219197
  };
219268
219198
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219269
219199
  exports.readConfigFile = void 0;
219270
- const js_yaml_1 = __importDefault(__nested_webpack_require_990535__(6540));
219271
- const toml_1 = __importDefault(__nested_webpack_require_990535__(9434));
219272
- const fs_extra_1 = __nested_webpack_require_990535__(5392);
219200
+ const js_yaml_1 = __importDefault(__nested_webpack_require_986639__(6540));
219201
+ const toml_1 = __importDefault(__nested_webpack_require_986639__(9434));
219202
+ const fs_extra_1 = __nested_webpack_require_986639__(5392);
219273
219203
  async function readFileOrNull(file) {
219274
219204
  try {
219275
219205
  const data = await fs_extra_1.readFile(file);
@@ -219324,7 +219254,7 @@ exports.default = rename;
219324
219254
  /***/ }),
219325
219255
 
219326
219256
  /***/ 1442:
219327
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_992328__) {
219257
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_988432__) {
219328
219258
 
219329
219259
  "use strict";
219330
219260
 
@@ -219333,14 +219263,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
219333
219263
  };
219334
219264
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219335
219265
  exports.installDependencies = exports.getScriptName = exports.runPipInstall = exports.runBundleInstall = exports.runPackageJsonScript = exports.runNpmInstall = exports.walkParentDirs = exports.scanParentDirs = exports.getNodeVersion = exports.getSpawnOptions = exports.runShellScript = exports.getNodeBinPath = exports.execCommand = exports.spawnCommand = exports.execAsync = exports.spawnAsync = void 0;
219336
- const assert_1 = __importDefault(__nested_webpack_require_992328__(2357));
219337
- const fs_extra_1 = __importDefault(__nested_webpack_require_992328__(5392));
219338
- const path_1 = __importDefault(__nested_webpack_require_992328__(5622));
219339
- const debug_1 = __importDefault(__nested_webpack_require_992328__(1868));
219340
- const cross_spawn_1 = __importDefault(__nested_webpack_require_992328__(7618));
219341
- const util_1 = __nested_webpack_require_992328__(1669);
219342
- const errors_1 = __nested_webpack_require_992328__(3983);
219343
- const node_version_1 = __nested_webpack_require_992328__(7903);
219266
+ const assert_1 = __importDefault(__nested_webpack_require_988432__(2357));
219267
+ const fs_extra_1 = __importDefault(__nested_webpack_require_988432__(5392));
219268
+ const path_1 = __importDefault(__nested_webpack_require_988432__(5622));
219269
+ const debug_1 = __importDefault(__nested_webpack_require_988432__(1868));
219270
+ const cross_spawn_1 = __importDefault(__nested_webpack_require_988432__(7618));
219271
+ const util_1 = __nested_webpack_require_988432__(1669);
219272
+ const errors_1 = __nested_webpack_require_988432__(3983);
219273
+ const node_version_1 = __nested_webpack_require_988432__(7903);
219344
219274
  function spawnAsync(command, args, opts = {}) {
219345
219275
  return new Promise((resolve, reject) => {
219346
219276
  const stderrLogs = [];
@@ -219651,7 +219581,7 @@ exports.installDependencies = util_1.deprecate(runNpmInstall, 'installDependenci
219651
219581
  /***/ }),
219652
219582
 
219653
219583
  /***/ 2560:
219654
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1006318__) {
219584
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1002422__) {
219655
219585
 
219656
219586
  "use strict";
219657
219587
 
@@ -219659,7 +219589,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
219659
219589
  return (mod && mod.__esModule) ? mod : { "default": mod };
219660
219590
  };
219661
219591
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219662
- const end_of_stream_1 = __importDefault(__nested_webpack_require_1006318__(687));
219592
+ const end_of_stream_1 = __importDefault(__nested_webpack_require_1002422__(687));
219663
219593
  function streamToBuffer(stream) {
219664
219594
  return new Promise((resolve, reject) => {
219665
219595
  const buffers = [];
@@ -219688,7 +219618,7 @@ exports.default = streamToBuffer;
219688
219618
  /***/ }),
219689
219619
 
219690
219620
  /***/ 1148:
219691
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1007386__) {
219621
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1003490__) {
219692
219622
 
219693
219623
  "use strict";
219694
219624
 
@@ -219696,9 +219626,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
219696
219626
  return (mod && mod.__esModule) ? mod : { "default": mod };
219697
219627
  };
219698
219628
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219699
- const path_1 = __importDefault(__nested_webpack_require_1007386__(5622));
219700
- const fs_extra_1 = __importDefault(__nested_webpack_require_1007386__(5392));
219701
- const ignore_1 = __importDefault(__nested_webpack_require_1007386__(3556));
219629
+ const path_1 = __importDefault(__nested_webpack_require_1003490__(5622));
219630
+ const fs_extra_1 = __importDefault(__nested_webpack_require_1003490__(5392));
219631
+ const ignore_1 = __importDefault(__nested_webpack_require_1003490__(3556));
219702
219632
  function isCodedError(error) {
219703
219633
  return (error !== null &&
219704
219634
  error !== undefined &&
@@ -219755,7 +219685,7 @@ exports.default = default_1;
219755
219685
  /***/ }),
219756
219686
 
219757
219687
  /***/ 2855:
219758
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1009768__) {
219688
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1005872__) {
219759
219689
 
219760
219690
  "use strict";
219761
219691
 
@@ -219786,29 +219716,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
219786
219716
  };
219787
219717
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219788
219718
  exports.getInputHash = exports.getPlatformEnv = exports.isStaticRuntime = exports.isOfficialRuntime = exports.updateRoutesManifest = exports.updateFunctionsManifest = exports.convertRuntimeToPlugin = exports.normalizePath = exports.readConfigFile = exports.DetectorFilesystem = exports.detectFramework = exports.detectApiExtensions = exports.detectApiDirectory = exports.detectOutputDirectory = exports.detectBuilders = exports.getIgnoreFilter = exports.scanParentDirs = exports.getLambdaOptionsFromFunction = exports.isSymbolicLink = exports.debug = exports.shouldServe = exports.streamToBuffer = exports.getSpawnOptions = exports.getDiscontinuedNodeVersions = exports.getLatestNodeVersion = exports.getNodeVersion = 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.Lambda = exports.FileRef = exports.FileFsRef = exports.FileBlob = void 0;
219789
- const crypto_1 = __nested_webpack_require_1009768__(6417);
219790
- const file_blob_1 = __importDefault(__nested_webpack_require_1009768__(2397));
219719
+ const crypto_1 = __nested_webpack_require_1005872__(6417);
219720
+ const file_blob_1 = __importDefault(__nested_webpack_require_1005872__(2397));
219791
219721
  exports.FileBlob = file_blob_1.default;
219792
- const file_fs_ref_1 = __importDefault(__nested_webpack_require_1009768__(9331));
219722
+ const file_fs_ref_1 = __importDefault(__nested_webpack_require_1005872__(9331));
219793
219723
  exports.FileFsRef = file_fs_ref_1.default;
219794
- const file_ref_1 = __importDefault(__nested_webpack_require_1009768__(5187));
219724
+ const file_ref_1 = __importDefault(__nested_webpack_require_1005872__(5187));
219795
219725
  exports.FileRef = file_ref_1.default;
219796
- const lambda_1 = __nested_webpack_require_1009768__(6721);
219726
+ const lambda_1 = __nested_webpack_require_1005872__(6721);
219797
219727
  Object.defineProperty(exports, "Lambda", ({ enumerable: true, get: function () { return lambda_1.Lambda; } }));
219798
219728
  Object.defineProperty(exports, "createLambda", ({ enumerable: true, get: function () { return lambda_1.createLambda; } }));
219799
219729
  Object.defineProperty(exports, "getLambdaOptionsFromFunction", ({ enumerable: true, get: function () { return lambda_1.getLambdaOptionsFromFunction; } }));
219800
- const prerender_1 = __nested_webpack_require_1009768__(2850);
219730
+ const prerender_1 = __nested_webpack_require_1005872__(2850);
219801
219731
  Object.defineProperty(exports, "Prerender", ({ enumerable: true, get: function () { return prerender_1.Prerender; } }));
219802
- const download_1 = __importStar(__nested_webpack_require_1009768__(1611));
219732
+ const download_1 = __importStar(__nested_webpack_require_1005872__(1611));
219803
219733
  exports.download = download_1.default;
219804
219734
  Object.defineProperty(exports, "isSymbolicLink", ({ enumerable: true, get: function () { return download_1.isSymbolicLink; } }));
219805
- const get_writable_directory_1 = __importDefault(__nested_webpack_require_1009768__(3838));
219735
+ const get_writable_directory_1 = __importDefault(__nested_webpack_require_1005872__(3838));
219806
219736
  exports.getWriteableDirectory = get_writable_directory_1.default;
219807
- const glob_1 = __importDefault(__nested_webpack_require_1009768__(4240));
219737
+ const glob_1 = __importDefault(__nested_webpack_require_1005872__(4240));
219808
219738
  exports.glob = glob_1.default;
219809
- const rename_1 = __importDefault(__nested_webpack_require_1009768__(6718));
219739
+ const rename_1 = __importDefault(__nested_webpack_require_1005872__(6718));
219810
219740
  exports.rename = rename_1.default;
219811
- const run_user_scripts_1 = __nested_webpack_require_1009768__(1442);
219741
+ const run_user_scripts_1 = __nested_webpack_require_1005872__(1442);
219812
219742
  Object.defineProperty(exports, "execAsync", ({ enumerable: true, get: function () { return run_user_scripts_1.execAsync; } }));
219813
219743
  Object.defineProperty(exports, "spawnAsync", ({ enumerable: true, get: function () { return run_user_scripts_1.spawnAsync; } }));
219814
219744
  Object.defineProperty(exports, "execCommand", ({ enumerable: true, get: function () { return run_user_scripts_1.execCommand; } }));
@@ -219825,38 +219755,38 @@ Object.defineProperty(exports, "getNodeVersion", ({ enumerable: true, get: funct
219825
219755
  Object.defineProperty(exports, "getSpawnOptions", ({ enumerable: true, get: function () { return run_user_scripts_1.getSpawnOptions; } }));
219826
219756
  Object.defineProperty(exports, "getNodeBinPath", ({ enumerable: true, get: function () { return run_user_scripts_1.getNodeBinPath; } }));
219827
219757
  Object.defineProperty(exports, "scanParentDirs", ({ enumerable: true, get: function () { return run_user_scripts_1.scanParentDirs; } }));
219828
- const node_version_1 = __nested_webpack_require_1009768__(7903);
219758
+ const node_version_1 = __nested_webpack_require_1005872__(7903);
219829
219759
  Object.defineProperty(exports, "getLatestNodeVersion", ({ enumerable: true, get: function () { return node_version_1.getLatestNodeVersion; } }));
219830
219760
  Object.defineProperty(exports, "getDiscontinuedNodeVersions", ({ enumerable: true, get: function () { return node_version_1.getDiscontinuedNodeVersions; } }));
219831
- const errors_1 = __nested_webpack_require_1009768__(3983);
219832
- const stream_to_buffer_1 = __importDefault(__nested_webpack_require_1009768__(2560));
219761
+ const errors_1 = __nested_webpack_require_1005872__(3983);
219762
+ const stream_to_buffer_1 = __importDefault(__nested_webpack_require_1005872__(2560));
219833
219763
  exports.streamToBuffer = stream_to_buffer_1.default;
219834
- const should_serve_1 = __importDefault(__nested_webpack_require_1009768__(2564));
219764
+ const should_serve_1 = __importDefault(__nested_webpack_require_1005872__(2564));
219835
219765
  exports.shouldServe = should_serve_1.default;
219836
- const debug_1 = __importDefault(__nested_webpack_require_1009768__(1868));
219766
+ const debug_1 = __importDefault(__nested_webpack_require_1005872__(1868));
219837
219767
  exports.debug = debug_1.default;
219838
- const get_ignore_filter_1 = __importDefault(__nested_webpack_require_1009768__(1148));
219768
+ const get_ignore_filter_1 = __importDefault(__nested_webpack_require_1005872__(1148));
219839
219769
  exports.getIgnoreFilter = get_ignore_filter_1.default;
219840
- var detect_builders_1 = __nested_webpack_require_1009768__(4246);
219770
+ var detect_builders_1 = __nested_webpack_require_1005872__(4246);
219841
219771
  Object.defineProperty(exports, "detectBuilders", ({ enumerable: true, get: function () { return detect_builders_1.detectBuilders; } }));
219842
219772
  Object.defineProperty(exports, "detectOutputDirectory", ({ enumerable: true, get: function () { return detect_builders_1.detectOutputDirectory; } }));
219843
219773
  Object.defineProperty(exports, "detectApiDirectory", ({ enumerable: true, get: function () { return detect_builders_1.detectApiDirectory; } }));
219844
219774
  Object.defineProperty(exports, "detectApiExtensions", ({ enumerable: true, get: function () { return detect_builders_1.detectApiExtensions; } }));
219845
- var detect_framework_1 = __nested_webpack_require_1009768__(5224);
219775
+ var detect_framework_1 = __nested_webpack_require_1005872__(5224);
219846
219776
  Object.defineProperty(exports, "detectFramework", ({ enumerable: true, get: function () { return detect_framework_1.detectFramework; } }));
219847
- var filesystem_1 = __nested_webpack_require_1009768__(461);
219777
+ var filesystem_1 = __nested_webpack_require_1005872__(461);
219848
219778
  Object.defineProperty(exports, "DetectorFilesystem", ({ enumerable: true, get: function () { return filesystem_1.DetectorFilesystem; } }));
219849
- var read_config_file_1 = __nested_webpack_require_1009768__(7792);
219779
+ var read_config_file_1 = __nested_webpack_require_1005872__(7792);
219850
219780
  Object.defineProperty(exports, "readConfigFile", ({ enumerable: true, get: function () { return read_config_file_1.readConfigFile; } }));
219851
- var normalize_path_1 = __nested_webpack_require_1009768__(6261);
219781
+ var normalize_path_1 = __nested_webpack_require_1005872__(6261);
219852
219782
  Object.defineProperty(exports, "normalizePath", ({ enumerable: true, get: function () { return normalize_path_1.normalizePath; } }));
219853
- var convert_runtime_to_plugin_1 = __nested_webpack_require_1009768__(7276);
219783
+ var convert_runtime_to_plugin_1 = __nested_webpack_require_1005872__(7276);
219854
219784
  Object.defineProperty(exports, "convertRuntimeToPlugin", ({ enumerable: true, get: function () { return convert_runtime_to_plugin_1.convertRuntimeToPlugin; } }));
219855
219785
  Object.defineProperty(exports, "updateFunctionsManifest", ({ enumerable: true, get: function () { return convert_runtime_to_plugin_1.updateFunctionsManifest; } }));
219856
219786
  Object.defineProperty(exports, "updateRoutesManifest", ({ enumerable: true, get: function () { return convert_runtime_to_plugin_1.updateRoutesManifest; } }));
219857
- __exportStar(__nested_webpack_require_1009768__(2416), exports);
219858
- __exportStar(__nested_webpack_require_1009768__(5748), exports);
219859
- __exportStar(__nested_webpack_require_1009768__(3983), exports);
219787
+ __exportStar(__nested_webpack_require_1005872__(2416), exports);
219788
+ __exportStar(__nested_webpack_require_1005872__(5748), exports);
219789
+ __exportStar(__nested_webpack_require_1005872__(3983), exports);
219860
219790
  /**
219861
219791
  * Helper function to support both `@vercel` and legacy `@now` official Runtimes.
219862
219792
  */
@@ -219909,7 +219839,7 @@ exports.getInputHash = getInputHash;
219909
219839
  /***/ }),
219910
219840
 
219911
219841
  /***/ 6721:
219912
- /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1020746__) {
219842
+ /***/ (function(__unused_webpack_module, exports, __nested_webpack_require_1016850__) {
219913
219843
 
219914
219844
  "use strict";
219915
219845
 
@@ -219918,13 +219848,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
219918
219848
  };
219919
219849
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219920
219850
  exports.getLambdaOptionsFromFunction = exports.createZip = exports.createLambda = exports.Lambda = exports.FILES_SYMBOL = void 0;
219921
- const assert_1 = __importDefault(__nested_webpack_require_1020746__(2357));
219922
- const async_sema_1 = __importDefault(__nested_webpack_require_1020746__(5758));
219923
- const yazl_1 = __nested_webpack_require_1020746__(1223);
219924
- const minimatch_1 = __importDefault(__nested_webpack_require_1020746__(9566));
219925
- const fs_extra_1 = __nested_webpack_require_1020746__(5392);
219926
- const download_1 = __nested_webpack_require_1020746__(1611);
219927
- const stream_to_buffer_1 = __importDefault(__nested_webpack_require_1020746__(2560));
219851
+ const assert_1 = __importDefault(__nested_webpack_require_1016850__(2357));
219852
+ const async_sema_1 = __importDefault(__nested_webpack_require_1016850__(5758));
219853
+ const yazl_1 = __nested_webpack_require_1016850__(1223);
219854
+ const minimatch_1 = __importDefault(__nested_webpack_require_1016850__(9566));
219855
+ const fs_extra_1 = __nested_webpack_require_1016850__(5392);
219856
+ const download_1 = __nested_webpack_require_1016850__(1611);
219857
+ const stream_to_buffer_1 = __importDefault(__nested_webpack_require_1016850__(2560));
219928
219858
  exports.FILES_SYMBOL = Symbol('files');
219929
219859
  class Lambda {
219930
219860
  constructor({ zipBuffer, handler, runtime, maxDuration, memory, environment, allowQuery, regions, }) {
@@ -220153,12 +220083,12 @@ exports.buildsSchema = {
220153
220083
  /***/ }),
220154
220084
 
220155
220085
  /***/ 2564:
220156
- /***/ ((__unused_webpack_module, exports, __nested_webpack_require_1029256__) => {
220086
+ /***/ ((__unused_webpack_module, exports, __nested_webpack_require_1025360__) => {
220157
220087
 
220158
220088
  "use strict";
220159
220089
 
220160
220090
  Object.defineProperty(exports, "__esModule", ({ value: true }));
220161
- const path_1 = __nested_webpack_require_1029256__(5622);
220091
+ const path_1 = __nested_webpack_require_1025360__(5622);
220162
220092
  function shouldServe({ entrypoint, files, requestPath, }) {
220163
220093
  requestPath = requestPath.replace(/\/$/, ''); // sanitize trailing '/'
220164
220094
  entrypoint = entrypoint.replace(/\\/, '/'); // windows compatibility
@@ -220395,7 +220325,7 @@ module.exports = __webpack_require__(78761);
220395
220325
  /******/ var __webpack_module_cache__ = {};
220396
220326
  /******/
220397
220327
  /******/ // The require function
220398
- /******/ function __nested_webpack_require_1128991__(moduleId) {
220328
+ /******/ function __nested_webpack_require_1125095__(moduleId) {
220399
220329
  /******/ // Check if module is in cache
220400
220330
  /******/ if(__webpack_module_cache__[moduleId]) {
220401
220331
  /******/ return __webpack_module_cache__[moduleId].exports;
@@ -220410,7 +220340,7 @@ module.exports = __webpack_require__(78761);
220410
220340
  /******/ // Execute the module function
220411
220341
  /******/ var threw = true;
220412
220342
  /******/ try {
220413
- /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_1128991__);
220343
+ /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_1125095__);
220414
220344
  /******/ threw = false;
220415
220345
  /******/ } finally {
220416
220346
  /******/ if(threw) delete __webpack_module_cache__[moduleId];
@@ -220423,11 +220353,11 @@ module.exports = __webpack_require__(78761);
220423
220353
  /************************************************************************/
220424
220354
  /******/ /* webpack/runtime/compat */
220425
220355
  /******/
220426
- /******/ __nested_webpack_require_1128991__.ab = __dirname + "/";/************************************************************************/
220356
+ /******/ __nested_webpack_require_1125095__.ab = __dirname + "/";/************************************************************************/
220427
220357
  /******/ // module exports must be returned from runtime so entry inlining is disabled
220428
220358
  /******/ // startup
220429
220359
  /******/ // Load entry module and return exports
220430
- /******/ return __nested_webpack_require_1128991__(2855);
220360
+ /******/ return __nested_webpack_require_1125095__(2855);
220431
220361
  /******/ })()
220432
220362
  ;
220433
220363
 
@@ -238291,33 +238221,14 @@ exports.checkDeploymentStatus = checkDeploymentStatus;
238291
238221
  /***/ }),
238292
238222
 
238293
238223
  /***/ 97377:
238294
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
238224
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
238295
238225
 
238296
238226
  "use strict";
238297
238227
 
238298
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
238299
- if (k2 === undefined) k2 = k;
238300
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
238301
- }) : (function(o, m, k, k2) {
238302
- if (k2 === undefined) k2 = k;
238303
- o[k2] = m[k];
238304
- }));
238305
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
238306
- Object.defineProperty(o, "default", { enumerable: true, value: v });
238307
- }) : function(o, v) {
238308
- o["default"] = v;
238309
- });
238310
- var __importStar = (this && this.__importStar) || function (mod) {
238311
- if (mod && mod.__esModule) return mod;
238312
- var result = {};
238313
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
238314
- __setModuleDefault(result, mod);
238315
- return result;
238316
- };
238317
238228
  Object.defineProperty(exports, "__esModule", ({ value: true }));
238318
238229
  const fs_extra_1 = __webpack_require__(29394);
238319
238230
  const path_1 = __webpack_require__(85622);
238320
- const hashes_1 = __importStar(__webpack_require__(91234));
238231
+ const hashes_1 = __webpack_require__(91234);
238321
238232
  const upload_1 = __webpack_require__(78617);
238322
238233
  const utils_1 = __webpack_require__(52015);
238323
238234
  const errors_1 = __webpack_require__(42054);
@@ -238368,7 +238279,7 @@ function buildCreateDeployment() {
238368
238279
  else {
238369
238280
  debug(`Provided 'path' is a single file`);
238370
238281
  }
238371
- let { fileList } = await utils_1.buildFileTree(path, clientOptions.isDirectory, debug, clientOptions.prebuilt);
238282
+ let { fileList } = await utils_1.buildFileTree(path, clientOptions, debug);
238372
238283
  let configPath;
238373
238284
  if (!nowConfig) {
238374
238285
  // If the user did not provide a config file, use the one in the root directory.
@@ -238398,7 +238309,11 @@ function buildCreateDeployment() {
238398
238309
  payload: 'There are no files inside your deployment.',
238399
238310
  };
238400
238311
  }
238401
- const files = await hashes_1.default(fileList);
238312
+ const hashedFileMap = await hashes_1.hashes(fileList);
238313
+ const nftFileList = clientOptions.prebuilt
238314
+ ? await hashes_1.resolveNftJsonFiles(hashedFileMap)
238315
+ : [];
238316
+ const files = await hashes_1.hashes(nftFileList, hashedFileMap);
238402
238317
  debug(`Yielding a 'hashes-calculated' event with ${files.size} hashes`);
238403
238318
  yield { type: 'hashes-calculated', payload: hashes_1.mapToObject(files) };
238404
238319
  if (clientOptions.apiUrl) {
@@ -238852,10 +238767,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
238852
238767
  return (mod && mod.__esModule) ? mod : { "default": mod };
238853
238768
  };
238854
238769
  Object.defineProperty(exports, "__esModule", ({ value: true }));
238855
- exports.mapToObject = void 0;
238770
+ exports.resolveNftJsonFiles = exports.hashes = exports.mapToObject = void 0;
238856
238771
  const crypto_1 = __webpack_require__(76417);
238857
238772
  const fs_extra_1 = __importDefault(__webpack_require__(29394));
238858
238773
  const async_sema_1 = __webpack_require__(30401);
238774
+ const path_1 = __webpack_require__(85622);
238859
238775
  /**
238860
238776
  * Computes a hash for the given buf.
238861
238777
  *
@@ -238863,9 +238779,7 @@ const async_sema_1 = __webpack_require__(30401);
238863
238779
  * @return {String} hex digest
238864
238780
  */
238865
238781
  function hash(buf) {
238866
- return crypto_1.createHash('sha1')
238867
- .update(buf)
238868
- .digest('hex');
238782
+ return crypto_1.createHash('sha1').update(buf).digest('hex');
238869
238783
  }
238870
238784
  /**
238871
238785
  * Transforms map to object
@@ -238883,11 +238797,11 @@ exports.mapToObject = mapToObject;
238883
238797
  /**
238884
238798
  * Computes hashes for the contents of each file given.
238885
238799
  *
238886
- * @param {Array} of {String} full paths
238887
- * @return {Map}
238800
+ * @param files - absolute file paths
238801
+ * @param map - optional map of files to append
238802
+ * @return Map of hash digest to file object
238888
238803
  */
238889
- async function hashes(files) {
238890
- const map = new Map();
238804
+ async function hashes(files, map = new Map()) {
238891
238805
  const semaphore = new async_sema_1.Sema(100);
238892
238806
  await Promise.all(files.map(async (name) => {
238893
238807
  await semaphore.acquire();
@@ -238905,7 +238819,32 @@ async function hashes(files) {
238905
238819
  }));
238906
238820
  return map;
238907
238821
  }
238908
- exports.default = hashes;
238822
+ exports.hashes = hashes;
238823
+ async function resolveNftJsonFiles(hashedFiles) {
238824
+ const semaphore = new async_sema_1.Sema(100);
238825
+ const existingFiles = Array.from(hashedFiles.values());
238826
+ const resolvedFiles = new Set();
238827
+ await Promise.all(existingFiles.map(async (file) => {
238828
+ await semaphore.acquire();
238829
+ const fsPath = file.names[0];
238830
+ if (fsPath.endsWith('.nft.json')) {
238831
+ const json = file.data.toString('utf8');
238832
+ const { version, files } = JSON.parse(json);
238833
+ if (version === 1 || version === 2) {
238834
+ for (let f of files) {
238835
+ const relPath = typeof f === 'string' ? f : f.input;
238836
+ resolvedFiles.add(path_1.join(path_1.dirname(fsPath), relPath));
238837
+ }
238838
+ }
238839
+ else {
238840
+ console.error(`Invalid nft.json version: ${version}`);
238841
+ }
238842
+ }
238843
+ semaphore.release();
238844
+ }));
238845
+ return Array.from(resolvedFiles);
238846
+ }
238847
+ exports.resolveNftJsonFiles = resolveNftJsonFiles;
238909
238848
 
238910
238849
 
238911
238850
  /***/ }),
@@ -238987,10 +238926,10 @@ const maybeRead = async function (path, default_) {
238987
238926
  return default_;
238988
238927
  }
238989
238928
  };
238990
- async function buildFileTree(path, isDirectory, debug, prebuilt) {
238929
+ async function buildFileTree(path, { isDirectory, prebuilt, rootDirectory, }, debug) {
238991
238930
  const ignoreList = [];
238992
238931
  let fileList;
238993
- let { ig, ignores } = await getVercelIgnore(path, prebuilt);
238932
+ let { ig, ignores } = await getVercelIgnore(path, prebuilt, rootDirectory);
238994
238933
  debug(`Found ${ignores.length} rules in .vercelignore`);
238995
238934
  debug('Building file tree...');
238996
238935
  if (isDirectory && !Array.isArray(path)) {
@@ -239019,10 +238958,20 @@ async function buildFileTree(path, isDirectory, debug, prebuilt) {
239019
238958
  return { fileList, ignoreList };
239020
238959
  }
239021
238960
  exports.buildFileTree = buildFileTree;
239022
- async function getVercelIgnore(cwd, prebuilt) {
239023
- const ignores = prebuilt
239024
- ? ['*', '!.output', '!.output/**']
239025
- : [
238961
+ async function getVercelIgnore(cwd, prebuilt, rootDirectory) {
238962
+ let ignores = [];
238963
+ const outputDir = path_1.posix.join(rootDirectory || '', '.output');
238964
+ if (prebuilt) {
238965
+ ignores.push('*');
238966
+ const parts = outputDir.split('/');
238967
+ parts.forEach((_, i) => {
238968
+ const level = parts.slice(0, i + 1).join('/');
238969
+ ignores.push(`!${level}`);
238970
+ });
238971
+ ignores.push(`!${outputDir}/**`);
238972
+ }
238973
+ else {
238974
+ ignores = [
239026
238975
  '.hg',
239027
238976
  '.git',
239028
238977
  '.gitmodules',
@@ -239047,8 +238996,9 @@ async function getVercelIgnore(cwd, prebuilt) {
239047
238996
  '__pycache__',
239048
238997
  'venv',
239049
238998
  'CVS',
239050
- '.output',
238999
+ `.output`,
239051
239000
  ];
239001
+ }
239052
239002
  const cwds = Array.isArray(cwd) ? cwd : [cwd];
239053
239003
  const files = await Promise.all(cwds.map(async (cwd) => {
239054
239004
  const [vercelignore, nowignore] = await Promise.all([
@@ -250339,7 +250289,6 @@ const nft_1 = __webpack_require__(49280);
250339
250289
  const async_sema_1 = __importDefault(__webpack_require__(45758));
250340
250290
  const chalk_1 = __importDefault(__webpack_require__(961));
250341
250291
  const console_1 = __webpack_require__(57082);
250342
- const crypto_1 = __webpack_require__(76417);
250343
250292
  const fs_extra_1 = __importDefault(__webpack_require__(45392));
250344
250293
  const glob_1 = __importDefault(__webpack_require__(91104));
250345
250294
  const path_1 = __webpack_require__(85622);
@@ -250769,29 +250718,11 @@ async function main(client) {
250769
250718
  ],
250770
250719
  });
250771
250720
  fileList.delete(path_1.relative(cwd, f));
250772
- await resolveNftToOutput({
250773
- client,
250774
- baseDir,
250775
- outputDir: OUTPUT_DIR,
250776
- nftFileName: f.replace(ext, '.js.nft.json'),
250777
- distDir,
250778
- nft: {
250779
- version: 1,
250780
- files: Array.from(fileList).map(fileListEntry => path_1.relative(dir, fileListEntry)),
250781
- },
250782
- });
250783
- }
250784
- }
250785
- else {
250786
- for (let f of nftFiles) {
250787
- const json = await fs_extra_1.default.readJson(f);
250788
- await resolveNftToOutput({
250789
- client,
250790
- baseDir,
250791
- outputDir: OUTPUT_DIR,
250792
- nftFileName: f,
250793
- nft: json,
250794
- distDir,
250721
+ const nftFileName = f.replace(ext, '.js.nft.json');
250722
+ client.output.debug(`Creating ${nftFileName}`);
250723
+ await fs_extra_1.default.writeJSON(nftFileName, {
250724
+ version: 2,
250725
+ files: Array.from(fileList).map(fileListEntry => path_1.relative(dir, fileListEntry)),
250795
250726
  });
250796
250727
  }
250797
250728
  }
@@ -250805,14 +250736,7 @@ async function main(client) {
250805
250736
  files: requiredServerFilesJson.files.map((i) => {
250806
250737
  const originalPath = path_1.join(requiredServerFilesJson.appDir, i);
250807
250738
  const relPath = path_1.join(OUTPUT_DIR, path_1.relative(distDir, originalPath));
250808
- const absolutePath = path_1.join(cwd, relPath);
250809
- const output = path_1.relative(baseDir, absolutePath);
250810
- return relPath === output
250811
- ? relPath
250812
- : {
250813
- input: relPath,
250814
- output,
250815
- };
250739
+ return relPath;
250816
250740
  }),
250817
250741
  });
250818
250742
  }
@@ -250937,61 +250861,6 @@ async function glob(pattern, options) {
250937
250861
  });
250938
250862
  });
250939
250863
  }
250940
- /**
250941
- * Computes a hash for the given buf.
250942
- *
250943
- * @param {Buffer} file data
250944
- * @return {String} hex digest
250945
- */
250946
- function hash(buf) {
250947
- return crypto_1.createHash('sha1').update(buf).digest('hex');
250948
- }
250949
- // resolveNftToOutput takes nft file and moves all of its trace files
250950
- // into the specified directory + `inputs`, (renaming them to their hash + ext) and
250951
- // subsequently updating the original nft file accordingly. This is done
250952
- // to make the `.output` directory be self-contained, so that it works
250953
- // properly with `vc --prebuilt`.
250954
- async function resolveNftToOutput({ client, baseDir, outputDir, nftFileName, distDir, nft, }) {
250955
- client.output.debug(`Processing and resolving ${nftFileName}`);
250956
- await fs_extra_1.default.ensureDir(path_1.join(outputDir, 'inputs'));
250957
- const newFilesList = [];
250958
- // If `distDir` is a subdirectory, then the input has to be resolved to where the `.output` directory will be.
250959
- const relNftFileName = path_1.relative(outputDir, nftFileName);
250960
- const origNftFilename = path_1.join(distDir, relNftFileName);
250961
- if (relNftFileName.startsWith('cache/')) {
250962
- // No need to process the `cache/` directory.
250963
- // Paths in it might also not be relative to `cache` itself.
250964
- return;
250965
- }
250966
- for (let fileEntity of nft.files) {
250967
- const relativeInput = typeof fileEntity === 'string' ? fileEntity : fileEntity.input;
250968
- const fullInput = path_1.resolve(path_1.join(path_1.parse(origNftFilename).dir, relativeInput));
250969
- // if the resolved path is NOT in the .output directory we move in it there
250970
- if (!fullInput.includes(distDir)) {
250971
- const { ext } = path_1.parse(fullInput);
250972
- const raw = await fs_extra_1.default.readFile(fullInput);
250973
- const newFilePath = path_1.join(outputDir, 'inputs', hash(raw) + ext);
250974
- smartCopy(client, fullInput, newFilePath);
250975
- // We have to use `baseDir` instead of `cwd`, because we want to
250976
- // mount everything from there (especially `node_modules`).
250977
- // This is important for NPM Workspaces where `node_modules` is not
250978
- // in the directory of the workspace.
250979
- const output = path_1.relative(baseDir, fullInput).replace('.output', '.next');
250980
- newFilesList.push({
250981
- input: path_1.relative(path_1.parse(nftFileName).dir, newFilePath),
250982
- output,
250983
- });
250984
- }
250985
- else {
250986
- newFilesList.push(relativeInput);
250987
- }
250988
- }
250989
- // Update the .nft.json with new input and output mapping
250990
- await fs_extra_1.default.writeJSON(nftFileName, {
250991
- ...nft,
250992
- files: newFilesList,
250993
- });
250994
- }
250995
250864
  /**
250996
250865
  * Files will only exist when `next export` was used.
250997
250866
  */
@@ -252009,6 +251878,7 @@ exports.default = async (client) => {
252009
251878
  forceNew: argv['--force'],
252010
251879
  withCache: argv['--with-cache'],
252011
251880
  prebuilt: argv['--prebuilt'],
251881
+ rootDirectory,
252012
251882
  quiet,
252013
251883
  wantsPublic: argv['--public'] || localConfig.public,
252014
251884
  isFile,
@@ -259562,7 +259432,7 @@ function printInspectUrl(output, inspectorUrl, deployStamp) {
259562
259432
  output.print(emoji_1.prependEmoji(`Inspect: ${chalk_1.default.bold(inspectorUrl)} ${deployStamp()}`, emoji_1.emoji('inspect')) + `\n`);
259563
259433
  }
259564
259434
  async function processDeployment({ org, cwd, projectName, isSettingUpProject, skipAutoDetectionConfirmation, ...args }) {
259565
- let { now, output, paths, requestBody, deployStamp, force, withCache, nowConfig, quiet, prebuilt, } = args;
259435
+ let { now, output, paths, requestBody, deployStamp, force, withCache, nowConfig, quiet, prebuilt, rootDirectory, } = args;
259566
259436
  const { debug } = output;
259567
259437
  let bar = null;
259568
259438
  const { env = {} } = requestBody;
@@ -259580,6 +259450,7 @@ async function processDeployment({ org, cwd, projectName, isSettingUpProject, sk
259580
259450
  force,
259581
259451
  withCache,
259582
259452
  prebuilt,
259453
+ rootDirectory,
259583
259454
  skipAutoDetectionConfirmation,
259584
259455
  };
259585
259456
  output.spinner(isSettingUpProject
@@ -266428,7 +266299,7 @@ class Now extends events_1.default {
266428
266299
  // Legacy
266429
266300
  nowConfig: nowConfig = {},
266430
266301
  // Latest
266431
- name, project, prebuilt = false, wantsPublic, meta, regions, quiet = false, env, build, forceNew = false, withCache = false, target = null, deployStamp, projectSettings, skipAutoDetectionConfirmation, }, org, isSettingUpProject, cwd) {
266302
+ name, project, prebuilt = false, rootDirectory, wantsPublic, meta, regions, quiet = false, env, build, forceNew = false, withCache = false, target = null, deployStamp, projectSettings, skipAutoDetectionConfirmation, }, org, isSettingUpProject, cwd) {
266432
266303
  let hashes = {};
266433
266304
  const uploadStamp = stamp_1.default();
266434
266305
  let requestBody = {
@@ -266464,6 +266335,7 @@ class Now extends events_1.default {
266464
266335
  skipAutoDetectionConfirmation,
266465
266336
  cwd,
266466
266337
  prebuilt,
266338
+ rootDirectory,
266467
266339
  });
266468
266340
  if (deployment && deployment.warnings) {
266469
266341
  let sizeExceeded = 0;
@@ -271195,7 +271067,7 @@ module.exports = JSON.parse("[\"ac\",\"com.ac\",\"edu.ac\",\"gov.ac\",\"net.ac\"
271195
271067
  /***/ ((module) => {
271196
271068
 
271197
271069
  "use strict";
271198
- module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"23.1.3-canary.61\",\"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\",\"test-unit\":\"jest --coverage --verbose\",\"test-integration-cli\":\"rimraf test/fixtures/integration && ava test/integration.js --serial --fail-fast --verbose\",\"test-integration-dev\":\"ava test/dev/integration.js --serial --fail-fast --verbose\",\"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\":{\"compileEnhancements\":false,\"extensions\":[\"ts\"],\"require\":[\"ts-node/register/transpile-only\",\"esm\"]},\"engines\":{\"node\":\">= 12\"},\"dependencies\":{\"@vercel/build-utils\":\"2.12.3-canary.38\",\"@vercel/go\":\"1.2.4-canary.4\",\"@vercel/node\":\"1.12.2-canary.7\",\"@vercel/python\":\"2.1.2-canary.1\",\"@vercel/ruby\":\"1.2.10-canary.0\",\"update-notifier\":\"4.1.0\",\"vercel-plugin-middleware\":\"0.0.0-canary.14\",\"vercel-plugin-node\":\"1.12.2-canary.30\"},\"devDependencies\":{\"@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.0.1\",\"@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\",\"@vercel/frameworks\":\"0.5.1-canary.17\",\"@vercel/ncc\":\"0.24.0\",\"@vercel/nft\":\"0.17.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.2.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-eager\":\"2.0.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\"},\"jest\":{\"preset\":\"ts-jest\",\"globals\":{\"ts-jest\":{\"diagnostics\":false,\"isolatedModules\":true}},\"verbose\":false,\"testEnvironment\":\"node\",\"testMatch\":[\"<rootDir>/test/**/*.test.ts\"]},\"gitHead\":\"6792edf32a1a81f240cc1b5c9f9cc756a9a2b83b\"}");
271070
+ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"23.1.3-canary.65\",\"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\",\"test-unit\":\"jest --coverage --verbose\",\"test-integration-cli\":\"rimraf test/fixtures/integration && ava test/integration.js --serial --fail-fast --verbose\",\"test-integration-dev\":\"ava test/dev/integration.js --serial --fail-fast --verbose\",\"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\":{\"compileEnhancements\":false,\"extensions\":[\"ts\"],\"require\":[\"ts-node/register/transpile-only\",\"esm\"]},\"engines\":{\"node\":\">= 12\"},\"dependencies\":{\"@vercel/build-utils\":\"2.12.3-canary.41\",\"@vercel/go\":\"1.2.4-canary.4\",\"@vercel/node\":\"1.12.2-canary.7\",\"@vercel/python\":\"2.1.2-canary.1\",\"@vercel/ruby\":\"1.2.10-canary.0\",\"update-notifier\":\"4.1.0\",\"vercel-plugin-middleware\":\"0.0.0-canary.18\",\"vercel-plugin-node\":\"1.12.2-canary.33\"},\"devDependencies\":{\"@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.0.1\",\"@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\",\"@vercel/frameworks\":\"0.5.1-canary.17\",\"@vercel/ncc\":\"0.24.0\",\"@vercel/nft\":\"0.17.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.2.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-eager\":\"2.0.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\"},\"jest\":{\"preset\":\"ts-jest\",\"globals\":{\"ts-jest\":{\"diagnostics\":false,\"isolatedModules\":true}},\"verbose\":false,\"testEnvironment\":\"node\",\"testMatch\":[\"<rootDir>/test/**/*.test.ts\"]},\"gitHead\":\"695f3a921220310a924c0af7dffed4eee306e060\"}");
271199
271071
 
271200
271072
  /***/ }),
271201
271073
 
@@ -271211,7 +271083,7 @@ module.exports = JSON.parse("{\"VISA\":\"Visa\",\"MASTERCARD\":\"MasterCard\",\"
271211
271083
  /***/ ((module) => {
271212
271084
 
271213
271085
  "use strict";
271214
- module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"10.2.3-canary.39\",\"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\":\"jest --verbose --runInBand --bail tests/create-deployment.test.ts tests/create-legacy-deployment.test.ts tests/paths.test.ts\",\"test-unit\":\"jest --verbose --runInBand --bail tests/unit.*test.*\"},\"engines\":{\"node\":\">= 12\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.1\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.0.1\",\"@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\":\"2.12.3-canary.38\",\"@zeit/fetch\":\"5.2.0\",\"async-retry\":\"1.2.3\",\"async-sema\":\"3.0.0\",\"fs-extra\":\"8.0.1\",\"ignore\":\"4.0.6\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.1\",\"querystring\":\"^0.2.0\",\"recursive-readdir\":\"2.2.2\",\"sleep-promise\":\"8.0.1\"},\"gitHead\":\"6792edf32a1a81f240cc1b5c9f9cc756a9a2b83b\"}");
271086
+ module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"10.2.3-canary.43\",\"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\":\"jest --verbose --runInBand --bail tests/create-deployment.test.ts tests/create-legacy-deployment.test.ts tests/paths.test.ts\",\"test-unit\":\"jest --verbose --runInBand --bail tests/unit.*test.*\"},\"engines\":{\"node\":\">= 12\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.1\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.0.1\",\"@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\":\"2.12.3-canary.41\",\"@zeit/fetch\":\"5.2.0\",\"async-retry\":\"1.2.3\",\"async-sema\":\"3.0.0\",\"fs-extra\":\"8.0.1\",\"ignore\":\"4.0.6\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.1\",\"querystring\":\"^0.2.0\",\"recursive-readdir\":\"2.2.2\",\"sleep-promise\":\"8.0.1\"},\"gitHead\":\"695f3a921220310a924c0af7dffed4eee306e060\"}");
271215
271087
 
271216
271088
  /***/ }),
271217
271089
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "23.1.3-canary.61",
3
+ "version": "23.1.3-canary.65",
4
4
  "preferGlobal": true,
5
5
  "license": "Apache-2.0",
6
6
  "description": "The command-line interface for Vercel",
@@ -43,14 +43,14 @@
43
43
  "node": ">= 12"
44
44
  },
45
45
  "dependencies": {
46
- "@vercel/build-utils": "2.12.3-canary.38",
46
+ "@vercel/build-utils": "2.12.3-canary.41",
47
47
  "@vercel/go": "1.2.4-canary.4",
48
48
  "@vercel/node": "1.12.2-canary.7",
49
49
  "@vercel/python": "2.1.2-canary.1",
50
50
  "@vercel/ruby": "1.2.10-canary.0",
51
51
  "update-notifier": "4.1.0",
52
- "vercel-plugin-middleware": "0.0.0-canary.14",
53
- "vercel-plugin-node": "1.12.2-canary.30"
52
+ "vercel-plugin-middleware": "0.0.0-canary.18",
53
+ "vercel-plugin-node": "1.12.2-canary.33"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@next/env": "11.1.2",
@@ -184,5 +184,5 @@
184
184
  "<rootDir>/test/**/*.test.ts"
185
185
  ]
186
186
  },
187
- "gitHead": "6792edf32a1a81f240cc1b5c9f9cc756a9a2b83b"
187
+ "gitHead": "695f3a921220310a924c0af7dffed4eee306e060"
188
188
  }