vercel 25.1.1-canary.0 → 25.1.1-canary.3
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 +541 -68
- package/package.json +17 -14
package/dist/index.js
CHANGED
@@ -68574,6 +68574,87 @@ module.exports.array = (stream, options) => getStream(stream, Object.assign({},
|
|
68574
68574
|
module.exports.MaxBufferError = MaxBufferError;
|
68575
68575
|
|
68576
68576
|
|
68577
|
+
/***/ }),
|
68578
|
+
|
68579
|
+
/***/ 13495:
|
68580
|
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
68581
|
+
|
68582
|
+
const process = __webpack_require__(63129),
|
68583
|
+
splitCharacter = '<##>'
|
68584
|
+
|
68585
|
+
const executeCommand = (command, options, callback) => {
|
68586
|
+
let dst = __dirname
|
68587
|
+
|
68588
|
+
if(!!options && options.dst) {
|
68589
|
+
dst = options.dst
|
68590
|
+
}
|
68591
|
+
|
68592
|
+
process.exec(command, {cwd: dst}, function(err, stdout, stderr) {
|
68593
|
+
if (stdout === '') {
|
68594
|
+
callback('this does not look like a git repo')
|
68595
|
+
return
|
68596
|
+
}
|
68597
|
+
|
68598
|
+
if (stderr) {
|
68599
|
+
callback(stderr)
|
68600
|
+
return
|
68601
|
+
}
|
68602
|
+
|
68603
|
+
callback(null, stdout)
|
68604
|
+
})
|
68605
|
+
}
|
68606
|
+
|
68607
|
+
const prettyFormat = ["%h", "%H", "%s", "%f", "%b", "%at", "%ct", "%an", "%ae", "%cn", "%ce", "%N", ""]
|
68608
|
+
|
68609
|
+
const getCommandString = splitCharacter =>
|
68610
|
+
'git log -1 --pretty=format:"' + prettyFormat.join(splitCharacter) +'"' +
|
68611
|
+
' && git rev-parse --abbrev-ref HEAD' +
|
68612
|
+
' && git tag --contains HEAD'
|
68613
|
+
|
68614
|
+
const getLastCommit = (callback, options) => {
|
68615
|
+
const command = getCommandString(splitCharacter)
|
68616
|
+
|
68617
|
+
executeCommand(command, options, function(err, res) {
|
68618
|
+
if (err) {
|
68619
|
+
callback(err)
|
68620
|
+
return
|
68621
|
+
}
|
68622
|
+
|
68623
|
+
var a = res.split(splitCharacter)
|
68624
|
+
|
68625
|
+
// e.g. master\n or master\nv1.1\n or master\nv1.1\nv1.2\n
|
68626
|
+
var branchAndTags = a[a.length-1].split('\n').filter(n => n)
|
68627
|
+
var branch = branchAndTags[0]
|
68628
|
+
var tags = branchAndTags.slice(1)
|
68629
|
+
|
68630
|
+
callback(null, {
|
68631
|
+
shortHash: a[0],
|
68632
|
+
hash: a[1],
|
68633
|
+
subject: a[2],
|
68634
|
+
sanitizedSubject: a[3],
|
68635
|
+
body: a[4],
|
68636
|
+
authoredOn: a[5],
|
68637
|
+
committedOn: a[6],
|
68638
|
+
author: {
|
68639
|
+
name: a[7],
|
68640
|
+
email: a[8],
|
68641
|
+
},
|
68642
|
+
committer: {
|
68643
|
+
name: a[9],
|
68644
|
+
email: a[10]
|
68645
|
+
},
|
68646
|
+
notes: a[11],
|
68647
|
+
branch,
|
68648
|
+
tags
|
68649
|
+
})
|
68650
|
+
})
|
68651
|
+
}
|
68652
|
+
|
68653
|
+
module.exports = {
|
68654
|
+
getLastCommit
|
68655
|
+
}
|
68656
|
+
|
68657
|
+
|
68577
68658
|
/***/ }),
|
68578
68659
|
|
68579
68660
|
/***/ 97507:
|
@@ -212193,6 +212274,241 @@ module.exports = (flag, argv = process.argv) => {
|
|
212193
212274
|
};
|
212194
212275
|
|
212195
212276
|
|
212277
|
+
/***/ }),
|
212278
|
+
|
212279
|
+
/***/ 61967:
|
212280
|
+
/***/ ((module) => {
|
212281
|
+
|
212282
|
+
const { hasOwnProperty } = Object.prototype
|
212283
|
+
|
212284
|
+
/* istanbul ignore next */
|
212285
|
+
const eol = typeof process !== 'undefined' &&
|
212286
|
+
process.platform === 'win32' ? '\r\n' : '\n'
|
212287
|
+
|
212288
|
+
const encode = (obj, opt) => {
|
212289
|
+
const children = []
|
212290
|
+
let out = ''
|
212291
|
+
|
212292
|
+
if (typeof opt === 'string') {
|
212293
|
+
opt = {
|
212294
|
+
section: opt,
|
212295
|
+
whitespace: false,
|
212296
|
+
}
|
212297
|
+
} else {
|
212298
|
+
opt = opt || Object.create(null)
|
212299
|
+
opt.whitespace = opt.whitespace === true
|
212300
|
+
}
|
212301
|
+
|
212302
|
+
const separator = opt.whitespace ? ' = ' : '='
|
212303
|
+
|
212304
|
+
for (const k of Object.keys(obj)) {
|
212305
|
+
const val = obj[k]
|
212306
|
+
if (val && Array.isArray(val)) {
|
212307
|
+
for (const item of val) {
|
212308
|
+
out += safe(k + '[]') + separator + safe(item) + eol
|
212309
|
+
}
|
212310
|
+
} else if (val && typeof val === 'object') {
|
212311
|
+
children.push(k)
|
212312
|
+
} else {
|
212313
|
+
out += safe(k) + separator + safe(val) + eol
|
212314
|
+
}
|
212315
|
+
}
|
212316
|
+
|
212317
|
+
if (opt.section && out.length) {
|
212318
|
+
out = '[' + safe(opt.section) + ']' + eol + out
|
212319
|
+
}
|
212320
|
+
|
212321
|
+
for (const k of children) {
|
212322
|
+
const nk = dotSplit(k).join('\\.')
|
212323
|
+
const section = (opt.section ? opt.section + '.' : '') + nk
|
212324
|
+
const { whitespace } = opt
|
212325
|
+
const child = encode(obj[k], {
|
212326
|
+
section,
|
212327
|
+
whitespace,
|
212328
|
+
})
|
212329
|
+
if (out.length && child.length) {
|
212330
|
+
out += eol
|
212331
|
+
}
|
212332
|
+
|
212333
|
+
out += child
|
212334
|
+
}
|
212335
|
+
|
212336
|
+
return out
|
212337
|
+
}
|
212338
|
+
|
212339
|
+
const dotSplit = str =>
|
212340
|
+
str.replace(/\1/g, '\u0002LITERAL\\1LITERAL\u0002')
|
212341
|
+
.replace(/\\\./g, '\u0001')
|
212342
|
+
.split(/\./)
|
212343
|
+
.map(part =>
|
212344
|
+
part.replace(/\1/g, '\\.')
|
212345
|
+
.replace(/\2LITERAL\\1LITERAL\2/g, '\u0001'))
|
212346
|
+
|
212347
|
+
const decode = str => {
|
212348
|
+
const out = Object.create(null)
|
212349
|
+
let p = out
|
212350
|
+
let section = null
|
212351
|
+
// section |key = value
|
212352
|
+
const re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i
|
212353
|
+
const lines = str.split(/[\r\n]+/g)
|
212354
|
+
|
212355
|
+
for (const line of lines) {
|
212356
|
+
if (!line || line.match(/^\s*[;#]/)) {
|
212357
|
+
continue
|
212358
|
+
}
|
212359
|
+
const match = line.match(re)
|
212360
|
+
if (!match) {
|
212361
|
+
continue
|
212362
|
+
}
|
212363
|
+
if (match[1] !== undefined) {
|
212364
|
+
section = unsafe(match[1])
|
212365
|
+
if (section === '__proto__') {
|
212366
|
+
// not allowed
|
212367
|
+
// keep parsing the section, but don't attach it.
|
212368
|
+
p = Object.create(null)
|
212369
|
+
continue
|
212370
|
+
}
|
212371
|
+
p = out[section] = out[section] || Object.create(null)
|
212372
|
+
continue
|
212373
|
+
}
|
212374
|
+
const keyRaw = unsafe(match[2])
|
212375
|
+
const isArray = keyRaw.length > 2 && keyRaw.slice(-2) === '[]'
|
212376
|
+
const key = isArray ? keyRaw.slice(0, -2) : keyRaw
|
212377
|
+
if (key === '__proto__') {
|
212378
|
+
continue
|
212379
|
+
}
|
212380
|
+
const valueRaw = match[3] ? unsafe(match[4]) : true
|
212381
|
+
const value = valueRaw === 'true' ||
|
212382
|
+
valueRaw === 'false' ||
|
212383
|
+
valueRaw === 'null' ? JSON.parse(valueRaw)
|
212384
|
+
: valueRaw
|
212385
|
+
|
212386
|
+
// Convert keys with '[]' suffix to an array
|
212387
|
+
if (isArray) {
|
212388
|
+
if (!hasOwnProperty.call(p, key)) {
|
212389
|
+
p[key] = []
|
212390
|
+
} else if (!Array.isArray(p[key])) {
|
212391
|
+
p[key] = [p[key]]
|
212392
|
+
}
|
212393
|
+
}
|
212394
|
+
|
212395
|
+
// safeguard against resetting a previously defined
|
212396
|
+
// array by accidentally forgetting the brackets
|
212397
|
+
if (Array.isArray(p[key])) {
|
212398
|
+
p[key].push(value)
|
212399
|
+
} else {
|
212400
|
+
p[key] = value
|
212401
|
+
}
|
212402
|
+
}
|
212403
|
+
|
212404
|
+
// {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}}
|
212405
|
+
// use a filter to return the keys that have to be deleted.
|
212406
|
+
const remove = []
|
212407
|
+
for (const k of Object.keys(out)) {
|
212408
|
+
if (!hasOwnProperty.call(out, k) ||
|
212409
|
+
typeof out[k] !== 'object' ||
|
212410
|
+
Array.isArray(out[k])) {
|
212411
|
+
continue
|
212412
|
+
}
|
212413
|
+
|
212414
|
+
// see if the parent section is also an object.
|
212415
|
+
// if so, add it to that, and mark this one for deletion
|
212416
|
+
const parts = dotSplit(k)
|
212417
|
+
p = out
|
212418
|
+
const l = parts.pop()
|
212419
|
+
const nl = l.replace(/\\\./g, '.')
|
212420
|
+
for (const part of parts) {
|
212421
|
+
if (part === '__proto__') {
|
212422
|
+
continue
|
212423
|
+
}
|
212424
|
+
if (!hasOwnProperty.call(p, part) || typeof p[part] !== 'object') {
|
212425
|
+
p[part] = Object.create(null)
|
212426
|
+
}
|
212427
|
+
p = p[part]
|
212428
|
+
}
|
212429
|
+
if (p === out && nl === l) {
|
212430
|
+
continue
|
212431
|
+
}
|
212432
|
+
|
212433
|
+
p[nl] = out[k]
|
212434
|
+
remove.push(k)
|
212435
|
+
}
|
212436
|
+
for (const del of remove) {
|
212437
|
+
delete out[del]
|
212438
|
+
}
|
212439
|
+
|
212440
|
+
return out
|
212441
|
+
}
|
212442
|
+
|
212443
|
+
const isQuoted = val => {
|
212444
|
+
return (val.startsWith('"') && val.endsWith('"')) ||
|
212445
|
+
(val.startsWith("'") && val.endsWith("'"))
|
212446
|
+
}
|
212447
|
+
|
212448
|
+
const safe = val => {
|
212449
|
+
if (
|
212450
|
+
typeof val !== 'string' ||
|
212451
|
+
val.match(/[=\r\n]/) ||
|
212452
|
+
val.match(/^\[/) ||
|
212453
|
+
(val.length > 1 && isQuoted(val)) ||
|
212454
|
+
val !== val.trim()
|
212455
|
+
) {
|
212456
|
+
return JSON.stringify(val)
|
212457
|
+
}
|
212458
|
+
return val.split(';').join('\\;').split('#').join('\\#')
|
212459
|
+
}
|
212460
|
+
|
212461
|
+
const unsafe = (val, doUnesc) => {
|
212462
|
+
val = (val || '').trim()
|
212463
|
+
if (isQuoted(val)) {
|
212464
|
+
// remove the single quotes before calling JSON.parse
|
212465
|
+
if (val.charAt(0) === "'") {
|
212466
|
+
val = val.slice(1, -1)
|
212467
|
+
}
|
212468
|
+
try {
|
212469
|
+
val = JSON.parse(val)
|
212470
|
+
} catch (_) {}
|
212471
|
+
} else {
|
212472
|
+
// walk the val to find the first not-escaped ; character
|
212473
|
+
let esc = false
|
212474
|
+
let unesc = ''
|
212475
|
+
for (let i = 0, l = val.length; i < l; i++) {
|
212476
|
+
const c = val.charAt(i)
|
212477
|
+
if (esc) {
|
212478
|
+
if ('\\;#'.indexOf(c) !== -1) {
|
212479
|
+
unesc += c
|
212480
|
+
} else {
|
212481
|
+
unesc += '\\' + c
|
212482
|
+
}
|
212483
|
+
|
212484
|
+
esc = false
|
212485
|
+
} else if (';#'.indexOf(c) !== -1) {
|
212486
|
+
break
|
212487
|
+
} else if (c === '\\') {
|
212488
|
+
esc = true
|
212489
|
+
} else {
|
212490
|
+
unesc += c
|
212491
|
+
}
|
212492
|
+
}
|
212493
|
+
if (esc) {
|
212494
|
+
unesc += '\\'
|
212495
|
+
}
|
212496
|
+
|
212497
|
+
return unesc.trim()
|
212498
|
+
}
|
212499
|
+
return val
|
212500
|
+
}
|
212501
|
+
|
212502
|
+
module.exports = {
|
212503
|
+
parse: decode,
|
212504
|
+
decode,
|
212505
|
+
stringify: encode,
|
212506
|
+
encode,
|
212507
|
+
safe,
|
212508
|
+
unsafe,
|
212509
|
+
}
|
212510
|
+
|
212511
|
+
|
212196
212512
|
/***/ }),
|
212197
212513
|
|
212198
212514
|
/***/ 16337:
|
@@ -231158,15 +231474,29 @@ async function main(client) {
|
|
231158
231474
|
}
|
231159
231475
|
exports.default = main;
|
231160
231476
|
function expandBuild(files, build) {
|
231161
|
-
if (!build.
|
231162
|
-
|
231163
|
-
|
231164
|
-
|
231477
|
+
if (!build.use) {
|
231478
|
+
throw new build_utils_1.NowBuildError({
|
231479
|
+
code: `invalid_build_specification`,
|
231480
|
+
message: 'Field `use` is missing in build specification',
|
231481
|
+
link: 'https://vercel.com/docs/configuration#project/builds',
|
231482
|
+
action: 'View Documentation',
|
231483
|
+
});
|
231484
|
+
}
|
231485
|
+
let src = path_1.normalize(build.src || '**');
|
231486
|
+
if (src === '.' || src === './') {
|
231487
|
+
throw new build_utils_1.NowBuildError({
|
231488
|
+
code: `invalid_build_specification`,
|
231489
|
+
message: 'A build `src` path resolves to an empty string',
|
231490
|
+
link: 'https://vercel.com/docs/configuration#project/builds',
|
231491
|
+
action: 'View Documentation',
|
231492
|
+
});
|
231493
|
+
}
|
231494
|
+
if (src[0] === '/') {
|
231165
231495
|
// Remove a leading slash so that the globbing is relative
|
231166
231496
|
// to `cwd` instead of the root of the filesystem.
|
231167
|
-
|
231497
|
+
src = src.substring(1);
|
231168
231498
|
}
|
231169
|
-
const matches = files.filter(name => name ===
|
231499
|
+
const matches = files.filter(name => name === src || minimatch_1.default(name, src, { dot: true }));
|
231170
231500
|
return matches.map(m => {
|
231171
231501
|
return {
|
231172
231502
|
...build,
|
@@ -231936,6 +232266,7 @@ const args_1 = __webpack_require__(56870);
|
|
231936
232266
|
const get_deployment_checks_1 = __webpack_require__(58293);
|
231937
232267
|
const parse_target_1 = __importDefault(__webpack_require__(77601));
|
231938
232268
|
const get_prebuilt_json_1 = __importDefault(__webpack_require__(91307));
|
232269
|
+
const create_git_meta_1 = __webpack_require__(92282);
|
231939
232270
|
exports.default = async (client) => {
|
231940
232271
|
const { output } = client;
|
231941
232272
|
let argv = null;
|
@@ -232164,6 +232495,7 @@ exports.default = async (client) => {
|
|
232164
232495
|
}
|
232165
232496
|
// build `meta`
|
232166
232497
|
const meta = Object.assign({}, parse_meta_1.default(localConfig.meta), parse_meta_1.default(argv['--meta']));
|
232498
|
+
const gitMetadata = await create_git_meta_1.createGitMeta(path, output);
|
232167
232499
|
// Merge dotenv config, `env` from vercel.json, and `--env` / `-e` arguments
|
232168
232500
|
const deploymentEnv = Object.assign({}, parseEnv(localConfig.env), parseEnv(argv['--env']));
|
232169
232501
|
// Merge build env out of `build.env` from vercel.json, and `--build-env` args
|
@@ -232190,6 +232522,14 @@ exports.default = async (client) => {
|
|
232190
232522
|
});
|
232191
232523
|
let deployStamp = stamp_1.default();
|
232192
232524
|
let deployment = null;
|
232525
|
+
const localConfigurationOverrides = {
|
232526
|
+
buildCommand: localConfig?.buildCommand,
|
232527
|
+
devCommand: localConfig?.devCommand,
|
232528
|
+
framework: localConfig?.framework,
|
232529
|
+
commandForIgnoringBuildStep: localConfig?.ignoreCommand,
|
232530
|
+
installCommand: localConfig?.installCommand,
|
232531
|
+
outputDirectory: localConfig?.outputDirectory,
|
232532
|
+
};
|
232193
232533
|
try {
|
232194
232534
|
const createArgs = {
|
232195
232535
|
name: project ? project.name : newProjectName,
|
@@ -232205,13 +232545,19 @@ exports.default = async (client) => {
|
|
232205
232545
|
nowConfig: localConfig,
|
232206
232546
|
regions,
|
232207
232547
|
meta,
|
232548
|
+
gitMetadata,
|
232208
232549
|
deployStamp,
|
232209
232550
|
target,
|
232210
232551
|
skipAutoDetectionConfirmation: autoConfirm,
|
232211
232552
|
};
|
232212
232553
|
if (!localConfig.builds || localConfig.builds.length === 0) {
|
232213
232554
|
// Only add projectSettings for zero config deployments
|
232214
|
-
createArgs.projectSettings =
|
232555
|
+
createArgs.projectSettings =
|
232556
|
+
status === 'not_linked'
|
232557
|
+
? {
|
232558
|
+
sourceFilesOutsideRootDirectory,
|
232559
|
+
}
|
232560
|
+
: { ...localConfigurationOverrides, sourceFilesOutsideRootDirectory };
|
232215
232561
|
}
|
232216
232562
|
deployment = await create_deploy_1.default(client, now, contextName, [sourcePath], createArgs, org, !project, path);
|
232217
232563
|
if (deployment.code === 'missing_project_settings') {
|
@@ -232223,7 +232569,7 @@ exports.default = async (client) => {
|
|
232223
232569
|
projectSettings.sourceFilesOutsideRootDirectory =
|
232224
232570
|
sourceFilesOutsideRootDirectory;
|
232225
232571
|
}
|
232226
|
-
const settings = await edit_project_settings_1.default(output, projectSettings, framework);
|
232572
|
+
const settings = await edit_project_settings_1.default(output, projectSettings, framework, false, localConfigurationOverrides);
|
232227
232573
|
// deploy again, but send projectSettings this time
|
232228
232574
|
createArgs.projectSettings = settings;
|
232229
232575
|
deployStamp = stamp_1.default();
|
@@ -233624,16 +233970,7 @@ async function inspect(client, opts, args) {
|
|
233624
233970
|
output.print('\n');
|
233625
233971
|
}
|
233626
233972
|
if (domainConfig.misconfigured) {
|
233627
|
-
output.warn(`This Domain is not configured properly. To configure it you should either:`, null, null, null
|
233628
|
-
boxen: {
|
233629
|
-
margin: {
|
233630
|
-
left: 2,
|
233631
|
-
right: 0,
|
233632
|
-
bottom: 0,
|
233633
|
-
top: 0,
|
233634
|
-
},
|
233635
|
-
},
|
233636
|
-
});
|
233973
|
+
output.warn(`This Domain is not configured properly. To configure it you should either:`, null, null, null);
|
233637
233974
|
output.print(` ${chalk_1.default.grey('a)')} ` +
|
233638
233975
|
`Set the following record on your DNS provider to continue: ` +
|
233639
233976
|
`${code_1.default(`A ${domainName} 76.76.21.21`)} ` +
|
@@ -234768,6 +235105,7 @@ exports.default = new Map([
|
|
234768
235105
|
['certs', 'certs'],
|
234769
235106
|
['deploy', 'deploy'],
|
234770
235107
|
['dev', 'dev'],
|
235108
|
+
['develop', 'dev'],
|
234771
235109
|
['dns', 'dns'],
|
234772
235110
|
['domain', 'domains'],
|
234773
235111
|
['domains', 'domains'],
|
@@ -240331,6 +240669,84 @@ async function createDeploy(client, now, contextName, paths, createArgs, org, is
|
|
240331
240669
|
exports.default = createDeploy;
|
240332
240670
|
|
240333
240671
|
|
240672
|
+
/***/ }),
|
240673
|
+
|
240674
|
+
/***/ 92282:
|
240675
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
240676
|
+
|
240677
|
+
"use strict";
|
240678
|
+
|
240679
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
240680
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
240681
|
+
};
|
240682
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
240683
|
+
exports.createGitMeta = exports.getRemoteUrl = exports.isDirty = void 0;
|
240684
|
+
const fs_extra_1 = __importDefault(__webpack_require__(45392));
|
240685
|
+
const path_1 = __webpack_require__(85622);
|
240686
|
+
const ini_1 = __importDefault(__webpack_require__(61967));
|
240687
|
+
const git_last_commit_1 = __importDefault(__webpack_require__(13495));
|
240688
|
+
const child_process_1 = __webpack_require__(63129);
|
240689
|
+
function isDirty(directory) {
|
240690
|
+
return new Promise((resolve, reject) => {
|
240691
|
+
child_process_1.exec('git status -s', { cwd: directory }, function (err, stdout, stderr) {
|
240692
|
+
if (err)
|
240693
|
+
return reject(err);
|
240694
|
+
if (stderr)
|
240695
|
+
return reject(new Error(`Failed to determine if git repo has been modified: ${stderr.trim()}`));
|
240696
|
+
resolve(stdout.trim().length > 0);
|
240697
|
+
});
|
240698
|
+
});
|
240699
|
+
}
|
240700
|
+
exports.isDirty = isDirty;
|
240701
|
+
function getLastCommit(directory) {
|
240702
|
+
return new Promise((resolve, reject) => {
|
240703
|
+
git_last_commit_1.default.getLastCommit((err, commit) => {
|
240704
|
+
if (err)
|
240705
|
+
return reject(err);
|
240706
|
+
resolve(commit);
|
240707
|
+
}, { dst: directory });
|
240708
|
+
});
|
240709
|
+
}
|
240710
|
+
async function getRemoteUrl(configPath, output) {
|
240711
|
+
let gitConfig;
|
240712
|
+
try {
|
240713
|
+
gitConfig = ini_1.default.parse(await fs_extra_1.default.readFile(configPath, 'utf-8'));
|
240714
|
+
}
|
240715
|
+
catch (error) {
|
240716
|
+
output.debug(`Error while parsing repo data: ${error.message}`);
|
240717
|
+
}
|
240718
|
+
if (!gitConfig) {
|
240719
|
+
return null;
|
240720
|
+
}
|
240721
|
+
const originUrl = gitConfig['remote "origin"']?.url;
|
240722
|
+
if (originUrl) {
|
240723
|
+
return originUrl;
|
240724
|
+
}
|
240725
|
+
return null;
|
240726
|
+
}
|
240727
|
+
exports.getRemoteUrl = getRemoteUrl;
|
240728
|
+
async function createGitMeta(directory, output) {
|
240729
|
+
const remoteUrl = await getRemoteUrl(path_1.join(directory, '.git/config'), output);
|
240730
|
+
// If we can't get the repo URL, then don't return any metadata
|
240731
|
+
if (!remoteUrl) {
|
240732
|
+
return;
|
240733
|
+
}
|
240734
|
+
const [commit, dirty] = await Promise.all([
|
240735
|
+
getLastCommit(directory),
|
240736
|
+
isDirty(directory),
|
240737
|
+
]);
|
240738
|
+
return {
|
240739
|
+
remoteUrl,
|
240740
|
+
commitAuthorName: commit.author.name,
|
240741
|
+
commitMessage: commit.subject,
|
240742
|
+
commitRef: commit.branch,
|
240743
|
+
commitSha: commit.hash,
|
240744
|
+
dirty,
|
240745
|
+
};
|
240746
|
+
}
|
240747
|
+
exports.createGitMeta = createGitMeta;
|
240748
|
+
|
240749
|
+
|
240334
240750
|
/***/ }),
|
240335
240751
|
|
240336
240752
|
/***/ 80478:
|
@@ -241434,9 +241850,6 @@ async function getBuildMatches(vercelConfig, cwd, output, devServer, fileList) {
|
|
241434
241850
|
// of Vercel deployments.
|
241435
241851
|
src = src.substring(1);
|
241436
241852
|
}
|
241437
|
-
// We need to escape brackets since `glob` will
|
241438
|
-
// try to find a group otherwise
|
241439
|
-
src = src.replace(/(\[|\])/g, '[$1]');
|
241440
241853
|
// lambda function files are trimmed of their file extension
|
241441
241854
|
const mapToEntrypoint = new Map();
|
241442
241855
|
const extensionless = devServer.getExtensionlessFile(src);
|
@@ -241444,6 +241857,9 @@ async function getBuildMatches(vercelConfig, cwd, output, devServer, fileList) {
|
|
241444
241857
|
mapToEntrypoint.set(extensionless, src);
|
241445
241858
|
src = extensionless;
|
241446
241859
|
}
|
241860
|
+
// We need to escape brackets since `glob` will
|
241861
|
+
// try to find a group otherwise
|
241862
|
+
src = src.replace(/(\[|\])/g, '[$1]');
|
241447
241863
|
const files = fileList
|
241448
241864
|
.filter(name => name === src || minimatch_1.default(name, src, { dot: true }))
|
241449
241865
|
.map(name => path_1.join(cwd, name));
|
@@ -243648,8 +244064,9 @@ function needsBlockingBuild(buildMatch) {
|
|
243648
244064
|
return typeof builder.shouldServe !== 'function';
|
243649
244065
|
}
|
243650
244066
|
async function checkForPort(port, timeout) {
|
244067
|
+
const opts = { host: '127.0.0.1' };
|
243651
244068
|
const start = Date.now();
|
243652
|
-
while (!(await is_port_reachable_1.default(port))) {
|
244069
|
+
while (!(await is_port_reachable_1.default(port, opts))) {
|
243653
244070
|
if (Date.now() - start > timeout) {
|
243654
244071
|
throw new Error(`Detecting port ${port} timed out after ${timeout}ms`);
|
243655
244072
|
}
|
@@ -247347,7 +247764,7 @@ class Now extends events_1.default {
|
|
247347
247764
|
// Legacy
|
247348
247765
|
nowConfig: nowConfig = {},
|
247349
247766
|
// Latest
|
247350
|
-
name, project, prebuilt = false, rootDirectory, wantsPublic, meta, regions, quiet = false, env, build, forceNew = false, withCache = false, target = null, deployStamp, projectSettings, skipAutoDetectionConfirmation, }, org, isSettingUpProject, cwd) {
|
247767
|
+
name, project, prebuilt = false, rootDirectory, wantsPublic, meta, gitMetadata, regions, quiet = false, env, build, forceNew = false, withCache = false, target = null, deployStamp, projectSettings, skipAutoDetectionConfirmation, }, org, isSettingUpProject, cwd) {
|
247351
247768
|
let hashes = {};
|
247352
247769
|
const uploadStamp = stamp_1.default();
|
247353
247770
|
let requestBody = {
|
@@ -247358,6 +247775,7 @@ class Now extends events_1.default {
|
|
247358
247775
|
name,
|
247359
247776
|
project,
|
247360
247777
|
meta,
|
247778
|
+
gitMetadata,
|
247361
247779
|
regions,
|
247362
247780
|
target: target || undefined,
|
247363
247781
|
projectSettings,
|
@@ -247762,53 +248180,104 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
247762
248180
|
const inquirer_1 = __importDefault(__webpack_require__(64016));
|
247763
248181
|
const confirm_1 = __importDefault(__webpack_require__(33564));
|
247764
248182
|
const chalk_1 = __importDefault(__webpack_require__(961));
|
248183
|
+
const frameworks_1 = __importDefault(__webpack_require__(48438));
|
247765
248184
|
const is_setting_value_1 = __webpack_require__(41005);
|
247766
|
-
const
|
247767
|
-
|
247768
|
-
|
247769
|
-
|
247770
|
-
|
247771
|
-
|
247772
|
-
|
247773
|
-
|
247774
|
-
|
247775
|
-
|
247776
|
-
|
248185
|
+
const settingMap = {
|
248186
|
+
buildCommand: 'Build Command',
|
248187
|
+
devCommand: 'Development Command',
|
248188
|
+
commandForIgnoringBuildStep: 'Ignore Command',
|
248189
|
+
installCommand: 'Install Command',
|
248190
|
+
outputDirectory: 'Output Directory',
|
248191
|
+
framework: 'Framework',
|
248192
|
+
};
|
248193
|
+
const settingKeys = Object.keys(settingMap).sort();
|
248194
|
+
async function editProjectSettings(output, projectSettings, framework, autoConfirm, localConfigurationOverrides) {
|
248195
|
+
// Create initial settings object defaulting everything to `null` and assigning what may exist in `projectSettings`
|
248196
|
+
const settings = Object.assign({
|
248197
|
+
buildCommand: null,
|
248198
|
+
devCommand: null,
|
248199
|
+
framework: null,
|
248200
|
+
commandForIgnoringBuildStep: null,
|
248201
|
+
installCommand: null,
|
248202
|
+
outputDirectory: null,
|
248203
|
+
}, projectSettings);
|
248204
|
+
// Start UX by displaying (and applying) overrides. They will be referenced throughout remainder of CLI.
|
248205
|
+
if (localConfigurationOverrides) {
|
248206
|
+
// Apply local overrides (from `vercel.json`)
|
248207
|
+
for (const setting of settingKeys) {
|
248208
|
+
const localConfigValue = localConfigurationOverrides[setting];
|
248209
|
+
if (localConfigValue)
|
248210
|
+
settings[setting] = localConfigValue;
|
248211
|
+
}
|
248212
|
+
output.print('Local settings detected in vercel.json:\n');
|
248213
|
+
// Print provided overrides including framework
|
248214
|
+
for (const setting of settingKeys) {
|
248215
|
+
const override = localConfigurationOverrides[setting];
|
248216
|
+
if (override) {
|
248217
|
+
output.print(`${chalk_1.default.dim(`- ${chalk_1.default.bold(`${settingMap[setting]}:`)} ${override}`)}\n`);
|
248218
|
+
}
|
248219
|
+
}
|
248220
|
+
// If framework is overridden, set it to the `framework` parameter and let the normal framework-flow occur
|
248221
|
+
if (localConfigurationOverrides.framework) {
|
248222
|
+
const overrideFramework = frameworks_1.default.find(f => f.slug === localConfigurationOverrides.framework);
|
248223
|
+
if (overrideFramework) {
|
248224
|
+
framework = overrideFramework;
|
248225
|
+
output.print(`Merging default Project Settings for ${framework.name}. Previously listed overrides are prioritized.\n`);
|
248226
|
+
}
|
248227
|
+
}
|
247777
248228
|
}
|
247778
248229
|
// skip editing project settings if no framework is detected
|
247779
248230
|
if (!framework) {
|
247780
248231
|
settings.framework = null;
|
247781
248232
|
return settings;
|
247782
248233
|
}
|
248234
|
+
// A missing framework slug implies the "Other" framework was selected
|
247783
248235
|
output.print(!framework.slug
|
247784
248236
|
? `No framework detected. Default Project Settings:\n`
|
247785
248237
|
: `Auto-detected Project Settings (${chalk_1.default.bold(framework.name)}):\n`);
|
247786
248238
|
settings.framework = framework.slug;
|
247787
|
-
for
|
247788
|
-
|
247789
|
-
|
247790
|
-
|
247791
|
-
|
248239
|
+
// Now print defaults for the provided framework whether it was auto-detected or overwritten
|
248240
|
+
for (const setting of settingKeys) {
|
248241
|
+
if (setting === 'framework' || setting === 'commandForIgnoringBuildStep') {
|
248242
|
+
continue;
|
248243
|
+
}
|
248244
|
+
const defaultSetting = framework.settings[setting];
|
248245
|
+
const override = localConfigurationOverrides?.[setting];
|
248246
|
+
if (!override && defaultSetting) {
|
248247
|
+
output.print(`${chalk_1.default.dim(`- ${chalk_1.default.bold(`${settingMap[setting]}:`)} ${is_setting_value_1.isSettingValue(defaultSetting)
|
248248
|
+
? defaultSetting.value
|
248249
|
+
: chalk_1.default.italic(`${defaultSetting.placeholder}`)}`)}\n`);
|
248250
|
+
}
|
247792
248251
|
}
|
248252
|
+
// Prompt the user if they want to modify any settings not defined by local configuration.
|
247793
248253
|
if (autoConfirm ||
|
247794
|
-
!(await confirm_1.default(
|
248254
|
+
!(await confirm_1.default('Want to modify these settings?', false))) {
|
247795
248255
|
return settings;
|
247796
248256
|
}
|
248257
|
+
const choices = settingKeys.reduce((acc, setting) => {
|
248258
|
+
const skip = setting === 'framework' ||
|
248259
|
+
setting === 'commandForIgnoringBuildStep' ||
|
248260
|
+
setting === 'installCommand' ||
|
248261
|
+
localConfigurationOverrides?.[setting];
|
248262
|
+
if (!skip) {
|
248263
|
+
acc.push({ name: settingMap[setting], value: setting });
|
248264
|
+
}
|
248265
|
+
return acc;
|
248266
|
+
}, []);
|
247797
248267
|
const { settingFields } = await inquirer_1.default.prompt({
|
247798
248268
|
name: 'settingFields',
|
247799
248269
|
type: 'checkbox',
|
247800
248270
|
message: 'Which settings would you like to overwrite (select multiple)?',
|
247801
|
-
choices
|
248271
|
+
choices,
|
247802
248272
|
});
|
247803
248273
|
for (let setting of settingFields) {
|
247804
|
-
const field =
|
247805
|
-
const name = `${Date.now()}`;
|
248274
|
+
const field = settingMap[setting];
|
247806
248275
|
const answers = await inquirer_1.default.prompt({
|
247807
248276
|
type: 'input',
|
247808
|
-
name:
|
247809
|
-
message: `What's your ${chalk_1.default.bold(field
|
248277
|
+
name: setting,
|
248278
|
+
message: `What's your ${chalk_1.default.bold(field)}?`,
|
247810
248279
|
});
|
247811
|
-
settings[setting] = answers[
|
248280
|
+
settings[setting] = answers[setting];
|
247812
248281
|
}
|
247813
248282
|
return settings;
|
247814
248283
|
}
|
@@ -248902,6 +249371,14 @@ async function setupAndLink(client, path, { forceDelete = false, autoConfirm = f
|
|
248902
249371
|
client,
|
248903
249372
|
currentTeam: config.currentTeam,
|
248904
249373
|
});
|
249374
|
+
const localConfigurationOverrides = {
|
249375
|
+
buildCommand: localConfig?.buildCommand,
|
249376
|
+
devCommand: localConfig?.devCommand,
|
249377
|
+
framework: localConfig?.framework,
|
249378
|
+
commandForIgnoringBuildStep: localConfig?.ignoreCommand,
|
249379
|
+
installCommand: localConfig?.installCommand,
|
249380
|
+
outputDirectory: localConfig?.outputDirectory,
|
249381
|
+
};
|
248905
249382
|
const createArgs = {
|
248906
249383
|
name: newProjectName,
|
248907
249384
|
env: {},
|
@@ -248916,11 +249393,11 @@ async function setupAndLink(client, path, { forceDelete = false, autoConfirm = f
|
|
248916
249393
|
deployStamp: stamp_1.default(),
|
248917
249394
|
target: undefined,
|
248918
249395
|
skipAutoDetectionConfirmation: false,
|
249396
|
+
projectSettings: {
|
249397
|
+
...localConfigurationOverrides,
|
249398
|
+
sourceFilesOutsideRootDirectory,
|
249399
|
+
},
|
248919
249400
|
};
|
248920
|
-
if (isZeroConfig) {
|
248921
|
-
// Only add projectSettings for zero config deployments
|
248922
|
-
createArgs.projectSettings = { sourceFilesOutsideRootDirectory };
|
248923
|
-
}
|
248924
249401
|
const deployment = await create_deploy_1.default(client, now, config.currentTeam || 'current user', [sourcePath], createArgs, org, true, path);
|
248925
249402
|
if (!deployment ||
|
248926
249403
|
!('code' in deployment) ||
|
@@ -248936,7 +249413,7 @@ async function setupAndLink(client, path, { forceDelete = false, autoConfirm = f
|
|
248936
249413
|
};
|
248937
249414
|
}
|
248938
249415
|
const { projectSettings, framework } = deployment;
|
248939
|
-
settings = await edit_project_settings_1.default(output, projectSettings, framework, autoConfirm);
|
249416
|
+
settings = await edit_project_settings_1.default(output, projectSettings, framework, autoConfirm, localConfigurationOverrides);
|
248940
249417
|
}
|
248941
249418
|
if (rootDirectory) {
|
248942
249419
|
settings.rootDirectory = rootDirectory;
|
@@ -249878,7 +250355,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
249878
250355
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
249879
250356
|
exports.Output = void 0;
|
249880
250357
|
const chalk_1 = __importDefault(__webpack_require__(961));
|
249881
|
-
const boxen_1 = __importDefault(__webpack_require__(30396));
|
249882
250358
|
const link_1 = __importDefault(__webpack_require__(98472));
|
249883
250359
|
const wait_1 = __importDefault(__webpack_require__(22015));
|
249884
250360
|
class Output {
|
@@ -249897,20 +250373,11 @@ class Output {
|
|
249897
250373
|
this.dim = (str, color = chalk_1.default.grey) => {
|
249898
250374
|
this.print(`${color(`> ${str}`)}\n`);
|
249899
250375
|
};
|
249900
|
-
this.warn = (str, slug = null, link = null, action = 'Learn More'
|
250376
|
+
this.warn = (str, slug = null, link = null, action = 'Learn More') => {
|
249901
250377
|
const details = slug ? `https://err.sh/vercel/${slug}` : link;
|
249902
|
-
this.print(
|
250378
|
+
this.print(chalk_1.default.yellow(chalk_1.default.bold('WARN! ') +
|
249903
250379
|
str +
|
249904
|
-
(details ? `\n${action}: ${link_1.default(details)}` : '')
|
249905
|
-
padding: {
|
249906
|
-
top: 0,
|
249907
|
-
bottom: 0,
|
249908
|
-
left: 1,
|
249909
|
-
right: 1,
|
249910
|
-
},
|
249911
|
-
borderColor: 'yellow',
|
249912
|
-
...options?.boxen,
|
249913
|
-
}));
|
250380
|
+
(details ? `\n${action}: ${link_1.default(details)}` : '')));
|
249914
250381
|
this.print('\n');
|
249915
250382
|
};
|
249916
250383
|
this.note = (str) => {
|
@@ -250555,8 +251022,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
250555
251022
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
250556
251023
|
};
|
250557
251024
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
250558
|
-
const
|
250559
|
-
const
|
251025
|
+
const fs_1 = __importDefault(__webpack_require__(35747));
|
251026
|
+
const path_1 = __webpack_require__(85622);
|
251027
|
+
let rootDir = __dirname;
|
251028
|
+
while (!fs_1.default.existsSync(path_1.join(rootDir, 'package.json'))) {
|
251029
|
+
rootDir = path_1.join(rootDir, '..');
|
251030
|
+
}
|
251031
|
+
const pkgPath = path_1.join(rootDir, 'package.json');
|
251032
|
+
const pkg = JSON.parse(fs_1.default.readFileSync(pkgPath, 'utf8'));
|
250560
251033
|
exports.default = pkg;
|
250561
251034
|
|
250562
251035
|
|
@@ -251946,7 +252419,7 @@ module.exports = JSON.parse("{\"application/1d-interleaved-parityfec\":{\"source
|
|
251946
252419
|
/***/ ((module) => {
|
251947
252420
|
|
251948
252421
|
"use strict";
|
251949
|
-
module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"25.1.1-canary.
|
252422
|
+
module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"25.1.1-canary.3\",\"preferGlobal\":true,\"license\":\"Apache-2.0\",\"description\":\"The command-line interface for Vercel\",\"homepage\":\"https://vercel.com\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/cli\"},\"scripts\":{\"preinstall\":\"node ./scripts/preinstall.js\",\"test\":\"jest --env node --verbose --runInBand --bail --forceExit\",\"test-unit\":\"yarn test test/unit/\",\"test-integration-cli\":\"rimraf test/fixtures/integration && ava test/integration.js --serial --fail-fast --verbose\",\"test-integration-dev\":\"yarn test test/dev/\",\"prepublishOnly\":\"yarn build\",\"coverage\":\"codecov\",\"build\":\"node -r ts-eager/register ./scripts/build.ts\",\"build-dev\":\"node -r ts-eager/register ./scripts/build.ts --dev\"},\"bin\":{\"vc\":\"./dist/index.js\",\"vercel\":\"./dist/index.js\"},\"files\":[\"dist\",\"scripts/preinstall.js\"],\"ava\":{\"extensions\":[\"ts\"],\"require\":[\"ts-node/register/transpile-only\",\"esm\"]},\"engines\":{\"node\":\">= 14\"},\"dependencies\":{\"@vercel/build-utils\":\"4.1.1-canary.1\",\"@vercel/go\":\"2.0.2-canary.1\",\"@vercel/next\":\"3.0.3-canary.0\",\"@vercel/node\":\"2.1.1-canary.2\",\"@vercel/python\":\"3.0.2-canary.1\",\"@vercel/redwood\":\"1.0.2-canary.1\",\"@vercel/remix\":\"1.0.2-canary.1\",\"@vercel/ruby\":\"1.3.10-canary.1\",\"@vercel/static-build\":\"1.0.2-canary.1\",\"update-notifier\":\"5.1.0\"},\"devDependencies\":{\"@alex_neo/jest-expect-message\":\"1.0.5\",\"@next/env\":\"11.1.2\",\"@sentry/node\":\"5.5.0\",\"@sindresorhus/slugify\":\"0.11.0\",\"@tootallnate/once\":\"1.1.2\",\"@types/ansi-escapes\":\"3.0.0\",\"@types/ansi-regex\":\"4.0.0\",\"@types/async-retry\":\"1.2.1\",\"@types/bytes\":\"3.0.0\",\"@types/chance\":\"1.1.3\",\"@types/debug\":\"0.0.31\",\"@types/dotenv\":\"6.1.1\",\"@types/escape-html\":\"0.0.20\",\"@types/express\":\"4.17.13\",\"@types/fs-extra\":\"9.0.13\",\"@types/glob\":\"7.1.1\",\"@types/http-proxy\":\"1.16.2\",\"@types/ini\":\"1.3.31\",\"@types/inquirer\":\"7.3.1\",\"@types/jest\":\"27.4.1\",\"@types/jest-expect-message\":\"1.0.3\",\"@types/load-json-file\":\"2.0.7\",\"@types/mime-types\":\"2.1.0\",\"@types/minimatch\":\"3.0.3\",\"@types/mri\":\"1.1.0\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"11.11.0\",\"@types/node-fetch\":\"2.5.10\",\"@types/npm-package-arg\":\"6.1.0\",\"@types/pluralize\":\"0.0.29\",\"@types/progress\":\"2.0.3\",\"@types/psl\":\"1.1.0\",\"@types/semver\":\"6.0.1\",\"@types/tar-fs\":\"1.16.1\",\"@types/text-table\":\"0.2.0\",\"@types/title\":\"3.4.1\",\"@types/universal-analytics\":\"0.4.2\",\"@types/update-notifier\":\"5.1.0\",\"@types/which\":\"1.3.2\",\"@types/write-json-file\":\"2.2.1\",\"@types/yauzl-promise\":\"2.1.0\",\"@vercel/client\":\"12.0.2-canary.1\",\"@vercel/frameworks\":\"1.0.2-canary.0\",\"@vercel/ncc\":\"0.24.0\",\"@zeit/fun\":\"0.11.2\",\"@zeit/source-map-support\":\"0.6.2\",\"ajv\":\"6.12.2\",\"alpha-sort\":\"2.0.1\",\"ansi-escapes\":\"3.0.0\",\"ansi-regex\":\"3.0.0\",\"arg\":\"5.0.0\",\"async-listen\":\"1.2.0\",\"async-retry\":\"1.1.3\",\"async-sema\":\"2.1.4\",\"ava\":\"2.2.0\",\"bytes\":\"3.0.0\",\"chalk\":\"4.1.0\",\"chance\":\"1.1.7\",\"chokidar\":\"3.3.1\",\"clipboardy\":\"2.1.0\",\"codecov\":\"3.8.2\",\"cpy\":\"7.2.0\",\"credit-card\":\"3.0.1\",\"date-fns\":\"1.29.0\",\"debug\":\"3.1.0\",\"dot\":\"1.1.3\",\"dotenv\":\"4.0.0\",\"email-prompt\":\"0.3.2\",\"email-validator\":\"1.1.1\",\"epipebomb\":\"1.0.0\",\"escape-html\":\"1.0.3\",\"esm\":\"3.1.4\",\"execa\":\"3.2.0\",\"express\":\"4.17.1\",\"fast-deep-equal\":\"3.1.3\",\"fs-extra\":\"10.0.0\",\"get-port\":\"5.1.1\",\"git-last-commit\":\"1.0.1\",\"glob\":\"7.1.2\",\"http-proxy\":\"1.18.1\",\"ini\":\"3.0.0\",\"inquirer\":\"7.0.4\",\"is-docker\":\"2.2.1\",\"is-port-reachable\":\"3.1.0\",\"is-url\":\"1.2.2\",\"jaro-winkler\":\"0.2.8\",\"jsonlines\":\"0.1.1\",\"load-json-file\":\"3.0.0\",\"mime-types\":\"2.1.24\",\"minimatch\":\"3.0.4\",\"mri\":\"1.1.5\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.1\",\"npm-package-arg\":\"6.1.0\",\"open\":\"8.4.0\",\"ora\":\"3.4.0\",\"pcre-to-regexp\":\"1.0.0\",\"pluralize\":\"7.0.0\",\"progress\":\"2.0.3\",\"promisepipe\":\"3.0.0\",\"psl\":\"1.1.31\",\"qr-image\":\"3.2.0\",\"raw-body\":\"2.4.1\",\"rimraf\":\"3.0.2\",\"semver\":\"5.5.0\",\"serve-handler\":\"6.1.1\",\"strip-ansi\":\"5.2.0\",\"stripe\":\"5.1.0\",\"tar-fs\":\"1.16.3\",\"test-listen\":\"1.1.0\",\"text-table\":\"0.2.0\",\"title\":\"3.4.1\",\"tmp-promise\":\"1.0.3\",\"tree-kill\":\"1.2.2\",\"ts-node\":\"8.3.0\",\"typescript\":\"4.3.4\",\"universal-analytics\":\"0.4.20\",\"utility-types\":\"2.1.0\",\"which\":\"2.0.2\",\"write-json-file\":\"2.2.0\",\"xdg-app-paths\":\"5.1.0\",\"yauzl-promise\":\"2.1.3\"},\"jest\":{\"preset\":\"ts-jest\",\"globals\":{\"ts-jest\":{\"diagnostics\":false,\"isolatedModules\":true}},\"setupFilesAfterEnv\":[\"@alex_neo/jest-expect-message\"],\"verbose\":false,\"testEnvironment\":\"node\",\"testMatch\":[\"<rootDir>/test/**/*.test.ts\"]},\"gitHead\":\"b7b7923f92b370c5ef44bde3ced2dbc550f547e4\"}");
|
251950
252423
|
|
251951
252424
|
/***/ }),
|
251952
252425
|
|
@@ -251962,7 +252435,7 @@ module.exports = JSON.parse("{\"VISA\":\"Visa\",\"MASTERCARD\":\"MasterCard\",\"
|
|
251962
252435
|
/***/ ((module) => {
|
251963
252436
|
|
251964
252437
|
"use strict";
|
251965
|
-
module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.0.2-canary.
|
252438
|
+
module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.0.2-canary.1\",\"main\":\"dist/index.js\",\"typings\":\"dist/index.d.ts\",\"homepage\":\"https://vercel.com\",\"license\":\"MIT\",\"files\":[\"dist\"],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/client\"},\"scripts\":{\"build\":\"tsc\",\"test-integration-once\":\"yarn test tests/create-deployment.test.ts tests/create-legacy-deployment.test.ts tests/paths.test.ts\",\"test\":\"jest --env node --verbose --runInBand --bail\",\"test-unit\":\"yarn test tests/unit.*test.*\"},\"engines\":{\"node\":\">= 14\"},\"devDependencies\":{\"@types/async-retry\":\"1.4.1\",\"@types/fs-extra\":\"7.0.0\",\"@types/jest\":\"27.4.1\",\"@types/minimatch\":\"3.0.5\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"12.0.4\",\"@types/node-fetch\":\"2.5.4\",\"@types/recursive-readdir\":\"2.2.0\",\"typescript\":\"4.3.4\"},\"jest\":{\"preset\":\"ts-jest\",\"testEnvironment\":\"node\",\"verbose\":false,\"setupFilesAfterEnv\":[\"<rootDir>/tests/setup/index.ts\"]},\"dependencies\":{\"@vercel/build-utils\":\"4.1.1-canary.1\",\"@zeit/fetch\":\"5.2.0\",\"async-retry\":\"1.2.3\",\"async-sema\":\"3.0.0\",\"fs-extra\":\"8.0.1\",\"ignore\":\"4.0.6\",\"minimatch\":\"5.0.1\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.1\",\"querystring\":\"^0.2.0\",\"sleep-promise\":\"8.0.1\"}}");
|
251966
252439
|
|
251967
252440
|
/***/ }),
|
251968
252441
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "vercel",
|
3
|
-
"version": "25.1.1-canary.
|
3
|
+
"version": "25.1.1-canary.3",
|
4
4
|
"preferGlobal": true,
|
5
5
|
"license": "Apache-2.0",
|
6
6
|
"description": "The command-line interface for Vercel",
|
@@ -42,15 +42,15 @@
|
|
42
42
|
"node": ">= 14"
|
43
43
|
},
|
44
44
|
"dependencies": {
|
45
|
-
"@vercel/build-utils": "4.1.1-canary.
|
46
|
-
"@vercel/go": "2.0.2-canary.
|
47
|
-
"@vercel/next": "3.0.
|
48
|
-
"@vercel/node": "2.1.1-canary.
|
49
|
-
"@vercel/python": "3.0.2-canary.
|
50
|
-
"@vercel/redwood": "1.0.2-canary.
|
51
|
-
"@vercel/remix": "1.0.2-canary.
|
52
|
-
"@vercel/ruby": "1.3.10-canary.
|
53
|
-
"@vercel/static-build": "1.0.2-canary.
|
45
|
+
"@vercel/build-utils": "4.1.1-canary.1",
|
46
|
+
"@vercel/go": "2.0.2-canary.1",
|
47
|
+
"@vercel/next": "3.0.3-canary.0",
|
48
|
+
"@vercel/node": "2.1.1-canary.2",
|
49
|
+
"@vercel/python": "3.0.2-canary.1",
|
50
|
+
"@vercel/redwood": "1.0.2-canary.1",
|
51
|
+
"@vercel/remix": "1.0.2-canary.1",
|
52
|
+
"@vercel/ruby": "1.3.10-canary.1",
|
53
|
+
"@vercel/static-build": "1.0.2-canary.1",
|
54
54
|
"update-notifier": "5.1.0"
|
55
55
|
},
|
56
56
|
"devDependencies": {
|
@@ -71,6 +71,7 @@
|
|
71
71
|
"@types/fs-extra": "9.0.13",
|
72
72
|
"@types/glob": "7.1.1",
|
73
73
|
"@types/http-proxy": "1.16.2",
|
74
|
+
"@types/ini": "1.3.31",
|
74
75
|
"@types/inquirer": "7.3.1",
|
75
76
|
"@types/jest": "27.4.1",
|
76
77
|
"@types/jest-expect-message": "1.0.3",
|
@@ -94,8 +95,8 @@
|
|
94
95
|
"@types/which": "1.3.2",
|
95
96
|
"@types/write-json-file": "2.2.1",
|
96
97
|
"@types/yauzl-promise": "2.1.0",
|
97
|
-
"@vercel/client": "12.0.2-canary.
|
98
|
-
"@vercel/frameworks": "1.0.
|
98
|
+
"@vercel/client": "12.0.2-canary.1",
|
99
|
+
"@vercel/frameworks": "1.0.2-canary.0",
|
99
100
|
"@vercel/ncc": "0.24.0",
|
100
101
|
"@zeit/fun": "0.11.2",
|
101
102
|
"@zeit/source-map-support": "0.6.2",
|
@@ -130,11 +131,13 @@
|
|
130
131
|
"fast-deep-equal": "3.1.3",
|
131
132
|
"fs-extra": "10.0.0",
|
132
133
|
"get-port": "5.1.1",
|
134
|
+
"git-last-commit": "1.0.1",
|
133
135
|
"glob": "7.1.2",
|
134
136
|
"http-proxy": "1.18.1",
|
137
|
+
"ini": "3.0.0",
|
135
138
|
"inquirer": "7.0.4",
|
136
139
|
"is-docker": "2.2.1",
|
137
|
-
"is-port-reachable": "3.
|
140
|
+
"is-port-reachable": "3.1.0",
|
138
141
|
"is-url": "1.2.2",
|
139
142
|
"jaro-winkler": "0.2.8",
|
140
143
|
"jsonlines": "0.1.1",
|
@@ -191,5 +194,5 @@
|
|
191
194
|
"<rootDir>/test/**/*.test.ts"
|
192
195
|
]
|
193
196
|
},
|
194
|
-
"gitHead": "
|
197
|
+
"gitHead": "b7b7923f92b370c5ef44bde3ced2dbc550f547e4"
|
195
198
|
}
|