obsidian-dev-utils 4.10.0 → 4.11.0

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.
Files changed (84) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/lib/Async.cjs +50 -35
  3. package/dist/lib/Async.d.ts +66 -66
  4. package/dist/lib/Blob.cjs +11 -11
  5. package/dist/lib/Blob.d.ts +7 -7
  6. package/dist/lib/Error.cjs +17 -17
  7. package/dist/lib/Error.d.ts +14 -14
  8. package/dist/lib/Function.cjs +8 -8
  9. package/dist/lib/Function.d.ts +12 -12
  10. package/dist/lib/Object.cjs +36 -36
  11. package/dist/lib/Object.d.ts +55 -55
  12. package/dist/lib/Path.cjs +16 -16
  13. package/dist/lib/Path.d.ts +28 -28
  14. package/dist/lib/String.cjs +35 -35
  15. package/dist/lib/String.d.ts +55 -55
  16. package/dist/lib/ValueProvider.cjs +4 -4
  17. package/dist/lib/obsidian/App.cjs +6 -6
  18. package/dist/lib/obsidian/App.d.ts +7 -7
  19. package/dist/lib/obsidian/AttachmentPath.cjs +9 -9
  20. package/dist/lib/obsidian/AttachmentPath.d.ts +8 -8
  21. package/dist/lib/obsidian/Backlink.cjs +28 -28
  22. package/dist/lib/obsidian/Backlink.d.ts +22 -22
  23. package/dist/lib/obsidian/Callout.cjs +13 -13
  24. package/dist/lib/obsidian/Dataview.cjs +40 -40
  25. package/dist/lib/obsidian/Dataview.d.ts +69 -69
  26. package/dist/lib/obsidian/FileChange.cjs +7 -7
  27. package/dist/lib/obsidian/FileChange.d.ts +22 -22
  28. package/dist/lib/obsidian/FileManager.cjs +18 -18
  29. package/dist/lib/obsidian/FileManager.d.ts +11 -11
  30. package/dist/lib/obsidian/FileSystem.cjs +31 -31
  31. package/dist/lib/obsidian/FileSystem.d.ts +41 -41
  32. package/dist/lib/obsidian/FrontMatter.cjs +1 -1
  33. package/dist/lib/obsidian/FrontMatter.d.ts +6 -6
  34. package/dist/lib/obsidian/Link.cjs +154 -154
  35. package/dist/lib/obsidian/Link.d.ts +163 -163
  36. package/dist/lib/obsidian/MetadataCache.cjs +61 -61
  37. package/dist/lib/obsidian/MetadataCache.d.ts +28 -28
  38. package/dist/lib/obsidian/Modal/Alert.cjs +7 -7
  39. package/dist/lib/obsidian/Modal/Confirm.cjs +7 -7
  40. package/dist/lib/obsidian/Modal/Prompt.cjs +15 -15
  41. package/dist/lib/obsidian/Modal/SelectItem.cjs +7 -7
  42. package/dist/lib/obsidian/ObsidianSettings.cjs +4 -4
  43. package/dist/lib/obsidian/ObsidianSettings.d.ts +6 -6
  44. package/dist/lib/obsidian/Plugin/Plugin.cjs +6 -6
  45. package/dist/lib/obsidian/Plugin/Plugin.d.ts +7 -7
  46. package/dist/lib/obsidian/Plugin/PluginBase.cjs +52 -52
  47. package/dist/lib/obsidian/Plugin/PluginBase.d.ts +29 -29
  48. package/dist/lib/obsidian/Plugin/PluginSettings.cjs +4 -4
  49. package/dist/lib/obsidian/Plugin/PluginSettings.d.ts +8 -8
  50. package/dist/lib/obsidian/Plugin/ValueComponent.cjs +1 -1
  51. package/dist/lib/obsidian/Plugin/ValueComponent.d.ts +51 -51
  52. package/dist/lib/obsidian/Queue.cjs +76 -0
  53. package/dist/lib/obsidian/Queue.d.ts +28 -0
  54. package/dist/lib/obsidian/Reference.cjs +12 -12
  55. package/dist/lib/obsidian/Reference.d.ts +7 -7
  56. package/dist/lib/obsidian/RenameDeleteHandler.cjs +130 -130
  57. package/dist/lib/obsidian/Vault.cjs +116 -116
  58. package/dist/lib/obsidian/Vault.d.ts +70 -70
  59. package/dist/lib/obsidian/index.cjs +4 -4
  60. package/dist/lib/obsidian/index.d.ts +1 -1
  61. package/dist/lib/scripts/CliUtils.cjs +30 -30
  62. package/dist/lib/scripts/CliUtils.d.ts +11 -11
  63. package/dist/lib/scripts/ESLint/eslint.config.cjs +1 -1
  64. package/dist/lib/scripts/Exec.cjs +1 -1
  65. package/dist/lib/scripts/Exec.d.ts +21 -21
  66. package/dist/lib/scripts/Fs.cjs +11 -11
  67. package/dist/lib/scripts/Fs.d.ts +13 -13
  68. package/dist/lib/scripts/JSON.cjs +7 -7
  69. package/dist/lib/scripts/JSON.d.ts +16 -16
  70. package/dist/lib/scripts/Npm.cjs +13 -13
  71. package/dist/lib/scripts/Npm.d.ts +43 -43
  72. package/dist/lib/scripts/Root.cjs +4 -4
  73. package/dist/lib/scripts/Root.d.ts +8 -8
  74. package/dist/lib/scripts/build.cjs +4 -4
  75. package/dist/lib/scripts/build.d.ts +8 -8
  76. package/dist/lib/scripts/cli.cjs +1 -1
  77. package/dist/lib/scripts/esbuild/Dependency.cjs +21 -21
  78. package/dist/lib/scripts/esbuild/Dependency.d.ts +6 -6
  79. package/dist/lib/scripts/esbuild/fixSourceMapsPlugin.cjs +5 -5
  80. package/dist/lib/scripts/version.cjs +134 -134
  81. package/dist/lib/scripts/version.d.ts +70 -70
  82. package/package.json +11 -11
  83. package/dist/lib/obsidian/ChainedPromise.cjs +0 -59
  84. package/dist/lib/obsidian/ChainedPromise.d.ts +0 -26
