@robinpath/vercel
Advanced tools
| import type { ModuleAdapter } from "@robinpath/core"; | ||
| declare const VercelModule: ModuleAdapter; | ||
| export default VercelModule; | ||
| export { VercelModule }; | ||
| export { VercelFunctions, VercelFunctionMetadata, VercelModuleMetadata, VercelCredentialTypes, } 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,iBAAiB,CAAC;AASrD,QAAA,MAAM,YAAY,EAAE,aAQnB,CAAC;AAEF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,aAAa,CAAC"} |
| import { VercelFunctions, VercelFunctionMetadata, VercelModuleMetadata, VercelCredentialTypes, configureVercel, } from "./vercel.js"; | ||
| const VercelModule = { | ||
| name: "vercel", | ||
| functions: VercelFunctions, | ||
| functionMetadata: VercelFunctionMetadata, | ||
| moduleMetadata: VercelModuleMetadata, | ||
| credentialTypes: VercelCredentialTypes, | ||
| configure: configureVercel, | ||
| global: false, | ||
| }; | ||
| export default VercelModule; | ||
| export { VercelModule }; | ||
| export { VercelFunctions, VercelFunctionMetadata, VercelModuleMetadata, VercelCredentialTypes, } from "./vercel.js"; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,MAAM,YAAY,GAAkB;IAClC,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,eAAe;IAC1B,gBAAgB,EAAE,sBAAsB;IACxC,cAAc,EAAE,oBAAoB;IACpC,eAAe,EAAE,qBAAqB;IACtC,SAAS,EAAE,eAAe;IAC1B,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,aAAa,CAAC"} |
| /** | ||
| * RobinPath Vercel Module (Node port) | ||
| * | ||
| * Vercel REST API client — projects, deployments, domains, environment | ||
| * variables, teams, and deployment logs. Uses the RobinPath credential vault | ||
| * for bearer-token authentication against api.vercel.com. | ||
| * | ||
| * Credential type declared by this module: | ||
| * - vercel : { access_token, team_id? } → Bearer auth; team_id is forwarded | ||
| * as ?teamId= on every call when set. | ||
| * | ||
| * All handlers return the parsed JSON response as-is. Errors are never | ||
| * thrown — they are returned as `{error, code, status?, vercel_error?}`. | ||
| */ | ||
| import type { BuiltinHandler, CredentialTypeSchema, FunctionMetadata, ModuleHost, ModuleMetadata } from "@robinpath/core"; | ||
| export declare function configureVercel(h: ModuleHost): void; | ||
| export declare const VercelFunctions: Record<string, BuiltinHandler>; | ||
| export declare const VercelCredentialTypes: CredentialTypeSchema[]; | ||
| export declare const VercelFunctionMetadata: Record<string, FunctionMetadata>; | ||
| export declare const VercelModuleMetadata: ModuleMetadata; | ||
| //# sourceMappingURL=vercel.d.ts.map |
| {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../src/vercel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAezB,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAEnD;AAqnBD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA8B1D,CAAC;AAIF,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,EA0BvD,CAAC;AAoEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAuzBnE,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,cA4ClC,CAAC"} |
+1438
| /** | ||
| * RobinPath Vercel Module (Node port) | ||
| * | ||
| * Vercel REST API client — projects, deployments, domains, environment | ||
| * variables, teams, and deployment logs. Uses the RobinPath credential vault | ||
| * for bearer-token authentication against api.vercel.com. | ||
| * | ||
| * Credential type declared by this module: | ||
| * - vercel : { access_token, team_id? } → Bearer auth; team_id is forwarded | ||
| * as ?teamId= on every call when set. | ||
| * | ||
| * All handlers return the parsed JSON response as-is. Errors are never | ||
| * thrown — they are returned as `{error, code, status?, vercel_error?}`. | ||
| */ | ||
| // ── Module-local state (populated by configure hook) ──────────────────── | ||
| const state = {}; | ||
| function host() { | ||
| if (!state.host) { | ||
| throw new Error("Vercel module not initialized. Pass the adapter to rp.registerModule() via loadModule so its configure() hook runs first."); | ||
| } | ||
| return state.host; | ||
| } | ||
| export function configureVercel(h) { | ||
| state.host = h; | ||
| } | ||
| // ── Constants ────────────────────────────────────────────────────────── | ||
| const API_BASE = "https://api.vercel.com"; | ||
| const CREDENTIAL_TYPE = "vercel"; | ||
| function errorReturn(error, code, extra = {}) { | ||
| return { error, code, ...extra }; | ||
| } | ||
| async function resolveToken(credentialSlug) { | ||
| if (!credentialSlug) { | ||
| return errorReturn("Credential slug is required.", "credential_not_found"); | ||
| } | ||
| let fields; | ||
| try { | ||
| fields = await host().credentials.get(credentialSlug); | ||
| } | ||
| catch (e) { | ||
| return errorReturn(e instanceof Error ? e.message : String(e), "credential_not_found"); | ||
| } | ||
| if (!fields) { | ||
| return errorReturn(`Credential '${credentialSlug}' not found.`, "credential_not_found"); | ||
| } | ||
| const token = String(fields.access_token ?? ""); | ||
| if (!token) { | ||
| return errorReturn("Credential has no `access_token` field.", "token_missing"); | ||
| } | ||
| const teamIdRaw = String(fields.team_id ?? ""); | ||
| return { token, teamId: teamIdRaw || undefined }; | ||
| } | ||
| // ── HTTP helper ──────────────────────────────────────────────────────── | ||
| function appendTeamId(pathAndQuery, teamId) { | ||
| if (!teamId) | ||
| return pathAndQuery; | ||
| const sep = pathAndQuery.includes("?") ? "&" : "?"; | ||
| return `${pathAndQuery}${sep}teamId=${encodeURIComponent(teamId)}`; | ||
| } | ||
| async function http(cred, method, pathAndQuery, body) { | ||
| const url = API_BASE + appendTeamId(pathAndQuery, cred.teamId); | ||
| const init = { | ||
| method, | ||
| headers: { | ||
| Authorization: `Bearer ${cred.token}`, | ||
| Accept: "application/json", | ||
| ...(body !== undefined ? { "Content-Type": "application/json" } : {}), | ||
| }, | ||
| }; | ||
| if (body !== undefined) | ||
| init.body = JSON.stringify(body); | ||
| let response; | ||
| try { | ||
| response = await fetch(url, init); | ||
| } | ||
| catch (e) { | ||
| return errorReturn(e instanceof Error ? e.message : String(e), "transport"); | ||
| } | ||
| const raw = await response.text(); | ||
| let decoded = null; | ||
| if (raw) { | ||
| try { | ||
| decoded = JSON.parse(raw); | ||
| } | ||
| catch { | ||
| decoded = { raw }; | ||
| } | ||
| } | ||
| if (response.status >= 200 && response.status < 300) { | ||
| return decoded ?? { ok: true, status: response.status }; | ||
| } | ||
| const errObj = decoded && typeof decoded === "object" && "error" in decoded | ||
| ? decoded.error | ||
| : decoded; | ||
| let message = `Vercel returned HTTP ${response.status}.`; | ||
| if (errObj && typeof errObj === "object" && "message" in errObj) { | ||
| message = String(errObj.message); | ||
| } | ||
| else if (typeof errObj === "string") { | ||
| message = errObj; | ||
| } | ||
| let code = "vercel_error"; | ||
| if (response.status === 404) | ||
| code = "not_found"; | ||
| else if (response.status === 401 || response.status === 403) | ||
| code = "permission_denied"; | ||
| else if (response.status === 429) | ||
| code = "rate_limited"; | ||
| return errorReturn(message, code, { | ||
| status: response.status, | ||
| vercel_error: decoded, | ||
| }); | ||
| } | ||
| // ── Helpers ──────────────────────────────────────────────────────────── | ||
| 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}` : ""; | ||
| } | ||
| function asString(v) { | ||
| if (v === undefined || v === null) | ||
| return ""; | ||
| return String(v); | ||
| } | ||
| function asOpts(v) { | ||
| return v && typeof v === "object" && !Array.isArray(v) | ||
| ? v | ||
| : {}; | ||
| } | ||
| // ── Handlers: Projects ───────────────────────────────────────────────── | ||
| const listProjects = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const opts = asOpts(args[1]); | ||
| const query = buildQuery({ | ||
| limit: opts.limit, | ||
| from: opts.from, | ||
| search: opts.search, | ||
| }); | ||
| return (await http(cred, "GET", `/v9/projects${query}`)); | ||
| }; | ||
| const getProject = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| return (await http(cred, "GET", `/v9/projects/${encodeURIComponent(projectId)}`)); | ||
| }; | ||
| const createProject = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const name = asString(args[1]); | ||
| if (!name) | ||
| return errorReturn("`name` is required.", "validation"); | ||
| const opts = asOpts(args[2]); | ||
| const body = { name }; | ||
| if (opts.framework) | ||
| body.framework = opts.framework; | ||
| if (opts.gitRepository) | ||
| body.gitRepository = opts.gitRepository; | ||
| if (opts.buildCommand) | ||
| body.buildCommand = opts.buildCommand; | ||
| if (opts.rootDirectory) | ||
| body.rootDirectory = opts.rootDirectory; | ||
| return (await http(cred, "POST", "/v10/projects", body)); | ||
| }; | ||
| const updateProject = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| const opts = asOpts(args[2]); | ||
| return (await http(cred, "PATCH", `/v9/projects/${encodeURIComponent(projectId)}`, opts)); | ||
| }; | ||
| const deleteProject = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| const res = await http(cred, "DELETE", `/v9/projects/${encodeURIComponent(projectId)}`); | ||
| if (res && typeof res === "object" && "error" in res) | ||
| return res; | ||
| return { deleted: true, projectId }; | ||
| }; | ||
| // ── Handlers: Deployments ────────────────────────────────────────────── | ||
| const listDeployments = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const opts = asOpts(args[1]); | ||
| const query = buildQuery({ | ||
| projectId: opts.projectId, | ||
| limit: opts.limit, | ||
| state: opts.state, | ||
| target: opts.target, | ||
| }); | ||
| return (await http(cred, "GET", `/v6/deployments${query}`)); | ||
| }; | ||
| const getDeployment = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const deploymentId = asString(args[1]); | ||
| if (!deploymentId) | ||
| return errorReturn("`deploymentId` is required.", "validation"); | ||
| return (await http(cred, "GET", `/v13/deployments/${encodeURIComponent(deploymentId)}`)); | ||
| }; | ||
| const createDeployment = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const name = asString(args[1]); | ||
| if (!name) | ||
| return errorReturn("`name` is required.", "validation"); | ||
| const files = args[2]; | ||
| if (!Array.isArray(files)) | ||
| return errorReturn("`files` must be an array.", "validation"); | ||
| const opts = asOpts(args[3]); | ||
| const body = { name, files }; | ||
| if (opts.target) | ||
| body.target = opts.target; | ||
| if (opts.gitSource) | ||
| body.gitSource = opts.gitSource; | ||
| return (await http(cred, "POST", "/v13/deployments", body)); | ||
| }; | ||
| const cancelDeployment = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const deploymentId = asString(args[1]); | ||
| if (!deploymentId) | ||
| return errorReturn("`deploymentId` is required.", "validation"); | ||
| return (await http(cred, "PATCH", `/v12/deployments/${encodeURIComponent(deploymentId)}/cancel`)); | ||
| }; | ||
| const deleteDeployment = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const deploymentId = asString(args[1]); | ||
| if (!deploymentId) | ||
| return errorReturn("`deploymentId` is required.", "validation"); | ||
| const res = await http(cred, "DELETE", `/v13/deployments/${encodeURIComponent(deploymentId)}`); | ||
| if (res && typeof res === "object" && "error" in res) | ||
| return res; | ||
| return { deleted: true, deploymentId }; | ||
| }; | ||
| const redeployDeployment = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const deploymentId = asString(args[1]); | ||
| if (!deploymentId) | ||
| return errorReturn("`deploymentId` is required.", "validation"); | ||
| const opts = asOpts(args[2]); | ||
| const body = { deploymentId, ...opts }; | ||
| return (await http(cred, "POST", "/v13/deployments", body)); | ||
| }; | ||
| // ── Handlers: Domains ────────────────────────────────────────────────── | ||
| const listDomains = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const opts = asOpts(args[1]); | ||
| const query = buildQuery({ | ||
| limit: opts.limit, | ||
| since: opts.since, | ||
| until: opts.until, | ||
| }); | ||
| return (await http(cred, "GET", `/v5/domains${query}`)); | ||
| }; | ||
| const getDomain = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const domain = asString(args[1]); | ||
| if (!domain) | ||
| return errorReturn("`domain` is required.", "validation"); | ||
| return (await http(cred, "GET", `/v5/domains/${encodeURIComponent(domain)}`)); | ||
| }; | ||
| const addDomain = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const domain = asString(args[1]); | ||
| if (!domain) | ||
| return errorReturn("`domain` is required.", "validation"); | ||
| const opts = asOpts(args[2]); | ||
| const body = { name: domain }; | ||
| if (opts.cdnEnabled !== undefined) | ||
| body.cdnEnabled = opts.cdnEnabled; | ||
| return (await http(cred, "POST", "/v5/domains", body)); | ||
| }; | ||
| const removeDomain = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const domain = asString(args[1]); | ||
| if (!domain) | ||
| return errorReturn("`domain` is required.", "validation"); | ||
| const res = await http(cred, "DELETE", `/v6/domains/${encodeURIComponent(domain)}`); | ||
| if (res && typeof res === "object" && "error" in res) | ||
| return res; | ||
| return { deleted: true, domain }; | ||
| }; | ||
| const listProjectDomains = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| return (await http(cred, "GET", `/v9/projects/${encodeURIComponent(projectId)}/domains`)); | ||
| }; | ||
| const addProjectDomain = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| const domain = asString(args[2]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| if (!domain) | ||
| return errorReturn("`domain` is required.", "validation"); | ||
| return (await http(cred, "POST", `/v10/projects/${encodeURIComponent(projectId)}/domains`, { name: domain })); | ||
| }; | ||
| const removeProjectDomain = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| const domain = asString(args[2]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| if (!domain) | ||
| return errorReturn("`domain` is required.", "validation"); | ||
| const res = await http(cred, "DELETE", `/v9/projects/${encodeURIComponent(projectId)}/domains/${encodeURIComponent(domain)}`); | ||
| if (res && typeof res === "object" && "error" in res) | ||
| return res; | ||
| return { deleted: true, projectId, domain }; | ||
| }; | ||
| const getDomainConfig = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const domain = asString(args[1]); | ||
| if (!domain) | ||
| return errorReturn("`domain` is required.", "validation"); | ||
| return (await http(cred, "GET", `/v6/domains/${encodeURIComponent(domain)}/config`)); | ||
| }; | ||
| const verifyDomain = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| const domain = asString(args[2]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| if (!domain) | ||
| return errorReturn("`domain` is required.", "validation"); | ||
| return (await http(cred, "POST", `/v9/projects/${encodeURIComponent(projectId)}/domains/${encodeURIComponent(domain)}/verify`)); | ||
| }; | ||
| // ── Handlers: Environment Variables ──────────────────────────────────── | ||
| const listEnvVars = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| return (await http(cred, "GET", `/v9/projects/${encodeURIComponent(projectId)}/env`)); | ||
| }; | ||
| const getEnvVar = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| const envId = asString(args[2]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| if (!envId) | ||
| return errorReturn("`envId` is required.", "validation"); | ||
| return (await http(cred, "GET", `/v9/projects/${encodeURIComponent(projectId)}/env/${encodeURIComponent(envId)}`)); | ||
| }; | ||
| const createEnvVar = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| const key = asString(args[2]); | ||
| const value = asString(args[3]); | ||
| const targets = args[4]; | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| if (!key) | ||
| return errorReturn("`key` is required.", "validation"); | ||
| if (!targets) | ||
| return errorReturn("`targets` is required (array of: production, preview, development).", "validation"); | ||
| const opts = asOpts(args[5]); | ||
| const body = { | ||
| key, | ||
| value, | ||
| target: Array.isArray(targets) ? targets : [targets], | ||
| type: opts.type ?? "encrypted", | ||
| }; | ||
| if (opts.gitBranch) | ||
| body.gitBranch = opts.gitBranch; | ||
| return (await http(cred, "POST", `/v10/projects/${encodeURIComponent(projectId)}/env`, body)); | ||
| }; | ||
| const updateEnvVar = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| const envId = asString(args[2]); | ||
| const value = asString(args[3]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| if (!envId) | ||
| return errorReturn("`envId` is required.", "validation"); | ||
| const opts = asOpts(args[4]); | ||
| const body = { value }; | ||
| if (opts.target) | ||
| body.target = opts.target; | ||
| if (opts.type) | ||
| body.type = opts.type; | ||
| if (opts.gitBranch) | ||
| body.gitBranch = opts.gitBranch; | ||
| return (await http(cred, "PATCH", `/v9/projects/${encodeURIComponent(projectId)}/env/${encodeURIComponent(envId)}`, body)); | ||
| }; | ||
| const deleteEnvVar = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const projectId = asString(args[1]); | ||
| const envId = asString(args[2]); | ||
| if (!projectId) | ||
| return errorReturn("`projectId` is required.", "validation"); | ||
| if (!envId) | ||
| return errorReturn("`envId` is required.", "validation"); | ||
| const res = await http(cred, "DELETE", `/v9/projects/${encodeURIComponent(projectId)}/env/${encodeURIComponent(envId)}`); | ||
| if (res && typeof res === "object" && "error" in res) | ||
| return res; | ||
| return { deleted: true, projectId, envId }; | ||
| }; | ||
| // ── Handlers: Teams / User ───────────────────────────────────────────── | ||
| const getUser = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const result = await http(cred, "GET", "/v2/user"); | ||
| if (result && typeof result === "object" && "user" in result) { | ||
| return result.user; | ||
| } | ||
| return result; | ||
| }; | ||
| const listTeams = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const opts = asOpts(args[1]); | ||
| const query = buildQuery({ | ||
| limit: opts.limit, | ||
| since: opts.since, | ||
| until: opts.until, | ||
| }); | ||
| return (await http(cred, "GET", `/v2/teams${query}`)); | ||
| }; | ||
| const getTeam = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const teamId = asString(args[1]); | ||
| if (!teamId) | ||
| return errorReturn("`teamId` is required.", "validation"); | ||
| return (await http(cred, "GET", `/v2/teams/${encodeURIComponent(teamId)}`)); | ||
| }; | ||
| // ── Handlers: Logs ───────────────────────────────────────────────────── | ||
| const getDeploymentLogs = async (args) => { | ||
| const cred = await resolveToken(asString(args[0])); | ||
| if ("error" in cred) | ||
| return cred; | ||
| const deploymentId = asString(args[1]); | ||
| if (!deploymentId) | ||
| return errorReturn("`deploymentId` is required.", "validation"); | ||
| return (await http(cred, "GET", `/v2/deployments/${encodeURIComponent(deploymentId)}/events`)); | ||
| }; | ||
| // ── Exports: functions map ───────────────────────────────────────────── | ||
| export const VercelFunctions = { | ||
| 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, | ||
| }; | ||
| // ── Exports: credential types ────────────────────────────────────────── | ||
| export const VercelCredentialTypes = [ | ||
| { | ||
| slug: CREDENTIAL_TYPE, | ||
| title: "Vercel", | ||
| icon: "cloud", | ||
| fields: [ | ||
| { | ||
| name: "access_token", | ||
| title: "Access Token", | ||
| type: "password", | ||
| required: true, | ||
| placeholder: "vercel_…", | ||
| description: "Create one at vercel.com/account/tokens. Scope it to the team/project you want the automation to manage.", | ||
| }, | ||
| { | ||
| name: "team_id", | ||
| title: "Default Team ID", | ||
| type: "text", | ||
| required: false, | ||
| placeholder: "team_…", | ||
| description: "Optional. If set, every request is made under this team (sent as `?teamId=`). Leave blank for personal-account calls.", | ||
| }, | ||
| ], | ||
| }, | ||
| ]; | ||
| // ── Metadata: shared parameter descriptors ───────────────────────────── | ||
| const credentialParam = { | ||
| name: "credential", | ||
| title: "Credential", | ||
| description: "Slug of a saved `vercel` credential.", | ||
| dataType: "string", | ||
| formInputType: "resource", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "my_vercel", | ||
| resource: { | ||
| type: "credential", | ||
| listFn: "credential.list", | ||
| modes: ["list", "expression"], | ||
| searchable: true, | ||
| filter: { type: CREDENTIAL_TYPE }, | ||
| }, | ||
| }; | ||
| const projectIdParam = { | ||
| name: "projectId", | ||
| title: "Project ID or name", | ||
| description: "Vercel project ID (`prj_…`) or the project's name.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "my-project", | ||
| }; | ||
| const deploymentIdParam = { | ||
| name: "deploymentId", | ||
| title: "Deployment ID", | ||
| description: "Vercel deployment ID (`dpl_…`) or deployment URL.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "dpl_abc123", | ||
| }; | ||
| const domainParam = { | ||
| name: "domain", | ||
| title: "Domain", | ||
| description: "Domain name (e.g. `example.com`).", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "example.com", | ||
| }; | ||
| const commonErrors = { | ||
| credential_not_found: "No credential with that slug exists in the vault.", | ||
| token_missing: "The credential exists but has no `access_token` field.", | ||
| transport: "Network failure calling api.vercel.com.", | ||
| vercel_error: "Vercel returned an error — see `vercel_error` and `status`.", | ||
| not_found: "The resource does not exist or the token lacks access.", | ||
| permission_denied: "The token is valid but lacks the required scope.", | ||
| rate_limited: "Vercel rate limited the request.", | ||
| validation: "A required parameter was missing or invalid.", | ||
| }; | ||
| // ── Exports: function metadata ───────────────────────────────────────── | ||
| export const VercelFunctionMetadata = { | ||
| listProjects: { | ||
| title: "List projects", | ||
| summary: "List projects visible to the token", | ||
| description: "Calls `GET /v9/projects`.", | ||
| group: "projects", | ||
| action: "query", | ||
| icon: "list", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "project", "list"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n limit : max results\n from : pagination cursor\n search : substring filter on name", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 3, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "`{ projects: [...], pagination }`.", | ||
| errors: commonErrors, | ||
| example: 'vercel.listProjects "my_vercel" {limit: 20}', | ||
| }, | ||
| getProject: { | ||
| title: "Get project", | ||
| summary: "Fetch a project by ID or name", | ||
| description: "Calls `GET /v9/projects/{projectId}`.", | ||
| group: "projects", | ||
| action: "read", | ||
| icon: "folder", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "project"], | ||
| parameters: [credentialParam, projectIdParam], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.getProject "my_vercel" "my-project"', | ||
| }, | ||
| createProject: { | ||
| title: "Create project", | ||
| summary: "Create a new Vercel project", | ||
| description: "Calls `POST /v10/projects`.", | ||
| group: "projects", | ||
| action: "write", | ||
| icon: "folder-plus", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: false, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "project", "create"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "name", | ||
| title: "Project name", | ||
| description: "Unique project name within the team scope.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "my-app", | ||
| }, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n framework : e.g. 'nextjs', 'remix'\n gitRepository : {type, repo} — connect a git repo\n buildCommand : override build command\n rootDirectory : monorepo sub-path", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 4, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.createProject "my_vercel" "my-app" {framework: "nextjs"}', | ||
| }, | ||
| updateProject: { | ||
| title: "Update project", | ||
| summary: "Patch project settings", | ||
| description: "Calls `PATCH /v9/projects/{projectId}`.", | ||
| group: "projects", | ||
| action: "write", | ||
| icon: "edit-3", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "project", "update"], | ||
| parameters: [ | ||
| credentialParam, | ||
| projectIdParam, | ||
| { | ||
| name: "options", | ||
| title: "Changes", | ||
| description: "Fields to update (name, framework, buildCommand, etc.).", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: true, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 4, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.updateProject "my_vercel" "my-project" {buildCommand: "npm run build"}', | ||
| }, | ||
| deleteProject: { | ||
| title: "Delete project", | ||
| summary: "Permanently delete a project", | ||
| description: "Calls `DELETE /v9/projects/{projectId}`.", | ||
| group: "projects", | ||
| action: "delete", | ||
| icon: "trash-2", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "project", "delete", "destructive"], | ||
| parameters: [credentialParam, projectIdParam], | ||
| returnType: "object", | ||
| returnDescription: "`{deleted: true, projectId}`.", | ||
| errors: commonErrors, | ||
| example: 'vercel.deleteProject "my_vercel" "my-project"', | ||
| }, | ||
| listDeployments: { | ||
| title: "List deployments", | ||
| summary: "List deployments, optionally filtered", | ||
| description: "Calls `GET /v6/deployments`.", | ||
| group: "deployments", | ||
| action: "query", | ||
| icon: "list", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "deployment", "list"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n projectId : filter by project\n limit : max results\n state : deployment state\n target : 'production' | 'preview'", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 4, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.listDeployments "my_vercel" {projectId: "prj_abc", limit: 10}', | ||
| }, | ||
| getDeployment: { | ||
| title: "Get deployment", | ||
| summary: "Fetch a single deployment", | ||
| description: "Calls `GET /v13/deployments/{deploymentId}`.", | ||
| group: "deployments", | ||
| action: "read", | ||
| icon: "package", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "deployment"], | ||
| parameters: [credentialParam, deploymentIdParam], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.getDeployment "my_vercel" "dpl_abc"', | ||
| }, | ||
| createDeployment: { | ||
| title: "Create deployment", | ||
| summary: "Create a new deployment with inline files", | ||
| description: "Calls `POST /v13/deployments`.", | ||
| group: "deployments", | ||
| action: "write", | ||
| icon: "upload", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: false, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "deployment", "create"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "name", | ||
| title: "Project name", | ||
| description: "Name of the project to deploy to.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "my-app", | ||
| }, | ||
| { | ||
| name: "files", | ||
| title: "Files", | ||
| description: "Array of file objects: `[{file, data}]`. Each `data` can be a string or pre-uploaded SHA.", | ||
| dataType: "array", | ||
| formInputType: "json", | ||
| required: true, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 6, | ||
| }, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n target : 'production' | 'preview'\n gitSource : git reference object", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 3, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.createDeployment "my_vercel" "my-app" [{file: "index.html", data: "<h1>hi</h1>"}]', | ||
| }, | ||
| cancelDeployment: { | ||
| title: "Cancel deployment", | ||
| summary: "Cancel an in-progress deployment", | ||
| description: "Calls `PATCH /v12/deployments/{deploymentId}/cancel`.", | ||
| group: "deployments", | ||
| action: "write", | ||
| icon: "x-circle", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "deployment", "cancel"], | ||
| parameters: [credentialParam, deploymentIdParam], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.cancelDeployment "my_vercel" "dpl_abc"', | ||
| }, | ||
| deleteDeployment: { | ||
| title: "Delete deployment", | ||
| summary: "Delete a deployment", | ||
| description: "Calls `DELETE /v13/deployments/{deploymentId}`.", | ||
| group: "deployments", | ||
| action: "delete", | ||
| icon: "trash-2", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "deployment", "delete"], | ||
| parameters: [credentialParam, deploymentIdParam], | ||
| returnType: "object", | ||
| returnDescription: "`{deleted: true, deploymentId}`.", | ||
| errors: commonErrors, | ||
| example: 'vercel.deleteDeployment "my_vercel" "dpl_abc"', | ||
| }, | ||
| redeployDeployment: { | ||
| title: "Redeploy", | ||
| summary: "Create a new deployment from an existing one", | ||
| description: "Calls `POST /v13/deployments` with a `deploymentId` to redeploy the same source.", | ||
| group: "deployments", | ||
| action: "write", | ||
| icon: "refresh-cw", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: false, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "deployment", "redeploy"], | ||
| parameters: [ | ||
| credentialParam, | ||
| deploymentIdParam, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n target : 'production' | 'preview'\n name : override project name", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 3, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.redeployDeployment "my_vercel" "dpl_abc" {target: "production"}', | ||
| }, | ||
| listDomains: { | ||
| title: "List domains", | ||
| summary: "List all domains in the account", | ||
| description: "Calls `GET /v5/domains`.", | ||
| group: "domains", | ||
| action: "query", | ||
| icon: "globe", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "domain", "list"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n limit, since, until", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 3, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.listDomains "my_vercel"', | ||
| }, | ||
| getDomain: { | ||
| title: "Get domain", | ||
| summary: "Fetch a domain by name", | ||
| description: "Calls `GET /v5/domains/{domain}`.", | ||
| group: "domains", | ||
| action: "read", | ||
| icon: "globe", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "domain"], | ||
| parameters: [credentialParam, domainParam], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.getDomain "my_vercel" "example.com"', | ||
| }, | ||
| addDomain: { | ||
| title: "Add domain", | ||
| summary: "Register a domain to the account", | ||
| description: "Calls `POST /v5/domains`.", | ||
| group: "domains", | ||
| action: "write", | ||
| icon: "plus", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: false, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "domain", "add"], | ||
| parameters: [ | ||
| credentialParam, | ||
| domainParam, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n cdnEnabled : bool", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 2, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.addDomain "my_vercel" "example.com"', | ||
| }, | ||
| removeDomain: { | ||
| title: "Remove domain", | ||
| summary: "Unregister a domain", | ||
| description: "Calls `DELETE /v6/domains/{domain}`.", | ||
| group: "domains", | ||
| action: "delete", | ||
| icon: "trash-2", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "domain", "remove"], | ||
| parameters: [credentialParam, domainParam], | ||
| returnType: "object", | ||
| returnDescription: "`{deleted: true, domain}`.", | ||
| errors: commonErrors, | ||
| example: 'vercel.removeDomain "my_vercel" "example.com"', | ||
| }, | ||
| listProjectDomains: { | ||
| title: "List project domains", | ||
| summary: "List domains attached to a project", | ||
| description: "Calls `GET /v9/projects/{projectId}/domains`.", | ||
| group: "domains", | ||
| action: "query", | ||
| icon: "list", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "domain", "project"], | ||
| parameters: [credentialParam, projectIdParam], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.listProjectDomains "my_vercel" "my-project"', | ||
| }, | ||
| addProjectDomain: { | ||
| title: "Add project domain", | ||
| summary: "Attach a domain to a project", | ||
| description: "Calls `POST /v10/projects/{projectId}/domains`.", | ||
| group: "domains", | ||
| action: "write", | ||
| icon: "plus", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: false, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "domain", "project"], | ||
| parameters: [credentialParam, projectIdParam, domainParam], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.addProjectDomain "my_vercel" "my-project" "example.com"', | ||
| }, | ||
| removeProjectDomain: { | ||
| title: "Remove project domain", | ||
| summary: "Detach a domain from a project", | ||
| description: "Calls `DELETE /v9/projects/{projectId}/domains/{domain}`.", | ||
| group: "domains", | ||
| action: "delete", | ||
| icon: "trash-2", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "domain", "project"], | ||
| parameters: [credentialParam, projectIdParam, domainParam], | ||
| returnType: "object", | ||
| returnDescription: "`{deleted: true, projectId, domain}`.", | ||
| errors: commonErrors, | ||
| example: 'vercel.removeProjectDomain "my_vercel" "my-project" "example.com"', | ||
| }, | ||
| getDomainConfig: { | ||
| title: "Get domain config", | ||
| summary: "Read DNS configuration for a domain", | ||
| description: "Calls `GET /v6/domains/{domain}/config`.", | ||
| group: "domains", | ||
| action: "read", | ||
| icon: "settings", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "domain", "dns"], | ||
| parameters: [credentialParam, domainParam], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.getDomainConfig "my_vercel" "example.com"', | ||
| }, | ||
| verifyDomain: { | ||
| title: "Verify domain", | ||
| summary: "Trigger verification for a project domain", | ||
| description: "Calls `POST /v9/projects/{projectId}/domains/{domain}/verify`.", | ||
| group: "domains", | ||
| action: "write", | ||
| icon: "check-circle", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "domain", "verify"], | ||
| parameters: [credentialParam, projectIdParam, domainParam], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.verifyDomain "my_vercel" "my-project" "example.com"', | ||
| }, | ||
| listEnvVars: { | ||
| title: "List environment variables", | ||
| summary: "List env vars for a project", | ||
| description: "Calls `GET /v9/projects/{projectId}/env`.", | ||
| group: "env", | ||
| action: "query", | ||
| icon: "list", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "env"], | ||
| parameters: [credentialParam, projectIdParam], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.listEnvVars "my_vercel" "my-project"', | ||
| }, | ||
| getEnvVar: { | ||
| title: "Get environment variable", | ||
| summary: "Fetch a single env var", | ||
| description: "Calls `GET /v9/projects/{projectId}/env/{envId}`.", | ||
| group: "env", | ||
| action: "read", | ||
| icon: "key", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "env"], | ||
| parameters: [ | ||
| credentialParam, | ||
| projectIdParam, | ||
| { | ||
| name: "envId", | ||
| title: "Env var ID", | ||
| description: "Environment variable ID.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "env_abc123", | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.getEnvVar "my_vercel" "my-project" "env_abc"', | ||
| }, | ||
| createEnvVar: { | ||
| title: "Create environment variable", | ||
| summary: "Add an env var to a project", | ||
| description: "Calls `POST /v10/projects/{projectId}/env`.", | ||
| group: "env", | ||
| action: "write", | ||
| icon: "plus", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: false, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "env", "create"], | ||
| parameters: [ | ||
| credentialParam, | ||
| projectIdParam, | ||
| { | ||
| name: "key", | ||
| title: "Key", | ||
| description: "Environment variable name.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "API_KEY", | ||
| }, | ||
| { | ||
| name: "value", | ||
| title: "Value", | ||
| description: "Environment variable value.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| }, | ||
| { | ||
| name: "targets", | ||
| title: "Targets", | ||
| description: "Array of target environments: `production`, `preview`, `development`.", | ||
| dataType: "array", | ||
| formInputType: "json", | ||
| required: true, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 2, | ||
| }, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n type : 'encrypted' (default) | 'plain' | 'sensitive'\n gitBranch : pin the var to a specific git branch", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 3, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.createEnvVar "my_vercel" "my-project" "API_KEY" "secret123" ["production"]', | ||
| }, | ||
| updateEnvVar: { | ||
| title: "Update environment variable", | ||
| summary: "Update an existing env var", | ||
| description: "Calls `PATCH /v9/projects/{projectId}/env/{envId}`.", | ||
| group: "env", | ||
| action: "write", | ||
| icon: "edit-3", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "env", "update"], | ||
| parameters: [ | ||
| credentialParam, | ||
| projectIdParam, | ||
| { | ||
| name: "envId", | ||
| title: "Env var ID", | ||
| description: "Environment variable ID.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "env_abc123", | ||
| }, | ||
| { | ||
| name: "value", | ||
| title: "Value", | ||
| description: "New value.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| }, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n target, type, gitBranch", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 3, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.updateEnvVar "my_vercel" "my-project" "env_abc" "newvalue"', | ||
| }, | ||
| deleteEnvVar: { | ||
| title: "Delete environment variable", | ||
| summary: "Remove an env var from a project", | ||
| description: "Calls `DELETE /v9/projects/{projectId}/env/{envId}`.", | ||
| group: "env", | ||
| action: "delete", | ||
| icon: "trash-2", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "env", "delete"], | ||
| parameters: [ | ||
| credentialParam, | ||
| projectIdParam, | ||
| { | ||
| name: "envId", | ||
| title: "Env var ID", | ||
| description: "Environment variable ID.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "env_abc123", | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "`{deleted: true, projectId, envId}`.", | ||
| errors: commonErrors, | ||
| example: 'vercel.deleteEnvVar "my_vercel" "my-project" "env_abc"', | ||
| }, | ||
| getUser: { | ||
| title: "Get authenticated user", | ||
| summary: "Fetch the user tied to the token", | ||
| description: "Calls `GET /v2/user` and unwraps the `user` field.", | ||
| group: "account", | ||
| action: "read", | ||
| icon: "user", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "user"], | ||
| parameters: [credentialParam], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.getUser "my_vercel"', | ||
| }, | ||
| listTeams: { | ||
| title: "List teams", | ||
| summary: "List teams the user belongs to", | ||
| description: "Calls `GET /v2/teams`.", | ||
| group: "account", | ||
| action: "query", | ||
| icon: "users", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "teams"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n limit, since, until", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 3, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.listTeams "my_vercel"', | ||
| }, | ||
| getTeam: { | ||
| title: "Get team", | ||
| summary: "Fetch a team by ID", | ||
| description: "Calls `GET /v2/teams/{teamId}`.", | ||
| group: "account", | ||
| action: "read", | ||
| icon: "users", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "team"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "teamId", | ||
| title: "Team ID", | ||
| description: "Vercel team ID (`team_…`).", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "team_abc123", | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'vercel.getTeam "my_vercel" "team_abc"', | ||
| }, | ||
| getDeploymentLogs: { | ||
| title: "Get deployment logs", | ||
| summary: "Stream build log events for a deployment", | ||
| description: "Calls `GET /v2/deployments/{deploymentId}/events`.", | ||
| group: "deployments", | ||
| action: "read", | ||
| icon: "file-text", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["vercel", "deployment", "logs"], | ||
| parameters: [credentialParam, deploymentIdParam], | ||
| returnType: "array", | ||
| returnDescription: "Array of log event objects.", | ||
| errors: commonErrors, | ||
| example: 'vercel.getDeploymentLogs "my_vercel" "dpl_abc"', | ||
| }, | ||
| }; | ||
| // ── Exports: module metadata ─────────────────────────────────────────── | ||
| export const VercelModuleMetadata = { | ||
| slug: "vercel", | ||
| title: "Vercel", | ||
| summary: "Projects, deployments, domains, environment variables, teams, and build logs via the Vercel REST API", | ||
| description: "Drive Vercel from RobinPath scripts. Every method takes a saved `vercel` credential slug as its first argument; the token is decrypted at call time, scrubbed from logs, and recorded in the audit trail.\n\nIf the credential has a `team_id`, it is forwarded as `?teamId=` on every request so all operations happen under that team.\n\nErrors are returned as `{error, code, status, vercel_error?}` rather than thrown.", | ||
| category: "devops", | ||
| icon: "icon.svg", | ||
| color: "#000000", | ||
| version: "0.2.0", | ||
| docsUrl: "https://docs.robinpath.com/modules/vercel", | ||
| status: "stable", | ||
| requires: [], | ||
| minNodeVersion: "18.0.0", | ||
| credentialsType: CREDENTIAL_TYPE, | ||
| operationGroups: { | ||
| projects: { | ||
| title: "Projects", | ||
| description: "Create, read, update, and delete Vercel projects.", | ||
| order: 1, | ||
| }, | ||
| deployments: { | ||
| title: "Deployments", | ||
| description: "Create, cancel, redeploy, and inspect deployments.", | ||
| order: 2, | ||
| }, | ||
| domains: { | ||
| title: "Domains", | ||
| description: "Account- and project-level domain management.", | ||
| order: 3, | ||
| }, | ||
| env: { | ||
| title: "Environment Variables", | ||
| description: "Manage project env vars across targets.", | ||
| order: 4, | ||
| }, | ||
| account: { | ||
| title: "Account", | ||
| description: "User and team metadata.", | ||
| order: 5, | ||
| }, | ||
| }, | ||
| methods: Object.keys(VercelFunctions), | ||
| }; | ||
| //# sourceMappingURL=vercel.js.map |
| {"version":3,"file":"vercel.js","sourceRoot":"","sources":["../src/vercel.ts"],"names":[],"mappings":"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"} |
+9
-4
| { | ||
| "name": "@robinpath/vercel", | ||
| "version": "0.1.1", | ||
| "version": "0.3.0", | ||
| "publishConfig": { | ||
@@ -23,6 +23,6 @@ "access": "public" | ||
| "peerDependencies": { | ||
| "@robinpath/core": ">=0.20.0" | ||
| "@robinpath/core": ">=0.40.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@robinpath/core": "^0.30.1", | ||
| "@robinpath/core": "^0.40.0", | ||
| "typescript": "^5.6.0" | ||
@@ -41,4 +41,9 @@ }, | ||
| "functionCount": 30, | ||
| "baseUrl": "https://api.vercel.com" | ||
| "baseUrl": "https://api.vercel.com", | ||
| "language": "nodejs", | ||
| "platforms": [ | ||
| "cloud", | ||
| "cli" | ||
| ] | ||
| } | ||
| } |
+1
-1
@@ -22,3 +22,3 @@ # @robinpath/vercel | ||
| ```bash | ||
| npm install @robinpath/vercel | ||
| robinpath add @robinpath/vercel | ||
| ``` | ||
@@ -25,0 +25,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Empty package
Supply chain riskPackage does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
101761
1811.72%10
400%1476
Infinity%2
100%