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.
- package/dist/index.js +90 -36
- package/package.json +10 -10
package/dist/index.js
CHANGED
@@ -192319,7 +192319,7 @@ module.exports = {
|
|
192319
192319
|
|
192320
192320
|
/***/ }),
|
192321
192321
|
|
192322
|
-
/***/
|
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 {
|
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 (
|
192353
|
-
return !(
|
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 (
|
192378
|
-
return true;
|
192379
|
-
}
|
192380
|
-
|
192381
|
-
if ('CI' in env) {
|
192398
|
+
if (CI) {
|
192382
192399
|
return false;
|
192383
192400
|
}
|
192384
192401
|
|
192385
|
-
if (
|
192402
|
+
if (TEAMCITY_VERSION) {
|
192386
192403
|
return false;
|
192387
192404
|
}
|
192388
192405
|
|
192389
|
-
if (
|
192390
|
-
const version = parseVersion(
|
192406
|
+
if (TERM_PROGRAM) {
|
192407
|
+
const version = parseVersion(TERM_PROGRAM_VERSION || '');
|
192391
192408
|
|
192392
|
-
switch (
|
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 (
|
192425
|
+
if (VTE_VERSION) {
|
192404
192426
|
// 0.50.0 was supposed to support hyperlinks, but throws a segfault
|
192405
|
-
if (
|
192427
|
+
if (VTE_VERSION === '0.50.0') {
|
192406
192428
|
return false;
|
192407
192429
|
}
|
192408
192430
|
|
192409
|
-
const version = parseVersion(
|
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
|
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
|
-
|
246573
|
-
|
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 &&
|
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()).
|
246595
|
-
const name = (0, slugify_1.default)([
|
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,
|
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 ${
|
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__(
|
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
|
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 (
|
248847
|
+
if (frameworks.length === 0)
|
248794
248848
|
return;
|
248795
|
-
detectedProjects.set(p.slice(1),
|
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.
|
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.
|
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.
|
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.
|
29
|
-
"@vercel/node": "2.15.
|
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.
|
32
|
+
"@vercel/remix-builder": "1.8.18",
|
33
33
|
"@vercel/ruby": "1.3.76",
|
34
|
-
"@vercel/static-build": "1.3.
|
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.
|
81
|
-
"@vercel/client": "12.6.
|
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
|
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": "
|
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",
|