@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.
- package/esm2022/lib/core/script-tracker/script-tracker.service.mjs +24 -11
- package/fesm2022/xsolla-payment-client-core.mjs +21 -9
- package/fesm2022/xsolla-payment-client-core.mjs.map +1 -1
- package/lib/core/script-tracker/script-tracker.service.d.ts +3 -1
- package/package.json +1 -1
- package/xsolla-payment-client-core-0.2.63.tgz +0 -0
- package/xsolla-payment-client-core-0.2.62.tgz +0 -0
|
@@ -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
|
|
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
|
-
|
|
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
|
|
80
|
+
if (!script || this.currentScripts.has(script)) {
|
|
71
81
|
return;
|
|
72
82
|
}
|
|
73
83
|
const isScriptInBlacklist = this.scriptHostBlacklist.some((host) => {
|
|
74
|
-
return script.
|
|
84
|
+
return script.includes(host);
|
|
75
85
|
});
|
|
76
86
|
if (isScriptInBlacklist) {
|
|
77
87
|
return;
|
|
78
88
|
}
|
|
79
|
-
this.currentScripts.add(script
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
7879
|
+
if (!script || this.currentScripts.has(script)) {
|
|
7871
7880
|
return;
|
|
7872
7881
|
}
|
|
7873
7882
|
const isScriptInBlacklist = this.scriptHostBlacklist.some((host) => {
|
|
7874
|
-
return script.
|
|
7883
|
+
return script.includes(host);
|
|
7875
7884
|
});
|
|
7876
7885
|
if (isScriptInBlacklist) {
|
|
7877
7886
|
return;
|
|
7878
7887
|
}
|
|
7879
|
-
this.currentScripts.add(script
|
|
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) {
|