@@ -31,20 +31,20 @@ __export(Plugin_exports, {
31
31
  module.exports = __toCommonJS(Plugin_exports);
32
32
  var import_obsidian = require('obsidian');
33
33
  var import_Error = require('../../Error.cjs');
34
- async function showErrorAndDisablePlugin(plugin, message) {
35
- new import_obsidian.Notice(message);
36
- (0, import_Error.printError)(new Error(message));
37
- await plugin.app.plugins.disablePlugin(plugin.manifest.id);
38
- }
39
34
  async function reloadPlugin(plugin) {
40
35
  const plugins = plugin.app.plugins;
41
36
  const pluginId = plugin.manifest.id;
42
37
  await plugins.disablePlugin(pluginId);
43
38
  await plugins.enablePlugin(pluginId);
44
39
  }
40
+ async function showErrorAndDisablePlugin(plugin, message) {
41
+ new import_obsidian.Notice(message);
42
+ (0, import_Error.printError)(new Error(message));
43
+ await plugin.app.plugins.disablePlugin(plugin.manifest.id);
44
+ }
45
45
  // Annotate the CommonJS export names for ESM import in node:
46
46
  0 && (module.exports = {
47
47
  reloadPlugin,
48
48
  showErrorAndDisablePlugin
49
49
  });
50
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIE9ic2lkaWFuIHBsdWdpbnMsXG4gKiBpbmNsdWRpbmcgZGlzcGxheWluZyBlcnJvciBtZXNzYWdlcywgZGlzYWJsaW5nIHBsdWdpbnMsIGFuZCByZWxvYWRpbmcgdGhlbS5cbiAqL1xuXG5pbXBvcnQge1xuICBOb3RpY2UsXG4gIFBsdWdpblxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICcuLi8uLi9FcnJvci50cyc7XG5cbi8qKlxuICogRGlzcGxheXMgYW4gZXJyb3IgbWVzc2FnZSBhcyBhIG5vdGljZSwgbG9ncyBpdCB0byB0aGUgY29uc29sZSwgYW5kIGRpc2FibGVzIHRoZSBzcGVjaWZpZWQgcGx1Z2luLlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIGRpc2FibGUuXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgYW5kIGxvZy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyBkaXNhYmxlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dFcnJvckFuZERpc2FibGVQbHVnaW4ocGx1Z2luOiBQbHVnaW4sIG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBuZXcgTm90aWNlKG1lc3NhZ2UpO1xuICBwcmludEVycm9yKG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gIGF3YWl0IHBsdWdpbi5hcHAucGx1Z2lucy5kaXNhYmxlUGx1Z2luKHBsdWdpbi5tYW5pZmVzdC5pZCk7XG59XG5cbi8qKlxuICogUmVsb2FkcyB0aGUgc3BlY2lmaWVkIHBsdWdpbiBieSBkaXNhYmxpbmcgYW5kIHRoZW4gcmUtZW5hYmxpbmcgaXQuXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gcmVsb2FkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkUGx1Z2luKHBsdWdpbjogUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbnMgPSBwbHVnaW4uYXBwLnBsdWdpbnM7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuICBhd2FpdCBwbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luSWQpO1xuICBhd2FpdCBwbHVnaW5zLmVuYWJsZVBsdWdpbihwbHVnaW5JZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsc0JBR087QUFFUCxtQkFBMkI7QUFTM0IsZUFBc0IsMEJBQTBCLFFBQWdCLFNBQWdDO0FBQzlGLE1BQUksdUJBQU8sT0FBTztBQUNsQiwrQkFBVyxJQUFJLE1BQU0sT0FBTyxDQUFDO0FBQzdCLFFBQU0sT0FBTyxJQUFJLFFBQVEsY0FBYyxPQUFPLFNBQVMsRUFBRTtBQUMzRDtBQVFBLGVBQXNCLGFBQWEsUUFBK0I7QUFDaEUsUUFBTSxVQUFVLE9BQU8sSUFBSTtBQUMzQixRQUFNLFdBQVcsT0FBTyxTQUFTO0FBQ2pDLFFBQU0sUUFBUSxjQUFjLFFBQVE7QUFDcEMsUUFBTSxRQUFRLGFBQWEsUUFBUTtBQUNyQzsiLAogICJuYW1lcyI6IFtdCn0K
50
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIE9ic2lkaWFuIHBsdWdpbnMsXG4gKiBpbmNsdWRpbmcgZGlzcGxheWluZyBlcnJvciBtZXNzYWdlcywgZGlzYWJsaW5nIHBsdWdpbnMsIGFuZCByZWxvYWRpbmcgdGhlbS5cbiAqL1xuXG5pbXBvcnQge1xuICBOb3RpY2UsXG4gIFBsdWdpblxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICcuLi8uLi9FcnJvci50cyc7XG5cbi8qKlxuICogUmVsb2FkcyB0aGUgc3BlY2lmaWVkIHBsdWdpbiBieSBkaXNhYmxpbmcgYW5kIHRoZW4gcmUtZW5hYmxpbmcgaXQuXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gcmVsb2FkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkUGx1Z2luKHBsdWdpbjogUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbnMgPSBwbHVnaW4uYXBwLnBsdWdpbnM7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuICBhd2FpdCBwbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luSWQpO1xuICBhd2FpdCBwbHVnaW5zLmVuYWJsZVBsdWdpbihwbHVnaW5JZCk7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gZXJyb3IgbWVzc2FnZSBhcyBhIG5vdGljZSwgbG9ncyBpdCB0byB0aGUgY29uc29sZSwgYW5kIGRpc2FibGVzIHRoZSBzcGVjaWZpZWQgcGx1Z2luLlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIGRpc2FibGUuXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgYW5kIGxvZy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyBkaXNhYmxlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dFcnJvckFuZERpc2FibGVQbHVnaW4ocGx1Z2luOiBQbHVnaW4sIG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBuZXcgTm90aWNlKG1lc3NhZ2UpO1xuICBwcmludEVycm9yKG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gIGF3YWl0IHBsdWdpbi5hcHAucGx1Z2lucy5kaXNhYmxlUGx1Z2luKHBsdWdpbi5tYW5pZmVzdC5pZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsc0JBR087QUFFUCxtQkFBMkI7QUFRM0IsZUFBc0IsYUFBYSxRQUErQjtBQUNoRSxRQUFNLFVBQVUsT0FBTyxJQUFJO0FBQzNCLFFBQU0sV0FBVyxPQUFPLFNBQVM7QUFDakMsUUFBTSxRQUFRLGNBQWMsUUFBUTtBQUNwQyxRQUFNLFFBQVEsYUFBYSxRQUFRO0FBQ3JDO0FBU0EsZUFBc0IsMEJBQTBCLFFBQWdCLFNBQWdDO0FBQzlGLE1BQUksdUJBQU8sT0FBTztBQUNsQiwrQkFBVyxJQUFJLE1BQU0sT0FBTyxDQUFDO0FBQzdCLFFBQU0sT0FBTyxJQUFJLFFBQVEsY0FBYyxPQUFPLFNBQVMsRUFBRTtBQUMzRDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -4,6 +4,13 @@
4
4
  * including displaying error messages, disabling plugins, and reloading them.
5
5
  */
6
6
  import { Plugin } from 'obsidian';
7
+ /**
8
+ * Reloads the specified plugin by disabling and then re-enabling it.
9
+ *
10
+ * @param plugin - The plugin to reload.
11
+ * @returns A promise that resolves when the plugin is reloaded.
12
+ */
13
+ export declare function reloadPlugin(plugin: Plugin): Promise<void>;
7
14
  /**
8
15
  * Displays an error message as a notice, logs it to the console, and disables the specified plugin.
9
16
  *
@@ -12,10 +19,3 @@ import { Plugin } from 'obsidian';
12
19
  * @returns A promise that resolves when the plugin is disabled.
13
20
  */
14
21
  export declare function showErrorAndDisablePlugin(plugin: Plugin, message: string): Promise<void>;
15
- /**
16
- * Reloads the specified plugin by disabling and then re-enabling it.
17
- *
18
- * @param plugin - The plugin to reload.
19
- * @returns A promise that resolves when the plugin is reloaded.
20
- */
21
- export declare function reloadPlugin(plugin: Plugin): Promise<void>;
@@ -38,57 +38,33 @@ var __process = globalThis["process"] ?? {
38
38
  "platform": "android"
39
39
  };
40
40
  class PluginBase extends import_obsidian.Plugin {
41
- _abortSignal;
42
- _settings;
43
- notice;
44
- /**
45
- * Called when the layout is ready. This method can be overridden by subclasses to perform actions once
46
- * the layout is ready.
47
- *
48
- * @returns A promise or void indicating the completion of the layout setup.
49
- */
50
- onLayoutReady() {
51
- (0, import_Function.noop)();
52
- }
53
- /**
54
- * Called when the plugin loading is complete. This method must be implemented by subclasses to perform
55
- * any additional setup required after loading is complete.
56
- *
57
- * @returns A promise or void indicating the completion of the load process.
58
- */
59
- onloadComplete() {
60
- (0, import_Function.noop)();
61
- }
62
41
  /**
63
- * Parses the provided settings data and returns the parsed `PluginSettings`.
42
+ * Gets a copy of the current plugin settings.
64
43
  *
65
- * @param data - The raw data to be parsed into `PluginSettings`.
66
- * @returns A promise that resolves to `PluginSettings` or the settings directly.
44
+ * @returns A copy of the plugin settings.
67
45
  */
68
- parseSettings(data) {
69
- return (0, import_PluginSettings.loadPluginSettings)(this.createDefaultPluginSettings.bind(this), data);
46
+ get settingsCopy() {
47
+ return (0, import_PluginSettings.clonePluginSettings)(this.createDefaultPluginSettings.bind(this), this.settings);
70
48
  }
71
49
  /**
72
- * Displays a notice message to the user.
50
+ * Gets the AbortSignal used for aborting long-running operations.
73
51
  *
74
- * @param message - The message to display.
52
+ * @returns The abort signal.
75
53
  */
76
- showNotice(message) {
77
- if (this.notice) {
78
- this.notice.hide();
79
- }
80
- this.notice = new import_obsidian.Notice(`${this.manifest.name}
81
- ${message}`);
54
+ get abortSignal() {
55
+ return this._abortSignal;
82
56
  }
83
57
  /**
84
- * Loads the plugin settings from the saved data.
58
+ * Gets the plugin settings.
85
59
  *
86
- * @returns A promise that resolves when the settings are loaded.
60
+ * @returns The plugin settings.
87
61
  */
88
- async loadSettings() {
89
- const data = await this.loadData();
90
- this._settings = await this.parseSettings(data);
62
+ get settings() {
63
+ return this._settings;
91
64
  }
65
+ _abortSignal;
66
+ _settings;
67
+ notice;
92
68
  /**
93
69
  * Called when the plugin is loaded
94
70
  */
@@ -120,32 +96,56 @@ ${message}`);
120
96
  await this.saveData(this.settings);
121
97
  }
122
98
  /**
123
- * Gets the AbortSignal used for aborting long-running operations.
99
+ * Called when the layout is ready. This method can be overridden by subclasses to perform actions once
100
+ * the layout is ready.
124
101
  *
125
- * @returns The abort signal.
102
+ * @returns A promise or void indicating the completion of the layout setup.
126
103
  */
127
- get abortSignal() {
128
- return this._abortSignal;
104
+ onLayoutReady() {
105
+ (0, import_Function.noop)();
129
106
  }
130
107
  /**
131
- * Gets the plugin settings.
108
+ * Called when the plugin loading is complete. This method must be implemented by subclasses to perform
109
+ * any additional setup required after loading is complete.
132
110
  *
133
- * @returns The plugin settings.
111
+ * @returns A promise or void indicating the completion of the load process.
134
112
  */
135
- get settings() {
136
- return this._settings;
113
+ onloadComplete() {
114
+ (0, import_Function.noop)();
137
115
  }
138
116
  /**
139
- * Gets a copy of the current plugin settings.
117
+ * Parses the provided settings data and returns the parsed `PluginSettings`.
140
118
  *
141
- * @returns A copy of the plugin settings.
119
+ * @param data - The raw data to be parsed into `PluginSettings`.
120
+ * @returns A promise that resolves to `PluginSettings` or the settings directly.
142
121
  */
143
- get settingsCopy() {
144
- return (0, import_PluginSettings.clonePluginSettings)(this.createDefaultPluginSettings.bind(this), this.settings);
122
+ parseSettings(data) {
123
+ return (0, import_PluginSettings.loadPluginSettings)(this.createDefaultPluginSettings.bind(this), data);
124
+ }
125
+ /**
126
+ * Displays a notice message to the user.
127
+ *
128
+ * @param message - The message to display.
129
+ */
130
+ showNotice(message) {
131
+ if (this.notice) {
132
+ this.notice.hide();
133
+ }
134
+ this.notice = new import_obsidian.Notice(`${this.manifest.name}
135
+ ${message}`);
136
+ }
137
+ /**
138
+ * Loads the plugin settings from the saved data.
139
+ *
140
+ * @returns A promise that resolves when the settings are loaded.
141
+ */
142
+ async loadSettings() {
143
+ const data = await this.loadData();
144
+ this._settings = await this.parseSettings(data);
145
145
  }
146
146
  }
147
147
  // Annotate the CommonJS export names for ESM import in node:
148
148
  0 && (module.exports = {
149
149
  PluginBase
150
150
  });
151
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpbkJhc2VcbiAqIEJhc2UgY2xhc3MgZm9yIE9ic2lkaWFuIHBsdWdpbnMgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MsIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucywgYW5kIGhhbmRsaW5nIGVycm9ycy5cbiAqIFN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCBtZXRob2RzIHRvIGNyZWF0ZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBzZXR0aW5ncyB0YWJzLCBhbmQgY29tcGxldGUgcGx1Z2luLXNwZWNpZmljXG4gKiBsb2FkaW5nIHRhc2tzLlxuICovXG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luLFxuICBQbHVnaW5TZXR0aW5nVGFiXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5pbXBvcnQge1xuICBjbG9uZVBsdWdpblNldHRpbmdzLFxuICBsb2FkUGx1Z2luU2V0dGluZ3Ncbn0gZnJvbSAnLi9QbHVnaW5TZXR0aW5ncy50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGJ1aWx0LWluIHN1cHBvcnQgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBQbHVnaW4ge1xuICBwcml2YXRlIF9hYm9ydFNpZ25hbCE6IEFib3J0U2lnbmFsO1xuICBwcml2YXRlIF9zZXR0aW5ncyE6IFBsdWdpblNldHRpbmdzO1xuICBwcml2YXRlIG5vdGljZT86IE5vdGljZTtcblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZGVmYXVsdCBwbHVnaW4gc2V0dGluZ3MuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGRlZmF1bHQgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZURlZmF1bHRQbHVnaW5TZXR0aW5ncygpOiBQbHVnaW5TZXR0aW5ncztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBsdWdpbiBzZXR0aW5ncyB0YWIuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNldHRpbmdzIHRhYiBvciBudWxsIGlmIG5vdCBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk6IG51bGwgfCBQbHVnaW5TZXR0aW5nVGFiO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm0gYWN0aW9ucyBvbmNlXG4gICAqIHRoZSBsYXlvdXQgaXMgcmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSBvciB2b2lkIGluZGljYXRpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGxheW91dCBzZXR1cC5cbiAgICovXG4gIHByb3RlY3RlZCBvbkxheW91dFJlYWR5KCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gbG9hZGluZyBpcyBjb21wbGV0ZS4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm1cbiAgICogYW55IGFkZGl0aW9uYWwgc2V0dXAgcmVxdWlyZWQgYWZ0ZXIgbG9hZGluZyBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbG9hZCBwcm9jZXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9ubG9hZENvbXBsZXRlKCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlcyB0aGUgcHJvdmlkZWQgc2V0dGluZ3MgZGF0YSBhbmQgcmV0dXJucyB0aGUgcGFyc2VkIGBQbHVnaW5TZXR0aW5nc2AuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIHJhdyBkYXRhIHRvIGJlIHBhcnNlZCBpbnRvIGBQbHVnaW5TZXR0aW5nc2AuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGBQbHVnaW5TZXR0aW5nc2Agb3IgdGhlIHNldHRpbmdzIGRpcmVjdGx5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHBhcnNlU2V0dGluZ3MoZGF0YTogdW5rbm93bik6IE1heWJlUHJvbWlzZTxQbHVnaW5TZXR0aW5ncz4ge1xuICAgIHJldHVybiBsb2FkUGx1Z2luU2V0dGluZ3ModGhpcy5jcmVhdGVEZWZhdWx0UGx1Z2luU2V0dGluZ3MuYmluZCh0aGlzKSwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBub3RpY2UgbWVzc2FnZSB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dOb3RpY2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWNlKSB7XG4gICAgICB0aGlzLm5vdGljZS5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpY2UgPSBuZXcgTm90aWNlKGAke3RoaXMubWFuaWZlc3QubmFtZX1cXG4ke21lc3NhZ2V9YCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tIHRoZSBzYXZlZCBkYXRhLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZERhdGEoKSBhcyB1bmtub3duO1xuICAgIHRoaXMuX3NldHRpbmdzID0gYXdhaXQgdGhpcy5wYXJzZVNldHRpbmdzKGRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gaXMgbG9hZGVkXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucmVnaXN0ZXIocmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyKCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd05vdGljZSgnQW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgY2hlY2sgdGhlIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7XG4gICAgfSkpO1xuXG4gICAgYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcbiAgICBjb25zdCBwbHVnaW5TZXR0aW5nc1RhYiA9IHRoaXMuY3JlYXRlUGx1Z2luU2V0dGluZ3NUYWIoKTtcbiAgICBpZiAocGx1Z2luU2V0dGluZ3NUYWIpIHtcbiAgICAgIHRoaXMuYWRkU2V0dGluZ1RhYihwbHVnaW5TZXR0aW5nc1RhYik7XG4gICAgfVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX2Fib3J0U2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHtcbiAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMub25sb2FkQ29tcGxldGUoKTtcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSh0aGlzLm9uTGF5b3V0UmVhZHkuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgdGhlIG5ldyBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBuZXdTZXR0aW5ncyAtIFRoZSBuZXcgc2V0dGluZ3MgdG8gc2F2ZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmVTZXR0aW5ncyhuZXdTZXR0aW5nczogUGx1Z2luU2V0dGluZ3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IGNsb25lUGx1Z2luU2V0dGluZ3ModGhpcy5jcmVhdGVEZWZhdWx0UGx1Z2luU2V0dGluZ3MuYmluZCh0aGlzKSwgbmV3U2V0dGluZ3MpO1xuICAgIGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQWJvcnRTaWduYWwgdXNlZCBmb3IgYWJvcnRpbmcgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGFib3J0U2lnbmFsKCk6IEFib3J0U2lnbmFsIHtcbiAgICByZXR1cm4gdGhpcy5fYWJvcnRTaWduYWw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBzZXR0aW5ncygpOiBQbHVnaW5TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBjb3B5IG9mIHRoZSBjdXJyZW50IHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgQSBjb3B5IG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzQ29weSgpOiBQbHVnaW5TZXR0aW5ncyB7XG4gICAgcmV0dXJuIGNsb25lUGx1Z2luU2V0dGluZ3ModGhpcy5jcmVhdGVEZWZhdWx0UGx1Z2luU2V0dGluZ3MuYmluZCh0aGlzKSwgdGhpcy5zZXR0aW5ncyk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0Esc0JBSU87QUFJUCxtQkFBK0M7QUFDL0Msc0JBQXFCO0FBQ3JCLDRCQUdPO0FBM0JQLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUE4Qk8sTUFBZSxtQkFBa0QsdUJBQU87QUFBQSxFQUNyRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFzQkUsZ0JBQW9DO0FBQzVDLDhCQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVUsaUJBQXFDO0FBQzdDLDhCQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVUsY0FBYyxNQUE2QztBQUNuRSxlQUFPLDBDQUFtQixLQUFLLDRCQUE0QixLQUFLLElBQUksR0FBRyxJQUFJO0FBQUEsRUFDN0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVSxXQUFXLFNBQXVCO0FBQzFDLFFBQUksS0FBSyxRQUFRO0FBQ2YsV0FBSyxPQUFPLEtBQUs7QUFBQSxJQUNuQjtBQUVBLFNBQUssU0FBUyxJQUFJLHVCQUFPLEdBQUcsS0FBSyxTQUFTLElBQUk7QUFBQSxFQUFLLE9BQU8sRUFBRTtBQUFBLEVBQzlEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBYyxlQUE4QjtBQUMxQyxVQUFNLE9BQU8sTUFBTSxLQUFLLFNBQVM7QUFDakMsU0FBSyxZQUFZLE1BQU0sS0FBSyxjQUFjLElBQUk7QUFBQSxFQUNoRDtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsTUFBc0IsU0FBd0I7QUFDNUMsU0FBSyxhQUFTLDZDQUErQixNQUFNO0FBQ2pELFdBQUssV0FBVyw2RUFBNkU7QUFBQSxJQUMvRixDQUFDLENBQUM7QUFFRixVQUFNLEtBQUssYUFBYTtBQUN4QixVQUFNLG9CQUFvQixLQUFLLHdCQUF3QjtBQUN2RCxRQUFJLG1CQUFtQjtBQUNyQixXQUFLLGNBQWMsaUJBQWlCO0FBQUEsSUFDdEM7QUFFQSxVQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtBQUM1QyxTQUFLLGVBQWUsZ0JBQWdCO0FBQ3BDLFNBQUssU0FBUyxNQUFNO0FBQ2xCLHNCQUFnQixNQUFNO0FBQUEsSUFDeEIsQ0FBQztBQUNELFVBQU0sS0FBSyxlQUFlO0FBQzFCLFNBQUssSUFBSSxVQUFVLGNBQWMsS0FBSyxjQUFjLEtBQUssSUFBSSxDQUFDO0FBQUEsRUFDaEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE1BQWEsYUFBYSxhQUE0QztBQUNwRSxTQUFLLGdCQUFZLDJDQUFvQixLQUFLLDRCQUE0QixLQUFLLElBQUksR0FBRyxXQUFXO0FBQzdGLFVBQU0sS0FBSyxTQUFTLEtBQUssUUFBUTtBQUFBLEVBQ25DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxjQUEyQjtBQUN2QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxXQUEyQjtBQUN2QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBVyxlQUErQjtBQUN4QyxlQUFPLDJDQUFvQixLQUFLLDRCQUE0QixLQUFLLElBQUksR0FBRyxLQUFLLFFBQVE7QUFBQSxFQUN2RjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
151
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpbkJhc2VcbiAqIEJhc2UgY2xhc3MgZm9yIE9ic2lkaWFuIHBsdWdpbnMgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MsIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucywgYW5kIGhhbmRsaW5nIGVycm9ycy5cbiAqIFN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCBtZXRob2RzIHRvIGNyZWF0ZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBzZXR0aW5ncyB0YWJzLCBhbmQgY29tcGxldGUgcGx1Z2luLXNwZWNpZmljXG4gKiBsb2FkaW5nIHRhc2tzLlxuICovXG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luLFxuICBQbHVnaW5TZXR0aW5nVGFiXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5pbXBvcnQge1xuICBjbG9uZVBsdWdpblNldHRpbmdzLFxuICBsb2FkUGx1Z2luU2V0dGluZ3Ncbn0gZnJvbSAnLi9QbHVnaW5TZXR0aW5ncy50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGJ1aWx0LWluIHN1cHBvcnQgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBQbHVnaW4ge1xuICAvKipcbiAgICogR2V0cyBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGNvcHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3NDb3B5KCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gY2xvbmVQbHVnaW5TZXR0aW5ncyh0aGlzLmNyZWF0ZURlZmF1bHRQbHVnaW5TZXR0aW5ncy5iaW5kKHRoaXMpLCB0aGlzLnNldHRpbmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBYm9ydFNpZ25hbCB1c2VkIGZvciBhYm9ydGluZyBsb25nLXJ1bm5pbmcgb3BlcmF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFib3J0IHNpZ25hbC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgYWJvcnRTaWduYWwoKTogQWJvcnRTaWduYWwge1xuICAgIHJldHVybiB0aGlzLl9hYm9ydFNpZ25hbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHNldHRpbmdzKCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydFNpZ25hbCE6IEFib3J0U2lnbmFsO1xuXG4gIHByaXZhdGUgX3NldHRpbmdzITogUGx1Z2luU2V0dGluZ3M7XG5cbiAgcHJpdmF0ZSBub3RpY2U/OiBOb3RpY2U7XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gaXMgbG9hZGVkXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucmVnaXN0ZXIocmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyKCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd05vdGljZSgnQW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgY2hlY2sgdGhlIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7XG4gICAgfSkpO1xuXG4gICAgYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcbiAgICBjb25zdCBwbHVnaW5TZXR0aW5nc1RhYiA9IHRoaXMuY3JlYXRlUGx1Z2luU2V0dGluZ3NUYWIoKTtcbiAgICBpZiAocGx1Z2luU2V0dGluZ3NUYWIpIHtcbiAgICAgIHRoaXMuYWRkU2V0dGluZ1RhYihwbHVnaW5TZXR0aW5nc1RhYik7XG4gICAgfVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX2Fib3J0U2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHtcbiAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMub25sb2FkQ29tcGxldGUoKTtcbiAgICB0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSh0aGlzLm9uTGF5b3V0UmVhZHkuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgdGhlIG5ldyBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBuZXdTZXR0aW5ncyAtIFRoZSBuZXcgc2V0dGluZ3MgdG8gc2F2ZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmVTZXR0aW5ncyhuZXdTZXR0aW5nczogUGx1Z2luU2V0dGluZ3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IGNsb25lUGx1Z2luU2V0dGluZ3ModGhpcy5jcmVhdGVEZWZhdWx0UGx1Z2luU2V0dGluZ3MuYmluZCh0aGlzKSwgbmV3U2V0dGluZ3MpO1xuICAgIGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZGVmYXVsdCBwbHVnaW4gc2V0dGluZ3MuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGRlZmF1bHQgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZURlZmF1bHRQbHVnaW5TZXR0aW5ncygpOiBQbHVnaW5TZXR0aW5ncztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBsdWdpbiBzZXR0aW5ncyB0YWIuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNldHRpbmdzIHRhYiBvciBudWxsIGlmIG5vdCBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk6IG51bGwgfCBQbHVnaW5TZXR0aW5nVGFiO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm0gYWN0aW9ucyBvbmNlXG4gICAqIHRoZSBsYXlvdXQgaXMgcmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSBvciB2b2lkIGluZGljYXRpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGxheW91dCBzZXR1cC5cbiAgICovXG4gIHByb3RlY3RlZCBvbkxheW91dFJlYWR5KCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gbG9hZGluZyBpcyBjb21wbGV0ZS4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm1cbiAgICogYW55IGFkZGl0aW9uYWwgc2V0dXAgcmVxdWlyZWQgYWZ0ZXIgbG9hZGluZyBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbG9hZCBwcm9jZXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9ubG9hZENvbXBsZXRlKCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlcyB0aGUgcHJvdmlkZWQgc2V0dGluZ3MgZGF0YSBhbmQgcmV0dXJucyB0aGUgcGFyc2VkIGBQbHVnaW5TZXR0aW5nc2AuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIHJhdyBkYXRhIHRvIGJlIHBhcnNlZCBpbnRvIGBQbHVnaW5TZXR0aW5nc2AuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGBQbHVnaW5TZXR0aW5nc2Agb3IgdGhlIHNldHRpbmdzIGRpcmVjdGx5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHBhcnNlU2V0dGluZ3MoZGF0YTogdW5rbm93bik6IE1heWJlUHJvbWlzZTxQbHVnaW5TZXR0aW5ncz4ge1xuICAgIHJldHVybiBsb2FkUGx1Z2luU2V0dGluZ3ModGhpcy5jcmVhdGVEZWZhdWx0UGx1Z2luU2V0dGluZ3MuYmluZCh0aGlzKSwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBub3RpY2UgbWVzc2FnZSB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dOb3RpY2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWNlKSB7XG4gICAgICB0aGlzLm5vdGljZS5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpY2UgPSBuZXcgTm90aWNlKGAke3RoaXMubWFuaWZlc3QubmFtZX1cXG4ke21lc3NhZ2V9YCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tIHRoZSBzYXZlZCBkYXRhLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZERhdGEoKSBhcyB1bmtub3duO1xuICAgIHRoaXMuX3NldHRpbmdzID0gYXdhaXQgdGhpcy5wYXJzZVNldHRpbmdzKGRhdGEpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBLHNCQUlPO0FBSVAsbUJBQStDO0FBQy9DLHNCQUFx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
@@ -14,9 +14,38 @@ import type { MaybePromise } from '../../Async.ts';
14
14
  * @typeParam PluginSettings - The type representing the plugin settings object.
15
15
  */
16
16
  export declare abstract class PluginBase<PluginSettings extends object> extends Plugin {
17
+ /**
18
+ * Gets a copy of the current plugin settings.
19
+ *
20
+ * @returns A copy of the plugin settings.
21
+ */
22
+ get settingsCopy(): PluginSettings;
23
+ /**
24
+ * Gets the AbortSignal used for aborting long-running operations.
25
+ *
26
+ * @returns The abort signal.
27
+ */
28
+ protected get abortSignal(): AbortSignal;
29
+ /**
30
+ * Gets the plugin settings.
31
+ *
32
+ * @returns The plugin settings.
33
+ */
34
+ protected get settings(): PluginSettings;
17
35
  private _abortSignal;
18
36
  private _settings;
19
37
  private notice?;
38
+ /**
39
+ * Called when the plugin is loaded
40
+ */
41
+ onload(): Promise<void>;
42
+ /**
43
+ * Saves the new plugin settings.
44
+ *
45
+ * @param newSettings - The new settings to save.
46
+ * @returns A promise that resolves when the settings are saved.
47
+ */
48
+ saveSettings(newSettings: PluginSettings): Promise<void>;
20
49
  /**
21
50
  * Creates the default plugin settings. This method must be implemented by subclasses.
22
51
  *
@@ -62,33 +91,4 @@ export declare abstract class PluginBase<PluginSettings extends object> extends
62
91
  * @returns A promise that resolves when the settings are loaded.
63
92
  */
64
93
  private loadSettings;
65
- /**
66
- * Called when the plugin is loaded
67
- */
68
- onload(): Promise<void>;
69
- /**
70
- * Saves the new plugin settings.
71
- *
72
- * @param newSettings - The new settings to save.
73
- * @returns A promise that resolves when the settings are saved.
74
- */
75
- saveSettings(newSettings: PluginSettings): Promise<void>;
76
- /**
77
- * Gets the AbortSignal used for aborting long-running operations.
78
- *
79
- * @returns The abort signal.
80
- */
81
- protected get abortSignal(): AbortSignal;
82
- /**
83
- * Gets the plugin settings.
84
- *
85
- * @returns The plugin settings.
86
- */
87
- protected get settings(): PluginSettings;
88
- /**
89
- * Gets a copy of the current plugin settings.
90
- *
91
- * @returns A copy of the plugin settings.
92
- */
93
- get settingsCopy(): PluginSettings;
94
94
  }
@@ -29,6 +29,9 @@ __export(PluginSettings_exports, {
29
29
  loadPluginSettings: () => loadPluginSettings
30
30
  });
31
31
  module.exports = __toCommonJS(PluginSettings_exports);
32
+ function clonePluginSettings(defaultPluginSettingsFactory, settings) {
33
+ return loadPluginSettings(defaultPluginSettingsFactory, settings);
34
+ }
32
35
  function loadPluginSettings(defaultPluginSettingsFactory, data) {
33
36
  const defaultPluginSettings = defaultPluginSettingsFactory();
34
37
  if (data && typeof data === "object") {
@@ -41,12 +44,9 @@ function loadPluginSettings(defaultPluginSettingsFactory, data) {
41
44
  }
42
45
  return defaultPluginSettings;
43
46
  }
44
- function clonePluginSettings(defaultPluginSettingsFactory, settings) {
45
- return loadPluginSettings(defaultPluginSettingsFactory, settings);
46
- }
47
47
  // Annotate the CommonJS export names for ESM import in node:
48
48
  0 && (module.exports = {
49
49
  clonePluginSettings,
50
50
  loadPluginSettings
51
51
  });
52
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5ncy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gUGx1Z2luU2V0dGluZ3NcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgbG9hZGluZyBhbmQgY2xvbmluZyBwbHVnaW4gc2V0dGluZ3MuXG4gKiBJdCBpbmNsdWRlcyB1dGlsaXRpZXMgZm9yIG1lcmdpbmcgdXNlciBzZXR0aW5ncyB3aXRoIGRlZmF1bHQgc2V0dGluZ3MgYW5kIGNyZWF0aW5nIGNvcGllcyBvZiBzZXR0aW5ncy5cbiAqL1xuXG4vKipcbiAqIExvYWRzIHBsdWdpbiBzZXR0aW5ncyBieSBtZXJnaW5nIHByb3ZpZGVkIGRhdGEgd2l0aCBkZWZhdWx0IHNldHRpbmdzLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICogQHBhcmFtIGRlZmF1bHRQbHVnaW5TZXR0aW5nc0ZhY3RvcnkgLSBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBkZWZhdWx0IHNldHRpbmdzLlxuICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSB0byBtZXJnZSB3aXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzLlxuICogQHJldHVybnMgVGhlIG1lcmdlZCBzZXR0aW5ncyBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkUGx1Z2luU2V0dGluZ3M8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+KFxuICBkZWZhdWx0UGx1Z2luU2V0dGluZ3NGYWN0b3J5OiAoKSA9PiBQbHVnaW5TZXR0aW5ncyxcbiAgZGF0YTogdW5rbm93blxuKTogUGx1Z2luU2V0dGluZ3Mge1xuICBjb25zdCBkZWZhdWx0UGx1Z2luU2V0dGluZ3MgPSBkZWZhdWx0UGx1Z2luU2V0dGluZ3NGYWN0b3J5KCk7XG5cbiAgdHlwZSBQbHVnaW5TZXR0aW5nc0tleXMgPSBrZXlvZiBQbHVnaW5TZXR0aW5ncztcbiAgdHlwZSBQbHVnaW5TZXR0aW5nc1ZhbHVlcyA9IFBsdWdpblNldHRpbmdzW1BsdWdpblNldHRpbmdzS2V5c107XG5cbiAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgcmVjb3JkID0gZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICBpZiAoa2V5IGluIGRlZmF1bHRQbHVnaW5TZXR0aW5ncykge1xuICAgICAgICBkZWZhdWx0UGx1Z2luU2V0dGluZ3Nba2V5IGFzIFBsdWdpblNldHRpbmdzS2V5c10gPSB2YWx1ZSBhcyBQbHVnaW5TZXR0aW5nc1ZhbHVlcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVmYXVsdFBsdWdpblNldHRpbmdzO1xufVxuXG4vKipcbiAqIENsb25lcyBwbHVnaW4gc2V0dGluZ3MgYnkgbG9hZGluZyB0aGVtIGZyb20gdGhlIGdpdmVuIHNldHRpbmdzIG9iamVjdCBhbmQgZGVmYXVsdCBzZXR0aW5ncyBmYWN0b3J5LlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICogQHBhcmFtIGRlZmF1bHRQbHVnaW5TZXR0aW5nc0ZhY3RvcnkgLSBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBkZWZhdWx0IHNldHRpbmdzLlxuICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIHNldHRpbmdzIHRvIGNsb25lLlxuICogQHJldHVybnMgQSBuZXcgc2V0dGluZ3Mgb2JqZWN0IHRoYXQgaXMgYSBjbG9uZSBvZiB0aGUgcHJvdmlkZWQgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZVBsdWdpblNldHRpbmdzPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PihcbiAgZGVmYXVsdFBsdWdpblNldHRpbmdzRmFjdG9yeTogKCkgPT4gUGx1Z2luU2V0dGluZ3MsXG4gIHNldHRpbmdzOiBQbHVnaW5TZXR0aW5nc1xuKTogUGx1Z2luU2V0dGluZ3Mge1xuICByZXR1cm4gbG9hZFBsdWdpblNldHRpbmdzKGRlZmF1bHRQbHVnaW5TZXR0aW5nc0ZhY3RvcnksIHNldHRpbmdzKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjTyxTQUFTLG1CQUNkLDhCQUNBLE1BQ2dCO0FBQ2hCLFFBQU0sd0JBQXdCLDZCQUE2QjtBQUszRCxNQUFJLFFBQVEsT0FBTyxTQUFTLFVBQVU7QUFDcEMsVUFBTSxTQUFTO0FBQ2YsZUFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sUUFBUSxNQUFNLEdBQUc7QUFDakQsVUFBSSxPQUFPLHVCQUF1QjtBQUNoQyw4QkFBc0IsR0FBeUIsSUFBSTtBQUFBLE1BQ3JEO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFVTyxTQUFTLG9CQUNkLDhCQUNBLFVBQ2dCO0FBQ2hCLFNBQU8sbUJBQW1CLDhCQUE4QixRQUFRO0FBQ2xFOyIsCiAgIm5hbWVzIjogW10KfQo=
52
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5ncy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gUGx1Z2luU2V0dGluZ3NcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgbG9hZGluZyBhbmQgY2xvbmluZyBwbHVnaW4gc2V0dGluZ3MuXG4gKiBJdCBpbmNsdWRlcyB1dGlsaXRpZXMgZm9yIG1lcmdpbmcgdXNlciBzZXR0aW5ncyB3aXRoIGRlZmF1bHQgc2V0dGluZ3MgYW5kIGNyZWF0aW5nIGNvcGllcyBvZiBzZXR0aW5ncy5cbiAqL1xuXG4vKipcbiAqIENsb25lcyBwbHVnaW4gc2V0dGluZ3MgYnkgbG9hZGluZyB0aGVtIGZyb20gdGhlIGdpdmVuIHNldHRpbmdzIG9iamVjdCBhbmQgZGVmYXVsdCBzZXR0aW5ncyBmYWN0b3J5LlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICogQHBhcmFtIGRlZmF1bHRQbHVnaW5TZXR0aW5nc0ZhY3RvcnkgLSBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBkZWZhdWx0IHNldHRpbmdzLlxuICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIHNldHRpbmdzIHRvIGNsb25lLlxuICogQHJldHVybnMgQSBuZXcgc2V0dGluZ3Mgb2JqZWN0IHRoYXQgaXMgYSBjbG9uZSBvZiB0aGUgcHJvdmlkZWQgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZVBsdWdpblNldHRpbmdzPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PihcbiAgZGVmYXVsdFBsdWdpblNldHRpbmdzRmFjdG9yeTogKCkgPT4gUGx1Z2luU2V0dGluZ3MsXG4gIHNldHRpbmdzOiBQbHVnaW5TZXR0aW5nc1xuKTogUGx1Z2luU2V0dGluZ3Mge1xuICByZXR1cm4gbG9hZFBsdWdpblNldHRpbmdzKGRlZmF1bHRQbHVnaW5TZXR0aW5nc0ZhY3RvcnksIHNldHRpbmdzKTtcbn1cblxuLyoqXG4gKiBMb2FkcyBwbHVnaW4gc2V0dGluZ3MgYnkgbWVyZ2luZyBwcm92aWRlZCBkYXRhIHdpdGggZGVmYXVsdCBzZXR0aW5ncy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgcGx1Z2luIHNldHRpbmdzIG9iamVjdC5cbiAqIEBwYXJhbSBkZWZhdWx0UGx1Z2luU2V0dGluZ3NGYWN0b3J5IC0gQSBmYWN0b3J5IGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgZGVmYXVsdCBzZXR0aW5ncy5cbiAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gbWVyZ2Ugd2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5ncy5cbiAqIEByZXR1cm5zIFRoZSBtZXJnZWQgc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZFBsdWdpblNldHRpbmdzPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PihcbiAgZGVmYXVsdFBsdWdpblNldHRpbmdzRmFjdG9yeTogKCkgPT4gUGx1Z2luU2V0dGluZ3MsXG4gIGRhdGE6IHVua25vd25cbik6IFBsdWdpblNldHRpbmdzIHtcbiAgY29uc3QgZGVmYXVsdFBsdWdpblNldHRpbmdzID0gZGVmYXVsdFBsdWdpblNldHRpbmdzRmFjdG9yeSgpO1xuXG4gIHR5cGUgUGx1Z2luU2V0dGluZ3NLZXlzID0ga2V5b2YgUGx1Z2luU2V0dGluZ3M7XG4gIHR5cGUgUGx1Z2luU2V0dGluZ3NWYWx1ZXMgPSBQbHVnaW5TZXR0aW5nc1tQbHVnaW5TZXR0aW5nc0tleXNdO1xuXG4gIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHJlY29yZCA9IGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVjb3JkKSkge1xuICAgICAgaWYgKGtleSBpbiBkZWZhdWx0UGx1Z2luU2V0dGluZ3MpIHtcbiAgICAgICAgZGVmYXVsdFBsdWdpblNldHRpbmdzW2tleSBhcyBQbHVnaW5TZXR0aW5nc0tleXNdID0gdmFsdWUgYXMgUGx1Z2luU2V0dGluZ3NWYWx1ZXM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlZmF1bHRQbHVnaW5TZXR0aW5ncztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjTyxTQUFTLG9CQUNkLDhCQUNBLFVBQ2dCO0FBQ2hCLFNBQU8sbUJBQW1CLDhCQUE4QixRQUFRO0FBQ2xFO0FBVU8sU0FBUyxtQkFDZCw4QkFDQSxNQUNnQjtBQUNoQixRQUFNLHdCQUF3Qiw2QkFBNkI7QUFLM0QsTUFBSSxRQUFRLE9BQU8sU0FBUyxVQUFVO0FBQ3BDLFVBQU0sU0FBUztBQUNmLGVBQVcsQ0FBQyxLQUFLLEtBQUssS0FBSyxPQUFPLFFBQVEsTUFBTSxHQUFHO0FBQ2pELFVBQUksT0FBTyx1QkFBdUI7QUFDaEMsOEJBQXNCLEdBQXlCLElBQUk7QUFBQSxNQUNyRDtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -4,20 +4,20 @@
4
4
  * It includes utilities for merging user settings with default settings and creating copies of settings.
5
5
  */
6
6
  /**
7
- * Loads plugin settings by merging provided data with default settings.
7
+ * Clones plugin settings by loading them from the given settings object and default settings factory.
8
8
  *
9
9
  * @typeParam PluginSettings - The type of plugin settings object.
10
10
  * @param defaultPluginSettingsFactory - A factory function that returns the default settings.
11
- * @param data - The data to merge with the default settings.
12
- * @returns The merged settings object.
11
+ * @param settings - The settings to clone.
12
+ * @returns A new settings object that is a clone of the provided settings.
13
13
  */
14
- export declare function loadPluginSettings<PluginSettings extends object>(defaultPluginSettingsFactory: () => PluginSettings, data: unknown): PluginSettings;
14
+ export declare function clonePluginSettings<PluginSettings extends object>(defaultPluginSettingsFactory: () => PluginSettings, settings: PluginSettings): PluginSettings;
15
15
  /**
16
- * Clones plugin settings by loading them from the given settings object and default settings factory.
16
+ * Loads plugin settings by merging provided data with default settings.
17
17
  *
18
18
  * @typeParam PluginSettings - The type of plugin settings object.
19
19
  * @param defaultPluginSettingsFactory - A factory function that returns the default settings.
20
- * @param settings - The settings to clone.
21
- * @returns A new settings object that is a clone of the provided settings.
20
+ * @param data - The data to merge with the default settings.
21
+ * @returns The merged settings object.
22
22
  */
23
- export declare function clonePluginSettings<PluginSettings extends object>(defaultPluginSettingsFactory: () => PluginSettings, settings: PluginSettings): PluginSettings;
23
+ export declare function loadPluginSettings<PluginSettings extends object>(defaultPluginSettingsFactory: () => PluginSettings, data: unknown): PluginSettings;
@@ -115,4 +115,4 @@ function getValidatorElement(valueComponent) {
115
115
  0 && (module.exports = {
116
116
  extend
117
117
  });
118
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9WYWx1ZUNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gVmFsdWVDb21wb25lbnRcbiAqIENvbnRhaW5zIHV0aWxpdHkgdHlwZXMgYW5kIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgdmFsdWUgY29tcG9uZW50cywgd2hpY2ggYXJlIFVJIGNvbXBvbmVudHMgdGhhdCBkaXNwbGF5IGFuZCBlZGl0IHZhbHVlcy5cbiAqL1xuXG5pbXBvcnQge1xuICBEcm9wZG93bkNvbXBvbmVudCxcbiAgU2xpZGVyQ29tcG9uZW50LFxuICBUZXh0QXJlYUNvbXBvbmVudCxcbiAgVGV4dENvbXBvbmVudCxcbiAgVmFsdWVDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IEtleXNNYXRjaGluZyB9IGZyb20gJy4uLy4uL0B0eXBlcy50cyc7XG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uLy4uL0FzeW5jLnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL0hUTUxFbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luQmFzZSB9IGZyb20gJy4vUGx1Z2luQmFzZS50cyc7XG5cbmltcG9ydCB7IGFzc2lnbldpdGhOb25FbnVtZXJhYmxlUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL09iamVjdC50cyc7XG5cbi8qKlxuICogVmFsdWVDb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCBhcyBhbiBvcmlnaW5hbCBWYWx1ZUNvbXBvbmVudCB3aXRoIGV4dGVuZGVkIGZ1bmN0aW9uYWxpdHkuXG4gKi9cbnR5cGUgVmFsdWVDb21wb25lbnRFeFR5cGU8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50IGV4dGVuZHMgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4+ID0gVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRFeDxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+O1xuXG4vKipcbiAqIFZhbHVlQ29tcG9uZW50IHdpdGggZXh0ZW5kZWQgZnVuY3Rpb25hbGl0eS5cbiAqL1xuY2xhc3MgVmFsdWVDb21wb25lbnRFeDxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxVSVZhbHVlPj4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50KSB7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgVmFsdWVDb21wb25lbnQgd2l0aCBleHRlbmRlZCBmdW5jdGlvbmFsaXR5LlxuICAgKi9cbiAgcHVibGljIGFzRXh0ZW5kZWQoKTogVmFsdWVDb21wb25lbnRFeFR5cGU8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIGFzc2lnbldpdGhOb25FbnVtZXJhYmxlUHJvcGVydGllcyh7fSwgdGhpcy52YWx1ZUNvbXBvbmVudCwgdGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdGhlIFZhbHVlQ29tcG9uZW50IHRvIGEgcHJvcGVydHkgaW4gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5IC0gVGhlIGtleSBvZiB0aGUgcGx1Z2luIHNldHRpbmcgdGhhdCB0aGUgY29tcG9uZW50IGlzIGJvdW5kIHRvLlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbi5cbiAgICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IGtleSBpbiBgUGx1Z2luU2V0dGluZ3NgIHRvIGJpbmQgdG8gdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIFRoZSBgVmFsdWVDb21wb25lbnRgIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzXG4gICAgUHJvcGVydHkgZXh0ZW5kcyBLZXlzTWF0Y2hpbmc8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWU+XG4gID4oXG4gICAgcGx1Z2luOiBQbHVnaW5CYXNlPFBsdWdpblNldHRpbmdzPixcbiAgICBwcm9wZXJ0eTogUHJvcGVydHksXG4gICAgb3B0aW9ucz86IEJpbmRWYWx1ZUNvbXBvbmVudE9wdGlvbnM8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWU+XG4gICk6IFZhbHVlQ29tcG9uZW50RXhUeXBlPFVJVmFsdWUsIFRWYWx1ZUNvbXBvbmVudD47XG5cbiAgLyoqXG4gICAqIEJpbmRzIHRoZSBWYWx1ZUNvbXBvbmVudCB0byBhIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IGV4dGVuZHMgYFBsdWdpbkJhc2VgLlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5IC0gVGhlIGtleSBvZiB0aGUgcGx1Z2luIHNldHRpbmcgdGhhdCB0aGUgY29tcG9uZW50IGlzIGJvdW5kIHRvLlxuICAgKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luLlxuICAgKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkga2V5IGluIGBQbHVnaW5TZXR0aW5nc2AgdG8gYmluZCB0byB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICogQHJldHVybnMgVGhlIGBWYWx1ZUNvbXBvbmVudGAgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQgdG8gdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3QsXG4gICAgUHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBQbHVnaW5TZXR0aW5nc1xuICA+KFxuICAgIHBsdWdpbjogUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncz4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIG9wdGlvbnM6IEJpbmRWYWx1ZUNvbXBvbmVudE9wdGlvbnNFeHRlbmRlZDxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZSwgUHJvcGVydHk+XG4gICk6IFZhbHVlQ29tcG9uZW50RXhUeXBlPFVJVmFsdWUsIFRWYWx1ZUNvbXBvbmVudD47XG5cbiAgLyoqXG4gICAqIEJpbmRzIHRoZSBWYWx1ZUNvbXBvbmVudCB0byBhIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IGV4dGVuZHMgYFBsdWdpbkJhc2VgLlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5IC0gVGhlIGtleSBvZiB0aGUgcGx1Z2luIHNldHRpbmcgdGhhdCB0aGUgY29tcG9uZW50IGlzIGJvdW5kIHRvLlxuICAgKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luLlxuICAgKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkga2V5IGluIGBQbHVnaW5TZXR0aW5nc2AgdG8gYmluZCB0byB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICogQHJldHVybnMgVGhlIGBWYWx1ZUNvbXBvbmVudGAgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQgdG8gdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3QsXG4gICAgUHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBQbHVnaW5TZXR0aW5nc1xuICA+KFxuICAgIHBsdWdpbjogUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncz4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIG9wdGlvbnM/OiBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPlxuICApOiBWYWx1ZUNvbXBvbmVudEV4VHlwZTxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+IHtcbiAgICB0eXBlIFByb3BlcnR5VHlwZSA9IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5XTtcbiAgICBjb25zdCBERUZBVUxUX09QVElPTlM6IEJpbmRWYWx1ZUNvbXBvbmVudE9wdGlvbnNFeHRlbmRlZDxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZSwgUHJvcGVydHk+ID0ge1xuICAgICAgYXV0b1NhdmU6IHRydWUsXG4gICAgICBjb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXI6ICh2YWx1ZSk6IFByb3BlcnR5VHlwZSA9PiB2YWx1ZSBhcyBQcm9wZXJ0eVR5cGUsXG4gICAgICBwbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXI6ICh2YWx1ZSk6IFVJVmFsdWUgPT4gdmFsdWUgYXMgVUlWYWx1ZVxuICAgIH07XG5cbiAgICBjb25zdCBvcHRpb25zRXh0OiBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5PiA9IHsgLi4uREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zIH07XG4gICAgY29uc3QgcGx1Z2luRXh0ID0gcGx1Z2luIGFzIHVua25vd24gYXMgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncz47XG4gICAgY29uc3QgcGx1Z2luU2V0dGluZ3NGbiA9ICgpOiBQbHVnaW5TZXR0aW5ncyA9PiBvcHRpb25zRXh0LnBsdWdpblNldHRpbmdzID8/IHBsdWdpbkV4dC5zZXR0aW5nc0NvcHk7XG5cbiAgICBjb25zdCB2YWxpZGF0ZSA9ICh1aVZhbHVlPzogVUlWYWx1ZSk6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKCFvcHRpb25zRXh0LnZhbHVlVmFsaWRhdG9yKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgdWlWYWx1ZSA/Pz0gdGhpcy52YWx1ZUNvbXBvbmVudC5nZXRWYWx1ZSgpO1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gb3B0aW9uc0V4dC52YWx1ZVZhbGlkYXRvcih1aVZhbHVlKTtcbiAgICAgIGNvbnN0IHZhbGlkYXRvckVsZW1lbnQgPSBnZXRWYWxpZGF0b3JFbGVtZW50KHRoaXMudmFsdWVDb21wb25lbnQpO1xuICAgICAgaWYgKHZhbGlkYXRvckVsZW1lbnQpIHtcbiAgICAgICAgdmFsaWRhdG9yRWxlbWVudC5zZXRDdXN0b21WYWxpZGl0eShlcnJvck1lc3NhZ2UgPz8gJycpO1xuICAgICAgICB2YWxpZGF0b3JFbGVtZW50LnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAhZXJyb3JNZXNzYWdlO1xuICAgIH07XG5cbiAgICB0aGlzLnZhbHVlQ29tcG9uZW50XG4gICAgICAuc2V0VmFsdWUob3B0aW9uc0V4dC5wbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXIocGx1Z2luU2V0dGluZ3NGbigpW3Byb3BlcnR5XSkpXG4gICAgICAub25DaGFuZ2UoYXN5bmMgKHVpVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCF2YWxpZGF0ZSh1aVZhbHVlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwbHVnaW5TZXR0aW5ncyA9IHBsdWdpblNldHRpbmdzRm4oKTtcbiAgICAgICAgcGx1Z2luU2V0dGluZ3NbcHJvcGVydHldID0gb3B0aW9uc0V4dC5jb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXIodWlWYWx1ZSk7XG4gICAgICAgIGlmIChvcHRpb25zRXh0LmF1dG9TYXZlKSB7XG4gICAgICAgICAgYXdhaXQgcGx1Z2luRXh0LnNhdmVTZXR0aW5ncyhwbHVnaW5TZXR0aW5ncyk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBvcHRpb25zRXh0Lm9uQ2hhbmdlZD8uKCk7XG4gICAgICB9KTtcblxuICAgIHZhbGlkYXRlKCk7XG5cbiAgICBjb25zdCB2YWxpZGF0b3JFbGVtZW50ID0gZ2V0VmFsaWRhdG9yRWxlbWVudCh0aGlzLnZhbHVlQ29tcG9uZW50KTtcbiAgICBpZiAodmFsaWRhdG9yRWxlbWVudCkge1xuICAgICAgdmFsaWRhdG9yRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHZhbGlkYXRlKCkpO1xuICAgICAgdmFsaWRhdG9yRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4gdmFsaWRhdGUoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXNFeHRlbmRlZCgpO1xuICB9XG59XG5cbi8qKlxuICogRXh0ZW5kcyBhIFZhbHVlQ29tcG9uZW50IHdpdGggYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0aGUgY29tcG9uZW50IGRpc3BsYXlzLlxuICogQHR5cGVQYXJhbSBUVmFsdWVDb21wb25lbnQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgY29tcG9uZW50IGV4dGVuZGluZyBgVmFsdWVDb21wb25lbnRgLlxuICogQHBhcmFtIHZhbHVlQ29tcG9uZW50IC0gVGhlIHZhbHVlIGNvbXBvbmVudCB0byBleHRlbmQuXG4gKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50IHdpdGggZXh0ZW5kZWQgZnVuY3Rpb25hbGl0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVuZDxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxVSVZhbHVlPj4odmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCAmIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+KTogVmFsdWVDb21wb25lbnRFeFR5cGU8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50PiB7XG4gIHJldHVybiBuZXcgVmFsdWVDb21wb25lbnRFeDxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+KHZhbHVlQ29tcG9uZW50KS5hc0V4dGVuZGVkKCk7XG59XG5cbi8qKlxuICogQSBWYWx1ZUNvbXBvbmVudCB0aGF0IGNhbiB0cmFjayBjaGFuZ2VzLlxuICovXG5pbnRlcmZhY2UgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VD4gZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxUPiB7XG4gIC8qKlxuICAgKiBTZXRzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50IGNoYW5nZXMuXG4gICAqL1xuICBvbkNoYW5nZShjYWxsYmFjazogKG5ld1ZhbHVlOiBUKSA9PiBQcm9taXNlPHZvaWQ+KTogdGhpcztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBiaW5kaW5nIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gKi9cbmludGVyZmFjZSBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPiB7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCBzYXZlcyB0aGUgcGx1Z2luIHNldHRpbmdzIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIGNvbXBvbmVudCB2YWx1ZSBjaGFuZ2VzLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICovXG4gIGF1dG9TYXZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50IGNoYW5nZXMuXG4gICAqL1xuICBvbkNoYW5nZWQ/OiAoKSA9PiBNYXliZVByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0IHRvIGJpbmQgdGhlIGNvbXBvbmVudCB0by4gRGVmYXVsdCBpcyB0aGUgcGx1Z2luJ3MgY3VycmVudCBzZXR0aW5ncy5cbiAgICovXG4gIHBsdWdpblNldHRpbmdzPzogUGx1Z2luU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgVUkgdmFsdWUgYmVmb3JlIHNldHRpbmcgaXQgb24gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICogQHBhcmFtIHVpVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgQW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgdmFsdWUgaXMgaW52YWxpZCwgb3IgYG51bGxgIGlmIGl0IGlzIHZhbGlkLlxuICAgKi9cbiAgdmFsdWVWYWxpZGF0b3I/OiAodWlWYWx1ZTogVUlWYWx1ZSkgPT4gbnVsbCB8IHN0cmluZztcbn1cblxuLyoqXG4gKiBFeHRlbmRlZCBvcHRpb25zIGZvciBiaW5kaW5nIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gKi9cbmludGVyZmFjZSBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3M+IGV4dGVuZHMgQmluZFZhbHVlQ29tcG9uZW50T3B0aW9uczxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZT4ge1xuICAvKipcbiAgICogQ29udmVydHMgdGhlIFVJIGNvbXBvbmVudCdzIHZhbHVlIGJhY2sgdG8gdGhlIHBsdWdpbiBzZXR0aW5ncyB2YWx1ZS5cbiAgICogQHBhcmFtIHVpVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIHRvIHNldCBvbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyOiAodWlWYWx1ZTogVUlWYWx1ZSkgPT4gUGx1Z2luU2V0dGluZ3NbUHJvcGVydHldO1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgcGx1Z2luIHNldHRpbmdzIHZhbHVlIHRvIHRoZSB2YWx1ZSB1c2VkIGJ5IHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBwbHVnaW5TZXR0aW5nc1ZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBVSSBjb21wb25lbnQuXG4gICAqL1xuICBwbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXI6IChwbHVnaW5TZXR0aW5nc1ZhbHVlOiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV0pID0+IFVJVmFsdWU7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgdmFsaWRhdG9yIGVsZW1lbnQgZnJvbSBhIHZhbHVlIGNvbXBvbmVudCBpZiBpdCBleGlzdHMuXG4gKlxuICogQHBhcmFtIHZhbHVlQ29tcG9uZW50IC0gVGhlIHZhbHVlIGNvbXBvbmVudCB0byBnZXQgdGhlIHZhbGlkYXRvciBlbGVtZW50IGZyb20uXG4gKiBAcmV0dXJucyBUaGUgdmFsaWRhdG9yIGVsZW1lbnQgaWYgaXQgZXhpc3RzLCBvciBgbnVsbGAgaWYgaXQgZG9lcyBub3QuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbGlkYXRvckVsZW1lbnQ8VUlWYWx1ZT4odmFsdWVDb21wb25lbnQ6IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+KTogbnVsbCB8IFZhbGlkYXRvckVsZW1lbnQge1xuICBpZiAodmFsdWVDb21wb25lbnQgaW5zdGFuY2VvZiBEcm9wZG93bkNvbXBvbmVudCkge1xuICAgIHJldHVybiB2YWx1ZUNvbXBvbmVudC5zZWxlY3RFbDtcbiAgfVxuXG4gIGlmICh2YWx1ZUNvbXBvbmVudCBpbnN0YW5jZW9mIFNsaWRlckNvbXBvbmVudCkge1xuICAgIHJldHVybiB2YWx1ZUNvbXBvbmVudC5zbGlkZXJFbDtcbiAgfVxuXG4gIGlmICh2YWx1ZUNvbXBvbmVudCBpbnN0YW5jZW9mIFRleHRBcmVhQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHZhbHVlQ29tcG9uZW50LmlucHV0RWw7XG4gIH1cblxuICBpZiAodmFsdWVDb21wb25lbnQgaW5zdGFuY2VvZiBUZXh0Q29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHZhbHVlQ29tcG9uZW50LmlucHV0RWw7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0Esc0JBTU87QUFPUCxvQkFBa0Q7QUFVbEQsTUFBTSxpQkFBNkY7QUFBQSxFQUMxRixZQUFvQixnQkFBaUM7QUFBakM7QUFBQSxFQUMzQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS08sYUFBNkQ7QUFDbEUsZUFBTyxpREFBa0MsQ0FBQyxHQUFHLEtBQUssZ0JBQWdCLElBQUk7QUFBQSxFQUN4RTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXFETyxLQUlMLFFBQ0EsVUFDQSxTQUNnRDtBQUVoRCxVQUFNLGtCQUF3RjtBQUFBLE1BQzVGLFVBQVU7QUFBQSxNQUNWLHlDQUF5QyxDQUFDLFVBQXdCO0FBQUEsTUFDbEUseUNBQXlDLENBQUMsVUFBbUI7QUFBQSxJQUMvRDtBQUVBLFVBQU0sYUFBbUYsRUFBRSxHQUFHLGlCQUFpQixHQUFHLFFBQVE7QUFDMUgsVUFBTSxZQUFZO0FBQ2xCLFVBQU0sbUJBQW1CLE1BQXNCLFdBQVcsa0JBQWtCLFVBQVU7QUFFdEYsVUFBTSxXQUFXLENBQUMsWUFBK0I7QUFDL0MsVUFBSSxDQUFDLFdBQVcsZ0JBQWdCO0FBQzlCLGVBQU87QUFBQSxNQUNUO0FBQ0Esa0JBQVksS0FBSyxlQUFlLFNBQVM7QUFDekMsWUFBTSxlQUFlLFdBQVcsZUFBZSxPQUFPO0FBQ3RELFlBQU1BLG9CQUFtQixvQkFBb0IsS0FBSyxjQUFjO0FBQ2hFLFVBQUlBLG1CQUFrQjtBQUNwQixRQUFBQSxrQkFBaUIsa0JBQWtCLGdCQUFnQixFQUFFO0FBQ3JELFFBQUFBLGtCQUFpQixlQUFlO0FBQUEsTUFDbEM7QUFFQSxhQUFPLENBQUM7QUFBQSxJQUNWO0FBRUEsU0FBSyxlQUNGLFNBQVMsV0FBVyx3Q0FBd0MsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFDekYsU0FBUyxPQUFPLFlBQVk7QUFDM0IsVUFBSSxDQUFDLFNBQVMsT0FBTyxHQUFHO0FBQ3RCO0FBQUEsTUFDRjtBQUNBLFlBQU0saUJBQWlCLGlCQUFpQjtBQUN4QyxxQkFBZSxRQUFRLElBQUksV0FBVyx3Q0FBd0MsT0FBTztBQUNyRixVQUFJLFdBQVcsVUFBVTtBQUN2QixjQUFNLFVBQVUsYUFBYSxjQUFjO0FBQUEsTUFDN0M7QUFFQSxZQUFNLFdBQVcsWUFBWTtBQUFBLElBQy9CLENBQUM7QUFFSCxhQUFTO0FBRVQsVUFBTSxtQkFBbUIsb0JBQW9CLEtBQUssY0FBYztBQUNoRSxRQUFJLGtCQUFrQjtBQUNwQix1QkFBaUIsaUJBQWlCLFNBQVMsTUFBTSxTQUFTLENBQUM7QUFDM0QsdUJBQWlCLGlCQUFpQixRQUFRLE1BQU0sU0FBUyxDQUFDO0FBQUEsSUFDNUQ7QUFFQSxXQUFPLEtBQUssV0FBVztBQUFBLEVBQ3pCO0FBQ0Y7QUFVTyxTQUFTLE9BQW1GLGdCQUE2SDtBQUM5TixTQUFPLElBQUksaUJBQTJDLGNBQWMsRUFBRSxXQUFXO0FBQ25GO0FBa0VBLFNBQVMsb0JBQTZCLGdCQUFvRjtBQUN4SCxNQUFJLDBCQUEwQixtQ0FBbUI7QUFDL0MsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxNQUFJLDBCQUEwQixpQ0FBaUI7QUFDN0MsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxNQUFJLDBCQUEwQixtQ0FBbUI7QUFDL0MsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxNQUFJLDBCQUEwQiwrQkFBZTtBQUMzQyxXQUFPLGVBQWU7QUFBQSxFQUN4QjtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFsidmFsaWRhdG9yRWxlbWVudCJdCn0K
118
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9WYWx1ZUNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gVmFsdWVDb21wb25lbnRcbiAqIENvbnRhaW5zIHV0aWxpdHkgdHlwZXMgYW5kIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgdmFsdWUgY29tcG9uZW50cywgd2hpY2ggYXJlIFVJIGNvbXBvbmVudHMgdGhhdCBkaXNwbGF5IGFuZCBlZGl0IHZhbHVlcy5cbiAqL1xuXG5pbXBvcnQge1xuICBEcm9wZG93bkNvbXBvbmVudCxcbiAgU2xpZGVyQ29tcG9uZW50LFxuICBUZXh0QXJlYUNvbXBvbmVudCxcbiAgVGV4dENvbXBvbmVudCxcbiAgVmFsdWVDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IEtleXNNYXRjaGluZyB9IGZyb20gJy4uLy4uL0B0eXBlcy50cyc7XG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uLy4uL0FzeW5jLnRzJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yRWxlbWVudCB9IGZyb20gJy4uLy4uL0hUTUxFbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luQmFzZSB9IGZyb20gJy4vUGx1Z2luQmFzZS50cyc7XG5cbmltcG9ydCB7IGFzc2lnbldpdGhOb25FbnVtZXJhYmxlUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL09iamVjdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYmluZGluZyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHBsdWdpbiBzZXR0aW5nLlxuICovXG5pbnRlcmZhY2UgQmluZFZhbHVlQ29tcG9uZW50T3B0aW9uczxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZT4ge1xuICAvKipcbiAgICogSWYgdHJ1ZSwgc2F2ZXMgdGhlIHBsdWdpbiBzZXR0aW5ncyBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSBjb21wb25lbnQgdmFsdWUgY2hhbmdlcy4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBhdXRvU2F2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudCBjaGFuZ2VzLlxuICAgKi9cbiAgb25DaGFuZ2VkPzogKCkgPT4gTWF5YmVQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIHNldHRpbmdzIG9iamVjdCB0byBiaW5kIHRoZSBjb21wb25lbnQgdG8uIERlZmF1bHQgaXMgdGhlIHBsdWdpbidzIGN1cnJlbnQgc2V0dGluZ3MuXG4gICAqL1xuICBwbHVnaW5TZXR0aW5ncz86IFBsdWdpblNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIFVJIHZhbHVlIGJlZm9yZSBzZXR0aW5nIGl0IG9uIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqIEBwYXJhbSB1aVZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIEFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHZhbHVlIGlzIGludmFsaWQsIG9yIGBudWxsYCBpZiBpdCBpcyB2YWxpZC5cbiAgICovXG4gIHZhbHVlVmFsaWRhdG9yPzogKHVpVmFsdWU6IFVJVmFsdWUpID0+IG51bGwgfCBzdHJpbmc7XG59XG5cbi8qKlxuICogRXh0ZW5kZWQgb3B0aW9ucyBmb3IgYmluZGluZyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHBsdWdpbiBzZXR0aW5nLlxuICovXG5pbnRlcmZhY2UgQmluZFZhbHVlQ29tcG9uZW50T3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eSBleHRlbmRzIGtleW9mIFBsdWdpblNldHRpbmdzPiBleHRlbmRzIEJpbmRWYWx1ZUNvbXBvbmVudE9wdGlvbnM8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWU+IHtcbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBVSSBjb21wb25lbnQncyB2YWx1ZSBiYWNrIHRvIHRoZSBwbHVnaW4gc2V0dGluZ3MgdmFsdWUuXG4gICAqIEBwYXJhbSB1aVZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSB0byBzZXQgb24gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIGNvbXBvbmVudFRvUGx1Z2luU2V0dGluZ3NWYWx1ZUNvbnZlcnRlcjogKHVpVmFsdWU6IFVJVmFsdWUpID0+IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5XTtcblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHBsdWdpbiBzZXR0aW5ncyB2YWx1ZSB0byB0aGUgdmFsdWUgdXNlZCBieSB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gcGx1Z2luU2V0dGluZ3NWYWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgaW4gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIHRvIHNldCBvbiB0aGUgVUkgY29tcG9uZW50LlxuICAgKi9cbiAgcGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyOiAocGx1Z2luU2V0dGluZ3NWYWx1ZTogUGx1Z2luU2V0dGluZ3NbUHJvcGVydHldKSA9PiBVSVZhbHVlO1xufVxuXG4vKipcbiAqIFZhbHVlQ29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgYXMgYW4gb3JpZ2luYWwgVmFsdWVDb21wb25lbnQgd2l0aCBleHRlbmRlZCBmdW5jdGlvbmFsaXR5LlxuICovXG50eXBlIFZhbHVlQ29tcG9uZW50RXhUeXBlPFVJVmFsdWUsIFRWYWx1ZUNvbXBvbmVudCBleHRlbmRzIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+PiA9IFRWYWx1ZUNvbXBvbmVudCAmIFZhbHVlQ29tcG9uZW50RXg8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50PjtcblxuLyoqXG4gKiBBIFZhbHVlQ29tcG9uZW50IHRoYXQgY2FuIHRyYWNrIGNoYW5nZXMuXG4gKi9cbmludGVyZmFjZSBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxUPiBleHRlbmRzIFZhbHVlQ29tcG9uZW50PFQ+IHtcbiAgLyoqXG4gICAqIFNldHMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudCBjaGFuZ2VzLlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICovXG4gIG9uQ2hhbmdlKGNhbGxiYWNrOiAobmV3VmFsdWU6IFQpID0+IFByb21pc2U8dm9pZD4pOiB0aGlzO1xufVxuXG4vKipcbiAqIFZhbHVlQ29tcG9uZW50IHdpdGggZXh0ZW5kZWQgZnVuY3Rpb25hbGl0eS5cbiAqL1xuY2xhc3MgVmFsdWVDb21wb25lbnRFeDxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxVSVZhbHVlPj4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50KSB7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgVmFsdWVDb21wb25lbnQgd2l0aCBleHRlbmRlZCBmdW5jdGlvbmFsaXR5LlxuICAgKi9cbiAgcHVibGljIGFzRXh0ZW5kZWQoKTogVmFsdWVDb21wb25lbnRFeFR5cGU8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIGFzc2lnbldpdGhOb25FbnVtZXJhYmxlUHJvcGVydGllcyh7fSwgdGhpcy52YWx1ZUNvbXBvbmVudCwgdGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdGhlIFZhbHVlQ29tcG9uZW50IHRvIGEgcHJvcGVydHkgaW4gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5IC0gVGhlIGtleSBvZiB0aGUgcGx1Z2luIHNldHRpbmcgdGhhdCB0aGUgY29tcG9uZW50IGlzIGJvdW5kIHRvLlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbi5cbiAgICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IGtleSBpbiBgUGx1Z2luU2V0dGluZ3NgIHRvIGJpbmQgdG8gdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIFRoZSBgVmFsdWVDb21wb25lbnRgIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzXG4gICAgUHJvcGVydHkgZXh0ZW5kcyBLZXlzTWF0Y2hpbmc8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWU+XG4gID4oXG4gICAgcGx1Z2luOiBQbHVnaW5CYXNlPFBsdWdpblNldHRpbmdzPixcbiAgICBwcm9wZXJ0eTogUHJvcGVydHksXG4gICAgb3B0aW9ucz86IEJpbmRWYWx1ZUNvbXBvbmVudE9wdGlvbnM8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWU+XG4gICk6IFZhbHVlQ29tcG9uZW50RXhUeXBlPFVJVmFsdWUsIFRWYWx1ZUNvbXBvbmVudD47XG5cbiAgLyoqXG4gICAqIEJpbmRzIHRoZSBWYWx1ZUNvbXBvbmVudCB0byBhIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IGV4dGVuZHMgYFBsdWdpbkJhc2VgLlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5IC0gVGhlIGtleSBvZiB0aGUgcGx1Z2luIHNldHRpbmcgdGhhdCB0aGUgY29tcG9uZW50IGlzIGJvdW5kIHRvLlxuICAgKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luLlxuICAgKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkga2V5IGluIGBQbHVnaW5TZXR0aW5nc2AgdG8gYmluZCB0byB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICogQHJldHVybnMgVGhlIGBWYWx1ZUNvbXBvbmVudGAgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQgdG8gdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3QsXG4gICAgUHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBQbHVnaW5TZXR0aW5nc1xuICA+KFxuICAgIHBsdWdpbjogUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncz4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIG9wdGlvbnM6IEJpbmRWYWx1ZUNvbXBvbmVudE9wdGlvbnNFeHRlbmRlZDxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZSwgUHJvcGVydHk+XG4gICk6IFZhbHVlQ29tcG9uZW50RXhUeXBlPFVJVmFsdWUsIFRWYWx1ZUNvbXBvbmVudD47XG5cbiAgLyoqXG4gICAqIEJpbmRzIHRoZSBWYWx1ZUNvbXBvbmVudCB0byBhIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IGV4dGVuZHMgYFBsdWdpbkJhc2VgLlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5IC0gVGhlIGtleSBvZiB0aGUgcGx1Z2luIHNldHRpbmcgdGhhdCB0aGUgY29tcG9uZW50IGlzIGJvdW5kIHRvLlxuICAgKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QuXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luLlxuICAgKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkga2V5IGluIGBQbHVnaW5TZXR0aW5nc2AgdG8gYmluZCB0byB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICogQHJldHVybnMgVGhlIGBWYWx1ZUNvbXBvbmVudGAgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQgdG8gdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3QsXG4gICAgUHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBQbHVnaW5TZXR0aW5nc1xuICA+KFxuICAgIHBsdWdpbjogUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncz4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIG9wdGlvbnM/OiBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPlxuICApOiBWYWx1ZUNvbXBvbmVudEV4VHlwZTxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+IHtcbiAgICB0eXBlIFByb3BlcnR5VHlwZSA9IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5XTtcbiAgICBjb25zdCBERUZBVUxUX09QVElPTlM6IEJpbmRWYWx1ZUNvbXBvbmVudE9wdGlvbnNFeHRlbmRlZDxQbHVnaW5TZXR0aW5ncywgVUlWYWx1ZSwgUHJvcGVydHk+ID0ge1xuICAgICAgYXV0b1NhdmU6IHRydWUsXG4gICAgICBjb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXI6ICh2YWx1ZSk6IFByb3BlcnR5VHlwZSA9PiB2YWx1ZSBhcyBQcm9wZXJ0eVR5cGUsXG4gICAgICBwbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXI6ICh2YWx1ZSk6IFVJVmFsdWUgPT4gdmFsdWUgYXMgVUlWYWx1ZVxuICAgIH07XG5cbiAgICBjb25zdCBvcHRpb25zRXh0OiBCaW5kVmFsdWVDb21wb25lbnRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5PiA9IHsgLi4uREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zIH07XG4gICAgY29uc3QgcGx1Z2luRXh0ID0gcGx1Z2luIGFzIHVua25vd24gYXMgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncz47XG4gICAgY29uc3QgcGx1Z2luU2V0dGluZ3NGbiA9ICgpOiBQbHVnaW5TZXR0aW5ncyA9PiBvcHRpb25zRXh0LnBsdWdpblNldHRpbmdzID8/IHBsdWdpbkV4dC5zZXR0aW5nc0NvcHk7XG5cbiAgICBjb25zdCB2YWxpZGF0ZSA9ICh1aVZhbHVlPzogVUlWYWx1ZSk6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKCFvcHRpb25zRXh0LnZhbHVlVmFsaWRhdG9yKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgdWlWYWx1ZSA/Pz0gdGhpcy52YWx1ZUNvbXBvbmVudC5nZXRWYWx1ZSgpO1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gb3B0aW9uc0V4dC52YWx1ZVZhbGlkYXRvcih1aVZhbHVlKTtcbiAgICAgIGNvbnN0IHZhbGlkYXRvckVsZW1lbnQgPSBnZXRWYWxpZGF0b3JFbGVtZW50KHRoaXMudmFsdWVDb21wb25lbnQpO1xuICAgICAgaWYgKHZhbGlkYXRvckVsZW1lbnQpIHtcbiAgICAgICAgdmFsaWRhdG9yRWxlbWVudC5zZXRDdXN0b21WYWxpZGl0eShlcnJvck1lc3NhZ2UgPz8gJycpO1xuICAgICAgICB2YWxpZGF0b3JFbGVtZW50LnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAhZXJyb3JNZXNzYWdlO1xuICAgIH07XG5cbiAgICB0aGlzLnZhbHVlQ29tcG9uZW50XG4gICAgICAuc2V0VmFsdWUob3B0aW9uc0V4dC5wbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXIocGx1Z2luU2V0dGluZ3NGbigpW3Byb3BlcnR5XSkpXG4gICAgICAub25DaGFuZ2UoYXN5bmMgKHVpVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCF2YWxpZGF0ZSh1aVZhbHVlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwbHVnaW5TZXR0aW5ncyA9IHBsdWdpblNldHRpbmdzRm4oKTtcbiAgICAgICAgcGx1Z2luU2V0dGluZ3NbcHJvcGVydHldID0gb3B0aW9uc0V4dC5jb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXIodWlWYWx1ZSk7XG4gICAgICAgIGlmIChvcHRpb25zRXh0LmF1dG9TYXZlKSB7XG4gICAgICAgICAgYXdhaXQgcGx1Z2luRXh0LnNhdmVTZXR0aW5ncyhwbHVnaW5TZXR0aW5ncyk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBvcHRpb25zRXh0Lm9uQ2hhbmdlZD8uKCk7XG4gICAgICB9KTtcblxuICAgIHZhbGlkYXRlKCk7XG5cbiAgICBjb25zdCB2YWxpZGF0b3JFbGVtZW50ID0gZ2V0VmFsaWRhdG9yRWxlbWVudCh0aGlzLnZhbHVlQ29tcG9uZW50KTtcbiAgICBpZiAodmFsaWRhdG9yRWxlbWVudCkge1xuICAgICAgdmFsaWRhdG9yRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHZhbGlkYXRlKCkpO1xuICAgICAgdmFsaWRhdG9yRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4gdmFsaWRhdGUoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXNFeHRlbmRlZCgpO1xuICB9XG59XG5cbi8qKlxuICogRXh0ZW5kcyBhIFZhbHVlQ29tcG9uZW50IHdpdGggYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0aGUgY29tcG9uZW50IGRpc3BsYXlzLlxuICogQHR5cGVQYXJhbSBUVmFsdWVDb21wb25lbnQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgY29tcG9uZW50IGV4dGVuZGluZyBgVmFsdWVDb21wb25lbnRgLlxuICogQHBhcmFtIHZhbHVlQ29tcG9uZW50IC0gVGhlIHZhbHVlIGNvbXBvbmVudCB0byBleHRlbmQuXG4gKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50IHdpdGggZXh0ZW5kZWQgZnVuY3Rpb25hbGl0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVuZDxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxVSVZhbHVlPj4odmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCAmIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+KTogVmFsdWVDb21wb25lbnRFeFR5cGU8VUlWYWx1ZSwgVFZhbHVlQ29tcG9uZW50PiB7XG4gIHJldHVybiBuZXcgVmFsdWVDb21wb25lbnRFeDxVSVZhbHVlLCBUVmFsdWVDb21wb25lbnQ+KHZhbHVlQ29tcG9uZW50KS5hc0V4dGVuZGVkKCk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgdmFsaWRhdG9yIGVsZW1lbnQgZnJvbSBhIHZhbHVlIGNvbXBvbmVudCBpZiBpdCBleGlzdHMuXG4gKlxuICogQHBhcmFtIHZhbHVlQ29tcG9uZW50IC0gVGhlIHZhbHVlIGNvbXBvbmVudCB0byBnZXQgdGhlIHZhbGlkYXRvciBlbGVtZW50IGZyb20uXG4gKiBAcmV0dXJucyBUaGUgdmFsaWRhdG9yIGVsZW1lbnQgaWYgaXQgZXhpc3RzLCBvciBgbnVsbGAgaWYgaXQgZG9lcyBub3QuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbGlkYXRvckVsZW1lbnQ8VUlWYWx1ZT4odmFsdWVDb21wb25lbnQ6IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+KTogbnVsbCB8IFZhbGlkYXRvckVsZW1lbnQge1xuICBpZiAodmFsdWVDb21wb25lbnQgaW5zdGFuY2VvZiBEcm9wZG93bkNvbXBvbmVudCkge1xuICAgIHJldHVybiB2YWx1ZUNvbXBvbmVudC5zZWxlY3RFbDtcbiAgfVxuXG4gIGlmICh2YWx1ZUNvbXBvbmVudCBpbnN0YW5jZW9mIFNsaWRlckNvbXBvbmVudCkge1xuICAgIHJldHVybiB2YWx1ZUNvbXBvbmVudC5zbGlkZXJFbDtcbiAgfVxuXG4gIGlmICh2YWx1ZUNvbXBvbmVudCBpbnN0YW5jZW9mIFRleHRBcmVhQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHZhbHVlQ29tcG9uZW50LmlucHV0RWw7XG4gIH1cblxuICBpZiAodmFsdWVDb21wb25lbnQgaW5zdGFuY2VvZiBUZXh0Q29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHZhbHVlQ29tcG9uZW50LmlucHV0RWw7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0Esc0JBTU87QUFPUCxvQkFBa0Q7QUFvRWxELE1BQU0saUJBQTZGO0FBQUEsRUFDMUYsWUFBb0IsZ0JBQWlDO0FBQWpDO0FBQUEsRUFDM0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtPLGFBQTZEO0FBQ2xFLGVBQU8saURBQWtDLENBQUMsR0FBRyxLQUFLLGdCQUFnQixJQUFJO0FBQUEsRUFDeEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFxRE8sS0FJTCxRQUNBLFVBQ0EsU0FDZ0Q7QUFFaEQsVUFBTSxrQkFBd0Y7QUFBQSxNQUM1RixVQUFVO0FBQUEsTUFDVix5Q0FBeUMsQ0FBQyxVQUF3QjtBQUFBLE1BQ2xFLHlDQUF5QyxDQUFDLFVBQW1CO0FBQUEsSUFDL0Q7QUFFQSxVQUFNLGFBQW1GLEVBQUUsR0FBRyxpQkFBaUIsR0FBRyxRQUFRO0FBQzFILFVBQU0sWUFBWTtBQUNsQixVQUFNLG1CQUFtQixNQUFzQixXQUFXLGtCQUFrQixVQUFVO0FBRXRGLFVBQU0sV0FBVyxDQUFDLFlBQStCO0FBQy9DLFVBQUksQ0FBQyxXQUFXLGdCQUFnQjtBQUM5QixlQUFPO0FBQUEsTUFDVDtBQUNBLGtCQUFZLEtBQUssZUFBZSxTQUFTO0FBQ3pDLFlBQU0sZUFBZSxXQUFXLGVBQWUsT0FBTztBQUN0RCxZQUFNQSxvQkFBbUIsb0JBQW9CLEtBQUssY0FBYztBQUNoRSxVQUFJQSxtQkFBa0I7QUFDcEIsUUFBQUEsa0JBQWlCLGtCQUFrQixnQkFBZ0IsRUFBRTtBQUNyRCxRQUFBQSxrQkFBaUIsZUFBZTtBQUFBLE1BQ2xDO0FBRUEsYUFBTyxDQUFDO0FBQUEsSUFDVjtBQUVBLFNBQUssZUFDRixTQUFTLFdBQVcsd0NBQXdDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQ3pGLFNBQVMsT0FBTyxZQUFZO0FBQzNCLFVBQUksQ0FBQyxTQUFTLE9BQU8sR0FBRztBQUN0QjtBQUFBLE1BQ0Y7QUFDQSxZQUFNLGlCQUFpQixpQkFBaUI7QUFDeEMscUJBQWUsUUFBUSxJQUFJLFdBQVcsd0NBQXdDLE9BQU87QUFDckYsVUFBSSxXQUFXLFVBQVU7QUFDdkIsY0FBTSxVQUFVLGFBQWEsY0FBYztBQUFBLE1BQzdDO0FBRUEsWUFBTSxXQUFXLFlBQVk7QUFBQSxJQUMvQixDQUFDO0FBRUgsYUFBUztBQUVULFVBQU0sbUJBQW1CLG9CQUFvQixLQUFLLGNBQWM7QUFDaEUsUUFBSSxrQkFBa0I7QUFDcEIsdUJBQWlCLGlCQUFpQixTQUFTLE1BQU0sU0FBUyxDQUFDO0FBQzNELHVCQUFpQixpQkFBaUIsUUFBUSxNQUFNLFNBQVMsQ0FBQztBQUFBLElBQzVEO0FBRUEsV0FBTyxLQUFLLFdBQVc7QUFBQSxFQUN6QjtBQUNGO0FBVU8sU0FBUyxPQUFtRixnQkFBNkg7QUFDOU4sU0FBTyxJQUFJLGlCQUEyQyxjQUFjLEVBQUUsV0FBVztBQUNuRjtBQVFBLFNBQVMsb0JBQTZCLGdCQUFvRjtBQUN4SCxNQUFJLDBCQUEwQixtQ0FBbUI7QUFDL0MsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxNQUFJLDBCQUEwQixpQ0FBaUI7QUFDN0MsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxNQUFJLDBCQUEwQixtQ0FBbUI7QUFDL0MsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxNQUFJLDBCQUEwQiwrQkFBZTtBQUMzQyxXQUFPLGVBQWU7QUFBQSxFQUN4QjtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFsidmFsaWRhdG9yRWxlbWVudCJdCn0K
@@ -6,10 +6,61 @@ import { ValueComponent } from 'obsidian';
6
6
  import type { KeysMatching } from '../../@types.ts';
7
7
  import type { MaybePromise } from '../../Async.ts';
8
8
  import type { PluginBase } from './PluginBase.ts';
9
+ /**
10
+ * Options for binding a value component to a plugin setting.
11
+ */
12
+ interface BindValueComponentOptions<PluginSettings, UIValue> {
13
+ /**
14
+ * If true, saves the plugin settings automatically after the component value changes. Default is `true`.
15
+ */
16
+ autoSave?: boolean;
17
+ /**
18
+ * A callback function that is called when the value of the component changes.
19
+ */
20
+ onChanged?: () => MaybePromise<void>;
21
+ /**
22
+ * The plugin settings object to bind the component to. Default is the plugin's current settings.
23
+ */
24
+ pluginSettings?: PluginSettings;
25
+ /**
26
+ * Validates the UI value before setting it on the plugin settings.
27
+ * @param uiValue - The value of the UI component.
28
+ * @returns An error message if the value is invalid, or `null` if it is valid.
29
+ */
30
+ valueValidator?: (uiValue: UIValue) => null | string;
31
+ }
32
+ /**
33
+ * Extended options for binding a value component to a plugin setting.
34
+ */
35
+ interface BindValueComponentOptionsExtended<PluginSettings, UIValue, Property extends keyof PluginSettings> extends BindValueComponentOptions<PluginSettings, UIValue> {
36
+ /**
37
+ * Converts the UI component's value back to the plugin settings value.
38
+ * @param uiValue - The value of the UI component.
39
+ * @returns The value to set on the plugin settings.
40
+ */
41
+ componentToPluginSettingsValueConverter: (uiValue: UIValue) => PluginSettings[Property];
42
+ /**
43
+ * Converts the plugin settings value to the value used by the UI component.
44
+ * @param pluginSettingsValue - The value of the property in the plugin settings.
45
+ * @returns The value to set on the UI component.
46
+ */
47
+ pluginSettingsToComponentValueConverter: (pluginSettingsValue: PluginSettings[Property]) => UIValue;
48
+ }
9
49
  /**
10
50
  * ValueComponent that can be used as an original ValueComponent with extended functionality.
11
51
  */
12
52
  type ValueComponentExType<UIValue, TValueComponent extends ValueComponentWithChangeTracking<UIValue>> = TValueComponent & ValueComponentEx<UIValue, TValueComponent>;
53
+ /**
54
+ * A ValueComponent that can track changes.
55
+ */
56
+ interface ValueComponentWithChangeTracking<T> extends ValueComponent<T> {
57
+ /**
58
+ * Sets a callback function to be called when the value of the component changes.
59
+ *
60
+ * @param callback - A callback function that is called when the value of the component changes.
61
+ */
62
+ onChange(callback: (newValue: T) => Promise<void>): this;
63
+ }
13
64
  /**
14
65
  * ValueComponent with extended functionality.
15
66
  */
@@ -53,55 +104,4 @@ declare class ValueComponentEx<UIValue, TValueComponent extends ValueComponentWi
53
104
  * @returns The value component with extended functionality.
54
105
  */
55
106
  export declare function extend<UIValue, TValueComponent extends ValueComponentWithChangeTracking<UIValue>>(valueComponent: TValueComponent & ValueComponentWithChangeTracking<UIValue>): ValueComponentExType<UIValue, TValueComponent>;
56
- /**
57
- * A ValueComponent that can track changes.
58
- */
59
- interface ValueComponentWithChangeTracking<T> extends ValueComponent<T> {
60
- /**
61
- * Sets a callback function to be called when the value of the component changes.
62
- *
63
- * @param callback - A callback function that is called when the value of the component changes.
64
- */
65
- onChange(callback: (newValue: T) => Promise<void>): this;
66
- }
67
- /**
68
- * Options for binding a value component to a plugin setting.
69
- */
70
- interface BindValueComponentOptions<PluginSettings, UIValue> {
71
- /**
72
- * If true, saves the plugin settings automatically after the component value changes. Default is `true`.
73
- */
74
- autoSave?: boolean;
75
- /**
76
- * A callback function that is called when the value of the component changes.
77
- */
78
- onChanged?: () => MaybePromise<void>;
79
- /**
80
- * The plugin settings object to bind the component to. Default is the plugin's current settings.
81
- */
82
- pluginSettings?: PluginSettings;
83
- /**
84
- * Validates the UI value before setting it on the plugin settings.
85
- * @param uiValue - The value of the UI component.
86
- * @returns An error message if the value is invalid, or `null` if it is valid.
87
- */
88
- valueValidator?: (uiValue: UIValue) => null | string;
89
- }
90
- /**
91
- * Extended options for binding a value component to a plugin setting.
92
- */
93
- interface BindValueComponentOptionsExtended<PluginSettings, UIValue, Property extends keyof PluginSettings> extends BindValueComponentOptions<PluginSettings, UIValue> {
94
- /**
95
- * Converts the UI component's value back to the plugin settings value.
96
- * @param uiValue - The value of the UI component.
97
- * @returns The value to set on the plugin settings.
98
- */
99
- componentToPluginSettingsValueConverter: (uiValue: UIValue) => PluginSettings[Property];
100
- /**
101
- * Converts the plugin settings value to the value used by the UI component.
102
- * @param pluginSettingsValue - The value of the property in the plugin settings.
103
- * @returns The value to set on the UI component.
104
- */
105
- pluginSettingsToComponentValueConverter: (pluginSettingsValue: PluginSettings[Property]) => UIValue;
106
- }
107
107
  export {};