ng-easycommerce-v18 0.3.19-beta.3 → 0.3.19-beta.5
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.
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
|
|
1
|
+
import { Injectable, Inject, PLATFORM_ID, Optional } from '@angular/core';
|
|
2
2
|
import { isPlatformBrowser } from '@angular/common';
|
|
3
3
|
import { of, BehaviorSubject } from 'rxjs';
|
|
4
4
|
import { catchError, tap, shareReplay } from 'rxjs/operators';
|
|
5
|
+
import { ENVIRONMENT_TOKEN } from '../providers/provideEnvironment';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@angular/common/http";
|
|
7
8
|
export class RuntimeConfigService {
|
|
8
9
|
platformId;
|
|
9
10
|
http;
|
|
11
|
+
environment;
|
|
10
12
|
configSubject = new BehaviorSubject(null);
|
|
11
13
|
config$ = this.configSubject.asObservable();
|
|
12
14
|
_config = null;
|
|
13
15
|
_loadPromise = null;
|
|
14
16
|
_isLoaded = false;
|
|
15
|
-
constructor(platformId, http) {
|
|
17
|
+
constructor(platformId, http, environment) {
|
|
16
18
|
this.platformId = platformId;
|
|
17
19
|
this.http = http;
|
|
20
|
+
this.environment = environment;
|
|
18
21
|
// En SSR o browser, intentar cargar inmediatamente desde window si está disponible
|
|
19
22
|
if (typeof window !== 'undefined' && window.__RUNTIME_CONFIG__ && !this._isLoaded) {
|
|
20
23
|
this._config = window.__RUNTIME_CONFIG__;
|
|
@@ -22,6 +25,22 @@ export class RuntimeConfigService {
|
|
|
22
25
|
this.configSubject.next(this._config);
|
|
23
26
|
}
|
|
24
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Obtiene configuración de fallback desde environment.ts
|
|
30
|
+
*/
|
|
31
|
+
getFallbackConfig() {
|
|
32
|
+
if (this.environment) {
|
|
33
|
+
console.warn('⚠️ [RuntimeConfigService] Usando configuración desde environment.ts como fallback');
|
|
34
|
+
return {
|
|
35
|
+
apiUrl: this.environment.apiUrl || '',
|
|
36
|
+
appEnv: (this.environment.production ? 'prod' : 'preprod'),
|
|
37
|
+
production: this.environment.production,
|
|
38
|
+
locale: this.environment.locale,
|
|
39
|
+
channel: this.environment.channel
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
25
44
|
/**
|
|
26
45
|
* Inicialización única - llamada por APP_INITIALIZER
|
|
27
46
|
* Garantiza que la configuración se carga solo una vez al inicio
|
|
@@ -76,25 +95,41 @@ export class RuntimeConfigService {
|
|
|
76
95
|
}), shareReplay(1), // Cache la respuesta para múltiples suscripciones
|
|
77
96
|
catchError(error => {
|
|
78
97
|
console.error('❌ [RuntimeConfigService] Error loading /runtime-config.json:', error);
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
98
|
+
// Intentar usar fallback desde environment
|
|
99
|
+
const fallbackConfig = this.getFallbackConfig();
|
|
100
|
+
if (fallbackConfig) {
|
|
101
|
+
this._config = fallbackConfig;
|
|
102
|
+
this._isLoaded = true;
|
|
103
|
+
this.configSubject.next(fallbackConfig);
|
|
104
|
+
return of(fallbackConfig);
|
|
105
|
+
}
|
|
106
|
+
// Si no hay environment, lanzar error
|
|
107
|
+
console.error('❌ [RuntimeConfigService] No se pudo cargar runtime-config.json y no hay environment configurado');
|
|
82
108
|
throw error;
|
|
83
109
|
}));
|
|
84
110
|
return this._loadPromise;
|
|
85
111
|
}
|
|
86
112
|
else {
|
|
87
|
-
// En SSR,
|
|
113
|
+
// En SSR, primero intentar usar fallback desde environment (más confiable)
|
|
114
|
+
console.log('🔧 [RuntimeConfigService SSR] Ejecutando en servidor, usando environment como fuente principal');
|
|
115
|
+
const fallbackConfig = this.getFallbackConfig();
|
|
116
|
+
if (fallbackConfig) {
|
|
117
|
+
this._config = fallbackConfig;
|
|
118
|
+
this._isLoaded = true;
|
|
119
|
+
this.configSubject.next(fallbackConfig);
|
|
120
|
+
return of(fallbackConfig);
|
|
121
|
+
}
|
|
122
|
+
// Como alternativa, intentar leer desde window si está disponible
|
|
88
123
|
if (typeof window !== 'undefined' && window.__RUNTIME_CONFIG__ && !this._isLoaded) {
|
|
124
|
+
console.log('🔧 [RuntimeConfigService SSR] Usando window.__RUNTIME_CONFIG__ como alternativa');
|
|
89
125
|
this._config = window.__RUNTIME_CONFIG__;
|
|
90
126
|
this._isLoaded = true;
|
|
91
127
|
this.configSubject.next(this._config);
|
|
92
128
|
return of(this._config);
|
|
93
129
|
}
|
|
94
|
-
// Si
|
|
95
|
-
console.error('❌ [RuntimeConfigService SSR]
|
|
96
|
-
|
|
97
|
-
throw new Error('RuntimeConfig no disponible en SSR. Verifica que server.ts esté inyectando window.__RUNTIME_CONFIG__');
|
|
130
|
+
// Si no hay environment configurado, lanzar error
|
|
131
|
+
console.error('❌ [RuntimeConfigService SSR] No hay environment configurado. Agrega provideEnvironment() en app.config.ts');
|
|
132
|
+
throw new Error('RuntimeConfig no disponible. Configura provideEnvironment() en app.config.ts');
|
|
98
133
|
}
|
|
99
134
|
}
|
|
100
135
|
/**
|
|
@@ -108,8 +143,9 @@ export class RuntimeConfigService {
|
|
|
108
143
|
*/
|
|
109
144
|
getApiUrl() {
|
|
110
145
|
if (!this._config?.apiUrl) {
|
|
111
|
-
console.
|
|
112
|
-
|
|
146
|
+
console.warn('⚠️ [RuntimeConfigService] getApiUrl() llamado sin configuración cargada, usando fallback');
|
|
147
|
+
const fallback = this.getFallbackConfig();
|
|
148
|
+
return fallback?.apiUrl || '';
|
|
113
149
|
}
|
|
114
150
|
return this._config.apiUrl;
|
|
115
151
|
}
|
|
@@ -142,8 +178,9 @@ export class RuntimeConfigService {
|
|
|
142
178
|
*/
|
|
143
179
|
getChannel() {
|
|
144
180
|
if (!this._config?.channel) {
|
|
145
|
-
console.
|
|
146
|
-
|
|
181
|
+
console.warn('⚠️ [RuntimeConfigService] getChannel() llamado sin configuración cargada, usando fallback');
|
|
182
|
+
const fallback = this.getFallbackConfig();
|
|
183
|
+
return fallback?.channel || '';
|
|
147
184
|
}
|
|
148
185
|
return this._config.channel;
|
|
149
186
|
}
|
|
@@ -166,7 +203,7 @@ export class RuntimeConfigService {
|
|
|
166
203
|
const cleanPath = path.startsWith('/') ? path.slice(1) : path;
|
|
167
204
|
return `${frontendUrl}${cleanPath}`;
|
|
168
205
|
}
|
|
169
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, deps: [{ token: PLATFORM_ID }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
206
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, deps: [{ token: PLATFORM_ID }, { token: i1.HttpClient }, { token: ENVIRONMENT_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
170
207
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, providedIn: 'root' });
|
|
171
208
|
}
|
|
172
209
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, decorators: [{
|
|
@@ -177,5 +214,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
177
214
|
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
178
215
|
type: Inject,
|
|
179
216
|
args: [PLATFORM_ID]
|
|
180
|
-
}] }, { type: i1.HttpClient }
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9ydW50aW1lLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQWMsRUFBRSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBUTlELE1BQU0sT0FBTyxvQkFBb0I7SUFTQTtJQUNyQjtJQVRGLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBdUIsSUFBSSxDQUFDLENBQUM7SUFDakUsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFM0MsT0FBTyxHQUF5QixJQUFJLENBQUM7SUFDckMsWUFBWSxHQUFxQyxJQUFJLENBQUM7SUFDdEQsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUUxQixZQUMrQixVQUFrQixFQUN2QyxJQUFnQjtRQURLLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUV4QixtRkFBbUY7UUFDbkYsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xGLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztnQkFDMUIsSUFBSSxFQUFFLENBQUMsTUFBcUIsRUFBRSxFQUFFO29CQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNsQixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVO1FBQ1IsZ0VBQWdFO1FBQ2hFLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBRUQsNkRBQTZEO1FBQzdELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxxRUFBcUU7WUFDckUsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNsRixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdEMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBRUQsNkRBQTZEO1lBQzdELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdCLHNCQUFzQixDQUFDLENBQUMsSUFBSSxDQUMzRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDaEMsOENBQThDO2dCQUM5QyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUNsQyxNQUFNLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDO2dCQUNyQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLGtEQUFrRDtZQUNsRSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsOERBQThELEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3JGLE9BQU8sQ0FBQyxJQUFJLENBQUMseUdBQXlHLENBQUMsQ0FBQztnQkFDeEgsT0FBTyxDQUFDLElBQUksQ0FBQyxnSEFBZ0gsQ0FBQyxDQUFDO2dCQUMvSCwyREFBMkQ7Z0JBQzNELE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNOLGdFQUFnRTtZQUNoRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsa0JBQWtCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2xGLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDO2dCQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBd0IsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFFRCwwREFBMEQ7WUFDMUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxxRkFBcUYsQ0FBQyxDQUFDO1lBQ3JHLE9BQU8sQ0FBQyxLQUFLLENBQUMscUZBQXFGLENBQUMsQ0FBQztZQUNyRyxNQUFNLElBQUksS0FBSyxDQUFDLHNHQUFzRyxDQUFDLENBQUM7UUFDMUgsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0VBQXdFLENBQUMsQ0FBQztZQUN4RixNQUFNLElBQUksS0FBSyxDQUFDLDZHQUE2RyxDQUFDLENBQUM7UUFDakksQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLEtBQUssQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztZQUN6RixNQUFNLElBQUksS0FBSyxDQUFDLDZHQUE2RyxDQUFDLENBQUM7UUFDakksQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDOUUsT0FBTyxHQUFHLE1BQU0sR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlELE9BQU8sR0FBRyxXQUFXLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDdEMsQ0FBQzt3R0FyTFUsb0JBQW9CLGtCQVNyQixXQUFXOzRHQVRWLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSdW50aW1lQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ydW50aW1lLWNvbmZpZyc7XHJcblxyXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogYW55O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUnVudGltZUNvbmZpZ1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UnVudGltZUNvbmZpZyB8IG51bGw+KG51bGwpO1xyXG4gIHB1YmxpYyBjb25maWckID0gdGhpcy5jb25maWdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIFxyXG4gIHByaXZhdGUgX2NvbmZpZzogUnVudGltZUNvbmZpZyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX2xvYWRQcm9taXNlOiBPYnNlcnZhYmxlPFJ1bnRpbWVDb25maWc+IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfaXNMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkge1xyXG4gICAgLy8gRW4gU1NSIG8gYnJvd3NlciwgaW50ZW50YXIgY2FyZ2FyIGlubWVkaWF0YW1lbnRlIGRlc2RlIHdpbmRvdyBzaSBlc3TDoSBkaXNwb25pYmxlXHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXyAmJiAhdGhpcy5faXNMb2FkZWQpIHtcclxuICAgICAgdGhpcy5fY29uZmlnID0gd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXztcclxuICAgICAgdGhpcy5faXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh0aGlzLl9jb25maWcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pY2lhbGl6YWNpw7NuIMO6bmljYSAtIGxsYW1hZGEgcG9yIEFQUF9JTklUSUFMSVpFUlxyXG4gICAqIEdhcmFudGl6YSBxdWUgbGEgY29uZmlndXJhY2nDs24gc2UgY2FyZ2Egc29sbyB1bmEgdmV6IGFsIGluaWNpb1xyXG4gICAqL1xyXG4gIGluaXRpYWxpemUoKTogUHJvbWlzZTxSdW50aW1lQ29uZmlnPiB7XHJcbiAgICBpZiAodGhpcy5faXNMb2FkZWQgJiYgdGhpcy5fY29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fY29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRDb25maWcoKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChjb25maWc6IFJ1bnRpbWVDb25maWcpID0+IHtcclxuICAgICAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHJlc29sdmUoY29uZmlnKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FyZ2EgbGEgY29uZmlndXJhY2nDs24gZW4gcnVudGltZSAob3B0aW1pemFkYSBwYXJhIHVuYSBzb2xhIGNhcmdhKVxyXG4gICAqIC0gRW4gU1NSOiBMZWUgZGVzZGUgZWwgb2JqZXRvIHdpbmRvdyBpbnllY3RhZG8gcG9yIGVsIHNlcnZpZG9yXHJcbiAgICogLSBFbiBCcm93c2VyOiBIYWNlIHBldGljacOzbiBIVFRQIGEgL3J1bnRpbWUtY29uZmlnLmpzb24gKHNvbG8gc2kgbm8gZXN0w6EgZW4gd2luZG93KVxyXG4gICAqL1xyXG4gIGxvYWRDb25maWcoKTogT2JzZXJ2YWJsZTxSdW50aW1lQ29uZmlnPiB7XHJcbiAgICAvLyBTaSB5YSB0ZW5lbW9zIGxhIGNvbmZpZyBjYXJnYWRhLCBsYSBkZXZvbHZlbW9zIGlubWVkaWF0YW1lbnRlXHJcbiAgICBpZiAodGhpcy5faXNMb2FkZWQgJiYgdGhpcy5fY29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBvZih0aGlzLl9jb25maWcgYXMgUnVudGltZUNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2kgeWEgaGF5IHVuYSBjYXJnYSBlbiBwcm9ncmVzbywgcmV1dGlsaXphbW9zIGVzYSBwZXRpY2nDs25cclxuICAgIGlmICh0aGlzLl9sb2FkUHJvbWlzZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fbG9hZFByb21pc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgLy8gRW4gZWwgbmF2ZWdhZG9yLCBwcmltZXJvIGludGVudGFtb3Mgb2J0ZW5lciBsYSBjb25maWcgZGVzZGUgd2luZG93XHJcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuX19SVU5USU1FX0NPTkZJR19fICYmICF0aGlzLl9pc0xvYWRlZCkge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IHdpbmRvdy5fX1JVTlRJTUVfQ09ORklHX187XHJcbiAgICAgICAgdGhpcy5faXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KHRoaXMuX2NvbmZpZyk7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuX2NvbmZpZyBhcyBSdW50aW1lQ29uZmlnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gU2kgbm8gZXN0w6EgZW4gd2luZG93LCBoYWNlbW9zIHBldGljacOzbiBIVFRQIChzb2xvIHVuYSB2ZXopXHJcbiAgICAgIHRoaXMuX2xvYWRQcm9taXNlID0gdGhpcy5odHRwLmdldDxSdW50aW1lQ29uZmlnPignL3J1bnRpbWUtY29uZmlnLmpzb24nKS5waXBlKFxyXG4gICAgICAgIHRhcChjb25maWcgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xyXG4gICAgICAgICAgdGhpcy5faXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQoY29uZmlnKTtcclxuICAgICAgICAgIC8vIEd1YXJkYW1vcyBlbiB3aW5kb3cgcGFyYSBzaWd1aWVudGVzIGFjY2Vzb3NcclxuICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB3aW5kb3cuX19SVU5USU1FX0NPTkZJR19fID0gY29uZmlnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpLCAvLyBDYWNoZSBsYSByZXNwdWVzdGEgcGFyYSBtw7psdGlwbGVzIHN1c2NyaXBjaW9uZXNcclxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBbUnVudGltZUNvbmZpZ1NlcnZpY2VdIEVycm9yIGxvYWRpbmcgL3J1bnRpbWUtY29uZmlnLmpzb246JywgZXJyb3IpO1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKCfimqDvuI8gW1J1bnRpbWVDb25maWdTZXJ2aWNlXSBDUklUSUNBTDogTm8gc2UgcHVkbyBjYXJnYXIgcnVudGltZS1jb25maWcuanNvbiB5IG5vIGhheSBmYWxsYmFjayBjb25maWd1cmFkbycpO1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKCfimqDvuI8gW1J1bnRpbWVDb25maWdTZXJ2aWNlXSBBc2Vnw7pyYXRlIGRlIHF1ZSBlbCBzZXJ2aWRvciBlc3TDqSBpbnllY3RhbmRvIHdpbmRvdy5fX1JVTlRJTUVfQ09ORklHX18gY29ycmVjdGFtZW50ZScpO1xyXG4gICAgICAgICAgLy8gUmUtbGFuemFyIGVsIGVycm9yIHBhcmEgcXVlIHNlIG1hbmVqZSBlbiBBUFBfSU5JVElBTElaRVJcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIFxyXG4gICAgICByZXR1cm4gdGhpcy5fbG9hZFByb21pc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBFbiBTU1IsIGxlZW1vcyBkZXNkZSB3aW5kb3cgcXVlIGZ1ZSBpbnllY3RhZG8gcG9yIGVsIHNlcnZpZG9yXHJcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuX19SVU5USU1FX0NPTkZJR19fICYmICF0aGlzLl9pc0xvYWRlZCkge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IHdpbmRvdy5fX1JVTlRJTUVfQ09ORklHX187XHJcbiAgICAgICAgdGhpcy5faXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KHRoaXMuX2NvbmZpZyk7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuX2NvbmZpZyBhcyBSdW50aW1lQ29uZmlnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gU2kgbGxlZ2Ftb3MgYXF1w60gZW4gU1NSIHNpbiBjb25maWcsIGVzIHVuIGVycm9yIGNyw610aWNvXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBbUnVudGltZUNvbmZpZ1NlcnZpY2UgU1NSXSBDUklUSUNBTDogd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXyBubyBlc3TDoSBkaXNwb25pYmxlJyk7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBbUnVudGltZUNvbmZpZ1NlcnZpY2UgU1NSXSBFbCBzZXJ2ZXIudHMgZGViZSBpbnllY3RhciBsYSBjb25maWd1cmFjacOzbiBlbiBlbCBIVE1MJyk7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignUnVudGltZUNvbmZpZyBubyBkaXNwb25pYmxlIGVuIFNTUi4gVmVyaWZpY2EgcXVlIHNlcnZlci50cyBlc3TDqSBpbnllY3RhbmRvIHdpbmRvdy5fX1JVTlRJTUVfQ09ORklHX18nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idGllbmUgbGEgY29uZmlndXJhY2nDs24gYWN0dWFsIChzw61uY3Jvbm8pXHJcbiAgICovXHJcbiAgZ2V0Q29uZmlnKCk6IFJ1bnRpbWVDb25maWcgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25maWc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnRpZW5lIGxhIEFQSSBVUkwgYWN0dWFsXHJcbiAgICovXHJcbiAgZ2V0QXBpVXJsKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuX2NvbmZpZz8uYXBpVXJsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBbUnVudGltZUNvbmZpZ1NlcnZpY2VdIGdldEFwaVVybCgpIGxsYW1hZG8gc2luIGNvbmZpZ3VyYWNpw7NuIGNhcmdhZGEnKTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSdW50aW1lQ29uZmlnIG5vIGVzdMOhIGluaWNpYWxpemFkby4gQXNlZ8O6cmF0ZSBkZSBxdWUgcHJvdmlkZVJ1bnRpbWVDb25maWcoKSBlc3TDqSBjb25maWd1cmFkbyBjb3JyZWN0YW1lbnRlLicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5hcGlVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnRpZW5lIGxhIEZyb250ZW5kIFVSTCBhY3R1YWxcclxuICAgKi9cclxuICBnZXRGcm9udGVuZFVybCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZz8uZnJvbnRlbmRVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnRpZW5lIGVsIGVudG9ybm8gYWN0dWFsXHJcbiAgICovXHJcbiAgZ2V0QXBwRW52KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5hcHBFbnYgfHwgJ2RldmVsb3BtZW50JztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWNhIHNpIGVzdGFtb3MgZW4gcHJvZHVjY2nDs25cclxuICAgKi9cclxuICBpc1Byb2R1Y3Rpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5wcm9kdWN0aW9uIHx8IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2J0aWVuZSBlbCBsb2NhbGUgYWN0dWFsXHJcbiAgICovXHJcbiAgZ2V0TG9jYWxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5sb2NhbGUgfHwgJ2VzX0FSJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idGllbmUgZWwgY2FuYWwgYWN0dWFsXHJcbiAgICovXHJcbiAgZ2V0Q2hhbm5lbCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLl9jb25maWc/LmNoYW5uZWwpIHtcclxuICAgICAgY29uc29sZS5lcnJvcign4p2MIFtSdW50aW1lQ29uZmlnU2VydmljZV0gZ2V0Q2hhbm5lbCgpIGxsYW1hZG8gc2luIGNvbmZpZ3VyYWNpw7NuIGNhcmdhZGEnKTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSdW50aW1lQ29uZmlnIG5vIGVzdMOhIGluaWNpYWxpemFkby4gQXNlZ8O6cmF0ZSBkZSBxdWUgcHJvdmlkZVJ1bnRpbWVDb25maWcoKSBlc3TDqSBjb25maWd1cmFkbyBjb3JyZWN0YW1lbnRlLicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5jaGFubmVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBoZWxwZXIgcGFyYSBjb25zdHJ1aXIgVVJMcyBkZSBBUElcclxuICAgKi9cclxuICBidWlsZEFwaVVybChlbmRwb2ludDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZ2V0QXBpVXJsKCk7XHJcbiAgICBjb25zdCBjbGVhbkVuZHBvaW50ID0gZW5kcG9pbnQuc3RhcnRzV2l0aCgnLycpID8gZW5kcG9pbnQuc2xpY2UoMSkgOiBlbmRwb2ludDtcclxuICAgIHJldHVybiBgJHthcGlVcmx9JHtjbGVhbkVuZHBvaW50fWA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGhlbHBlciBwYXJhIGNvbnN0cnVpciBVUkxzIGRlbCBmcm9udGVuZFxyXG4gICAqL1xyXG4gIGJ1aWxkRnJvbnRlbmRVcmwocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGZyb250ZW5kVXJsID0gdGhpcy5nZXRGcm9udGVuZFVybCgpO1xyXG4gICAgaWYgKCFmcm9udGVuZFVybCkge1xyXG4gICAgICByZXR1cm4gcGF0aDtcclxuICAgIH1cclxuICAgIGNvbnN0IGNsZWFuUGF0aCA9IHBhdGguc3RhcnRzV2l0aCgnLycpID8gcGF0aC5zbGljZSgxKSA6IHBhdGg7XHJcbiAgICByZXR1cm4gYCR7ZnJvbnRlbmRVcmx9JHtjbGVhblBhdGh9YDtcclxuICB9XHJcbn0iXX0=
|
|
217
|
+
}] }, { type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
218
|
+
type: Optional
|
|
219
|
+
}, {
|
|
220
|
+
type: Inject,
|
|
221
|
+
args: [ENVIRONMENT_TOKEN]
|
|
222
|
+
}] }] });
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9ydW50aW1lLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQVFwRSxNQUFNLE9BQU8sb0JBQW9CO0lBU0E7SUFDckI7SUFDdUM7SUFWekMsYUFBYSxHQUFHLElBQUksZUFBZSxDQUF1QixJQUFJLENBQUMsQ0FBQztJQUNqRSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUzQyxPQUFPLEdBQXlCLElBQUksQ0FBQztJQUNyQyxZQUFZLEdBQXFDLElBQUksQ0FBQztJQUN0RCxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRTFCLFlBQytCLFVBQWtCLEVBQ3ZDLElBQWdCLEVBQ3VCLFdBQStCO1FBRmpELGVBQVUsR0FBVixVQUFVLENBQVE7UUFDdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUN1QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFFOUUsbUZBQW1GO1FBQ25GLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVB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QUFNLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsSUFBWTtRQUMzQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM5RCxPQUFPLEdBQUcsV0FBVyxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQ3RDLENBQUM7d0dBNU5VLG9CQUFvQixrQkFTckIsV0FBVyx1Q0FFQyxpQkFBaUI7NEdBWDVCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLFdBQVc7OzBCQUVsQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgUExBVEZPUk1fSUQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSdW50aW1lQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ydW50aW1lLWNvbmZpZyc7XHJcbmltcG9ydCB7IEVOVklST05NRU5UX1RPS0VOIH0gZnJvbSAnLi4vcHJvdmlkZXJzL3Byb3ZpZGVFbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogYW55O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUnVudGltZUNvbmZpZ1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UnVudGltZUNvbmZpZyB8IG51bGw+KG51bGwpO1xyXG4gIHB1YmxpYyBjb25maWckID0gdGhpcy5jb25maWdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIFxyXG4gIHByaXZhdGUgX2NvbmZpZzogUnVudGltZUNvbmZpZyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX2xvYWRQcm9taXNlOiBPYnNlcnZhYmxlPFJ1bnRpbWVDb25maWc+IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfaXNMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRU5WSVJPTk1FTlRfVE9LRU4pIHByaXZhdGUgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50IHwgbnVsbFxyXG4gICkge1xyXG4gICAgLy8gRW4gU1NSIG8gYnJvd3NlciwgaW50ZW50YXIgY2FyZ2FyIGlubWVkaWF0YW1lbnRlIGRlc2RlIHdpbmRvdyBzaSBlc3TDoSBkaXNwb25pYmxlXHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXyAmJiAhdGhpcy5faXNMb2FkZWQpIHtcclxuICAgICAgdGhpcy5fY29uZmlnID0gd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXztcclxuICAgICAgdGhpcy5faXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh0aGlzLl9jb25maWcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2J0aWVuZSBjb25maWd1cmFjacOzbiBkZSBmYWxsYmFjayBkZXNkZSBlbnZpcm9ubWVudC50c1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0RmFsbGJhY2tDb25maWcoKTogUnVudGltZUNvbmZpZyB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZW52aXJvbm1lbnQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCfimqDvuI8gW1J1bnRpbWVDb25maWdTZXJ2aWNlXSBVc2FuZG8gY29uZmlndXJhY2nDs24gZGVzZGUgZW52aXJvbm1lbnQudHMgY29tbyBmYWxsYmFjaycpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGFwaVVybDogdGhpcy5lbnZpcm9ubWVudC5hcGlVcmwgfHwgJycsXHJcbiAgICAgICAgYXBwRW52OiAodGhpcy5lbnZpcm9ubWVudC5wcm9kdWN0aW9uID8gJ3Byb2QnIDogJ3ByZXByb2QnKSBhcyAncHJvZCcgfCAncHJlcHJvZCcgfCAndGVzdCcsXHJcbiAgICAgICAgcHJvZHVjdGlvbjogdGhpcy5lbnZpcm9ubWVudC5wcm9kdWN0aW9uLFxyXG4gICAgICAgIGxvY2FsZTogdGhpcy5lbnZpcm9ubWVudC5sb2NhbGUsXHJcbiAgICAgICAgY2hhbm5lbDogdGhpcy5lbnZpcm9ubWVudC5jaGFubmVsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaWNpYWxpemFjacOzbiDDum5pY2EgLSBsbGFtYWRhIHBvciBBUFBfSU5JVElBTElaRVJcclxuICAgKiBHYXJhbnRpemEgcXVlIGxhIGNvbmZpZ3VyYWNpw7NuIHNlIGNhcmdhIHNvbG8gdW5hIHZleiBhbCBpbmljaW9cclxuICAgKi9cclxuICBpbml0aWFsaXplKCk6IFByb21pc2U8UnVudGltZUNvbmZpZz4ge1xyXG4gICAgaWYgKHRoaXMuX2lzTG9hZGVkICYmIHRoaXMuX2NvbmZpZykge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2NvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5sb2FkQ29uZmlnKCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoY29uZmlnOiBSdW50aW1lQ29uZmlnKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9pc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICByZXNvbHZlKGNvbmZpZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhcmdhIGxhIGNvbmZpZ3VyYWNpw7NuIGVuIHJ1bnRpbWUgKG9wdGltaXphZGEgcGFyYSB1bmEgc29sYSBjYXJnYSlcclxuICAgKiAtIEVuIFNTUjogTGVlIGRlc2RlIGVsIG9iamV0byB3aW5kb3cgaW55ZWN0YWRvIHBvciBlbCBzZXJ2aWRvclxyXG4gICAqIC0gRW4gQnJvd3NlcjogSGFjZSBwZXRpY2nDs24gSFRUUCBhIC9ydW50aW1lLWNvbmZpZy5qc29uIChzb2xvIHNpIG5vIGVzdMOhIGVuIHdpbmRvdylcclxuICAgKi9cclxuICBsb2FkQ29uZmlnKCk6IE9ic2VydmFibGU8UnVudGltZUNvbmZpZz4ge1xyXG4gICAgLy8gU2kgeWEgdGVuZW1vcyBsYSBjb25maWcgY2FyZ2FkYSwgbGEgZGV2b2x2ZW1vcyBpbm1lZGlhdGFtZW50ZVxyXG4gICAgaWYgKHRoaXMuX2lzTG9hZGVkICYmIHRoaXMuX2NvbmZpZykge1xyXG4gICAgICByZXR1cm4gb2YodGhpcy5fY29uZmlnIGFzIFJ1bnRpbWVDb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNpIHlhIGhheSB1bmEgY2FyZ2EgZW4gcHJvZ3Jlc28sIHJldXRpbGl6YW1vcyBlc2EgcGV0aWNpw7NuXHJcbiAgICBpZiAodGhpcy5fbG9hZFByb21pc2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2xvYWRQcm9taXNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIC8vIEVuIGVsIG5hdmVnYWRvciwgcHJpbWVybyBpbnRlbnRhbW9zIG9idGVuZXIgbGEgY29uZmlnIGRlc2RlIHdpbmRvd1xyXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXyAmJiAhdGhpcy5faXNMb2FkZWQpIHtcclxuICAgICAgICB0aGlzLl9jb25maWcgPSB3aW5kb3cuX19SVU5USU1FX0NPTkZJR19fO1xyXG4gICAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh0aGlzLl9jb25maWcpO1xyXG4gICAgICAgIHJldHVybiBvZih0aGlzLl9jb25maWcgYXMgUnVudGltZUNvbmZpZyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFNpIG5vIGVzdMOhIGVuIHdpbmRvdywgaGFjZW1vcyBwZXRpY2nDs24gSFRUUCAoc29sbyB1bmEgdmV6KVxyXG4gICAgICB0aGlzLl9sb2FkUHJvbWlzZSA9IHRoaXMuaHR0cC5nZXQ8UnVudGltZUNvbmZpZz4oJy9ydW50aW1lLWNvbmZpZy5qc29uJykucGlwZShcclxuICAgICAgICB0YXAoY29uZmlnID0+IHtcclxuICAgICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuICAgICAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KGNvbmZpZyk7XHJcbiAgICAgICAgICAvLyBHdWFyZGFtb3MgZW4gd2luZG93IHBhcmEgc2lndWllbnRlcyBhY2Nlc29zXHJcbiAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgd2luZG93Ll9fUlVOVElNRV9DT05GSUdfXyA9IGNvbmZpZztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBzaGFyZVJlcGxheSgxKSwgLy8gQ2FjaGUgbGEgcmVzcHVlc3RhIHBhcmEgbcO6bHRpcGxlcyBzdXNjcmlwY2lvbmVzXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCfinYwgW1J1bnRpbWVDb25maWdTZXJ2aWNlXSBFcnJvciBsb2FkaW5nIC9ydW50aW1lLWNvbmZpZy5qc29uOicsIGVycm9yKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8gSW50ZW50YXIgdXNhciBmYWxsYmFjayBkZXNkZSBlbnZpcm9ubWVudFxyXG4gICAgICAgICAgY29uc3QgZmFsbGJhY2tDb25maWcgPSB0aGlzLmdldEZhbGxiYWNrQ29uZmlnKCk7XHJcbiAgICAgICAgICBpZiAoZmFsbGJhY2tDb25maWcpIHtcclxuICAgICAgICAgICAgdGhpcy5fY29uZmlnID0gZmFsbGJhY2tDb25maWc7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQoZmFsbGJhY2tDb25maWcpO1xyXG4gICAgICAgICAgICByZXR1cm4gb2YoZmFsbGJhY2tDb25maWcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBTaSBubyBoYXkgZW52aXJvbm1lbnQsIGxhbnphciBlcnJvclxyXG4gICAgICAgICAgY29uc29sZS5lcnJvcign4p2MIFtSdW50aW1lQ29uZmlnU2VydmljZV0gTm8gc2UgcHVkbyBjYXJnYXIgcnVudGltZS1jb25maWcuanNvbiB5IG5vIGhheSBlbnZpcm9ubWVudCBjb25maWd1cmFkbycpO1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgXHJcbiAgICAgIHJldHVybiB0aGlzLl9sb2FkUHJvbWlzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIEVuIFNTUiwgcHJpbWVybyBpbnRlbnRhciB1c2FyIGZhbGxiYWNrIGRlc2RlIGVudmlyb25tZW50IChtw6FzIGNvbmZpYWJsZSlcclxuICAgICAgY29uc29sZS5sb2coJ/CflKcgW1J1bnRpbWVDb25maWdTZXJ2aWNlIFNTUl0gRWplY3V0YW5kbyBlbiBzZXJ2aWRvciwgdXNhbmRvIGVudmlyb25tZW50IGNvbW8gZnVlbnRlIHByaW5jaXBhbCcpO1xyXG4gICAgICBjb25zdCBmYWxsYmFja0NvbmZpZyA9IHRoaXMuZ2V0RmFsbGJhY2tDb25maWcoKTtcclxuICAgICAgaWYgKGZhbGxiYWNrQ29uZmlnKSB7XHJcbiAgICAgICAgdGhpcy5fY29uZmlnID0gZmFsbGJhY2tDb25maWc7XHJcbiAgICAgICAgdGhpcy5faXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KGZhbGxiYWNrQ29uZmlnKTtcclxuICAgICAgICByZXR1cm4gb2YoZmFsbGJhY2tDb25maWcpO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAvLyBDb21vIGFsdGVybmF0aXZhLCBpbnRlbnRhciBsZWVyIGRlc2RlIHdpbmRvdyBzaSBlc3TDoSBkaXNwb25pYmxlXHJcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuX19SVU5USU1FX0NPTkZJR19fICYmICF0aGlzLl9pc0xvYWRlZCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCfwn5SnIFtSdW50aW1lQ29uZmlnU2VydmljZSBTU1JdIFVzYW5kbyB3aW5kb3cuX19SVU5USU1FX0NPTkZJR19fIGNvbW8gYWx0ZXJuYXRpdmEnKTtcclxuICAgICAgICB0aGlzLl9jb25maWcgPSB3aW5kb3cuX19SVU5USU1FX0NPTkZJR19fO1xyXG4gICAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh0aGlzLl9jb25maWcpO1xyXG4gICAgICAgIHJldHVybiBvZih0aGlzLl9jb25maWcgYXMgUnVudGltZUNvbmZpZyk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIC8vIFNpIG5vIGhheSBlbnZpcm9ubWVudCBjb25maWd1cmFkbywgbGFuemFyIGVycm9yXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBbUnVudGltZUNvbmZpZ1NlcnZpY2UgU1NSXSBObyBoYXkgZW52aXJvbm1lbnQgY29uZmlndXJhZG8uIEFncmVnYSBwcm92aWRlRW52aXJvbm1lbnQoKSBlbiBhcHAuY29uZmlnLnRzJyk7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignUnVudGltZUNvbmZpZyBubyBkaXNwb25pYmxlLiBDb25maWd1cmEgcHJvdmlkZUVudmlyb25tZW50KCkgZW4gYXBwLmNvbmZpZy50cycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2J0aWVuZSBsYSBjb25maWd1cmFjacOzbiBhY3R1YWwgKHPDrW5jcm9ubylcclxuICAgKi9cclxuICBnZXRDb25maWcoKTogUnVudGltZUNvbmZpZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idGllbmUgbGEgQVBJIFVSTCBhY3R1YWxcclxuICAgKi9cclxuICBnZXRBcGlVcmwoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fY29uZmlnPy5hcGlVcmwpIHtcclxuICAgICAgY29uc29sZS53YXJuKCfimqDvuI8gW1J1bnRpbWVDb25maWdTZXJ2aWNlXSBnZXRBcGlVcmwoKSBsbGFtYWRvIHNpbiBjb25maWd1cmFjacOzbiBjYXJnYWRhLCB1c2FuZG8gZmFsbGJhY2snKTtcclxuICAgICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLmdldEZhbGxiYWNrQ29uZmlnKCk7XHJcbiAgICAgIHJldHVybiBmYWxsYmFjaz8uYXBpVXJsIHx8ICcnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5hcGlVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnRpZW5lIGxhIEZyb250ZW5kIFVSTCBhY3R1YWxcclxuICAgKi9cclxuICBnZXRGcm9udGVuZFVybCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZz8uZnJvbnRlbmRVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnRpZW5lIGVsIGVudG9ybm8gYWN0dWFsXHJcbiAgICovXHJcbiAgZ2V0QXBwRW52KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5hcHBFbnYgfHwgJ2RldmVsb3BtZW50JztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWNhIHNpIGVzdGFtb3MgZW4gcHJvZHVjY2nDs25cclxuICAgKi9cclxuICBpc1Byb2R1Y3Rpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5wcm9kdWN0aW9uIHx8IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2J0aWVuZSBlbCBsb2NhbGUgYWN0dWFsXHJcbiAgICovXHJcbiAgZ2V0TG9jYWxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnPy5sb2NhbGUgfHwgJ2VzX0FSJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idGllbmUgZWwgY2FuYWwgYWN0dWFsXHJcbiAgICovXHJcbiAgZ2V0Q2hhbm5lbCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLl9jb25maWc/LmNoYW5uZWwpIHtcclxuICAgICAgY29uc29sZS53YXJuKCfimqDvuI8gW1J1bnRpbWVDb25maWdTZXJ2aWNlXSBnZXRDaGFubmVsKCkgbGxhbWFkbyBzaW4gY29uZmlndXJhY2nDs24gY2FyZ2FkYSwgdXNhbmRvIGZhbGxiYWNrJyk7XHJcbiAgICAgIGNvbnN0IGZhbGxiYWNrID0gdGhpcy5nZXRGYWxsYmFja0NvbmZpZygpO1xyXG4gICAgICByZXR1cm4gZmFsbGJhY2s/LmNoYW5uZWwgfHwgJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLmNoYW5uZWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGhlbHBlciBwYXJhIGNvbnN0cnVpciBVUkxzIGRlIEFQSVxyXG4gICAqL1xyXG4gIGJ1aWxkQXBpVXJsKGVuZHBvaW50OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5nZXRBcGlVcmwoKTtcclxuICAgIGNvbnN0IGNsZWFuRW5kcG9pbnQgPSBlbmRwb2ludC5zdGFydHNXaXRoKCcvJykgPyBlbmRwb2ludC5zbGljZSgxKSA6IGVuZHBvaW50O1xyXG4gICAgcmV0dXJuIGAke2FwaVVybH0ke2NsZWFuRW5kcG9pbnR9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gaGVscGVyIHBhcmEgY29uc3RydWlyIFVSTHMgZGVsIGZyb250ZW5kXHJcbiAgICovXHJcbiAgYnVpbGRGcm9udGVuZFVybChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZnJvbnRlbmRVcmwgPSB0aGlzLmdldEZyb250ZW5kVXJsKCk7XHJcbiAgICBpZiAoIWZyb250ZW5kVXJsKSB7XHJcbiAgICAgIHJldHVybiBwYXRoO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY2xlYW5QYXRoID0gcGF0aC5zdGFydHNXaXRoKCcvJykgPyBwYXRoLnNsaWNlKDEpIDogcGF0aDtcclxuICAgIHJldHVybiBgJHtmcm9udGVuZFVybH0ke2NsZWFuUGF0aH1gO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, makeEnvironmentProviders, PLATFORM_ID, Injectable, Inject, APP_INITIALIZER, inject, RendererFactory2, afterNextRender, signal, EnvironmentInjector, runInInjectionContext, Component, ChangeDetectorRef, HostListener, CUSTOM_ELEMENTS_SCHEMA, Input, Pipe, Injector, EventEmitter, Output, forwardRef, afterRender, ViewChild, computed, Renderer2, ChangeDetectionStrategy, Directive } from '@angular/core';
|
|
2
|
+
import { InjectionToken, makeEnvironmentProviders, PLATFORM_ID, Injectable, Inject, Optional, APP_INITIALIZER, inject, RendererFactory2, afterNextRender, signal, EnvironmentInjector, runInInjectionContext, Component, ChangeDetectorRef, HostListener, CUSTOM_ELEMENTS_SCHEMA, Input, Pipe, Injector, EventEmitter, Output, forwardRef, afterRender, ViewChild, computed, Renderer2, ChangeDetectionStrategy, Directive } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/common';
|
|
4
4
|
import { isPlatformBrowser, DOCUMENT, AsyncPipe, CommonModule, TitleCasePipe, JsonPipe, UpperCasePipe, Location } from '@angular/common';
|
|
5
5
|
import { BehaviorSubject, of, take, shareReplay as shareReplay$1, map, catchError as catchError$1, filter, ReplaySubject, firstValueFrom, concatMap, throwError, switchMap, combineLatest } from 'rxjs';
|
|
@@ -47,14 +47,16 @@ const provideEnvironment = (environment) => {
|
|
|
47
47
|
class RuntimeConfigService {
|
|
48
48
|
platformId;
|
|
49
49
|
http;
|
|
50
|
+
environment;
|
|
50
51
|
configSubject = new BehaviorSubject(null);
|
|
51
52
|
config$ = this.configSubject.asObservable();
|
|
52
53
|
_config = null;
|
|
53
54
|
_loadPromise = null;
|
|
54
55
|
_isLoaded = false;
|
|
55
|
-
constructor(platformId, http) {
|
|
56
|
+
constructor(platformId, http, environment) {
|
|
56
57
|
this.platformId = platformId;
|
|
57
58
|
this.http = http;
|
|
59
|
+
this.environment = environment;
|
|
58
60
|
// En SSR o browser, intentar cargar inmediatamente desde window si está disponible
|
|
59
61
|
if (typeof window !== 'undefined' && window.__RUNTIME_CONFIG__ && !this._isLoaded) {
|
|
60
62
|
this._config = window.__RUNTIME_CONFIG__;
|
|
@@ -62,6 +64,22 @@ class RuntimeConfigService {
|
|
|
62
64
|
this.configSubject.next(this._config);
|
|
63
65
|
}
|
|
64
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Obtiene configuración de fallback desde environment.ts
|
|
69
|
+
*/
|
|
70
|
+
getFallbackConfig() {
|
|
71
|
+
if (this.environment) {
|
|
72
|
+
console.warn('⚠️ [RuntimeConfigService] Usando configuración desde environment.ts como fallback');
|
|
73
|
+
return {
|
|
74
|
+
apiUrl: this.environment.apiUrl || '',
|
|
75
|
+
appEnv: (this.environment.production ? 'prod' : 'preprod'),
|
|
76
|
+
production: this.environment.production,
|
|
77
|
+
locale: this.environment.locale,
|
|
78
|
+
channel: this.environment.channel
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
65
83
|
/**
|
|
66
84
|
* Inicialización única - llamada por APP_INITIALIZER
|
|
67
85
|
* Garantiza que la configuración se carga solo una vez al inicio
|
|
@@ -116,25 +134,41 @@ class RuntimeConfigService {
|
|
|
116
134
|
}), shareReplay(1), // Cache la respuesta para múltiples suscripciones
|
|
117
135
|
catchError(error => {
|
|
118
136
|
console.error('❌ [RuntimeConfigService] Error loading /runtime-config.json:', error);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
137
|
+
// Intentar usar fallback desde environment
|
|
138
|
+
const fallbackConfig = this.getFallbackConfig();
|
|
139
|
+
if (fallbackConfig) {
|
|
140
|
+
this._config = fallbackConfig;
|
|
141
|
+
this._isLoaded = true;
|
|
142
|
+
this.configSubject.next(fallbackConfig);
|
|
143
|
+
return of(fallbackConfig);
|
|
144
|
+
}
|
|
145
|
+
// Si no hay environment, lanzar error
|
|
146
|
+
console.error('❌ [RuntimeConfigService] No se pudo cargar runtime-config.json y no hay environment configurado');
|
|
122
147
|
throw error;
|
|
123
148
|
}));
|
|
124
149
|
return this._loadPromise;
|
|
125
150
|
}
|
|
126
151
|
else {
|
|
127
|
-
// En SSR,
|
|
152
|
+
// En SSR, primero intentar usar fallback desde environment (más confiable)
|
|
153
|
+
console.log('🔧 [RuntimeConfigService SSR] Ejecutando en servidor, usando environment como fuente principal');
|
|
154
|
+
const fallbackConfig = this.getFallbackConfig();
|
|
155
|
+
if (fallbackConfig) {
|
|
156
|
+
this._config = fallbackConfig;
|
|
157
|
+
this._isLoaded = true;
|
|
158
|
+
this.configSubject.next(fallbackConfig);
|
|
159
|
+
return of(fallbackConfig);
|
|
160
|
+
}
|
|
161
|
+
// Como alternativa, intentar leer desde window si está disponible
|
|
128
162
|
if (typeof window !== 'undefined' && window.__RUNTIME_CONFIG__ && !this._isLoaded) {
|
|
163
|
+
console.log('🔧 [RuntimeConfigService SSR] Usando window.__RUNTIME_CONFIG__ como alternativa');
|
|
129
164
|
this._config = window.__RUNTIME_CONFIG__;
|
|
130
165
|
this._isLoaded = true;
|
|
131
166
|
this.configSubject.next(this._config);
|
|
132
167
|
return of(this._config);
|
|
133
168
|
}
|
|
134
|
-
// Si
|
|
135
|
-
console.error('❌ [RuntimeConfigService SSR]
|
|
136
|
-
|
|
137
|
-
throw new Error('RuntimeConfig no disponible en SSR. Verifica que server.ts esté inyectando window.__RUNTIME_CONFIG__');
|
|
169
|
+
// Si no hay environment configurado, lanzar error
|
|
170
|
+
console.error('❌ [RuntimeConfigService SSR] No hay environment configurado. Agrega provideEnvironment() en app.config.ts');
|
|
171
|
+
throw new Error('RuntimeConfig no disponible. Configura provideEnvironment() en app.config.ts');
|
|
138
172
|
}
|
|
139
173
|
}
|
|
140
174
|
/**
|
|
@@ -148,8 +182,9 @@ class RuntimeConfigService {
|
|
|
148
182
|
*/
|
|
149
183
|
getApiUrl() {
|
|
150
184
|
if (!this._config?.apiUrl) {
|
|
151
|
-
console.
|
|
152
|
-
|
|
185
|
+
console.warn('⚠️ [RuntimeConfigService] getApiUrl() llamado sin configuración cargada, usando fallback');
|
|
186
|
+
const fallback = this.getFallbackConfig();
|
|
187
|
+
return fallback?.apiUrl || '';
|
|
153
188
|
}
|
|
154
189
|
return this._config.apiUrl;
|
|
155
190
|
}
|
|
@@ -182,8 +217,9 @@ class RuntimeConfigService {
|
|
|
182
217
|
*/
|
|
183
218
|
getChannel() {
|
|
184
219
|
if (!this._config?.channel) {
|
|
185
|
-
console.
|
|
186
|
-
|
|
220
|
+
console.warn('⚠️ [RuntimeConfigService] getChannel() llamado sin configuración cargada, usando fallback');
|
|
221
|
+
const fallback = this.getFallbackConfig();
|
|
222
|
+
return fallback?.channel || '';
|
|
187
223
|
}
|
|
188
224
|
return this._config.channel;
|
|
189
225
|
}
|
|
@@ -206,7 +242,7 @@ class RuntimeConfigService {
|
|
|
206
242
|
const cleanPath = path.startsWith('/') ? path.slice(1) : path;
|
|
207
243
|
return `${frontendUrl}${cleanPath}`;
|
|
208
244
|
}
|
|
209
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, deps: [{ token: PLATFORM_ID }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
245
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, deps: [{ token: PLATFORM_ID }, { token: i1.HttpClient }, { token: ENVIRONMENT_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
210
246
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, providedIn: 'root' });
|
|
211
247
|
}
|
|
212
248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RuntimeConfigService, decorators: [{
|
|
@@ -217,7 +253,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
217
253
|
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
218
254
|
type: Inject,
|
|
219
255
|
args: [PLATFORM_ID]
|
|
220
|
-
}] }, { type: i1.HttpClient }
|
|
256
|
+
}] }, { type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
257
|
+
type: Optional
|
|
258
|
+
}, {
|
|
259
|
+
type: Inject,
|
|
260
|
+
args: [ENVIRONMENT_TOKEN]
|
|
261
|
+
}] }] });
|
|
221
262
|
|
|
222
263
|
/**
|
|
223
264
|
* Factory function para APP_INITIALIZER (OPTIMIZADA)
|