UNPKG

@hookflo/tern

Version:

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

79 lines (78 loc) 2.62 kB
import { WebhookPlatform, SignatureConfig } from './types'; /** * Utility functions for the scalable webhook verification framework */ /** * Get the recommended algorithm for a platform */ export declare function getRecommendedAlgorithm(platform: WebhookPlatform): string; /** * Check if a platform supports a specific algorithm */ export declare function platformSupportsAlgorithm(platform: WebhookPlatform, algorithm: string): boolean; /** * Get all platforms that support a specific algorithm */ export declare function getPlatformsByAlgorithm(algorithm: string): WebhookPlatform[]; /** * Create a signature config for a platform */ export declare function createSignatureConfigForPlatform(platform: WebhookPlatform): SignatureConfig; /** * Validate a signature config */ export declare function isValidSignatureConfig(config: SignatureConfig): boolean; /** * Get platform description */ export declare function getPlatformDescription(platform: WebhookPlatform): string; /** * Check if a platform uses custom algorithm */ export declare function isCustomAlgorithm(platform: WebhookPlatform): boolean; /** * Get algorithm statistics */ export declare function getAlgorithmStats(): Record<string, number>; /** * Get most common algorithm */ export declare function getMostCommonAlgorithm(): string; /** * Check if a request matches a platform's signature pattern */ export declare function detectPlatformFromHeaders(headers: Headers): WebhookPlatform | null; /** * Get platform configuration summary */ export declare function getPlatformSummary(): Array<{ platform: WebhookPlatform; algorithm: string; description: string; isCustom: boolean; }>; /** * Compare two signature configs */ export declare function compareSignatureConfigs(config1: SignatureConfig, config2: SignatureConfig): boolean; /** * Clone a signature config */ export declare function cloneSignatureConfig(config: SignatureConfig): SignatureConfig; /** * Merge signature configs (config2 overrides config1) */ export declare function mergeSignatureConfigs(config1: SignatureConfig, config2: Partial<SignatureConfig>): SignatureConfig; /** * Validate platform configuration */ export declare function validatePlatformConfig(platform: WebhookPlatform): boolean; /** * Get all valid platforms */ export declare function getValidPlatforms(): WebhookPlatform[]; /** * Get platforms by algorithm type */ export declare function getPlatformsByAlgorithmType(): Record<string, WebhookPlatform[]>; export declare function cleanHeaders(headers: Record<string, string | undefined>): Record<string, string>;