@oneteme/inspect-ng-collector 0.0.17 → 0.16.18

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.
@@ -45,16 +45,18 @@ export function detectBrowser() {
45
45
  try {
46
46
  const agent = window.navigator.userAgent.toLowerCase();
47
47
  switch (true) {
48
- case agent.indexOf('edge') > -1:
49
- return 'edge';
48
+ case agent.indexOf('edg') > -1:
49
+ return 'Edge';
50
50
  case agent.indexOf('opr') > -1:
51
- return 'opera';
51
+ return 'Opera';
52
52
  case agent.indexOf('chrome') > -1:
53
- return 'chrome';
53
+ return 'Chrome';
54
54
  case agent.indexOf('firefox') > -1:
55
- return 'firefox';
55
+ return 'Firefox';
56
56
  case agent.indexOf('safari') > -1:
57
- return 'safari';
57
+ return 'Safari';
58
+ case agent.indexOf('msie') > -1:
59
+ return 'Microsoft Internet Explorer';
58
60
  }
59
61
  }
60
62
  catch (e) {
@@ -108,4 +110,4 @@ export function requirePostitiveValue(v, name, defaultValue) {
108
110
  }
109
111
  throw `bad value ${name}=${v} <= 0`;
110
112
  }
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZXRlbWUvaW5zcGVjdC1uZy1jb2xsZWN0b3Ivc3JjL2xpYi9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNsQixNQUFNLFdBQVcsR0FBRyxtQ0FBbUMsQ0FBQztBQUN4RCxNQUFNLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQztBQTJCeEMsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVE7SUFDM0MsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFHLFdBQVcsQ0FBQyxDQUFBO0lBQ3ZFLElBQUksVUFBVSxHQUFLLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUN6RixJQUFJLFdBQVcsR0FBSSxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDMUYsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUM7SUFDL0IsT0FBUTtRQUNOLElBQUksRUFBRyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqQyxhQUFhLEVBQUcscUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO1FBQ2hHLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDeEUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBQzdDLFVBQVUsRUFBRSxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQztRQUM1QyxPQUFPLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQzVDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUs7UUFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSztLQUMvQixDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxJQUFvQjtJQUMxRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2hDLE9BQU8sRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN0QyxPQUFPLEVBQUUsU0FBUztRQUNsQixHQUFHLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDOUIsRUFBRSxFQUFFLFFBQVEsRUFBRTtRQUNkLEVBQUUsRUFBRSxhQUFhLEVBQUU7UUFDbkIsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxPQUFPLEVBQUU7UUFDbEIsU0FBUyxFQUFFLDRCQUE0QjtLQUN4QyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsQ0FBMkI7SUFDekQsT0FBTyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsQ0FBMkI7SUFDekQsT0FBTyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsQ0FBK0I7SUFDN0QsT0FBTyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLElBQUk7UUFDQSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUN0RCxRQUFRLElBQUksRUFBRTtZQUNWLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sT0FBTyxDQUFDO1lBQ25CLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLE9BQU8sUUFBUSxDQUFDO1NBQ3ZCO0tBQ0o7SUFDRCxPQUFPLENBQUMsRUFBRTtRQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDcEI7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVE7SUFDdEIsSUFBSTtRQUNBLElBQUksWUFBWSxFQUFFLE9BQU8sQ0FBQztRQUMxQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUN0RCxRQUFRLElBQUksRUFBRTtZQUNWLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QixZQUFZLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuRCxPQUFPLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDckQsT0FBTyxXQUFXLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixPQUFPLE9BQU8sQ0FBQztZQUVuQixLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsWUFBWSxHQUFHLDhCQUE4QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUQsT0FBTyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3JELE9BQU8sU0FBUyxPQUFPLEVBQUUsQ0FBQTtTQUNoQztLQUNKO0lBQ0QsT0FBTyxDQUFDLEVBQUU7UUFDTixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3BCO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLElBQVcsRUFBRSxJQUFXO0lBQzlDLE9BQVEsS0FBSyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsSUFBVyxFQUFFLElBQVc7SUFDN0MsT0FBUSxLQUFLLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxJQUFXLEVBQUUsSUFBVztJQUNwQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pHLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLENBQXFCLEVBQUcsSUFBWSxFQUFFLE9BQWU7SUFDOUUsSUFBRyxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQztRQUNyQixPQUFPLENBQUMsQ0FBQztLQUNYO0lBQ0QsTUFBTSxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsT0FBTyxFQUFFLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxDQUFxQixFQUFFLElBQVksRUFBRSxZQUFtQjtJQUM1RixJQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2IsT0FBTyxDQUFDLENBQUM7S0FDVjtJQUNELElBQUcsQ0FBQyxJQUFJLFNBQVMsRUFBQztRQUNoQixPQUFPLFlBQVksQ0FBQztLQUNyQjtJQUNELE1BQU0sYUFBYSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRhdGVOb3csIGluaXREZWJ1ZyB9IGZyb20gXCIuL3V0aWxcIjtcbmNvbnN0IFNMQVNIID0gJy8nO1xuY29uc3QgSE9TVF9QQVRFUk4gPSAvaHR0cHM/OlxcL1xcL1tcXHdcXC0uXSsoOlxcZHsyLDV9KT9cXC8/LztcbmNvbnN0IFBBVEhfUEFURVJOID0gL1tcXHctXSsoXFwvW1xcdy1dKykqLztcbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25Db25mIHtcbiAgaG9zdD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpO1xuICB2ZXJzaW9uPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIGVudj86IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpO1xuICB1c2VyPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIGJ1ZmZlck1heFNpemU/OiBudW1iZXIgfCAoKCkgPT4gbnVtYmVyKTtcbiAgZGVsYXk/OiBudW1iZXJ8ICgoKSA9PiBudW1iZXIpO1xuICBpbnN0YW5jZUFwaT86IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpO1xuICBzZXNzaW9uQXBpPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIGV4Y2x1ZGU/OiBSZWdFeHBbXSB8ICgoKSA9PiBSZWdFeHBbXSk7XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVjaG5pY2FsQ29uZiB7XG4gIHVzZXI/OnN0cmluZyA7XG4gIGJ1ZmZlck1heFNpemU6IG51bWJlcjtcbiAgZGVsYXk6IG51bWJlcjtcbiAgaW5zdGFuY2VBcGk6IHN0cmluZztcbiAgc2Vzc2lvbkFwaTogc3RyaW5nO1xuICBleGNsdWRlOiBSZWdFeHBbXTtcbiAgZGVidWc6IGJvb2xlYW47XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUFuZEdldENvbmZpZyhjb25mOmFueSk6VGVjaG5pY2FsQ29uZntcbiAgbGV0IGhvc3QgPSBtYXRjaFJlZ2V4KGdldFN0cmluZ09yQ2FsbChjb25mLmhvc3QpLCBcImhvc3RcIiAsIEhPU1RfUEFURVJOKSBcbiAgbGV0IHNlc3Npb25BcGkgPSAgIG1hdGNoUmVnZXgoZ2V0U3RyaW5nT3JDYWxsKGNvbmYuc2Vzc2lvbkFwaSksJ3Nlc3Npb25BcGknLCBQQVRIX1BBVEVSTikgXG4gIGxldCBpbnN0YW5jZUFwaSA9ICBtYXRjaFJlZ2V4KGdldFN0cmluZ09yQ2FsbChjb25mLmluc3RhbmNlQXBpKSwnaW50YW5jZUFwaScsIFBBVEhfUEFURVJOKVxuICBpbml0RGVidWcoY29uZi5kZWJ1ZyA/PyBmYWxzZSk7XG4gIHJldHVybiAge1xuICAgIHVzZXIgOiBnZXRTdHJpbmdPckNhbGwoY29uZi51c2VyKSxcbiAgICBidWZmZXJNYXhTaXplOiAgcmVxdWlyZVBvc3RpdGl2ZVZhbHVlKGdldE51bWJlck9yQ2FsbChjb25mLmJ1ZmZlck1heFNpemUpLFwiYnVmZmVyTWF4U2l6ZVwiLCAxMDAwKSAsXG4gICAgZGVsYXk6IHJlcXVpcmVQb3N0aXRpdmVWYWx1ZShnZXROdW1iZXJPckNhbGwoY29uZi5kZWxheSksXCJkZWxheVwiLCA2MDAwMCkgLFxuICAgIGluc3RhbmNlQXBpOiBzZXNzaW9uQXBpVVJMKGhvc3QsIGluc3RhbmNlQXBpKSxcbiAgICBzZXNzaW9uQXBpOiBpbnN0YW5jZUFwaVVSTChob3N0LCBzZXNzaW9uQXBpKSxcbiAgICBleGNsdWRlOiBnZXRSZWdBcnJPckNhbGwoY29uZi5leGNsdWRlKSB8fCBbXSxcbiAgICBkZWJ1ZzogY29uZi5kZWJ1ZyA/PyBmYWxzZSxcbiAgICBlbmFibGVkOiBjb25mLmVuYWJsZWQgPz8gZmFsc2VcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gR2V0SW5zdGFuY2VFbnZpcm9uZW1lbnQoY29uZjpBcHBsaWNhdGlvbkNvbmYpe1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGdldFN0cmluZ09yQ2FsbChjb25mLm5hbWUpLFxuICAgIHZlcnNpb246IGdldFN0cmluZ09yQ2FsbChjb25mLnZlcnNpb24pLFxuICAgIGFkZHJlc3M6IHVuZGVmaW5lZCwgLy9zZXJ2ZXIgc2lkZVxuICAgIGVudjogZ2V0U3RyaW5nT3JDYWxsKGNvbmYuZW52KSxcbiAgICBvczogZGV0ZWN0T3MoKSxcbiAgICByZTogZGV0ZWN0QnJvd3NlcigpLFxuICAgIHVzZXI6IHVuZGVmaW5lZCwgLy8gY2Fubm90IGdldCB1c2VyXG4gICAgdHlwZTogXCJDTElFTlRcIixcbiAgICBpbnN0YW50OiBkYXRlTm93KCksXG4gICAgY29sbGVjdG9yOiBcImluc3BlY3QtbmctY29sbGVjdG9yLTAuMC4xXCJcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TnVtYmVyT3JDYWxsKG8/OiBudW1iZXIgfCAoKCkgPT4gbnVtYmVyKSk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJmdW5jdGlvblwiID8gbygpIDogbztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0cmluZ09yQ2FsbChvPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZykpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwiZnVuY3Rpb25cIiA/IG8oKSA6IG87XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWdBcnJPckNhbGwobz86IFJlZ0V4cFtdIHwgKCgpID0+IFJlZ0V4cFtdKSk6IFJlZ0V4cFtdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiBvID09PSBcImZ1bmN0aW9uXCIgPyBvKCkgOiBvO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0QnJvd3NlcigpIHtcbiAgdHJ5IHtcbiAgICAgIGNvbnN0IGFnZW50ID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKVxuICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgY2FzZSBhZ2VudC5pbmRleE9mKCdlZGdlJykgPiAtMTpcbiAgICAgICAgICAgICAgcmV0dXJuICdlZGdlJztcbiAgICAgICAgICBjYXNlIGFnZW50LmluZGV4T2YoJ29wcicpID4gLTE6XG4gICAgICAgICAgICAgIHJldHVybiAnb3BlcmEnO1xuICAgICAgICAgIGNhc2UgYWdlbnQuaW5kZXhPZignY2hyb21lJykgPiAtMTpcbiAgICAgICAgICAgICAgcmV0dXJuICdjaHJvbWUnO1xuICAgICAgICAgIGNhc2UgYWdlbnQuaW5kZXhPZignZmlyZWZveCcpID4gLTE6XG4gICAgICAgICAgICAgIHJldHVybiAnZmlyZWZveCc7XG4gICAgICAgICAgY2FzZSBhZ2VudC5pbmRleE9mKCdzYWZhcmknKSA+IC0xOlxuICAgICAgICAgICAgICByZXR1cm4gJ3NhZmFyaSc7XG4gICAgICB9XG4gIH1cbiAgY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdE9zKCkge1xuICB0cnkge1xuICAgICAgbGV0IHZlcnNpb25NYXRjaCwgdmVyc2lvbjtcbiAgICAgIGNvbnN0IGFnZW50ID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKVxuICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgY2FzZSAoL3dpbmRvd3MvLnRlc3QoYWdlbnQpKTpcbiAgICAgICAgICAgICAgdmVyc2lvbk1hdGNoID0gL3dpbmRvd3MgbnQgKFxcZCtcXC5cXGQrKS8uZXhlYyhhZ2VudCk7XG4gICAgICAgICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uTWF0Y2ggPyB2ZXJzaW9uTWF0Y2hbMV0gOiAnVW5rbm93bic7XG4gICAgICAgICAgICAgIHJldHVybiBgV2luZG93cyAke3ZlcnNpb259YDtcbiAgICAgICAgICBjYXNlICgvbGludXgvLnRlc3QoYWdlbnQpKTpcbiAgICAgICAgICAgICAgcmV0dXJuICdMaW51eCc7XG5cbiAgICAgICAgICBjYXNlICgvbWFjaW50b3NoLy50ZXN0KGFnZW50KSk6XG4gICAgICAgICAgICAgIHZlcnNpb25NYXRjaCA9IC9tYWMgb3MgeCAoXFxkK1suX11cXGQrWy5fXVxcZCspLy5leGVjKGFnZW50KTtcbiAgICAgICAgICAgICAgdmVyc2lvbiA9IHZlcnNpb25NYXRjaCA/IHZlcnNpb25NYXRjaFsxXSA6ICdVbmtub3duJztcbiAgICAgICAgICAgICAgcmV0dXJuIGBNYWNPcyAke3ZlcnNpb259YFxuICAgICAgfVxuICB9XG4gIGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGluc3RhbmNlQXBpVVJMKGhvc3Q6c3RyaW5nLCBwYXRoOnN0cmluZyl7XG4gIHJldHVybiAgdG9VUkwoaG9zdCxwYXRoKTtcbn1cblxuZnVuY3Rpb24gc2Vzc2lvbkFwaVVSTChob3N0OnN0cmluZywgcGF0aDpzdHJpbmcpe1xuICByZXR1cm4gIHRvVVJMKGhvc3QscGF0aCk7XG59XG5cbmZ1bmN0aW9uIHRvVVJMKGhvc3Q6c3RyaW5nLCBwYXRoOnN0cmluZyApe1xuICAgcmV0dXJuIGhvc3QuZW5kc1dpdGgoU0xBU0gpIHx8IHBhdGguc3RhcnRzV2l0aChTTEFTSCkgPyBob3N0ICsgcGF0aCA6IFtob3N0LHBhdGhdLmpvaW4oU0xBU0gpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hSZWdleCh2OiBzdHJpbmcgfCB1bmRlZmluZWQsICBuYW1lOiBzdHJpbmcsIHBhdHRlcm46IFJlZ0V4cCkge1xuICBpZih2ICYmIHBhdHRlcm4uZXhlYyh2KSl7XG4gICAgIHJldHVybiB2O1xuICB9XG4gIHRocm93IGBiYWQgdmFsdWUgJHtuYW1lfT0ke3Z9LCBwYXR0ZXJuPSR7cGF0dGVybn1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZVBvc3RpdGl2ZVZhbHVlKHY6IG51bWJlciB8IHVuZGVmaW5lZCwgbmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6bnVtYmVyKXtcbiAgaWYodiAmJiB2ID4gMCkge1xuICAgIHJldHVybiB2O1xuICB9XG4gIGlmKHYgPT0gdW5kZWZpbmVkKXtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG4gIHRocm93IGBiYWQgdmFsdWUgJHtuYW1lfT0ke3Z9IDw9IDBgICBcbn1cblxuIl19
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZXRlbWUvaW5zcGVjdC1uZy1jb2xsZWN0b3Ivc3JjL2xpYi9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNsQixNQUFNLFdBQVcsR0FBRyxtQ0FBbUMsQ0FBQztBQUN4RCxNQUFNLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQztBQTJCeEMsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVE7SUFDM0MsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFHLFdBQVcsQ0FBQyxDQUFBO0lBQ3ZFLElBQUksVUFBVSxHQUFLLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUN6RixJQUFJLFdBQVcsR0FBSSxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDMUYsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUM7SUFDL0IsT0FBUTtRQUNOLElBQUksRUFBRyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqQyxhQUFhLEVBQUcscUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO1FBQ2hHLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFD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SUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakcsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsQ0FBcUIsRUFBRyxJQUFZLEVBQUUsT0FBZTtJQUM5RSxJQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDO0tBQ1g7SUFDRCxNQUFNLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxPQUFPLEVBQUUsQ0FBQztBQUNyRCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLENBQXFCLEVBQUUsSUFBWSxFQUFFLFlBQW1CO0lBQzVGLElBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDYixPQUFPLENBQUMsQ0FBQztLQUNWO0lBQ0QsSUFBRyxDQUFDLElBQUksU0FBUyxFQUFDO1FBQ2hCLE9BQU8sWUFBWSxDQUFDO0tBQ3JCO0lBQ0QsTUFBTSxhQUFhLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGF0ZU5vdywgaW5pdERlYnVnIH0gZnJvbSBcIi4vdXRpbFwiO1xuY29uc3QgU0xBU0ggPSAnLyc7XG5jb25zdCBIT1NUX1BBVEVSTiA9IC9odHRwcz86XFwvXFwvW1xcd1xcLS5dKyg6XFxkezIsNX0pP1xcLz8vO1xuY29uc3QgUEFUSF9QQVRFUk4gPSAvW1xcdy1dKyhcXC9bXFx3LV0rKSovO1xuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvbkNvbmYge1xuICBob3N0Pzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIHZlcnNpb24/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKTtcbiAgZW52Pzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIHVzZXI/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKTtcbiAgYnVmZmVyTWF4U2l6ZT86IG51bWJlciB8ICgoKSA9PiBudW1iZXIpO1xuICBkZWxheT86IG51bWJlcnwgKCgpID0+IG51bWJlcik7XG4gIGluc3RhbmNlQXBpPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XG4gIHNlc3Npb25BcGk/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKTtcbiAgZXhjbHVkZT86IFJlZ0V4cFtdIHwgKCgpID0+IFJlZ0V4cFtdKTtcbiAgZGVidWc/OiBib29sZWFuO1xuICBlbmFibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZWNobmljYWxDb25mIHtcbiAgdXNlcj86c3RyaW5nIDtcbiAgYnVmZmVyTWF4U2l6ZTogbnVtYmVyO1xuICBkZWxheTogbnVtYmVyO1xuICBpbnN0YW5jZUFwaTogc3RyaW5nO1xuICBzZXNzaW9uQXBpOiBzdHJpbmc7XG4gIGV4Y2x1ZGU6IFJlZ0V4cFtdO1xuICBkZWJ1ZzogYm9vbGVhbjtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQW5kR2V0Q29uZmlnKGNvbmY6YW55KTpUZWNobmljYWxDb25me1xuICBsZXQgaG9zdCA9IG1hdGNoUmVnZXgoZ2V0U3RyaW5nT3JDYWxsKGNvbmYuaG9zdCksIFwiaG9zdFwiICwgSE9TVF9QQVRFUk4pIFxuICBsZXQgc2Vzc2lvbkFwaSA9ICAgbWF0Y2hSZWdleChnZXRTdHJpbmdPckNhbGwoY29uZi5zZXNzaW9uQXBpKSwnc2Vzc2lvbkFwaScsIFBBVEhfUEFURVJOKSBcbiAgbGV0IGluc3RhbmNlQXBpID0gIG1hdGNoUmVnZXgoZ2V0U3RyaW5nT3JDYWxsKGNvbmYuaW5zdGFuY2VBcGkpLCdpbnRhbmNlQXBpJywgUEFUSF9QQVRFUk4pXG4gIGluaXREZWJ1Zyhjb25mLmRlYnVnID8/IGZhbHNlKTtcbiAgcmV0dXJuICB7XG4gICAgdXNlciA6IGdldFN0cmluZ09yQ2FsbChjb25mLnVzZXIpLFxuICAgIGJ1ZmZlck1heFNpemU6ICByZXF1aXJlUG9zdGl0aXZlVmFsdWUoZ2V0TnVtYmVyT3JDYWxsKGNvbmYuYnVmZmVyTWF4U2l6ZSksXCJidWZmZXJNYXhTaXplXCIsIDEwMDApICxcbiAgICBkZWxheTogcmVxdWlyZVBvc3RpdGl2ZVZhbHVlKGdldE51bWJlck9yQ2FsbChjb25mLmRlbGF5KSxcImRlbGF5XCIsIDYwMDAwKSAsXG4gICAgaW5zdGFuY2VBcGk6IHNlc3Npb25BcGlVUkwoaG9zdCwgaW5zdGFuY2VBcGkpLFxuICAgIHNlc3Npb25BcGk6IGluc3RhbmNlQXBpVVJMKGhvc3QsIHNlc3Npb25BcGkpLFxuICAgIGV4Y2x1ZGU6IGdldFJlZ0Fyck9yQ2FsbChjb25mLmV4Y2x1ZGUpIHx8IFtdLFxuICAgIGRlYnVnOiBjb25mLmRlYnVnID8/IGZhbHNlLFxuICAgIGVuYWJsZWQ6IGNvbmYuZW5hYmxlZCA/PyBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBHZXRJbnN0YW5jZUVudmlyb25lbWVudChjb25mOkFwcGxpY2F0aW9uQ29uZil7XG4gIHJldHVybiB7XG4gICAgbmFtZTogZ2V0U3RyaW5nT3JDYWxsKGNvbmYubmFtZSksXG4gICAgdmVyc2lvbjogZ2V0U3RyaW5nT3JDYWxsKGNvbmYudmVyc2lvbiksXG4gICAgYWRkcmVzczogdW5kZWZpbmVkLCAvL3NlcnZlciBzaWRlXG4gICAgZW52OiBnZXRTdHJpbmdPckNhbGwoY29uZi5lbnYpLFxuICAgIG9zOiBkZXRlY3RPcygpLFxuICAgIHJlOiBkZXRlY3RCcm93c2VyKCksXG4gICAgdXNlcjogdW5kZWZpbmVkLCAvLyBjYW5ub3QgZ2V0IHVzZXJcbiAgICB0eXBlOiBcIkNMSUVOVFwiLFxuICAgIGluc3RhbnQ6IGRhdGVOb3coKSxcbiAgICBjb2xsZWN0b3I6IFwiaW5zcGVjdC1uZy1jb2xsZWN0b3ItMC4wLjFcIlxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROdW1iZXJPckNhbGwobz86IG51bWJlciB8ICgoKSA9PiBudW1iZXIpKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiBvID09PSBcImZ1bmN0aW9uXCIgPyBvKCkgOiBvO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RyaW5nT3JDYWxsKG8/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJmdW5jdGlvblwiID8gbygpIDogbztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZ0Fyck9yQ2FsbChvPzogUmVnRXhwW10gfCAoKCkgPT4gUmVnRXhwW10pKTogUmVnRXhwW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwiZnVuY3Rpb25cIiA/IG8oKSA6IG87XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3RCcm93c2VyKCkge1xuICB0cnkge1xuICAgICAgY29uc3QgYWdlbnQgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpXG4gICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICBjYXNlIGFnZW50LmluZGV4T2YoJ2VkZycpID4gLTE6XG4gICAgICAgICAgICAgIHJldHVybiAnRWRnZSc7XG4gICAgICAgICAgY2FzZSBhZ2VudC5pbmRleE9mKCdvcHInKSA+IC0xOlxuICAgICAgICAgICAgICByZXR1cm4gJ09wZXJhJztcbiAgICAgICAgICBjYXNlIGFnZW50LmluZGV4T2YoJ2Nocm9tZScpID4gLTE6XG4gICAgICAgICAgICAgIHJldHVybiAnQ2hyb21lJztcbiAgICAgICAgICBjYXNlIGFnZW50LmluZGV4T2YoJ2ZpcmVmb3gnKSA+IC0xOlxuICAgICAgICAgICAgICByZXR1cm4gJ0ZpcmVmb3gnO1xuICAgICAgICAgIGNhc2UgYWdlbnQuaW5kZXhPZignc2FmYXJpJykgPiAtMTpcbiAgICAgICAgICAgICAgcmV0dXJuICdTYWZhcmknO1xuICAgICAgICAgIGNhc2UgYWdlbnQuaW5kZXhPZignbXNpZScpID4gLTE6XG4gICAgICAgICAgICByZXR1cm4gJ01pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3Jlcic7XG4gICAgICB9XG4gIH1cbiAgY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdE9zKCkge1xuICB0cnkge1xuICAgICAgbGV0IHZlcnNpb25NYXRjaCwgdmVyc2lvbjtcbiAgICAgIGNvbnN0IGFnZW50ID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKVxuICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgY2FzZSAoL3dpbmRvd3MvLnRlc3QoYWdlbnQpKTpcbiAgICAgICAgICAgICAgdmVyc2lvbk1hdGNoID0gL3dpbmRvd3MgbnQgKFxcZCtcXC5cXGQrKS8uZXhlYyhhZ2VudCk7XG4gICAgICAgICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uTWF0Y2ggPyB2ZXJzaW9uTWF0Y2hbMV0gOiAnVW5rbm93bic7XG4gICAgICAgICAgICAgIHJldHVybiBgV2luZG93cyAke3ZlcnNpb259YDtcbiAgICAgICAgICBjYXNlICgvbGludXgvLnRlc3QoYWdlbnQpKTpcbiAgICAgICAgICAgICAgcmV0dXJuICdMaW51eCc7XG5cbiAgICAgICAgICBjYXNlICgvbWFjaW50b3NoLy50ZXN0KGFnZW50KSk6XG4gICAgICAgICAgICAgIHZlcnNpb25NYXRjaCA9IC9tYWMgb3MgeCAoXFxkK1suX11cXGQrWy5fXVxcZCspLy5leGVjKGFnZW50KTtcbiAgICAgICAgICAgICAgdmVyc2lvbiA9IHZlcnNpb25NYXRjaCA/IHZlcnNpb25NYXRjaFsxXSA6ICdVbmtub3duJztcbiAgICAgICAgICAgICAgcmV0dXJuIGBNYWNPcyAke3ZlcnNpb259YFxuICAgICAgfVxuICB9XG4gIGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGluc3RhbmNlQXBpVVJMKGhvc3Q6c3RyaW5nLCBwYXRoOnN0cmluZyl7XG4gIHJldHVybiAgdG9VUkwoaG9zdCxwYXRoKTtcbn1cblxuZnVuY3Rpb24gc2Vzc2lvbkFwaVVSTChob3N0OnN0cmluZywgcGF0aDpzdHJpbmcpe1xuICByZXR1cm4gIHRvVVJMKGhvc3QscGF0aCk7XG59XG5cbmZ1bmN0aW9uIHRvVVJMKGhvc3Q6c3RyaW5nLCBwYXRoOnN0cmluZyApe1xuICAgcmV0dXJuIGhvc3QuZW5kc1dpdGgoU0xBU0gpIHx8IHBhdGguc3RhcnRzV2l0aChTTEFTSCkgPyBob3N0ICsgcGF0aCA6IFtob3N0LHBhdGhdLmpvaW4oU0xBU0gpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hSZWdleCh2OiBzdHJpbmcgfCB1bmRlZmluZWQsICBuYW1lOiBzdHJpbmcsIHBhdHRlcm46IFJlZ0V4cCkge1xuICBpZih2ICYmIHBhdHRlcm4uZXhlYyh2KSl7XG4gICAgIHJldHVybiB2O1xuICB9XG4gIHRocm93IGBiYWQgdmFsdWUgJHtuYW1lfT0ke3Z9LCBwYXR0ZXJuPSR7cGF0dGVybn1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZVBvc3RpdGl2ZVZhbHVlKHY6IG51bWJlciB8IHVuZGVmaW5lZCwgbmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6bnVtYmVyKXtcbiAgaWYodiAmJiB2ID4gMCkge1xuICAgIHJldHVybiB2O1xuICB9XG4gIGlmKHYgPT0gdW5kZWZpbmVkKXtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG4gIHRocm93IGBiYWQgdmFsdWUgJHtuYW1lfT0ke3Z9IDw9IDBgICBcbn1cblxuIl19
@@ -22,8 +22,8 @@ export class HttpInterceptorService {
22
22
  id = getReqid(error.headers);
23
23
  status = +error.status;
24
24
  exception = {
25
- type: error.error.error,
26
- message: error.error.message
25
+ type: error.name,
26
+ message: error.error && error.status ? JSON.stringify(error.error) : error.message
27
27
  };
28
28
  }), finalize(() => {
29
29
  if (this.SessionManager.getCurrentSession()) {
@@ -33,7 +33,7 @@ export class HttpInterceptorService {
33
33
  method: req.method,
34
34
  protocol: url.protocol.slice(0, -1),
35
35
  host: exctractHost(url.host),
36
- port: +url.port,
36
+ port: +url.port || -1,
37
37
  path: url.pathname,
38
38
  query: url.search.slice(1, url.search.length),
39
39
  contentType: req.responseType,
@@ -77,4 +77,4 @@ function getReqid(headers) {
77
77
  function sizeOf(body) {
78
78
  return body ? JSON.stringify(body).length : 0;
79
79
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25ldGVtZS9pbnNwZWN0LW5nLWNvbGxlY3Rvci9zcmMvbGliL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBd0QsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7QUFJakMsTUFBTSxPQUFPLHNCQUFzQjtJQUUvQixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBSSxDQUFDLENBQUMsaUNBQWlDO0lBRXpGLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQzlDLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksTUFBYyxFQUFFLFlBQVksR0FBUSxFQUFFLEVBQUUsU0FBd0IsQ0FBQztRQUNyRSxJQUFJLEVBQXFCLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQzVCLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDWCxJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7Z0JBQy9CLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3ZCLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFBO2dCQUN6QixFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoQztRQUNMLENBQUMsRUFDRCxLQUFLLENBQUMsRUFBRTtZQUNKLEVBQUUs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QUFTO0lBQ3JCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwSW50ZXJjZXB0b3IsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBFeGNlcHRpb25JbmZvIH0gZnJvbSAnLi90cmFjZS5tb2RlbCc7XG5pbXBvcnQgeyBkYXRlTm93IH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IFNlc3Npb25NYW5hZ2VyIH0gZnJvbSAnLi9zZXNzaW9uLW1hbmFnZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSHR0cEludGVyY2VwdG9yU2VydmljZSBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIFNlc3Npb25NYW5hZ2VyOiBTZXNzaW9uTWFuYWdlcikgeyB9IC8vIGNoYW5nZSB0aGlzIHRvIHNlc3Npb24gbWFuYWdlclxuXG4gICAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gZGF0ZU5vdygpO1xuICAgICAgICBsZXQgc3RhdHVzOiBudW1iZXIsIHJlc3BvbnNlQm9keTogYW55ID0gJycsIGV4Y2VwdGlvbjogRXhjZXB0aW9uSW5mbztcbiAgICAgICAgbGV0IGlkOiBzdHJpbmd8IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZSh0YXAoXG4gICAgICAgICAgICAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSArZXZlbnQuc3RhdHVzO1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zZUJvZHkgPSBldmVudC5ib2R5XG4gICAgICAgICAgICAgICAgICAgIGlkID0gZ2V0UmVxaWQoZXZlbnQuaGVhZGVycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBpZCA9IGdldFJlcWlkKGVycm9yLmhlYWRlcnMpO1xuICAgICAgICAgICAgICAgIHN0YXR1cyA9ICtlcnJvci5zdGF0dXM7XG4gICAgICAgICAgICAgICAgZXhjZXB0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBlcnJvci5lcnJvci5lcnJvcixcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IuZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICksIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIGlmKHRoaXMuU2Vzc2lvbk1hbmFnZXIuZ2V0Q3VycmVudFNlc3Npb24oKSl7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gdG9IcmVmKHJlcS51cmxXaXRoUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB0aGlzLlNlc3Npb25NYW5hZ2VyLmdldEN1cnJlbnRTZXNzaW9uKCkucmVzdFJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogcmVxLm1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2w6IHVybC5wcm90b2NvbC5zbGljZSgwLCAtMSksXG4gICAgICAgICAgICAgICAgICAgIGhvc3Q6IGV4Y3RyYWN0SG9zdCh1cmwuaG9zdCksXG4gICAgICAgICAgICAgICAgICAgIHBvcnQ6ICt1cmwucG9ydCxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogdXJsLnBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogdXJsLnNlYXJjaC5zbGljZSgxLCB1cmwuc2VhcmNoLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiByZXEucmVzcG9uc2VUeXBlLFxuICAgICAgICAgICAgICAgICAgICBhdXRoU2NoZW1lOiBleHRyYWN0QXV0aFNjaGVtZShyZXEuaGVhZGVycyksXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogK3N0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgaW5EYXRhU2l6ZTogc2l6ZU9mKHJlc3BvbnNlQm9keSksXG4gICAgICAgICAgICAgICAgICAgIG91RGF0YVNpemU6IHNpemVPZihyZXEuYm9keSksXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiBkYXRlTm93KCksXG4gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbjogZXhjZXB0aW9uXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHRvSHJlZih1cmw6IHN0cmluZyk6IEhUTUxBbmNob3JFbGVtZW50IHtcbiAgICBjb25zdCBocmVmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGhyZWYuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcbiAgICByZXR1cm4gaHJlZjtcbn1cblxuZnVuY3Rpb24gZXhjdHJhY3RIb3N0KHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHBvcnRyZWdleCA9IC86XFxkKy87XG4gICAgcmV0dXJuIHBhdGgucmVwbGFjZShwb3J0cmVnZXgsICcnKVxufVxuXG5mdW5jdGlvbiBleHRyYWN0QXV0aFNjaGVtZShoZWFkZXJzOiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBoZWFkZXJzLmhhcygnYXV0aG9yaXphdGlvbicpXG4gICAgICAgID8gaGVhZGVycy5nZXQoJ2F1dGhvcml6YXRpb24nKS5tYXRjaCgvXihcXHcrKSAvKT8uYXQoMSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldFJlcWlkKGhlYWRlcnM6YW55KTpzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBoZWFkZXJzLmhhcygneC10cmFjZXJ0JylcbiAgICAgICAgPyBoZWFkZXJzLmdldCgneC10cmFjZXJ0JylcbiAgICAgICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHNpemVPZihib2R5OiBhbnkpOiBudW1iZXIge1xuICAgIHJldHVybiBib2R5ID8gSlNPTi5zdHJpbmdpZnkoYm9keSkubGVuZ3RoIDogMDtcbn1cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25ldGVtZS9pbnNwZWN0LW5nLWNvbGxlY3Rvci9zcmMvbGliL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBd0QsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7QUFJakMsTUFBTSxPQUFPLHNCQUFzQjtJQUUvQixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBSSxDQUFDLENBQUMsaUNBQWlDO0lBRXpGLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQzlDLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksTUFBYyxFQUFFLFlBQVksR0FBUSxFQUFFLEVBQUUsU0FBd0IsQ0FBQztRQUNyRSxJQUFJLEVBQXFCLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQzVCLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDWCxJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7Z0JBQy9CLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3ZCLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFBO2dCQUN6QixFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoQztRQUNMLENBQUMsRUFDRCxLQUFLLENBQUMsRUFBRTtZQUNKLEVBQUUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdkIsU0FBUyxHQUFHO2dCQUNSLElBQUksRUFBRyxLQUFLLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPO2FBQ3RGLENBQUE7UUFDTCxDQUFDLENBQ0osRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLEVBQUM7Z0JBQ3ZDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO29CQUN0RCxFQUFFLEVBQUUsRUFBRTtvQkFDTixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07b0JBQ2xCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ25DLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztvQkFDNUIsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7b0JBQ3JCLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUTtvQkFDbEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztvQkFDN0MsV0FBVyxFQUFFLEdBQUcsQ0FBQyxZQUFZO29CQUM3QixVQUFVLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztvQkFDMUMsTUFBTSxFQUFFLENBQUMsTUFBTTtvQkFDZixVQUFVLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQztvQkFDaEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO29CQUM1QixLQUFLLEVBQUUsS0FBSztvQkFDWixHQUFHLEVBQUUsT0FBTyxFQUFFO29CQUNkLFNBQVMsRUFBRSxTQUFTO2lCQUN2QixDQUFDLENBQUM7YUFDTjtRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOytHQTlDUSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQURULE1BQU07OzRGQUNuQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQWtEbEMsU0FBUyxNQUFNLENBQUMsR0FBVztJQUN2QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUFZO0lBQzlCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ3RDLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLE9BQVk7SUFDbkMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUMvQixDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxPQUFXO0lBQ3pCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDM0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDcEIsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLElBQVM7SUFDckIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBJbnRlcmNlcHRvciwgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCwgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEV4Y2VwdGlvbkluZm8gfSBmcm9tICcuL3RyYWNlLm1vZGVsJztcbmltcG9ydCB7IGRhdGVOb3cgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgU2Vzc2lvbk1hbmFnZXIgfSBmcm9tICcuL3Nlc3Npb24tbWFuYWdlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBIdHRwSW50ZXJjZXB0b3JTZXJ2aWNlIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgU2Vzc2lvbk1hbmFnZXI6IFNlc3Npb25NYW5hZ2VyKSB7IH0gLy8gY2hhbmdlIHRoaXMgdG8gc2Vzc2lvbiBtYW5hZ2VyXG5cbiAgICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBkYXRlTm93KCk7XG4gICAgICAgIGxldCBzdGF0dXM6IG51bWJlciwgcmVzcG9uc2VCb2R5OiBhbnkgPSAnJywgZXhjZXB0aW9uOiBFeGNlcHRpb25JbmZvO1xuICAgICAgICBsZXQgaWQ6IHN0cmluZ3wgdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKHRhcChcbiAgICAgICAgICAgIChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICtldmVudC5zdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlQm9keSA9IGV2ZW50LmJvZHlcbiAgICAgICAgICAgICAgICAgICAgaWQgPSBnZXRSZXFpZChldmVudC5oZWFkZXJzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIGlkID0gZ2V0UmVxaWQoZXJyb3IuaGVhZGVycyk7XG4gICAgICAgICAgICAgICAgc3RhdHVzID0gK2Vycm9yLnN0YXR1cztcbiAgICAgICAgICAgICAgICBleGNlcHRpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGUgOiBlcnJvci5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvciAmJiBlcnJvci5zdGF0dXMgPyAgSlNPTi5zdHJpbmdpZnkoZXJyb3IuZXJyb3IpIDogZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICksIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIGlmKHRoaXMuU2Vzc2lvbk1hbmFnZXIuZ2V0Q3VycmVudFNlc3Npb24oKSl7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gdG9IcmVmKHJlcS51cmxXaXRoUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB0aGlzLlNlc3Npb25NYW5hZ2VyLmdldEN1cnJlbnRTZXNzaW9uKCkucmVzdFJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogcmVxLm1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2w6IHVybC5wcm90b2NvbC5zbGljZSgwLCAtMSksXG4gICAgICAgICAgICAgICAgICAgIGhvc3Q6IGV4Y3RyYWN0SG9zdCh1cmwuaG9zdCksXG4gICAgICAgICAgICAgICAgICAgIHBvcnQ6ICt1cmwucG9ydCB8fCAtMSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogdXJsLnBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogdXJsLnNlYXJjaC5zbGljZSgxLCB1cmwuc2VhcmNoLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiByZXEucmVzcG9uc2VUeXBlLFxuICAgICAgICAgICAgICAgICAgICBhdXRoU2NoZW1lOiBleHRyYWN0QXV0aFNjaGVtZShyZXEuaGVhZGVycyksXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogK3N0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgaW5EYXRhU2l6ZTogc2l6ZU9mKHJlc3BvbnNlQm9keSksXG4gICAgICAgICAgICAgICAgICAgIG91RGF0YVNpemU6IHNpemVPZihyZXEuYm9keSksXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiBkYXRlTm93KCksXG4gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbjogZXhjZXB0aW9uXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHRvSHJlZih1cmw6IHN0cmluZyk6IEhUTUxBbmNob3JFbGVtZW50IHtcbiAgICBjb25zdCBocmVmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGhyZWYuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcbiAgICByZXR1cm4gaHJlZjtcbn1cblxuZnVuY3Rpb24gZXhjdHJhY3RIb3N0KHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHBvcnRyZWdleCA9IC86XFxkKy87XG4gICAgcmV0dXJuIHBhdGgucmVwbGFjZShwb3J0cmVnZXgsICcnKVxufVxuXG5mdW5jdGlvbiBleHRyYWN0QXV0aFNjaGVtZShoZWFkZXJzOiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBoZWFkZXJzLmhhcygnYXV0aG9yaXphdGlvbicpXG4gICAgICAgID8gaGVhZGVycy5nZXQoJ2F1dGhvcml6YXRpb24nKS5tYXRjaCgvXihcXHcrKSAvKT8uYXQoMSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldFJlcWlkKGhlYWRlcnM6YW55KTpzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBoZWFkZXJzLmhhcygneC10cmFjZXJ0JylcbiAgICAgICAgPyBoZWFkZXJzLmdldCgneC10cmFjZXJ0JylcbiAgICAgICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHNpemVPZihib2R5OiBhbnkpOiBudW1iZXIge1xuICAgIHJldHVybiBib2R5ID8gSlNPTi5zdHJpbmdpZnkoYm9keSkubGVuZ3RoIDogMDtcbn1cbiJdfQ==
@@ -44,7 +44,9 @@ export function initializeEvents(router, sessionManager) {
44
44
  return () => {
45
45
  logInspect('initialize routing events listeners');
46
46
  window.addEventListener('beforeunload', event => {
47
- sessionManager.newSession();
47
+ if (!sessionManager.getCurrentSession().loading) {
48
+ sessionManager.newSession();
49
+ }
48
50
  sessionManager.sendSessions();
49
51
  });
50
52
  router.events.subscribe(event => {
@@ -54,8 +56,9 @@ export function initializeEvents(router, sessionManager) {
54
56
  if (event instanceof NavigationEnd) {
55
57
  sessionManager.getCurrentSession().name = document.title;
56
58
  sessionManager.getCurrentSession().location = document.URL;
59
+ delete sessionManager.getCurrentSession().loading;
57
60
  }
58
61
  });
59
62
  };
60
63
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY29sbGVjdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZXRlbWUvaW5zcGVjdC1uZy1jb2xsZWN0b3Ivc3JjL2xpYi9uZy1jb2xsZWN0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBbUIsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRzNELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUE4QjtRQUMzQyxJQUFHLGFBQWEsRUFBRSxPQUFPLEVBQUM7WUFDeEIsSUFBRztnQkFDRCxJQUFJLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDakQsSUFBSSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3RELFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLE9BQU87b0JBQ0wsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsU0FBUyxFQUFFO3dCQUNULGNBQWM7d0JBQ2QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDdkcsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7d0JBQzdFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO3dCQUMzQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtxQkFDeEM7aUJBQ0YsQ0FBQzthQUNIO1lBQUEsT0FBTSxDQUFDLEVBQUM7Z0JBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQywyREFBMkQsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM5RTtTQUNGO1FBQ0QsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7U0FDNUIsQ0FBQTtJQUNILENBQUM7K0dBMUJVLGlCQUFpQjtnSEFBakIsaUJBQWlCO2dIQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFFBQVE7O0FBOEJULE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFhLEVBQUUsY0FBOEI7SUFDNUUsT0FBTyxHQUFHLEVBQUU7UUFDVixVQUFVLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQSxFQUFFO1lBQzNDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QixJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUU7Z0JBQ2xDLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUNoQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDekQsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7YUFDOUQ7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNSLENBQUMsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgQVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUywgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBsb2dJbnNwZWN0IH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29uZiwgR2V0SW5zdGFuY2VFbnZpcm9uZW1lbnQsIHZhbGlkYXRlQW5kR2V0Q29uZmlnIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEh0dHBJbnRlcmNlcHRvclNlcnZpY2UgfSBmcm9tICcuL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uTWFuYWdlciB9IGZyb20gJy4vc2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoKVxuZXhwb3J0IGNsYXNzIE5nQ29sbGVjdG9yTW9kdWxlICB7XG5cbiAgc3RhdGljIGZvclJvb3QoY29uZmlndXJhdGlvbjogQXBwbGljYXRpb25Db25mKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ0NvbGxlY3Rvck1vZHVsZT4ge1xuICAgIGlmKGNvbmZpZ3VyYXRpb24/LmVuYWJsZWQpe1xuICAgICAgdHJ5e1xuICAgICAgICBsZXQgY29uZmlnID0gdmFsaWRhdGVBbmRHZXRDb25maWcoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGxldCBpbnN0YW5jZSA9IEdldEluc3RhbmNlRW52aXJvbmVtZW50KGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICBsb2dJbnNwZWN0KEpTT04uc3RyaW5naWZ5KGNvbmZpZykpO1xuICAgICAgICBsb2dJbnNwZWN0KEpTT04uc3RyaW5naWZ5KGluc3RhbmNlKSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmdNb2R1bGU6IE5nQ29sbGVjdG9yTW9kdWxlLFxuICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgU2Vzc2lvbk1hbmFnZXIsIFxuICAgICAgICAgICAgeyBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsIHVzZUZhY3Rvcnk6IGluaXRpYWxpemVFdmVudHMsIGRlcHM6IFtSb3V0ZXIsIFNlc3Npb25NYW5hZ2VyXSwgbXVsdGk6IHRydWUgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBIdHRwSW50ZXJjZXB0b3JTZXJ2aWNlLCBtdWx0aTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBwcm92aWRlOiAnaW5zdGFuY2UnLCB1c2VWYWx1ZTogaW5zdGFuY2UgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogJ2NvbmZpZycsIHVzZVZhbHVlOiBjb25maWcgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICAgIH1jYXRjaChlKXtcbiAgICAgICAgY29uc29sZS53YXJuKGBpbnZhbGlkIENvbmZpZ3VyYXRpb24sIE5nLWNvbGxlY3RvciBpcyBkaXNhYmxlZCBiZWNhdXNlICR7ZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ0NvbGxlY3Rvck1vZHVsZVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUV2ZW50cyhyb3V0ZXI6Um91dGVyLCBzZXNzaW9uTWFuYWdlcjogU2Vzc2lvbk1hbmFnZXIpIHtcbiAgcmV0dXJuICgpID0+IHtcbiAgICBsb2dJbnNwZWN0KCdpbml0aWFsaXplIHJvdXRpbmcgZXZlbnRzIGxpc3RlbmVycycpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgZXZlbnQ9PiB7XG4gICAgICAgICAgICBzZXNzaW9uTWFuYWdlci5uZXdTZXNzaW9uKCk7XG4gICAgICAgICAgICBzZXNzaW9uTWFuYWdlci5zZW5kU2Vzc2lvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgICAgIHNlc3Npb25NYW5hZ2VyLm5ld1Nlc3Npb24oZXZlbnQudXJsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICBzZXNzaW9uTWFuYWdlci5nZXRDdXJyZW50U2Vzc2lvbigpLm5hbWUgPSBkb2N1bWVudC50aXRsZTtcbiAgICAgICAgICAgICAgICBzZXNzaW9uTWFuYWdlci5nZXRDdXJyZW50U2Vzc2lvbigpLmxvY2F0aW9uID0gZG9jdW1lbnQuVVJMOyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgfVxufVxuXG5cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY29sbGVjdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZXRlbWUvaW5zcGVjdC1uZy1jb2xsZWN0b3Ivc3JjL2xpYi9uZy1jb2xsZWN0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBbUIsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRzNELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUE4QjtRQUMzQyxJQUFJLGFBQWEsRUFBRSxPQUFPLEVBQUU7WUFDMUIsSUFBSTtnQkFDRixJQUFJLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDakQsSUFBSSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3RELFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLE9BQU87b0JBQ0wsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsU0FBUyxFQUFFO3dCQUNULGNBQWM7d0JBQ2QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDdkcsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7d0JBQzdFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO3dCQUMzQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtxQkFDeEM7aUJBQ0YsQ0FBQzthQUNIO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQywyREFBMkQsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM5RTtTQUNGO1FBQ0QsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7U0FDNUIsQ0FBQTtJQUNILENBQUM7K0dBMUJVLGlCQUFpQjtnSEFBakIsaUJBQWlCO2dIQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFFBQVE7O0FBOEJULE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsY0FBOEI7SUFDN0UsT0FBTyxHQUFHLEVBQUU7UUFDVixVQUFVLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQzlDLElBQUcsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLEVBQUM7Z0JBQzdDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM3QjtZQUNELGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUMvQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksS0FBSyxZQUFZLGVBQWUsRUFBRTtnQkFDcEMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdEM7WUFDRCxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUU7Z0JBQ2xDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUN6RCxjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDM0QsT0FBTyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDbkQ7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgQVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUywgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBsb2dJbnNwZWN0IH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29uZiwgR2V0SW5zdGFuY2VFbnZpcm9uZW1lbnQsIHZhbGlkYXRlQW5kR2V0Q29uZmlnIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEh0dHBJbnRlcmNlcHRvclNlcnZpY2UgfSBmcm9tICcuL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uTWFuYWdlciB9IGZyb20gJy4vc2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoKVxuZXhwb3J0IGNsYXNzIE5nQ29sbGVjdG9yTW9kdWxlIHtcblxuICBzdGF0aWMgZm9yUm9vdChjb25maWd1cmF0aW9uOiBBcHBsaWNhdGlvbkNvbmYpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nQ29sbGVjdG9yTW9kdWxlPiB7XG4gICAgaWYgKGNvbmZpZ3VyYXRpb24/LmVuYWJsZWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxldCBjb25maWcgPSB2YWxpZGF0ZUFuZEdldENvbmZpZyhjb25maWd1cmF0aW9uKTtcbiAgICAgICAgbGV0IGluc3RhbmNlID0gR2V0SW5zdGFuY2VFbnZpcm9uZW1lbnQoY29uZmlndXJhdGlvbik7XG4gICAgICAgIGxvZ0luc3BlY3QoSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XG4gICAgICAgIGxvZ0luc3BlY3QoSlNPTi5zdHJpbmdpZnkoaW5zdGFuY2UpKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuZ01vZHVsZTogTmdDb2xsZWN0b3JNb2R1bGUsXG4gICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICBTZXNzaW9uTWFuYWdlcixcbiAgICAgICAgICAgIHsgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCB1c2VGYWN0b3J5OiBpbml0aWFsaXplRXZlbnRzLCBkZXBzOiBbUm91dGVyLCBTZXNzaW9uTWFuYWdlcl0sIG11bHRpOiB0cnVlIH0sXG4gICAgICAgICAgICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogSHR0cEludGVyY2VwdG9yU2VydmljZSwgbXVsdGk6IHRydWUgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogJ2luc3RhbmNlJywgdXNlVmFsdWU6IGluc3RhbmNlIH0sXG4gICAgICAgICAgICB7IHByb3ZpZGU6ICdjb25maWcnLCB1c2VWYWx1ZTogY29uZmlnIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgaW52YWxpZCBDb25maWd1cmF0aW9uLCBOZy1jb2xsZWN0b3IgaXMgZGlzYWJsZWQgYmVjYXVzZSAke2V9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmdDb2xsZWN0b3JNb2R1bGVcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVFdmVudHMocm91dGVyOiBSb3V0ZXIsIHNlc3Npb25NYW5hZ2VyOiBTZXNzaW9uTWFuYWdlcikge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGxvZ0luc3BlY3QoJ2luaXRpYWxpemUgcm91dGluZyBldmVudHMgbGlzdGVuZXJzJyk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsIGV2ZW50ID0+IHtcbiAgICAgIGlmKCFzZXNzaW9uTWFuYWdlci5nZXRDdXJyZW50U2Vzc2lvbigpLmxvYWRpbmcpe1xuICAgICAgICBzZXNzaW9uTWFuYWdlci5uZXdTZXNzaW9uKCk7XG4gICAgICB9XG4gICAgICBzZXNzaW9uTWFuYWdlci5zZW5kU2Vzc2lvbnMoKVxuICAgIH0pO1xuICAgIHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICBzZXNzaW9uTWFuYWdlci5uZXdTZXNzaW9uKGV2ZW50LnVybCk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIHNlc3Npb25NYW5hZ2VyLmdldEN1cnJlbnRTZXNzaW9uKCkubmFtZSA9IGRvY3VtZW50LnRpdGxlO1xuICAgICAgICBzZXNzaW9uTWFuYWdlci5nZXRDdXJyZW50U2Vzc2lvbigpLmxvY2F0aW9uID0gZG9jdW1lbnQuVVJMO1xuICAgICAgICBkZWxldGUgc2Vzc2lvbk1hbmFnZXIuZ2V0Q3VycmVudFNlc3Npb24oKS5sb2FkaW5nO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cblxuXG4iXX0=
@@ -35,6 +35,7 @@ export class SessionManager {
35
35
  start: dateNow(),
36
36
  type: "VIEW",
37
37
  location: url,
38
+ loading: true,
38
39
  restRequests: []
39
40
  };
40
41
  }
@@ -121,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
121
122
  type: Inject,
122
123
  args: ['instance']
123
124
  }] }]; } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmV0ZW1lL2luc3BlY3QtbmctY29sbGVjdG9yL3NyYy9saWIvc2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUF5QixRQUFRLEVBQWdDLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRixPQUFPLEVBQUUsT0FBTyxFQUFDLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFLakUsTUFBTSxPQUFPLGNBQWM7SUFVdkIsWUFBaUMsTUFBcUIsRUFDcEIsUUFBNkI7UUFOL0QsaUJBQVksR0FBaUIsRUFBRSxDQUFDO1FBQ2hDLHdCQUFtQixHQUFXLENBQUMsQ0FBQTtRQUMvQix3QkFBbUIsR0FBVSxJQUFJLENBQUM7UUFLOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFFLEVBQUU7WUFDVixJQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBQztnQkFDeEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztnQkFDakMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUM7YUFDdkU7UUFBQSxDQUFDLENBQUMsQ0FBQzthQUNQLFNBQVMsRUFBRSxDQUFDO1FBQ2IsVUFBVSxDQUFD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QUM7SUFFRCxlQUFlLENBQUMsUUFBdUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUN2QyxJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQ3JELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDMUUsVUFBVSxDQUFDLDhHQUE4RyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1NBQ25JO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBQztZQUMzQixJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDN0M7SUFDTCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7K0dBckhRLGNBQWMsa0JBVUQsUUFBUSxhQUNSLFVBQVU7bUhBWHZCLGNBQWMsY0FERCxNQUFNOzs0RkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQVdmLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnN0YW5jZUVudmlyb25tZW50LCBNYWluU2Vzc2lvbiB9IGZyb20gJy4vdHJhY2UubW9kZWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBpbnRlcnZhbCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkYXRlTm93LGxvZ0luc3BlY3QsIHByZXR0eVNlc3Npb25Gb3JtYXQgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgVGVjaG5pY2FsQ29uZiB9IGZyb20gJy4vY29uZmlndXJhdGlvbic7XG5cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTZXNzaW9uTWFuYWdlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBjb25maWc6IFRlY2huaWNhbENvbmY7XG4gICAgaW5zdGFuY2VFbnZpcm9ubWVudCA6IEluc3RhbmNlRW52aXJvbm1lbnQ7XG4gICAgc2NoZWR1bGVkU2Vzc2lvblNlbmRlcjogU3Vic2NyaXB0aW9uO1xuICAgIHNlc3Npb25RdWV1ZTogTWFpblNlc3Npb25bXT0gW107XG4gICAgc2Vzc2lvblNlbmRBdHRlbXB0czogbnVtYmVyID0gMFxuICAgIHNlbmRTZXNzaW9uZmluaXNoZWQ6Ym9vbGVhbj0gdHJ1ZTtcbiAgICBjdXJyZW50U2Vzc2lvbiE6IE1haW5TZXNzaW9uO1xuXG4gICAgY29uc3RydWN0b3IoICBASW5qZWN0KCdjb25maWcnKSAgY29uZmlnOiBUZWNobmljYWxDb25mLFxuICAgICAgICAgICAgICAgICAgQEluamVjdCgnaW5zdGFuY2UnKSBpbnN0YW5jZTogSW5zdGFuY2VFbnZpcm9ubWVudCl7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgICAgICB0aGlzLmluc3RhbmNlRW52aXJvbm1lbnQgPSBpbnN0YW5jZTtcbiAgICAgICAgdGhpcy5zY2hlZHVsZWRTZXNzaW9uU2VuZGVyID0gaW50ZXJ2YWwoY29uZmlnLmRlbGF5KVxuICAgICAgICAucGlwZSh0YXAoKCk9PiB7XG4gICAgICAgICAgICBpZih0aGlzLnNlbmRTZXNzaW9uZmluaXNoZWQpe1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZFNlc3Npb25maW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZFNlc3Npb25zKCkuZmluYWxseSgoKT0+IHt0aGlzLnNlbmRTZXNzaW9uZmluaXNoZWQgPSB0cnVlfSk7XG4gICAgICAgICAgICB9fSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgbG9nSW5zcGVjdCgnU2Vzc2lvbk1hbmFnZXIgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICBuZXdTZXNzaW9uKHVybD86c3RyaW5nKXtcbiAgICAgICAgaWYodGhpcy5jdXJyZW50U2Vzc2lvbil7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTZXNzaW9uLmVuZCA9IGRhdGVOb3coKTtcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnLmV4Y2x1ZGUuZXZlcnkoKGUpID0+ICFlLnRlc3QodGhpcy5jdXJyZW50U2Vzc2lvbi5sb2NhdGlvbikpKXtcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25RdWV1ZS5wdXNoKHRoaXMuY3VycmVudFNlc3Npb24pO1xuICAgICAgICAgICAgICAgIGxvZ0luc3BlY3QoYGFkZGVkIGVsZW1lbnQgdG8gc2Vzc2lvbiBxdWV1ZSwgbmV3IHNpemUgaXM6JHt0aGlzLnNlc3Npb25RdWV1ZS5sZW5ndGh9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2dJbnNwZWN0KCgpPT5wcmV0dHlTZXNzaW9uRm9ybWF0KHRoaXMuY3VycmVudFNlc3Npb24pKTtcbiAgICAgICAgfVxuICAgICAgICBpZih1cmwpe1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbiA9IHtcbiAgICAgICAgICAgICAgICAnQHR5cGUnOiBcIm1haW5cIixcbiAgICAgICAgICAgICAgICB1c2VyOiB0aGlzLmNvbmZpZy51c2VyLFxuICAgICAgICAgICAgICAgIHN0YXJ0OiBkYXRlTm93KCksXG4gICAgICAgICAgICAgICAgdHlwZTogXCJWSUVXXCIsXG4gICAgICAgICAgICAgICAgbG9jYXRpb246IHVybCxcbiAgICAgICAgICAgICAgICByZXN0UmVxdWVzdHM6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZW5kU2Vzc2lvbnMoKSA6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmKHRoaXMuc2Vzc2lvblF1ZXVlLmxlbmd0aD4gMCl7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TZW5kQXR0ZW1wdHMrKztcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3RJbnN0YW5jZUVudigpLnRoZW4oKGlkOnN0cmluZ3xudWxsKT0+e1xuICAgICAgICAgICAgICAgIGlmKGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzZXNzaW9uczogTWFpblNlc3Npb25bXSA9IFsuLi50aGlzLnNlc3Npb25RdWV1ZV07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblF1ZXVlLnNwbGljZSgwLHNlc3Npb25zLmxlbmd0aCk7IC8vIGFkZCByZXN0IG9mIHNlc3Npb25zXG4gICAgICAgICAgICAgICAgICAgIGxvZ0luc3BlY3QoYHNlbmRpbmcgc2Vzc2lvbnMsIGF0dGVtcHRzOiR7dGhpcy5zZXNzaW9uU2VuZEF0dGVtcHRzfSwgcXVldWUgc2l6ZSA6ICR7c2Vzc2lvbnMubGVuZ3RofWApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnB1dFNlc3Npb25zKHNlc3Npb25zKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihvaz0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9rKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dJbnNwZWN0KGBzZXNzaW9ucyBzZW50IHN1Y2Nlc3NmdWxseSwgcXVldWUgc2l6ZSByZXNldCwgbmV3IHNpemUgaXM6ICR7dGhpcy5zZXNzaW9uUXVldWUubGVuZ3RofWApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uU2VuZEF0dGVtcHRzPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNle1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRXJyb3Igd2hpbGUgYXR0ZW1wdGluZyB0byBzZW5kIHNlc3Npb25zLCBhdHRlbXB0czogJHt0aGlzLnNlc3Npb25TZW5kQXR0ZW1wdHN9YCkvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmV2ZXJ0UXVldWVTaXplKHNlc3Npb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBFcnJvciB3aGlsZSBhdHRlbXB0aW5nIHRvIHNlbmQgRW52aXJvbmVtZW50IGluc3RhbmNlLCBhdHRlbXB0cyAke3RoaXMuc2Vzc2lvblNlbmRBdHRlbXB0c31gKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBwdXRTZXNzaW9ucyhzZXNzaW9uTGlzdDogTWFpblNlc3Npb25bXSk6UHJvbWlzZTxib29sZWFuPntcbiAgICAgICAgcmV0dXJuIGZldGNoKHRoaXMuY29uZmlnLnNlc3Npb25BcGksIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ30sXG4gICAgICAgICAgICBtb2RlIDogJ2NvcnMnLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoc2Vzc2lvbkxpc3QpXG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKHJlcyA9PiByZXMub2spXG4gICAgICAgIC5jYXRjaChlcnIgPT4gZmFsc2UpO1xuICAgIH1cblxuICAgIHBvc3RJbnN0YW5jZUVudigpOiBQcm9taXNlPHN0cmluZ3xudWxsPiB7XG4gICAgICAgIGlmKHRoaXMuaW5zdGFuY2VFbnZpcm9ubWVudC5pZCl7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuaW5zdGFuY2VFbnZpcm9ubWVudC5pZClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmV0Y2godGhpcy5jb25maWcuaW5zdGFuY2VBcGksIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgaGVhZGVyczogeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbid9LFxuICAgICAgICAgICAgbW9kZTogJ2NvcnMnLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkodGhpcy5pbnN0YW5jZUVudmlyb25tZW50KVxuICAgICAgICB9KVxuICAgICAgICAudGhlbihyZXMgPT4gcmVzLm9rID8gcmVzLnRleHQoKS50aGVuKGlkPT4ge1xuICAgICAgICAgICAgdGhpcy5jb25maWcuc2Vzc2lvbkFwaSA9IHRoaXMuY29uZmlnLnNlc3Npb25BcGkucmVwbGFjZSgnOmlkJyxpZCk7XG4gICAgICAgICAgICBsb2dJbnNwZWN0KCdFbnZpcm9uZW1lbnQgaW5zdGFuY2Ugc2VudCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlRW52aXJvbm1lbnQuaWQgPSBpZDsgXG4gICAgICAgIH0pIDogbnVsbClcbiAgICAgICAgLmNhdGNoKGVyciA9PiBudWxsKTtcbiAgICB9XG5cbiAgICByZXZlcnRRdWV1ZVNpemUoc2Vzc2lvbnM6IE1haW5TZXNzaW9uW10pe1xuICAgICAgICB0aGlzLnNlc3Npb25RdWV1ZS51bnNoaWZ0KC4uLnNlc3Npb25zKTtcbiAgICAgICAgaWYodGhpcy5zZXNzaW9uUXVldWUubGVuZ3RoID4gdGhpcy5jb25maWcuYnVmZmVyTWF4U2l6ZSApe1xuICAgICAgICAgICAgbGV0IGRpZmYgPSB0aGlzLnNlc3Npb25RdWV1ZS5sZW5ndGggLSB0aGlzLmNvbmZpZy5idWZmZXJNYXhTaXplO1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uUXVldWUgPSB0aGlzLnNlc3Npb25RdWV1ZS5zbGljZSgwLCB0aGlzLmNvbmZpZy5idWZmZXJNYXhTaXplKTtcbiAgICAgICAgICAgIGxvZ0luc3BlY3QoYEJ1ZmZlciBzaXplIGV4ZWVkZWQgdGhlIG1heCBzaXplLGxhc3Qgc2Vzc2lvbnMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSBidWZmZXIsIChudW1iZXIgb2Ygc2Vzc2lvbnMgcmVtb3ZlZCk6JHtkaWZmfWApXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYodGhpcy5zY2hlZHVsZWRTZXNzaW9uU2VuZGVyKXtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVkU2Vzc2lvblNlbmRlci51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFNlc3Npb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZXNzaW9uO1xuICAgIH1cbn1cbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmV0ZW1lL2luc3BlY3QtbmctY29sbGVjdG9yL3NyYy9saWIvc2Vzc2lvbi1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUtsRSxNQUFNLE9BQU8sY0FBYztJQVV2QixZQUE4QixNQUFxQixFQUMzQixRQUE2QjtRQU5yRCxpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFDakMsd0JBQW1CLEdBQVcsQ0FBQyxDQUFBO1FBQy9CLHdCQUFtQixHQUFZLElBQUksQ0FBQztRQUtoQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxRTtRQUNMLENBQUMsQ0FBQyxDQUFDO2FBQ0YsU0FBUyxFQUFFLENBQUM7UUFDakIsVUFBVSxDQUFD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QUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQXVCO1FBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUN0RCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFFLFVBQVUsQ0FBQyw4R0FBOEcsSUFBSSxFQUFFLENBQUMsQ0FBQTtTQUNuSTtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDN0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzdDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDOytHQXhIUSxjQUFjLGtCQVVILFFBQVEsYUFDaEIsVUFBVTttSEFYYixjQUFjLGNBREQsTUFBTTs7NEZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFXakIsTUFBTTsyQkFBQyxRQUFROzswQkFDdkIsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluc3RhbmNlRW52aXJvbm1lbnQsIE1haW5TZXNzaW9uIH0gZnJvbSAnLi90cmFjZS5tb2RlbCc7XG5pbXBvcnQgeyBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRhdGVOb3csIGxvZ0luc3BlY3QsIHByZXR0eVNlc3Npb25Gb3JtYXQgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgVGVjaG5pY2FsQ29uZiB9IGZyb20gJy4vY29uZmlndXJhdGlvbic7XG5cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTZXNzaW9uTWFuYWdlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBjb25maWc6IFRlY2huaWNhbENvbmY7XG4gICAgaW5zdGFuY2VFbnZpcm9ubWVudDogSW5zdGFuY2VFbnZpcm9ubWVudDtcbiAgICBzY2hlZHVsZWRTZXNzaW9uU2VuZGVyOiBTdWJzY3JpcHRpb247XG4gICAgc2Vzc2lvblF1ZXVlOiBNYWluU2Vzc2lvbltdID0gW107XG4gICAgc2Vzc2lvblNlbmRBdHRlbXB0czogbnVtYmVyID0gMFxuICAgIHNlbmRTZXNzaW9uZmluaXNoZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIGN1cnJlbnRTZXNzaW9uITogTWFpblNlc3Npb247XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KCdjb25maWcnKSBjb25maWc6IFRlY2huaWNhbENvbmYsXG4gICAgICAgIEBJbmplY3QoJ2luc3RhbmNlJykgaW5zdGFuY2U6IEluc3RhbmNlRW52aXJvbm1lbnQpIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VFbnZpcm9ubWVudCA9IGluc3RhbmNlO1xuICAgICAgICB0aGlzLnNjaGVkdWxlZFNlc3Npb25TZW5kZXIgPSBpbnRlcnZhbChjb25maWcuZGVsYXkpXG4gICAgICAgICAgICAucGlwZSh0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbmRTZXNzaW9uZmluaXNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kU2Vzc2lvbmZpbmlzaGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZFNlc3Npb25zKCkuZmluYWxseSgoKSA9PiB7IHRoaXMuc2VuZFNlc3Npb25maW5pc2hlZCA9IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgIGxvZ0luc3BlY3QoJ1Nlc3Npb25NYW5hZ2VyIGluaXRpYWxpemVkJyk7XG4gICAgfVxuXG4gICAgbmV3U2Vzc2lvbih1cmw/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFNlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24uZW5kID0gZGF0ZU5vdygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmV4Y2x1ZGUuZXZlcnkoKGUpID0+ICFlLnRlc3QodGhpcy5jdXJyZW50U2Vzc2lvbi5sb2NhdGlvbikpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uUXVldWUucHVzaCh0aGlzLmN1cnJlbnRTZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBsb2dJbnNwZWN0KGBhZGRlZCBlbGVtZW50IHRvIHNlc3Npb24gcXVldWUsIG5ldyBzaXplIGlzOiR7dGhpcy5zZXNzaW9uUXVldWUubGVuZ3RofWApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsb2dJbnNwZWN0KCgpID0+IHByZXR0eVNlc3Npb25Gb3JtYXQodGhpcy5jdXJyZW50U2Vzc2lvbikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24gPSB7XG4gICAgICAgICAgICAgICAgJ0B0eXBlJzogXCJtYWluXCIsXG4gICAgICAgICAgICAgICAgdXNlcjogdGhpcy5jb25maWcudXNlcixcbiAgICAgICAgICAgICAgICBzdGFydDogZGF0ZU5vdygpLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiVklFV1wiLFxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiB1cmwsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICByZXN0UmVxdWVzdHM6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZW5kU2Vzc2lvbnMoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgaWYgKHRoaXMuc2Vzc2lvblF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvblNlbmRBdHRlbXB0cysrO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zdEluc3RhbmNlRW52KCkudGhlbigoaWQ6IHN0cmluZyB8IG51bGwpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlc3Npb25zOiBNYWluU2Vzc2lvbltdID0gWy4uLnRoaXMuc2Vzc2lvblF1ZXVlXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uUXVldWUuc3BsaWNlKDAsIHNlc3Npb25zLmxlbmd0aCk7IC8vIGFkZCByZXN0IG9mIHNlc3Npb25zXG4gICAgICAgICAgICAgICAgICAgIGxvZ0luc3BlY3QoYHNlbmRpbmcgc2Vzc2lvbnMsIGF0dGVtcHRzOiR7dGhpcy5zZXNzaW9uU2VuZEF0dGVtcHRzfSwgcXVldWUgc2l6ZSA6ICR7c2Vzc2lvbnMubGVuZ3RofWApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnB1dFNlc3Npb25zKHNlc3Npb25zKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4ob2sgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dJbnNwZWN0KGBzZXNzaW9ucyBzZW50IHN1Y2Nlc3NmdWxseSwgcXVldWUgc2l6ZSByZXNldCwgbmV3IHNpemUgaXM6ICR7dGhpcy5zZXNzaW9uUXVldWUubGVuZ3RofWApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblNlbmRBdHRlbXB0cyA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBFcnJvciB3aGlsZSBhdHRlbXB0aW5nIHRvIHNlbmQgc2Vzc2lvbnMsIGF0dGVtcHRzOiAke3RoaXMuc2Vzc2lvblNlbmRBdHRlbXB0c31gKS8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmV2ZXJ0UXVldWVTaXplKHNlc3Npb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYEVycm9yIHdoaWxlIGF0dGVtcHRpbmcgdG8gc2VuZCBFbnZpcm9uZW1lbnQgaW5zdGFuY2UsIGF0dGVtcHRzICR7dGhpcy5zZXNzaW9uU2VuZEF0dGVtcHRzfWApO1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHB1dFNlc3Npb25zKHNlc3Npb25MaXN0OiBNYWluU2Vzc2lvbltdKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBmZXRjaCh0aGlzLmNvbmZpZy5zZXNzaW9uQXBpLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgICAgICBtb2RlOiAnY29ycycsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShzZXNzaW9uTGlzdClcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiByZXMub2spXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IGZhbHNlKTtcbiAgICB9XG5cbiAgICBwb3N0SW5zdGFuY2VFbnYoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlRW52aXJvbm1lbnQuaWQpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5pbnN0YW5jZUVudmlyb25tZW50LmlkKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmZXRjaCh0aGlzLmNvbmZpZy5pbnN0YW5jZUFwaSwge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgICAgIG1vZGU6ICdjb3JzJyxcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHRoaXMuaW5zdGFuY2VFbnZpcm9ubWVudClcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiByZXMub2sgPyByZXMudGV4dCgpLnRoZW4oaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLnNlc3Npb25BcGkgPSB0aGlzLmNvbmZpZy5zZXNzaW9uQXBpLnJlcGxhY2UoJzppZCcsIGlkKTtcbiAgICAgICAgICAgICAgICBsb2dJbnNwZWN0KCdFbnZpcm9uZW1lbnQgaW5zdGFuY2Ugc2VudCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZUVudmlyb25tZW50LmlkID0gaWQ7XG4gICAgICAgICAgICB9KSA6IG51bGwpXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IG51bGwpO1xuICAgIH1cblxuICAgIHJldmVydFF1ZXVlU2l6ZShzZXNzaW9uczogTWFpblNlc3Npb25bXSkge1xuICAgICAgICB0aGlzLnNlc3Npb25RdWV1ZS51bnNoaWZ0KC4uLnNlc3Npb25zKTtcbiAgICAgICAgaWYgKHRoaXMuc2Vzc2lvblF1ZXVlLmxlbmd0aCA+IHRoaXMuY29uZmlnLmJ1ZmZlck1heFNpemUpIHtcbiAgICAgICAgICAgIGxldCBkaWZmID0gdGhpcy5zZXNzaW9uUXVldWUubGVuZ3RoIC0gdGhpcy5jb25maWcuYnVmZmVyTWF4U2l6ZTtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvblF1ZXVlID0gdGhpcy5zZXNzaW9uUXVldWUuc2xpY2UoMCwgdGhpcy5jb25maWcuYnVmZmVyTWF4U2l6ZSk7XG4gICAgICAgICAgICBsb2dJbnNwZWN0KGBCdWZmZXIgc2l6ZSBleGVlZGVkIHRoZSBtYXggc2l6ZSxsYXN0IHNlc3Npb25zIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gYnVmZmVyLCAobnVtYmVyIG9mIHNlc3Npb25zIHJlbW92ZWQpOiR7ZGlmZn1gKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNjaGVkdWxlZFNlc3Npb25TZW5kZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVkU2Vzc2lvblNlbmRlci51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFNlc3Npb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZXNzaW9uO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmV0ZW1lL2luc3BlY3QtbmctY29sbGVjdG9yL3NyYy9saWIvdHJhY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgSW5zdGFudFR5cGUgPSBcIlNFUlZFUlwiICB8IFwiQ0xJRU5UXCI7XG50eXBlIE1haW5TZXNzaW9uVHlwZSA9ICBcIlZJRVdcIiB8IFwiQkFUQ0hcIiB8IFwiU1RBUlRVUFwiO1xuZXhwb3J0IGludGVyZmFjZSBNYWluU2Vzc2lvbiB7XG4gICAgJ0B0eXBlJz86IHN0cmluZztcbiAgICB0eXBlOiBNYWluU2Vzc2lvblR5cGU7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBsb2NhdGlvbjogc3RyaW5nO1xuICAgIHVzZXI/OiBzdHJpbmc7XG4gICAgc3RhcnQ6IG51bWJlcjtcbiAgICBlbmQ/OiBudW1iZXI7XG4gICAgdGhyZWFkTmFtZT86c3RyaW5nOyAgLy8gYWx3YXlzIG51bGwgXG4gICAgZXhjZXB0aW9uPzogRXhjZXB0aW9uSW5mbyAvLyB0byBiZSBjaGFuZ2VkID8gXG4gICAgcmVzdFJlcXVlc3RzOiBSZXN0UmVxdWVzdFtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VFbnZpcm9ubWVudCB7XG4gICAgaWQ/OnN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGFkZHJlc3M/OiBzdHJpbmc7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBlbnY/OiBzdHJpbmc7XG4gICAgb3M/OiBzdHJpbmc7XG4gICAgcmU/OiBzdHJpbmc7XG4gICAgdXNlcj86IHN0cmluZztcbiAgICB0eXBlPzogSW5zdGFudFR5cGU7XG4gICAgaW5zdGFudD86bnVtYmVyOyAgIFxuICAgIGNvbGxlY3Rvcj86c3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RSZXF1ZXN0IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBtZXRob2Q6IHN0cmluZztcbiAgICBwcm90b2NvbDogc3RyaW5nO1xuICAgIGhvc3Q6IHN0cmluZztcbiAgICBwb3J0OiBudW1iZXI7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgY29udGVudFR5cGU6IHN0cmluZztcbiAgICBhdXRoU2NoZW1lPzogc3RyaW5nO1xuICAgIHN0YXR1czogbnVtYmVyO1xuICAgIGluRGF0YVNpemU6IG51bWJlcjtcbiAgICBvdURhdGFTaXplOiBudW1iZXI7XG4gICAgdXNlcj86c3RyaW5nO1xuICAgIHN0YXJ0OiBudW1iZXI7XG4gICAgZW5kOiBudW1iZXI7XG4gICAgdGhyZWFkTmFtZT86c3RyaW5nO1xuICAgIGV4Y2VwdGlvbj86IEV4Y2VwdGlvbkluZm9cbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeGNlcHRpb25JbmZvIHsgLy8gdG8gYmVjaGFuZ2VkIFxuICAgIHR5cGU6IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmV0ZW1lL2luc3BlY3QtbmctY29sbGVjdG9yL3NyYy9saWIvdHJhY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgSW5zdGFudFR5cGUgPSBcIlNFUlZFUlwiICB8IFwiQ0xJRU5UXCI7XG50eXBlIE1haW5TZXNzaW9uVHlwZSA9ICBcIlZJRVdcIiB8IFwiQkFUQ0hcIiB8IFwiU1RBUlRVUFwiO1xuZXhwb3J0IGludGVyZmFjZSBNYWluU2Vzc2lvbiB7XG4gICAgJ0B0eXBlJz86IHN0cmluZztcbiAgICB0eXBlOiBNYWluU2Vzc2lvblR5cGU7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBsb2NhdGlvbjogc3RyaW5nO1xuICAgIHVzZXI/OiBzdHJpbmc7XG4gICAgc3RhcnQ6IG51bWJlcjtcbiAgICBlbmQ/OiBudW1iZXI7XG4gICAgdGhyZWFkTmFtZT86c3RyaW5nOyAgLy8gYWx3YXlzIG51bGwgXG4gICAgZXhjZXB0aW9uPzogRXhjZXB0aW9uSW5mbyAvLyB0byBiZSBjaGFuZ2VkID8gXG4gICAgcmVzdFJlcXVlc3RzOiBSZXN0UmVxdWVzdFtdLFxuICAgIGxvYWRpbmc/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VFbnZpcm9ubWVudCB7XG4gICAgaWQ/OnN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGFkZHJlc3M/OiBzdHJpbmc7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBlbnY/OiBzdHJpbmc7XG4gICAgb3M/OiBzdHJpbmc7XG4gICAgcmU/OiBzdHJpbmc7XG4gICAgdXNlcj86IHN0cmluZztcbiAgICB0eXBlPzogSW5zdGFudFR5cGU7XG4gICAgaW5zdGFudD86bnVtYmVyOyAgIFxuICAgIGNvbGxlY3Rvcj86c3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RSZXF1ZXN0IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBtZXRob2Q6IHN0cmluZztcbiAgICBwcm90b2NvbDogc3RyaW5nO1xuICAgIGhvc3Q6IHN0cmluZztcbiAgICBwb3J0OiBudW1iZXI7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgY29udGVudFR5cGU6IHN0cmluZztcbiAgICBhdXRoU2NoZW1lPzogc3RyaW5nO1xuICAgIHN0YXR1czogbnVtYmVyO1xuICAgIGluRGF0YVNpemU6IG51bWJlcjtcbiAgICBvdURhdGFTaXplOiBudW1iZXI7XG4gICAgdXNlcj86c3RyaW5nO1xuICAgIHN0YXJ0OiBudW1iZXI7XG4gICAgZW5kOiBudW1iZXI7XG4gICAgdGhyZWFkTmFtZT86c3RyaW5nO1xuICAgIGV4Y2VwdGlvbj86IEV4Y2VwdGlvbkluZm9cbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeGNlcHRpb25JbmZvIHsgLy8gdG8gYmVjaGFuZ2VkIFxuICAgIHR5cGU6IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbiJdfQ==
@@ -117,16 +117,18 @@ function detectBrowser() {
117
117
  try {
118
118
  const agent = window.navigator.userAgent.toLowerCase();
119
119
  switch (true) {
120
- case agent.indexOf('edge') > -1:
121
- return 'edge';
120
+ case agent.indexOf('edg') > -1:
121
+ return 'Edge';
122
122
  case agent.indexOf('opr') > -1:
123
- return 'opera';
123
+ return 'Opera';
124
124
  case agent.indexOf('chrome') > -1:
125
- return 'chrome';
125
+ return 'Chrome';
126
126
  case agent.indexOf('firefox') > -1:
127
- return 'firefox';
127
+ return 'Firefox';
128
128
  case agent.indexOf('safari') > -1:
129
- return 'safari';
129
+ return 'Safari';
130
+ case agent.indexOf('msie') > -1:
131
+ return 'Microsoft Internet Explorer';
130
132
  }
131
133
  }
132
134
  catch (e) {
@@ -214,6 +216,7 @@ class SessionManager {
214
216
  start: dateNow(),
215
217
  type: "VIEW",
216
218
  location: url,
219
+ loading: true,
217
220
  restRequests: []
218
221
  };
219
222
  }
@@ -319,8 +322,8 @@ class HttpInterceptorService {
319
322
  id = getReqid(error.headers);
320
323
  status = +error.status;
321
324
  exception = {
322
- type: error.error.error,
323
- message: error.error.message
325
+ type: error.name,
326
+ message: error.error && error.status ? JSON.stringify(error.error) : error.message
324
327
  };
325
328
  }), finalize(() => {
326
329
  if (this.SessionManager.getCurrentSession()) {
@@ -330,7 +333,7 @@ class HttpInterceptorService {
330
333
  method: req.method,
331
334
  protocol: url.protocol.slice(0, -1),
332
335
  host: exctractHost(url.host),
333
- port: +url.port,
336
+ port: +url.port || -1,
334
337
  path: url.pathname,
335
338
  query: url.search.slice(1, url.search.length),
336
339
  contentType: req.responseType,
@@ -413,7 +416,9 @@ function initializeEvents(router, sessionManager) {
413
416
  return () => {
414
417
  logInspect('initialize routing events listeners');
415
418
  window.addEventListener('beforeunload', event => {
416
- sessionManager.newSession();
419
+ if (!sessionManager.getCurrentSession().loading) {
420
+ sessionManager.newSession();
421
+ }
417
422
  sessionManager.sendSessions();
418
423
  });
419
424
  router.events.subscribe(event => {
@@ -423,6 +428,7 @@ function initializeEvents(router, sessionManager) {
423
428
  if (event instanceof NavigationEnd) {
424
429
  sessionManager.getCurrentSession().name = document.title;
425
430
  sessionManager.getCurrentSession().location = document.URL;
431
+ delete sessionManager.getCurrentSession().loading;
426
432
  }
427
433
  });
428
434
  };
@@ -1 +1 @@
1
- {"version":3,"file":"oneteme-inspect-ng-collector.mjs","sources":["../../../../projects/oneteme/inspect-ng-collector/src/lib/util.ts","../../../../projects/oneteme/inspect-ng-collector/src/lib/configuration.ts","../../../../projects/oneteme/inspect-ng-collector/src/lib/session-manager.service.ts","../../../../projects/oneteme/inspect-ng-collector/src/lib/http-interceptor.service.ts","../../../../projects/oneteme/inspect-ng-collector/src/lib/ng-collector.module.ts","../../../../projects/oneteme/inspect-ng-collector/src/public-api.ts","../../../../projects/oneteme/inspect-ng-collector/src/oneteme-inspect-ng-collector.ts"],"sourcesContent":["import { MainSession, RestRequest } from \"./trace.model\";\n\nconst WIN:any = window;\n\nexport function dateNow() {\n return Date.now() / 1_000;\n}\n\nexport function initDebug(value:boolean){\n WIN[\"inspect\"] = { debug : value };\n}\n\nexport function logInspect(...args: any[]){\n if(WIN[\"inspect\"]?.debug){\n if(args.length == 1 && typeof args[0] == 'function'){\n args = args[0]();\n if(!Array.isArray(args)){\n args = [args];\n }\n }\n console.log('[INSPECT]', ...args);\n }\n}\n\nexport function prettySessionFormat(session: MainSession){\n let s= `[${session.name}]`;\n if(session.user){\n s+= `<${session.user}>`\n }\n if(session.location){\n s+= `(${session.location}) `\n }\n s+=prettyDurationFormat(session.start,session.end!)+'\\n';\n session.restRequests.forEach(r => {\n s+= prettyRestRequestFormat(r)+'\\n';\n })\n return s;\n}\n\nfunction prettyRestRequestFormat(rest: RestRequest){\n let s = ` - [${rest.method}]`\n if(rest.protocol){\n s+= `${rest.protocol}://`\n }\n if(rest.host){\n s+= rest.host\n }\n if(rest.port > 0){\n s+= `:${rest.port}`\n }\n if(rest.path){\n if(!rest.path.startsWith(\"/\") && !s.endsWith(\"/\")){\n s+= '/'\n }\n s+= rest.path;\n }\n if(rest.query){\n s+= rest.query\n }\n if(rest.exception?.type){\n s+= ` ${rest.exception?.type}:`;\n }\n if(rest.exception?.message){\n s+= ` ${rest.exception.message}`;\n }\n s+= ` >> ${rest.status}`\n s+= prettyDurationFormat(rest.start,rest.end);\n return s;\n}\n\nfunction prettyDurationFormat(start:number,end:number){\n return start && end ? `(in ${ (end - start).toFixed(2) } ms)` : '';\n}\n\n\n\n","import { dateNow, initDebug } from \"./util\";\nconst SLASH = '/';\nconst HOST_PATERN = /https?:\\/\\/[\\w\\-.]+(:\\d{2,5})?\\/?/;\nconst PATH_PATERN = /[\\w-]+(\\/[\\w-]+)*/;\nexport interface ApplicationConf {\n host?: string;\n name?: string | (() => string);\n version?: string | (() => string);\n env?: string | (() => string);\n user?: string | (() => string);\n bufferMaxSize?: number | (() => number);\n delay?: number| (() => number);\n instanceApi?: string | (() => string);\n sessionApi?: string | (() => string);\n exclude?: RegExp[] | (() => RegExp[]);\n debug?: boolean;\n enabled?: boolean;\n}\n\nexport interface TechnicalConf {\n user?:string ;\n bufferMaxSize: number;\n delay: number;\n instanceApi: string;\n sessionApi: string;\n exclude: RegExp[];\n debug: boolean;\n enabled: boolean;\n}\n\nexport function validateAndGetConfig(conf:any):TechnicalConf{\n let host = matchRegex(getStringOrCall(conf.host), \"host\" , HOST_PATERN) \n let sessionApi = matchRegex(getStringOrCall(conf.sessionApi),'sessionApi', PATH_PATERN) \n let instanceApi = matchRegex(getStringOrCall(conf.instanceApi),'intanceApi', PATH_PATERN)\n initDebug(conf.debug ?? false);\n return {\n user : getStringOrCall(conf.user),\n bufferMaxSize: requirePostitiveValue(getNumberOrCall(conf.bufferMaxSize),\"bufferMaxSize\", 1000) ,\n delay: requirePostitiveValue(getNumberOrCall(conf.delay),\"delay\", 60000) ,\n instanceApi: sessionApiURL(host, instanceApi),\n sessionApi: instanceApiURL(host, sessionApi),\n exclude: getRegArrOrCall(conf.exclude) || [],\n debug: conf.debug ?? false,\n enabled: conf.enabled ?? false\n }\n}\n\nexport function GetInstanceEnvironement(conf:ApplicationConf){\n return {\n name: getStringOrCall(conf.name),\n version: getStringOrCall(conf.version),\n address: undefined, //server side\n env: getStringOrCall(conf.env),\n os: detectOs(),\n re: detectBrowser(),\n user: undefined, // cannot get user\n type: \"CLIENT\",\n instant: dateNow(),\n collector: \"inspect-ng-collector-0.0.1\"\n }\n}\n\nexport function getNumberOrCall(o?: number | (() => number)): number | undefined {\n return typeof o === \"function\" ? o() : o;\n}\n\nexport function getStringOrCall(o?: string | (() => string)): string | undefined {\n return typeof o === \"function\" ? o() : o;\n}\n\nexport function getRegArrOrCall(o?: RegExp[] | (() => RegExp[])): RegExp[] | undefined {\n return typeof o === \"function\" ? o() : o;\n}\n\nexport function detectBrowser() {\n try {\n const agent = window.navigator.userAgent.toLowerCase()\n switch (true) {\n case agent.indexOf('edge') > -1:\n return 'edge';\n case agent.indexOf('opr') > -1:\n return 'opera';\n case agent.indexOf('chrome') > -1:\n return 'chrome';\n case agent.indexOf('firefox') > -1:\n return 'firefox';\n case agent.indexOf('safari') > -1:\n return 'safari';\n }\n }\n catch (e) {\n console.error(e);\n }\n return undefined;\n}\n\nexport function detectOs() {\n try {\n let versionMatch, version;\n const agent = window.navigator.userAgent.toLowerCase()\n switch (true) {\n case (/windows/.test(agent)):\n versionMatch = /windows nt (\\d+\\.\\d+)/.exec(agent);\n version = versionMatch ? versionMatch[1] : 'Unknown';\n return `Windows ${version}`;\n case (/linux/.test(agent)):\n return 'Linux';\n\n case (/macintosh/.test(agent)):\n versionMatch = /mac os x (\\d+[._]\\d+[._]\\d+)/.exec(agent);\n version = versionMatch ? versionMatch[1] : 'Unknown';\n return `MacOs ${version}`\n }\n }\n catch (e) {\n console.error(e);\n }\n return undefined;\n}\n\nfunction instanceApiURL(host:string, path:string){\n return toURL(host,path);\n}\n\nfunction sessionApiURL(host:string, path:string){\n return toURL(host,path);\n}\n\nfunction toURL(host:string, path:string ){\n return host.endsWith(SLASH) || path.startsWith(SLASH) ? host + path : [host,path].join(SLASH);\n}\n\nexport function matchRegex(v: string | undefined, name: string, pattern: RegExp) {\n if(v && pattern.exec(v)){\n return v;\n }\n throw `bad value ${name}=${v}, pattern=${pattern}`;\n}\n\nexport function requirePostitiveValue(v: number | undefined, name: string, defaultValue:number){\n if(v && v > 0) {\n return v;\n }\n if(v == undefined){\n return defaultValue;\n }\n throw `bad value ${name}=${v} <= 0` \n}\n\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { InstanceEnvironment, MainSession } from './trace.model';\nimport { BehaviorSubject, from, interval, Observable, of, Subscription, tap } from 'rxjs';\nimport { dateNow,logInspect, prettySessionFormat } from './util';\nimport { TechnicalConf } from './configuration';\n\n\n@Injectable({ providedIn: 'root' })\nexport class SessionManager implements OnDestroy {\n\n config: TechnicalConf;\n instanceEnvironment : InstanceEnvironment;\n scheduledSessionSender: Subscription;\n sessionQueue: MainSession[]= [];\n sessionSendAttempts: number = 0\n sendSessionfinished:boolean= true;\n currentSession!: MainSession;\n\n constructor( @Inject('config') config: TechnicalConf,\n @Inject('instance') instance: InstanceEnvironment){\n this.config = config;\n this.instanceEnvironment = instance;\n this.scheduledSessionSender = interval(config.delay)\n .pipe(tap(()=> {\n if(this.sendSessionfinished){\n this.sendSessionfinished = false;\n this.sendSessions().finally(()=> {this.sendSessionfinished = true});\n }}))\n .subscribe();\n logInspect('SessionManager initialized');\n }\n\n newSession(url?:string){\n if(this.currentSession){\n this.currentSession.end = dateNow();\n if(this.config.exclude.every((e) => !e.test(this.currentSession.location))){\n this.sessionQueue.push(this.currentSession);\n logInspect(`added element to session queue, new size is:${this.sessionQueue.length}`);\n }\n logInspect(()=>prettySessionFormat(this.currentSession));\n }\n if(url){\n this.currentSession = {\n '@type': \"main\",\n user: this.config.user,\n start: dateNow(),\n type: \"VIEW\",\n location: url,\n restRequests: []\n }\n }\n }\n\n sendSessions() : Promise<any> {\n if(this.sessionQueue.length> 0){\n this.sessionSendAttempts++;\n return this.postInstanceEnv().then((id:string|null)=>{\n if(id) {\n let sessions: MainSession[] = [...this.sessionQueue];\n this.sessionQueue.splice(0,sessions.length); // add rest of sessions\n logInspect(`sending sessions, attempts:${this.sessionSendAttempts}, queue size : ${sessions.length}`)\n return this.putSessions(sessions)\n .then(ok=> {\n if(ok){\n logInspect(`sessions sent successfully, queue size reset, new size is: ${this.sessionQueue.length}`)\n this.sessionSendAttempts= 0;\n } else{\n console.warn(`Error while attempting to send sessions, attempts: ${this.sessionSendAttempts}`)//\n this.revertQueueSize(sessions);\n }\n })\n }\n console.warn(`Error while attempting to send Environement instance, attempts ${this.sessionSendAttempts}`);\n return Promise.reject();\n });\n }\n return Promise.resolve();\n }\n\n putSessions(sessionList: MainSession[]):Promise<boolean>{\n return fetch(this.config.sessionApi, {\n method: 'PUT',\n headers: {'Content-Type': 'application/json'},\n mode : 'cors',\n body: JSON.stringify(sessionList)\n })\n .then(res => res.ok)\n .catch(err => false);\n }\n\n postInstanceEnv(): Promise<string|null> {\n if(this.instanceEnvironment.id){\n return Promise.resolve(this.instanceEnvironment.id)\n }\n return fetch(this.config.instanceApi, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n mode: 'cors',\n body: JSON.stringify(this.instanceEnvironment)\n })\n .then(res => res.ok ? res.text().then(id=> {\n this.config.sessionApi = this.config.sessionApi.replace(':id',id);\n logInspect('Environement instance sent successfully');\n return this.instanceEnvironment.id = id; \n }) : null)\n .catch(err => null);\n }\n\n revertQueueSize(sessions: MainSession[]){\n this.sessionQueue.unshift(...sessions);\n if(this.sessionQueue.length > this.config.bufferMaxSize ){\n let diff = this.sessionQueue.length - this.config.bufferMaxSize;\n this.sessionQueue = this.sessionQueue.slice(0, this.config.bufferMaxSize);\n logInspect(`Buffer size exeeded the max size,last sessions have been removed from buffer, (number of sessions removed):${diff}`)\n }\n }\n\n ngOnDestroy(): void {\n if(this.scheduledSessionSender){\n this.scheduledSessionSender.unsubscribe();\n }\n }\n\n getCurrentSession() {\n return this.currentSession;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpEvent, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { tap, finalize } from 'rxjs/operators'\nimport { ExceptionInfo } from './trace.model';\nimport { dateNow } from './util';\nimport { SessionManager } from './session-manager.service';\n\n@Injectable({ providedIn: 'root' })\nexport class HttpInterceptorService implements HttpInterceptor {\n\n constructor(private SessionManager: SessionManager) { } // change this to session manager\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const start = dateNow();\n let status: number, responseBody: any = '', exception: ExceptionInfo;\n let id: string| undefined;\n return next.handle(req).pipe(tap(\n (event: any) => {\n if (event instanceof HttpResponse) {\n status = +event.status;\n responseBody = event.body\n id = getReqid(event.headers);\n }\n },\n error => {\n id = getReqid(error.headers);\n status = +error.status;\n exception = {\n type: error.error.error,\n message: error.error.message\n }\n },\n ), finalize(() => {\n if(this.SessionManager.getCurrentSession()){\n const url = toHref(req.urlWithParams);\n this.SessionManager.getCurrentSession().restRequests.push({\n id: id,\n method: req.method,\n protocol: url.protocol.slice(0, -1),\n host: exctractHost(url.host),\n port: +url.port,\n path: url.pathname,\n query: url.search.slice(1, url.search.length),\n contentType: req.responseType,\n authScheme: extractAuthScheme(req.headers),\n status: +status,\n inDataSize: sizeOf(responseBody),\n ouDataSize: sizeOf(req.body),\n start: start,\n end: dateNow(),\n exception: exception\n });\n }\n }));\n }\n}\n\nfunction toHref(url: string): HTMLAnchorElement {\n const href = document.createElement('a');\n href.setAttribute('href', url);\n return href;\n}\n\nfunction exctractHost(path: string) {\n const portregex = /:\\d+/;\n return path.replace(portregex, '')\n}\n\nfunction extractAuthScheme(headers: any): string | undefined {\n return headers.has('authorization')\n ? headers.get('authorization').match(/^(\\w+) /)?.at(1)\n : undefined;\n}\n\nfunction getReqid(headers:any):string | undefined {\n return headers.has('x-tracert')\n ? headers.get('x-tracert')\n : undefined;\n}\n\nfunction sizeOf(body: any): number {\n return body ? JSON.stringify(body).length : 0;\n}\n","import { NgModule, APP_INITIALIZER, ModuleWithProviders } from '@angular/core';\nimport { HTTP_INTERCEPTORS, } from '@angular/common/http';\nimport { logInspect } from './util';\nimport { NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { ApplicationConf, GetInstanceEnvironement, validateAndGetConfig } from './configuration';\nimport { HttpInterceptorService } from './http-interceptor.service';\nimport { SessionManager } from './session-manager.service';\n\n@NgModule()\nexport class NgCollectorModule {\n\n static forRoot(configuration: ApplicationConf): ModuleWithProviders<NgCollectorModule> {\n if(configuration?.enabled){\n try{\n let config = validateAndGetConfig(configuration);\n let instance = GetInstanceEnvironement(configuration);\n logInspect(JSON.stringify(config));\n logInspect(JSON.stringify(instance));\n return {\n ngModule: NgCollectorModule,\n providers: [\n SessionManager, \n { provide: APP_INITIALIZER, useFactory: initializeEvents, deps: [Router, SessionManager], multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: HttpInterceptorService, multi: true },\n { provide: 'instance', useValue: instance },\n { provide: 'config', useValue: config }\n ]\n };\n }catch(e){\n console.warn(`invalid Configuration, Ng-collector is disabled because ${e}`);\n }\n }\n return {\n ngModule: NgCollectorModule\n }\n }\n}\n\nexport function initializeEvents(router:Router, sessionManager: SessionManager) {\n return () => {\n logInspect('initialize routing events listeners');\n window.addEventListener('beforeunload', event=> {\n sessionManager.newSession();\n sessionManager.sendSessions();\n });\n router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n sessionManager.newSession(event.url);\n }\n if (event instanceof NavigationEnd) {\n sessionManager.getCurrentSession().name = document.title;\n sessionManager.getCurrentSession().location = document.URL; \n }\n })\n }\n}\n\n\n","/*\n * Public API Surface of inspect-ng-collector\n */\n\n\nexport * from './lib/ng-collector.module';\n\n ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["tap","i1.SessionManager"],"mappings":";;;;;;;AAEA,MAAM,GAAG,GAAO,MAAM,CAAC;SAEP,OAAO,GAAA;AACnB,IAAA,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAK,CAAC;AAC9B,CAAC;AAEK,SAAU,SAAS,CAAC,KAAa,EAAA;IACpC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAG,KAAK,EAAE,CAAC;AACtC,CAAC;AAEe,SAAA,UAAU,CAAC,GAAG,IAAW,EAAA;AACvC,IAAA,IAAG,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAC;AACvB,QAAA,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,EAAC;AAClD,YAAA,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACjB,YAAA,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC;AACtB,gBAAA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACf,aAAA;AACF,SAAA;QACD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;AACnC,KAAA;AACH,CAAC;AAEK,SAAU,mBAAmB,CAAC,OAAoB,EAAA;AACtD,IAAA,IAAI,CAAC,GAAE,CAAA,CAAA,EAAI,OAAO,CAAC,IAAI,GAAG,CAAC;IACzB,IAAG,OAAO,CAAC,IAAI,EAAC;AACd,QAAA,CAAC,IAAG,CAAI,CAAA,EAAA,OAAO,CAAC,IAAI,GAAG,CAAA;AACxB,KAAA;IACD,IAAG,OAAO,CAAC,QAAQ,EAAC;AAClB,QAAA,CAAC,IAAG,CAAI,CAAA,EAAA,OAAO,CAAC,QAAQ,IAAI,CAAA;AAC7B,KAAA;AACD,IAAA,CAAC,IAAE,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAC,OAAO,CAAC,GAAI,CAAC,GAAC,IAAI,CAAC;AACzD,IAAA,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAG;AAC/B,QAAA,CAAC,IAAG,uBAAuB,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC;AACtC,KAAC,CAAC,CAAA;AACJ,IAAA,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAiB,EAAA;AAChD,IAAA,IAAI,CAAC,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,MAAM,GAAG,CAAA;IAC/B,IAAG,IAAI,CAAC,QAAQ,EAAC;AACf,QAAA,CAAC,IAAG,CAAG,EAAA,IAAI,CAAC,QAAQ,KAAK,CAAA;AAC1B,KAAA;IACD,IAAG,IAAI,CAAC,IAAI,EAAC;AACX,QAAA,CAAC,IAAG,IAAI,CAAC,IAAI,CAAA;AACd,KAAA;AACD,IAAA,IAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAC;AACf,QAAA,CAAC,IAAG,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,EAAE,CAAA;AACpB,KAAA;IACD,IAAG,IAAI,CAAC,IAAI,EAAC;AACX,QAAA,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC;YAChD,CAAC,IAAG,GAAG,CAAA;AACR,SAAA;AACD,QAAA,CAAC,IAAG,IAAI,CAAC,IAAI,CAAC;AACf,KAAA;IACD,IAAG,IAAI,CAAC,KAAK,EAAC;AACZ,QAAA,CAAC,IAAG,IAAI,CAAC,KAAK,CAAA;AACf,KAAA;AACD,IAAA,IAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAC;QACtB,CAAC,IAAG,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC;AACjC,KAAA;AACD,IAAA,IAAG,IAAI,CAAC,SAAS,EAAE,OAAO,EAAC;QACzB,CAAC,IAAG,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;AAClC,KAAA;AACD,IAAA,CAAC,IAAG,CAAO,IAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAA;IACxB,CAAC,IAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9C,IAAA,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAY,EAAC,GAAU,EAAA;IACjD,OAAQ,KAAK,IAAI,GAAG,GAAG,CAAA,IAAA,EAAQ,CAAC,GAAG,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,CAAE,MAAM,GAAG,EAAE,CAAC;AACxE;;ACvEA,MAAM,KAAK,GAAG,GAAG,CAAC;AAClB,MAAM,WAAW,GAAG,mCAAmC,CAAC;AACxD,MAAM,WAAW,GAAG,mBAAmB,CAAC;AA2BlC,SAAU,oBAAoB,CAAC,IAAQ,EAAA;AAC3C,IAAA,IAAI,IAAI,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAG,WAAW,CAAC,CAAA;AACvE,IAAA,IAAI,UAAU,GAAK,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAC,YAAY,EAAE,WAAW,CAAC,CAAA;AACzF,IAAA,IAAI,WAAW,GAAI,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC,YAAY,EAAE,WAAW,CAAC,CAAA;AAC1F,IAAA,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;IAC/B,OAAQ;AACN,QAAA,IAAI,EAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,QAAA,aAAa,EAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAC,eAAe,EAAE,IAAI,CAAC;AAChG,QAAA,KAAK,EAAE,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,OAAO,EAAE,KAAK,CAAC;AACxE,QAAA,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;AAC7C,QAAA,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC;QAC5C,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC5C,QAAA,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;AAC1B,QAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;KAC/B,CAAA;AACH,CAAC;AAEK,SAAU,uBAAuB,CAAC,IAAoB,EAAA;IAC1D,OAAO;AACL,QAAA,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,QAAA,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9B,EAAE,EAAE,QAAQ,EAAE;QACd,EAAE,EAAE,aAAa,EAAE;AACnB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO,EAAE;AAClB,QAAA,SAAS,EAAE,4BAA4B;KACxC,CAAA;AACH,CAAC;AAEK,SAAU,eAAe,CAAC,CAA2B,EAAA;AACzD,IAAA,OAAO,OAAO,CAAC,KAAK,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAEK,SAAU,eAAe,CAAC,CAA2B,EAAA;AACzD,IAAA,OAAO,OAAO,CAAC,KAAK,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAEK,SAAU,eAAe,CAAC,CAA+B,EAAA;AAC7D,IAAA,OAAO,OAAO,CAAC,KAAK,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;SAEe,aAAa,GAAA;IAC3B,IAAI;QACA,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAA;AACtD,QAAA,QAAQ,IAAI;YACR,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,gBAAA,OAAO,MAAM,CAAC;YAClB,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1B,gBAAA,OAAO,OAAO,CAAC;YACnB,KAAK,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B,gBAAA,OAAO,QAAQ,CAAC;YACpB,KAAK,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC9B,gBAAA,OAAO,SAAS,CAAC;YACrB,KAAK,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B,gBAAA,OAAO,QAAQ,CAAC;AACvB,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,CAAC,EAAE;AACN,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,KAAA;AACD,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC;SAEe,QAAQ,GAAA;IACtB,IAAI;QACA,IAAI,YAAY,EAAE,OAAO,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAA;AACtD,QAAA,QAAQ,IAAI;AACR,YAAA,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,gBAAA,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,gBAAA,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACrD,OAAO,CAAA,QAAA,EAAW,OAAO,CAAA,CAAE,CAAC;AAChC,YAAA,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACrB,gBAAA,OAAO,OAAO,CAAC;AAEnB,YAAA,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,gBAAA,YAAY,GAAG,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,gBAAA,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACrD,OAAO,CAAA,MAAA,EAAS,OAAO,CAAA,CAAE,CAAA;AAChC,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,CAAC,EAAE;AACN,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,KAAA;AACD,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,IAAW,EAAE,IAAW,EAAA;AAC9C,IAAA,OAAQ,KAAK,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,aAAa,CAAC,IAAW,EAAE,IAAW,EAAA;AAC7C,IAAA,OAAQ,KAAK,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,KAAK,CAAC,IAAW,EAAE,IAAW,EAAA;AACpC,IAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjG,CAAC;SAEe,UAAU,CAAC,CAAqB,EAAG,IAAY,EAAE,OAAe,EAAA;IAC9E,IAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC;AACrB,QAAA,OAAO,CAAC,CAAC;AACX,KAAA;AACD,IAAA,MAAM,aAAa,IAAI,CAAA,CAAA,EAAI,CAAC,CAAa,UAAA,EAAA,OAAO,EAAE,CAAC;AACrD,CAAC;SAEe,qBAAqB,CAAC,CAAqB,EAAE,IAAY,EAAE,YAAmB,EAAA;AAC5F,IAAA,IAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACb,QAAA,OAAO,CAAC,CAAC;AACV,KAAA;IACD,IAAG,CAAC,IAAI,SAAS,EAAC;AAChB,QAAA,OAAO,YAAY,CAAC;AACrB,KAAA;AACD,IAAA,MAAM,CAAa,UAAA,EAAA,IAAI,CAAI,CAAA,EAAA,CAAC,OAAO,CAAA;AACrC;;MC3Ia,cAAc,CAAA;IAUvB,WAAiC,CAAA,MAAqB,EACpB,QAA6B,EAAA;QAN/D,IAAY,CAAA,YAAA,GAAiB,EAAE,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAA;QAC/B,IAAmB,CAAA,mBAAA,GAAU,IAAI,CAAC;AAK9B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;QACpC,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;AACnD,aAAA,IAAI,CAAC,GAAG,CAAC,MAAI;YACV,IAAG,IAAI,CAAC,mBAAmB,EAAC;AACxB,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,gBAAA,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,MAAI,EAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA,EAAC,CAAC,CAAC;AACvE,aAAA;AAAA,SAAC,CAAC,CAAC;AACP,aAAA,SAAS,EAAE,CAAC;QACb,UAAU,CAAC,4BAA4B,CAAC,CAAC;KAC5C;AAED,IAAA,UAAU,CAAC,GAAW,EAAA;QAClB,IAAG,IAAI,CAAC,cAAc,EAAC;AACnB,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC;YACpC,IAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAC;gBACvE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC5C,UAAU,CAAC,+CAA+C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAE,CAAA,CAAC,CAAC;AACzF,aAAA;YACD,UAAU,CAAC,MAAI,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5D,SAAA;AACD,QAAA,IAAG,GAAG,EAAC;YACH,IAAI,CAAC,cAAc,GAAG;AAClB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,KAAK,EAAE,OAAO,EAAE;AAChB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,YAAY,EAAE,EAAE;aACnB,CAAA;AACJ,SAAA;KACJ;IAED,YAAY,GAAA;AACR,QAAA,IAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAE,CAAC,EAAC;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,EAAc,KAAG;AACjD,gBAAA,IAAG,EAAE,EAAE;oBACH,IAAI,QAAQ,GAAkB,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;AACrD,oBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC5C,UAAU,CAAC,CAA8B,2BAAA,EAAA,IAAI,CAAC,mBAAmB,CAAkB,eAAA,EAAA,QAAQ,CAAC,MAAM,CAAE,CAAA,CAAC,CAAA;AACrG,oBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;yBAChC,IAAI,CAAC,EAAE,IAAE;AACN,wBAAA,IAAG,EAAE,EAAC;4BACF,UAAU,CAAC,8DAA8D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAE,CAAA,CAAC,CAAA;AACpG,4BAAA,IAAI,CAAC,mBAAmB,GAAE,CAAC,CAAC;AAC/B,yBAAA;AAAK,6BAAA;4BACF,OAAO,CAAC,IAAI,CAAC,CAAsD,mDAAA,EAAA,IAAI,CAAC,mBAAmB,CAAE,CAAA,CAAC,CAAA;AAC9F,4BAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AAClC,yBAAA;AACL,qBAAC,CAAC,CAAA;AACL,iBAAA;gBACD,OAAO,CAAC,IAAI,CAAC,CAAA,+DAAA,EAAkE,IAAI,CAAC,mBAAmB,CAAE,CAAA,CAAC,CAAC;AAC3G,gBAAA,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;AAC5B,aAAC,CAAC,CAAC;AACN,SAAA;AACD,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KAC5B;AAED,IAAA,WAAW,CAAC,WAA0B,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACjC,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;AAC7C,YAAA,IAAI,EAAG,MAAM;AACb,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SACpC,CAAC;aACD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;AACnB,aAAA,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;KACxB;IAED,eAAe,GAAA;AACX,QAAA,IAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAC;YAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAA;AACtD,SAAA;AACD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAClC,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;AAC7C,YAAA,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;SACjD,CAAC;aACD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,IAAE;AACtC,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,CAAC;YAClE,UAAU,CAAC,yCAAyC,CAAC,CAAC;AACtD,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC;AAC5C,SAAC,CAAC,GAAG,IAAI,CAAC;AACT,aAAA,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;KACvB;AAED,IAAA,eAAe,CAAC,QAAuB,EAAA;QACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;QACvC,IAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;AACrD,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAChE,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC1E,YAAA,UAAU,CAAC,CAAA,2GAAA,EAA8G,IAAI,CAAA,CAAE,CAAC,CAAA;AACnI,SAAA;KACJ;IAED,WAAW,GAAA;QACP,IAAG,IAAI,CAAC,sBAAsB,EAAC;AAC3B,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;AAC7C,SAAA;KACJ;IAED,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;+GArHQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAUD,QAAQ,EAAA,EAAA,EAAA,KAAA,EACR,UAAU,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAXvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;0BAWf,MAAM;2BAAC,QAAQ,CAAA;;0BACf,MAAM;2BAAC,UAAU,CAAA;;;MCVvB,sBAAsB,CAAA;AAE/B,IAAA,WAAA,CAAoB,cAA8B,EAAA;QAA9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAAI,KAAC;IAEvD,SAAS,CAAC,GAAqB,EAAE,IAAiB,EAAA;AAC9C,QAAA,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;AACxB,QAAA,IAAI,MAAc,EAAE,YAAY,GAAQ,EAAE,EAAE,SAAwB,CAAC;AACrE,QAAA,IAAI,EAAqB,CAAC;AAC1B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAACA,KAAG,CAC5B,CAAC,KAAU,KAAI;YACX,IAAI,KAAK,YAAY,YAAY,EAAE;AAC/B,gBAAA,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AACvB,gBAAA,YAAY,GAAG,KAAK,CAAC,IAAI,CAAA;AACzB,gBAAA,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,aAAA;SACJ,EACD,KAAK,IAAG;AACJ,YAAA,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,YAAA,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AACvB,YAAA,SAAS,GAAG;AACR,gBAAA,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;AACvB,gBAAA,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;aAC/B,CAAA;AACL,SAAC,CACJ,EAAE,QAAQ,CAAC,MAAK;AACb,YAAA,IAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAC;gBACvC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;AACtD,oBAAA,EAAE,EAAE,EAAE;oBACN,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,oBAAA,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,oBAAA,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI;oBACf,IAAI,EAAE,GAAG,CAAC,QAAQ;AAClB,oBAAA,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC7C,WAAW,EAAE,GAAG,CAAC,YAAY;AAC7B,oBAAA,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;oBAC1C,MAAM,EAAE,CAAC,MAAM;AACf,oBAAA,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;AAChC,oBAAA,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,oBAAA,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,OAAO,EAAE;AACd,oBAAA,SAAS,EAAE,SAAS;AACvB,iBAAA,CAAC,CAAC;AACN,aAAA;SACJ,CAAC,CAAC,CAAC;KACP;+GA9CQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;AAkDlC,SAAS,MAAM,CAAC,GAAW,EAAA;IACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACzC,IAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/B,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAA;IAC9B,MAAM,SAAS,GAAG,MAAM,CAAC;IACzB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAY,EAAA;AACnC,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAC/B,UAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;UACpD,SAAS,CAAC;AACpB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAW,EAAA;AACzB,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AAC3B,UAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;UACxB,SAAS,CAAC;AACpB,CAAC;AAED,SAAS,MAAM,CAAC,IAAS,EAAA;AACrB,IAAA,OAAO,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAClD;;MC1Ea,iBAAiB,CAAA;IAE5B,OAAO,OAAO,CAAC,aAA8B,EAAA;QAC3C,IAAG,aAAa,EAAE,OAAO,EAAC;YACxB,IAAG;AACD,gBAAA,IAAI,MAAM,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjD,gBAAA,IAAI,QAAQ,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;gBACtD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrC,OAAO;AACL,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,SAAS,EAAE;wBACT,cAAc;AACd,wBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;wBACvG,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE;AAC7E,wBAAA,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC3C,wBAAA,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE;AACxC,qBAAA;iBACF,CAAC;AACH,aAAA;AAAA,YAAA,OAAM,CAAC,EAAC;AACP,gBAAA,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA,CAAE,CAAC,CAAC;AAC9E,aAAA;AACF,SAAA;QACD,OAAO;AACL,YAAA,QAAQ,EAAE,iBAAiB;SAC5B,CAAA;KACF;+GA1BU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;gHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,QAAQ;;AA8BO,SAAA,gBAAgB,CAAC,MAAa,EAAE,cAA8B,EAAA;AAC5E,IAAA,OAAO,MAAK;QACV,UAAU,CAAC,qCAAqC,CAAC,CAAC;AAC9C,QAAA,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,IAAE;YAC3C,cAAc,CAAC,UAAU,EAAE,CAAC;YAC5B,cAAc,CAAC,YAAY,EAAE,CAAC;AAClC,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAG;YAC5B,IAAI,KAAK,YAAY,eAAe,EAAE;AAClC,gBAAA,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,aAAA;YACD,IAAI,KAAK,YAAY,aAAa,EAAE;gBAChC,cAAc,CAAC,iBAAiB,EAAE,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACzD,cAAc,CAAC,iBAAiB,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC9D,aAAA;AACL,SAAC,CAAC,CAAA;AACR,KAAC,CAAA;AACH;;ACvDA;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"oneteme-inspect-ng-collector.mjs","sources":["../../../../projects/oneteme/inspect-ng-collector/src/lib/util.ts","../../../../projects/oneteme/inspect-ng-collector/src/lib/configuration.ts","../../../../projects/oneteme/inspect-ng-collector/src/lib/session-manager.service.ts","../../../../projects/oneteme/inspect-ng-collector/src/lib/http-interceptor.service.ts","../../../../projects/oneteme/inspect-ng-collector/src/lib/ng-collector.module.ts","../../../../projects/oneteme/inspect-ng-collector/src/public-api.ts","../../../../projects/oneteme/inspect-ng-collector/src/oneteme-inspect-ng-collector.ts"],"sourcesContent":["import { MainSession, RestRequest } from \"./trace.model\";\n\nconst WIN:any = window;\n\nexport function dateNow() {\n return Date.now() / 1_000;\n}\n\nexport function initDebug(value:boolean){\n WIN[\"inspect\"] = { debug : value };\n}\n\nexport function logInspect(...args: any[]){\n if(WIN[\"inspect\"]?.debug){\n if(args.length == 1 && typeof args[0] == 'function'){\n args = args[0]();\n if(!Array.isArray(args)){\n args = [args];\n }\n }\n console.log('[INSPECT]', ...args);\n }\n}\n\nexport function prettySessionFormat(session: MainSession){\n let s= `[${session.name}]`;\n if(session.user){\n s+= `<${session.user}>`\n }\n if(session.location){\n s+= `(${session.location}) `\n }\n s+=prettyDurationFormat(session.start,session.end!)+'\\n';\n session.restRequests.forEach(r => {\n s+= prettyRestRequestFormat(r)+'\\n';\n })\n return s;\n}\n\nfunction prettyRestRequestFormat(rest: RestRequest){\n let s = ` - [${rest.method}]`\n if(rest.protocol){\n s+= `${rest.protocol}://`\n }\n if(rest.host){\n s+= rest.host\n }\n if(rest.port > 0){\n s+= `:${rest.port}`\n }\n if(rest.path){\n if(!rest.path.startsWith(\"/\") && !s.endsWith(\"/\")){\n s+= '/'\n }\n s+= rest.path;\n }\n if(rest.query){\n s+= rest.query\n }\n if(rest.exception?.type){\n s+= ` ${rest.exception?.type}:`;\n }\n if(rest.exception?.message){\n s+= ` ${rest.exception.message}`;\n }\n s+= ` >> ${rest.status}`\n s+= prettyDurationFormat(rest.start,rest.end);\n return s;\n}\n\nfunction prettyDurationFormat(start:number,end:number){\n return start && end ? `(in ${ (end - start).toFixed(2) } ms)` : '';\n}\n\n\n\n","import { dateNow, initDebug } from \"./util\";\nconst SLASH = '/';\nconst HOST_PATERN = /https?:\\/\\/[\\w\\-.]+(:\\d{2,5})?\\/?/;\nconst PATH_PATERN = /[\\w-]+(\\/[\\w-]+)*/;\nexport interface ApplicationConf {\n host?: string;\n name?: string | (() => string);\n version?: string | (() => string);\n env?: string | (() => string);\n user?: string | (() => string);\n bufferMaxSize?: number | (() => number);\n delay?: number| (() => number);\n instanceApi?: string | (() => string);\n sessionApi?: string | (() => string);\n exclude?: RegExp[] | (() => RegExp[]);\n debug?: boolean;\n enabled?: boolean;\n}\n\nexport interface TechnicalConf {\n user?:string ;\n bufferMaxSize: number;\n delay: number;\n instanceApi: string;\n sessionApi: string;\n exclude: RegExp[];\n debug: boolean;\n enabled: boolean;\n}\n\nexport function validateAndGetConfig(conf:any):TechnicalConf{\n let host = matchRegex(getStringOrCall(conf.host), \"host\" , HOST_PATERN) \n let sessionApi = matchRegex(getStringOrCall(conf.sessionApi),'sessionApi', PATH_PATERN) \n let instanceApi = matchRegex(getStringOrCall(conf.instanceApi),'intanceApi', PATH_PATERN)\n initDebug(conf.debug ?? false);\n return {\n user : getStringOrCall(conf.user),\n bufferMaxSize: requirePostitiveValue(getNumberOrCall(conf.bufferMaxSize),\"bufferMaxSize\", 1000) ,\n delay: requirePostitiveValue(getNumberOrCall(conf.delay),\"delay\", 60000) ,\n instanceApi: sessionApiURL(host, instanceApi),\n sessionApi: instanceApiURL(host, sessionApi),\n exclude: getRegArrOrCall(conf.exclude) || [],\n debug: conf.debug ?? false,\n enabled: conf.enabled ?? false\n }\n}\n\nexport function GetInstanceEnvironement(conf:ApplicationConf){\n return {\n name: getStringOrCall(conf.name),\n version: getStringOrCall(conf.version),\n address: undefined, //server side\n env: getStringOrCall(conf.env),\n os: detectOs(),\n re: detectBrowser(),\n user: undefined, // cannot get user\n type: \"CLIENT\",\n instant: dateNow(),\n collector: \"inspect-ng-collector-0.0.1\"\n }\n}\n\nexport function getNumberOrCall(o?: number | (() => number)): number | undefined {\n return typeof o === \"function\" ? o() : o;\n}\n\nexport function getStringOrCall(o?: string | (() => string)): string | undefined {\n return typeof o === \"function\" ? o() : o;\n}\n\nexport function getRegArrOrCall(o?: RegExp[] | (() => RegExp[])): RegExp[] | undefined {\n return typeof o === \"function\" ? o() : o;\n}\n\nexport function detectBrowser() {\n try {\n const agent = window.navigator.userAgent.toLowerCase()\n switch (true) {\n case agent.indexOf('edg') > -1:\n return 'Edge';\n case agent.indexOf('opr') > -1:\n return 'Opera';\n case agent.indexOf('chrome') > -1:\n return 'Chrome';\n case agent.indexOf('firefox') > -1:\n return 'Firefox';\n case agent.indexOf('safari') > -1:\n return 'Safari';\n case agent.indexOf('msie') > -1:\n return 'Microsoft Internet Explorer';\n }\n }\n catch (e) {\n console.error(e);\n }\n return undefined;\n}\n\nexport function detectOs() {\n try {\n let versionMatch, version;\n const agent = window.navigator.userAgent.toLowerCase()\n switch (true) {\n case (/windows/.test(agent)):\n versionMatch = /windows nt (\\d+\\.\\d+)/.exec(agent);\n version = versionMatch ? versionMatch[1] : 'Unknown';\n return `Windows ${version}`;\n case (/linux/.test(agent)):\n return 'Linux';\n\n case (/macintosh/.test(agent)):\n versionMatch = /mac os x (\\d+[._]\\d+[._]\\d+)/.exec(agent);\n version = versionMatch ? versionMatch[1] : 'Unknown';\n return `MacOs ${version}`\n }\n }\n catch (e) {\n console.error(e);\n }\n return undefined;\n}\n\nfunction instanceApiURL(host:string, path:string){\n return toURL(host,path);\n}\n\nfunction sessionApiURL(host:string, path:string){\n return toURL(host,path);\n}\n\nfunction toURL(host:string, path:string ){\n return host.endsWith(SLASH) || path.startsWith(SLASH) ? host + path : [host,path].join(SLASH);\n}\n\nexport function matchRegex(v: string | undefined, name: string, pattern: RegExp) {\n if(v && pattern.exec(v)){\n return v;\n }\n throw `bad value ${name}=${v}, pattern=${pattern}`;\n}\n\nexport function requirePostitiveValue(v: number | undefined, name: string, defaultValue:number){\n if(v && v > 0) {\n return v;\n }\n if(v == undefined){\n return defaultValue;\n }\n throw `bad value ${name}=${v} <= 0` \n}\n\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { InstanceEnvironment, MainSession } from './trace.model';\nimport { interval, Subscription, tap } from 'rxjs';\nimport { dateNow, logInspect, prettySessionFormat } from './util';\nimport { TechnicalConf } from './configuration';\n\n\n@Injectable({ providedIn: 'root' })\nexport class SessionManager implements OnDestroy {\n\n config: TechnicalConf;\n instanceEnvironment: InstanceEnvironment;\n scheduledSessionSender: Subscription;\n sessionQueue: MainSession[] = [];\n sessionSendAttempts: number = 0\n sendSessionfinished: boolean = true;\n currentSession!: MainSession;\n\n constructor(@Inject('config') config: TechnicalConf,\n @Inject('instance') instance: InstanceEnvironment) {\n this.config = config;\n this.instanceEnvironment = instance;\n this.scheduledSessionSender = interval(config.delay)\n .pipe(tap(() => {\n if (this.sendSessionfinished) {\n this.sendSessionfinished = false;\n this.sendSessions().finally(() => { this.sendSessionfinished = true });\n }\n }))\n .subscribe();\n logInspect('SessionManager initialized');\n }\n\n newSession(url?: string) {\n if (this.currentSession) {\n this.currentSession.end = dateNow();\n if (this.config.exclude.every((e) => !e.test(this.currentSession.location))) {\n this.sessionQueue.push(this.currentSession);\n logInspect(`added element to session queue, new size is:${this.sessionQueue.length}`);\n }\n\n logInspect(() => prettySessionFormat(this.currentSession));\n }\n if (url) {\n this.currentSession = {\n '@type': \"main\",\n user: this.config.user,\n start: dateNow(),\n type: \"VIEW\",\n location: url,\n loading: true,\n restRequests: []\n }\n }\n }\n\n sendSessions(): Promise<any> {\n if (this.sessionQueue.length > 0) {\n this.sessionSendAttempts++;\n return this.postInstanceEnv().then((id: string | null) => {\n if (id) {\n let sessions: MainSession[] = [...this.sessionQueue];\n this.sessionQueue.splice(0, sessions.length); // add rest of sessions\n logInspect(`sending sessions, attempts:${this.sessionSendAttempts}, queue size : ${sessions.length}`)\n return this.putSessions(sessions)\n .then(ok => {\n if (ok) {\n logInspect(`sessions sent successfully, queue size reset, new size is: ${this.sessionQueue.length}`)\n this.sessionSendAttempts = 0;\n } else {\n console.warn(`Error while attempting to send sessions, attempts: ${this.sessionSendAttempts}`)//\n this.revertQueueSize(sessions);\n }\n })\n }\n console.warn(`Error while attempting to send Environement instance, attempts ${this.sessionSendAttempts}`);\n return Promise.reject();\n });\n }\n return Promise.resolve();\n }\n\n putSessions(sessionList: MainSession[]): Promise<boolean> {\n return fetch(this.config.sessionApi, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json' },\n mode: 'cors',\n body: JSON.stringify(sessionList)\n })\n .then(res => res.ok)\n .catch(err => false);\n }\n\n postInstanceEnv(): Promise<string | null> {\n if (this.instanceEnvironment.id) {\n return Promise.resolve(this.instanceEnvironment.id)\n }\n return fetch(this.config.instanceApi, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n mode: 'cors',\n body: JSON.stringify(this.instanceEnvironment)\n })\n .then(res => res.ok ? res.text().then(id => {\n this.config.sessionApi = this.config.sessionApi.replace(':id', id);\n logInspect('Environement instance sent successfully');\n return this.instanceEnvironment.id = id;\n }) : null)\n .catch(err => null);\n }\n\n revertQueueSize(sessions: MainSession[]) {\n this.sessionQueue.unshift(...sessions);\n if (this.sessionQueue.length > this.config.bufferMaxSize) {\n let diff = this.sessionQueue.length - this.config.bufferMaxSize;\n this.sessionQueue = this.sessionQueue.slice(0, this.config.bufferMaxSize);\n logInspect(`Buffer size exeeded the max size,last sessions have been removed from buffer, (number of sessions removed):${diff}`)\n }\n }\n\n ngOnDestroy(): void {\n if (this.scheduledSessionSender) {\n this.scheduledSessionSender.unsubscribe();\n }\n }\n\n getCurrentSession() {\n return this.currentSession;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpEvent, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { tap, finalize } from 'rxjs/operators'\nimport { ExceptionInfo } from './trace.model';\nimport { dateNow } from './util';\nimport { SessionManager } from './session-manager.service';\n\n@Injectable({ providedIn: 'root' })\nexport class HttpInterceptorService implements HttpInterceptor {\n\n constructor(private SessionManager: SessionManager) { } // change this to session manager\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const start = dateNow();\n let status: number, responseBody: any = '', exception: ExceptionInfo;\n let id: string| undefined;\n return next.handle(req).pipe(tap(\n (event: any) => {\n if (event instanceof HttpResponse) {\n status = +event.status;\n responseBody = event.body\n id = getReqid(event.headers);\n }\n },\n error => {\n id = getReqid(error.headers);\n status = +error.status;\n exception = {\n type : error.name,\n message: error.error && error.status ? JSON.stringify(error.error) : error.message\n }\n },\n ), finalize(() => {\n if(this.SessionManager.getCurrentSession()){\n const url = toHref(req.urlWithParams);\n this.SessionManager.getCurrentSession().restRequests.push({\n id: id,\n method: req.method,\n protocol: url.protocol.slice(0, -1),\n host: exctractHost(url.host),\n port: +url.port || -1,\n path: url.pathname,\n query: url.search.slice(1, url.search.length),\n contentType: req.responseType,\n authScheme: extractAuthScheme(req.headers),\n status: +status,\n inDataSize: sizeOf(responseBody),\n ouDataSize: sizeOf(req.body),\n start: start,\n end: dateNow(),\n exception: exception\n });\n }\n }));\n }\n}\n\nfunction toHref(url: string): HTMLAnchorElement {\n const href = document.createElement('a');\n href.setAttribute('href', url);\n return href;\n}\n\nfunction exctractHost(path: string) {\n const portregex = /:\\d+/;\n return path.replace(portregex, '')\n}\n\nfunction extractAuthScheme(headers: any): string | undefined {\n return headers.has('authorization')\n ? headers.get('authorization').match(/^(\\w+) /)?.at(1)\n : undefined;\n}\n\nfunction getReqid(headers:any):string | undefined {\n return headers.has('x-tracert')\n ? headers.get('x-tracert')\n : undefined;\n}\n\nfunction sizeOf(body: any): number {\n return body ? JSON.stringify(body).length : 0;\n}\n","import { NgModule, APP_INITIALIZER, ModuleWithProviders } from '@angular/core';\nimport { HTTP_INTERCEPTORS, } from '@angular/common/http';\nimport { logInspect } from './util';\nimport { NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { ApplicationConf, GetInstanceEnvironement, validateAndGetConfig } from './configuration';\nimport { HttpInterceptorService } from './http-interceptor.service';\nimport { SessionManager } from './session-manager.service';\n\n@NgModule()\nexport class NgCollectorModule {\n\n static forRoot(configuration: ApplicationConf): ModuleWithProviders<NgCollectorModule> {\n if (configuration?.enabled) {\n try {\n let config = validateAndGetConfig(configuration);\n let instance = GetInstanceEnvironement(configuration);\n logInspect(JSON.stringify(config));\n logInspect(JSON.stringify(instance));\n return {\n ngModule: NgCollectorModule,\n providers: [\n SessionManager,\n { provide: APP_INITIALIZER, useFactory: initializeEvents, deps: [Router, SessionManager], multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: HttpInterceptorService, multi: true },\n { provide: 'instance', useValue: instance },\n { provide: 'config', useValue: config }\n ]\n };\n } catch (e) {\n console.warn(`invalid Configuration, Ng-collector is disabled because ${e}`);\n }\n }\n return {\n ngModule: NgCollectorModule\n }\n }\n}\n\nexport function initializeEvents(router: Router, sessionManager: SessionManager) {\n return () => {\n logInspect('initialize routing events listeners');\n window.addEventListener('beforeunload', event => {\n if(!sessionManager.getCurrentSession().loading){\n sessionManager.newSession();\n }\n sessionManager.sendSessions()\n });\n router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n sessionManager.newSession(event.url);\n }\n if (event instanceof NavigationEnd) {\n sessionManager.getCurrentSession().name = document.title;\n sessionManager.getCurrentSession().location = document.URL;\n delete sessionManager.getCurrentSession().loading;\n }\n })\n }\n}\n\n\n","/*\n * Public API Surface of inspect-ng-collector\n */\n\n\nexport * from './lib/ng-collector.module';\n\n ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["tap","i1.SessionManager"],"mappings":"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"}
@@ -38,7 +38,7 @@ export declare function GetInstanceEnvironement(conf: ApplicationConf): {
38
38
  export declare function getNumberOrCall(o?: number | (() => number)): number | undefined;
39
39
  export declare function getStringOrCall(o?: string | (() => string)): string | undefined;
40
40
  export declare function getRegArrOrCall(o?: RegExp[] | (() => RegExp[])): RegExp[] | undefined;
41
- export declare function detectBrowser(): "edge" | "opera" | "chrome" | "firefox" | "safari" | undefined;
41
+ export declare function detectBrowser(): "Edge" | "Opera" | "Chrome" | "Firefox" | "Safari" | "Microsoft Internet Explorer" | undefined;
42
42
  export declare function detectOs(): string | undefined;
43
43
  export declare function matchRegex(v: string | undefined, name: string, pattern: RegExp): string;
44
44
  export declare function requirePostitiveValue(v: number | undefined, name: string, defaultValue: number): number;
@@ -11,6 +11,7 @@ export interface MainSession {
11
11
  threadName?: string;
12
12
  exception?: ExceptionInfo;
13
13
  restRequests: RestRequest[];
14
+ loading?: boolean;
14
15
  }
15
16
  export interface InstanceEnvironment {
16
17
  id?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneteme/inspect-ng-collector",
3
- "version": "0.0.17",
3
+ "version": "0.16.18",
4
4
  "description": "inspect ng collector",
5
5
  "homepage": "https://github.com/oneteme/inspect-ng-collector",
6
6
  "bugs": "https://github.com/oneteme/inspect-ng-collector/issues",
@@ -9,9 +9,9 @@
9
9
  "url": "https://github.com/oneteme/inspect-ng-collector.git"
10
10
  },
11
11
  "peerDependencies": {
12
- "@angular/common": "^17.0.0",
13
- "@angular/core": "^17.0.0",
14
- "@angular/router": "^17.0.0"
12
+ "@angular/common": "^16.2.8",
13
+ "@angular/core": "^16.2.8",
14
+ "@angular/router": "^16.2.8"
15
15
  },
16
16
  "dependencies": {
17
17
  "tslib": "^2.3.0"