@libs-ui/services-http-request 0.2.191 → 0.2.193

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.
@@ -126,10 +126,10 @@ export const getConfigListDataDemo = (httpParamsDetail = new UtilsHttpParamsRequ
126
126
  return obj;
127
127
  });
128
128
  const listService = returnListObject(data);
129
- const detailService = returnDetailObject(httpParamsDetail, data);
129
+ const detailService = returnDetailObject(httpParamsDetail, data, undefined, false, ';');
130
130
  return {
131
131
  list: listService.listPaging,
132
132
  detailByData: detailService.detailByData
133
133
  };
134
134
  };
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW1vY2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvaHR0cC1yZXF1ZXN0L3NyYy9hcGktbW9ja3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFpQixFQUFFLGVBQWtDLEVBQUUsRUFBRTtJQUN4RixPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUssSUFBd0QsRUFBRTtZQUNuRSxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNwQixJQUFJLEdBQUcsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELE1BQU0sYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsSUFBSSxFQUFHLElBQVksSUFBSSxFQUFFO2dCQUN6QixNQUFNLEVBQUUsRUFBRTthQUNYLENBQUM7UUFDSixDQUFDO1FBQ0QsY0FBYyxFQUFFLEdBQTBELEVBQUU7WUFDMUUsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxHQUFHLGVBQWUsRUFBRSxDQUFDO1lBQzNCLENBQUM7WUFFRCxPQUFPLEVBQUUsQ0FBQztnQkFDUixJQUFJLEVBQUUsR0FBRztnQkFDVCxJQUFJLEVBQUcsSUFBWSxJQUFJLEVBQUU7Z0JBQ3pCLE1BQU0sRUFBRSxFQUFFO2FBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsVUFBVSxFQUFFLEtB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LEVBQUUsQ0FBQyxDQUFBO1FBQzdDLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLE9BQU87UUFDTCxJQUFJLEVBQUUsV0FBVyxDQUFDLFVBQVU7UUFDNUIsWUFBWSxFQUFFLGFBQWEsQ0FBQyxZQUFZO0tBQ3pDLENBQUM7QUFDSixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0LCBnZXQsIGlzTmlsLCBzZXQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWxheSwgbGFzdFZhbHVlRnJvbSwgb2YsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCByZXR1cm5MaXN0T2JqZWN0ID0gKGRhdGE/OiBBcnJheTxhbnk+LCBmdW5jdGlvbkdldERhdGE/OiAoKSA9PiBBcnJheTxhbnk+KSA9PiB7XG4gIHJldHVybiB7XG4gICAgbGlzdDogYXN5bmMgPFR5cGVSZXNwb25zZT4oKTogUHJvbWlzZTxJSHR0cFJlc3BvbnNlPFR5cGVSZXNwb25zZT4+ID0+IHtcbiAgICAgIGlmIChmdW5jdGlvbkdldERhdGEpIHtcbiAgICAgICAgZGF0YSA9IGZ1bmN0aW9uR2V0RGF0YSgpO1xuICAgICAgfVxuICAgICAgYXdhaXQgbGFzdFZhbHVlRnJvbSh0aW1lcigyNTApKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IDIwMCxcbiAgICAgICAgZGF0YTogKGRhdGEgYXMgYW55KSB8fCBbXSxcbiAgICAgICAgcGFnaW5nOiB7fVxuICAgICAgfTtcbiAgICB9LFxuICAgIGxpc3RPYnNlcnZhYmxlOiA8VHlwZVJlc3BvbnNlPigpOiBPYnNlcnZhYmxlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4gPT4ge1xuICAgICAgaWYgKGZ1bmN0aW9uR2V0RGF0YSkge1xuICAgICAgICBkYXRhID0gZnVuY3Rpb25HZXREYXRhKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIGNvZGU6IDIwMCxcbiAgICAgICAgZGF0YTogKGRhdGEgYXMgYW55KSB8fCBbXSxcbiAgICAgICAgcGFnaW5nOiB7fVxuICAgICAgfSkucGlwZShkZWxheSgyNTApKTtcbiAgICB9LFxuICAgIGxpc3RQYWdpbmc6IGFzeW5jIDxUeXBlUmVzcG9uc2U+KHBhcmFtczogVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCk6IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PiA9PiB7XG4gICAgICBpZiAoZnVuY3Rpb25HZXREYXRhKSB7XG4gICAgICAgIGRhdGEgPSBmdW5jdGlvbkdldERhdGEoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChwYXJhbXMuZ2V0KCdwYWdlJykgfHwgJzEnKTtcbiAgICAgIGNvbnN0IHBlcl9wYWdlID0gcGFyc2VJbnQocGFyYW1zLmdldCgncGVyX3BhZ2UnKSB8fCAnMjAnKTtcbiAgICAgIGNvbnN0IHRvdGFsX2l0ZW1zID0gZGF0YT8ubGVuZ3RoIHx8IDA7XG4gICAgICBjb25zdCB0b3RhbF9wYWdlcyA9IE1hdGguY2VpbCh0b3RhbF9pdGVtcyAvIHBlcl9wYWdlKTtcbiAgICAgIGNvbnN0IGRhdGFSZXN1bHQgPSBkYXRhPy5zbGljZSgocGFnZSAtIDEpICogcGVyX3BhZ2UsIHBhZ2UgKiBwZXJfcGFnZSkgfHwgW107XG4gICAgICBhd2FpdCBsYXN0VmFsdWVGcm9tKHRpbWVyKDI1MCkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogMjAwLFxuICAgICAgICBkYXRhOiAoZGF0YVJlc3VsdCBhcyBhbnkpIHx8IFtdLFxuICAgICAgICBwYWdpbmc6IHtcbiAgICAgICAgICBwYWdlOiBwYWdlLFxuICAgICAgICAgIHBlcl9wYWdlOiBwZXJfcGFnZSxcbiAgICAgICAgICB0b3RhbF9pdGVtczogdG90YWxfaXRlbXMsXG4gICAgICAgICAgdG90YWxfcGFnZXM6IHRvdGFsX3BhZ2VzXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSxcbiAgfVxufTtcblxuXG5leHBvcnQgY29uc3QgcmV0dXJuRGV0YWlsT2JqZWN0ID0gPFR5cGVSZXNwb25zZSwgVHlwZVBhcmFtcyA9IGFueT4oaHR0cFBhcmFtczogVXRpbHNIdHRwUGFyYW1zUmVxdWVzdDxUeXBlUGFyYW1zPiB8IEh0dHBQYXJhbXMsIGRhdGE/OiBBcnJheTxhbnk+LCBmdW5jdGlvbkdldERhdGE/OiAoKSA9PiBQcm9taXNlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4gfCBPYnNlcnZhYmxlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4sIGlnbm9yZVNwbGl0PzogYm9vbGVhbiwgc3BsaXRPcGVyYXRvcj86IHN0cmluZykgPT4ge1xuICBjb25zdCBrZXlzUHJhbXM6IGFueSA9IGh0dHBQYXJhbXMuZ2V0KCdrZXlzJyk7XG4gIGNvbnN0IGZpZWxkS2V5OiBzdHJpbmcgPSBodHRwUGFyYW1zLmdldCgnZmllbGRLZXknKSB8fCAnaWQnO1xuICBjb25zdCBkYXRhUmVzcG9uc2VPamVjdDogYW55ID0gaHR0cFBhcmFtcy5nZXQoJ2RhdGFSZXNwb25zZU9qZWN0Jyk7XG5cbiAgcmV0dXJuIHtcbiAgICBkZXRhaWxCeURhdGE6IGFzeW5jIChrZXlzPzogYW55KTogUHJvbWlzZTxJSHR0cFJlc3BvbnNlPFR5cGVSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiBmaWx0ZXJEYXRhPFR5cGVSZXNwb25zZT4oZmllbGRLZXksIGRhdGEsIGtleXMgPz8ga2V5c1ByYW1zLCBkYXRhUmVzcG9uc2VPamVjdCwgaWdub3JlU3BsaXQsIHNwbGl0T3BlcmF0b3IpO1xuICAgIH0sXG5cbiAgICBkZXRhaWxCeUZ1bmN0aW9uOiBhc3luYyAoa2V5cz86IGFueSk6IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PiA9PiB7XG4gICAgICBpZiAoIWZ1bmN0aW9uR2V0RGF0YSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZmlsdGVyRGF0YTxUeXBlUmVzcG9uc2U+KGZpZWxkS2V5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGF0YVJlc3BvbnNlT2plY3QsIGlnbm9yZVNwbGl0LCBzcGxpdE9wZXJhdG9yKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGRhdGFSZXN1bHQ6IGFueSA9IGZ1bmN0aW9uR2V0RGF0YSgpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBpZiAoZGF0YVJlc3VsdFsnc3Vic2NyaWJlJ10pIHtcbiAgICAgICAgICBkYXRhUmVzdWx0ID0gYXdhaXQgbGFzdFZhbHVlRnJvbShkYXRhUmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVJlc3VsdFsndGhlbiddKSB7XG4gICAgICAgICAgZGF0YVJlc3VsdCA9IGF3YWl0IGRhdGFSZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgZGF0YVJlc3VsdCA9IHsgZGF0YTogW10gfTtcbiAgICAgIH1cblxuICAgICAgZGF0YSA9IGRhdGFSZXN1bHQuZGF0YTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGZpbHRlckRhdGE8VHlwZVJlc3BvbnNlPihmaWVsZEtleSwgZGF0YSwga2V5cyB8fCBrZXlzUHJhbXMsIGRhdGFSZXNwb25zZU9qZWN0LCBpZ25vcmVTcGxpdCwgc3BsaXRPcGVyYXRvcik7XG4gICAgfVxuICB9O1xufVxuXG5jb25zdCBmaWx0ZXJEYXRhID0gPFR5cGVSZXNwb25zZT4oZmllbGRLZXk6IHN0cmluZywgZGF0YT86IEFycmF5PGFueT4sIGtleXM/OiBhbnksIGRhdGFSZXNwb25zZU9qZWN0PzogYm9vbGVhbiwgaWdub3JlU3BsaXQ/OiBib29sZWFuLCBzcGxpdE9wZXJhdG9yPzogc3RyaW5nKTogSUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+ID0+IHtcbiAgaWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JyB8fCBpc05pbChrZXlzKSB8fCBrZXlzID09PSAnJykge1xuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiAyMDAsXG4gICAgICBkYXRhOiB1bmRlZmluZWQsXG4gICAgICBwYWdpbmc6IHt9XG4gICAgfTtcbiAgfVxuXG4gIGRhdGEgPSBkYXRhIHx8IFtdO1xuXG4gIGlmICghKGRhdGEgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICBkYXRhID0gW2RhdGFdO1xuICB9XG4gIGNvbnN0IHJlc3VsdDogYW55ID0gW107XG5cbiAgaWYgKCFpZ25vcmVTcGxpdCAmJiB0eXBlb2Yga2V5cyA9PT0gJ3N0cmluZycpIHtcbiAgICBrZXlzID0ga2V5cy5zcGxpdChzcGxpdE9wZXJhdG9yIHx8ICcsJyk7XG4gIH1cblxuICBpZiAodHlwZW9mIGtleXMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBrZXlzID09PSAnYm9vbGVhbicgfHwgKHR5cGVvZiBrZXlzID09PSAnc3RyaW5nJyAmJiBpZ25vcmVTcGxpdCkpIHtcbiAgICBrZXlzID0gW2tleXNdO1xuICB9XG5cbiAga2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdEZpbHRlciA9IGRhdGE/LmZpbHRlcigoZWxEYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiBnZXQoZWxEYXRhLCBmaWVsZEtleSkgPT09IGtleSk7XG5cbiAgICBpZiAocmVzdWx0RmlsdGVyICYmIHJlc3VsdEZpbHRlci5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLnJlc3VsdEZpbHRlcik7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIGNvZGU6IDIwMCxcbiAgICBkYXRhOiByZXN1bHQubGVuZ3RoID8gKGRhdGFSZXNwb25zZU9qZWN0ID8gcmVzdWx0WzBdIDogcmVzdWx0KSA6IHVuZGVmaW5lZCxcbiAgICBwYWdpbmc6IHt9XG4gIH07XG59XG5cbmNvbnN0IHBlcl9wYWdlID0gMjA7XG5jb25zdCB0b3RhbF9pdGVtcyA9IChwZXJfcGFnZSAqIDE1MCkgKyAxNTtcblxuXG5leHBvcnQgY29uc3QgZ2V0Q29uZmlnTGlzdERhdGFEZW1vID0gKGh0dHBQYXJhbXNEZXRhaWw6IFV0aWxzSHR0cFBhcmFtc1JlcXVlc3Q8YW55PiA9IG5ldyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KCksIG9iamVjdERhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBmdW5jdGlvbkJ1aWxkT2JqZWN0PzogKG51bUluY3JlbWVudDogc3RyaW5nKSA9PiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA9PiB7XG4gIGlmICghb2JqZWN0RGF0YSkge1xuICAgIG9iamVjdERhdGEgPSB7XG4gICAgICBpZDogJycsXG4gICAgICBuYW1lOiAnbmFtZSB0ZXN0ICdcbiAgICB9XG4gIH1cblxuICBjb25zdCBkYXRhID0gWy4uLkFycmF5KHRvdGFsX2l0ZW1zKS5rZXlzKCldLm1hcCgoXywgaW5kZXgpID0+IHtcblxuICAgIGlmIChmdW5jdGlvbkJ1aWxkT2JqZWN0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb25CdWlsZE9iamVjdChgJHsraW5kZXggKyAxfWApXG4gICAgfVxuICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgIE9iamVjdC5rZXlzKG9iamVjdERhdGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHNldChvYmosIGtleSwgYCR7b2JqZWN0RGF0YVtrZXldfSR7K2luZGV4ICsgMX1gKTtcbiAgICB9KVxuICAgIHJldHVybiBvYmo7XG4gIH0pO1xuXG4gIGNvbnN0IGxpc3RTZXJ2aWNlID0gcmV0dXJuTGlzdE9iamVjdChkYXRhKTtcbiAgY29uc3QgZGV0YWlsU2VydmljZSA9IHJldHVybkRldGFpbE9iamVjdChodHRwUGFyYW1zRGV0YWlsLGRhdGEpO1xuICByZXR1cm4ge1xuICAgIGxpc3Q6IGxpc3RTZXJ2aWNlLmxpc3RQYWdpbmcsXG4gICAgZGV0YWlsQnlEYXRhOiBkZXRhaWxTZXJ2aWNlLmRldGFpbEJ5RGF0YVxuICB9O1xufVxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW1vY2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvaHR0cC1yZXF1ZXN0L3NyYy9hcGktbW9ja3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFpQixFQUFFLGVBQWtDLEVBQUUsRUFBRTtJQUN4RixPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUssSUFBd0QsRUFBRTtZQUNuRSxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNwQixJQUFJLEdBQUcsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELE1BQU0sYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsSUFBSSxFQUFHLElBQVksSUFBSSxFQUFFO2dCQUN6QixNQUFNLEVBQUUsRUFBRTthQUNYLENBQUM7UUFDSixDQUFDO1FBQ0QsY0FBYyxFQUFFLEdBQTBELEVBQUU7WUFDMUUsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxHQUFHLGVBQWUsRUFBRSxDQUFDO1lBQzNCLENBQUM7WUFFRCxPQUFPLEVBQUUsQ0FBQztnQkFDUixJQUFJLEVBQUUsR0FBRztnQkFDVCxJQUFJLEVBQUcsSUFBWSxJQUFJLEVBQUU7Z0JBQ3pCLE1BQU0sRUFBRSxFQUFFO2FBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsVUFBVSxFQUFFLEtB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LEVBQUUsQ0FBQyxDQUFBO1FBQzdDLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hGLE9BQU87UUFDTCxJQUFJLEVBQUUsV0FBVyxDQUFDLFVBQVU7UUFDNUIsWUFBWSxFQUFFLGFBQWEsQ0FBQyxZQUFZO0tBQ3pDLENBQUM7QUFDSixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0LCBnZXQsIGlzTmlsLCBzZXQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWxheSwgbGFzdFZhbHVlRnJvbSwgb2YsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCByZXR1cm5MaXN0T2JqZWN0ID0gKGRhdGE/OiBBcnJheTxhbnk+LCBmdW5jdGlvbkdldERhdGE/OiAoKSA9PiBBcnJheTxhbnk+KSA9PiB7XG4gIHJldHVybiB7XG4gICAgbGlzdDogYXN5bmMgPFR5cGVSZXNwb25zZT4oKTogUHJvbWlzZTxJSHR0cFJlc3BvbnNlPFR5cGVSZXNwb25zZT4+ID0+IHtcbiAgICAgIGlmIChmdW5jdGlvbkdldERhdGEpIHtcbiAgICAgICAgZGF0YSA9IGZ1bmN0aW9uR2V0RGF0YSgpO1xuICAgICAgfVxuICAgICAgYXdhaXQgbGFzdFZhbHVlRnJvbSh0aW1lcigyNTApKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IDIwMCxcbiAgICAgICAgZGF0YTogKGRhdGEgYXMgYW55KSB8fCBbXSxcbiAgICAgICAgcGFnaW5nOiB7fVxuICAgICAgfTtcbiAgICB9LFxuICAgIGxpc3RPYnNlcnZhYmxlOiA8VHlwZVJlc3BvbnNlPigpOiBPYnNlcnZhYmxlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4gPT4ge1xuICAgICAgaWYgKGZ1bmN0aW9uR2V0RGF0YSkge1xuICAgICAgICBkYXRhID0gZnVuY3Rpb25HZXREYXRhKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIGNvZGU6IDIwMCxcbiAgICAgICAgZGF0YTogKGRhdGEgYXMgYW55KSB8fCBbXSxcbiAgICAgICAgcGFnaW5nOiB7fVxuICAgICAgfSkucGlwZShkZWxheSgyNTApKTtcbiAgICB9LFxuICAgIGxpc3RQYWdpbmc6IGFzeW5jIDxUeXBlUmVzcG9uc2U+KHBhcmFtczogVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCk6IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PiA9PiB7XG4gICAgICBpZiAoZnVuY3Rpb25HZXREYXRhKSB7XG4gICAgICAgIGRhdGEgPSBmdW5jdGlvbkdldERhdGEoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChwYXJhbXMuZ2V0KCdwYWdlJykgfHwgJzEnKTtcbiAgICAgIGNvbnN0IHBlcl9wYWdlID0gcGFyc2VJbnQocGFyYW1zLmdldCgncGVyX3BhZ2UnKSB8fCAnMjAnKTtcbiAgICAgIGNvbnN0IHRvdGFsX2l0ZW1zID0gZGF0YT8ubGVuZ3RoIHx8IDA7XG4gICAgICBjb25zdCB0b3RhbF9wYWdlcyA9IE1hdGguY2VpbCh0b3RhbF9pdGVtcyAvIHBlcl9wYWdlKTtcbiAgICAgIGNvbnN0IGRhdGFSZXN1bHQgPSBkYXRhPy5zbGljZSgocGFnZSAtIDEpICogcGVyX3BhZ2UsIHBhZ2UgKiBwZXJfcGFnZSkgfHwgW107XG4gICAgICBhd2FpdCBsYXN0VmFsdWVGcm9tKHRpbWVyKDI1MCkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogMjAwLFxuICAgICAgICBkYXRhOiAoZGF0YVJlc3VsdCBhcyBhbnkpIHx8IFtdLFxuICAgICAgICBwYWdpbmc6IHtcbiAgICAgICAgICBwYWdlOiBwYWdlLFxuICAgICAgICAgIHBlcl9wYWdlOiBwZXJfcGFnZSxcbiAgICAgICAgICB0b3RhbF9pdGVtczogdG90YWxfaXRlbXMsXG4gICAgICAgICAgdG90YWxfcGFnZXM6IHRvdGFsX3BhZ2VzXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSxcbiAgfVxufTtcblxuXG5leHBvcnQgY29uc3QgcmV0dXJuRGV0YWlsT2JqZWN0ID0gPFR5cGVSZXNwb25zZSwgVHlwZVBhcmFtcyA9IGFueT4oaHR0cFBhcmFtczogVXRpbHNIdHRwUGFyYW1zUmVxdWVzdDxUeXBlUGFyYW1zPiB8IEh0dHBQYXJhbXMsIGRhdGE/OiBBcnJheTxhbnk+LCBmdW5jdGlvbkdldERhdGE/OiAoKSA9PiBQcm9taXNlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4gfCBPYnNlcnZhYmxlPElIdHRwUmVzcG9uc2U8VHlwZVJlc3BvbnNlPj4sIGlnbm9yZVNwbGl0PzogYm9vbGVhbiwgc3BsaXRPcGVyYXRvcj86IHN0cmluZykgPT4ge1xuICBjb25zdCBrZXlzUHJhbXM6IGFueSA9IGh0dHBQYXJhbXMuZ2V0KCdrZXlzJyk7XG4gIGNvbnN0IGZpZWxkS2V5OiBzdHJpbmcgPSBodHRwUGFyYW1zLmdldCgnZmllbGRLZXknKSB8fCAnaWQnO1xuICBjb25zdCBkYXRhUmVzcG9uc2VPamVjdDogYW55ID0gaHR0cFBhcmFtcy5nZXQoJ2RhdGFSZXNwb25zZU9qZWN0Jyk7XG5cbiAgcmV0dXJuIHtcbiAgICBkZXRhaWxCeURhdGE6IGFzeW5jIChrZXlzPzogYW55KTogUHJvbWlzZTxJSHR0cFJlc3BvbnNlPFR5cGVSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiBmaWx0ZXJEYXRhPFR5cGVSZXNwb25zZT4oZmllbGRLZXksIGRhdGEsIGtleXMgPz8ga2V5c1ByYW1zLCBkYXRhUmVzcG9uc2VPamVjdCwgaWdub3JlU3BsaXQsIHNwbGl0T3BlcmF0b3IpO1xuICAgIH0sXG5cbiAgICBkZXRhaWxCeUZ1bmN0aW9uOiBhc3luYyAoa2V5cz86IGFueSk6IFByb21pc2U8SUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+PiA9PiB7XG4gICAgICBpZiAoIWZ1bmN0aW9uR2V0RGF0YSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZmlsdGVyRGF0YTxUeXBlUmVzcG9uc2U+KGZpZWxkS2V5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGF0YVJlc3BvbnNlT2plY3QsIGlnbm9yZVNwbGl0LCBzcGxpdE9wZXJhdG9yKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGRhdGFSZXN1bHQ6IGFueSA9IGZ1bmN0aW9uR2V0RGF0YSgpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBpZiAoZGF0YVJlc3VsdFsnc3Vic2NyaWJlJ10pIHtcbiAgICAgICAgICBkYXRhUmVzdWx0ID0gYXdhaXQgbGFzdFZhbHVlRnJvbShkYXRhUmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVJlc3VsdFsndGhlbiddKSB7XG4gICAgICAgICAgZGF0YVJlc3VsdCA9IGF3YWl0IGRhdGFSZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgZGF0YVJlc3VsdCA9IHsgZGF0YTogW10gfTtcbiAgICAgIH1cblxuICAgICAgZGF0YSA9IGRhdGFSZXN1bHQuZGF0YTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGZpbHRlckRhdGE8VHlwZVJlc3BvbnNlPihmaWVsZEtleSwgZGF0YSwga2V5cyB8fCBrZXlzUHJhbXMsIGRhdGFSZXNwb25zZU9qZWN0LCBpZ25vcmVTcGxpdCwgc3BsaXRPcGVyYXRvcik7XG4gICAgfVxuICB9O1xufVxuXG5jb25zdCBmaWx0ZXJEYXRhID0gPFR5cGVSZXNwb25zZT4oZmllbGRLZXk6IHN0cmluZywgZGF0YT86IEFycmF5PGFueT4sIGtleXM/OiBhbnksIGRhdGFSZXNwb25zZU9qZWN0PzogYm9vbGVhbiwgaWdub3JlU3BsaXQ/OiBib29sZWFuLCBzcGxpdE9wZXJhdG9yPzogc3RyaW5nKTogSUh0dHBSZXNwb25zZTxUeXBlUmVzcG9uc2U+ID0+IHtcbiAgaWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JyB8fCBpc05pbChrZXlzKSB8fCBrZXlzID09PSAnJykge1xuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiAyMDAsXG4gICAgICBkYXRhOiB1bmRlZmluZWQsXG4gICAgICBwYWdpbmc6IHt9XG4gICAgfTtcbiAgfVxuXG4gIGRhdGEgPSBkYXRhIHx8IFtdO1xuXG4gIGlmICghKGRhdGEgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICBkYXRhID0gW2RhdGFdO1xuICB9XG4gIGNvbnN0IHJlc3VsdDogYW55ID0gW107XG5cbiAgaWYgKCFpZ25vcmVTcGxpdCAmJiB0eXBlb2Yga2V5cyA9PT0gJ3N0cmluZycpIHtcbiAgICBrZXlzID0ga2V5cy5zcGxpdChzcGxpdE9wZXJhdG9yIHx8ICcsJyk7XG4gIH1cblxuICBpZiAodHlwZW9mIGtleXMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBrZXlzID09PSAnYm9vbGVhbicgfHwgKHR5cGVvZiBrZXlzID09PSAnc3RyaW5nJyAmJiBpZ25vcmVTcGxpdCkpIHtcbiAgICBrZXlzID0gW2tleXNdO1xuICB9XG5cbiAga2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdEZpbHRlciA9IGRhdGE/LmZpbHRlcigoZWxEYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiBnZXQoZWxEYXRhLCBmaWVsZEtleSkgPT09IGtleSk7XG5cbiAgICBpZiAocmVzdWx0RmlsdGVyICYmIHJlc3VsdEZpbHRlci5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLnJlc3VsdEZpbHRlcik7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIGNvZGU6IDIwMCxcbiAgICBkYXRhOiByZXN1bHQubGVuZ3RoID8gKGRhdGFSZXNwb25zZU9qZWN0ID8gcmVzdWx0WzBdIDogcmVzdWx0KSA6IHVuZGVmaW5lZCxcbiAgICBwYWdpbmc6IHt9XG4gIH07XG59XG5cbmNvbnN0IHBlcl9wYWdlID0gMjA7XG5jb25zdCB0b3RhbF9pdGVtcyA9IChwZXJfcGFnZSAqIDE1MCkgKyAxNTtcblxuXG5leHBvcnQgY29uc3QgZ2V0Q29uZmlnTGlzdERhdGFEZW1vID0gKGh0dHBQYXJhbXNEZXRhaWw6IFV0aWxzSHR0cFBhcmFtc1JlcXVlc3Q8YW55PiA9IG5ldyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KCksIG9iamVjdERhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBmdW5jdGlvbkJ1aWxkT2JqZWN0PzogKG51bUluY3JlbWVudDogc3RyaW5nKSA9PiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA9PiB7XG4gIGlmICghb2JqZWN0RGF0YSkge1xuICAgIG9iamVjdERhdGEgPSB7XG4gICAgICBpZDogJycsXG4gICAgICBuYW1lOiAnbmFtZSB0ZXN0ICdcbiAgICB9XG4gIH1cblxuICBjb25zdCBkYXRhID0gWy4uLkFycmF5KHRvdGFsX2l0ZW1zKS5rZXlzKCldLm1hcCgoXywgaW5kZXgpID0+IHtcblxuICAgIGlmIChmdW5jdGlvbkJ1aWxkT2JqZWN0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb25CdWlsZE9iamVjdChgJHsraW5kZXggKyAxfWApXG4gICAgfVxuICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgIE9iamVjdC5rZXlzKG9iamVjdERhdGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHNldChvYmosIGtleSwgYCR7b2JqZWN0RGF0YVtrZXldfSR7K2luZGV4ICsgMX1gKTtcbiAgICB9KVxuICAgIHJldHVybiBvYmo7XG4gIH0pO1xuXG4gIGNvbnN0IGxpc3RTZXJ2aWNlID0gcmV0dXJuTGlzdE9iamVjdChkYXRhKTtcbiAgY29uc3QgZGV0YWlsU2VydmljZSA9IHJldHVybkRldGFpbE9iamVjdChodHRwUGFyYW1zRGV0YWlsLCBkYXRhLCB1bmRlZmluZWQsIGZhbHNlLCAnOycpO1xuICByZXR1cm4ge1xuICAgIGxpc3Q6IGxpc3RTZXJ2aWNlLmxpc3RQYWdpbmcsXG4gICAgZGV0YWlsQnlEYXRhOiBkZXRhaWxTZXJ2aWNlLmRldGFpbEJ5RGF0YVxuICB9O1xufVxuIl19
@@ -206,11 +206,20 @@ export class LibsUiHttpRequestService {
206
206
  if (!config || !objectGetDataUpdate) {
207
207
  return undefined;
208
208
  }
209
+ if (config.log?.logInputs) {
210
+ console.log('config', config);
211
+ console.log('objectGetDataUpdate', objectGetDataUpdate);
212
+ console.log('argumentsValue', argumentsValue);
213
+ console.log('--------------------------------');
214
+ }
209
215
  const { fieldUpdate, fieldGetValue, preprocessor } = config;
210
216
  if (!fieldUpdate || !fieldGetValue) {
211
217
  return undefined;
212
218
  }
213
219
  let value = get(objectGetDataUpdate, fieldGetValue);
220
+ if (config.log?.logGetValue) {
221
+ console.log(`value of objectGetDataUpdate[${fieldGetValue}]: `, value);
222
+ }
214
223
  if (preprocessor) {
215
224
  value = preprocessor(value);
216
225
  }
@@ -254,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
254
263
  providedIn: 'root',
255
264
  }]
