@k-msg/provider
Version:
Complete provider system with adapters and implementations for K-Message platform
71 lines (70 loc) • 3.08 kB
TypeScript
import { type KakaoChannel, type KakaoChannelCategories, type KakaoChannelProvider, KMsgError, KMsgErrorCode, type MessageType, type Provider, type ProviderRequestContext, type Result, type SendOptions, type SendResult, type Template, type TemplateContext, type TemplateCreateInput, type TemplateInspectionProvider, type TemplateProvider, type TemplateUpdateInput } from "@k-msg/core";
type MockSendScenarioStep = {
outcome: "success" | "failure" | "timeout" | "delay";
code?: KMsgErrorCode | string;
message?: string;
providerErrorCode?: string;
providerErrorText?: string;
httpStatus?: number;
retryAfterMs?: number;
causeChain?: unknown[];
durationMs?: number;
};
export declare class MockProvider implements Provider, TemplateProvider, TemplateInspectionProvider, KakaoChannelProvider {
readonly id = "mock";
readonly name = "Mock Provider";
readonly supportedTypes: readonly MessageType[];
readonly transportCapabilities: {
readonly abortSignal: "supported";
readonly injectableFetch: "unsupported";
};
calls: SendOptions[];
private failureCount;
private scenario;
private scenarioCursor;
private templates;
private templateSeq;
private channelSeq;
private kakaoChannels;
getOnboardingSpec(): import("@k-msg/core").ProviderOnboardingSpec;
constructor();
healthCheck(): Promise<{
healthy: boolean;
issues: never[];
}>;
send(params: SendOptions, context?: ProviderRequestContext): Promise<Result<SendResult, KMsgError>>;
mockSuccess(): void;
mockFailure(count: number): void;
mockScenario(steps: MockSendScenarioStep[]): void;
clearScenario(): void;
private waitForDelay;
private nextScenarioOutcome;
getHistory(): SendOptions[];
clearHistory(): void;
createTemplate(input: TemplateCreateInput, _ctx?: TemplateContext): Promise<Result<Template, KMsgError>>;
updateTemplate(code: string, patch: TemplateUpdateInput, _ctx?: TemplateContext): Promise<Result<Template, KMsgError>>;
deleteTemplate(code: string, _ctx?: TemplateContext): Promise<Result<void, KMsgError>>;
getTemplate(code: string, _ctx?: TemplateContext): Promise<Result<Template, KMsgError>>;
listTemplates(params?: {
status?: string;
page?: number;
limit?: number;
}, _ctx?: TemplateContext): Promise<Result<Template[], KMsgError>>;
requestTemplateInspection(code: string, _ctx?: TemplateContext): Promise<Result<void, KMsgError>>;
listKakaoChannels(params?: {
plusId?: string;
senderKey?: string;
}): Promise<Result<KakaoChannel[], KMsgError>>;
listKakaoChannelCategories(): Promise<Result<KakaoChannelCategories, KMsgError>>;
requestKakaoChannelAuth(params: {
plusId: string;
phoneNumber: string;
}): Promise<Result<void, KMsgError>>;
addKakaoChannel(params: {
plusId: string;
authNum: string;
phoneNumber: string;
categoryCode: string;
}): Promise<Result<KakaoChannel, KMsgError>>;
}
export {};