obsidian-dev-utils 13.15.1-beta.10 → 13.15.1-beta.12

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.
@@ -32,7 +32,7 @@ __export(Library_exports, {
32
32
  LIBRARY_VERSION: () => LIBRARY_VERSION
33
33
  });
34
34
  module.exports = __toCommonJS(Library_exports);
35
- const LIBRARY_VERSION = "13.15.1-beta.10";
35
+ const LIBRARY_VERSION = "13.15.1-beta.12";
36
36
  const LIBRARY_NAME = "obsidian-dev-utils";
37
37
  const LIBRARY_STYLES = ".obsidian-dev-utils.plugin-settings-tab .value-component-invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n";
38
38
  // Annotate the CommonJS export names for ESM import in node:
@@ -27,13 +27,15 @@ var __copyProps = (to, from, except, desc) => {
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
28
  var ValueComponent_exports = {};
29
29
  __export(ValueComponent_exports, {
30
- extend: () => extend
30
+ extend: () => extend,
31
+ revalidate: () => revalidate
31
32
  });
32
33
  module.exports = __toCommonJS(ValueComponent_exports);
33
34
  var import_obsidian = require('obsidian');
34
35
  var import_Async = require('../../Async.cjs');
35
36
  var import_Object = require('../../Object.cjs');
36
37
  const VALUE_COMPONENT_INVALID_CLASS = "value-component-invalid";
38
+ const validatorsMap = /* @__PURE__ */ new WeakMap();
37
39
  class ValueComponentEx {
38
40
  constructor(valueComponent) {
39
41
  this.valueComponent = valueComponent;
@@ -72,6 +74,12 @@ class ValueComponentEx {
72
74
  const errorMessage = await optionsExt.valueValidator(uiValue);
73
75
  const validatorElement2 = getValidatorElement(this.valueComponent);
74
76
  validatorElement2?.setCustomValidity(errorMessage ?? "");
77
+ if (validatorElement2?.isActiveElement()) {
78
+ validatorElement2.removeClass(VALUE_COMPONENT_INVALID_CLASS);
79
+ validatorElement2.reportValidity();
80
+ } else {
81
+ validatorElement2?.toggleClass(VALUE_COMPONENT_INVALID_CLASS, !!errorMessage);
82
+ }
75
83
  return !errorMessage;
76
84
  };
77
85
  this.valueComponent.setValue(optionsExt.pluginSettingsToComponentValueConverter(pluginSettingsFn()[property])).onChange(async (uiValue) => {
@@ -86,23 +94,22 @@ class ValueComponentEx {
86
94
  await optionsExt.onChanged?.();
87
95
  });
88
96
  const validatorElement = getValidatorElement(this.valueComponent);
89
- validatorElement?.addEventListener("focus", (0, import_Async.convertAsyncToSync)(async () => {
90
- await validate();
91
- const validatorElement2 = getValidatorElement(this.valueComponent);
92
- validatorElement2?.removeClass(VALUE_COMPONENT_INVALID_CLASS);
93
- validatorElement2?.reportValidity();
94
- }));
95
- validatorElement?.addEventListener("blur", (0, import_Async.convertAsyncToSync)(async () => {
96
- const isValid = await validate();
97
- const validatorElement2 = getValidatorElement(this.valueComponent);
98
- validatorElement2?.toggleClass(VALUE_COMPONENT_INVALID_CLASS, !isValid);
99
- }));
97
+ validatorElement?.addEventListener("focus", (0, import_Async.convertAsyncToSync)(() => validate()));
98
+ validatorElement?.addEventListener("blur", (0, import_Async.convertAsyncToSync)(() => validate()));
99
+ validatorsMap.set(this.valueComponent, () => validate());
100
100
  return this.asExtended();
101
101
  }
102
102
  }
103
103
  function extend(valueComponent) {
104
104
  return new ValueComponentEx(valueComponent).asExtended();
105
105
  }
106
+ async function revalidate(valueComponent) {
107
+ const validator = validatorsMap.get(valueComponent);
108
+ if (validator) {
109
+ return await validator();
110
+ }
111
+ return true;
112
+ }
106
113
  function getValidatorElement(valueComponent) {
107
114
  if (valueComponent instanceof import_obsidian.DropdownComponent) {
108
115
  return valueComponent.selectEl;
@@ -120,6 +127,7 @@ function getValidatorElement(valueComponent) {
120
127
  }
121
128
  // Annotate the CommonJS export names for ESM import in node:
122
129
  0 && (module.exports = {
123
- extend
130
+ extend,
131
+ revalidate
124
132
  });
125
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9WYWx1ZUNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gVmFsdWVDb21wb25lbnRcbiAqIENvbnRhaW5zIHV0aWxpdHkgdHlwZXMgYW5kIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgdmFsdWUgY29tcG9uZW50cywgd2hpY2ggYXJlIFVJIGNvbXBvbmVudHMgdGhhdCBkaXNwbGF5IGFuZCBlZGl0IHZhbHVlcy5cbiAqL1xuXG5pbXBvcnQge1xuICBEcm9wZG93bkNvbXBvbmVudCxcbiAgU2xpZGVyQ29tcG9uZW50LFxuICBUZXh0QXJlYUNvbXBvbmVudCxcbiAgVGV4dENvbXBvbmVudCxcbiAgVmFsdWVDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IEtleXNNYXRjaGluZyB9IGZyb20gJy4uLy4uL0B0eXBlcy50cyc7XG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uLy4uL0FzeW5jLnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL0hUTUxFbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luQmFzZSB9IGZyb20gJy4vUGx1Z2luQmFzZS50cyc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpblNldHRpbmdzQmFzZSB9IGZyb20gJy4vUGx1Z2luU2V0dGluZ3NCYXNlLnRzJztcblxuaW1wb3J0IHsgY29udmVydEFzeW5jVG9TeW5jIH0gZnJvbSAnLi4vLi4vQXN5bmMudHMnO1xuaW1wb3J0IHsgYXNzaWduV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vT2JqZWN0LnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBiaW5kaW5nIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gKi9cbmludGVyZmFjZSBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPiB7XG4gIC8qKlxuICAgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICovXG4gIG9uQ2hhbmdlZD86ICgpID0+IE1heWJlUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QgdG8gYmluZCB0aGUgY29tcG9uZW50IHRvLiBEZWZhdWx0IGlzIHRoZSBwbHVnaW4ncyBjdXJyZW50IHNldHRpbmdzLlxuICAgKi9cbiAgcGx1Z2luU2V0dGluZ3M/OiBQbHVnaW5TZXR0aW5ncztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgc2F2ZXMgdGhlIHBsdWdpbiBzZXR0aW5ncyBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSBjb21wb25lbnQgdmFsdWUgY2hhbmdlcy4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRBdXRvU2F2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgVUkgdmFsdWUgYmVmb3JlIHNldHRpbmcgaXQgb24gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICogQHBhcmFtIHVpVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgQW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgdmFsdWUgaXMgaW52YWxpZCwgb3IgYChlbXB0eSBzdHJpbmcpYCBvciBgdm9pZGAgaWYgaXQgaXMgdmFsaWQuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdm9pZC10eXBlXG4gIHZhbHVlVmFsaWRhdG9yPzogKHVpVmFsdWU6IFVJVmFsdWUpID0+IE1heWJlUHJvbWlzZTxzdHJpbmcgfCB2b2lkPjtcbn1cblxuLyoqXG4gKiBFeHRlbmRlZCBvcHRpb25zIGZvciBiaW5kaW5nIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gKi9cbmludGVyZmFjZSBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3M+IGV4dGVuZHMgQmluZFZhbHVlQ29tcG9uZW50T3B0aW9uczxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZT4ge1xuICAvKipcbiAgICogQ29udmVydHMgdGhlIFVJIGNvbXBvbmVudCdzIHZhbHVlIGJhY2sgdG8gdGhlIHBsdWdpbiBzZXR0aW5ncyB2YWx1ZS5cbiAgICogQHBhcmFtIHVpVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIHRvIHNldCBvbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyOiAodWlWYWx1ZTogVUlWYWx1ZSkgPT4gUGx1Z2luU2V0dGluZ3NbUHJvcGVydHldO1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgcGx1Z2luIHNldHRpbmdzIHZhbHVlIHRvIHRoZSB2YWx1ZSB1c2VkIGJ5IHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBwbHVnaW5TZXR0aW5nc1ZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBVSSBjb21wb25lbnQuXG4gICAqL1xuICBwbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXI6IChwbHVnaW5TZXR0aW5nc1ZhbHVlOiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV0pID0+IFVJVmFsdWU7XG59XG5cbi8qKlxuICogVmFsdWVDb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCBhcyBhbiBvcmlnaW5hbCBWYWx1ZUNvbXBvbmVudCB3aXRoIGV4dGVuZGVkIGZ1bmN0aW9uYWxpdHkuXG4gKi9cbnR5cGUgVmFsdWVDb21wb25lbnRFeFR5cGU8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50IGV4dGVuZHMgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4+ID0gVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRFeDxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+O1xuXG4vKipcbiAqIEEgVmFsdWVDb21wb25lbnQgdGhhdCBjYW4gdHJhY2sgY2hhbmdlcy5cbiAqL1xuaW50ZXJmYWNlIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFQ+IGV4dGVuZHMgVmFsdWVDb21wb25lbnQ8VD4ge1xuICAvKipcbiAgICogU2V0cyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50IGNoYW5nZXMuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudCBjaGFuZ2VzLlxuICAgKi9cbiAgb25DaGFuZ2UoY2FsbGJhY2s6IChuZXdWYWx1ZTogVCkgPT4gUHJvbWlzZTx2b2lkPik6IHRoaXM7XG59XG5cbmNvbnN0IFZBTFVFX0NPTVBPTkVOVF9JTlZBTElEX0NMQVNTID0gJ3ZhbHVlLWNvbXBvbmVudC1pbnZhbGlkJztcblxuLyoqXG4gKiBWYWx1ZUNvbXBvbmVudCB3aXRoIGV4dGVuZGVkIGZ1bmN0aW9uYWxpdHkuXG4gKi9cbmNsYXNzIFZhbHVlQ29tcG9uZW50RXg8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50IGV4dGVuZHMgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4+IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgdmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCkge1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIFZhbHVlQ29tcG9uZW50IHdpdGggZXh0ZW5kZWQgZnVuY3Rpb25hbGl0eS5cbiAgICovXG4gIHB1YmxpYyBhc0V4dGVuZGVkKCk6IFZhbHVlQ29tcG9uZW50RXhUeXBlPFVJVmFsdWUsIFRWYWx1ZUNvbXBvbmVudD4ge1xuICAgIHJldHVybiBhc3NpZ25XaXRoTm9uRW51bWVyYWJsZVByb3BlcnRpZXMoe30sIHRoaXMudmFsdWVDb21wb25lbnQsIHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJpbmRzIHRoZSBWYWx1ZUNvbXBvbmVudCB0byBhIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIG9iamVjdC5cbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eSAtIFRoZSBrZXkgb2YgdGhlIHBsdWdpbiBzZXR0aW5nIHRoYXQgdGhlIGNvbXBvbmVudCBpcyBib3VuZCB0by5cbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4uXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBrZXkgaW4gYFBsdWdpblNldHRpbmdzYCB0byBiaW5kIHRvIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKiBAcmV0dXJucyBUaGUgYFZhbHVlQ29tcG9uZW50YCBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBwdWJsaWMgYmluZDxcbiAgICBQbHVnaW5TZXR0aW5ncyBleHRlbmRzIFBsdWdpblNldHRpbmdzQmFzZSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVyc1xuICAgIFByb3BlcnR5IGV4dGVuZHMgS2V5c01hdGNoaW5nPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPlxuICA+KFxuICAgIHBsdWdpbjogUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncz4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIG9wdGlvbnM/OiBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPlxuICApOiBWYWx1ZUNvbXBvbmVudEV4VHlwZTxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+O1xuXG4gIC8qKlxuICAgKiBCaW5kcyB0aGUgVmFsdWVDb21wb25lbnQgdG8gYSBwcm9wZXJ0eSBpbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCBleHRlbmRzIGBQbHVnaW5CYXNlYC5cbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eSAtIFRoZSBrZXkgb2YgdGhlIHBsdWdpbiBzZXR0aW5nIHRoYXQgdGhlIGNvbXBvbmVudCBpcyBib3VuZCB0by5cbiAgICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbi5cbiAgICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IGtleSBpbiBgUGx1Z2luU2V0dGluZ3NgIHRvIGJpbmQgdG8gdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIFRoZSBgVmFsdWVDb21wb25lbnRgIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFBsdWdpblNldHRpbmdzIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NCYXNlLFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3NcbiAgPihcbiAgICBwbHVnaW46IFBsdWdpbkJhc2U8UGx1Z2luU2V0dGluZ3M+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBvcHRpb25zOiBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5PlxuICApOiBWYWx1ZUNvbXBvbmVudEV4VHlwZTxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+O1xuXG4gIC8qKlxuICAgKiBCaW5kcyB0aGUgVmFsdWVDb21wb25lbnQgdG8gYSBwcm9wZXJ0eSBpbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCBleHRlbmRzIGBQbHVnaW5CYXNlYC5cbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eSAtIFRoZSBrZXkgb2YgdGhlIHBsdWdpbiBzZXR0aW5nIHRoYXQgdGhlIGNvbXBvbmVudCBpcyBib3VuZCB0by5cbiAgICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbi5cbiAgICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IGtleSBpbiBgUGx1Z2luU2V0dGluZ3NgIHRvIGJpbmQgdG8gdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIFRoZSBgVmFsdWVDb21wb25lbnRgIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFBsdWdpblNldHRpbmdzIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NCYXNlLFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3NcbiAgPihcbiAgICBwbHVnaW46IFBsdWdpbkJhc2U8UGx1Z2luU2V0dGluZ3M+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBvcHRpb25zPzogQmluZFZhbHVlQ29tcG9uZW50T3B0aW9uczxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZT5cbiAgKTogVmFsdWVDb21wb25lbnRFeFR5cGU8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50PiB7XG4gICAgdHlwZSBQcm9wZXJ0eVR5cGUgPSBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV07XG4gICAgY29uc3QgREVGQVVMVF9PUFRJT05TOiBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5PiA9IHtcbiAgICAgIGNvbXBvbmVudFRvUGx1Z2luU2V0dGluZ3NWYWx1ZUNvbnZlcnRlcjogKHZhbHVlKTogUHJvcGVydHlUeXBlID0+IHZhbHVlIGFzIFByb3BlcnR5VHlwZSxcbiAgICAgIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHZhbHVlKTogVUlWYWx1ZSA9PiB2YWx1ZSBhcyBVSVZhbHVlLFxuICAgICAgc2hvdWxkQXV0b1NhdmU6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3Qgb3B0aW9uc0V4dDogQmluZFZhbHVlQ29tcG9uZW50T3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eT4gPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuICAgIGNvbnN0IHBsdWdpbkV4dCA9IHBsdWdpbiBhcyB1bmtub3duIGFzIFBsdWdpbkJhc2U8UGx1Z2luU2V0dGluZ3M+O1xuICAgIGNvbnN0IHBsdWdpblNldHRpbmdzRm4gPSAoKTogUGx1Z2luU2V0dGluZ3MgPT4gb3B0aW9uc0V4dC5wbHVnaW5TZXR0aW5ncyA/PyBwbHVnaW5FeHQuc2V0dGluZ3NDb3B5O1xuXG4gICAgY29uc3QgdmFsaWRhdGUgPSBhc3luYyAodWlWYWx1ZT86IFVJVmFsdWUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICAgIGlmICghb3B0aW9uc0V4dC52YWx1ZVZhbGlkYXRvcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHVpVmFsdWUgPz89IHRoaXMudmFsdWVDb21wb25lbnQuZ2V0VmFsdWUoKTtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IG9wdGlvbnNFeHQudmFsdWVWYWxpZGF0b3IodWlWYWx1ZSkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgY29uc3QgdmFsaWRhdG9yRWxlbWVudCA9IGdldFZhbGlkYXRvckVsZW1lbnQodGhpcy52YWx1ZUNvbXBvbmVudCk7XG4gICAgICB2YWxpZGF0b3JFbGVtZW50Py5zZXRDdXN0b21WYWxpZGl0eShlcnJvck1lc3NhZ2UgPz8gJycpO1xuXG4gICAgICByZXR1cm4gIWVycm9yTWVzc2FnZTtcbiAgICB9O1xuXG4gICAgdGhpcy52YWx1ZUNvbXBvbmVudFxuICAgICAgLnNldFZhbHVlKG9wdGlvbnNFeHQucGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyKHBsdWdpblNldHRpbmdzRm4oKVtwcm9wZXJ0eV0pKVxuICAgICAgLm9uQ2hhbmdlKGFzeW5jICh1aVZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghYXdhaXQgdmFsaWRhdGUodWlWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGx1Z2luU2V0dGluZ3MgPSBwbHVnaW5TZXR0aW5nc0ZuKCk7XG4gICAgICAgIHBsdWdpblNldHRpbmdzW3Byb3BlcnR5XSA9IG9wdGlvbnNFeHQuY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyKHVpVmFsdWUpO1xuICAgICAgICBpZiAob3B0aW9uc0V4dC5zaG91bGRBdXRvU2F2ZSkge1xuICAgICAgICAgIGF3YWl0IHBsdWdpbkV4dC5zYXZlU2V0dGluZ3MocGx1Z2luU2V0dGluZ3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgb3B0aW9uc0V4dC5vbkNoYW5nZWQ/LigpO1xuICAgICAgfSk7XG5cbiAgICBjb25zdCB2YWxpZGF0b3JFbGVtZW50ID0gZ2V0VmFsaWRhdG9yRWxlbWVudCh0aGlzLnZhbHVlQ29tcG9uZW50KTtcbiAgICB2YWxpZGF0b3JFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB2YWxpZGF0ZSgpO1xuICAgICAgY29uc3QgdmFsaWRhdG9yRWxlbWVudCA9IGdldFZhbGlkYXRvckVsZW1lbnQodGhpcy52YWx1ZUNvbXBvbmVudCk7XG4gICAgICB2YWxpZGF0b3JFbGVtZW50Py5yZW1vdmVDbGFzcyhWQUxVRV9DT01QT05FTlRfSU5WQUxJRF9DTEFTUyk7XG4gICAgICB2YWxpZGF0b3JFbGVtZW50Py5yZXBvcnRWYWxpZGl0eSgpO1xuICAgIH0pKTtcbiAgICB2YWxpZGF0b3JFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSBhd2FpdCB2YWxpZGF0ZSgpO1xuICAgICAgY29uc3QgdmFsaWRhdG9yRWxlbWVudCA9IGdldFZhbGlkYXRvckVsZW1lbnQodGhpcy52YWx1ZUNvbXBvbmVudCk7XG4gICAgICB2YWxpZGF0b3JFbGVtZW50Py50b2dnbGVDbGFzcyhWQUxVRV9DT01QT05FTlRfSU5WQUxJRF9DTEFTUywgIWlzVmFsaWQpO1xuICAgIH0pKTtcblxuICAgIHJldHVybiB0aGlzLmFzRXh0ZW5kZWQoKTtcbiAgfVxufVxuXG4vKipcbiAqIEV4dGVuZHMgYSBWYWx1ZUNvbXBvbmVudCB3aXRoIGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBAdHlwZVBhcmFtIFVJVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgdGhlIGNvbXBvbmVudCBkaXNwbGF5cy5cbiAqIEB0eXBlUGFyYW0gVFZhbHVlQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIGNvbXBvbmVudCBleHRlbmRpbmcgYFZhbHVlQ29tcG9uZW50YC5cbiAqIEBwYXJhbSB2YWx1ZUNvbXBvbmVudCAtIFRoZSB2YWx1ZSBjb21wb25lbnQgdG8gZXh0ZW5kLlxuICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudCB3aXRoIGV4dGVuZGVkIGZ1bmN0aW9uYWxpdHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQ8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50IGV4dGVuZHMgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4+KHZhbHVlQ29tcG9uZW50OiBUVmFsdWVDb21wb25lbnQgJiBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxVSVZhbHVlPik6IFZhbHVlQ29tcG9uZW50RXhUeXBlPFVJVmFsdWUsIFRWYWx1ZUNvbXBvbmVudD4ge1xuICByZXR1cm4gbmV3IFZhbHVlQ29tcG9uZW50RXg8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50Pih2YWx1ZUNvbXBvbmVudCkuYXNFeHRlbmRlZCgpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIHZhbGlkYXRvciBlbGVtZW50IGZyb20gYSB2YWx1ZSBjb21wb25lbnQgaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB2YWx1ZUNvbXBvbmVudCAtIFRoZSB2YWx1ZSBjb21wb25lbnQgdG8gZ2V0IHRoZSB2YWxpZGF0b3IgZWxlbWVudCBmcm9tLlxuICogQHJldHVybnMgVGhlIHZhbGlkYXRvciBlbGVtZW50IGlmIGl0IGV4aXN0cywgb3IgYG51bGxgIGlmIGl0IGRvZXMgbm90LlxuICovXG5mdW5jdGlvbiBnZXRWYWxpZGF0b3JFbGVtZW50PFVJVmFsdWU+KHZhbHVlQ29tcG9uZW50OiBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxVSVZhbHVlPik6IG51bGwgfCBWYWxpZGF0b3JFbGVtZW50IHtcbiAgaWYgKHZhbHVlQ29tcG9uZW50IGluc3RhbmNlb2YgRHJvcGRvd25Db21wb25lbnQpIHtcbiAgICByZXR1cm4gdmFsdWVDb21wb25lbnQuc2VsZWN0RWw7XG4gIH1cblxuICBpZiAodmFsdWVDb21wb25lbnQgaW5zdGFuY2VvZiBTbGlkZXJDb21wb25lbnQpIHtcbiAgICByZXR1cm4gdmFsdWVDb21wb25lbnQuc2xpZGVyRWw7XG4gIH1cblxuICBpZiAodmFsdWVDb21wb25lbnQgaW5zdGFuY2VvZiBUZXh0QXJlYUNvbXBvbmVudCkge1xuICAgIHJldHVybiB2YWx1ZUNvbXBvbmVudC5pbnB1dEVsO1xuICB9XG5cbiAgaWYgKHZhbHVlQ29tcG9uZW50IGluc3RhbmNlb2YgVGV4dENvbXBvbmVudCkge1xuICAgIHJldHVybiB2YWx1ZUNvbXBvbmVudC5pbnB1dEVsO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0Esc0JBTU87QUFRUCxtQkFBbUM7QUFDbkMsb0JBQWtEO0FBa0VsRCxNQUFNLGdDQUFnQztBQUt0QyxNQUFNLGlCQUE2RjtBQUFBLEVBQzFGLFlBQW9CLGdCQUFpQztBQUFqQztBQUFBLEVBQzNCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxhQUE2RDtBQUNsRSxlQUFPLGlEQUFrQyxDQUFDLEdBQUcsS0FBSyxnQkFBZ0IsSUFBSTtBQUFBLEVBQ3hFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBcURPLEtBSUwsUUFDQSxVQUNBLFNBQ2dEO0FBRWhELFVBQU0sa0JBQXdGO0FBQUEsTUFDNUYseUNBQXlDLENBQUMsVUFBd0I7QUFBQSxNQUNsRSx5Q0FBeUMsQ0FBQyxVQUFtQjtBQUFBLE1BQzdELGdCQUFnQjtBQUFBLElBQ2xCO0FBRUEsVUFBTSxhQUFtRixFQUFFLEdBQUcsaUJBQWlCLEdBQUcsUUFBUTtBQUMxSCxVQUFNLFlBQVk7QUFDbEIsVUFBTSxtQkFBbUIsTUFBc0IsV0FBVyxrQkFBa0IsVUFBVTtBQUV0RixVQUFNLFdBQVcsT0FBTyxZQUF3QztBQUM5RCxVQUFJLENBQUMsV0FBVyxnQkFBZ0I7QUFDOUIsZUFBTztBQUFBLE1BQ1Q7QUFDQSxrQkFBWSxLQUFLLGVBQWUsU0FBUztBQUN6QyxZQUFNLGVBQWUsTUFBTSxXQUFXLGVBQWUsT0FBTztBQUM1RCxZQUFNQSxvQkFBbUIsb0JBQW9CLEtBQUssY0FBYztBQUNoRSxNQUFBQSxtQkFBa0Isa0JBQWtCLGdCQUFnQixFQUFFO0FBRXRELGFBQU8sQ0FBQztBQUFBLElBQ1Y7QUFFQSxTQUFLLGVBQ0YsU0FBUyxXQUFXLHdDQUF3QyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUN6RixTQUFTLE9BQU8sWUFBWTtBQUMzQixVQUFJLENBQUMsTUFBTSxTQUFTLE9BQU8sR0FBRztBQUM1QjtBQUFBLE1BQ0Y7QUFDQSxZQUFNLGlCQUFpQixpQkFBaUI7QUFDeEMscUJBQWUsUUFBUSxJQUFJLFdBQVcsd0NBQXdDLE9BQU87QUFDckYsVUFBSSxXQUFXLGdCQUFnQjtBQUM3QixjQUFNLFVBQVUsYUFBYSxjQUFjO0FBQUEsTUFDN0M7QUFFQSxZQUFNLFdBQVcsWUFBWTtBQUFBLElBQy9CLENBQUM7QUFFSCxVQUFNLG1CQUFtQixvQkFBb0IsS0FBSyxjQUFjO0FBQ2hFLHNCQUFrQixpQkFBaUIsYUFBUyxpQ0FBbUIsWUFBWTtBQUN6RSxZQUFNLFNBQVM7QUFDZixZQUFNQSxvQkFBbUIsb0JBQW9CLEtBQUssY0FBYztBQUNoRSxNQUFBQSxtQkFBa0IsWUFBWSw2QkFBNkI7QUFDM0QsTUFBQUEsbUJBQWtCLGVBQWU7QUFBQSxJQUNuQyxDQUFDLENBQUM7QUFDRixzQkFBa0IsaUJBQWlCLFlBQVEsaUNBQW1CLFlBQVk7QUFDeEUsWUFBTSxVQUFVLE1BQU0sU0FBUztBQUMvQixZQUFNQSxvQkFBbUIsb0JBQW9CLEtBQUssY0FBYztBQUNoRSxNQUFBQSxtQkFBa0IsWUFBWSwrQkFBK0IsQ0FBQyxPQUFPO0FBQUEsSUFDdkUsQ0FBQyxDQUFDO0FBRUYsV0FBTyxLQUFLLFdBQVc7QUFBQSxFQUN6QjtBQUNGO0FBVU8sU0FBUyxPQUFtRixnQkFBNkg7QUFDOU4sU0FBTyxJQUFJLGlCQUEyQyxjQUFjLEVBQUUsV0FBVztBQUNuRjtBQVFBLFNBQVMsb0JBQTZCLGdCQUFvRjtBQUN4SCxNQUFJLDBCQUEwQixtQ0FBbUI7QUFDL0MsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxNQUFJLDBCQUEwQixpQ0FBaUI7QUFDN0MsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxNQUFJLDBCQUEwQixtQ0FBbUI7QUFDL0MsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxNQUFJLDBCQUEwQiwrQkFBZTtBQUMzQyxXQUFPLGVBQWU7QUFBQSxFQUN4QjtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFsidmFsaWRhdG9yRWxlbWVudCJdCn0K
133
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9WYWx1ZUNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gVmFsdWVDb21wb25lbnRcbiAqIENvbnRhaW5zIHV0aWxpdHkgdHlwZXMgYW5kIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgdmFsdWUgY29tcG9uZW50cywgd2hpY2ggYXJlIFVJIGNvbXBvbmVudHMgdGhhdCBkaXNwbGF5IGFuZCBlZGl0IHZhbHVlcy5cbiAqL1xuXG5pbXBvcnQge1xuICBEcm9wZG93bkNvbXBvbmVudCxcbiAgU2xpZGVyQ29tcG9uZW50LFxuICBUZXh0QXJlYUNvbXBvbmVudCxcbiAgVGV4dENvbXBvbmVudCxcbiAgVmFsdWVDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IEtleXNNYXRjaGluZyB9IGZyb20gJy4uLy4uL0B0eXBlcy50cyc7XG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uLy4uL0FzeW5jLnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL0hUTUxFbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luQmFzZSB9IGZyb20gJy4vUGx1Z2luQmFzZS50cyc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpblNldHRpbmdzQmFzZSB9IGZyb20gJy4vUGx1Z2luU2V0dGluZ3NCYXNlLnRzJztcblxuaW1wb3J0IHsgY29udmVydEFzeW5jVG9TeW5jIH0gZnJvbSAnLi4vLi4vQXN5bmMudHMnO1xuaW1wb3J0IHsgYXNzaWduV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vT2JqZWN0LnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBiaW5kaW5nIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gKi9cbmludGVyZmFjZSBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPiB7XG4gIC8qKlxuICAgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICovXG4gIG9uQ2hhbmdlZD86ICgpID0+IE1heWJlUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QgdG8gYmluZCB0aGUgY29tcG9uZW50IHRvLiBEZWZhdWx0IGlzIHRoZSBwbHVnaW4ncyBjdXJyZW50IHNldHRpbmdzLlxuICAgKi9cbiAgcGx1Z2luU2V0dGluZ3M/OiBQbHVnaW5TZXR0aW5ncztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgc2F2ZXMgdGhlIHBsdWdpbiBzZXR0aW5ncyBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSBjb21wb25lbnQgdmFsdWUgY2hhbmdlcy4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRBdXRvU2F2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgVUkgdmFsdWUgYmVmb3JlIHNldHRpbmcgaXQgb24gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICogQHBhcmFtIHVpVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgQW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgdmFsdWUgaXMgaW52YWxpZCwgb3IgYChlbXB0eSBzdHJpbmcpYCBvciBgdm9pZGAgaWYgaXQgaXMgdmFsaWQuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdm9pZC10eXBlXG4gIHZhbHVlVmFsaWRhdG9yPzogKHVpVmFsdWU6IFVJVmFsdWUpID0+IE1heWJlUHJvbWlzZTxzdHJpbmcgfCB2b2lkPjtcbn1cblxuLyoqXG4gKiBFeHRlbmRlZCBvcHRpb25zIGZvciBiaW5kaW5nIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gKi9cbmludGVyZmFjZSBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3M+IGV4dGVuZHMgQmluZFZhbHVlQ29tcG9uZW50T3B0aW9uczxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZT4ge1xuICAvKipcbiAgICogQ29udmVydHMgdGhlIFVJIGNvbXBvbmVudCdzIHZhbHVlIGJhY2sgdG8gdGhlIHBsdWdpbiBzZXR0aW5ncyB2YWx1ZS5cbiAgICogQHBhcmFtIHVpVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIHRvIHNldCBvbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyOiAodWlWYWx1ZTogVUlWYWx1ZSkgPT4gUGx1Z2luU2V0dGluZ3NbUHJvcGVydHldO1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgcGx1Z2luIHNldHRpbmdzIHZhbHVlIHRvIHRoZSB2YWx1ZSB1c2VkIGJ5IHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBwbHVnaW5TZXR0aW5nc1ZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBVSSBjb21wb25lbnQuXG4gICAqL1xuICBwbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXI6IChwbHVnaW5TZXR0aW5nc1ZhbHVlOiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV0pID0+IFVJVmFsdWU7XG59XG5cbi8qKlxuICogVmFsdWVDb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCBhcyBhbiBvcmlnaW5hbCBWYWx1ZUNvbXBvbmVudCB3aXRoIGV4dGVuZGVkIGZ1bmN0aW9uYWxpdHkuXG4gKi9cbnR5cGUgVmFsdWVDb21wb25lbnRFeFR5cGU8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50IGV4dGVuZHMgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4+ID0gVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRFeDxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+O1xuXG4vKipcbiAqIEEgVmFsdWVDb21wb25lbnQgdGhhdCBjYW4gdHJhY2sgY2hhbmdlcy5cbiAqL1xuaW50ZXJmYWNlIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFQ+IGV4dGVuZHMgVmFsdWVDb21wb25lbnQ8VD4ge1xuICAvKipcbiAgICogU2V0cyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50IGNoYW5nZXMuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudCBjaGFuZ2VzLlxuICAgKi9cbiAgb25DaGFuZ2UoY2FsbGJhY2s6IChuZXdWYWx1ZTogVCkgPT4gUHJvbWlzZTx2b2lkPik6IHRoaXM7XG59XG5cbmNvbnN0IFZBTFVFX0NPTVBPTkVOVF9JTlZBTElEX0NMQVNTID0gJ3ZhbHVlLWNvbXBvbmVudC1pbnZhbGlkJztcbmNvbnN0IHZhbGlkYXRvcnNNYXAgPSBuZXcgV2Vha01hcDxWYWx1ZUNvbXBvbmVudDx1bmtub3duPiwgKCkgPT4gUHJvbWlzZTxib29sZWFuPj4oKTtcblxuLyoqXG4gKiBWYWx1ZUNvbXBvbmVudCB3aXRoIGV4dGVuZGVkIGZ1bmN0aW9uYWxpdHkuXG4gKi9cbmNsYXNzIFZhbHVlQ29tcG9uZW50RXg8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50IGV4dGVuZHMgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4+IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgdmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCkge1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIFZhbHVlQ29tcG9uZW50IHdpdGggZXh0ZW5kZWQgZnVuY3Rpb25hbGl0eS5cbiAgICovXG4gIHB1YmxpYyBhc0V4dGVuZGVkKCk6IFZhbHVlQ29tcG9uZW50RXhUeXBlPFVJVmFsdWUsIFRWYWx1ZUNvbXBvbmVudD4ge1xuICAgIHJldHVybiBhc3NpZ25XaXRoTm9uRW51bWVyYWJsZVByb3BlcnRpZXMoe30sIHRoaXMudmFsdWVDb21wb25lbnQsIHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJpbmRzIHRoZSBWYWx1ZUNvbXBvbmVudCB0byBhIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIG9iamVjdC5cbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eSAtIFRoZSBrZXkgb2YgdGhlIHBsdWdpbiBzZXR0aW5nIHRoYXQgdGhlIGNvbXBvbmVudCBpcyBib3VuZCB0by5cbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4uXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBrZXkgaW4gYFBsdWdpblNldHRpbmdzYCB0byBiaW5kIHRvIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKiBAcmV0dXJucyBUaGUgYFZhbHVlQ29tcG9uZW50YCBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBwdWJsaWMgYmluZDxcbiAgICBQbHVnaW5TZXR0aW5ncyBleHRlbmRzIFBsdWdpblNldHRpbmdzQmFzZSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVyc1xuICAgIFByb3BlcnR5IGV4dGVuZHMgS2V5c01hdGNoaW5nPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPlxuICA+KFxuICAgIHBsdWdpbjogUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncz4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIG9wdGlvbnM/OiBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPlxuICApOiBWYWx1ZUNvbXBvbmVudEV4VHlwZTxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+O1xuXG4gIC8qKlxuICAgKiBCaW5kcyB0aGUgVmFsdWVDb21wb25lbnQgdG8gYSBwcm9wZXJ0eSBpbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCBleHRlbmRzIGBQbHVnaW5CYXNlYC5cbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eSAtIFRoZSBrZXkgb2YgdGhlIHBsdWdpbiBzZXR0aW5nIHRoYXQgdGhlIGNvbXBvbmVudCBpcyBib3VuZCB0by5cbiAgICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbi5cbiAgICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IGtleSBpbiBgUGx1Z2luU2V0dGluZ3NgIHRvIGJpbmQgdG8gdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIFRoZSBgVmFsdWVDb21wb25lbnRgIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFBsdWdpblNldHRpbmdzIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NCYXNlLFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3NcbiAgPihcbiAgICBwbHVnaW46IFBsdWdpbkJhc2U8UGx1Z2luU2V0dGluZ3M+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBvcHRpb25zOiBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5PlxuICApOiBWYWx1ZUNvbXBvbmVudEV4VHlwZTxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+O1xuXG4gIC8qKlxuICAgKiBCaW5kcyB0aGUgVmFsdWVDb21wb25lbnQgdG8gYSBwcm9wZXJ0eSBpbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCBleHRlbmRzIGBQbHVnaW5CYXNlYC5cbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eSAtIFRoZSBrZXkgb2YgdGhlIHBsdWdpbiBzZXR0aW5nIHRoYXQgdGhlIGNvbXBvbmVudCBpcyBib3VuZCB0by5cbiAgICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbi5cbiAgICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IGtleSBpbiBgUGx1Z2luU2V0dGluZ3NgIHRvIGJpbmQgdG8gdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIFRoZSBgVmFsdWVDb21wb25lbnRgIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFBsdWdpblNldHRpbmdzIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NCYXNlLFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3NcbiAgPihcbiAgICBwbHVnaW46IFBsdWdpbkJhc2U8UGx1Z2luU2V0dGluZ3M+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBvcHRpb25zPzogQmluZFZhbHVlQ29tcG9uZW50T3B0aW9uczxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZT5cbiAgKTogVmFsdWVDb21wb25lbnRFeFR5cGU8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50PiB7XG4gICAgdHlwZSBQcm9wZXJ0eVR5cGUgPSBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV07XG4gICAgY29uc3QgREVGQVVMVF9PUFRJT05TOiBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5PiA9IHtcbiAgICAgIGNvbXBvbmVudFRvUGx1Z2luU2V0dGluZ3NWYWx1ZUNvbnZlcnRlcjogKHZhbHVlKTogUHJvcGVydHlUeXBlID0+IHZhbHVlIGFzIFByb3BlcnR5VHlwZSxcbiAgICAgIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHZhbHVlKTogVUlWYWx1ZSA9PiB2YWx1ZSBhcyBVSVZhbHVlLFxuICAgICAgc2hvdWxkQXV0b1NhdmU6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3Qgb3B0aW9uc0V4dDogQmluZFZhbHVlQ29tcG9uZW50T3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eT4gPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuICAgIGNvbnN0IHBsdWdpbkV4dCA9IHBsdWdpbiBhcyB1bmtub3duIGFzIFBsdWdpbkJhc2U8UGx1Z2luU2V0dGluZ3M+O1xuICAgIGNvbnN0IHBsdWdpblNldHRpbmdzRm4gPSAoKTogUGx1Z2luU2V0dGluZ3MgPT4gb3B0aW9uc0V4dC5wbHVnaW5TZXR0aW5ncyA/PyBwbHVnaW5FeHQuc2V0dGluZ3NDb3B5O1xuXG4gICAgY29uc3QgdmFsaWRhdGUgPSBhc3luYyAodWlWYWx1ZT86IFVJVmFsdWUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICAgIGlmICghb3B0aW9uc0V4dC52YWx1ZVZhbGlkYXRvcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHVpVmFsdWUgPz89IHRoaXMudmFsdWVDb21wb25lbnQuZ2V0VmFsdWUoKTtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IG9wdGlvbnNFeHQudmFsdWVWYWxpZGF0b3IodWlWYWx1ZSkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgY29uc3QgdmFsaWRhdG9yRWxlbWVudCA9IGdldFZhbGlkYXRvckVsZW1lbnQodGhpcy52YWx1ZUNvbXBvbmVudCk7XG4gICAgICB2YWxpZGF0b3JFbGVtZW50Py5zZXRDdXN0b21WYWxpZGl0eShlcnJvck1lc3NhZ2UgPz8gJycpO1xuICAgICAgaWYgKHZhbGlkYXRvckVsZW1lbnQ/LmlzQWN0aXZlRWxlbWVudCgpKSB7XG4gICAgICAgIHZhbGlkYXRvckVsZW1lbnQucmVtb3ZlQ2xhc3MoVkFMVUVfQ09NUE9ORU5UX0lOVkFMSURfQ0xBU1MpO1xuICAgICAgICB2YWxpZGF0b3JFbGVtZW50LnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWxpZGF0b3JFbGVtZW50Py50b2dnbGVDbGFzcyhWQUxVRV9DT01QT05FTlRfSU5WQUxJRF9DTEFTUywgISFlcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gIWVycm9yTWVzc2FnZTtcbiAgICB9O1xuXG4gICAgdGhpcy52YWx1ZUNvbXBvbmVudFxuICAgICAgLnNldFZhbHVlKG9wdGlvbnNFeHQucGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyKHBsdWdpblNldHRpbmdzRm4oKVtwcm9wZXJ0eV0pKVxuICAgICAgLm9uQ2hhbmdlKGFzeW5jICh1aVZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghYXdhaXQgdmFsaWRhdGUodWlWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGx1Z2luU2V0dGluZ3MgPSBwbHVnaW5TZXR0aW5nc0ZuKCk7XG4gICAgICAgIHBsdWdpblNldHRpbmdzW3Byb3BlcnR5XSA9IG9wdGlvbnNFeHQuY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyKHVpVmFsdWUpO1xuICAgICAgICBpZiAob3B0aW9uc0V4dC5zaG91bGRBdXRvU2F2ZSkge1xuICAgICAgICAgIGF3YWl0IHBsdWdpbkV4dC5zYXZlU2V0dGluZ3MocGx1Z2luU2V0dGluZ3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgb3B0aW9uc0V4dC5vbkNoYW5nZWQ/LigpO1xuICAgICAgfSk7XG5cbiAgICBjb25zdCB2YWxpZGF0b3JFbGVtZW50ID0gZ2V0VmFsaWRhdG9yRWxlbWVudCh0aGlzLnZhbHVlQ29tcG9uZW50KTtcbiAgICB2YWxpZGF0b3JFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGNvbnZlcnRBc3luY1RvU3luYygoKSA9PiB2YWxpZGF0ZSgpKSk7XG4gICAgdmFsaWRhdG9yRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIGNvbnZlcnRBc3luY1RvU3luYygoKSA9PiB2YWxpZGF0ZSgpKSk7XG4gICAgdmFsaWRhdG9yc01hcC5zZXQodGhpcy52YWx1ZUNvbXBvbmVudCBhcyBWYWx1ZUNvbXBvbmVudDx1bmtub3duPiwgKCkgPT4gdmFsaWRhdGUoKSk7XG5cbiAgICByZXR1cm4gdGhpcy5hc0V4dGVuZGVkKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBFeHRlbmRzIGEgVmFsdWVDb21wb25lbnQgd2l0aCBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHkuXG4gKlxuICogQHR5cGVQYXJhbSBVSVZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHRoZSBjb21wb25lbnQgZGlzcGxheXMuXG4gKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQgZXh0ZW5kaW5nIGBWYWx1ZUNvbXBvbmVudGAuXG4gKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGV4dGVuZC5cbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBjb21wb25lbnQgd2l0aCBleHRlbmRlZCBmdW5jdGlvbmFsaXR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kPFVJVmFsdWUsIFRWYWx1ZUNvbXBvbmVudCBleHRlbmRzIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+Pih2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4pOiBWYWx1ZUNvbXBvbmVudEV4VHlwZTxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+IHtcbiAgcmV0dXJuIG5ldyBWYWx1ZUNvbXBvbmVudEV4PFVJVmFsdWUsIFRWYWx1ZUNvbXBvbmVudD4odmFsdWVDb21wb25lbnQpLmFzRXh0ZW5kZWQoKTtcbn1cblxuLyoqXG4gKiBSZXZhbGlkYXRlcyBhIHZhbHVlIGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIHJldmFsaWRhdGUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlIGNvbXBvbmVudCBpcyB2YWxpZCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXZhbGlkYXRlKHZhbHVlQ29tcG9uZW50OiBWYWx1ZUNvbXBvbmVudDx1bmtub3duPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB2YWxpZGF0b3IgPSB2YWxpZGF0b3JzTWFwLmdldCh2YWx1ZUNvbXBvbmVudCk7XG4gIGlmICh2YWxpZGF0b3IpIHtcbiAgICByZXR1cm4gYXdhaXQgdmFsaWRhdG9yKCk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSB2YWxpZGF0b3IgZWxlbWVudCBmcm9tIGEgdmFsdWUgY29tcG9uZW50IGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGdldCB0aGUgdmFsaWRhdG9yIGVsZW1lbnQgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0b3IgZWxlbWVudCBpZiBpdCBleGlzdHMsIG9yIGBudWxsYCBpZiBpdCBkb2VzIG5vdC5cbiAqL1xuZnVuY3Rpb24gZ2V0VmFsaWRhdG9yRWxlbWVudDxVSVZhbHVlPih2YWx1ZUNvbXBvbmVudDogVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4pOiBudWxsIHwgVmFsaWRhdG9yRWxlbWVudCB7XG4gIGlmICh2YWx1ZUNvbXBvbmVudCBpbnN0YW5jZW9mIERyb3Bkb3duQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHZhbHVlQ29tcG9uZW50LnNlbGVjdEVsO1xuICB9XG5cbiAgaWYgKHZhbHVlQ29tcG9uZW50IGluc3RhbmNlb2YgU2xpZGVyQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHZhbHVlQ29tcG9uZW50LnNsaWRlckVsO1xuICB9XG5cbiAgaWYgKHZhbHVlQ29tcG9uZW50IGluc3RhbmNlb2YgVGV4dEFyZWFDb21wb25lbnQpIHtcbiAgICByZXR1cm4gdmFsdWVDb21wb25lbnQuaW5wdXRFbDtcbiAgfVxuXG4gIGlmICh2YWx1ZUNvbXBvbmVudCBpbnN0YW5jZW9mIFRleHRDb21wb25lbnQpIHtcbiAgICByZXR1cm4gdmFsdWVDb21wb25lbnQuaW5wdXRFbDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0Esc0JBTU87QUFRUCxtQkFBbUM7QUFDbkMsb0JBQWtEO0FBa0VsRCxNQUFNLGdDQUFnQztBQUN0QyxNQUFNLGdCQUFnQixvQkFBSSxRQUF5RDtBQUtuRixNQUFNLGlCQUE2RjtBQUFBLEVBQzFGLFlBQW9CLGdCQUFpQztBQUFqQztBQUFBLEVBQzNCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxhQUE2RDtBQUNsRSxlQUFPLGlEQUFrQyxDQUFDLEdBQUcsS0FBSyxnQkFBZ0IsSUFBSTtBQUFBLEVBQ3hFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBcURPLEtBSUwsUUFDQSxVQUNBLFNBQ2dEO0FBRWhELFVBQU0sa0JBQXdGO0FBQUEsTUFDNUYseUNBQXlDLENBQUMsVUFBd0I7QUFBQSxNQUNsRSx5Q0FBeUMsQ0FBQyxVQUFtQjtBQUFBLE1BQzdELGdCQUFnQjtBQUFBLElBQ2xCO0FBRUEsVUFBTSxhQUFtRixFQUFFLEdBQUcsaUJBQWlCLEdBQUcsUUFBUTtBQUMxSCxVQUFNLFlBQVk7QUFDbEIsVUFBTSxtQkFBbUIsTUFBc0IsV0FBVyxrQkFBa0IsVUFBVTtBQUV0RixVQUFNLFdBQVcsT0FBTyxZQUF3QztBQUM5RCxVQUFJLENBQUMsV0FBVyxnQkFBZ0I7QUFDOUIsZUFBTztBQUFBLE1BQ1Q7QUFDQSxrQkFBWSxLQUFLLGVBQWUsU0FBUztBQUN6QyxZQUFNLGVBQWUsTUFBTSxXQUFXLGVBQWUsT0FBTztBQUM1RCxZQUFNQSxvQkFBbUIsb0JBQW9CLEtBQUssY0FBYztBQUNoRSxNQUFBQSxtQkFBa0Isa0JBQWtCLGdCQUFnQixFQUFFO0FBQ3RELFVBQUlBLG1CQUFrQixnQkFBZ0IsR0FBRztBQUN2QyxRQUFBQSxrQkFBaUIsWUFBWSw2QkFBNkI7QUFDMUQsUUFBQUEsa0JBQWlCLGVBQWU7QUFBQSxNQUNsQyxPQUFPO0FBQ0wsUUFBQUEsbUJBQWtCLFlBQVksK0JBQStCLENBQUMsQ0FBQyxZQUFZO0FBQUEsTUFDN0U7QUFFQSxhQUFPLENBQUM7QUFBQSxJQUNWO0FBRUEsU0FBSyxlQUNGLFNBQVMsV0FBVyx3Q0FBd0MsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFDekYsU0FBUyxPQUFPLFlBQVk7QUFDM0IsVUFBSSxDQUFDLE1BQU0sU0FBUyxPQUFPLEdBQUc7QUFDNUI7QUFBQSxNQUNGO0FBQ0EsWUFBTSxpQkFBaUIsaUJBQWlCO0FBQ3hDLHFCQUFlLFFBQVEsSUFBSSxXQUFXLHdDQUF3QyxPQUFPO0FBQ3JGLFVBQUksV0FBVyxnQkFBZ0I7QUFDN0IsY0FBTSxVQUFVLGFBQWEsY0FBYztBQUFBLE1BQzdDO0FBRUEsWUFBTSxXQUFXLFlBQVk7QUFBQSxJQUMvQixDQUFDO0FBRUgsVUFBTSxtQkFBbUIsb0JBQW9CLEtBQUssY0FBYztBQUNoRSxzQkFBa0IsaUJBQWlCLGFBQVMsaUNBQW1CLE1BQU0sU0FBUyxDQUFDLENBQUM7QUFDaEYsc0JBQWtCLGlCQUFpQixZQUFRLGlDQUFtQixNQUFNLFNBQVMsQ0FBQyxDQUFDO0FBQy9FLGtCQUFjLElBQUksS0FBSyxnQkFBMkMsTUFBTSxTQUFTLENBQUM7QUFFbEYsV0FBTyxLQUFLLFdBQVc7QUFBQSxFQUN6QjtBQUNGO0FBVU8sU0FBUyxPQUFtRixnQkFBNkg7QUFDOU4sU0FBTyxJQUFJLGlCQUEyQyxjQUFjLEVBQUUsV0FBVztBQUNuRjtBQVFBLGVBQXNCLFdBQVcsZ0JBQTJEO0FBQzFGLFFBQU0sWUFBWSxjQUFjLElBQUksY0FBYztBQUNsRCxNQUFJLFdBQVc7QUFDYixXQUFPLE1BQU0sVUFBVTtBQUFBLEVBQ3pCO0FBRUEsU0FBTztBQUNUO0FBUUEsU0FBUyxvQkFBNkIsZ0JBQW9GO0FBQ3hILE1BQUksMEJBQTBCLG1DQUFtQjtBQUMvQyxXQUFPLGVBQWU7QUFBQSxFQUN4QjtBQUVBLE1BQUksMEJBQTBCLGlDQUFpQjtBQUM3QyxXQUFPLGVBQWU7QUFBQSxFQUN4QjtBQUVBLE1BQUksMEJBQTBCLG1DQUFtQjtBQUMvQyxXQUFPLGVBQWU7QUFBQSxFQUN4QjtBQUVBLE1BQUksMEJBQTBCLCtCQUFlO0FBQzNDLFdBQU8sZUFBZTtBQUFBLEVBQ3hCO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJ2YWxpZGF0b3JFbGVtZW50Il0KfQo=
@@ -105,4 +105,11 @@ declare class ValueComponentEx<UIValue, TValueComponent extends ValueComponentWi
105
105
  * @returns The value component with extended functionality.
106
106
  */
107
107
  export declare function extend<UIValue, TValueComponent extends ValueComponentWithChangeTracking<UIValue>>(valueComponent: TValueComponent & ValueComponentWithChangeTracking<UIValue>): ValueComponentExType<UIValue, TValueComponent>;
108
+ /**
109
+ * Revalidates a value component.
110
+ *
111
+ * @param valueComponent - The value component to revalidate.
112
+ * @returns `true` if the value component is valid, `false` otherwise.
113
+ */
114
+ export declare function revalidate(valueComponent: ValueComponent<unknown>): Promise<boolean>;
108
115
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidian-dev-utils",
3
- "version": "13.15.1-beta.10",
3
+ "version": "13.15.1-beta.12",
4
4
  "description": "This is the collection of useful functions that you can use for your Obsidian plugin development",
5
5
  "main": "./dist/lib/index.cjs",
6
6
  "types": "./dist/lib/index.d.ts",