@mediusinc/mng-commons-data-api 5.4.0-rc.5 → 5.4.0-rc.7
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/helpers/get-all-params.mjs +34 -10
- package/esm2022/lib/models/request-params.model.mjs +1 -1
- package/fesm2022/mediusinc-mng-commons-data-api.mjs +34 -10
- package/fesm2022/mediusinc-mng-commons-data-api.mjs.map +1 -1
- package/lib/helpers/get-all-params.d.ts +12 -1
- package/lib/models/request-params.model.d.ts +7 -1
- package/package.json +2 -2
- package/version-info.json +6 -6
|
@@ -42,15 +42,7 @@ export function toGetAllParamsFilterMatchMode(matchMode) {
|
|
|
42
42
|
throw new CommonsInternalError(`Filter match type '${matchMode}' not supported.`);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
* Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.
|
|
47
|
-
*
|
|
48
|
-
* @param {DataListParams} params - The parameters to convert.
|
|
49
|
-
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
50
|
-
* @typeparam Filters - The type of the filters for the data list.
|
|
51
|
-
* @returns {GetAllParamsUrlQueryType<Filters>} - Get all request param object with values as URL query string representation.
|
|
52
|
-
*/
|
|
53
|
-
export function toGetAllParamsAsUrlQuery(params) {
|
|
45
|
+
function toGetAllParamsAsUrlQueryCommon(params) {
|
|
54
46
|
const res = {};
|
|
55
47
|
if (params.offset != null) {
|
|
56
48
|
res.offset = params.offset;
|
|
@@ -68,6 +60,18 @@ export function toGetAllParamsAsUrlQuery(params) {
|
|
|
68
60
|
if (Array.isArray(params.sort) && params.sort.length > 0) {
|
|
69
61
|
res.sort = dataListParamsSortToUrlQuery(params);
|
|
70
62
|
}
|
|
63
|
+
return res;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.
|
|
67
|
+
*
|
|
68
|
+
* @param {DataListParams} params - The parameters to convert.
|
|
69
|
+
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
70
|
+
* @typeparam Filters - The type of the filters for the data list.
|
|
71
|
+
* @returns {GetAllParamsUrlQueryType<Filters>} - Get all request param object with values as URL query string representation.
|
|
72
|
+
*/
|
|
73
|
+
export function toGetAllParamsAsUrlQuery(params) {
|
|
74
|
+
const res = toGetAllParamsAsUrlQueryCommon(params);
|
|
71
75
|
if (params.filters) {
|
|
72
76
|
Object.keys(params.filters).forEach(key => {
|
|
73
77
|
res[key] = dataListParamsFiltersToUrlQuery(params, key);
|
|
@@ -75,6 +79,26 @@ export function toGetAllParamsAsUrlQuery(params) {
|
|
|
75
79
|
}
|
|
76
80
|
return res;
|
|
77
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.
|
|
84
|
+
*
|
|
85
|
+
* @param {DataListParams} params - The parameters to convert.
|
|
86
|
+
* @param {FilterKey} filterKey - Property key for filter object.
|
|
87
|
+
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
88
|
+
* @typeparam Filters - The type of the filters for the data list.
|
|
89
|
+
* @typeparam FilterKey - The type representing property key where filters will be put to.
|
|
90
|
+
* @returns {GetAllParamsUrlQueryWithFiltersInKeyType<FilterKey, Filters>} - Get all request param object with values as URL query string representation.
|
|
91
|
+
*/
|
|
92
|
+
export function toGetAllParamsAsUrlQueryWithFiltersInProperty(params, filterKey = 'filters') {
|
|
93
|
+
const res = toGetAllParamsAsUrlQueryCommon(params);
|
|
94
|
+
if (params.filters && Object.keys(params.filters).length > 0) {
|
|
95
|
+
res[filterKey] = {};
|
|
96
|
+
Object.keys(params.filters).forEach(key => {
|
|
97
|
+
res[filterKey][key] = dataListParamsFiltersToUrlQuery(params, key);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return res;
|
|
101
|
+
}
|
|
78
102
|
/**
|
|
79
103
|
* Converts given parameters of a DataListParams object into a get all request param object with values as objects for POST requests.
|
|
80
104
|
*
|
|
@@ -199,4 +223,4 @@ export function apiServiceGetAll(service, fn, params) {
|
|
|
199
223
|
export function executeGetAllAsPost(service, getAllFn, params) {
|
|
200
224
|
return getAllFn.bind(service)(toGetAllParams(params)).pipe(mapToDataList());
|
|
201
225
|
}
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1wYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlcnMvZ2V0LWFsbC1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUVILG9CQUFvQixFQUlwQixlQUFlLEVBQ2YsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNoQixNQUFNLDZCQUE2QixDQUFDO0FBSXJDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxTQUFpQjtJQUMzRCxRQUFRLFNBQVMsRUFBRSxDQUFDO1FBQ2hCLEtBQUssZUFBZSxDQUFDLE1BQU07WUFDdkIsT0FBTyxRQUFRLENBQUM7UUFDcEIsS0FBSyxlQUFlLENBQUMsU0FBUztZQUMxQixPQUFPLFlBQVksQ0FBQztRQUN4QixLQUFLLGVBQWUsQ0FBQyxRQUFRO1lBQ3pCLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLEtBQUssZUFBZSxDQUFDLFdBQVc7WUFDNUIsT0FBTyxjQUFjLENBQUM7UUFDMUIsS0FBSyxlQUFlLENBQUMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQztRQUNoQixLQUFLLGVBQWUsQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sUUFBUSxDQUFDO1FBQ3BCLEtBQUssZUFBZSxDQUFDLFVBQVU7WUFDM0IsT0FBTyxhQUFhLENBQUM7UUFDekIsS0FBSyxlQUFlLENBQUMsUUFBUTtZQUN6QixPQUFPLFdBQVcsQ0FBQztRQUN2QixLQUFLLGVBQWUsQ0FBQyxRQUFRO1lBQ3pCLE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLEtBQUssZUFBZSxDQUFDLGlCQUFpQjtZQUNsQyxPQUFPLHVCQUF1QixDQUFDO1FBQ25DLEtBQUssZUFBZSxDQUFDLFdBQVc7WUFDNUIsT0FBTyxjQUFjLENBQUM7UUFDMUIsS0FBSyxlQUFlLENBQUMsb0JBQW9CO1lBQ3JDLE9BQU8sMEJBQTBCLENBQUM7UUFDdEMsS0FB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QUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFRLENBQUMsQ0FBQztBQUN0RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBDbGFzc0Z1bmN0aW9uS2V5c1dpdGhQYXJhbUFuZFJldHVyblR5cGUsXG4gICAgQ29tbW9uc0ludGVybmFsRXJyb3IsXG4gICAgRGF0YUxpc3RGaWx0ZXIsXG4gICAgRGF0YUxpc3RQYXJhbXMsXG4gICAgRGF0YUxpc3RSZXN1bHQsXG4gICAgRmlsdGVyTWF0Y2hNb2RlLFxuICAgIGRhdGFMaXN0UGFyYW1zRmlsdGVyVG9VcmxRdWVyeSxcbiAgICBkYXRhTGlzdFBhcmFtc0ZpbHRlcnNUb1VybFF1ZXJ5LFxuICAgIGRhdGFMaXN0UGFyYW1zU29ydFRvVXJsUXVlcnksXG4gICAgbWFwVG9EYXRhTGlzdFxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge0dldEFsbFBhcmFtc0ZpbHRlck1hdGNoVHlwZSwgR2V0QWxsUGFyYW1zRmlsdGVyVHlwZSwgR2V0QWxsUGFyYW1zVHlwZSwgR2V0QWxsUGFyYW1zVXJsUXVlcnlUeXBlfSBmcm9tICcuLi9tb2RlbHMvcmVxdWVzdC1wYXJhbXMubW9kZWwnO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgZmlsdGVyIG1hdGNoIG1vZGUgdG8gaXRzIGNvcnJlc3BvbmRpbmcgZW51bSB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWF0Y2hNb2RlIC0gVGhlIGZpbHRlciBtYXRjaCBtb2RlIGZyb20gZGF0YSBsaXN0IGZpbHRlciB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0dldEFsbFBhcmFtc0ZpbHRlck1hdGNoVHlwZX0gLSBUaGUgY29udmVydGVkIGVudW0gdmFsdWUuXG4gKiBAdGhyb3dzIHtDb21tb25zSW50ZXJuYWxFcnJvcn0gLSBJZiB0aGUgZmlsdGVyIG1hdGNoIG1vZGUgaXMgbm90IHN1cHBvcnRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvR2V0QWxsUGFyYW1zRmlsdGVyTWF0Y2hNb2RlKG1hdGNoTW9kZTogc3RyaW5nKTogR2V0QWxsUGFyYW1zRmlsdGVyTWF0Y2hUeXBlIHtcbiAgICBzd2l0Y2ggKG1hdGNoTW9kZSkge1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5FcXVhbHM6XG4gICAgICAgICAgICByZXR1cm4gJ0VRVUFMUyc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLk5vdEVxdWFsczpcbiAgICAgICAgICAgIHJldHVybiAnTk9UX0VRVUFMUyc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkNvbnRhaW5zOlxuICAgICAgICAgICAgcmV0dXJuICdDT05UQUlOUyc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLk5vdENvbnRhaW5zOlxuICAgICAgICAgICAgcmV0dXJuICdOT1RfQ09OVEFJTlMnO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5JbjpcbiAgICAgICAgICAgIHJldHVybiAnSU4nO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5Ob3RJbjpcbiAgICAgICAgICAgIHJldHVybiAnTk9UX0lOJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuU3RhcnRzV2l0aDpcbiAgICAgICAgICAgIHJldHVybiAnU1RBUlRTX1dJVEgnO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5FbmRzV2l0aDpcbiAgICAgICAgICAgIHJldHVybiAnRU5EU19XSVRIJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW46XG4gICAgICAgICAgICByZXR1cm4gJ0xFU1NfVEhBTic7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkxlc3NUaGFuT3JFcXVhbFRvOlxuICAgICAgICAgICAgcmV0dXJuICdMRVNTX1RIQU5fT1JfRVFVQUxfVE8nO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbjpcbiAgICAgICAgICAgIHJldHVybiAnR1JFQVRFUl9USEFOJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuR3JlYXRlclRoYW5PckVxdWFsVG86XG4gICAgICAgICAgICByZXR1cm4gJ0dSRUFURVJfVEhBTl9PUl9FUVVBTF9UTyc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW46XG4gICAgICAgICAgICByZXR1cm4gJ0JFVFdFRU4nO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5FeGlzdHM6XG4gICAgICAgICAgICByZXR1cm4gJ0VYSVNUUyc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkRvZXNOb3RFeGlzdDpcbiAgICAgICAgICAgIHJldHVybiAnRE9FU19OT1RfRVhJU1QnO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBGaWx0ZXIgbWF0Y2ggdHlwZSAnJHttYXRjaE1vZGV9JyBub3Qgc3VwcG9ydGVkLmApO1xuICAgIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBnaXZlbiBwYXJhbWV0ZXJzIG9mIGEgRGF0YUxpc3RQYXJhbXMgb2JqZWN0IGludG8gYSBnZXQgYWxsIHJlcXVlc3QgcGFyYW0gb2JqZWN0IHdpdGggdmFsdWVzIGFzIFVSTCBxdWVyeSBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gKlxuICogQHBhcmFtIHtEYXRhTGlzdFBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdG8gY29udmVydC5cbiAqIEB0eXBlcGFyYW0gU29ydHMgLSBUaGUgdHlwZSBvZiB0aGUgc29ydGluZyBvcHRpb25zIGZvciB0aGUgZGF0YSBsaXN0LlxuICogQHR5cGVwYXJhbSBGaWx0ZXJzIC0gVGhlIHR5cGUgb2YgdGhlIGZpbHRlcnMgZm9yIHRoZSBkYXRhIGxpc3QuXG4gKiBAcmV0dXJucyB7R2V0QWxsUGFyYW1zVXJsUXVlcnlUeXBlPEZpbHRlcnM+fSAtIEdldCBhbGwgcmVxdWVzdCBwYXJhbSBvYmplY3Qgd2l0aCB2YWx1ZXMgYXMgVVJMIHF1ZXJ5IHN0cmluZyByZXByZXNlbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvR2V0QWxsUGFyYW1zQXNVcmxRdWVyeTxTb3J0cywgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueT4ocGFyYW1zOiBEYXRhTGlzdFBhcmFtczxTb3J0cywgRmlsdGVycz4pOiBHZXRBbGxQYXJhbXNVcmxRdWVyeVR5cGU8RmlsdGVycz4ge1xuICAgIGNvbnN0IHJlcyA9IHt9IGFzIEdldEFsbFBhcmFtc1VybFF1ZXJ5VHlwZTxGaWx0ZXJzPjtcblxuICAgIGlmIChwYXJhbXMub2Zmc2V0ICE9IG51bGwpIHtcbiAgICAgICAgcmVzLm9mZnNldCA9IHBhcmFtcy5vZmZzZXQ7XG4gICAgfVxuICAgIGlmIChwYXJhbXMubGltaXQgIT0gbnVsbCkge1xuICAgICAgICByZXMubGltaXQgPSBwYXJhbXMubGltaXQ7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5zZWFyY2ggIT0gbnVsbCAmJiBwYXJhbXMuc2VhcmNoICE9PSAnJykge1xuICAgICAgICBsZXQgY2FzZVNlbnNpdGl2aXR5T3B0aW9uID0gJ2NpJztcblxuICAgICAgICBpZiAocGFyYW1zLmZpbHRlcnM/LlsnZ2xvYmFsJyBhcyBGaWx0ZXJzXT8uY2FzZVNlbnNpdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgY2FzZVNlbnNpdGl2aXR5T3B0aW9uID0gJ2NzJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcy5nbG9iYWxGaWx0ZXIgPSBgJHtjYXNlU2Vuc2l0aXZpdHlPcHRpb259OiR7cGFyYW1zLnNlYXJjaH1gO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtcy5zb3J0KSAmJiBwYXJhbXMuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlcy5zb3J0ID0gZGF0YUxpc3RQYXJhbXNTb3J0VG9VcmxRdWVyeShwYXJhbXMgYXMgRGF0YUxpc3RQYXJhbXMpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuZmlsdGVycykge1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJhbXMuZmlsdGVycykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgcmVzW2tleSBhcyBGaWx0ZXJzXSA9IGRhdGFMaXN0UGFyYW1zRmlsdGVyc1RvVXJsUXVlcnkocGFyYW1zLCBrZXkgYXMgRmlsdGVycykgYXMgYW55O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGdpdmVuIHBhcmFtZXRlcnMgb2YgYSBEYXRhTGlzdFBhcmFtcyBvYmplY3QgaW50byBhIGdldCBhbGwgcmVxdWVzdCBwYXJhbSBvYmplY3Qgd2l0aCB2YWx1ZXMgYXMgb2JqZWN0cyBmb3IgUE9TVCByZXF1ZXN0cy5cbiAqXG4gKiBAcGFyYW0ge0RhdGFMaXN0UGFyYW1zfSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byBjb252ZXJ0LlxuICogQHR5cGVwYXJhbSBTb3J0cyAtIFRoZSB0eXBlIG9mIHRoZSBzb3J0aW5nIG9wdGlvbnMgZm9yIHRoZSBkYXRhIGxpc3QuXG4gKiBAdHlwZXBhcmFtIEZpbHRlcnMgLSBUaGUgdHlwZSBvZiB0aGUgZmlsdGVycyBmb3IgdGhlIGRhdGEgbGlzdC5cbiAqIEByZXR1cm5zIHtHZXRBbGxQYXJhbXNUeXBlPFNvcnRzLCBGaWx0ZXJzPn0gLSBHZXQgYWxsIHJlcXVlc3QgcGFyYW0gb2JqZWN0IHdpdGggdmFsdWVzIGFzIG9iamVjdHMgZm9yIFBPU1QgcmVxdWVzdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0dldEFsbFBhcmFtczxTb3J0cywgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueT4ocGFyYW1zOiBEYXRhTGlzdFBhcmFtczxTb3J0cywgRmlsdGVycz4pOiBHZXRBbGxQYXJhbXNUeXBlPFNvcnRzLCBGaWx0ZXJzPiB7XG4gICAgY29uc3QgcmVzID0ge30gYXMgR2V0QWxsUGFyYW1zVHlwZTxTb3J0cywgRmlsdGVycz47XG5cbiAgICBpZiAocGFyYW1zLm9mZnNldCAhPSBudWxsKSB7XG4gICAgICAgIHJlcy5vZmZzZXQgPSBwYXJhbXMub2Zmc2V0O1xuICAgIH1cbiAgICBpZiAocGFyYW1zLmxpbWl0ICE9IG51bGwpIHtcbiAgICAgICAgcmVzLmxpbWl0ID0gcGFyYW1zLmxpbWl0O1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuc2VhcmNoICE9IG51bGwpIHtcbiAgICAgICAgcmVzLmdsb2JhbEZpbHRlciA9IHtcbiAgICAgICAgICAgIHZhbHVlOiBwYXJhbXMuc2VhcmNoXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGFyYW1zLnNvcnQpICYmIHBhcmFtcy5zb3J0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmVzLnNvcnQgPSBwYXJhbXMuc29ydC5tYXAocyA9PiAoe1xuICAgICAgICAgICAgcHJvcGVydHk6IHMucHJvcGVydHksXG4gICAgICAgICAgICBkaXJlY3Rpb246IHMuYXNjZW5kaW5nID09PSB0cnVlIHx8IHMuYXNjZW5kaW5nID09IG51bGwgPyAnQVNDRU5ESU5HJyA6ICdERVNDRU5ESU5HJ1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5maWx0ZXJzKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmFtcy5maWx0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXNGaWx0ZXIgPSBwYXJhbXMuZmlsdGVycyFba2V5IGFzIEZpbHRlcnNdITtcbiAgICAgICAgICAgIGlmICghcGFyYW1zRmlsdGVyLm1hdGNoTW9kZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHZhbHVlID0gQXJyYXkuaXNBcnJheShwYXJhbXNGaWx0ZXIudmFsdWUpID8gdW5kZWZpbmVkIDogcGFyYW1zRmlsdGVyLnZhbHVlO1xuICAgICAgICAgICAgbGV0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkocGFyYW1zRmlsdGVyLnZhbHVlKSA/IHBhcmFtc0ZpbHRlci52YWx1ZSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgaWYgKHBhcmFtc0ZpbHRlci5tYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5FeGlzdHMgfHwgcGFyYW1zRmlsdGVyLm1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlLkRvZXNOb3RFeGlzdCkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHZhbHVlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1zRmlsdGVyLm1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlLkluIHx8IHBhcmFtc0ZpbHRlci5tYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5Ob3RJbikge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZXMgPT0gbnVsbCB8fCB2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgRmlsdGVyIHdpdGggbW9kZSAke3BhcmFtc0ZpbHRlci5tYXRjaE1vZGV9IG11c3QgaGF2ZSB2YWx1ZXMgaW4gYXJyYXksIGJ1dCBoYXMgJHt2YWx1ZXN9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbXNGaWx0ZXIubWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuQmV0d2Vlbikge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZXMgPT0gbnVsbCB8fCB2YWx1ZXMubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgRmlsdGVyIHdpdGggbW9kZSAke3BhcmFtc0ZpbHRlci5tYXRjaE1vZGV9IG11c3QgaGF2ZSAyIHZhbHVlcyBpbiBhcnJheSwgYnV0IGhhcyAke3ZhbHVlc31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtc0ZpbHRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjYXNlU2Vuc2l0aXZpdHkgPSBwYXJhbXNGaWx0ZXIuY2FzZVNlbnNpdGl2ZSA/ICdDQVNFX1NFTlNJVElWRScgOiBwYXJhbXNGaWx0ZXIuY2FzZVNlbnNpdGl2ZSA9PT0gZmFsc2UgPyAnQ0FTRV9JTlNFTlNJVElWRScgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSA8R2V0QWxsUGFyYW1zRmlsdGVyVHlwZTxhbnk+PntcbiAgICAgICAgICAgICAgICBmaWx0ZXJNYXRjaFR5cGU6IHRvR2V0QWxsUGFyYW1zRmlsdGVyTWF0Y2hNb2RlKHBhcmFtc0ZpbHRlci5tYXRjaE1vZGUpXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGZpbHRlci52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlcyAhPSBudWxsICYmIEFycmF5LmlzQXJyYXkodmFsdWVzKSAmJiB2YWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGZpbHRlci52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FzZVNlbnNpdGl2aXR5ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXIuY2FzZVNlbnNpdGl2aXR5ID0gY2FzZVNlbnNpdGl2aXR5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAocmVzIGFzIGFueSlba2V5IGFzIEZpbHRlcnNdID0gZmlsdGVyO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIERhdGFMaXN0UGFyYW1zIHRvIHNvcnQgcXVlcnkgVVJMIHJlcHJlc2VudGF0aW9uLlxuICpcbiAqIEBwYXJhbSB7RGF0YUxpc3RQYXJhbXN9IHBhcmFtcyAtIFRoZSBwYXJhbXMgb2JqZWN0IHdpdGggc29ydCBwcm9wZXJ0eSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gLSBUaGUgZm9ybWF0dGVkIHNvcnQgcXVlcnkgVVJMIHBhcmFtIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvR2V0QWxsU29ydEFzUXVlcnlVcmwocGFyYW1zPzogRGF0YUxpc3RQYXJhbXM8YW55LCBhbnk+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZGF0YUxpc3RQYXJhbXNTb3J0VG9VcmxRdWVyeShwYXJhbXMpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgRGF0YUxpc3RGaWx0ZXIgb2JqZWN0IHRvIGEgcXVlcnkgVVJMIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge0RhdGFMaXN0RmlsdGVyfSBmaWx0ZXIgLSBUaGUgZmlsdGVyIG9iamVjdCBmcm9tIHBhcmFtcyB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ3x1bmRlZmluZWR9IC0gVGhlIGZvcm1hdHRlZCBmaWx0ZXIgcXVlcnkgVVJMIHBhcmFtIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvR2V0QWxsRmlsdGVyQXNRdWVyeVVybChmaWx0ZXI/OiBEYXRhTGlzdEZpbHRlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGRhdGFMaXN0UGFyYW1zRmlsdGVyVG9VcmxRdWVyeShmaWx0ZXIpO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIHRoZSBcImdldEFsbFwiIG9uIEFQSSBzZXJ2aWNlIHdpdGggcmVxdWVzdCBwYXJhbWV0ZXJzLlxuICogR2V0IGFsbCBpcyBleHBlY3RlZCB0byBiZSBleGVjdXRlZCB2aWEgR0VUIG1ldGhvZCB1c2luZyBwYXJhbXMgYXMgVVJMIHF1ZXJpZXMuXG4gKlxuICogQHBhcmFtIHtTZXJ2aWNlfSBzZXJ2aWNlIC0gVGhlIEFQSSBzZXJ2aWNlIGluc3RhbmNlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZ2V0QWxsRm4gLSBUaGUgXCJnZXRBbGxcIiBmdW5jdGlvbiBvbiBwcm92aWRlZCBzZXJ2aWNlIGluc3RhbmNlLlxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBkYXRhIGxpc3QgcGFyYW1zLlxuICogQHJldHVybnMge09ic2VydmFibGU8PERhdGFMaXN0UmVzdWx0PEl0ZW0+Pj59IEFuIG9ic2VydmFibGUgd2l0aCBkYXRhIGxpc3QgcmVzdWx0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZUdldEFsbDxTZXJ2aWNlLCBJdGVtLCBTb3J0cywgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueT4oXG4gICAgc2VydmljZTogU2VydmljZSxcbiAgICBnZXRBbGxGbjogKHJlcXVlc3RQYXJhbWV0ZXJzOiBHZXRBbGxQYXJhbXNVcmxRdWVyeVR5cGU8RmlsdGVycz4pID0+IE9ic2VydmFibGU8e2RhdGE/OiBJdGVtW107IHRvdGFsQ291bnQ/OiBudW1iZXJ9PixcbiAgICBwYXJhbXM6IERhdGFMaXN0UGFyYW1zPFNvcnRzLCBGaWx0ZXJzPlxuKTogT2JzZXJ2YWJsZTxEYXRhTGlzdFJlc3VsdDxJdGVtPj4ge1xuICAgIHJldHVybiBnZXRBbGxGbi5iaW5kKHNlcnZpY2UpKHRvR2V0QWxsUGFyYW1zQXNVcmxRdWVyeShwYXJhbXMpKS5waXBlKG1hcFRvRGF0YUxpc3Q8SXRlbT4oKSk7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgdGhlIFwiZ2V0QWxsXCIgb24gQVBJIHNlcnZpY2Ugd2l0aCByZXF1ZXN0IHBhcmFtZXRlcnMuXG4gKiBHZXQgYWxsIGlzIGV4cGVjdGVkIHRvIGJlIGV4ZWN1dGVkIHZpYSBHRVQgbWV0aG9kIHVzaW5nIHBhcmFtcyBhcyBVUkwgcXVlcmllcy5cbiAqXG4gKiBAcGFyYW0ge1NlcnZpY2V9IHNlcnZpY2UgLSBUaGUgQVBJIHNlcnZpY2UgaW5zdGFuY2UuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBnZXRBbGxGbiAtIFRoZSBcImdldEFsbFwiIGZ1bmN0aW9uIG9uIHByb3ZpZGVkIHNlcnZpY2UuXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIGRhdGEgbGlzdCBwYXJhbXMuXG4gKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTw8RGF0YUxpc3RSZXN1bHQ8SXRlbT4+Pn0gQW4gb2JzZXJ2YWJsZSB3aXRoIGRhdGEgbGlzdCByZXN1bHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcGlTZXJ2aWNlR2V0QWxsPFNlcnZpY2UsIEl0ZW0sIFNvcnRzLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55PihcbiAgICBzZXJ2aWNlOiBTZXJ2aWNlLFxuICAgIGZuOiBDbGFzc0Z1bmN0aW9uS2V5c1dpdGhQYXJhbUFuZFJldHVyblR5cGU8U2VydmljZSwgR2V0QWxsUGFyYW1zVXJsUXVlcnlUeXBlPEZpbHRlcnM+LCBPYnNlcnZhYmxlPHtkYXRhPzogSXRlbVtdOyB0b3RhbENvdW50PzogbnVtYmVyfT4+LFxuICAgIHBhcmFtczogRGF0YUxpc3RQYXJhbXM8U29ydHMsIEZpbHRlcnM+XG4pOiBPYnNlcnZhYmxlPERhdGFMaXN0UmVzdWx0PEl0ZW0+PiB7XG4gICAgcmV0dXJuIChzZXJ2aWNlIGFzIGFueSlbZm5dKHRvR2V0QWxsUGFyYW1zQXNVcmxRdWVyeShwYXJhbXMpKS5waXBlKG1hcFRvRGF0YUxpc3Q8SXRlbT4oKSk7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgdGhlIFwiZ2V0QWxsXCIgb24gQVBJIHNlcnZpY2Ugd2l0aCByZXF1ZXN0IHBhcmFtZXRlcnMuXG4gKiBHZXQgYWxsIGlzIGV4cGVjdGVkIHRvIGJlIGV4ZWN1dGVkIHZpYSBQT1NUIG1ldGhvZCB1c2luZyBwYXJhbXMgYXMgb2JqZWN0IGluIGJvZHkgb2YgcmVxdWVzdC5cbiAqXG4gKiBAcGFyYW0ge1NlcnZpY2V9IHNlcnZpY2UgLSBUaGUgQVBJIHNlcnZpY2UgaW5zdGFuY2UuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBnZXRBbGxGbiAtIFRoZSBcImdldEFsbFwiIGZ1bmN0aW9uIG9uIHByb3ZpZGVkIHNlcnZpY2UgaW5zdGFuY2UuXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIGRhdGEgbGlzdCBwYXJhbXMuXG4gKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTw8RGF0YUxpc3RSZXN1bHQ8SXRlbT4+Pn0gQW4gb2JzZXJ2YWJsZSB3aXRoIGRhdGEgbGlzdCByZXN1bHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjdXRlR2V0QWxsQXNQb3N0PFNlcnZpY2UsIEl0ZW0sIFNvcnRzLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55PihcbiAgICBzZXJ2aWNlOiBTZXJ2aWNlLFxuICAgIGdldEFsbEZuOiAocmVxdWVzdFBhcmFtZXRlcnM6IEdldEFsbFBhcmFtc1R5cGU8U29ydHMsIEZpbHRlcnM+KSA9PiBPYnNlcnZhYmxlPHtkYXRhPzogSXRlbVtdOyB0b3RhbENvdW50PzogbnVtYmVyfT4sXG4gICAgcGFyYW1zOiBEYXRhTGlzdFBhcmFtczxTb3J0cywgRmlsdGVycz5cbik6IE9ic2VydmFibGU8RGF0YUxpc3RSZXN1bHQ8SXRlbT4+IHtcbiAgICByZXR1cm4gZ2V0QWxsRm4uYmluZChzZXJ2aWNlKSh0b0dldEFsbFBhcmFtcyhwYXJhbXMpKS5waXBlKG1hcFRvRGF0YUxpc3Q8SXRlbT4oKSk7XG59XG4iXX0=
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1wYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlcnMvZ2V0LWFsbC1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUVILG9CQUFvQixFQUlwQixlQUFlLEVBQ2YsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNoQixNQUFNLDZCQUE2QixDQUFDO0FBVXJDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxTQUFpQjtJQUMzRCxRQUFRLFNBQVMsRUFBRSxDQUFDO1FBQ2hCLEtBQUssZUFBZSxDQUFDLE1BQU07WUFDdkIsT0FBTyxRQUFRLENBQUM7UUFDcEIsS0FBSyxlQUFlLENBQUMsU0FBUztZQUMxQixPQUFPLFlBQVksQ0FBQztRQUN4QixLQUFLLGVBQWUsQ0FBQyxRQUFRO1lBQ3pCLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLEtBQUssZUFBZSxDQUFDLFdBQVc7WUFDNUIsT0FBTyxjQUFjLENBQUM7UUFDMUIsS0FBSyxlQUFlLENBQUMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQztRQUNoQixLQUFLLGVBQWUsQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sUUFBUSxDQUFDO1FBQ3BCLEtBQUssZUFBZSxDQUFDLFVBQVU7WUFDM0IsT0FBTyxhQUFhLENBQUM7UUFDekIsS0FBSyxlQUFlLENBQUMsUUFBUTtZQUN6QixPQUFPLFdBQVcsQ0FBQztRQUN2QixLQUFLLGVBQWUsQ0FBQyxRQUFRO1lBQ3pCLE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLEtBQUssZUFBZSxDQUFDLGlCQUFpQjtZQUNsQyxPQUFPLHVCQUF1QixDQUFDO1FBQ25DLEtBQUssZUFBZSxDQUFDLFdBQVc7WUFDNUIsT0FBTyxjQUFjLENBQUM7UUFDMUIsS0FBSyxlQUFlLENBQUMsb0JBQW9CO1lBQ3JDLE9BQU8sMEJBQTBCLENBQUM7UUFDdEMsS0FB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QVUsd0JBQXdCLENBQUMsTUFBdUI7SUFDNUQsT0FBTyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUN6QixPQUFnQixFQUNoQixRQUFvSCxFQUNwSCxNQUFzQztJQUV0QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFRLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLE9BQWdCLEVBQ2hCLEVBQXlJLEVBQ3pJLE1BQXNDO0lBRXRDLE9BQVEsT0FBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBUSxDQUFDLENBQUM7QUFDOUYsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUMvQixPQUFnQixFQUNoQixRQUFtSCxFQUNuSCxNQUFzQztJQUV0QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBUSxDQUFDLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgQ2xhc3NGdW5jdGlvbktleXNXaXRoUGFyYW1BbmRSZXR1cm5UeXBlLFxuICAgIENvbW1vbnNJbnRlcm5hbEVycm9yLFxuICAgIERhdGFMaXN0RmlsdGVyLFxuICAgIERhdGFMaXN0UGFyYW1zLFxuICAgIERhdGFMaXN0UmVzdWx0LFxuICAgIEZpbHRlck1hdGNoTW9kZSxcbiAgICBkYXRhTGlzdFBhcmFtc0ZpbHRlclRvVXJsUXVlcnksXG4gICAgZGF0YUxpc3RQYXJhbXNGaWx0ZXJzVG9VcmxRdWVyeSxcbiAgICBkYXRhTGlzdFBhcmFtc1NvcnRUb1VybFF1ZXJ5LFxuICAgIG1hcFRvRGF0YUxpc3Rcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBHZXRBbGxQYXJhbXNGaWx0ZXJNYXRjaFR5cGUsXG4gICAgR2V0QWxsUGFyYW1zRmlsdGVyVHlwZSxcbiAgICBHZXRBbGxQYXJhbXNUeXBlLFxuICAgIEdldEFsbFBhcmFtc1VybFF1ZXJ5VHlwZSxcbiAgICBHZXRBbGxQYXJhbXNVcmxRdWVyeVdpdGhGaWx0ZXJzSW5LZXlUeXBlXG59IGZyb20gJy4uL21vZGVscy9yZXF1ZXN0LXBhcmFtcy5tb2RlbCc7XG5cbi8qKlxuICogQ29udmVydHMgYSBmaWx0ZXIgbWF0Y2ggbW9kZSB0byBpdHMgY29ycmVzcG9uZGluZyBlbnVtIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtYXRjaE1vZGUgLSBUaGUgZmlsdGVyIG1hdGNoIG1vZGUgZnJvbSBkYXRhIGxpc3QgZmlsdGVyIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7R2V0QWxsUGFyYW1zRmlsdGVyTWF0Y2hUeXBlfSAtIFRoZSBjb252ZXJ0ZWQgZW51bSB2YWx1ZS5cbiAqIEB0aHJvd3Mge0NvbW1vbnNJbnRlcm5hbEVycm9yfSAtIElmIHRoZSBmaWx0ZXIgbWF0Y2ggbW9kZSBpcyBub3Qgc3VwcG9ydGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9HZXRBbGxQYXJhbXNGaWx0ZXJNYXRjaE1vZGUobWF0Y2hNb2RlOiBzdHJpbmcpOiBHZXRBbGxQYXJhbXNGaWx0ZXJNYXRjaFR5cGUge1xuICAgIHN3aXRjaCAobWF0Y2hNb2RlKSB7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkVxdWFsczpcbiAgICAgICAgICAgIHJldHVybiAnRVFVQUxTJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuTm90RXF1YWxzOlxuICAgICAgICAgICAgcmV0dXJuICdOT1RfRVFVQUxTJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuQ29udGFpbnM6XG4gICAgICAgICAgICByZXR1cm4gJ0NPTlRBSU5TJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuTm90Q29udGFpbnM6XG4gICAgICAgICAgICByZXR1cm4gJ05PVF9DT05UQUlOUyc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkluOlxuICAgICAgICAgICAgcmV0dXJuICdJTic7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLk5vdEluOlxuICAgICAgICAgICAgcmV0dXJuICdOT1RfSU4nO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5TdGFydHNXaXRoOlxuICAgICAgICAgICAgcmV0dXJuICdTVEFSVFNfV0lUSCc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkVuZHNXaXRoOlxuICAgICAgICAgICAgcmV0dXJuICdFTkRTX1dJVEgnO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5MZXNzVGhhbjpcbiAgICAgICAgICAgIHJldHVybiAnTEVTU19USEFOJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW5PckVxdWFsVG86XG4gICAgICAgICAgICByZXR1cm4gJ0xFU1NfVEhBTl9PUl9FUVVBTF9UTyc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkdyZWF0ZXJUaGFuOlxuICAgICAgICAgICAgcmV0dXJuICdHUkVBVEVSX1RIQU4nO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbk9yRXF1YWxUbzpcbiAgICAgICAgICAgIHJldHVybiAnR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuQmV0d2VlbjpcbiAgICAgICAgICAgIHJldHVybiAnQkVUV0VFTic7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkV4aXN0czpcbiAgICAgICAgICAgIHJldHVybiAnRVhJU1RTJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuRG9lc05vdEV4aXN0OlxuICAgICAgICAgICAgcmV0dXJuICdET0VTX05PVF9FWElTVCc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYEZpbHRlciBtYXRjaCB0eXBlICcke21hdGNoTW9kZX0nIG5vdCBzdXBwb3J0ZWQuYCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB0b0dldEFsbFBhcmFtc0FzVXJsUXVlcnlDb21tb248U29ydHMsIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnk+KHBhcmFtczogRGF0YUxpc3RQYXJhbXM8U29ydHMsIEZpbHRlcnM+KTogR2V0QWxsUGFyYW1zVXJsUXVlcnlUeXBlPEZpbHRlcnM+IHtcbiAgICBjb25zdCByZXMgPSB7fSBhcyBHZXRBbGxQYXJhbXNVcmxRdWVyeVR5cGU8RmlsdGVycz47XG5cbiAgICBpZiAocGFyYW1zLm9mZnNldCAhPSBudWxsKSB7XG4gICAgICAgIHJlcy5vZmZzZXQgPSBwYXJhbXMub2Zmc2V0O1xuICAgIH1cbiAgICBpZiAocGFyYW1zLmxpbWl0ICE9IG51bGwpIHtcbiAgICAgICAgcmVzLmxpbWl0ID0gcGFyYW1zLmxpbWl0O1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuc2VhcmNoICE9IG51bGwgJiYgcGFyYW1zLnNlYXJjaCAhPT0gJycpIHtcbiAgICAgICAgbGV0IGNhc2VTZW5zaXRpdml0eU9wdGlvbiA9ICdjaSc7XG5cbiAgICAgICAgaWYgKHBhcmFtcy5maWx0ZXJzPy5bJ2dsb2JhbCcgYXMgRmlsdGVyc10/LmNhc2VTZW5zaXRpdmUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGNhc2VTZW5zaXRpdml0eU9wdGlvbiA9ICdjcyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXMuZ2xvYmFsRmlsdGVyID0gYCR7Y2FzZVNlbnNpdGl2aXR5T3B0aW9ufToke3BhcmFtcy5zZWFyY2h9YDtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJhbXMuc29ydCkgJiYgcGFyYW1zLnNvcnQubGVuZ3RoID4gMCkge1xuICAgICAgICByZXMuc29ydCA9IGRhdGFMaXN0UGFyYW1zU29ydFRvVXJsUXVlcnkocGFyYW1zIGFzIERhdGFMaXN0UGFyYW1zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGdpdmVuIHBhcmFtZXRlcnMgb2YgYSBEYXRhTGlzdFBhcmFtcyBvYmplY3QgaW50byBhIGdldCBhbGwgcmVxdWVzdCBwYXJhbSBvYmplY3Qgd2l0aCB2YWx1ZXMgYXMgVVJMIHF1ZXJ5IHN0cmluZyByZXByZXNlbnRhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0RhdGFMaXN0UGFyYW1zfSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byBjb252ZXJ0LlxuICogQHR5cGVwYXJhbSBTb3J0cyAtIFRoZSB0eXBlIG9mIHRoZSBzb3J0aW5nIG9wdGlvbnMgZm9yIHRoZSBkYXRhIGxpc3QuXG4gKiBAdHlwZXBhcmFtIEZpbHRlcnMgLSBUaGUgdHlwZSBvZiB0aGUgZmlsdGVycyBmb3IgdGhlIGRhdGEgbGlzdC5cbiAqIEByZXR1cm5zIHtHZXRBbGxQYXJhbXNVcmxRdWVyeVR5cGU8RmlsdGVycz59IC0gR2V0IGFsbCByZXF1ZXN0IHBhcmFtIG9iamVjdCB3aXRoIHZhbHVlcyBhcyBVUkwgcXVlcnkgc3RyaW5nIHJlcHJlc2VudGF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9HZXRBbGxQYXJhbXNBc1VybFF1ZXJ5PFNvcnRzLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55PihwYXJhbXM6IERhdGFMaXN0UGFyYW1zPFNvcnRzLCBGaWx0ZXJzPik6IEdldEFsbFBhcmFtc1VybFF1ZXJ5VHlwZTxGaWx0ZXJzPiB7XG4gICAgY29uc3QgcmVzID0gdG9HZXRBbGxQYXJhbXNBc1VybFF1ZXJ5Q29tbW9uKHBhcmFtcyk7XG5cbiAgICBpZiAocGFyYW1zLmZpbHRlcnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW1zLmZpbHRlcnMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIHJlc1trZXkgYXMgRmlsdGVyc10gPSBkYXRhTGlzdFBhcmFtc0ZpbHRlcnNUb1VybFF1ZXJ5KHBhcmFtcywga2V5IGFzIEZpbHRlcnMpIGFzIGFueTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBnaXZlbiBwYXJhbWV0ZXJzIG9mIGEgRGF0YUxpc3RQYXJhbXMgb2JqZWN0IGludG8gYSBnZXQgYWxsIHJlcXVlc3QgcGFyYW0gb2JqZWN0IHdpdGggdmFsdWVzIGFzIFVSTCBxdWVyeSBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gKlxuICogQHBhcmFtIHtEYXRhTGlzdFBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdG8gY29udmVydC5cbiAqIEBwYXJhbSB7RmlsdGVyS2V5fSBmaWx0ZXJLZXkgLSBQcm9wZXJ0eSBrZXkgZm9yIGZpbHRlciBvYmplY3QuXG4gKiBAdHlwZXBhcmFtIFNvcnRzIC0gVGhlIHR5cGUgb2YgdGhlIHNvcnRpbmcgb3B0aW9ucyBmb3IgdGhlIGRhdGEgbGlzdC5cbiAqIEB0eXBlcGFyYW0gRmlsdGVycyAtIFRoZSB0eXBlIG9mIHRoZSBmaWx0ZXJzIGZvciB0aGUgZGF0YSBsaXN0LlxuICogQHR5cGVwYXJhbSBGaWx0ZXJLZXkgLSBUaGUgdHlwZSByZXByZXNlbnRpbmcgcHJvcGVydHkga2V5IHdoZXJlIGZpbHRlcnMgd2lsbCBiZSBwdXQgdG8uXG4gKiBAcmV0dXJucyB7R2V0QWxsUGFyYW1zVXJsUXVlcnlXaXRoRmlsdGVyc0luS2V5VHlwZTxGaWx0ZXJLZXksIEZpbHRlcnM+fSAtIEdldCBhbGwgcmVxdWVzdCBwYXJhbSBvYmplY3Qgd2l0aCB2YWx1ZXMgYXMgVVJMIHF1ZXJ5IHN0cmluZyByZXByZXNlbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvR2V0QWxsUGFyYW1zQXNVcmxRdWVyeVdpdGhGaWx0ZXJzSW5Qcm9wZXJ0eTxTb3J0cywgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueSwgRmlsdGVyS2V5IGV4dGVuZHMgc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sID0gJ2ZpbHRlcnMnPihcbiAgICBwYXJhbXM6IERhdGFMaXN0UGFyYW1zPFNvcnRzLCBGaWx0ZXJzPixcbiAgICBmaWx0ZXJLZXk6IEZpbHRlcktleSA9ICdmaWx0ZXJzJyBhcyBGaWx0ZXJLZXlcbik6IEdldEFsbFBhcmFtc1VybFF1ZXJ5V2l0aEZpbHRlcnNJbktleVR5cGU8RmlsdGVyS2V5LCBGaWx0ZXJzPiB7XG4gICAgY29uc3QgcmVzID0gdG9HZXRBbGxQYXJhbXNBc1VybFF1ZXJ5Q29tbW9uKHBhcmFtcykgYXMgR2V0QWxsUGFyYW1zVXJsUXVlcnlXaXRoRmlsdGVyc0luS2V5VHlwZTxGaWx0ZXJLZXksIEZpbHRlcnM+O1xuXG4gICAgaWYgKHBhcmFtcy5maWx0ZXJzICYmIE9iamVjdC5rZXlzKHBhcmFtcy5maWx0ZXJzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIChyZXMgYXMgYW55KVtmaWx0ZXJLZXldID0ge307XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmFtcy5maWx0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAocmVzIGFzIGFueSlbZmlsdGVyS2V5XVtrZXkgYXMgRmlsdGVyc10gPSBkYXRhTGlzdFBhcmFtc0ZpbHRlcnNUb1VybFF1ZXJ5KHBhcmFtcywga2V5IGFzIEZpbHRlcnMpIGFzIGFueTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBnaXZlbiBwYXJhbWV0ZXJzIG9mIGEgRGF0YUxpc3RQYXJhbXMgb2JqZWN0IGludG8gYSBnZXQgYWxsIHJlcXVlc3QgcGFyYW0gb2JqZWN0IHdpdGggdmFsdWVzIGFzIG9iamVjdHMgZm9yIFBPU1QgcmVxdWVzdHMuXG4gKlxuICogQHBhcmFtIHtEYXRhTGlzdFBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdG8gY29udmVydC5cbiAqIEB0eXBlcGFyYW0gU29ydHMgLSBUaGUgdHlwZSBvZiB0aGUgc29ydGluZyBvcHRpb25zIGZvciB0aGUgZGF0YSBsaXN0LlxuICogQHR5cGVwYXJhbSBGaWx0ZXJzIC0gVGhlIHR5cGUgb2YgdGhlIGZpbHRlcnMgZm9yIHRoZSBkYXRhIGxpc3QuXG4gKiBAcmV0dXJucyB7R2V0QWxsUGFyYW1zVHlwZTxTb3J0cywgRmlsdGVycz59IC0gR2V0IGFsbCByZXF1ZXN0IHBhcmFtIG9iamVjdCB3aXRoIHZhbHVlcyBhcyBvYmplY3RzIGZvciBQT1NUIHJlcXVlc3RzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9HZXRBbGxQYXJhbXM8U29ydHMsIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnk+KHBhcmFtczogRGF0YUxpc3RQYXJhbXM8U29ydHMsIEZpbHRlcnM+KTogR2V0QWxsUGFyYW1zVHlwZTxTb3J0cywgRmlsdGVycz4ge1xuICAgIGNvbnN0IHJlcyA9IHt9IGFzIEdldEFsbFBhcmFtc1R5cGU8U29ydHMsIEZpbHRlcnM+O1xuXG4gICAgaWYgKHBhcmFtcy5vZmZzZXQgIT0gbnVsbCkge1xuICAgICAgICByZXMub2Zmc2V0ID0gcGFyYW1zLm9mZnNldDtcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5saW1pdCAhPSBudWxsKSB7XG4gICAgICAgIHJlcy5saW1pdCA9IHBhcmFtcy5saW1pdDtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnNlYXJjaCAhPSBudWxsKSB7XG4gICAgICAgIHJlcy5nbG9iYWxGaWx0ZXIgPSB7XG4gICAgICAgICAgICB2YWx1ZTogcGFyYW1zLnNlYXJjaFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtcy5zb3J0KSAmJiBwYXJhbXMuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlcy5zb3J0ID0gcGFyYW1zLnNvcnQubWFwKHMgPT4gKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiBzLnByb3BlcnR5LFxuICAgICAgICAgICAgZGlyZWN0aW9uOiBzLmFzY2VuZGluZyA9PT0gdHJ1ZSB8fCBzLmFzY2VuZGluZyA9PSBudWxsID8gJ0FTQ0VORElORycgOiAnREVTQ0VORElORydcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuZmlsdGVycykge1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJhbXMuZmlsdGVycykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zRmlsdGVyID0gcGFyYW1zLmZpbHRlcnMhW2tleSBhcyBGaWx0ZXJzXSE7XG4gICAgICAgICAgICBpZiAoIXBhcmFtc0ZpbHRlci5tYXRjaE1vZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IEFycmF5LmlzQXJyYXkocGFyYW1zRmlsdGVyLnZhbHVlKSA/IHVuZGVmaW5lZCA6IHBhcmFtc0ZpbHRlci52YWx1ZTtcbiAgICAgICAgICAgIGxldCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHBhcmFtc0ZpbHRlci52YWx1ZSkgPyBwYXJhbXNGaWx0ZXIudmFsdWUgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIGlmIChwYXJhbXNGaWx0ZXIubWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuRXhpc3RzIHx8IHBhcmFtc0ZpbHRlci5tYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5Eb2VzTm90RXhpc3QpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB2YWx1ZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtc0ZpbHRlci5tYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5JbiB8fCBwYXJhbXNGaWx0ZXIubWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuTm90SW4pIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWVzID09IG51bGwgfHwgdmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYEZpbHRlciB3aXRoIG1vZGUgJHtwYXJhbXNGaWx0ZXIubWF0Y2hNb2RlfSBtdXN0IGhhdmUgdmFsdWVzIGluIGFycmF5LCBidXQgaGFzICR7dmFsdWVzfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1zRmlsdGVyLm1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWVzID09IG51bGwgfHwgdmFsdWVzLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYEZpbHRlciB3aXRoIG1vZGUgJHtwYXJhbXNGaWx0ZXIubWF0Y2hNb2RlfSBtdXN0IGhhdmUgMiB2YWx1ZXMgaW4gYXJyYXksIGJ1dCBoYXMgJHt2YWx1ZXN9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbXNGaWx0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY2FzZVNlbnNpdGl2aXR5ID0gcGFyYW1zRmlsdGVyLmNhc2VTZW5zaXRpdmUgPyAnQ0FTRV9TRU5TSVRJVkUnIDogcGFyYW1zRmlsdGVyLmNhc2VTZW5zaXRpdmUgPT09IGZhbHNlID8gJ0NBU0VfSU5TRU5TSVRJVkUnIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gPEdldEFsbFBhcmFtc0ZpbHRlclR5cGU8YW55Pj57XG4gICAgICAgICAgICAgICAgZmlsdGVyTWF0Y2hUeXBlOiB0b0dldEFsbFBhcmFtc0ZpbHRlck1hdGNoTW9kZShwYXJhbXNGaWx0ZXIubWF0Y2hNb2RlKVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXIudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWx1ZXMgIT0gbnVsbCAmJiBBcnJheS5pc0FycmF5KHZhbHVlcykgJiYgdmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXIudmFsdWVzID0gdmFsdWVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhc2VTZW5zaXRpdml0eSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLmNhc2VTZW5zaXRpdml0eSA9IGNhc2VTZW5zaXRpdml0eTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgKHJlcyBhcyBhbnkpW2tleSBhcyBGaWx0ZXJzXSA9IGZpbHRlcjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBEYXRhTGlzdFBhcmFtcyB0byBzb3J0IHF1ZXJ5IFVSTCByZXByZXNlbnRhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0RhdGFMaXN0UGFyYW1zfSBwYXJhbXMgLSBUaGUgcGFyYW1zIG9iamVjdCB3aXRoIHNvcnQgcHJvcGVydHkgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gVGhlIGZvcm1hdHRlZCBzb3J0IHF1ZXJ5IFVSTCBwYXJhbSBvciB1bmRlZmluZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0dldEFsbFNvcnRBc1F1ZXJ5VXJsKHBhcmFtcz86IERhdGFMaXN0UGFyYW1zPGFueSwgYW55Pik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGRhdGFMaXN0UGFyYW1zU29ydFRvVXJsUXVlcnkocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIERhdGFMaXN0RmlsdGVyIG9iamVjdCB0byBhIHF1ZXJ5IFVSTCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtEYXRhTGlzdEZpbHRlcn0gZmlsdGVyIC0gVGhlIGZpbHRlciBvYmplY3QgZnJvbSBwYXJhbXMgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfSAtIFRoZSBmb3JtYXR0ZWQgZmlsdGVyIHF1ZXJ5IFVSTCBwYXJhbSBvciB1bmRlZmluZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0dldEFsbEZpbHRlckFzUXVlcnlVcmwoZmlsdGVyPzogRGF0YUxpc3RGaWx0ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBkYXRhTGlzdFBhcmFtc0ZpbHRlclRvVXJsUXVlcnkoZmlsdGVyKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyB0aGUgXCJnZXRBbGxcIiBvbiBBUEkgc2VydmljZSB3aXRoIHJlcXVlc3QgcGFyYW1ldGVycy5cbiAqIEdldCBhbGwgaXMgZXhwZWN0ZWQgdG8gYmUgZXhlY3V0ZWQgdmlhIEdFVCBtZXRob2QgdXNpbmcgcGFyYW1zIGFzIFVSTCBxdWVyaWVzLlxuICpcbiAqIEBwYXJhbSB7U2VydmljZX0gc2VydmljZSAtIFRoZSBBUEkgc2VydmljZSBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGdldEFsbEZuIC0gVGhlIFwiZ2V0QWxsXCIgZnVuY3Rpb24gb24gcHJvdmlkZWQgc2VydmljZSBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBUaGUgZGF0YSBsaXN0IHBhcmFtcy5cbiAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPDxEYXRhTGlzdFJlc3VsdDxJdGVtPj4+fSBBbiBvYnNlcnZhYmxlIHdpdGggZGF0YSBsaXN0IHJlc3VsdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGVHZXRBbGw8U2VydmljZSwgSXRlbSwgU29ydHMsIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnk+KFxuICAgIHNlcnZpY2U6IFNlcnZpY2UsXG4gICAgZ2V0QWxsRm46IChyZXF1ZXN0UGFyYW1ldGVyczogR2V0QWxsUGFyYW1zVXJsUXVlcnlUeXBlPEZpbHRlcnM+KSA9PiBPYnNlcnZhYmxlPHtkYXRhPzogSXRlbVtdOyB0b3RhbENvdW50PzogbnVtYmVyfT4sXG4gICAgcGFyYW1zOiBEYXRhTGlzdFBhcmFtczxTb3J0cywgRmlsdGVycz5cbik6IE9ic2VydmFibGU8RGF0YUxpc3RSZXN1bHQ8SXRlbT4+IHtcbiAgICByZXR1cm4gZ2V0QWxsRm4uYmluZChzZXJ2aWNlKSh0b0dldEFsbFBhcmFtc0FzVXJsUXVlcnkocGFyYW1zKSkucGlwZShtYXBUb0RhdGFMaXN0PEl0ZW0+KCkpO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIHRoZSBcImdldEFsbFwiIG9uIEFQSSBzZXJ2aWNlIHdpdGggcmVxdWVzdCBwYXJhbWV0ZXJzLlxuICogR2V0IGFsbCBpcyBleHBlY3RlZCB0byBiZSBleGVjdXRlZCB2aWEgR0VUIG1ldGhvZCB1c2luZyBwYXJhbXMgYXMgVVJMIHF1ZXJpZXMuXG4gKlxuICogQHBhcmFtIHtTZXJ2aWNlfSBzZXJ2aWNlIC0gVGhlIEFQSSBzZXJ2aWNlIGluc3RhbmNlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZ2V0QWxsRm4gLSBUaGUgXCJnZXRBbGxcIiBmdW5jdGlvbiBvbiBwcm92aWRlZCBzZXJ2aWNlLlxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBkYXRhIGxpc3QgcGFyYW1zLlxuICogQHJldHVybnMge09ic2VydmFibGU8PERhdGFMaXN0UmVzdWx0PEl0ZW0+Pj59IEFuIG9ic2VydmFibGUgd2l0aCBkYXRhIGxpc3QgcmVzdWx0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBpU2VydmljZUdldEFsbDxTZXJ2aWNlLCBJdGVtLCBTb3J0cywgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueT4oXG4gICAgc2VydmljZTogU2VydmljZSxcbiAgICBmbjogQ2xhc3NGdW5jdGlvbktleXNXaXRoUGFyYW1BbmRSZXR1cm5UeXBlPFNlcnZpY2UsIEdldEFsbFBhcmFtc1VybFF1ZXJ5VHlwZTxGaWx0ZXJzPiwgT2JzZXJ2YWJsZTx7ZGF0YT86IEl0ZW1bXTsgdG90YWxDb3VudD86IG51bWJlcn0+PixcbiAgICBwYXJhbXM6IERhdGFMaXN0UGFyYW1zPFNvcnRzLCBGaWx0ZXJzPlxuKTogT2JzZXJ2YWJsZTxEYXRhTGlzdFJlc3VsdDxJdGVtPj4ge1xuICAgIHJldHVybiAoc2VydmljZSBhcyBhbnkpW2ZuXSh0b0dldEFsbFBhcmFtc0FzVXJsUXVlcnkocGFyYW1zKSkucGlwZShtYXBUb0RhdGFMaXN0PEl0ZW0+KCkpO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIHRoZSBcImdldEFsbFwiIG9uIEFQSSBzZXJ2aWNlIHdpdGggcmVxdWVzdCBwYXJhbWV0ZXJzLlxuICogR2V0IGFsbCBpcyBleHBlY3RlZCB0byBiZSBleGVjdXRlZCB2aWEgUE9TVCBtZXRob2QgdXNpbmcgcGFyYW1zIGFzIG9iamVjdCBpbiBib2R5IG9mIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHtTZXJ2aWNlfSBzZXJ2aWNlIC0gVGhlIEFQSSBzZXJ2aWNlIGluc3RhbmNlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZ2V0QWxsRm4gLSBUaGUgXCJnZXRBbGxcIiBmdW5jdGlvbiBvbiBwcm92aWRlZCBzZXJ2aWNlIGluc3RhbmNlLlxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBkYXRhIGxpc3QgcGFyYW1zLlxuICogQHJldHVybnMge09ic2VydmFibGU8PERhdGFMaXN0UmVzdWx0PEl0ZW0+Pj59IEFuIG9ic2VydmFibGUgd2l0aCBkYXRhIGxpc3QgcmVzdWx0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZUdldEFsbEFzUG9zdDxTZXJ2aWNlLCBJdGVtLCBTb3J0cywgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueT4oXG4gICAgc2VydmljZTogU2VydmljZSxcbiAgICBnZXRBbGxGbjogKHJlcXVlc3RQYXJhbWV0ZXJzOiBHZXRBbGxQYXJhbXNUeXBlPFNvcnRzLCBGaWx0ZXJzPikgPT4gT2JzZXJ2YWJsZTx7ZGF0YT86IEl0ZW1bXTsgdG90YWxDb3VudD86IG51bWJlcn0+LFxuICAgIHBhcmFtczogRGF0YUxpc3RQYXJhbXM8U29ydHMsIEZpbHRlcnM+XG4pOiBPYnNlcnZhYmxlPERhdGFMaXN0UmVzdWx0PEl0ZW0+PiB7XG4gICAgcmV0dXJuIGdldEFsbEZuLmJpbmQoc2VydmljZSkodG9HZXRBbGxQYXJhbXMocGFyYW1zKSkucGlwZShtYXBUb0RhdGFMaXN0PEl0ZW0+KCkpO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1wYXJhbXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9yZXF1ZXN0LXBhcmFtcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZhdWx0IChleHBlY3RlZCkgdHlwZSB3aXRob3V0IGZpbHRlcnMsIHdoaWNoIGFyZSBcImR5bmFtaWNcIiBrZXlzLlxuICovXG5leHBvcnQgdHlwZSBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZTxTb3J0ID0gR2V0QWxsUGFyYW1zU29ydFR5cGVbXSB8IHN0cmluZywgR2xvYmFsRmlsdGVyID0gR2V0QWxsUGFyYW1zR2xvYmFsRmlsdGVyVHlwZSB8IHN0cmluZz4gPSB7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIGxpbWl0PzogbnVtYmVyO1xuICAgIGdsb2JhbEZpbHRlcj86IEdsb2JhbEZpbHRlcjtcbiAgICBzb3J0PzogU29ydDtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc29ydCBkaXJlY3Rpb24gdHlwZSBmb3IgYSBnZXQgYWxsIHJlcXVlc3QgcGFyYW1zIChhc2NlbmRpbmcgb3IgZGVzY2VuZGluZykuXG4gKi9cbmV4cG9ydCB0eXBlIEdldEFsbFBhcmFtc1NvcnREaXJlY3Rpb25UeXBlID0gJ0FTQ0VORElORycgfCAnREVTQ0VORElORyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc29ydCB0eXBlIGZvciBhIGdldCBhbGwgcmVxdWVzdCBwYXJhbXMuXG4gKlxuICogQHR5cGVwYXJhbSBQcm9wZXJ0eSBUaGUgdHlwZSBvZiB0aGUgcHJvcGVydHkgdG8gc29ydCBieS5cbiAqIEB0eXBlcGFyYW0gRGlyZWN0aW9uIFRoZSB0eXBlIG9mIHRoZSBzb3J0IGRpcmVjdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgR2V0QWxsUGFyYW1zU29ydFR5cGU8UHJvcGVydHkgPSBzdHJpbmcsIERpcmVjdGlvbiA9IEdldEFsbFBhcmFtc1NvcnREaXJlY3Rpb25UeXBlPiA9IHtcbiAgICBwcm9wZXJ0eTogUHJvcGVydHk7XG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb247XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHBvc3NpYmxlIG1hdGNoIHR5cGVzIGZvciBmaWx0ZXJzIGluIGdldCBhbGwgcmVxdWVzdCBwYXJhbXMuXG4gKi9cbmV4cG9ydCB0eXBlIEdldEFsbFBhcmFtc0ZpbHRlck1hdGNoVHlwZSA9XG4gICAgfCAnRVFVQUxTJ1xuICAgIHwgJ05PVF9FUVVBTFMnXG4gICAgfCAnQkVUV0VFTidcbiAgICB8ICdDT05UQUlOUydcbiAgICB8ICdOT1RfQ09OVEFJTlMnXG4gICAgfCAnU1RBUlRTX1dJVEgnXG4gICAgfCAnRU5EU19XSVRIJ1xuICAgIHwgJ0lOJ1xuICAgIHwgJ05PVF9JTidcbiAgICB8ICdMRVNTX1RIQU4nXG4gICAgfCAnTEVTU19USEFOX09SX0VRVUFMX1RPJ1xuICAgIHwgJ0dSRUFURVJfVEhBTidcbiAgICB8ICdHUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE8nXG4gICAgfCAnRVhJU1RTJ1xuICAgIHwgJ0RPRVNfTk9UX0VYSVNUJztcblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIHBvc3NpYmxlIGNhc2Ugc2Vuc2l0aXZpdHkgZm9yIGZpbHRlciBpbiBnZXQgYWxsIHJlcXVlc3QgcGFyYW1zLlxuICovXG5leHBvcnQgdHlwZSBHZXRBbGxQYXJhbXNGaWx0ZXJDYXNlU2Vuc2l0aXZpdHlUeXBlID0gJ0NBU0VfU0VOU0lUSVZFJyB8ICdDQVNFX0lOU0VOU0lUSVZFJztcblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIGdsb2JhbCBmaWx0ZXIgKHNlYXJjaCkgaW4gZ2V0IGFsbCByZXF1ZXN0IHBhcmFtcy5cbiAqL1xuZXhwb3J0IHR5cGUgR2V0QWxsUGFyYW1zR2xvYmFsRmlsdGVyVHlwZTxDYXNlU2Vuc2l0aXZpdHkgPSBHZXRBbGxQYXJhbXNGaWx0ZXJDYXNlU2Vuc2l0aXZpdHlUeXBlPiA9IHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGNhc2VTZW5zaXRpdml0eT86IENhc2VTZW5zaXRpdml0eTtcbn07XG5cbi8qKlxuICogRGVzY3JpYmVzIHRoZSBmaWx0ZXJzIGluIGdldCBhbGwgcmVxdWVzdCBwYXJhbXMuXG4gKi9cbmV4cG9ydCB0eXBlIEdldEFsbFBhcmFtc0ZpbHRlcnNUeXBlPEZpbHRlclR5cGUsIEZpbHRlclByb3BlcnRpZXMgZXh0ZW5kcyBrZXlvZiBhbnk+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1wYXJhbXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9yZXF1ZXN0LXBhcmFtcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZhdWx0IChleHBlY3RlZCkgdHlwZSB3aXRob3V0IGZpbHRlcnMsIHdoaWNoIGFyZSBcImR5bmFtaWNcIiBrZXlzLlxuICovXG5leHBvcnQgdHlwZSBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZTxTb3J0ID0gR2V0QWxsUGFyYW1zU29ydFR5cGVbXSB8IHN0cmluZywgR2xvYmFsRmlsdGVyID0gR2V0QWxsUGFyYW1zR2xvYmFsRmlsdGVyVHlwZSB8IHN0cmluZz4gPSB7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIGxpbWl0PzogbnVtYmVyO1xuICAgIGdsb2JhbEZpbHRlcj86IEdsb2JhbEZpbHRlcjtcbiAgICBzb3J0PzogU29ydDtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc29ydCBkaXJlY3Rpb24gdHlwZSBmb3IgYSBnZXQgYWxsIHJlcXVlc3QgcGFyYW1zIChhc2NlbmRpbmcgb3IgZGVzY2VuZGluZykuXG4gKi9cbmV4cG9ydCB0eXBlIEdldEFsbFBhcmFtc1NvcnREaXJlY3Rpb25UeXBlID0gJ0FTQ0VORElORycgfCAnREVTQ0VORElORyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc29ydCB0eXBlIGZvciBhIGdldCBhbGwgcmVxdWVzdCBwYXJhbXMuXG4gKlxuICogQHR5cGVwYXJhbSBQcm9wZXJ0eSBUaGUgdHlwZSBvZiB0aGUgcHJvcGVydHkgdG8gc29ydCBieS5cbiAqIEB0eXBlcGFyYW0gRGlyZWN0aW9uIFRoZSB0eXBlIG9mIHRoZSBzb3J0IGRpcmVjdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgR2V0QWxsUGFyYW1zU29ydFR5cGU8UHJvcGVydHkgPSBzdHJpbmcsIERpcmVjdGlvbiA9IEdldEFsbFBhcmFtc1NvcnREaXJlY3Rpb25UeXBlPiA9IHtcbiAgICBwcm9wZXJ0eTogUHJvcGVydHk7XG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb247XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHBvc3NpYmxlIG1hdGNoIHR5cGVzIGZvciBmaWx0ZXJzIGluIGdldCBhbGwgcmVxdWVzdCBwYXJhbXMuXG4gKi9cbmV4cG9ydCB0eXBlIEdldEFsbFBhcmFtc0ZpbHRlck1hdGNoVHlwZSA9XG4gICAgfCAnRVFVQUxTJ1xuICAgIHwgJ05PVF9FUVVBTFMnXG4gICAgfCAnQkVUV0VFTidcbiAgICB8ICdDT05UQUlOUydcbiAgICB8ICdOT1RfQ09OVEFJTlMnXG4gICAgfCAnU1RBUlRTX1dJVEgnXG4gICAgfCAnRU5EU19XSVRIJ1xuICAgIHwgJ0lOJ1xuICAgIHwgJ05PVF9JTidcbiAgICB8ICdMRVNTX1RIQU4nXG4gICAgfCAnTEVTU19USEFOX09SX0VRVUFMX1RPJ1xuICAgIHwgJ0dSRUFURVJfVEhBTidcbiAgICB8ICdHUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE8nXG4gICAgfCAnRVhJU1RTJ1xuICAgIHwgJ0RPRVNfTk9UX0VYSVNUJztcblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIHBvc3NpYmxlIGNhc2Ugc2Vuc2l0aXZpdHkgZm9yIGZpbHRlciBpbiBnZXQgYWxsIHJlcXVlc3QgcGFyYW1zLlxuICovXG5leHBvcnQgdHlwZSBHZXRBbGxQYXJhbXNGaWx0ZXJDYXNlU2Vuc2l0aXZpdHlUeXBlID0gJ0NBU0VfU0VOU0lUSVZFJyB8ICdDQVNFX0lOU0VOU0lUSVZFJztcblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIGdsb2JhbCBmaWx0ZXIgKHNlYXJjaCkgaW4gZ2V0IGFsbCByZXF1ZXN0IHBhcmFtcy5cbiAqL1xuZXhwb3J0IHR5cGUgR2V0QWxsUGFyYW1zR2xvYmFsRmlsdGVyVHlwZTxDYXNlU2Vuc2l0aXZpdHkgPSBHZXRBbGxQYXJhbXNGaWx0ZXJDYXNlU2Vuc2l0aXZpdHlUeXBlPiA9IHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGNhc2VTZW5zaXRpdml0eT86IENhc2VTZW5zaXRpdml0eTtcbn07XG5cbi8qKlxuICogRGVzY3JpYmVzIHRoZSBmaWx0ZXJzIGluIGdldCBhbGwgcmVxdWVzdCBwYXJhbXMuXG4gKi9cbmV4cG9ydCB0eXBlIEdldEFsbFBhcmFtc0ZpbHRlcnNUeXBlPEZpbHRlclR5cGUsIEZpbHRlclByb3BlcnRpZXMgZXh0ZW5kcyBrZXlvZiBhbnk+ID0ge1xuICAgIFtQIGluIEZpbHRlclByb3BlcnRpZXNdPzogRmlsdGVyVHlwZTtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGZpbHRlciB0eXBlIGZvciBnZXQgYWxsIHJlcXVlc3QgcGFyYW1zLlxuICovXG5leHBvcnQgdHlwZSBHZXRBbGxQYXJhbXNGaWx0ZXJUeXBlPFZhbHVlLCBDYXNlU2Vuc2l0aXZpdHkgPSBHZXRBbGxQYXJhbXNGaWx0ZXJDYXNlU2Vuc2l0aXZpdHlUeXBlLCBNYXRjaFR5cGUgPSBHZXRBbGxQYXJhbXNGaWx0ZXJNYXRjaFR5cGU+ID0ge1xuICAgIHZhbHVlPzogVmFsdWU7XG4gICAgdmFsdWVzPzogQXJyYXk8VmFsdWU+O1xuICAgIGNhc2VTZW5zaXRpdml0eT86IENhc2VTZW5zaXRpdml0eTtcbiAgICBmaWx0ZXJNYXRjaFR5cGU6IE1hdGNoVHlwZTtcbn07XG5cbi8qKlxuICogRGVzY3JpYmVzIGdldCBhbGwgcGFyYW1zIHdpdGggdmFsdWVzIGFzIG9iamVjdHMgKGZvciBQT1NUIHJlcXVlc3RzKS5cbiAqL1xuZXhwb3J0IHR5cGUgR2V0QWxsUGFyYW1zVHlwZTxTb3J0cyA9IHN0cmluZywgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueSA9IHN0cmluZz4gPSBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZTxHZXRBbGxQYXJhbXNTb3J0VHlwZTxTb3J0cz5bXSwgR2V0QWxsUGFyYW1zR2xvYmFsRmlsdGVyVHlwZT4gJlxuICAgIEdldEFsbFBhcmFtc0ZpbHRlcnNUeXBlPEdldEFsbFBhcmFtc0ZpbHRlclR5cGU8YW55PiwgRmlsdGVycz47XG5cbi8qKlxuICogRGVzY3JpYmVzIGdldCBhbGwgcGFyYW1zIHdpdGggdmFsdWVzIGFzIFVSTCBxdWVyaWVzIChmb3IgR0VUIHJlcXVlc3RzKS5cbiAqL1xuZXhwb3J0IHR5cGUgR2V0QWxsUGFyYW1zVXJsUXVlcnlUeXBlPEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnk+ID0gR2V0QWxsUGFyYW1zRGVmYXVsdFdvRmlsdGVyc1R5cGU8c3RyaW5nLCBzdHJpbmc+ICYgR2V0QWxsUGFyYW1zRmlsdGVyc1R5cGU8c3RyaW5nLCBGaWx0ZXJzPjtcblxuLyoqXG4gKiBEZXNjcmliZXMgZ2V0IGFsbCBwYXJhbXMgd2l0aCB2YWx1ZXMgYXMgVVJMIHF1ZXJpZXMgKGZvciBHRVQgcmVxdWVzdHMpIHdoZXJlIGZpbHRlcnMgYXJlIHBsYWNlcyBhcyBvYmplY3QgdW5kZXIgcm9vdCB7RmlsdGVyS2V5fSBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IHR5cGUgR2V0QWxsUGFyYW1zVXJsUXVlcnlXaXRoRmlsdGVyc0luS2V5VHlwZTxGaWx0ZXJLZXkgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnk+ID0gR2V0QWxsUGFyYW1zRGVmYXVsdFdvRmlsdGVyc1R5cGU8c3RyaW5nLCBzdHJpbmc+ICYge1xuICAgIFtrZXkgaW4gRmlsdGVyS2V5XT86IEdldEFsbFBhcmFtc0ZpbHRlcnNUeXBlPHN0cmluZywgRmlsdGVycz47XG59O1xuIl19
|
|
@@ -43,15 +43,7 @@ function toGetAllParamsFilterMatchMode(matchMode) {
|
|
|
43
43
|
throw new CommonsInternalError(`Filter match type '${matchMode}' not supported.`);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
* Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.
|
|
48
|
-
*
|
|
49
|
-
* @param {DataListParams} params - The parameters to convert.
|
|
50
|
-
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
51
|
-
* @typeparam Filters - The type of the filters for the data list.
|
|
52
|
-
* @returns {GetAllParamsUrlQueryType<Filters>} - Get all request param object with values as URL query string representation.
|
|
53
|
-
*/
|
|
54
|
-
function toGetAllParamsAsUrlQuery(params) {
|
|
46
|
+
function toGetAllParamsAsUrlQueryCommon(params) {
|
|
55
47
|
const res = {};
|
|
56
48
|
if (params.offset != null) {
|
|
57
49
|
res.offset = params.offset;
|
|
@@ -69,6 +61,18 @@ function toGetAllParamsAsUrlQuery(params) {
|
|
|
69
61
|
if (Array.isArray(params.sort) && params.sort.length > 0) {
|
|
70
62
|
res.sort = dataListParamsSortToUrlQuery(params);
|
|
71
63
|
}
|
|
64
|
+
return res;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.
|
|
68
|
+
*
|
|
69
|
+
* @param {DataListParams} params - The parameters to convert.
|
|
70
|
+
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
71
|
+
* @typeparam Filters - The type of the filters for the data list.
|
|
72
|
+
* @returns {GetAllParamsUrlQueryType<Filters>} - Get all request param object with values as URL query string representation.
|
|
73
|
+
*/
|
|
74
|
+
function toGetAllParamsAsUrlQuery(params) {
|
|
75
|
+
const res = toGetAllParamsAsUrlQueryCommon(params);
|
|
72
76
|
if (params.filters) {
|
|
73
77
|
Object.keys(params.filters).forEach(key => {
|
|
74
78
|
res[key] = dataListParamsFiltersToUrlQuery(params, key);
|
|
@@ -76,6 +80,26 @@ function toGetAllParamsAsUrlQuery(params) {
|
|
|
76
80
|
}
|
|
77
81
|
return res;
|
|
78
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.
|
|
85
|
+
*
|
|
86
|
+
* @param {DataListParams} params - The parameters to convert.
|
|
87
|
+
* @param {FilterKey} filterKey - Property key for filter object.
|
|
88
|
+
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
89
|
+
* @typeparam Filters - The type of the filters for the data list.
|
|
90
|
+
* @typeparam FilterKey - The type representing property key where filters will be put to.
|
|
91
|
+
* @returns {GetAllParamsUrlQueryWithFiltersInKeyType<FilterKey, Filters>} - Get all request param object with values as URL query string representation.
|
|
92
|
+
*/
|
|
93
|
+
function toGetAllParamsAsUrlQueryWithFiltersInProperty(params, filterKey = 'filters') {
|
|
94
|
+
const res = toGetAllParamsAsUrlQueryCommon(params);
|
|
95
|
+
if (params.filters && Object.keys(params.filters).length > 0) {
|
|
96
|
+
res[filterKey] = {};
|
|
97
|
+
Object.keys(params.filters).forEach(key => {
|
|
98
|
+
res[filterKey][key] = dataListParamsFiltersToUrlQuery(params, key);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return res;
|
|
102
|
+
}
|
|
79
103
|
/**
|
|
80
104
|
* Converts given parameters of a DataListParams object into a get all request param object with values as objects for POST requests.
|
|
81
105
|
*
|
|
@@ -207,5 +231,5 @@ function executeGetAllAsPost(service, getAllFn, params) {
|
|
|
207
231
|
* Generated bundle index. Do not edit.
|
|
208
232
|
*/
|
|
209
233
|
|
|
210
|
-
export { apiServiceGetAll, executeGetAll, executeGetAllAsPost, toGetAllFilterAsQueryUrl, toGetAllParams, toGetAllParamsAsUrlQuery, toGetAllParamsFilterMatchMode, toGetAllSortAsQueryUrl };
|
|
234
|
+
export { apiServiceGetAll, executeGetAll, executeGetAllAsPost, toGetAllFilterAsQueryUrl, toGetAllParams, toGetAllParamsAsUrlQuery, toGetAllParamsAsUrlQueryWithFiltersInProperty, toGetAllParamsFilterMatchMode, toGetAllSortAsQueryUrl };
|
|
211
235
|
//# sourceMappingURL=mediusinc-mng-commons-data-api.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediusinc-mng-commons-data-api.mjs","sources":["../../src/lib/helpers/get-all-params.ts","../../src/index.ts","../../src/mediusinc-mng-commons-data-api.ts"],"sourcesContent":["import {Observable} from 'rxjs';\n\nimport {\n ClassFunctionKeysWithParamAndReturnType,\n CommonsInternalError,\n DataListFilter,\n DataListParams,\n DataListResult,\n FilterMatchMode,\n dataListParamsFilterToUrlQuery,\n dataListParamsFiltersToUrlQuery,\n dataListParamsSortToUrlQuery,\n mapToDataList\n} from '@mediusinc/mng-commons/core';\n\nimport {GetAllParamsFilterMatchType, GetAllParamsFilterType, GetAllParamsType, GetAllParamsUrlQueryType} from '../models/request-params.model';\n\n/**\n * Converts a filter match mode to its corresponding enum value.\n *\n * @param {string} matchMode - The filter match mode from data list filter to convert.\n * @returns {GetAllParamsFilterMatchType} - The converted enum value.\n * @throws {CommonsInternalError} - If the filter match mode is not supported.\n */\nexport function toGetAllParamsFilterMatchMode(matchMode: string): GetAllParamsFilterMatchType {\n switch (matchMode) {\n case FilterMatchMode.Equals:\n return 'EQUALS';\n case FilterMatchMode.NotEquals:\n return 'NOT_EQUALS';\n case FilterMatchMode.Contains:\n return 'CONTAINS';\n case FilterMatchMode.NotContains:\n return 'NOT_CONTAINS';\n case FilterMatchMode.In:\n return 'IN';\n case FilterMatchMode.NotIn:\n return 'NOT_IN';\n case FilterMatchMode.StartsWith:\n return 'STARTS_WITH';\n case FilterMatchMode.EndsWith:\n return 'ENDS_WITH';\n case FilterMatchMode.LessThan:\n return 'LESS_THAN';\n case FilterMatchMode.LessThanOrEqualTo:\n return 'LESS_THAN_OR_EQUAL_TO';\n case FilterMatchMode.GreaterThan:\n return 'GREATER_THAN';\n case FilterMatchMode.GreaterThanOrEqualTo:\n return 'GREATER_THAN_OR_EQUAL_TO';\n case FilterMatchMode.Between:\n return 'BETWEEN';\n case FilterMatchMode.Exists:\n return 'EXISTS';\n case FilterMatchMode.DoesNotExist:\n return 'DOES_NOT_EXIST';\n default:\n throw new CommonsInternalError(`Filter match type '${matchMode}' not supported.`);\n }\n}\n\n/**\n * Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.\n *\n * @param {DataListParams} params - The parameters to convert.\n * @typeparam Sorts - The type of the sorting options for the data list.\n * @typeparam Filters - The type of the filters for the data list.\n * @returns {GetAllParamsUrlQueryType<Filters>} - Get all request param object with values as URL query string representation.\n */\nexport function toGetAllParamsAsUrlQuery<Sorts, Filters extends keyof any>(params: DataListParams<Sorts, Filters>): GetAllParamsUrlQueryType<Filters> {\n const res = {} as GetAllParamsUrlQueryType<Filters>;\n\n if (params.offset != null) {\n res.offset = params.offset;\n }\n if (params.limit != null) {\n res.limit = params.limit;\n }\n\n if (params.search != null && params.search !== '') {\n let caseSensitivityOption = 'ci';\n\n if (params.filters?.['global' as Filters]?.caseSensitive === true) {\n caseSensitivityOption = 'cs';\n }\n\n res.globalFilter = `${caseSensitivityOption}:${params.search}`;\n }\n\n if (Array.isArray(params.sort) && params.sort.length > 0) {\n res.sort = dataListParamsSortToUrlQuery(params as DataListParams);\n }\n\n if (params.filters) {\n Object.keys(params.filters).forEach(key => {\n res[key as Filters] = dataListParamsFiltersToUrlQuery(params, key as Filters) as any;\n });\n }\n\n return res;\n}\n\n/**\n * Converts given parameters of a DataListParams object into a get all request param object with values as objects for POST requests.\n *\n * @param {DataListParams} params - The parameters to convert.\n * @typeparam Sorts - The type of the sorting options for the data list.\n * @typeparam Filters - The type of the filters for the data list.\n * @returns {GetAllParamsType<Sorts, Filters>} - Get all request param object with values as objects for POST requests.\n */\nexport function toGetAllParams<Sorts, Filters extends keyof any>(params: DataListParams<Sorts, Filters>): GetAllParamsType<Sorts, Filters> {\n const res = {} as GetAllParamsType<Sorts, Filters>;\n\n if (params.offset != null) {\n res.offset = params.offset;\n }\n if (params.limit != null) {\n res.limit = params.limit;\n }\n\n if (params.search != null) {\n res.globalFilter = {\n value: params.search\n };\n }\n\n if (Array.isArray(params.sort) && params.sort.length > 0) {\n res.sort = params.sort.map(s => ({\n property: s.property,\n direction: s.ascending === true || s.ascending == null ? 'ASCENDING' : 'DESCENDING'\n }));\n }\n\n if (params.filters) {\n Object.keys(params.filters).forEach(key => {\n const paramsFilter = params.filters![key as Filters]!;\n if (!paramsFilter.matchMode) {\n return;\n }\n\n let value = Array.isArray(paramsFilter.value) ? undefined : paramsFilter.value;\n let values = Array.isArray(paramsFilter.value) ? paramsFilter.value : undefined;\n\n if (paramsFilter.matchMode === FilterMatchMode.Exists || paramsFilter.matchMode === FilterMatchMode.DoesNotExist) {\n value = undefined;\n values = undefined;\n } else if (paramsFilter.matchMode === FilterMatchMode.In || paramsFilter.matchMode === FilterMatchMode.NotIn) {\n if (values == null || values.length === 0) {\n throw new CommonsInternalError(`Filter with mode ${paramsFilter.matchMode} must have values in array, but has ${values}`);\n }\n } else if (paramsFilter.matchMode === FilterMatchMode.Between) {\n if (values == null || values.length !== 2) {\n throw new CommonsInternalError(`Filter with mode ${paramsFilter.matchMode} must have 2 values in array, but has ${values}`);\n }\n } else if (paramsFilter.value == null) {\n return;\n }\n\n const caseSensitivity = paramsFilter.caseSensitive ? 'CASE_SENSITIVE' : paramsFilter.caseSensitive === false ? 'CASE_INSENSITIVE' : undefined;\n const filter = <GetAllParamsFilterType<any>>{\n filterMatchType: toGetAllParamsFilterMatchMode(paramsFilter.matchMode)\n };\n\n if (value != null) {\n filter.value = value;\n }\n if (values != null && Array.isArray(values) && values.length > 0) {\n filter.values = values;\n }\n if (caseSensitivity != null) {\n filter.caseSensitivity = caseSensitivity;\n }\n\n (res as any)[key as Filters] = filter;\n });\n }\n\n return res;\n}\n\n/**\n * Converts DataListParams to sort query URL representation.\n *\n * @param {DataListParams} params - The params object with sort property to convert.\n * @returns {string | undefined} - The formatted sort query URL param or undefined.\n */\nexport function toGetAllSortAsQueryUrl(params?: DataListParams<any, any>): string | undefined {\n return dataListParamsSortToUrlQuery(params);\n}\n\n/**\n * Converts a DataListFilter object to a query URL string.\n *\n * @param {DataListFilter} filter - The filter object from params to convert.\n * @returns {string|undefined} - The formatted filter query URL param or undefined.\n */\nexport function toGetAllFilterAsQueryUrl(filter?: DataListFilter): string | undefined {\n return dataListParamsFilterToUrlQuery(filter);\n}\n\n/**\n * Executes the \"getAll\" on API service with request parameters.\n * Get all is expected to be executed via GET method using params as URL queries.\n *\n * @param {Service} service - The API service instance.\n * @param {Function} getAllFn - The \"getAll\" function on provided service instance.\n * @param {Object} params - The data list params.\n * @returns {Observable<<DataListResult<Item>>>} An observable with data list result.\n */\nexport function executeGetAll<Service, Item, Sorts, Filters extends keyof any>(\n service: Service,\n getAllFn: (requestParameters: GetAllParamsUrlQueryType<Filters>) => Observable<{data?: Item[]; totalCount?: number}>,\n params: DataListParams<Sorts, Filters>\n): Observable<DataListResult<Item>> {\n return getAllFn.bind(service)(toGetAllParamsAsUrlQuery(params)).pipe(mapToDataList<Item>());\n}\n\n/**\n * Executes the \"getAll\" on API service with request parameters.\n * Get all is expected to be executed via GET method using params as URL queries.\n *\n * @param {Service} service - The API service instance.\n * @param {Function} getAllFn - The \"getAll\" function on provided service.\n * @param {Object} params - The data list params.\n * @returns {Observable<<DataListResult<Item>>>} An observable with data list result.\n */\nexport function apiServiceGetAll<Service, Item, Sorts, Filters extends keyof any>(\n service: Service,\n fn: ClassFunctionKeysWithParamAndReturnType<Service, GetAllParamsUrlQueryType<Filters>, Observable<{data?: Item[]; totalCount?: number}>>,\n params: DataListParams<Sorts, Filters>\n): Observable<DataListResult<Item>> {\n return (service as any)[fn](toGetAllParamsAsUrlQuery(params)).pipe(mapToDataList<Item>());\n}\n\n/**\n * Executes the \"getAll\" on API service with request parameters.\n * Get all is expected to be executed via POST method using params as object in body of request.\n *\n * @param {Service} service - The API service instance.\n * @param {Function} getAllFn - The \"getAll\" function on provided service instance.\n * @param {Object} params - The data list params.\n * @returns {Observable<<DataListResult<Item>>>} An observable with data list result.\n */\nexport function executeGetAllAsPost<Service, Item, Sorts, Filters extends keyof any>(\n service: Service,\n getAllFn: (requestParameters: GetAllParamsType<Sorts, Filters>) => Observable<{data?: Item[]; totalCount?: number}>,\n params: DataListParams<Sorts, Filters>\n): Observable<DataListResult<Item>> {\n return getAllFn.bind(service)(toGetAllParams(params)).pipe(mapToDataList<Item>());\n}\n","// helpers\nexport * from './lib/helpers/get-all-params';\n\n// models\nexport * from './lib/models/api-version.model';\nexport * from './lib/models/request-params.model';\nexport * from './lib/models/schema.model';\n\n// types\nexport * from './lib/types/extract-get-all-params.type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mediusinc-mng-commons-data-api.mjs","sources":["../../src/lib/helpers/get-all-params.ts","../../src/index.ts","../../src/mediusinc-mng-commons-data-api.ts"],"sourcesContent":["import {Observable} from 'rxjs';\n\nimport {\n ClassFunctionKeysWithParamAndReturnType,\n CommonsInternalError,\n DataListFilter,\n DataListParams,\n DataListResult,\n FilterMatchMode,\n dataListParamsFilterToUrlQuery,\n dataListParamsFiltersToUrlQuery,\n dataListParamsSortToUrlQuery,\n mapToDataList\n} from '@mediusinc/mng-commons/core';\n\nimport {\n GetAllParamsFilterMatchType,\n GetAllParamsFilterType,\n GetAllParamsType,\n GetAllParamsUrlQueryType,\n GetAllParamsUrlQueryWithFiltersInKeyType\n} from '../models/request-params.model';\n\n/**\n * Converts a filter match mode to its corresponding enum value.\n *\n * @param {string} matchMode - The filter match mode from data list filter to convert.\n * @returns {GetAllParamsFilterMatchType} - The converted enum value.\n * @throws {CommonsInternalError} - If the filter match mode is not supported.\n */\nexport function toGetAllParamsFilterMatchMode(matchMode: string): GetAllParamsFilterMatchType {\n switch (matchMode) {\n case FilterMatchMode.Equals:\n return 'EQUALS';\n case FilterMatchMode.NotEquals:\n return 'NOT_EQUALS';\n case FilterMatchMode.Contains:\n return 'CONTAINS';\n case FilterMatchMode.NotContains:\n return 'NOT_CONTAINS';\n case FilterMatchMode.In:\n return 'IN';\n case FilterMatchMode.NotIn:\n return 'NOT_IN';\n case FilterMatchMode.StartsWith:\n return 'STARTS_WITH';\n case FilterMatchMode.EndsWith:\n return 'ENDS_WITH';\n case FilterMatchMode.LessThan:\n return 'LESS_THAN';\n case FilterMatchMode.LessThanOrEqualTo:\n return 'LESS_THAN_OR_EQUAL_TO';\n case FilterMatchMode.GreaterThan:\n return 'GREATER_THAN';\n case FilterMatchMode.GreaterThanOrEqualTo:\n return 'GREATER_THAN_OR_EQUAL_TO';\n case FilterMatchMode.Between:\n return 'BETWEEN';\n case FilterMatchMode.Exists:\n return 'EXISTS';\n case FilterMatchMode.DoesNotExist:\n return 'DOES_NOT_EXIST';\n default:\n throw new CommonsInternalError(`Filter match type '${matchMode}' not supported.`);\n }\n}\n\nfunction toGetAllParamsAsUrlQueryCommon<Sorts, Filters extends keyof any>(params: DataListParams<Sorts, Filters>): GetAllParamsUrlQueryType<Filters> {\n const res = {} as GetAllParamsUrlQueryType<Filters>;\n\n if (params.offset != null) {\n res.offset = params.offset;\n }\n if (params.limit != null) {\n res.limit = params.limit;\n }\n\n if (params.search != null && params.search !== '') {\n let caseSensitivityOption = 'ci';\n\n if (params.filters?.['global' as Filters]?.caseSensitive === true) {\n caseSensitivityOption = 'cs';\n }\n\n res.globalFilter = `${caseSensitivityOption}:${params.search}`;\n }\n\n if (Array.isArray(params.sort) && params.sort.length > 0) {\n res.sort = dataListParamsSortToUrlQuery(params as DataListParams);\n }\n\n return res;\n}\n\n/**\n * Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.\n *\n * @param {DataListParams} params - The parameters to convert.\n * @typeparam Sorts - The type of the sorting options for the data list.\n * @typeparam Filters - The type of the filters for the data list.\n * @returns {GetAllParamsUrlQueryType<Filters>} - Get all request param object with values as URL query string representation.\n */\nexport function toGetAllParamsAsUrlQuery<Sorts, Filters extends keyof any>(params: DataListParams<Sorts, Filters>): GetAllParamsUrlQueryType<Filters> {\n const res = toGetAllParamsAsUrlQueryCommon(params);\n\n if (params.filters) {\n Object.keys(params.filters).forEach(key => {\n res[key as Filters] = dataListParamsFiltersToUrlQuery(params, key as Filters) as any;\n });\n }\n\n return res;\n}\n\n/**\n * Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.\n *\n * @param {DataListParams} params - The parameters to convert.\n * @param {FilterKey} filterKey - Property key for filter object.\n * @typeparam Sorts - The type of the sorting options for the data list.\n * @typeparam Filters - The type of the filters for the data list.\n * @typeparam FilterKey - The type representing property key where filters will be put to.\n * @returns {GetAllParamsUrlQueryWithFiltersInKeyType<FilterKey, Filters>} - Get all request param object with values as URL query string representation.\n */\nexport function toGetAllParamsAsUrlQueryWithFiltersInProperty<Sorts, Filters extends keyof any, FilterKey extends string | number | symbol = 'filters'>(\n params: DataListParams<Sorts, Filters>,\n filterKey: FilterKey = 'filters' as FilterKey\n): GetAllParamsUrlQueryWithFiltersInKeyType<FilterKey, Filters> {\n const res = toGetAllParamsAsUrlQueryCommon(params) as GetAllParamsUrlQueryWithFiltersInKeyType<FilterKey, Filters>;\n\n if (params.filters && Object.keys(params.filters).length > 0) {\n (res as any)[filterKey] = {};\n Object.keys(params.filters).forEach(key => {\n (res as any)[filterKey][key as Filters] = dataListParamsFiltersToUrlQuery(params, key as Filters) as any;\n });\n }\n\n return res;\n}\n\n/**\n * Converts given parameters of a DataListParams object into a get all request param object with values as objects for POST requests.\n *\n * @param {DataListParams} params - The parameters to convert.\n * @typeparam Sorts - The type of the sorting options for the data list.\n * @typeparam Filters - The type of the filters for the data list.\n * @returns {GetAllParamsType<Sorts, Filters>} - Get all request param object with values as objects for POST requests.\n */\nexport function toGetAllParams<Sorts, Filters extends keyof any>(params: DataListParams<Sorts, Filters>): GetAllParamsType<Sorts, Filters> {\n const res = {} as GetAllParamsType<Sorts, Filters>;\n\n if (params.offset != null) {\n res.offset = params.offset;\n }\n if (params.limit != null) {\n res.limit = params.limit;\n }\n\n if (params.search != null) {\n res.globalFilter = {\n value: params.search\n };\n }\n\n if (Array.isArray(params.sort) && params.sort.length > 0) {\n res.sort = params.sort.map(s => ({\n property: s.property,\n direction: s.ascending === true || s.ascending == null ? 'ASCENDING' : 'DESCENDING'\n }));\n }\n\n if (params.filters) {\n Object.keys(params.filters).forEach(key => {\n const paramsFilter = params.filters![key as Filters]!;\n if (!paramsFilter.matchMode) {\n return;\n }\n\n let value = Array.isArray(paramsFilter.value) ? undefined : paramsFilter.value;\n let values = Array.isArray(paramsFilter.value) ? paramsFilter.value : undefined;\n\n if (paramsFilter.matchMode === FilterMatchMode.Exists || paramsFilter.matchMode === FilterMatchMode.DoesNotExist) {\n value = undefined;\n values = undefined;\n } else if (paramsFilter.matchMode === FilterMatchMode.In || paramsFilter.matchMode === FilterMatchMode.NotIn) {\n if (values == null || values.length === 0) {\n throw new CommonsInternalError(`Filter with mode ${paramsFilter.matchMode} must have values in array, but has ${values}`);\n }\n } else if (paramsFilter.matchMode === FilterMatchMode.Between) {\n if (values == null || values.length !== 2) {\n throw new CommonsInternalError(`Filter with mode ${paramsFilter.matchMode} must have 2 values in array, but has ${values}`);\n }\n } else if (paramsFilter.value == null) {\n return;\n }\n\n const caseSensitivity = paramsFilter.caseSensitive ? 'CASE_SENSITIVE' : paramsFilter.caseSensitive === false ? 'CASE_INSENSITIVE' : undefined;\n const filter = <GetAllParamsFilterType<any>>{\n filterMatchType: toGetAllParamsFilterMatchMode(paramsFilter.matchMode)\n };\n\n if (value != null) {\n filter.value = value;\n }\n if (values != null && Array.isArray(values) && values.length > 0) {\n filter.values = values;\n }\n if (caseSensitivity != null) {\n filter.caseSensitivity = caseSensitivity;\n }\n\n (res as any)[key as Filters] = filter;\n });\n }\n\n return res;\n}\n\n/**\n * Converts DataListParams to sort query URL representation.\n *\n * @param {DataListParams} params - The params object with sort property to convert.\n * @returns {string | undefined} - The formatted sort query URL param or undefined.\n */\nexport function toGetAllSortAsQueryUrl(params?: DataListParams<any, any>): string | undefined {\n return dataListParamsSortToUrlQuery(params);\n}\n\n/**\n * Converts a DataListFilter object to a query URL string.\n *\n * @param {DataListFilter} filter - The filter object from params to convert.\n * @returns {string|undefined} - The formatted filter query URL param or undefined.\n */\nexport function toGetAllFilterAsQueryUrl(filter?: DataListFilter): string | undefined {\n return dataListParamsFilterToUrlQuery(filter);\n}\n\n/**\n * Executes the \"getAll\" on API service with request parameters.\n * Get all is expected to be executed via GET method using params as URL queries.\n *\n * @param {Service} service - The API service instance.\n * @param {Function} getAllFn - The \"getAll\" function on provided service instance.\n * @param {Object} params - The data list params.\n * @returns {Observable<<DataListResult<Item>>>} An observable with data list result.\n */\nexport function executeGetAll<Service, Item, Sorts, Filters extends keyof any>(\n service: Service,\n getAllFn: (requestParameters: GetAllParamsUrlQueryType<Filters>) => Observable<{data?: Item[]; totalCount?: number}>,\n params: DataListParams<Sorts, Filters>\n): Observable<DataListResult<Item>> {\n return getAllFn.bind(service)(toGetAllParamsAsUrlQuery(params)).pipe(mapToDataList<Item>());\n}\n\n/**\n * Executes the \"getAll\" on API service with request parameters.\n * Get all is expected to be executed via GET method using params as URL queries.\n *\n * @param {Service} service - The API service instance.\n * @param {Function} getAllFn - The \"getAll\" function on provided service.\n * @param {Object} params - The data list params.\n * @returns {Observable<<DataListResult<Item>>>} An observable with data list result.\n */\nexport function apiServiceGetAll<Service, Item, Sorts, Filters extends keyof any>(\n service: Service,\n fn: ClassFunctionKeysWithParamAndReturnType<Service, GetAllParamsUrlQueryType<Filters>, Observable<{data?: Item[]; totalCount?: number}>>,\n params: DataListParams<Sorts, Filters>\n): Observable<DataListResult<Item>> {\n return (service as any)[fn](toGetAllParamsAsUrlQuery(params)).pipe(mapToDataList<Item>());\n}\n\n/**\n * Executes the \"getAll\" on API service with request parameters.\n * Get all is expected to be executed via POST method using params as object in body of request.\n *\n * @param {Service} service - The API service instance.\n * @param {Function} getAllFn - The \"getAll\" function on provided service instance.\n * @param {Object} params - The data list params.\n * @returns {Observable<<DataListResult<Item>>>} An observable with data list result.\n */\nexport function executeGetAllAsPost<Service, Item, Sorts, Filters extends keyof any>(\n service: Service,\n getAllFn: (requestParameters: GetAllParamsType<Sorts, Filters>) => Observable<{data?: Item[]; totalCount?: number}>,\n params: DataListParams<Sorts, Filters>\n): Observable<DataListResult<Item>> {\n return getAllFn.bind(service)(toGetAllParams(params)).pipe(mapToDataList<Item>());\n}\n","// helpers\nexport * from './lib/helpers/get-all-params';\n\n// models\nexport * from './lib/models/api-version.model';\nexport * from './lib/models/request-params.model';\nexport * from './lib/models/schema.model';\n\n// types\nexport * from './lib/types/extract-get-all-params.type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { ClassFunctionKeysWithParamAndReturnType, DataListFilter, DataListParams, DataListResult } from '@mediusinc/mng-commons/core';
|
|
3
|
-
import { GetAllParamsFilterMatchType, GetAllParamsType, GetAllParamsUrlQueryType } from '../models/request-params.model';
|
|
3
|
+
import { GetAllParamsFilterMatchType, GetAllParamsType, GetAllParamsUrlQueryType, GetAllParamsUrlQueryWithFiltersInKeyType } from '../models/request-params.model';
|
|
4
4
|
/**
|
|
5
5
|
* Converts a filter match mode to its corresponding enum value.
|
|
6
6
|
*
|
|
@@ -18,6 +18,17 @@ export declare function toGetAllParamsFilterMatchMode(matchMode: string): GetAll
|
|
|
18
18
|
* @returns {GetAllParamsUrlQueryType<Filters>} - Get all request param object with values as URL query string representation.
|
|
19
19
|
*/
|
|
20
20
|
export declare function toGetAllParamsAsUrlQuery<Sorts, Filters extends keyof any>(params: DataListParams<Sorts, Filters>): GetAllParamsUrlQueryType<Filters>;
|
|
21
|
+
/**
|
|
22
|
+
* Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.
|
|
23
|
+
*
|
|
24
|
+
* @param {DataListParams} params - The parameters to convert.
|
|
25
|
+
* @param {FilterKey} filterKey - Property key for filter object.
|
|
26
|
+
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
27
|
+
* @typeparam Filters - The type of the filters for the data list.
|
|
28
|
+
* @typeparam FilterKey - The type representing property key where filters will be put to.
|
|
29
|
+
* @returns {GetAllParamsUrlQueryWithFiltersInKeyType<FilterKey, Filters>} - Get all request param object with values as URL query string representation.
|
|
30
|
+
*/
|
|
31
|
+
export declare function toGetAllParamsAsUrlQueryWithFiltersInProperty<Sorts, Filters extends keyof any, FilterKey extends string | number | symbol = 'filters'>(params: DataListParams<Sorts, Filters>, filterKey?: FilterKey): GetAllParamsUrlQueryWithFiltersInKeyType<FilterKey, Filters>;
|
|
21
32
|
/**
|
|
22
33
|
* Converts given parameters of a DataListParams object into a get all request param object with values as objects for POST requests.
|
|
23
34
|
*
|
|
@@ -40,7 +40,7 @@ export type GetAllParamsGlobalFilterType<CaseSensitivity = GetAllParamsFilterCas
|
|
|
40
40
|
* Describes the filters in get all request params.
|
|
41
41
|
*/
|
|
42
42
|
export type GetAllParamsFiltersType<FilterType, FilterProperties extends keyof any> = {
|
|
43
|
-
[P in FilterProperties]
|
|
43
|
+
[P in FilterProperties]?: FilterType;
|
|
44
44
|
};
|
|
45
45
|
/**
|
|
46
46
|
* Represents a filter type for get all request params.
|
|
@@ -59,3 +59,9 @@ export type GetAllParamsType<Sorts = string, Filters extends keyof any = string>
|
|
|
59
59
|
* Describes get all params with values as URL queries (for GET requests).
|
|
60
60
|
*/
|
|
61
61
|
export type GetAllParamsUrlQueryType<Filters extends keyof any> = GetAllParamsDefaultWoFiltersType<string, string> & GetAllParamsFiltersType<string, Filters>;
|
|
62
|
+
/**
|
|
63
|
+
* Describes get all params with values as URL queries (for GET requests) where filters are places as object under root {FilterKey} property.
|
|
64
|
+
*/
|
|
65
|
+
export type GetAllParamsUrlQueryWithFiltersInKeyType<FilterKey extends string | number | symbol, Filters extends keyof any> = GetAllParamsDefaultWoFiltersType<string, string> & {
|
|
66
|
+
[key in FilterKey]?: GetAllParamsFiltersType<string, Filters>;
|
|
67
|
+
};
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mediusinc/mng-commons-data-api",
|
|
3
|
-
"version": "5.4.0-rc.
|
|
3
|
+
"version": "5.4.0-rc.7",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/core": "^17.3.0 || ^18.0.0",
|
|
6
|
-
"@mediusinc/mng-commons": "~5.4.0-rc.
|
|
6
|
+
"@mediusinc/mng-commons": "~5.4.0-rc.7"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.3.0"
|
package/version-info.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mediusinc/mng-commons-data-api",
|
|
3
|
-
"version": "5.4.0-rc.
|
|
4
|
-
"tag": "v5.
|
|
5
|
-
"distance":
|
|
6
|
-
"hash": "
|
|
3
|
+
"version": "5.4.0-rc.7",
|
|
4
|
+
"tag": "v5.4.0-rc.7",
|
|
5
|
+
"distance": 0,
|
|
6
|
+
"hash": "f7106981",
|
|
7
7
|
"dirty": true,
|
|
8
|
-
"semver": "5.
|
|
8
|
+
"semver": "5.4.0-rc.7+0.gf7106981.dirty",
|
|
9
9
|
"buildTimestamp": null,
|
|
10
|
-
"raw": "v5.
|
|
10
|
+
"raw": "v5.4.0-rc.7-f7106981-dirty"
|
|
11
11
|
}
|