@k-msg/template
K-Message 템플릿 런타임 생명주기/검증/개인화 로직의 단일 패키지입니다.
npm install @k-msg/template @k-msg/core# orbun add @k-msg/template @k-msg/coreRuntime API (@k-msg/template)
섹션 제목: “Runtime API (@k-msg/template)”기본 export는 런타임 중심 API만 제공합니다.
TemplateLifecycleServiceTemplatePersonalizer,defaultTemplatePersonalizer,TemplateVariableUtilsinterpolatevalidateTemplatePayload,parseTemplateButtons- 저수준 parser (
ButtonParser,VariableParser,TemplateValidator)
Lifecycle Service
섹션 제목: “Lifecycle Service”import { TemplateLifecycleService } from "@k-msg/template";import type { TemplateProvider } from "@k-msg/core";
const provider: TemplateProvider = /* provider 구현 */;const templates = new TemplateLifecycleService(provider);
await templates.create({ name: "OTP Verification", content: "[MyApp] Code: #{code}",});런타임 검증
섹션 제목: “런타임 검증”import { parseTemplateButtons, validateTemplatePayload } from "@k-msg/template";
const buttons = parseTemplateButtons('[{"type":"WL","name":"열기","url_mobile":"https://example.com"}]');if (buttons.isFailure) throw buttons.error;
const payload = validateTemplatePayload( { name: "알림", content: "안녕하세요 #{name}", buttons: buttons.value, }, { requireName: true, requireContent: true },);
if (payload.isFailure) throw payload.error;개인화
섹션 제목: “개인화”import { TemplateVariableUtils } from "@k-msg/template";
const rendered = TemplateVariableUtils.replace("안녕하세요 #{name}", { name: "홍길동",});// "안녕하세요 홍길동"Toolkit API (@k-msg/template/toolkit)
섹션 제목: “Toolkit API (@k-msg/template/toolkit)”빌더/레지스트리/테스트용 스토어는 서브패스로 분리됩니다.
TemplateBuilder,TemplateBuildersTemplateRegistryInMemoryTemplateStore
import { TemplateBuilders, TemplateRegistry } from "@k-msg/template/toolkit";
const registry = new TemplateRegistry();const template = TemplateBuilders.authentication("OTP", "mock") .code("OTP_001") .content("Code: #{code}") .build();
await registry.register(template);라이선스
섹션 제목: “라이선스”MIT