@pangz/ng-cloudflare-turnstile
Version:
An intuitive, lightweight and easy to integrate cloudflare-turnstile component for Angular.
1 lines • 29.5 kB
Source Map (JSON)
{"version":3,"file":"pangz-ng-cloudflare-turnstile.mjs","sources":["../../../projects/ng-cloudflare-turnstile/src/lib/ng-cloudflare-turnstile.component.ts","../../../projects/ng-cloudflare-turnstile/src/public-api.ts","../../../projects/ng-cloudflare-turnstile/src/pangz-ng-cloudflare-turnstile.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, type AfterViewInit, type OnInit } from '@angular/core';\n\ndeclare global {\n interface Window {\n onloadTurnstileCallback: () => void;\n turnstile: {\n render: (\n idOrContainer: string | HTMLElement,\n options: any,\n ) => string;\n reset: (widgetIdOrContainer: string | HTMLElement) => void;\n getResponse: (\n widgetIdOrContainer: string | HTMLElement,\n ) => string | undefined;\n remove: (widgetIdOrContainer: string | HTMLElement) => void;\n };\n }\n}\n\nexport enum DevSiteKey {\n ALWAYS_PASSES = '1x00000000000000000000AA',\n ALWAYS_BLOCKS = '2x00000000000000000000AB',\n ALWAYS_PASSES_INVISIBLE = '1x00000000000000000000BB',\n ALWAYS_BLOCKS_INVISIBLE = '2x00000000000000000000BB',\n FORCE_INTERACTIVE_CHALLENGE = '3x00000000000000000000FF',\n}\n\nexport enum Language {\n AUTO = 'auto',\n ARABIC = 'ar-eg',\n BULGARIAN = 'bg-bg',\n CHINESE_SIMPLIFIED = 'zh-cn',\n CHINESE_TRADITIONAL = 'zh-tw',\n CROATIAN = 'hr-hr',\n CZECH = 'cs-cz',\n DANISH = 'da-dk',\n DUTCH = 'nl-nl',\n ENGLISH = 'en-us',\n FARSI = 'fa-ir',\n FINNISH = 'fi-fi',\n FRENCH = 'fr-fr',\n GERMAN = 'de-de',\n GREEK = 'el-gr',\n HEBREW = 'he-il',\n HINDI = 'hi-in',\n HUNGARIAN = 'hu-hu',\n INDONESIAN = 'id-id',\n ITALIAN = 'it-it',\n JAPANESE = 'ja-jp',\n KLINGON = 'tlh',\n KOREAN = 'ko-kr',\n LITHUANIAN = 'lt-lt',\n MALAY = 'ms-my',\n NORWEGIAN = 'nb-no',\n POLISH = 'pl-pl',\n PORTUGUESE = 'pt-br',\n ROMANIAN = 'ro-ro',\n RUSSIAN = 'ru-ru',\n SERBIAN = 'sr-ba',\n SLOVAK = 'sk-sk',\n SLOVENIAN = 'sl-si',\n SPANISH = 'es-es',\n SWEDISH = 'sv-se',\n TAGALOG = 'tl-ph',\n THAI = 'th-th',\n TURKISH = 'tr-tr',\n UKRAINIAN = 'uk-ua',\n VIETNAMESE = 'vi-vn'\n}\n\nexport enum Theme {\n LIGHT = 'light',\n DARK = 'dark',\n AUTO = 'auto',\n}\n\nexport enum Size {\n NORMAL = 'normal',\n FLEXIBLE = 'flexible',\n COMPACT = 'compact',\n}\n\nexport enum Appearance {\n ALWAYS = 'always',\n EXECUTE = 'execute',\n INTERACTION_ONLY = 'interaction-only',\n}\n\nexport enum Retry {\n AUTO = 'auto',\n NEVER = 'never',\n}\n\nexport enum RefreshExpiry {\n AUTO = 'auto',\n MANUAL = 'manual',\n NEVER = 'never',\n}\n\nexport enum RefreshTimeout {\n AUTO = 'auto',\n MANUAL = 'manual',\n NEVER = 'never',\n}\n\nexport enum State {\n SUCCESS = 0,\n WIDGET_CREATED = 1,\n WIDGET_REMOVED = 2,\n WIDGET_RESET = 3,\n AFTER_INTERACTIVE = 4,\n BEFORE_INTERACTIVE = 5,\n ERROR = -1,\n EXPIRED = -2,\n TIMEOUT = -3,\n}\n\nexport type Result = {\n name: string,\n data?: any\n result: number,\n manager: TurnstileManager\n}\n\nexport type EventCallback = (d: Result) => void;\nexport type Config = {\n siteKey: string;\n action?: string;\n cData?: string;\n tabIndex?: number;\n language?: Language;\n theme?: Theme;\n responseField?: boolean;\n size?: Size;\n appearance?: Appearance;\n retry?: Retry;\n retryInterval?: number;\n refreshExpired?: RefreshExpiry;\n refreshTimeout?: RefreshTimeout;\n feedbackEnabled?: boolean;\n onSuccess?: EventCallback,\n onError?: EventCallback,\n onExpired?: EventCallback,\n onBeforeInteractive?: EventCallback,\n onAfterInteractive?: EventCallback,\n onTimeout?: EventCallback,\n onCreate?: EventCallback,\n onReset?: EventCallback,\n onRemove?: EventCallback,\n}\n\nexport class TurnstileManager {\n constructor(\n private obj: any,\n private event: EventEmitter<Result>,\n private widgetId: string = '',\n private containerRef: string | HTMLElement = '',\n private options: any = ''\n ) {}\n\n reRender(options: Config): void {\n this.remove(null);\n this.updateOptions(options);\n this.widgetId = this.obj.render(this.containerRef, this.options);\n \n const payload = { name: 'WIDGET_CREATED', data: this.widgetId, result: State.WIDGET_CREATED, manager: this}\n this.options.onCreate(payload);\n this.event.emit(payload);\n }\n\n reset(id: string | HTMLElement | null): void {\n this.obj.reset(id ?? this.widgetId);\n\n const payload = { name: 'WIDGET_RESET', data: id, result: State.WIDGET_RESET, manager: this};\n this.options.onReset(payload);\n this.event.emit(payload);\n }\n \n remove(id: string | HTMLElement | null): void {\n this.obj.remove(id ?? this.widgetId);\n\n const payload = { name: 'WIDGET_REMOVED', data: id, result: State.WIDGET_REMOVED, manager: this};\n this.options.onRemove(payload);\n this.event.emit(payload);\n }\n\n private updateOptions(options: Config): void {\n if(this.options.sitekey !== options.siteKey) { this.options.sitekey = options.siteKey; }\n if(this.options.action !== options.action) { this.options.action = options.action; }\n if(this.options.cData !== options.cData) { this.options.cData = options.cData; }\n if(this.options.tabindex !== options.tabIndex) { this.options.tabindex = options.tabIndex; }\n if(this.options.language !== options.language) { this.options.language = options.language; }\n if(this.options.theme !== options.theme) { this.options.theme = options.theme; }\n if(this.options.size !== options.size) { this.options.size = options.size; }\n if(this.options.appearance !== options.appearance) { this.options.appearance = options.appearance; }\n if(this.options.retry !== options.retry) { this.options.retry = options.retry; }\n if(this.options['retry-interval'] !== options.retryInterval) { this.options['retry-interval'] = options.retryInterval; }\n if(this.options['refresh-expired'] !== options.refreshExpired) { this.options['refresh-expired'] = options.refreshExpired; }\n if(this.options['refresh-timeout'] !== options.refreshTimeout) { this.options['refresh-timeout'] = options.refreshTimeout; }\n if(this.options['response-field'] !== options.responseField) { this.options['response-field'] = options.responseField; }\n if(this.options['feedback-enabled'] !== options.feedbackEnabled) { this.options['feedback-enabled'] = options.feedbackEnabled; }\n }\n}\n\nclass EventHandler {\n private static widgetId: string;\n private static tsManager: TurnstileManager;\n private static event: EventEmitter<Result>;\n private static config: Config = {\n siteKey: '',\n action: '',\n cData: '',\n tabIndex: 0,\n language: Language.AUTO,\n theme: Theme.AUTO,\n size: Size.NORMAL,\n appearance: Appearance.ALWAYS,\n retry: Retry.AUTO,\n retryInterval: 8000,\n refreshExpired: RefreshExpiry.AUTO,\n refreshTimeout: RefreshTimeout.AUTO,\n responseField: true,\n feedbackEnabled: true,\n onSuccess: (_: Result): void => {},\n onError: (_: Result): void => {},\n onExpired: (_: Result): void => {},\n onBeforeInteractive: (_: Result): void => {},\n onAfterInteractive: (_: Result): void => {},\n onTimeout: (_: Result): void => {},\n onCreate: (_: Result): void => {},\n onReset: (_: Result): void => {},\n onRemove: (_: Result): void => {},\n };\n\n static init(e: EventEmitter<Result>, config: Config, manager: TurnstileManager, widgetId = ''): void {\n EventHandler.event = e;\n EventHandler.config = config;\n EventHandler.tsManager = manager;\n EventHandler.widgetId = widgetId;\n }\n\n static emit(d: Result): void {\n EventHandler.event.emit(d);\n }\n \n static get e(): EventEmitter<Result> {\n return EventHandler.event;\n }\n\n static setWidgetId(id: string): void {\n EventHandler.widgetId = id;\n }\n \n static getWidgetId(): string {\n return EventHandler.widgetId;\n }\n\n static get conf(): Config {\n return EventHandler.config;\n }\n \n static get manager(): TurnstileManager {\n return EventHandler.tsManager;\n }\n\n static copyWith(p: {\n manager?: TurnstileManager,\n widgetId?: string,\n }): void {\n if(p.manager !== null) { EventHandler.tsManager = p.manager!; }\n if(p.widgetId !== null) { EventHandler.widgetId = p.widgetId!; }\n }\n}\n\n@Component({\n selector: 'ng-cloudflare-turnstile',\n standalone: true,\n imports: [],\n template: `<div id=\"cf-container\"></div>`,\n styles: ``\n})\nexport class NgCloudflareTurnstile implements AfterViewInit, OnInit {\n @Input() config: Config = {\n siteKey: '',\n action: '',\n cData: '',\n tabIndex: 0,\n language: Language.AUTO,\n theme: Theme.AUTO,\n size: Size.NORMAL,\n appearance: Appearance.ALWAYS,\n retry: Retry.AUTO,\n retryInterval: 8000,\n refreshExpired: RefreshExpiry.AUTO,\n refreshTimeout: RefreshTimeout.AUTO,\n responseField: true,\n feedbackEnabled: true,\n onSuccess: (_: Result): void => {},\n onError: (_: Result): void => {},\n onExpired: (_: Result): void => {},\n onBeforeInteractive: (_: Result): void => {},\n onAfterInteractive: (_: Result): void => {},\n onTimeout: (_: Result): void => {},\n onCreate: (_: Result): void => {},\n onReset: (_: Result): void => {},\n onRemove: (_: Result): void => {},\n };\n @Output() event = new EventEmitter<Result>();\n constructor() {\n window.onloadTurnstileCallback = function () {\n const conf = EventHandler.conf;\n const containerRef = \"#cf-container\";\n const renderingConf = {\n sitekey: conf.siteKey,\n action: conf.action,\n cData: conf.cData,\n tabindex: conf.tabIndex,\n language: conf.language,\n theme: conf.theme,\n size: conf.size,\n appearance: conf.appearance,\n retry: conf.retry,\n 'retry-interval': conf.retryInterval,\n 'refresh-expired': conf.refreshExpired,\n 'refresh-timeout': conf.refreshTimeout,\n 'response-field': conf.responseField,\n 'feedback-enabled': conf.feedbackEnabled,\n callback: (token: any) => {\n const payload = { name: 'SUCCESS', data: token, result: State.SUCCESS, manager: EventHandler.manager};\n EventHandler.conf.onSuccess!(payload);\n EventHandler.emit(payload);\n },\n 'error-callback': (code: any) => {\n const payload = { name: 'ERROR', data: code, result: State.ERROR, manager: EventHandler.manager };\n EventHandler.conf.onError!(payload);\n EventHandler.emit(payload);\n },\n 'expired-callback': (d: any) => {\n const payload = { name: 'EXPIRED', data: d, result: State.EXPIRED, manager: EventHandler.manager };\n EventHandler.conf.onExpired!(payload);\n EventHandler.emit(payload);\n },\n 'before-interactive-callback': (d: any) => {\n const payload = { name: 'BEFORE_INTERACTIVE', data: d, result: State.BEFORE_INTERACTIVE, manager: EventHandler.manager };\n EventHandler.conf.onBeforeInteractive!(payload);\n EventHandler.emit(payload);\n },\n 'after-interactive-callback': (d: any) => {\n const payload = { name: 'AFTER_INTERACTIVE', data: d, result: State.AFTER_INTERACTIVE, manager: EventHandler.manager };\n EventHandler.conf.onAfterInteractive!(payload);\n EventHandler.emit(payload);\n },\n 'timeout-callback': (d: any) => {\n const payload = { name: 'TIMEOUT', data: d, result: State.TIMEOUT, manager: EventHandler.manager };\n EventHandler.conf.onTimeout!(payload);\n EventHandler.emit(payload);\n },\n // Add the custom callback\n onSuccess: conf.onSuccess,\n onError: conf.onError,\n onExpired: conf.onExpired,\n onBeforeInteractive: conf.onBeforeInteractive,\n onAfterInteractive: conf.onAfterInteractive,\n onTimeout: conf.onTimeout,\n onCreate: conf.onCreate,\n onReset: conf.onReset,\n onRemove: conf.onRemove,\n };\n const widgetId = window.turnstile.render(containerRef, renderingConf);\n EventHandler.setWidgetId(widgetId);\n EventHandler.copyWith({manager: new TurnstileManager(window.turnstile, EventHandler.e, widgetId, containerRef, renderingConf)});\n\n const payload = { name: 'WIDGET_CREATED', data: widgetId, result: State.WIDGET_CREATED, manager: EventHandler.manager};\n EventHandler.conf.onCreate!(payload);\n EventHandler.emit(payload);\n };\n }\n\n ngOnInit(): void {\n EventHandler.init(this.event, this.config, new TurnstileManager(window.turnstile, this.event));\n if (window.turnstile) {\n window.onloadTurnstileCallback();\n }\n }\n\n ngAfterViewInit(): void { this.loadTurnstileScript(); }\n\n private loadTurnstileScript(): void {\n // Check if script is already loaded to avoid duplicates\n if (!document.querySelector('script[src*=\"turnstile\"]')) {\n const script = document.createElement('script');\n script.src = 'https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit&onload=onloadTurnstileCallback';\n script.async = true;\n script.defer = true;\n document.head.appendChild(script);\n }\n }\n}\n","/*\n * Public API Surface of ng-cloudflare-turnstile\n */\nexport * from './lib/ng-cloudflare-turnstile.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}