obsidian-dev-utils 17.10.1 → 17.10.2-beta.10

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 (257) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/lib/Async.cjs +1 -1
  3. package/dist/lib/Async.mjs +154 -0
  4. package/dist/lib/Blob.cjs +1 -1
  5. package/dist/lib/Blob.mjs +81 -0
  6. package/dist/lib/CssClass.cjs +1 -1
  7. package/dist/lib/CssClass.mjs +32 -0
  8. package/dist/lib/Debug.cjs +1 -1
  9. package/dist/lib/Debug.mjs +137 -0
  10. package/dist/lib/DebugController.cjs +1 -1
  11. package/dist/lib/DebugController.mjs +8 -0
  12. package/dist/lib/Enum.cjs +1 -1
  13. package/dist/lib/Enum.mjs +26 -0
  14. package/dist/lib/Error.cjs +1 -1
  15. package/dist/lib/Error.mjs +82 -0
  16. package/dist/lib/Function.cjs +1 -1
  17. package/dist/lib/Function.mjs +28 -0
  18. package/dist/lib/HTMLElement.cjs +1 -1
  19. package/dist/lib/HTMLElement.mjs +65 -0
  20. package/dist/lib/Library.cjs +3 -3
  21. package/dist/lib/Library.mjs +16 -0
  22. package/dist/lib/Object.cjs +2 -2
  23. package/dist/lib/Object.d.ts +16 -0
  24. package/dist/lib/Object.mjs +273 -0
  25. package/dist/lib/Path.cjs +1 -1
  26. package/dist/lib/Path.mjs +76 -0
  27. package/dist/lib/RegExp.cjs +1 -1
  28. package/dist/lib/RegExp.mjs +23 -0
  29. package/dist/lib/String.cjs +1 -1
  30. package/dist/lib/String.mjs +119 -0
  31. package/dist/lib/Transformers/DateTransformer.cjs +71 -0
  32. package/dist/lib/Transformers/DateTransformer.d.ts +35 -0
  33. package/dist/lib/Transformers/DateTransformer.mjs +47 -0
  34. package/dist/lib/Transformers/DurationTransformer.cjs +71 -0
  35. package/dist/lib/Transformers/DurationTransformer.d.ts +34 -0
  36. package/dist/lib/Transformers/DurationTransformer.mjs +47 -0
  37. package/dist/lib/Transformers/GroupTransformer.cjs +118 -0
  38. package/dist/lib/Transformers/GroupTransformer.d.ts +65 -0
  39. package/dist/lib/Transformers/GroupTransformer.mjs +94 -0
  40. package/dist/lib/Transformers/SkipPrivatePropertyTransformer.cjs +69 -0
  41. package/dist/lib/Transformers/SkipPrivatePropertyTransformer.d.ts +32 -0
  42. package/dist/lib/Transformers/SkipPrivatePropertyTransformer.mjs +45 -0
  43. package/dist/lib/Transformers/Transformer.cjs +107 -0
  44. package/dist/lib/Transformers/Transformer.d.ts +67 -0
  45. package/dist/lib/Transformers/Transformer.mjs +83 -0
  46. package/dist/lib/Transformers/TypedTransformer.cjs +38 -0
  47. package/dist/lib/Transformers/TypedTransformer.d.ts +37 -0
  48. package/dist/lib/Transformers/TypedTransformer.mjs +14 -0
  49. package/dist/lib/ValueProvider.cjs +1 -1
  50. package/dist/lib/ValueProvider.mjs +20 -0
  51. package/dist/lib/codemirror/StateFieldSpec.cjs +1 -1
  52. package/dist/lib/codemirror/StateFieldSpec.mjs +8 -0
  53. package/dist/lib/index.cjs +2 -14
  54. package/dist/lib/index.d.ts +0 -4
  55. package/dist/lib/index.mjs +42 -0
  56. package/dist/lib/obsidian/App.cjs +1 -1
  57. package/dist/lib/obsidian/App.mjs +33 -0
  58. package/dist/lib/obsidian/AttachmentPath.cjs +1 -1
  59. package/dist/lib/obsidian/AttachmentPath.mjs +82 -0
  60. package/dist/lib/obsidian/Backlink.cjs +1 -1
  61. package/dist/lib/obsidian/Backlink.mjs +88 -0
  62. package/dist/lib/obsidian/Callout.cjs +1 -1
  63. package/dist/lib/obsidian/Callout.mjs +71 -0
  64. package/dist/lib/obsidian/Components/DateComponent.cjs +2 -2
  65. package/dist/lib/obsidian/Components/DateComponent.d.ts +1 -1
  66. package/dist/lib/obsidian/Components/DateComponent.mjs +43 -0
  67. package/dist/lib/obsidian/Components/DateTimeComponent.cjs +2 -2
  68. package/dist/lib/obsidian/Components/DateTimeComponent.d.ts +1 -1
  69. package/dist/lib/obsidian/Components/DateTimeComponent.mjs +43 -0
  70. package/dist/lib/obsidian/Components/EmailComponent.cjs +2 -2
  71. package/dist/lib/obsidian/Components/EmailComponent.d.ts +1 -1
  72. package/dist/lib/obsidian/Components/EmailComponent.mjs +32 -0
  73. package/dist/lib/obsidian/Components/FileComponent.cjs +2 -2
  74. package/dist/lib/obsidian/Components/FileComponent.d.ts +1 -1
  75. package/dist/lib/obsidian/Components/FileComponent.mjs +48 -0
  76. package/dist/lib/obsidian/Components/MonthComponent.cjs +2 -2
  77. package/dist/lib/obsidian/Components/MonthComponent.d.ts +1 -1
  78. package/dist/lib/obsidian/Components/MonthComponent.mjs +51 -0
  79. package/dist/lib/obsidian/Components/MultipleDropdownComponent.cjs +2 -2
  80. package/dist/lib/obsidian/Components/MultipleDropdownComponent.d.ts +1 -1
  81. package/dist/lib/obsidian/Components/MultipleDropdownComponent.mjs +88 -0
  82. package/dist/lib/obsidian/Components/MultipleEmailComponent.cjs +2 -2
  83. package/dist/lib/obsidian/Components/MultipleEmailComponent.d.ts +1 -1
  84. package/dist/lib/obsidian/Components/MultipleEmailComponent.mjs +42 -0
  85. package/dist/lib/obsidian/Components/MultipleFileComponent.cjs +2 -2
  86. package/dist/lib/obsidian/Components/MultipleFileComponent.d.ts +1 -1
  87. package/dist/lib/obsidian/Components/MultipleFileComponent.mjs +49 -0
  88. package/dist/lib/obsidian/Components/NumberComponent.cjs +2 -2
  89. package/dist/lib/obsidian/Components/NumberComponent.d.ts +1 -1
  90. package/dist/lib/obsidian/Components/NumberComponent.mjs +32 -0
  91. package/dist/lib/obsidian/Components/TimeComponent.cjs +2 -2
  92. package/dist/lib/obsidian/Components/TimeComponent.d.ts +1 -1
  93. package/dist/lib/obsidian/Components/TimeComponent.mjs +53 -0
  94. package/dist/lib/obsidian/Components/TypedRangeTextComponent.cjs +1 -1
  95. package/dist/lib/obsidian/Components/TypedRangeTextComponent.mjs +44 -0
  96. package/dist/lib/obsidian/Components/TypedTextComponent.cjs +1 -1
  97. package/dist/lib/obsidian/Components/TypedTextComponent.mjs +107 -0
  98. package/dist/lib/obsidian/Components/UrlComponent.cjs +2 -2
  99. package/dist/lib/obsidian/Components/UrlComponent.d.ts +1 -1
  100. package/dist/lib/obsidian/Components/UrlComponent.mjs +32 -0
  101. package/dist/lib/obsidian/Components/ValidatorComponent.cjs +1 -1
  102. package/dist/lib/obsidian/Components/ValidatorComponent.mjs +52 -0
  103. package/dist/lib/obsidian/Components/ValueComponentWithChangeTracking.cjs +1 -1
  104. package/dist/lib/obsidian/Components/ValueComponentWithChangeTracking.mjs +9 -0
  105. package/dist/lib/obsidian/Components/WeekComponent.cjs +2 -2
  106. package/dist/lib/obsidian/Components/WeekComponent.d.ts +1 -1
  107. package/dist/lib/obsidian/Components/WeekComponent.mjs +51 -0
  108. package/dist/lib/obsidian/Dataview.cjs +1 -1
  109. package/dist/lib/obsidian/Dataview.mjs +232 -0
  110. package/dist/lib/obsidian/DataviewLink.cjs +1 -1
  111. package/dist/lib/obsidian/DataviewLink.mjs +27 -0
  112. package/dist/lib/obsidian/FileChange.cjs +1 -1
  113. package/dist/lib/obsidian/FileChange.mjs +123 -0
  114. package/dist/lib/obsidian/FileManager.cjs +1 -1
  115. package/dist/lib/obsidian/FileManager.mjs +66 -0
  116. package/dist/lib/obsidian/FileSystem.cjs +1 -1
  117. package/dist/lib/obsidian/FileSystem.mjs +197 -0
  118. package/dist/lib/obsidian/Frontmatter.cjs +1 -1
  119. package/dist/lib/obsidian/Frontmatter.mjs +32 -0
  120. package/dist/lib/obsidian/Link.cjs +1 -1
  121. package/dist/lib/obsidian/Link.mjs +415 -0
  122. package/dist/lib/obsidian/Logger.cjs +1 -1
  123. package/dist/lib/obsidian/Logger.mjs +45 -0
  124. package/dist/lib/obsidian/Loop.cjs +1 -1
  125. package/dist/lib/obsidian/Loop.mjs +39 -0
  126. package/dist/lib/obsidian/Markdown.cjs +1 -1
  127. package/dist/lib/obsidian/Markdown.mjs +40 -0
  128. package/dist/lib/obsidian/MarkdownCodeBlockProcessor.cjs +1 -1
  129. package/dist/lib/obsidian/MarkdownCodeBlockProcessor.mjs +44 -0
  130. package/dist/lib/obsidian/MarkdownView.cjs +1 -1
  131. package/dist/lib/obsidian/MarkdownView.mjs +21 -0
  132. package/dist/lib/obsidian/MetadataCache.cjs +1 -1
  133. package/dist/lib/obsidian/MetadataCache.mjs +219 -0
  134. package/dist/lib/obsidian/Modals/Alert.cjs +1 -1
  135. package/dist/lib/obsidian/Modals/Alert.mjs +52 -0
  136. package/dist/lib/obsidian/Modals/Confirm.cjs +1 -1
  137. package/dist/lib/obsidian/Modals/Confirm.mjs +65 -0
  138. package/dist/lib/obsidian/Modals/Prompt.cjs +1 -1
  139. package/dist/lib/obsidian/Modals/Prompt.mjs +98 -0
  140. package/dist/lib/obsidian/Modals/SelectItem.cjs +1 -1
  141. package/dist/lib/obsidian/Modals/SelectItem.mjs +51 -0
  142. package/dist/lib/obsidian/ObsidianSettings.cjs +1 -1
  143. package/dist/lib/obsidian/ObsidianSettings.mjs +18 -0
  144. package/dist/lib/obsidian/Pdf.cjs +1 -1
  145. package/dist/lib/obsidian/Pdf.mjs +42 -0
  146. package/dist/lib/obsidian/Plugin/EmptySettings.cjs +1 -1
  147. package/dist/lib/obsidian/Plugin/EmptySettings.mjs +14 -0
  148. package/dist/lib/obsidian/Plugin/ObsidianPluginRepoPaths.cjs +3 -2
  149. package/dist/lib/obsidian/Plugin/ObsidianPluginRepoPaths.d.ts +2 -0
  150. package/dist/lib/obsidian/Plugin/ObsidianPluginRepoPaths.mjs +36 -0
  151. package/dist/lib/obsidian/Plugin/Plugin.cjs +1 -1
  152. package/dist/lib/obsidian/Plugin/Plugin.mjs +28 -0
  153. package/dist/lib/obsidian/Plugin/PluginBase.cjs +1 -1
  154. package/dist/lib/obsidian/Plugin/PluginBase.mjs +148 -0
  155. package/dist/lib/obsidian/Plugin/PluginContext.cjs +1 -1
  156. package/dist/lib/obsidian/Plugin/PluginContext.mjs +45 -0
  157. package/dist/lib/obsidian/Plugin/PluginId.cjs +1 -1
  158. package/dist/lib/obsidian/Plugin/PluginId.mjs +23 -0
  159. package/dist/lib/obsidian/Plugin/PluginSettingsBase.cjs +20 -10
  160. package/dist/lib/obsidian/Plugin/PluginSettingsBase.d.ts +2 -0
  161. package/dist/lib/obsidian/Plugin/PluginSettingsBase.mjs +69 -0
  162. package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.cjs +2 -2
  163. package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.d.ts +1 -1
  164. package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.mjs +101 -0
  165. package/dist/lib/obsidian/Queue.cjs +1 -1
  166. package/dist/lib/obsidian/Queue.mjs +50 -0
  167. package/dist/lib/obsidian/Reference.cjs +1 -1
  168. package/dist/lib/obsidian/Reference.mjs +45 -0
  169. package/dist/lib/obsidian/RenameDeleteHandler.cjs +1 -1
  170. package/dist/lib/obsidian/RenameDeleteHandler.mjs +436 -0
  171. package/dist/lib/obsidian/ResourceUrl.cjs +1 -1
  172. package/dist/lib/obsidian/ResourceUrl.mjs +19 -0
  173. package/dist/lib/obsidian/SettingEx.cjs +1 -1
  174. package/dist/lib/obsidian/SettingEx.mjs +148 -0
  175. package/dist/lib/obsidian/Vault.cjs +1 -1
  176. package/dist/lib/obsidian/Vault.mjs +248 -0
  177. package/dist/lib/obsidian/VaultEx.cjs +1 -1
  178. package/dist/lib/obsidian/VaultEx.mjs +71 -0
  179. package/dist/lib/scripts/CliUtils.cjs +1 -1
  180. package/dist/lib/scripts/CliUtils.mjs +135 -0
  181. package/dist/lib/scripts/CodeGenerator.cjs +1 -1
  182. package/dist/lib/scripts/CodeGenerator.mjs +19 -0
  183. package/dist/lib/scripts/ESLint/ESLint.cjs +4 -3
  184. package/dist/lib/scripts/ESLint/ESLint.mjs +68 -0
  185. package/dist/lib/scripts/ESLint/eslint.config.cjs +1 -1
  186. package/dist/lib/scripts/ESLint/eslint.config.mjs +287 -0
  187. package/dist/lib/scripts/Exec.cjs +1 -1
  188. package/dist/lib/scripts/Exec.mjs +98 -0
  189. package/dist/lib/scripts/Fs.cjs +1 -1
  190. package/dist/lib/scripts/Fs.mjs +64 -0
  191. package/dist/lib/scripts/JSON.cjs +1 -1
  192. package/dist/lib/scripts/JSON.mjs +60 -0
  193. package/dist/lib/scripts/NodeModules.cjs +1 -1
  194. package/dist/lib/scripts/NodeModules.mjs +62 -0
  195. package/dist/lib/scripts/Npm.cjs +1 -1
  196. package/dist/lib/scripts/Npm.mjs +106 -0
  197. package/dist/lib/scripts/NpmPublish.cjs +1 -1
  198. package/dist/lib/scripts/NpmPublish.mjs +21 -0
  199. package/dist/lib/scripts/ObsidianDevUtilsRepoPaths.cjs +9 -2
  200. package/dist/lib/scripts/ObsidianDevUtilsRepoPaths.d.ts +14 -0
  201. package/dist/lib/scripts/ObsidianDevUtilsRepoPaths.mjs +47 -0
  202. package/dist/lib/scripts/Root.cjs +1 -1
  203. package/dist/lib/scripts/Root.mjs +66 -0
  204. package/dist/lib/scripts/build.cjs +1 -1
  205. package/dist/lib/scripts/build.mjs +60 -0
  206. package/dist/lib/scripts/cli.cjs +4 -3
  207. package/dist/lib/scripts/cli.mjs +65 -0
  208. package/dist/lib/scripts/esbuild/Dependency.cjs +4 -3
  209. package/dist/lib/scripts/esbuild/Dependency.mjs +95 -0
  210. package/dist/lib/scripts/esbuild/ObsidianPluginBuilder.cjs +1 -1
  211. package/dist/lib/scripts/esbuild/ObsidianPluginBuilder.mjs +149 -0
  212. package/dist/lib/scripts/esbuild/changeExtensionPlugin.cjs +67 -0
  213. package/dist/lib/scripts/esbuild/changeExtensionPlugin.d.ts +12 -0
  214. package/dist/lib/scripts/esbuild/changeExtensionPlugin.mjs +43 -0
  215. package/dist/lib/scripts/esbuild/copyToObsidianPluginsFolderPlugin.cjs +1 -1
  216. package/dist/lib/scripts/esbuild/copyToObsidianPluginsFolderPlugin.mjs +50 -0
  217. package/dist/lib/scripts/esbuild/fixEsmPlugin.cjs +1 -1
  218. package/dist/lib/scripts/esbuild/fixEsmPlugin.mjs +25 -0
  219. package/dist/lib/scripts/esbuild/fixSourceMapsPlugin.cjs +1 -1
  220. package/dist/lib/scripts/esbuild/fixSourceMapsPlugin.mjs +55 -0
  221. package/dist/lib/scripts/esbuild/preprocessPlugin.cjs +7 -6
  222. package/dist/lib/scripts/esbuild/preprocessPlugin.d.ts +2 -1
  223. package/dist/lib/scripts/esbuild/preprocessPlugin.mjs +113 -0
  224. package/dist/lib/scripts/esbuild/renameCssPlugin.cjs +1 -1
  225. package/dist/lib/scripts/esbuild/renameCssPlugin.mjs +31 -0
  226. package/dist/lib/scripts/esbuild/svelteWrapperPlugin.cjs +1 -1
  227. package/dist/lib/scripts/esbuild/svelteWrapperPlugin.mjs +41 -0
  228. package/dist/lib/scripts/format.cjs +4 -3
  229. package/dist/lib/scripts/format.mjs +41 -0
  230. package/dist/lib/scripts/spellcheck.cjs +1 -1
  231. package/dist/lib/scripts/spellcheck.mjs +15 -0
  232. package/dist/lib/scripts/version.cjs +7 -3
  233. package/dist/lib/scripts/version.mjs +365 -0
  234. package/dist/lib/url.cjs +1 -1
  235. package/dist/lib/url.mjs +25 -0
  236. package/dist/styles.css +6 -38
  237. package/package.json +163 -174
  238. package/dist/lib/@types.cjs +0 -24
  239. package/dist/lib/@types.d.ts +0 -20
  240. package/dist/lib/codemirror/index.cjs +0 -46
  241. package/dist/lib/codemirror/index.d.ts +0 -1
  242. package/dist/lib/obsidian/Components/index.cjs +0 -91
  243. package/dist/lib/obsidian/Components/index.d.ts +0 -16
  244. package/dist/lib/obsidian/Modals/index.cjs +0 -55
  245. package/dist/lib/obsidian/Modals/index.d.ts +0 -4
  246. package/dist/lib/obsidian/Plugin/index.cjs +0 -67
  247. package/dist/lib/obsidian/Plugin/index.d.ts +0 -8
  248. package/dist/lib/obsidian/index.cjs +0 -130
  249. package/dist/lib/obsidian/index.d.ts +0 -29
  250. package/dist/lib/scripts/ESLint/index.cjs +0 -49
  251. package/dist/lib/scripts/ESLint/index.d.ts +0 -2
  252. package/dist/lib/scripts/esbuild/index.cjs +0 -70
  253. package/dist/lib/scripts/esbuild/index.d.ts +0 -9
  254. package/dist/lib/scripts/esbuild/renameToCjsPlugin.cjs +0 -60
  255. package/dist/lib/scripts/esbuild/renameToCjsPlugin.d.ts +0 -14
  256. package/dist/lib/scripts/index.cjs +0 -94
  257. package/dist/lib/scripts/index.d.ts +0 -17
