@oneteme/inspect-ng-collector 0.0.6 → 0.0.8
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/configuration.mjs +145 -0
- package/esm2022/lib/event-manager.service.mjs +33 -0
- package/esm2022/lib/http-interceptor.service.mjs +8 -9
- package/esm2022/lib/ng-collector.module.mjs +41 -27
- package/esm2022/lib/session-manager.service.mjs +42 -39
- package/esm2022/lib/util.mjs +7 -56
- package/fesm2022/oneteme-inspect-ng-collector.mjs +180 -135
- package/fesm2022/oneteme-inspect-ng-collector.mjs.map +1 -1
- package/lib/configuration.d.ts +59 -0
- package/lib/event-manager.service.d.ts +10 -0
- package/lib/http-interceptor.service.d.ts +3 -3
- package/lib/ng-collector.module.d.ts +5 -16
- package/lib/session-manager.service.d.ts +6 -7
- package/lib/util.d.ts +0 -5
- package/package.json +1 -1
- package/esm2022/lib/route-tracer.service.mjs +0 -70
- package/lib/route-tracer.service.d.ts +0 -21
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { dateNow } from "./util";
|
|
2
|
+
const SLASH = '/';
|
|
3
|
+
const HOST_PATERN = /https?:\/\/[\w\-.]+(:\d{2,5})?\/?/;
|
|
4
|
+
const PATH_PATERN = /[\w-]+(\/[\w-]+)*/;
|
|
5
|
+
const validationMap = {
|
|
6
|
+
host: { func: matchRegex, args: [HOST_PATERN] },
|
|
7
|
+
bufferMaxSize: { func: requirePostitiveValue, args: [HOST_PATERN] },
|
|
8
|
+
delay: { func: matchRegex, args: [HOST_PATERN] },
|
|
9
|
+
instanceApi: { func: matchRegex, args: [HOST_PATERN] },
|
|
10
|
+
sessionApi: { func: matchRegex, args: [HOST_PATERN] }
|
|
11
|
+
};
|
|
12
|
+
export function setConfig(conf) {
|
|
13
|
+
return {
|
|
14
|
+
host: conf.host,
|
|
15
|
+
name: getStringOrCall(conf.name),
|
|
16
|
+
version: getStringOrCall(conf.version) ?? '',
|
|
17
|
+
env: getStringOrCall(conf.env) ?? '',
|
|
18
|
+
user: getStringOrCall(conf.user) ?? '',
|
|
19
|
+
bufferMaxSize: getNumberOrCall(conf.bufferMaxSize),
|
|
20
|
+
delay: getNumberOrCall(conf.delay),
|
|
21
|
+
instanceApi: getStringOrCall(conf.sessionApi),
|
|
22
|
+
sessionApi: getStringOrCall(conf.instanceApi),
|
|
23
|
+
exclude: getRegArrOrCall(conf.exclude) ?? [],
|
|
24
|
+
debug: conf.debug ?? false,
|
|
25
|
+
enabled: conf.enabled ?? false
|
|
26
|
+
};
|
|
27
|
+
/*
|
|
28
|
+
this.logServerMain = this.sessionApiURL(host,getStringOrCall(config.sessionApi)!);
|
|
29
|
+
this.logInstanceEnv = this.instanceApiURL(host,getStringOrCall(config.instanceApi)!);
|
|
30
|
+
this.maxBufferSize = getNumberOrCall(config.bufferMaxSize) ?? 1000;
|
|
31
|
+
this.delay = getNumberOrCall(config.delay) ?? 60000;
|
|
32
|
+
*/
|
|
33
|
+
}
|
|
34
|
+
export function validateProperty(value, func) {
|
|
35
|
+
if (func()) {
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
throw new Error('error'); // pass the error return from the the passed function
|
|
39
|
+
}
|
|
40
|
+
export function validateAndGetConfig(conf) {
|
|
41
|
+
let host = matchRegex(getStringOrCall(conf.host), "host", HOST_PATERN);
|
|
42
|
+
let sessionApi = matchRegex(getStringOrCall(conf.sessionApi), 'sessionApi', PATH_PATERN);
|
|
43
|
+
let instanceApi = matchRegex(getStringOrCall(conf.sessionApi), 'intanceApi', PATH_PATERN);
|
|
44
|
+
return {
|
|
45
|
+
user: getStringOrCall(conf.user),
|
|
46
|
+
bufferMaxSize: requirePostitiveValue(getNumberOrCall(conf.delay), "bufferMaxSize", 1000),
|
|
47
|
+
delay: requirePostitiveValue(getNumberOrCall(conf.delay), "delay", 60000),
|
|
48
|
+
instanceApi: sessionApiURL(host, sessionApi),
|
|
49
|
+
sessionApi: instanceApiURL(host, instanceApi),
|
|
50
|
+
exclude: getRegArrOrCall(conf.exclude) || [],
|
|
51
|
+
debug: conf.debug ?? false,
|
|
52
|
+
enabled: conf.enabled ?? false
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function GetInstanceEnvironement(conf) {
|
|
56
|
+
return {
|
|
57
|
+
name: getStringOrCall(conf.name),
|
|
58
|
+
version: getStringOrCall(conf.version),
|
|
59
|
+
address: undefined,
|
|
60
|
+
env: getStringOrCall(conf.env),
|
|
61
|
+
os: detectOs(),
|
|
62
|
+
re: detectBrowser(),
|
|
63
|
+
user: undefined,
|
|
64
|
+
type: "CLIENT",
|
|
65
|
+
instant: dateNow(),
|
|
66
|
+
collector: "inspect-ng-collector-0.0.1"
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export function getNumberOrCall(o) {
|
|
70
|
+
return typeof o === "function" ? o() : o;
|
|
71
|
+
}
|
|
72
|
+
export function getStringOrCall(o) {
|
|
73
|
+
return typeof o === "function" ? o() : o;
|
|
74
|
+
}
|
|
75
|
+
export function getRegArrOrCall(o) {
|
|
76
|
+
return typeof o === "function" ? o() : o;
|
|
77
|
+
}
|
|
78
|
+
export function detectBrowser() {
|
|
79
|
+
try {
|
|
80
|
+
const agent = window.navigator.userAgent.toLowerCase();
|
|
81
|
+
switch (true) {
|
|
82
|
+
case agent.indexOf('edge') > -1:
|
|
83
|
+
return 'edge';
|
|
84
|
+
case agent.indexOf('opr') > -1:
|
|
85
|
+
return 'opera';
|
|
86
|
+
case agent.indexOf('chrome') > -1:
|
|
87
|
+
return 'chrome';
|
|
88
|
+
case agent.indexOf('firefox') > -1:
|
|
89
|
+
return 'firefox';
|
|
90
|
+
case agent.indexOf('safari') > -1:
|
|
91
|
+
return 'safari';
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
console.error(e);
|
|
96
|
+
}
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
export function detectOs() {
|
|
100
|
+
try {
|
|
101
|
+
let versionMatch, version;
|
|
102
|
+
const agent = window.navigator.userAgent.toLowerCase();
|
|
103
|
+
switch (true) {
|
|
104
|
+
case (/windows/.test(agent)):
|
|
105
|
+
versionMatch = /windows nt (\d+\.\d+)/.exec(agent);
|
|
106
|
+
version = versionMatch ? versionMatch[1] : 'Unknown';
|
|
107
|
+
return `Windows ${version}`;
|
|
108
|
+
case (/linux/.test(agent)):
|
|
109
|
+
return 'Linux';
|
|
110
|
+
case (/macintosh/.test(agent)):
|
|
111
|
+
versionMatch = /mac os x (\d+[._]\d+[._]\d+)/.exec(agent);
|
|
112
|
+
version = versionMatch ? versionMatch[1] : 'Unknown';
|
|
113
|
+
return `MacOs ${version}`;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
console.error(e);
|
|
118
|
+
}
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
function instanceApiURL(host, path) {
|
|
122
|
+
return toURL(host, path);
|
|
123
|
+
}
|
|
124
|
+
function sessionApiURL(host, path) {
|
|
125
|
+
return toURL(host, path);
|
|
126
|
+
}
|
|
127
|
+
function toURL(host, path) {
|
|
128
|
+
return host.endsWith(SLASH) || path.startsWith(SLASH) ? host + path : [host, path].join(SLASH);
|
|
129
|
+
}
|
|
130
|
+
export function matchRegex(v, name, pattern) {
|
|
131
|
+
if (v && pattern.exec(v)) {
|
|
132
|
+
return v;
|
|
133
|
+
}
|
|
134
|
+
throw `bad value ${name}=${v}, pattern=${pattern}`;
|
|
135
|
+
}
|
|
136
|
+
export function requirePostitiveValue(v, name, defaultValue) {
|
|
137
|
+
if (v && v > 0) {
|
|
138
|
+
return v;
|
|
139
|
+
}
|
|
140
|
+
if (v == undefined) {
|
|
141
|
+
return defaultValue;
|
|
142
|
+
}
|
|
143
|
+
throw `bad value ${name}= ${v} <= 0`;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZXRlbWUvaW5zcGVjdC1uZy1jb2xsZWN0b3Ivc3JjL2xpYi9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLE1BQU0sV0FBVyxHQUFHLG1DQUFtQyxDQUFDO0FBQ3hELE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDO0FBMkJ2QyxNQUFNLGFBQWEsR0FBSTtJQUN0QixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFO0lBQy9DLGFBQWEsRUFBRyxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRTtJQUNwRSxLQUFLLEVBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFO0lBQ2pELFdBQVcsRUFBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUU7SUFDdkQsVUFBVSxFQUFHLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRTtDQUN0RCxDQUFBO0FBRUYsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFvQjtJQUM1QyxPQUFRO1FBQ04sSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2hDLE9BQU8sRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7UUFDNUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUcsRUFBRTtRQUNuQyxJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ3RDLGFBQWEsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNsRCxLQUFLLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbEMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzdDLFVBQVUsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUM3QyxPQUFPLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQzVDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUs7UUFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSztLQUMvQixDQUFBO0lBQ0Y7Ozs7O09BS0c7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQVMsRUFBRSxJQUE4QjtJQUN4RSxJQUFHLElBQUksRUFBRSxFQUFDO1FBQ04sT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUMsc0RBQXNEO0FBQ2pGLENBQUM7QUFJRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBUTtJQUMzQyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUcsV0FBVyxDQUFDLENBQUE7SUFDdkUsSUFBSSxVQUFVLEdBQUssVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBRSxDQUFBO0lBQzFGLElBQUksV0FBVyxHQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFDLFlBQVksRUFBRSxXQUFXLENBQUUsQ0FBQTtJQUMxRixPQUFRO1FBQ04sSUFBSSxFQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2pDLGFBQWEsRUFBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDLGVBQWUsRUFBRSxJQUFJLENBQUM7UUFDeEYsS0FBSyxFQUFFLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUN4RSxXQUFXLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUM7UUFDNUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBQzdDLE9BQU8sRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7UUFDNUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSztRQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLO0tBQy9CLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQW9CO0lBQ3hELE9BQU87UUFDTCxJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDaEMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLEdBQUcsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUM5QixFQUFFLEVBQUUsUUFBUSxFQUFFO1FBQ2QsRUFBRSxFQUFFLGFBQWEsRUFBRTtRQUNuQixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxRQUFRO1FBQ2QsT0FBTyxFQUFFLE9BQU8sRUFBRTtRQUNsQixTQUFTLEVBQUUsNEJBQTRCO0tBQzFDLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxDQUEyQjtJQUN6RCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxDQUEyQjtJQUN6RCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxDQUErQjtJQUM3RCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWE7SUFDM0IsSUFBSTtRQUNBLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3RELFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsT0FBTyxNQUFNLENBQUM7WUFDbEIsS0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUIsT0FBTyxPQUFPLENBQUM7WUFDbkIsS0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsT0FBTyxRQUFRLENBQUM7WUFDcEIsS0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUIsT0FBTyxTQUFTLENBQUM7WUFDckIsS0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsT0FBTyxRQUFRLENBQUM7U0FDdkI7S0FDSjtJQUNELE9BQU8sQ0FBQyxFQUFFO1FBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNwQjtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixJQUFJO1FBQ0EsSUFBSSxZQUFZLEVBQUUsT0FBTyxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3RELFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hCLFlBQVksR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25ELE9BQU8sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNyRCxPQUFPLFdBQVcsT0FBTyxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sT0FBTyxDQUFDO1lBRW5CLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixZQUFZLEdBQUcsOEJBQThCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxRCxPQUFPLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDckQsT0FBTyxTQUFTLE9BQU8sRUFBRSxDQUFBO1NBQ2hDO0tBQ0o7SUFDRCxPQUFPLENBQUMsRUFBRTtRQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDcEI7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsSUFBVyxFQUFFLElBQVc7SUFDOUMsT0FBUSxLQUFLLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxJQUFXLEVBQUUsSUFBVztJQUM3QyxPQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQVMsS0FBSyxDQUFDLElBQVcsRUFBRSxJQUFXO0lBQ3BDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakcsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsQ0FBcUIsRUFBRyxJQUFZLEVBQUUsT0FBZTtJQUM5RSxJQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDO0tBQ1g7SUFDRCxNQUFNLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxPQUFPLEVBQUUsQ0FBQztBQUNyRCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLENBQXFCLEVBQUUsSUFBWSxFQUFFLFlBQW1CO0lBQzVGLElBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDYixPQUFPLENBQUMsQ0FBQztLQUNWO0lBQ0QsSUFBRyxDQUFDLElBQUksU0FBUyxFQUFDO1FBQ2hCLE9BQU8sWUFBWSxDQUFDO0tBQ3JCO0lBQ0QsTUFBTSxhQUFhLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQTtBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGF0ZU5vdyB9IGZyb20gXCIuL3V0aWxcIjtcbmNvbnN0IFNMQVNIID0gJy8nO1xuY29uc3QgSE9TVF9QQVRFUk4gPSAvaHR0cHM/OlxcL1xcL1tcXHdcXC0uXSsoOlxcZHsyLDV9KT9cXC8/LztcbmNvbnN0IFBBVEhfUEFURVJOID0gL1tcXHctXSsoXFwvW1xcdy1dKykqLztcbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25Db25mIHtcbiAgaG9zdD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpO1xuICB2ZXJzaW9uPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIGVudj86IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpO1xuICB1c2VyPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIGJ1ZmZlck1heFNpemU/OiBudW1iZXIgfCAoKCkgPT4gbnVtYmVyKTtcbiAgZGVsYXk/OiBudW1iZXJ8ICgoKSA9PiBudW1iZXIpO1xuICBpbnN0YW5jZUFwaT86IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpO1xuICBzZXNzaW9uQXBpPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIGV4Y2x1ZGU/OiBSZWdFeHBbXSB8ICgoKSA9PiBSZWdFeHBbXSk7XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVjaG5pY2FsQ29uZiB7XG4gIHVzZXI/OnN0cmluZyA7XG4gIGJ1ZmZlck1heFNpemU6IG51bWJlcjtcbiAgZGVsYXk6IG51bWJlcjtcbiAgaW5zdGFuY2VBcGk6IHN0cmluZztcbiAgc2Vzc2lvbkFwaTogc3RyaW5nO1xuICBleGNsdWRlOiBSZWdFeHBbXTtcbiAgZGVidWc6IGJvb2xlYW47XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG59XG5cbiBjb25zdCB2YWxpZGF0aW9uTWFwICA9IHsgLy8gcmVtb3ZlIFxuICBob3N0OiB7IGZ1bmM6IG1hdGNoUmVnZXgsIGFyZ3M6IFtIT1NUX1BBVEVSTl0gfSxcbiAgYnVmZmVyTWF4U2l6ZTogIHsgZnVuYzogcmVxdWlyZVBvc3RpdGl2ZVZhbHVlLCBhcmdzOiBbSE9TVF9QQVRFUk5dIH0sXG4gIGRlbGF5OiAgeyBmdW5jOiBtYXRjaFJlZ2V4LCBhcmdzOiBbSE9TVF9QQVRFUk5dIH0sXG4gIGluc3RhbmNlQXBpOiAgeyBmdW5jOiBtYXRjaFJlZ2V4LCBhcmdzOiBbSE9TVF9QQVRFUk5dIH0sXG4gIHNlc3Npb25BcGk6ICB7IGZ1bmM6IG1hdGNoUmVnZXgsIGFyZ3M6IFtIT1NUX1BBVEVSTl0gfVxuIH1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldENvbmZpZyhjb25mOkFwcGxpY2F0aW9uQ29uZil7XG4gIHJldHVybiAge1xuICAgIGhvc3Q6IGNvbmYuaG9zdCxcbiAgICBuYW1lOiBnZXRTdHJpbmdPckNhbGwoY29uZi5uYW1lKSxcbiAgICB2ZXJzaW9uOiBnZXRTdHJpbmdPckNhbGwoY29uZi52ZXJzaW9uKSA/PyAnJyxcbiAgICBlbnY6IGdldFN0cmluZ09yQ2FsbChjb25mLmVudik/PyAnJyxcbiAgICB1c2VyOiBnZXRTdHJpbmdPckNhbGwoY29uZi51c2VyKSA/PyAnJyxcbiAgICBidWZmZXJNYXhTaXplOiBnZXROdW1iZXJPckNhbGwoY29uZi5idWZmZXJNYXhTaXplKSxcbiAgICBkZWxheTogZ2V0TnVtYmVyT3JDYWxsKGNvbmYuZGVsYXkpLFxuICAgIGluc3RhbmNlQXBpOiBnZXRTdHJpbmdPckNhbGwoY29uZi5zZXNzaW9uQXBpKSxcbiAgICBzZXNzaW9uQXBpOiBnZXRTdHJpbmdPckNhbGwoY29uZi5pbnN0YW5jZUFwaSksXG4gICAgZXhjbHVkZTogZ2V0UmVnQXJyT3JDYWxsKGNvbmYuZXhjbHVkZSkgPz8gW10sIFxuICAgIGRlYnVnOiBjb25mLmRlYnVnID8/IGZhbHNlLFxuICAgIGVuYWJsZWQ6IGNvbmYuZW5hYmxlZCA/PyBmYWxzZVxuICB9XG4gLypcbiAgdGhpcy5sb2dTZXJ2ZXJNYWluID0gdGhpcy5zZXNzaW9uQXBpVVJMKGhvc3QsZ2V0U3RyaW5nT3JDYWxsKGNvbmZpZy5zZXNzaW9uQXBpKSEpO1xuICB0aGlzLmxvZ0luc3RhbmNlRW52ID0gdGhpcy5pbnN0YW5jZUFwaVVSTChob3N0LGdldFN0cmluZ09yQ2FsbChjb25maWcuaW5zdGFuY2VBcGkpISk7XG4gIHRoaXMubWF4QnVmZmVyU2l6ZSA9ICBnZXROdW1iZXJPckNhbGwoY29uZmlnLmJ1ZmZlck1heFNpemUpID8/IDEwMDA7XG4gIHRoaXMuZGVsYXkgPSBnZXROdW1iZXJPckNhbGwoY29uZmlnLmRlbGF5KSA/PyA2MDAwMDtcbiAgKi9cbn0gXG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnR5KHZhbHVlOmFueSwgZnVuYyA6ICguLi5hcmdzOmFueSk9PiBib29sZWFuKXtcbiAgaWYoZnVuYygpKXtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ2Vycm9yJykgLy8gcGFzcyB0aGUgZXJyb3IgcmV0dXJuIGZyb20gdGhlIHRoZSBwYXNzZWQgZnVuY3Rpb24gXG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVBbmRHZXRDb25maWcoY29uZjphbnkpOlRlY2huaWNhbENvbmZ7XG4gIGxldCBob3N0ID0gbWF0Y2hSZWdleChnZXRTdHJpbmdPckNhbGwoY29uZi5ob3N0KSwgXCJob3N0XCIgLCBIT1NUX1BBVEVSTikgXG4gIGxldCBzZXNzaW9uQXBpID0gICBtYXRjaFJlZ2V4KGdldFN0cmluZ09yQ2FsbChjb25mLnNlc3Npb25BcGkpLCdzZXNzaW9uQXBpJywgUEFUSF9QQVRFUk4sKSBcbiAgbGV0IGluc3RhbmNlQXBpID0gIG1hdGNoUmVnZXgoZ2V0U3RyaW5nT3JDYWxsKGNvbmYuc2Vzc2lvbkFwaSksJ2ludGFuY2VBcGknLCBQQVRIX1BBVEVSTiwpXG4gIHJldHVybiAge1xuICAgIHVzZXIgOiBnZXRTdHJpbmdPckNhbGwoY29uZi51c2VyKSxcbiAgICBidWZmZXJNYXhTaXplOiAgcmVxdWlyZVBvc3RpdGl2ZVZhbHVlKGdldE51bWJlck9yQ2FsbChjb25mLmRlbGF5KSxcImJ1ZmZlck1heFNpemVcIiwgMTAwMCkgLFxuICAgIGRlbGF5OiByZXF1aXJlUG9zdGl0aXZlVmFsdWUoZ2V0TnVtYmVyT3JDYWxsKGNvbmYuZGVsYXkpLFwiZGVsYXlcIiwgNjAwMDApICxcbiAgICBpbnN0YW5jZUFwaTogc2Vzc2lvbkFwaVVSTChob3N0LCBzZXNzaW9uQXBpKSxcbiAgICBzZXNzaW9uQXBpOiBpbnN0YW5jZUFwaVVSTChob3N0LCBpbnN0YW5jZUFwaSksXG4gICAgZXhjbHVkZTogZ2V0UmVnQXJyT3JDYWxsKGNvbmYuZXhjbHVkZSkgfHwgW10sXG4gICAgZGVidWc6IGNvbmYuZGVidWcgPz8gZmFsc2UsXG4gICAgZW5hYmxlZDogY29uZi5lbmFibGVkID8/IGZhbHNlXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdldEluc3RhbmNlRW52aXJvbmVtZW50KGNvbmY6QXBwbGljYXRpb25Db25mKXtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogZ2V0U3RyaW5nT3JDYWxsKGNvbmYubmFtZSksXG4gICAgICB2ZXJzaW9uOiBnZXRTdHJpbmdPckNhbGwoY29uZi52ZXJzaW9uKSxcbiAgICAgIGFkZHJlc3M6IHVuZGVmaW5lZCwgLy9zZXJ2ZXIgc2lkZVxuICAgICAgZW52OiBnZXRTdHJpbmdPckNhbGwoY29uZi5lbnYpLFxuICAgICAgb3M6IGRldGVjdE9zKCksXG4gICAgICByZTogZGV0ZWN0QnJvd3NlcigpLFxuICAgICAgdXNlcjogdW5kZWZpbmVkLCAvLyBjYW5ub3QgZ2V0IHVzZXJcbiAgICAgIHR5cGU6IFwiQ0xJRU5UXCIsXG4gICAgICBpbnN0YW50OiBkYXRlTm93KCksXG4gICAgICBjb2xsZWN0b3I6IFwiaW5zcGVjdC1uZy1jb2xsZWN0b3ItMC4wLjFcIlxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROdW1iZXJPckNhbGwobz86IG51bWJlciB8ICgoKSA9PiBudW1iZXIpKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiBvID09PSBcImZ1bmN0aW9uXCIgPyBvKCkgOiBvO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RyaW5nT3JDYWxsKG8/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJmdW5jdGlvblwiID8gbygpIDogbztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZ0Fyck9yQ2FsbChvPzogUmVnRXhwW10gfCAoKCkgPT4gUmVnRXhwW10pKTogUmVnRXhwW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwiZnVuY3Rpb25cIiA/IG8oKSA6IG87XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3RCcm93c2VyKCkge1xuICB0cnkge1xuICAgICAgY29uc3QgYWdlbnQgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpXG4gICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICBjYXNlIGFnZW50LmluZGV4T2YoJ2VkZ2UnKSA+IC0xOlxuICAgICAgICAgICAgICByZXR1cm4gJ2VkZ2UnO1xuICAgICAgICAgIGNhc2UgYWdlbnQuaW5kZXhPZignb3ByJykgPiAtMTpcbiAgICAgICAgICAgICAgcmV0dXJuICdvcGVyYSc7XG4gICAgICAgICAgY2FzZSBhZ2VudC5pbmRleE9mKCdjaHJvbWUnKSA+IC0xOlxuICAgICAgICAgICAgICByZXR1cm4gJ2Nocm9tZSc7XG4gICAgICAgICAgY2FzZSBhZ2VudC5pbmRleE9mKCdmaXJlZm94JykgPiAtMTpcbiAgICAgICAgICAgICAgcmV0dXJuICdmaXJlZm94JztcbiAgICAgICAgICBjYXNlIGFnZW50LmluZGV4T2YoJ3NhZmFyaScpID4gLTE6XG4gICAgICAgICAgICAgIHJldHVybiAnc2FmYXJpJztcbiAgICAgIH1cbiAgfVxuICBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0T3MoKSB7XG4gIHRyeSB7XG4gICAgICBsZXQgdmVyc2lvbk1hdGNoLCB2ZXJzaW9uO1xuICAgICAgY29uc3QgYWdlbnQgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpXG4gICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICBjYXNlICgvd2luZG93cy8udGVzdChhZ2VudCkpOlxuICAgICAgICAgICAgICB2ZXJzaW9uTWF0Y2ggPSAvd2luZG93cyBudCAoXFxkK1xcLlxcZCspLy5leGVjKGFnZW50KTtcbiAgICAgICAgICAgICAgdmVyc2lvbiA9IHZlcnNpb25NYXRjaCA/IHZlcnNpb25NYXRjaFsxXSA6ICdVbmtub3duJztcbiAgICAgICAgICAgICAgcmV0dXJuIGBXaW5kb3dzICR7dmVyc2lvbn1gO1xuICAgICAgICAgIGNhc2UgKC9saW51eC8udGVzdChhZ2VudCkpOlxuICAgICAgICAgICAgICByZXR1cm4gJ0xpbnV4JztcblxuICAgICAgICAgIGNhc2UgKC9tYWNpbnRvc2gvLnRlc3QoYWdlbnQpKTpcbiAgICAgICAgICAgICAgdmVyc2lvbk1hdGNoID0gL21hYyBvcyB4IChcXGQrWy5fXVxcZCtbLl9dXFxkKykvLmV4ZWMoYWdlbnQpO1xuICAgICAgICAgICAgICB2ZXJzaW9uID0gdmVyc2lvbk1hdGNoID8gdmVyc2lvbk1hdGNoWzFdIDogJ1Vua25vd24nO1xuICAgICAgICAgICAgICByZXR1cm4gYE1hY09zICR7dmVyc2lvbn1gXG4gICAgICB9XG4gIH1cbiAgY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaW5zdGFuY2VBcGlVUkwoaG9zdDpzdHJpbmcsIHBhdGg6c3RyaW5nKXtcbiAgcmV0dXJuICB0b1VSTChob3N0LHBhdGgpO1xufVxuXG5mdW5jdGlvbiBzZXNzaW9uQXBpVVJMKGhvc3Q6c3RyaW5nLCBwYXRoOnN0cmluZyl7XG4gIHJldHVybiAgdG9VUkwoaG9zdCxwYXRoKTtcbn1cblxuZnVuY3Rpb24gdG9VUkwoaG9zdDpzdHJpbmcsIHBhdGg6c3RyaW5nICl7XG4gICByZXR1cm4gaG9zdC5lbmRzV2l0aChTTEFTSCkgfHwgcGF0aC5zdGFydHNXaXRoKFNMQVNIKSA/IGhvc3QgKyBwYXRoIDogW2hvc3QscGF0aF0uam9pbihTTEFTSCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFJlZ2V4KHY6IHN0cmluZyB8IHVuZGVmaW5lZCwgIG5hbWU6IHN0cmluZywgcGF0dGVybjogUmVnRXhwLCkge1xuICBpZih2ICYmIHBhdHRlcm4uZXhlYyh2KSl7XG4gICAgIHJldHVybiB2O1xuICB9XG4gIHRocm93IGBiYWQgdmFsdWUgJHtuYW1lfT0ke3Z9LCBwYXR0ZXJuPSR7cGF0dGVybn1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZVBvc3RpdGl2ZVZhbHVlKHY6IG51bWJlciB8IHVuZGVmaW5lZCwgbmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6bnVtYmVyKXtcbiAgaWYodiAmJiB2ID4gMCkge1xuICAgIHJldHVybiB2O1xuICB9XG4gIGlmKHYgPT0gdW5kZWZpbmVkKXtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG4gIHRocm93IGBiYWQgdmFsdWUgJHtuYW1lfT0gJHt2fSA8PSAwYCAgXG59XG5cbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { NavigationEnd, NavigationStart } from "@angular/router";
|
|
3
|
+
import { logInspect } from "./util";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
import * as i2 from "./session-manager.service";
|
|
7
|
+
export class EventManagerService {
|
|
8
|
+
constructor(router, sessionManager) {
|
|
9
|
+
this.router = router;
|
|
10
|
+
this.sessionManager = sessionManager;
|
|
11
|
+
logInspect('initialize EventManagerService');
|
|
12
|
+
window.addEventListener('beforeunload', (event) => {
|
|
13
|
+
this.sessionManager.newSession(); //force
|
|
14
|
+
this.sessionManager.sendSessions();
|
|
15
|
+
});
|
|
16
|
+
this.router.events.subscribe(event => {
|
|
17
|
+
if (event instanceof NavigationStart) {
|
|
18
|
+
this.sessionManager.newSession(event.url);
|
|
19
|
+
}
|
|
20
|
+
if (event instanceof NavigationEnd) {
|
|
21
|
+
this.sessionManager.getCurrentSession().name = document.title;
|
|
22
|
+
this.sessionManager.getCurrentSession().location = document.URL;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventManagerService, deps: [{ token: i1.Router }, { token: i2.SessionManager }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventManagerService, providedIn: 'root' }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventManagerService, decorators: [{
|
|
30
|
+
type: Injectable,
|
|
31
|
+
args: [{ providedIn: 'root' }]
|
|
32
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.SessionManager }]; } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25ldGVtZS9pbnNwZWN0LW5nLWNvbGxlY3Rvci9zcmMvbGliL2V2ZW50LW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUcsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBQyxNQUFNLFFBQVEsQ0FBQzs7OztBQUtuQyxNQUFNLE9BQU8sbUJBQW1CO0lBRTVCLFlBQW9CLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlDLFVBQVUsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUF3QixFQUFRLEVBQUU7WUFDdkUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFBLFFBQVE7WUFDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQyxJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM3QztZQUNELElBQUksS0FBSyxZQUFZLGFBQWEsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7YUFDbkU7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7K0dBbEJRLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTs7NEZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgbG9nSW5zcGVjdH0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgU2Vzc2lvbk1hbmFnZXIgfSBmcm9tIFwiLi9zZXNzaW9uLW1hbmFnZXIuc2VydmljZVwiO1xuXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pIFxuZXhwb3J0IGNsYXNzIEV2ZW50TWFuYWdlclNlcnZpY2UgIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzZXNzaW9uTWFuYWdlcjogU2Vzc2lvbk1hbmFnZXIpIHtcbiAgICAgICAgbG9nSW5zcGVjdCgnaW5pdGlhbGl6ZSBFdmVudE1hbmFnZXJTZXJ2aWNlJyk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCAoZXZlbnQ6IEJlZm9yZVVubG9hZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25NYW5hZ2VyLm5ld1Nlc3Npb24oKTsvL2ZvcmNlIFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uTWFuYWdlci5zZW5kU2Vzc2lvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uTWFuYWdlci5uZXdTZXNzaW9uKGV2ZW50LnVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uTWFuYWdlci5nZXRDdXJyZW50U2Vzc2lvbigpLm5hbWUgPSBkb2N1bWVudC50aXRsZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25NYW5hZ2VyLmdldEN1cnJlbnRTZXNzaW9uKCkubG9jYXRpb24gPSBkb2N1bWVudC5VUkw7IFxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuIFxuXG4gICAgXG5cbiAgXG59XG5cbiJdfQ==
|
|
@@ -3,11 +3,11 @@ import { HttpResponse } from '@angular/common/http';
|
|
|
3
3
|
import { tap, finalize } from 'rxjs/operators';
|
|
4
4
|
import { dateNow } from './util';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./
|
|
6
|
+
import * as i1 from "./session-manager.service";
|
|
7
7
|
export class HttpInterceptorService {
|
|
8
|
-
constructor(
|
|
9
|
-
this.
|
|
10
|
-
}
|
|
8
|
+
constructor(SessionManager) {
|
|
9
|
+
this.SessionManager = SessionManager;
|
|
10
|
+
} // change this to session manager
|
|
11
11
|
intercept(req, next) {
|
|
12
12
|
const start = dateNow();
|
|
13
13
|
let status, responseBody = '', exception;
|
|
@@ -19,7 +19,6 @@ export class HttpInterceptorService {
|
|
|
19
19
|
id = getReqid(event.headers);
|
|
20
20
|
}
|
|
21
21
|
}, error => {
|
|
22
|
-
console.log(error);
|
|
23
22
|
id = getReqid(error.headers);
|
|
24
23
|
status = +error.status;
|
|
25
24
|
exception = {
|
|
@@ -28,7 +27,7 @@ export class HttpInterceptorService {
|
|
|
28
27
|
};
|
|
29
28
|
}), finalize(() => {
|
|
30
29
|
const url = toHref(req.urlWithParams);
|
|
31
|
-
this.
|
|
30
|
+
this.SessionManager.getCurrentSession().restRequests.push({
|
|
32
31
|
id: id,
|
|
33
32
|
method: req.method,
|
|
34
33
|
protocol: url.protocol.slice(0, -1),
|
|
@@ -47,13 +46,13 @@ export class HttpInterceptorService {
|
|
|
47
46
|
});
|
|
48
47
|
}));
|
|
49
48
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpInterceptorService, deps: [{ token: i1.
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpInterceptorService, deps: [{ token: i1.SessionManager }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
51
50
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpInterceptorService, providedIn: 'root' }); }
|
|
52
51
|
}
|
|
53
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpInterceptorService, decorators: [{
|
|
54
53
|
type: Injectable,
|
|
55
54
|
args: [{ providedIn: 'root' }]
|
|
56
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
55
|
+
}], ctorParameters: function () { return [{ type: i1.SessionManager }]; } });
|
|
57
56
|
function toHref(url) {
|
|
58
57
|
const href = document.createElement('a');
|
|
59
58
|
href.setAttribute('href', url);
|
|
@@ -76,4 +75,4 @@ function getReqid(headers) {
|
|
|
76
75
|
function sizeOf(body) {
|
|
77
76
|
return body ? JSON.stringify(body).length : 0;
|
|
78
77
|
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25ldGVtZS9pbnNwZWN0LW5nLWNvbGxlY3Rvci9zcmMvbGliL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBd0QsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7QUFJakMsTUFBTSxPQUFPLHNCQUFzQjtJQUUvQixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBSSxDQUFDLENBQUMsaUNBQWlDO0lBRXpGLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQzlDLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksTUFBYyxFQUFFLFlBQVksR0FBUSxFQUFFLEVBQUUsU0FBd0IsQ0FBQztRQUNyRSxJQUFJLEVBQXFCLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQzVCLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDWCxJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7Z0JBQy9CLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3ZCLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFBO2dCQUN6QixFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoQztRQUNMLENBQUMsRUFDRCxLQUFLLENBQUMsRUFBRTtZQUNKLEVBQUUs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QUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cEludGVyY2VwdG9yLCBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgdGFwLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgRXhjZXB0aW9uSW5mbyB9IGZyb20gJy4vdHJhY2UubW9kZWwnO1xuaW1wb3J0IHsgZGF0ZU5vdyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBTZXNzaW9uTWFuYWdlciB9IGZyb20gJy4vc2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEh0dHBJbnRlcmNlcHRvclNlcnZpY2UgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBTZXNzaW9uTWFuYWdlcjogU2Vzc2lvbk1hbmFnZXIpIHsgfSAvLyBjaGFuZ2UgdGhpcyB0byBzZXNzaW9uIG1hbmFnZXJcblxuICAgIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICBjb25zdCBzdGFydCA9IGRhdGVOb3coKTtcbiAgICAgICAgbGV0IHN0YXR1czogbnVtYmVyLCByZXNwb25zZUJvZHk6IGFueSA9ICcnLCBleGNlcHRpb246IEV4Y2VwdGlvbkluZm87XG4gICAgICAgIGxldCBpZDogc3RyaW5nfCB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUodGFwKFxuICAgICAgICAgICAgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gK2V2ZW50LnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VCb2R5ID0gZXZlbnQuYm9keVxuICAgICAgICAgICAgICAgICAgICBpZCA9IGdldFJlcWlkKGV2ZW50LmhlYWRlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgaWQgPSBnZXRSZXFpZChlcnJvci5oZWFkZXJzKTtcbiAgICAgICAgICAgICAgICBzdGF0dXMgPSArZXJyb3Iuc3RhdHVzO1xuICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZXJyb3IuZXJyb3IuZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLmVycm9yLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICApLCBmaW5hbGl6ZSgoKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHVybCA9IHRvSHJlZihyZXEudXJsV2l0aFBhcmFtcyk7XG4gICAgICAgICAgICB0aGlzLlNlc3Npb25NYW5hZ2VyLmdldEN1cnJlbnRTZXNzaW9uKCkucmVzdFJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgICAgICBtZXRob2Q6IHJlcS5tZXRob2QsXG4gICAgICAgICAgICAgICAgcHJvdG9jb2w6IHVybC5wcm90b2NvbC5zbGljZSgwLCAtMSksXG4gICAgICAgICAgICAgICAgaG9zdDogZXhjdHJhY3RIb3N0KHVybC5ob3N0KSxcbiAgICAgICAgICAgICAgICBwb3J0OiArdXJsLnBvcnQsXG4gICAgICAgICAgICAgICAgcGF0aDogdXJsLnBhdGhuYW1lLFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiB1cmwuc2VhcmNoLnNsaWNlKDEsIHVybC5zZWFyY2gubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogcmVxLnJlc3BvbnNlVHlwZSxcbiAgICAgICAgICAgICAgICBhdXRoU2NoZW1lOiBleHRyYWN0QXV0aFNjaGVtZShyZXEuaGVhZGVycyksXG4gICAgICAgICAgICAgICAgc3RhdHVzOiArc3RhdHVzLFxuICAgICAgICAgICAgICAgIGluRGF0YVNpemU6IHNpemVPZihyZXNwb25zZUJvZHkpLFxuICAgICAgICAgICAgICAgIG91RGF0YVNpemU6IHNpemVPZihyZXEuYm9keSksXG4gICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgICAgIGVuZDogZGF0ZU5vdygpLFxuICAgICAgICAgICAgICAgIGV4Y2VwdGlvbjogZXhjZXB0aW9uXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gdG9IcmVmKHVybDogc3RyaW5nKTogSFRNTEFuY2hvckVsZW1lbnQge1xuICAgIGNvbnN0IGhyZWYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgaHJlZi5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xuICAgIHJldHVybiBocmVmO1xufVxuXG5mdW5jdGlvbiBleGN0cmFjdEhvc3QocGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgcG9ydHJlZ2V4ID0gLzpcXGQrLztcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKHBvcnRyZWdleCwgJycpXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RBdXRoU2NoZW1lKGhlYWRlcnM6IGFueSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGhlYWRlcnMuaGFzKCdhdXRob3JpemF0aW9uJylcbiAgICAgICAgPyBoZWFkZXJzLmdldCgnYXV0aG9yaXphdGlvbicpLm1hdGNoKC9eKFxcdyspIC8pPy5hdCgxKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0UmVxaWQoaGVhZGVyczphbnkpOnN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGhlYWRlcnMuaGFzKCd4LXRyYWNlcnQnKVxuICAgICAgICA/IGhlYWRlcnMuZ2V0KCd4LXRyYWNlcnQnKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mKGJvZHk6IGFueSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGJvZHkgPyBKU09OLnN0cmluZ2lmeShib2R5KS5sZW5ndGggOiAwO1xufVxuIl19
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { NgModule, APP_INITIALIZER } from '@angular/core';
|
|
2
2
|
import { HTTP_INTERCEPTORS, } from '@angular/common/http';
|
|
3
|
+
import { logInspect } from './util';
|
|
4
|
+
import { NavigationEnd, NavigationStart, Router } from '@angular/router';
|
|
5
|
+
import { GetInstanceEnvironement, validateAndGetConfig } from './configuration';
|
|
3
6
|
import { HttpInterceptorService } from './http-interceptor.service';
|
|
4
|
-
import { RouteTracerService } from './route-tracer.service';
|
|
5
|
-
import { getNumberOrCall, requirePostitiveValue, matchRegex, HOST_PATERN, PATH_PATERN, getStringOrCall } from './util';
|
|
6
7
|
import { SessionManager } from './session-manager.service';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export class NgCollectorModule {
|
|
9
|
-
static forRoot(
|
|
10
|
-
if (configuration?.enabled
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
static forRoot(configuration) {
|
|
11
|
+
if (configuration?.enabled) {
|
|
12
|
+
try {
|
|
13
|
+
let config = validateAndGetConfig(configuration);
|
|
14
|
+
let instance = GetInstanceEnvironement(configuration);
|
|
15
|
+
return {
|
|
16
|
+
ngModule: NgCollectorModule,
|
|
17
|
+
providers: [
|
|
18
|
+
SessionManager,
|
|
19
|
+
//EventManagerService,
|
|
20
|
+
{ provide: APP_INITIALIZER, useFactory: initializeEvents, deps: [Router, SessionManager], multi: true },
|
|
21
|
+
{ provide: HTTP_INTERCEPTORS, useClass: HttpInterceptorService, multi: true },
|
|
22
|
+
{ provide: 'instance', useValue: instance },
|
|
23
|
+
{ provide: 'config', useValue: config }
|
|
24
|
+
]
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
console.warn('invalid Configuration, Ng-collector is disabled because', e);
|
|
18
29
|
}
|
|
19
|
-
return {
|
|
20
|
-
ngModule: NgCollectorModule,
|
|
21
|
-
providers: [
|
|
22
|
-
RouteTracerService,
|
|
23
|
-
SessionManager,
|
|
24
|
-
{ provide: APP_INITIALIZER, useFactory: initializeRoutingEvents, deps: [RouteTracerService], multi: true },
|
|
25
|
-
{ provide: HTTP_INTERCEPTORS, useClass: HttpInterceptorService, multi: true },
|
|
26
|
-
{ provide: 'config', useValue: configuration },
|
|
27
|
-
{ provide: 'host', useValue: host }
|
|
28
|
-
]
|
|
29
|
-
};
|
|
30
30
|
}
|
|
31
31
|
return {
|
|
32
32
|
ngModule: NgCollectorModule
|
|
@@ -37,10 +37,24 @@ export class NgCollectorModule {
|
|
|
37
37
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgCollectorModule }); }
|
|
38
38
|
}
|
|
39
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgCollectorModule, decorators: [{
|
|
40
|
-
type: NgModule
|
|
41
|
-
args: [{}]
|
|
40
|
+
type: NgModule
|
|
42
41
|
}] });
|
|
43
|
-
export function
|
|
44
|
-
return () =>
|
|
42
|
+
export function initializeEvents(router, sessionManager) {
|
|
43
|
+
return () => {
|
|
44
|
+
logInspect('initialize routing events listeners');
|
|
45
|
+
window.addEventListener('beforeunload', (event) => {
|
|
46
|
+
sessionManager.newSession(); //force
|
|
47
|
+
sessionManager.sendSessions();
|
|
48
|
+
});
|
|
49
|
+
router.events.subscribe(event => {
|
|
50
|
+
if (event instanceof NavigationStart) {
|
|
51
|
+
sessionManager.newSession(event.url);
|
|
52
|
+
}
|
|
53
|
+
if (event instanceof NavigationEnd) {
|
|
54
|
+
sessionManager.getCurrentSession().name = document.title;
|
|
55
|
+
sessionManager.getCurrentSession().location = document.URL;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
};
|
|
45
59
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY29sbGVjdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZXRlbWUvaW5zcGVjdC1uZy1jb2xsZWN0b3Ivc3JjL2xpYi9uZy1jb2xsZWN0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBbUIsdUJBQXVCLEVBQWEsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBTzNELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUE4QjtRQUMzQyxJQUFHLGFBQWEsRUFBRSxPQUFPLEVBQUM7WUFDeEIsSUFBRztnQkFDRCxJQUFJLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDakQsSUFBSSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3RELE9BQU87b0JBQ0wsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsU0FBUyxFQUFFO3dCQUNULGNBQWM7d0JBQ2Qsc0JBQXNCO3dCQUN0QixFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUN2RyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDN0UsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7d0JBQzNDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO3FCQUN4QztpQkFDRixDQUFDO2FBRUg7WUFBQSxPQUFNLENBQUMsRUFBQztnQkFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLHlEQUF5RCxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzVFO1NBQ0Y7UUFDRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtTQUM1QixDQUFBO0lBQ0gsQ0FBQzsrR0ExQlUsaUJBQWlCO2dIQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsUUFBUTs7QUErQlQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWEsRUFBRSxjQUE4QjtJQUM1RSxPQUFPLEdBQUcsRUFBRTtRQUNWLFVBQVUsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUF3QixFQUFRLEVBQUU7WUFDdkUsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUEsUUFBUTtZQUNwQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QixJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUU7Z0JBQ2xDLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUNoQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDekQsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7YUFDOUQ7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNSLENBQUMsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgQVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUywgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBsb2dJbnNwZWN0IH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29uZiwgR2V0SW5zdGFuY2VFbnZpcm9uZW1lbnQsIHNldENvbmZpZywgdmFsaWRhdGVBbmRHZXRDb25maWcgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgSHR0cEludGVyY2VwdG9yU2VydmljZSB9IGZyb20gJy4vaHR0cC1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25NYW5hZ2VyIH0gZnJvbSAnLi9zZXNzaW9uLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFdmVudE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudC1tYW5hZ2VyLnNlcnZpY2UnO1xuXG5cblxuXG5ATmdNb2R1bGUoKVxuZXhwb3J0IGNsYXNzIE5nQ29sbGVjdG9yTW9kdWxlICB7XG5cbiAgc3RhdGljIGZvclJvb3QoY29uZmlndXJhdGlvbjogQXBwbGljYXRpb25Db25mKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ0NvbGxlY3Rvck1vZHVsZT4ge1xuICAgIGlmKGNvbmZpZ3VyYXRpb24/LmVuYWJsZWQpe1xuICAgICAgdHJ5e1xuICAgICAgICBsZXQgY29uZmlnID0gdmFsaWRhdGVBbmRHZXRDb25maWcoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGxldCBpbnN0YW5jZSA9IEdldEluc3RhbmNlRW52aXJvbmVtZW50KGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5nTW9kdWxlOiBOZ0NvbGxlY3Rvck1vZHVsZSxcbiAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIFNlc3Npb25NYW5hZ2VyLCBcbiAgICAgICAgICAgIC8vRXZlbnRNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCB1c2VGYWN0b3J5OiBpbml0aWFsaXplRXZlbnRzLCBkZXBzOiBbUm91dGVyLCBTZXNzaW9uTWFuYWdlcl0sIG11bHRpOiB0cnVlIH0sXG4gICAgICAgICAgICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogSHR0cEludGVyY2VwdG9yU2VydmljZSwgbXVsdGk6IHRydWUgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogJ2luc3RhbmNlJywgdXNlVmFsdWU6IGluc3RhbmNlIH0sXG4gICAgICAgICAgICB7IHByb3ZpZGU6ICdjb25maWcnLCB1c2VWYWx1ZTogY29uZmlnIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgfWNhdGNoKGUpe1xuICAgICAgICBjb25zb2xlLndhcm4oJ2ludmFsaWQgQ29uZmlndXJhdGlvbiwgTmctY29sbGVjdG9yIGlzIGRpc2FibGVkIGJlY2F1c2UnLCBlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ0NvbGxlY3Rvck1vZHVsZVxuICAgIH1cbiAgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplRXZlbnRzKHJvdXRlcjpSb3V0ZXIsIHNlc3Npb25NYW5hZ2VyOiBTZXNzaW9uTWFuYWdlcikge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGxvZ0luc3BlY3QoJ2luaXRpYWxpemUgcm91dGluZyBldmVudHMgbGlzdGVuZXJzJyk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCAoZXZlbnQ6IEJlZm9yZVVubG9hZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgICBzZXNzaW9uTWFuYWdlci5uZXdTZXNzaW9uKCk7Ly9mb3JjZSBcbiAgICAgICAgICAgIHNlc3Npb25NYW5hZ2VyLnNlbmRTZXNzaW9ucygpO1xuICAgICAgICB9KTtcbiAgICAgICAgcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgc2Vzc2lvbk1hbmFnZXIubmV3U2Vzc2lvbihldmVudC51cmwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgIHNlc3Npb25NYW5hZ2VyLmdldEN1cnJlbnRTZXNzaW9uKCkubmFtZSA9IGRvY3VtZW50LnRpdGxlO1xuICAgICAgICAgICAgICAgIHNlc3Npb25NYW5hZ2VyLmdldEN1cnJlbnRTZXNzaW9uKCkubG9jYXRpb24gPSBkb2N1bWVudC5VUkw7IFxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICB9XG59XG5cblxuIl19
|
|
@@ -1,33 +1,16 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, from, interval, of, tap } from 'rxjs';
|
|
3
|
-
import { dateNow,
|
|
3
|
+
import { dateNow, logInspect, prettySessionFormat } from './util';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
const SLASH = '/';
|
|
6
5
|
export class SessionManager {
|
|
7
|
-
constructor() {
|
|
6
|
+
constructor(config, instance) {
|
|
8
7
|
this.sessionQueue = [];
|
|
9
8
|
this.sessionSendAttempts = 0;
|
|
10
9
|
this.InstanceEnvSendAttempts = 0;
|
|
11
10
|
this.sendSessionfinished = true;
|
|
12
11
|
this.sendInstanceEnvFinished = true;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this.logServerMain = this.sessionApiURL(host, getStringOrCall(config.sessionApi));
|
|
16
|
-
this.logInstanceEnv = this.instanceApiURL(host, getStringOrCall(config.instanceApi));
|
|
17
|
-
this.maxBufferSize = getNumberOrCall(config.bufferMaxSize) ?? 1000;
|
|
18
|
-
this.delay = getNumberOrCall(config.delay) ?? 60000;
|
|
19
|
-
this.instanceEnvironment = {
|
|
20
|
-
name: getStringOrCall(config.name),
|
|
21
|
-
version: getStringOrCall(config.version),
|
|
22
|
-
address: undefined,
|
|
23
|
-
env: getStringOrCall(config.env),
|
|
24
|
-
os: detectOs(),
|
|
25
|
-
re: detectBrowser(),
|
|
26
|
-
user: undefined,
|
|
27
|
-
type: "CLIENT",
|
|
28
|
-
instant: dateNow(),
|
|
29
|
-
collector: "inspect-ng-collector-0.0.1"
|
|
30
|
-
};
|
|
12
|
+
this.config = config;
|
|
13
|
+
this.instanceEnvironment = instance;
|
|
31
14
|
this.scheduledSessionSender = interval(this.delay)
|
|
32
15
|
.pipe(tap(() => {
|
|
33
16
|
if (this.sendSessionfinished) {
|
|
@@ -35,11 +18,31 @@ export class SessionManager {
|
|
|
35
18
|
}
|
|
36
19
|
}))
|
|
37
20
|
.subscribe();
|
|
21
|
+
logInspect('SessionManager initialized');
|
|
38
22
|
}
|
|
39
23
|
addSessions(sessions) {
|
|
40
24
|
this.sessionQueue.push(sessions);
|
|
41
25
|
logInspect("added element to session queue, new size is: " + this.sessionQueue.length);
|
|
42
26
|
}
|
|
27
|
+
newSession(url) {
|
|
28
|
+
if (this.currentSession) {
|
|
29
|
+
this.currentSession.end = dateNow();
|
|
30
|
+
if (this.config.exclude.every((e) => !e.test(this.currentSession.location))) {
|
|
31
|
+
this.addSessions(this.currentSession);
|
|
32
|
+
}
|
|
33
|
+
logInspect(() => prettySessionFormat(this.currentSession));
|
|
34
|
+
}
|
|
35
|
+
if (url) {
|
|
36
|
+
this.currentSession = {
|
|
37
|
+
'@type': "main",
|
|
38
|
+
user: this.config.user,
|
|
39
|
+
start: dateNow(),
|
|
40
|
+
type: "VIEW",
|
|
41
|
+
location: url,
|
|
42
|
+
restRequests: []
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
43
46
|
sendSessions() {
|
|
44
47
|
if (this.sessionQueue.length > 0) {
|
|
45
48
|
this.getInsertedInstanceId().subscribe((id) => {
|
|
@@ -56,7 +59,7 @@ export class SessionManager {
|
|
|
56
59
|
mode: 'cors',
|
|
57
60
|
body: JSON.stringify(sessions)
|
|
58
61
|
};
|
|
59
|
-
fetch(this.
|
|
62
|
+
fetch(this.config.sessionApi, requestOptions)
|
|
60
63
|
.then(data => {
|
|
61
64
|
if (data.ok) {
|
|
62
65
|
logInspect('sessions sent successfully, queue size reset, new size is: ' + this.sessionQueue.length);
|
|
@@ -92,7 +95,7 @@ export class SessionManager {
|
|
|
92
95
|
if (this.instance) {
|
|
93
96
|
return this.instance;
|
|
94
97
|
}
|
|
95
|
-
if (this.sendInstanceEnvFinished) {
|
|
98
|
+
if (this.sendInstanceEnvFinished) { // move up in send session ?
|
|
96
99
|
this.sendInstanceEnvFinished = false;
|
|
97
100
|
const requestOptions = {
|
|
98
101
|
method: 'POST',
|
|
@@ -103,13 +106,13 @@ export class SessionManager {
|
|
|
103
106
|
body: JSON.stringify(this.instanceEnvironment)
|
|
104
107
|
};
|
|
105
108
|
this.sessionSendAttempts++;
|
|
106
|
-
return from(fetch(this.
|
|
109
|
+
return from(fetch(this.config.instanceApi, requestOptions)
|
|
107
110
|
.then(res => res.ok ? res.text().then(id => {
|
|
108
111
|
this.instance = new BehaviorSubject(id);
|
|
109
|
-
this.
|
|
112
|
+
this.config.sessionApi = this.config.sessionApi.replace(':id', id);
|
|
110
113
|
this.sessionSendAttempts = 0;
|
|
111
114
|
logInspect('Environement instance sent successfully');
|
|
112
|
-
return id;
|
|
115
|
+
return id;
|
|
113
116
|
}) : null)
|
|
114
117
|
.catch(err => {
|
|
115
118
|
console.warn(err);
|
|
@@ -120,25 +123,25 @@ export class SessionManager {
|
|
|
120
123
|
}
|
|
121
124
|
return of(null);
|
|
122
125
|
}
|
|
123
|
-
instanceApiURL(host, path) {
|
|
124
|
-
return this.toURL(host, path);
|
|
125
|
-
}
|
|
126
|
-
sessionApiURL(host, path) {
|
|
127
|
-
return this.toURL(host, path);
|
|
128
|
-
}
|
|
129
|
-
toURL(host, path) {
|
|
130
|
-
return host.endsWith(SLASH) || path.startsWith(SLASH) ? host + path : [host, path].join(SLASH);
|
|
131
|
-
}
|
|
132
126
|
ngOnDestroy() {
|
|
133
127
|
if (this.scheduledSessionSender) {
|
|
134
128
|
this.scheduledSessionSender.unsubscribe();
|
|
135
129
|
}
|
|
136
130
|
}
|
|
137
|
-
|
|
131
|
+
getCurrentSession() {
|
|
132
|
+
return this.currentSession;
|
|
133
|
+
}
|
|
134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionManager, deps: [{ token: 'config' }, { token: 'instance' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
138
135
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionManager, providedIn: 'root' }); }
|
|
139
136
|
}
|
|
140
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionManager, decorators: [{
|
|
141
138
|
type: Injectable,
|
|
142
139
|
args: [{ providedIn: 'root' }]
|
|
143
|
-
}], ctorParameters: function () { return [
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmV0ZW1lL2luc3BlY3QtbmctY29sbGVjdG9yL3NyYy9saWIvc2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFnQixHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUV4RyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFHbEIsTUFBTSxPQUFPLGNBQWM7SUFjdkI7UUFOQSxpQkFBWSxHQUFpQixFQUFFLENBQUM7UUFDaEMsd0JBQW1CLEdBQVcsQ0FBQyxDQUFBO1FBQy9CLDRCQUF1QixHQUFXLENBQUMsQ0FBQztRQUVwQyx3QkFBbUIsR0FBVSxJQUFJLENBQUM7UUFDbEMsNEJBQXVCLEdBQVksSUFBSSxDQUFDO0lBR3hDLENBQUM7SUFHRCxVQUFVLENBQUMsTUFBVSxFQUFFLElBQVc7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBRSxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBRSxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLGFBQWEsR0FBSSxlQUFlLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUks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LElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBVyxFQUFFLElBQVc7UUFDbkMsT0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFFLElBQVcsRUFBRyxJQUFXO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELFdBQVc7UUFDUixJQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBQztZQUMzQixJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDN0M7SUFDTCxDQUFDOytHQXhKUSxjQUFjO21IQUFkLGNBQWMsY0FERCxNQUFNOzs0RkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnN0YW5jZUVudmlyb25tZW50LCBNYWluU2Vzc2lvbiB9IGZyb20gJy4vdHJhY2UubW9kZWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBpbnRlcnZhbCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkYXRlTm93LCBkZXRlY3RCcm93c2VyLCBkZXRlY3RPcywgZ2V0TnVtYmVyT3JDYWxsLCBnZXRTdHJpbmdPckNhbGwsIGxvZ0luc3BlY3QgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBTTEFTSCA9ICcvJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTZXNzaW9uTWFuYWdlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBsb2dTZXJ2ZXJNYWluITogc3RyaW5nO1xuICAgIGxvZ0luc3RhbmNlRW52ITogc3RyaW5nO1xuICAgIG1heEJ1ZmZlclNpemUhOiBudW1iZXI7XG4gICAgZGVsYXkhOm51bWJlclxuICAgIGluc3RhbmNlRW52aXJvbm1lbnQgITogSW5zdGFuY2VFbnZpcm9ubWVudDtcbiAgICBzY2hlZHVsZWRTZXNzaW9uU2VuZGVyITogU3Vic2NyaXB0aW9uO1xuICAgIHNlc3Npb25RdWV1ZTogTWFpblNlc3Npb25bXT0gW107XG4gICAgc2Vzc2lvblNlbmRBdHRlbXB0czogbnVtYmVyID0gMFxuICAgIEluc3RhbmNlRW52U2VuZEF0dGVtcHRzOiBudW1iZXIgPSAwO1xuICAgIGluc3RhbmNlITogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz47XG4gICAgc2VuZFNlc3Npb25maW5pc2hlZDpib29sZWFuPSB0cnVlO1xuICAgIHNlbmRJbnN0YW5jZUVudkZpbmlzaGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuXG4gICAgfVxuXG5cbiAgICBpbml0aWFsaXplKGNvbmZpZzphbnksIGhvc3Q6c3RyaW5nKSB7XG4gICAgICAgIHRoaXMubG9nU2VydmVyTWFpbiA9IHRoaXMuc2Vzc2lvbkFwaVVSTChob3N0LGdldFN0cmluZ09yQ2FsbChjb25maWcuc2Vzc2lvbkFwaSkhKTtcbiAgICAgICAgdGhpcy5sb2dJbnN0YW5jZUVudiA9IHRoaXMuaW5zdGFuY2VBcGlVUkwoaG9zdCxnZXRTdHJpbmdPckNhbGwoY29uZmlnLmluc3RhbmNlQXBpKSEpO1xuICAgICAgICB0aGlzLm1heEJ1ZmZlclNpemUgPSAgZ2V0TnVtYmVyT3JDYWxsKGNvbmZpZy5idWZmZXJNYXhTaXplKSA/PyAxMDAwO1xuICAgICAgICB0aGlzLmRlbGF5ID0gZ2V0TnVtYmVyT3JDYWxsKGNvbmZpZy5kZWxheSkgPz8gNjAwMDA7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VFbnZpcm9ubWVudCA9IHtcbiAgICAgICAgICAgIG5hbWU6IGdldFN0cmluZ09yQ2FsbChjb25maWcubmFtZSksXG4gICAgICAgICAgICB2ZXJzaW9uOiBnZXRTdHJpbmdPckNhbGwoY29uZmlnLnZlcnNpb24pLFxuICAgICAgICAgICAgYWRkcmVzczogdW5kZWZpbmVkLCAvL3NlcnZlciBzaWRlXG4gICAgICAgICAgICBlbnY6IGdldFN0cmluZ09yQ2FsbChjb25maWcuZW52KSxcbiAgICAgICAgICAgIG9zOiBkZXRlY3RPcygpLFxuICAgICAgICAgICAgcmU6IGRldGVjdEJyb3dzZXIoKSxcbiAgICAgICAgICAgIHVzZXI6IHVuZGVmaW5lZCwgLy8gY2Fubm90IGdldCB1c2VyXG4gICAgICAgICAgICB0eXBlOiBcIkNMSUVOVFwiLFxuICAgICAgICAgICAgaW5zdGFudDogZGF0ZU5vdygpLFxuICAgICAgICAgICAgY29sbGVjdG9yOiBcImluc3BlY3QtbmctY29sbGVjdG9yLTAuMC4xXCJcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2NoZWR1bGVkU2Vzc2lvblNlbmRlciA9IGludGVydmFsKHRoaXMuZGVsYXkpXG4gICAgICAgIC5waXBlKHRhcCgoKT0+IHtcbiAgICAgICAgICAgIGlmKHRoaXMuc2VuZFNlc3Npb25maW5pc2hlZCl7XG4gICAgICAgICAgICAgICAgdGhpcy5zZW5kU2Vzc2lvbnMoKTtcbiAgICAgICAgICAgIH19KSlcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGFkZFNlc3Npb25zKHNlc3Npb25zOk1haW5TZXNzaW9uKXtcbiAgICAgICAgdGhpcy5zZXNzaW9uUXVldWUucHVzaChzZXNzaW9ucyk7XG4gICAgICAgIGxvZ0luc3BlY3QoXCJhZGRlZCBlbGVtZW50IHRvIHNlc3Npb24gcXVldWUsIG5ldyBzaXplIGlzOiBcIisgdGhpcy5zZXNzaW9uUXVldWUubGVuZ3RoKTtcbiAgICB9XG5cblxuICAgIHNlbmRTZXNzaW9ucygpIHtcbiAgICAgICAgaWYodGhpcy5zZXNzaW9uUXVldWUubGVuZ3RoPiAwKXtcbiAgICAgICAgICAgIHRoaXMuZ2V0SW5zZXJ0ZWRJbnN0YW5jZUlkKCkuc3Vic2NyaWJlKChpZDpzdHJpbmd8bnVsbCk9PntcbiAgICAgICAgICAgICAgICBpZihpZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRTZXNzaW9uZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlc3Npb25zOiBNYWluU2Vzc2lvbltdID0gWy4uLnRoaXMuc2Vzc2lvblF1ZXVlXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uUXVldWUuc3BsaWNlKDAsc2Vzc2lvbnMubGVuZ3RoKTsgLy8gYWRkIHJlc3Qgb2Ygc2Vzc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgbG9nSW5zcGVjdChgc2VuZGluZyBzZXNzaW9ucywgYXR0ZW1wdHM6JHsrK3RoaXMuc2Vzc2lvblNlbmRBdHRlbXB0c30sIHF1ZXVlIHNpemUgOiAke3Nlc3Npb25zLmxlbmd0aH1gKVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlIDogJ2NvcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoc2Vzc2lvbnMpXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgZmV0Y2godGhpcy5sb2dTZXJ2ZXJNYWluLCByZXF1ZXN0T3B0aW9ucylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oZGF0YT0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGEub2spe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0luc3BlY3QoJ3Nlc3Npb25zIHNlbnQgc3VjY2Vzc2Z1bGx5LCBxdWV1ZSBzaXplIHJlc2V0LCBuZXcgc2l6ZSBpczogJyt0aGlzLnNlc3Npb25RdWV1ZS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uU2VuZEF0dGVtcHRzPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBFcnJvciB3aGlsZSBhdHRlbXB0aW5nIHRvIHNlbmQgc2Vzc2lvbnMsIGF0dGVtcHRzOiAke3RoaXMuc2Vzc2lvblNlbmRBdHRlbXB0c31gKS8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXZlcnRRdWV1ZVNpemUoc2Vzc2lvbnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBFcnJvciB3aGlsZSBhdHRlbXB0aW5nIHRvIHNlbmQgc2Vzc2lvbnMsIGF0dGVtcHRzOiAke3RoaXMuc2Vzc2lvblNlbmRBdHRlbXB0c31gLGVycm9yKS8vXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJldmVydFF1ZXVlU2l6ZShzZXNzaW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkoICgpPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kU2Vzc2lvbmZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgIH1lbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBFcnJvciB3aGlsZSBhdHRlbXB0aW5nIHRvIHNlbmQgRW52aXJvbmVtZW50IGluc3RhbmNlLCBhdHRlbXB0cyAke3RoaXMuc2Vzc2lvblNlbmRBdHRlbXB0c31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV2ZXJ0UXVldWVTaXplKHNlc3Npb25zOiBNYWluU2Vzc2lvbltdKXtcbiAgICAgICAgdGhpcy5zZXNzaW9uUXVldWUudW5zaGlmdCguLi5zZXNzaW9ucyk7XG4gICAgICAgIGlmKHRoaXMuc2Vzc2lvblF1ZXVlLmxlbmd0aCA+IHRoaXMubWF4QnVmZmVyU2l6ZSApe1xuICAgICAgICAgICAgbGV0IGRpZmYgPSB0aGlzLnNlc3Npb25RdWV1ZS5sZW5ndGggLSB0aGlzLm1heEJ1ZmZlclNpemU7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25RdWV1ZSA9IHRoaXMuc2Vzc2lvblF1ZXVlLnNsaWNlKDAsdGhpcy5tYXhCdWZmZXJTaXplKTtcbiAgICAgICAgICAgIGxvZ0luc3BlY3QoJ0J1ZmZlciBzaXplIGV4ZWVkZWQgdGhlIG1heCBzaXplLGxhc3Qgc2Vzc2lvbnMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSBidWZmZXIsIChudW1iZXIgb2Ygc2Vzc2lvbnMgcmVtb3ZlZCk6JytkaWZmKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SW5zZXJ0ZWRJbnN0YW5jZUlkKCkgOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBpZih0aGlzLmluc3RhbmNlKXtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmKHRoaXMuc2VuZEluc3RhbmNlRW52RmluaXNoZWQpe1xuICAgICAgICAgICAgdGhpcy5zZW5kSW5zdGFuY2VFbnZGaW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgcmVxdWVzdE9wdGlvbnM6IFJlcXVlc3RJbml0ID0ge1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1vZGU6ICdjb3JzJyxcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh0aGlzLmluc3RhbmNlRW52aXJvbm1lbnQpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU2VuZEF0dGVtcHRzKys7XG4gICAgICAgICAgICByZXR1cm4gZnJvbSggZmV0Y2godGhpcy5sb2dJbnN0YW5jZUVudixyZXF1ZXN0T3B0aW9ucylcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiByZXMub2sgPyByZXMudGV4dCgpLnRoZW4oaWQ9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihpZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dTZXJ2ZXJNYWluID10aGlzLmxvZ1NlcnZlck1haW4ucmVwbGFjZSgnOmlkJyxpZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uU2VuZEF0dGVtcHRzPTA7XG4gICAgICAgICAgICAgICAgbG9nSW5zcGVjdCgnRW52aXJvbmVtZW50IGluc3RhbmNlIHNlbnQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkOyAvLyByZXR1cm4gbG9nc2VydmVyTWFpblxuICAgICAgICAgICAgfSkgOiBudWxsKVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGVycilcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0pLmZpbmFsbHkoKCk9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZW5kSW5zdGFuY2VFbnZGaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgaW5zdGFuY2VBcGlVUkwoaG9zdDpzdHJpbmcsIHBhdGg6c3RyaW5nKXtcbiAgICAgICAgcmV0dXJuICB0aGlzLnRvVVJMKGhvc3QscGF0aCk7XG4gICAgIH1cblxuICAgICBzZXNzaW9uQXBpVVJMKGhvc3Q6c3RyaW5nLCBwYXRoOnN0cmluZyl7XG4gICAgICAgIHJldHVybiAgdGhpcy50b1VSTChob3N0LHBhdGgpO1xuICAgICB9XG5cbiAgICAgdG9VUkwoIGhvc3Q6c3RyaW5nLCAgcGF0aDpzdHJpbmcgKXtcbiAgICAgICAgIHJldHVybiBob3N0LmVuZHNXaXRoKFNMQVNIKSB8fCBwYXRoLnN0YXJ0c1dpdGgoU0xBU0gpID8gaG9zdCArIHBhdGggOiBbaG9zdCxwYXRoXS5qb2luKFNMQVNIKTtcbiAgICAgfVxuXG4gICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZih0aGlzLnNjaGVkdWxlZFNlc3Npb25TZW5kZXIpe1xuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZWRTZXNzaW9uU2VuZGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
140
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
141
|
+
type: Inject,
|
|
142
|
+
args: ['config']
|
|
143
|
+
}] }, { type: undefined, decorators: [{
|
|
144
|
+
type: Inject,
|
|
145
|
+
args: ['instance']
|
|
146
|
+
}] }]; } });
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmV0ZW1lL2luc3BlY3QtbmctY29sbGVjdG9yL3NyYy9saWIvc2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBZ0IsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUMsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sY0FBYztJQWV2QixZQUFnQyxNQUFxQixFQUNuQixRQUE2QjtRQVgvRCxpQkFBWSxHQUFpQixFQUFFLENBQUM7UUFDaEMsd0JBQW1CLEdBQVcsQ0FBQyxDQUFBO1FBQy9CLDRCQUF1QixHQUFXLENBQUMsQ0FBQztRQUVwQyx3QkFBbUIsR0FBVSxJQUFJLENBQUM7UUFDbEMsNEJBQXVCLEdBQVksSUFBSSxDQUFDO1FBT3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRSxFQUFFO1lBQ1YsSUFBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUM7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUN2QjtRQUFBLENBQUMsQ0FBQyxDQUFDO2FBQ1AsU0FBUyxFQUFFLENBQUM7UUFDYixVQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lB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LHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzdDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDOytHQXpKUSxjQUFjLGtCQWVELFFBQVEsYUFDUixVQUFVO21IQWhCdkIsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBZ0JmLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnN0YW5jZUVudmlyb25tZW50LCBNYWluU2Vzc2lvbiB9IGZyb20gJy4vdHJhY2UubW9kZWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBpbnRlcnZhbCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkYXRlTm93LGxvZ0luc3BlY3QsIHByZXR0eVNlc3Npb25Gb3JtYXQgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgVGVjaG5pY2FsQ29uZiB9IGZyb20gJy4vY29uZmlndXJhdGlvbic7XG5cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTZXNzaW9uTWFuYWdlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgbWF4QnVmZmVyU2l6ZSE6IG51bWJlcjtcbiAgICBkZWxheSE6bnVtYmVyXG4gICAgaW5zdGFuY2VFbnZpcm9ubWVudCA6IEluc3RhbmNlRW52aXJvbm1lbnQ7XG4gICAgc2NoZWR1bGVkU2Vzc2lvblNlbmRlciE6IFN1YnNjcmlwdGlvbjtcbiAgICBzZXNzaW9uUXVldWU6IE1haW5TZXNzaW9uW109IFtdO1xuICAgIHNlc3Npb25TZW5kQXR0ZW1wdHM6IG51bWJlciA9IDBcbiAgICBJbnN0YW5jZUVudlNlbmRBdHRlbXB0czogbnVtYmVyID0gMDtcbiAgICBpbnN0YW5jZSE6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+O1xuICAgIHNlbmRTZXNzaW9uZmluaXNoZWQ6Ym9vbGVhbj0gdHJ1ZTtcbiAgICBzZW5kSW5zdGFuY2VFbnZGaW5pc2hlZDogYm9vbGVhbiA9IHRydWU7XG4gICAgXG5cbiAgICBjdXJyZW50U2Vzc2lvbiE6IE1haW5TZXNzaW9uO1xuICAgIGNvbmZpZzogVGVjaG5pY2FsQ29uZjtcbiAgICBjb25zdHJ1Y3RvciggIEBJbmplY3QoJ2NvbmZpZycpIGNvbmZpZzogVGVjaG5pY2FsQ29uZixcbiAgICAgICAgICAgICAgICAgIEBJbmplY3QoJ2luc3RhbmNlJykgaW5zdGFuY2U6IEluc3RhbmNlRW52aXJvbm1lbnQpe1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5pbnN0YW5jZUVudmlyb25tZW50ID0gaW5zdGFuY2U7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVkU2Vzc2lvblNlbmRlciA9IGludGVydmFsKHRoaXMuZGVsYXkpXG4gICAgICAgIC5waXBlKHRhcCgoKT0+IHtcbiAgICAgICAgICAgIGlmKHRoaXMuc2VuZFNlc3Npb25maW5pc2hlZCl7XG4gICAgICAgICAgICAgICAgdGhpcy5zZW5kU2Vzc2lvbnMoKTtcbiAgICAgICAgICAgIH19KSlcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICBsb2dJbnNwZWN0KCdTZXNzaW9uTWFuYWdlciBpbml0aWFsaXplZCcpO1xuICAgIH1cblxuXG5cbiAgICBhZGRTZXNzaW9ucyhzZXNzaW9uczpNYWluU2Vzc2lvbil7XG4gICAgICAgIHRoaXMuc2Vzc2lvblF1ZXVlLnB1c2goc2Vzc2lvbnMpO1xuICAgICAgICBsb2dJbnNwZWN0KFwiYWRkZWQgZWxlbWVudCB0byBzZXNzaW9uIHF1ZXVlLCBuZXcgc2l6ZSBpczogXCIrIHRoaXMuc2Vzc2lvblF1ZXVlLmxlbmd0aCk7XG4gICAgfVxuXG5cbiAgICBuZXdTZXNzaW9uKHVybD86c3RyaW5nKXtcbiAgICAgICAgaWYodGhpcy5jdXJyZW50U2Vzc2lvbil7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTZXNzaW9uLmVuZCA9IGRhdGVOb3coKTtcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnLmV4Y2x1ZGUuZXZlcnkoKGUpID0+ICFlLnRlc3QodGhpcy5jdXJyZW50U2Vzc2lvbi5sb2NhdGlvbikpKXtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFNlc3Npb25zKHRoaXMuY3VycmVudFNlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9nSW5zcGVjdCgoKT0+cHJldHR5U2Vzc2lvbkZvcm1hdCh0aGlzLmN1cnJlbnRTZXNzaW9uKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYodXJsKXtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24gPSB7XG4gICAgICAgICAgICAgICAgJ0B0eXBlJzogXCJtYWluXCIsXG4gICAgICAgICAgICAgICAgdXNlcjogdGhpcy5jb25maWcudXNlcixcbiAgICAgICAgICAgICAgICBzdGFydDogZGF0ZU5vdygpLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiVklFV1wiLFxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiB1cmwsXG4gICAgICAgICAgICAgICAgcmVzdFJlcXVlc3RzOiBbXVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cblxuICAgIHNlbmRTZXNzaW9ucygpIHtcbiAgICAgICAgaWYodGhpcy5zZXNzaW9uUXVldWUubGVuZ3RoPiAwKXtcbiAgICAgICAgICAgIHRoaXMuZ2V0SW5zZXJ0ZWRJbnN0YW5jZUlkKCkuc3Vic2NyaWJlKChpZDpzdHJpbmd8bnVsbCk9PntcbiAgICAgICAgICAgICAgICBpZihpZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRTZXNzaW9uZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlc3Npb25zOiBNYWluU2Vzc2lvbltdID0gWy4uLnRoaXMuc2Vzc2lvblF1ZXVlXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uUXVldWUuc3BsaWNlKDAsc2Vzc2lvbnMubGVuZ3RoKTsgLy8gYWRkIHJlc3Qgb2Ygc2Vzc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgbG9nSW5zcGVjdChgc2VuZGluZyBzZXNzaW9ucywgYXR0ZW1wdHM6JHsrK3RoaXMuc2Vzc2lvblNlbmRBdHRlbXB0c30sIHF1ZXVlIHNpemUgOiAke3Nlc3Npb25zLmxlbmd0aH1gKVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlIDogJ2NvcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoc2Vzc2lvbnMpXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgZmV0Y2godGhpcy5jb25maWcuc2Vzc2lvbkFwaSwgcmVxdWVzdE9wdGlvbnMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGRhdGE9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLm9rKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dJbnNwZWN0KCdzZXNzaW9ucyBzZW50IHN1Y2Nlc3NmdWxseSwgcXVldWUgc2l6ZSByZXNldCwgbmV3IHNpemUgaXM6ICcrdGhpcy5zZXNzaW9uUXVldWUubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblNlbmRBdHRlbXB0cz0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRXJyb3Igd2hpbGUgYXR0ZW1wdGluZyB0byBzZW5kIHNlc3Npb25zLCBhdHRlbXB0czogJHt0aGlzLnNlc3Npb25TZW5kQXR0ZW1wdHN9YCkvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmV2ZXJ0UXVldWVTaXplKHNlc3Npb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRXJyb3Igd2hpbGUgYXR0ZW1wdGluZyB0byBzZW5kIHNlc3Npb25zLCBhdHRlbXB0czogJHt0aGlzLnNlc3Npb25TZW5kQXR0ZW1wdHN9YCxlcnJvcikvL1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXZlcnRRdWV1ZVNpemUoc2Vzc2lvbnMpO1xuICAgICAgICAgICAgICAgICAgICB9KS5maW5hbGx5KCAoKT0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZFNlc3Npb25maW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICB9ZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRXJyb3Igd2hpbGUgYXR0ZW1wdGluZyB0byBzZW5kIEVudmlyb25lbWVudCBpbnN0YW5jZSwgYXR0ZW1wdHMgJHt0aGlzLnNlc3Npb25TZW5kQXR0ZW1wdHN9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldmVydFF1ZXVlU2l6ZShzZXNzaW9uczogTWFpblNlc3Npb25bXSl7XG4gICAgICAgIHRoaXMuc2Vzc2lvblF1ZXVlLnVuc2hpZnQoLi4uc2Vzc2lvbnMpO1xuICAgICAgICBpZih0aGlzLnNlc3Npb25RdWV1ZS5sZW5ndGggPiB0aGlzLm1heEJ1ZmZlclNpemUgKXtcbiAgICAgICAgICAgIGxldCBkaWZmID0gdGhpcy5zZXNzaW9uUXVldWUubGVuZ3RoIC0gdGhpcy5tYXhCdWZmZXJTaXplO1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uUXVldWUgPSB0aGlzLnNlc3Npb25RdWV1ZS5zbGljZSgwLHRoaXMubWF4QnVmZmVyU2l6ZSk7XG4gICAgICAgICAgICBsb2dJbnNwZWN0KCdCdWZmZXIgc2l6ZSBleGVlZGVkIHRoZSBtYXggc2l6ZSxsYXN0IHNlc3Npb25zIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gYnVmZmVyLCAobnVtYmVyIG9mIHNlc3Npb25zIHJlbW92ZWQpOicrZGlmZilcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEluc2VydGVkSW5zdGFuY2VJZCgpIDogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYodGhpcy5pbnN0YW5jZSl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICBpZih0aGlzLnNlbmRJbnN0YW5jZUVudkZpbmlzaGVkKXsvLyBtb3ZlIHVwIGluIHNlbmQgc2Vzc2lvbiAgPyBcbiAgICAgICAgICAgIHRoaXMuc2VuZEluc3RhbmNlRW52RmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtb2RlOiAnY29ycycsXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkodGhpcy5pbnN0YW5jZUVudmlyb25tZW50KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvblNlbmRBdHRlbXB0cysrO1xuICAgICAgICAgICAgcmV0dXJuIGZyb20oIGZldGNoKHRoaXMuY29uZmlnLmluc3RhbmNlQXBpLCByZXF1ZXN0T3B0aW9ucylcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiByZXMub2sgPyByZXMudGV4dCgpLnRoZW4oaWQ9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihpZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcuc2Vzc2lvbkFwaSA9IHRoaXMuY29uZmlnLnNlc3Npb25BcGkgLnJlcGxhY2UoJzppZCcsaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblNlbmRBdHRlbXB0cz0wO1xuICAgICAgICAgICAgICAgIGxvZ0luc3BlY3QoJ0Vudmlyb25lbWVudCBpbnN0YW5jZSBzZW50IHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpZDsgXG4gICAgICAgICAgICB9KSA6IG51bGwpXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyKVxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSkuZmluYWxseSgoKT0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmRJbnN0YW5jZUVudkZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBcblxuICAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYodGhpcy5zY2hlZHVsZWRTZXNzaW9uU2VuZGVyKXtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVkU2Vzc2lvblNlbmRlci51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFNlc3Npb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZXNzaW9uO1xuICAgIH1cbn1cbiJdfQ==
|