ets-fe-ng-sdk 18.0.114 → 18.0.115

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.
@@ -53,7 +53,7 @@ export class LoggerComponent {
53
53
  this.uS.notify('Downloaded');
54
54
  }
55
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoggerComponent, deps: [{ token: i1.LoggerService }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: LoggerComponent, isStandalone: true, selector: "app-logger", ngImport: i0, template: " <div class=\"container-fluid py-5\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <h3 class=\"text-center text-primary mb-4\">Logged Select Requests</h3>\n <div class=\"d-flex\">\n <app-btn help=\"Refresh\" [showHelpIcon]=\"false\" [iconBtn]=\"true\" icon=\"renew\" (mclick)=\"ngOnInit()\" ></app-btn>\n </div>\n </div>\n @if (this.lS.isAuthed()) {\n <div class=\"\">\n <table class=\"table border table-bordered\">\n <thead>\n <th></th>\n <th width=\"30%\">Payload</th>\n <th width=\"30%\">Response</th>\n <th>Page Route</th>\n <th>Endpoint</th>\n <th>Files</th>\n <th>Status</th>\n <th>Time</th>\n <th> </th>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of logs();let i=index; trackBy:trackByID\"\n [ngClass]=\"{failure:!item?.isSuccess,success:item?.isSuccess}\">\n <!-- <td>{{item?.title}}</td> -->\n <td>{{i+1}}</td>\n <td>\n <div class=\"payload\" PSBox>{{item?.payload|json|trimText:200}}</div>\n </td>\n <td>\n <div class=\"payload\" PSBox>{{(item?.response||item?.error)|json|trimText:200}}</div>\n </td>\n <td><a routerLink=\"{{item.route}}\" target=\"_blank\">{{item?.route}}</a></td>\n <td>{{item?.endpoint}}</td>\n <td>\n <div class=\"\">\n <div class=\"\" *ngFor=\"let file of item?.files\">\n <div>Title: {{file.title}}</div>\n <div>Size: {{file.size}}</div>\n <div>Type: {{file.type}}</div>\n </div>\n </div>\n </td>\n <td>{{item?.isSuccess?'Success':'Failure'}}</td>\n <td>{{item?.time|date:'long'}}</td>\n <td>\n <div class=\" \">\n <app-btn icon=\"clone\" [cdkCopyToClipboard]=\"item?.payload|json\" (mclick)=\"copied()\" [iconBtn]=\"true\" type=\"outline\" help=\"Copy paylod to clipboard\" [showHelpIcon]=\"false\"></app-btn>\n <div class=\"my-1\"></div>\n <app-btn icon=\"download\" [iconBtn]=\"true\" type=\"outline\" help=\"Download payload\" (mclick)=\"makeTextFile(item)\" [showHelpIcon]=\"false\"></app-btn>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <app-btn icon=\"lock\" type=\"secondary\" (click)=\"lock()\">Lock Logs</app-btn>\n </div>\n }\n @else {\n <app-btn icon=\"unlock\" type=\"secondary\" (click)=\"ngOnInit()\">Unlock Logs</app-btn>\n }\n\n\n </div>\n", styles: ["td{height:50px!important;overflow:auto!important}td{text-align:left!important}.failure{background-color:#fe9f9f}.success{background-color:#caffca}.payload{max-height:100px;position:relative}\n"], dependencies: [{ kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "translatorOptions", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "helpShowDelay", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: PSDirective, selector: "[PSBox]", inputs: ["PSBox", "PSBoxNoHorizontal", "PSBoxNoVertical"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: ClipboardModule }, { kind: "directive", type: i3.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: TrimTextPipe, name: "trimText" }] }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: LoggerComponent, isStandalone: true, selector: "app-logger", ngImport: i0, template: "<div class=\"container-fluid py-5\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <h3 class=\"text-center text-primary mb-4\">\n Logged Select Requests (Logs payloads smaller than {{ lS.maxPayloadSize }}kb)\n </h3>\n <div class=\"d-flex\">\n <app-btn\n help=\"Refresh\"\n [showHelpIcon]=\"false\"\n [iconBtn]=\"true\"\n icon=\"renew\"\n (mclick)=\"ngOnInit()\"></app-btn>\n </div>\n </div>\n @if (this.lS.isAuthed()) {\n <div class=\"\">\n <table class=\"table border table-bordered\">\n <thead>\n <th></th>\n <th width=\"30%\">Payload</th>\n <th width=\"30%\">Response</th>\n <th>Page Route</th>\n <th>Endpoint</th>\n <th>Files</th>\n <th>Status</th>\n <th>Time</th>\n <th></th>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let item of logs(); let i = index; trackBy: trackByID\"\n [ngClass]=\"{ failure: !item?.isSuccess, success: item?.isSuccess }\">\n <!-- <td>{{item?.title}}</td> -->\n <td>{{ i + 1 }}</td>\n <td>\n @if (item.reqPayloadTooLarge) {\n Payload was too large to be logged\n } @else {\n <div class=\"payload\" PSBox>{{ item?.payload | json | trimText: 200 }}</div>\n }\n </td>\n <td>\n @if (item.resPayloadTooLarge) {\n Payload was too large to be logged\n } @else {\n <div class=\"payload\" PSBox>\n {{ item?.response || item?.error | json | trimText: 200 }}\n </div>\n }\n </td>\n <td>\n <a routerLink=\"{{ item.route }}\" target=\"_blank\">{{ item?.route }}</a>\n </td>\n <td>{{ item?.endpoint }}</td>\n <td>\n <div class=\"\">\n <div class=\"\" *ngFor=\"let file of item?.files\">\n <div>Title: {{ file.title }}</div>\n <div>Size: {{ file.size }}</div>\n <div>Type: {{ file.type }}</div>\n </div>\n </div>\n </td>\n <td>{{ item?.isSuccess ? 'Success' : 'Failure' }}</td>\n <td>{{ item?.time | date: 'long' }}</td>\n <td>\n <div class=\" \">\n <app-btn\n icon=\"clone\"\n [cdkCopyToClipboard]=\"item?.payload | json\"\n (mclick)=\"copied()\"\n [iconBtn]=\"true\"\n type=\"outline\"\n help=\"Copy paylod to clipboard\"\n [showHelpIcon]=\"false\"></app-btn>\n <div class=\"my-1\"></div>\n <app-btn\n icon=\"download\"\n [iconBtn]=\"true\"\n type=\"outline\"\n help=\"Download payload\"\n (mclick)=\"makeTextFile(item)\"\n [showHelpIcon]=\"false\"></app-btn>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <app-btn icon=\"lock\" type=\"secondary\" (click)=\"lock()\">Lock Logs</app-btn>\n </div>\n } @else {\n <app-btn icon=\"unlock\" type=\"secondary\" (click)=\"ngOnInit()\">Unlock Logs</app-btn>\n }\n</div>\n", styles: ["td{height:50px!important;overflow:auto!important}td{text-align:left!important}.failure{background-color:#fe9f9f}.success{background-color:#caffca}.payload{max-height:100px;position:relative}\n"], dependencies: [{ kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "translatorOptions", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "helpShowDelay", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: PSDirective, selector: "[PSBox]", inputs: ["PSBox", "PSBoxNoHorizontal", "PSBoxNoVertical"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: ClipboardModule }, { kind: "directive", type: i3.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: TrimTextPipe, name: "trimText" }] }); }
57
57
  }
