@portone/server-sdk
Version:
PortOne JavaScript SDK for server-side usage
72 lines (71 loc) • 2.92 kB
TypeScript
export * from "./generated/webhook/index.js";
import { PortOneError } from "./PortOneError.js";
import type { Webhook } from "./generated/webhook/index.js";
/**
* SDK에 전달한 사용자 입력이 잘못되었을 경우에 발생하는 에러입니다.
*
* 해당 에러는 대부분 사용자의 실수로 발생합니다.
* 에러가 발생하는 경우, 에러가 발생한 함수의 문서를 참고하여
* 문제를 수정해주시기 바랍니다.
*/
export declare class InvalidInputError extends PortOneError {
/** @ignore */
constructor(message: string);
}
/**
* 웹훅 검증이 실패했을 때 발생하는 에러입니다.
*
* `reason` 필드를 통해 상세한 실패 원인을 확인할 수 있습니다.
*/
export declare class WebhookVerificationError extends PortOneError {
/**
* 웹훅 검증이 실패한 상세 사유을 나타냅니다.
*/
readonly reason: WebhookVerificationFailureReason;
/**
* 웹훅 검증 실패 사유로부터 에러 메시지를 생성합니다.
*
* @param reason 에러 메시지를 생성할 실패 사유
* @returns 에러 메시지
*/
static getMessage(reason: WebhookVerificationFailureReason): string;
/** @ignore */
constructor(reason: WebhookVerificationFailureReason, options?: ErrorOptions);
}
/**
* 웹훅 검증 실패 사유입니다.
*
* `WebhookVerificationError.getMessage()`에 전달하여 에러 메시지를 얻을 수 있습니다.
*/
export type WebhookVerificationFailureReason = "MISSING_REQUIRED_HEADERS" | "NO_MATCHING_SIGNATURE" | "INVALID_SIGNATURE" | "TIMESTAMP_TOO_OLD" | "TIMESTAMP_TOO_NEW";
/**
* 웹훅 요청에 필수적으로 포함되는 헤더들입니다.
*/
export interface WebhookUnbrandedRequiredHeaders {
"webhook-id": string;
"webhook-timestamp": string;
"webhook-signature": string;
}
/**
* 웹훅 인스턴스에서 사용할 옵션입니다.
*/
export interface WebhookOptions {
/**
* 웹훅 시크릿의 포맷입니다.
*
* - `"raw"`인 경우, `secret` 파라미터의 값을 그대로 사용합니다.
* - 지정하지 않을 경우, `secret` 파라미터의 값을 base64 문자열로 간주합니다.
*/
format?: "raw";
}
/**
* 웹훅 페이로드를 검증합니다.
*
* @param secret 웹훅 시크릿
* @param payload 웹훅 페이로드
* @param headers 웹훅 요청 시 포함된 헤더
* @returns 검증 후 디코딩된 웹훅 페이로드를 반환하는 Promise
* @throws {@link InvalidInputError} 웹훅 시크릿 혹은 본문이 유효하지 않은 형식일 때 발생합니다.
* @throws {@link WebhookVerificationError} 웹훅 검증에 실패했을 때 발생합니다.
*/
export declare function verify(secret: string | Uint8Array, payload: string, headers: WebhookUnbrandedRequiredHeaders | Record<string, string | string[] | undefined>): Promise<Webhook>;