@csp-kit/data
Version:
Service definitions and CSP mappings database for csp-kit
2,187 lines • 50.1 kB
text/typescript
/**
* Categories for different types of services
*/
declare enum ServiceCategory {
ANALYTICS = "analytics",
ADVERTISING = "advertising",
SOCIAL = "social",
PAYMENT = "payment",
FORMS = "forms",
CHAT = "chat",
CDN = "cdn",
FONTS = "fonts",
MAPS = "maps",
VIDEO = "video",
TESTING = "testing",
MONITORING = "monitoring",
OTHER = "other"
}
/**
* CSP directive types
*/
interface CSPDirectives {
'script-src'?: string[];
'img-src'?: string[];
'connect-src'?: string[];
'frame-src'?: string[];
'frame-ancestors'?: string[];
'font-src'?: string[];
'style-src'?: string[];
'form-action'?: string[];
'object-src'?: string[];
'media-src'?: string[];
'child-src'?: string[];
'worker-src'?: string[];
'manifest-src'?: string[];
'base-uri'?: string[];
'report-uri'?: string[];
'report-to'?: string[];
}
/**
* Service monitoring configuration
*/
interface ServiceMonitoring {
/** URLs to test for CSP violations */
testUrls?: string[];
/** How often to check for changes */
checkInterval: 'daily' | 'weekly' | 'monthly';
/** Whether to create alerts for breaking changes */
alertOnBreaking: boolean;
/** Last time this service was checked */
lastChecked?: string;
/** Additional monitoring notes */
notes?: string[];
}
/**
* Service definition interface (simplified - no versioning support)
*/
interface ServiceDefinition {
/** Unique identifier for the service */
id: string;
/** Display name of the service */
name: string;
/** Service category */
category: ServiceCategory;
/** Short description of what the service does */
description: string;
/** Official website URL */
website: string;
/** Official CSP documentation URLs */
officialDocs: string[];
/** CSP directives required for this service */
cspDirectives: CSPDirectives;
/** Whether this service requires dynamic CSP (script injection) */
requiresDynamic?: boolean;
/** Nonce requirements */
requiresNonce?: boolean;
/** Implementation notes */
notes?: string;
/** Alternative service IDs (aliases) */
aliases?: string[];
/** Last updated timestamp (ISO string) */
lastUpdated: string;
/** When this service definition was last verified against official docs */
verifiedAt?: string;
/** Monitoring configuration */
monitoring?: ServiceMonitoring;
}
/**
* Service registry interface
*/
interface ServiceRegistry {
services: Record<string, ServiceDefinition>;
categories: Record<ServiceCategory, string[]>;
lastUpdated: string;
/** Data package version (date-based: YYYY.MM.DD) */
version: string;
/** Schema version for backward compatibility */
schemaVersion: string;
}
/**
* Service types for the new TypeScript-based architecture
*/
/**
* Base service definition that can be used directly or configured
*/
interface CSPService {
/** Unique identifier for the service */
readonly id: string;
/** Display name of the service */
readonly name: string;
/** Service category */
readonly category: ServiceCategory | string;
/** Short description of what the service does */
readonly description: string;
/** Official website URL */
readonly website: string;
/** Official CSP documentation URLs */
readonly officialDocs: readonly string[];
/** CSP directives required for this service */
readonly directives: CSPDirectives;
/** Whether this service requires dynamic CSP (script injection) */
readonly requiresDynamic?: boolean;
/** Nonce requirements */
readonly requiresNonce?: boolean;
/** Implementation notes */
readonly notes?: string;
/** Alternative service IDs (aliases) */
readonly aliases?: readonly string[];
/** Last updated timestamp (ISO string) */
readonly lastUpdated: string;
/** When this service definition was last verified against official docs */
readonly verifiedAt?: string;
/** Monitoring configuration */
readonly monitoring?: ServiceMonitoring;
/** Optional: Dynamic configuration */
configure?: (options: any) => Partial<CSPService>;
/** Optional: Validation logic */
validate?: (directives: CSPDirectives) => ValidationResult;
/** Optional: Dependencies on other services */
dependencies?: readonly string[];
/** Optional: Services that conflict with this one */
conflicts?: readonly string[];
/** Optional: Deprecation info */
deprecated?: {
readonly since: string;
readonly alternative: string;
readonly message: string;
};
}
/**
* Result of service validation
*/
interface ValidationResult {
valid?: boolean;
errors?: string[];
warnings?: string[];
}
/**
* Simplified service definition for public API - pure minimal, just directives
*/
interface SimpleCSPService {
/** CSP directives required for this service */
readonly directives: CSPDirectives;
}
/**
* Type for the internal defineService function that ensures proper typing
*/
type DefineServiceInternalFn = <T extends CSPService>(service: T) => T;
/**
* Type for the public defineService function
*/
type DefineServiceFn = (service: SimpleCSPService) => CSPService;
/**
* Create a simplified service definition for public use
*/
declare const defineService: DefineServiceFn;
/**
* Create a properly typed service definition (internal use)
*/
declare const defineServiceInternal: DefineServiceInternalFn;
/**
* Type guard to check if a value is a CSPService
*/
declare function isCSPService(value: unknown): value is CSPService;
/**
* Type for configurable services
*/
interface ConfigurableService<TOptions = any> extends CSPService {
configure: (options: TOptions) => Partial<CSPService>;
}
declare const FacebookAds: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const GoogleAds: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
requiresDynamic: true;
requiresNonce: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const LinkedinAds: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const MicrosoftAds: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const TwitterAds: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const AdobeAnalytics: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
requiresNonce: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Amplitude: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const CloudflareAnalytics: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const FathomAnalytics: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const GoogleAnalytics: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'img-src': string[];
'connect-src': string[];
'frame-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const GoogleTagManager: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'img-src': string[];
'connect-src': string[];
};
requiresDynamic: true;
requiresNonce: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Hotjar: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
'font-src': string[];
'style-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const MicrosoftClarity: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
'style-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Mixpanel: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const PlausibleAnalytics: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Segment: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Auth0: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const FirebaseAuth: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Okta: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Onelogin: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const PingIdentity: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const AwsCloudfront: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
'style-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const AzureCdn: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
'style-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Cdnjs: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'font-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Fastly: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
'style-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Jsdelivr: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'font-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Keycdn: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
'style-src': string[];
'font-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Maxcdn: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
'style-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Unpkg: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'font-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const CrispChat: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Drift: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Freshchat: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Intercom: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
'style-src': string[];
'font-src': string[];
'media-src': string[];
};
requiresDynamic: true;
requiresNonce: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const TawkTo: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'frame-src': string[];
'font-src': string[];
'img-src': string[];
'connect-src': string[];
'form-action': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Zendesk: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
'font-src': string[];
'style-src': string[];
};
requiresDynamic: true;
requiresNonce: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Drupal: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Sanity: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Squarespace: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Strapi: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Webflow: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Wix: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Gitbook: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Udemy: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const GoogleFonts: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'style-src': string[];
'font-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Calendly: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'style-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Hubspot: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-src': string[];
'img-src': string[];
'style-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Mailchimp: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'style-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Typeform: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'frame-src': string[];
'form-action': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const GoogleMaps: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'img-src': string[];
'frame-src': string[];
'connect-src': string[];
'font-src': string[];
'style-src': string[];
'worker-src': string[];
};
requiresDynamic: true;
requiresNonce: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Mapbox: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const OpenstreetmapLeaflet: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'connect-src': string[];
'img-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const CampaignMonitor: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const ConstantContact: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Convertkit: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'form-action': string[];
'frame-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Mailgun: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Sendgrid: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Unbounce: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Datadog: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const NewRelic: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
requiresDynamic: true;
requiresNonce: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Sentry: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Algolia: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'style-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Constructor: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Contentful: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'connect-src': string[];
'img-src': string[];
'frame-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const CrazyEgg: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'connect-src': string[];
'img-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Divi: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'worker-src': string[];
'connect-src': string[];
'img-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Elasticsearch: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'worker-src': string[];
'style-src': string[];
'connect-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Elementor: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-ancestors': string[];
'connect-src': string[];
'img-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const GoogleOptimize: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Klevu: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
'style-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Optimizely: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'connect-src': string[];
'img-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Swiftype: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Teachable: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Thinkific: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Vwo: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'connect-src': string[];
'img-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Wordpress: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const ApplePay: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const GooglePay: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'img-src': string[];
};
requiresNonce: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Paypal: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
'style-src': string[];
};
requiresDynamic: true;
requiresNonce: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Shopify: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-ancestors': string[];
'img-src': string[];
};
requiresDynamic: true;
requiresNonce: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Square: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Stripe: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Woocommerce: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'style-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Notion: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Discord: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Facebook: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Instagram: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Linkedin: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Pinterest: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'img-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Slack: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Snapchat: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'form-action': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Tiktok: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Twitter: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
'style-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Whatsapp: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Browserstack: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
'frame-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Cypress: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const GhostInspector: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Percy: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const SauceLabs: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Bigbluebutton: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const GoogleMeet: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const JitsiMeet: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'style-src': string[];
'frame-src': string[];
'connect-src': string[];
'img-src': string[];
'media-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const MicrosoftTeams: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'frame-ancestors': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Twitch: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'img-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Vimeo: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'frame-src': string[];
'script-src': string[];
'img-src': string[];
'media-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Youtube: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'img-src': string[];
'connect-src': string[];
};
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare const Zoom: {
id: string;
name: string;
category: ServiceCategory;
description: string;
website: string;
officialDocs: string[];
directives: {
'script-src': string[];
'frame-src': string[];
'connect-src': string[];
'worker-src': string[];
'font-src': string[];
};
requiresDynamic: true;
notes: string;
aliases: string[];
lastUpdated: string;
verifiedAt: string;
};
declare function loadServices(): Promise<void>;
declare function getServiceRegistry(): Promise<ServiceRegistry>;
export { AdobeAnalytics, Algolia, Amplitude, ApplePay, Auth0, AwsCloudfront, AzureCdn, Bigbluebutton, Browserstack, type CSPDirectives, type CSPService, Calendly, CampaignMonitor, Cdnjs, CloudflareAnalytics, type ConfigurableService, ConstantContact, Constructor, Contentful, Convertkit, CrazyEgg, CrispChat, Cypress, Datadog, type DefineServiceFn, type DefineServiceInternalFn, Discord, Divi, Drift, Drupal, Elasticsearch, Elementor, Facebook, FacebookAds, Fastly, FathomAnalytics, FirebaseAuth, Freshchat, GhostInspector, Gitbook, GoogleAds, GoogleAnalytics, GoogleFonts, GoogleMaps, GoogleMeet, GoogleOptimize, GooglePay, GoogleTagManager, Hotjar, Hubspot, Instagram, Intercom, JitsiMeet, Jsdelivr, Keycdn, Klevu, Linkedin, LinkedinAds, Mailchimp, Mailgun, Mapbox, Maxcdn, MicrosoftAds, MicrosoftClarity, MicrosoftTeams, Mixpanel, NewRelic, Notion, Okta, Onelogin, OpenstreetmapLeaflet, Optimizely, Paypal, Percy, PingIdentity, Pinterest, PlausibleAnalytics, Sanity, SauceLabs, Segment, Sendgrid, Sentry, ServiceCategory, type ServiceDefinition, type ServiceMonitoring, type ServiceRegistry, Shopify, type SimpleCSPService, Slack, Snapchat, Square, Squarespace, Strapi, Stripe, Swiftype, TawkTo, Teachable, Thinkific, Tiktok, Twitch, Twitter, TwitterAds, Typeform, Udemy, Unbounce, Unpkg, type ValidationResult, Vimeo, Vwo, Webflow, Whatsapp, Wix, Woocommerce, Wordpress, Youtube, Zendesk, Zoom, defineService, defineServiceInternal, getServiceRegistry, isCSPService, loadServices };