58
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoggerComponent, decorators: [{
59
59
  type: Component,
@@ -68,6 +68,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
68
68
  JsonPipe,
69
69
  DatePipe,
70
70
  TrimTextPipe,
71
- ], template: " <div class=\"container-fluid py-5\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <h3 class=\"text-center text-primary mb-4\">Logged Select Requests</h3>\n <div class=\"d-flex\">\n <app-btn help=\"Refresh\" [showHelpIcon]=\"false\" [iconBtn]=\"true\" icon=\"renew\" (mclick)=\"ngOnInit()\" ></app-btn>\n </div>\n </div>\n @if (this.lS.isAuthed()) {\n <div class=\"\">\n <table class=\"table border table-bordered\">\n <thead>\n <th></th>\n <th width=\"30%\">Payload</th>\n <th width=\"30%\">Response</th>\n <th>Page Route</th>\n <th>Endpoint</th>\n <th>Files</th>\n <th>Status</th>\n <th>Time</th>\n <th> </th>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of logs();let i=index; trackBy:trackByID\"\n [ngClass]=\"{failure:!item?.isSuccess,success:item?.isSuccess}\">\n <!-- <td>{{item?.title}}</td> -->\n <td>{{i+1}}</td>\n <td>\n <div class=\"payload\" PSBox>{{item?.payload|json|trimText:200}}</div>\n </td>\n <td>\n <div class=\"payload\" PSBox>{{(item?.response||item?.error)|json|trimText:200}}</div>\n </td>\n <td><a routerLink=\"{{item.route}}\" target=\"_blank\">{{item?.route}}</a></td>\n <td>{{item?.endpoint}}</td>\n <td>\n <div class=\"\">\n <div class=\"\" *ngFor=\"let file of item?.files\">\n <div>Title: {{file.title}}</div>\n <div>Size: {{file.size}}</div>\n <div>Type: {{file.type}}</div>\n </div>\n </div>\n </td>\n <td>{{item?.isSuccess?'Success':'Failure'}}</td>\n <td>{{item?.time|date:'long'}}</td>\n <td>\n <div class=\" \">\n <app-btn icon=\"clone\" [cdkCopyToClipboard]=\"item?.payload|json\" (mclick)=\"copied()\" [iconBtn]=\"true\" type=\"outline\" help=\"Copy paylod to clipboard\" [showHelpIcon]=\"false\"></app-btn>\n <div class=\"my-1\"></div>\n <app-btn icon=\"download\" [iconBtn]=\"true\" type=\"outline\" help=\"Download payload\" (mclick)=\"makeTextFile(item)\" [showHelpIcon]=\"false\"></app-btn>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <app-btn icon=\"lock\" type=\"secondary\" (click)=\"lock()\">Lock Logs</app-btn>\n </div>\n }\n @else {\n <app-btn icon=\"unlock\" type=\"secondary\" (click)=\"ngOnInit()\">Unlock Logs</app-btn>\n }\n\n\n </div>\n", styles: ["td{height:50px!important;overflow:auto!important}td{text-align:left!important}.failure{background-color:#fe9f9f}.success{background-color:#caffca}.payload{max-height:100px;position:relative}\n"] }]
71
+ ], template: "<div class=\"container-fluid py-5\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <h3 class=\"text-center text-primary mb-4\">\n Logged Select Requests (Logs payloads smaller than {{ lS.maxPayloadSize }}kb)\n </h3>\n <div class=\"d-flex\">\n <app-btn\n help=\"Refresh\"\n [showHelpIcon]=\"false\"\n [iconBtn]=\"true\"\n icon=\"renew\"\n (mclick)=\"ngOnInit()\"></app-btn>\n </div>\n </div>\n @if (this.lS.isAuthed()) {\n <div class=\"\">\n <table class=\"table border table-bordered\">\n <thead>\n <th></th>\n <th width=\"30%\">Payload</th>\n <th width=\"30%\">Response</th>\n <th>Page Route</th>\n <th>Endpoint</th>\n <th>Files</th>\n <th>Status</th>\n <th>Time</th>\n <th></th>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let item of logs(); let i = index; trackBy: trackByID\"\n [ngClass]=\"{ failure: !item?.isSuccess, success: item?.isSuccess }\">\n <!-- <td>{{item?.title}}</td> -->\n <td>{{ i + 1 }}</td>\n <td>\n @if (item.reqPayloadTooLarge) {\n Payload was too large to be logged\n } @else {\n <div class=\"payload\" PSBox>{{ item?.payload | json | trimText: 200 }}</div>\n }\n </td>\n <td>\n @if (item.resPayloadTooLarge) {\n Payload was too large to be logged\n } @else {\n <div class=\"payload\" PSBox>\n {{ item?.response || item?.error | json | trimText: 200 }}\n </div>\n }\n </td>\n <td>\n <a routerLink=\"{{ item.route }}\" target=\"_blank\">{{ item?.route }}</a>\n </td>\n <td>{{ item?.endpoint }}</td>\n <td>\n <div class=\"\">\n <div class=\"\" *ngFor=\"let file of item?.files\">\n <div>Title: {{ file.title }}</div>\n <div>Size: {{ file.size }}</div>\n <div>Type: {{ file.type }}</div>\n </div>\n </div>\n </td>\n <td>{{ item?.isSuccess ? 'Success' : 'Failure' }}</td>\n <td>{{ item?.time | date: 'long' }}</td>\n <td>\n <div class=\" \">\n <app-btn\n icon=\"clone\"\n [cdkCopyToClipboard]=\"item?.payload | json\"\n (mclick)=\"copied()\"\n [iconBtn]=\"true\"\n type=\"outline\"\n help=\"Copy paylod to clipboard\"\n [showHelpIcon]=\"false\"></app-btn>\n <div class=\"my-1\"></div>\n <app-btn\n icon=\"download\"\n [iconBtn]=\"true\"\n type=\"outline\"\n help=\"Download payload\"\n (mclick)=\"makeTextFile(item)\"\n [showHelpIcon]=\"false\"></app-btn>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <app-btn icon=\"lock\" type=\"secondary\" (click)=\"lock()\">Lock Logs</app-btn>\n </div>\n } @else {\n <app-btn icon=\"unlock\" type=\"secondary\" (click)=\"ngOnInit()\">Unlock Logs</app-btn>\n }\n</div>\n", styles: ["td{height:50px!important;overflow:auto!important}td{text-align:left!important}.failure{background-color:#fe9f9f}.success{background-color:#caffca}.payload{max-height:100px;position:relative}\n"] }]
72
72
  }], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.UtilityService }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvbG9nZ2VyL2xvZ2dlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL2xvZ2dlci9sb2dnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUloRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFvQmhDLE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQ1MsRUFBaUIsRUFDakIsRUFBa0I7UUFEbEIsT0FBRSxHQUFGLEVBQUUsQ0FBZTtRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUFnQjtRQVBqQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQXFDSCxpQkFBWSxHQUFHLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUM7UUFsQ0EsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QixFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDOUMsWUFBWTtZQUNaLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFTO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBSSxDQUFDLENBQVMsSUFBRyxDQUFDO0lBQ2xCLFFBQVEsQ0FBQyxDQUFTLElBQUcsQ0FBQztJQUN0QixJQUFJO1FBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQXhDVSxlQUFlO2tHQUFmLGVBQWUsc0VDOUI1QixxcUZBZ0VBLDBQRDlDSSxZQUFZLHlpQkFFWixLQUFLLG1IQUNMLE9BQU8sb0ZBQ1AsV0FBVywrR0FDWCxVQUFVLG1PQUNWLGVBQWUscU5BQ2YsUUFBUSx3Q0FDUixRQUFRLHdDQUNSLFlBQVk7OzJGQUdILGVBQWU7a0JBbEIzQixTQUFTOytCQUNFLFlBQVksY0FHVixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixRQUFRO3dCQUNSLFFBQVE7d0JBQ1IsWUFBWTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgT25Jbml0LCBjb21wdXRlZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBMb2cgfSBmcm9tICcuL2xvZ2dlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4vbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJpbVRleHRQaXBlIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5pbXBvcnQgeyBDbGlwYm9hcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUFNEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvZGlyZWN0aXZlcy9pbmRleC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nQ2xhc3MsIEpzb25QaXBlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbG9nZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2dlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvZ2dlci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgTmdDbGFzcyxcbiAgICBQU0RpcmVjdGl2ZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIENsaXBib2FyZE1vZHVsZSxcbiAgICBKc29uUGlwZSxcbiAgICBEYXRlUGlwZSxcbiAgICBUcmltVGV4dFBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExvZ2dlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSBsb2dzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmxTLmxvZ3MoKS5yZXZlcnNlKCk7XG4gIH0pO1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxTOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyB1UzogVXRpbGl0eVNlcnZpY2UsXG4gICkge1xuICAgIGNvbnN0IHNpID0gaW50ZXJ2YWwoMTAwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubFMuZ2V0TG9ncygpO1xuICAgIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgc2k/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubFMuaXNBdXRoZWQoKSkge1xuICAgICAgbGV0IHB3ZCA9IHByb21wdCgnUGxlYXNlIGVudGVyIHRoZSBwYXNzd29yZCcpO1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICBpZiAocHdkID09IHRoaXMubFMucHdkKSB7XG4gICAgICAgIHRoaXMubFMudW5sb2NrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHRyYWNrQnlJRChpbmRleDogbnVtYmVyLCBpdGVtOiBMb2cpIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuICBjb3B5KGk6IG51bWJlcikge31cbiAgZG93bmxvYWQoaTogbnVtYmVyKSB7fVxuICBsb2NrKCkge1xuICAgIHRoaXMubFMubG9jaygpO1xuICB9XG4gIGNvcGllZCgpIHtcbiAgICB0aGlzLnVTLm5vdGlmeSgnQ29waWVkIHRvIGNsaXBib2FyZCcpO1xuICB9XG4gIGRvd25sb2FkZWQoKSB7XG4gICAgdGhpcy51Uy5ub3RpZnkoJ0Rvd25sb2FkZWQnKTtcbiAgfVxuICBtYWtlVGV4dEZpbGUgPSAobG9nOiBMb2cpID0+IHtcbiAgICB2YXIgZGF0YSA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShsb2cpXSwgeyB0eXBlOiAndGV4dC9wbGFpbicgfSk7XG4gICAgdGhpcy51Uy5kb3dubG9hZGVyKGRhdGEsIGBsb2dfJHtsb2cudGltZX0uanNvbmApO1xuICB9O1xufVxuIiwiIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcHktNVwiPlxuICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgPGgzIGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1wcmltYXJ5IG1iLTRcIj5Mb2dnZWQgU2VsZWN0IFJlcXVlc3RzPC9oMz5cbiAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICA8YXBwLWJ0biBoZWxwPVwiUmVmcmVzaFwiIFtzaG93SGVscEljb25dPVwiZmFsc2VcIiBbaWNvbkJ0bl09XCJ0cnVlXCIgaWNvbj1cInJlbmV3XCIgKG1jbGljayk9XCJuZ09uSW5pdCgpXCIgPjwvYXBwLWJ0bj5cbiAgICAgPC9kaXY+XG4gICA8L2Rpdj5cbiAgIEBpZiAodGhpcy5sUy5pc0F1dGhlZCgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBib3JkZXIgdGFibGUtYm9yZGVyZWRcIj5cbiAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgIDx0aCB3aWR0aD1cIjMwJVwiPlBheWxvYWQ8L3RoPlxuICAgICAgICAgICA8dGggd2lkdGg9XCIzMCVcIj5SZXNwb25zZTwvdGg+XG4gICAgICAgICAgIDx0aD5QYWdlIFJvdXRlPC90aD5cbiAgICAgICAgICAgPHRoPkVuZHBvaW50PC90aD5cbiAgICAgICAgICAgPHRoPkZpbGVzPC90aD5cbiAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+XG4gICAgICAgICAgIDx0aD5UaW1lPC90aD5cbiAgICAgICAgICAgPHRoPiA8L3RoPlxuICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxvZ3MoKTtsZXQgaT1pbmRleDsgdHJhY2tCeTp0cmFja0J5SURcIlxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntmYWlsdXJlOiFpdGVtPy5pc1N1Y2Nlc3Msc3VjY2VzczppdGVtPy5pc1N1Y2Nlc3N9XCI+XG4gICAgICAgICAgICAgPCEtLSA8dGQ+e3tpdGVtPy50aXRsZX19PC90ZD4gLS0+XG4gICAgICAgICAgICAgPHRkPnt7aSsxfX08L3RkPlxuICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXlsb2FkXCIgUFNCb3g+e3tpdGVtPy5wYXlsb2FkfGpzb258dHJpbVRleHQ6MjAwfX08L2Rpdj5cbiAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXlsb2FkXCIgUFNCb3g+e3soaXRlbT8ucmVzcG9uc2V8fGl0ZW0/LmVycm9yKXxqc29ufHRyaW1UZXh0OjIwMH19PC9kaXY+XG4gICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICA8dGQ+PGEgcm91dGVyTGluaz1cInt7aXRlbS5yb3V0ZX19XCIgdGFyZ2V0PVwiX2JsYW5rXCI+e3tpdGVtPy5yb3V0ZX19PC9hPjwvdGQ+XG4gICAgICAgICAgICAgPHRkPnt7aXRlbT8uZW5kcG9pbnR9fTwvdGQ+XG4gICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgaXRlbT8uZmlsZXNcIj5cbiAgICAgICAgICAgICAgICAgICA8ZGl2PlRpdGxlOiB7e2ZpbGUudGl0bGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgIDxkaXY+U2l6ZToge3tmaWxlLnNpemV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgIDxkaXY+VHlwZToge3tmaWxlLnR5cGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgPHRkPnt7aXRlbT8uaXNTdWNjZXNzPydTdWNjZXNzJzonRmFpbHVyZSd9fTwvdGQ+XG4gICAgICAgICAgICAgPHRkPnt7aXRlbT8udGltZXxkYXRlOidsb25nJ319PC90ZD5cbiAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIFwiPlxuICAgICAgICAgICAgICAgICA8YXBwLWJ0biBpY29uPVwiY2xvbmVcIiBbY2RrQ29weVRvQ2xpcGJvYXJkXT1cIml0ZW0/LnBheWxvYWR8anNvblwiIChtY2xpY2spPVwiY29waWVkKClcIiBbaWNvbkJ0bl09XCJ0cnVlXCIgdHlwZT1cIm91dGxpbmVcIiBoZWxwPVwiQ29weSBwYXlsb2QgdG8gY2xpcGJvYXJkXCIgW3Nob3dIZWxwSWNvbl09XCJmYWxzZVwiPjwvYXBwLWJ0bj5cbiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTFcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgPGFwcC1idG4gaWNvbj1cImRvd25sb2FkXCIgW2ljb25CdG5dPVwidHJ1ZVwiIHR5cGU9XCJvdXRsaW5lXCIgaGVscD1cIkRvd25sb2FkIHBheWxvYWRcIiAobWNsaWNrKT1cIm1ha2VUZXh0RmlsZShpdGVtKVwiIFtzaG93SGVscEljb25dPVwiZmFsc2VcIj48L2FwcC1idG4+XG4gICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICA8L3RyPlxuICAgICAgICAgPC90Ym9keT5cbiAgICAgICA8L3RhYmxlPlxuICAgICAgIDxhcHAtYnRuIGljb249XCJsb2NrXCIgdHlwZT1cInNlY29uZGFyeVwiIChjbGljayk9XCJsb2NrKClcIj5Mb2NrIExvZ3M8L2FwcC1idG4+XG4gICAgIDwvZGl2PlxuICAgfVxuICAgQGVsc2Uge1xuICAgIDxhcHAtYnRuIGljb249XCJ1bmxvY2tcIiB0eXBlPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm5nT25Jbml0KClcIj5VbmxvY2sgTG9nczwvYXBwLWJ0bj5cbiAgIH1cblxuXG4gPC9kaXY+XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvbG9nZ2VyL2xvZ2dlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL2xvZ2dlci9sb2dnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUloRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFvQmhDLE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQ1MsRUFBaUIsRUFDakIsRUFBa0I7UUFEbEIsT0FBRSxHQUFGLEVBQUUsQ0FBZTtRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUFnQjtRQVBqQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQXFDSCxpQkFBWSxHQUFHLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUM7UUFsQ0EsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QixFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDOUMsWUFBWTtZQUNaLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFTO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBSSxDQUFDLENBQVMsSUFBRyxDQUFDO0lBQ2xCLFFBQVEsQ0FBQyxDQUFTLElBQUcsQ0FBQztJQUN0QixJQUFJO1FBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQXhDVSxlQUFlO2tHQUFmLGVBQWUsc0VDOUI1QiwwMkdBOEZBLDBQRDVFSSxZQUFZLHlpQkFFWixLQUFLLG1IQUNMLE9BQU8sb0ZBQ1AsV0FBVywrR0FDWCxVQUFVLG1PQUNWLGVBQWUscU5BQ2YsUUFBUSx3Q0FDUixRQUFRLHdDQUNSLFlBQVk7OzJGQUdILGVBQWU7a0JBbEIzQixTQUFTOytCQUNFLFlBQVksY0FHVixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixRQUFRO3dCQUNSLFFBQVE7d0JBQ1IsWUFBWTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgT25Jbml0LCBjb21wdXRlZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBMb2cgfSBmcm9tICcuL2xvZ2dlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4vbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJpbVRleHRQaXBlIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5pbXBvcnQgeyBDbGlwYm9hcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUFNEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvZGlyZWN0aXZlcy9pbmRleC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nQ2xhc3MsIEpzb25QaXBlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbG9nZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2dlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvZ2dlci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgTmdDbGFzcyxcbiAgICBQU0RpcmVjdGl2ZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIENsaXBib2FyZE1vZHVsZSxcbiAgICBKc29uUGlwZSxcbiAgICBEYXRlUGlwZSxcbiAgICBUcmltVGV4dFBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExvZ2dlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSBsb2dzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmxTLmxvZ3MoKS5yZXZlcnNlKCk7XG4gIH0pO1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxTOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyB1UzogVXRpbGl0eVNlcnZpY2UsXG4gICkge1xuICAgIGNvbnN0IHNpID0gaW50ZXJ2YWwoMTAwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubFMuZ2V0TG9ncygpO1xuICAgIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgc2k/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubFMuaXNBdXRoZWQoKSkge1xuICAgICAgbGV0IHB3ZCA9IHByb21wdCgnUGxlYXNlIGVudGVyIHRoZSBwYXNzd29yZCcpO1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICBpZiAocHdkID09IHRoaXMubFMucHdkKSB7XG4gICAgICAgIHRoaXMubFMudW5sb2NrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHRyYWNrQnlJRChpbmRleDogbnVtYmVyLCBpdGVtOiBMb2cpIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuICBjb3B5KGk6IG51bWJlcikge31cbiAgZG93bmxvYWQoaTogbnVtYmVyKSB7fVxuICBsb2NrKCkge1xuICAgIHRoaXMubFMubG9jaygpO1xuICB9XG4gIGNvcGllZCgpIHtcbiAgICB0aGlzLnVTLm5vdGlmeSgnQ29waWVkIHRvIGNsaXBib2FyZCcpO1xuICB9XG4gIGRvd25sb2FkZWQoKSB7XG4gICAgdGhpcy51Uy5ub3RpZnkoJ0Rvd25sb2FkZWQnKTtcbiAgfVxuICBtYWtlVGV4dEZpbGUgPSAobG9nOiBMb2cpID0+IHtcbiAgICB2YXIgZGF0YSA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShsb2cpXSwgeyB0eXBlOiAndGV4dC9wbGFpbicgfSk7XG4gICAgdGhpcy51Uy5kb3dubG9hZGVyKGRhdGEsIGBsb2dfJHtsb2cudGltZX0uanNvbmApO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBweS01XCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPGgzIGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1wcmltYXJ5IG1iLTRcIj5cbiAgICAgIExvZ2dlZCBTZWxlY3QgUmVxdWVzdHMgKExvZ3MgcGF5bG9hZHMgc21hbGxlciB0aGFuIHt7IGxTLm1heFBheWxvYWRTaXplIH19a2IpXG4gICAgPC9oMz5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICA8YXBwLWJ0blxuICAgICAgICBoZWxwPVwiUmVmcmVzaFwiXG4gICAgICAgIFtzaG93SGVscEljb25dPVwiZmFsc2VcIlxuICAgICAgICBbaWNvbkJ0bl09XCJ0cnVlXCJcbiAgICAgICAgaWNvbj1cInJlbmV3XCJcbiAgICAgICAgKG1jbGljayk9XCJuZ09uSW5pdCgpXCI+PC9hcHAtYnRuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmICh0aGlzLmxTLmlzQXV0aGVkKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBib3JkZXIgdGFibGUtYm9yZGVyZWRcIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICAgIDx0aCB3aWR0aD1cIjMwJVwiPlBheWxvYWQ8L3RoPlxuICAgICAgICAgIDx0aCB3aWR0aD1cIjMwJVwiPlJlc3BvbnNlPC90aD5cbiAgICAgICAgICA8dGg+UGFnZSBSb3V0ZTwvdGg+XG4gICAgICAgICAgPHRoPkVuZHBvaW50PC90aD5cbiAgICAgICAgICA8dGg+RmlsZXM8L3RoPlxuICAgICAgICAgIDx0aD5TdGF0dXM8L3RoPlxuICAgICAgICAgIDx0aD5UaW1lPC90aD5cbiAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0clxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbG9ncygpOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SURcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBmYWlsdXJlOiAhaXRlbT8uaXNTdWNjZXNzLCBzdWNjZXNzOiBpdGVtPy5pc1N1Y2Nlc3MgfVwiPlxuICAgICAgICAgICAgPCEtLSA8dGQ+e3tpdGVtPy50aXRsZX19PC90ZD4gLS0+XG4gICAgICAgICAgICA8dGQ+e3sgaSArIDEgfX08L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICBAaWYgKGl0ZW0ucmVxUGF5bG9hZFRvb0xhcmdlKSB7XG4gICAgICAgICAgICAgICAgUGF5bG9hZCB3YXMgdG9vIGxhcmdlIHRvIGJlIGxvZ2dlZFxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGF5bG9hZFwiIFBTQm94Pnt7IGl0ZW0/LnBheWxvYWQgfCBqc29uIHwgdHJpbVRleHQ6IDIwMCB9fTwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICBAaWYgKGl0ZW0ucmVzUGF5bG9hZFRvb0xhcmdlKSB7XG4gICAgICAgICAgICAgICAgUGF5bG9hZCB3YXMgdG9vIGxhcmdlIHRvIGJlIGxvZ2dlZFxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGF5bG9hZFwiIFBTQm94PlxuICAgICAgICAgICAgICAgICAge3sgaXRlbT8ucmVzcG9uc2UgfHwgaXRlbT8uZXJyb3IgfCBqc29uIHwgdHJpbVRleHQ6IDIwMCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8YSByb3V0ZXJMaW5rPVwie3sgaXRlbS5yb3V0ZSB9fVwiIHRhcmdldD1cIl9ibGFua1wiPnt7IGl0ZW0/LnJvdXRlIH19PC9hPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZD57eyBpdGVtPy5lbmRwb2ludCB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgaXRlbT8uZmlsZXNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+VGl0bGU6IHt7IGZpbGUudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+U2l6ZToge3sgZmlsZS5zaXplIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlR5cGU6IHt7IGZpbGUudHlwZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3sgaXRlbT8uaXNTdWNjZXNzID8gJ1N1Y2Nlc3MnIDogJ0ZhaWx1cmUnIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZD57eyBpdGVtPy50aW1lIHwgZGF0ZTogJ2xvbmcnIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBcIj5cbiAgICAgICAgICAgICAgICA8YXBwLWJ0blxuICAgICAgICAgICAgICAgICAgaWNvbj1cImNsb25lXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtDb3B5VG9DbGlwYm9hcmRdPVwiaXRlbT8ucGF5bG9hZCB8IGpzb25cIlxuICAgICAgICAgICAgICAgICAgKG1jbGljayk9XCJjb3BpZWQoKVwiXG4gICAgICAgICAgICAgICAgICBbaWNvbkJ0bl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgIGhlbHA9XCJDb3B5IHBheWxvZCB0byBjbGlwYm9hcmRcIlxuICAgICAgICAgICAgICAgICAgW3Nob3dIZWxwSWNvbl09XCJmYWxzZVwiPjwvYXBwLWJ0bj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxhcHAtYnRuXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZG93bmxvYWRcIlxuICAgICAgICAgICAgICAgICAgW2ljb25CdG5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICBoZWxwPVwiRG93bmxvYWQgcGF5bG9hZFwiXG4gICAgICAgICAgICAgICAgICAobWNsaWNrKT1cIm1ha2VUZXh0RmlsZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICBbc2hvd0hlbHBJY29uXT1cImZhbHNlXCI+PC9hcHAtYnRuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgICA8YXBwLWJ0biBpY29uPVwibG9ja1wiIHR5cGU9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwibG9jaygpXCI+TG9jayBMb2dzPC9hcHAtYnRuPlxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8YXBwLWJ0biBpY29uPVwidW5sb2NrXCIgdHlwZT1cInNlY29uZGFyeVwiIChjbGljayk9XCJuZ09uSW5pdCgpXCI+VW5sb2NrIExvZ3M8L2FwcC1idG4+XG4gIH1cbjwvZGl2PlxuIl19
