vercel
Version:
The command-line interface for Vercel
231 lines (228 loc) • 6.37 kB
JavaScript
import { createRequire as __createRequire } from 'node:module';
import { fileURLToPath as __fileURLToPath } from 'node:url';
import { dirname as __dirname_ } from 'node:path';
const require = __createRequire(import.meta.url);
const __filename = __fileURLToPath(import.meta.url);
const __dirname = __dirname_(__filename);
import {
getSubcommand
} from "../../chunks/chunk-YPQSDAEW.js";
import {
addSubcommand7 as addSubcommand,
getCommandAliases,
linkCommand
} from "../../chunks/chunk-UVFXUXOZ.js";
import "../../chunks/chunk-IFATV36R.js";
import "../../chunks/chunk-JFVGRFME.js";
import "../../chunks/chunk-TZMIHH5D.js";
import "../../chunks/chunk-XVAEOG4L.js";
import "../../chunks/chunk-ZAAKSLHC.js";
import "../../chunks/chunk-CQANJIEC.js";
import {
detectExplicitScope,
getScope
} from "../../chunks/chunk-KWDV5FZH.js";
import "../../chunks/chunk-4PSOOFYO.js";
import {
ensureLink
} from "../../chunks/chunk-N4WFAZKO.js";
import "../../chunks/chunk-UTXSTM52.js";
import "../../chunks/chunk-4VPRHRPA.js";
import {
autoInstallVercelPlugin
} from "../../chunks/chunk-ZKKIBUCU.js";
import {
help
} from "../../chunks/chunk-MMF4BVAP.js";
import {
addRepoLink,
ensureRepoLink
} from "../../chunks/chunk-X775BOSL.js";
import {
TelemetryClient
} from "../../chunks/chunk-4OEA5ILS.js";
import "../../chunks/chunk-ULXHXZCZ.js";
import "../../chunks/chunk-CO5D46AG.js";
import "../../chunks/chunk-N2T234LO.js";
import "../../chunks/chunk-DKD6GTQT.js";
import {
getFlagsSpecification,
parseArguments,
printError
} from "../../chunks/chunk-4GQQJY5Y.js";
import {
cmd
} from "../../chunks/chunk-UGXBNJMO.js";
import "../../chunks/chunk-P4QNYOFB.js";
import {
output_manager_default
} from "../../chunks/chunk-ZQKJVHXY.js";
import "../../chunks/chunk-S7KYDPEM.js";
import "../../chunks/chunk-TZ2YI2VH.js";
// src/util/telemetry/commands/link/index.ts
var LinkTelemetryClient = class extends TelemetryClient {
trackCliArgumentCwd() {
this.trackCliArgument({
arg: "cwd",
value: this.redactedValue
});
}
trackCliFlagRepo(flag) {
if (flag) {
this.trackCliFlag("repo");
}
}
trackCliFlagYes(yes) {
if (yes) {
this.trackCliFlag("yes");
}
}
trackCliFlagConfirm(flag) {
if (flag) {
this.trackCliFlag("confirm");
}
}
trackCliOptionProject(project) {
if (project) {
this.trackCliOption({
option: "project",
value: this.redactedValue
});
}
}
trackCliOptionTeam(value) {
if (value) {
this.trackCliOption({
option: "team",
value: this.redactedValue
});
}
}
trackCliOptionProjectId(value) {
if (value) {
this.trackCliOption({
option: "project-id",
value: this.redactedValue
});
}
}
trackCliSubcommandAdd(actual) {
this.trackCliSubcommand({
subcommand: "add",
value: actual
});
}
};
// src/commands/link/index.ts
var COMMAND_CONFIG = {
add: getCommandAliases(addSubcommand)
};
async function link(client) {
let parsedArgs = null;
const flagsSpecification = getFlagsSpecification(linkCommand.options);
try {
parsedArgs = parseArguments(client.argv.slice(2), flagsSpecification, {
permissive: true
});
} catch (error) {
printError(error);
return 1;
}
const { subcommand, subcommandOriginal } = getSubcommand(
parsedArgs.args.slice(1),
COMMAND_CONFIG
);
const telemetry = new LinkTelemetryClient({
opts: {
store: client.telemetryEventStore
}
});
function printHelp(command) {
output_manager_default.print(
help(command, { parent: linkCommand, columns: client.stderr.columns })
);
}
if (subcommand === "add") {
if (parsedArgs.flags["--help"]) {
telemetry.trackCliFlagHelp("link", subcommandOriginal);
printHelp(addSubcommand);
return 2;
}
telemetry.trackCliSubcommandAdd(subcommandOriginal);
const yes2 = !!parsedArgs.flags["--yes"];
try {
await addRepoLink(client, client.cwd, { yes: yes2 });
} catch (err) {
output_manager_default.prettyError(err);
return 1;
}
await autoInstallVercelPlugin(client, {
autoConfirm: yes2
});
return 0;
}
try {
parsedArgs = parseArguments(client.argv.slice(2), flagsSpecification);
} catch (error) {
printError(error);
return 1;
}
if (parsedArgs.flags["--help"]) {
telemetry.trackCliFlagHelp("link");
output_manager_default.print(help(linkCommand, { columns: client.stderr.columns }));
return 2;
}
telemetry.trackCliFlagRepo(parsedArgs.flags["--repo"]);
telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]);
telemetry.trackCliOptionProject(parsedArgs.flags["--project"]);
if ("--confirm" in parsedArgs.flags) {
telemetry.trackCliFlagConfirm(parsedArgs.flags["--confirm"]);
output_manager_default.warn("`--confirm` is deprecated, please use `--yes` instead");
parsedArgs.flags["--yes"] = parsedArgs.flags["--confirm"];
}
const yes = !!parsedArgs.flags["--yes"];
let cwd = parsedArgs.args[1];
if (cwd) {
telemetry.trackCliArgumentCwd();
output_manager_default.warn(
`The ${cmd("vc link <directory>")} syntax is deprecated, please use ${cmd(
`vc link --cwd ${cwd}`
)} instead`
);
} else {
cwd = client.cwd;
}
if (parsedArgs.flags["--repo"]) {
output_manager_default.warn(`The ${cmd("--repo")} flag is in alpha, please report issues`);
try {
await ensureRepoLink(client, cwd, { yes, overwrite: true });
} catch (err) {
output_manager_default.prettyError(err);
return 1;
}
} else {
const explicitScopeProvided = detectExplicitScope(client);
if (explicitScopeProvided) {
await getScope(client, { resolveLocalScope: true });
}
const linkNonInteractive = client.nonInteractive || client.argv.includes("--non-interactive");
const link2 = await ensureLink("link", client, cwd, {
autoConfirm: yes,
forceDelete: true,
projectName: parsedArgs.flags["--project"],
successEmoji: "success",
nonInteractive: linkNonInteractive,
searchAcrossTeams: !explicitScopeProvided
});
if (typeof link2 === "number") {
return link2;
}
}
await autoInstallVercelPlugin(client, {
autoConfirm: yes
});
return 0;
}
export {
link as default
};