256
265
  }], ctorParameters: () => [] });
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL2h0dHAtcmVxdWVzdC9zcmMvaHR0cC1yZXF1ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU1yQyxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLGdDQUFnQztJQUN4QixZQUFZLENBQW1CO0lBQ3ZDLHVDQUF1QztJQUMvQixjQUFjLEdBQXdCLEVBQUUsQ0FBQztJQUVqRCw0Q0FBNEM7SUFDcEMsa0JBQWtCLEdBQXdCLEVBQUUsQ0FBQztJQUVyRDtRQUNFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxjQUFjLENBQUMsYUFBa0M7UUFDMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLGFBQWEsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFXLGtCQUFrQixDQUFDLGtCQUF1QztRQUNuRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLGtCQUFrQixFQUFFLENBQUM7SUFDbEYsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQVk7UUFDbkMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUs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QUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDMUYsR0FBRyxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztnQkFFdEQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsSUFBSSxtQkFBbUIsWUFBWSxLQUFLLEVBQUUsQ0FBQztnQkFDekMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUVoQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxJQUFJLG1CQUFtQixZQUFZLE1BQU0sRUFBRSxDQUFDO2dCQUMxQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLGNBQWMsSUFBSSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRW5FLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELEdBQUcsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXhDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixPQUFPO1lBQ0wsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxDQUFDO2dCQUNQLFdBQVcsRUFBRSxDQUFDO2dCQUNkLE1BQU0sRUFBRSxFQUFFO2dCQUNWLEtBQUssRUFBRSxFQUFFO2dCQUNULElBQUksRUFBRSxJQUFJO2FBQ1g7U0FDRixDQUFDO0lBQ0osQ0FBQzt3R0E1U1Usd0JBQXdCOzRHQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGFnaW5nIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBVdGlsc0NhY2hlLCBnZXQsIGdldEtleUNhY2hlQnlBcnJheU9iamVjdCwgaXNFbXB0eSwgc2V0IH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlLCBJR3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWVDb25maWcsIElIdHRwUmVxdWVzdENvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9pbmRleCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlIdHRwUmVxdWVzdFNlcnZpY2Uge1xuICAvKiogQ2jhu6lhIGThu68gbGnhu4d1IGNhY2hlIG1lbW9yeSAqL1xuICBwcml2YXRlIHNlcnZpY2VTdG9yZTogTWFwPHN0cmluZywgYW55PjtcbiAgLyoqIENo4bupYSBjw6FjIHNlcnZpY2UgY29tbW9uIGJhc2UgYXBpICovXG4gIHByaXZhdGUgc2VydmljZXNDb21tb246IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICAvKiogQ2jhu6lhIGPDoWMgc2VydmljZSBjYWxsIGFwaSDEkeG6v24gYmFja2VuZCAqL1xuICBwcml2YXRlIHNlcnZpY2VzQXBpTW9kdWxlczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2VydmljZVN0b3JlID0gbmV3IE1hcCgpO1xuICB9XG5cbiAgcHVibGljIHNldCBTZXJ2aWNlc0NvbW1vbihzZXJ2aWNlQ29tbW9uOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgdGhpcy5zZXJ2aWNlc0NvbW1vbiA9IHsgLi4udGhpcy5zZXJ2aWNlc0NvbW1vbiwgLi4uc2VydmljZUNvbW1vbiB9O1xuICB9XG5cbiAgcHVibGljIHNldCBTZXJ2aWNlc0FwaU1vZHVsZXMoc2VydmljZXNBcGlNb2R1bGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgdGhpcy5zZXJ2aWNlc0FwaU1vZHVsZXMgPSB7IC4uLnRoaXMuc2VydmljZXNBcGlNb2R1bGVzLCAuLi5zZXJ2aWNlc0FwaU1vZHVsZXMgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VydmljZUJ5TmFtZShuYW1lOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIW5hbWUgfHwgIW5hbWUudHJpbSgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAobmFtZS5zdGFydHNXaXRoKCdjb21tb24nKSkge1xuXG4gICAgICBpZiAoIXRoaXMuc2VydmljZXNDb21tb24pIHtcbiAgICAgICAgdGhyb3cgJ3NlcnZpY2UgY29tbW9uIGlzIEVtcHR5LCBwbGVhc2UgaW5qZWN0IE1vTGlic0NvcmVVSUh0dHBSZXF1ZXN0U2VydmljZSBhbmQgY2FsbCBTZXJ2aWNlc0NvbW1vbiB1cGRhdGUgMSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VzQ29tbW9uW25hbWVdO1xuICAgIH1cblxuICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoJ2FwaU1vZHVsZScpKSB7XG4gICAgICBpZiAoIXRoaXMuc2VydmljZXNBcGlNb2R1bGVzKSB7XG4gICAgICAgIHRocm93ICdzZXJ2aWNlIG1vZHVsZSBpcyBFbXB0eSwgcGxlYXNlIGluamVjdCBNb0xpYnNDb3JlVUlIdHRwUmVxdWVzdFNlcnZpY2UgYW5kIGNhbGwgc2VydmljZXNNb2R1bGVzIHVwZGF0ZSAyJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuc2VydmljZXNBcGlNb2R1bGVzW25hbWVdO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaEFsbFNlcnZpY2UoKSB7XG4gICAgaWYgKCF0aGlzLnNlcnZpY2VzQXBpTW9kdWxlcykge1xuICAgICAgdGhyb3cgJ3NlcnZpY2UgY29tbW9uIGlzIEVtcHR5LCBwbGVhc2UgaW5qZWN0IE1vTGlic0NvcmVVSUh0dHBSZXF1ZXN0U2VydmljZSBhbmQgY2FsbCBzZXJ2aWNlc01vZHVsZXMgdXBkYXRlIDMnO1xuICAgIH1cblxuICAgIE9iamVjdC5rZXlzKHRoaXMuc2VydmljZXNBcGlNb2R1bGVzKS5mb3JFYWNoKChuYW1lU2VydmljZTogc3RyaW5nKSA9PiAodGhpcy5zZXJ2aWNlc0FwaU1vZHVsZXMgYXMgYW55KVtuYW1lU2VydmljZV0ucmVmcmVzaEFQSVVybCAmJiAodGhpcy5zZXJ2aWNlc0FwaU1vZHVsZXMgYXMgYW55KVtuYW1lU2VydmljZV0ucmVmcmVzaEFQSVVybCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjYWxsQXBpPFQgPSBhbnk+KGh0dHBSZXF1ZXN0Q29uZmlnOiBJSHR0cFJlcXVlc3RDb25maWcpOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAoIWh0dHBSZXF1ZXN0Q29uZmlnIHx8ICghaHR0cFJlcXVlc3RDb25maWcuc2VydmljZU5hbWUgJiYgIWh0dHBSZXF1ZXN0Q29uZmlnLnNlcnZpY2VPdGhlcikgfHwgIWh0dHBSZXF1ZXN0Q29uZmlnLmZ1bmN0aW9uTmFtZSkge1xuICAgICAgdGhyb3cgJ2h0dHAgcmVxdWVzdCBjb25maWcgbm90IGV4YWN0bHkgaHR0cFJlcXVlc3RDb25maWcnO1xuICAgIH1cbiAgICBjb25zdCB7IHNlcnZpY2VOYW1lLCBzZXJ2aWNlT3RoZXIsIGtleUNhY2hlLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50c1ZhbHVlIH0gPSBodHRwUmVxdWVzdENvbmZpZztcblxuICAgIGlmICghc2VydmljZU90aGVyICYmICghc2VydmljZU5hbWUgfHwgIXNlcnZpY2VOYW1lLnRyaW0oKSkpIHtcbiAgICAgIHRocm93ICdodHRwIHJlcXVlc3QgY29uZmlnIG5vdCBleGFjdGx5IHNlcnZpY2VJbnN0YW5jZSc7XG4gICAgfVxuICAgIGNvbnN0IHNlcnZpY2VJbnN0YW5jZTogYW55ID0gdGhpcy5nZXRTZXJ2aWNlQnlOYW1lKHNlcnZpY2VOYW1lIHx8ICcnKSB8fCBzZXJ2aWNlT3RoZXI7XG5cbiAgICBpZiAoIXNlcnZpY2VJbnN0YW5jZSkge1xuICAgICAgdGhyb3cgJ2h0dHAgcmVxdWVzdCBjb25maWcgbm90IGV4YWN0bHkgc2VydmljZUluc3RhbmNlJztcbiAgICB9XG4gICAgY29uc3QgbWV0aG9kSW5zdGFuY2UgPSBzZXJ2aWNlSW5zdGFuY2VbZnVuY3Rpb25OYW1lXTtcblxuICAgIGlmICghbWV0aG9kSW5zdGFuY2UpIHtcbiAgICAgIHRocm93ICdodHRwIHJlcXVlc3QgY29uZmlnIG5vdCBleGFjdGx5IG1ldGhvZEluc3RhbmNlJztcbiAgICB9XG4gICAgY29uc3Qga2V5Q2FjaGVNRDU6IHN0cmluZyA9IGdldEtleUNhY2hlQnlBcnJheU9iamVjdChrZXlDYWNoZSB8fCAnJywgYXJndW1lbnRzVmFsdWUpO1xuICAgIGNvbnN0IGNhY2hlRGF0YSA9IGF3YWl0IHRoaXMuZ2V0Q2FjaGVEYXRhKGh0dHBSZXF1ZXN0Q29uZmlnLCBrZXlDYWNoZU1ENSk7XG5cbiAgICBpZiAoY2FjaGVEYXRhKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNhY2hlRGF0YSk7XG4gICAgfVxuXG4gICAgbGV0IGNhbGxSZXNwb25zZSA9IG1ldGhvZEluc3RhbmNlLmFwcGx5KHNlcnZpY2VJbnN0YW5jZSwgYXJndW1lbnRzVmFsdWUpO1xuICAgIGlmICghY2FsbFJlc3BvbnNlLnRoZW4pIHtcbiAgICAgIGNhbGxSZXNwb25zZSA9IGxhc3RWYWx1ZUZyb20oY2FsbFJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBjYWxsUmVzcG9uc2U7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXRDYWNoZURhdGEocmVzLCBodHRwUmVxdWVzdENvbmZpZywga2V5Q2FjaGVNRDUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRDYWNoZURhdGEoaHR0cFJlcXVlc3RDb25maWc6IElIdHRwUmVxdWVzdENvbmZpZywga2V5Q2FjaGU6IHN0cmluZykge1xuICAgIGNvbnN0IHsgY2FjaGVUeXBlLCBjb252ZXJ0UmVzcG9uc2VEYXRhIH0gPSBodHRwUmVxdWVzdENvbmZpZztcblxuICAgIGlmICghY2FjaGVUeXBlIHx8ICFrZXlDYWNoZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKGNhY2hlVHlwZSA9PT0gJ3NlcnZpY2UnKSB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5zZXJ2aWNlU3RvcmUuZ2V0KGtleUNhY2hlKTtcblxuICAgICAgcmV0dXJuIGRhdGEgPyAoY29udmVydFJlc3BvbnNlRGF0YSA/IGNvbnZlcnRSZXNwb25zZURhdGEoZGF0YSkgOiBkYXRhKSA6IGRhdGE7XG4gICAgfVxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBVdGlsc0NhY2hlLkdldEFzeW5jKGtleUNhY2hlLCB1bmRlZmluZWQsIHRydWUpO1xuXG4gICAgcmV0dXJuIGRhdGEgPyAoY29udmVydFJlc3BvbnNlRGF0YSA/IGNvbnZlcnRSZXNwb25zZURhdGEoZGF0YSkgOiBkYXRhKSA6IGRhdGE7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldENhY2hlRGF0YShkYXRhOiBhbnksIGh0dHBSZXF1ZXN0Q29uZmlnOiBJSHR0cFJlcXVlc3RDb25maWcsIGtleUNhY2hlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IGNhY2hlVHlwZSwgY2xlYXJDYWNoZSwgY29udmVydFJlc3BvbnNlRGF0YSB9ID0gaHR0cFJlcXVlc3RDb25maWc7XG5cbiAgICBpZiAoIWNhY2hlVHlwZSB8fCAha2V5Q2FjaGUpIHtcbiAgICAgIHJldHVybiBjb252ZXJ0UmVzcG9uc2VEYXRhID8gY29udmVydFJlc3BvbnNlRGF0YShkYXRhKSA6IGRhdGE7XG4gICAgfVxuICAgIGlmIChjbGVhckNhY2hlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmNsZWFyQ2FjaGUoY2FjaGVUeXBlLCBrZXlDYWNoZSk7XG4gICAgfVxuICAgIGlmIChjYWNoZVR5cGUgPT09ICdzZXJ2aWNlJykge1xuICAgICAgdGhpcy5zZXJ2aWNlU3RvcmUuc2V0KGtleUNhY2hlLCBkYXRhKTtcblxuICAgICAgcmV0dXJuIGNvbnZlcnRSZXNwb25zZURhdGEgPyBjb252ZXJ0UmVzcG9uc2VEYXRhKGRhdGEpIDogZGF0YTtcbiAgICB9XG4gICAgYXdhaXQgVXRpbHNDYWNoZS5TZXRBc3luYyhrZXlDYWNoZSwgZGF0YSwgKGh0dHBSZXF1ZXN0Q29uZmlnLnRpbWVDYWNoZSB8fCA1KSAqIDYwLCB0cnVlKTtcblxuICAgIHJldHVybiBjb252ZXJ0UmVzcG9uc2VEYXRhID8gY29udmVydFJlc3BvbnNlRGF0YShkYXRhKSA6IGRhdGE7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyQ2FjaGUoY2FjaGVUeXBlOiAnc2VydmljZScgfCAnbG9jYWwtc3RvcmUnLCBrZXlDYWNoZTogc3RyaW5nKSB7XG4gICAgaWYgKGNhY2hlVHlwZSA9PT0gJ3NlcnZpY2UnKSB7XG4gICAgICB0aGlzLnNlcnZpY2VTdG9yZS5kZWxldGUoa2V5Q2FjaGUpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFV0aWxzQ2FjaGUuQ2xlYXJBc3luYyhrZXlDYWNoZSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgKiBAcmV0dXJuIHRy4bqjIHbhu4EgdHLhuqFuZyB0aMOhaSDEkcOjIGxvYWQgaOG6v3QgaXRlbSBjaMawYSAodsOtIGThu6U6IGThu7FhIHbDoG8gdGhhbSBz4buRIG7DoHkgxJHhu4MgcXV54bq/dCDEkeG7i25oIGPDsyB0aeG6v3AgdOG7pWMgZ+G7jWkgYXBpIGtoaSBzY3JvbGwga28pIC5cbiAgKi9cbiAgcHVibGljIHVwZGF0ZUFyZ3VtZW50cyhhcmd1bWVudHNWYWx1ZTogQXJyYXk8YW55Piwgb2JqZWN0R2V0RGF0YVVwZGF0ZTogUmVjb3JkPHN0cmluZywgYW55PiwgcGFnaW5nU3RvcmU6IElQYWdpbmcsIGtleVNlYXJjaDogc3RyaW5nLCBzZWFyY2hPbmxpbmU6IGJvb2xlYW4sIGxvYWRlZExhc3RJdGVtOiBib29sZWFuLCBndWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZT86IElHdWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZSk6IGJvb2xlYW4ge1xuICAgIGlmICghYXJndW1lbnRzVmFsdWUgfHwgIShhcmd1bWVudHNWYWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB8fCBsb2FkZWRMYXN0SXRlbSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFndWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlQXJndW1lbnRzRGVmYXVsdChhcmd1bWVudHNWYWx1ZSwgdHJ1ZSwgcGFnaW5nU3RvcmUsIGtleVNlYXJjaCwgc2VhcmNoT25saW5lKTtcbiAgICB9XG4gICAgY29uc3QgeyBwYWdpbmcsIHNlYXJjaCwgb3RoZXIsIGRldGFpbEJ5SWQsIHNvcnRPcmRlclR5cGUsIHNvcnRPcmRlckJ5IH0gPSBndWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZTtcblxuICAgIGlmIChzZWFyY2gpIHtcbiAgICAgIHNlYXJjaC5maWVsZEdldFZhbHVlID0gJ2tleVNlYXJjaCc7XG4gICAgICB0aGlzLnByb2Nlc3NVcGRhdGVBcmd1bWVudHNWYWxlQ29uZmlnKGFyZ3VtZW50c1ZhbHVlLCB7IGtleVNlYXJjaCB9LCBzZWFyY2gpO1xuICAgIH1cbiAgICBpZiAob2JqZWN0R2V0RGF0YVVwZGF0ZT8uWydzdG9yZVBhcmFtc0NhbGxBcGknXSAmJiB0eXBlb2Ygb2JqZWN0R2V0RGF0YVVwZGF0ZT8uWydzdG9yZVBhcmFtc0NhbGxBcGknXSA9PT0gJ29iamVjdCcgJiYgIShvYmplY3RHZXREYXRhVXBkYXRlPy5bJ3N0b3JlUGFyYW1zQ2FsbEFwaSddIGFzIGFueSkuaW5zdGFuY2VTb3J0KSB7XG4gICAgICBvYmplY3RHZXREYXRhVXBkYXRlWydzdG9yZVBhcmFtc0NhbGxBcGknXSA9IHsgLi4ub2JqZWN0R2V0RGF0YVVwZGF0ZVsnc3RvcmVQYXJhbXNDYWxsQXBpJ10sIGluc3RhbmNlU29ydDoge30gfTtcbiAgICB9XG4gICAgaWYgKHNvcnRPcmRlckJ5KSB7XG4gICAgICB0aGlzLnByb2Nlc3NVcGRhdGVBcmd1bWVudHNWYWxlQ29uZmlnKGFyZ3VtZW50c1ZhbHVlLCBvYmplY3RHZXREYXRhVXBkYXRlLCBzb3J0T3JkZXJCeSk7XG4gICAgfVxuICAgIGlmIChzb3J0T3JkZXJUeXBlKSB7XG4gICAgICB0aGlzLnByb2Nlc3NVcGRhdGVBcmd1bWVudHNWYWxlQ29uZmlnKGFyZ3VtZW50c1ZhbHVlLCBvYmplY3RHZXREYXRhVXBkYXRlLCBzb3J0T3JkZXJUeXBlKTtcbiAgICB9XG4gICAgaWYgKG90aGVyICYmIG90aGVyLmxlbmd0aCkge1xuICAgICAgb3RoZXIuZm9yRWFjaChjb25maWcgPT4gdGhpcy5wcm9jZXNzVXBkYXRlQXJndW1lbnRzVmFsZUNvbmZpZyhhcmd1bWVudHNWYWx1ZSwgb2JqZWN0R2V0RGF0YVVwZGF0ZSwgY29uZmlnKSk7XG4gICAgfVxuICAgIGlmIChkZXRhaWxCeUlkKSB7XG4gICAgICBkZXRhaWxCeUlkLmZpZWxkR2V0VmFsdWUgPSBkZXRhaWxCeUlkLmZpZWxkR2V0VmFsdWUgfHwgZGV0YWlsQnlJZC5maWVsZEdldFZhbHVlLnRyaW0oKSB8fCAna2V5JztcbiAgICAgIHRoaXMucHJvY2Vzc1VwZGF0ZUFyZ3VtZW50c1ZhbGVDb25maWcoYXJndW1lbnRzVmFsdWUsIG9iamVjdEdldERhdGFVcGRhdGUsIGRldGFpbEJ5SWQpO1xuICAgIH1cblxuICAgIGlmIChpc0VtcHR5KHBhZ2luZykpIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUFyZ3VtZW50c0RlZmF1bHQoYXJndW1lbnRzVmFsdWUsIGZhbHNlLCBwYWdpbmdTdG9yZSB8fCB0aGlzLmZha2VSZXNwb25zZVBhZ2luZ0FwaSgpWydwYWdpbmcnXSwga2V5U2VhcmNoLCBzZWFyY2hPbmxpbmUpO1xuICAgIH1cbiAgICBjb25zdCB7IHBhZ2UsIGJlZm9yZSwgYWZ0ZXIgfSA9IHBhZ2luZztcblxuICAgIGlmIChwYWdlICYmIG9iamVjdEdldERhdGFVcGRhdGUpIHtcbiAgICAgIHBhZ2UucHJlcHJvY2Vzc29yID0gKHZhbHVlOiBudW1iZXIpOiBudW1iZXIgPT4ge1xuXG4gICAgICAgIHJldHVybiArK3ZhbHVlO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IHZhbHVlUGFnZSA9ICt0aGlzLnByb2Nlc3NVcGRhdGVBcmd1bWVudHNWYWxlQ29uZmlnKGFyZ3VtZW50c1ZhbHVlLCBvYmplY3RHZXREYXRhVXBkYXRlLCBwYWdlKTtcbiAgICAgIGNvbnN0IHZhbHVlTGFzdFBhZ2UgPSArZ2V0KG9iamVjdEdldERhdGFVcGRhdGUgYXMgYW55LCAncGFnaW5nLnRvdGFsX3BhZ2VzJyk7XG5cbiAgICAgIGlmICh2YWx1ZVBhZ2UgJiYgTnVtYmVyKHZhbHVlUGFnZSkudmFsdWVPZigpID4gTnVtYmVyKHZhbHVlTGFzdFBhZ2UpLnZhbHVlT2YoKSB8fCB2YWx1ZUxhc3RQYWdlID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYmVmb3JlICYmIG9iamVjdEdldERhdGFVcGRhdGUgJiYgIXRoaXMucHJvY2Vzc1VwZGF0ZUFyZ3VtZW50c1ZhbGVDb25maWcoYXJndW1lbnRzVmFsdWUsIG9iamVjdEdldERhdGFVcGRhdGUsIGJlZm9yZSkgJiYgIWdldChvYmplY3RHZXREYXRhVXBkYXRlLCAncGFnaW5nLmZha2UnKSkge1xuICAgICAgc2V0KG9iamVjdEdldERhdGFVcGRhdGUsICdwYWdpbmcuZmFrZScsIGZhbHNlKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChhZnRlciAmJiBvYmplY3RHZXREYXRhVXBkYXRlICYmICF0aGlzLnByb2Nlc3NVcGRhdGVBcmd1bWVudHNWYWxlQ29uZmlnKGFyZ3VtZW50c1ZhbHVlLCBvYmplY3RHZXREYXRhVXBkYXRlLCBhZnRlcikgJiYgIWdldChvYmplY3RHZXREYXRhVXBkYXRlLCAncGFnaW5nLmZha2UnKSkge1xuICAgICAgc2V0KG9iamVjdEdldERhdGFVcGRhdGUsICdwYWdpbmcuZmFrZScsIGZhbHNlKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFhcmd1bWVudHNWYWx1ZSB8fCAhYXJndW1lbnRzVmFsdWUubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUFyZ3VtZW50c0RlZmF1bHQoYXJndW1lbnRzVmFsdWU6IEFycmF5PGFueT4sIHVwZGF0ZVNlYXJjaDogYm9vbGVhbiwgcGFnaW5nU3RvcmU6IElQYWdpbmcsIGtleVNlYXJjaDogc3RyaW5nLCBzZWFyY2hPbmxpbmU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIWFyZ3VtZW50c1ZhbHVlIHx8ICFhcmd1bWVudHNWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaW5kZXggaW4gYXJndW1lbnRzVmFsdWUpIHtcbiAgICAgIGxldCBhcmd1bWVudFZhbHVlID0gYXJndW1lbnRzVmFsdWVbaW5kZXhdO1xuXG4gICAgICBpZiAoIShhcmd1bWVudFZhbHVlIGluc3RhbmNlb2YgSHR0cFBhcmFtcykpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBwYWdlVmFsdWUgPSBhcmd1bWVudFZhbHVlLmdldCgncGFnZScpO1xuXG4gICAgICBpZiAoc2VhcmNoT25saW5lICYmIHVwZGF0ZVNlYXJjaCkge1xuICAgICAgICBhcmd1bWVudFZhbHVlID0gYXJndW1lbnRWYWx1ZS5zZXQoJ3NlYXJjaCcsIGtleVNlYXJjaCk7XG4gICAgICAgIGFyZ3VtZW50c1ZhbHVlW2luZGV4XSA9IGFyZ3VtZW50VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoYXJndW1lbnRWYWx1ZS5oYXMoJ2JlZm9yZScpKSB7XG4gICAgICAgIGFyZ3VtZW50VmFsdWUgPSBhcmd1bWVudFZhbHVlLnNldCgnYmVmb3JlJywgcGFnaW5nU3RvcmU/LmJlZm9yZSk7XG4gICAgICAgIGFyZ3VtZW50c1ZhbHVlW2luZGV4XSA9IGFyZ3VtZW50VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoYXJndW1lbnRWYWx1ZS5oYXMoJ2FmdGVyJykpIHtcbiAgICAgICAgYXJndW1lbnRWYWx1ZSA9IGFyZ3VtZW50VmFsdWUuc2V0KCdhZnRlcicsIHBhZ2luZ1N0b3JlPy5hZnRlcik7XG4gICAgICAgIGFyZ3VtZW50c1ZhbHVlW2luZGV4XSA9IGFyZ3VtZW50VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoTnVtYmVyKHBhZ2VWYWx1ZSkudmFsdWVPZigpID09PSAtMSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICghcGFnaW5nU3RvcmUgfHwgcGFnZVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgcGFnZSwgdG90YWxfcGFnZXMsIH0gPSBwYWdpbmdTdG9yZTtcbiAgICAgIGNvbnN0IG5leHRQYWdlID0gKHBhZ2UgfHwgMCkgKyAxO1xuXG4gICAgICBpZiAobmV4dFBhZ2UgJiYgTnVtYmVyKG5leHRQYWdlKS52YWx1ZU9mKCkgPiBOdW1iZXIodG90YWxfcGFnZXMpLnZhbHVlT2YoKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGFyZ3VtZW50c1ZhbHVlW2luZGV4XSA9IGFyZ3VtZW50VmFsdWUuc2V0KCdwYWdlJywgbmV4dFBhZ2UpO1xuICAgICAgYnJlYWs7XG5cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NVcGRhdGVBcmd1bWVudHNWYWxlQ29uZmlnKGFyZ3VtZW50c1ZhbHVlOiBBcnJheTxhbnk+LCBvYmplY3RHZXREYXRhVXBkYXRlOiBhbnksIGNvbmZpZzogSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlQ29uZmlnKSB7XG4gICAgaWYgKCFjb25maWcgfHwgIW9iamVjdEdldERhdGFVcGRhdGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHsgZmllbGRVcGRhdGUsIGZpZWxkR2V0VmFsdWUsIHByZXByb2Nlc3NvciB9ID0gY29uZmlnO1xuXG4gICAgaWYgKCFmaWVsZFVwZGF0ZSB8fCAhZmllbGRHZXRWYWx1ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWUgPSBnZXQob2JqZWN0R2V0RGF0YVVwZGF0ZSwgZmllbGRHZXRWYWx1ZSk7XG5cbiAgICBpZiAocHJlcHJvY2Vzc29yKSB7XG4gICAgICB2YWx1ZSA9IHByZXByb2Nlc3Nvcih2YWx1ZSk7XG4gICAgfVxuICAgIGlmIChmaWVsZFVwZGF0ZSkge1xuICAgICAgbGV0IHJlc3VsdE9mRmllbGRVcGRhdGUgPSBnZXQoYXJndW1lbnRzVmFsdWUsIGZpZWxkVXBkYXRlKTtcblxuICAgICAgaWYgKHJlc3VsdE9mRmllbGRVcGRhdGUgaW5zdGFuY2VvZiBIdHRwUGFyYW1zKSB7XG4gICAgICAgIHJlc3VsdE9mRmllbGRVcGRhdGUgPSByZXN1bHRPZkZpZWxkVXBkYXRlLnNldCgoY29uZmlnLnN1YkZpZWxkVXBkYXRlIHx8ICdzZWFyY2gnKSwgdmFsdWUpO1xuICAgICAgICBzZXQoYXJndW1lbnRzVmFsdWUsIGZpZWxkVXBkYXRlLCByZXN1bHRPZkZpZWxkVXBkYXRlKTtcblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0T2ZGaWVsZFVwZGF0ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHJlc3VsdE9mRmllbGRVcGRhdGUucHVzaCh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdE9mRmllbGRVcGRhdGUgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgc2V0KHJlc3VsdE9mRmllbGRVcGRhdGUsIGNvbmZpZy5zdWJGaWVsZFVwZGF0ZSB8fCAnc2VhcmNoJywgdmFsdWUpO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHNldChhcmd1bWVudHNWYWx1ZSwgZmllbGRVcGRhdGUsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBmYWtlUmVzcG9uc2VQYWdpbmdBcGkoKTogeyBwYWdpbmc6IElQYWdpbmcgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2luZzoge1xuICAgICAgICBwYWdlOiAwLFxuICAgICAgICB0b3RhbF9wYWdlczogMSxcbiAgICAgICAgYmVmb3JlOiAnJyxcbiAgICAgICAgYWZ0ZXI6ICcnLFxuICAgICAgICBmYWtlOiB0cnVlXG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuIl19
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL2h0dHAtcmVxdWVzdC9zcmMvaHR0cC1yZXF1ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU1yQyxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLGdDQUFnQztJQUN4QixZQUFZLENBQW1CO0lBQ3ZDLHVDQUF1QztJQUMvQixjQUFjLEdBQXdCLEVBQUUsQ0FBQztJQUVqRCw0Q0FBNEM7SUFDcEMsa0JBQWtCLEdBQXdCLEVBQUUsQ0FBQztJQUVyRDtRQUNFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxjQUFjLENBQUMsYUFBa0M7UUFDMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLGFBQWEsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFXLGtCQUFrQixDQUFDLGtCQUF1QztRQUNuRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLGtCQUFrQixFQUFFLENBQUM7SUFDbEYsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQVk7UUFDbkMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUs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LE9BQU87WUFDTCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLENBQUM7Z0JBQ1AsV0FBVyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLElBQUk7YUFDWDtTQUNGLENBQUM7SUFDSixDQUFDO3dHQXJUVSx3QkFBd0I7NEdBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzs0RkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQYWdpbmcgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IFV0aWxzQ2FjaGUsIGdldCwgZ2V0S2V5Q2FjaGVCeUFycmF5T2JqZWN0LCBpc0VtcHR5LCBzZXQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJR3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWUsIElHdWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZUNvbmZpZywgSUh0dHBSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2luZGV4JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUh0dHBSZXF1ZXN0U2VydmljZSB7XG4gIC8qKiBDaOG7qWEgZOG7ryBsaeG7h3UgY2FjaGUgbWVtb3J5ICovXG4gIHByaXZhdGUgc2VydmljZVN0b3JlOiBNYXA8c3RyaW5nLCBhbnk+O1xuICAvKiogQ2jhu6lhIGPDoWMgc2VydmljZSBjb21tb24gYmFzZSBhcGkgKi9cbiAgcHJpdmF0ZSBzZXJ2aWNlc0NvbW1vbjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIC8qKiBDaOG7qWEgY8OhYyBzZXJ2aWNlIGNhbGwgYXBpIMSR4bq/biBiYWNrZW5kICovXG4gIHByaXZhdGUgc2VydmljZXNBcGlNb2R1bGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zZXJ2aWNlU3RvcmUgPSBuZXcgTWFwKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IFNlcnZpY2VzQ29tbW9uKHNlcnZpY2VDb21tb246IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICB0aGlzLnNlcnZpY2VzQ29tbW9uID0geyAuLi50aGlzLnNlcnZpY2VzQ29tbW9uLCAuLi5zZXJ2aWNlQ29tbW9uIH07XG4gIH1cblxuICBwdWJsaWMgc2V0IFNlcnZpY2VzQXBpTW9kdWxlcyhzZXJ2aWNlc0FwaU1vZHVsZXM6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICB0aGlzLnNlcnZpY2VzQXBpTW9kdWxlcyA9IHsgLi4udGhpcy5zZXJ2aWNlc0FwaU1vZHVsZXMsIC4uLnNlcnZpY2VzQXBpTW9kdWxlcyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZXJ2aWNlQnlOYW1lKG5hbWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICAgIGlmICghbmFtZSB8fCAhbmFtZS50cmltKCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoJ2NvbW1vbicpKSB7XG5cbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlc0NvbW1vbikge1xuICAgICAgICB0aHJvdyAnc2VydmljZSBjb21tb24gaXMgRW1wdHksIHBsZWFzZSBpbmplY3QgTW9MaWJzQ29yZVVJSHR0cFJlcXVlc3RTZXJ2aWNlIGFuZCBjYWxsIFNlcnZpY2VzQ29tbW9uIHVwZGF0ZSAxJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuc2VydmljZXNDb21tb25bbmFtZV07XG4gICAgfVxuXG4gICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgnYXBpTW9kdWxlJykpIHtcbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlc0FwaU1vZHVsZXMpIHtcbiAgICAgICAgdGhyb3cgJ3NlcnZpY2UgbW9kdWxlIGlzIEVtcHR5LCBwbGVhc2UgaW5qZWN0IE1vTGlic0NvcmVVSUh0dHBSZXF1ZXN0U2VydmljZSBhbmQgY2FsbCBzZXJ2aWNlc01vZHVsZXMgdXBkYXRlIDInO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlc0FwaU1vZHVsZXNbbmFtZV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoQWxsU2VydmljZSgpIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZXNBcGlNb2R1bGVzKSB7XG4gICAgICB0aHJvdyAnc2VydmljZSBjb21tb24gaXMgRW1wdHksIHBsZWFzZSBpbmplY3QgTW9MaWJzQ29yZVVJSHR0cFJlcXVlc3RTZXJ2aWNlIGFuZCBjYWxsIHNlcnZpY2VzTW9kdWxlcyB1cGRhdGUgMyc7XG4gICAgfVxuXG4gICAgT2JqZWN0LmtleXModGhpcy5zZXJ2aWNlc0FwaU1vZHVsZXMpLmZvckVhY2goKG5hbWVTZXJ2aWNlOiBzdHJpbmcpID0+ICh0aGlzLnNlcnZpY2VzQXBpTW9kdWxlcyBhcyBhbnkpW25hbWVTZXJ2aWNlXS5yZWZyZXNoQVBJVXJsICYmICh0aGlzLnNlcnZpY2VzQXBpTW9kdWxlcyBhcyBhbnkpW25hbWVTZXJ2aWNlXS5yZWZyZXNoQVBJVXJsKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNhbGxBcGk8VCA9IGFueT4oaHR0cFJlcXVlc3RDb25maWc6IElIdHRwUmVxdWVzdENvbmZpZyk6IFByb21pc2U8VD4ge1xuICAgIGlmICghaHR0cFJlcXVlc3RDb25maWcgfHwgKCFodHRwUmVxdWVzdENvbmZpZy5zZXJ2aWNlTmFtZSAmJiAhaHR0cFJlcXVlc3RDb25maWcuc2VydmljZU90aGVyKSB8fCAhaHR0cFJlcXVlc3RDb25maWcuZnVuY3Rpb25OYW1lKSB7XG4gICAgICB0aHJvdyAnaHR0cCByZXF1ZXN0IGNvbmZpZyBub3QgZXhhY3RseSBodHRwUmVxdWVzdENvbmZpZyc7XG4gICAgfVxuICAgIGNvbnN0IHsgc2VydmljZU5hbWUsIHNlcnZpY2VPdGhlciwga2V5Q2FjaGUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRzVmFsdWUgfSA9IGh0dHBSZXF1ZXN0Q29uZmlnO1xuXG4gICAgaWYgKCFzZXJ2aWNlT3RoZXIgJiYgKCFzZXJ2aWNlTmFtZSB8fCAhc2VydmljZU5hbWUudHJpbSgpKSkge1xuICAgICAgdGhyb3cgJ2h0dHAgcmVxdWVzdCBjb25maWcgbm90IGV4YWN0bHkgc2VydmljZUluc3RhbmNlJztcbiAgICB9XG4gICAgY29uc3Qgc2VydmljZUluc3RhbmNlOiBhbnkgPSB0aGlzLmdldFNlcnZpY2VCeU5hbWUoc2VydmljZU5hbWUgfHwgJycpIHx8IHNlcnZpY2VPdGhlcjtcblxuICAgIGlmICghc2VydmljZUluc3RhbmNlKSB7XG4gICAgICB0aHJvdyAnaHR0cCByZXF1ZXN0IGNvbmZpZyBub3QgZXhhY3RseSBzZXJ2aWNlSW5zdGFuY2UnO1xuICAgIH1cbiAgICBjb25zdCBtZXRob2RJbnN0YW5jZSA9IHNlcnZpY2VJbnN0YW5jZVtmdW5jdGlvbk5hbWVdO1xuXG4gICAgaWYgKCFtZXRob2RJbnN0YW5jZSkge1xuICAgICAgdGhyb3cgJ2h0dHAgcmVxdWVzdCBjb25maWcgbm90IGV4YWN0bHkgbWV0aG9kSW5zdGFuY2UnO1xuICAgIH1cbiAgICBjb25zdCBrZXlDYWNoZU1ENTogc3RyaW5nID0gZ2V0S2V5Q2FjaGVCeUFycmF5T2JqZWN0KGtleUNhY2hlIHx8ICcnLCBhcmd1bWVudHNWYWx1ZSk7XG4gICAgY29uc3QgY2FjaGVEYXRhID0gYXdhaXQgdGhpcy5nZXRDYWNoZURhdGEoaHR0cFJlcXVlc3RDb25maWcsIGtleUNhY2hlTUQ1KTtcblxuICAgIGlmIChjYWNoZURhdGEpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY2FjaGVEYXRhKTtcbiAgICB9XG5cbiAgICBsZXQgY2FsbFJlc3BvbnNlID0gbWV0aG9kSW5zdGFuY2UuYXBwbHkoc2VydmljZUluc3RhbmNlLCBhcmd1bWVudHNWYWx1ZSk7XG4gICAgaWYgKCFjYWxsUmVzcG9uc2UudGhlbikge1xuICAgICAgY2FsbFJlc3BvbnNlID0gbGFzdFZhbHVlRnJvbShjYWxsUmVzcG9uc2UpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNhbGxSZXNwb25zZTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnNldENhY2hlRGF0YShyZXMsIGh0dHBSZXF1ZXN0Q29uZmlnLCBrZXlDYWNoZU1ENSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldENhY2hlRGF0YShodHRwUmVxdWVzdENvbmZpZzogSUh0dHBSZXF1ZXN0Q29uZmlnLCBrZXlDYWNoZTogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBjYWNoZVR5cGUsIGNvbnZlcnRSZXNwb25zZURhdGEgfSA9IGh0dHBSZXF1ZXN0Q29uZmlnO1xuXG4gICAgaWYgKCFjYWNoZVR5cGUgfHwgIWtleUNhY2hlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoY2FjaGVUeXBlID09PSAnc2VydmljZScpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnNlcnZpY2VTdG9yZS5nZXQoa2V5Q2FjaGUpO1xuXG4gICAgICByZXR1cm4gZGF0YSA/IChjb252ZXJ0UmVzcG9uc2VEYXRhID8gY29udmVydFJlc3BvbnNlRGF0YShkYXRhKSA6IGRhdGEpIDogZGF0YTtcbiAgICB9XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IFV0aWxzQ2FjaGUuR2V0QXN5bmMoa2V5Q2FjaGUsIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cbiAgICByZXR1cm4gZGF0YSA/IChjb252ZXJ0UmVzcG9uc2VEYXRhID8gY29udmVydFJlc3BvbnNlRGF0YShkYXRhKSA6IGRhdGEpIDogZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2V0Q2FjaGVEYXRhKGRhdGE6IGFueSwgaHR0cFJlcXVlc3RDb25maWc6IElIdHRwUmVxdWVzdENvbmZpZywga2V5Q2FjaGU6IHN0cmluZykge1xuICAgIGNvbnN0IHsgY2FjaGVUeXBlLCBjbGVhckNhY2hlLCBjb252ZXJ0UmVzcG9uc2VEYXRhIH0gPSBodHRwUmVxdWVzdENvbmZpZztcblxuICAgIGlmICghY2FjaGVUeXBlIHx8ICFrZXlDYWNoZSkge1xuICAgICAgcmV0dXJuIGNvbnZlcnRSZXNwb25zZURhdGEgPyBjb252ZXJ0UmVzcG9uc2VEYXRhKGRhdGEpIDogZGF0YTtcbiAgICB9XG4gICAgaWYgKGNsZWFyQ2FjaGUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuY2xlYXJDYWNoZShjYWNoZVR5cGUsIGtleUNhY2hlKTtcbiAgICB9XG4gICAgaWYgKGNhY2hlVHlwZSA9PT0gJ3NlcnZpY2UnKSB7XG4gICAgICB0aGlzLnNlcnZpY2VTdG9yZS5zZXQoa2V5Q2FjaGUsIGRhdGEpO1xuXG4gICAgICByZXR1cm4gY29udmVydFJlc3BvbnNlRGF0YSA/IGNvbnZlcnRSZXNwb25zZURhdGEoZGF0YSkgOiBkYXRhO1xuICAgIH1cbiAgICBhd2FpdCBVdGlsc0NhY2hlLlNldEFzeW5jKGtleUNhY2hlLCBkYXRhLCAoaHR0cFJlcXVlc3RDb25maWcudGltZUNhY2hlIHx8IDUpICogNjAsIHRydWUpO1xuXG4gICAgcmV0dXJuIGNvbnZlcnRSZXNwb25zZURhdGEgPyBjb252ZXJ0UmVzcG9uc2VEYXRhKGRhdGEpIDogZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJDYWNoZShjYWNoZVR5cGU6ICdzZXJ2aWNlJyB8ICdsb2NhbC1zdG9yZScsIGtleUNhY2hlOiBzdHJpbmcpIHtcbiAgICBpZiAoY2FjaGVUeXBlID09PSAnc2VydmljZScpIHtcbiAgICAgIHRoaXMuc2VydmljZVN0b3JlLmRlbGV0ZShrZXlDYWNoZSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgVXRpbHNDYWNoZS5DbGVhckFzeW5jKGtleUNhY2hlLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAqIEByZXR1cm4gdHLhuqMgduG7gSB0cuG6oW5nIHRow6FpIMSRw6MgbG9hZCBo4bq/dCBpdGVtIGNoxrBhICh2w60gZOG7pTogZOG7sWEgdsOgbyB0aGFtIHPhu5EgbsOgeSDEkeG7gyBxdXnhur90IMSR4buLbmggY8OzIHRp4bq/cCB04bulYyBn4buNaSBhcGkga2hpIHNjcm9sbCBrbykgLlxuICAqL1xuICBwdWJsaWMgdXBkYXRlQXJndW1lbnRzKGFyZ3VtZW50c1ZhbHVlOiBBcnJheTxhbnk+LCBvYmplY3RHZXREYXRhVXBkYXRlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBwYWdpbmdTdG9yZTogSVBhZ2luZywga2V5U2VhcmNoOiBzdHJpbmcsIHNlYXJjaE9ubGluZTogYm9vbGVhbiwgbG9hZGVkTGFzdEl0ZW06IGJvb2xlYW4sIGd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlPzogSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFhcmd1bWVudHNWYWx1ZSB8fCAhKGFyZ3VtZW50c1ZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHx8IGxvYWRlZExhc3RJdGVtKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVBcmd1bWVudHNEZWZhdWx0KGFyZ3VtZW50c1ZhbHVlLCB0cnVlLCBwYWdpbmdTdG9yZSwga2V5U2VhcmNoLCBzZWFyY2hPbmxpbmUpO1xuICAgIH1cbiAgICBjb25zdCB7IHBhZ2luZywgc2VhcmNoLCBvdGhlciwgZGV0YWlsQnlJZCwgc29ydE9yZGVyVHlwZSwgc29ydE9yZGVyQnkgfSA9IGd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlO1xuXG4gICAgaWYgKHNlYXJjaCkge1xuICAgICAgc2VhcmNoLmZpZWxkR2V0VmFsdWUgPSAna2V5U2VhcmNoJztcbiAgICAgIHRoaXMucHJvY2Vzc1VwZGF0ZUFyZ3VtZW50c1ZhbGVDb25maWcoYXJndW1lbnRzVmFsdWUsIHsga2V5U2VhcmNoIH0sIHNlYXJjaCk7XG4gICAgfVxuICAgIGlmIChvYmplY3RHZXREYXRhVXBkYXRlPy5bJ3N0b3JlUGFyYW1zQ2FsbEFwaSddICYmIHR5cGVvZiBvYmplY3RHZXREYXRhVXBkYXRlPy5bJ3N0b3JlUGFyYW1zQ2FsbEFwaSddID09PSAnb2JqZWN0JyAmJiAhKG9iamVjdEdldERhdGFVcGRhdGU/Llsnc3RvcmVQYXJhbXNDYWxsQXBpJ10gYXMgYW55KS5pbnN0YW5jZVNvcnQpIHtcbiAgICAgIG9iamVjdEdldERhdGFVcGRhdGVbJ3N0b3JlUGFyYW1zQ2FsbEFwaSddID0geyAuLi5vYmplY3RHZXREYXRhVXBkYXRlWydzdG9yZVBhcmFtc0NhbGxBcGknXSwgaW5zdGFuY2VTb3J0OiB7fSB9O1xuICAgIH1cbiAgICBpZiAoc29ydE9yZGVyQnkpIHtcbiAgICAgIHRoaXMucHJvY2Vzc1VwZGF0ZUFyZ3VtZW50c1ZhbGVDb25maWcoYXJndW1lbnRzVmFsdWUsIG9iamVjdEdldERhdGFVcGRhdGUsIHNvcnRPcmRlckJ5KTtcbiAgICB9XG4gICAgaWYgKHNvcnRPcmRlclR5cGUpIHtcbiAgICAgIHRoaXMucHJvY2Vzc1VwZGF0ZUFyZ3VtZW50c1ZhbGVDb25maWcoYXJndW1lbnRzVmFsdWUsIG9iamVjdEdldERhdGFVcGRhdGUsIHNvcnRPcmRlclR5cGUpO1xuICAgIH1cbiAgICBpZiAob3RoZXIgJiYgb3RoZXIubGVuZ3RoKSB7XG4gICAgICBvdGhlci5mb3JFYWNoKGNvbmZpZyA9PiB0aGlzLnByb2Nlc3NVcGRhdGVBcmd1bWVudHNWYWxlQ29uZmlnKGFyZ3VtZW50c1ZhbHVlLCBvYmplY3RHZXREYXRhVXBkYXRlLCBjb25maWcpKTtcbiAgICB9XG4gICAgaWYgKGRldGFpbEJ5SWQpIHtcbiAgICAgIGRldGFpbEJ5SWQuZmllbGRHZXRWYWx1ZSA9IGRldGFpbEJ5SWQuZmllbGRHZXRWYWx1ZSB8fCBkZXRhaWxCeUlkLmZpZWxkR2V0VmFsdWUudHJpbSgpIHx8ICdrZXknO1xuICAgICAgdGhpcy5wcm9jZXNzVXBkYXRlQXJndW1lbnRzVmFsZUNvbmZpZyhhcmd1bWVudHNWYWx1ZSwgb2JqZWN0R2V0RGF0YVVwZGF0ZSwgZGV0YWlsQnlJZCk7XG4gICAgfVxuXG4gICAgaWYgKGlzRW1wdHkocGFnaW5nKSkge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlQXJndW1lbnRzRGVmYXVsdChhcmd1bWVudHNWYWx1ZSwgZmFsc2UsIHBhZ2luZ1N0b3JlIHx8IHRoaXMuZmFrZVJlc3BvbnNlUGFnaW5nQXBpKClbJ3BhZ2luZyddLCBrZXlTZWFyY2gsIHNlYXJjaE9ubGluZSk7XG4gICAgfVxuICAgIGNvbnN0IHsgcGFnZSwgYmVmb3JlLCBhZnRlciB9ID0gcGFnaW5nO1xuXG4gICAgaWYgKHBhZ2UgJiYgb2JqZWN0R2V0RGF0YVVwZGF0ZSkge1xuICAgICAgcGFnZS5wcmVwcm9jZXNzb3IgPSAodmFsdWU6IG51bWJlcik6IG51bWJlciA9PiB7XG5cbiAgICAgICAgcmV0dXJuICsrdmFsdWU7XG4gICAgICB9O1xuICAgICAgY29uc3QgdmFsdWVQYWdlID0gK3RoaXMucHJvY2Vzc1VwZGF0ZUFyZ3VtZW50c1ZhbGVDb25maWcoYXJndW1lbnRzVmFsdWUsIG9iamVjdEdldERhdGFVcGRhdGUsIHBhZ2UpO1xuICAgICAgY29uc3QgdmFsdWVMYXN0UGFnZSA9ICtnZXQob2JqZWN0R2V0RGF0YVVwZGF0ZSBhcyBhbnksICdwYWdpbmcudG90YWxfcGFnZXMnKTtcblxuICAgICAgaWYgKHZhbHVlUGFnZSAmJiBOdW1iZXIodmFsdWVQYWdlKS52YWx1ZU9mKCkgPiBOdW1iZXIodmFsdWVMYXN0UGFnZSkudmFsdWVPZigpIHx8IHZhbHVlTGFzdFBhZ2UgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChiZWZvcmUgJiYgb2JqZWN0R2V0RGF0YVVwZGF0ZSAmJiAhdGhpcy5wcm9jZXNzVXBkYXRlQXJndW1lbnRzVmFsZUNvbmZpZyhhcmd1bWVudHNWYWx1ZSwgb2JqZWN0R2V0RGF0YVVwZGF0ZSwgYmVmb3JlKSAmJiAhZ2V0KG9iamVjdEdldERhdGFVcGRhdGUsICdwYWdpbmcuZmFrZScpKSB7XG4gICAgICBzZXQob2JqZWN0R2V0RGF0YVVwZGF0ZSwgJ3BhZ2luZy5mYWtlJywgZmFsc2UpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGFmdGVyICYmIG9iamVjdEdldERhdGFVcGRhdGUgJiYgIXRoaXMucHJvY2Vzc1VwZGF0ZUFyZ3VtZW50c1ZhbGVDb25maWcoYXJndW1lbnRzVmFsdWUsIG9iamVjdEdldERhdGFVcGRhdGUsIGFmdGVyKSAmJiAhZ2V0KG9iamVjdEdldERhdGFVcGRhdGUsICdwYWdpbmcuZmFrZScpKSB7XG4gICAgICBzZXQob2JqZWN0R2V0RGF0YVVwZGF0ZSwgJ3BhZ2luZy5mYWtlJywgZmFsc2UpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWFyZ3VtZW50c1ZhbHVlIHx8ICFhcmd1bWVudHNWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQXJndW1lbnRzRGVmYXVsdChhcmd1bWVudHNWYWx1ZTogQXJyYXk8YW55PiwgdXBkYXRlU2VhcmNoOiBib29sZWFuLCBwYWdpbmdTdG9yZTogSVBhZ2luZywga2V5U2VhcmNoOiBzdHJpbmcsIHNlYXJjaE9ubGluZTogYm9vbGVhbikge1xuICAgIGlmICghYXJndW1lbnRzVmFsdWUgfHwgIWFyZ3VtZW50c1ZhbHVlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBpbmRleCBpbiBhcmd1bWVudHNWYWx1ZSkge1xuICAgICAgbGV0IGFyZ3VtZW50VmFsdWUgPSBhcmd1bWVudHNWYWx1ZVtpbmRleF07XG5cbiAgICAgIGlmICghKGFyZ3VtZW50VmFsdWUgaW5zdGFuY2VvZiBIdHRwUGFyYW1zKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhZ2VWYWx1ZSA9IGFyZ3VtZW50VmFsdWUuZ2V0KCdwYWdlJyk7XG5cbiAgICAgIGlmIChzZWFyY2hPbmxpbmUgJiYgdXBkYXRlU2VhcmNoKSB7XG4gICAgICAgIGFyZ3VtZW50VmFsdWUgPSBhcmd1bWVudFZhbHVlLnNldCgnc2VhcmNoJywga2V5U2VhcmNoKTtcbiAgICAgICAgYXJndW1lbnRzVmFsdWVbaW5kZXhdID0gYXJndW1lbnRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChhcmd1bWVudFZhbHVlLmhhcygnYmVmb3JlJykpIHtcbiAgICAgICAgYXJndW1lbnRWYWx1ZSA9IGFyZ3VtZW50VmFsdWUuc2V0KCdiZWZvcmUnLCBwYWdpbmdTdG9yZT8uYmVmb3JlKTtcbiAgICAgICAgYXJndW1lbnRzVmFsdWVbaW5kZXhdID0gYXJndW1lbnRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChhcmd1bWVudFZhbHVlLmhhcygnYWZ0ZXInKSkge1xuICAgICAgICBhcmd1bWVudFZhbHVlID0gYXJndW1lbnRWYWx1ZS5zZXQoJ2FmdGVyJywgcGFnaW5nU3RvcmU/LmFmdGVyKTtcbiAgICAgICAgYXJndW1lbnRzVmFsdWVbaW5kZXhdID0gYXJndW1lbnRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChOdW1iZXIocGFnZVZhbHVlKS52YWx1ZU9mKCkgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKCFwYWdpbmdTdG9yZSB8fCBwYWdlVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBwYWdlLCB0b3RhbF9wYWdlcywgfSA9IHBhZ2luZ1N0b3JlO1xuICAgICAgY29uc3QgbmV4dFBhZ2UgPSAocGFnZSB8fCAwKSArIDE7XG5cbiAgICAgIGlmIChuZXh0UGFnZSAmJiBOdW1iZXIobmV4dFBhZ2UpLnZhbHVlT2YoKSA+IE51bWJlcih0b3RhbF9wYWdlcykudmFsdWVPZigpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgYXJndW1lbnRzVmFsdWVbaW5kZXhdID0gYXJndW1lbnRWYWx1ZS5zZXQoJ3BhZ2UnLCBuZXh0UGFnZSk7XG4gICAgICBicmVhaztcblxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1VwZGF0ZUFyZ3VtZW50c1ZhbGVDb25maWcoYXJndW1lbnRzVmFsdWU6IEFycmF5PGFueT4sIG9iamVjdEdldERhdGFVcGRhdGU6IGFueSwgY29uZmlnOiBJR3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWVDb25maWcpIHtcbiAgICBpZiAoIWNvbmZpZyB8fCAhb2JqZWN0R2V0RGF0YVVwZGF0ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5sb2c/LmxvZ0lucHV0cykge1xuICAgICAgY29uc29sZS5sb2coJ2NvbmZpZycsIGNvbmZpZyk7XG4gICAgICBjb25zb2xlLmxvZygnb2JqZWN0R2V0RGF0YVVwZGF0ZScsIG9iamVjdEdldERhdGFVcGRhdGUpO1xuICAgICAgY29uc29sZS5sb2coJ2FyZ3VtZW50c1ZhbHVlJywgYXJndW1lbnRzVmFsdWUpO1xuICAgICAgY29uc29sZS5sb2coJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJyk7XG4gICAgfVxuICAgIGNvbnN0IHsgZmllbGRVcGRhdGUsIGZpZWxkR2V0VmFsdWUsIHByZXByb2Nlc3NvciB9ID0gY29uZmlnO1xuXG4gICAgaWYgKCFmaWVsZFVwZGF0ZSB8fCAhZmllbGRHZXRWYWx1ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWUgPSBnZXQob2JqZWN0R2V0RGF0YVVwZGF0ZSwgZmllbGRHZXRWYWx1ZSk7XG4gICAgaWYgKGNvbmZpZy5sb2c/LmxvZ0dldFZhbHVlKSB7XG4gICAgICBjb25zb2xlLmxvZyhgdmFsdWUgb2Ygb2JqZWN0R2V0RGF0YVVwZGF0ZVske2ZpZWxkR2V0VmFsdWV9XTogYCwgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChwcmVwcm9jZXNzb3IpIHtcbiAgICAgIHZhbHVlID0gcHJlcHJvY2Vzc29yKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGZpZWxkVXBkYXRlKSB7XG4gICAgICBsZXQgcmVzdWx0T2ZGaWVsZFVwZGF0ZSA9IGdldChhcmd1bWVudHNWYWx1ZSwgZmllbGRVcGRhdGUpO1xuXG4gICAgICBpZiAocmVzdWx0T2ZGaWVsZFVwZGF0ZSBpbnN0YW5jZW9mIEh0dHBQYXJhbXMpIHtcbiAgICAgICAgcmVzdWx0T2ZGaWVsZFVwZGF0ZSA9IHJlc3VsdE9mRmllbGRVcGRhdGUuc2V0KChjb25maWcuc3ViRmllbGRVcGRhdGUgfHwgJ3NlYXJjaCcpLCB2YWx1ZSk7XG4gICAgICAgIHNldChhcmd1bWVudHNWYWx1ZSwgZmllbGRVcGRhdGUsIHJlc3VsdE9mRmllbGRVcGRhdGUpO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXN1bHRPZkZpZWxkVXBkYXRlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgcmVzdWx0T2ZGaWVsZFVwZGF0ZS5wdXNoKHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0T2ZGaWVsZFVwZGF0ZSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICBzZXQocmVzdWx0T2ZGaWVsZFVwZGF0ZSwgY29uZmlnLnN1YkZpZWxkVXBkYXRlIHx8ICdzZWFyY2gnLCB2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgc2V0KGFyZ3VtZW50c1ZhbHVlLCBmaWVsZFVwZGF0ZSwgdmFsdWUpO1xuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGZha2VSZXNwb25zZVBhZ2luZ0FwaSgpOiB7IHBhZ2luZzogSVBhZ2luZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnaW5nOiB7XG4gICAgICAgIHBhZ2U6IDAsXG4gICAgICAgIHRvdGFsX3BhZ2VzOiAxLFxuICAgICAgICBiZWZvcmU6ICcnLFxuICAgICAgICBhZnRlcjogJycsXG4gICAgICAgIGZha2U6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpbGQtYXV0by11cGRhdGUtYXJndW1lbnRzLXZhbHVlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvaHR0cC1yZXF1ZXN0L3NyYy9pbnRlcmZhY2VzL2d1aWxkLWF1dG8tdXBkYXRlLWFyZ3VtZW50cy12YWx1ZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGludGVyZmFjZSBJR3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWUge1xuICBwYWdpbmc6IHtcbiAgICBwYWdlPzogSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlQ29uZmlnO1xuICAgIGJlZm9yZT86IElHdWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZUNvbmZpZztcbiAgICBhZnRlcj86IElHdWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZUNvbmZpZztcbiAgfVxuICBzZWFyY2g/OiBJR3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWVDb25maWc7XG4gIHNvcnRPcmRlclR5cGU/OiBJR3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWVDb25maWc7XG4gIHNvcnRPcmRlckJ5PzogSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlQ29uZmlnO1xuICBkZXRhaWxCeUlkPzogSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlQ29uZmlnO1xuICBvdGhlcj86IEFycmF5PElHdWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZUNvbmZpZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlQ29uZmlnIHtcbiAgZmllbGRVcGRhdGU6IHN0cmluZztcbiAgc3ViRmllbGRVcGRhdGU/OiBzdHJpbmc7IC8vIG7hur91IG91dHB1dCBj4bunYSBmaWVsZFVwZGF0ZSBsw6AgbeG7mXQgxJHhu5FpIHTGsOG7o25nIEh0dHBQYXJhbXMuIHhlbSBkZW1vIGxpc3Qtdmlld1xuICBmaWVsZEdldFZhbHVlOiBzdHJpbmc7IC8vIHbhu5tpIHRyxrDhu51uZyBo4bujcCBj4bunYSBkZXRhbEJ5SWQgdsOgIHNlYXJjaCB0aMOsIMSR4buDIHRyxrDhu51uZyBuw6B5IGdpw6EgdHLhu4sgbMOgLiAnJ1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwcmVwcm9jZXNzb3I/OiAodmFsdWU6IGFueSkgPT4gYW55O1xufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpbGQtYXV0by11cGRhdGUtYXJndW1lbnRzLXZhbHVlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvaHR0cC1yZXF1ZXN0L3NyYy9pbnRlcmZhY2VzL2d1aWxkLWF1dG8tdXBkYXRlLWFyZ3VtZW50cy12YWx1ZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGludGVyZmFjZSBJR3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWUge1xuICBwYWdpbmc6IHtcbiAgICBwYWdlPzogSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlQ29uZmlnO1xuICAgIGJlZm9yZT86IElHdWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZUNvbmZpZztcbiAgICBhZnRlcj86IElHdWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZUNvbmZpZztcbiAgfVxuICBzZWFyY2g/OiBJR3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWVDb25maWc7XG4gIHNvcnRPcmRlclR5cGU/OiBJR3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWVDb25maWc7XG4gIHNvcnRPcmRlckJ5PzogSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlQ29uZmlnO1xuICBkZXRhaWxCeUlkPzogSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlQ29uZmlnO1xuICBvdGhlcj86IEFycmF5PElHdWlkZUF1dG9VcGRhdGVBcmd1bWVudHNWYWx1ZUNvbmZpZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUd1aWRlQXV0b1VwZGF0ZUFyZ3VtZW50c1ZhbHVlQ29uZmlnIHtcbiAgZmllbGRVcGRhdGU6IHN0cmluZztcbiAgc3ViRmllbGRVcGRhdGU/OiBzdHJpbmc7IC8vIG7hur91IG91dHB1dCBj4bunYSBmaWVsZFVwZGF0ZSBsw6AgbeG7mXQgxJHhu5FpIHTGsOG7o25nIEh0dHBQYXJhbXMuIHhlbSBkZW1vIGxpc3Qtdmlld1xuICBmaWVsZEdldFZhbHVlOiBzdHJpbmc7IC8vIHbhu5tpIHRyxrDhu51uZyBo4bujcCBj4bunYSBkZXRhbEJ5SWQgdsOgIHNlYXJjaCB0aMOsIMSR4buDIHRyxrDhu51uZyBuw6B5IGdpw6EgdHLhu4sgbMOgLiAnJ1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwcmVwcm9jZXNzb3I/OiAodmFsdWU6IGFueSkgPT4gYW55O1xuICBsb2c/OiB7XG4gICAgbG9nSW5wdXRzPzogYm9vbGVhbjtcbiAgICBsb2dHZXRWYWx1ZT86IGJvb2xlYW47XG4gIH07XG59Il19
@@ -207,11 +207,20 @@ class LibsUiHttpRequestService {
207
207
  if (!config || !objectGetDataUpdate) {
208
208
  return undefined;
209
209
  }
210
+ if (config.log?.logInputs) {
211
+ console.log('config', config);
212
+ console.log('objectGetDataUpdate', objectGetDataUpdate);
213
+ console.log('argumentsValue', argumentsValue);
214
+ console.log('--------------------------------');
215
+ }
210
216
  const { fieldUpdate, fieldGetValue, preprocessor } = config;
211
217
  if (!fieldUpdate || !fieldGetValue) {
212
218
  return undefined;
213
219
  }
214
220
  let value = get(objectGetDataUpdate, fieldGetValue);
221
+ if (config.log?.logGetValue) {
222
+ console.log(`value of objectGetDataUpdate[${fieldGetValue}]: `, value);
223
+ }
215
224
  if (preprocessor) {
216
225
  value = preprocessor(value);
217
226
  }
@@ -382,7 +391,7 @@ const getConfigListDataDemo = (httpParamsDetail = new UtilsHttpParamsRequest(),
382
391
  return obj;
383
392
  });