@@ -18,4 +18,4 @@ export class Log {
18
18
  this.id = 'id' + Math.round(Math.random() * 100000000);
19
19
  }
20
20
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvbG9nZ2VyL2xvZ2dlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxPQUFPLEdBQUc7SUFZZCxZQUFZLElBQWE7UUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxZQUFZLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMxQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUM7b0JBQy9DLElBQUksSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDO3dCQUMxQixJQUFJLENBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEtBQUssRUFBQyxJQUFJLENBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQztvQkFDbkUsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzFELENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFFLElBQUksQ0FBQyxLQUFLLElBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIgXG50eXBlIE1ldGhvZCA9ICdQT1NUJyB8ICdQVVQnO1xuZXhwb3J0IGludGVyZmFjZSBJTG9nPFQ+IHtcbiAgcGF5bG9hZDogVDtcbiAgZmlsZXM/OiBGaWxlW107XG4gIGlzU3VjY2Vzcz86IGJvb2xlYW47XG4gIHJvdXRlPzogc3RyaW5nO1xuICBlbmRwb2ludDogc3RyaW5nO1xuICBtZXRob2Q6IE1ldGhvZDtcbn1cbmV4cG9ydCBjbGFzcyBMb2c8VCA9IGFueT4ge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0aW1lOiBudW1iZXI7XG4gIHBheWxvYWQ6IFQ7XG4gIGlzU3VjY2VzczogYm9vbGVhbjtcbiAgcm91dGU6IHN0cmluZztcbiAgZW5kcG9pbnQ6IHN0cmluZztcbiAgZmlsZXM6IElGaWxlRGF0YVtdO1xuICBtZXRob2Q6IHN0cmluZztcbiAgZXJyb3I6IGFueTtcbiAgcmVzcG9uc2U6IGFueTtcbiAgY29uc3RydWN0b3IoZGF0YTogSUxvZzxUPikge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7IFxuICAgIGlmIChkYXRhLnBheWxvYWQgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgdGhpcy5wYXlsb2FkID0gbnVsbDtcbiAgICAgIChkYXRhLnBheWxvYWQgYXMgRm9ybURhdGEpLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgaWYgKCEoIWZpbGUgfHwgZmlsZSA9PSB1bmRlZmluZWQgfHwgZmlsZSA9PSBudWxsKSlcbiAgICAgICAgICBpZiAoZmlsZSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgICAgICAgdGhpcy4gZmlsZXMucHVzaCh7c2l6ZTpmaWxlLnNpemUsdGl0bGU6ZmlsZS5uYW1lLHR5cGU6ZmlsZS50eXBlfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGF5bG9hZCA9IHsgLi4udGhpcy5wYXlsb2FkLCAuLi5KU09OLnBhcnNlKGZpbGUpIH07XG4gICAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSAgXG4gICAgdGhpcy5yb3V0ZSA9dGhpcy5yb3V0ZXx8IGxvY2F0aW9uLnBhdGhuYW1lOyBcbiAgICB0aGlzLnRpbWUgPSBEYXRlLm5vdygpO1xuICAgIHRoaXMuaWQgPSAnaWQnICsgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDAwKTtcbiAgfVxufVxuaW50ZXJmYWNlIElGaWxlRGF0YSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgdHlwZTogc3RyaW5nO1xufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvbG9nZ2VyL2xvZ2dlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxPQUFPLEdBQUc7SUFjZCxZQUFZLElBQWE7UUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxZQUFZLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMxQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUM7b0JBQy9DLElBQUksSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDO3dCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDMUUsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzFELENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIE1ldGhvZCA9ICdQT1NUJyB8ICdQVVQnO1xuZXhwb3J0IGludGVyZmFjZSBJTG9nPFQ+IHtcbiAgcGF5bG9hZDogVDtcbiAgZmlsZXM/OiBQYXJ0aWFsPEZpbGU+W107XG4gIGlzU3VjY2Vzcz86IGJvb2xlYW47XG4gIHJvdXRlPzogc3RyaW5nO1xuICBlbmRwb2ludDogc3RyaW5nO1xuICBtZXRob2Q6IE1ldGhvZDtcbiAgcmVxUGF5bG9hZFRvb0xhcmdlPzogYm9vbGVhbjtcbiAgcmVzUGF5bG9hZFRvb0xhcmdlPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBjbGFzcyBMb2c8VCA9IGFueT4gaW1wbGVtZW50cyBJTG9nPFQ+IHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgdGltZTogbnVtYmVyO1xuICBwYXlsb2FkOiBUO1xuICBpc1N1Y2Nlc3M6IGJvb2xlYW47XG4gIHJvdXRlOiBzdHJpbmc7XG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIGZpbGVzOiBJRmlsZURhdGFbXTtcbiAgbWV0aG9kOiBNZXRob2Q7XG4gIGVycm9yOiBhbnk7XG4gIHJlc3BvbnNlOiBhbnk7XG4gIHJlcVBheWxvYWRUb29MYXJnZT86IGJvb2xlYW47XG4gIHJlc1BheWxvYWRUb29MYXJnZT86IGJvb2xlYW47XG4gIGNvbnN0cnVjdG9yKGRhdGE6IElMb2c8VD4pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuICAgIGlmIChkYXRhLnBheWxvYWQgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgdGhpcy5wYXlsb2FkID0gbnVsbDtcbiAgICAgIChkYXRhLnBheWxvYWQgYXMgRm9ybURhdGEpLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgaWYgKCEoIWZpbGUgfHwgZmlsZSA9PSB1bmRlZmluZWQgfHwgZmlsZSA9PSBudWxsKSlcbiAgICAgICAgICBpZiAoZmlsZSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMucHVzaCh7IHNpemU6IGZpbGUuc2l6ZSwgdGl0bGU6IGZpbGUubmFtZSwgdHlwZTogZmlsZS50eXBlIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBheWxvYWQgPSB7IC4uLnRoaXMucGF5bG9hZCwgLi4uSlNPTi5wYXJzZShmaWxlKSB9O1xuICAgICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlID0gdGhpcy5yb3V0ZSB8fCBsb2NhdGlvbi5wYXRobmFtZTtcbiAgICB0aGlzLnRpbWUgPSBEYXRlLm5vdygpO1xuICAgIHRoaXMuaWQgPSAnaWQnICsgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDAwKTtcbiAgfVxufVxuaW50ZXJmYWNlIElGaWxlRGF0YSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgdHlwZTogc3RyaW5nO1xufVxuIl19
@@ -1,6 +1,7 @@
1
- import { Injectable, computed, signal } from '@angular/core';
1
+ import { Injectable, computed, inject, signal } from '@angular/core';
2
2
  import { Log } from './logger.interface';
