@techextensor/tab-core-utility 2.2.193 → 2.2.194
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/index.mjs +1 -6
- package/esm2022/lib/tab-core-utility/app/constants/api-constants.mjs +22 -38
- package/esm2022/lib/tab-core-utility/app/constants/common.mjs +50 -14
- package/esm2022/lib/tab-core-utility/app/constants/storage-constants.mjs +2 -2
- package/esm2022/lib/tab-core-utility/app/crud/tab-blueprint.service.mjs +14 -41
- package/esm2022/lib/tab-core-utility/app/crud/tab-crud.service.mjs +68 -47
- package/esm2022/lib/tab-core-utility/app/crud/tab-delete.service.mjs +30 -84
- package/esm2022/lib/tab-core-utility/app/crud/tab-formio.service.mjs +12 -141
- package/esm2022/lib/tab-core-utility/app/crud/tab-get.service.mjs +42 -137
- package/esm2022/lib/tab-core-utility/app/crud/tab-insert.service.mjs +38 -89
- package/esm2022/lib/tab-core-utility/app/crud/tab-update.service.mjs +128 -156
- package/esm2022/lib/tab-core-utility/app/enums/query.enum.mjs +7 -7
- package/esm2022/lib/tab-core-utility/app/helpers/common/app.helpers.mjs +23 -28
- package/esm2022/lib/tab-core-utility/app/helpers/common/dsq.helpers.mjs +11 -9
- package/esm2022/lib/tab-core-utility/app/helpers/common/meta-data.helpers.mjs +13 -13
- package/esm2022/lib/tab-core-utility/app/helpers/common/req-res.helpers.mjs +45 -7
- package/esm2022/lib/tab-core-utility/app/helpers/common/where-clause.helpers.mjs +76 -79
- package/esm2022/lib/tab-core-utility/app/helpers/screen/grid.helpers.mjs +4 -8
- package/esm2022/lib/tab-core-utility/app/helpers/screen/screen.helpers.mjs +33 -8
- package/esm2022/lib/tab-core-utility/app/interfaces/auth.interface.mjs +1 -1
- package/esm2022/lib/tab-core-utility/app/interfaces/common.interface.mjs +1 -1
- package/esm2022/lib/tab-core-utility/app/models/api-query.class.mjs +1 -39
- package/esm2022/lib/tab-core-utility/app/models/app-field.model.mjs +7 -36
- package/esm2022/lib/tab-core-utility/app/models/app-object.model.mjs +47 -84
- package/esm2022/lib/tab-core-utility/app/models/app-screen.model.mjs +13 -24
- package/esm2022/lib/tab-core-utility/app/models/data-source-query.model.mjs +23 -57
- package/esm2022/lib/tab-core-utility/app/models/filter.model.mjs +10 -21
- package/esm2022/lib/tab-core-utility/app/models/parameter.model.mjs +6 -12
- package/esm2022/lib/tab-core-utility/app/models/sort.model.mjs +4 -11
- package/esm2022/lib/tab-core-utility/app/utils/json.util.mjs +16 -17
- package/esm2022/lib/tab-core-utility/app/utils/req-res.util.mjs +55 -1
- package/esm2022/lib/tab-core-utility/app/utils/tab-app.util.mjs +164 -1
- package/esm2022/lib/tab-core-utility/auth/auth.service.mjs +11 -36
- package/esm2022/lib/tab-core-utility/core/http-client/api.service.mjs +1 -78
- package/index.d.ts +0 -5
- package/lib/tab-core-utility/app/constants/api-constants.d.ts +18 -25
- package/lib/tab-core-utility/app/constants/common.d.ts +0 -9
- package/lib/tab-core-utility/app/constants/storage-constants.d.ts +1 -1
- package/lib/tab-core-utility/app/crud/tab-blueprint.service.d.ts +8 -14
- package/lib/tab-core-utility/app/crud/tab-crud.service.d.ts +7 -9
- package/lib/tab-core-utility/app/crud/tab-delete.service.d.ts +10 -20
- package/lib/tab-core-utility/app/crud/tab-formio.service.d.ts +6 -33
- package/lib/tab-core-utility/app/crud/tab-get.service.d.ts +8 -50
- package/lib/tab-core-utility/app/crud/tab-insert.service.d.ts +21 -16
- package/lib/tab-core-utility/app/crud/tab-update.service.d.ts +19 -34
- package/lib/tab-core-utility/app/enums/query.enum.d.ts +6 -3
- package/lib/tab-core-utility/app/helpers/common/app.helpers.d.ts +8 -5
- package/lib/tab-core-utility/app/helpers/common/dsq.helpers.d.ts +0 -3
- package/lib/tab-core-utility/app/helpers/common/meta-data.helpers.d.ts +3 -3
- package/lib/tab-core-utility/app/helpers/common/req-res.helpers.d.ts +51 -7
- package/lib/tab-core-utility/app/helpers/common/where-clause.helpers.d.ts +0 -1
- package/lib/tab-core-utility/app/helpers/screen/grid.helpers.d.ts +1 -2
- package/lib/tab-core-utility/app/helpers/screen/screen.helpers.d.ts +0 -1
- package/lib/tab-core-utility/app/interfaces/auth.interface.d.ts +1 -1
- package/lib/tab-core-utility/app/interfaces/common.interface.d.ts +6 -56
- package/lib/tab-core-utility/app/models/api-query.class.d.ts +9 -54
- package/lib/tab-core-utility/app/models/app-field.model.d.ts +2 -4
- package/lib/tab-core-utility/app/models/app-object.model.d.ts +3 -5
- package/lib/tab-core-utility/app/models/app-screen.model.d.ts +2 -2
- package/lib/tab-core-utility/app/models/data-source-query.model.d.ts +2 -7
- package/lib/tab-core-utility/app/models/filter.model.d.ts +2 -2
- package/lib/tab-core-utility/app/models/parameter.model.d.ts +2 -2
- package/lib/tab-core-utility/app/models/sort.model.d.ts +1 -1
- package/lib/tab-core-utility/app/utils/json.util.d.ts +2 -3
- package/lib/tab-core-utility/app/utils/req-res.util.d.ts +9 -1
- package/lib/tab-core-utility/app/utils/tab-app.util.d.ts +61 -0
- package/lib/tab-core-utility/auth/auth.service.d.ts +0 -6
- package/lib/tab-core-utility/core/http-client/api.service.d.ts +0 -46
- package/package.json +2 -3
- package/esm2022/lib/tab-core-utility/app/helpers/auth-response.adapter.mjs +0 -79
- package/esm2022/lib/tab-core-utility/app/helpers/login-response.adapter.mjs +0 -76
- package/esm2022/lib/tab-core-utility/app/helpers/response.adapter.mjs +0 -38
- package/esm2022/lib/tab-core-utility/app/helpers/transition-response.adapter.mjs +0 -83
- package/esm2022/lib/tab-core-utility/app/interfaces/signalr.interface.mjs +0 -42
- package/esm2022/lib/tab-core-utility/core/service/signalr/operation-tracker.service.mjs +0 -90
- package/esm2022/lib/tab-core-utility/core/service/signalr/signalr-infrastructure.service.mjs +0 -268
- package/esm2022/lib/tab-core-utility/core/service/signalr/signalr.service.mjs +0 -207
- package/lib/tab-core-utility/app/helpers/auth-response.adapter.d.ts +0 -32
- package/lib/tab-core-utility/app/helpers/login-response.adapter.d.ts +0 -29
- package/lib/tab-core-utility/app/helpers/response.adapter.d.ts +0 -22
- package/lib/tab-core-utility/app/helpers/transition-response.adapter.d.ts +0 -30
- package/lib/tab-core-utility/app/interfaces/signalr.interface.d.ts +0 -84
- package/lib/tab-core-utility/core/service/signalr/operation-tracker.service.d.ts +0 -40
- package/lib/tab-core-utility/core/service/signalr/signalr-infrastructure.service.d.ts +0 -73
- package/lib/tab-core-utility/core/service/signalr/signalr.service.d.ts +0 -122
|
@@ -1,4 +1,90 @@
|
|
|
1
|
+
import { Common } from '../constants/common';
|
|
1
2
|
import { deleteKeyFromResponse } from './req-res.util';
|
|
3
|
+
/** Get the DataSourceQuery ID from the selected AppObject's DataSourceQuery array
|
|
4
|
+
* @param dsqList - The list of DataSourceQueries
|
|
5
|
+
* @param table - The table name
|
|
6
|
+
* @param like - The like string
|
|
7
|
+
* @returns string - The ID of the DataSourceQuery
|
|
8
|
+
*/
|
|
9
|
+
export function getDsqIdfromSelectedAppObjectDSQArray(dsqList, table, like) {
|
|
10
|
+
if (dsqList) {
|
|
11
|
+
const matchName = like + '_' + table;
|
|
12
|
+
const result = dsqList.find((d) => d.QueryName === matchName);
|
|
13
|
+
return result?.ID;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** Get the AppObject based on the provided ID
|
|
17
|
+
* @param id - The ID of the AppObject
|
|
18
|
+
* @returns AppObject | null - The found AppObject or null
|
|
19
|
+
*/
|
|
20
|
+
export function getAppObject(id) {
|
|
21
|
+
const tabData = Common.tabJson;
|
|
22
|
+
return (tabData?.AppObjects.find((t) => t.ID === id?.toLowerCase()) || null);
|
|
23
|
+
}
|
|
24
|
+
// function waitForData(timeout = 5000): Promise<void> {
|
|
25
|
+
// return new Promise((resolve, reject) => {
|
|
26
|
+
// const interval = 100; // Check every 100ms
|
|
27
|
+
// let waited = 0;
|
|
28
|
+
// const checkData = () => {
|
|
29
|
+
// if (Common.tabJson) {
|
|
30
|
+
// resolve();
|
|
31
|
+
// } else if (waited >= timeout) {
|
|
32
|
+
// reject(new Error('Timeout waiting for Common.tabJson'));
|
|
33
|
+
// } else {
|
|
34
|
+
// waited += interval;
|
|
35
|
+
// setTimeout(checkData, interval);
|
|
36
|
+
// }
|
|
37
|
+
// };
|
|
38
|
+
// checkData();
|
|
39
|
+
// });
|
|
40
|
+
// }
|
|
41
|
+
/**
|
|
42
|
+
* Get the AppObject from the DataSourceQuery ID
|
|
43
|
+
* @param dsqId - The DataSourceQuery ID
|
|
44
|
+
* @returns AppObject | null - The found AppObject or null
|
|
45
|
+
*/
|
|
46
|
+
export function getAppObjectFromDataSourceQueryID(dsqId) {
|
|
47
|
+
const tabData = Common.tabJson;
|
|
48
|
+
if (!dsqId || !tabData) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
for (const appObject of tabData.AppObjects) {
|
|
52
|
+
const dsq = appObject.DataSourceQueries.find((l) => l.ID === dsqId?.toLowerCase());
|
|
53
|
+
if (dsq) {
|
|
54
|
+
return appObject;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get the DataSourceQuery ID from the QueryName and table
|
|
61
|
+
* @param table - The table name
|
|
62
|
+
* @param dsq - The DataSourceQuery name
|
|
63
|
+
* @returns any - The found DataSourceQuery
|
|
64
|
+
*/
|
|
65
|
+
export function getDsqIDFromQueryName(table, dsq) {
|
|
66
|
+
const appObjectList = getAppObjectFromSystemDBTableName(table);
|
|
67
|
+
return appObjectList?.DataSourceQueries.find((d) => d.QueryName === dsq);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get the Data from the DataSourceQuery ID
|
|
71
|
+
*
|
|
72
|
+
* @param dsqId - The DataSourceQuery ID
|
|
73
|
+
* @returns any - The found Data
|
|
74
|
+
*/
|
|
75
|
+
export function getDataFromDataSourceQueryID(dsqId) {
|
|
76
|
+
const tabData = Common.tabJson;
|
|
77
|
+
if (!tabData) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
for (const appObject of tabData.AppObjects) {
|
|
81
|
+
const DSQ = appObject.DataSourceQueries.find((l) => l.ID === dsqId?.toLowerCase());
|
|
82
|
+
if (DSQ) {
|
|
83
|
+
return DSQ;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
2
88
|
/**
|
|
3
89
|
* Synchronize AppObject fields with the response
|
|
4
90
|
*
|
|
@@ -16,4 +102,81 @@ export function syncAppObjectFields(response, appObject) {
|
|
|
16
102
|
}
|
|
17
103
|
return response;
|
|
18
104
|
}
|
|
19
|
-
|
|
105
|
+
/**
|
|
106
|
+
* Get the AppObject based on the SystemDBTableName
|
|
107
|
+
*
|
|
108
|
+
* @param tableName - The SystemDBTableName
|
|
109
|
+
* @returns AppObject | null - The found AppObject or null
|
|
110
|
+
*/
|
|
111
|
+
export function getAppObjectFromSystemDBTableName(tableName) {
|
|
112
|
+
const tabData = Common.tabJson;
|
|
113
|
+
return (tabData?.AppObjects.find((t) => t.SystemDBTableName === tableName) || null);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get the fields based on the appobjectid
|
|
117
|
+
*
|
|
118
|
+
* @param appObjectId - The appobjectid
|
|
119
|
+
* @returns AppObject | null - The found AppObject or null
|
|
120
|
+
*/
|
|
121
|
+
export function getAppfieldsFromAppObjectId(appObjectId) {
|
|
122
|
+
const tabData = Common.tabJson;
|
|
123
|
+
const findAppObject = tabData?.AppObjects.find((t) => t.ID === appObjectId) || null;
|
|
124
|
+
if (findAppObject) {
|
|
125
|
+
return findAppObject.Fields;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export function getLookupAppfieldsFromAppObjectId(appObjectId) {
|
|
132
|
+
const tabData = Common.tabJson;
|
|
133
|
+
const findAppObject = tabData?.AppObjects.find((t) => t.ID === appObjectId) || null;
|
|
134
|
+
if (findAppObject) {
|
|
135
|
+
const lookupFields = findAppObject.Fields.filter((t) => t.LookUpDetails);
|
|
136
|
+
if (lookupFields) {
|
|
137
|
+
return lookupFields;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export function getViewAppObjectDetailsFromDSQID(dsqID) {
|
|
145
|
+
const appObject = getAppObjectFromDataSourceQueryID(dsqID);
|
|
146
|
+
let viewAppObjectDetailsOfGrid = appObject;
|
|
147
|
+
// check appobject is table or view
|
|
148
|
+
if (appObject && appObject.ObjectType == 2) {
|
|
149
|
+
viewAppObjectDetailsOfGrid = getAppObject(appObject?.CRUDAppObjectId);
|
|
150
|
+
}
|
|
151
|
+
return viewAppObjectDetailsOfGrid;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Retrieves all appObjects and their DSQs in a single list
|
|
155
|
+
* suitable for tree view representation.
|
|
156
|
+
* @author : Parth B Thakkar
|
|
157
|
+
* @Usage : HTTP Request
|
|
158
|
+
* @returns Array<{ id: string; name: string; hasChildren: boolean; parentID: string | null }>
|
|
159
|
+
*/
|
|
160
|
+
export function getAllAppObjectsForTreeViewJson() {
|
|
161
|
+
const tabData = Common.tabJson;
|
|
162
|
+
const fieldData = [];
|
|
163
|
+
for (const appObject of tabData?.AppObjects || []) {
|
|
164
|
+
fieldData.push({
|
|
165
|
+
id: appObject.ID,
|
|
166
|
+
name: appObject.DisplayName,
|
|
167
|
+
hasChildren: true,
|
|
168
|
+
parentID: null,
|
|
169
|
+
});
|
|
170
|
+
// looping children
|
|
171
|
+
for (const dsq of appObject.DataSourceQueries) {
|
|
172
|
+
fieldData.push({
|
|
173
|
+
id: dsq.ID,
|
|
174
|
+
name: dsq.DisplayName,
|
|
175
|
+
hasChildren: false,
|
|
176
|
+
parentID: appObject.ID,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return fieldData.sort((a, b) => a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1);
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWFwcC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL3RhYi1hcHAudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQ7Ozs7O0dBS0c7QUFFSCxNQUFNLFVBQVUscUNBQXFDLENBQ25ELE9BQVksRUFDWixLQUFhLEVBQ2IsSUFBWTtJQUVaLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNwQixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUVILE1BQU0sVUFBVSxZQUFZLENBQUMsRUFBVTtJQUNyQyxNQUFNLE9BQU8sR0FBZSxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQzNDLE9BQU8sQ0FDTCxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQ3pFLENBQUM7QUFDSixDQUFDO0FBRUQsd0RBQXdEO0FBQ3hELDhDQUE4QztBQUM5QyxpREFBaUQ7QUFDakQsc0JBQXNCO0FBRXRCLGdDQUFnQztBQUNoQyw4QkFBOEI7QUFDOUIscUJBQXFCO0FBQ3JCLHdDQUF3QztB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QUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDckQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb24gfSBmcm9tICcuLi9jb25zdGFudHMvY29tbW9uJztcclxuaW1wb3J0IHsgQXBwT2JqZWN0IH0gZnJvbSAnLi4vbW9kZWxzL2FwcC1vYmplY3QuY2xhc3MnO1xyXG5pbXBvcnQgeyBkZWxldGVLZXlGcm9tUmVzcG9uc2UgfSBmcm9tICcuL3JlcS1yZXMudXRpbCc7XHJcblxyXG4vKiogR2V0IHRoZSBEYXRhU291cmNlUXVlcnkgSUQgZnJvbSB0aGUgc2VsZWN0ZWQgQXBwT2JqZWN0J3MgRGF0YVNvdXJjZVF1ZXJ5IGFycmF5XHJcbiAqIEBwYXJhbSBkc3FMaXN0IC0gVGhlIGxpc3Qgb2YgRGF0YVNvdXJjZVF1ZXJpZXNcclxuICogQHBhcmFtIHRhYmxlIC0gVGhlIHRhYmxlIG5hbWVcclxuICogQHBhcmFtIGxpa2UgLSBUaGUgbGlrZSBzdHJpbmdcclxuICogQHJldHVybnMgc3RyaW5nIC0gVGhlIElEIG9mIHRoZSBEYXRhU291cmNlUXVlcnlcclxuICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RHNxSWRmcm9tU2VsZWN0ZWRBcHBPYmplY3REU1FBcnJheShcclxuICBkc3FMaXN0OiBhbnksXHJcbiAgdGFibGU6IHN0cmluZyxcclxuICBsaWtlOiBzdHJpbmdcclxuKSB7XHJcbiAgaWYgKGRzcUxpc3QpIHtcclxuICAgIGNvbnN0IG1hdGNoTmFtZSA9IGxpa2UgKyAnXycgKyB0YWJsZTtcclxuICAgIGNvbnN0IHJlc3VsdCA9IGRzcUxpc3QuZmluZCgoZDogYW55KSA9PiBkLlF1ZXJ5TmFtZSA9PT0gbWF0Y2hOYW1lKTtcclxuICAgIHJldHVybiByZXN1bHQ/LklEO1xyXG4gIH1cclxufVxyXG5cclxuLyoqIEdldCB0aGUgQXBwT2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBJRFxyXG4gKiBAcGFyYW0gaWQgLSBUaGUgSUQgb2YgdGhlIEFwcE9iamVjdFxyXG4gKiBAcmV0dXJucyBBcHBPYmplY3QgfCBudWxsIC0gVGhlIGZvdW5kIEFwcE9iamVjdCBvciBudWxsXHJcbiAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcE9iamVjdChpZDogc3RyaW5nKSB7XHJcbiAgY29uc3QgdGFiRGF0YTogYW55IHwgbnVsbCA9IENvbW1vbi50YWJKc29uO1xyXG4gIHJldHVybiAoXHJcbiAgICB0YWJEYXRhPy5BcHBPYmplY3RzLmZpbmQoKHQ6IGFueSkgPT4gdC5JRCA9PT0gaWQ/LnRvTG93ZXJDYXNlKCkpIHx8IG51bGxcclxuICApO1xyXG59XHJcblxyXG4vLyBmdW5jdGlvbiB3YWl0Rm9yRGF0YSh0aW1lb3V0ID0gNTAwMCk6IFByb21pc2U8dm9pZD4ge1xyXG4vLyAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbi8vICAgICBjb25zdCBpbnRlcnZhbCA9IDEwMDsgLy8gQ2hlY2sgZXZlcnkgMTAwbXNcclxuLy8gICAgIGxldCB3YWl0ZWQgPSAwO1xyXG5cclxuLy8gICAgIGNvbnN0IGNoZWNrRGF0YSA9ICgpID0+IHtcclxuLy8gICAgICAgaWYgKENvbW1vbi50YWJKc29uKSB7XHJcbi8vICAgICAgICAgcmVzb2x2ZSgpO1xyXG4vLyAgICAgICB9IGVsc2UgaWYgKHdhaXRlZCA+PSB0aW1lb3V0KSB7XHJcbi8vICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignVGltZW91dCB3YWl0aW5nIGZvciBDb21tb24udGFiSnNvbicpKTtcclxuLy8gICAgICAgfSBlbHNlIHtcclxuLy8gICAgICAgICB3YWl0ZWQgKz0gaW50ZXJ2YWw7XHJcbi8vICAgICAgICAgc2V0VGltZW91dChjaGVja0RhdGEsIGludGVydmFsKTtcclxuLy8gICAgICAgfVxyXG4vLyAgICAgfTtcclxuXHJcbi8vICAgICBjaGVja0RhdGEoKTtcclxuLy8gICB9KTtcclxuLy8gfVxyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgQXBwT2JqZWN0IGZyb20gdGhlIERhdGFTb3VyY2VRdWVyeSBJRFxyXG4gKiBAcGFyYW0gZHNxSWQgLSBUaGUgRGF0YVNvdXJjZVF1ZXJ5IElEXHJcbiAqIEByZXR1cm5zIEFwcE9iamVjdCB8IG51bGwgLSBUaGUgZm91bmQgQXBwT2JqZWN0IG9yIG51bGxcclxuICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwT2JqZWN0RnJvbURhdGFTb3VyY2VRdWVyeUlEKGRzcUlkOiBzdHJpbmcpIHtcclxuICBjb25zdCB0YWJEYXRhOiBhbnkgPSBDb21tb24udGFiSnNvbjtcclxuICBpZiAoIWRzcUlkIHx8ICF0YWJEYXRhKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGZvciAoY29uc3QgYXBwT2JqZWN0IG9mIHRhYkRhdGEuQXBwT2JqZWN0cykge1xyXG4gICAgY29uc3QgZHNxID0gYXBwT2JqZWN0LkRhdGFTb3VyY2VRdWVyaWVzLmZpbmQoXHJcbiAgICAgIChsOiBhbnkpID0+IGwuSUQgPT09IGRzcUlkPy50b0xvd2VyQ2FzZSgpXHJcbiAgICApO1xyXG4gICAgaWYgKGRzcSkge1xyXG4gICAgICByZXR1cm4gYXBwT2JqZWN0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIERhdGFTb3VyY2VRdWVyeSBJRCBmcm9tIHRoZSBRdWVyeU5hbWUgYW5kIHRhYmxlXHJcbiAqIEBwYXJhbSB0YWJsZSAtIFRoZSB0YWJsZSBuYW1lXHJcbiAqIEBwYXJhbSBkc3EgLSBUaGUgRGF0YVNvdXJjZVF1ZXJ5IG5hbWVcclxuICogQHJldHVybnMgYW55IC0gVGhlIGZvdW5kIERhdGFTb3VyY2VRdWVyeVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERzcUlERnJvbVF1ZXJ5TmFtZSh0YWJsZTogc3RyaW5nLCBkc3E6IHN0cmluZykge1xyXG4gIGNvbnN0IGFwcE9iamVjdExpc3QgPSBnZXRBcHBPYmplY3RGcm9tU3lzdGVtREJUYWJsZU5hbWUodGFibGUpO1xyXG4gIHJldHVybiBhcHBPYmplY3RMaXN0Py5EYXRhU291cmNlUXVlcmllcy5maW5kKChkOiBhbnkpID0+IGQuUXVlcnlOYW1lID09PSBkc3EpO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBEYXRhIGZyb20gdGhlIERhdGFTb3VyY2VRdWVyeSBJRFxyXG4gKlxyXG4gKiBAcGFyYW0gZHNxSWQgLSBUaGUgRGF0YVNvdXJjZVF1ZXJ5IElEXHJcbiAqIEByZXR1cm5zIGFueSAtIFRoZSBmb3VuZCBEYXRhXHJcbiAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFGcm9tRGF0YVNvdXJjZVF1ZXJ5SUQoZHNxSWQ6IHN0cmluZykge1xyXG4gIGNvbnN0IHRhYkRhdGE6IGFueSA9IENvbW1vbi50YWJKc29uO1xyXG4gIGlmICghdGFiRGF0YSkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBmb3IgKGNvbnN0IGFwcE9iamVjdCBvZiB0YWJEYXRhLkFwcE9iamVjdHMpIHtcclxuICAgIGNvbnN0IERTUSA9IGFwcE9iamVjdC5EYXRhU291cmNlUXVlcmllcy5maW5kKFxyXG4gICAgICAobDogYW55KSA9PiBsLklEID09PSBkc3FJZD8udG9Mb3dlckNhc2UoKVxyXG4gICAgKTtcclxuICAgIGlmIChEU1EpIHtcclxuICAgICAgcmV0dXJuIERTUTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogU3luY2hyb25pemUgQXBwT2JqZWN0IGZpZWxkcyB3aXRoIHRoZSByZXNwb25zZVxyXG4gKlxyXG4gKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqIEBwYXJhbSBhcHBPYmplY3QgLSBUaGUgQXBwT2JqZWN0XHJcbiAqIEByZXR1cm5zIGFueSAtIFRoZSBzeW5jaHJvbml6ZWQgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc3luY0FwcE9iamVjdEZpZWxkcyhyZXNwb25zZTogYW55LCBhcHBPYmplY3Q6IEFwcE9iamVjdCkge1xyXG4gIGZvciAoY29uc3Qga2V5IGluIHJlc3BvbnNlKSB7XHJcbiAgICBjb25zdCBmb3VuZE9iaiA9IGFwcE9iamVjdC5GaWVsZHMuZmluZCgoZjogYW55KSA9PiBmLkZpZWxkTmFtZSA9PT0ga2V5KTtcclxuICAgIGNvbnN0IGNoaWxEYXRhID0gYXBwT2JqZWN0LkNoaWxkUmVsYXRpb25TaGlwcz8ubWFwKFxyXG4gICAgICAoeCkgPT4geC5jaGlsZERldGFpbHMuTG9va3VwT2JqZWN0XHJcbiAgICApO1xyXG4gICAgaWYgKCFmb3VuZE9iaiAmJiAhKGNoaWxEYXRhICYmIGNoaWxEYXRhLnNvbWUoKHgpID0+IHguaW5jbHVkZXMoa2V5KSkpKSB7XHJcbiAgICAgIGRlbGV0ZUtleUZyb21SZXNwb25zZShyZXNwb25zZSwga2V5KTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHJlc3BvbnNlO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBBcHBPYmplY3QgYmFzZWQgb24gdGhlIFN5c3RlbURCVGFibGVOYW1lXHJcbiAqXHJcbiAqIEBwYXJhbSB0YWJsZU5hbWUgLSBUaGUgU3lzdGVtREJUYWJsZU5hbWVcclxuICogQHJldHVybnMgQXBwT2JqZWN0IHwgbnVsbCAtIFRoZSBmb3VuZCBBcHBPYmplY3Qgb3IgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcE9iamVjdEZyb21TeXN0ZW1EQlRhYmxlTmFtZSh0YWJsZU5hbWU6IHN0cmluZykge1xyXG4gIGNvbnN0IHRhYkRhdGE6IGFueSA9IENvbW1vbi50YWJKc29uO1xyXG4gIHJldHVybiAoXHJcbiAgICB0YWJEYXRhPy5BcHBPYmplY3RzLmZpbmQoXHJcbiAgICAgICh0OiB7IFN5c3RlbURCVGFibGVOYW1lOiBzdHJpbmcgfSkgPT4gdC5TeXN0ZW1EQlRhYmxlTmFtZSA9PT0gdGFibGVOYW1lXHJcbiAgICApIHx8IG51bGxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBmaWVsZHMgYmFzZWQgb24gdGhlIGFwcG9iamVjdGlkXHJcbiAqXHJcbiAqIEBwYXJhbSBhcHBPYmplY3RJZCAtIFRoZSBhcHBvYmplY3RpZFxyXG4gKiBAcmV0dXJucyBBcHBPYmplY3QgfCBudWxsIC0gVGhlIGZvdW5kIEFwcE9iamVjdCBvciBudWxsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwZmllbGRzRnJvbUFwcE9iamVjdElkKGFwcE9iamVjdElkOiBzdHJpbmcpIHtcclxuICBjb25zdCB0YWJEYXRhOiBhbnkgPSBDb21tb24udGFiSnNvbjtcclxuICBjb25zdCBmaW5kQXBwT2JqZWN0ID1cclxuICAgIHRhYkRhdGE/LkFwcE9iamVjdHMuZmluZCgodDogYW55KSA9PiB0LklEID09PSBhcHBPYmplY3RJZCkgfHwgbnVsbDtcclxuICBpZiAoZmluZEFwcE9iamVjdCkge1xyXG4gICAgcmV0dXJuIGZpbmRBcHBPYmplY3QuRmllbGRzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb29rdXBBcHBmaWVsZHNGcm9tQXBwT2JqZWN0SWQoYXBwT2JqZWN0SWQ6IHN0cmluZykge1xyXG4gIGNvbnN0IHRhYkRhdGE6IGFueSA9IENvbW1vbi50YWJKc29uO1xyXG4gIGNvbnN0IGZpbmRBcHBPYmplY3QgPVxyXG4gICAgdGFiRGF0YT8uQXBwT2JqZWN0cy5maW5kKCh0OiBhbnkpID0+IHQuSUQgPT09IGFwcE9iamVjdElkKSB8fCBudWxsO1xyXG4gIGlmIChmaW5kQXBwT2JqZWN0KSB7XHJcbiAgICBjb25zdCBsb29rdXBGaWVsZHMgPSBmaW5kQXBwT2JqZWN0LkZpZWxkcy5maWx0ZXIoXHJcbiAgICAgICh0OiBhbnkpID0+IHQuTG9va1VwRGV0YWlsc1xyXG4gICAgKTtcclxuICAgIGlmIChsb29rdXBGaWVsZHMpIHtcclxuICAgICAgcmV0dXJuIGxvb2t1cEZpZWxkcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld0FwcE9iamVjdERldGFpbHNGcm9tRFNRSUQoZHNxSUQ6IHN0cmluZykge1xyXG4gIGNvbnN0IGFwcE9iamVjdCA9IGdldEFwcE9iamVjdEZyb21EYXRhU291cmNlUXVlcnlJRChkc3FJRCk7XHJcbiAgbGV0IHZpZXdBcHBPYmplY3REZXRhaWxzT2ZHcmlkID0gYXBwT2JqZWN0O1xyXG4gIC8vIGNoZWNrIGFwcG9iamVjdCBpcyB0YWJsZSBvciB2aWV3XHJcbiAgaWYgKGFwcE9iamVjdCAmJiBhcHBPYmplY3QuT2JqZWN0VHlwZSA9PSAyKSB7XHJcbiAgICB2aWV3QXBwT2JqZWN0RGV0YWlsc09mR3JpZCA9IGdldEFwcE9iamVjdChhcHBPYmplY3Q/LkNSVURBcHBPYmplY3RJZCk7XHJcbiAgfVxyXG4gIHJldHVybiB2aWV3QXBwT2JqZWN0RGV0YWlsc09mR3JpZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHJpZXZlcyBhbGwgYXBwT2JqZWN0cyBhbmQgdGhlaXIgRFNRcyBpbiBhIHNpbmdsZSBsaXN0XHJcbiAqIHN1aXRhYmxlIGZvciB0cmVlIHZpZXcgcmVwcmVzZW50YXRpb24uXHJcbiAqIEBhdXRob3IgOiBQYXJ0aCBCIFRoYWtrYXJcclxuICogQFVzYWdlIDogSFRUUCBSZXF1ZXN0XHJcbiAqIEByZXR1cm5zIEFycmF5PHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBoYXNDaGlsZHJlbjogYm9vbGVhbjsgcGFyZW50SUQ6IHN0cmluZyB8IG51bGwgfT5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxBcHBPYmplY3RzRm9yVHJlZVZpZXdKc29uKCkge1xyXG4gIGNvbnN0IHRhYkRhdGEgPSBDb21tb24udGFiSnNvbjtcclxuXHJcbiAgY29uc3QgZmllbGREYXRhOiBBcnJheTx7XHJcbiAgICBpZDogc3RyaW5nOyAvLyBVVUlEIGFzIGEgc3RyaW5nXHJcbiAgICBuYW1lOiBzdHJpbmc7IC8vIE5hbWUgb2YgdGhlIG5vZGVcclxuICAgIGhhc0NoaWxkcmVuOiBib29sZWFuOyAvLyBXaGV0aGVyIHRoZSBub2RlIGhhcyBjaGlsZHJlblxyXG4gICAgcGFyZW50SUQ6IHN0cmluZyB8IG51bGw7IC8vIFBhcmVudCBJRCBpZiBhcHBsaWNhYmxlLCBvdGhlcndpc2UgbnVsbFxyXG4gIH0+ID0gW107XHJcbiAgZm9yIChjb25zdCBhcHBPYmplY3Qgb2YgdGFiRGF0YT8uQXBwT2JqZWN0cyB8fCBbXSkge1xyXG4gICAgZmllbGREYXRhLnB1c2goe1xyXG4gICAgICBpZDogYXBwT2JqZWN0LklELFxyXG4gICAgICBuYW1lOiBhcHBPYmplY3QuRGlzcGxheU5hbWUsXHJcbiAgICAgIGhhc0NoaWxkcmVuOiB0cnVlLFxyXG4gICAgICBwYXJlbnRJRDogbnVsbCxcclxuICAgIH0pO1xyXG4gICAgLy8gbG9vcGluZyBjaGlsZHJlblxyXG4gICAgZm9yIChjb25zdCBkc3Egb2YgYXBwT2JqZWN0LkRhdGFTb3VyY2VRdWVyaWVzKSB7XHJcbiAgICAgIGZpZWxkRGF0YS5wdXNoKHtcclxuICAgICAgICBpZDogZHNxLklELFxyXG4gICAgICAgIG5hbWU6IGRzcS5EaXNwbGF5TmFtZSxcclxuICAgICAgICBoYXNDaGlsZHJlbjogZmFsc2UsXHJcbiAgICAgICAgcGFyZW50SUQ6IGFwcE9iamVjdC5JRCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBmaWVsZERhdGEuc29ydCgoYSwgYikgPT5cclxuICAgIGEubmFtZS50b0xvd2VyQ2FzZSgpID4gYi5uYW1lLnRvTG93ZXJDYXNlKCkgPyAxIDogLTFcclxuICApO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
3
2
|
import { ApiService } from '../core/http-client/api.service';
|
|
4
|
-
import { getHeaders } from '../app/utils/req-res.util';
|
|
5
|
-
import { API
|
|
6
|
-
import { AuthResponseAdapter } from '../app/helpers/auth-response.adapter';
|
|
7
|
-
import { LoginResponseAdapter } from '../app/helpers/login-response.adapter';
|
|
3
|
+
import { getFormDataHeaders, getHeaders } from '../app/utils/req-res.util';
|
|
4
|
+
import { API } from '../app/constants/api-constants';
|
|
8
5
|
import * as i0 from "@angular/core";
|
|
9
6
|
export class AuthService {
|
|
10
7
|
constructor() {
|
|
@@ -13,6 +10,9 @@ export class AuthService {
|
|
|
13
10
|
*/
|
|
14
11
|
this.apiService = inject(ApiService);
|
|
15
12
|
}
|
|
13
|
+
// -----------------------------------------------------------------------------------------------------
|
|
14
|
+
// @ Public methods
|
|
15
|
+
// -----------------------------------------------------------------------------------------------------
|
|
16
16
|
// /**
|
|
17
17
|
// * Fetch user details from the database
|
|
18
18
|
// *
|
|
@@ -28,7 +28,7 @@ export class AuthService {
|
|
|
28
28
|
* @returns Observable<CommonApiResponse> - An observable of CommonApiResponse
|
|
29
29
|
*/
|
|
30
30
|
signIn(credentials) {
|
|
31
|
-
return this.apiService.
|
|
31
|
+
return this.apiService.post(API.login, credentials);
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Register tenant
|
|
@@ -41,41 +41,16 @@ export class AuthService {
|
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Register a new user
|
|
44
|
-
* Uses new identity service endpoint: POST auth/register
|
|
45
44
|
* @param credentials - The new user's credentials
|
|
46
45
|
* @param headers - The headers
|
|
47
46
|
* @returns Observable<CommonApiResponse> - An observable of CommonApiResponse
|
|
48
47
|
*/
|
|
49
48
|
register(credentials, headers) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Transforms register request payload from PascalCase to camelCase for new identity service.
|
|
56
|
-
* { FirstName, LastName, Email, Password, ... } → { firstName, lastName, email, password, ... }
|
|
57
|
-
*/
|
|
58
|
-
transformRegisterRequest(data) {
|
|
59
|
-
if (!data)
|
|
60
|
-
return data;
|
|
61
|
-
// If data already has camelCase keys, skip transform
|
|
62
|
-
if (data.email && !data.Email)
|
|
63
|
-
return data;
|
|
64
|
-
const fieldMap = {
|
|
65
|
-
FirstName: 'firstName',
|
|
66
|
-
LastName: 'lastName',
|
|
67
|
-
Email: 'email',
|
|
68
|
-
Password: 'password',
|
|
69
|
-
PhoneNumber: 'phoneNumber',
|
|
70
|
-
IsEnabled: 'isEnabled',
|
|
71
|
-
Role: 'role',
|
|
72
|
-
Username: 'username',
|
|
73
|
-
};
|
|
74
|
-
const transformed = {};
|
|
75
|
-
for (const key of Object.keys(data)) {
|
|
76
|
-
transformed[fieldMap[key] || key] = data[key];
|
|
49
|
+
if (!headers) {
|
|
50
|
+
// Get the headers for FormData
|
|
51
|
+
headers = getFormDataHeaders();
|
|
77
52
|
}
|
|
78
|
-
return
|
|
53
|
+
return this.apiService.post(API.registerUser, credentials, headers);
|
|
79
54
|
}
|
|
80
55
|
// /**
|
|
81
56
|
// * Forgot password
|
|
@@ -140,4 +115,4 @@ export class AuthService {
|
|
|
140
115
|
type: Injectable,
|
|
141
116
|
args: [{ providedIn: 'root' }]
|
|
142
117
|
}], null, null); })();
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXV0aC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVXJDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFHN0UsTUFBTSxPQUFPLFdBQVc7SUFEeEI7UUFFRTs7V0FFRztRQUNjLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FzSmxEO0lBcEpDLE1BQU07SUFDTiwwQ0FBMEM7SUFDMUMsS0FBSztJQUNMLG9FQUFvRTtJQUNwRSx1RUFBdUU7SUFDdkUsTUFBTTtJQUNOLHlEQUF5RDtJQUN6RCw0REFBNEQ7SUFDNUQsSUFBSTtJQUVKOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsV0FBNkI7UUFDbEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FDbEMsV0FBVyxDQUFDLGVBQWUsRUFDM0IsR0FBRyxDQUFDLEtBQUssRUFDVCxXQUFXLENBQ1osQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENB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QUUsT0FBTyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsY0FBYyxDQUFDLElBQXdCLEVBQUUsT0FBYTtRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLEdBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUF3QyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RyxDQUFDOzRFQXpKVSxXQUFXO3VFQUFYLFdBQVcsV0FBWCxXQUFXLG1CQURFLE1BQU07O2lGQUNuQixXQUFXO2NBRHZCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlUGFzc3dvcmRVc2VyUmVxdWVzdCxcclxuICBMb2dpblVzZXJSZXF1ZXN0LFxyXG4gIE5ld1VzZXJSZXF1ZXN0LFxyXG4gIFJlZnJlc2hUb2tlblJlcXVlc3QsXHJcbiAgUmVnaXN0ZXJUZW5hbnQsXHJcbiAgUmVzZXRQYXNzd29yZFVzZXJSZXF1ZXN0LFxyXG4gIFVzZXJEZXRhaWxzUmVxdWVzdCxcclxufSBmcm9tICcuLi9hcHAvaW50ZXJmYWNlcy9hdXRoLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uQXBpUmVzcG9uc2UgfSBmcm9tICcuLi9hcHAvaW50ZXJmYWNlcy9jb21tb24uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgZ2V0SGVhZGVycyB9IGZyb20gJy4uL2FwcC91dGlscy9yZXEtcmVzLnV0aWwnO1xyXG5pbXBvcnQgeyBBUEksIEFQSVNlcnZpY2VzIH0gZnJvbSAnLi4vYXBwL2NvbnN0YW50cy9hcGktY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQXV0aFJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4uL2FwcC9oZWxwZXJzL2F1dGgtcmVzcG9uc2UuYWRhcHRlcic7XHJcbmltcG9ydCB7IExvZ2luUmVzcG9uc2VBZGFwdGVyIH0gZnJvbSAnLi4vYXBwL2hlbHBlcnMvbG9naW4tcmVzcG9uc2UuYWRhcHRlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIEluamVjdGluZyByZXF1aXJlZCBzZXJ2aWNlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpU2VydmljZSA9IGluamVjdChBcGlTZXJ2aWNlKTtcclxuXHJcbiAgLy8gLyoqXHJcbiAgLy8gICogRmV0Y2ggdXNlciBkZXRhaWxzIGZyb20gdGhlIGRhdGFiYXNlXHJcbiAgLy8gICpcclxuICAvLyAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIC0gVGhlIEVuZCBQb2ludCBOYW1lIHRvIGZldGNoIHVzZXIgZGV0YWlsc1xyXG4gIC8vICAqIEByZXR1cm5zIE9ic2VydmFibGU8VXNlclJlc3BvbnNlPiAtIEFuIG9ic2VydmFibGUgb2YgVXNlclJlc3BvbnNlXHJcbiAgLy8gICovXHJcbiAgLy8gdXNlcihlbmRQb2ludE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlclJlc3BvbnNlPiB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldDxVc2VyUmVzcG9uc2U+KGVuZFBvaW50TmFtZSk7XHJcbiAgLy8gfVxyXG5cclxuICAvKipcclxuICAgKiBTaWduIGluIHdpdGggcHJvdmlkZWQgY3JlZGVudGlhbHNcclxuICAgKiBAcGFyYW0gY3JlZGVudGlhbHMgLSBUaGUgbG9naW4gY3JlZGVudGlhbHNcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiAtIEFuIG9ic2VydmFibGUgb2YgQ29tbW9uQXBpUmVzcG9uc2VcclxuICAgKi9cclxuICBzaWduSW4oY3JlZGVudGlhbHM6IExvZ2luVXNlclJlcXVlc3QpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3RUb1NlcnZpY2U8Q29tbW9uQXBpUmVzcG9uc2UsIExvZ2luVXNlclJlcXVlc3Q+KFxyXG4gICAgICBBUElTZXJ2aWNlcy5pZGVudGl0eVNlcnZpY2UsXHJcbiAgICAgIEFQSS5sb2dpbixcclxuICAgICAgY3JlZGVudGlhbHNcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IExvZ2luUmVzcG9uc2VBZGFwdGVyLm5vcm1hbGl6ZShyZXNwb25zZSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXIgdGVuYW50XHJcbiAgICogQHBhcmFtIGNyZWRlbnRpYWxzIC0gVGhlIGNyZWRlbnRpYWxzXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT5cclxuICAgKi9cclxuICByZWdpc3RlclRlbmFudChjcmVkZW50aWFsczogUmVnaXN0ZXJUZW5hbnQpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7ICAgICAgXHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0PENvbW1vbkFwaVJlc3BvbnNlLCBSZWdpc3RlclRlbmFudD4oXHJcbiAgICAgIEFQSS5SZWdpc3RlclRlbmFudCxcclxuICAgICAgY3JlZGVudGlhbHMsXHJcbiAgICAgIGhlYWRlcnNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RlciBhIG5ldyB1c2VyXHJcbiAgICogVXNlcyBuZXcgaWRlbnRpdHkgc2VydmljZSBlbmRwb2ludDogUE9TVCBhdXRoL3JlZ2lzdGVyXHJcbiAgICogQHBhcmFtIGNyZWRlbnRpYWxzIC0gVGhlIG5ldyB1c2VyJ3MgY3JlZGVudGlhbHNcclxuICAgKiBAcGFyYW0gaGVhZGVycyAtIFRoZSBoZWFkZXJzXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4gLSBBbiBvYnNlcnZhYmxlIG9mIENvbW1vbkFwaVJlc3BvbnNlXHJcbiAgICovXHJcbiAgcmVnaXN0ZXIoY3JlZGVudGlhbHM6IE5ld1VzZXJSZXF1ZXN0LCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgaGVhZGVycyA9IGdldEhlYWRlcnMoaGVhZGVycyk7XHJcbiAgICBjb25zdCB0cmFuc2Zvcm1lZFBheWxvYWQgPSB0aGlzLnRyYW5zZm9ybVJlZ2lzdGVyUmVxdWVzdChjcmVkZW50aWFscyk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3RUb1NlcnZpY2UoXHJcbiAgICAgIEFQSVNlcnZpY2VzLmlkZW50aXR5U2VydmljZSxcclxuICAgICAgQVBJLmF1dGhSZWdpc3RlclVzZXIsXHJcbiAgICAgIHRyYW5zZm9ybWVkUGF5bG9hZCxcclxuICAgICAgaGVhZGVyc1xyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gQXV0aFJlc3BvbnNlQWRhcHRlci5ub3JtYWxpemUocmVzcG9uc2UpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYW5zZm9ybXMgcmVnaXN0ZXIgcmVxdWVzdCBwYXlsb2FkIGZyb20gUGFzY2FsQ2FzZSB0byBjYW1lbENhc2UgZm9yIG5ldyBpZGVudGl0eSBzZXJ2aWNlLlxyXG4gICAqIHsgRmlyc3ROYW1lLCBMYXN0TmFtZSwgRW1haWwsIFBhc3N3b3JkLCAuLi4gfSDihpIgeyBmaXJzdE5hbWUsIGxhc3ROYW1lLCBlbWFpbCwgcGFzc3dvcmQsIC4uLiB9XHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1SZWdpc3RlclJlcXVlc3QoZGF0YTogYW55KTogYW55IHtcclxuICAgIGlmICghZGF0YSkgcmV0dXJuIGRhdGE7XHJcblxyXG4gICAgLy8gSWYgZGF0YSBhbHJlYWR5IGhhcyBjYW1lbENhc2Uga2V5cywgc2tpcCB0cmFuc2Zvcm1cclxuICAgIGlmIChkYXRhLmVtYWlsICYmICFkYXRhLkVtYWlsKSByZXR1cm4gZGF0YTtcclxuXHJcbiAgICBjb25zdCBmaWVsZE1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcclxuICAgICAgRmlyc3ROYW1lOiAnZmlyc3ROYW1lJyxcclxuICAgICAgTGFzdE5hbWU6ICdsYXN0TmFtZScsXHJcbiAgICAgIEVtYWlsOiAnZW1haWwnLFxyXG4gICAgICBQYXNzd29yZDogJ3Bhc3N3b3JkJyxcclxuICAgICAgUGhvbmVOdW1iZXI6ICdwaG9uZU51bWJlcicsXHJcbiAgICAgIElzRW5hYmxlZDogJ2lzRW5hYmxlZCcsXHJcbiAgICAgIFJvbGU6ICdyb2xlJyxcclxuICAgICAgVXNlcm5hbWU6ICd1c2VybmFtZScsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHRyYW5zZm9ybWVkOiBhbnkgPSB7fTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGEpKSB7XHJcbiAgICAgIHRyYW5zZm9ybWVkW2ZpZWxkTWFwW2tleV0gfHwga2V5XSA9IGRhdGFba2V5XTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cmFuc2Zvcm1lZDtcclxuICB9XHJcblxyXG4gIC8vIC8qKlxyXG4gIC8vICAqIEZvcmdvdCBwYXNzd29yZFxyXG4gIC8vICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgLSBUaGUgRW5kIFBvaW50IE5hbWUgb2YgQVBJXHJcbiAgLy8gICogQHBhcmFtIGVtYWlsIC0gVGhlIGVtYWlsIG9mIHVzZXJcclxuICAvLyAgKi9cclxuICAvLyBmb3Jnb3RQYXNzd29yZChcclxuICAvLyAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gIC8vICAgZW1haWw6IEZvcmdvdFBhc3N3b3JkVXNlclJlcXVlc3RcclxuICAvLyApOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPiB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoZW5kUG9pbnROYW1lLCBlbWFpbCk7XHJcbiAgLy8gfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCBQYXNzd29yZFxyXG4gICAqIEBwYXJhbSBkYXRhIC0gRGF0YSBmb3IgcmVzZXR0aW5nIHBhc3N3b3JkXHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgcmVzZXRQYXNzd29yZChkYXRhOiBSZXNldFBhc3N3b3JkVXNlclJlcXVlc3QpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0PENvbW1vbkFwaVJlc3BvbnNlLCBSZXNldFBhc3N3b3JkVXNlclJlcXVlc3Q+KEFQSS5yZXN0cGFzc3dvcmQsIGRhdGEsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBDaGFuZ2UgUGFzc3dvcmRcclxuICAqIEBwYXJhbSBkYXRhIC0gRGF0YSBmb3IgY2hhbmdpbmcgcGFzc3dvcmRcclxuICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICovXHJcbiAgY2hhbmdlUGFzc3dvcmQoZGF0YTogQ2hhbmdlUGFzc3dvcmRVc2VyUmVxdWVzdCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLmNoYW5nZVBhc3N3b3JkLCBkYXRhLCBoZWFkZXJzKTtcclxuICB9XHJcblxyXG4gIC8vIC8qKlxyXG4gIC8vICAqIExvZ291dCBjdXJyZW50IHNlc3Npb25cclxuICAvLyAgKi9cclxuICAvLyBsb2dvdXQoa2V5OiBzdHJpbmcpIHtcclxuICAvLyAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVMb2NhbFN0b3JhZ2Uoa2V5KTtcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlZnJlc2hlcyB0aGUgYWNjZXNzIHRva2VuIHVzaW5nIHRoZSByZWZyZXNoIHRva2VuXHJcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgcmVmcmVzaCB0b2tlbiByZXF1ZXN0IGRhdGFcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiAtIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIHJlZnJlc2hUb2tlbihkYXRhOiBSZWZyZXNoVG9rZW5SZXF1ZXN0KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdDxDb21tb25BcGlSZXNwb25zZSwgUmVmcmVzaFRva2VuUmVxdWVzdD4oQVBJLnJlZnJlc2hUb2tlbiwgZGF0YSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHVzZXIgZGV0YWlscyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgaWRlbnRpdHlcclxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSB1c2VyIGRldGFpbHMgcmVxdWVzdCBkYXRhXHJcbiAgICogQHBhcmFtIGhlYWRlcnMgLSBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IC0gQW4gb2JzZXJ2YWJsZSBvZiB0aGUgdXNlciBkZXRhaWxzXHJcbiAgICovXHJcbiAgZ2V0VXNlckRldGFpbHMoZGF0YTogVXNlckRldGFpbHNSZXF1ZXN0LCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgaWYgKCFoZWFkZXJzKSB7XHJcbiAgICAgICBoZWFkZXJzID1nZXRIZWFkZXJzKGhlYWRlcnMpO1xyXG4gICAgfSBcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdDxDb21tb25BcGlSZXNwb25zZSwgVXNlckRldGFpbHNSZXF1ZXN0PihBUEkuZ2V0VXNlckRldGFpbHMsIGRhdGEsIGhlYWRlcnMpO1xyXG4gIH1cclxufSJdfQ==
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXV0aC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFXbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBR3JELE1BQU0sT0FBTyxXQUFXO0lBRHhCO1FBRUU7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBcUhsRDtJQW5IQyx3R0FBd0c7SUFDeEcsbUJBQW1CO0lBQ25CLHdHQUF3RztJQUV4RyxNQUFNO0lBQ04sMENBQTBDO0lBQzFDLEtBQUs7SUFDTCxvRUFBb0U7SUFDcEUsdUVBQXVFO0lBQ3ZFLE1BQU07SUFDTix5REFBeUQ7SUFDekQsNERBQTREO0lBQzVELElBQUk7SUFFSjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFdBQTZCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsQ0FBQyxLQUFLLEVBQ1QsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxXQUEyQjtRQUN4QyxNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQUMsY0FBYyxFQUNsQixXQUFXLEVBQ1gsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsV0FBMkIsRUFBRSxPQUFhO1FBQ2pELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLCtCQUErQjtZQUMvQixPQUFPLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBb0MsR0FBRyxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELE1BQU07SUFDTixxQkFBcUI7SUFDckIscURBQXFEO0lBQ3JELHNDQUFzQztJQUN0QyxNQUFNO0lBQ04sa0JBQWtCO0lBQ2xCLDBCQUEwQjtJQUMxQixxQ0FBcUM7SUFDckMsK0JBQStCO0lBQy9CLHNEQUFzRDtJQUN0RCxJQUFJO0lBRUo7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxJQUE4QjtRQUMxQyxNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUE4QyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRUQ7Ozs7TUFJRTtJQUNGLGNBQWMsQ0FBQyxJQUErQjtRQUM1QyxNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNO0lBQ04sNEJBQTRCO0lBQzVCLE1BQU07SUFDTix3QkFBd0I7SUFDeEIsc0RBQXNEO0lBQ3RELElBQUk7SUFFSjs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLElBQXlCO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXlDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBQyxJQUF3QixFQUFFLE9BQWE7UUFDcEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxHQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBd0MsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEcsQ0FBQzs0RUF4SFUsV0FBVzt1RUFBWCxXQUFXLFdBQVgsV0FBVyxtQkFERSxNQUFNOztpRkFDbkIsV0FBVztjQUR2QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VQYXNzd29yZFVzZXJSZXF1ZXN0LFxyXG4gIExvZ2luVXNlclJlcXVlc3QsXHJcbiAgTmV3VXNlclJlcXVlc3QsXHJcbiAgUmVmcmVzaFRva2VuUmVxdWVzdCxcclxuICBSZWdpc3RlclRlbmFudCxcclxuICBSZXNldFBhc3N3b3JkVXNlclJlcXVlc3QsXHJcbiAgVXNlckRldGFpbHNSZXF1ZXN0LFxyXG59IGZyb20gJy4uL2FwcC9pbnRlcmZhY2VzL2F1dGguaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHR0cC1jbGllbnQvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25BcGlSZXNwb25zZSB9IGZyb20gJy4uL2FwcC9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBnZXRGb3JtRGF0YUhlYWRlcnMsIGdldEhlYWRlcnMgfSBmcm9tICcuLi9hcHAvdXRpbHMvcmVxLXJlcy51dGlsJztcclxuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vYXBwL2NvbnN0YW50cy9hcGktY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XHJcbiAgLyoqXHJcbiAgICogSW5qZWN0aW5nIHJlcXVpcmVkIHNlcnZpY2VzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEAgUHVibGljIG1ldGhvZHNcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAvLyAvKipcclxuICAvLyAgKiBGZXRjaCB1c2VyIGRldGFpbHMgZnJvbSB0aGUgZGF0YWJhc2VcclxuICAvLyAgKlxyXG4gIC8vICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgLSBUaGUgRW5kIFBvaW50IE5hbWUgdG8gZmV0Y2ggdXNlciBkZXRhaWxzXHJcbiAgLy8gICogQHJldHVybnMgT2JzZXJ2YWJsZTxVc2VyUmVzcG9uc2U+IC0gQW4gb2JzZXJ2YWJsZSBvZiBVc2VyUmVzcG9uc2VcclxuICAvLyAgKi9cclxuICAvLyB1c2VyKGVuZFBvaW50TmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyUmVzcG9uc2U+IHtcclxuICAvLyAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0PFVzZXJSZXNwb25zZT4oZW5kUG9pbnROYW1lKTtcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNpZ24gaW4gd2l0aCBwcm92aWRlZCBjcmVkZW50aWFsc1xyXG4gICAqIEBwYXJhbSBjcmVkZW50aWFscyAtIFRoZSBsb2dpbiBjcmVkZW50aWFsc1xyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IC0gQW4gb2JzZXJ2YWJsZSBvZiBDb21tb25BcGlSZXNwb25zZVxyXG4gICAqL1xyXG4gIHNpZ25JbihjcmVkZW50aWFsczogTG9naW5Vc2VyUmVxdWVzdCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdDxDb21tb25BcGlSZXNwb25zZSwgTG9naW5Vc2VyUmVxdWVzdD4oXHJcbiAgICAgIEFQSS5sb2dpbixcclxuICAgICAgY3JlZGVudGlhbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RlciB0ZW5hbnRcclxuICAgKiBAcGFyYW0gY3JlZGVudGlhbHMgLSBUaGUgY3JlZGVudGlhbHNcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPlxyXG4gICAqL1xyXG4gIHJlZ2lzdGVyVGVuYW50KGNyZWRlbnRpYWxzOiBSZWdpc3RlclRlbmFudCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHsgICAgICBcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3Q8Q29tbW9uQXBpUmVzcG9uc2UsIFJlZ2lzdGVyVGVuYW50PihcclxuICAgICAgQVBJLlJlZ2lzdGVyVGVuYW50LFxyXG4gICAgICBjcmVkZW50aWFscyxcclxuICAgICAgaGVhZGVyc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlZ2lzdGVyIGEgbmV3IHVzZXJcclxuICAgKiBAcGFyYW0gY3JlZGVudGlhbHMgLSBUaGUgbmV3IHVzZXIncyBjcmVkZW50aWFsc1xyXG4gICAqIEBwYXJhbSBoZWFkZXJzIC0gVGhlIGhlYWRlcnNcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiAtIEFuIG9ic2VydmFibGUgb2YgQ29tbW9uQXBpUmVzcG9uc2VcclxuICAgKi9cclxuICByZWdpc3RlcihjcmVkZW50aWFsczogTmV3VXNlclJlcXVlc3QsIGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBpZiAoIWhlYWRlcnMpIHtcclxuICAgICAgLy8gR2V0IHRoZSBoZWFkZXJzIGZvciBGb3JtRGF0YVxyXG4gICAgICBoZWFkZXJzID0gZ2V0Rm9ybURhdGFIZWFkZXJzKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3Q8Q29tbW9uQXBpUmVzcG9uc2UsIE5ld1VzZXJSZXF1ZXN0PihBUEkucmVnaXN0ZXJVc2VyLCBjcmVkZW50aWFscywgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvLyAvKipcclxuICAvLyAgKiBGb3Jnb3QgcGFzc3dvcmRcclxuICAvLyAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIC0gVGhlIEVuZCBQb2ludCBOYW1lIG9mIEFQSVxyXG4gIC8vICAqIEBwYXJhbSBlbWFpbCAtIFRoZSBlbWFpbCBvZiB1c2VyXHJcbiAgLy8gICovXHJcbiAgLy8gZm9yZ290UGFzc3dvcmQoXHJcbiAgLy8gICBlbmRQb2ludE5hbWU6IHN0cmluZyxcclxuICAvLyAgIGVtYWlsOiBGb3Jnb3RQYXNzd29yZFVzZXJSZXF1ZXN0XHJcbiAgLy8gKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZT4ge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KGVuZFBvaW50TmFtZSwgZW1haWwpO1xyXG4gIC8vIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzZXQgUGFzc3dvcmRcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgZm9yIHJlc2V0dGluZyBwYXNzd29yZFxyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIHJlc2V0UGFzc3dvcmQoZGF0YTogUmVzZXRQYXNzd29yZFVzZXJSZXF1ZXN0KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdDxDb21tb25BcGlSZXNwb25zZSwgUmVzZXRQYXNzd29yZFVzZXJSZXF1ZXN0PihBUEkucmVzdHBhc3N3b3JkLCBkYXRhLCBoZWFkZXJzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogQ2hhbmdlIFBhc3N3b3JkXHJcbiAgKiBAcGFyYW0gZGF0YSAtIERhdGEgZm9yIGNoYW5naW5nIHBhc3N3b3JkXHJcbiAgKiBAcmV0dXJucyBSZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAqL1xyXG4gIGNoYW5nZVBhc3N3b3JkKGRhdGE6IENoYW5nZVBhc3N3b3JkVXNlclJlcXVlc3QpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5jaGFuZ2VQYXNzd29yZCwgZGF0YSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvLyAvKipcclxuICAvLyAgKiBMb2dvdXQgY3VycmVudCBzZXNzaW9uXHJcbiAgLy8gICovXHJcbiAgLy8gbG9nb3V0KGtleTogc3RyaW5nKSB7XHJcbiAgLy8gICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKGtleSk7XHJcbiAgLy8gfVxyXG5cclxuICAvKipcclxuICAgKiBSZWZyZXNoZXMgdGhlIGFjY2VzcyB0b2tlbiB1c2luZyB0aGUgcmVmcmVzaCB0b2tlblxyXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIHJlZnJlc2ggdG9rZW4gcmVxdWVzdCBkYXRhXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4gLSBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICByZWZyZXNoVG9rZW4oZGF0YTogUmVmcmVzaFRva2VuUmVxdWVzdCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3Q8Q29tbW9uQXBpUmVzcG9uc2UsIFJlZnJlc2hUb2tlblJlcXVlc3Q+KEFQSS5yZWZyZXNoVG9rZW4sIGRhdGEsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB1c2VyIGRldGFpbHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGlkZW50aXR5XHJcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgdXNlciBkZXRhaWxzIHJlcXVlc3QgZGF0YVxyXG4gICAqIEBwYXJhbSBoZWFkZXJzIC0gT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3RcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiAtIEFuIG9ic2VydmFibGUgb2YgdGhlIHVzZXIgZGV0YWlsc1xyXG4gICAqL1xyXG4gIGdldFVzZXJEZXRhaWxzKGRhdGE6IFVzZXJEZXRhaWxzUmVxdWVzdCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGlmICghaGVhZGVycykge1xyXG4gICAgICAgaGVhZGVycyA9Z2V0SGVhZGVycyhoZWFkZXJzKTtcclxuICAgIH0gXHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3Q8Q29tbW9uQXBpUmVzcG9uc2UsIFVzZXJEZXRhaWxzUmVxdWVzdD4oQVBJLmdldFVzZXJEZXRhaWxzLCBkYXRhLCBoZWFkZXJzKTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { Injectable, inject } from '@angular/core';
|
|
3
3
|
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
4
|
import { API_URL } from './api-url.token';
|
|
6
|
-
import { Common } from '../../app/constants/common';
|
|
7
|
-
import { ResponseAdapter } from '../../app/helpers/response.adapter';
|
|
8
5
|
import * as i0 from "@angular/core";
|
|
9
6
|
export class ApiService {
|
|
10
7
|
constructor() {
|
|
@@ -124,80 +121,6 @@ export class ApiService {
|
|
|
124
121
|
deleteByUrl(url, options) {
|
|
125
122
|
return this.http.delete(url, { ...options });
|
|
126
123
|
}
|
|
127
|
-
// ==================== NEW MICROSERVICE METHODS ====================
|
|
128
|
-
/**
|
|
129
|
-
* Makes an HTTP GET request to a specific microservice
|
|
130
|
-
* @param serviceName - Name of the microservice (e.g., 'crudService', 'metadataService')
|
|
131
|
-
* @param endPointName - Endpoint path relative to the service
|
|
132
|
-
* @param params - Query parameters for the request
|
|
133
|
-
* @param reqHeader - Custom headers for the request
|
|
134
|
-
* @returns An Observable emitting the response data (auto-normalized to CommonApiResponse format)
|
|
135
|
-
*/
|
|
136
|
-
getFromService(serviceName, endPointName, params = new HttpParams(), reqHeader) {
|
|
137
|
-
const serviceUrl = Common.apiServiceUrls[serviceName];
|
|
138
|
-
return this.http.get(`${serviceUrl}${endPointName}`, {
|
|
139
|
-
headers: reqHeader,
|
|
140
|
-
params,
|
|
141
|
-
}).pipe(map(response => ResponseAdapter.normalize(response)));
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Makes an HTTP POST request to a specific microservice
|
|
145
|
-
* @param serviceName - Name of the microservice (e.g., 'crudService', 'formioService')
|
|
146
|
-
* @param endPointName - Endpoint path relative to the service
|
|
147
|
-
* @param data - Data to send with the request
|
|
148
|
-
* @param reqHeader - Custom headers for the request
|
|
149
|
-
* @returns An Observable emitting the response data (auto-normalized to CommonApiResponse format)
|
|
150
|
-
*/
|
|
151
|
-
postToService(serviceName, endPointName, data, reqHeader) {
|
|
152
|
-
const serviceUrl = Common.apiServiceUrls[serviceName];
|
|
153
|
-
return this.http.post(`${serviceUrl}${endPointName}`, JSON.stringify(data), {
|
|
154
|
-
headers: reqHeader,
|
|
155
|
-
}).pipe(map(response => ResponseAdapter.normalize(response)));
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Makes an HTTP PUT request to a specific microservice
|
|
159
|
-
* @param serviceName - Name of the microservice
|
|
160
|
-
* @param endPointName - Endpoint path relative to the service
|
|
161
|
-
* @param data - Data to send with the request
|
|
162
|
-
* @param reqHeader - Custom headers for the request
|
|
163
|
-
* @returns An Observable emitting the response data (auto-normalized to CommonApiResponse format)
|
|
164
|
-
*/
|
|
165
|
-
putToService(serviceName, endPointName, data, reqHeader) {
|
|
166
|
-
const serviceUrl = Common.apiServiceUrls[serviceName];
|
|
167
|
-
return this.http.put(`${serviceUrl}${endPointName}`, JSON.stringify(data), {
|
|
168
|
-
headers: reqHeader,
|
|
169
|
-
}).pipe(map(response => ResponseAdapter.normalize(response)));
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Makes an HTTP DELETE request to a specific microservice
|
|
173
|
-
* @param serviceName - Name of the microservice
|
|
174
|
-
* @param endPointName - Endpoint path relative to the service
|
|
175
|
-
* @param data - Data to send with the request (optional, for DELETE with body)
|
|
176
|
-
* @param reqHeader - Custom headers for the request
|
|
177
|
-
* @returns An Observable emitting the response data (auto-normalized to CommonApiResponse format)
|
|
178
|
-
*/
|
|
179
|
-
deleteFromService(serviceName, endPointName, data, reqHeader) {
|
|
180
|
-
const serviceUrl = Common.apiServiceUrls[serviceName];
|
|
181
|
-
return this.http.delete(`${serviceUrl}${endPointName}`, {
|
|
182
|
-
headers: reqHeader,
|
|
183
|
-
body: data ? JSON.stringify(data) : undefined
|
|
184
|
-
}).pipe(map(response => ResponseAdapter.normalize(response)));
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Makes an HTTP POST request to a specific microservice and returns a Blob response
|
|
188
|
-
* @param serviceName - Name of the microservice (e.g., 'reportService')
|
|
189
|
-
* @param endPointName - Endpoint path relative to the service
|
|
190
|
-
* @param data - Data to send with the request
|
|
191
|
-
* @param reqHeader - Custom headers for the request
|
|
192
|
-
* @returns An Observable emitting the response as a Blob
|
|
193
|
-
*/
|
|
194
|
-
postBlobToService(serviceName, endPointName, data, reqHeader) {
|
|
195
|
-
const serviceUrl = Common.apiServiceUrls[serviceName];
|
|
196
|
-
return this.http.post(`${serviceUrl}${endPointName}`, JSON.stringify(data), {
|
|
197
|
-
headers: reqHeader,
|
|
198
|
-
responseType: 'blob'
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
124
|
static { this.ɵfac = function ApiService_Factory(t) { return new (t || ApiService)(); }; }
|
|
202
125
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ApiService, factory: ApiService.ɵfac, providedIn: 'root' }); }
|
|
203
126
|
}
|
|
@@ -205,4 +128,4 @@ export class ApiService {
|
|
|
205
128
|
type: Injectable,
|
|
206
129
|
args: [{ providedIn: 'root' }]
|
|
207
130
|
}], null, null); })();
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFHckUsTUFBTSxPQUFPLFVBQVU7SUFEdkI7UUFFbUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQixZQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBaVI1QztJQS9RQzs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQ0QsWUFBb0IsRUFDcEIsU0FBcUIsSUFBSSxVQUFVLEVBQUUsRUFDckMsU0FBdUI7UUFFdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEVBQUU7WUFDeEQsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQ0YsWUFBb0IsRUFDcEIsSUFBUSxFQUNSLFNBQXVCO1FBRXZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJ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dC9uby1leHBsaWNpdC1hbnkgKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQVBJX1VSTCB9IGZyb20gJy4vYXBpLXVybC50b2tlbic7XHJcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4uLy4uL2FwcC9jb25zdGFudHMvY29tbW9uJztcclxuaW1wb3J0IHsgQVBJU2VydmljZU5hbWUsIENvbW1vbkFwaVJlc3BvbnNlLCBTdGFuZGFyZEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vYXBwL2ludGVyZmFjZXMvY29tbW9uLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4uLy4uL2FwcC9oZWxwZXJzL3Jlc3BvbnNlLmFkYXB0ZXInO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFwaVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwaV91cmwgPSBpbmplY3QoQVBJX1VSTCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gcmV0cmlldmUgZGF0YSBmcm9tIHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgVGhlIFVSTCBmb3IgdGhlIEhUVFAgR0VUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QgKGRlZmF1bHQgaXMgYW4gZW1wdHkgSHR0cFBhcmFtcyBvYmplY3QpLlxyXG4gICAqIEBwYXJhbSByZXFIZWFkZXIgVGhlIGN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIGdldDxUPihcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgcGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKSxcclxuICAgIHJlcUhlYWRlcj86IEh0dHBIZWFkZXJzXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMuYXBpX3VybH0ke2VuZFBvaW50TmFtZX1gLCB7XHJcbiAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgICAgcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIFBPU1QgcmVxdWVzdCB0byBzZW5kIGRhdGEgdG8gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSBUaGUgVVJMIGZvciB0aGUgSFRUUCBQT1NUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciBUaGUgY3VzdG9tIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICovXHJcbiAgcG9zdDxULCBEPihcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YT86IEQsXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8RCB8IGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KFxyXG4gICAgICBgJHt0aGlzLmFwaV91cmx9JHtlbmRQb2ludE5hbWV9YCxcclxuICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YSksXHJcbiAgICAgIHtcclxuICAgICAgICBoZWFkZXJzOiByZXFIZWFkZXIsXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIFBVVCByZXF1ZXN0IHRvIHVwZGF0ZSBkYXRhIGF0IHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgVGhlIFVSTCBmb3IgdGhlIEhUVFAgUFVUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSByZXFIZWFkZXIgVGhlIGN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIHB1dDxULCBEPihcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YTogRCxcclxuICAgIHJlcUhlYWRlcj86IEh0dHBIZWFkZXJzXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFQ+KFxyXG4gICAgICBgJHt0aGlzLmFwaV91cmx9JHtlbmRQb2ludE5hbWV9YCxcclxuICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YSksXHJcbiAgICAgIHtcclxuICAgICAgICBoZWFkZXJzOiByZXFIZWFkZXIsXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIERFTEVURSByZXF1ZXN0IHRvIGRlbGV0ZSBkYXRhIGZyb20gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSBUaGUgVVJMIGZvciB0aGUgSFRUUCBERUxFVEUgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gcmVxSGVhZGVyIFRoZSBjdXN0b20gaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBkYXRhIG9mIHR5cGUgVC5cclxuICAgKi9cclxuICBkZWxldGU8VD4oZW5kUG9pbnROYW1lOiBzdHJpbmcsIHJlcUhlYWRlcj86IEh0dHBIZWFkZXJzKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFQ+KGAke3RoaXMuYXBpX3VybH0ke2VuZFBvaW50TmFtZX1gLCB7XHJcbiAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZXMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byByZXRyaWV2ZSBibG9iIGRhdGEgd2l0aCBjdXN0b20gaGVhZGVycy5cclxuICAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIFRoZSBVUkwgZm9yIHRoZSBIVFRQIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciBUaGUgY3VzdG9tIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGFzIGEgQmxvYi5cclxuICAgKi9cclxuICBnZXRCbG9iPFQ+KFxyXG4gICAgZW5kUG9pbnROYW1lOiBzdHJpbmcsXHJcbiAgICBwYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hcGlfdXJsfSR7ZW5kUG9pbnROYW1lfWAsIHtcclxuICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZXMgYW4gSFRUUCBQT1NUIHJlcXVlc3QgdG8gc2VuZCBkYXRhIGFuZCByZXRyaWV2ZSBibG9iIGRhdGEgd2l0aCBjdXN0b20gaGVhZGVycy5cclxuICAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIFRoZSBVUkwgZm9yIHRoZSBIVFRQIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSByZXFIZWFkZXIgVGhlIGN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBhcyBhIEJsb2IuXHJcbiAgICovXHJcbiAgcG9zdEJsb2I8VCwgRD4oXHJcbiAgICBlbmRQb2ludE5hbWU6IHN0cmluZyxcclxuICAgIGRhdGE/OiBELFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KGAke3RoaXMuYXBpX3VybH0ke2VuZFBvaW50TmFtZX1gLCBkYXRhLCB7XHJcbiAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicgYXMgJ2pzb24nLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHJldHJpZXZlIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIFVSTC5cclxuICAgKiBAcGFyYW0gdXJsIFRoZSBVUkwgZm9yIHRoZSBIVFRQIEdFVCByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBjdXN0b20gb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBkYXRhIG9mIHR5cGUgVC5cclxuICAgKi9cclxuICBnZXRCeVVybDxUPih1cmw6IHN0cmluZywgb3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih1cmwsIHsgLi4ub3B0aW9ucyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUE9TVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCBmb3IgdGhlIEhUVFAgUE9TVCByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIHNlbmQgd2l0aCB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBjdXN0b20gb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBkYXRhIG9mIHR5cGUgVC5cclxuICAgKi9cclxuICBwb3N0QnlVcmw8VCwgRD4odXJsOiBzdHJpbmcsIGRhdGE/OiBELCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih1cmwsIEpTT04uc3RyaW5naWZ5KGRhdGEpLCB7IC4uLm9wdGlvbnMgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIFBVVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCBmb3IgdGhlIEhUVFAgUFVUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGN1c3RvbSBvcHRpb25zIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIHB1dEJ5VXJsPFQsIEQ+KHVybDogc3RyaW5nLCBkYXRhPzogRCwgb3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPih1cmwsIEpTT04uc3RyaW5naWZ5KGRhdGEpLCB7IC4uLm9wdGlvbnMgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIERFTEVURSByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCBmb3IgdGhlIEhUVFAgREVMRVRFIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGN1c3RvbSBvcHRpb25zIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIGRlbGV0ZUJ5VXJsPFQ+KHVybDogc3RyaW5nLCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFQ+KHVybCwgeyAuLi5vcHRpb25zIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT0gTkVXIE1JQ1JPU0VSVklDRSBNRVRIT0RTID09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gYSBzcGVjaWZpYyBtaWNyb3NlcnZpY2VcclxuICAgKiBAcGFyYW0gc2VydmljZU5hbWUgLSBOYW1lIG9mIHRoZSBtaWNyb3NlcnZpY2UgKGUuZy4sICdjcnVkU2VydmljZScsICdtZXRhZGF0YVNlcnZpY2UnKVxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgLSBFbmRwb2ludCBwYXRoIHJlbGF0aXZlIHRvIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0XHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciAtIEN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgKGF1dG8tbm9ybWFsaXplZCB0byBDb21tb25BcGlSZXNwb25zZSBmb3JtYXQpXHJcbiAgICovXHJcbiAgZ2V0RnJvbVNlcnZpY2UoXHJcbiAgICBzZXJ2aWNlTmFtZTogQVBJU2VydmljZU5hbWUsXHJcbiAgICBlbmRQb2ludE5hbWU6IHN0cmluZyxcclxuICAgIHBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCksXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBDb21tb24uYXBpU2VydmljZVVybHNbc2VydmljZU5hbWVdO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U3RhbmRhcmRBcGlSZXNwb25zZT4oYCR7c2VydmljZVVybH0ke2VuZFBvaW50TmFtZX1gLCB7XHJcbiAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgICAgcGFyYW1zLFxyXG4gICAgfSkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IFJlc3BvbnNlQWRhcHRlci5ub3JtYWxpemUocmVzcG9uc2UpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUE9TVCByZXF1ZXN0IHRvIGEgc3BlY2lmaWMgbWljcm9zZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlcnZpY2VOYW1lIC0gTmFtZSBvZiB0aGUgbWljcm9zZXJ2aWNlIChlLmcuLCAnY3J1ZFNlcnZpY2UnLCAnZm9ybWlvU2VydmljZScpXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSAtIEVuZHBvaW50IHBhdGggcmVsYXRpdmUgdG8gdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0XHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciAtIEN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgKGF1dG8tbm9ybWFsaXplZCB0byBDb21tb25BcGlSZXNwb25zZSBmb3JtYXQpXHJcbiAgICovXHJcbiAgcG9zdFRvU2VydmljZTxULCBEPihcclxuICAgIHNlcnZpY2VOYW1lOiBBUElTZXJ2aWNlTmFtZSxcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YT86IEQsXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBDb21tb24uYXBpU2VydmljZVVybHNbc2VydmljZU5hbWVdO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFN0YW5kYXJkQXBpUmVzcG9uc2U+KFxyXG4gICAgICBgJHtzZXJ2aWNlVXJsfSR7ZW5kUG9pbnROYW1lfWAsXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KGRhdGEpLFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgICB9XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiBSZXNwb25zZUFkYXB0ZXIubm9ybWFsaXplKHJlc3BvbnNlKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIFBVVCByZXF1ZXN0IHRvIGEgc3BlY2lmaWMgbWljcm9zZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlcnZpY2VOYW1lIC0gTmFtZSBvZiB0aGUgbWljcm9zZXJ2aWNlXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSAtIEVuZHBvaW50IHBhdGggcmVsYXRpdmUgdG8gdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0XHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciAtIEN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgKGF1dG8tbm9ybWFsaXplZCB0byBDb21tb25BcGlSZXNwb25zZSBmb3JtYXQpXHJcbiAgICovXHJcbiAgcHV0VG9TZXJ2aWNlPFQsIEQ+KFxyXG4gICAgc2VydmljZU5hbWU6IEFQSVNlcnZpY2VOYW1lLFxyXG4gICAgZW5kUG9pbnROYW1lOiBzdHJpbmcsXHJcbiAgICBkYXRhOiBELFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gQ29tbW9uLmFwaVNlcnZpY2VVcmxzW3NlcnZpY2VOYW1lXTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFN0YW5kYXJkQXBpUmVzcG9uc2U+KFxyXG4gICAgICBgJHtzZXJ2aWNlVXJsfSR7ZW5kUG9pbnROYW1lfWAsXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KGRhdGEpLFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgICB9XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiBSZXNwb25zZUFkYXB0ZXIubm9ybWFsaXplKHJlc3BvbnNlKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIERFTEVURSByZXF1ZXN0IHRvIGEgc3BlY2lmaWMgbWljcm9zZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlcnZpY2VOYW1lIC0gTmFtZSBvZiB0aGUgbWljcm9zZXJ2aWNlXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSAtIEVuZHBvaW50IHBhdGggcmVsYXRpdmUgdG8gdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0IChvcHRpb25hbCwgZm9yIERFTEVURSB3aXRoIGJvZHkpXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciAtIEN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgKGF1dG8tbm9ybWFsaXplZCB0byBDb21tb25BcGlSZXNwb25zZSBmb3JtYXQpXHJcbiAgICovXHJcbiAgZGVsZXRlRnJvbVNlcnZpY2U8RD4oXHJcbiAgICBzZXJ2aWNlTmFtZTogQVBJU2VydmljZU5hbWUsXHJcbiAgICBlbmRQb2ludE5hbWU6IHN0cmluZyxcclxuICAgIGRhdGE/OiBELFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gQ29tbW9uLmFwaVNlcnZpY2VVcmxzW3NlcnZpY2VOYW1lXTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFN0YW5kYXJkQXBpUmVzcG9uc2U+KGAke3NlcnZpY2VVcmx9JHtlbmRQb2ludE5hbWV9YCwge1xyXG4gICAgICBoZWFkZXJzOiByZXFIZWFkZXIsXHJcbiAgICAgIGJvZHk6IGRhdGEgPyBKU09OLnN0cmluZ2lmeShkYXRhKSA6IHVuZGVmaW5lZFxyXG4gICAgfSkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IFJlc3BvbnNlQWRhcHRlci5ub3JtYWxpemUocmVzcG9uc2UpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUE9TVCByZXF1ZXN0IHRvIGEgc3BlY2lmaWMgbWljcm9zZXJ2aWNlIGFuZCByZXR1cm5zIGEgQmxvYiByZXNwb25zZVxyXG4gICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSAtIE5hbWUgb2YgdGhlIG1pY3Jvc2VydmljZSAoZS5nLiwgJ3JlcG9ydFNlcnZpY2UnKVxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgLSBFbmRwb2ludCBwYXRoIHJlbGF0aXZlIHRvIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGRhdGEgLSBEYXRhIHRvIHNlbmQgd2l0aCB0aGUgcmVxdWVzdFxyXG4gICAqIEBwYXJhbSByZXFIZWFkZXIgLSBDdXN0b20gaGVhZGVycyBmb3IgdGhlIHJlcXVlc3RcclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBhcyBhIEJsb2JcclxuICAgKi9cclxuICBwb3N0QmxvYlRvU2VydmljZTxEPihcclxuICAgIHNlcnZpY2VOYW1lOiBBUElTZXJ2aWNlTmFtZSxcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YT86IEQsXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8QmxvYj4ge1xyXG4gICAgY29uc3Qgc2VydmljZVVybCA9IENvbW1vbi5hcGlTZXJ2aWNlVXJsc1tzZXJ2aWNlTmFtZV07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7c2VydmljZVVybH0ke2VuZFBvaW50TmFtZX1gLCBKU09OLnN0cmluZ2lmeShkYXRhKSwge1xyXG4gICAgICBoZWFkZXJzOiByZXFIZWFkZXIsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHMUMsTUFBTSxPQUFPLFVBQVU7SUFEdkI7UUFFbUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQixZQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBd0o1QztJQXRKQzs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQ0QsWUFBb0IsRUFDcEIsU0FBcUIsSUFBSSxVQUFVLEVBQUUsRUFDckMsU0FBdUI7UUFFdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEVBQUU7WUFDeEQsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQ0YsWUFBb0IsRUFDcEIsSUFBUSxFQUNSLFNBQXVCO1FBRXZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLEVBQUUsRUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDcEI7WUFDRSxPQUFPLEVBQUUsU0FBUztTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsR0FBRyxDQUNELFlBQW9CLEVBQ3BCLElBQU8sRUFDUCxTQUF1QjtRQUV2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEVBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ3BCO1lBQ0UsT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFJLFlBQW9CLEVBQUUsU0FBdUI7UUFDckQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEVBQUU7WUFDM0QsT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FDTCxZQUFvQixFQUNwQixTQUFxQixJQUFJLFVBQVUsRUFBRSxFQUNyQyxTQUF1QjtRQUV2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLEVBQUUsRUFBRTtZQUN4RCxPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNO1lBQ04sWUFBWSxFQUFFLE1BQWdCO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQ04sWUFBb0IsRUFDcEIsSUFBUSxFQUNSLFNBQXVCO1FBRXZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRTtZQUMvRCxPQUFPLEVBQUUsU0FBUztZQUNsQixZQUFZLEVBQUUsTUFBZ0I7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxDQUFJLEdBQVcsRUFBRSxPQUFhO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQU8sR0FBVyxFQUFFLElBQVEsRUFBRSxPQUFhO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsQ0FBTyxHQUFXLEVBQUUsSUFBUSxFQUFFLE9BQWE7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUksR0FBVyxFQUFFLE9BQWE7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzsyRUF6SlUsVUFBVTt1RUFBVixVQUFVLFdBQVYsVUFBVSxtQkFERyxNQUFNOztpRkFDbkIsVUFBVTtjQUR0QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVBJX1VSTCB9IGZyb20gJy4vYXBpLXVybC50b2tlbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQXBpU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpX3VybCA9IGluamVjdChBUElfVVJMKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZXMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byByZXRyaWV2ZSBkYXRhIGZyb20gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSBUaGUgVVJMIGZvciB0aGUgSFRUUCBHRVQgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdCAoZGVmYXVsdCBpcyBhbiBlbXB0eSBIdHRwUGFyYW1zIG9iamVjdCkuXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciBUaGUgY3VzdG9tIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICovXHJcbiAgZ2V0PFQ+KFxyXG4gICAgZW5kUG9pbnROYW1lOiBzdHJpbmcsXHJcbiAgICBwYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hcGlfdXJsfSR7ZW5kUG9pbnROYW1lfWAsIHtcclxuICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUE9TVCByZXF1ZXN0IHRvIHNlbmQgZGF0YSB0byB0aGUgc3BlY2lmaWVkIFVSTC5cclxuICAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIFRoZSBVUkwgZm9yIHRoZSBIVFRQIFBPU1QgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBzZW5kIHdpdGggdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcGFyYW0gcmVxSGVhZGVyIFRoZSBjdXN0b20gaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBkYXRhIG9mIHR5cGUgVC5cclxuICAgKi9cclxuICBwb3N0PFQsIEQ+KFxyXG4gICAgZW5kUG9pbnROYW1lOiBzdHJpbmcsXHJcbiAgICBkYXRhPzogRCxcclxuICAgIHJlcUhlYWRlcj86IEh0dHBIZWFkZXJzXHJcbiAgKTogT2JzZXJ2YWJsZTxEIHwgYW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4oXHJcbiAgICAgIGAke3RoaXMuYXBpX3VybH0ke2VuZFBvaW50TmFtZX1gLFxyXG4gICAgICBKU09OLnN0cmluZ2lmeShkYXRhKSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUFVUIHJlcXVlc3QgdG8gdXBkYXRlIGRhdGEgYXQgdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSBUaGUgVVJMIGZvciB0aGUgSFRUUCBQVVQgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBzZW5kIHdpdGggdGhlIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciBUaGUgY3VzdG9tIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICovXHJcbiAgcHV0PFQsIEQ+KFxyXG4gICAgZW5kUG9pbnROYW1lOiBzdHJpbmcsXHJcbiAgICBkYXRhOiBELFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oXHJcbiAgICAgIGAke3RoaXMuYXBpX3VybH0ke2VuZFBvaW50TmFtZX1gLFxyXG4gICAgICBKU09OLnN0cmluZ2lmeShkYXRhKSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgREVMRVRFIHJlcXVlc3QgdG8gZGVsZXRlIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIFVSTC5cclxuICAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIFRoZSBVUkwgZm9yIHRoZSBIVFRQIERFTEVURSByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSByZXFIZWFkZXIgVGhlIGN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIGRlbGV0ZTxUPihlbmRQb2ludE5hbWU6IHN0cmluZywgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4oYCR7dGhpcy5hcGlfdXJsfSR7ZW5kUG9pbnROYW1lfWAsIHtcclxuICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHJldHJpZXZlIGJsb2IgZGF0YSB3aXRoIGN1c3RvbSBoZWFkZXJzLlxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgVGhlIFVSTCBmb3IgdGhlIEhUVFAgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gcmVxSGVhZGVyIFRoZSBjdXN0b20gaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgYXMgYSBCbG9iLlxyXG4gICAqL1xyXG4gIGdldEJsb2I8VD4oXHJcbiAgICBlbmRQb2ludE5hbWU6IHN0cmluZyxcclxuICAgIHBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCksXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPihgJHt0aGlzLmFwaV91cmx9JHtlbmRQb2ludE5hbWV9YCwge1xyXG4gICAgICBoZWFkZXJzOiByZXFIZWFkZXIsXHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicgYXMgJ2pzb24nLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIFBPU1QgcmVxdWVzdCB0byBzZW5kIGRhdGEgYW5kIHJldHJpZXZlIGJsb2IgZGF0YSB3aXRoIGN1c3RvbSBoZWFkZXJzLlxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgVGhlIFVSTCBmb3IgdGhlIEhUVFAgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBzZW5kIHdpdGggdGhlIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciBUaGUgY3VzdG9tIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGFzIGEgQmxvYi5cclxuICAgKi9cclxuICBwb3N0QmxvYjxULCBEPihcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YT86IEQsXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4oYCR7dGhpcy5hcGlfdXJsfSR7ZW5kUG9pbnROYW1lfWAsIGRhdGEsIHtcclxuICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gcmV0cmlldmUgZGF0YSBmcm9tIHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCBmb3IgdGhlIEhUVFAgR0VUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGN1c3RvbSBvcHRpb25zIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIGdldEJ5VXJsPFQ+KHVybDogc3RyaW5nLCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHVybCwgeyAuLi5vcHRpb25zIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZXMgYW4gSFRUUCBQT1NUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIHVybCBUaGUgVVJMIGZvciB0aGUgSFRUUCBQT1NUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGN1c3RvbSBvcHRpb25zIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIHBvc3RCeVVybDxULCBEPih1cmw6IHN0cmluZywgZGF0YT86IEQsIG9wdGlvbnM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHVybCwgSlNPTi5zdHJpbmdpZnkoZGF0YSksIHsgLi4ub3B0aW9ucyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUFVUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIHVybCBUaGUgVVJMIGZvciB0aGUgSFRUUCBQVVQgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBzZW5kIHdpdGggdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgY3VzdG9tIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICovXHJcbiAgcHV0QnlVcmw8VCwgRD4odXJsOiBzdHJpbmcsIGRhdGE/OiBELCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFQ+KHVybCwgSlNPTi5zdHJpbmdpZnkoZGF0YSksIHsgLi4ub3B0aW9ucyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgREVMRVRFIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIHVybCBUaGUgVVJMIGZvciB0aGUgSFRUUCBERUxFVEUgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgY3VzdG9tIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICovXHJcbiAgZGVsZXRlQnlVcmw8VD4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4odXJsLCB7IC4uLm9wdGlvbnMgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/index.d.ts
CHANGED
|
@@ -24,7 +24,6 @@ export * from './lib/tab-core-utility/app/helpers/common/req-res.helpers';
|
|
|
24
24
|
export * from './lib/tab-core-utility/app/helpers/common/where-clause.helpers';
|
|
25
25
|
export * from './lib/tab-core-utility/app/helpers/common/template.helpers';
|
|
26
26
|
export * from './lib/tab-core-utility/app/helpers/common/meta-data.helpers';
|
|
27
|
-
export * from './lib/tab-core-utility/app/helpers/login-response.adapter';
|
|
28
27
|
export * from './lib/tab-core-utility/app/helpers/screen/forms.helpers';
|
|
29
28
|
export * from './lib/tab-core-utility/app/helpers/screen/grid-column-data.helpers';
|
|
30
29
|
export * from './lib/tab-core-utility/app/helpers/screen/grid.helpers';
|
|
@@ -37,7 +36,6 @@ export * from './lib/tab-core-utility/app/interfaces/user.interface';
|
|
|
37
36
|
export * from './lib/tab-core-utility/app/interfaces/orgInfo.interface';
|
|
38
37
|
export * from './lib/tab-core-utility/app/interfaces/schema.interface';
|
|
39
38
|
export * from './lib/tab-core-utility/app/interfaces/grid.interface';
|
|
40
|
-
export * from './lib/tab-core-utility/app/interfaces/signalr.interface';
|
|
41
39
|
export * from './lib/tab-core-utility/app/models/api-query.class';
|
|
42
40
|
export * from './lib/tab-core-utility/app/models/app-object.class';
|
|
43
41
|
export * from './lib/tab-core-utility/app/models/common.class';
|
|
@@ -58,9 +56,6 @@ export * from './lib/tab-core-utility/core/service/translation.service';
|
|
|
58
56
|
export * from './lib/tab-core-utility/core/service/notification.service';
|
|
59
57
|
export * from './lib/tab-core-utility/core/service/confirmation.service';
|
|
60
58
|
export * from './lib/tab-core-utility/core/service/encryption.service';
|
|
61
|
-
export * from './lib/tab-core-utility/core/service/signalr/signalr.service';
|
|
62
|
-
export * from './lib/tab-core-utility/core/service/signalr/signalr-infrastructure.service';
|
|
63
|
-
export * from './lib/tab-core-utility/core/service/signalr/operation-tracker.service';
|
|
64
59
|
export * from './lib/tab-core-utility/core/pipe/translate.pipe';
|
|
65
60
|
export * from './lib/tab-core-utility/core/provider/translation.provider';
|
|
66
61
|
export * from './lib/tab-core-utility/core/provider/notification.provider';
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import type { APIServiceName } from '../interfaces/common.interface';
|
|
2
1
|
export declare const API: {
|
|
3
2
|
applicationIdentifier: string;
|
|
4
3
|
applicationIdentifierForPMS: string;
|
|
5
4
|
novuBackendUrl: string;
|
|
6
5
|
novuSocketUrl: string;
|
|
6
|
+
insert: string;
|
|
7
7
|
bulkInsert: string;
|
|
8
|
+
update: string;
|
|
9
|
+
delete: string;
|
|
8
10
|
select: string;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
getDSQ: string;
|
|
12
|
+
getScreen: string;
|
|
13
|
+
getListFromDsq: string;
|
|
11
14
|
buildApp: string;
|
|
12
|
-
|
|
15
|
+
getSchema: string;
|
|
13
16
|
login: string;
|
|
14
17
|
pluginUpload: string;
|
|
15
18
|
getFile: string;
|
|
@@ -21,37 +24,37 @@ export declare const API: {
|
|
|
21
24
|
multipleFileUpload: string;
|
|
22
25
|
deleteFile: string;
|
|
23
26
|
getMediaFile: string;
|
|
24
|
-
|
|
27
|
+
getHistory: string;
|
|
25
28
|
changePassword: string;
|
|
26
29
|
restpassword: string;
|
|
27
30
|
getImage: string;
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
pmjayImport: string;
|
|
32
|
+
getScreenData: string;
|
|
30
33
|
processRequest: string;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
getNextStatus: string;
|
|
35
|
+
updateStatus: string;
|
|
36
|
+
registerUser: string;
|
|
34
37
|
getUserDetails: string;
|
|
35
38
|
getPermission: string;
|
|
36
39
|
testConnection: string;
|
|
37
40
|
performValidation: string;
|
|
38
41
|
setTabComponents: string;
|
|
39
42
|
BuildFormIOComponents: string;
|
|
40
|
-
|
|
43
|
+
registerAppObjects: string;
|
|
41
44
|
languageResource: string;
|
|
42
45
|
refreshToken: string;
|
|
43
|
-
|
|
46
|
+
search: string;
|
|
44
47
|
cloneDsq: string;
|
|
45
48
|
InsertScreenPerformanceAnalytics: string;
|
|
46
49
|
GenerateHttpRequest: string;
|
|
47
50
|
GetDetailOfPerformanceAnalytics: string;
|
|
48
51
|
GetSummaryOfPerformanceAnalytics: string;
|
|
49
52
|
GetDataJsonByType: string;
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
SyncAppFields: string;
|
|
54
|
+
exportReport: string;
|
|
52
55
|
RefreshGlobalSearchData: string;
|
|
53
56
|
RefreshRecordInfoData: string;
|
|
54
|
-
|
|
57
|
+
downloadReportFile: string;
|
|
55
58
|
sendReport: string;
|
|
56
59
|
GetReleaseJSONDifference: string;
|
|
57
60
|
GetDataDifference: string;
|
|
@@ -60,14 +63,4 @@ export declare const API: {
|
|
|
60
63
|
GetAllDocumnets: string;
|
|
61
64
|
GetDocumentById: string;
|
|
62
65
|
ExecuteWorkflow: string;
|
|
63
|
-
QueriesExecute: string;
|
|
64
|
-
QueriesSelect: string;
|
|
65
|
-
recordsInsert: string;
|
|
66
|
-
recordsUpdate: string;
|
|
67
|
-
recordsDelete: string;
|
|
68
|
-
fileManagerFileOperations: string;
|
|
69
|
-
fileManagerGetImage: string;
|
|
70
|
-
fileManagerUpload: string;
|
|
71
|
-
fileManagerDownload: string;
|
|
72
66
|
};
|
|
73
|
-
export declare const APIServices: Record<APIServiceName, APIServiceName>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { APIServiceUrls } from '../interfaces/common.interface';
|
|
2
1
|
export declare class Common {
|
|
3
2
|
static environmentName: string;
|
|
4
3
|
static applicationCode: string;
|
|
@@ -8,13 +7,5 @@ export declare class Common {
|
|
|
8
7
|
static tabAppObjectAccess: any;
|
|
9
8
|
static staticToken: any;
|
|
10
9
|
static i18n: any;
|
|
11
|
-
/** Microservice URLs configuration - NEW for microservices architecture */
|
|
12
|
-
static apiServiceUrls: APIServiceUrls;
|
|
13
|
-
/** SignalR hub URL for real-time notifications */
|
|
14
|
-
static signalRHubUrl: string;
|
|
15
|
-
/**
|
|
16
|
-
* Initialize the static variables
|
|
17
|
-
* Called once at application startup from the main app
|
|
18
|
-
*/
|
|
19
10
|
static init(environment: any): void;
|
|
20
11
|
}
|