@vercel/sdk
Version:
<p align="center"> <a href="https://vercel.com"> <img src="https://assets.vercel.com/image/upload/v1588805858/repositories/vercel/logo.png" height="96"> <h3 align="center">Vercel</h3> </a> <p align="center">Develop. Preview. Ship.</p> </p>
286 lines (263 loc) • 7.08 kB
text/typescript
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod/v3";
import { safeParse } from "../lib/schemas.js";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import * as types from "../types/primitives.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
export const AuthTokenScopesOrigin = {
App: "app",
Apple: "apple",
Bitbucket: "bitbucket",
Chatgpt: "chatgpt",
Email: "email",
Emu: "emu",
Github: "github",
GithubWebhook: "github-webhook",
Gitlab: "gitlab",
Google: "google",
Invite: "invite",
Manual: "manual",
Otp: "otp",
Passkey: "passkey",
Saml: "saml",
Sms: "sms",
TokenExchangeOidc: "token-exchange-oidc",
} as const;
export type AuthTokenScopesOrigin = ClosedEnum<typeof AuthTokenScopesOrigin>;
/**
* The access scopes granted to the token.
*/
export type Scopes2 = {
type: "team";
teamId: string;
origin?: AuthTokenScopesOrigin | undefined;
createdAt: number;
expiresAt?: number | undefined;
};
/**
* Possible step-up auth origins
*/
export const AuthTokenScopes1Origin = {
EmailOtp: "email-otp",
Otp: "otp",
RecoveryCode: "recovery-code",
Totp: "totp",
Webauthn: "webauthn",
} as const;
/**
* Possible step-up auth origins
*/
export type AuthTokenScopes1Origin = ClosedEnum<typeof AuthTokenScopes1Origin>;
export type Sudo = {
/**
* Possible step-up auth origins
*/
origin: AuthTokenScopes1Origin;
verifiedAt?: number | undefined;
expiresAt: number;
};
export const ScopesOrigin = {
App: "app",
Apple: "apple",
Bitbucket: "bitbucket",
Chatgpt: "chatgpt",
Email: "email",
Emu: "emu",
Github: "github",
GithubWebhook: "github-webhook",
Gitlab: "gitlab",
Google: "google",
Invite: "invite",
Manual: "manual",
Otp: "otp",
Passkey: "passkey",
Saml: "saml",
Sms: "sms",
TokenExchangeOidc: "token-exchange-oidc",
} as const;
export type ScopesOrigin = ClosedEnum<typeof ScopesOrigin>;
/**
* The access scopes granted to the token.
*/
export type Scopes1 = {
type: "user";
sudo?: Sudo | undefined;
origin?: ScopesOrigin | undefined;
createdAt: number;
expiresAt?: number | undefined;
};
export type Scopes = Scopes1 | Scopes2;
/**
* Authentication token metadata.
*/
export type AuthToken = {
/**
* The unique identifier of the token.
*/
id: string;
/**
* The human-readable name of the token.
*/
name: string;
/**
* The type of the token.
*/
type: string;
/**
* The token's prefix, for identification purposes.
*/
prefix?: string | undefined;
/**
* The last few characters of the token, for identification purposes.
*/
suffix?: string | undefined;
/**
* The origin of how the token was created.
*/
origin?: string | undefined;
/**
* The access scopes granted to the token.
*/
scopes?: Array<Scopes1 | Scopes2> | undefined;
/**
* Timestamp (in milliseconds) of when the token was created.
*/
createdAt: number;
/**
* Timestamp (in milliseconds) of when the token was most recently used.
*/
activeAt: number;
/**
* Timestamp (in milliseconds) of when the token expires.
*/
expiresAt?: number | undefined;
/**
* Timestamp (in milliseconds) of when the token was revoked.
*/
revokedAt?: number | undefined;
/**
* Timestamp (in milliseconds) of when the token was marked as leaked.
*/
leakedAt?: number | undefined;
/**
* URL where the token was discovered as leaked.
*/
leakedUrl?: string | undefined;
};
/** @internal */
export const AuthTokenScopesOrigin$inboundSchema: z.ZodNativeEnum<
typeof AuthTokenScopesOrigin
> = z.nativeEnum(AuthTokenScopesOrigin);
/** @internal */
export const Scopes2$inboundSchema: z.ZodType<Scopes2, z.ZodTypeDef, unknown> =
z.object({
type: types.literal("team"),
teamId: types.string(),
origin: types.optional(AuthTokenScopesOrigin$inboundSchema),
createdAt: types.number(),
expiresAt: types.optional(types.number()),
});
export function scopes2FromJSON(
jsonString: string,
): SafeParseResult<Scopes2, SDKValidationError> {
return safeParse(
jsonString,
(x) => Scopes2$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'Scopes2' from JSON`,
);
}
/** @internal */
export const AuthTokenScopes1Origin$inboundSchema: z.ZodNativeEnum<
typeof AuthTokenScopes1Origin
> = z.nativeEnum(AuthTokenScopes1Origin);
/** @internal */
export const Sudo$inboundSchema: z.ZodType<Sudo, z.ZodTypeDef, unknown> = z
.object({
origin: AuthTokenScopes1Origin$inboundSchema,
verifiedAt: types.optional(types.number()),
expiresAt: types.number(),
});
export function sudoFromJSON(
jsonString: string,
): SafeParseResult<Sudo, SDKValidationError> {
return safeParse(
jsonString,
(x) => Sudo$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'Sudo' from JSON`,
);
}
/** @internal */
export const ScopesOrigin$inboundSchema: z.ZodNativeEnum<typeof ScopesOrigin> =
z.nativeEnum(ScopesOrigin);
/** @internal */
export const Scopes1$inboundSchema: z.ZodType<Scopes1, z.ZodTypeDef, unknown> =
z.object({
type: types.literal("user"),
sudo: types.optional(z.lazy(() => Sudo$inboundSchema)),
origin: types.optional(ScopesOrigin$inboundSchema),
createdAt: types.number(),
expiresAt: types.optional(types.number()),
});
export function scopes1FromJSON(
jsonString: string,
): SafeParseResult<Scopes1, SDKValidationError> {
return safeParse(
jsonString,
(x) => Scopes1$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'Scopes1' from JSON`,
);
}
/** @internal */
export const Scopes$inboundSchema: z.ZodType<Scopes, z.ZodTypeDef, unknown> = z
.union([
z.lazy(() => Scopes1$inboundSchema),
z.lazy(() => Scopes2$inboundSchema),
]);
export function scopesFromJSON(
jsonString: string,
): SafeParseResult<Scopes, SDKValidationError> {
return safeParse(
jsonString,
(x) => Scopes$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'Scopes' from JSON`,
);
}
/** @internal */
export const AuthToken$inboundSchema: z.ZodType<
AuthToken,
z.ZodTypeDef,
unknown
> = z.object({
id: types.string(),
name: types.string(),
type: types.string(),
prefix: types.optional(types.string()),
suffix: types.optional(types.string()),
origin: types.optional(types.string()),
scopes: types.optional(
z.array(z.union([
z.lazy(() => Scopes1$inboundSchema),
z.lazy(() =>
Scopes2$inboundSchema
),
])),
),
createdAt: types.number(),
activeAt: types.number(),
expiresAt: types.optional(types.number()),
revokedAt: types.optional(types.number()),
leakedAt: types.optional(types.number()),
leakedUrl: types.optional(types.string()),
});
export function authTokenFromJSON(
jsonString: string,
): SafeParseResult<AuthToken, SDKValidationError> {
return safeParse(
jsonString,
(x) => AuthToken$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'AuthToken' from JSON`,
);
}