3
3
  import { uniqBy } from 'lodash-es';
4
+ import { ObjectSizeService } from '../../../Services/object-size.service';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../../../Services/storage.service";
6
7
  export class LoggerService {
@@ -14,6 +15,10 @@ export class LoggerService {
14
15
  this._isAuthed = signal(false);
15
16
  this.maxLength = 5;
16
17
  this.pwd = '1234';
18
+ this.objectSizeService = inject(ObjectSizeService);
19
+ /**In KB */
20
+ this.maxPayloadSize = 15;
21
+ this.maxPayloadSizeBytes = this.maxPayloadSize * 1000;
17
22
  this.isAuthed = computed(() => {
18
23
  return this._isAuthed();
19
24
  });
@@ -24,6 +29,18 @@ export class LoggerService {
24
29
  }
25
30
  pushLog(log) {
26
31
  // debugger;
32
+ if (log?.payload &&
33
+ this.objectSizeService.roughSizeOfObject(log.payload, this.maxPayloadSizeBytes)
34
+ ?.crossedMaxSize) {
35
+ delete log.payload;
36
+ log.reqPayloadTooLarge = true;
37
+ }
38
+ if ((log?.response || log?.error) &&
39
+ this.objectSizeService.roughSizeOfObject(log?.response || log?.error, this.maxPayloadSizeBytes)?.crossedMaxSize) {
40
+ delete log.response;
41
+ delete log.error;
42
+ log.resPayloadTooLarge = true;
43
+ }
27
44
  this._newLogs.update((logs) => {
28
45
  return (logs || []).concat([log]);
29
46
  });
@@ -67,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
67
84
  providedIn: 'root',
68
85
  }]
69
86
  }], ctorParameters: () => [{ type: i1.ETSStorageService }] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFRLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBc0IsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFLdkQsTUFBTSxPQUFPLGFBQWE7SUFVeEIsWUFBbUIsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFUL0IsZUFBVSxHQUFHLFNBQVMsQ0FBQztRQUN2QixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ1AsaUJBQVksR0FBRyxNQUFNLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDakMsYUFBUSxHQUFHLE1BQU0sQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxTQUFJLEdBQUcsUUFBUSxDQUFRLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUUsY0FBUyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUM1QyxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsUUFBRyxHQUFHLE1BQU0sQ0FBQztRQStDdEIsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUE5Q0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUksR0FBWTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFRO1FBQ2QsWUFBWTtRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDNUIsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFUyxRQUFRLENBQUMsS0FBYTtRQUM5QixzQkFBc0I7UUFDdEIsK0RBQStEO1FBQy9ELHVEQUF1RDtRQUN2RCxnREFBZ0Q7SUFDbEQsQ0FBQzs4R0F0RFUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgZWZmZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVUU1N0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IElMb2csIExvZyB9IGZyb20gJy4vbG9nZ2VyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzRXF1YWwsIHVuaXFCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2dnZXJTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgbG9nQXV0aEtleSA9ICdsb2dBdXRoJztcbiAgcmVhZG9ubHkgbG9nc0tleSA9ICdsb2dzJztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zdG9yYWdlTG9ncyA9IHNpZ25hbDxMb2dbXT4oW10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX25ld0xvZ3MgPSBzaWduYWw8TG9nW10+KFtdKTtcbiAgcmVhZG9ubHkgbG9ncyA9IGNvbXB1dGVkPExvZ1tdPigoKSA9PiB1bmlxQnkodGhpcy5fc3RvcmFnZUxvZ3MoKS5jb25jYXQodGhpcy5fbmV3TG9ncygpKSwgJ2lkJykpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2lzQXV0aGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJvdGVjdGVkIG1heExlbmd0aCA9IDU7XG4gIHJlYWRvbmx5IHB3ZCA9ICcxMjM0JztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc1M6IEVUU1N0b3JhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy5jaGVja0F1dGgoKTtcbiAgfVxuXG4gIGFkZExvZzxUPihsb2c6IElMb2c8VD4pIHtcbiAgICB0aGlzLnB1c2hMb2cobmV3IExvZyhsb2cpKTtcbiAgfVxuICBwdXNoTG9nKGxvZzogTG9nKSB7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgdGhpcy5fbmV3TG9ncy51cGRhdGUoKGxvZ3MpID0+IHtcbiAgICAgIHJldHVybiAobG9ncyB8fCBbXSkuY29uY2F0KFtsb2ddKTtcbiAgICB9KTtcbiAgICB0aGlzLnNhdmVUb0xvY2FsKCk7XG4gIH1cblxuICBzYXZlVG9Mb2NhbCgpIHtcbiAgICB0aGlzLmdldExvZ3MoKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuc1Muc2F2ZUl0ZW0odGhpcy5sb2dzS2V5LCB0aGlzLmxvZ3MoKS5zbGljZSgtdGhpcy5tYXhMZW5ndGgpKTtcbiAgICAgIHRoaXMubG9nU3RhdGUoYHNhdmVMb2dzYCk7XG4gICAgfSk7XG4gIH1cbiAgdW5sb2NrKCkge1xuICAgIHRoaXMuc1Muc2F2ZUl0ZW0odGhpcy5sb2dBdXRoS2V5LCB0aGlzLnB3ZCk7XG4gICAgdGhpcy5jaGVja0F1dGgoKTtcbiAgfVxuICBsb2NrKCkge1xuICAgIHRoaXMuc1MucmVtb3ZlSXRlbSh0aGlzLmxvZ0F1dGhLZXkpO1xuICAgIHRoaXMuY2hlY2tBdXRoKCk7XG4gIH1cbiAgZ2V0TG9ncygpIHtcbiAgICByZXR1cm4gdGhpcy5zUy5nZXRJdGVtQTxMb2dbXT4odGhpcy5sb2dzS2V5KS50aGVuKChyKSA9PiB7XG4gICAgICB0aGlzLl9zdG9yYWdlTG9ncy5zZXQocnx8W10pO1xuICAgICAgdGhpcy5sb2dTdGF0ZShgZ2V0TG9nc2ApO1xuICAgIH0pO1xuICB9XG4gIGNoZWNrQXV0aCgpIHtcbiAgICB0aGlzLl9pc0F1dGhlZC5zZXQodGhpcy5zUy5nZXRJdGVtKHRoaXMubG9nQXV0aEtleSkgPT0gdGhpcy5wd2QpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGxvZ1N0YXRlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICAvLyBjb25zb2xlLmxvZyh0aXRsZSk7XG4gICAgLy8gY29uc29sZS5sb2coJ19zdG9yYWdlTG9ncycsIGNsb25lRGVlcCh0aGlzLl9zdG9yYWdlTG9ncygpKSk7XG4gICAgLy8gY29uc29sZS5sb2coJ19uZXdMb2dzJywgY2xvbmVEZWVwKHRoaXMuX25ld0xvZ3MoKSkpO1xuICAgIC8vIGNvbnNvbGUubG9nKCdfbG9ncycsIGNsb25lRGVlcCh0aGlzLmxvZ3MoKSkpO1xuICB9XG4gIGlzQXV0aGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl9pc0F1dGhlZCgpO1xuICB9KTtcbn1cbnR5cGUgTG9nTWFwID0geyBba2V5OiBzdHJpbmddOiBMb2cgfTtcbiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBUSxHQUFHLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQXNCLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBSzFFLE1BQU0sT0FBTyxhQUFhO0lBY3hCLFlBQW1CLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBYi9CLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsWUFBTyxHQUFHLE1BQU0sQ0FBQztRQUNQLGlCQUFZLEdBQUcsTUFBTSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxNQUFNLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsU0FBSSxHQUFHLFFBQVEsQ0FBUSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlFLGNBQVMsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDNUMsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNmLFFBQUcsR0FBRyxNQUFNLENBQUM7UUFDZixzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRCxXQUFXO1FBQ0YsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDVix3QkFBbUIsR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQWtFcEUsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFqRUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUksR0FBWTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFRO1FBQ2QsWUFBWTtRQUNaLElBQ0UsR0FBRyxFQUFFLE9BQU87WUFDWixJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUM7Z0JBQzdFLEVBQUUsY0FBYyxFQUNsQixDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ25CLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQ0UsQ0FBQyxHQUFHLEVBQUUsUUFBUSxJQUFJLEdBQUcsRUFBRSxLQUFLLENBQUM7WUFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUN0QyxHQUFHLEVBQUUsUUFBUSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQzNCLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsRUFBRSxjQUFjLEVBQ2pCLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDcEIsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDNUIsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFUyxRQUFRLENBQUMsS0FBYTtRQUM5QixzQkFBc0I7UUFDdEIsK0RBQStEO1FBQy9ELHVEQUF1RDtRQUN2RCxnREFBZ0Q7SUFDbEQsQ0FBQzs4R0E3RVUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRVRTU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSUxvZywgTG9nIH0gZnJvbSAnLi9sb2dnZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCwgdW5pcUJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9iamVjdFNpemVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvb2JqZWN0LXNpemUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2dnZXJTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgbG9nQXV0aEtleSA9ICdsb2dBdXRoJztcbiAgcmVhZG9ubHkgbG9nc0tleSA9ICdsb2dzJztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zdG9yYWdlTG9ncyA9IHNpZ25hbDxMb2dbXT4oW10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX25ld0xvZ3MgPSBzaWduYWw8TG9nW10+KFtdKTtcbiAgcmVhZG9ubHkgbG9ncyA9IGNvbXB1dGVkPExvZ1tdPigoKSA9PiB1bmlxQnkodGhpcy5fc3RvcmFnZUxvZ3MoKS5jb25jYXQodGhpcy5fbmV3TG9ncygpKSwgJ2lkJykpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2lzQXV0aGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJvdGVjdGVkIG1heExlbmd0aCA9IDU7XG4gIHJlYWRvbmx5IHB3ZCA9ICcxMjM0JztcbiAgcHVibGljIG9iamVjdFNpemVTZXJ2aWNlID0gaW5qZWN0KE9iamVjdFNpemVTZXJ2aWNlKTtcbiAgLyoqSW4gS0IgKi9cbiAgcmVhZG9ubHkgbWF4UGF5bG9hZFNpemUgPSAxNTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1heFBheWxvYWRTaXplQnl0ZXMgPSB0aGlzLm1heFBheWxvYWRTaXplICogMTAwMDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc1M6IEVUU1N0b3JhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy5jaGVja0F1dGgoKTtcbiAgfVxuXG4gIGFkZExvZzxUPihsb2c6IElMb2c8VD4pIHtcbiAgICB0aGlzLnB1c2hMb2cobmV3IExvZyhsb2cpKTtcbiAgfVxuICBwdXNoTG9nKGxvZzogTG9nKSB7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgaWYgKFxuICAgICAgbG9nPy5wYXlsb2FkICYmXG4gICAgICB0aGlzLm9iamVjdFNpemVTZXJ2aWNlLnJvdWdoU2l6ZU9mT2JqZWN0KGxvZy5wYXlsb2FkLCB0aGlzLm1heFBheWxvYWRTaXplQnl0ZXMpXG4gICAgICAgID8uY3Jvc3NlZE1heFNpemVcbiAgICApIHtcbiAgICAgIGRlbGV0ZSBsb2cucGF5bG9hZDtcbiAgICAgIGxvZy5yZXFQYXlsb2FkVG9vTGFyZ2UgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAobG9nPy5yZXNwb25zZSB8fCBsb2c/LmVycm9yKSAmJlxuICAgICAgdGhpcy5vYmplY3RTaXplU2VydmljZS5yb3VnaFNpemVPZk9iamVjdChcbiAgICAgICAgbG9nPy5yZXNwb25zZSB8fCBsb2c/LmVycm9yLFxuICAgICAgICB0aGlzLm1heFBheWxvYWRTaXplQnl0ZXMsXG4gICAgICApPy5jcm9zc2VkTWF4U2l6ZVxuICAgICkge1xuICAgICAgZGVsZXRlIGxvZy5yZXNwb25zZTtcbiAgICAgIGRlbGV0ZSBsb2cuZXJyb3I7XG4gICAgICBsb2cucmVzUGF5bG9hZFRvb0xhcmdlID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5fbmV3TG9ncy51cGRhdGUoKGxvZ3MpID0+IHtcbiAgICAgIHJldHVybiAobG9ncyB8fCBbXSkuY29uY2F0KFtsb2ddKTtcbiAgICB9KTtcbiAgICB0aGlzLnNhdmVUb0xvY2FsKCk7XG4gIH1cblxuICBzYXZlVG9Mb2NhbCgpIHtcbiAgICB0aGlzLmdldExvZ3MoKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuc1Muc2F2ZUl0ZW0odGhpcy5sb2dzS2V5LCB0aGlzLmxvZ3MoKS5zbGljZSgtdGhpcy5tYXhMZW5ndGgpKTtcbiAgICAgIHRoaXMubG9nU3RhdGUoYHNhdmVMb2dzYCk7XG4gICAgfSk7XG4gIH1cbiAgdW5sb2NrKCkge1xuICAgIHRoaXMuc1Muc2F2ZUl0ZW0odGhpcy5sb2dBdXRoS2V5LCB0aGlzLnB3ZCk7XG4gICAgdGhpcy5jaGVja0F1dGgoKTtcbiAgfVxuICBsb2NrKCkge1xuICAgIHRoaXMuc1MucmVtb3ZlSXRlbSh0aGlzLmxvZ0F1dGhLZXkpO1xuICAgIHRoaXMuY2hlY2tBdXRoKCk7XG4gIH1cbiAgZ2V0TG9ncygpIHtcbiAgICByZXR1cm4gdGhpcy5zUy5nZXRJdGVtQTxMb2dbXT4odGhpcy5sb2dzS2V5KS50aGVuKChyKSA9PiB7XG4gICAgICB0aGlzLl9zdG9yYWdlTG9ncy5zZXQociB8fCBbXSk7XG4gICAgICB0aGlzLmxvZ1N0YXRlKGBnZXRMb2dzYCk7XG4gICAgfSk7XG4gIH1cbiAgY2hlY2tBdXRoKCkge1xuICAgIHRoaXMuX2lzQXV0aGVkLnNldCh0aGlzLnNTLmdldEl0ZW0odGhpcy5sb2dBdXRoS2V5KSA9PSB0aGlzLnB3ZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbG9nU3RhdGUodGl0bGU6IHN0cmluZykge1xuICAgIC8vIGNvbnNvbGUubG9nKHRpdGxlKTtcbiAgICAvLyBjb25zb2xlLmxvZygnX3N0b3JhZ2VMb2dzJywgY2xvbmVEZWVwKHRoaXMuX3N0b3JhZ2VMb2dzKCkpKTtcbiAgICAvLyBjb25zb2xlLmxvZygnX25ld0xvZ3MnLCBjbG9uZURlZXAodGhpcy5fbmV3TG9ncygpKSk7XG4gICAgLy8gY29uc29sZS5sb2coJ19sb2dzJywgY2xvbmVEZWVwKHRoaXMubG9ncygpKSk7XG4gIH1cbiAgaXNBdXRoZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzQXV0aGVkKCk7XG4gIH0pO1xufVxudHlwZSBMb2dNYXAgPSB7IFtrZXk6IHN0cmluZ106IExvZyB9O1xuIl19
