UNPKG

@hookflo/tern

Version:

A robust, scalable webhook verification framework supporting multiple platforms and signature algorithms

80 lines (79 loc) 1.95 kB
export type TemplateCategory = 'payment' | 'auth' | 'ecommerce'; export interface TemplateField { id: string; name: string; type: 'string' | 'number' | 'boolean' | 'object' | 'array'; required: boolean; description?: string; defaultValue?: unknown; } export interface BaseTemplate { id: string; category: TemplateCategory; version: string; fields: TemplateField[]; } export interface UserSchemaField { id: string; name: string; type: TemplateField['type']; required: boolean; enabled: boolean; defaultValue?: unknown; } export interface FieldMapping { schemaFieldId: string; providerPath: string; transform?: string; } export interface ProviderMapping { provider: string; fieldMappings: FieldMapping[]; } export interface UserSchema { id: string; userId: string; baseTemplateId: string; category: TemplateCategory; fields: UserSchemaField[]; providerMappings: ProviderMapping[]; createdAt: Date; updatedAt: Date; } export interface NormalizedPayloadMeta { provider: string; schemaId: string; schemaVersion: string; transformedAt: Date; } export interface NormalizedResult { normalized: Record<string, unknown>; meta: NormalizedPayloadMeta; } export interface CreateSchemaInput { userId: string; baseTemplateId: string; category: TemplateCategory; fields: UserSchemaField[]; providerMappings: ProviderMapping[]; } export interface UpdateSchemaInput { fields?: UserSchemaField[]; providerMappings?: ProviderMapping[]; } export interface ProviderInfoField { path: string; type?: TemplateField['type']; description?: string; } export interface ProviderInfo { id: string; name: string; category: TemplateCategory; samplePaths?: ProviderInfoField[]; } export interface TransformParams { rawPayload: unknown; provider: string; schemaId: string; }