vercel 31.0.2 → 31.0.4

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 +90 -36
  2. package/package.json +10 -10
package/dist/index.js CHANGED
@@ -192319,7 +192319,7 @@ module.exports = {
192319
192319
 
192320
192320
  /***/ }),
192321
192321
 
192322
- /***/ 18505:
192322
+ /***/ 9429:
192323
192323
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
192324
192324
 
192325
192325
  "use strict";
@@ -192327,10 +192327,14 @@ module.exports = {
192327
192327
  const supportsColor = __webpack_require__(96328);
192328
192328
  const hasFlag = __webpack_require__(72035);
192329
192329
 
192330
+ /**
192331
+ @param {string} versionString
192332
+ @returns {{ major: number, minor: number, patch: number }}
192333
+ */
192330
192334
  function parseVersion(versionString) {
192331
192335
  if (/^\d{3,4}$/.test(versionString)) {
192332
192336
  // Env var doesn't always use dots. example: 4601 => 46.1.0
192333
- const m = /(\d{1,2})(\d{2})/.exec(versionString);
192337
+ const m = /(\d{1,2})(\d{2})/.exec(versionString) || [];
192334
192338
  return {
192335
192339
  major: 0,
192336
192340
  minor: parseInt(m[1], 10),
@@ -192346,11 +192350,23 @@ function parseVersion(versionString) {
192346
192350
  };
192347
192351
  }
192348
192352
 
192353
+ /**
192354
+ @param {{ isTTY?: boolean | undefined }} stream
192355
+ @returns {boolean}
192356
+ */
192349
192357
  function supportsHyperlink(stream) {
192350
- const {env} = process;
192358
+ const {
192359
+ CI,
192360
+ FORCE_HYPERLINK,
192361
+ NETLIFY,
192362
+ TEAMCITY_VERSION,
192363
+ TERM_PROGRAM,
192364
+ TERM_PROGRAM_VERSION,
192365
+ VTE_VERSION
192366
+ } = process.env;
192351
192367
 
192352
- if ('FORCE_HYPERLINK' in env) {
192353
- return !(env.FORCE_HYPERLINK.length > 0 && parseInt(env.FORCE_HYPERLINK, 10) === 0);
192368
+ if (FORCE_HYPERLINK) {
192369
+ return !(FORCE_HYPERLINK.length > 0 && parseInt(FORCE_HYPERLINK, 10) === 0);
192354
192370
  }
192355
192371
 
192356
192372
  if (hasFlag('no-hyperlink') || hasFlag('no-hyperlinks') || hasFlag('hyperlink=false') || hasFlag('hyperlink=never')) {
@@ -192361,6 +192377,11 @@ function supportsHyperlink(stream) {
192361
192377
  return true;
192362
192378
  }
192363
192379
 
192380
+ // Netlify does not run a TTY, it does not need `supportsColor` check
192381
+ if (NETLIFY) {
192382
+ return true;
192383
+ }
192384
+
192364
192385
  // If they specify no colors, they probably don't want hyperlinks.
192365
192386
  if (!supportsColor.supportsColor(stream)) {
192366
192387
  return false;
@@ -192374,39 +192395,40 @@ function supportsHyperlink(stream) {
192374
192395
  return false;
192375
192396
  }
192376
192397
 
192377
- if ('NETLIFY' in env) {
192378
- return true;
192379
- }
192380
-
192381
- if ('CI' in env) {
192398
+ if (CI) {
192382
192399
  return false;
192383
192400
  }
192384
192401
 
192385
- if ('TEAMCITY_VERSION' in env) {
192402
+ if (TEAMCITY_VERSION) {
192386
192403
  return false;
192387
192404
  }
192388
192405
 
192389
- if ('TERM_PROGRAM' in env) {
192390
- const version = parseVersion(env.TERM_PROGRAM_VERSION);
192406
+ if (TERM_PROGRAM) {
192407
+ const version = parseVersion(TERM_PROGRAM_VERSION || '');
192391
192408
 
192392
- switch (env.TERM_PROGRAM) {
192409
+ switch (TERM_PROGRAM) {
192393
192410
  case 'iTerm.app':
192394
192411
  if (version.major === 3) {
192395
192412
  return version.minor >= 1;
192396
192413
  }
192397
192414
 
192398
192415
  return version.major > 3;
192416
+ case 'WezTerm':
192417
+ return version.major >= 20200620;
192418
+ case 'vscode':
192419
+ // eslint-disable-next-line no-mixed-operators
192420
+ return version.major > 1 || version.major === 1 && version.minor >= 72;
192399
192421
  // No default
192400
192422
  }
192401
192423
  }
192402
192424
 
192403
- if ('VTE_VERSION' in env) {
192425
+ if (VTE_VERSION) {
192404
192426
  // 0.50.0 was supposed to support hyperlinks, but throws a segfault
192405
- if (env.VTE_VERSION === '0.50.0') {
192427
+ if (VTE_VERSION === '0.50.0') {
192406
192428
  return false;
192407
192429
  }
192408
192430
 
192409
- const version = parseVersion(env.VTE_VERSION);
192431
+ const version = parseVersion(VTE_VERSION);
192410
192432
  return version.major > 0 || version.minor >= 50;
192411
192433
  }
192412
192434
 
@@ -222552,7 +222574,7 @@ exports.detectFileSystemAPI = detectFileSystemAPI;
222552
222574
  "use strict";
222553
222575
 
222554
222576
  Object.defineProperty(exports, "__esModule", ({ value: true }));
222555
- exports.detectFrameworkVersion = exports.detectFrameworkRecord = exports.detectFramework = void 0;
222577
+ exports.detectFrameworkVersion = exports.detectFrameworkRecord = exports.detectFrameworks = exports.detectFramework = void 0;
222556
222578
  const child_process_1 = __webpack_require__(63129);
222557
222579
  async function matches(fs, framework) {
222558
222580
  const { detectors } = framework;
@@ -222642,6 +222664,19 @@ async function detectFramework({ fs, frameworkList, }) {
222642
222664
  return result.find(res => res !== null) ?? null;
222643
222665
  }
222644
222666
  exports.detectFramework = detectFramework;
222667
+ /**
222668
+ * Detects all matching Frameworks based on the given virtual filesystem.
222669
+ */
222670
+ async function detectFrameworks({ fs, frameworkList, }) {
222671
+ const result = await Promise.all(frameworkList.map(async (frameworkMatch) => {
222672
+ if (await matches(fs, frameworkMatch)) {
222673
+ return frameworkMatch;
222674
+ }
222675
+ return null;
222676
+ }));
222677
+ return result.filter(res => res !== null);
222678
+ }
222679
+ exports.detectFrameworks = detectFrameworks;
222645
222680
  // Note: Does not currently support a `frameworkList` of monorepo managers
222646
222681
  async function detectFrameworkRecord({ fs, frameworkList, }) {
222647
222682
  const result = await Promise.all(frameworkList.map(async (frameworkMatch) => {
@@ -222947,7 +222982,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
222947
222982
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
222948
222983
  };
222949
222984
  Object.defineProperty(exports, "__esModule", ({ value: true }));
222950
- exports.packageManagers = exports.isStaticRuntime = exports.isOfficialRuntime = exports.monorepoManagers = exports.getWorkspacePackagePaths = exports.getWorkspaces = exports.workspaceManagers = exports.LocalFileSystemDetector = exports.DetectorFilesystem = exports.getProjectPaths = exports.detectFrameworkVersion = exports.detectFrameworkRecord = exports.detectFramework = exports.detectFileSystemAPI = exports.detectApiExtensions = exports.detectApiDirectory = exports.detectOutputDirectory = exports.detectBuilders = void 0;
222985
+ exports.packageManagers = exports.isStaticRuntime = exports.isOfficialRuntime = exports.monorepoManagers = exports.getWorkspacePackagePaths = exports.getWorkspaces = exports.workspaceManagers = exports.LocalFileSystemDetector = exports.DetectorFilesystem = exports.getProjectPaths = exports.detectFrameworkVersion = exports.detectFrameworkRecord = exports.detectFrameworks = exports.detectFramework = exports.detectFileSystemAPI = exports.detectApiExtensions = exports.detectApiDirectory = exports.detectOutputDirectory = exports.detectBuilders = void 0;
222951
222986
  var detect_builders_1 = __webpack_require__(91906);
222952
222987
  Object.defineProperty(exports, "detectBuilders", ({ enumerable: true, get: function () { return detect_builders_1.detectBuilders; } }));
222953
222988
  Object.defineProperty(exports, "detectOutputDirectory", ({ enumerable: true, get: function () { return detect_builders_1.detectOutputDirectory; } }));
@@ -222957,6 +222992,7 @@ var detect_file_system_api_1 = __webpack_require__(49587);
222957
222992
  Object.defineProperty(exports, "detectFileSystemAPI", ({ enumerable: true, get: function () { return detect_file_system_api_1.detectFileSystemAPI; } }));
222958
222993
  var detect_framework_1 = __webpack_require__(7244);
222959
222994
  Object.defineProperty(exports, "detectFramework", ({ enumerable: true, get: function () { return detect_framework_1.detectFramework; } }));
222995
+ Object.defineProperty(exports, "detectFrameworks", ({ enumerable: true, get: function () { return detect_framework_1.detectFrameworks; } }));
222960
222996
  Object.defineProperty(exports, "detectFrameworkRecord", ({ enumerable: true, get: function () { return detect_framework_1.detectFrameworkRecord; } }));
222961
222997
  Object.defineProperty(exports, "detectFrameworkVersion", ({ enumerable: true, get: function () { return detect_framework_1.detectFrameworkVersion; } }));
222962
222998
  var get_project_paths_1 = __webpack_require__(50330);
@@ -232064,6 +232100,10 @@ async function rm(client, args) {
232064
232100
  client.output.error('No such project exists');
232065
232101
  return 1;
232066
232102
  }
232103
+ if ((0, errors_ts_1.isAPIError)(err) && err.status === 403) {
232104
+ client.output.error(err.message);
232105
+ return 1;
232106
+ }
232067
232107
  }
232068
232108
  const elapsed = (0, ms_1.default)(Date.now() - start);
232069
232109
  client.output.log(`${chalk_1.default.cyan('Success!')} Project ${chalk_1.default.bold(name)} removed ${chalk_1.default.gray(`[${elapsed}]`)}`);
@@ -232636,7 +232676,7 @@ exports.default = async (client) => {
232636
232676
  action: 'redeploy',
232637
232677
  },
232638
232678
  name: fromDeployment.name,
232639
- target: fromDeployment.target,
232679
+ target: fromDeployment.target ?? undefined,
232640
232680
  },
232641
232681
  method: 'POST',
232642
232682
  });
@@ -236820,7 +236860,8 @@ class Client extends events_1.EventEmitter {
236820
236860
  (0, print_indications_1.default)(this, res);
236821
236861
  if (!res.ok) {
236822
236862
  const error = await (0, response_error_1.default)(res);
236823
- if (isSAMLError(error)) {
236863
+ // we should force reauth only if error has a teamId
236864
+ if (isSAMLError(error) && error.teamId) {
236824
236865
  try {
236825
236866
  // A SAML error means the token is expired, or is not
236826
236867
  // designated for the requested team, so the user needs
@@ -238002,6 +238043,9 @@ async function processDeployment({ org, cwd, projectName, isSettingUpProject, ar
238002
238043
  if (error.code === 'missing_project_settings') {
238003
238044
  return error;
238004
238045
  }
238046
+ if (error.code === 'forbidden') {
238047
+ return error;
238048
+ }
238005
238049
  throw error;
238006
238050
  }
238007
238051
  // Handle alias-assigned event
@@ -246569,10 +246613,11 @@ async function ensureRepoLink(client, cwd, { yes, overwrite }) {
246569
246613
  for (const project of projects) {
246570
246614
  detectedProjects.delete(project.rootDirectory ?? '');
246571
246615
  }
246572
- if (detectedProjects.size > 0) {
246573
- output.log(`Detected ${(0, pluralize_1.default)('new Project', detectedProjects.size, true)} that may be created.`);
246616
+ const detectedProjectsCount = Array.from(detectedProjects.values()).reduce((o, f) => o + f.length, 0);
246617
+ if (detectedProjectsCount > 0) {
246618
+ output.log(`Detected ${(0, pluralize_1.default)('new Project', detectedProjectsCount, true)} that may be created.`);
246574
246619
  }
246575
- const addSeparators = projects.length > 0 && detectedProjects.size > 0;
246620
+ const addSeparators = projects.length > 0 && detectedProjectsCount > 0;
246576
246621
  const { selected } = await client.prompt({
246577
246622
  type: 'checkbox',
246578
246623
  name: 'selected',
@@ -246591,20 +246636,26 @@ async function ensureRepoLink(client, cwd, { yes, overwrite }) {
246591
246636
  ...(addSeparators
246592
246637
  ? [new inquirer_1.default.Separator('----- New Projects to be created -----')]
246593
246638
  : []),
246594
- ...Array.from(detectedProjects.entries()).map(([rootDirectory, framework]) => {
246595
- const name = (0, slugify_1.default)([(0, path_1.basename)(rootPath), (0, path_1.basename)(rootDirectory)]
246639
+ ...Array.from(detectedProjects.entries()).flatMap(([rootDirectory, frameworks]) => frameworks.map((framework, i) => {
246640
+ const name = (0, slugify_1.default)([
246641
+ (0, path_1.basename)(rootPath),
246642
+ (0, path_1.basename)(rootDirectory),
246643
+ i > 0 ? framework.slug : '',
246644
+ ]
246596
246645
  .filter(Boolean)
246597
246646
  .join('-'));
246598
246647
  return {
246599
- name: `${org.slug}/${name} (${framework})`,
246648
+ name: `${org.slug}/${name} (${framework.name})`,
246600
246649
  value: {
246601
246650
  newProject: true,
246602
246651
  rootDirectory,
246603
246652
  name,
246604
246653
  framework,
246605
246654
  },
246655
+ // Checked by default when there are no other existing Projects
246656
+ checked: projects.length === 0,
246606
246657
  };
246607
- }),
246658
+ })),
246608
246659
  ],
246609
246660
  });
246610
246661
  if (selected.length === 0) {
@@ -246620,9 +246671,12 @@ async function ensureRepoLink(client, cwd, { yes, overwrite }) {
246620
246671
  delete selection.newProject;
246621
246672
  if (!selection.rootDirectory)
246622
246673
  delete selection.rootDirectory;
246623
- selected[i] = await (0, create_project_1.default)(client, selection);
246674
+ selected[i] = await (0, create_project_1.default)(client, {
246675
+ ...selection,
246676
+ framework: selection.framework.slug,
246677
+ });
246624
246678
  await (0, connect_git_provider_1.connectGitProvider)(client, org, selected[i].id, parsedRepoUrl.provider, `${parsedRepoUrl.org}/${parsedRepoUrl.repo}`);
246625
- output.log(`Created new Project: ${output.link(orgAndName, `https://vercel.com/${orgAndName}`)}`);
246679
+ output.log(`Created new Project: ${output.link(orgAndName, `https://vercel.com/${orgAndName}`, { fallback: false })}`);
246626
246680
  }
246627
246681
  repoConfig = {
246628
246682
  orgId: org.id,
@@ -246639,7 +246693,7 @@ async function ensureRepoLink(client, cwd, { yes, overwrite }) {
246639
246693
  await (0, link_1.writeReadme)(rootPath);
246640
246694
  // update .gitignore
246641
246695
  const isGitIgnoreUpdated = await (0, add_to_gitignore_1.addToGitIgnore)(rootPath);
246642
- output.print((0, emoji_1.prependEmoji)(`Linked to ${repoUrlLink} under ${chalk_1.default.bold(org.slug)} (created ${link_1.VERCEL_DIR}${isGitIgnoreUpdated ? ' and added it to .gitignore' : ''})`, (0, emoji_1.emoji)('link')) + '\n');
246696
+ output.print((0, emoji_1.prependEmoji)(`Linked to ${(0, pluralize_1.default)('Project', selected.length, true)} under ${chalk_1.default.bold(org.slug)} (created ${link_1.VERCEL_DIR}${isGitIgnoreUpdated ? ' and added it to .gitignore' : ''})`, (0, emoji_1.emoji)('link')) + '\n');
246643
246697
  }
246644
246698
  return {
246645
246699
  repoConfig,
@@ -247907,7 +247961,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
247907
247961
  exports.Output = void 0;
247908
247962
  const chalk_1 = __importDefault(__webpack_require__(90877));
247909
247963
  const ansiEscapes = __importStar(__webpack_require__(68700));
247910
- const supports_hyperlinks_1 = __webpack_require__(18505);
247964
+ const supports_hyperlinks_1 = __webpack_require__(9429);
247911
247965
  const link_1 = __importDefault(__webpack_require__(39302));
247912
247966
  const wait_1 = __importDefault(__webpack_require__(34604));
247913
247967
  const error_utils_1 = __webpack_require__(39799);
@@ -248786,13 +248840,13 @@ async function detectProjects(cwd) {
248786
248840
  packagePaths.push('/');
248787
248841
  }
248788
248842
  await Promise.all(packagePaths.map(async (p) => {
248789
- const framework = await (0, fs_detectors_1.detectFramework)({
248843
+ const frameworks = await (0, fs_detectors_1.detectFrameworks)({
248790
248844
  fs: fs.chdir((0, path_1.join)('.', p)),
248791
248845
  frameworkList: frameworks_1.default,
248792
248846
  });
248793
- if (!framework)
248847
+ if (frameworks.length === 0)
248794
248848
  return;
248795
- detectedProjects.set(p.slice(1), framework);
248849
+ detectedProjects.set(p.slice(1), frameworks);
248796
248850
  }));
248797
248851
  return detectedProjects;
248798
248852
  }
@@ -250444,7 +250498,7 @@ module.exports = JSON.parse("[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"vali
250444
250498
  /***/ ((module) => {
250445
250499
 
250446
250500
  "use strict";
250447
- module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.6.4\",\"main\":\"dist/index.js\",\"typings\":\"dist/index.d.ts\",\"homepage\":\"https://vercel.com\",\"license\":\"Apache-2.0\",\"files\":[\"dist\"],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/client\"},\"scripts\":{\"build\":\"tsc\",\"test-e2e\":\"pnpm test tests/create-deployment.test.ts tests/create-legacy-deployment.test.ts tests/paths.test.ts\",\"test\":\"jest --env node --verbose --runInBand --bail\",\"test-unit\":\"pnpm test tests/unit.*test.*\"},\"engines\":{\"node\":\">= 14\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.5\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.4.1\",\"@types/minimatch\":\"3.0.5\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"14.18.33\",\"@types/node-fetch\":\"2.5.4\",\"@types/recursive-readdir\":\"2.2.0\",\"@types/tar-fs\":\"1.16.1\",\"typescript\":\"4.9.5\"},\"dependencies\":{\"@vercel/build-utils\":\"6.8.1\",\"@vercel/routing-utils\":\"2.2.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.7\",\"querystring\":\"^0.2.0\",\"sleep-promise\":\"8.0.1\",\"tar-fs\":\"1.16.3\"}}");
250501
+ module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.6.5\",\"main\":\"dist/index.js\",\"typings\":\"dist/index.d.ts\",\"homepage\":\"https://vercel.com\",\"license\":\"Apache-2.0\",\"files\":[\"dist\"],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/client\"},\"scripts\":{\"build\":\"tsc\",\"test-e2e\":\"pnpm test tests/create-deployment.test.ts tests/create-legacy-deployment.test.ts tests/paths.test.ts\",\"test\":\"jest --env node --verbose --runInBand --bail\",\"test-unit\":\"pnpm test tests/unit.*test.*\"},\"engines\":{\"node\":\">= 14\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.5\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.4.1\",\"@types/minimatch\":\"3.0.5\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"14.18.33\",\"@types/node-fetch\":\"2.5.4\",\"@types/recursive-readdir\":\"2.2.0\",\"@types/tar-fs\":\"1.16.1\",\"typescript\":\"4.9.5\"},\"dependencies\":{\"@vercel/build-utils\":\"6.8.2\",\"@vercel/routing-utils\":\"2.2.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.7\",\"querystring\":\"^0.2.0\",\"sleep-promise\":\"8.0.1\",\"tar-fs\":\"1.16.3\"}}");
250448
250502
 
250449
250503
  /***/ }),
250450
250504
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "31.0.2",
3
+ "version": "31.0.4",
4
4
  "preferGlobal": true,
5
5
  "license": "Apache-2.0",
6
6
  "description": "The command-line interface for Vercel",
@@ -22,16 +22,16 @@
22
22
  "node": ">= 14"
23
23
  },
24
24
  "dependencies": {
25
- "@vercel/build-utils": "6.8.1",
25
+ "@vercel/build-utils": "6.8.2",
26
26
  "@vercel/go": "2.5.1",
27
27
  "@vercel/hydrogen": "0.0.64",
28
- "@vercel/next": "3.8.8",
29
- "@vercel/node": "2.15.4",
28
+ "@vercel/next": "3.9.0",
29
+ "@vercel/node": "2.15.6",
30
30
  "@vercel/python": "3.1.60",
31
31
  "@vercel/redwood": "1.1.15",
32
- "@vercel/remix-builder": "1.8.16",
32
+ "@vercel/remix-builder": "1.8.18",
33
33
  "@vercel/ruby": "1.3.76",
34
- "@vercel/static-build": "1.3.39"
34
+ "@vercel/static-build": "1.3.41"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@alex_neo/jest-expect-message": "1.0.5",
@@ -77,11 +77,11 @@
77
77
  "@types/yauzl-promise": "2.1.0",
78
78
  "@vercel-internals/constants": "1.0.4",
79
79
  "@vercel-internals/get-package-json": "1.0.0",
80
- "@vercel-internals/types": "1.0.4",
81
- "@vercel/client": "12.6.4",
80
+ "@vercel-internals/types": "1.0.5",
81
+ "@vercel/client": "12.6.5",
82
82
  "@vercel/error-utils": "1.0.10",
83
83
  "@vercel/frameworks": "1.4.3",
84
- "@vercel/fs-detectors": "4.0.1",
84
+ "@vercel/fs-detectors": "4.1.0",
85
85
  "@vercel/fun": "1.0.4",
86
86
  "@vercel/ncc": "0.24.0",
87
87
  "@vercel/routing-utils": "2.2.1",
@@ -149,7 +149,7 @@
149
149
  "serve-handler": "6.1.1",
150
150
  "strip-ansi": "6.0.1",
151
151
  "stripe": "5.1.0",
152
- "supports-hyperlinks": "2.2.0",
152
+ "supports-hyperlinks": "3.0.0",
153
153
  "tar-fs": "1.16.3",
154
154
  "test-listen": "1.1.0",
155
155
  "text-table": "0.2.0",