@xsolla/payment-client-core 0.2.62 → 0.2.63

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.
@@ -1,14 +1,16 @@
1
- import { Injectable } from '@angular/core';
1
+ import { Inject, Injectable } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { debounceTime } from 'rxjs/operators';
4
4
  import { UserBehaviourEventName } from '../user-behaviour-analytics/user-behaviour-event-name.enum';
5
5
  import { userBehaviourEventTypes } from '../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types';
6
6
  import { EventParameterType } from '../user-behaviour-analytics/event-builder/event-parameter-types';
7
+ import { windowToken } from '../window.token';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "../user-behaviour-analytics/user-behaviour-analytics.service";
9
10
  export class ScriptTrackerService {
10
- constructor(userBehaviourAnalyticsService) {
11
+ constructor(userBehaviourAnalyticsService, window) {
11
12
  this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
13
+ this.window = window;
12
14
  this.currentScripts = new Set();
13
15
  this.scriptHostBlacklist = [
14
16
  'https://cdn.xsolla.net/headless-checkout-prod',
@@ -40,9 +42,12 @@ export class ScriptTrackerService {
40
42
  return Array.from(this.currentScripts.values());
41
43
  }
42
44
  checkCurrentScripts() {
43
- const scripts = Array.from(document.getElementsByTagName('script'));
45
+ const resources = this.window.performance.getEntriesByType('resource');
46
+ const scripts = resources.filter(
47
+ // @ts-expect-error wrong type
48
+ (resource) => resource?.initiatorType === 'script');
44
49
  scripts.forEach((script) => {
45
- this.trackScript(script);
50
+ this.trackScript(script.name);
46
51
  });
47
52
  }
48
53
  setupScriptObserver() {
@@ -56,7 +61,12 @@ export class ScriptTrackerService {
56
61
  }
57
62
  mutation.addedNodes.forEach((node) => {
58
63
  if (node.nodeName === 'SCRIPT') {
59
- this.trackScript(node);
64
+ const script = node;
65
+ const scriptLoadHandler = () => {
66
+ this.trackScript(script.src);
67
+ script.removeEventListener('load', scriptLoadHandler);
68
+ };
69
+ script.addEventListener('load', scriptLoadHandler);
60
70
  }
61
71
  });
62
72
  });
@@ -67,19 +77,19 @@ export class ScriptTrackerService {
67
77
  });
68
78
  }
69
79
  trackScript(script) {
70
- if (!script.src || this.currentScripts.has(script.src)) {
80
+ if (!script || this.currentScripts.has(script)) {
71
81
  return;
72
82
  }
73
83
  const isScriptInBlacklist = this.scriptHostBlacklist.some((host) => {
74
- return script.src.includes(host);
84
+ return script.includes(host);
75
85
  });
76
86
  if (isScriptInBlacklist) {
77
87
  return;
78
88
  }
79
- this.currentScripts.add(script.src);
89
+ this.currentScripts.add(script);
80
90
  this.scriptTracked$.next();
81
91
  }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ScriptTrackerService, deps: [{ token: i1.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ScriptTrackerService, deps: [{ token: i1.UserBehaviourAnalyticsService }, { token: windowToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
83
93
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ScriptTrackerService, providedIn: 'root' }); }
84
94
  }
85
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ScriptTrackerService, decorators: [{
@@ -87,5 +97,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
87
97
  args: [{
88
98
  providedIn: 'root',
89
99
  }]
90
- }], ctorParameters: () => [{ type: i1.UserBehaviourAnalyticsService }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LXRyYWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3NjcmlwdC10cmFja2VyL3NjcmlwdC10cmFja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7O0FBTXJHLE1BQU0sT0FBTyxvQkFBb0I7SUFXL0IsWUFDbUIsNkJBQTREO1FBQTVELGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7UUFYOUQsbUJBQWMsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV4Qyx3QkFBbUIsR0FBRztZQUNyQywrQ0FBK0M7U0FDaEQsQ0FBQztRQUVlLDRCQUF1QixHQUFHLElBQUksQ0FBQztRQUUvQixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFJbkQsQ0FBQztJQUVHLGtCQUFrQixDQUFDLFdBQXdCO1FBQ2hELElBQUksV0FBVyxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQ2pDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWM7YUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQzthQUNoRCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENB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QUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuaW1wb3J0IHsgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQvdXNlci1iZWhhdmlvdXItZXZlbnQtdHlwZXMnO1xuaW1wb3J0IHsgRXZlbnRQYXJhbWV0ZXJUeXBlIH0gZnJvbSAnLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL2V2ZW50LWJ1aWxkZXIvZXZlbnQtcGFyYW1ldGVyLXR5cGVzJztcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjcmlwdFRyYWNrZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50U2NyaXB0czogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzY3JpcHRIb3N0QmxhY2tsaXN0ID0gW1xuICAgICdodHRwczovL2Nkbi54c29sbGEubmV0L2hlYWRsZXNzLWNoZWNrb3V0LXByb2QnLFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgU0NSSVBUX0RFQk9VTkNFX1RJTUVfTVMgPSAxMDAwO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2NyaXB0VHJhY2tlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGluaXRTY3JpcHRUcmFja2luZyhlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiB2b2lkIHtcbiAgICBpZiAoZW52aXJvbm1lbnQgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2NyaXB0VHJhY2tlZCRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLlNDUklQVF9ERUJPVU5DRV9USU1FX01TKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oYW5kbGVTY3JpcHREYXRhKCkpO1xuXG4gICAgdGhpcy5jaGVja0N1cnJlbnRTY3JpcHRzKCk7XG4gICAgdGhpcy5zZXR1cFNjcmlwdE9ic2VydmVyKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNjcmlwdERhdGEoKTogdm9pZCB7XG4gICAgY29uc3Qgc2NyaXB0c0RhdGEgPSB0aGlzLmdldFRyYWNrZWRTY3JpcHRzKCk7XG5cbiAgICBpZiAoIXNjcmlwdHNEYXRhLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuc3lzVHJhY2tlZFNjcmlwdHMsXG4gICAgICB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBKU09OLnN0cmluZ2lmeShzY3JpcHRzRGF0YSksXG4gICAgICAgIHZhbHVlVHlwZTogRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmFja2VkU2NyaXB0cygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jdXJyZW50U2NyaXB0cy52YWx1ZXMoKSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ3VycmVudFNjcmlwdHMoKTogdm9pZCB7XG4gICAgY29uc3Qgc2NyaXB0cyA9IEFycmF5LmZyb20oZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpKTtcbiAgICBzY3JpcHRzLmZvckVhY2goKHNjcmlwdCkgPT4ge1xuICAgICAgdGhpcy50cmFja1NjcmlwdChzY3JpcHQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFNjcmlwdE9ic2VydmVyKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgTXV0YXRpb25PYnNlcnZlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIG11dGF0aW9ucy5mb3JFYWNoKChtdXRhdGlvbikgPT4ge1xuICAgICAgICBpZiAobXV0YXRpb24udHlwZSAhPT0gJ2NoaWxkTGlzdCcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBtdXRhdGlvbi5hZGRlZE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICBpZiAobm9kZS5ub2RlTmFtZSA9PT0gJ1NDUklQVCcpIHtcbiAgICAgICAgICAgIHRoaXMudHJhY2tTY3JpcHQobm9kZSBhcyBIVE1MU2NyaXB0RWxlbWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHRyYWNrU2NyaXB0KHNjcmlwdDogSFRNTFNjcmlwdEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIXNjcmlwdC5zcmMgfHwgdGhpcy5jdXJyZW50U2NyaXB0cy5oYXMoc2NyaXB0LnNyYykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpc1NjcmlwdEluQmxhY2tsaXN0ID0gdGhpcy5zY3JpcHRIb3N0QmxhY2tsaXN0LnNvbWUoKGhvc3QpID0+IHtcbiAgICAgIHJldHVybiBzY3JpcHQuc3JjLmluY2x1ZGVzKGhvc3QpO1xuICAgIH0pO1xuXG4gICAgaWYgKGlzU2NyaXB0SW5CbGFja2xpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRTY3JpcHRzLmFkZChzY3JpcHQuc3JjKTtcbiAgICB0aGlzLnNjcmlwdFRyYWNrZWQkLm5leHQoKTtcbiAgfVxufVxuIl19
100
+ }], ctorParameters: () => [{ type: i1.UserBehaviourAnalyticsService }, { type: undefined, decorators: [{
101
+ type: Inject,
102
+ args: [windowToken]
103
+ }] }] });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LXRyYWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3NjcmlwdC10cmFja2VyL3NjcmlwdC10cmFja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDcEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkVBQTZFLENBQUM7QUFDdEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFHckcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFLOUMsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQixZQUNtQiw2QkFBNEQsRUFFNUQsTUFBc0I7UUFGdEIsa0NBQTZCLEdBQTdCLDZCQUE2QixDQUErQjtRQUU1RCxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQWJ4QixtQkFBYyxHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXhDLHdCQUFtQixHQUFHO1lBQ3JDLCtDQUErQztTQUNoRCxDQUFDO1FBRWUsNEJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBRS9CLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQU1uRCxDQUFDO0lBRUcsa0JBQWtCLENBQUMsV0FBd0I7UUFDaEQsSUFBSSxXQUFXLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDakMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYzthQUNoQixJQUFJLENBQUMs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LE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakUsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQTlHVSxvQkFBb0IsK0RBYXJCLFdBQVc7a0hBYlYsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWNJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuaW1wb3J0IHsgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQvdXNlci1iZWhhdmlvdXItZXZlbnQtdHlwZXMnO1xuaW1wb3J0IHsgRXZlbnRQYXJhbWV0ZXJUeXBlIH0gZnJvbSAnLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL2V2ZW50LWJ1aWxkZXIvZXZlbnQtcGFyYW1ldGVyLXR5cGVzJztcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEV4dGVuZGVkV2luZG93IH0gZnJvbSAnLi4vZXh0ZW5kZWQtd2luZG93LmludGVyZmFjZSc7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uL3dpbmRvdy50b2tlbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY3JpcHRUcmFja2VyU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VycmVudFNjcmlwdHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2NyaXB0SG9zdEJsYWNrbGlzdCA9IFtcbiAgICAnaHR0cHM6Ly9jZG4ueHNvbGxhLm5ldC9oZWFkbGVzcy1jaGVja291dC1wcm9kJyxcbiAgXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IFNDUklQVF9ERUJPVU5DRV9USU1FX01TID0gMTAwMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNjcmlwdFRyYWNrZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZTogVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UsXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3dcbiAgKSB7fVxuXG4gIHB1YmxpYyBpbml0U2NyaXB0VHJhY2tpbmcoZW52aXJvbm1lbnQ6IEVudmlyb25tZW50KTogdm9pZCB7XG4gICAgaWYgKGVudmlyb25tZW50ICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNjcmlwdFRyYWNrZWQkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5TQ1JJUFRfREVCT1VOQ0VfVElNRV9NUykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuaGFuZGxlU2NyaXB0RGF0YSgpKTtcblxuICAgIHRoaXMuY2hlY2tDdXJyZW50U2NyaXB0cygpO1xuICAgIHRoaXMuc2V0dXBTY3JpcHRPYnNlcnZlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTY3JpcHREYXRhKCk6IHZvaWQge1xuICAgIGNvbnN0IHNjcmlwdHNEYXRhID0gdGhpcy5nZXRUcmFja2VkU2NyaXB0cygpO1xuXG4gICAgaWYgKCFzY3JpcHRzRGF0YS5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLnN5c1RyYWNrZWRTY3JpcHRzLFxuICAgICAgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogSlNPTi5zdHJpbmdpZnkoc2NyaXB0c0RhdGEpLFxuICAgICAgICB2YWx1ZVR5cGU6IEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmcsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHJhY2tlZFNjcmlwdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuY3VycmVudFNjcmlwdHMudmFsdWVzKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0N1cnJlbnRTY3JpcHRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHJlc291cmNlcyA9IHRoaXMud2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoJ3Jlc291cmNlJyk7XG4gICAgY29uc3Qgc2NyaXB0cyA9IHJlc291cmNlcy5maWx0ZXIoXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHdyb25nIHR5cGVcbiAgICAgIChyZXNvdXJjZSkgPT4gcmVzb3VyY2U/LmluaXRpYXRvclR5cGUgPT09ICdzY3JpcHQnXG4gICAgKTtcblxuICAgIHNjcmlwdHMuZm9yRWFjaCgoc2NyaXB0KSA9PiB7XG4gICAgICB0aGlzLnRyYWNrU2NyaXB0KHNjcmlwdC5uYW1lKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTY3JpcHRPYnNlcnZlcigpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICBtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgIT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbXV0YXRpb24uYWRkZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT09ICdTQ1JJUFQnKSB7XG4gICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBub2RlIGFzIEhUTUxTY3JpcHRFbGVtZW50O1xuICAgICAgICAgICAgY29uc3Qgc2NyaXB0TG9hZEhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudHJhY2tTY3JpcHQoc2NyaXB0LnNyYyk7XG5cbiAgICAgICAgICAgICAgc2NyaXB0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzY3JpcHRMb2FkSGFuZGxlcik7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHNjcmlwdExvYWRIYW5kbGVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwge1xuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhY2tTY3JpcHQoc2NyaXB0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXNjcmlwdCB8fCB0aGlzLmN1cnJlbnRTY3JpcHRzLmhhcyhzY3JpcHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNTY3JpcHRJbkJsYWNrbGlzdCA9IHRoaXMuc2NyaXB0SG9zdEJsYWNrbGlzdC5zb21lKChob3N0KSA9PiB7XG4gICAgICByZXR1cm4gc2NyaXB0LmluY2x1ZGVzKGhvc3QpO1xuICAgIH0pO1xuXG4gICAgaWYgKGlzU2NyaXB0SW5CbGFja2xpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRTY3JpcHRzLmFkZChzY3JpcHQpO1xuICAgIHRoaXMuc2NyaXB0VHJhY2tlZCQubmV4dCgpO1xuICB9XG59XG4iXX0=
@@ -7807,8 +7807,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
7807
7807
  }] }] });