384
393
  const listService = returnListObject(data);
385
- const detailService = returnDetailObject(httpParamsDetail, data);
394
+ const detailService = returnDetailObject(httpParamsDetail, data, undefined, false, ';');
386
395
  return {
387
396
  list: listService.listPaging,
388
397
  detailByData: detailService.detailByData
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-services-http-request.mjs","sources":["../../../../../libs-ui/services/http-request/src/http-request.service.ts","../../../../../libs-ui/services/http-request/src/api-mockup.ts","../../../../../libs-ui/services/http-request/src/interfaces/http-request-config.interface.ts","../../../../../libs-ui/services/http-request/src/libs-ui-services-http-request.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { IPaging } from '@libs-ui/interfaces-types';\nimport { UtilsCache, get, getKeyCacheByArrayObject, isEmpty, set } from '@libs-ui/utils';\nimport { lastValueFrom } from 'rxjs';\nimport { IGuideAutoUpdateArgumentsValue, IGuideAutoUpdateArgumentsValueConfig, IHttpRequestConfig } from './interfaces/index';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LibsUiHttpRequestService {\n /** Chứa dữ liệu cache memory */\n private serviceStore: Map<string, any>;\n /** Chứa các service common base api */\n private servicesCommon: Record<string, any> = {};\n\n /** Chứa các service call api đến backend */\n private servicesApiModules: Record<string, any> = {};\n\n constructor() {\n this.serviceStore = new Map();\n }\n\n public set ServicesCommon(serviceCommon: Record<string, any>) {\n this.servicesCommon = { ...this.servicesCommon, ...serviceCommon };\n }\n\n public set ServicesApiModules(servicesApiModules: Record<string, any>) {\n this.servicesApiModules = { ...this.servicesApiModules, ...servicesApiModules };\n }\n\n private getServiceByName(name: string): Record<string, any> | undefined {\n if (!name || !name.trim()) {\n return undefined;\n }\n if (name.startsWith('common')) {\n\n if (!this.servicesCommon) {\n throw 'service common is Empty, please inject MoLibsCoreUIHttpRequestService and call ServicesCommon update 1';\n }\n\n return this.servicesCommon[name];\n }\n\n if (name.startsWith('apiModule')) {\n if (!this.servicesApiModules) {\n throw 'service module is Empty, please inject MoLibsCoreUIHttpRequestService and call servicesModules update 2';\n }\n\n return this.servicesApiModules[name];\n }\n\n return undefined;\n }\n\n public refreshAllService() {\n if (!this.servicesApiModules) {\n throw 'service common is Empty, please inject MoLibsCoreUIHttpRequestService and call servicesModules update 3';\n }\n\n Object.keys(this.servicesApiModules).forEach((nameService: string) => (this.servicesApiModules as any)[nameService].refreshAPIUrl && (this.servicesApiModules as any)[nameService].refreshAPIUrl());\n }\n\n public async callApi<T = any>(httpRequestConfig: IHttpRequestConfig): Promise<T> {\n if (!httpRequestConfig || (!httpRequestConfig.serviceName && !httpRequestConfig.serviceOther) || !httpRequestConfig.functionName) {\n throw 'http request config not exactly httpRequestConfig';\n }\n const { serviceName, serviceOther, keyCache, functionName, argumentsValue } = httpRequestConfig;\n\n if (!serviceOther && (!serviceName || !serviceName.trim())) {\n throw 'http request config not exactly serviceInstance';\n }\n const serviceInstance: any = this.getServiceByName(serviceName || '') || serviceOther;\n\n if (!serviceInstance) {\n throw 'http request config not exactly serviceInstance';\n }\n const methodInstance = serviceInstance[functionName];\n\n if (!methodInstance) {\n throw 'http request config not exactly methodInstance';\n }\n const keyCacheMD5: string = getKeyCacheByArrayObject(keyCache || '', argumentsValue);\n const cacheData = await this.getCacheData(httpRequestConfig, keyCacheMD5);\n\n if (cacheData) {\n return Promise.resolve(cacheData);\n }\n\n let callResponse = methodInstance.apply(serviceInstance, argumentsValue);\n if (!callResponse.then) {\n callResponse = lastValueFrom(callResponse);\n }\n\n const res = await callResponse;\n\n return await this.setCacheData(res, httpRequestConfig, keyCacheMD5);\n }\n\n private async getCacheData(httpRequestConfig: IHttpRequestConfig, keyCache: string) {\n const { cacheType, convertResponseData } = httpRequestConfig;\n\n if (!cacheType || !keyCache) {\n return undefined;\n }\n if (cacheType === 'service') {\n const data = this.serviceStore.get(keyCache);\n\n return data ? (convertResponseData ? convertResponseData(data) : data) : data;\n }\n const data = await UtilsCache.GetAsync(keyCache, undefined, true);\n\n return data ? (convertResponseData ? convertResponseData(data) : data) : data;\n }\n\n private async setCacheData(data: any, httpRequestConfig: IHttpRequestConfig, keyCache: string) {\n const { cacheType, clearCache, convertResponseData } = httpRequestConfig;\n\n if (!cacheType || !keyCache) {\n return convertResponseData ? convertResponseData(data) : data;\n }\n if (clearCache === true) {\n this.clearCache(cacheType, keyCache);\n }\n if (cacheType === 'service') {\n this.serviceStore.set(keyCache, data);\n\n return convertResponseData ? convertResponseData(data) : data;\n }\n await UtilsCache.SetAsync(keyCache, data, (httpRequestConfig.timeCache || 5) * 60, true);\n\n return convertResponseData ? convertResponseData(data) : data;\n }\n\n private clearCache(cacheType: 'service' | 'local-store', keyCache: string) {\n if (cacheType === 'service') {\n this.serviceStore.delete(keyCache);\n\n return;\n }\n UtilsCache.ClearAsync(keyCache, true);\n }\n\n /**\n * @return trả về trạng thái đã load hết item chưa (ví dụ: dựa vào tham số này để quyết định có tiếp tục gọi api khi scroll ko) .\n */\n public updateArguments(argumentsValue: Array<any>, objectGetDataUpdate: Record<string, any>, pagingStore: IPaging, keySearch: string, searchOnline: boolean, loadedLastItem: boolean, guideAutoUpdateArgumentsValue?: IGuideAutoUpdateArgumentsValue): boolean {\n if (!argumentsValue || !(argumentsValue instanceof Array) || loadedLastItem) {\n return true;\n }\n\n if (!guideAutoUpdateArgumentsValue) {\n return this.updateArgumentsDefault(argumentsValue, true, pagingStore, keySearch, searchOnline);\n }\n const { paging, search, other, detailById, sortOrderType, sortOrderBy } = guideAutoUpdateArgumentsValue;\n\n if (search) {\n search.fieldGetValue = 'keySearch';\n this.processUpdateArgumentsValeConfig(argumentsValue, { keySearch }, search);\n }\n if (objectGetDataUpdate?.['storeParamsCallApi'] && typeof objectGetDataUpdate?.['storeParamsCallApi'] === 'object' && !(objectGetDataUpdate?.['storeParamsCallApi'] as any).instanceSort) {\n objectGetDataUpdate['storeParamsCallApi'] = { ...objectGetDataUpdate['storeParamsCallApi'], instanceSort: {} };\n }\n if (sortOrderBy) {\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, sortOrderBy);\n }\n if (sortOrderType) {\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, sortOrderType);\n }\n if (other && other.length) {\n other.forEach(config => this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, config));\n }\n if (detailById) {\n detailById.fieldGetValue = detailById.fieldGetValue || detailById.fieldGetValue.trim() || 'key';\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, detailById);\n }\n\n if (isEmpty(paging)) {\n return this.updateArgumentsDefault(argumentsValue, false, pagingStore || this.fakeResponsePagingApi()['paging'], keySearch, searchOnline);\n }\n const { page, before, after } = paging;\n\n if (page && objectGetDataUpdate) {\n page.preprocessor = (value: number): number => {\n\n return ++value;\n };\n const valuePage = +this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, page);\n const valueLastPage = +get(objectGetDataUpdate as any, 'paging.total_pages');\n\n if (valuePage && Number(valuePage).valueOf() > Number(valueLastPage).valueOf() || valueLastPage === 0) {\n return true;\n }\n }\n if (before && objectGetDataUpdate && !this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, before) && !get(objectGetDataUpdate, 'paging.fake')) {\n set(objectGetDataUpdate, 'paging.fake', false);\n\n return true;\n }\n if (after && objectGetDataUpdate && !this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, after) && !get(objectGetDataUpdate, 'paging.fake')) {\n set(objectGetDataUpdate, 'paging.fake', false);\n\n return true;\n }\n\n if (!argumentsValue || !argumentsValue.length) {\n return true;\n }\n\n return false;\n }\n\n private updateArgumentsDefault(argumentsValue: Array<any>, updateSearch: boolean, pagingStore: IPaging, keySearch: string, searchOnline: boolean) {\n if (!argumentsValue || !argumentsValue.length) {\n return true;\n }\n\n for (const index in argumentsValue) {\n let argumentValue = argumentsValue[index];\n\n if (!(argumentValue instanceof HttpParams)) {\n continue;\n }\n const pageValue = argumentValue.get('page');\n\n if (searchOnline && updateSearch) {\n argumentValue = argumentValue.set('search', keySearch);\n argumentsValue[index] = argumentValue;\n }\n if (argumentValue.has('before')) {\n argumentValue = argumentValue.set('before', pagingStore?.before);\n argumentsValue[index] = argumentValue;\n }\n if (argumentValue.has('after')) {\n argumentValue = argumentValue.set('after', pagingStore?.after);\n argumentsValue[index] = argumentValue;\n }\n if (Number(pageValue).valueOf() === -1) {\n return true;\n }\n if (!pagingStore || pageValue === undefined) {\n break;\n }\n\n const { page, total_pages, } = pagingStore;\n const nextPage = (page || 0) + 1;\n\n if (nextPage && Number(nextPage).valueOf() > Number(total_pages).valueOf()) {\n return true;\n }\n argumentsValue[index] = argumentValue.set('page', nextPage);\n break;\n\n }\n\n return false;\n }\n\n private processUpdateArgumentsValeConfig(argumentsValue: Array<any>, objectGetDataUpdate: any, config: IGuideAutoUpdateArgumentsValueConfig) {\n if (!config || !objectGetDataUpdate) {\n return undefined;\n }\n const { fieldUpdate, fieldGetValue, preprocessor } = config;\n\n if (!fieldUpdate || !fieldGetValue) {\n return undefined;\n }\n\n let value = get(objectGetDataUpdate, fieldGetValue);\n\n if (preprocessor) {\n value = preprocessor(value);\n }\n if (fieldUpdate) {\n let resultOfFieldUpdate = get(argumentsValue, fieldUpdate);\n\n if (resultOfFieldUpdate instanceof HttpParams) {\n resultOfFieldUpdate = resultOfFieldUpdate.set((config.subFieldUpdate || 'search'), value);\n set(argumentsValue, fieldUpdate, resultOfFieldUpdate);\n\n return value;\n }\n if (resultOfFieldUpdate instanceof Array) {\n resultOfFieldUpdate.push(value);\n\n return value;\n }\n if (resultOfFieldUpdate instanceof Object) {\n set(resultOfFieldUpdate, config.subFieldUpdate || 'search', value);\n\n return value;\n }\n set(argumentsValue, fieldUpdate, value);\n\n return value;\n }\n\n return value;\n }\n\n public fakeResponsePagingApi(): { paging: IPaging } {\n return {\n paging: {\n page: 0,\n total_pages: 1,\n before: '',\n after: '',\n fake: true\n }\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams } from '@angular/common/http';\nimport { IHttpResponse } from '@libs-ui/interfaces-types';\nimport { UtilsHttpParamsRequest, get, isNil, set } from '@libs-ui/utils';\nimport { Observable, delay, lastValueFrom, of, timer } from 'rxjs';\n\nexport const returnListObject = (data?: Array<any>, functionGetData?: () => Array<any>) => {\n return {\n list: async <TypeResponse>(): Promise<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData();\n }\n await lastValueFrom(timer(250));\n return {\n code: 200,\n data: (data as any) || [],\n paging: {}\n };\n },\n listObservable: <TypeResponse>(): Observable<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData();\n }\n\n return of({\n code: 200,\n data: (data as any) || [],\n paging: {}\n }).pipe(delay(250));\n },\n listPaging: async <TypeResponse>(params: UtilsHttpParamsRequest): Promise<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData();\n }\n const page = parseInt(params.get('page') || '1');\n const per_page = parseInt(params.get('per_page') || '20');\n const total_items = data?.length || 0;\n const total_pages = Math.ceil(total_items / per_page);\n const dataResult = data?.slice((page - 1) * per_page, page * per_page) || [];\n await lastValueFrom(timer(250));\n return {\n code: 200,\n data: (dataResult as any) || [],\n paging: {\n page: page,\n per_page: per_page,\n total_items: total_items,\n total_pages: total_pages\n }\n };\n },\n }\n};\n\n\nexport const returnDetailObject = <TypeResponse, TypeParams = any>(httpParams: UtilsHttpParamsRequest<TypeParams> | HttpParams, data?: Array<any>, functionGetData?: () => Promise<IHttpResponse<TypeResponse>> | Observable<IHttpResponse<TypeResponse>>, ignoreSplit?: boolean, splitOperator?: string) => {\n const keysPrams: any = httpParams.get('keys');\n const fieldKey: string = httpParams.get('fieldKey') || 'id';\n const dataResponseOject: any = httpParams.get('dataResponseOject');\n\n return {\n detailByData: async (keys?: any): Promise<IHttpResponse<TypeResponse>> => {\n return filterData<TypeResponse>(fieldKey, data, keys ?? keysPrams, dataResponseOject, ignoreSplit, splitOperator);\n },\n\n detailByFunction: async (keys?: any): Promise<IHttpResponse<TypeResponse>> => {\n if (!functionGetData) {\n return await filterData<TypeResponse>(fieldKey, undefined, undefined, dataResponseOject, ignoreSplit, splitOperator);\n }\n\n let dataResult: any = functionGetData();\n\n try {\n if (dataResult['subscribe']) {\n dataResult = await lastValueFrom(dataResult);\n }\n if (dataResult['then']) {\n dataResult = await dataResult;\n }\n } catch (_) {\n dataResult = { data: [] };\n }\n\n data = dataResult.data;\n\n return await filterData<TypeResponse>(fieldKey, data, keys || keysPrams, dataResponseOject, ignoreSplit, splitOperator);\n }\n };\n}\n\nconst filterData = <TypeResponse>(fieldKey: string, data?: Array<any>, keys?: any, dataResponseOject?: boolean, ignoreSplit?: boolean, splitOperator?: string): IHttpResponse<TypeResponse> => {\n if (!data || typeof data !== 'object' || isNil(keys) || keys === '') {\n return {\n code: 200,\n data: undefined,\n paging: {}\n };\n }\n\n data = data || [];\n\n if (!(data instanceof Array)) {\n data = [data];\n }\n const result: any = [];\n\n if (!ignoreSplit && typeof keys === 'string') {\n keys = keys.split(splitOperator || ',');\n }\n\n if (typeof keys === 'number' || typeof keys === 'boolean' || (typeof keys === 'string' && ignoreSplit)) {\n keys = [keys];\n }\n\n keys.forEach((key: string) => {\n const resultFilter = data?.filter((elData: { [key: string]: any }) => get(elData, fieldKey) === key);\n\n if (resultFilter && resultFilter.length) {\n result.push(...resultFilter);\n }\n });\n\n return {\n code: 200,\n data: result.length ? (dataResponseOject ? result[0] : result) : undefined,\n paging: {}\n };\n}\n\nconst per_page = 20;\nconst total_items = (per_page * 150) + 15;\n\n\nexport const getConfigListDataDemo = (httpParamsDetail: UtilsHttpParamsRequest<any> = new UtilsHttpParamsRequest(), objectData?: Record<string, string>, functionBuildObject?: (numIncrement: string) => Record<string, string>) => {\n if (!objectData) {\n objectData = {\n id: '',\n name: 'name test '\n }\n }\n\n const data = [...Array(total_items).keys()].map((_, index) => {\n\n if (functionBuildObject) {\n return functionBuildObject(`${+index + 1}`)\n }\n const obj = {};\n Object.keys(objectData).forEach(key => {\n set(obj, key, `${objectData[key]}${+index + 1}`);\n })\n return obj;\n });\n\n const listService = returnListObject(data);\n const detailService = returnDetailObject(httpParamsDetail,data);\n return {\n list: listService.listPaging,\n detailByData: detailService.detailByData\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { IGuideAutoUpdateArgumentsValue } from \"./guild-auto-update-arguments-value.interface\";\n\nexport interface IHttpRequestConfig {\n serviceOther?: any; // là 1 object không được inject trong httpRequest; được sử dụng để lấy data từ 1 đối tượng không phải là service inject\n serviceName?: string; // tên service được inject trong http request service;\n functionName: string; // tên hàm muốn gọi trong service\n argumentsValue: Array<any>;// chứa dữ liệu của params truyền vào, mảng có kểu dữ liệu không cần giống nhau vd: hàm function(search:string,age:number,page:Object)={...} thì serviceSpecificParams = ['param',16,{page:1,page:per_page:25}]\n cacheType?: 'service' | 'local-store';\n keyCache?: string; // sử dụng nếu sử dụng cache. khi tạo bộ config sử dụng đối tượng uuid để lấy một id set vào biến này. và biến này sẽ ko thay đổi trong quá trình sử dụng\n timeCache?: number; // đơn vị phút\n clearCache?: boolean;\n guideAutoUpdateArgumentsValue?: IGuideAutoUpdateArgumentsValue; // khai báo không sử dụng cho HttpRequestService. Dùng cho cá component muốn lấy thông tin update arguments để load more khi scroll bottom. Ví dụ như MoLibShareComponentsListViewTemplatesComponentAbstract\n convertResponseData?: (response: any) => any;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-services-http-request.mjs","sources":["../../../../../libs-ui/services/http-request/src/http-request.service.ts","../../../../../libs-ui/services/http-request/src/api-mockup.ts","../../../../../libs-ui/services/http-request/src/interfaces/http-request-config.interface.ts","../../../../../libs-ui/services/http-request/src/libs-ui-services-http-request.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { IPaging } from '@libs-ui/interfaces-types';\nimport { UtilsCache, get, getKeyCacheByArrayObject, isEmpty, set } from '@libs-ui/utils';\nimport { lastValueFrom } from 'rxjs';\nimport { IGuideAutoUpdateArgumentsValue, IGuideAutoUpdateArgumentsValueConfig, IHttpRequestConfig } from './interfaces/index';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LibsUiHttpRequestService {\n /** Chứa dữ liệu cache memory */\n private serviceStore: Map<string, any>;\n /** Chứa các service common base api */\n private servicesCommon: Record<string, any> = {};\n\n /** Chứa các service call api đến backend */\n private servicesApiModules: Record<string, any> = {};\n\n constructor() {\n this.serviceStore = new Map();\n }\n\n public set ServicesCommon(serviceCommon: Record<string, any>) {\n this.servicesCommon = { ...this.servicesCommon, ...serviceCommon };\n }\n\n public set ServicesApiModules(servicesApiModules: Record<string, any>) {\n this.servicesApiModules = { ...this.servicesApiModules, ...servicesApiModules };\n }\n\n private getServiceByName(name: string): Record<string, any> | undefined {\n if (!name || !name.trim()) {\n return undefined;\n }\n if (name.startsWith('common')) {\n\n if (!this.servicesCommon) {\n throw 'service common is Empty, please inject MoLibsCoreUIHttpRequestService and call ServicesCommon update 1';\n }\n\n return this.servicesCommon[name];\n }\n\n if (name.startsWith('apiModule')) {\n if (!this.servicesApiModules) {\n throw 'service module is Empty, please inject MoLibsCoreUIHttpRequestService and call servicesModules update 2';\n }\n\n return this.servicesApiModules[name];\n }\n\n return undefined;\n }\n\n public refreshAllService() {\n if (!this.servicesApiModules) {\n throw 'service common is Empty, please inject MoLibsCoreUIHttpRequestService and call servicesModules update 3';\n }\n\n Object.keys(this.servicesApiModules).forEach((nameService: string) => (this.servicesApiModules as any)[nameService].refreshAPIUrl && (this.servicesApiModules as any)[nameService].refreshAPIUrl());\n }\n\n public async callApi<T = any>(httpRequestConfig: IHttpRequestConfig): Promise<T> {\n if (!httpRequestConfig || (!httpRequestConfig.serviceName && !httpRequestConfig.serviceOther) || !httpRequestConfig.functionName) {\n throw 'http request config not exactly httpRequestConfig';\n }\n const { serviceName, serviceOther, keyCache, functionName, argumentsValue } = httpRequestConfig;\n\n if (!serviceOther && (!serviceName || !serviceName.trim())) {\n throw 'http request config not exactly serviceInstance';\n }\n const serviceInstance: any = this.getServiceByName(serviceName || '') || serviceOther;\n\n if (!serviceInstance) {\n throw 'http request config not exactly serviceInstance';\n }\n const methodInstance = serviceInstance[functionName];\n\n if (!methodInstance) {\n throw 'http request config not exactly methodInstance';\n }\n const keyCacheMD5: string = getKeyCacheByArrayObject(keyCache || '', argumentsValue);\n const cacheData = await this.getCacheData(httpRequestConfig, keyCacheMD5);\n\n if (cacheData) {\n return Promise.resolve(cacheData);\n }\n\n let callResponse = methodInstance.apply(serviceInstance, argumentsValue);\n if (!callResponse.then) {\n callResponse = lastValueFrom(callResponse);\n }\n\n const res = await callResponse;\n\n return await this.setCacheData(res, httpRequestConfig, keyCacheMD5);\n }\n\n private async getCacheData(httpRequestConfig: IHttpRequestConfig, keyCache: string) {\n const { cacheType, convertResponseData } = httpRequestConfig;\n\n if (!cacheType || !keyCache) {\n return undefined;\n }\n if (cacheType === 'service') {\n const data = this.serviceStore.get(keyCache);\n\n return data ? (convertResponseData ? convertResponseData(data) : data) : data;\n }\n const data = await UtilsCache.GetAsync(keyCache, undefined, true);\n\n return data ? (convertResponseData ? convertResponseData(data) : data) : data;\n }\n\n private async setCacheData(data: any, httpRequestConfig: IHttpRequestConfig, keyCache: string) {\n const { cacheType, clearCache, convertResponseData } = httpRequestConfig;\n\n if (!cacheType || !keyCache) {\n return convertResponseData ? convertResponseData(data) : data;\n }\n if (clearCache === true) {\n this.clearCache(cacheType, keyCache);\n }\n if (cacheType === 'service') {\n this.serviceStore.set(keyCache, data);\n\n return convertResponseData ? convertResponseData(data) : data;\n }\n await UtilsCache.SetAsync(keyCache, data, (httpRequestConfig.timeCache || 5) * 60, true);\n\n return convertResponseData ? convertResponseData(data) : data;\n }\n\n private clearCache(cacheType: 'service' | 'local-store', keyCache: string) {\n if (cacheType === 'service') {\n this.serviceStore.delete(keyCache);\n\n return;\n }\n UtilsCache.ClearAsync(keyCache, true);\n }\n\n /**\n * @return trả về trạng thái đã load hết item chưa (ví dụ: dựa vào tham số này để quyết định có tiếp tục gọi api khi scroll ko) .\n */\n public updateArguments(argumentsValue: Array<any>, objectGetDataUpdate: Record<string, any>, pagingStore: IPaging, keySearch: string, searchOnline: boolean, loadedLastItem: boolean, guideAutoUpdateArgumentsValue?: IGuideAutoUpdateArgumentsValue): boolean {\n if (!argumentsValue || !(argumentsValue instanceof Array) || loadedLastItem) {\n return true;\n }\n\n if (!guideAutoUpdateArgumentsValue) {\n return this.updateArgumentsDefault(argumentsValue, true, pagingStore, keySearch, searchOnline);\n }\n const { paging, search, other, detailById, sortOrderType, sortOrderBy } = guideAutoUpdateArgumentsValue;\n\n if (search) {\n search.fieldGetValue = 'keySearch';\n this.processUpdateArgumentsValeConfig(argumentsValue, { keySearch }, search);\n }\n if (objectGetDataUpdate?.['storeParamsCallApi'] && typeof objectGetDataUpdate?.['storeParamsCallApi'] === 'object' && !(objectGetDataUpdate?.['storeParamsCallApi'] as any).instanceSort) {\n objectGetDataUpdate['storeParamsCallApi'] = { ...objectGetDataUpdate['storeParamsCallApi'], instanceSort: {} };\n }\n if (sortOrderBy) {\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, sortOrderBy);\n }\n if (sortOrderType) {\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, sortOrderType);\n }\n if (other && other.length) {\n other.forEach(config => this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, config));\n }\n if (detailById) {\n detailById.fieldGetValue = detailById.fieldGetValue || detailById.fieldGetValue.trim() || 'key';\n this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, detailById);\n }\n\n if (isEmpty(paging)) {\n return this.updateArgumentsDefault(argumentsValue, false, pagingStore || this.fakeResponsePagingApi()['paging'], keySearch, searchOnline);\n }\n const { page, before, after } = paging;\n\n if (page && objectGetDataUpdate) {\n page.preprocessor = (value: number): number => {\n\n return ++value;\n };\n const valuePage = +this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, page);\n const valueLastPage = +get(objectGetDataUpdate as any, 'paging.total_pages');\n\n if (valuePage && Number(valuePage).valueOf() > Number(valueLastPage).valueOf() || valueLastPage === 0) {\n return true;\n }\n }\n if (before && objectGetDataUpdate && !this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, before) && !get(objectGetDataUpdate, 'paging.fake')) {\n set(objectGetDataUpdate, 'paging.fake', false);\n\n return true;\n }\n if (after && objectGetDataUpdate && !this.processUpdateArgumentsValeConfig(argumentsValue, objectGetDataUpdate, after) && !get(objectGetDataUpdate, 'paging.fake')) {\n set(objectGetDataUpdate, 'paging.fake', false);\n\n return true;\n }\n\n if (!argumentsValue || !argumentsValue.length) {\n return true;\n }\n\n return false;\n }\n\n private updateArgumentsDefault(argumentsValue: Array<any>, updateSearch: boolean, pagingStore: IPaging, keySearch: string, searchOnline: boolean) {\n if (!argumentsValue || !argumentsValue.length) {\n return true;\n }\n\n for (const index in argumentsValue) {\n let argumentValue = argumentsValue[index];\n\n if (!(argumentValue instanceof HttpParams)) {\n continue;\n }\n const pageValue = argumentValue.get('page');\n\n if (searchOnline && updateSearch) {\n argumentValue = argumentValue.set('search', keySearch);\n argumentsValue[index] = argumentValue;\n }\n if (argumentValue.has('before')) {\n argumentValue = argumentValue.set('before', pagingStore?.before);\n argumentsValue[index] = argumentValue;\n }\n if (argumentValue.has('after')) {\n argumentValue = argumentValue.set('after', pagingStore?.after);\n argumentsValue[index] = argumentValue;\n }\n if (Number(pageValue).valueOf() === -1) {\n return true;\n }\n if (!pagingStore || pageValue === undefined) {\n break;\n }\n\n const { page, total_pages, } = pagingStore;\n const nextPage = (page || 0) + 1;\n\n if (nextPage && Number(nextPage).valueOf() > Number(total_pages).valueOf()) {\n return true;\n }\n argumentsValue[index] = argumentValue.set('page', nextPage);\n break;\n\n }\n\n return false;\n }\n\n private processUpdateArgumentsValeConfig(argumentsValue: Array<any>, objectGetDataUpdate: any, config: IGuideAutoUpdateArgumentsValueConfig) {\n if (!config || !objectGetDataUpdate) {\n return undefined;\n }\n if (config.log?.logInputs) {\n console.log('config', config);\n console.log('objectGetDataUpdate', objectGetDataUpdate);\n console.log('argumentsValue', argumentsValue);\n console.log('--------------------------------');\n }\n const { fieldUpdate, fieldGetValue, preprocessor } = config;\n\n if (!fieldUpdate || !fieldGetValue) {\n return undefined;\n }\n\n let value = get(objectGetDataUpdate, fieldGetValue);\n if (config.log?.logGetValue) {\n console.log(`value of objectGetDataUpdate[${fieldGetValue}]: `, value);\n }\n\n if (preprocessor) {\n value = preprocessor(value);\n }\n if (fieldUpdate) {\n let resultOfFieldUpdate = get(argumentsValue, fieldUpdate);\n\n if (resultOfFieldUpdate instanceof HttpParams) {\n resultOfFieldUpdate = resultOfFieldUpdate.set((config.subFieldUpdate || 'search'), value);\n set(argumentsValue, fieldUpdate, resultOfFieldUpdate);\n\n return value;\n }\n if (resultOfFieldUpdate instanceof Array) {\n resultOfFieldUpdate.push(value);\n\n return value;\n }\n if (resultOfFieldUpdate instanceof Object) {\n set(resultOfFieldUpdate, config.subFieldUpdate || 'search', value);\n\n return value;\n }\n set(argumentsValue, fieldUpdate, value);\n\n return value;\n }\n\n return value;\n }\n\n public fakeResponsePagingApi(): { paging: IPaging } {\n return {\n paging: {\n page: 0,\n total_pages: 1,\n before: '',\n after: '',\n fake: true\n }\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams } from '@angular/common/http';\nimport { IHttpResponse } from '@libs-ui/interfaces-types';\nimport { UtilsHttpParamsRequest, get, isNil, set } from '@libs-ui/utils';\nimport { Observable, delay, lastValueFrom, of, timer } from 'rxjs';\n\nexport const returnListObject = (data?: Array<any>, functionGetData?: () => Array<any>) => {\n return {\n list: async <TypeResponse>(): Promise<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData();\n }\n await lastValueFrom(timer(250));\n return {\n code: 200,\n data: (data as any) || [],\n paging: {}\n };\n },\n listObservable: <TypeResponse>(): Observable<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData();\n }\n\n return of({\n code: 200,\n data: (data as any) || [],\n paging: {}\n }).pipe(delay(250));\n },\n listPaging: async <TypeResponse>(params: UtilsHttpParamsRequest): Promise<IHttpResponse<TypeResponse>> => {\n if (functionGetData) {\n data = functionGetData();\n }\n const page = parseInt(params.get('page') || '1');\n const per_page = parseInt(params.get('per_page') || '20');\n const total_items = data?.length || 0;\n const total_pages = Math.ceil(total_items / per_page);\n const dataResult = data?.slice((page - 1) * per_page, page * per_page) || [];\n await lastValueFrom(timer(250));\n return {\n code: 200,\n data: (dataResult as any) || [],\n paging: {\n page: page,\n per_page: per_page,\n total_items: total_items,\n total_pages: total_pages\n }\n };\n },\n }\n};\n\n\nexport const returnDetailObject = <TypeResponse, TypeParams = any>(httpParams: UtilsHttpParamsRequest<TypeParams> | HttpParams, data?: Array<any>, functionGetData?: () => Promise<IHttpResponse<TypeResponse>> | Observable<IHttpResponse<TypeResponse>>, ignoreSplit?: boolean, splitOperator?: string) => {\n const keysPrams: any = httpParams.get('keys');\n const fieldKey: string = httpParams.get('fieldKey') || 'id';\n const dataResponseOject: any = httpParams.get('dataResponseOject');\n\n return {\n detailByData: async (keys?: any): Promise<IHttpResponse<TypeResponse>> => {\n return filterData<TypeResponse>(fieldKey, data, keys ?? keysPrams, dataResponseOject, ignoreSplit, splitOperator);\n },\n\n detailByFunction: async (keys?: any): Promise<IHttpResponse<TypeResponse>> => {\n if (!functionGetData) {\n return await filterData<TypeResponse>(fieldKey, undefined, undefined, dataResponseOject, ignoreSplit, splitOperator);\n }\n\n let dataResult: any = functionGetData();\n\n try {\n if (dataResult['subscribe']) {\n dataResult = await lastValueFrom(dataResult);\n }\n if (dataResult['then']) {\n dataResult = await dataResult;\n }\n } catch (_) {\n dataResult = { data: [] };\n }\n\n data = dataResult.data;\n\n return await filterData<TypeResponse>(fieldKey, data, keys || keysPrams, dataResponseOject, ignoreSplit, splitOperator);\n }\n };\n}\n\nconst filterData = <TypeResponse>(fieldKey: string, data?: Array<any>, keys?: any, dataResponseOject?: boolean, ignoreSplit?: boolean, splitOperator?: string): IHttpResponse<TypeResponse> => {\n if (!data || typeof data !== 'object' || isNil(keys) || keys === '') {\n return {\n code: 200,\n data: undefined,\n paging: {}\n };\n }\n\n data = data || [];\n\n if (!(data instanceof Array)) {\n data = [data];\n }\n const result: any = [];\n\n if (!ignoreSplit && typeof keys === 'string') {\n keys = keys.split(splitOperator || ',');\n }\n\n if (typeof keys === 'number' || typeof keys === 'boolean' || (typeof keys === 'string' && ignoreSplit)) {\n keys = [keys];\n }\n\n keys.forEach((key: string) => {\n const resultFilter = data?.filter((elData: { [key: string]: any }) => get(elData, fieldKey) === key);\n\n if (resultFilter && resultFilter.length) {\n result.push(...resultFilter);\n }\n });\n\n return {\n code: 200,\n data: result.length ? (dataResponseOject ? result[0] : result) : undefined,\n paging: {}\n };\n}\n\nconst per_page = 20;\nconst total_items = (per_page * 150) + 15;\n\n\nexport const getConfigListDataDemo = (httpParamsDetail: UtilsHttpParamsRequest<any> = new UtilsHttpParamsRequest(), objectData?: Record<string, string>, functionBuildObject?: (numIncrement: string) => Record<string, string>) => {\n if (!objectData) {\n objectData = {\n id: '',\n name: 'name test '\n }\n }\n\n const data = [...Array(total_items).keys()].map((_, index) => {\n\n if (functionBuildObject) {\n return functionBuildObject(`${+index + 1}`)\n }\n const obj = {};\n Object.keys(objectData).forEach(key => {\n set(obj, key, `${objectData[key]}${+index + 1}`);\n })\n return obj;\n });\n\n const listService = returnListObject(data);\n const detailService = returnDetailObject(httpParamsDetail, data, undefined, false, ';');\n return {\n list: listService.listPaging,\n detailByData: detailService.detailByData\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { IGuideAutoUpdateArgumentsValue } from \"./guild-auto-update-arguments-value.interface\";\n\nexport interface IHttpRequestConfig {\n serviceOther?: any; // là 1 object không được inject trong httpRequest; được sử dụng để lấy data từ 1 đối tượng không phải là service inject\n serviceName?: string; // tên service được inject trong http request service;\n functionName: string; // tên hàm muốn gọi trong service\n argumentsValue: Array<any>;// chứa dữ liệu của params truyền vào, mảng có kểu dữ liệu không cần giống nhau vd: hàm function(search:string,age:number,page:Object)={...} thì serviceSpecificParams = ['param',16,{page:1,page:per_page:25}]\n cacheType?: 'service' | 'local-store';\n keyCache?: string; // sử dụng nếu sử dụng cache. khi tạo bộ config sử dụng đối tượng uuid để lấy một id set vào biến này. và biến này sẽ ko thay đổi trong quá trình sử dụng\n timeCache?: number; // đơn vị phút\n clearCache?: boolean;\n guideAutoUpdateArgumentsValue?: IGuideAutoUpdateArgumentsValue; // khai báo không sử dụng cho HttpRequestService. Dùng cho cá component muốn lấy thông tin update arguments để load more khi scroll bottom. Ví dụ như MoLibShareComponentsListViewTemplatesComponentAbstract\n convertResponseData?: (response: any) => any;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -15,4 +15,8 @@ export interface IGuideAutoUpdateArgumentsValueConfig {
15
15
  subFieldUpdate?: string;
16
16
  fieldGetValue: string;
17
17
  preprocessor?: (value: any) => any;
18
+ log?: {
19
+ logInputs?: boolean;
20
+ logGetValue?: boolean;
21
+ };
18
22
  }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@libs-ui/services-http-request",
3
- "version": "0.2.191",
3
+ "version": "0.2.193",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0",
7
- "@libs-ui/interfaces-types": "^0.2.191",
8
- "@libs-ui/utils": "^0.2.191",
7
+ "@libs-ui/interfaces-types": "^0.2.193",
8
+ "@libs-ui/utils": "^0.2.193",
9
9
  "rxjs": "~7.8.0"
10
10
  },
11
11
  "sideEffects": false,