@experteam-mx/ngx-services 16.1.1 → 16.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/apis/models/api-external-ops.types.mjs +1 -1
- package/index.d.ts +5 -5
- package/lib/apis/api-catalogs.service.d.ts +26 -26
- package/lib/apis/api-companies.service.d.ts +163 -163
- package/lib/apis/api-external-ops.service.d.ts +34 -34
- package/lib/apis/api-security.service.d.ts +79 -79
- package/lib/apis/models/api-catalogs.interfaces.d.ts +75 -75
- package/lib/apis/models/api-catalogs.types.d.ts +5 -5
- package/lib/apis/models/api-companies.interfaces.d.ts +380 -380
- package/lib/apis/models/api-companies.types.d.ts +75 -75
- package/lib/apis/models/api-external-ops.interfaces.d.ts +23 -23
- package/lib/apis/models/api-external-ops.types.d.ts +18 -18
- package/lib/apis/models/api-security.interfaces.d.ts +55 -55
- package/lib/apis/models/api-security.types.d.ts +30 -30
- package/lib/apis/models/api.models.d.ts +23 -23
- package/lib/helpers/http.d.ts +38 -38
- package/lib/interceptors/api-headers.interceptor.d.ts +16 -16
- package/lib/interceptors/api-key.interceptor.d.ts +19 -19
- package/lib/interceptors/api-token.interceptor.d.ts +19 -19
- package/lib/interceptors/http-caching.interceptor.d.ts +12 -12
- package/lib/ngx-services.models.d.ts +9 -9
- package/lib/ngx-services.module.d.ts +17 -17
- package/package.json +9 -11
- package/public-api.d.ts +19 -19
- package/esm2020/experteam-mx-ngx-services.mjs +0 -5
- package/esm2020/lib/apis/api-catalogs.service.mjs +0 -42
- package/esm2020/lib/apis/api-companies.service.mjs +0 -255
- package/esm2020/lib/apis/api-external-ops.service.mjs +0 -53
- package/esm2020/lib/apis/api-security.service.mjs +0 -128
- package/esm2020/lib/apis/models/api-catalogs.interfaces.mjs +0 -2
- package/esm2020/lib/apis/models/api-catalogs.types.mjs +0 -2
- package/esm2020/lib/apis/models/api-companies.interfaces.mjs +0 -2
- package/esm2020/lib/apis/models/api-companies.types.mjs +0 -2
- package/esm2020/lib/apis/models/api-external-ops.interfaces.mjs +0 -2
- package/esm2020/lib/apis/models/api-external-ops.types.mjs +0 -2
- package/esm2020/lib/apis/models/api-security.interfaces.mjs +0 -2
- package/esm2020/lib/apis/models/api-security.types.mjs +0 -2
- package/esm2020/lib/apis/models/api.models.mjs +0 -2
- package/esm2020/lib/helpers/http.mjs +0 -64
- package/esm2020/lib/interceptors/api-headers.interceptor.mjs +0 -34
- package/esm2020/lib/interceptors/api-key.interceptor.mjs +0 -38
- package/esm2020/lib/interceptors/api-token.interceptor.mjs +0 -35
- package/esm2020/lib/interceptors/http-caching.interceptor.mjs +0 -38
- package/esm2020/lib/ngx-services.models.mjs +0 -2
- package/esm2020/lib/ngx-services.module.mjs +0 -37
- package/esm2020/public-api.mjs +0 -27
- package/fesm2015/experteam-mx-ngx-services.mjs +0 -723
- package/fesm2015/experteam-mx-ngx-services.mjs.map +0 -1
- package/fesm2020/experteam-mx-ngx-services.mjs +0 -705
- package/fesm2020/experteam-mx-ngx-services.mjs.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { Environment } from '../ngx-services.models';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class HttpCachingInterceptor implements HttpInterceptor {
|
|
6
|
-
private envs;
|
|
7
|
-
private cache;
|
|
8
|
-
constructor(envs: Environment);
|
|
9
|
-
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<HttpCachingInterceptor, never>;
|
|
11
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<HttpCachingInterceptor>;
|
|
12
|
-
}
|
|
1
|
+
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { Environment } from '../ngx-services.models';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class HttpCachingInterceptor implements HttpInterceptor {
|
|
6
|
+
private envs;
|
|
7
|
+
private cache;
|
|
8
|
+
constructor(envs: Environment);
|
|
9
|
+
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HttpCachingInterceptor, never>;
|
|
11
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<HttpCachingInterceptor>;
|
|
12
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export type Environment = {
|
|
2
|
-
cacheTtl?: number;
|
|
3
|
-
keyName?: string;
|
|
4
|
-
keyValue?: string;
|
|
5
|
-
apiCatalogsUrl?: string;
|
|
6
|
-
apiCompaniesUrl?: string;
|
|
7
|
-
apiExternalOps?: string;
|
|
8
|
-
apiSecurityUrl?: string;
|
|
9
|
-
};
|
|
1
|
+
export type Environment = {
|
|
2
|
+
cacheTtl?: number;
|
|
3
|
+
keyName?: string;
|
|
4
|
+
keyValue?: string;
|
|
5
|
+
apiCatalogsUrl?: string;
|
|
6
|
+
apiCompaniesUrl?: string;
|
|
7
|
+
apiExternalOps?: string;
|
|
8
|
+
apiSecurityUrl?: string;
|
|
9
|
+
};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import { Environment } from './ngx-services.models';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common/http";
|
|
5
|
-
export declare class NgxServicesModule {
|
|
6
|
-
/**
|
|
7
|
-
* Returns a module with providers for the NgxServicesModule.
|
|
8
|
-
*
|
|
9
|
-
* @param {Environment} environment - The environment configuration object.
|
|
10
|
-
*
|
|
11
|
-
* @return {ModuleWithProviders<NgxServicesModule>} The module with providers for the NgxServicesModule.
|
|
12
|
-
*/
|
|
13
|
-
static forRoot(environment: Environment): ModuleWithProviders<NgxServicesModule>;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgxServicesModule, never>;
|
|
15
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxServicesModule, never, [typeof i1.HttpClientModule], never>;
|
|
16
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<NgxServicesModule>;
|
|
17
|
-
}
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import { Environment } from './ngx-services.models';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
export declare class NgxServicesModule {
|
|
6
|
+
/**
|
|
7
|
+
* Returns a module with providers for the NgxServicesModule.
|
|
8
|
+
*
|
|
9
|
+
* @param {Environment} environment - The environment configuration object.
|
|
10
|
+
*
|
|
11
|
+
* @return {ModuleWithProviders<NgxServicesModule>} The module with providers for the NgxServicesModule.
|
|
12
|
+
*/
|
|
13
|
+
static forRoot(environment: Environment): ModuleWithProviders<NgxServicesModule>;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxServicesModule, never>;
|
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxServicesModule, never, [typeof i1.HttpClientModule], never>;
|
|
16
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgxServicesModule>;
|
|
17
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@experteam-mx/ngx-services",
|
|
3
|
-
"version": "16.1.
|
|
3
|
+
"version": "16.1.3",
|
|
4
4
|
"description": "Angular common services for Experteam apps",
|
|
5
5
|
"author": "Experteam Cía. Ltda.",
|
|
6
6
|
"keywords": [
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
{
|
|
15
15
|
"name": "Iraldo Arévalo Delfín",
|
|
16
16
|
"email": "iraldoarevalo@gmail.com"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "Adel López Pantoja",
|
|
20
|
+
"email": "adellopezpantoja@gmail.com"
|
|
17
21
|
}
|
|
18
22
|
],
|
|
19
23
|
"repository": {
|
|
@@ -30,11 +34,7 @@
|
|
|
30
34
|
"tslib": "^2.3.0"
|
|
31
35
|
},
|
|
32
36
|
"sideEffects": false,
|
|
33
|
-
"module": "
|
|
34
|
-
"es2020": "fesm2020/experteam-mx-ngx-services.mjs",
|
|
35
|
-
"esm2020": "esm2020/experteam-mx-ngx-services.mjs",
|
|
36
|
-
"fesm2020": "fesm2020/experteam-mx-ngx-services.mjs",
|
|
37
|
-
"fesm2015": "fesm2015/experteam-mx-ngx-services.mjs",
|
|
37
|
+
"module": "fesm2022/experteam-mx-ngx-services.mjs",
|
|
38
38
|
"typings": "index.d.ts",
|
|
39
39
|
"exports": {
|
|
40
40
|
"./package.json": {
|
|
@@ -42,11 +42,9 @@
|
|
|
42
42
|
},
|
|
43
43
|
".": {
|
|
44
44
|
"types": "./index.d.ts",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"node": "./fesm2015/experteam-mx-ngx-services.mjs",
|
|
49
|
-
"default": "./fesm2020/experteam-mx-ngx-services.mjs"
|
|
45
|
+
"esm2022": "./esm2022/experteam-mx-ngx-services.mjs",
|
|
46
|
+
"esm": "./esm2022/experteam-mx-ngx-services.mjs",
|
|
47
|
+
"default": "./fesm2022/experteam-mx-ngx-services.mjs"
|
|
50
48
|
}
|
|
51
49
|
}
|
|
52
50
|
}
|
package/public-api.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export * from './lib/ngx-services.module';
|
|
2
|
-
export * from './lib/apis/api-catalogs.service';
|
|
3
|
-
export * from './lib/apis/api-companies.service';
|
|
4
|
-
export * from './lib/apis/api-external-ops.service';
|
|
5
|
-
export * from './lib/apis/api-security.service';
|
|
6
|
-
export * from './lib/apis/models/api-catalogs.interfaces';
|
|
7
|
-
export * from './lib/apis/models/api-catalogs.types';
|
|
8
|
-
export * from './lib/apis/models/api-companies.interfaces';
|
|
9
|
-
export * from './lib/apis/models/api-companies.types';
|
|
10
|
-
export * from './lib/apis/models/api-external-ops.interfaces';
|
|
11
|
-
export * from './lib/apis/models/api-external-ops.types';
|
|
12
|
-
export * from './lib/apis/models/api-security.interfaces';
|
|
13
|
-
export * from './lib/apis/models/api-security.types';
|
|
14
|
-
export * from './lib/apis/models/api.models';
|
|
15
|
-
export * from './lib/interceptors/api-headers.interceptor';
|
|
16
|
-
export * from './lib/interceptors/api-key.interceptor';
|
|
17
|
-
export * from './lib/interceptors/api-token.interceptor';
|
|
18
|
-
export * from './lib/interceptors/http-caching.interceptor';
|
|
19
|
-
export * from './lib/helpers/http';
|
|
1
|
+
export * from './lib/ngx-services.module';
|
|
2
|
+
export * from './lib/apis/api-catalogs.service';
|
|
3
|
+
export * from './lib/apis/api-companies.service';
|
|
4
|
+
export * from './lib/apis/api-external-ops.service';
|
|
5
|
+
export * from './lib/apis/api-security.service';
|
|
6
|
+
export * from './lib/apis/models/api-catalogs.interfaces';
|
|
7
|
+
export * from './lib/apis/models/api-catalogs.types';
|
|
8
|
+
export * from './lib/apis/models/api-companies.interfaces';
|
|
9
|
+
export * from './lib/apis/models/api-companies.types';
|
|
10
|
+
export * from './lib/apis/models/api-external-ops.interfaces';
|
|
11
|
+
export * from './lib/apis/models/api-external-ops.types';
|
|
12
|
+
export * from './lib/apis/models/api-security.interfaces';
|
|
13
|
+
export * from './lib/apis/models/api-security.types';
|
|
14
|
+
export * from './lib/apis/models/api.models';
|
|
15
|
+
export * from './lib/interceptors/api-headers.interceptor';
|
|
16
|
+
export * from './lib/interceptors/api-key.interceptor';
|
|
17
|
+
export * from './lib/interceptors/api-token.interceptor';
|
|
18
|
+
export * from './lib/interceptors/http-caching.interceptor';
|
|
19
|
+
export * from './lib/helpers/http';
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwZXJ0ZWFtLW14LW5neC1zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS9uZ3gtc2VydmljZXMvc3JjL2V4cGVydGVhbS1teC1uZ3gtc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs';
|
|
3
|
-
import { httpParams } from '../helpers/http';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common/http";
|
|
6
|
-
export class ApiCatalogsService {
|
|
7
|
-
constructor(environments, http) {
|
|
8
|
-
this.environments = environments;
|
|
9
|
-
this.http = http;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Retrieves the URL from the environments' API catalogs configuration.
|
|
13
|
-
*
|
|
14
|
-
* @return {string} The URL from the API catalogs, or an empty string if not defined.
|
|
15
|
-
*/
|
|
16
|
-
get url() {
|
|
17
|
-
return this.environments.apiCatalogsUrl ?? '';
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Fetches a list of languages based on the provided query parameters.
|
|
21
|
-
*
|
|
22
|
-
* @param {QueryParams} params - The query parameters to filter the languages.
|
|
23
|
-
* @return {Observable<LanguagesData>} An observable containing the languages' data.
|
|
24
|
-
*/
|
|
25
|
-
getLanguages(params) {
|
|
26
|
-
return this.http.get(`${this.url}/languages`, {
|
|
27
|
-
params: httpParams(params),
|
|
28
|
-
}).pipe(map(({ data }) => data));
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
ApiCatalogsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiCatalogsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
-
ApiCatalogsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiCatalogsService, providedIn: 'root' });
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiCatalogsService, decorators: [{
|
|
34
|
-
type: Injectable,
|
|
35
|
-
args: [{
|
|
36
|
-
providedIn: 'root'
|
|
37
|
-
}]
|
|
38
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
39
|
-
type: Inject,
|
|
40
|
-
args: ['env']
|
|
41
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2dzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0vbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktY2F0YWxvZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7O0FBUTVDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFFLE1BQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTRCLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxFQUFFO1lBQ3ZFLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDOztnSEF6QlUsa0JBQWtCLGtCQUVuQixLQUFLO29IQUZKLGtCQUFrQixjQUZqQixNQUFNOzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgaHR0cFBhcmFtcyB9IGZyb20gJy4uL2hlbHBlcnMvaHR0cCdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IExhbmd1YWdlc0RhdGEgfSBmcm9tICcuL21vZGVscy9hcGktY2F0YWxvZ3MudHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlDYXRhbG9nc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmcm9tIHRoZSBlbnZpcm9ubWVudHMnIEFQSSBjYXRhbG9ncyBjb25maWd1cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIGZyb20gdGhlIEFQSSBjYXRhbG9ncywgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIG5vdCBkZWZpbmVkLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpQ2F0YWxvZ3NVcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGxhbmd1YWdlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgbGFuZ3VhZ2VzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TGFuZ3VhZ2VzRGF0YT59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbGFuZ3VhZ2VzJyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldExhbmd1YWdlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TGFuZ3VhZ2VzRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMYW5ndWFnZXNEYXRhPj4oYCR7dGhpcy51cmx9L2xhbmd1YWdlc2AsIHtcclxuICAgICAgcGFyYW1zOiBodHRwUGFyYW1zKHBhcmFtcyksXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { forkJoin, map, mergeMap } from 'rxjs';
|
|
3
|
-
import { httpParams } from '../helpers/http';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common/http";
|
|
6
|
-
export class ApiCompaniesService {
|
|
7
|
-
constructor(environments, http) {
|
|
8
|
-
this.environments = environments;
|
|
9
|
-
this.http = http;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Retrieves the URL for the companies API from the environment configurations.
|
|
13
|
-
*
|
|
14
|
-
* @return {string} The URL of the companies API.
|
|
15
|
-
*/
|
|
16
|
-
get url() {
|
|
17
|
-
return this.environments.apiCompaniesUrl ?? '';
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Fetches the installations based on the provided query parameters.
|
|
21
|
-
*
|
|
22
|
-
* @param {QueryParams} params - The parameters used to filter the installations query.
|
|
23
|
-
* @return {Observable<InstallationsData>} An observable that emits the installations data.
|
|
24
|
-
*/
|
|
25
|
-
getInstallations(params) {
|
|
26
|
-
return this.http.get(`${this.url}/installations`, {
|
|
27
|
-
params: httpParams(params),
|
|
28
|
-
}).pipe(map(({ data }) => data));
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Retrieves the installation details based on the given installation ID.
|
|
32
|
-
*
|
|
33
|
-
* @param {number} id - The unique identifier of the installation to retrieve.
|
|
34
|
-
* @returns {Observable<InstallationData>} An observable of the installation details.
|
|
35
|
-
*/
|
|
36
|
-
getInstallation(id) {
|
|
37
|
-
return this.http.get(`${this.url}/installations/${id}`)
|
|
38
|
-
.pipe(map(({ data }) => data));
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Retrieves a list of locations based on the provided query parameters.
|
|
42
|
-
*
|
|
43
|
-
* @param {QueryParams} params - The parameters to use for querying locations.
|
|
44
|
-
* @return {Observable<LocationsData>} An observable that emits the locations data.
|
|
45
|
-
*/
|
|
46
|
-
getLocations(params) {
|
|
47
|
-
return this.http.get(`${this.url}/locations`, {
|
|
48
|
-
params: httpParams(params),
|
|
49
|
-
}).pipe(map(({ data }) => data));
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Fetches the location details for a given location ID.
|
|
53
|
-
*
|
|
54
|
-
* @param {number} id - The unique identifier of the location.
|
|
55
|
-
* @return {Observable<LocationData>} An Observable containing the location details.
|
|
56
|
-
*/
|
|
57
|
-
getLocation(id) {
|
|
58
|
-
return this.http.get(`${this.url}/locations/${id}`)
|
|
59
|
-
.pipe(map(({ data }) => data));
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Retrieves a list of active supply entities.
|
|
63
|
-
*
|
|
64
|
-
* @param {QueryParams} params - The query parameters to filter supply entities.
|
|
65
|
-
* @return {Observable<SupplyEntitiesData>} Observable emitting supply entities data.
|
|
66
|
-
*/
|
|
67
|
-
getSupplyEntitiesActive(params) {
|
|
68
|
-
return this.http.get(`${this.url}/supply-entities/actives`, {
|
|
69
|
-
params: httpParams(params),
|
|
70
|
-
}).pipe(map(({ data }) => data));
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Fetches a list of employees based on the specified query parameters.
|
|
74
|
-
*
|
|
75
|
-
* @param {QueryParams} params - The parameters to filter and sort the employees.
|
|
76
|
-
* @return {Observable<EmployeesData>} An observable that emits the list of employees.
|
|
77
|
-
*/
|
|
78
|
-
getEmployees(params) {
|
|
79
|
-
return this.http.get(`${this.url}/employees`, {
|
|
80
|
-
params: httpParams(params),
|
|
81
|
-
}).pipe(map(({ data }) => data));
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Fetches an employee's details based on the provided employee ID.
|
|
85
|
-
*
|
|
86
|
-
* @param {number} id - The unique identifier of the employee.
|
|
87
|
-
* @return {Observable<EmployeeData>} An observable that emits the employee's details.
|
|
88
|
-
*/
|
|
89
|
-
getEmployee(id) {
|
|
90
|
-
return this.http.get(`${this.url}/employees/${id}`)
|
|
91
|
-
.pipe(map(({ data }) => data));
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Retrieves the list of employees for a specified location based on provided query parameters.
|
|
95
|
-
*
|
|
96
|
-
* @param {QueryParams} params - The query parameters used to filter and retrieve the location employees.
|
|
97
|
-
* @returns {Observable<LocationEmployeesData>} An observable that emits the list of employees for the specified location.
|
|
98
|
-
*/
|
|
99
|
-
getLocationEmployees(params) {
|
|
100
|
-
return this.http.get(`${this.url}/location-employees`, {
|
|
101
|
-
params: httpParams(params),
|
|
102
|
-
}).pipe(map(({ data }) => data));
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Retrieves a list of countries where the company operates.
|
|
106
|
-
*
|
|
107
|
-
* @param {QueryParams} params - The query parameters for the API request.
|
|
108
|
-
* @return {Observable<CompanyCountriesData>} An observable containing the list of company countries.
|
|
109
|
-
*/
|
|
110
|
-
getCompanyCountries(params) {
|
|
111
|
-
return this.http.get(`${this.url}/company-countries`, {
|
|
112
|
-
params: httpParams(params),
|
|
113
|
-
}).pipe(map(({ data }) => data));
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Retrieves the country information for a specified company by its ID.
|
|
117
|
-
*
|
|
118
|
-
* @param {number} id - The unique identifier of the company.
|
|
119
|
-
* @return {Observable<CompanyCountryData>} An observable containing the country information of the company.
|
|
120
|
-
*/
|
|
121
|
-
getCompanyCountry(id) {
|
|
122
|
-
return this.http.get(`${this.url}/company-countries/${id}`)
|
|
123
|
-
.pipe(map(({ data }) => data));
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Fetches the reference currencies for a given country.
|
|
127
|
-
*
|
|
128
|
-
* @param {QueryParams} params - The query parameters to include in the request.
|
|
129
|
-
* @return {Observable<CountryReferenceCurrenciesData>} The observable containing the country reference currencies data.
|
|
130
|
-
*/
|
|
131
|
-
getCountryReferenceCurrencies(params) {
|
|
132
|
-
return this.http.get(`${this.url}/country-reference-currencies`, { params }).pipe(map(({ data }) => data));
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Retrieves a list of currencies for different countries along with their current exchange rates.
|
|
136
|
-
*
|
|
137
|
-
* @param {QueryParams} params - The query parameters used to fetch the country reference currencies.
|
|
138
|
-
* @return {Observable<CountryCurrencyRate[]>} An observable that emits an array of country currency rates.
|
|
139
|
-
*/
|
|
140
|
-
getCountryCurrenciesWithRate(params) {
|
|
141
|
-
return this.getCountryReferenceCurrencies(params)
|
|
142
|
-
.pipe(mergeMap((currenciesData) => {
|
|
143
|
-
const $observables = currenciesData.country_reference_currencies
|
|
144
|
-
.map((country_reference_currency) => this.getCurrentExchanges({
|
|
145
|
-
currency_id: country_reference_currency.currency.id,
|
|
146
|
-
}).pipe(map((exchangesData) => ({
|
|
147
|
-
...country_reference_currency,
|
|
148
|
-
rate: exchangesData.exchanges[0]?.value ?? 1.00,
|
|
149
|
-
}))));
|
|
150
|
-
return forkJoin($observables);
|
|
151
|
-
}));
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Retrieves the current exchanges based on the given query parameters.
|
|
155
|
-
*
|
|
156
|
-
* @param {QueryParams} params - The query parameters to filter the exchanges.
|
|
157
|
-
*
|
|
158
|
-
* @returns {Observable<ExchangesData>} - An observable that emits the API response data containing the current exchanges.
|
|
159
|
-
*/
|
|
160
|
-
getCurrentExchanges(params) {
|
|
161
|
-
return this.http.get(`${this.url}/exchanges/current`, {
|
|
162
|
-
params: httpParams(params),
|
|
163
|
-
}).pipe(map(({ data }) => data));
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Fetches the country-specific tax information for a company.
|
|
167
|
-
*
|
|
168
|
-
* @param {QueryParams} params - The parameters used to filter and query the taxes.
|
|
169
|
-
* @return {Observable<CompanyCountryTaxesData>} An observable that emits the tax information.
|
|
170
|
-
*/
|
|
171
|
-
getCompanyCountryTaxes(params) {
|
|
172
|
-
return this.http.get(`${this.url}/company-country-taxes`, {
|
|
173
|
-
params: httpParams(params),
|
|
174
|
-
}).pipe(map(({ data }) => data));
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Retrieves the list of active account entities based on the provided query parameters.
|
|
178
|
-
*
|
|
179
|
-
* @param {QueryParams} params - The parameters to filter and query active account entities.
|
|
180
|
-
* @return {Observable<AccountEntitiesData>} An observable that emits the list of active account entities.
|
|
181
|
-
*/
|
|
182
|
-
getActiveAccountEntities(params) {
|
|
183
|
-
return this.http.get(`${this.url}/account-entities/actives`, {
|
|
184
|
-
params: httpParams(params),
|
|
185
|
-
}).pipe(map(({ data }) => data));
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Retrieves the parameter values based on the provided parameter names.
|
|
189
|
-
*
|
|
190
|
-
* @param {Object} params - An object containing the required parameters.
|
|
191
|
-
* @param {string[]} params.paramNames - An array of parameter names for which the values need to be fetched.
|
|
192
|
-
* @return {Observable<ParametersData>} An observable that emits the fetched parameter values.
|
|
193
|
-
*/
|
|
194
|
-
getParameters({ paramNames, }) {
|
|
195
|
-
const parameters = paramNames.map((p) => ({ name: p }));
|
|
196
|
-
return this.http.post(`${this.url}/parameters-values`, {
|
|
197
|
-
parameters
|
|
198
|
-
}).pipe(map(({ data }) => data));
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Retrieves the value of a specified parameter.
|
|
202
|
-
*
|
|
203
|
-
* @param {Object} input - The input object containing the parameter details.
|
|
204
|
-
* @param {string} input.paramName - The name of the parameter whose value is to be retrieved.
|
|
205
|
-
* @return {Observable<ParameterValueData>} An observable emitting the value of the specified parameter.
|
|
206
|
-
*/
|
|
207
|
-
getParameterValue({ paramName, }) {
|
|
208
|
-
return this.http.get(`${this.url}/parameters-values/${paramName}`)
|
|
209
|
-
.pipe(map(({ data }) => data));
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Retrieves a list of country references based on the given query parameters.
|
|
213
|
-
*
|
|
214
|
-
* @param {QueryParams} params - The query parameters for retrieving country references.
|
|
215
|
-
* @return {Observable<CountryReferencesData>} An observable containing the country reference data.
|
|
216
|
-
*/
|
|
217
|
-
getCountryReferences(params) {
|
|
218
|
-
return this.http.get(`${this.url}/country-references`, {
|
|
219
|
-
params: httpParams(params),
|
|
220
|
-
}).pipe(map(({ data }) => data));
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Fetches the country reference data for a given country ID.
|
|
224
|
-
*
|
|
225
|
-
* @param {number} id - The unique identifier of the country for which the reference data is to be retrieved.
|
|
226
|
-
* @return {Observable<CountryReferenceData>} An observable containing the country reference data.
|
|
227
|
-
*/
|
|
228
|
-
getCountryReference(id) {
|
|
229
|
-
return this.http.get(`${this.url}/country-references/${id}`)
|
|
230
|
-
.pipe(map(({ data }) => data));
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Fetches the list of workflows based on the provided query parameters.
|
|
234
|
-
*
|
|
235
|
-
* @param {QueryParams} params - The query parameters used to filter workflows.
|
|
236
|
-
* @return {Observable<WorkflowsData>} An observable containing the workflow data.
|
|
237
|
-
*/
|
|
238
|
-
getWorkflows(params) {
|
|
239
|
-
return this.http.get(`${this.url}/workflows`, {
|
|
240
|
-
params: httpParams(params),
|
|
241
|
-
}).pipe(map(({ data }) => data));
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
ApiCompaniesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiCompaniesService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
245
|
-
ApiCompaniesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiCompaniesService, providedIn: 'root' });
|
|
246
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiCompaniesService, decorators: [{
|
|
247
|
-
type: Injectable,
|
|
248
|
-
args: [{
|
|
249
|
-
providedIn: 'root'
|
|
250
|
-
}]
|
|
251
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
252
|
-
type: Inject,
|
|
253
|
-
args: ['env']
|
|
254
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbXBhbmllcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtL25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWNvbXBhbmllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBMkJsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7QUFNNUMsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQTtJQUNoRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBRSxNQUFtQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFnQyxHQUFHLElBQUksQ0FBQyxHQUFHLGdCQUFnQixFQUFFO1lBQy9FLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUUsRUFBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUErQixHQUFHLElBQUksQ0FBQyxHQUFHLGtCQUFr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O0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUUsTUFBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBNEIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUU7WUFDdkUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUM7U0FDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7O2lIQS9RVSxtQkFBbUIsa0JBRXBCLEtBQUs7cUhBRkosbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7XHJcbiAgQWNjb3VudEVudGl0aWVzRGF0YSxcclxuICBDb21wYW55Q291bnRyaWVzRGF0YSxcclxuICBDb21wYW55Q291bnRyeURhdGEsXHJcbiAgQ29tcGFueUNvdW50cnlUYXhlc0RhdGEsXHJcbiAgQ291bnRyeVJlZmVyZW5jZUN1cnJlbmNpZXNEYXRhLFxyXG4gIENvdW50cnlSZWZlcmVuY2VEYXRhLFxyXG4gIENvdW50cnlSZWZlcmVuY2VzRGF0YSxcclxuICBFbXBsb3llZURhdGEsXHJcbiAgRW1wbG95ZWVzRGF0YSxcclxuICBFeGNoYW5nZXNEYXRhLFxyXG4gIEluc3RhbGxhdGlvbkRhdGEsXHJcbiAgSW5zdGFsbGF0aW9uc0RhdGEsXHJcbiAgTG9jYXRpb25EYXRhLFxyXG4gIExvY2F0aW9uRW1wbG95ZWVzRGF0YSxcclxuICBMb2NhdGlvbnNEYXRhLFxyXG4gIFBhcmFtZXRlcnNEYXRhLFxyXG4gIFBhcmFtZXRlcnNQcm9wcyxcclxuICBQYXJhbWV0ZXJWYWx1ZURhdGEsXHJcbiAgUGFyYW1ldGVyVmFsdWVQcm9wcyxcclxuICBTdXBwbHlFbnRpdGllc0RhdGEsXHJcbiAgV29ya2Zsb3dzRGF0YVxyXG59IGZyb20gJy4vbW9kZWxzL2FwaS1jb21wYW5pZXMudHlwZXMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHsgZm9ya0pvaW4sIG1hcCwgbWVyZ2VNYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBodHRwUGFyYW1zIH0gZnJvbSAnLi4vaGVscGVycy9odHRwJ1xyXG5pbXBvcnQgeyBDb3VudHJ5Q3VycmVuY3lSYXRlIH0gZnJvbSAnLi9tb2RlbHMvYXBpLWNvbXBhbmllcy5pbnRlcmZhY2VzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpQ29tcGFuaWVzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgY29tcGFuaWVzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgY29tcGFuaWVzIEFQSS5cclxuICAgKi9cclxuICBnZXQgdXJsICgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaUNvbXBhbmllc1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgaW5zdGFsbGF0aW9ucyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSBpbnN0YWxsYXRpb25zIHF1ZXJ5LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW5zdGFsbGF0aW9uc0RhdGE+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGluc3RhbGxhdGlvbnMgZGF0YS5cclxuICAgKi9cclxuICBnZXRJbnN0YWxsYXRpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxJbnN0YWxsYXRpb25zRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxJbnN0YWxsYXRpb25zRGF0YT4+KGAke3RoaXMudXJsfS9pbnN0YWxsYXRpb25zYCwge1xyXG4gICAgICBwYXJhbXM6IGh0dHBQYXJhbXMocGFyYW1zKSxcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGluc3RhbGxhdGlvbiBkZXRhaWxzIGJhc2VkIG9uIHRoZSBnaXZlbiBpbnN0YWxsYXRpb24gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGluc3RhbGxhdGlvbiB0byByZXRyaWV2ZS5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbnN0YWxsYXRpb25EYXRhPn0gQW4gb2JzZXJ2YWJsZSBvZiB0aGUgaW5zdGFsbGF0aW9uIGRldGFpbHMuXHJcbiAgICovXHJcbiAgZ2V0SW5zdGFsbGF0aW9uIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxJbnN0YWxsYXRpb25EYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEluc3RhbGxhdGlvbkRhdGE+PihgJHt0aGlzLnVybH0vaW5zdGFsbGF0aW9ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBsb2NhdGlvbnMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byB1c2UgZm9yIHF1ZXJ5aW5nIGxvY2F0aW9ucy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExvY2F0aW9uc0RhdGE+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxvY2F0aW9ucyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldExvY2F0aW9ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TG9jYXRpb25zRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMb2NhdGlvbnNEYXRhPj4oYCR7dGhpcy51cmx9L2xvY2F0aW9uc2AsIHtcclxuICAgICAgcGFyYW1zOiBodHRwUGFyYW1zKHBhcmFtcyksXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgbG9jYXRpb24gZGV0YWlscyBmb3IgYSBnaXZlbiBsb2NhdGlvbiBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbG9jYXRpb24uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxMb2NhdGlvbkRhdGE+fSBBbiBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGxvY2F0aW9uIGRldGFpbHMuXHJcbiAgICovXHJcbiAgZ2V0TG9jYXRpb24gKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPExvY2F0aW9uRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMb2NhdGlvbkRhdGE+PihgJHt0aGlzLnVybH0vbG9jYXRpb25zLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFjdGl2ZSBzdXBwbHkgZW50aXRpZXMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgc3VwcGx5IGVudGl0aWVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U3VwcGx5RW50aXRpZXNEYXRhPn0gT2JzZXJ2YWJsZSBlbWl0dGluZyBzdXBwbHkgZW50aXRpZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRTdXBwbHlFbnRpdGllc0FjdGl2ZSAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U3VwcGx5RW50aXRpZXNEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFN1cHBseUVudGl0aWVzRGF0YT4+KGAke3RoaXMudXJsfS9zdXBwbHktZW50aXRpZXMvYWN0aXZlc2AsIHtcclxuICAgICAgcGFyYW1zOiBodHRwUGFyYW1zKHBhcmFtcyksXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgZW1wbG95ZWVzIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBhbmQgc29ydCB0aGUgZW1wbG95ZWVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RW1wbG95ZWVzRGF0YT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbGlzdCBvZiBlbXBsb3llZXMuXHJcbiAgICovXHJcbiAgZ2V0RW1wbG95ZWVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxFbXBsb3llZXNEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEVtcGxveWVlc0RhdGE+PihgJHt0aGlzLnVybH0vZW1wbG95ZWVzYCwge1xyXG4gICAgICBwYXJhbXM6IGh0dHBQYXJhbXMocGFyYW1zKSxcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFuIGVtcGxveWVlJ3MgZGV0YWlscyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZW1wbG95ZWUgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGVtcGxveWVlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RW1wbG95ZWVEYXRhPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBlbXBsb3llZSdzIGRldGFpbHMuXHJcbiAgICovXHJcbiAgZ2V0RW1wbG95ZWUgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEVtcGxveWVlRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFbXBsb3llZURhdGE+PihgJHt0aGlzLnVybH0vZW1wbG95ZWVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgZW1wbG95ZWVzIGZvciBhIHNwZWNpZmllZCBsb2NhdGlvbiBiYXNlZCBvbiBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgYW5kIHJldHJpZXZlIHRoZSBsb2NhdGlvbiBlbXBsb3llZXMuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8TG9jYXRpb25FbXBsb3llZXNEYXRhPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsaXN0IG9mIGVtcGxveWVlcyBmb3IgdGhlIHNwZWNpZmllZCBsb2NhdGlvbi5cclxuICAgKi9cclxuICBnZXRMb2NhdGlvbkVtcGxveWVlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TG9jYXRpb25FbXBsb3llZXNEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPExvY2F0aW9uRW1wbG95ZWVzRGF0YT4+KGAke3RoaXMudXJsfS9sb2NhdGlvbi1lbXBsb3llZXNgLCB7XHJcbiAgICAgIHBhcmFtczogaHR0cFBhcmFtcyhwYXJhbXMpLFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgY291bnRyaWVzIHdoZXJlIHRoZSBjb21wYW55IG9wZXJhdGVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSBBUEkgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvbXBhbnlDb3VudHJpZXNEYXRhPn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mIGNvbXBhbnkgY291bnRyaWVzLlxyXG4gICAqL1xyXG4gIGdldENvbXBhbnlDb3VudHJpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENvbXBhbnlDb3VudHJpZXNEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvbXBhbnlDb3VudHJpZXNEYXRhPj4oYCR7dGhpcy51cmx9L2NvbXBhbnktY291bnRyaWVzYCwge1xyXG4gICAgICBwYXJhbXM6IGh0dHBQYXJhbXMocGFyYW1zKSxcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBjb3VudHJ5IGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmllZCBjb21wYW55IGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29tcGFueS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvbXBhbnlDb3VudHJ5RGF0YT59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgY291bnRyeSBpbmZvcm1hdGlvbiBvZiB0aGUgY29tcGFueS5cclxuICAgKi9cclxuICBnZXRDb21wYW55Q291bnRyeSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q29tcGFueUNvdW50cnlEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvbXBhbnlDb3VudHJ5RGF0YT4+KGAke3RoaXMudXJsfS9jb21wYW55LWNvdW50cmllcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgcmVmZXJlbmNlIGN1cnJlbmNpZXMgZm9yIGEgZ2l2ZW4gY291bnRyeS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UmVmZXJlbmNlQ3VycmVuY2llc0RhdGE+fSBUaGUgb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBjb3VudHJ5IHJlZmVyZW5jZSBjdXJyZW5jaWVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyeVJlZmVyZW5jZUN1cnJlbmNpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENvdW50cnlSZWZlcmVuY2VDdXJyZW5jaWVzRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5UmVmZXJlbmNlQ3VycmVuY2llc0RhdGE+PihcclxuICAgICAgYCR7dGhpcy51cmx9L2NvdW50cnktcmVmZXJlbmNlLWN1cnJlbmNpZXNgLFxyXG4gICAgICB7IHBhcmFtcyB9XHJcbiAgICApLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGN1cnJlbmNpZXMgZm9yIGRpZmZlcmVudCBjb3VudHJpZXMgYWxvbmcgd2l0aCB0aGVpciBjdXJyZW50IGV4Y2hhbmdlIHJhdGVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmZXRjaCB0aGUgY291bnRyeSByZWZlcmVuY2UgY3VycmVuY2llcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlDdXJyZW5jeVJhdGVbXT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBhcnJheSBvZiBjb3VudHJ5IGN1cnJlbmN5IHJhdGVzLlxyXG4gICAqL1xyXG4gIGdldENvdW50cnlDdXJyZW5jaWVzV2l0aFJhdGUgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENvdW50cnlDdXJyZW5jeVJhdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q291bnRyeVJlZmVyZW5jZUN1cnJlbmNpZXMocGFyYW1zKVxyXG4gICAgICAucGlwZShtZXJnZU1hcCgoY3VycmVuY2llc0RhdGEpID0+IHtcclxuICAgICAgICBjb25zdCAkb2JzZXJ2YWJsZXMgPSBjdXJyZW5jaWVzRGF0YS5jb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jaWVzXHJcbiAgICAgICAgICAubWFwKChjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeSkgPT5cclxuICAgICAgICAgICAgdGhpcy5nZXRDdXJyZW50RXhjaGFuZ2VzKHtcclxuICAgICAgICAgICAgICBjdXJyZW5jeV9pZDogY291bnRyeV9yZWZlcmVuY2VfY3VycmVuY3kuY3VycmVuY3kuaWQsXHJcbiAgICAgICAgICAgIH0pLnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKChleGNoYW5nZXNEYXRhKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4uY291bnRyeV9yZWZlcmVuY2VfY3VycmVuY3ksXHJcbiAgICAgICAgICAgICAgICByYXRlOiBleGNoYW5nZXNEYXRhLmV4Y2hhbmdlc1swXT8udmFsdWUgPz8gMS4wMCxcclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKVxyXG5cclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oJG9ic2VydmFibGVzKVxyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBleGNoYW5nZXMgYmFzZWQgb24gdGhlIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIGV4Y2hhbmdlcy5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEV4Y2hhbmdlc0RhdGE+fSAtIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgQVBJIHJlc3BvbnNlIGRhdGEgY29udGFpbmluZyB0aGUgY3VycmVudCBleGNoYW5nZXMuXHJcbiAgICovXHJcbiAgZ2V0Q3VycmVudEV4Y2hhbmdlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8RXhjaGFuZ2VzRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFeGNoYW5nZXNEYXRhPj4oYCR7dGhpcy51cmx9L2V4Y2hhbmdlcy9jdXJyZW50YCwge1xyXG4gICAgICBwYXJhbXM6IGh0dHBQYXJhbXMocGFyYW1zKSxcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBjb3VudHJ5LXNwZWNpZmljIHRheCBpbmZvcm1hdGlvbiBmb3IgYSBjb21wYW55LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgYW5kIHF1ZXJ5IHRoZSB0YXhlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvbXBhbnlDb3VudHJ5VGF4ZXNEYXRhPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB0YXggaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgZ2V0Q29tcGFueUNvdW50cnlUYXhlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q29tcGFueUNvdW50cnlUYXhlc0RhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q29tcGFueUNvdW50cnlUYXhlc0RhdGE+PihgJHt0aGlzLnVybH0vY29tcGFueS1jb3VudHJ5LXRheGVzYCwge1xyXG4gICAgICBwYXJhbXM6IGh0dHBQYXJhbXMocGFyYW1zKSxcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgYWN0aXZlIGFjY291bnQgZW50aXRpZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byBmaWx0ZXIgYW5kIHF1ZXJ5IGFjdGl2ZSBhY2NvdW50IGVudGl0aWVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8QWNjb3VudEVudGl0aWVzRGF0YT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbGlzdCBvZiBhY3RpdmUgYWNjb3VudCBlbnRpdGllcy5cclxuICAgKi9cclxuICBnZXRBY3RpdmVBY2NvdW50RW50aXRpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEFjY291bnRFbnRpdGllc0RhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8QWNjb3VudEVudGl0aWVzRGF0YT4+KGAke3RoaXMudXJsfS9hY2NvdW50LWVudGl0aWVzL2FjdGl2ZXNgLCB7XHJcbiAgICAgIHBhcmFtczogaHR0cFBhcmFtcyhwYXJhbXMpLFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgcGFyYW1ldGVyIHZhbHVlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGFyYW1ldGVyIG5hbWVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXJzLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHBhcmFtcy5wYXJhbU5hbWVzIC0gQW4gYXJyYXkgb2YgcGFyYW1ldGVyIG5hbWVzIGZvciB3aGljaCB0aGUgdmFsdWVzIG5lZWQgdG8gYmUgZmV0Y2hlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBhcmFtZXRlcnNEYXRhPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBmZXRjaGVkIHBhcmFtZXRlciB2YWx1ZXMuXHJcbiAgICovXHJcbiAgZ2V0UGFyYW1ldGVycyAoe1xyXG4gICAgcGFyYW1OYW1lcyxcclxuICB9OiBQYXJhbWV0ZXJzUHJvcHMpOiBPYnNlcnZhYmxlPFBhcmFtZXRlcnNEYXRhPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gcGFyYW1OYW1lcy5tYXAoKHApID0+ICh7IG5hbWU6IHAgfSkpXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UGFyYW1ldGVyc0RhdGE+PihgJHt0aGlzLnVybH0vcGFyYW1ldGVycy12YWx1ZXNgLCB7XHJcbiAgICAgIHBhcmFtZXRlcnNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIHZhbHVlIG9mIGEgc3BlY2lmaWVkIHBhcmFtZXRlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpbnB1dCAtIFRoZSBpbnB1dCBvYmplY3QgY29udGFpbmluZyB0aGUgcGFyYW1ldGVyIGRldGFpbHMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlucHV0LnBhcmFtTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgd2hvc2UgdmFsdWUgaXMgdG8gYmUgcmV0cmlldmVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGFyYW1ldGVyVmFsdWVEYXRhPn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXIuXHJcbiAgICovXHJcbiAgZ2V0UGFyYW1ldGVyVmFsdWUgKHtcclxuICAgIHBhcmFtTmFtZSxcclxuICB9OiBQYXJhbWV0ZXJWYWx1ZVByb3BzKTogT2JzZXJ2YWJsZTxQYXJhbWV0ZXJWYWx1ZURhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UGFyYW1ldGVyVmFsdWVEYXRhPj4oYCR7dGhpcy51cmx9L3BhcmFtZXRlcnMtdmFsdWVzLyR7cGFyYW1OYW1lfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBjb3VudHJ5IHJlZmVyZW5jZXMgYmFzZWQgb24gdGhlIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgcmV0cmlldmluZyBjb3VudHJ5IHJlZmVyZW5jZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UmVmZXJlbmNlc0RhdGE+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGNvdW50cnkgcmVmZXJlbmNlIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyeVJlZmVyZW5jZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENvdW50cnlSZWZlcmVuY2VzRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5UmVmZXJlbmNlc0RhdGE+PihgJHt0aGlzLnVybH0vY291bnRyeS1yZWZlcmVuY2VzYCwge1xyXG4gICAgICBwYXJhbXM6IGh0dHBQYXJhbXMocGFyYW1zKSxcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBjb3VudHJ5IHJlZmVyZW5jZSBkYXRhIGZvciBhIGdpdmVuIGNvdW50cnkgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvdW50cnkgZm9yIHdoaWNoIHRoZSByZWZlcmVuY2UgZGF0YSBpcyB0byBiZSByZXRyaWV2ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UmVmZXJlbmNlRGF0YT59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgY291bnRyeSByZWZlcmVuY2UgZGF0YS5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5UmVmZXJlbmNlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb3VudHJ5UmVmZXJlbmNlRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5UmVmZXJlbmNlRGF0YT4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXJlZmVyZW5jZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGxpc3Qgb2Ygd29ya2Zsb3dzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgd29ya2Zsb3dzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8V29ya2Zsb3dzRGF0YT59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgd29ya2Zsb3cgZGF0YS5cclxuICAgKi9cclxuICBnZXRXb3JrZmxvd3MgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFdvcmtmbG93c0RhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8V29ya2Zsb3dzRGF0YT4+KGAke3RoaXMudXJsfS93b3JrZmxvd3NgLCB7XHJcbiAgICAgIHBhcmFtczogaHR0cFBhcmFtcyhwYXJhbXMpLFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common/http";
|
|
5
|
-
export class ApiExternalOpsService {
|
|
6
|
-
constructor(environments, http) {
|
|
7
|
-
this.environments = environments;
|
|
8
|
-
this.http = http;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Retrieves the API pickups URL from the environments configuration.
|
|
12
|
-
*
|
|
13
|
-
* @return {string} The API pickups URL.
|
|
14
|
-
*/
|
|
15
|
-
get url() {
|
|
16
|
-
return this.environments.apiExternalOps ?? '';
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Retrieves delivery confirmation details based on the provided OTP code.
|
|
20
|
-
*
|
|
21
|
-
* @param {string} otpCode - The OTP code used to search for delivery confirmation.
|
|
22
|
-
* @return {Observable<DeliveryConfirmationData>} An observable containing the delivery confirmation data.
|
|
23
|
-
*/
|
|
24
|
-
getDeliveryConfirmation(otpCode) {
|
|
25
|
-
return this.http.get(`${this.url}/delivery-confirmation/search/${otpCode}`)
|
|
26
|
-
.pipe(map(({ data }) => data));
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Put a delivery confirmation by sending an OTP code and a signature.
|
|
30
|
-
*
|
|
31
|
-
* @param {Object} options - The options object
|
|
32
|
-
* @param {string} options.otpCode - The OTP code for confirming the delivery.
|
|
33
|
-
* @param {string} options.signature - The signature for the delivery confirmation.
|
|
34
|
-
* @return {Observable<{}>} An observable that completes when the delivery confirmation is successfully submitted.
|
|
35
|
-
*/
|
|
36
|
-
putDeliveryConfirmation({ otpCode, signature, }) {
|
|
37
|
-
return this.http.put(`${this.url}/delivery-confirmation/confirmation/${otpCode}`, {
|
|
38
|
-
signature
|
|
39
|
-
}).pipe(map(({ data }) => data));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
ApiExternalOpsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiExternalOpsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
43
|
-
ApiExternalOpsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiExternalOpsService, providedIn: 'root' });
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiExternalOpsService, decorators: [{
|
|
45
|
-
type: Injectable,
|
|
46
|
-
args: [{
|
|
47
|
-
providedIn: 'root'
|
|
48
|
-
}]
|
|
49
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
50
|
-
type: Inject,
|
|
51
|
-
args: ['env']
|
|
52
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWV4dGVybmFsLW9wcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtL25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWV4dGVybmFsLW9wcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSWxELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7OztBQU10QyxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQ3lCLFlBQXlCLEVBQ3hDLElBQWdCO1FBREQsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN0QixDQUFDO0lBRUw7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFBO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHVCQUF1QixDQUFFLE9BQWU7UUFDN0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBdUMsR0FBRyxJQUFJLENBQUMsR0FBRyxpQ0FBaUMsT0FBTyxFQUFFLENBQUM7YUFDOUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSx1QkFBdUIsQ0FBRSxFQUM5QixPQUFPLEVBQ1AsU0FBUyxHQUNpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLHVDQUF1QyxPQUFPLEVBQUUsRUFBRTtZQUNoRyxTQUFTO1NBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7O21IQXpDVSxxQkFBcUIsa0JBRXRCLEtBQUs7dUhBRkoscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBEZWxpdmVyeUNvbmZpcm1hdGlvbkRhdGEsIFB1dERlbGl2ZXJ5Q29uZmlybWF0aW9uSW4gfSBmcm9tICcuL21vZGVscy9hcGktZXh0ZXJuYWwtb3BzLnR5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpRXh0ZXJuYWxPcHNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBBUEkgcGlja3VwcyBVUkwgZnJvbSB0aGUgZW52aXJvbm1lbnRzIGNvbmZpZ3VyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBBUEkgcGlja3VwcyBVUkwuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlFeHRlcm5hbE9wcyA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbiBkZXRhaWxzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBPVFAgY29kZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvdHBDb2RlIC0gVGhlIE9UUCBjb2RlIHVzZWQgdG8gc2VhcmNoIGZvciBkZWxpdmVyeSBjb25maXJtYXRpb24uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxEZWxpdmVyeUNvbmZpcm1hdGlvbkRhdGE+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbiBkYXRhLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXREZWxpdmVyeUNvbmZpcm1hdGlvbiAob3RwQ29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZWxpdmVyeUNvbmZpcm1hdGlvbkRhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RGVsaXZlcnlDb25maXJtYXRpb25EYXRhPj4oYCR7dGhpcy51cmx9L2RlbGl2ZXJ5LWNvbmZpcm1hdGlvbi9zZWFyY2gvJHtvdHBDb2RlfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHV0IGEgZGVsaXZlcnkgY29uZmlybWF0aW9uIGJ5IHNlbmRpbmcgYW4gT1RQIGNvZGUgYW5kIGEgc2lnbmF0dXJlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBvYmplY3RcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5vdHBDb2RlIC0gVGhlIE9UUCBjb2RlIGZvciBjb25maXJtaW5nIHRoZSBkZWxpdmVyeS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5zaWduYXR1cmUgLSBUaGUgc2lnbmF0dXJlIGZvciB0aGUgZGVsaXZlcnkgY29uZmlybWF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8e30+fSBBbiBvYnNlcnZhYmxlIHRoYXQgY29tcGxldGVzIHdoZW4gdGhlIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbiBpcyBzdWNjZXNzZnVsbHkgc3VibWl0dGVkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBwdXREZWxpdmVyeUNvbmZpcm1hdGlvbiAoe1xyXG4gICAgb3RwQ29kZSxcclxuICAgIHNpZ25hdHVyZSxcclxuICB9OiBQdXREZWxpdmVyeUNvbmZpcm1hdGlvbkluKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS9kZWxpdmVyeS1jb25maXJtYXRpb24vY29uZmlybWF0aW9uLyR7b3RwQ29kZX1gLCB7XHJcbiAgICAgIHNpZ25hdHVyZVxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
|