7808
7808
 
7809
7809
  class ScriptTrackerService {
7810
- constructor(userBehaviourAnalyticsService) {
7810
+ constructor(userBehaviourAnalyticsService, window) {
7811
7811
  this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
7812
+ this.window = window;
7812
7813
  this.currentScripts = new Set();
7813
7814
  this.scriptHostBlacklist = [
7814
7815
  'https://cdn.xsolla.net/headless-checkout-prod',
@@ -7840,9 +7841,12 @@ class ScriptTrackerService {
7840
7841
  return Array.from(this.currentScripts.values());
7841
7842
  }
7842
7843
  checkCurrentScripts() {
7843
- const scripts = Array.from(document.getElementsByTagName('script'));
7844
+ const resources = this.window.performance.getEntriesByType('resource');
7845
+ const scripts = resources.filter(
7846
+ // @ts-expect-error wrong type
7847
+ (resource) => resource?.initiatorType === 'script');
7844
7848
  scripts.forEach((script) => {
7845
- this.trackScript(script);
7849
+ this.trackScript(script.name);
7846
7850
  });
7847
7851
  }
7848
7852
  setupScriptObserver() {
@@ -7856,7 +7860,12 @@ class ScriptTrackerService {
7856
7860
  }
7857
7861
  mutation.addedNodes.forEach((node) => {
7858
7862
  if (node.nodeName === 'SCRIPT') {
7859
- this.trackScript(node);
7863
+ const script = node;
7864
+ const scriptLoadHandler = () => {
7865
+ this.trackScript(script.src);
7866
+ script.removeEventListener('load', scriptLoadHandler);
7867
+ };
7868
+ script.addEventListener('load', scriptLoadHandler);
7860
7869
  }
7861
7870
  });
7862
7871
  });
@@ -7867,19 +7876,19 @@ class ScriptTrackerService {
7867
7876
  });
7868
7877
  }
7869
7878
  trackScript(script) {
7870
- if (!script.src || this.currentScripts.has(script.src)) {
7879
+ if (!script || this.currentScripts.has(script)) {
7871
7880
  return;
7872
7881
  }
7873
7882
  const isScriptInBlacklist = this.scriptHostBlacklist.some((host) => {
7874
- return script.src.includes(host);
7883
+ return script.includes(host);
7875
7884
  });
7876
7885
  if (isScriptInBlacklist) {
7877
7886
  return;
7878
7887
  }
7879
- this.currentScripts.add(script.src);
7888
+ this.currentScripts.add(script);
7880
7889
  this.scriptTracked$.next();
7881
7890
  }
7882
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ScriptTrackerService, deps: [{ token: UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
7891
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ScriptTrackerService, deps: [{ token: UserBehaviourAnalyticsService }, { token: windowToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
7883
7892
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ScriptTrackerService, providedIn: 'root' }); }
7884
7893
  }
7885
7894
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ScriptTrackerService, decorators: [{
@@ -7887,7 +7896,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
7887
7896
  args: [{
7888
7897
  providedIn: 'root',
7889
7898
  }]
7890
- }], ctorParameters: () => [{ type: UserBehaviourAnalyticsService }] });
7899
+ }], ctorParameters: () => [{ type: UserBehaviourAnalyticsService }, { type: undefined, decorators: [{
7900
+ type: Inject,
7901
+ args: [windowToken]
7902
+ }] }] });
7891
7903
 
7892
7904
  class CoreLibraryService {
7893
7905
  constructor(settingsService, countryService, paymentMethodsService, savedMethodsService, userBalanceService, paymentConfigService, paymentService, deviceFingerPrintService, financeDetailsService, legalService, statusService, nextActionService, creditCardService, creditCardStateService, formMessagesService, editSavedMethodsService, userBehaviourAnalyticsService, performanceService, combinedPaymentMethodsService, countriesApiService, sendInstructionService, scriptTrackerService) {