🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@robinpath/vercel

Package Overview
Dependencies
Maintainers
4
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@robinpath/vercel - npm Package Compare versions

Comparing version
0.1.0
to
0.1.1
+36
-7
package.json
{
"name": "@robinpath/vercel",
"version": "0.1.0",
"publishConfig": { "access": "public" },
"version": "0.1.1",
"publishConfig": {
"access": "public"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"exports": { ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" } },
"files": ["dist"],
"scripts": { "build": "tsc" },
"peerDependencies": { "@wiredwp/robinpath": ">=0.20.0" },
"devDependencies": { "@wiredwp/robinpath": "^0.30.1", "typescript": "^5.6.0" }
"exports": {
".": {
"import": "./dist/index.js",
"types": "./dist/index.d.ts"
}
},
"files": [
"dist"
],
"scripts": {
"build": "tsc"
},
"peerDependencies": {
"@robinpath/core": ">=0.20.0"
},
"devDependencies": {
"@robinpath/core": "^0.30.1",
"typescript": "^5.6.0"
},
"description": "Vercel module for RobinPath.",
"keywords": [
"vercel",
"devops"
],
"license": "MIT",
"robinpath": {
"category": "devops",
"type": "integration",
"auth": "bearer-token",
"functionCount": 30,
"baseUrl": "https://api.vercel.com"
}
}
-6
import type { ModuleAdapter } from "@wiredwp/robinpath";
declare const VercelModule: ModuleAdapter;
export default VercelModule;
export { VercelModule };
export { VercelFunctions, VercelFunctionMetadata, VercelModuleMetadata } from "./vercel.js";
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,QAAA,MAAM,YAAY,EAAE,aAMnB,CAAC;AAEF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
import { VercelFunctions, VercelFunctionMetadata, VercelModuleMetadata } from "./vercel.js";
const VercelModule = {
name: "vercel",
functions: VercelFunctions,
functionMetadata: VercelFunctionMetadata,
moduleMetadata: VercelModuleMetadata,
global: false,
}; // as ModuleAdapter
export default VercelModule;
export { VercelModule };
export { VercelFunctions, VercelFunctionMetadata, VercelModuleMetadata } from "./vercel.js";
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE5F,MAAM,YAAY,GAAkB;IAClC,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,eAAe;IAC1B,gBAAgB,EAAE,sBAA6B;IAC/C,cAAc,EAAE,oBAA2B;IAC3C,MAAM,EAAE,KAAK;CACd,CAAC,CAAC,mBAAmB;AAEtB,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
import type { BuiltinHandler } from "@wiredwp/robinpath";
export declare const VercelFunctions: Record<string, BuiltinHandler>;
export declare const VercelFunctionMetadata: {
setToken: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
listProjects: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
getProject: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
createProject: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
updateProject: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
deleteProject: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
listDeployments: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
getDeployment: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
createDeployment: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
cancelDeployment: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
deleteDeployment: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
redeployDeployment: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
listDomains: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
getDomain: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
addDomain: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
removeDomain: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
listProjectDomains: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
addProjectDomain: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
removeProjectDomain: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
getDomainConfig: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
verifyDomain: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
listEnvVars: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
getEnvVar: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
createEnvVar: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
updateEnvVar: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
deleteEnvVar: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
getUser: {
description: string;
parameters: never[];
returnType: string;
returnDescription: string;
example: string;
};
listTeams: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
getTeam: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
getDeploymentLogs: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
};
export declare const VercelModuleMetadata: {
description: string;
methods: string[];
category: string;
};
//# sourceMappingURL=vercel.d.ts.map
{"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../src/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,oBAAoB,CAAC;AAmWlG,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAS1D,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6QlC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC"}
// --- Token storage ---
let apiToken = null;
function getToken() {
if (!apiToken)
throw new Error("Vercel API token not set. Call vercel.setToken first.");
return apiToken;
}
// --- API helpers ---
const API_BASE = "https://api.vercel.com";
async function vercelRequest(path, options = {}) {
const token = getToken();
const headers = {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
...(options.headers ?? {}),
};
const url = path.startsWith("http") ? path : `${API_BASE}${path}`;
const response = await fetch(url, { ...options, headers });
const text = await response.text();
let body;
try {
body = JSON.parse(text);
}
catch {
body = text;
}
if (!response.ok) {
const errMsg = typeof body === "object" && body !== null && "error" in body
? JSON.stringify(body.error)
: String(body);
throw new Error(`Vercel API error (${response.status}): ${errMsg}`);
}
return body;
}
function buildQuery(params) {
const qs = new URLSearchParams();
for (const [k, v] of Object.entries(params)) {
if (v !== undefined && v !== null && v !== "")
qs.set(k, String(v));
}
const str = qs.toString();
return str ? `?${str}` : "";
}
// --- Auth ---
const setToken = (args) => {
const token = String(args[0] ?? "");
if (!token)
throw new Error("token is required");
apiToken = token;
return { configured: true };
};
// --- Projects ---
const listProjects = async (args) => {
const opts = (typeof args[0] === "object" && args[0] !== null ? args[0] : {});
const query = buildQuery({ limit: opts.limit, from: opts.from, search: opts.search });
const result = await vercelRequest(`/v9/projects${query}`);
return result;
};
const getProject = async (args) => {
const projectId = String(args[0] ?? "");
if (!projectId)
throw new Error("projectId is required");
const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}`);
return result;
};
const createProject = async (args) => {
const name = String(args[0] ?? "");
if (!name)
throw new Error("name is required");
const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {});
const payload = { name };
if (opts.framework)
payload.framework = opts.framework;
if (opts.gitRepository)
payload.gitRepository = opts.gitRepository;
if (opts.buildCommand)
payload.buildCommand = opts.buildCommand;
if (opts.rootDirectory)
payload.rootDirectory = opts.rootDirectory;
const result = await vercelRequest("/v10/projects", {
method: "POST",
body: JSON.stringify(payload),
});
return result;
};
const updateProject = async (args) => {
const projectId = String(args[0] ?? "");
if (!projectId)
throw new Error("projectId is required");
const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {});
const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}`, {
method: "PATCH",
body: JSON.stringify(opts),
});
return result;
};
const deleteProject = async (args) => {
const projectId = String(args[0] ?? "");
if (!projectId)
throw new Error("projectId is required");
await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}`, { method: "DELETE" });
return { deleted: true, projectId };
};
// --- Deployments ---
const listDeployments = async (args) => {
const opts = (typeof args[0] === "object" && args[0] !== null ? args[0] : {});
const query = buildQuery({
projectId: opts.projectId,
limit: opts.limit,
state: opts.state,
target: opts.target,
});
const result = await vercelRequest(`/v6/deployments${query}`);
return result;
};
const getDeployment = async (args) => {
const deploymentId = String(args[0] ?? "");
if (!deploymentId)
throw new Error("deploymentId is required");
const result = await vercelRequest(`/v13/deployments/${encodeURIComponent(deploymentId)}`);
return result;
};
const createDeployment = async (args) => {
const name = String(args[0] ?? "");
if (!name)
throw new Error("name is required");
const files = args[1];
if (!Array.isArray(files))
throw new Error("files must be an array");
const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {});
const payload = { name, files };
if (opts.target)
payload.target = opts.target;
if (opts.gitSource)
payload.gitSource = opts.gitSource;
const result = await vercelRequest("/v13/deployments", {
method: "POST",
body: JSON.stringify(payload),
});
return result;
};
const cancelDeployment = async (args) => {
const deploymentId = String(args[0] ?? "");
if (!deploymentId)
throw new Error("deploymentId is required");
const result = await vercelRequest(`/v12/deployments/${encodeURIComponent(deploymentId)}/cancel`, {
method: "PATCH",
});
return result;
};
const deleteDeployment = async (args) => {
const deploymentId = String(args[0] ?? "");
if (!deploymentId)
throw new Error("deploymentId is required");
await vercelRequest(`/v13/deployments/${encodeURIComponent(deploymentId)}`, { method: "DELETE" });
return { deleted: true, deploymentId };
};
const redeployDeployment = async (args) => {
const deploymentId = String(args[0] ?? "");
if (!deploymentId)
throw new Error("deploymentId is required");
const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {});
const payload = { deploymentId, ...opts };
const result = await vercelRequest("/v13/deployments", {
method: "POST",
body: JSON.stringify(payload),
});
return result;
};
// --- Domains ---
const listDomains = async (args) => {
const opts = (typeof args[0] === "object" && args[0] !== null ? args[0] : {});
const query = buildQuery({ limit: opts.limit, since: opts.since, until: opts.until });
const result = await vercelRequest(`/v5/domains${query}`);
return result;
};
const getDomain = async (args) => {
const domain = String(args[0] ?? "");
if (!domain)
throw new Error("domain is required");
const result = await vercelRequest(`/v5/domains/${encodeURIComponent(domain)}`);
return result;
};
const addDomain = async (args) => {
const domain = String(args[0] ?? "");
if (!domain)
throw new Error("domain is required");
const opts = (typeof args[1] === "object" && args[1] !== null ? args[1] : {});
const payload = { name: domain };
if (opts.cdnEnabled !== undefined)
payload.cdnEnabled = opts.cdnEnabled;
const result = await vercelRequest("/v5/domains", {
method: "POST",
body: JSON.stringify(payload),
});
return result;
};
const removeDomain = async (args) => {
const domain = String(args[0] ?? "");
if (!domain)
throw new Error("domain is required");
await vercelRequest(`/v6/domains/${encodeURIComponent(domain)}`, { method: "DELETE" });
return { deleted: true, domain };
};
const listProjectDomains = async (args) => {
const projectId = String(args[0] ?? "");
if (!projectId)
throw new Error("projectId is required");
const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/domains`);
return result;
};
const addProjectDomain = async (args) => {
const projectId = String(args[0] ?? "");
const domain = String(args[1] ?? "");
if (!projectId)
throw new Error("projectId is required");
if (!domain)
throw new Error("domain is required");
const result = await vercelRequest(`/v10/projects/${encodeURIComponent(projectId)}/domains`, {
method: "POST",
body: JSON.stringify({ name: domain }),
});
return result;
};
const removeProjectDomain = async (args) => {
const projectId = String(args[0] ?? "");
const domain = String(args[1] ?? "");
if (!projectId)
throw new Error("projectId is required");
if (!domain)
throw new Error("domain is required");
await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/domains/${encodeURIComponent(domain)}`, {
method: "DELETE",
});
return { deleted: true, projectId, domain };
};
const getDomainConfig = async (args) => {
const domain = String(args[0] ?? "");
if (!domain)
throw new Error("domain is required");
const result = await vercelRequest(`/v6/domains/${encodeURIComponent(domain)}/config`);
return result;
};
const verifyDomain = async (args) => {
const projectId = String(args[0] ?? "");
const domain = String(args[1] ?? "");
if (!projectId)
throw new Error("projectId is required");
if (!domain)
throw new Error("domain is required");
const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/domains/${encodeURIComponent(domain)}/verify`, {
method: "POST",
});
return result;
};
// --- Environment Variables ---
const listEnvVars = async (args) => {
const projectId = String(args[0] ?? "");
if (!projectId)
throw new Error("projectId is required");
const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/env`);
return result;
};
const getEnvVar = async (args) => {
const projectId = String(args[0] ?? "");
const envId = String(args[1] ?? "");
if (!projectId)
throw new Error("projectId is required");
if (!envId)
throw new Error("envId is required");
const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/env/${encodeURIComponent(envId)}`);
return result;
};
const createEnvVar = async (args) => {
const projectId = String(args[0] ?? "");
const key = String(args[1] ?? "");
const value = String(args[2] ?? "");
const targets = args[3];
if (!projectId)
throw new Error("projectId is required");
if (!key)
throw new Error("key is required");
if (!targets)
throw new Error("targets is required (array of: production, preview, development)");
const opts = (typeof args[4] === "object" && args[4] !== null ? args[4] : {});
const payload = {
key,
value,
target: Array.isArray(targets) ? targets : [targets],
type: opts.type ?? "encrypted",
};
if (opts.gitBranch)
payload.gitBranch = opts.gitBranch;
const result = await vercelRequest(`/v10/projects/${encodeURIComponent(projectId)}/env`, {
method: "POST",
body: JSON.stringify(payload),
});
return result;
};
const updateEnvVar = async (args) => {
const projectId = String(args[0] ?? "");
const envId = String(args[1] ?? "");
const value = String(args[2] ?? "");
if (!projectId)
throw new Error("projectId is required");
if (!envId)
throw new Error("envId is required");
const opts = (typeof args[3] === "object" && args[3] !== null ? args[3] : {});
const payload = { value };
if (opts.target)
payload.target = opts.target;
if (opts.type)
payload.type = opts.type;
if (opts.gitBranch)
payload.gitBranch = opts.gitBranch;
const result = await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/env/${encodeURIComponent(envId)}`, {
method: "PATCH",
body: JSON.stringify(payload),
});
return result;
};
const deleteEnvVar = async (args) => {
const projectId = String(args[0] ?? "");
const envId = String(args[1] ?? "");
if (!projectId)
throw new Error("projectId is required");
if (!envId)
throw new Error("envId is required");
await vercelRequest(`/v9/projects/${encodeURIComponent(projectId)}/env/${encodeURIComponent(envId)}`, {
method: "DELETE",
});
return { deleted: true, projectId, envId };
};
// --- Teams / User ---
const getUser = async () => {
const result = await vercelRequest("/v2/user");
return result.user ?? result;
};
const listTeams = async (args) => {
const opts = (typeof args[0] === "object" && args[0] !== null ? args[0] : {});
const query = buildQuery({ limit: opts.limit, since: opts.since, until: opts.until });
const result = await vercelRequest(`/v2/teams${query}`);
return result;
};
const getTeam = async (args) => {
const teamId = String(args[0] ?? "");
if (!teamId)
throw new Error("teamId is required");
const result = await vercelRequest(`/v2/teams/${encodeURIComponent(teamId)}`);
return result;
};
// --- Logs ---
const getDeploymentLogs = async (args) => {
const deploymentId = String(args[0] ?? "");
if (!deploymentId)
throw new Error("deploymentId is required");
const result = await vercelRequest(`/v2/deployments/${encodeURIComponent(deploymentId)}/events`);
return result;
};
// --- Exports ---
export const VercelFunctions = {
setToken,
listProjects, getProject, createProject, updateProject, deleteProject,
listDeployments, getDeployment, createDeployment, cancelDeployment, deleteDeployment, redeployDeployment,
listDomains, getDomain, addDomain, removeDomain,
listProjectDomains, addProjectDomain, removeProjectDomain, getDomainConfig, verifyDomain,
listEnvVars, getEnvVar, createEnvVar, updateEnvVar, deleteEnvVar,
getUser, listTeams, getTeam,
getDeploymentLogs,
};
export const VercelFunctionMetadata = {
setToken: {
description: "Set the Vercel API bearer token for authentication",
parameters: [
{ name: "token", dataType: "string", description: "Vercel API token", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "{configured}",
example: 'vercel.setToken "my-vercel-token"',
},
// --- Projects ---
listProjects: {
description: "List all projects in the authenticated account",
parameters: [
{ name: "options", dataType: "object", description: "{limit, from, search}", formInputType: "json", required: false },
],
returnType: "object", returnDescription: "{projects[], pagination}",
example: 'vercel.listProjects {"limit": 20, "search": "my-app"}',
},
getProject: {
description: "Get details of a project by ID or name",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "Project object with id, name, framework, targets, etc.",
example: 'vercel.getProject "my-project"',
},
createProject: {
description: "Create a new Vercel project",
parameters: [
{ name: "name", dataType: "string", description: "Project name", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{framework, gitRepository, buildCommand, rootDirectory}", formInputType: "json", required: false },
],
returnType: "object", returnDescription: "Created project object",
example: 'vercel.createProject "my-app" {"framework": "nextjs"}',
},
updateProject: {
description: "Update settings of an existing project",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "Fields to update (name, framework, buildCommand, etc.)", formInputType: "json", required: true },
],
returnType: "object", returnDescription: "Updated project object",
example: 'vercel.updateProject "my-project" {"buildCommand": "npm run build"}',
},
deleteProject: {
description: "Delete a Vercel project",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "{deleted, projectId}",
example: 'vercel.deleteProject "my-project"',
},
// --- Deployments ---
listDeployments: {
description: "List deployments, optionally filtered by project, state, or target",
parameters: [
{ name: "options", dataType: "object", description: "{projectId, limit, state, target}", formInputType: "json", required: false },
],
returnType: "object", returnDescription: "{deployments[], pagination}",
example: 'vercel.listDeployments {"projectId": "prj_abc123", "limit": 10}',
},
getDeployment: {
description: "Get details of a specific deployment",
parameters: [
{ name: "deploymentId", dataType: "string", description: "Deployment ID or URL", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "Deployment object with id, url, state, meta, etc.",
example: 'vercel.getDeployment "dpl_abc123"',
},
createDeployment: {
description: "Create a new deployment with files",
parameters: [
{ name: "name", dataType: "string", description: "Project name for the deployment", formInputType: "text", required: true },
{ name: "files", dataType: "array", description: "Array of file objects [{file, data}]", formInputType: "json", required: true },
{ name: "options", dataType: "object", description: "{target, gitSource}", formInputType: "json", required: false },
],
returnType: "object", returnDescription: "Created deployment object",
example: 'vercel.createDeployment "my-app" [{"file": "index.html", "data": "<h1>Hello</h1>"}]',
},
cancelDeployment: {
description: "Cancel an in-progress deployment",
parameters: [
{ name: "deploymentId", dataType: "string", description: "Deployment ID", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "Cancelled deployment object",
example: 'vercel.cancelDeployment "dpl_abc123"',
},
deleteDeployment: {
description: "Delete a deployment",
parameters: [
{ name: "deploymentId", dataType: "string", description: "Deployment ID or URL", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "{deleted, deploymentId}",
example: 'vercel.deleteDeployment "dpl_abc123"',
},
redeployDeployment: {
description: "Redeploy an existing deployment (create from existing)",
parameters: [
{ name: "deploymentId", dataType: "string", description: "Source deployment ID to redeploy", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{target, name}", formInputType: "json", required: false },
],
returnType: "object", returnDescription: "New deployment object",
example: 'vercel.redeployDeployment "dpl_abc123" {"target": "production"}',
},
// --- Domains ---
listDomains: {
description: "List all domains in the authenticated account",
parameters: [
{ name: "options", dataType: "object", description: "{limit, since, until}", formInputType: "json", required: false },
],
returnType: "object", returnDescription: "{domains[], pagination}",
example: "vercel.listDomains",
},
getDomain: {
description: "Get information about a specific domain",
parameters: [
{ name: "domain", dataType: "string", description: "Domain name", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "Domain object with name, serviceType, verified, etc.",
example: 'vercel.getDomain "example.com"',
},
addDomain: {
description: "Register a new domain to the account",
parameters: [
{ name: "domain", dataType: "string", description: "Domain name to add", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{cdnEnabled}", formInputType: "json", required: false },
],
returnType: "object", returnDescription: "Created domain object",
example: 'vercel.addDomain "example.com"',
},
removeDomain: {
description: "Remove a domain from the account",
parameters: [
{ name: "domain", dataType: "string", description: "Domain name to remove", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "{deleted, domain}",
example: 'vercel.removeDomain "example.com"',
},
listProjectDomains: {
description: "List all domains assigned to a project",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "{domains[]}",
example: 'vercel.listProjectDomains "my-project"',
},
addProjectDomain: {
description: "Add a domain to a project",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
{ name: "domain", dataType: "string", description: "Domain name to add", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "Domain configuration object",
example: 'vercel.addProjectDomain "my-project" "example.com"',
},
removeProjectDomain: {
description: "Remove a domain from a project",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
{ name: "domain", dataType: "string", description: "Domain name to remove", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "{deleted, projectId, domain}",
example: 'vercel.removeProjectDomain "my-project" "example.com"',
},
getDomainConfig: {
description: "Get DNS configuration for a domain",
parameters: [
{ name: "domain", dataType: "string", description: "Domain name", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "Domain DNS config with misconfigured, cnames, aValues, etc.",
example: 'vercel.getDomainConfig "example.com"',
},
verifyDomain: {
description: "Verify a domain attached to a project",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
{ name: "domain", dataType: "string", description: "Domain name to verify", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "Verification result object",
example: 'vercel.verifyDomain "my-project" "example.com"',
},
// --- Environment Variables ---
listEnvVars: {
description: "List all environment variables for a project",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "{envs[]} with key, value, target, type, id",
example: 'vercel.listEnvVars "my-project"',
},
getEnvVar: {
description: "Get details of a specific environment variable",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
{ name: "envId", dataType: "string", description: "Environment variable ID", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "Env var object with key, value, target, type",
example: 'vercel.getEnvVar "my-project" "env_abc123"',
},
createEnvVar: {
description: "Create a new environment variable for a project",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
{ name: "key", dataType: "string", description: "Environment variable name", formInputType: "text", required: true },
{ name: "value", dataType: "string", description: "Environment variable value", formInputType: "text", required: true },
{ name: "targets", dataType: "array", description: "Deployment targets: production, preview, development", formInputType: "json", required: true },
{ name: "options", dataType: "object", description: "{type, gitBranch} type: encrypted|plain|sensitive", formInputType: "json", required: false },
],
returnType: "object", returnDescription: "Created env var object",
example: 'vercel.createEnvVar "my-project" "API_KEY" "secret123" ["production", "preview"]',
},
updateEnvVar: {
description: "Update an existing environment variable",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
{ name: "envId", dataType: "string", description: "Environment variable ID", formInputType: "text", required: true },
{ name: "value", dataType: "string", description: "New value", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "{target, type, gitBranch}", formInputType: "json", required: false },
],
returnType: "object", returnDescription: "Updated env var object",
example: 'vercel.updateEnvVar "my-project" "env_abc123" "newValue"',
},
deleteEnvVar: {
description: "Delete an environment variable from a project",
parameters: [
{ name: "projectId", dataType: "string", description: "Project ID or name", formInputType: "text", required: true },
{ name: "envId", dataType: "string", description: "Environment variable ID", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "{deleted, projectId, envId}",
example: 'vercel.deleteEnvVar "my-project" "env_abc123"',
},
// --- Teams / User ---
getUser: {
description: "Get the authenticated user's profile",
parameters: [],
returnType: "object", returnDescription: "User object with id, email, name, username, etc.",
example: "vercel.getUser",
},
listTeams: {
description: "List all teams the authenticated user belongs to",
parameters: [
{ name: "options", dataType: "object", description: "{limit, since, until}", formInputType: "json", required: false },
],
returnType: "object", returnDescription: "{teams[], pagination}",
example: "vercel.listTeams",
},
getTeam: {
description: "Get details of a specific team",
parameters: [
{ name: "teamId", dataType: "string", description: "Team ID", formInputType: "text", required: true },
],
returnType: "object", returnDescription: "Team object with id, slug, name, etc.",
example: 'vercel.getTeam "team_abc123"',
},
// --- Logs ---
getDeploymentLogs: {
description: "Get build logs for a deployment",
parameters: [
{ name: "deploymentId", dataType: "string", description: "Deployment ID", formInputType: "text", required: true },
],
returnType: "array", returnDescription: "Array of log event objects",
example: 'vercel.getDeploymentLogs "dpl_abc123"',
},
};
export const VercelModuleMetadata = {
description: "Vercel REST API client for projects, deployments, domains, environment variables, teams, and logs",
methods: Object.keys(VercelFunctions),
category: "cloud",
};
//# sourceMappingURL=vercel.js.map
{"version":3,"file":"vercel.js","sourceRoot":"","sources":["../src/vercel.ts"],"names":[],"mappings":"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"}