@@ -0,0 +1,148 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
+
8
+ import {
9
+ Notice,
10
+ Plugin,
11
+ PluginSettingTab
12
+ } from "obsidian";
13
+ import { getDebugger } from "../../Debug.mjs";
14
+ import { registerAsyncErrorEventHandler } from "../../Error.mjs";
15
+ import { noop } from "../../Function.mjs";
16
+ import { initPluginContext } from "./PluginContext.mjs";
17
+ class PluginBase extends Plugin {
18
+ /**
19
+ * Gets the AbortSignal used for aborting long-running operations.
20
+ *
21
+ * @returns The abort signal.
22
+ */
23
+ get abortSignal() {
24
+ return this._abortSignal;
25
+ }
26
+ /**
27
+ * Gets the readonly plugin settings.
28
+ *
29
+ * @returns The readonly plugin settings.
30
+ */
31
+ get settings() {
32
+ return this._settings;
33
+ }
34
+ /**
35
+ * Gets a writable copy of the plugin settings.
36
+ *
37
+ * @returns A writable copy of the plugin settings.
38
+ */
39
+ get settingsClone() {
40
+ return this.createPluginSettings(this.settings.toJSON());
41
+ }
42
+ _abortSignal;
43
+ _settings;
44
+ notice;
45
+ /**
46
+ * Logs a message to the console.
47
+ *
48
+ * Use instead of `console.debug()`.
49
+ *
50
+ * Those messages are not shown by default, but they can be shown by enabling `your-plugin-id` debugger namespace.
51
+ *
52
+ * @see {@link https://github.com/mnaoumov/obsidian-dev-utils/?tab=readme-ov-file#debugging} for more information.
53
+ *
54
+ * @param message - The message to log.
55
+ * @param args - The arguments to log.
56
+ */
57
+ consoleDebug(message, ...args) {
58
+ const FRAMES_TO_SKIP = 1;
59
+ const _debugger = getDebugger(this.manifest.id, FRAMES_TO_SKIP);
60
+ _debugger(message, ...args);
61
+ }
62
+ /**
63
+ * Called when the external settings change.
64
+ */
65
+ async onExternalSettingsChange() {
66
+ await this.loadSettings();
67
+ }
68
+ /**
69
+ * Called when the plugin is loaded
70
+ */
71
+ async onload() {
72
+ initPluginContext(this.app, this.manifest.id);
73
+ this.register(registerAsyncErrorEventHandler(() => {
74
+ this.showNotice("An unhandled error occurred. Please check the console for more information.");
75
+ }));
76
+ await this.loadSettings();
77
+ const pluginSettingsTab = this.createPluginSettingsTab();
78
+ if (pluginSettingsTab) {
79
+ this.addSettingTab(pluginSettingsTab);
80
+ }
81
+ const abortController = new AbortController();
82
+ this._abortSignal = abortController.signal;
83
+ this.register(() => {
84
+ abortController.abort();
85
+ });
86
+ await this.onloadComplete();
87
+ setTimeout(() => {
88
+ this.app.workspace.onLayoutReady(this.onLayoutReady.bind(this));
89
+ }, 0);
90
+ }
91
+ /**
92
+ * Saves the new plugin settings.
93
+ *
94
+ * @param newSettings - The new settings to save.
95
+ * @returns A promise that resolves when the settings are saved.
96
+ */
97
+ async saveSettings(newSettings) {
98
+ const json = newSettings.toJSON();
99
+ this._settings = this.createPluginSettings(json);
100
+ await this.saveData(json);
101
+ }
102
+ /**
103
+ * Called when the layout is ready. This method can be overridden by subclasses to perform actions once
104
+ * the layout is ready.
105
+ *
106
+ * @returns A promise or void indicating the completion of the layout setup.
107
+ */
108
+ onLayoutReady() {
109
+ noop();
110
+ }
111
+ /**
112
+ * Called when the plugin loading is complete. This method must be implemented by subclasses to perform
113
+ * any additional setup required after loading is complete.
114
+ *
115
+ * @returns A promise or void indicating the completion of the load process.
116
+ */
117
+ onloadComplete() {
118
+ noop();
119
+ }
120
+ /**
121
+ * Displays a notice message to the user.
122
+ *
123
+ * @param message - The message to display.
124
+ */
125
+ showNotice(message) {
126
+ if (this.notice) {
127
+ this.notice.hide();
128
+ }
129
+ this.notice = new Notice(`${this.manifest.name}
130
+ ${message}`);
131
+ }
132
+ /**
133
+ * Loads the plugin settings from the saved data.
134
+ *
135
+ * @returns A promise that resolves when the settings are loaded.
136
+ */
137
+ async loadSettings() {
138
+ const data = await this.loadData();
139
+ this._settings = this.createPluginSettings(data);
140
+ if (this.settings.shouldSaveAfterLoad) {
141
+ await this.saveSettings(this._settings);
142
+ }
143
+ }
144
+ }
145
+ export {
146
+ PluginBase
147
+ };
148
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBQbHVnaW5CYXNlXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHByb3ZpZGluZyB1dGlsaXR5IG1ldGhvZHMgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBUaGlzIGNsYXNzIHNpbXBsaWZpZXMgdGhlIHByb2Nlc3Mgb2YgbWFuYWdpbmcgcGx1Z2luIHNldHRpbmdzLCBkaXNwbGF5aW5nIG5vdGlmaWNhdGlvbnMsIGFuZCBoYW5kbGluZyBlcnJvcnMuXG4gKiBTdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQgbWV0aG9kcyB0byBjcmVhdGUgZGVmYXVsdCBzZXR0aW5ncyBhbmQgc2V0dGluZ3MgdGFicywgYW5kIGNvbXBsZXRlIHBsdWdpbi1zcGVjaWZpY1xuICogbG9hZGluZyB0YXNrcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFJlYWRvbmx5RGVlcCB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luLFxuICBQbHVnaW5TZXR0aW5nVGFiXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5U2V0dGluZ3MgfSBmcm9tICcuL0VtcHR5U2V0dGluZ3MudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc0Jhc2UgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5cbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi4vLi4vRGVidWcudHMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vRXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uL0Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi9QbHVnaW5Db250ZXh0LnRzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYnVpbHQtaW4gc3VwcG9ydCBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSByZXByZXNlbnRpbmcgdGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5CYXNlPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NCYXNlID0gRW1wdHlTZXR0aW5ncz4gZXh0ZW5kcyBQbHVnaW4ge1xuICAvKipcbiAgICogR2V0cyB0aGUgQWJvcnRTaWduYWwgdXNlZCBmb3IgYWJvcnRpbmcgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFib3J0U2lnbmFsKCk6IEFib3J0U2lnbmFsIHtcbiAgICByZXR1cm4gdGhpcy5fYWJvcnRTaWduYWw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcmVhZG9ubHkgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcmVhZG9ubHkgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIGdldCBzZXR0aW5ncygpOiBSZWFkb25seURlZXA8UGx1Z2luU2V0dGluZ3M+IHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3MgYXMgUmVhZG9ubHlEZWVwPFBsdWdpblNldHRpbmdzPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgd3JpdGFibGUgY29weSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHdyaXRhYmxlIGNvcHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3NDbG9uZSgpOiBQbHVnaW5TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUGx1Z2luU2V0dGluZ3ModGhpcy5zZXR0aW5ncy50b0pTT04oKSk7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydFNpZ25hbCE6IEFib3J0U2lnbmFsO1xuXG4gIHByaXZhdGUgX3NldHRpbmdzITogUGx1Z2luU2V0dGluZ3M7XG5cbiAgcHJpdmF0ZSBub3RpY2U/OiBOb3RpY2U7XG5cbiAgLyoqXG4gICAqIExvZ3MgYSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLlxuICAgKlxuICAgKiBVc2UgaW5zdGVhZCBvZiBgY29uc29sZS5kZWJ1ZygpYC5cbiAgICpcbiAgICogVGhvc2UgbWVzc2FnZXMgYXJlIG5vdCBzaG93biBieSBkZWZhdWx0LCBidXQgdGhleSBjYW4gYmUgc2hvd24gYnkgZW5hYmxpbmcgYHlvdXItcGx1Z2luLWlkYCBkZWJ1Z2dlciBuYW1lc3BhY2UuXG4gICAqXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9tbmFvdW1vdi9vYnNpZGlhbi1kZXYtdXRpbHMvP3RhYj1yZWFkbWUtb3YtZmlsZSNkZWJ1Z2dpbmd9IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGxvZy5cbiAgICogQHBhcmFtIGFyZ3MgLSBUaGUgYXJndW1lbnRzIHRvIGxvZy5cbiAgICovXG4gIHB1YmxpYyBjb25zb2xlRGVidWcobWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICAvLyBTa2lwIHRoZSBgY29uc29sZURlYnVnKClgIGNhbGwgaXRzZWxmXG4gICAgY29uc3QgRlJBTUVTX1RPX1NLSVAgPSAxO1xuICAgIGNvbnN0IF9kZWJ1Z2dlciA9IGdldERlYnVnZ2VyKHRoaXMubWFuaWZlc3QuaWQsIEZSQU1FU19UT19TS0lQKTtcbiAgICBfZGVidWdnZXIobWVzc2FnZSwgLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGV4dGVybmFsIHNldHRpbmdzIGNoYW5nZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpbml0UGx1Z2luQ29udGV4dCh0aGlzLmFwcCwgdGhpcy5tYW5pZmVzdC5pZCk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyKHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLnNob3dOb3RpY2UoJ0FuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICAgIH0pKTtcblxuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XG4gICAgY29uc3QgcGx1Z2luU2V0dGluZ3NUYWIgPSB0aGlzLmNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk7XG4gICAgaWYgKHBsdWdpblNldHRpbmdzVGFiKSB7XG4gICAgICB0aGlzLmFkZFNldHRpbmdUYWIocGx1Z2luU2V0dGluZ3NUYWIpO1xuICAgIH1cblxuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9hYm9ydFNpZ25hbCA9IGFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gICAgdGhpcy5yZWdpc3RlcigoKSA9PiB7XG4gICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLm9ubG9hZENvbXBsZXRlKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSh0aGlzLm9uTGF5b3V0UmVhZHkuYmluZCh0aGlzKSk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgdGhlIG5ldyBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBuZXdTZXR0aW5ncyAtIFRoZSBuZXcgc2V0dGluZ3MgdG8gc2F2ZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmVTZXR0aW5ncyhuZXdTZXR0aW5nczogUGx1Z2luU2V0dGluZ3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBqc29uID0gbmV3U2V0dGluZ3MudG9KU09OKCk7XG4gICAgdGhpcy5fc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZVBsdWdpblNldHRpbmdzKGpzb24pO1xuICAgIGF3YWl0IHRoaXMuc2F2ZURhdGEoanNvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgcGx1Z2luIHNldHRpbmdzLiBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gY3JlYXRlIHRoZSBwbHVnaW4gc2V0dGluZ3MgZnJvbS5cbiAgICogQHJldHVybnMgVGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVQbHVnaW5TZXR0aW5ncyhkYXRhOiB1bmtub3duKTogUGx1Z2luU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwbHVnaW4gc2V0dGluZ3MgdGFiLiBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5ncyB0YWIgb3IgbnVsbCBpZiBub3QgYXBwbGljYWJsZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVQbHVnaW5TZXR0aW5nc1RhYigpOiBudWxsIHwgUGx1Z2luU2V0dGluZ1RhYjtcblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGxheW91dCBpcyByZWFkeS4gVGhpcyBtZXRob2QgY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byBwZXJmb3JtIGFjdGlvbnMgb25jZVxuICAgKiB0aGUgbGF5b3V0IGlzIHJlYWR5LlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb3Igdm9pZCBpbmRpY2F0aW5nIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBsYXlvdXQgc2V0dXAuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25MYXlvdXRSZWFkeSgpOiBNYXliZVByb21pc2U8dm9pZD4ge1xuICAgIG5vb3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGxvYWRpbmcgaXMgY29tcGxldGUuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3NlcyB0byBwZXJmb3JtXG4gICAqIGFueSBhZGRpdGlvbmFsIHNldHVwIHJlcXVpcmVkIGFmdGVyIGxvYWRpbmcgaXMgY29tcGxldGUuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSBvciB2b2lkIGluZGljYXRpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGxvYWQgcHJvY2Vzcy5cbiAgICovXG4gIHByb3RlY3RlZCBvbmxvYWRDb21wbGV0ZSgpOiBNYXliZVByb21pc2U8dm9pZD4ge1xuICAgIG5vb3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyBhIG5vdGljZSBtZXNzYWdlIHRvIHRoZSB1c2VyLlxuICAgKlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGRpc3BsYXkuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvd05vdGljZShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ub3RpY2UpIHtcbiAgICAgIHRoaXMubm90aWNlLmhpZGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLm5vdGljZSA9IG5ldyBOb3RpY2UoYCR7dGhpcy5tYW5pZmVzdC5uYW1lfVxcbiR7bWVzc2FnZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgcGx1Z2luIHNldHRpbmdzIGZyb20gdGhlIHNhdmVkIGRhdGEuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBsb2FkZWQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGxvYWRTZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sb2FkRGF0YSgpIGFzIHVua25vd247XG4gICAgdGhpcy5fc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZVBsdWdpblNldHRpbmdzKGRhdGEpO1xuICAgIGlmICh0aGlzLnNldHRpbmdzLnNob3VsZFNhdmVBZnRlckxvYWQpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2F2ZVNldHRpbmdzKHRoaXMuX3NldHRpbmdzKTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFXQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFNUCxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLHNDQUFzQztBQUMvQyxTQUFTLFlBQVk7QUFDckIsU0FBUyx5QkFBeUI7QUFPM0IsTUFBZSxtQkFBOEUsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU16RyxJQUFXLGNBQTJCO0FBQ3BDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLFdBQXlDO0FBQ2xELFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLGdCQUFnQztBQUN6QyxXQUFPLEtBQUsscUJBQXFCLEtBQUssU0FBUyxPQUFPLENBQUM7QUFBQSxFQUN6RDtBQUFBLEVBRVE7QUFBQSxFQUVBO0FBQUEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBY0QsYUFBYSxZQUFvQixNQUF1QjtBQUU3RCxVQUFNLGlCQUFpQjtBQUN2QixVQUFNLFlBQVksWUFBWSxLQUFLLFNBQVMsSUFBSSxjQUFjO0FBQzlELGNBQVUsU0FBUyxHQUFHLElBQUk7QUFBQSxFQUM1QjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsTUFBc0IsMkJBQTBDO0FBQzlELFVBQU0sS0FBSyxhQUFhO0FBQUEsRUFDMUI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQXNCLFNBQXdCO0FBQzVDLHNCQUFrQixLQUFLLEtBQUssS0FBSyxTQUFTLEVBQUU7QUFFNUMsU0FBSyxTQUFTLCtCQUErQixNQUFNO0FBQ2pELFdBQUssV0FBVyw2RUFBNkU7QUFBQSxJQUMvRixDQUFDLENBQUM7QUFFRixVQUFNLEtBQUssYUFBYTtBQUN4QixVQUFNLG9CQUFvQixLQUFLLHdCQUF3QjtBQUN2RCxRQUFJLG1CQUFtQjtBQUNyQixXQUFLLGNBQWMsaUJBQWlCO0FBQUEsSUFDdEM7QUFFQSxVQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtBQUM1QyxTQUFLLGVBQWUsZ0JBQWdCO0FBQ3BDLFNBQUssU0FBUyxNQUFNO0FBQ2xCLHNCQUFnQixNQUFNO0FBQUEsSUFDeEIsQ0FBQztBQUNELFVBQU0sS0FBSyxlQUFlO0FBQzFCLGVBQVcsTUFBTTtBQUNmLFdBQUssSUFBSSxVQUFVLGNBQWMsS0FBSyxjQUFjLEtBQUssSUFBSSxDQUFDO0FBQUEsSUFDaEUsR0FBRyxDQUFDO0FBQUEsRUFDTjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsTUFBYSxhQUFhLGFBQTRDO0FBQ3BFLFVBQU0sT0FBTyxZQUFZLE9BQU87QUFDaEMsU0FBSyxZQUFZLEtBQUsscUJBQXFCLElBQUk7QUFDL0MsVUFBTSxLQUFLLFNBQVMsSUFBSTtBQUFBLEVBQzFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUF1QlUsZ0JBQW9DO0FBQzVDLFNBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRVSxpQkFBcUM7QUFDN0MsU0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVSxXQUFXLFNBQXVCO0FBQzFDLFFBQUksS0FBSyxRQUFRO0FBQ2YsV0FBSyxPQUFPLEtBQUs7QUFBQSxJQUNuQjtBQUVBLFNBQUssU0FBUyxJQUFJLE9BQU8sR0FBRyxLQUFLLFNBQVMsSUFBSTtBQUFBLEVBQUssT0FBTyxFQUFFO0FBQUEsRUFDOUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxNQUFjLGVBQThCO0FBQzFDLFVBQU0sT0FBTyxNQUFNLEtBQUssU0FBUztBQUNqQyxTQUFLLFlBQVksS0FBSyxxQkFBcUIsSUFBSTtBQUMvQyxRQUFJLEtBQUssU0FBUyxxQkFBcUI7QUFDckMsWUFBTSxLQUFLLGFBQWEsS0FBSyxTQUFTO0FBQUEsSUFDeEM7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})()
6
+ (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __defProp = Object.defineProperty;
@@ -0,0 +1,45 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
+
8
+ import { compareVersions } from "compare-versions";
9
+ import {
10
+ getDebugController,
11
+ showInitialDebugMessage
12
+ } from "../../Debug.mjs";
13
+ import {
14
+ LIBRARY_NAME,
15
+ LIBRARY_STYLES,
16
+ LIBRARY_VERSION
17
+ } from "../../Library.mjs";
18
+ import { getObsidianDevUtilsState } from "../App.mjs";
19
+ import { setPluginId } from "./PluginId.mjs";
20
+ const STYLES_ID = `${LIBRARY_NAME}-styles`;
21
+ function initPluginContext(app, pluginId) {
22
+ setPluginId(pluginId);
23
+ showInitialDebugMessage(pluginId);
24
+ const lastLibraryVersionWrapper = getObsidianDevUtilsState(app, "lastLibraryVersion", "0.0.0");
25
+ if (compareVersions(LIBRARY_VERSION, lastLibraryVersionWrapper.value) <= 0) {
26
+ return;
27
+ }
28
+ lastLibraryVersionWrapper.value = LIBRARY_VERSION;
29
+ const pluginContextWindow = getPluginContextWindow();
30
+ pluginContextWindow.DEBUG = getDebugController();
31
+ document.head.querySelector(`#${STYLES_ID}`)?.remove();
32
+ document.head.createEl("style", {
33
+ attr: {
34
+ id: STYLES_ID
35
+ },
36
+ text: LIBRARY_STYLES
37
+ });
38
+ }
39
+ function getPluginContextWindow() {
40
+ return window;
41
+ }
42
+ export {
43
+ initPluginContext
44
+ };
45
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5Db250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBQbHVnaW5Db250ZXh0XG4gKiBJbml0aWFsaXplcyB0aGUgcGx1Z2luIGNvbnRleHQgYW5kIHNldHMgdXAgdGhlIHBsdWdpbiBJRC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgRGVidWdDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vRGVidWdDb250cm9sbGVyLnRzJztcblxuaW1wb3J0IHtcbiAgZ2V0RGVidWdDb250cm9sbGVyLFxuICBzaG93SW5pdGlhbERlYnVnTWVzc2FnZVxufSBmcm9tICcuLi8uLi9EZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBMSUJSQVJZX05BTUUsXG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi4vLi4vTGlicmFyeS50cyc7XG5pbXBvcnQgeyBnZXRPYnNpZGlhbkRldlV0aWxzU3RhdGUgfSBmcm9tICcuLi9BcHAudHMnO1xuaW1wb3J0IHsgc2V0UGx1Z2luSWQgfSBmcm9tICcuL1BsdWdpbklkLnRzJztcblxuaW50ZXJmYWNlIFBsdWdpbkNvbnRleHRXaW5kb3cge1xuICBERUJVRzogRGVidWdDb250cm9sbGVyO1xufVxuXG5jb25zdCBTVFlMRVNfSUQgPSBgJHtMSUJSQVJZX05BTUV9LXN0eWxlc2A7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIHBsdWdpbiBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBsdWdpbklkIC0gVGhlIHBsdWdpbiBJRC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXRQbHVnaW5Db250ZXh0KGFwcDogQXBwLCBwbHVnaW5JZDogc3RyaW5nKTogdm9pZCB7XG4gIHNldFBsdWdpbklkKHBsdWdpbklkKTtcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2UocGx1Z2luSWQpO1xuXG4gIGNvbnN0IGxhc3RMaWJyYXJ5VmVyc2lvbldyYXBwZXIgPSBnZXRPYnNpZGlhbkRldlV0aWxzU3RhdGUoYXBwLCAnbGFzdExpYnJhcnlWZXJzaW9uJywgJzAuMC4wJyk7XG4gIGlmIChjb21wYXJlVmVyc2lvbnMoTElCUkFSWV9WRVJTSU9OLCBsYXN0TGlicmFyeVZlcnNpb25XcmFwcGVyLnZhbHVlKSA8PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGFzdExpYnJhcnlWZXJzaW9uV3JhcHBlci52YWx1ZSA9IExJQlJBUllfVkVSU0lPTjtcblxuICBjb25zdCBwbHVnaW5Db250ZXh0V2luZG93ID0gZ2V0UGx1Z2luQ29udGV4dFdpbmRvdygpO1xuICBwbHVnaW5Db250ZXh0V2luZG93LkRFQlVHID0gZ2V0RGVidWdDb250cm9sbGVyKCk7XG5cbiAgZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKGAjJHtTVFlMRVNfSUR9YCk/LnJlbW92ZSgpO1xuICBkb2N1bWVudC5oZWFkLmNyZWF0ZUVsKCdzdHlsZScsIHtcbiAgICBhdHRyOiB7XG4gICAgICBpZDogU1RZTEVTX0lEXG4gICAgfSxcbiAgICB0ZXh0OiBMSUJSQVJZX1NUWUxFU1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0UGx1Z2luQ29udGV4dFdpbmRvdygpOiBQYXJ0aWFsPFBsdWdpbkNvbnRleHRXaW5kb3c+IHtcbiAgcmV0dXJuIHdpbmRvdyBhcyBQYXJ0aWFsPFBsdWdpbkNvbnRleHRXaW5kb3c+O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQU9BLFNBQVMsdUJBQXVCO0FBSWhDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxnQ0FBZ0M7QUFDekMsU0FBUyxtQkFBbUI7QUFNNUIsTUFBTSxZQUFZLEdBQUcsWUFBWTtBQVExQixTQUFTLGtCQUFrQixLQUFVLFVBQXdCO0FBQ2xFLGNBQVksUUFBUTtBQUNwQiwwQkFBd0IsUUFBUTtBQUVoQyxRQUFNLDRCQUE0Qix5QkFBeUIsS0FBSyxzQkFBc0IsT0FBTztBQUM3RixNQUFJLGdCQUFnQixpQkFBaUIsMEJBQTBCLEtBQUssS0FBSyxHQUFHO0FBQzFFO0FBQUEsRUFDRjtBQUVBLDRCQUEwQixRQUFRO0FBRWxDLFFBQU0sc0JBQXNCLHVCQUF1QjtBQUNuRCxzQkFBb0IsUUFBUSxtQkFBbUI7QUFFL0MsV0FBUyxLQUFLLGNBQWMsSUFBSSxTQUFTLEVBQUUsR0FBRyxPQUFPO0FBQ3JELFdBQVMsS0FBSyxTQUFTLFNBQVM7QUFBQSxJQUM5QixNQUFNO0FBQUEsTUFDSixJQUFJO0FBQUEsSUFDTjtBQUFBLElBQ0EsTUFBTTtBQUFBLEVBQ1IsQ0FBQztBQUNIO0FBRUEsU0FBUyx5QkFBdUQ7QUFDOUQsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})()
6
+ (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __defProp = Object.defineProperty;
@@ -0,0 +1,23 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
+
8
+ const NO_PLUGIN_ID_INITIALIZED = "__no-plugin-id-initialized__";
9
+ let pluginId = NO_PLUGIN_ID_INITIALIZED;
10
+ function getPluginId() {
11
+ return pluginId;
12
+ }
13
+ function setPluginId(newPluginId) {
14
+ if (newPluginId) {
15
+ pluginId = newPluginId;
16
+ }
17
+ }
18
+ export {
19
+ NO_PLUGIN_ID_INITIALIZED,
20
+ getPluginId,
21
+ setPluginId
22
+ };
23
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5JZC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gUGx1Z2luSWRcbiAqIEhvbGRlciBmb3IgdGhlIHBsdWdpbiBJRC5cbiAqL1xuXG4vKipcbiAqIFRoZSBwbHVnaW4gSUQgZm9yIG5vIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE5PX1BMVUdJTl9JRF9JTklUSUFMSVpFRCA9ICdfX25vLXBsdWdpbi1pZC1pbml0aWFsaXplZF9fJztcblxubGV0IHBsdWdpbklkID0gTk9fUExVR0lOX0lEX0lOSVRJQUxJWkVEO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHBsdWdpbiBJRC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgcGx1Z2luIElELlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGx1Z2luSWQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBsdWdpbklkO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIHBsdWdpbiBJRC5cbiAqXG4gKiBAcGFyYW0gbmV3UGx1Z2luSWQgLSBUaGUgbmV3IHBsdWdpbiBJRC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFBsdWdpbklkKG5ld1BsdWdpbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKG5ld1BsdWdpbklkKSB7XG4gICAgcGx1Z2luSWQgPSBuZXdQbHVnaW5JZDtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQVFPLE1BQU0sMkJBQTJCO0FBRXhDLElBQUksV0FBVztBQU9SLFNBQVMsY0FBc0I7QUFDcEMsU0FBTztBQUNUO0FBT08sU0FBUyxZQUFZLGFBQTJCO0FBQ3JELE1BQUksYUFBYTtBQUNmLGVBQVc7QUFBQSxFQUNiO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})()
6
+ (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __defProp = Object.defineProperty;
@@ -28,7 +28,16 @@ __export(PluginSettingsBase_exports, {
28
28
  PluginSettingsBase: () => PluginSettingsBase
29
29
  });
30
30
  module.exports = __toCommonJS(PluginSettingsBase_exports);
31
- const PRIVATE_PROPERTY_PREFIX = "_";
31
+ var import_DateTransformer = require('../../Transformers/DateTransformer.cjs');
32
+ var import_DurationTransformer = require('../../Transformers/DurationTransformer.cjs');
33
+ var import_GroupTransformer = require('../../Transformers/GroupTransformer.cjs');
34
+ var import_SkipPrivatePropertyTransformer = require('../../Transformers/SkipPrivatePropertyTransformer.cjs');
35
+ var import_Transformer = require('../../Transformers/Transformer.cjs');
36
+ const defaultTransformer = new import_GroupTransformer.GroupTransformer([
37
+ new import_SkipPrivatePropertyTransformer.SkipPrivatePropertyTransformer(),
38
+ new import_DateTransformer.DateTransformer(),
39
+ new import_DurationTransformer.DurationTransformer()
40
+ ]);
32
41
  class PluginSettingsBase {
33
42
  /**
34
43
  * Determines if the settings should be saved after loading.
@@ -61,18 +70,19 @@ class PluginSettingsBase {
61
70
  * @returns The settings as a JSON object.
62
71
  */
63
72
  toJSON() {
64
- return Object.fromEntries(Object.entries(this).filter(([key]) => !key.startsWith(PRIVATE_PROPERTY_PREFIX)));
73
+ return this.getTransformer().transformObjectRecursively(this);
74
+ }
75
+ getTransformer() {
76
+ return defaultTransformer;
65
77
  }
66
78
  initFromRecord(record) {
79
+ record = this.getTransformer().transformObjectRecursively(record);
67
80
  for (const [key, value] of Object.entries(record)) {
68
- if (key.startsWith(PRIVATE_PROPERTY_PREFIX)) {
81
+ if (!(key in this)) {
82
+ console.warn(`Unknown property: ${key}`);
69
83
  continue;
70
84
  }
71
- if (key in this) {
72
- this[key] = value;
73
- } else {
74
- console.error(`Unknown property: ${key}`);
75
- }
85
+ this[key] = value;
76
86
  }
77
87
  }
78
88
  }
@@ -80,4 +90,4 @@ class PluginSettingsBase {
80
90
  0 && (module.exports = {
81
91
  PluginSettingsBase
82
92
  });
83
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzQmFzZVxuICogQmFzZSBjbGFzcyBmb3IgcGx1Z2luIHNldHRpbmdzLlxuICovXG5cbmNvbnN0IFBSSVZBVEVfUFJPUEVSVFlfUFJFRklYID0gJ18nO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIHBsdWdpbiBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpblNldHRpbmdzQmFzZSB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzZXR0aW5ncyBzaG91bGQgYmUgc2F2ZWQgYWZ0ZXIgbG9hZGluZy5cbiAgICpcbiAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2V0dGluZ3Mgc2hvdWxkIGJlIHNhdmVkIGFmdGVyIGxvYWRpbmcuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNob3VsZFNhdmVBZnRlckxvYWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3VsZFNhdmVBZnRlckxvYWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3Nob3VsZFNhdmVBZnRlckxvYWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHNldHRpbmdzIGZyb20gSlNPTiBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGluaXRpYWxpemUgdGhlIHNldHRpbmdzIGZyb20uXG4gICAqL1xuICBwdWJsaWMgaW5pdChkYXRhOiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCB8fCBkYXRhID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICBjb25zdCB0eXBlID0gQXJyYXkuaXNBcnJheShkYXRhKSA/ICdBcnJheScgOiB0eXBlb2YgZGF0YTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgZGF0YSB0eXBlLiBFeHBlY3RlZCBPYmplY3QsIGdvdDogJHt0eXBlfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdEZyb21SZWNvcmQoZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHNldHRpbmdzIHRvIGEgSlNPTiBvYmplY3QuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5ncyBhcyBhIEpTT04gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHRvSlNPTigpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0aGlzKS5maWx0ZXIoKFtrZXldKSA9PiAha2V5LnN0YXJ0c1dpdGgoUFJJVkFURV9QUk9QRVJUWV9QUkVGSVgpKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdEZyb21SZWNvcmQocmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlY29yZCkpIHtcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aChQUklWQVRFX1BST1BFUlRZX1BSRUZJWCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoa2V5IGluIHRoaXMpIHtcbiAgICAgICAgdGhpc1trZXkgYXMga2V5b2YgdGhpc10gPSB2YWx1ZSBhcyB0aGlzW2tleW9mIHRoaXNdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgVW5rbm93biBwcm9wZXJ0eTogJHtrZXl9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBLE1BQU0sMEJBQTBCO0FBS3pCLE1BQWUsbUJBQW1CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTXZDLElBQVcsc0JBQStCO0FBQ3hDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVVLHVCQUF1QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU8xQixLQUFLLE1BQXFCO0FBQy9CLFFBQUksU0FBUyxVQUFhLFNBQVMsTUFBTTtBQUN2QztBQUFBLElBQ0Y7QUFFQSxRQUFJLE9BQU8sU0FBUyxZQUFZLE1BQU0sUUFBUSxJQUFJLEdBQUc7QUFDbkQsWUFBTSxPQUFPLE1BQU0sUUFBUSxJQUFJLElBQUksVUFBVSxPQUFPO0FBQ3BELGNBQVEsTUFBTSw0Q0FBNEMsSUFBSSxFQUFFO0FBQ2hFO0FBQUEsSUFDRjtBQUVBLFNBQUssZUFBZSxJQUErQjtBQUFBLEVBQ3JEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sU0FBa0M7QUFDdkMsV0FBTyxPQUFPLFlBQVksT0FBTyxRQUFRLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLFdBQVcsdUJBQXVCLENBQUMsQ0FBQztBQUFBLEVBQzVHO0FBQUEsRUFFVSxlQUFlLFFBQXVDO0FBQzlELGVBQVcsQ0FBQyxLQUFLLEtBQUssS0FBSyxPQUFPLFFBQVEsTUFBTSxHQUFHO0FBQ2pELFVBQUksSUFBSSxXQUFXLHVCQUF1QixHQUFHO0FBQzNDO0FBQUEsTUFDRjtBQUNBLFVBQUksT0FBTyxNQUFNO0FBQ2YsYUFBSyxHQUFpQixJQUFJO0FBQUEsTUFDNUIsT0FBTztBQUNMLGdCQUFRLE1BQU0scUJBQXFCLEdBQUcsRUFBRTtBQUFBLE1BQzFDO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
93
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzQmFzZVxuICogQmFzZSBjbGFzcyBmb3IgcGx1Z2luIHNldHRpbmdzLlxuICovXG5cbmltcG9ydCB7IERhdGVUcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL1RyYW5zZm9ybWVycy9EYXRlVHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgRHVyYXRpb25UcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL1RyYW5zZm9ybWVycy9EdXJhdGlvblRyYW5zZm9ybWVyLnRzJztcbmltcG9ydCB7IEdyb3VwVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvR3JvdXBUcmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBTa2lwUHJpdmF0ZVByb3BlcnR5VHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyLnRzJztcbmltcG9ydCB7IFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vVHJhbnNmb3JtZXJzL1RyYW5zZm9ybWVyLnRzJztcblxuY29uc3QgZGVmYXVsdFRyYW5zZm9ybWVyID0gbmV3IEdyb3VwVHJhbnNmb3JtZXIoW1xuICBuZXcgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyKCksXG4gIG5ldyBEYXRlVHJhbnNmb3JtZXIoKSxcbiAgbmV3IER1cmF0aW9uVHJhbnNmb3JtZXIoKVxuXSk7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgcGx1Z2luIHNldHRpbmdzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luU2V0dGluZ3NCYXNlIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIHNldHRpbmdzIHNob3VsZCBiZSBzYXZlZCBhZnRlciBsb2FkaW5nLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzZXR0aW5ncyBzaG91bGQgYmUgc2F2ZWQgYWZ0ZXIgbG9hZGluZy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvdWxkU2F2ZUFmdGVyTG9hZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvdWxkU2F2ZUFmdGVyTG9hZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc2hvdWxkU2F2ZUFmdGVyTG9hZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgc2V0dGluZ3MgZnJvbSBKU09OIGRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gaW5pdGlhbGl6ZSB0aGUgc2V0dGluZ3MgZnJvbS5cbiAgICovXG4gIHB1YmxpYyBpbml0KGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkIHx8IGRhdGEgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRhdGEgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBBcnJheS5pc0FycmF5KGRhdGEpID8gJ0FycmF5JyA6IHR5cGVvZiBkYXRhO1xuICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBkYXRhIHR5cGUuIEV4cGVjdGVkIE9iamVjdCwgZ290OiAke3R5cGV9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pbml0RnJvbVJlY29yZChkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgc2V0dGluZ3MgdG8gYSBKU09OIG9iamVjdC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNldHRpbmdzIGFzIGEgSlNPTiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgdG9KU09OKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2Zvcm1lcigpLnRyYW5zZm9ybU9iamVjdFJlY3Vyc2l2ZWx5KHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zZm9ybWVyKCk6IFRyYW5zZm9ybWVyIHtcbiAgICByZXR1cm4gZGVmYXVsdFRyYW5zZm9ybWVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluaXRGcm9tUmVjb3JkKHJlY29yZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgICByZWNvcmQgPSB0aGlzLmdldFRyYW5zZm9ybWVyKCkudHJhbnNmb3JtT2JqZWN0UmVjdXJzaXZlbHkocmVjb3JkKTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICBpZiAoIShrZXkgaW4gdGhpcykpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIHByb3BlcnR5OiAke2tleX1gKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXNba2V5IGFzIGtleW9mIHRoaXNdID0gdmFsdWUgYXMgdGhpc1trZXlvZiB0aGlzXTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0EsNkJBQWdDO0FBQ2hDLGlDQUFvQztBQUNwQyw4QkFBaUM7QUFDakMsNENBQStDO0FBQy9DLHlCQUE0QjtBQUU1QixNQUFNLHFCQUFxQixJQUFJLHlDQUFpQjtBQUFBLEVBQzlDLElBQUkscUVBQStCO0FBQUEsRUFDbkMsSUFBSSx1Q0FBZ0I7QUFBQSxFQUNwQixJQUFJLCtDQUFvQjtBQUMxQixDQUFDO0FBS00sTUFBZSxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNdkMsSUFBVyxzQkFBK0I7QUFDeEMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBRVUsdUJBQXVCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTzFCLEtBQUssTUFBcUI7QUFDL0IsUUFBSSxTQUFTLFVBQWEsU0FBUyxNQUFNO0FBQ3ZDO0FBQUEsSUFDRjtBQUVBLFFBQUksT0FBTyxTQUFTLFlBQVksTUFBTSxRQUFRLElBQUksR0FBRztBQUNuRCxZQUFNLE9BQU8sTUFBTSxRQUFRLElBQUksSUFBSSxVQUFVLE9BQU87QUFDcEQsY0FBUSxNQUFNLDRDQUE0QyxJQUFJLEVBQUU7QUFDaEU7QUFBQSxJQUNGO0FBRUEsU0FBSyxlQUFlLElBQStCO0FBQUEsRUFDckQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxTQUFrQztBQUN2QyxXQUFPLEtBQUssZUFBZSxFQUFFLDJCQUEyQixJQUFJO0FBQUEsRUFDOUQ7QUFBQSxFQUVVLGlCQUE4QjtBQUN0QyxXQUFPO0FBQUEsRUFDVDtBQUFBLEVBRVUsZUFBZSxRQUF1QztBQUM5RCxhQUFTLEtBQUssZUFBZSxFQUFFLDJCQUEyQixNQUFNO0FBQ2hFLGVBQVcsQ0FBQyxLQUFLLEtBQUssS0FBSyxPQUFPLFFBQVEsTUFBTSxHQUFHO0FBQ2pELFVBQUksRUFBRSxPQUFPLE9BQU87QUFDbEIsZ0JBQVEsS0FBSyxxQkFBcUIsR0FBRyxFQUFFO0FBQ3ZDO0FBQUEsTUFDRjtBQUVBLFdBQUssR0FBaUIsSUFBSTtBQUFBLElBQzVCO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -2,6 +2,7 @@
2
2
  * @packageDocumentation PluginSettingsBase
3
3
  * Base class for plugin settings.
4
4
  */
5
+ import { Transformer } from '../../Transformers/Transformer.ts';
5
6
  /**
6
7
  * Base class for plugin settings.
7
8
  */
@@ -25,5 +26,6 @@ export declare abstract class PluginSettingsBase {
25
26
  * @returns The settings as a JSON object.
26
27
  */
27
28
  toJSON(): Record<string, unknown>;
29
+ protected getTransformer(): Transformer;
28
30
  protected initFromRecord(record: Record<string, unknown>): void;
29
31
  }
@@ -0,0 +1,69 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
+
8
+ import { DateTransformer } from "../../Transformers/DateTransformer.mjs";
9
+ import { DurationTransformer } from "../../Transformers/DurationTransformer.mjs";
10
+ import { GroupTransformer } from "../../Transformers/GroupTransformer.mjs";
11
+ import { SkipPrivatePropertyTransformer } from "../../Transformers/SkipPrivatePropertyTransformer.mjs";
12
+ import { Transformer } from "../../Transformers/Transformer.mjs";
13
+ const defaultTransformer = new GroupTransformer([
14
+ new SkipPrivatePropertyTransformer(),
15
+ new DateTransformer(),
16
+ new DurationTransformer()
17
+ ]);
18
+ class PluginSettingsBase {
19
+ /**
20
+ * Determines if the settings should be saved after loading.
21
+ *
22
+ * @returns A boolean indicating whether the settings should be saved after loading.
23
+ */
24
+ get shouldSaveAfterLoad() {
25
+ return this._shouldSaveAfterLoad;
26
+ }
27
+ _shouldSaveAfterLoad = false;
28
+ /**
29
+ * Initializes the settings from JSON data.
30
+ *
31
+ * @param data - The data to initialize the settings from.
32
+ */
33
+ init(data) {
34
+ if (data === void 0 || data === null) {
35
+ return;
36
+ }
37
+ if (typeof data !== "object" || Array.isArray(data)) {
38
+ const type = Array.isArray(data) ? "Array" : typeof data;
39
+ console.error(`Invalid data type. Expected Object, got: ${type}`);
40
+ return;
41
+ }
42
+ this.initFromRecord(data);
43
+ }
44
+ /**
45
+ * Converts the settings to a JSON object.
46
+ *
47
+ * @returns The settings as a JSON object.
48
+ */
49
+ toJSON() {
50
+ return this.getTransformer().transformObjectRecursively(this);
51
+ }
52
+ getTransformer() {
53
+ return defaultTransformer;
54
+ }
55
+ initFromRecord(record) {
56
+ record = this.getTransformer().transformObjectRecursively(record);
57
+ for (const [key, value] of Object.entries(record)) {
58
+ if (!(key in this)) {
59
+ console.warn(`Unknown property: ${key}`);
60
+ continue;
61
+ }
62
+ this[key] = value;
63
+ }
64
+ }
65
+ }
66
+ export {
67
+ PluginSettingsBase
68
+ };
69
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc0Jhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzQmFzZVxuICogQmFzZSBjbGFzcyBmb3IgcGx1Z2luIHNldHRpbmdzLlxuICovXG5cbmltcG9ydCB7IERhdGVUcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL1RyYW5zZm9ybWVycy9EYXRlVHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgRHVyYXRpb25UcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL1RyYW5zZm9ybWVycy9EdXJhdGlvblRyYW5zZm9ybWVyLnRzJztcbmltcG9ydCB7IEdyb3VwVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvR3JvdXBUcmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBTa2lwUHJpdmF0ZVByb3BlcnR5VHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyLnRzJztcbmltcG9ydCB7IFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vVHJhbnNmb3JtZXJzL1RyYW5zZm9ybWVyLnRzJztcblxuY29uc3QgZGVmYXVsdFRyYW5zZm9ybWVyID0gbmV3IEdyb3VwVHJhbnNmb3JtZXIoW1xuICBuZXcgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyKCksXG4gIG5ldyBEYXRlVHJhbnNmb3JtZXIoKSxcbiAgbmV3IER1cmF0aW9uVHJhbnNmb3JtZXIoKVxuXSk7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgcGx1Z2luIHNldHRpbmdzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luU2V0dGluZ3NCYXNlIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIHNldHRpbmdzIHNob3VsZCBiZSBzYXZlZCBhZnRlciBsb2FkaW5nLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzZXR0aW5ncyBzaG91bGQgYmUgc2F2ZWQgYWZ0ZXIgbG9hZGluZy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvdWxkU2F2ZUFmdGVyTG9hZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvdWxkU2F2ZUFmdGVyTG9hZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc2hvdWxkU2F2ZUFmdGVyTG9hZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgc2V0dGluZ3MgZnJvbSBKU09OIGRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gaW5pdGlhbGl6ZSB0aGUgc2V0dGluZ3MgZnJvbS5cbiAgICovXG4gIHB1YmxpYyBpbml0KGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkIHx8IGRhdGEgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRhdGEgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBBcnJheS5pc0FycmF5KGRhdGEpID8gJ0FycmF5JyA6IHR5cGVvZiBkYXRhO1xuICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBkYXRhIHR5cGUuIEV4cGVjdGVkIE9iamVjdCwgZ290OiAke3R5cGV9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pbml0RnJvbVJlY29yZChkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgc2V0dGluZ3MgdG8gYSBKU09OIG9iamVjdC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNldHRpbmdzIGFzIGEgSlNPTiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgdG9KU09OKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2Zvcm1lcigpLnRyYW5zZm9ybU9iamVjdFJlY3Vyc2l2ZWx5KHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zZm9ybWVyKCk6IFRyYW5zZm9ybWVyIHtcbiAgICByZXR1cm4gZGVmYXVsdFRyYW5zZm9ybWVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluaXRGcm9tUmVjb3JkKHJlY29yZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgICByZWNvcmQgPSB0aGlzLmdldFRyYW5zZm9ybWVyKCkudHJhbnNmb3JtT2JqZWN0UmVjdXJzaXZlbHkocmVjb3JkKTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyZWNvcmQpKSB7XG4gICAgICBpZiAoIShrZXkgaW4gdGhpcykpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIHByb3BlcnR5OiAke2tleX1gKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXNba2V5IGFzIGtleW9mIHRoaXNdID0gdmFsdWUgYXMgdGhpc1trZXlvZiB0aGlzXTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFLQSxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLDJCQUEyQjtBQUNwQyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLHNDQUFzQztBQUMvQyxTQUFTLG1CQUFtQjtBQUU1QixNQUFNLHFCQUFxQixJQUFJLGlCQUFpQjtBQUFBLEVBQzlDLElBQUksK0JBQStCO0FBQUEsRUFDbkMsSUFBSSxnQkFBZ0I7QUFBQSxFQUNwQixJQUFJLG9CQUFvQjtBQUMxQixDQUFDO0FBS00sTUFBZSxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNdkMsSUFBVyxzQkFBK0I7QUFDeEMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBRVUsdUJBQXVCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTzFCLEtBQUssTUFBcUI7QUFDL0IsUUFBSSxTQUFTLFVBQWEsU0FBUyxNQUFNO0FBQ3ZDO0FBQUEsSUFDRjtBQUVBLFFBQUksT0FBTyxTQUFTLFlBQVksTUFBTSxRQUFRLElBQUksR0FBRztBQUNuRCxZQUFNLE9BQU8sTUFBTSxRQUFRLElBQUksSUFBSSxVQUFVLE9BQU87QUFDcEQsY0FBUSxNQUFNLDRDQUE0QyxJQUFJLEVBQUU7QUFDaEU7QUFBQSxJQUNGO0FBRUEsU0FBSyxlQUFlLElBQStCO0FBQUEsRUFDckQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxTQUFrQztBQUN2QyxXQUFPLEtBQUssZUFBZSxFQUFFLDJCQUEyQixJQUFJO0FBQUEsRUFDOUQ7QUFBQSxFQUVVLGlCQUE4QjtBQUN0QyxXQUFPO0FBQUEsRUFDVDtBQUFBLEVBRVUsZUFBZSxRQUF1QztBQUM5RCxhQUFTLEtBQUssZUFBZSxFQUFFLDJCQUEyQixNQUFNO0FBQ2hFLGVBQVcsQ0FBQyxLQUFLLEtBQUssS0FBSyxPQUFPLFFBQVEsTUFBTSxHQUFHO0FBQ2pELFVBQUksRUFBRSxPQUFPLE9BQU87QUFDbEIsZ0JBQVEsS0FBSyxxQkFBcUIsR0FBRyxFQUFFO0FBQ3ZDO0FBQUEsTUFDRjtBQUVBLFdBQUssR0FBaUIsSUFBSTtBQUFBLElBQzVCO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})()
6
+ (function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
7
7
 
8
8
  "use strict";
9
9
  var __defProp = Object.defineProperty;
@@ -119,4 +119,4 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
119
119
  0 && (module.exports = {
120
120
  PluginSettingsTabBase
121
121
  });
122
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzVGFiQmFzZVxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgUGx1Z2luU2V0dGluZ1RhYiB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBLZXlzTWF0Y2hpbmcgfSBmcm9tICcuLi8uLi9AdHlwZXMudHMnO1xuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nIH0gZnJvbSAnLi4vQ29tcG9uZW50cy9WYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZy50cyc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpblNldHRpbmdzQmFzZSB9IGZyb20gJy4vUGx1Z2luU2V0dGluZ3NCYXNlLnRzJztcblxuaW1wb3J0IHtcbiAgY29udmVydEFzeW5jVG9TeW5jLFxuICBpbnZva2VBc3luY1NhZmVseVxufSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uLy4uL0Nzc0NsYXNzLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuLi9Db21wb25lbnRzL1ZhbGlkYXRvckNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5CYXNlIH0gZnJvbSAnLi9QbHVnaW5CYXNlLnRzJztcbmltcG9ydCB7IGdldFBsdWdpbklkIH0gZnJvbSAnLi9QbHVnaW5JZC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYmluZGluZyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHBsdWdpbiBzZXR0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPiB7XG4gIC8qKlxuICAgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICovXG4gIG9uQ2hhbmdlZD86ICgpID0+IE1heWJlUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QgdG8gYmluZCB0aGUgY29tcG9uZW50IHRvLiBEZWZhdWx0IGlzIHRoZSBwbHVnaW4ncyBjdXJyZW50IHNldHRpbmdzLlxuICAgKi9cbiAgcGx1Z2luU2V0dGluZ3M/OiBQbHVnaW5TZXR0aW5ncztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgc2F2ZXMgdGhlIHBsdWdpbiBzZXR0aW5ncyBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSBjb21wb25lbnQgdmFsdWUgY2hhbmdlcy4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRBdXRvU2F2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHNob3dzIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2Ugd2hlbiB0aGUgY29tcG9uZW50IHZhbHVlIGlzIGludmFsaWQuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgc2hvdWxkU2hvd1ZhbGlkYXRpb25NZXNzYWdlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBVSSB2YWx1ZSBiZWZvcmUgc2V0dGluZyBpdCBvbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKiBAcGFyYW0gdWlWYWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBBbiBlcnJvciBtZXNzYWdlIGlmIHRoZSB2YWx1ZSBpcyBpbnZhbGlkLCBvciBgKGVtcHR5IHN0cmluZylgIG9yIGB2b2lkYCBpZiBpdCBpcyB2YWxpZC5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGVcbiAgdmFsdWVWYWxpZGF0b3I/OiAodWlWYWx1ZTogVUlWYWx1ZSkgPT4gTWF5YmVQcm9taXNlPHN0cmluZyB8IHZvaWQ+O1xufVxuXG4vKipcbiAqIEV4dGVuZGVkIG9wdGlvbnMgZm9yIGJpbmRpbmcgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eSBleHRlbmRzIGtleW9mIFBsdWdpblNldHRpbmdzPiBleHRlbmRzIEJpbmRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPiB7XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgVUkgY29tcG9uZW50J3MgdmFsdWUgYmFjayB0byB0aGUgcGx1Z2luIHNldHRpbmdzIHZhbHVlLlxuICAgKiBAcGFyYW0gdWlWYWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBjb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXI6ICh1aVZhbHVlOiBVSVZhbHVlKSA9PiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV07XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgdmFsdWUgdG8gdGhlIHZhbHVlIHVzZWQgYnkgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHBsdWdpblNldHRpbmdzVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSB0byBzZXQgb24gdGhlIFVJIGNvbXBvbmVudC5cbiAgICovXG4gIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHBsdWdpblNldHRpbmdzVmFsdWU6IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5XSkgPT4gVUlWYWx1ZTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgRXh0cmFjdFBsdWdpblNldHRpbmdzPFQgZXh0ZW5kcyBQbHVnaW5CYXNlPGFueT4+ID0gUGx1Z2luU2V0dGluZ3NCYXNlICYgVFsnc2V0dGluZ3NDbG9uZSddO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5ncyB0YWJzIGluIE9ic2lkaWFuLlxuICogUHJvdmlkZXMgYSBtZXRob2QgZm9yIGJpbmRpbmcgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsaW5nIGNoYW5nZXMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IGV4dGVuZHMgUGx1Z2luQmFzZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbkJhc2U8YW55Pj4gZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcbiAgcHJpdmF0ZSB2YWxpZGF0b3JzTWFwID0gbmV3IFdlYWtNYXA8QmFzZUNvbXBvbmVudCwgKCkgPT4gUHJvbWlzZTxib29sZWFuPj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIG92ZXJyaWRlIHBsdWdpbjogVFBsdWdpbikge1xuICAgIHN1cGVyKHBsdWdpbi5hcHAsIHBsdWdpbik7XG4gICAgdGhpcy5jb250YWluZXJFbC5hZGRDbGFzcyhDc3NDbGFzcy5MaWJyYXJ5TmFtZSwgZ2V0UGx1Z2luSWQoKSwgQ3NzQ2xhc3MuUGx1Z2luU2V0dGluZ3NUYWIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB2YWx1ZUNvbXBvbmVudCAtIFRoZSB2YWx1ZSBjb21wb25lbnQgdG8gYmluZC5cbiAgICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdG8gYmluZCB0by5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgYmluZGluZyB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGJpbmQ8XG4gICAgVUlWYWx1ZSxcbiAgICBUVmFsdWVDb21wb25lbnRcbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHk6IEtleXNNYXRjaGluZzxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8VFBsdWdpbj4sIFVJVmFsdWU+LFxuICAgIG9wdGlvbnM/OiBCaW5kT3B0aW9uczxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8VFBsdWdpbj4sIFVJVmFsdWU+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHkgLSBUaGUgcHJvcGVydHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgRXh0cmFjdFBsdWdpblNldHRpbmdzPFRQbHVnaW4+XG4gID4oXG4gICAgdmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCAmIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBvcHRpb25zOiBCaW5kT3B0aW9uc0V4dGVuZGVkPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxUUGx1Z2luPiwgVUlWYWx1ZSwgUHJvcGVydHk+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHkgLSBUaGUgcHJvcGVydHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgRXh0cmFjdFBsdWdpblNldHRpbmdzPFRQbHVnaW4+XG4gID4oXG4gICAgdmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCAmIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBvcHRpb25zPzogQmluZE9wdGlvbnM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFRQbHVnaW4+LCBVSVZhbHVlPlxuICApOiBUVmFsdWVDb21wb25lbnQge1xuICAgIHR5cGUgUGx1Z2luU2V0dGluZ3MgPSBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8VFBsdWdpbj47XG4gICAgdHlwZSBQcm9wZXJ0eVR5cGUgPSBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV07XG4gICAgY29uc3QgREVGQVVMVF9PUFRJT05TOiBSZXF1aXJlZDxCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eT4+ID0ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICBjb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXI6ICh2YWx1ZTogVUlWYWx1ZSk6IFByb3BlcnR5VHlwZSA9PiB2YWx1ZSBhcyBQcm9wZXJ0eVR5cGUsXG4gICAgICBvbkNoYW5nZWQ6IG5vb3AsXG4gICAgICBwbHVnaW5TZXR0aW5nczogdGhpcy5wbHVnaW4uc2V0dGluZ3NDbG9uZSBhcyBQbHVnaW5TZXR0aW5ncyxcbiAgICAgIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHZhbHVlOiBQcm9wZXJ0eVR5cGUpOiBVSVZhbHVlID0+IHZhbHVlIGFzIFVJVmFsdWUsXG4gICAgICBzaG91bGRBdXRvU2F2ZTogdHJ1ZSxcbiAgICAgIHNob3VsZFNob3dWYWxpZGF0aW9uTWVzc2FnZTogdHJ1ZSxcbiAgICAgIHZhbHVlVmFsaWRhdG9yOiBub29wXG4gICAgfTtcblxuICAgIGNvbnN0IG9wdGlvbnNFeHQ6IFJlcXVpcmVkPEJpbmRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5Pj4gPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgY29uc3QgcGx1Z2luU2V0dGluZ3NGbiA9ICgpOiBQbHVnaW5TZXR0aW5ncyA9PiBvcHRpb25zRXh0LnBsdWdpblNldHRpbmdzID8/IHRoaXMucGx1Z2luLnNldHRpbmdzQ2xvbmU7XG4gICAgY29uc3QgdmFsaWRhdG9yRWxlbWVudCA9IGdldFZhbGlkYXRvckNvbXBvbmVudCh2YWx1ZUNvbXBvbmVudCk/LnZhbGlkYXRvckVsO1xuXG4gICAgY29uc3QgdmFsaWRhdGUgPSBhc3luYyAodWlWYWx1ZT86IFVJVmFsdWUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICAgIHVpVmFsdWUgPz89IHZhbHVlQ29tcG9uZW50LmdldFZhbHVlKCk7XG4gICAgICBsZXQgZXJyb3JNZXNzYWdlID0gYXdhaXQgb3B0aW9uc0V4dC52YWx1ZVZhbGlkYXRvcih1aVZhbHVlKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAodmFsaWRhdG9yRWxlbWVudCkge1xuICAgICAgICBpZiAoIWVycm9yTWVzc2FnZSkge1xuICAgICAgICAgIHZhbGlkYXRvckVsZW1lbnQuc2V0Q3VzdG9tVmFsaWRpdHkoJycpO1xuICAgICAgICAgIHZhbGlkYXRvckVsZW1lbnQuY2hlY2tWYWxpZGl0eSgpO1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHZhbGlkYXRvckVsZW1lbnQudmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICAgIH1cblxuICAgICAgICB2YWxpZGF0b3JFbGVtZW50LnNldEN1c3RvbVZhbGlkaXR5KGVycm9yTWVzc2FnZSk7XG4gICAgICAgIHZhbGlkYXRvckVsZW1lbnQudGl0bGUgPSBlcnJvck1lc3NhZ2U7XG4gICAgICAgIGlmICh2YWxpZGF0b3JFbGVtZW50LmlzQWN0aXZlRWxlbWVudCgpICYmIG9wdGlvbnNFeHQuc2hvdWxkU2hvd1ZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgICAgdmFsaWRhdG9yRWxlbWVudC5yZXBvcnRWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAhZXJyb3JNZXNzYWdlO1xuICAgIH07XG5cbiAgICB2YWx1ZUNvbXBvbmVudFxuICAgICAgLnNldFZhbHVlKG9wdGlvbnNFeHQucGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyKHBsdWdpblNldHRpbmdzRm4oKVtwcm9wZXJ0eV0pKVxuICAgICAgLm9uQ2hhbmdlKGFzeW5jICh1aVZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghYXdhaXQgdmFsaWRhdGUodWlWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGx1Z2luU2V0dGluZ3MgPSBwbHVnaW5TZXR0aW5nc0ZuKCk7XG4gICAgICAgIHBsdWdpblNldHRpbmdzW3Byb3BlcnR5XSA9IG9wdGlvbnNFeHQuY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyKHVpVmFsdWUpO1xuICAgICAgICBpZiAob3B0aW9uc0V4dC5zaG91bGRBdXRvU2F2ZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncyhwbHVnaW5TZXR0aW5ncyk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBvcHRpb25zRXh0Lm9uQ2hhbmdlZCgpO1xuICAgICAgfSk7XG5cbiAgICB2YWxpZGF0b3JFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGNvbnZlcnRBc3luY1RvU3luYygoKSA9PiB2YWxpZGF0ZSgpKSk7XG4gICAgdmFsaWRhdG9yRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIGNvbnZlcnRBc3luY1RvU3luYygoKSA9PiB2YWxpZGF0ZSgpKSk7XG4gICAgdGhpcy52YWxpZGF0b3JzTWFwLnNldCh2YWx1ZUNvbXBvbmVudCwgKCkgPT4gdmFsaWRhdGUoKSk7XG5cbiAgICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiB2YWxpZGF0ZSgpKTtcbiAgICByZXR1cm4gdmFsdWVDb21wb25lbnQ7XG4gIH1cblxuICAvKipcbiAgICogUmV2YWxpZGF0ZXMgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGJhc2VDb21wb25lbnQgLSBUaGUgYmFzZSBjb21wb25lbnQgdG8gcmV2YWxpZGF0ZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgdmFsdWUgY29tcG9uZW50IGlzIHZhbGlkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIHJldmFsaWRhdGUoYmFzZUNvbXBvbmVudDogQmFzZUNvbXBvbmVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHZhbGlkYXRvciA9IHRoaXMudmFsaWRhdG9yc01hcC5nZXQoYmFzZUNvbXBvbmVudCk7XG4gICAgaWYgKHZhbGlkYXRvcikge1xuICAgICAgcmV0dXJuIGF3YWl0IHZhbGlkYXRvcigpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLHNCQUFpQztBQU9qQyxtQkFHTztBQUNQLHNCQUF5QjtBQUN6QixzQkFBcUI7QUFDckIsZ0NBQXNDO0FBQ3RDLHdCQUEyQjtBQUMzQixzQkFBNEI7QUFnRXJCLE1BQWUsOEJBQStELGlDQUFpQjtBQUFBLEVBRzdGLFlBQTRCLFFBQWlCO0FBQ2xELFVBQU0sT0FBTyxLQUFLLE1BQU07QUFEUztBQUVqQyxTQUFLLFlBQVksU0FBUyx5QkFBUyxpQkFBYSw2QkFBWSxHQUFHLHlCQUFTLGlCQUFpQjtBQUFBLEVBQzNGO0FBQUEsRUFMUSxnQkFBZ0Isb0JBQUksUUFBK0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUF3RGpFLEtBS1IsZ0JBQ0EsVUFDQSxTQUNpQjtBQUdqQixVQUFNLGtCQUFvRjtBQUFBO0FBQUEsTUFFeEYseUNBQXlDLENBQUMsVUFBaUM7QUFBQSxNQUMzRSxXQUFXO0FBQUEsTUFDWCxnQkFBZ0IsS0FBSyxPQUFPO0FBQUEsTUFDNUIseUNBQXlDLENBQUMsVUFBaUM7QUFBQSxNQUMzRSxnQkFBZ0I7QUFBQSxNQUNoQiw2QkFBNkI7QUFBQSxNQUM3QixnQkFBZ0I7QUFBQSxJQUNsQjtBQUVBLFVBQU0sYUFBK0UsRUFBRSxHQUFHLGlCQUFpQixHQUFHLFFBQVE7QUFHdEgsVUFBTSxtQkFBbUIsTUFBc0IsV0FBVyxrQkFBa0IsS0FBSyxPQUFPO0FBQ3hGLFVBQU0sdUJBQW1CLGlEQUFzQixjQUFjLEdBQUc7QUFFaEUsVUFBTSxXQUFXLE9BQU8sWUFBd0M7QUFDOUQsa0JBQVksZUFBZSxTQUFTO0FBQ3BDLFVBQUksZUFBZSxNQUFNLFdBQVcsZUFBZSxPQUFPO0FBQzFELFVBQUksa0JBQWtCO0FBQ3BCLFlBQUksQ0FBQyxjQUFjO0FBQ2pCLDJCQUFpQixrQkFBa0IsRUFBRTtBQUNyQywyQkFBaUIsY0FBYztBQUMvQix5QkFBZSxpQkFBaUI7QUFBQSxRQUNsQztBQUVBLHlCQUFpQixrQkFBa0IsWUFBWTtBQUMvQyx5QkFBaUIsUUFBUTtBQUN6QixZQUFJLGlCQUFpQixnQkFBZ0IsS0FBSyxXQUFXLDZCQUE2QjtBQUNoRiwyQkFBaUIsZUFBZTtBQUFBLFFBQ2xDO0FBQUEsTUFDRjtBQUVBLGFBQU8sQ0FBQztBQUFBLElBQ1Y7QUFFQSxtQkFDRyxTQUFTLFdBQVcsd0NBQXdDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQ3pGLFNBQVMsT0FBTyxZQUFZO0FBQzNCLFVBQUksQ0FBQyxNQUFNLFNBQVMsT0FBTyxHQUFHO0FBQzVCO0FBQUEsTUFDRjtBQUNBLFlBQU0saUJBQWlCLGlCQUFpQjtBQUN4QyxxQkFBZSxRQUFRLElBQUksV0FBVyx3Q0FBd0MsT0FBTztBQUNyRixVQUFJLFdBQVcsZ0JBQWdCO0FBQzdCLGNBQU0sS0FBSyxPQUFPLGFBQWEsY0FBYztBQUFBLE1BQy9DO0FBRUEsWUFBTSxXQUFXLFVBQVU7QUFBQSxJQUM3QixDQUFDO0FBRUgsc0JBQWtCLGlCQUFpQixhQUFTLGlDQUFtQixNQUFNLFNBQVMsQ0FBQyxDQUFDO0FBQ2hGLHNCQUFrQixpQkFBaUIsWUFBUSxpQ0FBbUIsTUFBTSxTQUFTLENBQUMsQ0FBQztBQUMvRSxTQUFLLGNBQWMsSUFBSSxnQkFBZ0IsTUFBTSxTQUFTLENBQUM7QUFFdkQsd0NBQWtCLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxNQUFnQixXQUFXLGVBQWdEO0FBQ3pFLFVBQU0sWUFBWSxLQUFLLGNBQWMsSUFBSSxhQUFhO0FBQ3RELFFBQUksV0FBVztBQUNiLGFBQU8sTUFBTSxVQUFVO0FBQUEsSUFDekI7QUFFQSxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
122
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpblNldHRpbmdzVGFiQmFzZVxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgUGx1Z2luU2V0dGluZ1RhYiB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IEtleXNNYXRjaGluZyB9IGZyb20gJy4uLy4uL09iamVjdC50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nIH0gZnJvbSAnLi4vQ29tcG9uZW50cy9WYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZy50cyc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpblNldHRpbmdzQmFzZSB9IGZyb20gJy4vUGx1Z2luU2V0dGluZ3NCYXNlLnRzJztcblxuaW1wb3J0IHtcbiAgY29udmVydEFzeW5jVG9TeW5jLFxuICBpbnZva2VBc3luY1NhZmVseVxufSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uLy4uL0Nzc0NsYXNzLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuLi9Db21wb25lbnRzL1ZhbGlkYXRvckNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5CYXNlIH0gZnJvbSAnLi9QbHVnaW5CYXNlLnRzJztcbmltcG9ydCB7IGdldFBsdWdpbklkIH0gZnJvbSAnLi9QbHVnaW5JZC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYmluZGluZyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHBsdWdpbiBzZXR0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPiB7XG4gIC8qKlxuICAgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICovXG4gIG9uQ2hhbmdlZD86ICgpID0+IE1heWJlUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QgdG8gYmluZCB0aGUgY29tcG9uZW50IHRvLiBEZWZhdWx0IGlzIHRoZSBwbHVnaW4ncyBjdXJyZW50IHNldHRpbmdzLlxuICAgKi9cbiAgcGx1Z2luU2V0dGluZ3M/OiBQbHVnaW5TZXR0aW5ncztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgc2F2ZXMgdGhlIHBsdWdpbiBzZXR0aW5ncyBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSBjb21wb25lbnQgdmFsdWUgY2hhbmdlcy4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRBdXRvU2F2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHNob3dzIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2Ugd2hlbiB0aGUgY29tcG9uZW50IHZhbHVlIGlzIGludmFsaWQuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgc2hvdWxkU2hvd1ZhbGlkYXRpb25NZXNzYWdlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBVSSB2YWx1ZSBiZWZvcmUgc2V0dGluZyBpdCBvbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKiBAcGFyYW0gdWlWYWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBBbiBlcnJvciBtZXNzYWdlIGlmIHRoZSB2YWx1ZSBpcyBpbnZhbGlkLCBvciBgKGVtcHR5IHN0cmluZylgIG9yIGB2b2lkYCBpZiBpdCBpcyB2YWxpZC5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGVcbiAgdmFsdWVWYWxpZGF0b3I/OiAodWlWYWx1ZTogVUlWYWx1ZSkgPT4gTWF5YmVQcm9taXNlPHN0cmluZyB8IHZvaWQ+O1xufVxuXG4vKipcbiAqIEV4dGVuZGVkIG9wdGlvbnMgZm9yIGJpbmRpbmcgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eSBleHRlbmRzIGtleW9mIFBsdWdpblNldHRpbmdzPiBleHRlbmRzIEJpbmRPcHRpb25zPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlPiB7XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgVUkgY29tcG9uZW50J3MgdmFsdWUgYmFjayB0byB0aGUgcGx1Z2luIHNldHRpbmdzIHZhbHVlLlxuICAgKiBAcGFyYW0gdWlWYWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBjb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXI6ICh1aVZhbHVlOiBVSVZhbHVlKSA9PiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV07XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgdmFsdWUgdG8gdGhlIHZhbHVlIHVzZWQgYnkgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHBsdWdpblNldHRpbmdzVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSB0byBzZXQgb24gdGhlIFVJIGNvbXBvbmVudC5cbiAgICovXG4gIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHBsdWdpblNldHRpbmdzVmFsdWU6IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5XSkgPT4gVUlWYWx1ZTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgRXh0cmFjdFBsdWdpblNldHRpbmdzPFQgZXh0ZW5kcyBQbHVnaW5CYXNlPGFueT4+ID0gUGx1Z2luU2V0dGluZ3NCYXNlICYgVFsnc2V0dGluZ3NDbG9uZSddO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5ncyB0YWJzIGluIE9ic2lkaWFuLlxuICogUHJvdmlkZXMgYSBtZXRob2QgZm9yIGJpbmRpbmcgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsaW5nIGNoYW5nZXMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IGV4dGVuZHMgUGx1Z2luQmFzZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbkJhc2U8YW55Pj4gZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcbiAgcHJpdmF0ZSB2YWxpZGF0b3JzTWFwID0gbmV3IFdlYWtNYXA8QmFzZUNvbXBvbmVudCwgKCkgPT4gUHJvbWlzZTxib29sZWFuPj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIG92ZXJyaWRlIHBsdWdpbjogVFBsdWdpbikge1xuICAgIHN1cGVyKHBsdWdpbi5hcHAsIHBsdWdpbik7XG4gICAgdGhpcy5jb250YWluZXJFbC5hZGRDbGFzcyhDc3NDbGFzcy5MaWJyYXJ5TmFtZSwgZ2V0UGx1Z2luSWQoKSwgQ3NzQ2xhc3MuUGx1Z2luU2V0dGluZ3NUYWIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB2YWx1ZUNvbXBvbmVudCAtIFRoZSB2YWx1ZSBjb21wb25lbnQgdG8gYmluZC5cbiAgICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdG8gYmluZCB0by5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgYmluZGluZyB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGJpbmQ8XG4gICAgVUlWYWx1ZSxcbiAgICBUVmFsdWVDb21wb25lbnRcbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHk6IEtleXNNYXRjaGluZzxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8VFBsdWdpbj4sIFVJVmFsdWU+LFxuICAgIG9wdGlvbnM/OiBCaW5kT3B0aW9uczxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8VFBsdWdpbj4sIFVJVmFsdWU+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHkgLSBUaGUgcHJvcGVydHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgRXh0cmFjdFBsdWdpblNldHRpbmdzPFRQbHVnaW4+XG4gID4oXG4gICAgdmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCAmIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBvcHRpb25zOiBCaW5kT3B0aW9uc0V4dGVuZGVkPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxUUGx1Z2luPiwgVUlWYWx1ZSwgUHJvcGVydHk+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHkgLSBUaGUgcHJvcGVydHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgRXh0cmFjdFBsdWdpblNldHRpbmdzPFRQbHVnaW4+XG4gID4oXG4gICAgdmFsdWVDb21wb25lbnQ6IFRWYWx1ZUNvbXBvbmVudCAmIFZhbHVlQ29tcG9uZW50V2l0aENoYW5nZVRyYWNraW5nPFVJVmFsdWU+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBvcHRpb25zPzogQmluZE9wdGlvbnM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFRQbHVnaW4+LCBVSVZhbHVlPlxuICApOiBUVmFsdWVDb21wb25lbnQge1xuICAgIHR5cGUgUGx1Z2luU2V0dGluZ3MgPSBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8VFBsdWdpbj47XG4gICAgdHlwZSBQcm9wZXJ0eVR5cGUgPSBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eV07XG4gICAgY29uc3QgREVGQVVMVF9PUFRJT05TOiBSZXF1aXJlZDxCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eT4+ID0ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICBjb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXI6ICh2YWx1ZTogVUlWYWx1ZSk6IFByb3BlcnR5VHlwZSA9PiB2YWx1ZSBhcyBQcm9wZXJ0eVR5cGUsXG4gICAgICBvbkNoYW5nZWQ6IG5vb3AsXG4gICAgICBwbHVnaW5TZXR0aW5nczogdGhpcy5wbHVnaW4uc2V0dGluZ3NDbG9uZSBhcyBQbHVnaW5TZXR0aW5ncyxcbiAgICAgIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHZhbHVlOiBQcm9wZXJ0eVR5cGUpOiBVSVZhbHVlID0+IHZhbHVlIGFzIFVJVmFsdWUsXG4gICAgICBzaG91bGRBdXRvU2F2ZTogdHJ1ZSxcbiAgICAgIHNob3VsZFNob3dWYWxpZGF0aW9uTWVzc2FnZTogdHJ1ZSxcbiAgICAgIHZhbHVlVmFsaWRhdG9yOiBub29wXG4gICAgfTtcblxuICAgIGNvbnN0IG9wdGlvbnNFeHQ6IFJlcXVpcmVkPEJpbmRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5Pj4gPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgY29uc3QgcGx1Z2luU2V0dGluZ3NGbiA9ICgpOiBQbHVnaW5TZXR0aW5ncyA9PiBvcHRpb25zRXh0LnBsdWdpblNldHRpbmdzID8/IHRoaXMucGx1Z2luLnNldHRpbmdzQ2xvbmU7XG4gICAgY29uc3QgdmFsaWRhdG9yRWxlbWVudCA9IGdldFZhbGlkYXRvckNvbXBvbmVudCh2YWx1ZUNvbXBvbmVudCk/LnZhbGlkYXRvckVsO1xuXG4gICAgY29uc3QgdmFsaWRhdGUgPSBhc3luYyAodWlWYWx1ZT86IFVJVmFsdWUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICAgIHVpVmFsdWUgPz89IHZhbHVlQ29tcG9uZW50LmdldFZhbHVlKCk7XG4gICAgICBsZXQgZXJyb3JNZXNzYWdlID0gYXdhaXQgb3B0aW9uc0V4dC52YWx1ZVZhbGlkYXRvcih1aVZhbHVlKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAodmFsaWRhdG9yRWxlbWVudCkge1xuICAgICAgICBpZiAoIWVycm9yTWVzc2FnZSkge1xuICAgICAgICAgIHZhbGlkYXRvckVsZW1lbnQuc2V0Q3VzdG9tVmFsaWRpdHkoJycpO1xuICAgICAgICAgIHZhbGlkYXRvckVsZW1lbnQuY2hlY2tWYWxpZGl0eSgpO1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHZhbGlkYXRvckVsZW1lbnQudmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICAgIH1cblxuICAgICAgICB2YWxpZGF0b3JFbGVtZW50LnNldEN1c3RvbVZhbGlkaXR5KGVycm9yTWVzc2FnZSk7XG4gICAgICAgIHZhbGlkYXRvckVsZW1lbnQudGl0bGUgPSBlcnJvck1lc3NhZ2U7XG4gICAgICAgIGlmICh2YWxpZGF0b3JFbGVtZW50LmlzQWN0aXZlRWxlbWVudCgpICYmIG9wdGlvbnNFeHQuc2hvdWxkU2hvd1ZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgICAgdmFsaWRhdG9yRWxlbWVudC5yZXBvcnRWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAhZXJyb3JNZXNzYWdlO1xuICAgIH07XG5cbiAgICB2YWx1ZUNvbXBvbmVudFxuICAgICAgLnNldFZhbHVlKG9wdGlvbnNFeHQucGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyKHBsdWdpblNldHRpbmdzRm4oKVtwcm9wZXJ0eV0pKVxuICAgICAgLm9uQ2hhbmdlKGFzeW5jICh1aVZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghYXdhaXQgdmFsaWRhdGUodWlWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGx1Z2luU2V0dGluZ3MgPSBwbHVnaW5TZXR0aW5nc0ZuKCk7XG4gICAgICAgIHBsdWdpblNldHRpbmdzW3Byb3BlcnR5XSA9IG9wdGlvbnNFeHQuY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyKHVpVmFsdWUpO1xuICAgICAgICBpZiAob3B0aW9uc0V4dC5zaG91bGRBdXRvU2F2ZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncyhwbHVnaW5TZXR0aW5ncyk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBvcHRpb25zRXh0Lm9uQ2hhbmdlZCgpO1xuICAgICAgfSk7XG5cbiAgICB2YWxpZGF0b3JFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGNvbnZlcnRBc3luY1RvU3luYygoKSA9PiB2YWxpZGF0ZSgpKSk7XG4gICAgdmFsaWRhdG9yRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIGNvbnZlcnRBc3luY1RvU3luYygoKSA9PiB2YWxpZGF0ZSgpKSk7XG4gICAgdGhpcy52YWxpZGF0b3JzTWFwLnNldCh2YWx1ZUNvbXBvbmVudCwgKCkgPT4gdmFsaWRhdGUoKSk7XG5cbiAgICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiB2YWxpZGF0ZSgpKTtcbiAgICByZXR1cm4gdmFsdWVDb21wb25lbnQ7XG4gIH1cblxuICAvKipcbiAgICogUmV2YWxpZGF0ZXMgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGJhc2VDb21wb25lbnQgLSBUaGUgYmFzZSBjb21wb25lbnQgdG8gcmV2YWxpZGF0ZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgdmFsdWUgY29tcG9uZW50IGlzIHZhbGlkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIHJldmFsaWRhdGUoYmFzZUNvbXBvbmVudDogQmFzZUNvbXBvbmVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHZhbGlkYXRvciA9IHRoaXMudmFsaWRhdG9yc01hcC5nZXQoYmFzZUNvbXBvbmVudCk7XG4gICAgaWYgKHZhbGlkYXRvcikge1xuICAgICAgcmV0dXJuIGF3YWl0IHZhbGlkYXRvcigpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLHNCQUFpQztBQU9qQyxtQkFHTztBQUNQLHNCQUF5QjtBQUN6QixzQkFBcUI7QUFDckIsZ0NBQXNDO0FBQ3RDLHdCQUEyQjtBQUMzQixzQkFBNEI7QUFnRXJCLE1BQWUsOEJBQStELGlDQUFpQjtBQUFBLEVBRzdGLFlBQTRCLFFBQWlCO0FBQ2xELFVBQU0sT0FBTyxLQUFLLE1BQU07QUFEUztBQUVqQyxTQUFLLFlBQVksU0FBUyx5QkFBUyxpQkFBYSw2QkFBWSxHQUFHLHlCQUFTLGlCQUFpQjtBQUFBLEVBQzNGO0FBQUEsRUFMUSxnQkFBZ0Isb0JBQUksUUFBK0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUF3RGpFLEtBS1IsZ0JBQ0EsVUFDQSxTQUNpQjtBQUdqQixVQUFNLGtCQUFvRjtBQUFBO0FBQUEsTUFFeEYseUNBQXlDLENBQUMsVUFBaUM7QUFBQSxNQUMzRSxXQUFXO0FBQUEsTUFDWCxnQkFBZ0IsS0FBSyxPQUFPO0FBQUEsTUFDNUIseUNBQXlDLENBQUMsVUFBaUM7QUFBQSxNQUMzRSxnQkFBZ0I7QUFBQSxNQUNoQiw2QkFBNkI7QUFBQSxNQUM3QixnQkFBZ0I7QUFBQSxJQUNsQjtBQUVBLFVBQU0sYUFBK0UsRUFBRSxHQUFHLGlCQUFpQixHQUFHLFFBQVE7QUFHdEgsVUFBTSxtQkFBbUIsTUFBc0IsV0FBVyxrQkFBa0IsS0FBSyxPQUFPO0FBQ3hGLFVBQU0sdUJBQW1CLGlEQUFzQixjQUFjLEdBQUc7QUFFaEUsVUFBTSxXQUFXLE9BQU8sWUFBd0M7QUFDOUQsa0JBQVksZUFBZSxTQUFTO0FBQ3BDLFVBQUksZUFBZSxNQUFNLFdBQVcsZUFBZSxPQUFPO0FBQzFELFVBQUksa0JBQWtCO0FBQ3BCLFlBQUksQ0FBQyxjQUFjO0FBQ2pCLDJCQUFpQixrQkFBa0IsRUFBRTtBQUNyQywyQkFBaUIsY0FBYztBQUMvQix5QkFBZSxpQkFBaUI7QUFBQSxRQUNsQztBQUVBLHlCQUFpQixrQkFBa0IsWUFBWTtBQUMvQyx5QkFBaUIsUUFBUTtBQUN6QixZQUFJLGlCQUFpQixnQkFBZ0IsS0FBSyxXQUFXLDZCQUE2QjtBQUNoRiwyQkFBaUIsZUFBZTtBQUFBLFFBQ2xDO0FBQUEsTUFDRjtBQUVBLGFBQU8sQ0FBQztBQUFBLElBQ1Y7QUFFQSxtQkFDRyxTQUFTLFdBQVcsd0NBQXdDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQ3pGLFNBQVMsT0FBTyxZQUFZO0FBQzNCLFVBQUksQ0FBQyxNQUFNLFNBQVMsT0FBTyxHQUFHO0FBQzVCO0FBQUEsTUFDRjtBQUNBLFlBQU0saUJBQWlCLGlCQUFpQjtBQUN4QyxxQkFBZSxRQUFRLElBQUksV0FBVyx3Q0FBd0MsT0FBTztBQUNyRixVQUFJLFdBQVcsZ0JBQWdCO0FBQzdCLGNBQU0sS0FBSyxPQUFPLGFBQWEsY0FBYztBQUFBLE1BQy9DO0FBRUEsWUFBTSxXQUFXLFVBQVU7QUFBQSxJQUM3QixDQUFDO0FBRUgsc0JBQWtCLGlCQUFpQixhQUFTLGlDQUFtQixNQUFNLFNBQVMsQ0FBQyxDQUFDO0FBQ2hGLHNCQUFrQixpQkFBaUIsWUFBUSxpQ0FBbUIsTUFBTSxTQUFTLENBQUMsQ0FBQztBQUMvRSxTQUFLLGNBQWMsSUFBSSxnQkFBZ0IsTUFBTSxTQUFTLENBQUM7QUFFdkQsd0NBQWtCLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxNQUFnQixXQUFXLGVBQWdEO0FBQ3pFLFVBQU0sWUFBWSxLQUFLLGNBQWMsSUFBSSxhQUFhO0FBQ3RELFFBQUksV0FBVztBQUNiLGFBQU8sTUFBTSxVQUFVO0FBQUEsSUFDekI7QUFFQSxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -5,8 +5,8 @@
5
5
  */
6
6
  import type { BaseComponent } from 'obsidian';
7
7
  import { PluginSettingTab } from 'obsidian';
8
- import type { KeysMatching } from '../../@types.ts';
9
8
  import type { MaybePromise } from '../../Async.ts';
9
+ import type { KeysMatching } from '../../Object.ts';
10
10
  import type { ValueComponentWithChangeTracking } from '../Components/ValueComponentWithChangeTracking.ts';
11
11
  import type { PluginSettingsBase } from './PluginSettingsBase.ts';
12
12
  import { PluginBase } from './PluginBase.ts';