@ngx-rock/yandex-smart-captcha 20.1.0 → 21.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,7 +26,7 @@ function isValidHost(str) {
26
26
  IPv6RE.test(everythingAfterProtocol));
27
27
  }
28
28
 
29
- const API_LINK = (host = 'smartcaptcha.yandexcloud.net') => {
29
+ const API_LINK = (host = 'smartcaptcha.cloud.yandex.ru') => {
30
30
  const base = /^https?/.test(host) ? host : `https://${host}`;
31
31
  return `${base}/captcha.js?render=onload&onload=__onSmartCaptchaReady`;
32
32
  };
@@ -34,26 +34,26 @@ const API_LINK = (host = 'smartcaptcha.yandexcloud.net') => {
34
34
  const callbacks = [];
35
35
  const startLoading = new Map();
36
36
  class SmartCaptchaComponent {
37
- sitekey = input.required(...(ngDevMode ? [{ debugName: "sitekey" }] : []));
38
- invisible = input(false, ...(ngDevMode ? [{ debugName: "invisible" }] : []));
39
- visible = input(...(ngDevMode ? [undefined, { debugName: "visible" }] : [])); // For InvisibleCaptcha to execute
40
- hideShield = input(...(ngDevMode ? [undefined, { debugName: "hideShield" }] : []));
41
- shieldPosition = input(...(ngDevMode ? [undefined, { debugName: "shieldPosition" }] : []));
42
- language = input(...(ngDevMode ? [undefined, { debugName: "language" }] : []));
43
- host = input(...(ngDevMode ? [undefined, { debugName: "host" }] : []));
37
+ sitekey = input.required({ ...(ngDevMode ? { debugName: "sitekey" } : {}) });
38
+ invisible = input(false, { ...(ngDevMode ? { debugName: "invisible" } : {}) });
39
+ visible = input(undefined, { ...(ngDevMode ? { debugName: "visible" } : {}) }); // For InvisibleCaptcha to execute
40
+ hideShield = input(undefined, { ...(ngDevMode ? { debugName: "hideShield" } : {}) });
41
+ shieldPosition = input(undefined, { ...(ngDevMode ? { debugName: "shieldPosition" } : {}) });
42
+ language = input(undefined, { ...(ngDevMode ? { debugName: "language" } : {}) });
43
+ host = input(undefined, { ...(ngDevMode ? { debugName: "host" } : {}) });
44
44
  /**
45
45
  * @deprecated This setting is deprecated and must only be changed via the Yandex Cloud interface.
46
46
  */
47
- theme = input('auto', ...(ngDevMode ? [{ debugName: "theme" }] : []));
48
- test = input(...(ngDevMode ? [undefined, { debugName: "test" }] : []));
49
- webview = input(...(ngDevMode ? [undefined, { debugName: "webview" }] : []));
47
+ theme = input('auto', { ...(ngDevMode ? { debugName: "theme" } : {}) });
48
+ test = input(undefined, { ...(ngDevMode ? { debugName: "test" } : {}) });
49
+ webview = input(undefined, { ...(ngDevMode ? { debugName: "webview" } : {}) });
50
50
  challengeHidden = output();
51
51
  challengeVisible = output();
52
52
  success = output();
53
53
  networkError = output();
54
54
  tokenExpired = output();
55
55
  javascriptError = output();
56
- captchaContainer = viewChild('captchaContainer', ...(ngDevMode ? [{ debugName: "captchaContainer" }] : []));
56
+ captchaContainer = viewChild('captchaContainer', { ...(ngDevMode ? { debugName: "captchaContainer" } : {}) });
57
57
  renderer2 = inject(Renderer2);
58
58
  document = inject(DOCUMENT);
59
59
  platformId = inject(PLATFORM_ID);
@@ -68,7 +68,7 @@ class SmartCaptchaComponent {
68
68
  onTouched = () => {
69
69
  // onTouched
70
70
  };
71
- _innerValue = signal(null, ...(ngDevMode ? [{ debugName: "_innerValue" }] : []));
71
+ _innerValue = signal(null, { ...(ngDevMode ? { debugName: "_innerValue" } : {}) });
72
72
  callbackIndex = null;
73
73
  constructor() {
74
74
  // Effect for theme changes
@@ -282,8 +282,8 @@ class SmartCaptchaComponent {
282
282
  }
283
283
  return null;
284
284
  }
285
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: SmartCaptchaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
286
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.9", type: SmartCaptchaComponent, isStandalone: true, selector: "smart-captcha", inputs: { sitekey: { classPropertyName: "sitekey", publicName: "sitekey", isSignal: true, isRequired: true, transformFunction: null }, invisible: { classPropertyName: "invisible", publicName: "invisible", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, hideShield: { classPropertyName: "hideShield", publicName: "hideShield", isSignal: true, isRequired: false, transformFunction: null }, shieldPosition: { classPropertyName: "shieldPosition", publicName: "shieldPosition", isSignal: true, isRequired: false, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, host: { classPropertyName: "host", publicName: "host", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, test: { classPropertyName: "test", publicName: "test", isSignal: true, isRequired: false, transformFunction: null }, webview: { classPropertyName: "webview", publicName: "webview", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { challengeHidden: "challengeHidden", challengeVisible: "challengeVisible", success: "success", networkError: "networkError", tokenExpired: "tokenExpired", javascriptError: "javascriptError" }, providers: [
285
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: SmartCaptchaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
286
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.1", type: SmartCaptchaComponent, isStandalone: true, selector: "smart-captcha", inputs: { sitekey: { classPropertyName: "sitekey", publicName: "sitekey", isSignal: true, isRequired: true, transformFunction: null }, invisible: { classPropertyName: "invisible", publicName: "invisible", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, hideShield: { classPropertyName: "hideShield", publicName: "hideShield", isSignal: true, isRequired: false, transformFunction: null }, shieldPosition: { classPropertyName: "shieldPosition", publicName: "shieldPosition", isSignal: true, isRequired: false, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, host: { classPropertyName: "host", publicName: "host", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, test: { classPropertyName: "test", publicName: "test", isSignal: true, isRequired: false, transformFunction: null }, webview: { classPropertyName: "webview", publicName: "webview", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { challengeHidden: "challengeHidden", challengeVisible: "challengeVisible", success: "success", networkError: "networkError", tokenExpired: "tokenExpired", javascriptError: "javascriptError" }, providers: [
287
287
  {
288
288
  provide: NG_VALUE_ACCESSOR,
289
289
  useExisting: forwardRef(() => SmartCaptchaComponent),
@@ -296,7 +296,7 @@ class SmartCaptchaComponent {
296
296
  },
297
297
  ], viewQueries: [{ propertyName: "captchaContainer", first: true, predicate: ["captchaContainer"], descendants: true, isSignal: true }], ngImport: i0, template: ` <div class="smart-captcha" #captchaContainer></div> `, isInline: true, styles: [".smart-captcha{height:102px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
298
298
  }
299
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: SmartCaptchaComponent, decorators: [{
299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: SmartCaptchaComponent, decorators: [{
300
300
  type: Component,
301
301
  args: [{ selector: 'smart-captcha', template: ` <div class="smart-captcha" #captchaContainer></div> `, providers: [
302
302
  {
@@ -313,14 +313,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
313
313
  }], ctorParameters: () => [], propDecorators: { sitekey: [{ type: i0.Input, args: [{ isSignal: true, alias: "sitekey", required: true }] }], invisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "invisible", required: false }] }], visible: [{ type: i0.Input, args: [{ isSignal: true, alias: "visible", required: false }] }], hideShield: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideShield", required: false }] }], shieldPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "shieldPosition", required: false }] }], language: [{ type: i0.Input, args: [{ isSignal: true, alias: "language", required: false }] }], host: [{ type: i0.Input, args: [{ isSignal: true, alias: "host", required: false }] }], theme: [{ type: i0.Input, args: [{ isSignal: true, alias: "theme", required: false }] }], test: [{ type: i0.Input, args: [{ isSignal: true, alias: "test", required: false }] }], webview: [{ type: i0.Input, args: [{ isSignal: true, alias: "webview", required: false }] }], challengeHidden: [{ type: i0.Output, args: ["challengeHidden"] }], challengeVisible: [{ type: i0.Output, args: ["challengeVisible"] }], success: [{ type: i0.Output, args: ["success"] }], networkError: [{ type: i0.Output, args: ["networkError"] }], tokenExpired: [{ type: i0.Output, args: ["tokenExpired"] }], javascriptError: [{ type: i0.Output, args: ["javascriptError"] }], captchaContainer: [{ type: i0.ViewChild, args: ['captchaContainer', { isSignal: true }] }] } });
314
314
  class InvisibleSmartCaptchaComponent extends SmartCaptchaComponent {
315
315
  // Always set invisible to true
316
- invisible = input(true, ...(ngDevMode ? [{ debugName: "invisible" }] : []));
316
+ invisible = input(true, { ...(ngDevMode ? { debugName: "invisible" } : {}) });
317
317
  // Override ngOnInit to ensure invisible is always true
318
318
  ngOnInit() {
319
319
  // Call parent initialization
320
320
  super.ngOnInit();
321
321
  }
322
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: InvisibleSmartCaptchaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
323
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.9", type: InvisibleSmartCaptchaComponent, isStandalone: true, selector: "invisible-smart-captcha", inputs: { invisible: { classPropertyName: "invisible", publicName: "invisible", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
322
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: InvisibleSmartCaptchaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
323
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.1", type: InvisibleSmartCaptchaComponent, isStandalone: true, selector: "invisible-smart-captcha", inputs: { invisible: { classPropertyName: "invisible", publicName: "invisible", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
324
324
  {
325
325
  provide: NG_VALUE_ACCESSOR,
326
326
  useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),
@@ -333,7 +333,7 @@ class InvisibleSmartCaptchaComponent extends SmartCaptchaComponent {
333
333
  },
334
334
  ], usesInheritance: true, ngImport: i0, template: ` <div class="smart-captcha" #captchaContainer></div> `, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
335
335
  }
336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: InvisibleSmartCaptchaComponent, decorators: [{
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: InvisibleSmartCaptchaComponent, decorators: [{
337
337
  type: Component,
338
338
  args: [{ selector: 'invisible-smart-captcha', template: ` <div class="smart-captcha" #captchaContainer></div> `, providers: [
339
339
  {
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-rock-yandex-smart-captcha.mjs","sources":["../tmp-esm2022/lib/helpers/is-valid-host.js","../tmp-esm2022/lib/yandex-smart-captcha/yandex-smart-captcha.component.js","../tmp-esm2022/ngx-rock-yandex-smart-captcha.js"],"sourcesContent":["const domainRE = /^(\\S+)$/;\nconst localhostDomainRE = /^localhost[:?\\d]*(?:[^:?\\d]\\S*)?$/;\nconst nonLocalhostDomainRE = /^[^\\s.]+\\.\\S{2,}$/;\nconst IPv4RE = /^(https?:\\/\\/)?([0-9]{1,3}\\.){3}[0-9]{1,3}:\\d+$/;\nconst IPv6RE = /^(https?:\\/\\/)?\\[([0-9a-fA-F]{0,4}:){7}([0-9a-fA-F]){0,4}]:\\d+$/;\nexport function isValidHost(str) {\n if (typeof str !== 'string') {\n return false;\n }\n const match = str.match(domainRE);\n if (!match) {\n return false;\n }\n const everythingAfterProtocol = match[0];\n if (!everythingAfterProtocol) {\n return false;\n }\n return (localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol) ||\n IPv4RE.test(everythingAfterProtocol) ||\n IPv6RE.test(everythingAfterProtocol));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtdmFsaWQtaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveWFuZGV4LXNtYXJ0LWNhcHRjaGEvc3JjL2xpYi9oZWxwZXJzL2lzLXZhbGlkLWhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDO0FBQzNCLE1BQU0saUJBQWlCLEdBQUcsbUNBQW1DLENBQUM7QUFDOUQsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztBQUNqRCxNQUFNLE1BQU0sR0FBRyxpREFBaUQsQ0FBQztBQUNqRSxNQUFNLE1BQU0sR0FDVixpRUFBaUUsQ0FBQztBQUVwRSxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQXVCO0lBQ2pELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUM3QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLENBQ0wsaUJBQWlCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQy9DLG9CQUFvQixDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUNsRCxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FDckMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBkb21haW5SRSA9IC9eKFxcUyspJC87XG5jb25zdCBsb2NhbGhvc3REb21haW5SRSA9IC9ebG9jYWxob3N0Wzo/XFxkXSooPzpbXjo/XFxkXVxcUyopPyQvO1xuY29uc3Qgbm9uTG9jYWxob3N0RG9tYWluUkUgPSAvXlteXFxzLl0rXFwuXFxTezIsfSQvO1xuY29uc3QgSVB2NFJFID0gL14oaHR0cHM/OlxcL1xcLyk/KFswLTldezEsM31cXC4pezN9WzAtOV17MSwzfTpcXGQrJC87XG5jb25zdCBJUHY2UkUgPVxuICAvXihodHRwcz86XFwvXFwvKT9cXFsoWzAtOWEtZkEtRl17MCw0fTopezd9KFswLTlhLWZBLUZdKXswLDR9XTpcXGQrJC87XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkSG9zdChzdHI6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgbWF0Y2ggPSBzdHIubWF0Y2goZG9tYWluUkUpO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGV2ZXJ5dGhpbmdBZnRlclByb3RvY29sID0gbWF0Y2hbMF07XG4gIGlmICghZXZlcnl0aGluZ0FmdGVyUHJvdG9jb2wpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIChcbiAgICBsb2NhbGhvc3REb21haW5SRS50ZXN0KGV2ZXJ5dGhpbmdBZnRlclByb3RvY29sKSB8fFxuICAgIG5vbkxvY2FsaG9zdERvbWFpblJFLnRlc3QoZXZlcnl0aGluZ0FmdGVyUHJvdG9jb2wpIHx8XG4gICAgSVB2NFJFLnRlc3QoZXZlcnl0aGluZ0FmdGVyUHJvdG9jb2wpIHx8XG4gICAgSVB2NlJFLnRlc3QoZXZlcnl0aGluZ0FmdGVyUHJvdG9jb2wpXG4gICk7XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, DOCUMENT, effect, forwardRef, inject, input, output, PLATFORM_ID, Renderer2, signal, viewChild, } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';\nimport { isPlatformBrowser } from '@angular/common';\nimport { isValidHost } from '../helpers/is-valid-host';\nimport * as i0 from \"@angular/core\";\nconst API_LINK = (host = 'smartcaptcha.yandexcloud.net') => {\n const base = /^https?/.test(host) ? host : `https://${host}`;\n return `${base}/captcha.js?render=onload&onload=__onSmartCaptchaReady`;\n};\n// Shared callbacks array\nconst callbacks = [];\nexport const startLoading = new Map();\nexport class SmartCaptchaComponent {\n sitekey = input.required(...(ngDevMode ? [{ debugName: \"sitekey\" }] : []));\n invisible = input(false, ...(ngDevMode ? [{ debugName: \"invisible\" }] : []));\n visible = input(...(ngDevMode ? [undefined, { debugName: \"visible\" }] : [])); // For InvisibleCaptcha to execute\n hideShield = input(...(ngDevMode ? [undefined, { debugName: \"hideShield\" }] : []));\n shieldPosition = input(...(ngDevMode ? [undefined, { debugName: \"shieldPosition\" }] : []));\n language = input(...(ngDevMode ? [undefined, { debugName: \"language\" }] : []));\n host = input(...(ngDevMode ? [undefined, { debugName: \"host\" }] : []));\n /**\n * @deprecated This setting is deprecated and must only be changed via the Yandex Cloud interface.\n */\n theme = input('auto', ...(ngDevMode ? [{ debugName: \"theme\" }] : []));\n test = input(...(ngDevMode ? [undefined, { debugName: \"test\" }] : []));\n webview = input(...(ngDevMode ? [undefined, { debugName: \"webview\" }] : []));\n challengeHidden = output();\n challengeVisible = output();\n success = output();\n networkError = output();\n tokenExpired = output();\n javascriptError = output();\n captchaContainer = viewChild('captchaContainer', ...(ngDevMode ? [{ debugName: \"captchaContainer\" }] : []));\n renderer2 = inject(Renderer2);\n document = inject(DOCUMENT);\n platformId = inject(PLATFORM_ID);\n widgetId;\n smartCaptchaInstance;\n destroyed = false;\n unsubscribeFns = [];\n errorEventHandler;\n onChange = () => {\n // onChange\n };\n onTouched = () => {\n // onTouched\n };\n _innerValue = signal(null, ...(ngDevMode ? [{ debugName: \"_innerValue\" }] : []));\n callbackIndex = null;\n constructor() {\n // Effect for theme changes\n effect(() => {\n if (this.theme() &&\n this.widgetId !== undefined &&\n this.smartCaptchaInstance?.setTheme) {\n this.smartCaptchaInstance.setTheme(this.widgetId, this.theme());\n }\n });\n // Effect for visible changes (Invisible Captcha)\n effect(() => {\n if (this.visible() &&\n this.invisible() &&\n this.smartCaptchaInstance &&\n typeof this.widgetId === 'number' &&\n !this.destroyed) {\n this.smartCaptchaInstance.execute(this.widgetId);\n }\n });\n }\n ngOnInit() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n if (this.host() !== undefined && !isValidHost(this.host())) {\n console.error(`[SmartCaptcha] ${this.host()} host is invalid. It should be of a kind: domain.ru, localhost:3000`);\n return;\n }\n if (typeof window !== 'undefined') {\n // Setup global callback if not already defined\n if (window.__onSmartCaptchaReady === undefined) {\n window.__onSmartCaptchaReady = () => {\n callbacks.forEach((callback) => callback());\n };\n }\n // Check if SmartCaptcha is already loaded\n if (window.smartCaptcha) {\n this.smartCaptchaInstance = window.smartCaptcha;\n }\n // Add our callback to the shared array\n this.callbackIndex = callbacks.push(() => {\n this.smartCaptchaInstance = window.smartCaptcha;\n this.renderCaptcha();\n });\n // Load script if not already loading\n const hostKey = this.host() || 'default';\n if (!startLoading.get(hostKey)) {\n this.loadScript();\n startLoading.set(hostKey, true);\n }\n }\n }\n ngAfterViewInit() {\n if (this.smartCaptchaInstance) {\n this.renderCaptcha();\n }\n }\n ngOnDestroy() {\n this.destroyed = true;\n // Remove callback from shared array\n if (this.callbackIndex !== null) {\n callbacks.splice(this.callbackIndex - 1, 1);\n }\n // Destroy widget if it exists\n if (this.widgetId !== undefined && this.smartCaptchaInstance) {\n this.smartCaptchaInstance.destroy(this.widgetId);\n this.widgetId = undefined;\n }\n // Clean up subscriptions\n this.unsubscribeFns.forEach((fn) => fn && fn());\n this.unsubscribeFns = [];\n // Remove error event handler\n if (this.errorEventHandler && typeof window !== 'undefined') {\n window.removeEventListener('error', this.errorEventHandler);\n }\n }\n loadScript() {\n const src = API_LINK(this.host());\n const script = this.renderer2.createElement('script');\n this.renderer2.setAttribute(script, 'src', src);\n this.renderer2.setAttribute(script, 'type', 'text/javascript');\n this.renderer2.setAttribute(script, 'crossOrigin', 'anonymous');\n // Handle regular onload/onerror\n script.onload = () => {\n if (window.smartCaptcha && !this.smartCaptchaInstance) {\n this.smartCaptchaInstance = window.smartCaptcha;\n this.renderCaptcha();\n }\n };\n script.onerror = () => {\n this.handleJavascriptError({\n filename: src,\n message: 'Unknown error on script loading',\n col: 0,\n line: 0,\n });\n };\n // Add error event listener for JS errors in the captcha script\n if (typeof window !== 'undefined') {\n this.errorEventHandler = (e) => {\n if (e.filename?.indexOf(src) === 0) {\n this.handleJavascriptError({\n filename: e.filename,\n message: e.message,\n col: e.colno,\n line: e.lineno,\n });\n }\n };\n window.addEventListener('error', this.errorEventHandler);\n }\n // Add script to document\n this.renderer2.appendChild(this.document.body, script);\n }\n renderCaptcha() {\n const container = this.captchaContainer()?.nativeElement;\n if (!container ||\n !this.smartCaptchaInstance ||\n this.widgetId !== undefined ||\n this.destroyed) {\n return;\n }\n const params = {\n sitekey: this.sitekey(),\n hl: this.language(),\n theme: this.theme(),\n invisible: this.invisible(),\n hideShield: this.hideShield(),\n shieldPosition: this.shieldPosition(),\n test: this.test(),\n webview: this.webview(),\n };\n try {\n this.widgetId = this.smartCaptchaInstance.render(container, params);\n this.setupSubscriptions();\n }\n catch (error) {\n console.error('[SmartCaptcha] Error rendering captcha widget:', error);\n let message = 'Unknown error during rendering';\n if (error instanceof Error) {\n message = error.message;\n }\n this.handleJavascriptError({\n filename: API_LINK(this.host()),\n message,\n col: 0,\n line: 0,\n });\n }\n }\n setupSubscriptions() {\n if (this.widgetId === undefined || !this.smartCaptchaInstance) {\n return;\n }\n // Store unsubscribe functions for cleanup\n this.unsubscribeFns = [\n this.smartCaptchaInstance.subscribe(this.widgetId, 'challenge-visible', () => {\n this.challengeVisible.emit();\n }),\n this.smartCaptchaInstance.subscribe(this.widgetId, 'challenge-hidden', () => {\n console.error('hidden');\n this.challengeHidden.emit();\n }),\n this.smartCaptchaInstance.subscribe(this.widgetId, 'network-error', () => {\n this.networkError.emit();\n }),\n this.smartCaptchaInstance.subscribe(this.widgetId, 'success', (...args) => {\n const [token] = args;\n this._innerValue.set(token);\n this.onChange(token);\n this.onTouched();\n this.success.emit(token);\n }),\n this.smartCaptchaInstance.subscribe(this.widgetId, 'token-expired', () => {\n this._innerValue.set(null);\n this.onChange(null);\n this.onTouched();\n this.tokenExpired.emit();\n }),\n this.smartCaptchaInstance.subscribe(this.widgetId, 'javascript-error', (...args) => {\n const [error] = args;\n this.handleJavascriptError(error);\n }),\n ];\n }\n handleJavascriptError(error) {\n console.error('[SmartCaptcha] Javascript error:', error);\n this.javascriptError.emit(error);\n }\n // ControlValueAccessor methods\n writeValue(value) {\n this._innerValue.set(value); // Set the signal value\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n // Validator method\n validate() {\n // When using invisible captcha, don't validate until user interacts\n if (this.invisible() && !this._innerValue()) {\n return null;\n }\n // For standard captcha, require token\n if (!this.invisible() && !this._innerValue()) {\n // Access signal value\n return { captchaRequired: true };\n }\n return null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: SmartCaptchaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.9\", type: SmartCaptchaComponent, isStandalone: true, selector: \"smart-captcha\", inputs: { sitekey: { classPropertyName: \"sitekey\", publicName: \"sitekey\", isSignal: true, isRequired: true, transformFunction: null }, invisible: { classPropertyName: \"invisible\", publicName: \"invisible\", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: \"visible\", publicName: \"visible\", isSignal: true, isRequired: false, transformFunction: null }, hideShield: { classPropertyName: \"hideShield\", publicName: \"hideShield\", isSignal: true, isRequired: false, transformFunction: null }, shieldPosition: { classPropertyName: \"shieldPosition\", publicName: \"shieldPosition\", isSignal: true, isRequired: false, transformFunction: null }, language: { classPropertyName: \"language\", publicName: \"language\", isSignal: true, isRequired: false, transformFunction: null }, host: { classPropertyName: \"host\", publicName: \"host\", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: \"theme\", publicName: \"theme\", isSignal: true, isRequired: false, transformFunction: null }, test: { classPropertyName: \"test\", publicName: \"test\", isSignal: true, isRequired: false, transformFunction: null }, webview: { classPropertyName: \"webview\", publicName: \"webview\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { challengeHidden: \"challengeHidden\", challengeVisible: \"challengeVisible\", success: \"success\", networkError: \"networkError\", tokenExpired: \"tokenExpired\", javascriptError: \"javascriptError\" }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SmartCaptchaComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SmartCaptchaComponent),\n multi: true,\n },\n ], viewQueries: [{ propertyName: \"captchaContainer\", first: true, predicate: [\"captchaContainer\"], descendants: true, isSignal: true }], ngImport: i0, template: ` <div class=\"smart-captcha\" #captchaContainer></div> `, isInline: true, styles: [\".smart-captcha{height:102px}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: SmartCaptchaComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-captcha', template: ` <div class=\"smart-captcha\" #captchaContainer></div> `, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SmartCaptchaComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SmartCaptchaComponent),\n multi: true,\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [\".smart-captcha{height:102px}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { sitekey: [{ type: i0.Input, args: [{ isSignal: true, alias: \"sitekey\", required: true }] }], invisible: [{ type: i0.Input, args: [{ isSignal: true, alias: \"invisible\", required: false }] }], visible: [{ type: i0.Input, args: [{ isSignal: true, alias: \"visible\", required: false }] }], hideShield: [{ type: i0.Input, args: [{ isSignal: true, alias: \"hideShield\", required: false }] }], shieldPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: \"shieldPosition\", required: false }] }], language: [{ type: i0.Input, args: [{ isSignal: true, alias: \"language\", required: false }] }], host: [{ type: i0.Input, args: [{ isSignal: true, alias: \"host\", required: false }] }], theme: [{ type: i0.Input, args: [{ isSignal: true, alias: \"theme\", required: false }] }], test: [{ type: i0.Input, args: [{ isSignal: true, alias: \"test\", required: false }] }], webview: [{ type: i0.Input, args: [{ isSignal: true, alias: \"webview\", required: false }] }], challengeHidden: [{ type: i0.Output, args: [\"challengeHidden\"] }], challengeVisible: [{ type: i0.Output, args: [\"challengeVisible\"] }], success: [{ type: i0.Output, args: [\"success\"] }], networkError: [{ type: i0.Output, args: [\"networkError\"] }], tokenExpired: [{ type: i0.Output, args: [\"tokenExpired\"] }], javascriptError: [{ type: i0.Output, args: [\"javascriptError\"] }], captchaContainer: [{ type: i0.ViewChild, args: ['captchaContainer', { isSignal: true }] }] } });\nexport class InvisibleSmartCaptchaComponent extends SmartCaptchaComponent {\n // Always set invisible to true\n invisible = input(true, ...(ngDevMode ? [{ debugName: \"invisible\" }] : []));\n // Override ngOnInit to ensure invisible is always true\n ngOnInit() {\n // Call parent initialization\n super.ngOnInit();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: InvisibleSmartCaptchaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.9\", type: InvisibleSmartCaptchaComponent, isStandalone: true, selector: \"invisible-smart-captcha\", inputs: { invisible: { classPropertyName: \"invisible\", publicName: \"invisible\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),\n multi: true,\n },\n ], usesInheritance: true, ngImport: i0, template: ` <div class=\"smart-captcha\" #captchaContainer></div> `, isInline: true, styles: [\"\"], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: InvisibleSmartCaptchaComponent, decorators: [{\n type: Component,\n args: [{ selector: 'invisible-smart-captcha', template: ` <div class=\"smart-captcha\" #captchaContainer></div> `, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),\n multi: true,\n },\n ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush }]\n }], propDecorators: { invisible: [{ type: i0.Input, args: [{ isSignal: true, alias: \"invisible\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFuZGV4LXNtYXJ0LWNhcHRjaGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95YW5kZXgtc21hcnQtY2FwdGNoYS9zcmMvbGliL3lhbmRleC1zbWFydC1jYXB0Y2hhL3lhbmRleC1zbWFydC1jYXB0Y2hhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGFBQWEsRUFDYixpQkFBaUIsR0FHbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBT3ZELE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxHQUFHLDhCQUE4QixFQUFFLEVBQUU7SUFDekQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO0lBQzdELE9BQU8sR0FBRyxJQUFJLHdEQUF3RCxDQUFDO0FBQ3pFLENBQUMsQ0FBQztBQUVGLHlCQUF5QjtBQUN6QixNQUFNLFNBQVMsR0FBbUIsRUFBRSxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztBQTJCdkQsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsa0RBQVUsQ0FBQztJQUNuQyxTQUFTLEdBQUcs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V0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsK0JBQStCLENBQUM7NEJBQzdELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLGNBQ1csSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRE9DVU1FTlQsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIG91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGlzVmFsaWRIb3N0IH0gZnJvbSAnLi4vaGVscGVycy9pcy12YWxpZC1ob3N0JztcbmltcG9ydCB7XG4gIEphdmFzY3JpcHRFcnJvclBheWxvYWQsXG4gIFNtYXJ0Q2FwdGNoYUluc3RhbmNlLFxuICBTbWFydENhcHRjaGFQYXJhbXMsXG59IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgQVBJX0xJTksgPSAoaG9zdCA9ICdzbWFydGNhcHRjaGEueWFuZGV4Y2xvdWQubmV0JykgPT4ge1xuICBjb25zdCBiYXNlID0gL15odHRwcz8vLnRlc3QoaG9zdCkgPyBob3N0IDogYGh0dHBzOi8vJHtob3N0fWA7XG4gIHJldHVybiBgJHtiYXNlfS9jYXB0Y2hhLmpzP3JlbmRlcj1vbmxvYWQmb25sb2FkPV9fb25TbWFydENhcHRjaGFSZWFkeWA7XG59O1xuXG4vLyBTaGFyZWQgY2FsbGJhY2tzIGFycmF5XG5jb25zdCBjYWxsYmFja3M6ICgoKSA9PiB2b2lkKVtdID0gW107XG5leHBvcnQgY29uc3Qgc3RhcnRMb2FkaW5nID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNhcHRjaGEnLFxuICB0ZW1wbGF0ZTogYCA8ZGl2IGNsYXNzPVwic21hcnQtY2FwdGNoYVwiICNjYXB0Y2hhQ29udGFpbmVyPjwvZGl2PiBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuc21hcnQtY2FwdGNoYSB7XG4gICAgICAgIGhlaWdodDogMTAycHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbWFydENhcHRjaGFDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU21hcnRDYXB0Y2hhQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydENhcHRjaGFDb21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBzaXRla2V5ID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBpbnZpc2libGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHZpc2libGUgPSBpbnB1dDxib29sZWFuPigpOyAvLyBGb3IgSW52aXNpYmxlQ2FwdGNoYSB0byBleGVjdXRlXG4gIGhpZGVTaGllbGQgPSBpbnB1dDxib29sZWFuPigpO1xuICBzaGllbGRQb3NpdGlvbiA9IGlucHV0PFxuICAgICd0b3AtbGVmdCcgfCAndG9wLXJpZ2h0JyB8ICdib3R0b20tbGVmdCcgfCAnYm90dG9tLXJpZ2h0J1xuICA+KCk7XG4gIGxhbmd1YWdlID0gaW5wdXQ8U21hcnRDYXB0Y2hhUGFyYW1zWydobCddPigpO1xuICBob3N0ID0gaW5wdXQ8c3RyaW5nPigpO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBzZXR0aW5nIGlzIGRlcHJlY2F0ZWQgYW5kIG11c3Qgb25seSBiZSBjaGFuZ2VkIHZpYSB0aGUgWWFuZGV4IENsb3VkIGludGVyZmFjZS5cbiAgICovXG4gIHRoZW1lID0gaW5wdXQ8J2xpZ2h0JyB8ICdkYXJrJyB8ICdhdXRvJz4oJ2F1dG8nKTtcbiAgdGVzdCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHdlYnZpZXcgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIGNoYWxsZW5nZUhpZGRlbiA9IG91dHB1dDx2b2lkPigpO1xuICBjaGFsbGVuZ2VWaXNpYmxlID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHN1Y2Nlc3MgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICBuZXR3b3JrRXJyb3IgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgdG9rZW5FeHBpcmVkID0gb3V0cHV0PHZvaWQ+KCk7XG4gIGphdmFzY3JpcHRFcnJvciA9IG91dHB1dDxKYXZhc2NyaXB0RXJyb3JQYXlsb2FkPigpO1xuXG4gIGNhcHRjaGFDb250YWluZXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+KCdjYXB0Y2hhQ29udGFpbmVyJyk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgcHJvdGVjdGVkIHdpZGdldElkOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBzbWFydENhcHRjaGFJbnN0YW5jZTogU21hcnRDYXB0Y2hhSW5zdGFuY2UgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBkZXN0cm95ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZUZuczogQXJyYXk8KCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkPiA9IFtdO1xuICBwcml2YXRlIGVycm9yRXZlbnRIYW5kbGVyOiAoKGU6IEVycm9yRXZlbnQpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAvLyBvbkNoYW5nZVxuICB9O1xuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcbiAgICAvLyBvblRvdWNoZWRcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5uZXJWYWx1ZSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBjYWxsYmFja0luZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBFZmZlY3QgZm9yIHRoZW1lIGNoYW5nZXNcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnRoZW1lKCkgJiZcbiAgICAgICAgdGhpcy53aWRnZXRJZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHRoaXMuc21hcnRDYXB0Y2hhSW5zdGFuY2U/LnNldFRoZW1lXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zbWFydENhcHRjaGFJbnN0YW5jZS5zZXRUaGVtZSh0aGlzLndpZGdldElkLCB0aGlzLnRoZW1lKCkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gRWZmZWN0IGZvciB2aXNpYmxlIGNoYW5nZXMgKEludmlzaWJsZSBDYXB0Y2hhKVxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMudmlzaWJsZSgpICYmXG4gICAgICAgIHRoaXMuaW52aXNpYmxlKCkgJiZcbiAgICAgICAgdGhpcy5zbWFydENhcHRjaGFJbnN0YW5jZSAmJlxuICAgICAgICB0eXBlb2YgdGhpcy53aWRnZXRJZCA9PT0gJ251bWJlcicgJiZcbiAgICAgICAgIXRoaXMuZGVzdHJveWVkXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zbWFydENhcHRjaGFJbnN0YW5jZS5leGVjdXRlKHRoaXMud2lkZ2V0SWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaG9zdCgpICE9PSB1bmRlZmluZWQgJiYgIWlzVmFsaWRIb3N0KHRoaXMuaG9zdCgpKSkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFtTbWFydENhcHRjaGFdICR7dGhpcy5ob3N0KCl9IGhvc3QgaXMgaW52YWxpZC4gSXQgc2hvdWxkIGJlIG9mIGEga2luZDogZG9tYWluLnJ1LCBsb2NhbGhvc3Q6MzAwMGBcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBTZXR1cCBnbG9iYWwgY2FsbGJhY2sgaWYgbm90IGFscmVhZHkgZGVmaW5lZFxuICAgICAgaWYgKHdpbmRvdy5fX29uU21hcnRDYXB0Y2hhUmVhZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB3aW5kb3cuX19vblNtYXJ0Q2FwdGNoYVJlYWR5ID0gKCkgPT4ge1xuICAgICAgICAgIGNhbGxiYWNrcy5mb3JFYWNoKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSk7XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIFNtYXJ0Q2FwdGNoYSBpcyBhbHJlYWR5IGxvYWRlZFxuICAgICAgaWYgKHdpbmRvdy5zbWFydENhcHRjaGEpIHtcbiAgICAgICAgdGhpcy5zbWFydENhcHRjaGFJbnN0YW5jZSA9IHdpbmRvdy5zbWFydENhcHRjaGE7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCBvdXIgY2FsbGJhY2sgdG8gdGhlIHNoYXJlZCBhcnJheVxuICAgICAgdGhpcy5jYWxsYmFja0luZGV4ID0gY2FsbGJhY2tzLnB1c2goKCkgPT4ge1xuICAgICAgICB0aGlzLnNtYXJ0Q2FwdGNoYUluc3RhbmNlID0gd2luZG93LnNtYXJ0Q2FwdGNoYTtcbiAgICAgICAgdGhpcy5yZW5kZXJDYXB0Y2hhKCk7XG4gICAgICB9KTtcblxuICAgICAgLy8gTG9hZCBzY3JpcHQgaWYgbm90IGFscmVhZHkgbG9hZGluZ1xuICAgICAgY29uc3QgaG9zdEtleSA9IHRoaXMuaG9zdCgpIHx8ICdkZWZhdWx0JztcbiAgICAgIGlmICghc3RhcnRMb2FkaW5nLmdldChob3N0S2V5KSkge1xuICAgICAgICB0aGlzLmxvYWRTY3JpcHQoKTtcbiAgICAgICAgc3RhcnRMb2FkaW5nLnNldChob3N0S2V5LCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc21hcnRDYXB0Y2hhSW5zdGFuY2UpIHtcbiAgICAgIHRoaXMucmVuZGVyQ2FwdGNoYSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZTtcblxuICAgIC8vIFJlbW92ZSBjYWxsYmFjayBmcm9tIHNoYXJlZCBhcnJheVxuICAgIGlmICh0aGlzLmNhbGxiYWNrSW5kZXggIT09IG51bGwpIHtcbiAgICAgIGNhbGxiYWNrcy5zcGxpY2UodGhpcy5jYWxsYmFja0luZGV4IC0gMSwgMSk7XG4gICAgfVxuXG4gICAgLy8gRGVzdHJveSB3aWRnZXQgaWYgaXQgZXhpc3RzXG4gICAgaWYgKHRoaXMud2lkZ2V0SWQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnNtYXJ0Q2FwdGNoYUluc3RhbmNlKSB7XG4gICAgICB0aGlzLnNtYXJ0Q2FwdGNoYUluc3RhbmNlLmRlc3Ryb3kodGhpcy53aWRnZXRJZCk7XG4gICAgICB0aGlzLndpZGdldElkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIENsZWFuIHVwIHN1YnNjcmlwdGlvbnNcbiAgICB0aGlzLnVuc3Vic2NyaWJlRm5zLmZvckVhY2goKGZuKSA9PiBmbiAmJiBmbigpKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlRm5zID0gW107XG5cbiAgICAvLyBSZW1vdmUgZXJyb3IgZXZlbnQgaGFuZGxlclxuICAgIGlmICh0aGlzLmVycm9yRXZlbnRIYW5kbGVyICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCB0aGlzLmVycm9yRXZlbnRIYW5kbGVyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRTY3JpcHQoKTogdm9pZCB7XG4gICAgY29uc3Qgc3JjID0gQVBJX0xJTksodGhpcy5ob3N0KCkpO1xuICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMucmVuZGVyZXIyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHRoaXMucmVuZGVyZXIyLnNldEF0dHJpYnV0ZShzY3JpcHQsICdzcmMnLCBzcmMpO1xuICAgIHRoaXMucmVuZGVyZXIyLnNldEF0dHJpYnV0ZShzY3JpcHQsICd0eXBlJywgJ3RleHQvamF2YXNjcmlwdCcpO1xuICAgIHRoaXMucmVuZGVyZXIyLnNldEF0dHJpYnV0ZShzY3JpcHQsICdjcm9zc09yaWdpbicsICdhbm9ueW1vdXMnKTtcblxuICAgIC8vIEhhbmRsZSByZWd1bGFyIG9ubG9hZC9vbmVycm9yXG4gICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIGlmICh3aW5kb3cuc21hcnRDYXB0Y2hhICYmICF0aGlzLnNtYXJ0Q2FwdGNoYUluc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuc21hcnRDYXB0Y2hhSW5zdGFuY2UgPSB3aW5kb3cuc21hcnRDYXB0Y2hhO1xuICAgICAgICB0aGlzLnJlbmRlckNhcHRjaGEoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgc2NyaXB0Lm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUphdmFzY3JpcHRFcnJvcih7XG4gICAgICAgIGZpbGVuYW1lOiBzcmMsXG4gICAgICAgIG1lc3NhZ2U6ICdVbmtub3duIGVycm9yIG9uIHNjcmlwdCBsb2FkaW5nJyxcbiAgICAgICAgY29sOiAwLFxuICAgICAgICBsaW5lOiAwLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vIEFkZCBlcnJvciBldmVudCBsaXN0ZW5lciBmb3IgSlMgZXJyb3JzIGluIHRoZSBjYXB0Y2hhIHNjcmlwdFxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5lcnJvckV2ZW50SGFuZGxlciA9IChlOiBFcnJvckV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChlLmZpbGVuYW1lPy5pbmRleE9mKHNyYykgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUphdmFzY3JpcHRFcnJvcih7XG4gICAgICAgICAgICBmaWxlbmFtZTogZS5maWxlbmFtZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgIGNvbDogZS5jb2xubyxcbiAgICAgICAgICAgIGxpbmU6IGUubGluZW5vLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgdGhpcy5lcnJvckV2ZW50SGFuZGxlcik7XG4gICAgfVxuXG4gICAgLy8gQWRkIHNjcmlwdCB0byBkb2N1bWVudFxuICAgIHRoaXMucmVuZGVyZXIyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSwgc2NyaXB0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ2FwdGNoYSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNhcHRjaGFDb250YWluZXIoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoXG4gICAgICAhY29udGFpbmVyIHx8XG4gICAgICAhdGhpcy5zbWFydENhcHRjaGFJbnN0YW5jZSB8fFxuICAgICAgdGhpcy53aWRnZXRJZCAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLmRlc3Ryb3llZFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtczogU21hcnRDYXB0Y2hhUGFyYW1zID0ge1xuICAgICAgc2l0ZWtleTogdGhpcy5zaXRla2V5KCksXG4gICAgICBobDogdGhpcy5sYW5ndWFnZSgpLFxuICAgICAgdGhlbWU6IHRoaXMudGhlbWUoKSxcbiAgICAgIGludmlzaWJsZTogdGhpcy5pbnZpc2libGUoKSxcbiAgICAgIGhpZGVTaGllbGQ6IHRoaXMuaGlkZVNoaWVsZCgpLFxuICAgICAgc2hpZWxkUG9zaXRpb246IHRoaXMuc2hpZWxkUG9zaXRpb24oKSxcbiAgICAgIHRlc3Q6IHRoaXMudGVzdCgpLFxuICAgICAgd2VidmlldzogdGhpcy53ZWJ2aWV3KCksXG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLndpZGdldElkID0gdGhpcy5zbWFydENhcHRjaGFJbnN0YW5jZS5yZW5kZXIoY29udGFpbmVyLCBwYXJhbXMpO1xuICAgICAgdGhpcy5zZXR1cFN1YnNjcmlwdGlvbnMoKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc29sZS5lcnJvcignW1NtYXJ0Q2FwdGNoYV0gRXJyb3IgcmVuZGVyaW5nIGNhcHRjaGEgd2lkZ2V0OicsIGVycm9yKTtcblxuICAgICAgbGV0IG1lc3NhZ2UgPSAnVW5rbm93biBlcnJvciBkdXJpbmcgcmVuZGVyaW5nJztcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmhhbmRsZUphdmFzY3JpcHRFcnJvcih7XG4gICAgICAgIGZpbGVuYW1lOiBBUElfTElOSyh0aGlzLmhvc3QoKSksXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIGNvbDogMCxcbiAgICAgICAgbGluZTogMCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLndpZGdldElkID09PSB1bmRlZmluZWQgfHwgIXRoaXMuc21hcnRDYXB0Y2hhSW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTdG9yZSB1bnN1YnNjcmliZSBmdW5jdGlvbnMgZm9yIGNsZWFudXBcbiAgICB0aGlzLnVuc3Vic2NyaWJlRm5zID0gW1xuICAgICAgdGhpcy5zbWFydENhcHRjaGFJbnN0YW5jZS5zdWJzY3JpYmUoXG4gICAgICAgIHRoaXMud2lkZ2V0SWQsXG4gICAgICAgICdjaGFsbGVuZ2UtdmlzaWJsZScsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmNoYWxsZW5nZVZpc2libGUuZW1pdCgpO1xuICAgICAgICB9XG4gICAgICApLFxuXG4gICAgICB0aGlzLnNtYXJ0Q2FwdGNoYUluc3RhbmNlLnN1YnNjcmliZShcbiAgICAgICAgdGhpcy53aWRnZXRJZCxcbiAgICAgICAgJ2NoYWxsZW5nZS1oaWRkZW4nLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignaGlkZGVuJyk7XG4gICAgICAgICAgdGhpcy5jaGFsbGVuZ2VIaWRkZW4uZW1pdCgpO1xuICAgICAgICB9XG4gICAgICApLFxuXG4gICAgICB0aGlzLnNtYXJ0Q2FwdGNoYUluc3RhbmNlLnN1YnNjcmliZShcbiAgICAgICAgdGhpcy53aWRnZXRJZCxcbiAgICAgICAgJ25ldHdvcmstZXJyb3InLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5uZXR3b3JrRXJyb3IuZW1pdCgpO1xuICAgICAgICB9XG4gICAgICApLFxuXG4gICAgICB0aGlzLnNtYXJ0Q2FwdGNoYUluc3RhbmNlLnN1YnNjcmliZShcbiAgICAgICAgdGhpcy53aWRnZXRJZCxcbiAgICAgICAgJ3N1Y2Nlc3MnLFxuICAgICAgICAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICAgICAgY29uc3QgW3Rva2VuXSA9IGFyZ3MgYXMgW3N0cmluZ107XG5cbiAgICAgICAgICB0aGlzLl9pbm5lclZhbHVlLnNldCh0b2tlbik7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSh0b2tlbik7XG4gICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICksXG5cbiAgICAgIHRoaXMuc21hcnRDYXB0Y2hhSW5zdGFuY2Uuc3Vic2NyaWJlKFxuICAgICAgICB0aGlzLndpZGdldElkLFxuICAgICAgICAndG9rZW4tZXhwaXJlZCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLl9pbm5lclZhbHVlLnNldChudWxsKTtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgdGhpcy50b2tlbkV4cGlyZWQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgICApLFxuXG4gICAgICB0aGlzLnNtYXJ0Q2FwdGNoYUluc3RhbmNlLnN1YnNjcmliZShcbiAgICAgICAgdGhpcy53aWRnZXRJZCxcbiAgICAgICAgJ2phdmFzY3JpcHQtZXJyb3InLFxuICAgICAgICAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICAgICAgY29uc3QgW2Vycm9yXSA9IGFyZ3MgYXMgW0phdmFzY3JpcHRFcnJvclBheWxvYWRdO1xuICAgICAgICAgIHRoaXMuaGFuZGxlSmF2YXNjcmlwdEVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVKYXZhc2NyaXB0RXJyb3IoZXJyb3I6IEphdmFzY3JpcHRFcnJvclBheWxvYWQpOiB2b2lkIHtcbiAgICBjb25zb2xlLmVycm9yKCdbU21hcnRDYXB0Y2hhXSBKYXZhc2NyaXB0IGVycm9yOicsIGVycm9yKTtcbiAgICB0aGlzLmphdmFzY3JpcHRFcnJvci5lbWl0KGVycm9yKTtcbiAgfVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIG1ldGhvZHNcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5faW5uZXJWYWx1ZS5zZXQodmFsdWUpOyAvLyBTZXQgdGhlIHNpZ25hbCB2YWx1ZVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLy8gVmFsaWRhdG9yIG1ldGhvZFxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgLy8gV2hlbiB1c2luZyBpbnZpc2libGUgY2FwdGNoYSwgZG9uJ3QgdmFsaWRhdGUgdW50aWwgdXNlciBpbnRlcmFjdHNcbiAgICBpZiAodGhpcy5pbnZpc2libGUoKSAmJiAhdGhpcy5faW5uZXJWYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBGb3Igc3RhbmRhcmQgY2FwdGNoYSwgcmVxdWlyZSB0b2tlblxuICAgIGlmICghdGhpcy5pbnZpc2libGUoKSAmJiAhdGhpcy5faW5uZXJWYWx1ZSgpKSB7XG4gICAgICAvLyBBY2Nlc3Mgc2lnbmFsIHZhbHVlXG4gICAgICByZXR1cm4geyBjYXB0Y2hhUmVxdWlyZWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbnZpc2libGUtc21hcnQtY2FwdGNoYScsXG4gIHRlbXBsYXRlOiBgIDxkaXYgY2xhc3M9XCJzbWFydC1jYXB0Y2hhXCIgI2NhcHRjaGFDb250YWluZXI+PC9kaXY+IGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5zbWFydC1jYXB0Y2hhIHtcbiAgICAgICAgLyogTm8gaGVpZ2h0IG5lZWRlZCBmb3IgaW52aXNpYmxlIGNhcHRjaGEgKi9cbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEludmlzaWJsZVNtYXJ0Q2FwdGNoYUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnZpc2libGVTbWFydENhcHRjaGFDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEludmlzaWJsZVNtYXJ0Q2FwdGNoYUNvbXBvbmVudFxuICBleHRlbmRzIFNtYXJ0Q2FwdGNoYUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAvLyBBbHdheXMgc2V0IGludmlzaWJsZSB0byB0cnVlXG4gIG92ZXJyaWRlIGludmlzaWJsZSA9IGlucHV0KHRydWUpO1xuXG4gIC8vIE92ZXJyaWRlIG5nT25Jbml0IHRvIGVuc3VyZSBpbnZpc2libGUgaXMgYWx3YXlzIHRydWVcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQ2FsbCBwYXJlbnQgaW5pdGlhbGl6YXRpb25cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvY2steWFuZGV4LXNtYXJ0LWNhcHRjaGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3lhbmRleC1zbWFydC1jYXB0Y2hhL3NyYy9uZ3gtcm9jay15YW5kZXgtc21hcnQtY2FwdGNoYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-rock-yandex-smart-captcha.mjs","sources":["../../../../libs/yandex-smart-captcha/src/lib/helpers/is-valid-host.ts","../../../../libs/yandex-smart-captcha/src/lib/yandex-smart-captcha/yandex-smart-captcha.component.ts","../../../../libs/yandex-smart-captcha/src/ngx-rock-yandex-smart-captcha.ts"],"sourcesContent":["const domainRE = /^(\\S+)$/;\nconst localhostDomainRE = /^localhost[:?\\d]*(?:[^:?\\d]\\S*)?$/;\nconst nonLocalhostDomainRE = /^[^\\s.]+\\.\\S{2,}$/;\nconst IPv4RE = /^(https?:\\/\\/)?([0-9]{1,3}\\.){3}[0-9]{1,3}:\\d+$/;\nconst IPv6RE =\n /^(https?:\\/\\/)?\\[([0-9a-fA-F]{0,4}:){7}([0-9a-fA-F]){0,4}]:\\d+$/;\n\nexport function isValidHost(str: string | undefined): boolean {\n if (typeof str !== 'string') {\n return false;\n }\n const match = str.match(domainRE);\n if (!match) {\n return false;\n }\n const everythingAfterProtocol = match[0];\n if (!everythingAfterProtocol) {\n return false;\n }\n return (\n localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol) ||\n IPv4RE.test(everythingAfterProtocol) ||\n IPv6RE.test(everythingAfterProtocol)\n );\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DOCUMENT,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n viewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { isPlatformBrowser } from '@angular/common';\nimport { isValidHost } from '../helpers/is-valid-host';\nimport {\n JavascriptErrorPayload,\n SmartCaptchaInstance,\n SmartCaptchaParams,\n} from '../types';\n\nconst API_LINK = (host = 'smartcaptcha.cloud.yandex.ru') => {\n const base = /^https?/.test(host) ? host : `https://${host}`;\n return `${base}/captcha.js?render=onload&onload=__onSmartCaptchaReady`;\n};\n\n// Shared callbacks array\nconst callbacks: (() => void)[] = [];\nexport const startLoading = new Map<string, boolean>();\n\n@Component({\n selector: 'smart-captcha',\n template: ` <div class=\"smart-captcha\" #captchaContainer></div> `,\n styles: [\n `\n .smart-captcha {\n height: 102px;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SmartCaptchaComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SmartCaptchaComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SmartCaptchaComponent\n implements ControlValueAccessor, Validator, OnInit, AfterViewInit, OnDestroy\n{\n sitekey = input.required<string>();\n invisible = input<boolean>(false);\n visible = input<boolean>(); // For InvisibleCaptcha to execute\n hideShield = input<boolean>();\n shieldPosition = input<\n 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n >();\n language = input<SmartCaptchaParams['hl']>();\n host = input<string>();\n /**\n * @deprecated This setting is deprecated and must only be changed via the Yandex Cloud interface.\n */\n theme = input<'light' | 'dark' | 'auto'>('auto');\n test = input<boolean>();\n webview = input<boolean>();\n\n challengeHidden = output<void>();\n challengeVisible = output<void>();\n success = output<string>();\n networkError = output<void>();\n tokenExpired = output<void>();\n javascriptError = output<JavascriptErrorPayload>();\n\n captchaContainer = viewChild<ElementRef<HTMLDivElement>>('captchaContainer');\n\n private readonly renderer2 = inject(Renderer2);\n private readonly document = inject(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n\n protected widgetId: number | undefined;\n protected smartCaptchaInstance: SmartCaptchaInstance | undefined;\n protected destroyed = false;\n private unsubscribeFns: Array<(() => void) | undefined> = [];\n private errorEventHandler: ((e: ErrorEvent) => void) | undefined;\n\n private onChange: (value: string | null) => void = () => {\n // onChange\n };\n private onTouched = () => {\n // onTouched\n };\n private readonly _innerValue = signal<string | null>(null);\n private callbackIndex: number | null = null;\n\n constructor() {\n // Effect for theme changes\n effect(() => {\n if (\n this.theme() &&\n this.widgetId !== undefined &&\n this.smartCaptchaInstance?.setTheme\n ) {\n this.smartCaptchaInstance.setTheme(this.widgetId, this.theme());\n }\n });\n\n // Effect for visible changes (Invisible Captcha)\n effect(() => {\n if (\n this.visible() &&\n this.invisible() &&\n this.smartCaptchaInstance &&\n typeof this.widgetId === 'number' &&\n !this.destroyed\n ) {\n this.smartCaptchaInstance.execute(this.widgetId);\n }\n });\n }\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n if (this.host() !== undefined && !isValidHost(this.host())) {\n console.error(\n `[SmartCaptcha] ${this.host()} host is invalid. It should be of a kind: domain.ru, localhost:3000`\n );\n return;\n }\n\n if (typeof window !== 'undefined') {\n // Setup global callback if not already defined\n if (window.__onSmartCaptchaReady === undefined) {\n window.__onSmartCaptchaReady = () => {\n callbacks.forEach((callback) => callback());\n };\n }\n\n // Check if SmartCaptcha is already loaded\n if (window.smartCaptcha) {\n this.smartCaptchaInstance = window.smartCaptcha;\n }\n\n // Add our callback to the shared array\n this.callbackIndex = callbacks.push(() => {\n this.smartCaptchaInstance = window.smartCaptcha;\n this.renderCaptcha();\n });\n\n // Load script if not already loading\n const hostKey = this.host() || 'default';\n if (!startLoading.get(hostKey)) {\n this.loadScript();\n startLoading.set(hostKey, true);\n }\n }\n }\n\n ngAfterViewInit(): void {\n if (this.smartCaptchaInstance) {\n this.renderCaptcha();\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n\n // Remove callback from shared array\n if (this.callbackIndex !== null) {\n callbacks.splice(this.callbackIndex - 1, 1);\n }\n\n // Destroy widget if it exists\n if (this.widgetId !== undefined && this.smartCaptchaInstance) {\n this.smartCaptchaInstance.destroy(this.widgetId);\n this.widgetId = undefined;\n }\n\n // Clean up subscriptions\n this.unsubscribeFns.forEach((fn) => fn && fn());\n this.unsubscribeFns = [];\n\n // Remove error event handler\n if (this.errorEventHandler && typeof window !== 'undefined') {\n window.removeEventListener('error', this.errorEventHandler);\n }\n }\n\n private loadScript(): void {\n const src = API_LINK(this.host());\n const script = this.renderer2.createElement('script');\n this.renderer2.setAttribute(script, 'src', src);\n this.renderer2.setAttribute(script, 'type', 'text/javascript');\n this.renderer2.setAttribute(script, 'crossOrigin', 'anonymous');\n\n // Handle regular onload/onerror\n script.onload = () => {\n if (window.smartCaptcha && !this.smartCaptchaInstance) {\n this.smartCaptchaInstance = window.smartCaptcha;\n this.renderCaptcha();\n }\n };\n\n script.onerror = () => {\n this.handleJavascriptError({\n filename: src,\n message: 'Unknown error on script loading',\n col: 0,\n line: 0,\n });\n };\n\n // Add error event listener for JS errors in the captcha script\n if (typeof window !== 'undefined') {\n this.errorEventHandler = (e: ErrorEvent) => {\n if (e.filename?.indexOf(src) === 0) {\n this.handleJavascriptError({\n filename: e.filename,\n message: e.message,\n col: e.colno,\n line: e.lineno,\n });\n }\n };\n window.addEventListener('error', this.errorEventHandler);\n }\n\n // Add script to document\n this.renderer2.appendChild(this.document.body, script);\n }\n\n private renderCaptcha(): void {\n const container = this.captchaContainer()?.nativeElement;\n if (\n !container ||\n !this.smartCaptchaInstance ||\n this.widgetId !== undefined ||\n this.destroyed\n ) {\n return;\n }\n\n const params: SmartCaptchaParams = {\n sitekey: this.sitekey(),\n hl: this.language(),\n theme: this.theme(),\n invisible: this.invisible(),\n hideShield: this.hideShield(),\n shieldPosition: this.shieldPosition(),\n test: this.test(),\n webview: this.webview(),\n };\n\n try {\n this.widgetId = this.smartCaptchaInstance.render(container, params);\n this.setupSubscriptions();\n } catch (error: unknown) {\n console.error('[SmartCaptcha] Error rendering captcha widget:', error);\n\n let message = 'Unknown error during rendering';\n if (error instanceof Error) {\n message = error.message;\n }\n\n this.handleJavascriptError({\n filename: API_LINK(this.host()),\n message,\n col: 0,\n line: 0,\n });\n }\n }\n\n private setupSubscriptions(): void {\n if (this.widgetId === undefined || !this.smartCaptchaInstance) {\n return;\n }\n\n // Store unsubscribe functions for cleanup\n this.unsubscribeFns = [\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'challenge-visible',\n () => {\n this.challengeVisible.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'challenge-hidden',\n () => {\n console.error('hidden');\n this.challengeHidden.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'network-error',\n () => {\n this.networkError.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'success',\n (...args: unknown[]) => {\n const [token] = args as [string];\n\n this._innerValue.set(token);\n this.onChange(token);\n this.onTouched();\n this.success.emit(token);\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'token-expired',\n () => {\n this._innerValue.set(null);\n this.onChange(null);\n this.onTouched();\n this.tokenExpired.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'javascript-error',\n (...args: unknown[]) => {\n const [error] = args as [JavascriptErrorPayload];\n this.handleJavascriptError(error);\n }\n ),\n ];\n }\n\n private handleJavascriptError(error: JavascriptErrorPayload): void {\n console.error('[SmartCaptcha] Javascript error:', error);\n this.javascriptError.emit(error);\n }\n\n // ControlValueAccessor methods\n writeValue(value: string): void {\n this._innerValue.set(value); // Set the signal value\n }\n\n registerOnChange(fn: (value: string | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Validator method\n validate(): ValidationErrors | null {\n // When using invisible captcha, don't validate until user interacts\n if (this.invisible() && !this._innerValue()) {\n return null;\n }\n\n // For standard captcha, require token\n if (!this.invisible() && !this._innerValue()) {\n // Access signal value\n return { captchaRequired: true };\n }\n\n return null;\n }\n}\n\n@Component({\n selector: 'invisible-smart-captcha',\n template: ` <div class=\"smart-captcha\" #captchaContainer></div> `,\n styles: [\n `\n .smart-captcha {\n /* No height needed for invisible captcha */\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),\n multi: true,\n },\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InvisibleSmartCaptchaComponent\n extends SmartCaptchaComponent\n implements OnInit\n{\n // Always set invisible to true\n override invisible = input(true);\n\n // Override ngOnInit to ensure invisible is always true\n override ngOnInit(): void {\n // Call parent initialization\n super.ngOnInit();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngx-rock/yandex-smart-captcha",
3
- "version": "20.1.0",
3
+ "version": "21.1.0",
4
4
  "description": "Yandex smart captcha",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,13 +24,13 @@
24
24
  },
25
25
  "sideEffects": false,
26
26
  "module": "fesm2022/ngx-rock-yandex-smart-captcha.mjs",
27
- "typings": "index.d.ts",
27
+ "typings": "types/ngx-rock-yandex-smart-captcha.d.ts",
28
28
  "exports": {
29
29
  "./package.json": {
30
30
  "default": "./package.json"
31
31
  },
32
32
  ".": {
33
- "types": "./index.d.ts",
33
+ "types": "./types/ngx-rock-yandex-smart-captcha.d.ts",
34
34
  "default": "./fesm2022/ngx-rock-yandex-smart-captcha.mjs"
35
35
  }
36
36
  },