UNPKG

@nats-io/jwt

Version:
50 lines (49 loc) 2.4 kB
import type { Account, Activation, AuthorizationResponse, ClaimsData, Generic, Operator, SigningKey, User, UserPermissionsLimits, ValidDates } from "./types"; import type { Key } from "./keys"; import type { KeyPair } from "./nkeys"; /** * Enum capturing the JWT algorithm */ export declare enum Algorithms { v1 = "ed25519", v2 = "ed25519-nkey" } export interface UserEncodingOptions extends EncodingOptions { scopedUser?: boolean; } export interface EncodingOptions extends ValidDates { aud?: string; algorithm: Algorithms; signer?: Key; } /** * Generates an operator JWT * @param name - the operator name * @param okp - a key representing the operator * @param operator - operator options * @param opts - encoding options */ export declare function encodeOperator(name: string, okp: Key, operator?: Partial<Operator>, opts?: Partial<EncodingOptions>): Promise<string>; /** * Generates an account JWT with the specified name having the identity of the * providedd Key. * @param name * @param akp * @param account * @param opts */ export declare function encodeAccount(name: string, akp: Key, account?: Partial<Account>, opts?: Partial<EncodingOptions>): Promise<string>; export declare function encodeUser(name: string, ukp: Key, issuer: Key, user?: Partial<User>, opts?: Partial<UserEncodingOptions>): Promise<string>; export declare function encodeActivation(name: string, subject: Key, issuer: Key, kind: "service" | "stream", data?: Partial<Activation>, opts?: Partial<EncodingOptions>): Promise<string>; export declare function encodeGeneric(name: string, akp: Key, kind: string, data?: Partial<Generic>, opts?: Partial<EncodingOptions>): Promise<string>; export declare function encodeAuthorizationResponse(user: Key, server: Key, issuer: Key, data: Partial<AuthorizationResponse>, opts: Partial<EncodingOptions>): Promise<string>; export declare function decode<T = unknown>(jwt: string): ClaimsData<T>; export declare function encode(version: Algorithms, claim: ClaimsData<unknown>, kp: KeyPair): Promise<string>; export declare function newScopedSigner(signer: Key, role: string, limits: Partial<UserPermissionsLimits>): SigningKey; export declare function fmtCreds(token: string, kp: KeyPair): Uint8Array; export declare function parseCreds(creds: Uint8Array): Promise<{ key: string; jwt: string; uc: ClaimsData<User>; aid: string; }>;