kwikid-forms 0.6.35 → 0.6.36

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.
@@ -1,4 +1,3 @@
1
- import { TuiDay } from "@taiga-ui/cdk";
2
1
  import { checkObjectKeyExists, isObject } from "kwikid-toolkit";
3
2
  import { convertFormFieldTypeDateToKwikUIFormat } from "../form-view/helpers/form-view.fields.helper";
4
3
  export const getFormFields = (formConfig) => {
@@ -29,21 +28,26 @@ export const setFieldAsFormElement = (field, value) => {
29
28
  };
30
29
  export const getMinDate = (field) => {
31
30
  if (checkObjectKeyExists(field, "min")) {
31
+ /**
32
+ * This is to handler old version of config.
33
+ * Please don't add "min" at field level, add it insider field.properties only.
34
+ */
32
35
  return convertFormFieldTypeDateToKwikUIFormat(field["min"]);
33
36
  }
34
37
  else {
35
- return new TuiDay(0, 0, 1); // Year - 0000, Month - 0 (0 Indexing), Day - 1
38
+ return {};
36
39
  }
37
40
  };
38
41
  export const getMaxDate = (field) => {
39
42
  if (checkObjectKeyExists(field, "max")) {
43
+ /**
44
+ * This is to handler old version of config.
45
+ * Please don't add "max" at field level, add it insider field.properties only.
46
+ */
40
47
  return convertFormFieldTypeDateToKwikUIFormat(field["max"]);
41
48
  }
42
49
  else {
43
- return new TuiDay(new Date().getFullYear(), // Year - 9999
44
- new Date().getMonth(), // Month - 11 (0 Indexing)
45
- new Date().getDate() // Day - 31
46
- );
50
+ return {};
47
51
  }
48
52
  };
49
53
  export const updateLanguage = (object, language) => {
@@ -61,4 +65,4 @@ export const getLanguage = () => {
61
65
  var _a, _b, _c, _d, _e, _f;
62
66
  return ((_f = (_e = (_d = (_c = (_b = (_a = localStorage.getItem("lng")) !== null && _a !== void 0 ? _a : localStorage.getItem("lang")) !== null && _b !== void 0 ? _b : localStorage.getItem("Lang")) !== null && _c !== void 0 ? _c : localStorage.getItem("language")) !== null && _d !== void 0 ? _d : localStorage.getItem("currentLang")) !== null && _e !== void 0 ? _e : localStorage.getItem("selectedLang")) !== null && _f !== void 0 ? _f : "en");
63
67
  };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9jb25maWctY29udmVydGVyL2NvbmZpZy1jb252ZXJ0ZXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXRHLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLFVBQWUsRUFBUyxFQUFFO0lBQ3RELElBQUksTUFBTSxHQUFVLEVBQUUsQ0FBQztJQUV2QixJQUFJLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsRUFBRTtRQUNqRCxNQUFNLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7S0FDdEM7U0FBTSxJQUFJLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTtRQUNyRCxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztLQUM1QjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQ3JDLEtBQVUsRUFDVixHQUFXLEVBQ1gsS0FBVSxFQUNMLEVBQUU7SUFDUCxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ3JDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7S0FDcEI7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBVSxFQUFFLEdBQVcsRUFBRSxLQUFVLEVBQU8sRUFBRTtJQUMzRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBRW5CLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFVLEVBQU8sRUFBRTtJQUNuRCxPQUFPLHVCQUF1QixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFVLEVBQUUsS0FBYyxFQUFPLEVBQUU7SUFDdkUsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQVUsRUFBTyxFQUFFO0lBQzVDLElBQUksb0JBQW9CLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ3RDLE9BQU8sc0NBQXNDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDN0Q7U0FBTTtRQUNMLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLCtDQUErQztLQUM1RTtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQVUsRUFBTyxFQUFFO0lBQzVDLElBQUksb0JBQW9CLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ3RDLE9BQU8sc0NBQXNDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDN0Q7U0FBTTtRQUNMLE9BQU8sSUFBSSxNQUFNLENBQ2YsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxjQUFjO1FBQ3hDLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsMEJBQTBCO1FBQ2pELElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVztTQUNqQyxDQUFDO0tBQ0g7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFXLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQzlELElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3BCLElBQUksUUFBUSxJQUFJLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRTtZQUN0RCxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNCO2FBQU07WUFDTCxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFOztJQUM5QixPQUFPLENBQ0wsTUFBQSxNQUFBLE1BQUEsTUFBQSxNQUFBLE1BQUEsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUNBQzNCLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLG1DQUM1QixZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQ0FDNUIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsbUNBQ2hDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLG1DQUNuQyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxtQ0FDcEMsSUFBSSxDQUNMLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUdWlEYXkgfSBmcm9tIFwiQHRhaWdhLXVpL2Nka1wiO1xuaW1wb3J0IHsgY2hlY2tPYmplY3RLZXlFeGlzdHMsIGlzT2JqZWN0IH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBjb252ZXJ0Rm9ybUZpZWxkVHlwZURhdGVUb0t3aWtVSUZvcm1hdCB9IGZyb20gXCIuLi9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlclwiO1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9ybUZpZWxkcyA9IChmb3JtQ29uZmlnOiBhbnkpOiBhbnlbXSA9PiB7XG4gIGxldCBmaWVsZHM6IGFueVtdID0gW107XG5cbiAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm1Db25maWcsIFwibXVsdGlGb3JtXCIpKSB7XG4gICAgZmllbGRzID0gZm9ybUNvbmZpZy5tdWx0aUZvcm0uZmllbGRzO1xuICB9IGVsc2UgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm1Db25maWcsIFwiZmllbGRzXCIpKSB7XG4gICAgZmllbGRzID0gZm9ybUNvbmZpZy5maWVsZHM7XG4gIH1cblxuICByZXR1cm4gZmllbGRzO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldE1pc3NpbmdGaWVsZEtleVZhbHVlID0gKFxuICBmaWVsZDogYW55LFxuICBrZXk6IHN0cmluZyxcbiAgdmFsdWU6IGFueVxuKTogYW55ID0+IHtcbiAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwga2V5KSkge1xuICAgIGZpZWxkW2tleV0gPSB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0RmllbGRLZXlWYWx1ZSA9IChmaWVsZDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSA9PiB7XG4gIGZpZWxkW2tleV0gPSB2YWx1ZTtcblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0RmllbGRLZXlIaWRkZW4gPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gIHJldHVybiBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldEZpZWxkQXNGb3JtRWxlbWVudCA9IChmaWVsZDogYW55LCB2YWx1ZTogYm9vbGVhbik6IGFueSA9PiB7XG4gIHJldHVybiBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImlzRm9ybUVsZW1lbnRcIiwgdmFsdWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1pbkRhdGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtaW5cIikpIHtcbiAgICByZXR1cm4gY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQoZmllbGRbXCJtaW5cIl0pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgVHVpRGF5KDAsIDAsIDEpOyAvLyBZZWFyIC0gMDAwMCwgTW9udGggLSAwICgwIEluZGV4aW5nKSwgRGF5IC0gMVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWF4RGF0ZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heFwiKSkge1xuICAgIHJldHVybiBjb252ZXJ0Rm9ybUZpZWxkVHlwZURhdGVUb0t3aWtVSUZvcm1hdChmaWVsZFtcIm1heFwiXSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBUdWlEYXkoXG4gICAgICBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksIC8vIFllYXIgLSA5OTk5XG4gICAgICBuZXcgRGF0ZSgpLmdldE1vbnRoKCksIC8vIE1vbnRoIC0gMTEgKDAgSW5kZXhpbmcpXG4gICAgICBuZXcgRGF0ZSgpLmdldERhdGUoKSAvLyBEYXkgLSAzMVxuICAgICk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVMYW5ndWFnZSA9IChvYmplY3Q6IGFueSwgbGFuZ3VhZ2U6IHN0cmluZykgPT4ge1xuICBpZiAoaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIGlmIChsYW5ndWFnZSAmJiBjaGVja09iamVjdEtleUV4aXN0cyhvYmplY3QsIGxhbmd1YWdlKSkge1xuICAgICAgb2JqZWN0ID0gb2JqZWN0W2xhbmd1YWdlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0ID0gb2JqZWN0W1wiZW5cIl07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG9iamVjdDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMYW5ndWFnZSA9ICgpID0+IHtcbiAgcmV0dXJuIChcbiAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxuZ1wiKSA/P1xuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ1wiKSA/P1xuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiTGFuZ1wiKSA/P1xuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikgPz9cbiAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImN1cnJlbnRMYW5nXCIpID8/XG4gICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJzZWxlY3RlZExhbmdcIikgPz9cbiAgICBcImVuXCJcbiAgKTtcbn07XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9jb25maWctY29udmVydGVyL2NvbmZpZy1jb252ZXJ0ZXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV0RyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUFlLEVBQVMsRUFBRTtJQUN0RCxJQUFJLE1BQU0sR0FBVSxFQUFFLENBQUM7SUFFdkIsSUFBSSxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLEVBQUU7UUFDakQsTUFBTSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0tBQ3RDO1NBQU0sSUFBSSxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7UUFDckQsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7S0FDNUI7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUNyQyxLQUFVLEVBQ1YsR0FBVyxFQUNYLEtBQVUsRUFDTCxFQUFFO0lBQ1AsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNyQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0tBQ3BCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQVUsRUFBRSxHQUFXLEVBQUUsS0FBVSxFQUFPLEVBQUU7SUFDM0UsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUVuQixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBVSxFQUFPLEVBQUU7SUFDbkQsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBVSxFQUFFLEtBQWMsRUFBTyxFQUFFO0lBQ3ZFLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFVLEVBQU8sRUFBRTtJQUM1QyxJQUFJLG9CQUFvQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtRQUN0Qzs7O1dBR0c7UUFFSCxPQUFPLHNDQUFzQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQzdEO1NBQU07UUFDTCxPQUFPLEVBQUUsQ0FBQztLQUNYO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBVSxFQUFPLEVBQUU7SUFDNUMsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDdEM7OztXQUdHO1FBRUgsT0FBTyxzQ0FBc0MsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUM3RDtTQUFNO1FBQ0wsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQVcsRUFBRSxRQUFnQixFQUFFLEVBQUU7SUFDOUQsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDcEIsSUFBSSxRQUFRLElBQUksb0JBQW9CLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ3RELE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDM0I7YUFBTTtZQUNMLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUU7O0lBQzlCLE9BQU8sQ0FDTCxNQUFBLE1BQUEsTUFBQSxNQUFBLE1BQUEsTUFBQSxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FDM0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsbUNBQzVCLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLG1DQUM1QixZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxtQ0FDaEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsbUNBQ25DLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLG1DQUNwQyxJQUFJLENBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNoZWNrT2JqZWN0S2V5RXhpc3RzLCBpc09iamVjdCB9IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQgfSBmcm9tIFwiLi4vZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmZpZWxkcy5oZWxwZXJcIjtcblxuZXhwb3J0IGNvbnN0IGdldEZvcm1GaWVsZHMgPSAoZm9ybUNvbmZpZzogYW55KTogYW55W10gPT4ge1xuICBsZXQgZmllbGRzOiBhbnlbXSA9IFtdO1xuXG4gIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtQ29uZmlnLCBcIm11bHRpRm9ybVwiKSkge1xuICAgIGZpZWxkcyA9IGZvcm1Db25maWcubXVsdGlGb3JtLmZpZWxkcztcbiAgfSBlbHNlIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtQ29uZmlnLCBcImZpZWxkc1wiKSkge1xuICAgIGZpZWxkcyA9IGZvcm1Db25maWcuZmllbGRzO1xuICB9XG5cbiAgcmV0dXJuIGZpZWxkcztcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZSA9IChcbiAgZmllbGQ6IGFueSxcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBhbnlcbik6IGFueSA9PiB7XG4gIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIGtleSkpIHtcbiAgICBmaWVsZFtrZXldID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGZpZWxkO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldEZpZWxkS2V5VmFsdWUgPSAoZmllbGQ6IGFueSwga2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBhbnkgPT4ge1xuICBmaWVsZFtrZXldID0gdmFsdWU7XG5cbiAgcmV0dXJuIGZpZWxkO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldEZpZWxkS2V5SGlkZGVuID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICByZXR1cm4gc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRGaWVsZEFzRm9ybUVsZW1lbnQgPSAoZmllbGQ6IGFueSwgdmFsdWU6IGJvb2xlYW4pOiBhbnkgPT4ge1xuICByZXR1cm4gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJpc0Zvcm1FbGVtZW50XCIsIHZhbHVlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNaW5EYXRlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWluXCIpKSB7XG4gICAgLyoqXG4gICAgICogVGhpcyBpcyB0byBoYW5kbGVyIG9sZCB2ZXJzaW9uIG9mIGNvbmZpZy5cbiAgICAgKiAgUGxlYXNlIGRvbid0IGFkZCBcIm1pblwiIGF0IGZpZWxkIGxldmVsLCBhZGQgaXQgaW5zaWRlciBmaWVsZC5wcm9wZXJ0aWVzIG9ubHkuXG4gICAgICovXG5cbiAgICByZXR1cm4gY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQoZmllbGRbXCJtaW5cIl0pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7fTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldE1heERhdGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtYXhcIikpIHtcbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIHRvIGhhbmRsZXIgb2xkIHZlcnNpb24gb2YgY29uZmlnLlxuICAgICAqICBQbGVhc2UgZG9uJ3QgYWRkIFwibWF4XCIgYXQgZmllbGQgbGV2ZWwsIGFkZCBpdCBpbnNpZGVyIGZpZWxkLnByb3BlcnRpZXMgb25seS5cbiAgICAgKi9cblxuICAgIHJldHVybiBjb252ZXJ0Rm9ybUZpZWxkVHlwZURhdGVUb0t3aWtVSUZvcm1hdChmaWVsZFtcIm1heFwiXSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlTGFuZ3VhZ2UgPSAob2JqZWN0OiBhbnksIGxhbmd1YWdlOiBzdHJpbmcpID0+IHtcbiAgaWYgKGlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICBpZiAobGFuZ3VhZ2UgJiYgY2hlY2tPYmplY3RLZXlFeGlzdHMob2JqZWN0LCBsYW5ndWFnZSkpIHtcbiAgICAgIG9iamVjdCA9IG9iamVjdFtsYW5ndWFnZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iamVjdCA9IG9iamVjdFtcImVuXCJdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYmplY3Q7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TGFuZ3VhZ2UgPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsbmdcIikgPz9cbiAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmdcIikgPz9cbiAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIkxhbmdcIikgPz9cbiAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpID8/XG4gICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjdXJyZW50TGFuZ1wiKSA/P1xuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwic2VsZWN0ZWRMYW5nXCIpID8/XG4gICAgXCJlblwiXG4gICk7XG59O1xuIl19
@@ -48,26 +48,20 @@ export class KwikIDFormViewApiService {
48
48
  // Function to verify the signature
49
49
  verifySignature(data, header, url, isVerifySignature) {
50
50
  return new Promise((resolve, reject) => {
51
- // Log the function call for verification
52
- console.log("Verify Signature: Function Called For", url, header);
53
51
  // Check if the signature is disabled
54
52
  if (!isVerifySignature) {
55
- console.log("Verify Signature: Authentication Disabled");
56
53
  resolve(true);
57
54
  }
58
55
  // Check if data is invalid
59
56
  else if (!data) {
60
- console.log("Verify Signature: Data Not Available");
61
57
  resolve(true);
62
58
  }
63
59
  // Check if the signature is missing in headers when authentication is not skipped
64
60
  else if (isVerifySignature && header && !(header === null || header === void 0 ? void 0 : header.sig)) {
65
- console.log("Verify Signature Failure: Signature Not Present in Headers");
66
61
  reject(false);
67
62
  }
68
63
  // Verify the signature when public key and header with signature are present and authentication is not skipped
69
64
  else if (isVerifySignature && header && (header === null || header === void 0 ? void 0 : header.sig)) {
70
- console.log("Verify Signature: Signature Present in Headers");
71
65
  // Extract the signature and decode it
72
66
  let signature = header.sig.split(".")[0];
73
67
  let rawSignature = atob(signature);
@@ -82,30 +76,22 @@ export class KwikIDFormViewApiService {
82
76
  let dateCheck = dateValue < parseInt(exp);
83
77
  // Check if the signature matches the data
84
78
  let res = signature === data;
85
- console.log("Verify Signature: Matching", signature, data);
86
- console.log("Verify Signature: Time", dateValue, parseInt(exp), parseInt(exp) - dateValue);
87
- console.log("Verify Signature: Date", new Date(dateValue), new Date(parseInt(exp)));
88
- console.log("Verify Signature: Signature Converted to Required Format");
89
79
  // Resolve the promise if the signature is valid and the date check passes
90
80
  if (res && dateCheck) {
91
- console.log("Verify Signature Success");
92
81
  resolve(res);
93
82
  }
94
83
  else {
95
84
  // Reject the promise if the signature is invalid or the date check fails
96
- console.log("Verify Signature Failure: Signature did not match");
97
85
  reject(res);
98
86
  }
99
87
  }
100
88
  else {
101
89
  // Reject the promise if the signature is not in the required format
102
- console.log("Verify Signature Failure: Signature Not Converted to Required Format");
103
90
  reject(false);
104
91
  }
105
92
  }
106
93
  else {
107
94
  // Resolve the promise if the signature is missing in headers
108
- console.log("Verify Signature Failure: Signature Not Present in Headers");
109
95
  resolve(true);
110
96
  }
111
97
  });
@@ -132,7 +118,6 @@ export class KwikIDFormViewApiService {
132
118
  const encryptedResponse = data;
133
119
  const decryptedResponse = yield decryptWithAES(encryptedResponse);
134
120
  data = JSON.parse(decryptedResponse);
135
- console.log("Decrypted Response", data);
136
121
  res.data = data;
137
122
  }
138
123
  // Verify signature and handle response
@@ -152,7 +137,6 @@ export class KwikIDFormViewApiService {
152
137
  const encryptedResponse = data;
153
138
  const decryptedResponse = yield decryptWithAES(encryptedResponse);
154
139
  data = JSON.parse(decryptedResponse);
155
- console.log("Decrypted Response", data);
156
140
  err.response.data = data;
157
141
  }
158
142
  // Verify signature and handle response
@@ -184,7 +168,6 @@ export class KwikIDFormViewApiService {
184
168
  const encryptedResponse = data;
185
169
  const decryptedResponse = yield decryptWithAES(encryptedResponse);
186
170
  data = JSON.parse(decryptedResponse);
187
- console.log("Decrypted Response", data);
188
171
  res.data = data;
189
172
  }
190
173
  // Verify signature and handle response
@@ -204,7 +187,6 @@ export class KwikIDFormViewApiService {
204
187
  const encryptedResponse = data;
205
188
  const decryptedResponse = yield decryptWithAES(encryptedResponse);
206
189
  data = JSON.parse(decryptedResponse);
207
- console.log("Decrypted Response", data);
208
190
  err.response.data = data;
209
191
  }
210
192
  // Verify signature and handle response
@@ -253,4 +235,4 @@ __decorate([
253
235
  __decorate([
254
236
  logMethod
255
237
  ], KwikIDFormViewApiService.prototype, "get", null);
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2Zvcm0tdmlldy5hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxFQUNkLGVBQWUsRUFDZixTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE1BQU0sT0FBTyx3QkFBd0I7SUFHbkM7UUFGUSxhQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFckQsQ0FBQztJQUVoQixxQ0FBcUM7SUFFckMsbUJBQW1CLENBQUMsSUFBSTtRQUN0QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUN0QixNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFOUMsNERBQTREO1lBQzVELEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFO2dCQUM3QixJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDbkMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMs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dCB7XG4gIGRlY3J5cHRXaXRoQUVTLFxuICBlbmNyeXB0V2l0aEFFUyxcbiAgaXNOb3RFbXB0eVZhbHVlLFxuICBsb2dNZXRob2Rcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gXCJ1dWlkXCI7XG5cbmV4cG9ydCBjbGFzcyBLd2lrSURGb3JtVmlld0FwaVNlcnZpY2Uge1xuICBwcml2YXRlIGJ5dGVjb2RlID0gWzB4MzgsIDB4MzgsIDB4MzgsIDB4MzgsIDB4MzgsIDB4MzgsIDB4MzgsIDB4MzhdO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvLyBGdW5jdGlvbiB0byBkZXJpdmUgbG9naWMgZnJvbSBkYXRhXG4gIEBsb2dNZXRob2RcbiAgZGF0YURlcml2YXRpdmVMb2dpYyhkYXRhKSB7XG4gICAgaWYgKGlzTm90RW1wdHlWYWx1ZShkYXRhKSkge1xuICAgICAgY29uc3QgZGF0YVN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgICAgY29uc3QgY2hhckNvdW50cyA9IHt9O1xuICAgICAgY29uc3QgdGFyZ2V0Q2hhcmFjdGVycyA9IFtcImFcIiwgXCJpXCIsIFwicFwiLCBcInRcIl07XG5cbiAgICAgIC8vIENvdW50IG9jY3VycmVuY2VzIG9mIHRhcmdldCBjaGFyYWN0ZXJzIGluIHRoZSBkYXRhIHN0cmluZ1xuICAgICAgZm9yIChjb25zdCBjaGFyIG9mIGRhdGFTdHJpbmcpIHtcbiAgICAgICAgaWYgKHRhcmdldENoYXJhY3RlcnMuaW5jbHVkZXMoY2hhcikpIHtcbiAgICAgICAgICBjaGFyQ291bnRzW2NoYXJdID0gKGNoYXJDb3VudHNbY2hhcl0gfHwgMCkgKyAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIENvbnN0cnVjdCB0aGUgb3V0cHV0IHN0cmluZyBiYXNlZCBvbiB0aGUgY2hhcmFjdGVyIGNvdW50c1xuICAgICAgY29uc3Qgb3V0cHV0U3RyaW5nID0gdGFyZ2V0Q2hhcmFjdGVyc1xuICAgICAgICAubWFwKChjaGFyKSA9PiBjaGFyICsgKGNoYXJDb3VudHNbY2hhcl0gfHwgMCkpXG4gICAgICAgIC5qb2luKFwiXCIpO1xuICAgICAgcmV0dXJuIG91dHB1dFN0cmluZztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byBwcmVwcm9jZXNzIGhlYWRlciBkYXRhXG4gIEBsb2dNZXRob2RcbiAgcHJlUHJvY2Vzc0hlYWRlcihoZWFkZXJEYXRhOiBhbnksIGlzVmVyaWZ5U2lnbmF0dXJlOiBib29sZWFuKTogYW55IHtcbiAgICBpZiAoIWhlYWRlckRhdGEpIGhlYWRlckRhdGEgPSB7fTtcbiAgICBpZiAoIWhlYWRlckRhdGEuaGVhZGVycykgaGVhZGVyRGF0YVtcImhlYWRlcnNcIl0gPSB7fTtcblxuICAgIC8vIEdlbmVyYXRlIGEgdW5pcXVlIGlkZW50aWZpZXIgaWYgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBpcyByZXF1aXJlZFxuICAgIGlmIChpc1ZlcmlmeVNpZ25hdHVyZSkge1xuICAgICAgaGVhZGVyRGF0YVtcImhlYWRlcnNcIl1bXCJ4cmlkXCJdID0gdXVpZHY0KCk7XG4gICAgfVxuXG4gICAgLy8gUmV0cmlldmUgc2Vzc2lvbiBJRCBmcm9tIGxvY2FsIHN0b3JhZ2UgYW5kIGFkZCBpdCB0byBoZWFkZXJzXG4gICAgbGV0IHNlc3Npb25faWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInNlc3Npb25faWRcIik7XG4gICAgaWYgKHNlc3Npb25faWQpIGhlYWRlckRhdGFbXCJoZWFkZXJzXCJdW1wic2VzXCJdID0gc2Vzc2lvbl9pZDtcblxuICAgIHJldHVybiBoZWFkZXJEYXRhO1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmVcbiAgQGxvZ01ldGhvZFxuICB2ZXJpZnlTaWduYXR1cmUoZGF0YSwgaGVhZGVyLCB1cmwsIGlzVmVyaWZ5U2lnbmF0dXJlKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIExvZyB0aGUgZnVuY3Rpb24gY2FsbCBmb3IgdmVyaWZpY2F0aW9uXG4gICAgICBjb25zb2xlLmxvZyhcIlZlcmlmeSBTaWduYXR1cmU6IEZ1bmN0aW9uIENhbGxlZCBGb3JcIiwgdXJsLCBoZWFkZXIpO1xuXG4gICAgICAvLyBDaGVjayBpZiB0aGUgc2lnbmF0dXJlIGlzIGRpc2FibGVkXG4gICAgICBpZiAoIWlzVmVyaWZ5U2lnbmF0dXJlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiVmVyaWZ5IFNpZ25hdHVyZTogQXV0aGVudGljYXRpb24gRGlzYWJsZWRcIik7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIGRhdGEgaXMgaW52YWxpZFxuICAgICAgZWxzZSBpZiAoIWRhdGEpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJWZXJpZnkgU2lnbmF0dXJlOiBEYXRhIE5vdCBBdmFpbGFibGVcIik7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBzaWduYXR1cmUgaXMgbWlzc2luZyBpbiBoZWFkZXJzIHdoZW4gYXV0aGVudGljYXRpb24gaXMgbm90IHNraXBwZWRcbiAgICAgIGVsc2UgaWYgKGlzVmVyaWZ5U2lnbmF0dXJlICYmIGhlYWRlciAmJiAhaGVhZGVyPy5zaWcpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgXCJWZXJpZnkgU2lnbmF0dXJlIEZhaWx1cmU6IFNpZ25hdHVyZSBOb3QgUHJlc2VudCBpbiBIZWFkZXJzXCJcbiAgICAgICAgKTtcbiAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgLy8gVmVyaWZ5IHRoZSBzaWduYXR1cmUgd2hlbiBwdWJsaWMga2V5IGFuZCBoZWFkZXIgd2l0aCBzaWduYXR1cmUgYXJlIHByZXNlbnQgYW5kIGF1dGhlbnRpY2F0aW9uIGlzIG5vdCBza2lwcGVkXG4gICAgICBlbHNlIGlmIChpc1ZlcmlmeVNpZ25hdHVyZSAmJiBoZWFkZXIgJiYgaGVhZGVyPy5zaWcpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJWZXJpZnkgU2lnbmF0dXJlOiBTaWduYXR1cmUgUHJlc2VudCBpbiBIZWFkZXJzXCIpO1xuXG4gICAgICAgIC8vIEV4dHJhY3QgdGhlIHNpZ25hdHVyZSBhbmQgZGVjb2RlIGl0XG4gICAgICAgIGxldCBzaWduYXR1cmUgPSBoZWFkZXIuc2lnLnNwbGl0KFwiLlwiKVswXTtcbiAgICAgICAgbGV0IHJhd1NpZ25hdHVyZSA9IGF0b2Ioc2lnbmF0dXJlKTtcblxuICAgICAgICAvLyBTcGxpdCB0aGUgZGVjb2RlZCBzaWduYXR1cmUgdG8gZ2V0IHRoZSBwYXJ0c1xuICAgICAgICBzaWduYXR1cmUgPSByYXdTaWduYXR1cmUuc3BsaXQoXCIuXCIpWzBdO1xuICAgICAgICBsZXQgZXhwID0gcmF3U2lnbmF0dXJlLnNwbGl0KFwiLlwiKVsxXSArIFwiMDAwXCI7IC8vIEV4cGlyYXRpb24gdGltZSBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgbGV0IGlhdCA9IHJhd1NpZ25hdHVyZS5zcGxpdChcIi5cIilbMl0gKyBcIjAwMFwiOyAvLyBJc3N1ZWQgYXQgdGltZSBpbiBtaWxsaXNlY29uZHNcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgc2lnbmF0dXJlIGlzIHZhbGlkXG4gICAgICAgIGlmIChzaWduYXR1cmUpIHtcbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCB0aW1lIGlzIGJlZm9yZSB0aGUgZXhwaXJhdGlvbiB0aW1lXG4gICAgICAgICAgY29uc3QgZGF0ZVZhbHVlID0gbmV3IERhdGUoKS52YWx1ZU9mKCk7XG4gICAgICAgICAgbGV0IGRhdGVDaGVjayA9IGRhdGVWYWx1ZSA8IHBhcnNlSW50KGV4cCk7XG5cbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgc2lnbmF0dXJlIG1hdGNoZXMgdGhlIGRhdGFcbiAgICAgICAgICBsZXQgcmVzID0gc2lnbmF0dXJlID09PSBkYXRhO1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiVmVyaWZ5IFNpZ25hdHVyZTogTWF0Y2hpbmdcIiwgc2lnbmF0dXJlLCBkYXRhKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIFwiVmVyaWZ5IFNpZ25hdHVyZTogVGltZVwiLFxuICAgICAgICAgICAgZGF0ZVZhbHVlLFxuICAgICAgICAgICAgcGFyc2VJbnQoZXhwKSxcbiAgICAgICAgICAgIHBhcnNlSW50KGV4cCkgLSBkYXRlVmFsdWVcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBcIlZlcmlmeSBTaWduYXR1cmU6IERhdGVcIixcbiAgICAgICAgICAgIG5ldyBEYXRlKGRhdGVWYWx1ZSksXG4gICAgICAgICAgICBuZXcgRGF0ZShwYXJzZUludChleHApKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIFwiVmVyaWZ5IFNpZ25hdHVyZTogU2lnbmF0dXJlIENvbnZlcnRlZCB0byBSZXF1aXJlZCBGb3JtYXRcIlxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBSZXNvbHZlIHRoZSBwcm9taXNlIGlmIHRoZSBzaWduYXR1cmUgaXMgdmFsaWQgYW5kIHRoZSBkYXRlIGNoZWNrIHBhc3Nlc1xuICAgICAgICAgIGlmIChyZXMgJiYgZGF0ZUNoZWNrKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIlZlcmlmeSBTaWduYXR1cmUgU3VjY2Vzc1wiKTtcbiAgICAgICAgICAgIHJlc29sdmUocmVzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gUmVqZWN0IHRoZSBwcm9taXNlIGlmIHRoZSBzaWduYXR1cmUgaXMgaW52YWxpZCBvciB0aGUgZGF0ZSBjaGVjayBmYWlsc1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJWZXJpZnkgU2lnbmF0dXJlIEZhaWx1cmU6IFNpZ25hdHVyZSBkaWQgbm90IG1hdGNoXCIpO1xuICAgICAgICAgICAgcmVqZWN0KHJlcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFJlamVjdCB0aGUgcHJvbWlzZSBpZiB0aGUgc2lnbmF0dXJlIGlzIG5vdCBpbiB0aGUgcmVxdWlyZWQgZm9ybWF0XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBcIlZlcmlmeSBTaWduYXR1cmUgRmFpbHVyZTogU2lnbmF0dXJlIE5vdCBDb252ZXJ0ZWQgdG8gUmVxdWlyZWQgRm9ybWF0XCJcbiAgICAgICAgICApO1xuICAgICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlc29sdmUgdGhlIHByb21pc2UgaWYgdGhlIHNpZ25hdHVyZSBpcyBtaXNzaW5nIGluIGhlYWRlcnNcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgXCJWZXJpZnkgU2lnbmF0dXJlIEZhaWx1cmU6IFNpZ25hdHVyZSBOb3QgUHJlc2VudCBpbiBIZWFkZXJzXCJcbiAgICAgICAgKTtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIEZ1bmN0aW9uIHRvIHBlcmZvcm0gUE9TVCByZXF1ZXN0XG4gIEBsb2dNZXRob2RcbiAgcG9zdChcbiAgICB1cmwsXG4gICAgYm9keSxcbiAgICBoZWFkZXJEYXRhLFxuICAgIGlzRW5jcnlwdCA9IGZhbHNlLFxuICAgIGlzRGVjcnlwdCA9IGZhbHNlLFxuICAgIGlzVmVyaWZ5U2lnbmF0dXJlID0gZmFsc2UsXG4gICAgaXNTa2lwSGVhZGVyQWx0ZXJhdGlvbiA9IGZhbHNlXG4gICkge1xuICAgIGxldCBwcmVQcm9jZXNzZWRIZWFkZXIgPSBoZWFkZXJEYXRhO1xuXG4gICAgLy8gUHJlcHJvY2VzcyBoZWFkZXIgZGF0YSB1bmxlc3MgaW5zdHJ1Y3RlZCB0byBza2lwXG4gICAgaWYgKCFpc1NraXBIZWFkZXJBbHRlcmF0aW9uKSB7XG4gICAgICBwcmVQcm9jZXNzZWRIZWFkZXIgPSB0aGlzLnByZVByb2Nlc3NIZWFkZXIoaGVhZGVyRGF0YSwgaXNWZXJpZnlTaWduYXR1cmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcmVQcm9jZXNzZWRIZWFkZXJbXCJvYnNlcnZlXCJdID0gXCJyZXNwb25zZVwiO1xuICAgIH1cblxuICAgIC8vIEVuY3J5cHQgYm9keSBpZiByZXF1aXJlZFxuICAgIGlmIChpc0VuY3J5cHQpIHtcbiAgICAgIGJvZHkgPSBlbmNyeXB0V2l0aEFFUyhKU09OLnN0cmluZ2lmeShib2R5KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICBheGlvcy5wb3N0KHVybCwgYm9keSwgaGVhZGVyRGF0YSkudGhlbihcbiAgICAgICAgYXN5bmMgKHJlcykgPT4ge1xuICAgICAgICAgIGxldCBkYXRhID0gcmVzW1wiZGF0YVwiXTtcblxuICAgICAgICAgIC8vIERlY3J5cHQgcmVzcG9uc2UgaWYgcmVxdWlyZWRcbiAgICAgICAgICBpZiAoZGF0YSAmJiBpc0RlY3J5cHQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuY3J5cHRlZFJlc3BvbnNlID0gZGF0YTtcbiAgICAgICAgICAgIGNvbnN0IGRlY3J5cHRlZFJlc3BvbnNlID0gYXdhaXQgZGVjcnlwdFdpdGhBRVMoZW5jcnlwdGVkUmVzcG9uc2UpO1xuICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZGVjcnlwdGVkUmVzcG9uc2UpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJEZWNyeXB0ZWQgUmVzcG9uc2VcIiwgZGF0YSk7XG4gICAgICAgICAgICByZXMuZGF0YSA9IGRhdGE7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gVmVyaWZ5IHNpZ25hdHVyZSBhbmQgaGFuZGxlIHJlc3BvbnNlXG4gICAgICAgICAgdGhpcy52ZXJpZnlTaWduYXR1cmUoXG4gICAgICAgICAgICB0aGlzLmRhdGFEZXJpdmF0aXZlTG9naWMoZGF0YSksXG4gICAgICAgICAgICByZXM/LmhlYWRlcnMsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBpc1ZlcmlmeVNpZ25hdHVyZVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKCh2ZXJpZmljYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHJlcyk7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycj8ucmVzcG9uc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIChlcnIpID0+IHtcbiAgICAgICAgICBsZXQgZGF0YSA9IGVycj8ucmVzcG9uc2U/LmRhdGE7XG5cbiAgICAgICAgICAvLyBEZWNyeXB0IGVycm9yIHJlc3BvbnNlIGlmIHJlcXVpcmVkXG4gICAgICAgICAgaWYgKGRhdGEgJiYgaXNEZWNyeXB0KSB7XG4gICAgICAgICAgICBjb25zdCBlbmNyeXB0ZWRSZXNwb25zZSA9IGRhdGE7XG4gICAgICAgICAgICBjb25zdCBkZWNyeXB0ZWRSZXNwb25zZSA9IGF3YWl0IGRlY3J5cHRXaXRoQUVTKGVuY3J5cHRlZFJlc3BvbnNlKTtcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRlY3J5cHRlZFJlc3BvbnNlKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRGVjcnlwdGVkIFJlc3BvbnNlXCIsIGRhdGEpO1xuICAgICAgICAgICAgZXJyLnJlc3BvbnNlLmRhdGEgPSBkYXRhO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFZlcmlmeSBzaWduYXR1cmUgYW5kIGhhbmRsZSByZXNwb25zZVxuICAgICAgICAgIHRoaXMudmVyaWZ5U2lnbmF0dXJlKFxuICAgICAgICAgICAgdGhpcy5kYXRhRGVyaXZhdGl2ZUxvZ2ljKGRhdGEpLFxuICAgICAgICAgICAgZXJyPy5yZXNwb25zZT8uaGVhZGVycyxcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGlzVmVyaWZ5U2lnbmF0dXJlXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4oKHZlcmlmaWNhdGlvbikgPT4ge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycj8ucmVzcG9uc2UpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyPy5yZXNwb25zZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEZ1bmN0aW9uIHRvIHBlcmZvcm0gR0VUIHJlcXVlc3RcbiAgQGxvZ01ldGhvZFxuICBnZXQoXG4gICAgdXJsLFxuICAgIGhlYWRlckRhdGEgPSB1bmRlZmluZWQsXG4gICAgaXNEZWNyeXB0ID0gZmFsc2UsXG4gICAgaXNWZXJpZnlTaWduYXR1cmUgPSBmYWxzZSxcbiAgICBpc1NraXBIZWFkZXJBbHRlcmF0aW9uID0gZmFsc2VcbiAgKSB7XG4gICAgbGV0IHByZVByb2Nlc3NlZEhlYWRlciA9IGhlYWRlckRhdGE7XG5cbiAgICAvLyBQcmVwcm9jZXNzIGhlYWRlciBkYXRhIHVubGVzcyBpbnN0cnVjdGVkIHRvIHNraXBcbiAgICBpZiAoIWlzU2tpcEhlYWRlckFsdGVyYXRpb24pIHtcbiAgICAgIHByZVByb2Nlc3NlZEhlYWRlciA9IHRoaXMucHJlUHJvY2Vzc0hlYWRlcihoZWFkZXJEYXRhLCBpc1ZlcmlmeVNpZ25hdHVyZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZVByb2Nlc3NlZEhlYWRlcltcIm9ic2VydmVcIl0gPSBcInJlc3BvbnNlXCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICBheGlvcy5nZXQodXJsLCBwcmVQcm9jZXNzZWRIZWFkZXIpLnRoZW4oXG4gICAgICAgIGFzeW5jIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGxldCBkYXRhID0gcmVzW1wiZGF0YVwiXTtcblxuICAgICAgICAgIC8vIERlY3J5cHQgcmVzcG9uc2UgaWYgcmVxdWlyZWRcbiAgICAgICAgICBpZiAoaXNEZWNyeXB0KSB7XG4gICAgICAgICAgICBjb25zdCBlbmNyeXB0ZWRSZXNwb25zZSA9IGRhdGE7XG4gICAgICAgICAgICBjb25zdCBkZWNyeXB0ZWRSZXNwb25zZSA9IGF3YWl0IGRlY3J5cHRXaXRoQUVTKGVuY3J5cHRlZFJlc3BvbnNlKTtcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRlY3J5cHRlZFJlc3BvbnNlKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRGVjcnlwdGVkIFJlc3BvbnNlXCIsIGRhdGEpO1xuICAgICAgICAgICAgcmVzLmRhdGEgPSBkYXRhO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFZlcmlmeSBzaWduYXR1cmUgYW5kIGhhbmRsZSByZXNwb25zZVxuICAgICAgICAgIHRoaXMudmVyaWZ5U2lnbmF0dXJlKFxuICAgICAgICAgICAgdGhpcy5kYXRhRGVyaXZhdGl2ZUxvZ2ljKGRhdGEpLFxuICAgICAgICAgICAgcmVzPy5oZWFkZXJzLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgaXNWZXJpZnlTaWduYXR1cmVcbiAgICAgICAgICApXG4gICAgICAgICAgICAudGhlbigodmVyaWZpY2F0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChyZXMpO1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnI/LnJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBhc3luYyAoZXJyKSA9PiB7XG4gICAgICAgICAgbGV0IGRhdGEgPSBlcnI/LnJlc3BvbnNlPy5kYXRhO1xuXG4gICAgICAgICAgLy8gRGVjcnlwdCBlcnJvciByZXNwb25zZSBpZiByZXF1aXJlZFxuICAgICAgICAgIGlmIChkYXRhICYmIGlzRGVjcnlwdCkge1xuICAgICAgICAgICAgY29uc3QgZW5jcnlwdGVkUmVzcG9uc2UgPSBkYXRhO1xuICAgICAgICAgICAgY29uc3QgZGVjcnlwdGVkUmVzcG9uc2UgPSBhd2FpdCBkZWNyeXB0V2l0aEFFUyhlbmNyeXB0ZWRSZXNwb25zZSk7XG4gICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShkZWNyeXB0ZWRSZXNwb25zZSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkRlY3J5cHRlZCBSZXNwb25zZVwiLCBkYXRhKTtcbiAgICAgICAgICAgIGVyci5yZXNwb25zZS5kYXRhID0gZGF0YTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBWZXJpZnkgc2lnbmF0dXJlIGFuZCBoYW5kbGUgcmVzcG9uc2VcbiAgICAgICAgICB0aGlzLnZlcmlmeVNpZ25hdHVyZShcbiAgICAgICAgICAgIHRoaXMuZGF0YURlcml2YXRpdmVMb2dpYyhkYXRhKSxcbiAgICAgICAgICAgIGVycj8ucmVzcG9uc2U/LmhlYWRlcnMsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBpc1ZlcmlmeVNpZ25hdHVyZVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKCh2ZXJpZmljYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnI/LnJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycj8ucmVzcG9uc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byBleGVjdXRlIEFQSSBjYWxsIGJhc2VkIG9uIG1ldGhvZCB0eXBlXG4gIGV4ZWN1dGVBcGlDYWxsKFxuICAgIHVybCxcbiAgICBtZXRob2QsXG4gICAgYm9keSxcbiAgICBoZWFkZXJzLFxuICAgIGlzRW5jcnlwdCxcbiAgICBpc0RlY3J5cHQsXG4gICAgaXNWZXJpZnlTaWduYXR1cmVcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAobWV0aG9kID09IFwiR0VUXCIpIHtcbiAgICAgICAgdGhpcy5nZXQoXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIHsgaGVhZGVyczogaGVhZGVycyB9LFxuICAgICAgICAgIGlzRGVjcnlwdCxcbiAgICAgICAgICBpc1ZlcmlmeVNpZ25hdHVyZVxuICAgICAgICApLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBvc3QoXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIGJvZHksXG4gICAgICAgICAgeyBoZWFkZXJzOiBoZWFkZXJzIH0sXG4gICAgICAgICAgaXNFbmNyeXB0LFxuICAgICAgICAgIGlzRGVjcnlwdCxcbiAgICAgICAgICBpc1ZlcmlmeVNpZ25hdHVyZVxuICAgICAgICApLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2Zvcm0tdmlldy5hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxFQUNkLGVBQWUsRUFDZixTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE1BQU0sT0FBTyx3QkFBd0I7SUFHbkM7UUFGUSxhQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFckQsQ0FBQztJQUVoQixxQ0FBcUM7SUFFckMsbUJBQW1CLENBQUMsSUFBSTtRQUN0QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUN0QixNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFOUMsNERBQTREO1lBQzVELEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFO2dCQUM3QixJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDbkMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMs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Q1QsaUJBQWlCO1FBRWpCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLE1BQU0sSUFBSSxLQUFLLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxHQUFHLENBQ04sR0FBRyxFQUNILEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUNwQixTQUFTLEVBQ1QsaUJBQWlCLENBQ2xCLENBQUMsU0FBUyxDQUNULENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNmLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDZixDQUFDLENBQ0YsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLENBQ1AsR0FBRyxFQUNILElBQUksRUFDSixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFDcEIsU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsQ0FDbEIsQ0FBQyxTQUFTLENBQ1QsQ0FBQyxHQUFRLEVBQUUsRUFBRTtvQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNmLENBQUMsQ0FDRixDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVTQztJQURDLFNBQVM7bUVBc0JUO0FBSUQ7SUFEQyxTQUFTO2dFQWVUO0FBSUQ7SUFEQyxTQUFTOytEQXVEVDtBQUlEO0lBREMsU0FBUztvREErRVQ7QUFJRDtJQURDLFNBQVM7bURBd0VUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0IHtcbiAgZGVjcnlwdFdpdGhBRVMsXG4gIGVuY3J5cHRXaXRoQUVTLFxuICBpc05vdEVtcHR5VmFsdWUsXG4gIGxvZ01ldGhvZFxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSBcInV1aWRcIjtcblxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1WaWV3QXBpU2VydmljZSB7XG4gIHByaXZhdGUgYnl0ZWNvZGUgPSBbMHgzOCwgMHgzOCwgMHgzOCwgMHgzOCwgMHgzOCwgMHgzOCwgMHgzOCwgMHgzOF07XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8vIEZ1bmN0aW9uIHRvIGRlcml2ZSBsb2dpYyBmcm9tIGRhdGFcbiAgQGxvZ01ldGhvZFxuICBkYXRhRGVyaXZhdGl2ZUxvZ2ljKGRhdGEpIHtcbiAgICBpZiAoaXNOb3RFbXB0eVZhbHVlKGRhdGEpKSB7XG4gICAgICBjb25zdCBkYXRhU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICBjb25zdCBjaGFyQ291bnRzID0ge307XG4gICAgICBjb25zdCB0YXJnZXRDaGFyYWN0ZXJzID0gW1wiYVwiLCBcImlcIiwgXCJwXCIsIFwidFwiXTtcblxuICAgICAgLy8gQ291bnQgb2NjdXJyZW5jZXMgb2YgdGFyZ2V0IGNoYXJhY3RlcnMgaW4gdGhlIGRhdGEgc3RyaW5nXG4gICAgICBmb3IgKGNvbnN0IGNoYXIgb2YgZGF0YVN0cmluZykge1xuICAgICAgICBpZiAodGFyZ2V0Q2hhcmFjdGVycy5pbmNsdWRlcyhjaGFyKSkge1xuICAgICAgICAgIGNoYXJDb3VudHNbY2hhcl0gPSAoY2hhckNvdW50c1tjaGFyXSB8fCAwKSArIDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQ29uc3RydWN0IHRoZSBvdXRwdXQgc3RyaW5nIGJhc2VkIG9uIHRoZSBjaGFyYWN0ZXIgY291bnRzXG4gICAgICBjb25zdCBvdXRwdXRTdHJpbmcgPSB0YXJnZXRDaGFyYWN0ZXJzXG4gICAgICAgIC5tYXAoKGNoYXIpID0+IGNoYXIgKyAoY2hhckNvdW50c1tjaGFyXSB8fCAwKSlcbiAgICAgICAgLmpvaW4oXCJcIik7XG4gICAgICByZXR1cm4gb3V0cHV0U3RyaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZ1bmN0aW9uIHRvIHByZXByb2Nlc3MgaGVhZGVyIGRhdGFcbiAgQGxvZ01ldGhvZFxuICBwcmVQcm9jZXNzSGVhZGVyKGhlYWRlckRhdGE6IGFueSwgaXNWZXJpZnlTaWduYXR1cmU6IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICghaGVhZGVyRGF0YSkgaGVhZGVyRGF0YSA9IHt9O1xuICAgIGlmICghaGVhZGVyRGF0YS5oZWFkZXJzKSBoZWFkZXJEYXRhW1wiaGVhZGVyc1wiXSA9IHt9O1xuXG4gICAgLy8gR2VuZXJhdGUgYSB1bmlxdWUgaWRlbnRpZmllciBpZiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIHJlcXVpcmVkXG4gICAgaWYgKGlzVmVyaWZ5U2lnbmF0dXJlKSB7XG4gICAgICBoZWFkZXJEYXRhW1wiaGVhZGVyc1wiXVtcInhyaWRcIl0gPSB1dWlkdjQoKTtcbiAgICB9XG5cbiAgICAvLyBSZXRyaWV2ZSBzZXNzaW9uIElEIGZyb20gbG9jYWwgc3RvcmFnZSBhbmQgYWRkIGl0IHRvIGhlYWRlcnNcbiAgICBsZXQgc2Vzc2lvbl9pZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwic2Vzc2lvbl9pZFwiKTtcbiAgICBpZiAoc2Vzc2lvbl9pZCkgaGVhZGVyRGF0YVtcImhlYWRlcnNcIl1bXCJzZXNcIl0gPSBzZXNzaW9uX2lkO1xuXG4gICAgcmV0dXJuIGhlYWRlckRhdGE7XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byB2ZXJpZnkgdGhlIHNpZ25hdHVyZVxuICBAbG9nTWV0aG9kXG4gIHZlcmlmeVNpZ25hdHVyZShkYXRhLCBoZWFkZXIsIHVybCwgaXNWZXJpZnlTaWduYXR1cmUpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgdGhlIHNpZ25hdHVyZSBpcyBkaXNhYmxlZFxuICAgICAgaWYgKCFpc1ZlcmlmeVNpZ25hdHVyZSkge1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBkYXRhIGlzIGludmFsaWRcbiAgICAgIGVsc2UgaWYgKCFkYXRhKSB7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBzaWduYXR1cmUgaXMgbWlzc2luZyBpbiBoZWFkZXJzIHdoZW4gYXV0aGVudGljYXRpb24gaXMgbm90IHNraXBwZWRcbiAgICAgIGVsc2UgaWYgKGlzVmVyaWZ5U2lnbmF0dXJlICYmIGhlYWRlciAmJiAhaGVhZGVyPy5zaWcpIHtcbiAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgLy8gVmVyaWZ5IHRoZSBzaWduYXR1cmUgd2hlbiBwdWJsaWMga2V5IGFuZCBoZWFkZXIgd2l0aCBzaWduYXR1cmUgYXJlIHByZXNlbnQgYW5kIGF1dGhlbnRpY2F0aW9uIGlzIG5vdCBza2lwcGVkXG4gICAgICBlbHNlIGlmIChpc1ZlcmlmeVNpZ25hdHVyZSAmJiBoZWFkZXIgJiYgaGVhZGVyPy5zaWcpIHtcbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgc2lnbmF0dXJlIGFuZCBkZWNvZGUgaXRcbiAgICAgICAgbGV0IHNpZ25hdHVyZSA9IGhlYWRlci5zaWcuc3BsaXQoXCIuXCIpWzBdO1xuICAgICAgICBsZXQgcmF3U2lnbmF0dXJlID0gYXRvYihzaWduYXR1cmUpO1xuXG4gICAgICAgIC8vIFNwbGl0IHRoZSBkZWNvZGVkIHNpZ25hdHVyZSB0byBnZXQgdGhlIHBhcnRzXG4gICAgICAgIHNpZ25hdHVyZSA9IHJhd1NpZ25hdHVyZS5zcGxpdChcIi5cIilbMF07XG4gICAgICAgIGxldCBleHAgPSByYXdTaWduYXR1cmUuc3BsaXQoXCIuXCIpWzFdICsgXCIwMDBcIjsgLy8gRXhwaXJhdGlvbiB0aW1lIGluIG1pbGxpc2Vjb25kc1xuICAgICAgICBsZXQgaWF0ID0gcmF3U2lnbmF0dXJlLnNwbGl0KFwiLlwiKVsyXSArIFwiMDAwXCI7IC8vIElzc3VlZCBhdCB0aW1lIGluIG1pbGxpc2Vjb25kc1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBzaWduYXR1cmUgaXMgdmFsaWRcbiAgICAgICAgaWYgKHNpZ25hdHVyZSkge1xuICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IHRpbWUgaXMgYmVmb3JlIHRoZSBleHBpcmF0aW9uIHRpbWVcbiAgICAgICAgICBjb25zdCBkYXRlVmFsdWUgPSBuZXcgRGF0ZSgpLnZhbHVlT2YoKTtcbiAgICAgICAgICBsZXQgZGF0ZUNoZWNrID0gZGF0ZVZhbHVlIDwgcGFyc2VJbnQoZXhwKTtcblxuICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBzaWduYXR1cmUgbWF0Y2hlcyB0aGUgZGF0YVxuICAgICAgICAgIGxldCByZXMgPSBzaWduYXR1cmUgPT09IGRhdGE7XG5cbiAgICAgICAgICAvLyBSZXNvbHZlIHRoZSBwcm9taXNlIGlmIHRoZSBzaWduYXR1cmUgaXMgdmFsaWQgYW5kIHRoZSBkYXRlIGNoZWNrIHBhc3Nlc1xuICAgICAgICAgIGlmIChyZXMgJiYgZGF0ZUNoZWNrKSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFJlamVjdCB0aGUgcHJvbWlzZSBpZiB0aGUgc2lnbmF0dXJlIGlzIGludmFsaWQgb3IgdGhlIGRhdGUgY2hlY2sgZmFpbHNcbiAgICAgICAgICAgIHJlamVjdChyZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBSZWplY3QgdGhlIHByb21pc2UgaWYgdGhlIHNpZ25hdHVyZSBpcyBub3QgaW4gdGhlIHJlcXVpcmVkIGZvcm1hdFxuXG4gICAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmVzb2x2ZSB0aGUgcHJvbWlzZSBpZiB0aGUgc2lnbmF0dXJlIGlzIG1pc3NpbmcgaW4gaGVhZGVyc1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gcGVyZm9ybSBQT1NUIHJlcXVlc3RcbiAgQGxvZ01ldGhvZFxuICBwb3N0KFxuICAgIHVybCxcbiAgICBib2R5LFxuICAgIGhlYWRlckRhdGEsXG4gICAgaXNFbmNyeXB0ID0gZmFsc2UsXG4gICAgaXNEZWNyeXB0ID0gZmFsc2UsXG4gICAgaXNWZXJpZnlTaWduYXR1cmUgPSBmYWxzZSxcbiAgICBpc1NraXBIZWFkZXJBbHRlcmF0aW9uID0gZmFsc2VcbiAgKSB7XG4gICAgbGV0IHByZVByb2Nlc3NlZEhlYWRlciA9IGhlYWRlckRhdGE7XG5cbiAgICAvLyBQcmVwcm9jZXNzIGhlYWRlciBkYXRhIHVubGVzcyBpbnN0cnVjdGVkIHRvIHNraXBcbiAgICBpZiAoIWlzU2tpcEhlYWRlckFsdGVyYXRpb24pIHtcbiAgICAgIHByZVByb2Nlc3NlZEhlYWRlciA9IHRoaXMucHJlUHJvY2Vzc0hlYWRlcihoZWFkZXJEYXRhLCBpc1ZlcmlmeVNpZ25hdHVyZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZVByb2Nlc3NlZEhlYWRlcltcIm9ic2VydmVcIl0gPSBcInJlc3BvbnNlXCI7XG4gICAgfVxuXG4gICAgLy8gRW5jcnlwdCBib2R5IGlmIHJlcXVpcmVkXG4gICAgaWYgKGlzRW5jcnlwdCkge1xuICAgICAgYm9keSA9IGVuY3J5cHRXaXRoQUVTKEpTT04uc3RyaW5naWZ5KGJvZHkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIGF4aW9zLnBvc3QodXJsLCBib2R5LCBoZWFkZXJEYXRhKS50aGVuKFxuICAgICAgICBhc3luYyAocmVzKSA9PiB7XG4gICAgICAgICAgbGV0IGRhdGEgPSByZXNbXCJkYXRhXCJdO1xuXG4gICAgICAgICAgLy8gRGVjcnlwdCByZXNwb25zZSBpZiByZXF1aXJlZFxuICAgICAgICAgIGlmIChkYXRhICYmIGlzRGVjcnlwdCkge1xuICAgICAgICAgICAgY29uc3QgZW5jcnlwdGVkUmVzcG9uc2UgPSBkYXRhO1xuICAgICAgICAgICAgY29uc3QgZGVjcnlwdGVkUmVzcG9uc2UgPSBhd2FpdCBkZWNyeXB0V2l0aEFFUyhlbmNyeXB0ZWRSZXNwb25zZSk7XG4gICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShkZWNyeXB0ZWRSZXNwb25zZSk7XG4gICAgICAgICAgICByZXMuZGF0YSA9IGRhdGE7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gVmVyaWZ5IHNpZ25hdHVyZSBhbmQgaGFuZGxlIHJlc3BvbnNlXG4gICAgICAgICAgdGhpcy52ZXJpZnlTaWduYXR1cmUoXG4gICAgICAgICAgICB0aGlzLmRhdGFEZXJpdmF0aXZlTG9naWMoZGF0YSksXG4gICAgICAgICAgICByZXM/LmhlYWRlcnMsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBpc1ZlcmlmeVNpZ25hdHVyZVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKCh2ZXJpZmljYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHJlcyk7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycj8ucmVzcG9uc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIChlcnIpID0+IHtcbiAgICAgICAgICBsZXQgZGF0YSA9IGVycj8ucmVzcG9uc2U/LmRhdGE7XG5cbiAgICAgICAgICAvLyBEZWNyeXB0IGVycm9yIHJlc3BvbnNlIGlmIHJlcXVpcmVkXG4gICAgICAgICAgaWYgKGRhdGEgJiYgaXNEZWNyeXB0KSB7XG4gICAgICAgICAgICBjb25zdCBlbmNyeXB0ZWRSZXNwb25zZSA9IGRhdGE7XG4gICAgICAgICAgICBjb25zdCBkZWNyeXB0ZWRSZXNwb25zZSA9IGF3YWl0IGRlY3J5cHRXaXRoQUVTKGVuY3J5cHRlZFJlc3BvbnNlKTtcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRlY3J5cHRlZFJlc3BvbnNlKTtcbiAgICAgICAgICAgIGVyci5yZXNwb25zZS5kYXRhID0gZGF0YTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBWZXJpZnkgc2lnbmF0dXJlIGFuZCBoYW5kbGUgcmVzcG9uc2VcbiAgICAgICAgICB0aGlzLnZlcmlmeVNpZ25hdHVyZShcbiAgICAgICAgICAgIHRoaXMuZGF0YURlcml2YXRpdmVMb2dpYyhkYXRhKSxcbiAgICAgICAgICAgIGVycj8ucmVzcG9uc2U/LmhlYWRlcnMsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBpc1ZlcmlmeVNpZ25hdHVyZVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKCh2ZXJpZmljYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnI/LnJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycj8ucmVzcG9uc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byBwZXJmb3JtIEdFVCByZXF1ZXN0XG4gIEBsb2dNZXRob2RcbiAgZ2V0KFxuICAgIHVybCxcbiAgICBoZWFkZXJEYXRhID0gdW5kZWZpbmVkLFxuICAgIGlzRGVjcnlwdCA9IGZhbHNlLFxuICAgIGlzVmVyaWZ5U2lnbmF0dXJlID0gZmFsc2UsXG4gICAgaXNTa2lwSGVhZGVyQWx0ZXJhdGlvbiA9IGZhbHNlXG4gICkge1xuICAgIGxldCBwcmVQcm9jZXNzZWRIZWFkZXIgPSBoZWFkZXJEYXRhO1xuXG4gICAgLy8gUHJlcHJvY2VzcyBoZWFkZXIgZGF0YSB1bmxlc3MgaW5zdHJ1Y3RlZCB0byBza2lwXG4gICAgaWYgKCFpc1NraXBIZWFkZXJBbHRlcmF0aW9uKSB7XG4gICAgICBwcmVQcm9jZXNzZWRIZWFkZXIgPSB0aGlzLnByZVByb2Nlc3NIZWFkZXIoaGVhZGVyRGF0YSwgaXNWZXJpZnlTaWduYXR1cmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcmVQcm9jZXNzZWRIZWFkZXJbXCJvYnNlcnZlXCJdID0gXCJyZXNwb25zZVwiO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgYXhpb3MuZ2V0KHVybCwgcHJlUHJvY2Vzc2VkSGVhZGVyKS50aGVuKFxuICAgICAgICBhc3luYyAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBsZXQgZGF0YSA9IHJlc1tcImRhdGFcIl07XG5cbiAgICAgICAgICAvLyBEZWNyeXB0IHJlc3BvbnNlIGlmIHJlcXVpcmVkXG4gICAgICAgICAgaWYgKGlzRGVjcnlwdCkge1xuICAgICAgICAgICAgY29uc3QgZW5jcnlwdGVkUmVzcG9uc2UgPSBkYXRhO1xuICAgICAgICAgICAgY29uc3QgZGVjcnlwdGVkUmVzcG9uc2UgPSBhd2FpdCBkZWNyeXB0V2l0aEFFUyhlbmNyeXB0ZWRSZXNwb25zZSk7XG4gICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShkZWNyeXB0ZWRSZXNwb25zZSk7XG4gICAgICAgICAgICByZXMuZGF0YSA9IGRhdGE7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gVmVyaWZ5IHNpZ25hdHVyZSBhbmQgaGFuZGxlIHJlc3BvbnNlXG4gICAgICAgICAgdGhpcy52ZXJpZnlTaWduYXR1cmUoXG4gICAgICAgICAgICB0aGlzLmRhdGFEZXJpdmF0aXZlTG9naWMoZGF0YSksXG4gICAgICAgICAgICByZXM/LmhlYWRlcnMsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBpc1ZlcmlmeVNpZ25hdHVyZVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKCh2ZXJpZmljYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHJlcyk7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycj8ucmVzcG9uc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIChlcnIpID0+IHtcbiAgICAgICAgICBsZXQgZGF0YSA9IGVycj8ucmVzcG9uc2U/LmRhdGE7XG5cbiAgICAgICAgICAvLyBEZWNyeXB0IGVycm9yIHJlc3BvbnNlIGlmIHJlcXVpcmVkXG4gICAgICAgICAgaWYgKGRhdGEgJiYgaXNEZWNyeXB0KSB7XG4gICAgICAgICAgICBjb25zdCBlbmNyeXB0ZWRSZXNwb25zZSA9IGRhdGE7XG4gICAgICAgICAgICBjb25zdCBkZWNyeXB0ZWRSZXNwb25zZSA9IGF3YWl0IGRlY3J5cHRXaXRoQUVTKGVuY3J5cHRlZFJlc3BvbnNlKTtcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRlY3J5cHRlZFJlc3BvbnNlKTtcbiAgICAgICAgICAgIGVyci5yZXNwb25zZS5kYXRhID0gZGF0YTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBWZXJpZnkgc2lnbmF0dXJlIGFuZCBoYW5kbGUgcmVzcG9uc2VcbiAgICAgICAgICB0aGlzLnZlcmlmeVNpZ25hdHVyZShcbiAgICAgICAgICAgIHRoaXMuZGF0YURlcml2YXRpdmVMb2dpYyhkYXRhKSxcbiAgICAgICAgICAgIGVycj8ucmVzcG9uc2U/LmhlYWRlcnMsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBpc1ZlcmlmeVNpZ25hdHVyZVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKCh2ZXJpZmljYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnI/LnJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycj8ucmVzcG9uc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byBleGVjdXRlIEFQSSBjYWxsIGJhc2VkIG9uIG1ldGhvZCB0eXBlXG4gIGV4ZWN1dGVBcGlDYWxsKFxuICAgIHVybCxcbiAgICBtZXRob2QsXG4gICAgYm9keSxcbiAgICBoZWFkZXJzLFxuICAgIGlzRW5jcnlwdCxcbiAgICBpc0RlY3J5cHQsXG4gICAgaXNWZXJpZnlTaWduYXR1cmVcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAobWV0aG9kID09IFwiR0VUXCIpIHtcbiAgICAgICAgdGhpcy5nZXQoXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIHsgaGVhZGVyczogaGVhZGVycyB9LFxuICAgICAgICAgIGlzRGVjcnlwdCxcbiAgICAgICAgICBpc1ZlcmlmeVNpZ25hdHVyZVxuICAgICAgICApLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBvc3QoXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIGJvZHksXG4gICAgICAgICAgeyBoZWFkZXJzOiBoZWFkZXJzIH0sXG4gICAgICAgICAgaXNFbmNyeXB0LFxuICAgICAgICAgIGlzRGVjcnlwdCxcbiAgICAgICAgICBpc1ZlcmlmeVNpZ25hdHVyZVxuICAgICAgICApLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -843,21 +843,26 @@ const setFieldAsFormElement = (field, value) => {
843
843
  };
844
844
  const getMinDate = (field) => {
845
845
  if (checkObjectKeyExists(field, "min")) {
846
+ /**
847
+ * This is to handler old version of config.
848
+ * Please don't add "min" at field level, add it insider field.properties only.
849
+ */
846
850
  return convertFormFieldTypeDateToKwikUIFormat(field["min"]);
847
851
  }
848
852
  else {
849
- return new TuiDay(0, 0, 1); // Year - 0000, Month - 0 (0 Indexing), Day - 1
853
+ return {};
850
854
  }
851
855
  };
852
856
  const getMaxDate = (field) => {
853
857
  if (checkObjectKeyExists(field, "max")) {
858
+ /**
859
+ * This is to handler old version of config.
860
+ * Please don't add "max" at field level, add it insider field.properties only.
861
+ */
854
862
  return convertFormFieldTypeDateToKwikUIFormat(field["max"]);
855
863
  }
856
864
  else {
857
- return new TuiDay(new Date().getFullYear(), // Year - 9999
858
- new Date().getMonth(), // Month - 11 (0 Indexing)
859
- new Date().getDate() // Day - 31
860
- );
865
+ return {};
861
866
  }
862
867
  };
863
868
  const updateLanguage = (object, language) => {
@@ -2743,26 +2748,20 @@ class KwikIDFormViewApiService {
2743
2748
  // Function to verify the signature
2744
2749
  verifySignature(data, header, url, isVerifySignature) {
2745
2750
  return new Promise((resolve, reject) => {
2746
- // Log the function call for verification
2747
- console.log("Verify Signature: Function Called For", url, header);
2748
2751
  // Check if the signature is disabled
2749
2752
  if (!isVerifySignature) {
2750
- console.log("Verify Signature: Authentication Disabled");
2751
2753
  resolve(true);
2752
2754
  }
2753
2755
  // Check if data is invalid
2754
2756
  else if (!data) {
2755
- console.log("Verify Signature: Data Not Available");
2756
2757
  resolve(true);
2757
2758
  }
2758
2759
  // Check if the signature is missing in headers when authentication is not skipped
2759
2760
  else if (isVerifySignature && header && !(header === null || header === void 0 ? void 0 : header.sig)) {
2760
- console.log("Verify Signature Failure: Signature Not Present in Headers");
2761
2761
  reject(false);
2762
2762
  }
2763
2763
  // Verify the signature when public key and header with signature are present and authentication is not skipped
2764
2764
  else if (isVerifySignature && header && (header === null || header === void 0 ? void 0 : header.sig)) {
2765
- console.log("Verify Signature: Signature Present in Headers");
2766
2765
  // Extract the signature and decode it
2767
2766
  let signature = header.sig.split(".")[0];
2768
2767
  let rawSignature = atob(signature);
@@ -2777,30 +2776,22 @@ class KwikIDFormViewApiService {
2777
2776
  let dateCheck = dateValue < parseInt(exp);
2778
2777
  // Check if the signature matches the data
2779
2778
  let res = signature === data;
2780
- console.log("Verify Signature: Matching", signature, data);
2781
- console.log("Verify Signature: Time", dateValue, parseInt(exp), parseInt(exp) - dateValue);
2782
- console.log("Verify Signature: Date", new Date(dateValue), new Date(parseInt(exp)));
2783
- console.log("Verify Signature: Signature Converted to Required Format");
2784
2779
  // Resolve the promise if the signature is valid and the date check passes
2785
2780
  if (res && dateCheck) {
2786
- console.log("Verify Signature Success");
2787
2781
  resolve(res);
2788
2782
  }
2789
2783
  else {
2790
2784
  // Reject the promise if the signature is invalid or the date check fails
2791
- console.log("Verify Signature Failure: Signature did not match");
2792
2785
  reject(res);
2793
2786
  }
2794
2787
  }
2795
2788
  else {
2796
2789
  // Reject the promise if the signature is not in the required format
2797
- console.log("Verify Signature Failure: Signature Not Converted to Required Format");
2798
2790
  reject(false);
2799
2791
  }
2800
2792
  }
2801
2793
  else {
2802
2794
  // Resolve the promise if the signature is missing in headers
2803
- console.log("Verify Signature Failure: Signature Not Present in Headers");
2804
2795
  resolve(true);
2805
2796
  }
2806
2797
  });
@@ -2827,7 +2818,6 @@ class KwikIDFormViewApiService {
2827
2818
  const encryptedResponse = data;
2828
2819
  const decryptedResponse = yield decryptWithAES(encryptedResponse);
2829
2820
  data = JSON.parse(decryptedResponse);
2830
- console.log("Decrypted Response", data);
2831
2821
  res.data = data;
2832
2822
  }
2833
2823
  // Verify signature and handle response
@@ -2847,7 +2837,6 @@ class KwikIDFormViewApiService {
2847
2837
  const encryptedResponse = data;
2848
2838
  const decryptedResponse = yield decryptWithAES(encryptedResponse);
2849
2839
  data = JSON.parse(decryptedResponse);
2850
- console.log("Decrypted Response", data);
2851
2840
  err.response.data = data;
2852
2841
  }
2853
2842
  // Verify signature and handle response
@@ -2879,7 +2868,6 @@ class KwikIDFormViewApiService {
2879
2868
  const encryptedResponse = data;
2880
2869
  const decryptedResponse = yield decryptWithAES(encryptedResponse);
2881
2870
  data = JSON.parse(decryptedResponse);
2882
- console.log("Decrypted Response", data);
2883
2871
  res.data = data;
2884
2872
  }
2885
2873
  // Verify signature and handle response
@@ -2899,7 +2887,6 @@ class KwikIDFormViewApiService {
2899
2887
  const encryptedResponse = data;
2900
2888
  const decryptedResponse = yield decryptWithAES(encryptedResponse);
2901
2889
  data = JSON.parse(decryptedResponse);
2902
- console.log("Decrypted Response", data);
2903
2890
  err.response.data = data;
2904
2891
  }
2905
2892
  // Verify signature and handle response