@seniorsistemas/components-ai 0.0.0-master-d4a804fe

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.
Files changed (76) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/CONTRIBUTING.md +317 -0
  3. package/README.md +161 -0
  4. package/docs/API.md +486 -0
  5. package/docs/COMPONENTS.md +272 -0
  6. package/docs/EXAMPLES.md +559 -0
  7. package/docs/MIGRATION.md +367 -0
  8. package/esm2022/lib/angular-components.module.mjs +25 -0
  9. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +121 -0
  10. package/esm2022/lib/components/bulk-delete-dialog/bulk-delete-dialog.component.mjs +176 -0
  11. package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +625 -0
  12. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-date.component.mjs +86 -0
  13. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-dropdown.component.mjs +103 -0
  14. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-lookup.component.mjs +599 -0
  15. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-number.component.mjs +92 -0
  16. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-text.component.mjs +163 -0
  17. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-textarea.component.mjs +81 -0
  18. package/esm2022/lib/components/dynamic-form/fields/dynamic-field-wrapper.component.mjs +93 -0
  19. package/esm2022/lib/components/dynamic-form/fields/index.mjs +8 -0
  20. package/esm2022/lib/components/dynamic-form/models/dynamic-form.models.mjs +2 -0
  21. package/esm2022/lib/components/export-dialog/export-dialog.component.mjs +219 -0
  22. package/esm2022/lib/config/translation.config.mjs +70 -0
  23. package/esm2022/lib/directives/cep-mask.directive.mjs +79 -0
  24. package/esm2022/lib/directives/document-mask.directive.mjs +62 -0
  25. package/esm2022/lib/directives/phone-mask.directive.mjs +59 -0
  26. package/esm2022/lib/interceptors/api.interceptor.mjs +55 -0
  27. package/esm2022/lib/models/base-entity.interface.mjs +2 -0
  28. package/esm2022/lib/models/entity-list.config.mjs +2 -0
  29. package/esm2022/lib/pipes/translate.pipe.mjs +74 -0
  30. package/esm2022/lib/services/auth.service.mjs +169 -0
  31. package/esm2022/lib/services/cookie.service.mjs +90 -0
  32. package/esm2022/lib/services/entity.service.mjs +208 -0
  33. package/esm2022/lib/services/mask.service.mjs +121 -0
  34. package/esm2022/lib/services/permission.service.mjs +180 -0
  35. package/esm2022/lib/services/senior-token.service.mjs +209 -0
  36. package/esm2022/lib/services/theme.service.mjs +85 -0
  37. package/esm2022/lib/services/translation.service.mjs +232 -0
  38. package/esm2022/public-api.mjs +90 -0
  39. package/esm2022/seniorsistemas-components-ai.mjs +5 -0
  40. package/fesm2022/seniorsistemas-components-ai.mjs +4006 -0
  41. package/fesm2022/seniorsistemas-components-ai.mjs.map +1 -0
  42. package/index.d.ts +5 -0
  43. package/lib/angular-components.module.d.ts +13 -0
  44. package/lib/components/breadcrumb/breadcrumb.component.d.ts +23 -0
  45. package/lib/components/bulk-delete-dialog/bulk-delete-dialog.component.d.ts +46 -0
  46. package/lib/components/dynamic-form/dynamic-form.component.d.ts +97 -0
  47. package/lib/components/dynamic-form/fields/dynamic-field-date.component.d.ts +16 -0
  48. package/lib/components/dynamic-form/fields/dynamic-field-dropdown.component.d.ts +17 -0
  49. package/lib/components/dynamic-form/fields/dynamic-field-lookup.component.d.ts +52 -0
  50. package/lib/components/dynamic-form/fields/dynamic-field-number.component.d.ts +16 -0
  51. package/lib/components/dynamic-form/fields/dynamic-field-text.component.d.ts +17 -0
  52. package/lib/components/dynamic-form/fields/dynamic-field-textarea.component.d.ts +16 -0
  53. package/lib/components/dynamic-form/fields/dynamic-field-wrapper.component.d.ts +20 -0
  54. package/lib/components/dynamic-form/fields/index.d.ts +7 -0
  55. package/lib/components/dynamic-form/models/dynamic-form.models.d.ts +178 -0
  56. package/lib/components/export-dialog/export-dialog.component.d.ts +56 -0
  57. package/lib/config/translation.config.d.ts +24 -0
  58. package/lib/directives/cep-mask.directive.d.ts +13 -0
  59. package/lib/directives/document-mask.directive.d.ts +19 -0
  60. package/lib/directives/phone-mask.directive.d.ts +11 -0
  61. package/lib/interceptors/api.interceptor.d.ts +2 -0
  62. package/lib/models/base-entity.interface.d.ts +7 -0
  63. package/lib/models/entity-list.config.d.ts +161 -0
  64. package/lib/pipes/translate.pipe.d.ts +21 -0
  65. package/lib/services/auth.service.d.ts +82 -0
  66. package/lib/services/cookie.service.d.ts +31 -0
  67. package/lib/services/entity.service.d.ts +99 -0
  68. package/lib/services/mask.service.d.ts +36 -0
  69. package/lib/services/permission.service.d.ts +91 -0
  70. package/lib/services/senior-token.service.d.ts +70 -0
  71. package/lib/services/theme.service.d.ts +16 -0
  72. package/lib/services/translation.service.d.ts +54 -0
  73. package/package.json +53 -0
  74. package/public-api.d.ts +17 -0
  75. package/src/lib/styles/entity-list.shared.scss +383 -0
  76. package/src/lib/styles/index.scss +10 -0
