@techextensor/tab-core-utility 2.2.108 → 2.2.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/tab-core-utility/app/crud/tab-delete.service.mjs +48 -1
- package/esm2022/lib/tab-core-utility/app/helpers/common/where-clause.helpers.mjs +28 -1
- package/lib/tab-core-utility/app/crud/tab-delete.service.d.ts +17 -0
- package/lib/tab-core-utility/app/helpers/common/where-clause.helpers.d.ts +7 -0
- package/package.json +1 -1
|
@@ -125,6 +125,23 @@ export class TabDeleteService {
|
|
|
125
125
|
const dataObj = this.requestResponseHelper.deletePayload(tableName, whereClause);
|
|
126
126
|
return this.delete(dataObj);
|
|
127
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Deletes multiple records from the specified table based on the provided data array.
|
|
130
|
+
* The data array should contain key-value pairs without primary key information.
|
|
131
|
+
* @param tableName The name of the table.
|
|
132
|
+
* @param values The array of data objects to delete.
|
|
133
|
+
* @returns An Observable emitting the response of the delete operation.
|
|
134
|
+
*/
|
|
135
|
+
deleteMultipleRecordByTableWithoutPrimaryKey(tableName, values) {
|
|
136
|
+
// Retrieve app object and primary key fields
|
|
137
|
+
const appObject = getAppObjectFromSystemDBTableName(tableName);
|
|
138
|
+
// Generate values array from data
|
|
139
|
+
const valueArray = this.generateValuesArrayFromDataWithoutPrimaryKey(values);
|
|
140
|
+
// Bind where clause for delete operation using IN operator by table
|
|
141
|
+
const whereClause = this.whereClauseHelper.bindWhereClauseForDynamicDelete(tableName, valueArray);
|
|
142
|
+
const dataObj = this.requestResponseHelper.deletePayload(tableName, whereClause);
|
|
143
|
+
return this.delete(dataObj);
|
|
144
|
+
}
|
|
128
145
|
/**
|
|
129
146
|
* Generates a values array from the data.
|
|
130
147
|
* @param dataArray The array of data.
|
|
@@ -140,6 +157,36 @@ export class TabDeleteService {
|
|
|
140
157
|
}
|
|
141
158
|
return valueArray;
|
|
142
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Generates an array of values from the provided data array.
|
|
162
|
+
* Each entry in the returned array includes key-value pairs from the data objects,
|
|
163
|
+
* and an associated GroupID indicating the index of the data object.
|
|
164
|
+
*
|
|
165
|
+
* @param dataArray An array of data objects.
|
|
166
|
+
* @returns An array containing objects with keys, values, and group indices.
|
|
167
|
+
*/
|
|
168
|
+
generateValuesArrayFromDataWithoutPrimaryKey(dataArray) {
|
|
169
|
+
const valueArray = [];
|
|
170
|
+
// Check if the input data array is valid and has elements
|
|
171
|
+
if (dataArray && dataArray.length) {
|
|
172
|
+
// Iterate over each element in the data array
|
|
173
|
+
dataArray.forEach((element, index) => {
|
|
174
|
+
// Ensure the element is an object
|
|
175
|
+
if (element && typeof element === 'object') {
|
|
176
|
+
// Iterate over each key-value pair in the object
|
|
177
|
+
Object.entries(element).forEach(([key, value]) => {
|
|
178
|
+
// Push an object containing the key, value, and index as GroupID to valueArray
|
|
179
|
+
valueArray.push({
|
|
180
|
+
key: key,
|
|
181
|
+
value: value,
|
|
182
|
+
GroupID: index
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
return valueArray;
|
|
189
|
+
}
|
|
143
190
|
static { this.ɵfac = function TabDeleteService_Factory(t) { return new (t || TabDeleteService)(); }; }
|
|
144
191
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TabDeleteService, factory: TabDeleteService.ɵfac, providedIn: 'root' }); }
|
|
145
192
|
}
|
|
@@ -147,4 +194,4 @@ export class TabDeleteService {
|
|
|
147
194
|
type: Injectable,
|
|
148
195
|
args: [{ providedIn: 'root' }]
|
|
149
196
|
}], null, null); })();
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWRlbGV0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWRlbGV0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlDQUFpQyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdFLE9BQU8sRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBTWhELE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFbUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QywwQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztLQWdJeEU7SUE5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QUMzRixvRUFBb0U7UUFDcEUsTUFBTSxXQUFXLEdBQXNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyw4Q0FBOEMsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BLLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCwyQkFBMkIsQ0FBQyxTQUFjLEVBQUUsR0FBUTtRQUNsRCxNQUFNLFVBQVUsR0FBUSxFQUFFLENBQUE7UUFDMUIsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtnQkFDakMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQTtJQUNuQixDQUFDO2lGQW5JVSxnQkFBZ0I7dUVBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0IsbUJBREgsTUFBTTs7aUZBQ25CLGdCQUFnQjtjQUQ1QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRFNRSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL2RzcS5oZWxwZXJzXCI7XHJcbmltcG9ydCB7IFNjcmVlbkhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL3NjcmVlbi9zY3JlZW4uaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBXaGVyZUNsYXVzZUhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbW1vbi93aGVyZS1jbGF1c2UuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBSZXF1ZXN0UmVzcG9uc2VIZWxwZXIgfSBmcm9tIFwiLi4vaGVscGVycy9jb21tb24vcmVxLXJlcy5oZWxwZXJzXCI7XHJcbmltcG9ydCB7IEFwcE9iamVjdCwgQXBwU2NyZWVuIH0gZnJvbSBcIi4uL21vZGVscy9hcHAtb2JqZWN0LmNsYXNzXCI7XHJcbmltcG9ydCB7IGdldEFwcE9iamVjdCwgZ2V0QXBwT2JqZWN0RnJvbVN5c3RlbURCVGFibGVOYW1lLCBnZXREYXRhRnJvbURhdGFTb3VyY2VRdWVyeUlEIH0gZnJvbSBcIi4uL3V0aWxzL3RhYi1hcHAudXRpbFwiO1xyXG5pbXBvcnQgeyBnZXRFZGl0UmVjb3JkSWQsIGdldFByaW1hcnlLZXlGaWVsZHMgfSBmcm9tIFwiLi4vdXRpbHMvcmVxLXJlcy51dGlsXCI7XHJcbmltcG9ydCB7IEFQSURlbGV0ZVF1ZXJ5LCBBUElGaWx0ZXJDcml0ZXJpYSB9IGZyb20gXCIuLi9tb2RlbHMvYXBpLXF1ZXJ5LmNsYXNzXCI7XHJcbmltcG9ydCB7IFF1ZXJ5VHlwZSB9IGZyb20gXCIuLi9lbnVtcy9xdWVyeS5lbnVtXCI7XHJcblxyXG5cclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVGFiRGVsZXRlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkc3FIZWxwZXIgPSBpbmplY3QoRFNRSGVscGVyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHNjcmVlbkhlbHBlciA9IGluamVjdChTY3JlZW5IZWxwZXIpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgd2hlcmVDbGF1c2VIZWxwZXIgPSBpbmplY3QoV2hlcmVDbGF1c2VIZWxwZXIpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdFJlc3BvbnNlSGVscGVyID0gaW5qZWN0KFJlcXVlc3RSZXNwb25zZUhlbHBlcik7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYSByZWNvcmQgYmFzZWQgb24gdGhlIGdpdmVuIHNjcmVlbiBJRCwgZGF0YSwgYW5kIG9iamVjdCBJRC5cclxuICAgKiBAcGFyYW0gc2NyZWVuSWQgVGhlIElEIG9mIHRoZSBzY3JlZW4uXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgb2YgdGhlIHJlY29yZCB0byBkZWxldGUuXHJcbiAgICogQHBhcmFtIG9iamVjdElEVG9TYXZlIFRoZSBvYmplY3QgSUQgb2YgdGhlIHJlY29yZCB0byBzYXZlLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIG9mIHRoZSBkZWxldGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZVJlY29yZChzY3JlZW5JZDogc3RyaW5nLCBkYXRhOiBhbnksIG9iamVjdElEVG9TYXZlOiBhbnkpIHtcclxuICAgIGxldCBmaWVsZHM7XHJcbiAgICBsZXQgYXBwT2JqZWN0OiBBcHBPYmplY3QgPSBuZXcgQXBwT2JqZWN0KCk7XHJcbiAgICBsZXQgY3J1ZFRhYmxlTmFtZTtcclxuICAgIGlmIChzY3JlZW5JZCkge1xyXG4gICAgICAvLyBSZXRyaWV2ZSBzY3JlZW4gaW5mb3JtYXRpb24gYW5kIGZpZWxkc1xyXG4gICAgICBjb25zdCBzY3JlZW46IEFwcFNjcmVlbiA9IHRoaXMuc2NyZWVuSGVscGVyLmdldFNjcmVlbihzY3JlZW5JZCk7XHJcbiAgICAgIGNvbnN0IHNjcmVlbkRhdGFTb3VyY2UgPSBnZXREYXRhRnJvbURhdGFTb3VyY2VRdWVyeUlEKHNjcmVlbi5EYXRhU291cmNlUXVlcnkpO1xyXG4gICAgICBhcHBPYmplY3QgPSBnZXRBcHBPYmplY3Qoc2NyZWVuRGF0YVNvdXJjZS5PYmplY3RJRF9Ub3NhdmUpO1xyXG4gICAgICBjcnVkVGFibGVOYW1lID0gYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lO1xyXG4gICAgICBmaWVsZHMgPSBzY3JlZW5EYXRhU291cmNlPy5GaWVsZHM/Lm1hcCgoZmllbGQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFwcEZpZWxkID0gYXBwT2JqZWN0Py5GaWVsZHM/LmZpbmQoKGY6IGFueSkgPT4gZj8uSUQ/LnRvTG93ZXJDYXNlKCkgPT09IGZpZWxkPy5BcHBGaWVsZElEPy50b0xvd2VyQ2FzZSgpKSA/PyB7fTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uZmllbGQsXHJcbiAgICAgICAgICBGaWVsZDogYXBwRmllbGRcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChvYmplY3RJRFRvU2F2ZSkge1xyXG4gICAgICAvLyBSZXRyaWV2ZSBmaWVsZHMgYmFzZWQgb24gb2JqZWN0IElEXHJcbiAgICAgIGZpZWxkcyA9IFtdO1xyXG4gICAgICBhcHBPYmplY3QgPSBnZXRBcHBPYmplY3Qob2JqZWN0SURUb1NhdmUpO1xyXG4gICAgICBhcHBPYmplY3QuRmllbGRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgZmllbGRzLnB1c2goeyBGaWVsZDogZWxlbWVudCB9KVxyXG4gICAgICB9KTtcclxuICAgICAgY3J1ZFRhYmxlTmFtZSA9IGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHByaW1hcnlLZXlGaWVsZHM6IGFueSA9IGdldFByaW1hcnlLZXlGaWVsZHMoYXBwT2JqZWN0KTtcclxuICAgIGlmIChhcHBPYmplY3QpIHtcclxuICAgICAgbGV0IHdoZXJlQ2xhdXNlOiBhbnkgPSBBUElGaWx0ZXJDcml0ZXJpYTtcclxuICAgICAgaWYgKHByaW1hcnlLZXlGaWVsZHMgJiYgcHJpbWFyeUtleUZpZWxkcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgLy8gQmluZCB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0ZSBvcGVyYXRpb24gd2l0aCBtdWx0aXBsZSBwcmltYXJ5IGtleXNcclxuICAgICAgICB3aGVyZUNsYXVzZSA9IHRoaXMud2hlcmVDbGF1c2VIZWxwZXIuYmluZFdoZXJlQ2xhdXNlRm9yRGVsZXRlV2l0aE11bHRpcGxlUHJpbWFyeUtleXMoZGF0YS5kYXRhLCBwcmltYXJ5S2V5RmllbGRzLCBjcnVkVGFibGVOYW1lKTtcclxuICAgICAgfSBlbHNlIGlmIChwcmltYXJ5S2V5RmllbGRzICYmIHByaW1hcnlLZXlGaWVsZHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy8gQmluZCB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0ZSBvcGVyYXRpb24gd2l0aCBzaW5nbGUgcHJpbWFyeSBrZXlcclxuICAgICAgICBjb25zdCByZWNvcmRJZCA9IGdldEVkaXRSZWNvcmRJZChkYXRhLmRhdGEsIHByaW1hcnlLZXlGaWVsZHNbMF0/LkZpZWxkTmFtZSk7XHJcbiAgICAgICAgd2hlcmVDbGF1c2UgPSB0aGlzLndoZXJlQ2xhdXNlSGVscGVyLmJpbmRXaGVyZUNsYXVzZUZvckRlbGV0ZShmaWVsZHMsIHJlY29yZElkLCBwcmltYXJ5S2V5RmllbGRzWzBdPy5GaWVsZE5hbWUsIGNydWRUYWJsZU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRhdGFPYmogPSB0aGlzLnJlcXVlc3RSZXNwb25zZUhlbHBlci5kZWxldGVQYXlsb2FkKGNydWRUYWJsZU5hbWUsIHdoZXJlQ2xhdXNlKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlKGRhdGFPYmopO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIGEgcmVjb3JkIGJ5IHRoZSBzcGVjaWZpZWQgdGFibGUgbmFtZSBhbmQgcHJpbWFyeSBrZXkgdmFsdWUuXHJcbiAgICogQHBhcmFtIHRhYmxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgdGFibGUuXHJcbiAgICogQHBhcmFtIHByaW1hcnlLZXkgVGhlIHByaW1hcnkga2V5IGZpZWxkLlxyXG4gICAqIEBwYXJhbSBwcmltYXJ5S2V5VmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBwcmltYXJ5IGtleS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBvZiB0aGUgZGVsZXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBkZWxldGVSZWNvcmRCeVRhYmxlKHRhYmxlTmFtZTogc3RyaW5nLCBwcmltYXJ5S2V5OiBzdHJpbmcsIHByaW1hcnlLZXlWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICAvLyBCaW5kIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRlIG9wZXJhdGlvbiBieSB0YWJsZVxyXG4gICAgY29uc3Qgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhID0gdGhpcy53aGVyZUNsYXVzZUhlbHBlci5iaW5kV2hlcmVDbGF1c2VGb3JEZWxldGVCeVRhYmxlKHRhYmxlTmFtZSwgcHJpbWFyeUtleSwgcHJpbWFyeUtleVZhbHVlKTtcclxuICAgIGNvbnN0IGRhdGFPYmogPSB0aGlzLnJlcXVlc3RSZXNwb25zZUhlbHBlci5kZWxldGVQYXlsb2FkKHRhYmxlTmFtZSwgd2hlcmVDbGF1c2UpO1xyXG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlKGRhdGFPYmopO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZXMgdGhlIGRlbGV0ZSBvcGVyYXRpb24uXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRlbGV0ZSBxdWVyeSBwYXlsb2FkLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIG9mIHRoZSBkZWxldGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZShkYXRhOiBBUElEZWxldGVRdWVyeSkge1xyXG4gICAgLy8gRGlzcGxheSBkZWxldGUgY29uZmlybWF0aW9uIHBvcHVwXHJcbiAgICAvLyBjb25zdCBkZWxldGVDb25maXJtYXRpb24gPSB0aGlzLmRlbGV0ZVJlY29yZFBvcHVwKCk7XHJcbiAgICAvLyBpZiAoZGVsZXRlQ29uZmlybWF0aW9uKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRzcUhlbHBlci5leGVjdXRlUXVlcnkoZGF0YSwgUXVlcnlUeXBlLkRlbGV0ZSk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAvLyByZXR1cm4gbnVsbDtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXlzIGEgZGVsZXRlIGNvbmZpcm1hdGlvbiBwb3B1cC5cclxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB1c2VyIGNvbmZpcm1zIHRoZSBkZWxldGUgb3BlcmF0aW9uLCBvdGhlcndpc2UgZmFsc2UuXHJcbiAgICovXHJcbiAgZGVsZXRlUmVjb3JkUG9wdXAoKSB7XHJcbiAgICBjb25zdCB0ZXh0ID0gXCJZb3UgYXJlIGdvaW5nIHRvIGRlbGV0ZSBzZWxlY3RlZCByZWNvcmQuIEFyZSB5b3Ugc3VyZSB3YW50IHRvIGRlbGV0ZSB0aGUgc2FtZT9cIjtcclxuICAgIGlmIChjb25maXJtKHRleHQpID09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIG11bHRpcGxlIHJlY29yZHMgYnkgdGFibGUgbmFtZSBhbmQgdmFsdWVzLlxyXG4gICAqIEBwYXJhbSB0YWJsZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHRhYmxlLlxyXG4gICAqIEBwYXJhbSB2YWx1ZXMgVGhlIHZhbHVlcyBvZiB0aGUgcmVjb3JkcyB0byBkZWxldGUuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2Ugb2YgdGhlIGRlbGV0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgZGVsZXRlTXVsdGlwbGVSZWNvcmRCeVRhYmxlKHRhYmxlTmFtZTogc3RyaW5nLCB2YWx1ZXM6IGFueSkge1xyXG4gICAgLy8gUmV0cmlldmUgYXBwIG9iamVjdCBhbmQgcHJpbWFyeSBrZXkgZmllbGRzXHJcbiAgICBjb25zdCBhcHBPYmplY3QgPSBnZXRBcHBPYmplY3RGcm9tU3lzdGVtREJUYWJsZU5hbWUodGFibGVOYW1lKTtcclxuICAgIGNvbnN0IHByaW1hcnlLZXlGaWVsZHM6IGFueSA9IGdldFByaW1hcnlLZXlGaWVsZHMoYXBwT2JqZWN0KTtcclxuICAgIC8vIEdlbmVyYXRlIHZhbHVlcyBhcnJheSBmcm9tIGRhdGFcclxuICAgIGNvbnN0IHZhbHVlQXJyYXkgPSB0aGlzLmdlbmVyYXRlVmFsdWVzQXJyYXlGcm9tRGF0YSh2YWx1ZXMsIHByaW1hcnlLZXlGaWVsZHNbMF0/LkZpZWxkTmFtZSlcclxuICAgIC8vIEJpbmQgd2hlcmUgY2xhdXNlIGZvciBkZWxldGUgb3BlcmF0aW9uIHVzaW5nIElOIG9wZXJhdG9yIGJ5IHRhYmxlXHJcbiAgICBjb25zdCB3aGVyZUNsYXVzZTogQVBJRmlsdGVyQ3JpdGVyaWEgPSB0aGlzLndoZXJlQ2xhdXNlSGVscGVyLmJpbmRXaGVyZUNsYXVzZUZvckRlbGV0ZVVzaW5nSW5PcGVyYXRvckJ5VGFibGUodGFibGVOYW1lLCBwcmltYXJ5S2V5RmllbGRzWzBdPy5GaWVsZE5hbWUsIHZhbHVlQXJyYXkpO1xyXG4gICAgY29uc3QgZGF0YU9iaiA9IHRoaXMucmVxdWVzdFJlc3BvbnNlSGVscGVyLmRlbGV0ZVBheWxvYWQodGFibGVOYW1lLCB3aGVyZUNsYXVzZSk7XHJcbiAgICByZXR1cm4gdGhpcy5kZWxldGUoZGF0YU9iaik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgYSB2YWx1ZXMgYXJyYXkgZnJvbSB0aGUgZGF0YS5cclxuICAgKiBAcGFyYW0gZGF0YUFycmF5IFRoZSBhcnJheSBvZiBkYXRhLlxyXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBleHRyYWN0IGZyb20gZWFjaCBlbGVtZW50LlxyXG4gICAqIEByZXR1cm5zIFRoZSBhcnJheSBvZiB2YWx1ZXMuXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVWYWx1ZXNBcnJheUZyb21EYXRhKGRhdGFBcnJheTogYW55LCBrZXk6IGFueSkge1xyXG4gICAgY29uc3QgdmFsdWVBcnJheTogYW55ID0gW11cclxuICAgIGlmIChkYXRhQXJyYXkgJiYgZGF0YUFycmF5Lmxlbmd0aCkge1xyXG4gICAgICBkYXRhQXJyYXkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgdmFsdWVBcnJheS5wdXNoKGVsZW1lbnRba2V5XSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVBcnJheVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWRlbGV0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWRlbGV0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlDQUFpQyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdFLE9BQU8sRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBTWhELE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFbUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QywwQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztLQWlMeEU7SUEv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WUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUE7SUFDbkIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCw0Q0FBNEMsQ0FBQyxTQUFjO1FBQ3pELE1BQU0sVUFBVSxHQUFRLEVBQUUsQ0FBQztRQUMzQiwwREFBMEQ7UUFDMUQsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLDhDQUE4QztZQUM5QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEtBQWEsRUFBRSxFQUFFO2dCQUNoRCxrQ0FBa0M7Z0JBQ2xDLElBQUksT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUMzQyxpREFBaUQ7b0JBQ2pELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTt3QkFDL0MsK0VBQStFO3dCQUMvRSxVQUFVLENBQUMsSUFBSSxDQUFDOzRCQUNkLEdBQUcsRUFBRSxHQUFHOzRCQUNSLEtBQUssRUFBRSxLQUFLOzRCQUNaLE9BQU8sRUFBRSxLQUFLO3lCQUNmLENBQUMsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztpRkFwTFUsZ0JBQWdCO3VFQUFoQixnQkFBZ0IsV0FBaEIsZ0JBQWdCLG1CQURILE1BQU07O2lGQUNuQixnQkFBZ0I7Y0FENUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERTUUhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbW1vbi9kc3EuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBTY3JlZW5IZWxwZXIgfSBmcm9tIFwiLi4vaGVscGVycy9zY3JlZW4vc2NyZWVuLmhlbHBlcnNcIjtcclxuaW1wb3J0IHsgV2hlcmVDbGF1c2VIZWxwZXIgfSBmcm9tIFwiLi4vaGVscGVycy9jb21tb24vd2hlcmUtY2xhdXNlLmhlbHBlcnNcIjtcclxuaW1wb3J0IHsgUmVxdWVzdFJlc3BvbnNlSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL3JlcS1yZXMuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBBcHBPYmplY3QsIEFwcFNjcmVlbiB9IGZyb20gXCIuLi9tb2RlbHMvYXBwLW9iamVjdC5jbGFzc1wiO1xyXG5pbXBvcnQgeyBnZXRBcHBPYmplY3QsIGdldEFwcE9iamVjdEZyb21TeXN0ZW1EQlRhYmxlTmFtZSwgZ2V0RGF0YUZyb21EYXRhU291cmNlUXVlcnlJRCB9IGZyb20gXCIuLi91dGlscy90YWItYXBwLnV0aWxcIjtcclxuaW1wb3J0IHsgZ2V0RWRpdFJlY29yZElkLCBnZXRQcmltYXJ5S2V5RmllbGRzIH0gZnJvbSBcIi4uL3V0aWxzL3JlcS1yZXMudXRpbFwiO1xyXG5pbXBvcnQgeyBBUElEZWxldGVRdWVyeSwgQVBJRmlsdGVyQ3JpdGVyaWEgfSBmcm9tIFwiLi4vbW9kZWxzL2FwaS1xdWVyeS5jbGFzc1wiO1xyXG5pbXBvcnQgeyBRdWVyeVR5cGUgfSBmcm9tIFwiLi4vZW51bXMvcXVlcnkuZW51bVwiO1xyXG5cclxuXHJcblxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFRhYkRlbGV0ZVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZHNxSGVscGVyID0gaW5qZWN0KERTUUhlbHBlcik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzY3JlZW5IZWxwZXIgPSBpbmplY3QoU2NyZWVuSGVscGVyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHdoZXJlQ2xhdXNlSGVscGVyID0gaW5qZWN0KFdoZXJlQ2xhdXNlSGVscGVyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RSZXNwb25zZUhlbHBlciA9IGluamVjdChSZXF1ZXN0UmVzcG9uc2VIZWxwZXIpO1xyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIGEgcmVjb3JkIGJhc2VkIG9uIHRoZSBnaXZlbiBzY3JlZW4gSUQsIGRhdGEsIGFuZCBvYmplY3QgSUQuXHJcbiAgICogQHBhcmFtIHNjcmVlbklkIFRoZSBJRCBvZiB0aGUgc2NyZWVuLlxyXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIG9mIHRoZSByZWNvcmQgdG8gZGVsZXRlLlxyXG4gICAqIEBwYXJhbSBvYmplY3RJRFRvU2F2ZSBUaGUgb2JqZWN0IElEIG9mIHRoZSByZWNvcmQgdG8gc2F2ZS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBvZiB0aGUgZGVsZXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBkZWxldGVSZWNvcmQoc2NyZWVuSWQ6IHN0cmluZywgZGF0YTogYW55LCBvYmplY3RJRFRvU2F2ZTogYW55KSB7XHJcbiAgICBsZXQgZmllbGRzO1xyXG4gICAgbGV0IGFwcE9iamVjdDogQXBwT2JqZWN0ID0gbmV3IEFwcE9iamVjdCgpO1xyXG4gICAgbGV0IGNydWRUYWJsZU5hbWU7XHJcbiAgICBpZiAoc2NyZWVuSWQpIHtcclxuICAgICAgLy8gUmV0cmlldmUgc2NyZWVuIGluZm9ybWF0aW9uIGFuZCBmaWVsZHNcclxuICAgICAgY29uc3Qgc2NyZWVuOiBBcHBTY3JlZW4gPSB0aGlzLnNjcmVlbkhlbHBlci5nZXRTY3JlZW4oc2NyZWVuSWQpO1xyXG4gICAgICBjb25zdCBzY3JlZW5EYXRhU291cmNlID0gZ2V0RGF0YUZyb21EYXRhU291cmNlUXVlcnlJRChzY3JlZW4uRGF0YVNvdXJjZVF1ZXJ5KTtcclxuICAgICAgYXBwT2JqZWN0ID0gZ2V0QXBwT2JqZWN0KHNjcmVlbkRhdGFTb3VyY2UuT2JqZWN0SURfVG9zYXZlKTtcclxuICAgICAgY3J1ZFRhYmxlTmFtZSA9IGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZTtcclxuICAgICAgZmllbGRzID0gc2NyZWVuRGF0YVNvdXJjZT8uRmllbGRzPy5tYXAoKGZpZWxkOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBhcHBGaWVsZCA9IGFwcE9iamVjdD8uRmllbGRzPy5maW5kKChmOiBhbnkpID0+IGY/LklEPy50b0xvd2VyQ2FzZSgpID09PSBmaWVsZD8uQXBwRmllbGRJRD8udG9Mb3dlckNhc2UoKSkgPz8ge307XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLmZpZWxkLFxyXG4gICAgICAgICAgRmllbGQ6IGFwcEZpZWxkXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAob2JqZWN0SURUb1NhdmUpIHtcclxuICAgICAgLy8gUmV0cmlldmUgZmllbGRzIGJhc2VkIG9uIG9iamVjdCBJRFxyXG4gICAgICBmaWVsZHMgPSBbXTtcclxuICAgICAgYXBwT2JqZWN0ID0gZ2V0QXBwT2JqZWN0KG9iamVjdElEVG9TYXZlKTtcclxuICAgICAgYXBwT2JqZWN0LkZpZWxkcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIGZpZWxkcy5wdXNoKHsgRmllbGQ6IGVsZW1lbnQgfSlcclxuICAgICAgfSk7XHJcbiAgICAgIGNydWRUYWJsZU5hbWUgPSBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwcmltYXJ5S2V5RmllbGRzOiBhbnkgPSBnZXRQcmltYXJ5S2V5RmllbGRzKGFwcE9iamVjdCk7XHJcbiAgICBpZiAoYXBwT2JqZWN0KSB7XHJcbiAgICAgIGxldCB3aGVyZUNsYXVzZTogYW55ID0gQVBJRmlsdGVyQ3JpdGVyaWE7XHJcbiAgICAgIGlmIChwcmltYXJ5S2V5RmllbGRzICYmIHByaW1hcnlLZXlGaWVsZHMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIC8vIEJpbmQgd2hlcmUgY2xhdXNlIGZvciBkZWxldGUgb3BlcmF0aW9uIHdpdGggbXVsdGlwbGUgcHJpbWFyeSBrZXlzXHJcbiAgICAgICAgd2hlcmVDbGF1c2UgPSB0aGlzLndoZXJlQ2xhdXNlSGVscGVyLmJpbmRXaGVyZUNsYXVzZUZvckRlbGV0ZVdpdGhNdWx0aXBsZVByaW1hcnlLZXlzKGRhdGEuZGF0YSwgcHJpbWFyeUtleUZpZWxkcywgY3J1ZFRhYmxlTmFtZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJpbWFyeUtleUZpZWxkcyAmJiBwcmltYXJ5S2V5RmllbGRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIC8vIEJpbmQgd2hlcmUgY2xhdXNlIGZvciBkZWxldGUgb3BlcmF0aW9uIHdpdGggc2luZ2xlIHByaW1hcnkga2V5XHJcbiAgICAgICAgY29uc3QgcmVjb3JkSWQgPSBnZXRFZGl0UmVjb3JkSWQoZGF0YS5kYXRhLCBwcmltYXJ5S2V5RmllbGRzWzBdPy5GaWVsZE5hbWUpO1xyXG4gICAgICAgIHdoZXJlQ2xhdXNlID0gdGhpcy53aGVyZUNsYXVzZUhlbHBlci5iaW5kV2hlcmVDbGF1c2VGb3JEZWxldGUoZmllbGRzLCByZWNvcmRJZCwgcHJpbWFyeUtleUZpZWxkc1swXT8uRmllbGROYW1lLCBjcnVkVGFibGVOYW1lKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkYXRhT2JqID0gdGhpcy5yZXF1ZXN0UmVzcG9uc2VIZWxwZXIuZGVsZXRlUGF5bG9hZChjcnVkVGFibGVOYW1lLCB3aGVyZUNsYXVzZSk7XHJcbiAgICAgIHJldHVybiB0aGlzLmRlbGV0ZShkYXRhT2JqKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhIHJlY29yZCBieSB0aGUgc3BlY2lmaWVkIHRhYmxlIG5hbWUgYW5kIHByaW1hcnkga2V5IHZhbHVlLlxyXG4gICAqIEBwYXJhbSB0YWJsZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHRhYmxlLlxyXG4gICAqIEBwYXJhbSBwcmltYXJ5S2V5IFRoZSBwcmltYXJ5IGtleSBmaWVsZC5cclxuICAgKiBAcGFyYW0gcHJpbWFyeUtleVZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgcHJpbWFyeSBrZXkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2Ugb2YgdGhlIGRlbGV0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgZGVsZXRlUmVjb3JkQnlUYWJsZSh0YWJsZU5hbWU6IHN0cmluZywgcHJpbWFyeUtleTogc3RyaW5nLCBwcmltYXJ5S2V5VmFsdWU6IHN0cmluZykge1xyXG4gICAgLy8gQmluZCB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0ZSBvcGVyYXRpb24gYnkgdGFibGVcclxuICAgIGNvbnN0IHdoZXJlQ2xhdXNlOiBBUElGaWx0ZXJDcml0ZXJpYSA9IHRoaXMud2hlcmVDbGF1c2VIZWxwZXIuYmluZFdoZXJlQ2xhdXNlRm9yRGVsZXRlQnlUYWJsZSh0YWJsZU5hbWUsIHByaW1hcnlLZXksIHByaW1hcnlLZXlWYWx1ZSk7XHJcbiAgICBjb25zdCBkYXRhT2JqID0gdGhpcy5yZXF1ZXN0UmVzcG9uc2VIZWxwZXIuZGVsZXRlUGF5bG9hZCh0YWJsZU5hbWUsIHdoZXJlQ2xhdXNlKTtcclxuICAgIHJldHVybiB0aGlzLmRlbGV0ZShkYXRhT2JqKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGVzIHRoZSBkZWxldGUgb3BlcmF0aW9uLlxyXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBkZWxldGUgcXVlcnkgcGF5bG9hZC5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBvZiB0aGUgZGVsZXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBkZWxldGUoZGF0YTogQVBJRGVsZXRlUXVlcnkpIHtcclxuICAgIC8vIERpc3BsYXkgZGVsZXRlIGNvbmZpcm1hdGlvbiBwb3B1cFxyXG4gICAgLy8gY29uc3QgZGVsZXRlQ29uZmlybWF0aW9uID0gdGhpcy5kZWxldGVSZWNvcmRQb3B1cCgpO1xyXG4gICAgLy8gaWYgKGRlbGV0ZUNvbmZpcm1hdGlvbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5kc3FIZWxwZXIuZXhlY3V0ZVF1ZXJ5KGRhdGEsIFF1ZXJ5VHlwZS5EZWxldGUpO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgICAgLy8gcmV0dXJuIG51bGw7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNwbGF5cyBhIGRlbGV0ZSBjb25maXJtYXRpb24gcG9wdXAuXHJcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgdXNlciBjb25maXJtcyB0aGUgZGVsZXRlIG9wZXJhdGlvbiwgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAqL1xyXG4gIGRlbGV0ZVJlY29yZFBvcHVwKCkge1xyXG4gICAgY29uc3QgdGV4dCA9IFwiWW91IGFyZSBnb2luZyB0byBkZWxldGUgc2VsZWN0ZWQgcmVjb3JkLiBBcmUgeW91IHN1cmUgd2FudCB0byBkZWxldGUgdGhlIHNhbWU/XCI7XHJcbiAgICBpZiAoY29uZmlybSh0ZXh0KSA9PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBtdWx0aXBsZSByZWNvcmRzIGJ5IHRhYmxlIG5hbWUgYW5kIHZhbHVlcy5cclxuICAgKiBAcGFyYW0gdGFibGVOYW1lIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS5cclxuICAgKiBAcGFyYW0gdmFsdWVzIFRoZSB2YWx1ZXMgb2YgdGhlIHJlY29yZHMgdG8gZGVsZXRlLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIG9mIHRoZSBkZWxldGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZU11bHRpcGxlUmVjb3JkQnlUYWJsZSh0YWJsZU5hbWU6IHN0cmluZywgdmFsdWVzOiBhbnkpIHtcclxuICAgIC8vIFJldHJpZXZlIGFwcCBvYmplY3QgYW5kIHByaW1hcnkga2V5IGZpZWxkc1xyXG4gICAgY29uc3QgYXBwT2JqZWN0ID0gZ2V0QXBwT2JqZWN0RnJvbVN5c3RlbURCVGFibGVOYW1lKHRhYmxlTmFtZSk7XHJcbiAgICBjb25zdCBwcmltYXJ5S2V5RmllbGRzOiBhbnkgPSBnZXRQcmltYXJ5S2V5RmllbGRzKGFwcE9iamVjdCk7XHJcbiAgICAvLyBHZW5lcmF0ZSB2YWx1ZXMgYXJyYXkgZnJvbSBkYXRhXHJcbiAgICBjb25zdCB2YWx1ZUFycmF5ID0gdGhpcy5nZW5lcmF0ZVZhbHVlc0FycmF5RnJvbURhdGEodmFsdWVzLCBwcmltYXJ5S2V5RmllbGRzWzBdPy5GaWVsZE5hbWUpXHJcbiAgICAvLyBCaW5kIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRlIG9wZXJhdGlvbiB1c2luZyBJTiBvcGVyYXRvciBieSB0YWJsZVxyXG4gICAgY29uc3Qgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhID0gdGhpcy53aGVyZUNsYXVzZUhlbHBlci5iaW5kV2hlcmVDbGF1c2VGb3JEZWxldGVVc2luZ0luT3BlcmF0b3JCeVRhYmxlKHRhYmxlTmFtZSwgcHJpbWFyeUtleUZpZWxkc1swXT8uRmllbGROYW1lLCB2YWx1ZUFycmF5KTtcclxuICAgIGNvbnN0IGRhdGFPYmogPSB0aGlzLnJlcXVlc3RSZXNwb25zZUhlbHBlci5kZWxldGVQYXlsb2FkKHRhYmxlTmFtZSwgd2hlcmVDbGF1c2UpO1xyXG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlKGRhdGFPYmopO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBtdWx0aXBsZSByZWNvcmRzIGZyb20gdGhlIHNwZWNpZmllZCB0YWJsZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZGF0YSBhcnJheS5cclxuICAgKiBUaGUgZGF0YSBhcnJheSBzaG91bGQgY29udGFpbiBrZXktdmFsdWUgcGFpcnMgd2l0aG91dCBwcmltYXJ5IGtleSBpbmZvcm1hdGlvbi5cclxuICAgKiBAcGFyYW0gdGFibGVOYW1lIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS5cclxuICAgKiBAcGFyYW0gdmFsdWVzIFRoZSBhcnJheSBvZiBkYXRhIG9iamVjdHMgdG8gZGVsZXRlLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIG9mIHRoZSBkZWxldGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZU11bHRpcGxlUmVjb3JkQnlUYWJsZVdpdGhvdXRQcmltYXJ5S2V5KHRhYmxlTmFtZTogc3RyaW5nLCB2YWx1ZXM6IGFueSkge1xyXG4gICAgLy8gUmV0cmlldmUgYXBwIG9iamVjdCBhbmQgcHJpbWFyeSBrZXkgZmllbGRzXHJcbiAgICBjb25zdCBhcHBPYmplY3QgPSBnZXRBcHBPYmplY3RGcm9tU3lzdGVtREJUYWJsZU5hbWUodGFibGVOYW1lKTtcclxuICAgIC8vIEdlbmVyYXRlIHZhbHVlcyBhcnJheSBmcm9tIGRhdGFcclxuICAgIGNvbnN0IHZhbHVlQXJyYXkgPSB0aGlzLmdlbmVyYXRlVmFsdWVzQXJyYXlGcm9tRGF0YVdpdGhvdXRQcmltYXJ5S2V5KHZhbHVlcyk7ICAgIFxyXG4gICAgLy8gQmluZCB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0ZSBvcGVyYXRpb24gdXNpbmcgSU4gb3BlcmF0b3IgYnkgdGFibGVcclxuICAgIGNvbnN0IHdoZXJlQ2xhdXNlOiBBUElGaWx0ZXJDcml0ZXJpYSA9IHRoaXMud2hlcmVDbGF1c2VIZWxwZXIuYmluZFdoZXJlQ2xhdXNlRm9yRHluYW1pY0RlbGV0ZSh0YWJsZU5hbWUsIHZhbHVlQXJyYXkpO1xyXG4gICAgY29uc3QgZGF0YU9iaiA9IHRoaXMucmVxdWVzdFJlc3BvbnNlSGVscGVyLmRlbGV0ZVBheWxvYWQodGFibGVOYW1lLCB3aGVyZUNsYXVzZSk7XHJcbiAgICByZXR1cm4gdGhpcy5kZWxldGUoZGF0YU9iaik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgYSB2YWx1ZXMgYXJyYXkgZnJvbSB0aGUgZGF0YS5cclxuICAgKiBAcGFyYW0gZGF0YUFycmF5IFRoZSBhcnJheSBvZiBkYXRhLlxyXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBleHRyYWN0IGZyb20gZWFjaCBlbGVtZW50LlxyXG4gICAqIEByZXR1cm5zIFRoZSBhcnJheSBvZiB2YWx1ZXMuXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVWYWx1ZXNBcnJheUZyb21EYXRhKGRhdGFBcnJheTogYW55LCBrZXk6IGFueSkge1xyXG4gICAgY29uc3QgdmFsdWVBcnJheTogYW55ID0gW11cclxuICAgIGlmIChkYXRhQXJyYXkgJiYgZGF0YUFycmF5Lmxlbmd0aCkge1xyXG4gICAgICBkYXRhQXJyYXkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgdmFsdWVBcnJheS5wdXNoKGVsZW1lbnRba2V5XSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVBcnJheVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgYW4gYXJyYXkgb2YgdmFsdWVzIGZyb20gdGhlIHByb3ZpZGVkIGRhdGEgYXJyYXkuXHJcbiAgICogRWFjaCBlbnRyeSBpbiB0aGUgcmV0dXJuZWQgYXJyYXkgaW5jbHVkZXMga2V5LXZhbHVlIHBhaXJzIGZyb20gdGhlIGRhdGEgb2JqZWN0cyxcclxuICAgKiBhbmQgYW4gYXNzb2NpYXRlZCBHcm91cElEIGluZGljYXRpbmcgdGhlIGluZGV4IG9mIHRoZSBkYXRhIG9iamVjdC5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gZGF0YUFycmF5IEFuIGFycmF5IG9mIGRhdGEgb2JqZWN0cy5cclxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBjb250YWluaW5nIG9iamVjdHMgd2l0aCBrZXlzLCB2YWx1ZXMsIGFuZCBncm91cCBpbmRpY2VzLlxyXG4gICAqL1xyXG4gIGdlbmVyYXRlVmFsdWVzQXJyYXlGcm9tRGF0YVdpdGhvdXRQcmltYXJ5S2V5KGRhdGFBcnJheTogYW55KSB7XHJcbiAgICBjb25zdCB2YWx1ZUFycmF5OiBhbnkgPSBbXTtcclxuICAgIC8vIENoZWNrIGlmIHRoZSBpbnB1dCBkYXRhIGFycmF5IGlzIHZhbGlkIGFuZCBoYXMgZWxlbWVudHNcclxuICAgIGlmIChkYXRhQXJyYXkgJiYgZGF0YUFycmF5Lmxlbmd0aCkge1xyXG4gICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBlbGVtZW50IGluIHRoZSBkYXRhIGFycmF5XHJcbiAgICAgIGRhdGFBcnJheS5mb3JFYWNoKChlbGVtZW50OiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAvLyBFbnN1cmUgdGhlIGVsZW1lbnQgaXMgYW4gb2JqZWN0XHJcbiAgICAgICAgaWYgKGVsZW1lbnQgJiYgdHlwZW9mIGVsZW1lbnQgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBrZXktdmFsdWUgcGFpciBpbiB0aGUgb2JqZWN0XHJcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhlbGVtZW50KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgLy8gUHVzaCBhbiBvYmplY3QgY29udGFpbmluZyB0aGUga2V5LCB2YWx1ZSwgYW5kIGluZGV4IGFzIEdyb3VwSUQgdG8gdmFsdWVBcnJheVxyXG4gICAgICAgICAgICB2YWx1ZUFycmF5LnB1c2goeyBcclxuICAgICAgICAgICAgICBrZXk6IGtleSxcclxuICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgICAgR3JvdXBJRDogaW5kZXhcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlQXJyYXk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -224,6 +224,33 @@ export class WhereClauseHelper {
|
|
|
224
224
|
whereClause.FilterLogic = '1';
|
|
225
225
|
return whereClause;
|
|
226
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Binds the where clause for deleting records using a set of key value pairs
|
|
229
|
+
* @param tableName The name of the table from which to delete records
|
|
230
|
+
* @param keyValuePairs The array of key value pairs to use in the delete where clause
|
|
231
|
+
* @returns The bound where clause for delete operation using key value pairs
|
|
232
|
+
*/
|
|
233
|
+
bindWhereClauseForDynamicDelete(tableName, keyValuePairs) {
|
|
234
|
+
const whereClause = new APIFilterCriteria();
|
|
235
|
+
whereClause.Filters = [];
|
|
236
|
+
// Loop through the key value pairs and add them to the where clause
|
|
237
|
+
// The conjuction clause is AND for the first item and OR for the rest
|
|
238
|
+
keyValuePairs.forEach((pair, index) => {
|
|
239
|
+
const filter = {
|
|
240
|
+
ConjuctionClause: index === 0 ? ConjuctionClause.AND : ConjuctionClause.AND,
|
|
241
|
+
FieldID: `${tableName}.${pair.key}`,
|
|
242
|
+
RelationalOperator: RelationalOperator.EqualTo,
|
|
243
|
+
ValueType: FilterValueType.Literal,
|
|
244
|
+
value: pair.value,
|
|
245
|
+
Sequence: index,
|
|
246
|
+
GroupID: 0
|
|
247
|
+
};
|
|
248
|
+
whereClause.Filters.push(filter);
|
|
249
|
+
});
|
|
250
|
+
// The filter logic is always '1' for dynamic delete
|
|
251
|
+
whereClause.FilterLogic = '1';
|
|
252
|
+
return whereClause;
|
|
253
|
+
}
|
|
227
254
|
static { this.ɵfac = function WhereClauseHelper_Factory(t) { return new (t || WhereClauseHelper)(); }; }
|
|
228
255
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WhereClauseHelper, factory: WhereClauseHelper.ɵfac, providedIn: 'root' }); }
|
|
229
256
|
}
|
|
@@ -231,4 +258,4 @@ export class WhereClauseHelper {
|
|
|
231
258
|
type: Injectable,
|
|
232
259
|
args: [{ providedIn: 'root' }]
|
|
233
260
|
}], null, null); })();
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hlcmUtY2xhdXNlLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vd2hlcmUtY2xhdXNlLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsZUFBZSxHQUNoQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsWUFBWSxHQUNiLE1BQU0sMEJBQTBCLENBQUM7O0FBR2xDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7Ozs7Ozs7T0FPRztJQUNILHdCQUF3QixDQUN0QixNQUFXLEVBQ1gsS0FBVSxFQUNWLFNBQWlCLEVBQ2pCLGFBQXFCO1FBRXJCLE1BQU0sTUFBTSxHQUFHLGlDQUFpQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hFLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN4RCxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLGFBQWEsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILCtDQUErQyxDQUM3QyxJQUFT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QztnQkFFRixXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxXQUFXLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUM5QixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO2tGQXJSVSxpQkFBaUI7dUVBQWpCLGlCQUFpQixXQUFqQixpQkFBaUIsbUJBREosTUFBTTs7aUZBQ25CLGlCQUFpQjtjQUQ3QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBDb25qdWN0aW9uQ2xhdXNlLFxyXG4gIFJlbGF0aW9uYWxPcGVyYXRvcixcclxuICBGaWx0ZXJWYWx1ZVR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vZW51bXMvZHNxLmVudW0nO1xyXG5pbXBvcnQgeyBBUElGaWx0ZXJDcml0ZXJpYSB9IGZyb20gJy4uLy4uL21vZGVscy9hcGktcXVlcnkuY2xhc3MnO1xyXG5pbXBvcnQge1xyXG4gIGdldEFwcE9iamVjdEZyb21TeXN0ZW1EQlRhYmxlTmFtZSxcclxuICBnZXRBcHBPYmplY3QsXHJcbn0gZnJvbSAnLi4vLi4vdXRpbHMvdGFiLWFwcC51dGlsJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBXaGVyZUNsYXVzZUhlbHBlciB7XHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRpbmcgcmVjb3JkcyBiYXNlZCBvbiBmaWVsZCwgdmFsdWUsIGZpZWxkIG5hbWUsIGFuZCBDUlVEIHRhYmxlIG5hbWVcclxuICAgKiBAcGFyYW0gZmllbGRzIFRoZSBmaWVsZHMgdG8gYmluZCB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaCBpbiB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBUaGUgZmllbGQgbmFtZSB0byBtYXRjaCBpbiB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIGNydWRUYWJsZU5hbWUgVGhlIENSVUQgdGFibGUgbmFtZSBmb3IgdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0ZSBvcGVyYXRpb25cclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VGb3JEZWxldGUoXHJcbiAgICBmaWVsZHM6IGFueSxcclxuICAgIHZhbHVlOiBhbnksXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIGNydWRUYWJsZU5hbWU6IHN0cmluZ1xyXG4gICkge1xyXG4gICAgY29uc3QgYXBwb2JqID0gZ2V0QXBwT2JqZWN0RnJvbVN5c3RlbURCVGFibGVOYW1lKGNydWRUYWJsZU5hbWUpO1xyXG4gICAgaWYgKGFwcG9iaiAmJiBhcHBvYmouQ1JVREFwcE9iamVjdElkICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGNydWRBcHBPYmogPSBnZXRBcHBPYmplY3QoYXBwb2JqLkNSVURBcHBPYmplY3RJZCk7XHJcbiAgICAgIGlmIChjcnVkQXBwT2JqKSB7XHJcbiAgICAgICAgY3J1ZFRhYmxlTmFtZSA9IGNydWRBcHBPYmouU3lzdGVtREJUYWJsZU5hbWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmJpbmRXaGVyZUNsYXVzZShmaWVsZHMsIHZhbHVlLCBmaWVsZE5hbWUsIGNydWRUYWJsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRpbmcgcmVjb3JkcyB3aXRoIG11bHRpcGxlIHByaW1hcnkga2V5c1xyXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIGNvbnRhaW5pbmcgcHJpbWFyeSBrZXkgdmFsdWVzXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBUaGUgZmllbGQgbmFtZSBvZiB0aGUgcHJpbWFyeSBrZXlcclxuICAgKiBAcGFyYW0gY3J1ZFRhYmxlTmFtZSBUaGUgQ1JVRCB0YWJsZSBuYW1lIGZvciB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRlIG9wZXJhdGlvbiB3aXRoIG11bHRpcGxlIHByaW1hcnkga2V5c1xyXG4gICAqL1xyXG4gIGJpbmRXaGVyZUNsYXVzZUZvckRlbGV0ZVdpdGhNdWx0aXBsZVByaW1hcnlLZXlzKFxyXG4gICAgZGF0YTogYW55LFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBjcnVkVGFibGVOYW1lOiBzdHJpbmdcclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmJpbmRXaGVyZUNsYXVzZUZvck11bHRpcGxlUHJpbWFyeUtleXMoXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgY3J1ZFRhYmxlTmFtZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgZm9yIGFuIGluc2VydCBvcGVyYXRpb25cclxuICAgKiBAcmV0dXJucyBUaGUgYm91bmQgd2hlcmUgY2xhdXNlIGZvciBpbnNlcnQgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgYmluZFdoZXJlQ2xhdXNlRm9ySW5zZXJ0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmluZFdoZXJlQ2xhdXNlRW1wdHkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIGFuIGVtcHR5IHdoZXJlIGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCBlbXB0eSB3aGVyZSBjbGF1c2VcclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VFbXB0eSgpIHtcclxuICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJMb2dpYyA9ICcxJztcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBbXTtcclxuICAgIHJldHVybiB3aGVyZUNsYXVzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgYmFzZWQgb24gcHJvdmlkZWQgcGFyYW1ldGVyc1xyXG4gICAqIEBwYXJhbSBmaWVsZHMgVGhlIGZpZWxkcyB0byBiaW5kIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIG1hdGNoIGluIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIFRoZSBmaWVsZCBuYW1lIHRvIG1hdGNoIGluIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcGFyYW0gY3J1ZFRhYmxlTmFtZSBUaGUgQ1JVRCB0YWJsZSBuYW1lIGZvciB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgYmluZFdoZXJlQ2xhdXNlKFxyXG4gICAgZmllbGRzOiBhbnlbXSxcclxuICAgIHZhbHVlOiBhbnksXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIGNydWRUYWJsZU5hbWU6IHN0cmluZ1xyXG4gICk6IEFQSUZpbHRlckNyaXRlcmlhIHtcclxuICAgIGNvbnN0IGZpbHRlcmVkRmllbGRzID0gZmllbGRzLmZpbHRlcigoZjogYW55KSA9PlxyXG4gICAgICBmaWVsZE5hbWVcclxuICAgICAgICA/IGYuRmllbGQ/LkZpZWxkTmFtZSA9PT0gZmllbGROYW1lXHJcbiAgICAgICAgOiBmLkZpZWxkPy5GaWVsZE5hbWUgPT09ICdJZCcgfHwgZi5GaWVsZD8uRmllbGROYW1lID09PSAnSUQnXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXJlZEZpZWxkcy5tYXAoKGZpZWxkOiBhbnkpID0+ICh7XHJcbiAgICAgIENvbmp1Y3Rpb25DbGF1c2U6IENvbmp1Y3Rpb25DbGF1c2UuQU5ELFxyXG4gICAgICBGaWVsZElEOiBjcnVkVGFibGVOYW1lICsgJy4nICsgZmllbGQuRmllbGQuU3lzdGVtREJGaWVsZE5hbWUsXHJcbiAgICAgIFJlbGF0aW9uYWxPcGVyYXRvcjogUmVsYXRpb25hbE9wZXJhdG9yLkVxdWFsVG8sXHJcbiAgICAgIFZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsXHJcbiAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgU2VxdWVuY2U6IDAsXHJcbiAgICAgIEdyb3VwSUQ6IDAsXHJcbiAgICB9KSk7XHJcblxyXG4gICAgY29uc3Qgd2hlcmVDbGF1c2UgPSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEoKTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBmaWx0ZXJzO1xyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVyTG9naWMgPSAnMSc7XHJcblxyXG4gICAgcmV0dXJuIHdoZXJlQ2xhdXNlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0aW5nIHJlY29yZHMgd2l0aCBtdWx0aXBsZSBwcmltYXJ5IGtleXNcclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSBjb250YWluaW5nIHByaW1hcnkga2V5IHZhbHVlc1xyXG4gICAqIEBwYXJhbSBwcmltYXJ5S2V5cyBUaGUgYXJyYXkgb2YgcHJpbWFyeSBrZXkgZmllbGRzXHJcbiAgICogQHBhcmFtIGNydWRUYWJsZU5hbWUgVGhlIENSVUQgdGFibGUgbmFtZSBmb3IgdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0ZSBvcGVyYXRpb24gd2l0aCBtdWx0aXBsZSBwcmltYXJ5IGtleXNcclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VGb3JNdWx0aXBsZVByaW1hcnlLZXlzKFxyXG4gICAgZGF0YTogYW55LFxyXG4gICAgcHJpbWFyeUtleXM6IGFueSxcclxuICAgIGNydWRUYWJsZU5hbWU6IHN0cmluZ1xyXG4gICkge1xyXG4gICAgY29uc3Qgd2hlcmVDbGF1c2UgPSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEoKTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBbXTtcclxuICAgIGlmIChwcmltYXJ5S2V5cyAmJiBwcmltYXJ5S2V5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHByaW1hcnlLZXlzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YVtlbGVtZW50LkZpZWxkTmFtZV07XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBjb25zdCBmaWx0ZXI6IGFueSA9IHtcclxuICAgICAgICAgICAgQ29uanVjdGlvbkNsYXVzZTogQ29uanVjdGlvbkNsYXVzZS5BTkQsXHJcbiAgICAgICAgICAgIEZpZWxkSUQ6IGNydWRUYWJsZU5hbWUgKyAnLicgKyBlbGVtZW50LlN5c3RlbURCRmllbGROYW1lLFxyXG4gICAgICAgICAgICBSZWxhdGlvbmFsT3BlcmF0b3I6IFJlbGF0aW9uYWxPcGVyYXRvci5FcXVhbFRvLFxyXG4gICAgICAgICAgICBWYWx1ZVR5cGU6IEZpbHRlclZhbHVlVHlwZS5MaXRlcmFsLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIFNlcXVlbmNlOiAwLFxyXG4gICAgICAgICAgICBHcm91cElEOiAwLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJMb2dpYyA9ICcxJztcclxuICAgIHJldHVybiB3aGVyZUNsYXVzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgZm9yIHVwZGF0aW5nIHJlY29yZHNcclxuICAgKiBAcGFyYW0gdGFibGVOYW1lIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSB0byB1cGRhdGVcclxuICAgKiBAcGFyYW0gcXVlcnlGaWVsZHNBcnJheSBUaGUgYXJyYXkgb2YgZmllbGRzIGFuZCB2YWx1ZXMgZm9yIHRoZSB1cGRhdGUgcXVlcnlcclxuICAgKiBAcmV0dXJucyBUaGUgYm91bmQgd2hlcmUgY2xhdXNlIGZvciB1cGRhdGUgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgYmluZFdoZXJlQ2xhdXNlRm9yVXBkYXRlKHRhYmxlTmFtZTogc3RyaW5nLCBxdWVyeUZpZWxkc0FycmF5OiBhbnkpIHtcclxuICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzID0gW107XHJcbiAgICBpZiAocXVlcnlGaWVsZHNBcnJheS5sZW5ndGgpIHtcclxuICAgICAgcXVlcnlGaWVsZHNBcnJheS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBmaWx0ZXI6IGFueSA9IHtcclxuICAgICAgICAgIENvbmp1Y3Rpb25DbGF1c2U6IENvbmp1Y3Rpb25DbGF1c2UuQU5ELFxyXG4gICAgICAgICAgRmllbGRJRDogdGFibGVOYW1lICsgJy4nICsgZWxlbWVudC5GaWVsZE5hbWUsXHJcbiAgICAgICAgICBSZWxhdGlvbmFsT3BlcmF0b3I6IFJlbGF0aW9uYWxPcGVyYXRvci5FcXVhbFRvLFxyXG4gICAgICAgICAgVmFsdWVUeXBlOiBGaWx0ZXJWYWx1ZVR5cGUuTGl0ZXJhbCxcclxuICAgICAgICAgIHZhbHVlOiBlbGVtZW50LkZpZWxkVmFsdWUsXHJcbiAgICAgICAgICBTZXF1ZW5jZTogMCxcclxuICAgICAgICAgIEdyb3VwSUQ6IDAsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzLnB1c2goZmlsdGVyKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJMb2dpYyA9ICcxJztcclxuICAgIHJldHVybiB3aGVyZUNsYXVzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0aW5nIHJlY29yZHMgYnkgdGFibGUgYW5kIHByaW1hcnkga2V5XHJcbiAgICogQHBhcmFtIHRhYmxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgZnJvbSB3aGljaCB0byBkZWxldGUgcmVjb3Jkc1xyXG4gICAqIEBwYXJhbSBwcmltYXJ5S2V5IFRoZSBuYW1lIG9mIHRoZSBwcmltYXJ5IGtleSBmaWVsZFxyXG4gICAqIEBwYXJhbSBwcmltYXJ5S2V5VmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBwcmltYXJ5IGtleVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0ZSBvcGVyYXRpb24gdXNpbmcgdGFibGUgYW5kIHByaW1hcnkga2V5XHJcbiAgICovXHJcbiAgYmluZFdoZXJlQ2xhdXNlRm9yRGVsZXRlQnlUYWJsZShcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgcHJpbWFyeUtleTogc3RyaW5nLFxyXG4gICAgcHJpbWFyeUtleVZhbHVlOiBzdHJpbmdcclxuICApIHtcclxuICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzID0gW107XHJcbiAgICBjb25zdCBmaWx0ZXI6IGFueSA9IHtcclxuICAgICAgQ29uanVjdGlvbkNsYXVzZTogQ29uanVjdGlvbkNsYXVzZS5BTkQsXHJcbiAgICAgIEZpZWxkSUQ6IHRhYmxlTmFtZSArICcuJyArIHByaW1hcnlLZXksXHJcbiAgICAgIFJlbGF0aW9uYWxPcGVyYXRvcjogUmVsYXRpb25hbE9wZXJhdG9yLkVxdWFsVG8sXHJcbiAgICAgIFZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsXHJcbiAgICAgIHZhbHVlOiBwcmltYXJ5S2V5VmFsdWUsXHJcbiAgICAgIFNlcXVlbmNlOiAwLFxyXG4gICAgICBHcm91cElEOiAwLFxyXG4gICAgfTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVyTG9naWMgPSAnMSc7XHJcbiAgICByZXR1cm4gd2hlcmVDbGF1c2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kcyB0aGUgd2hlcmUgY2xhdXNlIGZvciBkZWxldGluZyByZWNvcmRzIHVzaW5nIElOIG9wZXJhdG9yIGJ5IHRhYmxlXHJcbiAgICogQHBhcmFtIHRhYmxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgZnJvbSB3aGljaCB0byBkZWxldGUgcmVjb3Jkc1xyXG4gICAqIEBwYXJhbSBwcmltYXJ5S2V5IFRoZSBuYW1lIG9mIHRoZSBwcmltYXJ5IGtleSBmaWVsZFxyXG4gICAqIEBwYXJhbSB2YWx1ZXMgVGhlIGFycmF5IG9mIHZhbHVlcyBmb3IgdGhlIElOIG9wZXJhdG9yXHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRlIG9wZXJhdGlvbiB1c2luZyBJTiBvcGVyYXRvciBhbmQgdGFibGVcclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VGb3JEZWxldGVVc2luZ0luT3BlcmF0b3JCeVRhYmxlKFxyXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXHJcbiAgICBwcmltYXJ5S2V5OiBzdHJpbmcsXHJcbiAgICB2YWx1ZXM6IFtdXHJcbiAgKSB7XHJcbiAgICBjb25zdCBhcHBvYmogPSBnZXRBcHBPYmplY3RGcm9tU3lzdGVtREJUYWJsZU5hbWUodGFibGVOYW1lKTtcclxuICAgIGlmIChhcHBvYmo/LkNSVURBcHBPYmplY3RJZCAhPT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBjcnVkQXBwT2JqID0gZ2V0QXBwT2JqZWN0KGFwcG9iai5DUlVEQXBwT2JqZWN0SWQpO1xyXG4gICAgICBpZiAoY3J1ZEFwcE9iaikge1xyXG4gICAgICAgIHRhYmxlTmFtZSA9IGNydWRBcHBPYmouU3lzdGVtREJUYWJsZU5hbWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzID0gW107XHJcbiAgICBjb25zdCBmaWx0ZXI6IGFueSA9IHtcclxuICAgICAgQ29uanVjdGlvbkNsYXVzZTogQ29uanVjdGlvbkNsYXVzZS5BTkQsXHJcbiAgICAgIEZpZWxkSUQ6IHRhYmxlTmFtZSArICcuJyArIHByaW1hcnlLZXksXHJcbiAgICAgIFJlbGF0aW9uYWxPcGVyYXRvcjogUmVsYXRpb25hbE9wZXJhdG9yLklOLFxyXG4gICAgICBWYWx1ZVR5cGU6IEZpbHRlclZhbHVlVHlwZS5MaXRlcmFsLFxyXG4gICAgICB2YWx1ZTogdmFsdWVzLmpvaW4oJywnKSxcclxuICAgICAgU2VxdWVuY2U6IDAsXHJcbiAgICAgIEdyb3VwSUQ6IDAsXHJcbiAgICB9O1xyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJMb2dpYyA9ICcxJztcclxuICAgIHJldHVybiB3aGVyZUNsYXVzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgZm9yIHVwZGF0aW5nIHJlY29yZHMgaW4gYSBncmlkXHJcbiAgICogQHBhcmFtIEZpZWxkcyBUaGUgZmllbGRzIHRvIGJpbmQgdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gbWF0Y2ggaW4gdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgVGhlIGZpZWxkIG5hbWUgdG8gbWF0Y2ggaW4gdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEBwYXJhbSBjcnVkVGFibGVOYW1lIFRoZSBDUlVEIHRhYmxlIG5hbWUgZm9yIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcmV0dXJucyBUaGUgYm91bmQgd2hlcmUgY2xhdXNlIGZvciB1cGRhdGUgb3BlcmF0aW9uIGluIGEgZ3JpZFxyXG4gICAqL1xyXG4gIGJpbmRXaGVyZUNsYXVzZUZvclVwZGF0ZUdyaWQoXHJcbiAgICBGaWVsZHM6IGFueSxcclxuICAgIHZhbHVlOiBhbnksXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIGNydWRUYWJsZU5hbWU6IHN0cmluZ1xyXG4gICkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmluZFdoZXJlQ2xhdXNlKEZpZWxkcywgdmFsdWUsIGZpZWxkTmFtZSwgY3J1ZFRhYmxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kcyB0aGUgd2hlcmUgY2xhdXNlIGZvciB1cGRhdGluZyByZWNvcmRzIHVzaW5nIGZpbHRlcnNcclxuICAgKiBAcGFyYW0gdGFibGVOYW1lIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSB0byB1cGRhdGVcclxuICAgKiBAcGFyYW0gZmlsdGVycyBUaGUgYXJyYXkgb2YgZmlsdGVycyBmb3IgdGhlIHVwZGF0ZSBxdWVyeVxyXG4gICAqIEBwYXJhbSBmaWVsZHMgVGhlIGFycmF5IG9mIGZpZWxkcyBmcm9tIHRoZSBhcHAgb2JqZWN0IHRvIG1hcCB3aXRoIGZpZWxkIElEIC0gdXNlZCBpbiByZXBsYWNpbmcgSUQgV2l0aCBuYW1lXHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZSBmb3IgdXBkYXRlIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIGJpbmRXaGVyZUNsYXVzZUZvclVwZGF0ZVVzaW5nRmlsdGVycyhcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgZmlsdGVyczogYW55LFxyXG4gICAgZmllbGRzOiBhbnlbXVxyXG4gICkge1xyXG4gICAgY29uc3Qgd2hlcmVDbGF1c2UgPSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEoKTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBbXTtcclxuICAgIGlmIChmaWx0ZXJzLmxlbmd0aCkge1xyXG4gICAgICBmaWx0ZXJzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoKGYpID0+IGYuSUQgPT09IGVsZW1lbnQuRmllbGRJRCkgfHwge307XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHtcclxuICAgICAgICAgIENvbmp1Y3Rpb25DbGF1c2U6IGVsZW1lbnQuQ29uanVjdGlvbkNsYXVzZSxcclxuICAgICAgICAgIEZpZWxkSUQ6IGAke3RhYmxlTmFtZX0uJHtmaWVsZC5GaWVsZE5hbWV9YCxcclxuICAgICAgICAgIFJlbGF0aW9uYWxPcGVyYXRvcjogZWxlbWVudC5SZWxhdGlvbmFsT3BlcmF0b3IsXHJcbiAgICAgICAgICBWYWx1ZVR5cGU6IGVsZW1lbnQuVmFsdWVUeXBlLFxyXG4gICAgICAgICAgdmFsdWU6IGVsZW1lbnQuVmFsdWUsXHJcbiAgICAgICAgICBTZXF1ZW5jZTogZWxlbWVudC5TZXF1ZW5jZSxcclxuICAgICAgICAgIEdyb3VwSUQ6IGVsZW1lbnQuR3JvdXBJRCxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzLnB1c2goZmlsdGVyKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVyTG9naWMgPSAnMSc7XHJcbiAgICByZXR1cm4gd2hlcmVDbGF1c2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hlcmUtY2xhdXNlLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vd2hlcmUtY2xhdXNlLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsZUFBZSxHQUNoQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsWUFBWSxHQUNiLE1BQU0sMEJBQTBCLENBQUM7O0FBR2xDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7Ozs7Ozs7T0FPRztJQUNILHdCQUF3QixDQUN0QixNQUFXLEVBQ1gsS0FBVSxFQUNWLFNBQWlCLEVBQ2pCLGFBQXFCO1FBRXJCLE1BQU0sTUFBTSxHQUFHLGlDQUFpQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hFLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN4RCxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLGFBQWEsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILCtDQUErQyxDQUM3QyxJQUFT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aUI7Y0FEN0IsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ29uanVjdGlvbkNsYXVzZSxcclxuICBSZWxhdGlvbmFsT3BlcmF0b3IsXHJcbiAgRmlsdGVyVmFsdWVUeXBlLFxyXG59IGZyb20gJy4uLy4uL2VudW1zL2RzcS5lbnVtJztcclxuaW1wb3J0IHsgQVBJRmlsdGVyQ3JpdGVyaWEgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBpLXF1ZXJ5LmNsYXNzJztcclxuaW1wb3J0IHtcclxuICBnZXRBcHBPYmplY3RGcm9tU3lzdGVtREJUYWJsZU5hbWUsXHJcbiAgZ2V0QXBwT2JqZWN0LFxyXG59IGZyb20gJy4uLy4uL3V0aWxzL3RhYi1hcHAudXRpbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgV2hlcmVDbGF1c2VIZWxwZXIge1xyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0aW5nIHJlY29yZHMgYmFzZWQgb24gZmllbGQsIHZhbHVlLCBmaWVsZCBuYW1lLCBhbmQgQ1JVRCB0YWJsZSBuYW1lXHJcbiAgICogQHBhcmFtIGZpZWxkcyBUaGUgZmllbGRzIHRvIGJpbmQgdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gbWF0Y2ggaW4gdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgVGhlIGZpZWxkIG5hbWUgdG8gbWF0Y2ggaW4gdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEBwYXJhbSBjcnVkVGFibGVOYW1lIFRoZSBDUlVEIHRhYmxlIG5hbWUgZm9yIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcmV0dXJucyBUaGUgYm91bmQgd2hlcmUgY2xhdXNlIGZvciBkZWxldGUgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgYmluZFdoZXJlQ2xhdXNlRm9yRGVsZXRlKFxyXG4gICAgZmllbGRzOiBhbnksXHJcbiAgICB2YWx1ZTogYW55LFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBjcnVkVGFibGVOYW1lOiBzdHJpbmdcclxuICApIHtcclxuICAgIGNvbnN0IGFwcG9iaiA9IGdldEFwcE9iamVjdEZyb21TeXN0ZW1EQlRhYmxlTmFtZShjcnVkVGFibGVOYW1lKTtcclxuICAgIGlmIChhcHBvYmogJiYgYXBwb2JqLkNSVURBcHBPYmplY3RJZCAhPT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBjcnVkQXBwT2JqID0gZ2V0QXBwT2JqZWN0KGFwcG9iai5DUlVEQXBwT2JqZWN0SWQpO1xyXG4gICAgICBpZiAoY3J1ZEFwcE9iaikge1xyXG4gICAgICAgIGNydWRUYWJsZU5hbWUgPSBjcnVkQXBwT2JqLlN5c3RlbURCVGFibGVOYW1lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5iaW5kV2hlcmVDbGF1c2UoZmllbGRzLCB2YWx1ZSwgZmllbGROYW1lLCBjcnVkVGFibGVOYW1lKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0aW5nIHJlY29yZHMgd2l0aCBtdWx0aXBsZSBwcmltYXJ5IGtleXNcclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSBjb250YWluaW5nIHByaW1hcnkga2V5IHZhbHVlc1xyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgVGhlIGZpZWxkIG5hbWUgb2YgdGhlIHByaW1hcnkga2V5XHJcbiAgICogQHBhcmFtIGNydWRUYWJsZU5hbWUgVGhlIENSVUQgdGFibGUgbmFtZSBmb3IgdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0ZSBvcGVyYXRpb24gd2l0aCBtdWx0aXBsZSBwcmltYXJ5IGtleXNcclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VGb3JEZWxldGVXaXRoTXVsdGlwbGVQcmltYXJ5S2V5cyhcclxuICAgIGRhdGE6IGFueSxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgY3J1ZFRhYmxlTmFtZTogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iaW5kV2hlcmVDbGF1c2VGb3JNdWx0aXBsZVByaW1hcnlLZXlzKFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBmaWVsZE5hbWUsXHJcbiAgICAgIGNydWRUYWJsZU5hbWVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kcyB0aGUgd2hlcmUgY2xhdXNlIGZvciBhbiBpbnNlcnQgb3BlcmF0aW9uXHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZSBmb3IgaW5zZXJ0IG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIGJpbmRXaGVyZUNsYXVzZUZvckluc2VydCgpIHtcclxuICAgIHJldHVybiB0aGlzLmJpbmRXaGVyZUNsYXVzZUVtcHR5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kcyBhbiBlbXB0eSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcmV0dXJucyBUaGUgYm91bmQgZW1wdHkgd2hlcmUgY2xhdXNlXHJcbiAgICovXHJcbiAgYmluZFdoZXJlQ2xhdXNlRW1wdHkoKSB7XHJcbiAgICBjb25zdCB3aGVyZUNsYXVzZSA9IG5ldyBBUElGaWx0ZXJDcml0ZXJpYSgpO1xyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVyTG9naWMgPSAnMSc7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzID0gW107XHJcbiAgICByZXR1cm4gd2hlcmVDbGF1c2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kcyB0aGUgd2hlcmUgY2xhdXNlIGJhc2VkIG9uIHByb3ZpZGVkIHBhcmFtZXRlcnNcclxuICAgKiBAcGFyYW0gZmllbGRzIFRoZSBmaWVsZHMgdG8gYmluZCB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaCBpbiB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBUaGUgZmllbGQgbmFtZSB0byBtYXRjaCBpbiB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIGNydWRUYWJsZU5hbWUgVGhlIENSVUQgdGFibGUgbmFtZSBmb3IgdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCB3aGVyZSBjbGF1c2VcclxuICAgKi9cclxuICBwcml2YXRlIGJpbmRXaGVyZUNsYXVzZShcclxuICAgIGZpZWxkczogYW55W10sXHJcbiAgICB2YWx1ZTogYW55LFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBjcnVkVGFibGVOYW1lOiBzdHJpbmdcclxuICApOiBBUElGaWx0ZXJDcml0ZXJpYSB7XHJcbiAgICBjb25zdCBmaWx0ZXJlZEZpZWxkcyA9IGZpZWxkcy5maWx0ZXIoKGY6IGFueSkgPT5cclxuICAgICAgZmllbGROYW1lXHJcbiAgICAgICAgPyBmLkZpZWxkPy5GaWVsZE5hbWUgPT09IGZpZWxkTmFtZVxyXG4gICAgICAgIDogZi5GaWVsZD8uRmllbGROYW1lID09PSAnSWQnIHx8IGYuRmllbGQ/LkZpZWxkTmFtZSA9PT0gJ0lEJ1xyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJzID0gZmlsdGVyZWRGaWVsZHMubWFwKChmaWVsZDogYW55KSA9PiAoe1xyXG4gICAgICBDb25qdWN0aW9uQ2xhdXNlOiBDb25qdWN0aW9uQ2xhdXNlLkFORCxcclxuICAgICAgRmllbGRJRDogY3J1ZFRhYmxlTmFtZSArICcuJyArIGZpZWxkLkZpZWxkLlN5c3RlbURCRmllbGROYW1lLFxyXG4gICAgICBSZWxhdGlvbmFsT3BlcmF0b3I6IFJlbGF0aW9uYWxPcGVyYXRvci5FcXVhbFRvLFxyXG4gICAgICBWYWx1ZVR5cGU6IEZpbHRlclZhbHVlVHlwZS5MaXRlcmFsLFxyXG4gICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgIFNlcXVlbmNlOiAwLFxyXG4gICAgICBHcm91cElEOiAwLFxyXG4gICAgfSkpO1xyXG5cclxuICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzID0gZmlsdGVycztcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gJzEnO1xyXG5cclxuICAgIHJldHVybiB3aGVyZUNsYXVzZTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBCaW5kcyB0aGUgd2hlcmUgY2xhdXNlIGZvciBkZWxldGluZyByZWNvcmRzIHdpdGggbXVsdGlwbGUgcHJpbWFyeSBrZXlzXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgY29udGFpbmluZyBwcmltYXJ5IGtleSB2YWx1ZXNcclxuICAgKiBAcGFyYW0gcHJpbWFyeUtleXMgVGhlIGFycmF5IG9mIHByaW1hcnkga2V5IGZpZWxkc1xyXG4gICAqIEBwYXJhbSBjcnVkVGFibGVOYW1lIFRoZSBDUlVEIHRhYmxlIG5hbWUgZm9yIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcmV0dXJucyBUaGUgYm91bmQgd2hlcmUgY2xhdXNlIGZvciBkZWxldGUgb3BlcmF0aW9uIHdpdGggbXVsdGlwbGUgcHJpbWFyeSBrZXlzXHJcbiAgICovXHJcbiAgYmluZFdoZXJlQ2xhdXNlRm9yTXVsdGlwbGVQcmltYXJ5S2V5cyhcclxuICAgIGRhdGE6IGFueSxcclxuICAgIHByaW1hcnlLZXlzOiBhbnksXHJcbiAgICBjcnVkVGFibGVOYW1lOiBzdHJpbmdcclxuICApIHtcclxuICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzID0gW107XHJcbiAgICBpZiAocHJpbWFyeUtleXMgJiYgcHJpbWFyeUtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwcmltYXJ5S2V5cy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGFbZWxlbWVudC5GaWVsZE5hbWVdO1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgY29uc3QgZmlsdGVyOiBhbnkgPSB7XHJcbiAgICAgICAgICAgIENvbmp1Y3Rpb25DbGF1c2U6IENvbmp1Y3Rpb25DbGF1c2UuQU5ELFxyXG4gICAgICAgICAgICBGaWVsZElEOiBjcnVkVGFibGVOYW1lICsgJy4nICsgZWxlbWVudC5TeXN0ZW1EQkZpZWxkTmFtZSxcclxuICAgICAgICAgICAgUmVsYXRpb25hbE9wZXJhdG9yOiBSZWxhdGlvbmFsT3BlcmF0b3IuRXF1YWxUbyxcclxuICAgICAgICAgICAgVmFsdWVUeXBlOiBGaWx0ZXJWYWx1ZVR5cGUuTGl0ZXJhbCxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgICAgICAgICBTZXF1ZW5jZTogMCxcclxuICAgICAgICAgICAgR3JvdXBJRDogMCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzLnB1c2goZmlsdGVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVyTG9naWMgPSAnMSc7XHJcbiAgICByZXR1cm4gd2hlcmVDbGF1c2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kcyB0aGUgd2hlcmUgY2xhdXNlIGZvciB1cGRhdGluZyByZWNvcmRzXHJcbiAgICogQHBhcmFtIHRhYmxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgdG8gdXBkYXRlXHJcbiAgICogQHBhcmFtIHF1ZXJ5RmllbGRzQXJyYXkgVGhlIGFycmF5IG9mIGZpZWxkcyBhbmQgdmFsdWVzIGZvciB0aGUgdXBkYXRlIHF1ZXJ5XHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZSBmb3IgdXBkYXRlIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIGJpbmRXaGVyZUNsYXVzZUZvclVwZGF0ZSh0YWJsZU5hbWU6IHN0cmluZywgcXVlcnlGaWVsZHNBcnJheTogYW55KSB7XHJcbiAgICBjb25zdCB3aGVyZUNsYXVzZSA9IG5ldyBBUElGaWx0ZXJDcml0ZXJpYSgpO1xyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVycyA9IFtdO1xyXG4gICAgaWYgKHF1ZXJ5RmllbGRzQXJyYXkubGVuZ3RoKSB7XHJcbiAgICAgIHF1ZXJ5RmllbGRzQXJyYXkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyOiBhbnkgPSB7XHJcbiAgICAgICAgICBDb25qdWN0aW9uQ2xhdXNlOiBDb25qdWN0aW9uQ2xhdXNlLkFORCxcclxuICAgICAgICAgIEZpZWxkSUQ6IHRhYmxlTmFtZSArICcuJyArIGVsZW1lbnQuRmllbGROYW1lLFxyXG4gICAgICAgICAgUmVsYXRpb25hbE9wZXJhdG9yOiBSZWxhdGlvbmFsT3BlcmF0b3IuRXF1YWxUbyxcclxuICAgICAgICAgIFZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsXHJcbiAgICAgICAgICB2YWx1ZTogZWxlbWVudC5GaWVsZFZhbHVlLFxyXG4gICAgICAgICAgU2VxdWVuY2U6IDAsXHJcbiAgICAgICAgICBHcm91cElEOiAwLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgd2hlcmVDbGF1c2UuRmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVyTG9naWMgPSAnMSc7XHJcbiAgICByZXR1cm4gd2hlcmVDbGF1c2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kcyB0aGUgd2hlcmUgY2xhdXNlIGZvciBkZWxldGluZyByZWNvcmRzIGJ5IHRhYmxlIGFuZCBwcmltYXJ5IGtleVxyXG4gICAqIEBwYXJhbSB0YWJsZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHRhYmxlIGZyb20gd2hpY2ggdG8gZGVsZXRlIHJlY29yZHNcclxuICAgKiBAcGFyYW0gcHJpbWFyeUtleSBUaGUgbmFtZSBvZiB0aGUgcHJpbWFyeSBrZXkgZmllbGRcclxuICAgKiBAcGFyYW0gcHJpbWFyeUtleVZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgcHJpbWFyeSBrZXlcclxuICAgKiBAcmV0dXJucyBUaGUgYm91bmQgd2hlcmUgY2xhdXNlIGZvciBkZWxldGUgb3BlcmF0aW9uIHVzaW5nIHRhYmxlIGFuZCBwcmltYXJ5IGtleVxyXG4gICAqL1xyXG4gIGJpbmRXaGVyZUNsYXVzZUZvckRlbGV0ZUJ5VGFibGUoXHJcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcclxuICAgIHByaW1hcnlLZXk6IHN0cmluZyxcclxuICAgIHByaW1hcnlLZXlWYWx1ZTogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBjb25zdCB3aGVyZUNsYXVzZSA9IG5ldyBBUElGaWx0ZXJDcml0ZXJpYSgpO1xyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVycyA9IFtdO1xyXG4gICAgY29uc3QgZmlsdGVyOiBhbnkgPSB7XHJcbiAgICAgIENvbmp1Y3Rpb25DbGF1c2U6IENvbmp1Y3Rpb25DbGF1c2UuQU5ELFxyXG4gICAgICBGaWVsZElEOiB0YWJsZU5hbWUgKyAnLicgKyBwcmltYXJ5S2V5LFxyXG4gICAgICBSZWxhdGlvbmFsT3BlcmF0b3I6IFJlbGF0aW9uYWxPcGVyYXRvci5FcXVhbFRvLFxyXG4gICAgICBWYWx1ZVR5cGU6IEZpbHRlclZhbHVlVHlwZS5MaXRlcmFsLFxyXG4gICAgICB2YWx1ZTogcHJpbWFyeUtleVZhbHVlLFxyXG4gICAgICBTZXF1ZW5jZTogMCxcclxuICAgICAgR3JvdXBJRDogMCxcclxuICAgIH07XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzLnB1c2goZmlsdGVyKTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gJzEnO1xyXG4gICAgcmV0dXJuIHdoZXJlQ2xhdXNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRpbmcgcmVjb3JkcyB1c2luZyBJTiBvcGVyYXRvciBieSB0YWJsZVxyXG4gICAqIEBwYXJhbSB0YWJsZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHRhYmxlIGZyb20gd2hpY2ggdG8gZGVsZXRlIHJlY29yZHNcclxuICAgKiBAcGFyYW0gcHJpbWFyeUtleSBUaGUgbmFtZSBvZiB0aGUgcHJpbWFyeSBrZXkgZmllbGRcclxuICAgKiBAcGFyYW0gdmFsdWVzIFRoZSBhcnJheSBvZiB2YWx1ZXMgZm9yIHRoZSBJTiBvcGVyYXRvclxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0ZSBvcGVyYXRpb24gdXNpbmcgSU4gb3BlcmF0b3IgYW5kIHRhYmxlXHJcbiAgICovXHJcbiAgYmluZFdoZXJlQ2xhdXNlRm9yRGVsZXRlVXNpbmdJbk9wZXJhdG9yQnlUYWJsZShcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgcHJpbWFyeUtleTogc3RyaW5nLFxyXG4gICAgdmFsdWVzOiBbXVxyXG4gICkge1xyXG4gICAgY29uc3QgYXBwb2JqID0gZ2V0QXBwT2JqZWN0RnJvbVN5c3RlbURCVGFibGVOYW1lKHRhYmxlTmFtZSk7XHJcbiAgICBpZiAoYXBwb2JqPy5DUlVEQXBwT2JqZWN0SWQgIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgY3J1ZEFwcE9iaiA9IGdldEFwcE9iamVjdChhcHBvYmouQ1JVREFwcE9iamVjdElkKTtcclxuICAgICAgaWYgKGNydWRBcHBPYmopIHtcclxuICAgICAgICB0YWJsZU5hbWUgPSBjcnVkQXBwT2JqLlN5c3RlbURCVGFibGVOYW1lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB3aGVyZUNsYXVzZSA9IG5ldyBBUElGaWx0ZXJDcml0ZXJpYSgpO1xyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVycyA9IFtdO1xyXG4gICAgY29uc3QgZmlsdGVyOiBhbnkgPSB7XHJcbiAgICAgIENvbmp1Y3Rpb25DbGF1c2U6IENvbmp1Y3Rpb25DbGF1c2UuQU5ELFxyXG4gICAgICBGaWVsZElEOiB0YWJsZU5hbWUgKyAnLicgKyBwcmltYXJ5S2V5LFxyXG4gICAgICBSZWxhdGlvbmFsT3BlcmF0b3I6IFJlbGF0aW9uYWxPcGVyYXRvci5JTixcclxuICAgICAgVmFsdWVUeXBlOiBGaWx0ZXJWYWx1ZVR5cGUuTGl0ZXJhbCxcclxuICAgICAgdmFsdWU6IHZhbHVlcy5qb2luKCcsJyksXHJcbiAgICAgIFNlcXVlbmNlOiAwLFxyXG4gICAgICBHcm91cElEOiAwLFxyXG4gICAgfTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVyTG9naWMgPSAnMSc7XHJcbiAgICByZXR1cm4gd2hlcmVDbGF1c2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kcyB0aGUgd2hlcmUgY2xhdXNlIGZvciB1cGRhdGluZyByZWNvcmRzIGluIGEgZ3JpZFxyXG4gICAqIEBwYXJhbSBGaWVsZHMgVGhlIGZpZWxkcyB0byBiaW5kIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIG1hdGNoIGluIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIFRoZSBmaWVsZCBuYW1lIHRvIG1hdGNoIGluIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcGFyYW0gY3J1ZFRhYmxlTmFtZSBUaGUgQ1JVRCB0YWJsZSBuYW1lIGZvciB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZSBmb3IgdXBkYXRlIG9wZXJhdGlvbiBpbiBhIGdyaWRcclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VGb3JVcGRhdGVHcmlkKFxyXG4gICAgRmllbGRzOiBhbnksXHJcbiAgICB2YWx1ZTogYW55LFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBjcnVkVGFibGVOYW1lOiBzdHJpbmdcclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmJpbmRXaGVyZUNsYXVzZShGaWVsZHMsIHZhbHVlLCBmaWVsZE5hbWUsIGNydWRUYWJsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgdXBkYXRpbmcgcmVjb3JkcyB1c2luZyBmaWx0ZXJzXHJcbiAgICogQHBhcmFtIHRhYmxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgdG8gdXBkYXRlXHJcbiAgICogQHBhcmFtIGZpbHRlcnMgVGhlIGFycmF5IG9mIGZpbHRlcnMgZm9yIHRoZSB1cGRhdGUgcXVlcnlcclxuICAgKiBAcGFyYW0gZmllbGRzIFRoZSBhcnJheSBvZiBmaWVsZHMgZnJvbSB0aGUgYXBwIG9iamVjdCB0byBtYXAgd2l0aCBmaWVsZCBJRCAtIHVzZWQgaW4gcmVwbGFjaW5nIElEIFdpdGggbmFtZVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCB3aGVyZSBjbGF1c2UgZm9yIHVwZGF0ZSBvcGVyYXRpb25cclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VGb3JVcGRhdGVVc2luZ0ZpbHRlcnMoXHJcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcclxuICAgIGZpbHRlcnM6IGFueSxcclxuICAgIGZpZWxkczogYW55W11cclxuICApIHtcclxuICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzID0gW107XHJcbiAgICBpZiAoZmlsdGVycy5sZW5ndGgpIHtcclxuICAgICAgZmlsdGVycy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBmaWVsZCA9IGZpZWxkcy5maW5kKChmKSA9PiBmLklEID09PSBlbGVtZW50LkZpZWxkSUQpIHx8IHt9O1xyXG5cclxuICAgICAgICBjb25zdCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICBDb25qdWN0aW9uQ2xhdXNlOiBlbGVtZW50LkNvbmp1Y3Rpb25DbGF1c2UsXHJcbiAgICAgICAgICBGaWVsZElEOiBgJHt0YWJsZU5hbWV9LiR7ZmllbGQuRmllbGROYW1lfWAsXHJcbiAgICAgICAgICBSZWxhdGlvbmFsT3BlcmF0b3I6IGVsZW1lbnQuUmVsYXRpb25hbE9wZXJhdG9yLFxyXG4gICAgICAgICAgVmFsdWVUeXBlOiBlbGVtZW50LlZhbHVlVHlwZSxcclxuICAgICAgICAgIHZhbHVlOiBlbGVtZW50LlZhbHVlLFxyXG4gICAgICAgICAgU2VxdWVuY2U6IGVsZW1lbnQuU2VxdWVuY2UsXHJcbiAgICAgICAgICBHcm91cElEOiBlbGVtZW50Lkdyb3VwSUQsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgd2hlcmVDbGF1c2UuRmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gJzEnO1xyXG4gICAgcmV0dXJuIHdoZXJlQ2xhdXNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRpbmcgcmVjb3JkcyB1c2luZyBhIHNldCBvZiBrZXkgdmFsdWUgcGFpcnNcclxuICAgKiBAcGFyYW0gdGFibGVOYW1lIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBmcm9tIHdoaWNoIHRvIGRlbGV0ZSByZWNvcmRzXHJcbiAgICogQHBhcmFtIGtleVZhbHVlUGFpcnMgVGhlIGFycmF5IG9mIGtleSB2YWx1ZSBwYWlycyB0byB1c2UgaW4gdGhlIGRlbGV0ZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcmV0dXJucyBUaGUgYm91bmQgd2hlcmUgY2xhdXNlIGZvciBkZWxldGUgb3BlcmF0aW9uIHVzaW5nIGtleSB2YWx1ZSBwYWlyc1xyXG4gICAqL1xyXG4gIGJpbmRXaGVyZUNsYXVzZUZvckR5bmFtaWNEZWxldGUoXHJcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcclxuICAgIGtleVZhbHVlUGFpcnM6IGFueVtdXHJcbiAgKTogQVBJRmlsdGVyQ3JpdGVyaWEge1xyXG4gICAgY29uc3Qgd2hlcmVDbGF1c2UgPSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEoKTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBbXTtcclxuXHJcbiAgICAvLyBMb29wIHRocm91Z2ggdGhlIGtleSB2YWx1ZSBwYWlycyBhbmQgYWRkIHRoZW0gdG8gdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAgLy8gVGhlIGNvbmp1Y3Rpb24gY2xhdXNlIGlzIEFORCBmb3IgdGhlIGZpcnN0IGl0ZW0gYW5kIE9SIGZvciB0aGUgcmVzdFxyXG4gICAga2V5VmFsdWVQYWlycy5mb3JFYWNoKChwYWlyLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgQ29uanVjdGlvbkNsYXVzZTogaW5kZXggPT09IDAgPyBDb25qdWN0aW9uQ2xhdXNlLkFORCA6IENvbmp1Y3Rpb25DbGF1c2UuQU5ELFxyXG4gICAgICAgIEZpZWxkSUQ6IGAke3RhYmxlTmFtZX0uJHtwYWlyLmtleX1gLFxyXG4gICAgICAgIFJlbGF0aW9uYWxPcGVyYXRvcjogUmVsYXRpb25hbE9wZXJhdG9yLkVxdWFsVG8sXHJcbiAgICAgICAgVmFsdWVUeXBlOiBGaWx0ZXJWYWx1ZVR5cGUuTGl0ZXJhbCxcclxuICAgICAgICB2YWx1ZTogcGFpci52YWx1ZSxcclxuICAgICAgICBTZXF1ZW5jZTogaW5kZXgsXHJcbiAgICAgICAgR3JvdXBJRDogMFxyXG4gICAgICB9O1xyXG4gICAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzLnB1c2goZmlsdGVyKTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIFRoZSBmaWx0ZXIgbG9naWMgaXMgYWx3YXlzICcxJyBmb3IgZHluYW1pYyBkZWxldGVcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gJzEnO1xyXG4gICAgcmV0dXJuIHdoZXJlQ2xhdXNlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -39,6 +39,14 @@ export declare class TabDeleteService {
|
|
|
39
39
|
* @returns An Observable emitting the response of the delete operation.
|
|
40
40
|
*/
|
|
41
41
|
deleteMultipleRecordByTable(tableName: string, values: any): import("rxjs").Observable<any> | null;
|
|
42
|
+
/**
|
|
43
|
+
* Deletes multiple records from the specified table based on the provided data array.
|
|
44
|
+
* The data array should contain key-value pairs without primary key information.
|
|
45
|
+
* @param tableName The name of the table.
|
|
46
|
+
* @param values The array of data objects to delete.
|
|
47
|
+
* @returns An Observable emitting the response of the delete operation.
|
|
48
|
+
*/
|
|
49
|
+
deleteMultipleRecordByTableWithoutPrimaryKey(tableName: string, values: any): import("rxjs").Observable<any> | null;
|
|
42
50
|
/**
|
|
43
51
|
* Generates a values array from the data.
|
|
44
52
|
* @param dataArray The array of data.
|
|
@@ -46,6 +54,15 @@ export declare class TabDeleteService {
|
|
|
46
54
|
* @returns The array of values.
|
|
47
55
|
*/
|
|
48
56
|
generateValuesArrayFromData(dataArray: any, key: any): any;
|
|
57
|
+
/**
|
|
58
|
+
* Generates an array of values from the provided data array.
|
|
59
|
+
* Each entry in the returned array includes key-value pairs from the data objects,
|
|
60
|
+
* and an associated GroupID indicating the index of the data object.
|
|
61
|
+
*
|
|
62
|
+
* @param dataArray An array of data objects.
|
|
63
|
+
* @returns An array containing objects with keys, values, and group indices.
|
|
64
|
+
*/
|
|
65
|
+
generateValuesArrayFromDataWithoutPrimaryKey(dataArray: any): any;
|
|
49
66
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabDeleteService, never>;
|
|
50
67
|
static ɵprov: i0.ɵɵInjectableDeclaration<TabDeleteService>;
|
|
51
68
|
}
|
|
@@ -85,6 +85,13 @@ export declare class WhereClauseHelper {
|
|
|
85
85
|
* @returns The bound where clause for update operation
|
|
86
86
|
*/
|
|
87
87
|
bindWhereClauseForUpdateUsingFilters(tableName: string, filters: any, fields: any[]): APIFilterCriteria;
|
|
88
|
+
/**
|
|
89
|
+
* Binds the where clause for deleting records using a set of key value pairs
|
|
90
|
+
* @param tableName The name of the table from which to delete records
|
|
91
|
+
* @param keyValuePairs The array of key value pairs to use in the delete where clause
|
|
92
|
+
* @returns The bound where clause for delete operation using key value pairs
|
|
93
|
+
*/
|
|
94
|
+
bindWhereClauseForDynamicDelete(tableName: string, keyValuePairs: any[]): APIFilterCriteria;
|
|
88
95
|
static ɵfac: i0.ɵɵFactoryDeclaration<WhereClauseHelper, never>;
|
|
89
96
|
static ɵprov: i0.ɵɵInjectableDeclaration<WhereClauseHelper>;
|
|
90
97
|
}
|