@@ -0,0 +1,50 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ObjectSizeService {
4
+ constructor() {
5
+ /**
6
+ * Returns the size in bytes
7
+ * @param object
8
+ * @returns
9
+ */
10
+ this.roughSizeOfObject = (object, maxSize) => {
11
+ const objectList = [];
12
+ const stack = [object];
13
+ let bytes = 0;
14
+ while (stack.length) {
15
+ if (bytes >= maxSize)
16
+ return { crossedMaxSize: true };
17
+ const value = stack.pop();
18
+ switch (typeof value) {
19
+ case 'boolean':
20
+ bytes += 4;
21
+ break;
22
+ case 'string':
23
+ bytes += value.length * 2;
24
+ break;
25
+ case 'number':
26
+ bytes += 8;
27
+ break;
28
+ case 'object':
29
+ if (!objectList.includes(value)) {
30
+ objectList.push(value);
31
+ for (const prop in value) {
32
+ if (value.hasOwnProperty(prop)) {
33
+ stack.push(value[prop]);
34
+ }
35
+ }
36
+ }
37
+ break;
38
+ }
39
+ }
40
+ return { bytes };
41
+ };
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectSizeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
44
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectSizeService, providedIn: 'root' }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectSizeService, decorators: [{
47
+ type: Injectable,
48
+ args: [{ providedIn: 'root' }]
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXNpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TZXJ2aWNlcy9vYmplY3Qtc2l6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFRTs7OztXQUlHO1FBQ0gsc0JBQWlCLEdBQUcsQ0FDbEIsTUFBTSxFQUNOLE9BQWdCLEVBSWhCLEVBQUU7WUFDRixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDdEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFFZCxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxLQUFLLElBQUksT0FBTztvQkFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUN0RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBRTFCLFFBQVEsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDckIsS0FBSyxTQUFTO3dCQUNaLEtBQUssSUFBSSxDQUFDLENBQUM7d0JBQ1gsTUFBTTtvQkFDUixLQUFLLFFBQVE7d0JBQ1gsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO3dCQUMxQixNQUFNO29CQUNSLEtBQUssUUFBUTt3QkFDWCxLQUFLLElBQUksQ0FBQyxDQUFDO3dCQUNYLE1BQU07b0JBQ1IsS0FBSyxRQUFRO3dCQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7NEJBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ3ZCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7Z0NBQ3pCLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29DQUMvQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dDQUMxQixDQUFDOzRCQUNILENBQUM7d0JBQ0gsQ0FBQzt3QkFDRCxNQUFNO2dCQUNWLENBQUM7WUFDSCxDQUFDO1lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQztLQUNIOzhHQTlDWSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURKLE1BQU07OzJGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE9iamVjdFNpemVTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNpemUgaW4gYnl0ZXNcbiAgICogQHBhcmFtIG9iamVjdFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcm91Z2hTaXplT2ZPYmplY3QgPSAoXG4gICAgb2JqZWN0LFxuICAgIG1heFNpemU/OiBudW1iZXIsXG4gICk6IHtcbiAgICBieXRlcz86IG51bWJlcjtcbiAgICBjcm9zc2VkTWF4U2l6ZT86IGJvb2xlYW47XG4gIH0gPT4ge1xuICAgIGNvbnN0IG9iamVjdExpc3QgPSBbXTtcbiAgICBjb25zdCBzdGFjayA9IFtvYmplY3RdO1xuICAgIGxldCBieXRlcyA9IDA7XG5cbiAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7XG4gICAgICBpZiAoYnl0ZXMgPj0gbWF4U2l6ZSkgcmV0dXJuIHsgY3Jvc3NlZE1heFNpemU6IHRydWUgfTtcbiAgICAgIGNvbnN0IHZhbHVlID0gc3RhY2sucG9wKCk7XG5cbiAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgIGJ5dGVzICs9IDQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgYnl0ZXMgKz0gdmFsdWUubGVuZ3RoICogMjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICBieXRlcyArPSA4O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICAgIGlmICghb2JqZWN0TGlzdC5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIG9iamVjdExpc3QucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgICAgICAgICAgc3RhY2sucHVzaCh2YWx1ZVtwcm9wXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgYnl0ZXMgfTtcbiAgfTtcbn1cbiJdfQ==