@acorex/connectivity 20.6.0-next.8 → 21.0.0-next.0
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/api/index.d.ts +40 -68
- package/fesm2022/{acorex-connectivity-api-execute.command-BwXw_Kn7.mjs → acorex-connectivity-api-execute.command-SGNBLcOi.mjs} +14 -5
- package/fesm2022/acorex-connectivity-api-execute.command-SGNBLcOi.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-api.mjs +210 -296
- package/fesm2022/acorex-connectivity-api.mjs.map +1 -1
- package/fesm2022/{acorex-connectivity-mock-category-with-items.query-NY9J0cQ0.mjs → acorex-connectivity-mock-category-with-items.query-Dsxj98tX.mjs} +2 -2
- package/fesm2022/acorex-connectivity-mock-category-with-items.query-Dsxj98tX.mjs.map +1 -0
- package/fesm2022/{acorex-connectivity-mock-distribution-record.command-B-Xviv6G.mjs → acorex-connectivity-mock-distribution-record.command-DRiDwlqN.mjs} +12 -3
- package/fesm2022/acorex-connectivity-mock-distribution-record.command-DRiDwlqN.mjs.map +1 -0
- package/fesm2022/{acorex-connectivity-mock-sample.command-BkxMgq1C.mjs → acorex-connectivity-mock-sample.command-CkH5bmEs.mjs} +4 -1
- package/fesm2022/acorex-connectivity-mock-sample.command-CkH5bmEs.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock.mjs +22194 -14850
- package/fesm2022/acorex-connectivity-mock.mjs.map +1 -1
- package/mock/index.d.ts +660 -636
- package/package.json +2 -2
- package/fesm2022/acorex-connectivity-api-execute.command-BwXw_Kn7.mjs.map +0 -1
- package/fesm2022/acorex-connectivity-mock-category-with-items.query-NY9J0cQ0.mjs.map +0 -1
- package/fesm2022/acorex-connectivity-mock-distribution-record.command-B-Xviv6G.mjs.map +0 -1
- package/fesm2022/acorex-connectivity-mock-sample.command-BkxMgq1C.mjs.map +0 -1
package/api/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import * as i0 from '@angular/core';
|
|
|
5
5
|
import * as i1$1 from 'angular-oauth2-oidc';
|
|
6
6
|
import { AuthConfig } from 'angular-oauth2-oidc';
|
|
7
7
|
import * as i2 from '@acorex/platform/auth';
|
|
8
|
-
import { AXPApplicationLoader, AXPApplication, AXPFeatureLoader, AXPFeature, AXPAuthStrategy, AXPBaseCredentials, AXPSignInResult,
|
|
8
|
+
import { AXPApplicationLoader, AXPSessionContext, AXPApplication, AXPFeatureLoader, AXPFeature, AXPAuthStrategy, AXPBaseCredentials, AXPSignInResult, AXPPermissionLoader, AXPPermission, AXPTenantLoader, AXPTenant } from '@acorex/platform/auth';
|
|
9
9
|
import * as i3 from '@acorex/connectivity/utils';
|
|
10
10
|
import * as i1 from '@acorex/platform/runtime';
|
|
11
11
|
import { Observable } from 'rxjs';
|
|
@@ -17,7 +17,6 @@ declare class AXCApiEntityStorageService implements AXPEntityStorageService<stri
|
|
|
17
17
|
private http;
|
|
18
18
|
private configs;
|
|
19
19
|
private filterService;
|
|
20
|
-
private entityResolver;
|
|
21
20
|
private mainUrl;
|
|
22
21
|
private readonly API_VERSION;
|
|
23
22
|
private readonly DEFAULT_AREA;
|
|
@@ -60,7 +59,7 @@ declare class AXMOidcApplicationLoader implements AXPApplicationLoader {
|
|
|
60
59
|
private apiGetApps;
|
|
61
60
|
private apiSetApp;
|
|
62
61
|
constructor(http: HttpClient);
|
|
63
|
-
getList():
|
|
62
|
+
getList(context: AXPSessionContext): Promise<AXPApplication[]>;
|
|
64
63
|
set(application: AXPApplication): Promise<void>;
|
|
65
64
|
private mapToAXPApplication;
|
|
66
65
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMOidcApplicationLoader, never>;
|
|
@@ -127,7 +126,7 @@ declare class AXMConfigurationService {
|
|
|
127
126
|
|
|
128
127
|
declare class AXMOidcFeatureLoader implements AXPFeatureLoader {
|
|
129
128
|
private list;
|
|
130
|
-
getList():
|
|
129
|
+
getList(context: AXPSessionContext): Promise<AXPFeature[]>;
|
|
131
130
|
}
|
|
132
131
|
|
|
133
132
|
declare class AXCAPIOidcStrategy extends AXPAuthStrategy {
|
|
@@ -144,6 +143,12 @@ declare class AXCAPIOidcStrategy extends AXPAuthStrategy {
|
|
|
144
143
|
updateToken(params: {
|
|
145
144
|
[key: string]: any;
|
|
146
145
|
}): Promise<AXPSignInResult | void>;
|
|
146
|
+
/**
|
|
147
|
+
* Signs out the user according to OpenID Connect standards.
|
|
148
|
+
* Tries to call the standard OIDC end_session_endpoint if available, else falls back to configured logoutUrl.
|
|
149
|
+
* Falls back to root landing page on local logout if nothing is provided.
|
|
150
|
+
* This runs in the background (without redirecting user immediately to the endpoint).
|
|
151
|
+
*/
|
|
147
152
|
signout(): Promise<void>;
|
|
148
153
|
refreshToken(context: AXPSessionContext): Promise<AXPSignInResult>;
|
|
149
154
|
private loadAuthData;
|
|
@@ -192,7 +197,7 @@ declare class AXMOidcPermissionLoader implements AXPPermissionLoader {
|
|
|
192
197
|
private configs;
|
|
193
198
|
private apiGetConfig;
|
|
194
199
|
constructor(http: HttpClient);
|
|
195
|
-
getList(context: AXPSessionContext):
|
|
200
|
+
getList(context: AXPSessionContext): Promise<AXPPermission[]>;
|
|
196
201
|
mapTo(jsonObj: any): string[];
|
|
197
202
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMOidcPermissionLoader, never>;
|
|
198
203
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXMOidcPermissionLoader>;
|
|
@@ -203,7 +208,7 @@ declare class AXMOidcTenantLoader implements AXPTenantLoader {
|
|
|
203
208
|
private configs;
|
|
204
209
|
private apiGetTenants;
|
|
205
210
|
constructor(http: HttpClient);
|
|
206
|
-
getList():
|
|
211
|
+
getList(context: AXPSessionContext): Promise<AXPTenant[]>;
|
|
207
212
|
set(tenant: AXPTenant): Promise<void>;
|
|
208
213
|
private mapToAXPTenant;
|
|
209
214
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMOidcTenantLoader, never>;
|
|
@@ -213,9 +218,6 @@ declare class AXMOidcTenantLoader implements AXPTenantLoader {
|
|
|
213
218
|
declare class AXCApiUserAvatarProvider implements AXPUserAvatarProvider {
|
|
214
219
|
private userService;
|
|
215
220
|
private sessionService;
|
|
216
|
-
private http;
|
|
217
|
-
private readonly configs;
|
|
218
|
-
private readonly baseUrl;
|
|
219
221
|
provide(userId: string): Promise<AXPUserAvatarData>;
|
|
220
222
|
}
|
|
221
223
|
|
|
@@ -246,6 +248,31 @@ declare class APIGoogleStrategy extends AXPAuthStrategy {
|
|
|
246
248
|
static ɵprov: i0.ɵɵInjectableDeclaration<APIGoogleStrategy>;
|
|
247
249
|
}
|
|
248
250
|
|
|
251
|
+
declare class AXCSystemInsightReportCategoryApiProvider implements AXPReportCategoryProvider {
|
|
252
|
+
private http;
|
|
253
|
+
getList(parentId?: string): Promise<AXPReportCategory[]>;
|
|
254
|
+
getById(id: string): Promise<AXPReportCategory | undefined>;
|
|
255
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXCSystemInsightReportCategoryApiProvider, never>;
|
|
256
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXCSystemInsightReportCategoryApiProvider>;
|
|
257
|
+
}
|
|
258
|
+
declare class AXCSystemInsightReportDefinitionApiProvider implements AXPReportDefinitionProvider {
|
|
259
|
+
private http;
|
|
260
|
+
getList(categoryId: string): Promise<AXPReportDefinition[]>;
|
|
261
|
+
getById(id: string): Promise<AXPReportDefinition | undefined>;
|
|
262
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXCSystemInsightReportDefinitionApiProvider, never>;
|
|
263
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXCSystemInsightReportDefinitionApiProvider>;
|
|
264
|
+
}
|
|
265
|
+
declare const AXC_SYSTEM_INSIGHT_REPORT_CATEGORY_API_PROVIDER: {
|
|
266
|
+
provide: i0.InjectionToken<_acorex_modules_report_management.AXPReportCategoryProviderToken[]>;
|
|
267
|
+
useClass: typeof AXCSystemInsightReportCategoryApiProvider;
|
|
268
|
+
multi: boolean;
|
|
269
|
+
};
|
|
270
|
+
declare const AXC_SYSTEM_INSIGHT_REPORT_DEFINITION_API_PROVIDER: {
|
|
271
|
+
provide: i0.InjectionToken<_acorex_modules_report_management.AXPReportDefinitionProviderToken[]>;
|
|
272
|
+
useClass: typeof AXCSystemInsightReportDefinitionApiProvider;
|
|
273
|
+
multi: boolean;
|
|
274
|
+
};
|
|
275
|
+
|
|
249
276
|
/**
|
|
250
277
|
* Execute Report DTO - Response from report execution API
|
|
251
278
|
*/
|
|
@@ -346,70 +373,20 @@ interface AXCReportLayoutDefinition {
|
|
|
346
373
|
};
|
|
347
374
|
isDefault?: boolean;
|
|
348
375
|
}
|
|
349
|
-
declare class
|
|
376
|
+
declare class AXCReportCategoryApiProvider implements AXPReportCategoryProvider {
|
|
350
377
|
private readonly http;
|
|
351
378
|
private readonly configs;
|
|
352
379
|
private readonly baseUrl;
|
|
353
|
-
private categoryDataCache;
|
|
354
|
-
private rootCategoriesCache;
|
|
355
|
-
private pendingRequests;
|
|
356
|
-
private pendingRootCategoriesRequest;
|
|
357
|
-
/**
|
|
358
|
-
* Fetch root categories (no parent). Only root categories without reports and children.
|
|
359
|
-
* Uses cache and pending requests to avoid duplicate API calls.
|
|
360
|
-
*/
|
|
361
|
-
getRootCategories(): Promise<AXCReportCategoryApiItem[]>;
|
|
362
|
-
/**
|
|
363
|
-
* Fetch category data for a given parentId.
|
|
364
|
-
* Returns the parent category with its FolderItems (children) and ReportDefinitionItems (reports).
|
|
365
|
-
* Uses cache to avoid duplicate API calls.
|
|
366
|
-
*/
|
|
367
|
-
getCategoryData(parentId: string): Promise<AXCReportCategoryApiItem | undefined>;
|
|
368
|
-
/**
|
|
369
|
-
* Fetch both child categories and reports for a given parentId.
|
|
370
|
-
* This method ensures only one API call is made and both results are returned.
|
|
371
|
-
*/
|
|
372
|
-
getCategoryChildrenAndReports(parentId: string): Promise<{
|
|
373
|
-
categories: AXCReportCategoryApiItem[];
|
|
374
|
-
reports: AXCReportDefinitionApiItem[];
|
|
375
|
-
}>;
|
|
376
|
-
/**
|
|
377
|
-
* Fetch child categories of a given parent.
|
|
378
|
-
* Uses getCategoryData to get FolderItems (children) from the parent category.
|
|
379
|
-
*/
|
|
380
|
-
getChildCategories(parentId: string): Promise<AXCReportCategoryApiItem[]>;
|
|
381
|
-
/**
|
|
382
|
-
* Fetch report definitions that belong to a specific category.
|
|
383
|
-
* Uses getCategoryData to get ReportDefinitionItems (reports) from the category.
|
|
384
|
-
*/
|
|
385
|
-
getCategoryReports(categoryId: string): Promise<AXCReportDefinitionApiItem[]>;
|
|
386
|
-
/**
|
|
387
|
-
* Fetch a single category by id.
|
|
388
|
-
* First checks cache, then uses getCategoryData if not found in cache.
|
|
389
|
-
*/
|
|
390
|
-
getCategoryById(id: string): Promise<AXCReportCategoryApiItem | undefined>;
|
|
391
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AXCReportManagementDataService, never>;
|
|
392
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<AXCReportManagementDataService>;
|
|
393
|
-
}
|
|
394
|
-
/**
|
|
395
|
-
* Category provider that uses the shared data service.
|
|
396
|
-
* Both providers use the same dataService instance which ensures proper caching.
|
|
397
|
-
*/
|
|
398
|
-
declare class AXCReportCategoryApiProvider implements AXPReportCategoryProvider {
|
|
399
|
-
private readonly dataService;
|
|
400
380
|
getList(parentId?: string): Promise<AXPReportCategory[]>;
|
|
401
381
|
getById(id: string): Promise<AXPReportCategory | undefined>;
|
|
402
382
|
private mapApiCategoryToReportCategory;
|
|
403
383
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXCReportCategoryApiProvider, never>;
|
|
404
384
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXCReportCategoryApiProvider>;
|
|
405
385
|
}
|
|
406
|
-
/**
|
|
407
|
-
* Definition provider that uses the shared data service.
|
|
408
|
-
* Both providers use the same dataService instance which ensures proper caching.
|
|
409
|
-
*/
|
|
410
386
|
declare class AXCReportDefinitionApiProvider implements AXPReportDefinitionProvider {
|
|
411
|
-
private readonly dataService;
|
|
412
387
|
private readonly http;
|
|
388
|
+
private readonly configs;
|
|
389
|
+
private readonly baseUrl;
|
|
413
390
|
getList(categoryId: string): Promise<AXPReportDefinition[]>;
|
|
414
391
|
getById(id: string): Promise<AXPReportDefinition | undefined>;
|
|
415
392
|
private mapApiReportDefinitionItemToReportDefinition;
|
|
@@ -417,11 +394,6 @@ declare class AXCReportDefinitionApiProvider implements AXPReportDefinitionProvi
|
|
|
417
394
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXCReportDefinitionApiProvider, never>;
|
|
418
395
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXCReportDefinitionApiProvider>;
|
|
419
396
|
}
|
|
420
|
-
/**
|
|
421
|
-
* Both providers use the same dataService instance (which is a singleton),
|
|
422
|
-
* ensuring they share the same cache and only one API call is made when both
|
|
423
|
-
* getCategories and getReportsByCategoryId are called for the same categoryId.
|
|
424
|
-
*/
|
|
425
397
|
declare const AXC_REPORT_CATEGORY_API_PROVIDER: {
|
|
426
398
|
provide: i0.InjectionToken<_acorex_modules_report_management.AXPReportCategoryProviderToken[]>;
|
|
427
399
|
useClass: typeof AXCReportCategoryApiProvider;
|
|
@@ -433,5 +405,5 @@ declare const AXC_REPORT_DEFINITION_API_PROVIDER: {
|
|
|
433
405
|
multi: boolean;
|
|
434
406
|
};
|
|
435
407
|
|
|
436
|
-
export { APIGoogleStrategy, AXCAPIOidcStrategy, AXCApiEntityStorageService, AXCApiModule, AXCApiUserAvatarProvider, AXCReportCategoryApiProvider, AXCReportDefinitionApiProvider, AXCReportManagementApiModule,
|
|
408
|
+
export { APIGoogleStrategy, AXCAPIOidcStrategy, AXCApiEntityStorageService, AXCApiModule, AXCApiUserAvatarProvider, AXCReportCategoryApiProvider, AXCReportDefinitionApiProvider, AXCReportManagementApiModule, AXCSystemInsightReportCategoryApiProvider, AXCSystemInsightReportDefinitionApiProvider, AXC_REPORT_CATEGORY_API_PROVIDER, AXC_REPORT_DEFINITION_API_PROVIDER, AXC_SYSTEM_INSIGHT_REPORT_CATEGORY_API_PROVIDER, AXC_SYSTEM_INSIGHT_REPORT_DEFINITION_API_PROVIDER, AXMConfigurationService, AXMOidcApplicationLoader, AXMOidcFeatureLoader, AXMOidcPermissionLoader, AXMOidcTenantLoader };
|
|
437
409
|
export type { AXCReportCategoryApiItem, AXCReportCategoryApiResponse, AXCReportDefinitionApiItem, AXCReportDefinitionApiResponse, AXCReportLayoutDefinition, AXCReportParameter, AXCReportParameterGroup, AXPExecuteReportDto, AXPOAuthExternalCredentials, AXPUserPassCredentials, ApplicationConfiguration, Auth, Culture, IAuthenticationDataModel, Language, Localization, NameValue, Resource };
|
|
@@ -15,7 +15,7 @@ class AXCReportExecuteCommand {
|
|
|
15
15
|
//#region ---- Command Implementation ----
|
|
16
16
|
async execute(context) {
|
|
17
17
|
try {
|
|
18
|
-
const { reportId, layoutId, parameters } = context;
|
|
18
|
+
const { reportId, layoutId, filters: parameters } = context;
|
|
19
19
|
// Get the report definition to find the layout
|
|
20
20
|
const reportDefinition = await this.reportDefinitionService.getReportById(reportId);
|
|
21
21
|
if (!reportDefinition) {
|
|
@@ -62,14 +62,23 @@ class AXCReportExecuteCommand {
|
|
|
62
62
|
}
|
|
63
63
|
// Return the combined layout configuration and data
|
|
64
64
|
return {
|
|
65
|
-
|
|
66
|
-
data:
|
|
65
|
+
success: true,
|
|
66
|
+
data: {
|
|
67
|
+
...layoutDefinition.layout,
|
|
68
|
+
data: executionResult,
|
|
69
|
+
},
|
|
67
70
|
};
|
|
68
71
|
}
|
|
69
72
|
catch (error) {
|
|
70
73
|
console.error('Error executing report:', error);
|
|
71
74
|
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
72
|
-
|
|
75
|
+
return {
|
|
76
|
+
success: false,
|
|
77
|
+
message: {
|
|
78
|
+
type: 'error',
|
|
79
|
+
text: `Failed to execute report: ${errorMessage}`,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
73
82
|
}
|
|
74
83
|
}
|
|
75
84
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXCReportExecuteCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -83,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
83
92
|
}] });
|
|
84
93
|
|
|
85
94
|
export { AXCReportExecuteCommand };
|
|
86
|
-
//# sourceMappingURL=acorex-connectivity-api-execute.command-
|
|
95
|
+
//# sourceMappingURL=acorex-connectivity-api-execute.command-SGNBLcOi.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-api-execute.command-SGNBLcOi.mjs","sources":["../tmp-esm2022/api/lib/report-management/execute.command.js"],"sourcesContent":["import { AXPReportDefinitionService, } from '@acorex/modules/report-management';\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\nimport { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXCReportExecuteCommand {\n constructor() {\n this.http = inject(HttpClient);\n this.reportDefinitionService = inject(AXPReportDefinitionService);\n this.configs = inject(AXP_ROOT_CONFIG_TOKEN);\n this.baseUrl = this.configs.baseUrl;\n }\n //#region ---- Command Implementation ----\n async execute(context) {\n try {\n const { reportId, layoutId, filters: parameters } = context;\n // Get the report definition to find the layout\n const reportDefinition = await this.reportDefinitionService.getReportById(reportId);\n if (!reportDefinition) {\n throw new Error(`Report with ID ${reportId} not found`);\n }\n // Find the specific layout\n const layoutDefinition = reportDefinition.layouts.find((l) => l.id === layoutId);\n if (!layoutDefinition) {\n throw new Error(`Layout with ID ${layoutId} not found in report ${reportId}`);\n }\n // Call the Execute API endpoint\n const url = `${this.baseUrl}/v1/global/Report-Management/report/Execute`;\n const body = {\n reportId,\n parameters,\n };\n const executeResult = await firstValueFrom(this.http.post(url, body));\n // Convert ExecuteReportDto to AXPExecutionReportResult format\n let executionResult;\n if (executeResult.type === 'table') {\n executionResult = {\n type: 'table',\n items: executeResult.items,\n total: executeResult.totalCount,\n };\n }\n else if (executeResult.type === 'chart') {\n executionResult = {\n type: 'chart',\n data: executeResult.items[0] || {},\n };\n }\n else if (executeResult.type === 'cards') {\n executionResult = {\n type: 'cards',\n items: executeResult.items,\n };\n }\n else {\n executionResult = {\n type: 'custom',\n data: executeResult.items,\n };\n }\n // Return the combined layout configuration and data\n return {\n success: true,\n data: {\n ...layoutDefinition.layout,\n data: executionResult,\n },\n };\n }\n catch (error) {\n console.error('Error executing report:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error';\n return {\n success: false,\n message: {\n type: 'error',\n text: `Failed to execute report: ${errorMessage}`,\n },\n };\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXCReportExecuteCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXCReportExecuteCommand, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXCReportExecuteCommand, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb25uZWN0aXZpdHkvYXBpL3NyYy9saWIvcmVwb3J0LW1hbmFnZW1lbnQvZXhlY3V0ZS5jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLTCwwQkFBMEIsR0FFM0IsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNdEMsTUFBTSxPQUFPLHVCQUF1QjtJQUhwQztRQUltQixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLDRCQUF1QixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzdELFlBQU8sR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN4QyxZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0E2RWpEO0lBM0VDLDhDQUE4QztJQUU5QyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWtDO1FBQzlDLElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFFNUQsK0NBQStDO1lBQy9DLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixRQUFRLFlBQVksQ0FBQyxDQUFDO1lBQzFELENBQUM7WUFFRCwyQkFBMkI7WUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBNEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQztZQUM1RyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsUUFBUSx3QkFBd0IsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNoRixDQUFDO1lBRUQsZ0NBQWdDO1lBQ2hDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sNkNBQTZDLENBQUM7WUFDekUsTUFBTSxJQUFJLEdBQUc7Z0JBQ1gsUUFBUTtnQkFDUixVQUFVO2FBQ1gsQ0FBQztZQUVGLE1BQU0sYUFBYSxHQUF3QixNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBc0IsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFaEgsOERBQThEO1lBQzlELElBQUksZUFBeUMsQ0FBQztZQUU5QyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ25DLGVBQWUsR0FBRztvQkFDaEIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLO29CQUMxQixLQUFLLEVBQUUsYUFBYSxDQUFDLFVBQVU7aUJBQ2hDLENBQUM7WUFDSixDQUFDO2lCQUFNLElBQUksYUFBYSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDMUMsZUFBZSxHQUFHO29CQUNoQixJQUFJLEVBQUUsT0FBTztvQkFDYixJQUFJLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO2lCQUNuQyxDQUFDO1lBQ0osQ0FBQztpQkFBTSxJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQzFDLGVBQWUsR0FBRztvQkFDaEIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLO2lCQUMzQixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGVBQWUsR0FBRztvQkFDaEIsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLO2lCQUMxQixDQUFDO1lBQ0osQ0FBQztZQUVELG9EQUFvRDtZQUNwRCxPQUFPO2dCQUNMLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRTtvQkFDSixHQUFHLGdCQUFnQixDQUFDLE1BQU07b0JBQzFCLElBQUksRUFBRSxlQUFlO2lCQUN0QjthQUNGLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEQsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBQzlFLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxPQUFnQjtvQkFDdEIsSUFBSSxFQUFFLDZCQUE2QixZQUFZLEVBQUU7aUJBQ2xEO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOytHQTlFVSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQRXhlY3V0aW9uUmVwb3J0Q29tbWFuZCxcbiAgQVhQRXhlY3V0aW9uUmVwb3J0Q29tbWFuZFJlc3VsdCxcbiAgQVhQRXhlY3V0aW9uUmVwb3J0UmVzdWx0LFxuICBBWFBMYXlvdXRFeGVjdXRpb25Db250ZXh0LFxuICBBWFBSZXBvcnREZWZpbml0aW9uU2VydmljZSxcbiAgQVhQUmVwb3J0TGF5b3V0RGVmaW5pdGlvbixcbn0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL3JlcG9ydC1tYW5hZ2VtZW50JztcbmltcG9ydCB7IEFYUF9ST09UX0NPTkZJR19UT0tFTiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBFeGVjdXRlUmVwb3J0RHRvIH0gZnJvbSAnLi9yZXBvcnQtbWFuYWdlbWVudC1hcGkucHJvdmlkZXJzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYQ1JlcG9ydEV4ZWN1dGVDb21tYW5kIGltcGxlbWVudHMgQVhQRXhlY3V0aW9uUmVwb3J0Q29tbWFuZCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXBvcnREZWZpbml0aW9uU2VydmljZSA9IGluamVjdChBWFBSZXBvcnREZWZpbml0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlncyA9IGluamVjdChBWFBfUk9PVF9DT05GSUdfVE9LRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IGJhc2VVcmwgPSB0aGlzLmNvbmZpZ3MuYmFzZVVybDtcblxuICAvLyNyZWdpb24gLS0tLSAgIENvbW1hbmQgSW1wbGVtZW50YXRpb24gICAtLS0tXG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBMYXlvdXRFeGVjdXRpb25Db250ZXh0KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgcmVwb3J0SWQsIGxheW91dElkLCBmaWx0ZXJzOiBwYXJhbWV0ZXJzIH0gPSBjb250ZXh0O1xuXG4gICAgICAvLyBHZXQgdGhlIHJlcG9ydCBkZWZpbml0aW9uIHRvIGZpbmQgdGhlIGxheW91dFxuICAgICAgY29uc3QgcmVwb3J0RGVmaW5pdGlvbiA9IGF3YWl0IHRoaXMucmVwb3J0RGVmaW5pdGlvblNlcnZpY2UuZ2V0UmVwb3J0QnlJZChyZXBvcnRJZCk7XG4gICAgICBpZiAoIXJlcG9ydERlZmluaXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXBvcnQgd2l0aCBJRCAke3JlcG9ydElkfSBub3QgZm91bmRgKTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluZCB0aGUgc3BlY2lmaWMgbGF5b3V0XG4gICAgICBjb25zdCBsYXlvdXREZWZpbml0aW9uID0gcmVwb3J0RGVmaW5pdGlvbi5sYXlvdXRzLmZpbmQoKGw6IEFYUFJlcG9ydExheW91dERlZmluaXRpb24pID0+IGwuaWQgPT09IGxheW91dElkKTtcbiAgICAgIGlmICghbGF5b3V0RGVmaW5pdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYExheW91dCB3aXRoIElEICR7bGF5b3V0SWR9IG5vdCBmb3VuZCBpbiByZXBvcnQgJHtyZXBvcnRJZH1gKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2FsbCB0aGUgRXhlY3V0ZSBBUEkgZW5kcG9pbnRcbiAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vdjEvZ2xvYmFsL1JlcG9ydC1NYW5hZ2VtZW50L3JlcG9ydC9FeGVjdXRlYDtcbiAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgIHJlcG9ydElkLFxuICAgICAgICBwYXJhbWV0ZXJzLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZXhlY3V0ZVJlc3VsdDogQVhQRXhlY3V0ZVJlcG9ydER0byA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wb3N0PEFYUEV4ZWN1dGVSZXBvcnREdG8+KHVybCwgYm9keSkpO1xuXG4gICAgICAvLyBDb252ZXJ0IEV4ZWN1dGVSZXBvcnREdG8gdG8gQVhQRXhlY3V0aW9uUmVwb3J0UmVzdWx0IGZvcm1hdFxuICAgICAgbGV0IGV4ZWN1dGlvblJlc3VsdDogQVhQRXhlY3V0aW9uUmVwb3J0UmVzdWx0O1xuXG4gICAgICBpZiAoZXhlY3V0ZVJlc3VsdC50eXBlID09PSAndGFibGUnKSB7XG4gICAgICAgIGV4ZWN1dGlvblJlc3VsdCA9IHtcbiAgICAgICAgICB0eXBlOiAndGFibGUnLFxuICAgICAgICAgIGl0ZW1zOiBleGVjdXRlUmVzdWx0Lml0ZW1zLFxuICAgICAgICAgIHRvdGFsOiBleGVjdXRlUmVzdWx0LnRvdGFsQ291bnQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGV4ZWN1dGVSZXN1bHQudHlwZSA9PT0gJ2NoYXJ0Jykge1xuICAgICAgICBleGVjdXRpb25SZXN1bHQgPSB7XG4gICAgICAgICAgdHlwZTogJ2NoYXJ0JyxcbiAgICAgICAgICBkYXRhOiBleGVjdXRlUmVzdWx0Lml0ZW1zWzBdIHx8IHt9LFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChleGVjdXRlUmVzdWx0LnR5cGUgPT09ICdjYXJkcycpIHtcbiAgICAgICAgZXhlY3V0aW9uUmVzdWx0ID0ge1xuICAgICAgICAgIHR5cGU6ICdjYXJkcycsXG4gICAgICAgICAgaXRlbXM6IGV4ZWN1dGVSZXN1bHQuaXRlbXMsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleGVjdXRpb25SZXN1bHQgPSB7XG4gICAgICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgZGF0YTogZXhlY3V0ZVJlc3VsdC5pdGVtcyxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gUmV0dXJuIHRoZSBjb21iaW5lZCBsYXlvdXQgY29uZmlndXJhdGlvbiBhbmQgZGF0YVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIC4uLmxheW91dERlZmluaXRpb24ubGF5b3V0LFxuICAgICAgICAgIGRhdGE6IGV4ZWN1dGlvblJlc3VsdCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV4ZWN1dGluZyByZXBvcnQ6JywgZXJyb3IpO1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcic7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHR5cGU6ICdlcnJvcicgYXMgY29uc3QsXG4gICAgICAgICAgdGV4dDogYEZhaWxlZCB0byBleGVjdXRlIHJlcG9ydDogJHtlcnJvck1lc3NhZ2V9YCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0="],"names":[],"mappings":"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"}
|