@@ -0,0 +1,59 @@
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PhoneMaskDirective {
4
+ el;
5
+ constructor(el) {
6
+ this.el = el;
7
+ }
8
+ onInput(event) {
9
+ const value = event.target.value;
10
+ this.applyPhoneMask(value);
11
+ }
12
+ onBlur(event) {
13
+ const value = event.target.value;
14
+ this.applyPhoneMask(value);
15
+ }
16
+ applyPhoneMask(value) {
17
+ if (!value)
18
+ return;
19
+ // Remove todos os caracteres não numéricos
20
+ const numbers = value.replace(/\D/g, '');
21
+ let maskedValue = '';
22
+ if (numbers.length <= 10) {
23
+ // Telefone fixo: (00) 0000-0000
24
+ maskedValue = numbers.replace(/(\d{2})(\d{4})(\d{4})/, '($1) $2-$3');
25
+ }
26
+ else if (numbers.length === 11) {
27
+ // Celular: (00) 00000-0000
28
+ maskedValue = numbers.replace(/(\d{2})(\d{5})(\d{4})/, '($1) $2-$3');
29
+ }
30
+ else {
31
+ // Limitar a 11 dígitos
32
+ const limitedNumbers = numbers.substring(0, 11);
33
+ maskedValue = limitedNumbers.replace(/(\d{2})(\d{5})(\d{4})/, '($1) $2-$3');
34
+ }
35
+ // Atualizar o valor do input apenas se mudou
36
+ if (maskedValue && maskedValue !== value) {
37
+ this.el.nativeElement.value = maskedValue;
38
+ // Disparar evento de input para atualizar o FormControl
39
+ const inputEvent = new Event('input', { bubbles: true });
40
+ this.el.nativeElement.dispatchEvent(inputEvent);
41
+ }
42
+ }
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
44
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: PhoneMaskDirective, isStandalone: true, selector: "[siaPhoneMask]", host: { listeners: { "input": "onInput($event)", "blur": "onBlur($event)" } }, ngImport: i0 });
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskDirective, decorators: [{
47
+ type: Directive,
48
+ args: [{
49
+ selector: '[siaPhoneMask]',
50
+ standalone: true
51
+ }]
52
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onInput: [{
53
+ type: HostListener,
54
+ args: ['input', ['$event']]
55
+ }], onBlur: [{
56
+ type: HostListener,
57
+ args: ['blur', ['$event']]
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvZGlyZWN0aXZlcy9waG9uZS1tYXNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNcEUsTUFBTSxPQUFPLGtCQUFrQjtJQUVUO0lBQXBCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUd0QyxPQUFPLENBQUMsS0FBVTtRQUNoQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFHRCxNQUFNLENBQUMsS0FBVTtRQUNmLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUVuQiwyQ0FBMkM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFekMsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBRXJCLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN6QixnQ0FBZ0M7WUFDaEMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdkUsQ0FBQzthQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNqQywyQkFBMkI7WUFDM0IsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdkUsQ0FBQzthQUFNLENBQUM7WUFDTix1QkFBdUI7WUFDdkIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUVELDZDQUE2QztRQUM3QyxJQUFJLFdBQVcsSUFBSSxXQUFXLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztZQUUxQyx3REFBd0Q7WUFDeEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO3dHQTVDVSxrQkFBa0I7NEZBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0VBTUMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPakMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzaWFQaG9uZU1hc2tdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBQaG9uZU1hc2tEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxuICBvbklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLmFwcGx5UGhvbmVNYXNrKHZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInLCBbJyRldmVudCddKVxuICBvbkJsdXIoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMuYXBwbHlQaG9uZU1hc2sodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVBob25lTWFzayh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgLy8gUmVtb3ZlIHRvZG9zIG9zIGNhcmFjdGVyZXMgbsOjbyBudW3DqXJpY29zXG4gICAgY29uc3QgbnVtYmVycyA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG4gICAgXG4gICAgbGV0IG1hc2tlZFZhbHVlID0gJyc7XG5cbiAgICBpZiAobnVtYmVycy5sZW5ndGggPD0gMTApIHtcbiAgICAgIC8vIFRlbGVmb25lIGZpeG86ICgwMCkgMDAwMC0wMDAwXG4gICAgICBtYXNrZWRWYWx1ZSA9IG51bWJlcnMucmVwbGFjZSgvKFxcZHsyfSkoXFxkezR9KShcXGR7NH0pLywgJygkMSkgJDItJDMnKTtcbiAgICB9IGVsc2UgaWYgKG51bWJlcnMubGVuZ3RoID09PSAxMSkge1xuICAgICAgLy8gQ2VsdWxhcjogKDAwKSAwMDAwMC0wMDAwXG4gICAgICBtYXNrZWRWYWx1ZSA9IG51bWJlcnMucmVwbGFjZSgvKFxcZHsyfSkoXFxkezV9KShcXGR7NH0pLywgJygkMSkgJDItJDMnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTGltaXRhciBhIDExIGTDrWdpdG9zXG4gICAgICBjb25zdCBsaW1pdGVkTnVtYmVycyA9IG51bWJlcnMuc3Vic3RyaW5nKDAsIDExKTtcbiAgICAgIG1hc2tlZFZhbHVlID0gbGltaXRlZE51bWJlcnMucmVwbGFjZSgvKFxcZHsyfSkoXFxkezV9KShcXGR7NH0pLywgJygkMSkgJDItJDMnKTtcbiAgICB9XG5cbiAgICAvLyBBdHVhbGl6YXIgbyB2YWxvciBkbyBpbnB1dCBhcGVuYXMgc2UgbXVkb3VcbiAgICBpZiAobWFza2VkVmFsdWUgJiYgbWFza2VkVmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBtYXNrZWRWYWx1ZTtcbiAgICAgIFxuICAgICAgLy8gRGlzcGFyYXIgZXZlbnRvIGRlIGlucHV0IHBhcmEgYXR1YWxpemFyIG8gRm9ybUNvbnRyb2xcbiAgICAgIGNvbnN0IGlucHV0RXZlbnQgPSBuZXcgRXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlIH0pO1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoaW5wdXRFdmVudCk7XG4gICAgfVxuICB9XG59Il19
@@ -0,0 +1,55 @@
1
+ import { inject } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { catchError, throwError } from 'rxjs';
4
+ import { AuthService } from '../services/auth.service';
5
+ export const apiInterceptor = (req, next) => {
6
+ const authService = inject(AuthService);
7
+ const router = inject(Router);
8
+ // Get the access token, token type, and base URL
9
+ const accessToken = authService.getAccessToken();
10
+ const tokenType = authService.getTokenType();
11
+ const baseUrl = authService.getApiBaseUrl();
12
+ let modifiedReq = req;
13
+ // Add Authorization header if token exists
14
+ if (accessToken && tokenType) {
15
+ const authHeader = `${tokenType} ${accessToken}`;
16
+ modifiedReq = modifiedReq.clone({
17
+ setHeaders: {
18
+ Authorization: authHeader
19
+ }
20
+ });
21
+ }
22
+ // Prepend base URL if it exists and the request URL is relative
23
+ if (baseUrl && !isAbsoluteUrl(modifiedReq.url)) {
24
+ const fullUrl = combineUrls(baseUrl, modifiedReq.url);
25
+ modifiedReq = modifiedReq.clone({
26
+ url: fullUrl
27
+ });
28
+ }
29
+ return next(modifiedReq).pipe(catchError((error) => {
30
+ // Handle 401 Unauthorized errors
31
+ if (error.status === 401) {
32
+ // Redirect to forbidden route
33
+ router.navigate(['/forbidden']);
34
+ }
35
+ // Re-throw the error so other error handlers can process it
36
+ return throwError(() => error);
37
+ }));
38
+ };
39
+ /**
40
+ * Check if URL is absolute
41
+ */
42
+ function isAbsoluteUrl(url) {
43
+ return /^https?:\/\//.test(url);
44
+ }
45
+ /**
46
+ * Combine base URL with relative URL
47
+ */
48
+ function combineUrls(baseUrl, relativeUrl) {
49
+ // Remove trailing slash from base URL
50
+ const cleanBaseUrl = baseUrl.replace(/\/$/, '');
51
+ // Remove leading slash from relative URL
52
+ const cleanRelativeUrl = relativeUrl.replace(/^\//, '');
53
+ return `${cleanBaseUrl}/${cleanRelativeUrl}`;
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBc0IsQ0FBQyxHQUF5QixFQUFFLElBQW1CLEVBQUUsRUFBRTtJQUNsRyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTlCLGlEQUFpRDtJQUNqRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDakQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUU1QyxJQUFJLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFFdEIsMkNBQTJDO0lBQzNDLElBQUksV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLEdBQUcsU0FBUyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pELFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzlCLFVBQVUsRUFBRTtnQkFDVixhQUFhLEVBQUUsVUFBVTthQUMxQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0MsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDOUIsR0FBRyxFQUFFLE9BQU87U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUMzQixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUU7UUFDdEMsaUNBQWlDO1FBQ2pDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN6Qiw4QkFBOEI7WUFDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELDREQUE0RDtRQUM1RCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxHQUFXO0lBQ2hDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxPQUFlLEVBQUUsV0FBbUI7SUFDdkQsc0NBQXNDO0lBQ3RDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRWhELHlDQUF5QztJQUN6QyxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXhELE9BQU8sR0FBRyxZQUFZLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEludGVyY2VwdG9yRm4sIEh0dHBSZXF1ZXN0LCBIdHRwSGFuZGxlckZuLCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGFwaUludGVyY2VwdG9yOiBIdHRwSW50ZXJjZXB0b3JGbiA9IChyZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlckZuKSA9PiB7XG4gIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIFxuICAvLyBHZXQgdGhlIGFjY2VzcyB0b2tlbiwgdG9rZW4gdHlwZSwgYW5kIGJhc2UgVVJMXG4gIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcbiAgY29uc3QgdG9rZW5UeXBlID0gYXV0aFNlcnZpY2UuZ2V0VG9rZW5UeXBlKCk7XG4gIGNvbnN0IGJhc2VVcmwgPSBhdXRoU2VydmljZS5nZXRBcGlCYXNlVXJsKCk7XG4gIFxuICBsZXQgbW9kaWZpZWRSZXEgPSByZXE7XG5cbiAgLy8gQWRkIEF1dGhvcml6YXRpb24gaGVhZGVyIGlmIHRva2VuIGV4aXN0c1xuICBpZiAoYWNjZXNzVG9rZW4gJiYgdG9rZW5UeXBlKSB7XG4gICAgY29uc3QgYXV0aEhlYWRlciA9IGAke3Rva2VuVHlwZX0gJHthY2Nlc3NUb2tlbn1gO1xuICAgIG1vZGlmaWVkUmVxID0gbW9kaWZpZWRSZXEuY2xvbmUoe1xuICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBhdXRoSGVhZGVyXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBQcmVwZW5kIGJhc2UgVVJMIGlmIGl0IGV4aXN0cyBhbmQgdGhlIHJlcXVlc3QgVVJMIGlzIHJlbGF0aXZlXG4gIGlmIChiYXNlVXJsICYmICFpc0Fic29sdXRlVXJsKG1vZGlmaWVkUmVxLnVybCkpIHtcbiAgICBjb25zdCBmdWxsVXJsID0gY29tYmluZVVybHMoYmFzZVVybCwgbW9kaWZpZWRSZXEudXJsKTtcbiAgICBtb2RpZmllZFJlcSA9IG1vZGlmaWVkUmVxLmNsb25lKHtcbiAgICAgIHVybDogZnVsbFVybFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG5leHQobW9kaWZpZWRSZXEpLnBpcGUoXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAvLyBIYW5kbGUgNDAxIFVuYXV0aG9yaXplZCBlcnJvcnNcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAvLyBSZWRpcmVjdCB0byBmb3JiaWRkZW4gcm91dGVcbiAgICAgICAgcm91dGVyLm5hdmlnYXRlKFsnL2ZvcmJpZGRlbiddKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gUmUtdGhyb3cgdGhlIGVycm9yIHNvIG90aGVyIGVycm9yIGhhbmRsZXJzIGNhbiBwcm9jZXNzIGl0XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgfSlcbiAgKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgVVJMIGlzIGFic29sdXRlXG4gKi9cbmZ1bmN0aW9uIGlzQWJzb2x1dGVVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eaHR0cHM/OlxcL1xcLy8udGVzdCh1cmwpO1xufVxuXG4vKipcbiAqIENvbWJpbmUgYmFzZSBVUkwgd2l0aCByZWxhdGl2ZSBVUkxcbiAqL1xuZnVuY3Rpb24gY29tYmluZVVybHMoYmFzZVVybDogc3RyaW5nLCByZWxhdGl2ZVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoIGZyb20gYmFzZSBVUkxcbiAgY29uc3QgY2xlYW5CYXNlVXJsID0gYmFzZVVybC5yZXBsYWNlKC9cXC8kLywgJycpO1xuICBcbiAgLy8gUmVtb3ZlIGxlYWRpbmcgc2xhc2ggZnJvbSByZWxhdGl2ZSBVUkxcbiAgY29uc3QgY2xlYW5SZWxhdGl2ZVVybCA9IHJlbGF0aXZlVXJsLnJlcGxhY2UoL15cXC8vLCAnJyk7XG4gIFxuICByZXR1cm4gYCR7Y2xlYW5CYXNlVXJsfS8ke2NsZWFuUmVsYXRpdmVVcmx9YDtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbnRpdHkuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL21vZGVscy9iYXNlLWVudGl0eS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQmFzZUVudGl0eSB7XG4gIGNyZWF0ZWRCeT86IHN0cmluZztcbiAgY3JlYXRlZEF0PzogRGF0ZTtcbiAgY2hhbmdlZEJ5Pzogc3RyaW5nO1xuICBjaGFuZ2VkQXQ/OiBEYXRlO1xuICBjdXN0b20/OiBhbnk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWxpc3QuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL21vZGVscy9lbnRpdHktbGlzdC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqXG4gKiBDb2x1bW4gY29uZmlndXJhdGlvbiBmb3IgZW50aXR5IGxpc3QgdGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5Db25maWcge1xuICBmaWVsZDogc3RyaW5nO1xuICBoZWFkZXI6IHN0cmluZztcbiAgc29ydGFibGU/OiBib29sZWFuO1xuICB3aWR0aD86IHN0cmluZztcbiAgdHlwZT86ICd0ZXh0JyB8ICdudW1iZXInIHwgJ3N0YXR1cycgfCAnY3VzdG9tJztcbiAgY3VzdG9tVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG4vKipcbiAqIExvb2t1cCBjb2x1bW4gY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cENvbHVtbiB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGhlYWRlcjogc3RyaW5nO1xuICB3aWR0aD86IHN0cmluZztcbiAgdHlwZT86ICd0ZXh0JyB8ICdudW1iZXInOyAvLyBUeXBlIG9mIHRoZSBmaWVsZCBmb3IgZmlsdGVyaW5nXG59XG5cbi8qKlxuICogUmVzcG9uc2l2ZSBzaXplIGNvbmZpZ3VyYXRpb24gZm9yIGZpbHRlciBmaWVsZHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJGaWVsZFNpemUge1xuICB4cz86IG51bWJlcjsgLy8gRXh0cmEgc21hbGwgc2NyZWVucyAoPDU3NnB4KVxuICBzbT86IG51bWJlcjsgLy8gU21hbGwgc2NyZWVucyAo4omlNTc2cHgpXG4gIG1kPzogbnVtYmVyOyAvLyBNZWRpdW0gc2NyZWVucyAo4omlNzY4cHgpXG4gIGxnPzogbnVtYmVyOyAvLyBMYXJnZSBzY3JlZW5zICjiiaU5OTJweClcbiAgeGw/OiBudW1iZXI7IC8vIEV4dHJhIGxhcmdlIHNjcmVlbnMgKOKJpTEyMDBweClcbn1cblxuLyoqXG4gKiBGaWx0ZXIgc2VjdGlvbiBjb25maWd1cmF0aW9uIGZvciBncm91cGluZyBmaWx0ZXJzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyU2VjdGlvbiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGZpbHRlcnM6IEZpbHRlckNvbmZpZ1tdO1xufVxuXG4vKipcbiAqIEZpbHRlciBjb25maWd1cmF0aW9uIGZvciBlbnRpdHkgbGlzdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckNvbmZpZyB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHR5cGU6ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2Ryb3Bkb3duJyB8ICdsb29rdXAnIHwgJ2RhdGUnO1xuICBvcHRpb25zPzogYW55W107XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBvcHRpb25MYWJlbD86IHN0cmluZztcbiAgb3B0aW9uVmFsdWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IGFueTsgLy8gRGVmYXVsdCB2YWx1ZSBmb3IgZmlsdGVyIGZpZWxkXG4gIGRpc2FibGVkPzogYm9vbGVhbjsgLy8gU3RhdGljIGRpc2FibGVkIHN0YXRlXG4gIG1pbj86IG51bWJlcjsgLy8gRm9yIG51bWJlciBpbnB1dHNcbiAgbWF4PzogbnVtYmVyOyAvLyBGb3IgbnVtYmVyIGlucHV0c1xuICBkaXNhYmxlZFdoZW4/OiB7IC8vIENvbmRpdGlvbmFsIGRpc2FibGVkIHN0YXRlXG4gICAgZmllbGQ6IHN0cmluZztcbiAgICB2YWx1ZTogYW55O1xuICB9O1xuICAvLyBMYXlvdXQgcHJvcGVydGllc1xuICBjb2xzcGFuPzogbnVtYmVyOyAvLyBOdW1iZXIgb2YgY29sdW1ucyB0byBzcGFuICgxLTEyLCBkZWZhdWx0OiA2KVxuICBzaXplPzogRmlsdGVyRmllbGRTaXplOyAvLyBSZXNwb25zaXZlIHNpemVzIG9iamVjdFxuICBjb2xzcGFuWHM/OiBudW1iZXI7IC8vIERlcHJlY2F0ZWQ6IHVzZSBzaXplLnhzXG4gIGNvbHNwYW5TbT86IG51bWJlcjsgLy8gRGVwcmVjYXRlZDogdXNlIHNpemUuc21cbiAgY29sc3Bhbk1kPzogbnVtYmVyOyAvLyBEZXByZWNhdGVkOiB1c2Ugc2l6ZS5tZFxuICBjb2xzcGFuTGc/OiBudW1iZXI7IC8vIERlcHJlY2F0ZWQ6IHVzZSBzaXplLmxnXG4gIGNvbHNwYW5YbD86IG51bWJlcjsgLy8gRGVwcmVjYXRlZDogdXNlIHNpemUueGxcbiAgLy8gTG9va3VwIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgbG9va3VwU2VydmljZT86IGFueTsgLy8gU2VydmljZSB0byBmZXRjaCBsb29rdXAgZGF0YVxuICBsb29rdXBEaXNwbGF5RmllbGQ/OiBzdHJpbmc7IC8vIEZpZWxkIHRvIGRpc3BsYXkgaW4gdGhlIGxvb2t1cCAoZGVmYXVsdDogJ25hbWUnKVxuICBsb29rdXBEaXNwbGF5RmllbGRzPzogc3RyaW5nW107IC8vIE11bHRpcGxlIGZpZWxkcyB0byBkaXNwbGF5IHNlcGFyYXRlZCBieSAnIC0gJyAob3ZlcnJpZGVzIGxvb2t1cERpc3BsYXlGaWVsZClcbiAgbG9va3VwVmFsdWVGaWVsZD86IHN0cmluZzsgLy8gRmllbGQgdG8gdXNlIGFzIHZhbHVlIChkZWZhdWx0OiAnaWQnKVxuICBsb29rdXBTZWFyY2hGaWVsZHM/OiBzdHJpbmdbXTsgLy8gRmllbGRzIHRvIHNlYXJjaCBpbiAoZGVmYXVsdDogWyduYW1lJ10pXG4gIGxvb2t1cENvbHVtbnM/OiBMb29rdXBDb2x1bW5bXTsgLy8gQ29sdW1ucyB0byBkaXNwbGF5IGluIGxvb2t1cCB0YWJsZVxuICBsb29rdXBEeW5hbWljRmlsdGVycz86IChmb3JtVmFsdWVzOiBhbnkpID0+IHsgW2tleTogc3RyaW5nXTogYW55IH07IC8vIER5bmFtaWMgZmlsdGVycyBiYXNlZCBvbiBmb3JtIHZhbHVlc1xufVxuXG4vKipcbiAqIEZvcm0gZmllbGQgY29uZmlndXJhdGlvbiBmb3IgZW50aXR5IGZvcm1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtRmllbGRDb25maWcge1xuICBmaWVsZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAndGV4dCcgfCAnbnVtYmVyJyB8ICdkcm9wZG93bicgfCAnbG9va3VwJyB8ICd0ZXh0YXJlYScgfCAnZW51bScgfCAnZGF0ZSc7XG4gIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdO1xuICBvcHRpb25zPzogYW55W107XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIG9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBvcHRpb25WYWx1ZT86IHN0cmluZztcbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICB1c2VHcm91cGluZz86IGJvb2xlYW47IC8vIEZvciBudW1iZXIgaW5wdXRzXG4gIHJvd3M/OiBudW1iZXI7IC8vIEZvciB0ZXh0YXJlYVxuICBmdWxsU2l6ZT86IGJvb2xlYW47IC8vIEZvciB0ZXh0YXJlYSB0byB0YWtlIGZ1bGwgd2lkdGhcbiAgY29sc3Bhbj86IG51bWJlcjsgLy8gTnVtYmVyIG9mIGNvbHVtbnMgdG8gc3BhbiAoMS0xMiwgZGVmYXVsdDogNilcbiAgY29sc3BhbldoZW4/OiB7IC8vIENvbmRpdGlvbmFsIGNvbHNwYW4gYmFzZWQgb24gb3RoZXIgZmllbGQgdmFsdWVzXG4gICAgZmllbGQ6IHN0cmluZztcbiAgICB2YWx1ZTogYW55O1xuICAgIGNvbHNwYW46IG51bWJlcjtcbiAgfVtdO1xuICB2aXNpYmxlV2hlbj86IHsgLy8gQ29uZGl0aW9uYWwgdmlzaWJpbGl0eVxuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgdmFsdWU6IGFueTtcbiAgfTtcbiAgZGlzYWJsZWRXaGVuPzogeyAvLyBDb25kaXRpb25hbCBkaXNhYmxlZCBzdGF0ZVxuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgdmFsdWU6IGFueTtcbiAgfTtcbiAgZGVmYXVsdFZhbHVlPzogYW55OyAvLyBEZWZhdWx0IHZhbHVlIGZvciBuZXcgcmVjb3Jkc1xuICAvLyBMb29rdXAgc3BlY2lmaWMgcHJvcGVydGllc1xuICBsb29rdXBTZXJ2aWNlPzogYW55OyAvLyBTZXJ2aWNlIHRvIGZldGNoIGxvb2t1cCBkYXRhXG4gIGxvb2t1cERpc3BsYXlGaWVsZD86IHN0cmluZzsgLy8gRmllbGQgdG8gZGlzcGxheSBpbiB0aGUgbG9va3VwIChkZWZhdWx0OiAnbmFtZScpXG4gIGxvb2t1cERpc3BsYXlGaWVsZHM/OiBzdHJpbmdbXTsgLy8gTXVsdGlwbGUgZmllbGRzIHRvIGRpc3BsYXkgc2VwYXJhdGVkIGJ5ICcgLSAnIChvdmVycmlkZXMgbG9va3VwRGlzcGxheUZpZWxkKVxuICBsb29rdXBWYWx1ZUZpZWxkPzogc3RyaW5nOyAvLyBGaWVsZCB0byB1c2UgYXMgdmFsdWUgKGRlZmF1bHQ6ICdpZCcpXG4gIGxvb2t1cFNlYXJjaEZpZWxkcz86IHN0cmluZ1tdOyAvLyBGaWVsZHMgdG8gc2VhcmNoIGluIChkZWZhdWx0OiBbJ25hbWUnXSlcbiAgbG9va3VwQ29sdW1ucz86IExvb2t1cENvbHVtbltdOyAvLyBDb2x1bW5zIHRvIGRpc3BsYXkgaW4gbG9va3VwIHRhYmxlXG4gIGxvb2t1cEZpbHRlcnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9OyAvLyBGaWx0ZXJzIHRvIGFwcGx5IHdoZW4gZmV0Y2hpbmcgbG9va3VwIGRhdGFcbiAgbG9va3VwRHluYW1pY0ZpbHRlcnM/OiAoZm9ybVZhbHVlczogYW55KSA9PiB7IFtrZXk6IHN0cmluZ106IGFueSB9OyAvLyBEeW5hbWljIGZpbHRlcnMgYmFzZWQgb24gZm9ybSB2YWx1ZXNcbiAgLy8gRW51bSBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gIGVudW1PcHRpb25zPzogeyB2YWx1ZTogYW55OyBsYWJlbDogc3RyaW5nIH1bXTsgLy8gT3B0aW9ucyBmb3IgZW51bSBmaWVsZHNcbiAgZW51bVZhbHVlcz86IHN0cmluZ1tdOyAvLyBFbnVtIHZhbHVlcyBhcnJheVxuICBlbnVtTGFiZWxzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTsgLy8gRW51bSBsYWJlbHMgbWFwcGluZ1xuICAvLyBNYXNrIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgdXNlQ2VwTWFzaz86IGJvb2xlYW47IC8vIEFwcGx5IENFUCBtYXNrIHRvIHRleHQgZmllbGRzXG4gIHVzZVBob25lTWFzaz86IGJvb2xlYW47IC8vIEFwcGx5IHBob25lIG1hc2sgdG8gdGV4dCBmaWVsZHNcbiAgbWFzaz86ICdkeW5hbWljJyB8ICdjcGYnIHwgJ2NucGonIHwgJ2NlcCcgfCAncGhvbmUnIHwgJ2RvY3VtZW50JzsgLy8gTWFzayB0eXBlc1xuICBkaXNhYmxlZD86IGJvb2xlYW47IC8vIFN0YXRpYyBkaXNhYmxlZCBzdGF0ZVxuICAvLyBEYXRlIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgZGF0ZUZvcm1hdD86IHN0cmluZzsgLy8gRGF0ZSBmb3JtYXQgZm9yIGNhbGVuZGFyIChkZWZhdWx0OiAnZGQvbW0veXknKVxuICAvLyBOdW1iZXIgc3BlY2lmaWMgcHJvcGVydGllc1xuICBtaW5GcmFjdGlvbkRpZ2l0cz86IG51bWJlcjsgLy8gTWluaW11bSBmcmFjdGlvbiBkaWdpdHMgZm9yIG51bWJlciBpbnB1dFxuICBtYXhGcmFjdGlvbkRpZ2l0cz86IG51bWJlcjsgLy8gTWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgZm9yIG51bWJlciBpbnB1dFxuICBudW1iZXJNb2RlPzogJ2RlY2ltYWwnIHwgJ2N1cnJlbmN5JzsgLy8gTnVtYmVyIGlucHV0IG1vZGVcbiAgY3VycmVuY3k/OiBzdHJpbmc7IC8vIEN1cnJlbmN5IGNvZGUgKGRlZmF1bHQ6ICdCUkwnKVxuICBsb2NhbGU/OiBzdHJpbmc7IC8vIExvY2FsZSBmb3IgbnVtYmVyIGZvcm1hdHRpbmcgKGRlZmF1bHQ6ICdwdC1CUicpXG4gIC8vIERyb3Bkb3duIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgc2hvd0NsZWFyPzogYm9vbGVhbjsgLy8gU2hvdyBjbGVhciBidXR0b24gaW4gZHJvcGRvd25cbiAgZmlsdGVyPzogYm9vbGVhbjsgLy8gRW5hYmxlIGZpbHRlciBpbiBkcm9wZG93blxuICBmaWx0ZXJCeT86IHN0cmluZzsgLy8gRmllbGQgdG8gZmlsdGVyIGJ5IGluIGRyb3Bkb3duXG4gIC8vIExvb2t1cCBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gIGxvb2t1cEVudGl0eT86IHN0cmluZzsgLy8gRW50aXR5IG5hbWUgZm9yIGxvb2t1cFxufVxuXG4vKipcbiAqIEVudGl0eSBsaXN0IGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlMaXN0Q29uZmlnIHtcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICBlbnRpdHlJY29uOiBzdHJpbmc7XG4gIHN1YnRpdGxlOiBzdHJpbmc7XG4gIGNvbHVtbnM6IENvbHVtbkNvbmZpZ1tdO1xuICBmaWx0ZXJzOiBGaWx0ZXJDb25maWdbXTtcbiAgZml4ZWRGaWx0ZXJzPzogRmlsdGVyQ29uZmlnW107IC8vIEZpbHRlcnMgdGhhdCBhcHBlYXIgYXQgdGhlIHRvcCwgYWx3YXlzIHZpc2libGVcbiAgZmlsdGVyU2VjdGlvbnM/OiBGaWx0ZXJTZWN0aW9uW107IC8vIEdyb3VwZWQgZmlsdGVycyBpbiBzZWN0aW9uc1xuICBmb3JtRmllbGRzOiBGb3JtRmllbGRDb25maWdbXTtcbiAgZXhwb3J0RW5hYmxlZD86IGJvb2xlYW47XG4gIGJ1bGtEZWxldGVFbmFibGVkPzogYm9vbGVhbjtcbiAgYWRkQnV0dG9uTGFiZWw/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,74 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../services/translation.service";
4
+ export class TranslatePipe {
5
+ translationService;
6
+ cdr;
7
+ subscription;
8
+ lastKey;
9
+ lastParams;
10
+ lastTranslation;
11
+ isLoading = false;
12
+ constructor(translationService, cdr) {
13
+ this.translationService = translationService;
14
+ this.cdr = cdr;
15
+ }
16
+ transform(key, params) {
17
+ if (!key)
18
+ return '';
19
+ // Check if we need to update the translation
20
+ if (this.shouldUpdate(key, params)) {
21
+ this.updateTranslation(key, params);
22
+ }
23
+ return this.lastTranslation || key;
24
+ }
25
+ ngOnDestroy() {
26
+ if (this.subscription) {
27
+ this.subscription.unsubscribe();
28
+ }
29
+ }
30
+ shouldUpdate(key, params) {
31
+ return this.lastKey !== key ||
32
+ JSON.stringify(this.lastParams) !== JSON.stringify(params) ||
33
+ !this.subscription;
34
+ }
35
+ updateTranslation(key, params) {
36
+ this.lastKey = key;
37
+ this.lastParams = params;
38
+ if (this.subscription) {
39
+ this.subscription.unsubscribe();
40
+ }
41
+ // Aguardar carregamento das traduções se necessário
42
+ if (!this.translationService.isLanguageLoaded()) {
43
+ if (!this.isLoading) {
44
+ this.isLoading = true;
45
+ this.translationService.waitForTranslations().then(() => {
46
+ this.isLoading = false;
47
+ this.lastTranslation = this.translationService.translate(key, params);
48
+ this.cdr.markForCheck();
49
+ }).catch(error => {
50
+ this.isLoading = false;
51
+ console.error('Error waiting for translations:', error);
52
+ this.lastTranslation = key;
53
+ this.cdr.markForCheck();
54
+ });
55
+ }
56
+ return;
57
+ }
58
+ this.subscription = this.translationService.currentLanguage$.subscribe(() => {
59
+ this.lastTranslation = this.translationService.translate(key, params);
60
+ this.cdr.markForCheck();
61
+ });
62
+ }
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TranslatePipe, deps: [{ token: i1.TranslationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
64
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TranslatePipe, isStandalone: true, name: "translate", pure: false });
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TranslatePipe, decorators: [{
67
+ type: Pipe,
68
+ args: [{
69
+ name: 'translate',
70
+ pure: false,
71
+ standalone: true
72
+ }]
73
+ }], ctorParameters: () => [{ type: i1.TranslationService }, { type: i0.ChangeDetectorRef }] });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvcGlwZXMvdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBK0MsTUFBTSxlQUFlLENBQUM7OztBQVNsRixNQUFNLE9BQU8sYUFBYTtJQVFkO0lBQ0E7SUFSRixZQUFZLENBQWdCO0lBQzVCLE9BQU8sQ0FBVTtJQUNqQixVQUFVLENBQU87SUFDakIsZUFBZSxDQUFVO0lBQ3pCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFMUIsWUFDVSxrQkFBc0MsRUFDdEMsR0FBc0I7UUFEdEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUM3QixDQUFDO0lBRUosU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUErQjtRQUNwRCxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXBCLDZDQUE2QztRQUM3QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxJQUFJLEdBQUcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsR0FBVyxFQUFFLE1BQVk7UUFDNUMsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLEdBQUc7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDMUQsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzVCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxHQUFXLEVBQUUsTUFBWTtRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUV6QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUN0RSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMxQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7b0JBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3hELElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDO29CQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMxQixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDMUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FqRVUsYUFBYTtzR0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUx6QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxXQUFXO29CQUNqQixJQUFJLEVBQUUsS0FBSztvQkFDWCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0cmFuc2xhdGUnLFxuICBwdXJlOiBmYWxzZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbGFzdEtleT86IHN0cmluZztcbiAgcHJpdmF0ZSBsYXN0UGFyYW1zPzogYW55O1xuICBwcml2YXRlIGxhc3RUcmFuc2xhdGlvbj86IHN0cmluZztcbiAgcHJpdmF0ZSBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgdHJhbnNmb3JtKGtleTogc3RyaW5nLCBwYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogc3RyaW5nIHtcbiAgICBpZiAoIWtleSkgcmV0dXJuICcnO1xuXG4gICAgLy8gQ2hlY2sgaWYgd2UgbmVlZCB0byB1cGRhdGUgdGhlIHRyYW5zbGF0aW9uXG4gICAgaWYgKHRoaXMuc2hvdWxkVXBkYXRlKGtleSwgcGFyYW1zKSkge1xuICAgICAgdGhpcy51cGRhdGVUcmFuc2xhdGlvbihrZXksIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGFzdFRyYW5zbGF0aW9uIHx8IGtleTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFVwZGF0ZShrZXk6IHN0cmluZywgcGFyYW1zPzogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGFzdEtleSAhPT0ga2V5IHx8IFxuICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLmxhc3RQYXJhbXMpICE9PSBKU09OLnN0cmluZ2lmeShwYXJhbXMpIHx8XG4gICAgICAgICAgICF0aGlzLnN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IHZvaWQge1xuICAgIHRoaXMubGFzdEtleSA9IGtleTtcbiAgICB0aGlzLmxhc3RQYXJhbXMgPSBwYXJhbXM7XG4gICAgXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8vIEFndWFyZGFyIGNhcnJlZ2FtZW50byBkYXMgdHJhZHXDp8O1ZXMgc2UgbmVjZXNzw6FyaW9cbiAgICBpZiAoIXRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmlzTGFuZ3VhZ2VMb2FkZWQoKSkge1xuICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLndhaXRGb3JUcmFuc2xhdGlvbnMoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubGFzdFRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKGtleSwgcGFyYW1zKTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igd2FpdGluZyBmb3IgdHJhbnNsYXRpb25zOicsIGVycm9yKTtcbiAgICAgICAgICB0aGlzLmxhc3RUcmFuc2xhdGlvbiA9IGtleTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5jdXJyZW50TGFuZ3VhZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxhc3RUcmFuc2xhdGlvbiA9IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZShrZXksIHBhcmFtcyk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxufSJdfQ==
@@ -0,0 +1,169 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./cookie.service";
5
+ export class AuthService {
6
+ cookieService;
7
+ TOKEN_COOKIE_NAME = 'com.senior.token';
8
+ API_URL_COOKIE_NAME = 'com.senior.base.url';
9
+ API_PATH_SUFFIX = '/t/senior.com.br/bridge/1.0/rest';
10
+ currentUserSubject = new BehaviorSubject(null);
11
+ currentUser$ = this.currentUserSubject.asObservable();
12
+ constructor(cookieService) {
13
+ this.cookieService = cookieService;
14
+ this.loadUserFromCookie();
15
+ }
16
+ /**
17
+ * Load user token from cookie
18
+ */
19
+ loadUserFromCookie() {
20
+ const tokenString = this.cookieService.getCookie(this.TOKEN_COOKIE_NAME);
21
+ if (tokenString) {
22
+ try {
23
+ const token = JSON.parse(tokenString);
24
+ if (this.isTokenValid(token)) {
25
+ this.currentUserSubject.next(token);
26
+ }
27
+ else {
28
+ this.currentUserSubject.next(null);
29
+ }
30
+ }
31
+ catch (error) {
32
+ console.error('[AuthService] Error parsing token from cookie:', error);
33
+ this.currentUserSubject.next(null);
34
+ }
35
+ }
36
+ }
37
+ /**
38
+ * Get current user token
39
+ */
40
+ getCurrentUser() {
41
+ return this.currentUserSubject.value;
42
+ }
43
+ /**
44
+ * Get access token
45
+ */
46
+ getAccessToken() {
47
+ const user = this.getCurrentUser();
48
+ return user?.access_token || null;
49
+ }
50
+ /**
51
+ * Get token type (e.g., "Bearer")
52
+ */
53
+ getTokenType() {
54
+ const user = this.getCurrentUser();
55
+ return user?.token_type || 'Bearer';
56
+ }
57
+ /**
58
+ * Get refresh token
59
+ */
60
+ getRefreshToken() {
61
+ const user = this.getCurrentUser();
62
+ return user?.refresh_token || null;
63
+ }
64
+ /**
65
+ * Get API base URL from cookie
66
+ */
67
+ getApiBaseUrl() {
68
+ const baseUrl = this.cookieService.getCookie(this.API_URL_COOKIE_NAME);
69
+ // In development, use proxy
70
+ if (!baseUrl) {
71
+ // Check if we're in development mode
72
+ const isDevelopment = !window.location.hostname.includes('senior.com.br');
73
+ if (isDevelopment) {
74
+ return '/api';
75
+ }
76
+ return null;
77
+ }
78
+ // Remove trailing slash from base URL
79
+ const cleanBaseUrl = baseUrl.replace(/\/$/, '');
80
+ // Combine with API path suffix
81
+ return `${cleanBaseUrl}${this.API_PATH_SUFFIX}`;
82
+ }
83
+ /**
84
+ * Check if user is authenticated
85
+ */
86
+ isAuthenticated() {
87
+ const user = this.getCurrentUser();
88
+ return user !== null && this.isTokenValid(user);
89
+ }
90
+ /**
91
+ * Check if token is valid (not expired)
92
+ */
93
+ isTokenValid(token) {
94
+ if (!token || !token.access_token) {
95
+ return false;
96
+ }
97
+ // Check if token is expired
98
+ const now = Math.floor(Date.now() / 1000);
99
+ const tokenExpiry = token.expires_in;
100
+ // If expires_in is a timestamp, compare directly
101
+ // If it's a duration, we'd need the token creation time
102
+ // For now, assume it's a timestamp
103
+ // If expires_in is very large (like a duration in seconds), skip expiry check
104
+ if (tokenExpiry > 1000000000) {
105
+ // Looks like a timestamp
106
+ return tokenExpiry > now;
107
+ }
108
+ else {
109
+ // Looks like a duration, assume token is valid
110
+ return true;
111
+ }
112
+ }
113
+ /**
114
+ * Check if refresh token is valid
115
+ */
116
+ isRefreshTokenValid() {
117
+ const user = this.getCurrentUser();
118
+ if (!user || !user.refresh_token) {
119
+ return false;
120
+ }
121
+ const now = Math.floor(Date.now() / 1000);
122
+ const refreshExpiry = user.refresh_expires_in;
123
+ return refreshExpiry > now;
124
+ }
125
+ /**
126
+ * Get user locale
127
+ */
128
+ getUserLocale() {
129
+ const user = this.getCurrentUser();
130
+ return user?.locale || 'pt-BR';
131
+ }
132
+ /**
133
+ * Get user full name
134
+ */
135
+ getUserFullName() {
136
+ const user = this.getCurrentUser();
137
+ return user?.fullName || '';
138
+ }
139
+ /**
140
+ * Get user email
141
+ */
142
+ getUserEmail() {
143
+ const user = this.getCurrentUser();
144
+ return user?.email || '';
145
+ }
146
+ /**
147
+ * Get tenant name
148
+ */
149
+ getTenantName() {
150
+ const user = this.getCurrentUser();
151
+ return user?.tenantName || '';
152
+ }
153
+ /**
154
+ * Get username
155
+ */
156
+ getUsername() {
157
+ const user = this.getCurrentUser();
158
+ return user?.username || '';
159
+ }
160
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthService, deps: [{ token: i1.CookieService }], target: i0.ɵɵFactoryTarget.Injectable });
161
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthService, providedIn: 'root' });
162
+ }
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthService, decorators: [{
164
+ type: Injectable,
165
+ args: [{
166
+ providedIn: 'root'
167
+ }]
168
+ }], ctorParameters: () => [{ type: i1.CookieService }] });
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQW9CdkMsTUFBTSxPQUFPLFdBQVc7SUFRRjtJQVBILGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0lBQ3ZDLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0lBQzVDLGVBQWUsR0FBRyxrQ0FBa0MsQ0FBQztJQUU5RCxrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBbUIsSUFBSSxDQUFDLENBQUM7SUFDbEUsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUU3RCxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM5QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFekUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQWMsQ0FBQztnQkFFbkQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsa0JBQWtCLENB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VUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnLi9jb29raWUuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclRva2VuIHtcbiAgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4gIGV4cGlyZXNfaW46IG51bWJlcjtcbiAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xuICB0b2tlbl90eXBlOiBzdHJpbmc7XG4gIHJlZnJlc2hfZXhwaXJlc19pbjogbnVtYmVyO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBmdWxsTmFtZTogc3RyaW5nO1xuICB0ZW5hbnROYW1lOiBzdHJpbmc7XG4gIGxvY2FsZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBUT0tFTl9DT09LSUVfTkFNRSA9ICdjb20uc2VuaW9yLnRva2VuJztcbiAgcHJpdmF0ZSByZWFkb25seSBBUElfVVJMX0NPT0tJRV9OQU1FID0gJ2NvbS5zZW5pb3IuYmFzZS51cmwnO1xuICBwcml2YXRlIHJlYWRvbmx5IEFQSV9QQVRIX1NVRkZJWCA9ICcvdC9zZW5pb3IuY29tLmJyL2JyaWRnZS8xLjAvcmVzdCc7XG4gIFxuICBwcml2YXRlIGN1cnJlbnRVc2VyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VXNlclRva2VuIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyBjdXJyZW50VXNlciQgPSB0aGlzLmN1cnJlbnRVc2VyU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UpIHtcbiAgICB0aGlzLmxvYWRVc2VyRnJvbUNvb2tpZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdXNlciB0b2tlbiBmcm9tIGNvb2tpZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkVXNlckZyb21Db29raWUoKTogdm9pZCB7XG4gICAgY29uc3QgdG9rZW5TdHJpbmcgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0Q29va2llKHRoaXMuVE9LRU5fQ09PS0lFX05BTUUpO1xuICAgIFxuICAgIGlmICh0b2tlblN0cmluZykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBKU09OLnBhcnNlKHRva2VuU3RyaW5nKSBhcyBVc2VyVG9rZW47XG4gICAgICAgIFxuICAgICAgICBpZiAodGhpcy5pc1Rva2VuVmFsaWQodG9rZW4pKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50VXNlclN1YmplY3QubmV4dCh0b2tlbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50VXNlclN1YmplY3QubmV4dChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW0F1dGhTZXJ2aWNlXSBFcnJvciBwYXJzaW5nIHRva2VuIGZyb20gY29va2llOicsIGVycm9yKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VXNlclN1YmplY3QubmV4dChudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgdXNlciB0b2tlblxuICAgKi9cbiAgZ2V0Q3VycmVudFVzZXIoKTogVXNlclRva2VuIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFVzZXJTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhY2Nlc3MgdG9rZW5cbiAgICovXG4gIGdldEFjY2Vzc1Rva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgcmV0dXJuIHVzZXI/LmFjY2Vzc190b2tlbiB8fCBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0b2tlbiB0eXBlIChlLmcuLCBcIkJlYXJlclwiKVxuICAgKi9cbiAgZ2V0VG9rZW5UeXBlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICByZXR1cm4gdXNlcj8udG9rZW5fdHlwZSB8fCAnQmVhcmVyJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcmVmcmVzaCB0b2tlblxuICAgKi9cbiAgZ2V0UmVmcmVzaFRva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgcmV0dXJuIHVzZXI/LnJlZnJlc2hfdG9rZW4gfHwgbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgQVBJIGJhc2UgVVJMIGZyb20gY29va2llXG4gICAqL1xuICBnZXRBcGlCYXNlVXJsKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0Q29va2llKHRoaXMuQVBJX1VSTF9DT09LSUVfTkFNRSk7XG4gICAgXG4gICAgLy8gSW4gZGV2ZWxvcG1lbnQsIHVzZSBwcm94eVxuICAgIGlmICghYmFzZVVybCkge1xuICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgaW4gZGV2ZWxvcG1lbnQgbW9kZVxuICAgICAgY29uc3QgaXNEZXZlbG9wbWVudCA9ICF3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuaW5jbHVkZXMoJ3Nlbmlvci5jb20uYnInKTtcbiAgICAgIGlmIChpc0RldmVsb3BtZW50KSB7XG4gICAgICAgIHJldHVybiAnL2FwaSc7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoIGZyb20gYmFzZSBVUkxcbiAgICBjb25zdCBjbGVhbkJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG4gICAgXG4gICAgLy8gQ29tYmluZSB3aXRoIEFQSSBwYXRoIHN1ZmZpeFxuICAgIHJldHVybiBgJHtjbGVhbkJhc2VVcmx9JHt0aGlzLkFQSV9QQVRIX1NVRkZJWH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHVzZXIgaXMgYXV0aGVudGljYXRlZFxuICAgKi9cbiAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgcmV0dXJuIHVzZXIgIT09IG51bGwgJiYgdGhpcy5pc1Rva2VuVmFsaWQodXNlcik7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdG9rZW4gaXMgdmFsaWQgKG5vdCBleHBpcmVkKVxuICAgKi9cbiAgcHJpdmF0ZSBpc1Rva2VuVmFsaWQodG9rZW46IFVzZXJUb2tlbik6IGJvb2xlYW4ge1xuICAgIGlmICghdG9rZW4gfHwgIXRva2VuLmFjY2Vzc190b2tlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRva2VuIGlzIGV4cGlyZWRcbiAgICBjb25zdCBub3cgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcbiAgICBjb25zdCB0b2tlbkV4cGlyeSA9IHRva2VuLmV4cGlyZXNfaW47XG4gICAgXG4gICAgLy8gSWYgZXhwaXJlc19pbiBpcyBhIHRpbWVzdGFtcCwgY29tcGFyZSBkaXJlY3RseVxuICAgIC8vIElmIGl0J3MgYSBkdXJhdGlvbiwgd2UnZCBuZWVkIHRoZSB0b2tlbiBjcmVhdGlvbiB0aW1lXG4gICAgLy8gRm9yIG5vdywgYXNzdW1lIGl0J3MgYSB0aW1lc3RhbXBcbiAgICAvLyBJZiBleHBpcmVzX2luIGlzIHZlcnkgbGFyZ2UgKGxpa2UgYSBkdXJhdGlvbiBpbiBzZWNvbmRzKSwgc2tpcCBleHBpcnkgY2hlY2tcbiAgICBpZiAodG9rZW5FeHBpcnkgPiAxMDAwMDAwMDAwKSB7XG4gICAgICAvLyBMb29rcyBsaWtlIGEgdGltZXN0YW1wXG4gICAgICByZXR1cm4gdG9rZW5FeHBpcnkgPiBub3c7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIExvb2tzIGxpa2UgYSBkdXJhdGlvbiwgYXNzdW1lIHRva2VuIGlzIHZhbGlkXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgcmVmcmVzaCB0b2tlbiBpcyB2YWxpZFxuICAgKi9cbiAgaXNSZWZyZXNoVG9rZW5WYWxpZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5nZXRDdXJyZW50VXNlcigpO1xuICAgIGlmICghdXNlciB8fCAhdXNlci5yZWZyZXNoX3Rva2VuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgbm93ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gICAgY29uc3QgcmVmcmVzaEV4cGlyeSA9IHVzZXIucmVmcmVzaF9leHBpcmVzX2luO1xuICAgIFxuICAgIHJldHVybiByZWZyZXNoRXhwaXJ5ID4gbm93O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB1c2VyIGxvY2FsZVxuICAgKi9cbiAgZ2V0VXNlckxvY2FsZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgcmV0dXJuIHVzZXI/LmxvY2FsZSB8fCAncHQtQlInO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB1c2VyIGZ1bGwgbmFtZVxuICAgKi9cbiAgZ2V0VXNlckZ1bGxOYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICByZXR1cm4gdXNlcj8uZnVsbE5hbWUgfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHVzZXIgZW1haWxcbiAgICovXG4gIGdldFVzZXJFbWFpbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgcmV0dXJuIHVzZXI/LmVtYWlsIHx8ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0ZW5hbnQgbmFtZVxuICAgKi9cbiAgZ2V0VGVuYW50TmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgcmV0dXJuIHVzZXI/LnRlbmFudE5hbWUgfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHVzZXJuYW1lXG4gICAqL1xuICBnZXRVc2VybmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgcmV0dXJuIHVzZXI/LnVzZXJuYW1lIHx8ICcnO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,90 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class CookieService {
4
+ /**
5
+ * Obtém o valor de um cookie pelo nome
6
+ */
7
+ getCookie(name) {
8
+ if (typeof document === 'undefined') {
9
+ return null; // SSR protection
10
+ }
11
+ const nameEQ = name + '=';
12
+ const cookies = document.cookie.split(';');
13
+ for (let cookie of cookies) {
14
+ cookie = cookie.trim();
15
+ if (cookie.indexOf(nameEQ) === 0) {
16
+ const value = decodeURIComponent(cookie.substring(nameEQ.length));
17
+ return value;
18
+ }
19
+ }
20
+ return null;
21
+ }
22
+ /**
23
+ * Define um cookie
24
+ */
25
+ setCookie(name, value, days, path = '/') {
26
+ if (typeof document === 'undefined') {
27
+ return; // SSR protection
28
+ }
29
+ let expires = '';
30
+ if (days) {
31
+ const date = new Date();
32
+ date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
33
+ expires = '; expires=' + date.toUTCString();
34
+ }
35
+ document.cookie = `${name}=${encodeURIComponent(value)}${expires}; path=${path}`;
36
+ }
37
+ /**
38
+ * Remove um cookie
39
+ */
40
+ deleteCookie(name, path = '/') {
41
+ this.setCookie(name, '', -1, path);
42
+ }
43
+ /**
44
+ * Verifica se um cookie existe
45
+ */
46
+ hasCookie(name) {
47
+ return this.getCookie(name) !== null;
48
+ }
49
+ /**
50
+ * Obtém todos os cookies como objeto
51
+ */
52
+ getAllCookies() {
53
+ if (typeof document === 'undefined') {
54
+ return {}; // SSR protection
55
+ }
56
+ const cookies = {};
57
+ const cookieArray = document.cookie.split(';');
58
+ for (let cookie of cookieArray) {
59
+ cookie = cookie.trim();
60
+ const [name, value] = cookie.split('=');
61
+ if (name && value) {
62
+ cookies[name] = decodeURIComponent(value);
63
+ }
64
+ }
65
+ return cookies;
66
+ }
67
+ /**
68
+ * Debug: Lista todos os cookies disponíveis
69
+ */
70
+ debugAllCookies() {
71
+ console.log('[CookieService] All available cookies:');
72
+ const allCookies = this.getAllCookies();
73
+ Object.keys(allCookies).forEach(name => {
74
+ const value = allCookies[name];
75
+ console.log(`[CookieService] ${name}: ${value.length > 100 ? value.substring(0, 100) + '...' : value}`);
76
+ });
77
+ if (Object.keys(allCookies).length === 0) {
78
+ console.log('[CookieService] No cookies found');
79
+ }
80
+ }
81
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CookieService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
82
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CookieService, providedIn: 'root' });
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CookieService, decorators: [{
85
+ type: Injectable,
86
+ args: [{
87
+ providedIn: 'root'
88
+ }]
89
+ }] });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvc2VydmljZXMvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGFBQWE7SUFFeEI7O09BRUc7SUFDSCxTQUFTLENBQUMsSUFBWTtRQUNwQixJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLENBQUMsaUJBQWlCO1FBQ2hDLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQzFCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTNDLEtBQUssSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2QixJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2xFLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLElBQWEsRUFBRSxPQUFlLEdBQUc7UUFDdEUsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxPQUFPLENBQUMsaUJBQWlCO1FBQzNCLENBQUM7UUFFRCxJQUFJLE9B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O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb29raWVTZXJ2aWNlIHtcblxuICAvKipcbiAgICogT2J0w6ltIG8gdmFsb3IgZGUgdW0gY29va2llIHBlbG8gbm9tZVxuICAgKi9cbiAgZ2V0Q29va2llKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gbnVsbDsgLy8gU1NSIHByb3RlY3Rpb25cbiAgICB9XG5cbiAgICBjb25zdCBuYW1lRVEgPSBuYW1lICsgJz0nO1xuICAgIGNvbnN0IGNvb2tpZXMgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTtcbiAgICBcbiAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykge1xuICAgICAgY29va2llID0gY29va2llLnRyaW0oKTtcbiAgICAgIGlmIChjb29raWUuaW5kZXhPZihuYW1lRVEpID09PSAwKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZS5zdWJzdHJpbmcobmFtZUVRLmxlbmd0aCkpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB1bSBjb29raWVcbiAgICovXG4gIHNldENvb2tpZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGRheXM/OiBudW1iZXIsIHBhdGg6IHN0cmluZyA9ICcvJyk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47IC8vIFNTUiBwcm90ZWN0aW9uXG4gICAgfVxuXG4gICAgbGV0IGV4cGlyZXMgPSAnJztcbiAgICBpZiAoZGF5cykge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyAoZGF5cyAqIDI0ICogNjAgKiA2MCAqIDEwMDApKTtcbiAgICAgIGV4cGlyZXMgPSAnOyBleHBpcmVzPScgKyBkYXRlLnRvVVRDU3RyaW5nKCk7XG4gICAgfVxuICAgIFxuICAgIGRvY3VtZW50LmNvb2tpZSA9IGAke25hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKX0ke2V4cGlyZXN9OyBwYXRoPSR7cGF0aH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB1bSBjb29raWVcbiAgICovXG4gIGRlbGV0ZUNvb2tpZShuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZyA9ICcvJyk6IHZvaWQge1xuICAgIHRoaXMuc2V0Q29va2llKG5hbWUsICcnLCAtMSwgcGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2UgdW0gY29va2llIGV4aXN0ZVxuICAgKi9cbiAgaGFzQ29va2llKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldENvb2tpZShuYW1lKSAhPT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnTDqW0gdG9kb3Mgb3MgY29va2llcyBjb21vIG9iamV0b1xuICAgKi9cbiAgZ2V0QWxsQ29va2llcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHt9OyAvLyBTU1IgcHJvdGVjdGlvblxuICAgIH1cblxuICAgIGNvbnN0IGNvb2tpZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBjb25zdCBjb29raWVBcnJheSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpO1xuICAgIFxuICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVBcnJheSkge1xuICAgICAgY29va2llID0gY29va2llLnRyaW0oKTtcbiAgICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBjb29raWUuc3BsaXQoJz0nKTtcbiAgICAgIGlmIChuYW1lICYmIHZhbHVlKSB7XG4gICAgICAgIGNvb2tpZXNbbmFtZV0gPSBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gY29va2llcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWJ1ZzogTGlzdGEgdG9kb3Mgb3MgY29va2llcyBkaXNwb27DrXZlaXNcbiAgICovXG4gIGRlYnVnQWxsQ29va2llcygpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnW0Nvb2tpZVNlcnZpY2VdIEFsbCBhdmFpbGFibGUgY29va2llczonKTtcbiAgICBjb25zdCBhbGxDb29raWVzID0gdGhpcy5nZXRBbGxDb29raWVzKCk7XG4gICAgXG4gICAgT2JqZWN0LmtleXMoYWxsQ29va2llcykuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gYWxsQ29va2llc1tuYW1lXTtcbiAgICAgIGNvbnNvbGUubG9nKGBbQ29va2llU2VydmljZV0gJHtuYW1lfTogJHt2YWx1ZS5sZW5ndGggPiAxMDAgPyB2YWx1ZS5zdWJzdHJpbmcoMCwgMTAwKSArICcuLi4nIDogdmFsdWV9YCk7XG4gICAgfSk7XG4gICAgXG4gICAgaWYgKE9iamVjdC5rZXlzKGFsbENvb2tpZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS5sb2coJ1tDb29raWVTZXJ2aWNlXSBObyBjb29raWVzIGZvdW5kJyk7XG4gICAgfVxuICB9XG59XG4iXX0=