eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.36 kB
JavaScript
import{decodeVercelOidcTokenClaims}from"#shared/vercel-project.js";import{withPackageUserAgent}from"#internal/user-agent.js";import{getVercelOidcToken}from"#compiled/@vercel/oidc/index.js";function getVercelSandboxFetch(e){let t=e.fetch;return withPackageUserAgent(t)}async function getVercelSandboxCredentials(e){let t=readNonEmptyString(e,`teamId`)??readNonEmptyEnvironmentVariable(`VERCEL_TEAM_ID`)??readNonEmptyEnvironmentVariable(`VERCEL_ORG_ID`),n=readNonEmptyString(e,`projectId`)??readNonEmptyEnvironmentVariable(`VERCEL_PROJECT_ID`),r=readNonEmptyString(e,`token`)??readNonEmptyEnvironmentVariable(`VERCEL_OIDC_TOKEN`)??readNonEmptyEnvironmentVariable(`VERCEL_TOKEN`);return r&&t&&n?{projectId:n,teamId:t,token:r}:getVercelSandboxCredentialsFromOidcToken(await getVercelOidcToken({project:n,team:t}))}function readNonEmptyString(e,t){let n=e[t];return typeof n==`string`&&n.trim().length>0?n.trim():void 0}function readNonEmptyEnvironmentVariable(e){let t=process.env[e];return typeof t==`string`&&t.trim().length>0?t.trim():void 0}function getVercelSandboxCredentialsFromOidcToken(e){let t=decodeVercelOidcTokenClaims(e);if(t.ownerId===void 0||t.projectId===void 0)throw Error(`Invalid Vercel OIDC token: missing owner_id or project_id.`);return{projectId:t.projectId,teamId:t.ownerId,token:e}}export{getVercelSandboxCredentials,getVercelSandboxFetch};