obsidian-dev-utils 67.0.0 → 69.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (596) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/dev/main.js +487 -267
  3. package/dist/lib/cjs/@types/debug.d.cts +1 -0
  4. package/dist/lib/cjs/abort-controller.d.cts +1 -0
  5. package/dist/lib/cjs/array.d.cts +1 -0
  6. package/dist/lib/cjs/async-events.cjs +178 -18
  7. package/dist/lib/cjs/async-events.d.cts +261 -9
  8. package/dist/lib/cjs/async.d.cts +1 -0
  9. package/dist/lib/cjs/blob.d.cts +1 -0
  10. package/dist/lib/cjs/codemirror/index.d.cts +1 -0
  11. package/dist/lib/cjs/codemirror/state-field-spec.d.cts +1 -0
  12. package/dist/lib/cjs/css-class.d.cts +1 -0
  13. package/dist/lib/cjs/debug-controller.d.cts +1 -0
  14. package/dist/lib/cjs/debug.d.cts +1 -0
  15. package/dist/lib/cjs/enum.d.cts +1 -0
  16. package/dist/lib/cjs/error.cjs +6 -7
  17. package/dist/lib/cjs/error.d.cts +1 -0
  18. package/dist/lib/cjs/function.cjs +6 -2
  19. package/dist/lib/cjs/function.d.cts +7 -0
  20. package/dist/lib/cjs/html-element.d.cts +1 -0
  21. package/dist/lib/cjs/index.d.cts +1 -0
  22. package/dist/lib/cjs/library.cjs +1 -1
  23. package/dist/lib/cjs/library.d.cts +4 -0
  24. package/dist/lib/cjs/object-utils.cjs +1 -1
  25. package/dist/lib/cjs/object-utils.d.cts +3 -0
  26. package/dist/lib/cjs/obsidian/@types/dataview/api/data-array.d.cts +1 -0
  27. package/dist/lib/cjs/obsidian/@types/dataview/api/extensions.d.cts +1 -0
  28. package/dist/lib/cjs/obsidian/@types/dataview/api/inline-api.d.cts +1 -0
  29. package/dist/lib/cjs/obsidian/@types/dataview/api/plugin-api.d.cts +1 -0
  30. package/dist/lib/cjs/obsidian/@types/dataview/api/result.d.cts +1 -0
  31. package/dist/lib/cjs/obsidian/@types/dataview/data-import/common.d.cts +1 -0
  32. package/dist/lib/cjs/obsidian/@types/dataview/data-import/csv.d.cts +1 -0
  33. package/dist/lib/cjs/obsidian/@types/dataview/data-import/inline-field.d.cts +1 -0
  34. package/dist/lib/cjs/obsidian/@types/dataview/data-import/markdown-file.d.cts +1 -0
  35. package/dist/lib/cjs/obsidian/@types/dataview/data-import/persister.d.cts +1 -0
  36. package/dist/lib/cjs/obsidian/@types/dataview/data-import/web-worker/import-entry.d.cts +1 -0
  37. package/dist/lib/cjs/obsidian/@types/dataview/data-import/web-worker/import-impl.d.cts +1 -0
  38. package/dist/lib/cjs/obsidian/@types/dataview/data-import/web-worker/import-manager.d.cts +1 -0
  39. package/dist/lib/cjs/obsidian/@types/dataview/data-index/index.d.cts +1 -0
  40. package/dist/lib/cjs/obsidian/@types/dataview/data-index/resolver.d.cts +1 -0
  41. package/dist/lib/cjs/obsidian/@types/dataview/data-index/source.d.cts +1 -0
  42. package/dist/lib/cjs/obsidian/@types/dataview/data-model/markdown.d.cts +1 -0
  43. package/dist/lib/cjs/obsidian/@types/dataview/data-model/serialized/markdown.d.cts +1 -0
  44. package/dist/lib/cjs/obsidian/@types/dataview/data-model/transferable.d.cts +1 -0
  45. package/dist/lib/cjs/obsidian/@types/dataview/data-model/value.d.cts +1 -0
  46. package/dist/lib/cjs/obsidian/@types/dataview/expression/binaryop.d.cts +1 -0
  47. package/dist/lib/cjs/obsidian/@types/dataview/expression/context.d.cts +1 -0
  48. package/dist/lib/cjs/obsidian/@types/dataview/expression/field.d.cts +1 -0
  49. package/dist/lib/cjs/obsidian/@types/dataview/expression/functions.d.cts +1 -0
  50. package/dist/lib/cjs/obsidian/@types/dataview/expression/parse.d.cts +1 -0
  51. package/dist/lib/cjs/obsidian/@types/dataview/index.d.cts +1 -0
  52. package/dist/lib/cjs/obsidian/@types/dataview/main.d.cts +1 -0
  53. package/dist/lib/cjs/obsidian/@types/dataview/query/engine.d.cts +1 -0
  54. package/dist/lib/cjs/obsidian/@types/dataview/query/parse.d.cts +1 -0
  55. package/dist/lib/cjs/obsidian/@types/dataview/query/query.d.cts +1 -0
  56. package/dist/lib/cjs/obsidian/@types/dataview/settings.d.cts +1 -0
  57. package/dist/lib/cjs/obsidian/@types/dataview/typings/obsidian-ex.d.cts +1 -0
  58. package/dist/lib/cjs/obsidian/@types/dataview/typings/workers.d.cts +1 -0
  59. package/dist/lib/cjs/obsidian/@types/dataview/ui/export/markdown.d.cts +1 -0
  60. package/dist/lib/cjs/obsidian/@types/dataview/ui/lp-render.d.cts +1 -0
  61. package/dist/lib/cjs/obsidian/@types/dataview/ui/markdown.d.cts +1 -0
  62. package/dist/lib/cjs/obsidian/@types/dataview/ui/refreshable-view.d.cts +1 -0
  63. package/dist/lib/cjs/obsidian/@types/dataview/ui/render.d.cts +1 -0
  64. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/calendar-view.d.cts +1 -0
  65. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/inline-field-live-preview.d.cts +1 -0
  66. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/inline-view.d.cts +1 -0
  67. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/js-view.d.cts +1 -0
  68. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/list-view.d.cts +1 -0
  69. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/table-view.d.cts +1 -0
  70. package/dist/lib/cjs/obsidian/@types/dataview/ui/views/task-view.d.cts +1 -0
  71. package/dist/lib/cjs/obsidian/@types/dataview/util/hash.d.cts +1 -0
  72. package/dist/lib/cjs/obsidian/@types/dataview/util/locale.d.cts +1 -0
  73. package/dist/lib/cjs/obsidian/@types/dataview/util/media.d.cts +1 -0
  74. package/dist/lib/cjs/obsidian/@types/dataview/util/normalize.d.cts +1 -0
  75. package/dist/lib/cjs/obsidian/@types/i18next.d.cts +1 -0
  76. package/dist/lib/cjs/obsidian/active-file-provider.cjs +1 -1
  77. package/dist/lib/cjs/obsidian/active-file-provider.d.cts +1 -1
  78. package/dist/lib/cjs/obsidian/app.d.cts +1 -0
  79. package/dist/lib/cjs/obsidian/async-with-notice.d.cts +1 -0
  80. package/dist/lib/cjs/obsidian/attachment-path.d.cts +1 -0
  81. package/dist/lib/cjs/obsidian/backlink.d.cts +1 -0
  82. package/dist/lib/cjs/obsidian/callout.d.cts +1 -0
  83. package/dist/lib/cjs/obsidian/code-block-markdown-information.d.cts +1 -0
  84. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +1 -0
  85. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +4 -4
  86. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +4 -3
  87. package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +1 -0
  88. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +1 -0
  89. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.d.cts +1 -0
  90. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts +1 -0
  91. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.d.cts +1 -0
  92. package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +1 -0
  93. package/dist/lib/cjs/obsidian/command-handlers/open-settings-command-handler.d.cts +1 -0
  94. package/dist/lib/cjs/obsidian/command-registrar.d.cts +1 -0
  95. package/dist/lib/cjs/obsidian/components/abort-signal-component.cjs +3 -7
  96. package/dist/lib/cjs/obsidian/components/abort-signal-component.d.cts +3 -6
  97. package/dist/lib/cjs/obsidian/components/all-windows-event-component.cjs +3 -3
  98. package/dist/lib/cjs/obsidian/components/all-windows-event-component.d.cts +3 -2
  99. package/dist/lib/cjs/obsidian/components/async-error-handler-component.cjs +3 -7
  100. package/dist/lib/cjs/obsidian/components/async-error-handler-component.d.cts +3 -6
  101. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +2 -20
  102. package/dist/lib/cjs/obsidian/components/async-events-component.d.cts +2 -18
  103. package/dist/lib/cjs/obsidian/components/component-ex.cjs +235 -0
  104. package/dist/lib/cjs/obsidian/components/component-ex.d.cts +56 -0
  105. package/dist/lib/cjs/obsidian/components/console-debug-component.cjs +3 -7
  106. package/dist/lib/cjs/obsidian/components/console-debug-component.d.cts +3 -6
  107. package/dist/lib/cjs/obsidian/components/disposable-component.cjs +1 -9
  108. package/dist/lib/cjs/obsidian/components/disposable-component.d.cts +1 -10
  109. package/dist/lib/cjs/obsidian/components/i18n-component.cjs +4 -8
  110. package/dist/lib/cjs/obsidian/components/i18n-component.d.cts +4 -7
  111. package/dist/lib/cjs/obsidian/components/index.cjs +9 -6
  112. package/dist/lib/cjs/obsidian/components/index.d.cts +3 -1
  113. package/dist/lib/cjs/obsidian/components/layout-ready-component.cjs +3 -3
  114. package/dist/lib/cjs/obsidian/components/layout-ready-component.d.cts +3 -2
  115. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.cjs +3 -3
  116. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.d.cts +3 -3
  117. package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +4 -4
  118. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +4 -3
  119. package/dist/lib/cjs/obsidian/components/plugin-context-component.cjs +3 -7
  120. package/dist/lib/cjs/obsidian/components/plugin-context-component.d.cts +3 -6
  121. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +3 -7
  122. package/dist/lib/cjs/obsidian/components/plugin-notice-component.d.cts +3 -6
  123. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +53 -12
  124. package/dist/lib/cjs/obsidian/components/plugin-settings-component.d.cts +54 -18
  125. package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.cjs +3 -3
  126. package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.d.cts +3 -2
  127. package/dist/lib/cjs/obsidian/components/registry-component.cjs +180 -0
  128. package/dist/lib/cjs/obsidian/components/registry-component.d.cts +37 -0
  129. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.d.cts +1 -0
  130. package/dist/lib/cjs/obsidian/constructors/index.d.cts +1 -0
  131. package/dist/lib/cjs/obsidian/data-handler.d.cts +1 -0
  132. package/dist/lib/cjs/obsidian/dataview-link.d.cts +1 -0
  133. package/dist/lib/cjs/obsidian/dataview.d.cts +1 -0
  134. package/dist/lib/cjs/obsidian/editor.d.cts +1 -0
  135. package/dist/lib/cjs/obsidian/file-change.d.cts +1 -0
  136. package/dist/lib/cjs/obsidian/file-manager.d.cts +1 -0
  137. package/dist/lib/cjs/obsidian/file-system.d.cts +1 -0
  138. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.d.cts +1 -0
  139. package/dist/lib/cjs/obsidian/frontmatter.d.cts +1 -0
  140. package/dist/lib/cjs/obsidian/i18n/custom-type-options.d.cts +1 -0
  141. package/dist/lib/cjs/obsidian/i18n/default-translations.d.cts +1 -0
  142. package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +1 -0
  143. package/dist/lib/cjs/obsidian/i18n/index.d.cts +1 -0
  144. package/dist/lib/cjs/obsidian/i18n/locales/en.d.cts +1 -0
  145. package/dist/lib/cjs/obsidian/i18n/locales/index.d.cts +1 -0
  146. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +1 -0
  147. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  148. package/dist/lib/cjs/obsidian/is-in-obsidian.d.cts +1 -0
  149. package/dist/lib/cjs/obsidian/link.d.cts +1 -0
  150. package/dist/lib/cjs/obsidian/logger.d.cts +1 -0
  151. package/dist/lib/cjs/obsidian/loop.d.cts +1 -0
  152. package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.d.cts +1 -0
  153. package/dist/lib/cjs/obsidian/markdown-code-block-processor.d.cts +1 -0
  154. package/dist/lib/cjs/obsidian/markdown-view.d.cts +1 -0
  155. package/dist/lib/cjs/obsidian/markdown.cjs +2 -3
  156. package/dist/lib/cjs/obsidian/markdown.d.cts +1 -0
  157. package/dist/lib/cjs/obsidian/menu-event-registrar.cjs +1 -1
  158. package/dist/lib/cjs/obsidian/menu-event-registrar.d.cts +1 -1
  159. package/dist/lib/cjs/obsidian/metadata-cache.d.cts +1 -0
  160. package/dist/lib/cjs/obsidian/modals/alert.d.cts +1 -0
  161. package/dist/lib/cjs/obsidian/modals/confirm.d.cts +1 -0
  162. package/dist/lib/cjs/obsidian/modals/index.d.cts +1 -0
  163. package/dist/lib/cjs/obsidian/modals/modal.d.cts +1 -0
  164. package/dist/lib/cjs/obsidian/modals/prompt.d.cts +1 -0
  165. package/dist/lib/cjs/obsidian/modals/select-item.d.cts +1 -0
  166. package/dist/lib/cjs/obsidian/obsidian-protocol-handler-registrar.d.cts +1 -0
  167. package/dist/lib/cjs/obsidian/obsidian-settings.d.cts +1 -0
  168. package/dist/lib/cjs/obsidian/path-settings.d.cts +1 -0
  169. package/dist/lib/cjs/obsidian/pdf.d.cts +1 -0
  170. package/dist/lib/cjs/obsidian/plugin/index.d.cts +1 -0
  171. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +1 -0
  172. package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +1 -0
  173. package/dist/lib/cjs/obsidian/plugin/plugin-id.d.cts +1 -0
  174. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +21 -20
  175. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.d.cts +8 -3
  176. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +35 -76
  177. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +36 -36
  178. package/dist/lib/cjs/obsidian/queue.d.cts +1 -0
  179. package/dist/lib/cjs/obsidian/react/app-context.d.cts +1 -0
  180. package/dist/lib/cjs/obsidian/react/index.d.cts +1 -0
  181. package/dist/lib/cjs/obsidian/reference.d.cts +1 -0
  182. package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +1 -2
  183. package/dist/lib/cjs/obsidian/rename-delete-handler.d.cts +1 -0
  184. package/dist/lib/cjs/obsidian/resource-url.d.cts +1 -0
  185. package/dist/lib/cjs/obsidian/setting-components/checkbox-component.d.cts +1 -0
  186. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.d.cts +1 -0
  187. package/dist/lib/cjs/obsidian/setting-components/date-component.d.cts +1 -0
  188. package/dist/lib/cjs/obsidian/setting-components/date-time-component.d.cts +1 -0
  189. package/dist/lib/cjs/obsidian/setting-components/email-component.d.cts +1 -0
  190. package/dist/lib/cjs/obsidian/setting-components/file-component.d.cts +1 -0
  191. package/dist/lib/cjs/obsidian/setting-components/index.d.cts +1 -0
  192. package/dist/lib/cjs/obsidian/setting-components/month-component.d.cts +1 -0
  193. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.d.cts +1 -0
  194. package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.d.cts +1 -0
  195. package/dist/lib/cjs/obsidian/setting-components/multiple-file-component.d.cts +1 -0
  196. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.d.cts +1 -0
  197. package/dist/lib/cjs/obsidian/setting-components/number-component.d.cts +1 -0
  198. package/dist/lib/cjs/obsidian/setting-components/password-component.d.cts +1 -0
  199. package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.d.cts +1 -0
  200. package/dist/lib/cjs/obsidian/setting-components/telephone-component.d.cts +1 -0
  201. package/dist/lib/cjs/obsidian/setting-components/text-based-component.d.cts +1 -0
  202. package/dist/lib/cjs/obsidian/setting-components/time-component.d.cts +1 -0
  203. package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.d.cts +1 -0
  204. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.cjs +3 -1
  205. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.d.cts +3 -0
  206. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.d.cts +1 -0
  207. package/dist/lib/cjs/obsidian/setting-components/typed-range-text-component.d.cts +1 -0
  208. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.d.cts +1 -0
  209. package/dist/lib/cjs/obsidian/setting-components/url-component.d.cts +1 -0
  210. package/dist/lib/cjs/obsidian/setting-components/validator-component.d.cts +1 -0
  211. package/dist/lib/cjs/obsidian/setting-components/value-component-with-change-tracking.d.cts +1 -0
  212. package/dist/lib/cjs/obsidian/setting-components/week-component.d.cts +1 -0
  213. package/dist/lib/cjs/obsidian/setting-ex.cjs +3 -1
  214. package/dist/lib/cjs/obsidian/setting-ex.d.cts +3 -0
  215. package/dist/lib/cjs/obsidian/setting-group-ex.d.cts +1 -0
  216. package/dist/lib/cjs/obsidian/validation.d.cts +1 -0
  217. package/dist/lib/cjs/obsidian/vault-delete.d.cts +1 -0
  218. package/dist/lib/cjs/obsidian/vault.d.cts +1 -0
  219. package/dist/lib/cjs/obsidian/workspace.d.cts +1 -0
  220. package/dist/lib/cjs/path.d.cts +1 -0
  221. package/dist/lib/cjs/reg-exp.d.cts +1 -0
  222. package/dist/lib/cjs/script-utils/build.d.cts +1 -0
  223. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.d.cts +1 -0
  224. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.cts +1 -0
  225. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.cts +1 -0
  226. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.d.cts +1 -0
  227. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.d.cts +1 -0
  228. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.d.cts +1 -0
  229. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.d.cts +1 -0
  230. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +1 -0
  231. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.d.cts +1 -0
  232. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.d.cts +1 -0
  233. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +1 -0
  234. package/dist/lib/cjs/script-utils/bundlers/esbuild.d.cts +1 -0
  235. package/dist/lib/cjs/script-utils/bundlers/index.d.cts +1 -0
  236. package/dist/lib/cjs/script-utils/cli-utils.d.cts +1 -0
  237. package/dist/lib/cjs/script-utils/code-generator.d.cts +1 -0
  238. package/dist/lib/cjs/script-utils/commitlint-config.d.cts +1 -0
  239. package/dist/lib/cjs/script-utils/exec.d.cts +1 -0
  240. package/dist/lib/cjs/script-utils/formatters/dprint.d.cts +1 -0
  241. package/dist/lib/cjs/script-utils/formatters/index.d.cts +1 -0
  242. package/dist/lib/cjs/script-utils/fs.d.cts +1 -0
  243. package/dist/lib/cjs/script-utils/index.d.cts +1 -0
  244. package/dist/lib/cjs/script-utils/json.d.cts +1 -0
  245. package/dist/lib/cjs/script-utils/linters/cspell.d.cts +1 -0
  246. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +2 -1
  247. package/dist/lib/cjs/script-utils/linters/eslint-config.d.cts +1 -0
  248. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +4 -1
  249. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +2 -0
  250. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +1 -0
  251. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +1 -0
  252. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +3 -1
  253. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.d.cts +1 -0
  254. package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.d.cts +1 -0
  255. package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.d.cts +1 -0
  256. package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-members.d.cts +1 -0
  257. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +2 -2
  258. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.d.cts +1 -0
  259. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.cjs +222 -0
  260. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.d.cts +5 -0
  261. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.d.cts +1 -0
  262. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.d.cts +1 -0
  263. package/dist/lib/cjs/script-utils/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.cts +1 -0
  264. package/dist/lib/cjs/script-utils/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.cts +1 -0
  265. package/dist/lib/cjs/script-utils/linters/eslint.d.cts +1 -0
  266. package/dist/lib/cjs/script-utils/linters/index.d.cts +1 -0
  267. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.d.cts +1 -0
  268. package/dist/lib/cjs/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.cts +1 -0
  269. package/dist/lib/cjs/script-utils/linters/markdownlint.d.cts +1 -0
  270. package/dist/lib/cjs/script-utils/nano-staged-config.d.cts +1 -0
  271. package/dist/lib/cjs/script-utils/npm-publish.d.cts +1 -0
  272. package/dist/lib/cjs/script-utils/npm-run.d.cts +1 -0
  273. package/dist/lib/cjs/script-utils/npm.d.cts +1 -0
  274. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +1 -0
  275. package/dist/lib/cjs/script-utils/root.d.cts +1 -0
  276. package/dist/lib/cjs/script-utils/test-runners/index.d.cts +1 -0
  277. package/dist/lib/cjs/script-utils/test-runners/vitest.d.cts +1 -0
  278. package/dist/lib/cjs/script-utils/version.d.cts +1 -0
  279. package/dist/lib/cjs/strict-proxy.d.cts +1 -0
  280. package/dist/lib/cjs/string.d.cts +1 -0
  281. package/dist/lib/cjs/transformers/date-transformer.d.cts +1 -0
  282. package/dist/lib/cjs/transformers/duration-transformer.d.cts +1 -0
  283. package/dist/lib/cjs/transformers/group-transformer.d.cts +1 -0
  284. package/dist/lib/cjs/transformers/index.d.cts +1 -0
  285. package/dist/lib/cjs/transformers/map-transformer.d.cts +1 -0
  286. package/dist/lib/cjs/transformers/set-transformer.d.cts +1 -0
  287. package/dist/lib/cjs/transformers/skip-private-property-transformer.d.cts +1 -0
  288. package/dist/lib/cjs/transformers/transformer.d.cts +1 -0
  289. package/dist/lib/cjs/transformers/two-way-map-transformer.d.cts +1 -0
  290. package/dist/lib/cjs/transformers/typed-transformer.d.cts +1 -0
  291. package/dist/lib/cjs/two-way-map.d.cts +1 -0
  292. package/dist/lib/cjs/type-guards.d.cts +1 -0
  293. package/dist/lib/cjs/type.d.cts +1 -0
  294. package/dist/lib/cjs/url.d.cts +1 -0
  295. package/dist/lib/cjs/value-provider.d.cts +1 -0
  296. package/dist/lib/esm/@types/debug.d.mts +1 -0
  297. package/dist/lib/esm/abort-controller.d.mts +1 -0
  298. package/dist/lib/esm/array.d.mts +1 -0
  299. package/dist/lib/esm/async-events.d.mts +261 -9
  300. package/dist/lib/esm/async-events.mjs +175 -17
  301. package/dist/lib/esm/async.d.mts +1 -0
  302. package/dist/lib/esm/blob.d.mts +1 -0
  303. package/dist/lib/esm/codemirror/index.d.mts +1 -0
  304. package/dist/lib/esm/codemirror/state-field-spec.d.mts +1 -0
  305. package/dist/lib/esm/css-class.d.mts +1 -0
  306. package/dist/lib/esm/debug-controller.d.mts +1 -0
  307. package/dist/lib/esm/debug.d.mts +1 -0
  308. package/dist/lib/esm/enum.d.mts +1 -0
  309. package/dist/lib/esm/error.d.mts +1 -0
  310. package/dist/lib/esm/error.mjs +6 -7
  311. package/dist/lib/esm/function.d.mts +7 -0
  312. package/dist/lib/esm/function.mjs +5 -2
  313. package/dist/lib/esm/html-element.d.mts +1 -0
  314. package/dist/lib/esm/index.d.mts +1 -0
  315. package/dist/lib/esm/library.d.mts +4 -0
  316. package/dist/lib/esm/library.mjs +1 -1
  317. package/dist/lib/esm/object-utils.d.mts +3 -0
  318. package/dist/lib/esm/object-utils.mjs +1 -1
  319. package/dist/lib/esm/obsidian/@types/dataview/api/data-array.d.mts +1 -0
  320. package/dist/lib/esm/obsidian/@types/dataview/api/extensions.d.mts +1 -0
  321. package/dist/lib/esm/obsidian/@types/dataview/api/inline-api.d.mts +1 -0
  322. package/dist/lib/esm/obsidian/@types/dataview/api/plugin-api.d.mts +1 -0
  323. package/dist/lib/esm/obsidian/@types/dataview/api/result.d.mts +1 -0
  324. package/dist/lib/esm/obsidian/@types/dataview/data-import/common.d.mts +1 -0
  325. package/dist/lib/esm/obsidian/@types/dataview/data-import/csv.d.mts +1 -0
  326. package/dist/lib/esm/obsidian/@types/dataview/data-import/inline-field.d.mts +1 -0
  327. package/dist/lib/esm/obsidian/@types/dataview/data-import/markdown-file.d.mts +1 -0
  328. package/dist/lib/esm/obsidian/@types/dataview/data-import/persister.d.mts +1 -0
  329. package/dist/lib/esm/obsidian/@types/dataview/data-import/web-worker/import-entry.d.mts +1 -0
  330. package/dist/lib/esm/obsidian/@types/dataview/data-import/web-worker/import-impl.d.mts +1 -0
  331. package/dist/lib/esm/obsidian/@types/dataview/data-import/web-worker/import-manager.d.mts +1 -0
  332. package/dist/lib/esm/obsidian/@types/dataview/data-index/index.d.mts +1 -0
  333. package/dist/lib/esm/obsidian/@types/dataview/data-index/resolver.d.mts +1 -0
  334. package/dist/lib/esm/obsidian/@types/dataview/data-index/source.d.mts +1 -0
  335. package/dist/lib/esm/obsidian/@types/dataview/data-model/markdown.d.mts +1 -0
  336. package/dist/lib/esm/obsidian/@types/dataview/data-model/serialized/markdown.d.mts +1 -0
  337. package/dist/lib/esm/obsidian/@types/dataview/data-model/transferable.d.mts +1 -0
  338. package/dist/lib/esm/obsidian/@types/dataview/data-model/value.d.mts +1 -0
  339. package/dist/lib/esm/obsidian/@types/dataview/expression/binaryop.d.mts +1 -0
  340. package/dist/lib/esm/obsidian/@types/dataview/expression/context.d.mts +1 -0
  341. package/dist/lib/esm/obsidian/@types/dataview/expression/field.d.mts +1 -0
  342. package/dist/lib/esm/obsidian/@types/dataview/expression/functions.d.mts +1 -0
  343. package/dist/lib/esm/obsidian/@types/dataview/expression/parse.d.mts +1 -0
  344. package/dist/lib/esm/obsidian/@types/dataview/index.d.mts +1 -0
  345. package/dist/lib/esm/obsidian/@types/dataview/main.d.mts +1 -0
  346. package/dist/lib/esm/obsidian/@types/dataview/query/engine.d.mts +1 -0
  347. package/dist/lib/esm/obsidian/@types/dataview/query/parse.d.mts +1 -0
  348. package/dist/lib/esm/obsidian/@types/dataview/query/query.d.mts +1 -0
  349. package/dist/lib/esm/obsidian/@types/dataview/settings.d.mts +1 -0
  350. package/dist/lib/esm/obsidian/@types/dataview/typings/obsidian-ex.d.mts +1 -0
  351. package/dist/lib/esm/obsidian/@types/dataview/typings/workers.d.mts +1 -0
  352. package/dist/lib/esm/obsidian/@types/dataview/ui/export/markdown.d.mts +1 -0
  353. package/dist/lib/esm/obsidian/@types/dataview/ui/lp-render.d.mts +1 -0
  354. package/dist/lib/esm/obsidian/@types/dataview/ui/markdown.d.mts +1 -0
  355. package/dist/lib/esm/obsidian/@types/dataview/ui/refreshable-view.d.mts +1 -0
  356. package/dist/lib/esm/obsidian/@types/dataview/ui/render.d.mts +1 -0
  357. package/dist/lib/esm/obsidian/@types/dataview/ui/views/calendar-view.d.mts +1 -0
  358. package/dist/lib/esm/obsidian/@types/dataview/ui/views/inline-field-live-preview.d.mts +1 -0
  359. package/dist/lib/esm/obsidian/@types/dataview/ui/views/inline-view.d.mts +1 -0
  360. package/dist/lib/esm/obsidian/@types/dataview/ui/views/js-view.d.mts +1 -0
  361. package/dist/lib/esm/obsidian/@types/dataview/ui/views/list-view.d.mts +1 -0
  362. package/dist/lib/esm/obsidian/@types/dataview/ui/views/table-view.d.mts +1 -0
  363. package/dist/lib/esm/obsidian/@types/dataview/ui/views/task-view.d.mts +1 -0
  364. package/dist/lib/esm/obsidian/@types/dataview/util/hash.d.mts +1 -0
  365. package/dist/lib/esm/obsidian/@types/dataview/util/locale.d.mts +1 -0
  366. package/dist/lib/esm/obsidian/@types/dataview/util/media.d.mts +1 -0
  367. package/dist/lib/esm/obsidian/@types/dataview/util/normalize.d.mts +1 -0
  368. package/dist/lib/esm/obsidian/@types/i18next.d.mts +1 -0
  369. package/dist/lib/esm/obsidian/active-file-provider.d.mts +1 -1
  370. package/dist/lib/esm/obsidian/active-file-provider.mjs +1 -1
  371. package/dist/lib/esm/obsidian/app.d.mts +1 -0
  372. package/dist/lib/esm/obsidian/async-with-notice.d.mts +1 -0
  373. package/dist/lib/esm/obsidian/attachment-path.d.mts +1 -0
  374. package/dist/lib/esm/obsidian/backlink.d.mts +1 -0
  375. package/dist/lib/esm/obsidian/callout.d.mts +1 -0
  376. package/dist/lib/esm/obsidian/code-block-markdown-information.d.mts +1 -0
  377. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +1 -0
  378. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +4 -3
  379. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +4 -4
  380. package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +1 -0
  381. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +1 -0
  382. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.d.mts +1 -0
  383. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.d.mts +1 -0
  384. package/dist/lib/esm/obsidian/command-handlers/global-command-handler.d.mts +1 -0
  385. package/dist/lib/esm/obsidian/command-handlers/index.d.mts +1 -0
  386. package/dist/lib/esm/obsidian/command-handlers/open-settings-command-handler.d.mts +1 -0
  387. package/dist/lib/esm/obsidian/command-registrar.d.mts +1 -0
  388. package/dist/lib/esm/obsidian/components/abort-signal-component.d.mts +3 -6
  389. package/dist/lib/esm/obsidian/components/abort-signal-component.mjs +3 -7
  390. package/dist/lib/esm/obsidian/components/all-windows-event-component.d.mts +3 -2
  391. package/dist/lib/esm/obsidian/components/all-windows-event-component.mjs +3 -3
  392. package/dist/lib/esm/obsidian/components/async-error-handler-component.d.mts +3 -6
  393. package/dist/lib/esm/obsidian/components/async-error-handler-component.mjs +3 -7
  394. package/dist/lib/esm/obsidian/components/async-events-component.d.mts +2 -18
  395. package/dist/lib/esm/obsidian/components/async-events-component.mjs +2 -19
  396. package/dist/lib/esm/obsidian/components/component-ex.d.mts +56 -0
  397. package/dist/lib/esm/obsidian/components/component-ex.mjs +130 -0
  398. package/dist/lib/esm/obsidian/components/console-debug-component.d.mts +3 -6
  399. package/dist/lib/esm/obsidian/components/console-debug-component.mjs +3 -7
  400. package/dist/lib/esm/obsidian/components/disposable-component.d.mts +1 -10
  401. package/dist/lib/esm/obsidian/components/disposable-component.mjs +1 -8
  402. package/dist/lib/esm/obsidian/components/i18n-component.d.mts +4 -7
  403. package/dist/lib/esm/obsidian/components/i18n-component.mjs +4 -8
  404. package/dist/lib/esm/obsidian/components/index.d.mts +3 -1
  405. package/dist/lib/esm/obsidian/components/index.mjs +6 -4
  406. package/dist/lib/esm/obsidian/components/layout-ready-component.d.mts +3 -2
  407. package/dist/lib/esm/obsidian/components/layout-ready-component.mjs +3 -3
  408. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.d.mts +3 -3
  409. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.mjs +3 -3
  410. package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +4 -3
  411. package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +4 -4
  412. package/dist/lib/esm/obsidian/components/plugin-context-component.d.mts +3 -6
  413. package/dist/lib/esm/obsidian/components/plugin-context-component.mjs +3 -7
  414. package/dist/lib/esm/obsidian/components/plugin-notice-component.d.mts +3 -6
  415. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +3 -7
  416. package/dist/lib/esm/obsidian/components/plugin-settings-component.d.mts +54 -18
  417. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +53 -12
  418. package/dist/lib/esm/obsidian/components/plugin-settings-tab-component.d.mts +3 -2
  419. package/dist/lib/esm/obsidian/components/plugin-settings-tab-component.mjs +3 -3
  420. package/dist/lib/esm/obsidian/components/registry-component.d.mts +37 -0
  421. package/dist/lib/esm/obsidian/components/registry-component.mjs +72 -0
  422. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.d.mts +1 -0
  423. package/dist/lib/esm/obsidian/constructors/index.d.mts +1 -0
  424. package/dist/lib/esm/obsidian/data-handler.d.mts +1 -0
  425. package/dist/lib/esm/obsidian/dataview-link.d.mts +1 -0
  426. package/dist/lib/esm/obsidian/dataview.d.mts +1 -0
  427. package/dist/lib/esm/obsidian/editor.d.mts +1 -0
  428. package/dist/lib/esm/obsidian/file-change.d.mts +1 -0
  429. package/dist/lib/esm/obsidian/file-manager.d.mts +1 -0
  430. package/dist/lib/esm/obsidian/file-system.d.mts +1 -0
  431. package/dist/lib/esm/obsidian/frontmatter-link-cache-with-offsets.d.mts +1 -0
  432. package/dist/lib/esm/obsidian/frontmatter.d.mts +1 -0
  433. package/dist/lib/esm/obsidian/i18n/custom-type-options.d.mts +1 -0
  434. package/dist/lib/esm/obsidian/i18n/default-translations.d.mts +1 -0
  435. package/dist/lib/esm/obsidian/i18n/i18n.d.mts +1 -0
  436. package/dist/lib/esm/obsidian/i18n/index.d.mts +1 -0
  437. package/dist/lib/esm/obsidian/i18n/locales/en.d.mts +1 -0
  438. package/dist/lib/esm/obsidian/i18n/locales/index.d.mts +1 -0
  439. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +1 -0
  440. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  441. package/dist/lib/esm/obsidian/is-in-obsidian.d.mts +1 -0
  442. package/dist/lib/esm/obsidian/link.d.mts +1 -0
  443. package/dist/lib/esm/obsidian/logger.d.mts +1 -0
  444. package/dist/lib/esm/obsidian/loop.d.mts +1 -0
  445. package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.d.mts +1 -0
  446. package/dist/lib/esm/obsidian/markdown-code-block-processor.d.mts +1 -0
  447. package/dist/lib/esm/obsidian/markdown-view.d.mts +1 -0
  448. package/dist/lib/esm/obsidian/markdown.d.mts +1 -0
  449. package/dist/lib/esm/obsidian/markdown.mjs +2 -3
  450. package/dist/lib/esm/obsidian/menu-event-registrar.d.mts +1 -1
  451. package/dist/lib/esm/obsidian/metadata-cache.d.mts +1 -0
  452. package/dist/lib/esm/obsidian/modals/alert.d.mts +1 -0
  453. package/dist/lib/esm/obsidian/modals/confirm.d.mts +1 -0
  454. package/dist/lib/esm/obsidian/modals/index.d.mts +1 -0
  455. package/dist/lib/esm/obsidian/modals/modal.d.mts +1 -0
  456. package/dist/lib/esm/obsidian/modals/prompt.d.mts +1 -0
  457. package/dist/lib/esm/obsidian/modals/select-item.d.mts +1 -0
  458. package/dist/lib/esm/obsidian/obsidian-protocol-handler-registrar.d.mts +1 -0
  459. package/dist/lib/esm/obsidian/obsidian-settings.d.mts +1 -0
  460. package/dist/lib/esm/obsidian/path-settings.d.mts +1 -0
  461. package/dist/lib/esm/obsidian/pdf.d.mts +1 -0
  462. package/dist/lib/esm/obsidian/plugin/index.d.mts +1 -0
  463. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +1 -0
  464. package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +1 -0
  465. package/dist/lib/esm/obsidian/plugin/plugin-id.d.mts +1 -0
  466. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.d.mts +8 -3
  467. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +22 -21
  468. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +36 -36
  469. package/dist/lib/esm/obsidian/plugin/plugin.mjs +35 -77
  470. package/dist/lib/esm/obsidian/queue.d.mts +1 -0
  471. package/dist/lib/esm/obsidian/react/app-context.d.mts +1 -0
  472. package/dist/lib/esm/obsidian/react/index.d.mts +1 -0
  473. package/dist/lib/esm/obsidian/reference.d.mts +1 -0
  474. package/dist/lib/esm/obsidian/rename-delete-handler.d.mts +1 -0
  475. package/dist/lib/esm/obsidian/rename-delete-handler.mjs +1 -2
  476. package/dist/lib/esm/obsidian/resource-url.d.mts +1 -0
  477. package/dist/lib/esm/obsidian/setting-components/checkbox-component.d.mts +1 -0
  478. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.d.mts +1 -0
  479. package/dist/lib/esm/obsidian/setting-components/date-component.d.mts +1 -0
  480. package/dist/lib/esm/obsidian/setting-components/date-time-component.d.mts +1 -0
  481. package/dist/lib/esm/obsidian/setting-components/email-component.d.mts +1 -0
  482. package/dist/lib/esm/obsidian/setting-components/file-component.d.mts +1 -0
  483. package/dist/lib/esm/obsidian/setting-components/index.d.mts +1 -0
  484. package/dist/lib/esm/obsidian/setting-components/month-component.d.mts +1 -0
  485. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.d.mts +1 -0
  486. package/dist/lib/esm/obsidian/setting-components/multiple-email-component.d.mts +1 -0
  487. package/dist/lib/esm/obsidian/setting-components/multiple-file-component.d.mts +1 -0
  488. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.d.mts +1 -0
  489. package/dist/lib/esm/obsidian/setting-components/number-component.d.mts +1 -0
  490. package/dist/lib/esm/obsidian/setting-components/password-component.d.mts +1 -0
  491. package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.d.mts +1 -0
  492. package/dist/lib/esm/obsidian/setting-components/telephone-component.d.mts +1 -0
  493. package/dist/lib/esm/obsidian/setting-components/text-based-component.d.mts +1 -0
  494. package/dist/lib/esm/obsidian/setting-components/time-component.d.mts +1 -0
  495. package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.d.mts +1 -0
  496. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.d.mts +3 -0
  497. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.mjs +3 -1
  498. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.d.mts +1 -0
  499. package/dist/lib/esm/obsidian/setting-components/typed-range-text-component.d.mts +1 -0
  500. package/dist/lib/esm/obsidian/setting-components/typed-text-component.d.mts +1 -0
  501. package/dist/lib/esm/obsidian/setting-components/url-component.d.mts +1 -0
  502. package/dist/lib/esm/obsidian/setting-components/validator-component.d.mts +1 -0
  503. package/dist/lib/esm/obsidian/setting-components/value-component-with-change-tracking.d.mts +1 -0
  504. package/dist/lib/esm/obsidian/setting-components/week-component.d.mts +1 -0
  505. package/dist/lib/esm/obsidian/setting-ex.d.mts +3 -0
  506. package/dist/lib/esm/obsidian/setting-ex.mjs +3 -1
  507. package/dist/lib/esm/obsidian/setting-group-ex.d.mts +1 -0
  508. package/dist/lib/esm/obsidian/validation.d.mts +1 -0
  509. package/dist/lib/esm/obsidian/vault-delete.d.mts +1 -0
  510. package/dist/lib/esm/obsidian/vault.d.mts +1 -0
  511. package/dist/lib/esm/obsidian/workspace.d.mts +1 -0
  512. package/dist/lib/esm/path.d.mts +1 -0
  513. package/dist/lib/esm/reg-exp.d.mts +1 -0
  514. package/dist/lib/esm/script-utils/build.d.mts +1 -0
  515. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.d.mts +1 -0
  516. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.mts +1 -0
  517. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.mts +1 -0
  518. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.d.mts +1 -0
  519. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.d.mts +1 -0
  520. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.d.mts +1 -0
  521. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/index.d.mts +1 -0
  522. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +1 -0
  523. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.d.mts +1 -0
  524. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.d.mts +1 -0
  525. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +1 -0
  526. package/dist/lib/esm/script-utils/bundlers/esbuild.d.mts +1 -0
  527. package/dist/lib/esm/script-utils/bundlers/index.d.mts +1 -0
  528. package/dist/lib/esm/script-utils/cli-utils.d.mts +1 -0
  529. package/dist/lib/esm/script-utils/code-generator.d.mts +1 -0
  530. package/dist/lib/esm/script-utils/commitlint-config.d.mts +1 -0
  531. package/dist/lib/esm/script-utils/exec.d.mts +1 -0
  532. package/dist/lib/esm/script-utils/formatters/dprint.d.mts +1 -0
  533. package/dist/lib/esm/script-utils/formatters/index.d.mts +1 -0
  534. package/dist/lib/esm/script-utils/fs.d.mts +1 -0
  535. package/dist/lib/esm/script-utils/index.d.mts +1 -0
  536. package/dist/lib/esm/script-utils/json.d.mts +1 -0
  537. package/dist/lib/esm/script-utils/linters/cspell.d.mts +1 -0
  538. package/dist/lib/esm/script-utils/linters/eslint-config.d.mts +1 -0
  539. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +2 -1
  540. package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +2 -0
  541. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +3 -1
  542. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +1 -0
  543. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +1 -0
  544. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.d.mts +1 -0
  545. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +3 -1
  546. package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.d.mts +1 -0
  547. package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.d.mts +1 -0
  548. package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-members.d.mts +1 -0
  549. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.d.mts +1 -0
  550. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +2 -2
  551. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.d.mts +5 -0
  552. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.mjs +112 -0
  553. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.d.mts +1 -0
  554. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.d.mts +1 -0
  555. package/dist/lib/esm/script-utils/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.mts +1 -0
  556. package/dist/lib/esm/script-utils/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.mts +1 -0
  557. package/dist/lib/esm/script-utils/linters/eslint.d.mts +1 -0
  558. package/dist/lib/esm/script-utils/linters/index.d.mts +1 -0
  559. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.d.mts +1 -0
  560. package/dist/lib/esm/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.mts +1 -0
  561. package/dist/lib/esm/script-utils/linters/markdownlint.d.mts +1 -0
  562. package/dist/lib/esm/script-utils/nano-staged-config.d.mts +1 -0
  563. package/dist/lib/esm/script-utils/npm-publish.d.mts +1 -0
  564. package/dist/lib/esm/script-utils/npm-run.d.mts +1 -0
  565. package/dist/lib/esm/script-utils/npm.d.mts +1 -0
  566. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +1 -0
  567. package/dist/lib/esm/script-utils/root.d.mts +1 -0
  568. package/dist/lib/esm/script-utils/test-runners/index.d.mts +1 -0
  569. package/dist/lib/esm/script-utils/test-runners/vitest.d.mts +1 -0
  570. package/dist/lib/esm/script-utils/version.d.mts +1 -0
  571. package/dist/lib/esm/strict-proxy.d.mts +1 -0
  572. package/dist/lib/esm/string.d.mts +1 -0
  573. package/dist/lib/esm/transformers/date-transformer.d.mts +1 -0
  574. package/dist/lib/esm/transformers/duration-transformer.d.mts +1 -0
  575. package/dist/lib/esm/transformers/group-transformer.d.mts +1 -0
  576. package/dist/lib/esm/transformers/index.d.mts +1 -0
  577. package/dist/lib/esm/transformers/map-transformer.d.mts +1 -0
  578. package/dist/lib/esm/transformers/set-transformer.d.mts +1 -0
  579. package/dist/lib/esm/transformers/skip-private-property-transformer.d.mts +1 -0
  580. package/dist/lib/esm/transformers/transformer.d.mts +1 -0
  581. package/dist/lib/esm/transformers/two-way-map-transformer.d.mts +1 -0
  582. package/dist/lib/esm/transformers/typed-transformer.d.mts +1 -0
  583. package/dist/lib/esm/two-way-map.d.mts +1 -0
  584. package/dist/lib/esm/type-guards.d.mts +1 -0
  585. package/dist/lib/esm/type.d.mts +1 -0
  586. package/dist/lib/esm/url.d.mts +1 -0
  587. package/dist/lib/esm/value-provider.d.mts +1 -0
  588. package/obsidian/Components/component-ex/package.json +6 -0
  589. package/obsidian/Components/registry-component/package.json +6 -0
  590. package/package.json +25 -23
  591. package/script-utils/linters/eslint-rules/require-method-template/package.json +6 -0
  592. package/dist/lib/cjs/obsidian/components/async-component.cjs +0 -183
  593. package/dist/lib/cjs/obsidian/components/async-component.d.cts +0 -43
  594. package/dist/lib/esm/obsidian/components/async-component.d.mts +0 -43
  595. package/dist/lib/esm/obsidian/components/async-component.mjs +0 -73
  596. package/obsidian/Components/async-component/package.json +0 -6
@@ -131,88 +131,58 @@ __export(plugin_exports, {
131
131
  });
132
132
  module.exports = __toCommonJS(plugin_exports);
133
133
  var import_obsidian = require('obsidian');
134
+ var import_async_events = require('../../async-events.cjs');
134
135
  var import_error = require('../../error.cjs');
135
- var import_type_guards = require('../../type-guards.cjs');
136
136
  var import_abort_signal_component = require('../components/abort-signal-component.cjs');
137
- var import_async_component = require('../components/async-component.cjs');
138
137
  var import_async_error_handler_component = require('../components/async-error-handler-component.cjs');
139
138
  var import_console_debug_component = require('../components/console-debug-component.cjs');
140
139
  var import_i18n_component = require('../components/i18n-component.cjs');
141
140
  var import_plugin_context_component = require('../components/plugin-context-component.cjs');
142
141
  var import_plugin_notice_component = require('../components/plugin-notice-component.cjs');
143
- var import_plugin_settings_component = require('../components/plugin-settings-component.cjs');
144
- class PluginBase extends import_obsidian.Plugin {
142
+ class PluginBase extends (0, import_async_events.mixinAsyncEvents)()(import_obsidian.Plugin) {
145
143
  /**
146
- * The abort signal component. Aborted when the plugin is unloaded.
147
- *
148
- * @returns the abort signal component.
144
+ * Abort signal component.
149
145
  */
150
- get abortSignalComponent() {
151
- return (0, import_type_guards.ensureNonNullable)(this.getRegisteredComponent(import_abort_signal_component.AbortSignalComponent));
152
- }
146
+ abortSignalComponent;
153
147
  /**
154
- * The console debug component. Provides namespaced debug logging.
155
- *
156
- * @returns The console debug component.
148
+ * Async error handler component.
157
149
  */
158
- get consoleDebugComponent() {
159
- return (0, import_type_guards.ensureNonNullable)(this.getRegisteredComponent(import_console_debug_component.ConsoleDebugComponent));
160
- }
150
+ asyncErrorHandlerComponent;
161
151
  /**
162
- * The notice component. Displays notices to the user.
163
- *
164
- * @returns The notice component.
152
+ * Console debug component.
165
153
  */
166
- get noticeComponent() {
167
- return (0, import_type_guards.ensureNonNullable)(this.getRegisteredComponent(import_plugin_notice_component.PluginNoticeComponent));
168
- }
169
- singletonComponents = /* @__PURE__ */ new Map();
154
+ consoleDebugComponent;
170
155
  /**
171
- * Creates a new PluginBase.
172
- *
173
- * @param app - The Obsidian app instance.
174
- * @param manifest - The plugin manifest.
156
+ * I18n component.
175
157
  */
176
- constructor(app, manifest) {
177
- super(app, manifest);
178
- this.addChild(new import_plugin_context_component.PluginContextComponent({ app, pluginId: manifest.id }));
179
- this.addChild(new import_i18n_component.I18nComponent());
180
- this.addChild(new import_plugin_notice_component.PluginNoticeComponent(manifest.name));
181
- this.addChild(new import_async_error_handler_component.AsyncErrorHandlerComponent(this.noticeComponent));
182
- this.addChild(new import_abort_signal_component.AbortSignalComponent(manifest.id));
183
- this.addChild(new import_console_debug_component.ConsoleDebugComponent(manifest.id));
184
- }
158
+ i18nComponent;
185
159
  /**
186
- * Adds a component to the plugin.
187
- *
188
- * If the component's class defines a static `COMPONENT_KEY` symbol, it is treated as a singleton —
189
- * adding another component with the same key replaces the previous one.
190
- * Components without a `COMPONENT_KEY` are multi-instance and simply added.
191
- *
192
- * @typeParam T - The component type.
193
- * @param component - The component to add.
194
- * @returns The added component.
160
+ * Plugin context component (plugin ID, debug controller, library styles).
195
161
  */
196
- addChild(component) {
197
- if (this._loaded) {
198
- return super.addChild(component);
199
- }
200
- const singletonKey = component.constructor.COMPONENT_KEY;
201
- if (singletonKey) {
202
- const oldComponent = this.singletonComponents.get(singletonKey);
203
- if (oldComponent) {
204
- this.removeChild(oldComponent);
205
- }
206
- this.singletonComponents.set(singletonKey, component);
207
- }
208
- return super.addChild(component);
209
- }
162
+ pluginContextComponent;
210
163
  /**
211
- * Loads the plugin and its components.
164
+ * Plugin notice component.
165
+ */
166
+ pluginNoticeComponent;
167
+ /**
168
+ * Creates a new plugin.
169
+ *
170
+ * @param app - The Obsidian App instance.
171
+ * @param manifest - The plugin manifest.
212
172
  */
213
- // eslint-disable-next-line @typescript-eslint/no-misused-promises -- Obsidian's load() handles async returns at runtime. Intentionally replaces Component.load() with children-first async loading.
214
- async load() {
215
- await (0, import_async_component.loadChildrenFirstAsync)(this);
173
+ constructor(app, manifest) {
174
+ super(app, manifest);
175
+ this.pluginContextComponent = this.addChild(
176
+ new import_plugin_context_component.PluginContextComponent({
177
+ app: this.app,
178
+ pluginId: this.manifest.id
179
+ })
180
+ );
181
+ this.i18nComponent = this.addChild(new import_i18n_component.I18nComponent());
182
+ this.pluginNoticeComponent = this.addChild(new import_plugin_notice_component.PluginNoticeComponent(this.manifest.name));
183
+ this.asyncErrorHandlerComponent = this.addChild(new import_async_error_handler_component.AsyncErrorHandlerComponent(this.pluginNoticeComponent));
184
+ this.abortSignalComponent = this.addChild(new import_abort_signal_component.AbortSignalComponent(this.manifest.id));
185
+ this.consoleDebugComponent = this.addChild(new import_console_debug_component.ConsoleDebugComponent(this.manifest.id));
216
186
  }
217
187
  /**
218
188
  * Called when the external settings change.
@@ -221,18 +191,7 @@ class PluginBase extends import_obsidian.Plugin {
221
191
  */
222
192
  async onExternalSettingsChange() {
223
193
  await super.onExternalSettingsChange?.();
224
- await this.getRegisteredComponent(import_plugin_settings_component.PluginSettingsComponentBase)?.onExternalSettingsChange();
225
- }
226
- getRegisteredComponent(componentClassWithKey) {
227
- const key = componentClassWithKey.COMPONENT_KEY;
228
- const registeredComponent = this.singletonComponents.get(key);
229
- if (!registeredComponent) {
230
- return null;
231
- }
232
- if (!(registeredComponent instanceof componentClassWithKey)) {
233
- throw new Error(`Incompatible ${String(key)} is registered`);
234
- }
235
- return registeredComponent;
194
+ await this.triggerAsync("externalSettingsChange");
236
195
  }
237
196
  }
238
197
  async function reloadPlugin(plugin) {
@@ -252,4 +211,4 @@ async function showErrorAndDisablePlugin(plugin, message) {
252
211
  reloadPlugin,
253
212
  showErrorAndDisablePlugin
254
213
  });
255
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICogU3ViY2xhc3NlcyBhZGQgdGhlaXIgb3duIGNvbXBvbmVudHMgdmlhIHtAbGluayBQbHVnaW5CYXNlLmFkZENoaWxkfSBpbiB0aGVpciBjb25zdHJ1Y3Rvci5cbiAqIEFueSB1bml2ZXJzYWwgY29tcG9uZW50IGNhbiBiZSByZXBsYWNlZCBieSBjYWxsaW5nIHtAbGluayBQbHVnaW5CYXNlLmFkZENoaWxkfSB3aXRoIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBzYW1lIGNsYXNzXG4gKiAoc2luZ2xldG9uIHJlcGxhY2VtZW50IGlzIGF1dG9tYXRpYyBmb3IgY29tcG9uZW50cyB3aG9zZSBjbGFzcyBkZWZpbmVzIGEgc3RhdGljIGBDT01QT05FTlRfS0VZYCkuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENvbnN0cnVjdG9yLFxuICBQbHVnaW5NYW5pZmVzdFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgTm90aWNlLFxuICBQbHVnaW4gYXMgT2JzaWRpYW5QbHVnaW5cbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWJvcnQtc2lnbmFsLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBsb2FkQ2hpbGRyZW5GaXJzdEFzeW5jIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hc3luYy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FzeW5jLWVycm9yLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgSTE4bkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvaTE4bi1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbk5vdGljZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcblxuaW50ZXJmYWNlIENvbXBvbmVudENsYXNzV2l0aEtleSB7XG4gIENPTVBPTkVOVF9LRVk6IHN5bWJvbDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYSBjb21wb25lbnQtYmFzZWQgYXJjaGl0ZWN0dXJlLlxuICpcbiAqIFJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyBhdXRvbWF0aWNhbGx5LiBTdWJjbGFzc2VzIGFkZCBvciByZXBsYWNlIGNvbXBvbmVudHNcbiAqIHZpYSB7QGxpbmsgUGx1Z2luQmFzZS5hZGRDaGlsZH0gaW4gdGhlaXIgY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5CYXNlIGV4dGVuZHMgT2JzaWRpYW5QbHVnaW4ge1xuICAvKipcbiAgICogVGhlIGFib3J0IHNpZ25hbCBjb21wb25lbnQuIEFib3J0ZWQgd2hlbiB0aGUgcGx1Z2luIGlzIHVubG9hZGVkLlxuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgYWJvcnQgc2lnbmFsIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgYWJvcnRTaWduYWxDb21wb25lbnQoKTogQWJvcnRTaWduYWxDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmdldFJlZ2lzdGVyZWRDb21wb25lbnQoQWJvcnRTaWduYWxDb21wb25lbnQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuIFByb3ZpZGVzIG5hbWVzcGFjZWQgZGVidWcgbG9nZ2luZy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGNvbnNvbGUgZGVidWcgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBjb25zb2xlRGVidWdDb21wb25lbnQoKTogQ29uc29sZURlYnVnQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5nZXRSZWdpc3RlcmVkQ29tcG9uZW50KENvbnNvbGVEZWJ1Z0NvbXBvbmVudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBub3RpY2UgY29tcG9uZW50LiBEaXNwbGF5cyBub3RpY2VzIHRvIHRoZSB1c2VyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbm90aWNlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgbm90aWNlQ29tcG9uZW50KCk6IFBsdWdpbk5vdGljZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuZ2V0UmVnaXN0ZXJlZENvbXBvbmVudChQbHVnaW5Ob3RpY2VDb21wb25lbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2luZ2xldG9uQ29tcG9uZW50cyA9IG5ldyBNYXA8c3ltYm9sLCBDb21wb25lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgUGx1Z2luQmFzZS5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIFRoZSBwbHVnaW4gbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoYXBwOiBBcHAsIG1hbmlmZXN0OiBQbHVnaW5NYW5pZmVzdCkge1xuICAgIHN1cGVyKGFwcCwgbWFuaWZlc3QpO1xuXG4gICAgdGhpcy5hZGRDaGlsZChuZXcgUGx1Z2luQ29udGV4dENvbXBvbmVudCh7IGFwcCwgcGx1Z2luSWQ6IG1hbmlmZXN0LmlkIH0pKTtcbiAgICB0aGlzLmFkZENoaWxkKG5ldyBJMThuQ29tcG9uZW50KCkpO1xuICAgIHRoaXMuYWRkQ2hpbGQobmV3IFBsdWdpbk5vdGljZUNvbXBvbmVudChtYW5pZmVzdC5uYW1lKSk7XG4gICAgdGhpcy5hZGRDaGlsZChuZXcgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQodGhpcy5ub3RpY2VDb21wb25lbnQpKTtcbiAgICB0aGlzLmFkZENoaWxkKG5ldyBBYm9ydFNpZ25hbENvbXBvbmVudChtYW5pZmVzdC5pZCkpO1xuICAgIHRoaXMuYWRkQ2hpbGQobmV3IENvbnNvbGVEZWJ1Z0NvbXBvbmVudChtYW5pZmVzdC5pZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21wb25lbnQgdG8gdGhlIHBsdWdpbi5cbiAgICpcbiAgICogSWYgdGhlIGNvbXBvbmVudCdzIGNsYXNzIGRlZmluZXMgYSBzdGF0aWMgYENPTVBPTkVOVF9LRVlgIHN5bWJvbCwgaXQgaXMgdHJlYXRlZCBhcyBhIHNpbmdsZXRvbiBcdTIwMTRcbiAgICogYWRkaW5nIGFub3RoZXIgY29tcG9uZW50IHdpdGggdGhlIHNhbWUga2V5IHJlcGxhY2VzIHRoZSBwcmV2aW91cyBvbmUuXG4gICAqIENvbXBvbmVudHMgd2l0aG91dCBhIGBDT01QT05FTlRfS0VZYCBhcmUgbXVsdGktaW5zdGFuY2UgYW5kIHNpbXBseSBhZGRlZC5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVGhlIGNvbXBvbmVudCB0eXBlLlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEByZXR1cm5zIFRoZSBhZGRlZCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYWRkQ2hpbGQ8VCBleHRlbmRzIENvbXBvbmVudD4oY29tcG9uZW50OiBUKTogVCB7XG4gICAgaWYgKHRoaXMuX2xvYWRlZCkge1xuICAgICAgcmV0dXJuIHN1cGVyLmFkZENoaWxkKGNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2luZ2xldG9uS2V5ID0gKGNvbXBvbmVudC5jb25zdHJ1Y3RvciBhcyBQYXJ0aWFsPENvbXBvbmVudENsYXNzV2l0aEtleT4pLkNPTVBPTkVOVF9LRVk7XG5cbiAgICBpZiAoc2luZ2xldG9uS2V5KSB7XG4gICAgICBjb25zdCBvbGRDb21wb25lbnQgPSB0aGlzLnNpbmdsZXRvbkNvbXBvbmVudHMuZ2V0KHNpbmdsZXRvbktleSk7XG4gICAgICBpZiAob2xkQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQob2xkQ29tcG9uZW50KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2luZ2xldG9uQ29tcG9uZW50cy5zZXQoc2luZ2xldG9uS2V5LCBjb21wb25lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5hZGRDaGlsZChjb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBwbHVnaW4gYW5kIGl0cyBjb21wb25lbnRzLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXByb21pc2VzIC0tIE9ic2lkaWFuJ3MgbG9hZCgpIGhhbmRsZXMgYXN5bmMgcmV0dXJucyBhdCBydW50aW1lLiBJbnRlbnRpb25hbGx5IHJlcGxhY2VzIENvbXBvbmVudC5sb2FkKCkgd2l0aCBjaGlsZHJlbi1maXJzdCBhc3luYyBsb2FkaW5nLlxuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBsb2FkQ2hpbGRyZW5GaXJzdEFzeW5jKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBleHRlcm5hbCBzZXR0aW5ncyBjaGFuZ2UuXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIGlmIG5lZWRlZC4gTWFrZSBzdXJlIHRvIGNhbGwgYGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpYCBmaXJzdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlPy4oKTtcbiAgICBhd2FpdCB0aGlzLmdldFJlZ2lzdGVyZWRDb21wb25lbnQoUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlKT8ub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldFJlZ2lzdGVyZWRDb21wb25lbnQ8VENvbXBvbmVudD4oY29tcG9uZW50Q2xhc3NXaXRoS2V5OiBDb21wb25lbnRDbGFzc1dpdGhLZXkgJiBDb25zdHJ1Y3RvcjxUQ29tcG9uZW50Pik6IG51bGwgfCBUQ29tcG9uZW50IHtcbiAgICBjb25zdCBrZXkgPSBjb21wb25lbnRDbGFzc1dpdGhLZXkuQ09NUE9ORU5UX0tFWTtcbiAgICBjb25zdCByZWdpc3RlcmVkQ29tcG9uZW50ID0gdGhpcy5zaW5nbGV0b25Db21wb25lbnRzLmdldChrZXkpO1xuICAgIGlmICghcmVnaXN0ZXJlZENvbXBvbmVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEocmVnaXN0ZXJlZENvbXBvbmVudCBpbnN0YW5jZW9mIGNvbXBvbmVudENsYXNzV2l0aEtleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW5jb21wYXRpYmxlICR7U3RyaW5nKGtleSl9IGlzIHJlZ2lzdGVyZWRgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVnaXN0ZXJlZENvbXBvbmVudDtcbiAgfVxufVxuXG4vKipcbiAqIFJlbG9hZHMgdGhlIHNwZWNpZmllZCBwbHVnaW4gYnkgZGlzYWJsaW5nIGFuZCB0aGVuIHJlLWVuYWJsaW5nIGl0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlbG9hZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkUGx1Z2luKHBsdWdpbjogT2JzaWRpYW5QbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2lucyA9IHBsdWdpbi5hcHAucGx1Z2lucztcbiAgY29uc3QgcGx1Z2luSWQgPSBwbHVnaW4ubWFuaWZlc3QuaWQ7XG4gIGF3YWl0IHBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW5JZCk7XG4gIGF3YWl0IHBsdWdpbnMuZW5hYmxlUGx1Z2luKHBsdWdpbklkKTtcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhbiBlcnJvciBtZXNzYWdlIGFzIGEgbm90aWNlLCBsb2dzIGl0IHRvIHRoZSBjb25zb2xlLCBhbmQgZGlzYWJsZXMgdGhlIHNwZWNpZmllZCBwbHVnaW4uXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gZGlzYWJsZS5cbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSBhbmQgbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93RXJyb3JBbmREaXNhYmxlUGx1Z2luKHBsdWdpbjogT2JzaWRpYW5QbHVnaW4sIG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBuZXcgTm90aWNlKG1lc3NhZ2UpO1xuICBwcmludEVycm9yKG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gIGF3YWl0IHBsdWdpbi5hcHAucGx1Z2lucy5kaXNhYmxlUGx1Z2luKHBsdWdpbi5tYW5pZmVzdC5pZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBaUJBLHNCQUlPO0FBRVAsbUJBQTJCO0FBQzNCLHlCQUFrQztBQUNsQyxvQ0FBcUM7QUFDckMsNkJBQXVDO0FBQ3ZDLDJDQUEyQztBQUMzQyxxQ0FBc0M7QUFDdEMsNEJBQThCO0FBQzlCLHNDQUF1QztBQUN2QyxxQ0FBc0M7QUFDdEMsdUNBQTRDO0FBWXJDLE1BQWUsbUJBQW1CLGdCQUFBQSxPQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTXRELElBQWMsdUJBQTZDO0FBQ3pELGVBQU8sc0NBQWtCLEtBQUssdUJBQXVCLGtEQUFvQixDQUFDO0FBQUEsRUFDNUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLHdCQUErQztBQUMzRCxlQUFPLHNDQUFrQixLQUFLLHVCQUF1QixvREFBcUIsQ0FBQztBQUFBLEVBQzdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxrQkFBeUM7QUFDckQsZUFBTyxzQ0FBa0IsS0FBSyx1QkFBdUIsb0RBQXFCLENBQUM7QUFBQSxFQUM3RTtBQUFBLEVBRWlCLHNCQUFzQixvQkFBSSxJQUF1QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUTNELFlBQVksS0FBVSxVQUEwQjtBQUNyRCxVQUFNLEtBQUssUUFBUTtBQUVuQixTQUFLLFNBQVMsSUFBSSx1REFBdUIsRUFBRSxLQUFLLFVBQVUsU0FBUyxHQUFHLENBQUMsQ0FBQztBQUN4RSxTQUFLLFNBQVMsSUFBSSxvQ0FBYyxDQUFDO0FBQ2pDLFNBQUssU0FBUyxJQUFJLHFEQUFzQixTQUFTLElBQUksQ0FBQztBQUN0RCxTQUFLLFNBQVMsSUFBSSxnRUFBMkIsS0FBSyxlQUFlLENBQUM7QUFDbEUsU0FBSyxTQUFTLElBQUksbURBQXFCLFNBQVMsRUFBRSxDQUFDO0FBQ25ELFNBQUssU0FBUyxJQUFJLHFEQUFzQixTQUFTLEVBQUUsQ0FBQztBQUFBLEVBQ3REO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBYWdCLFNBQThCLFdBQWlCO0FBQzdELFFBQUksS0FBSyxTQUFTO0FBQ2hCLGFBQU8sTUFBTSxTQUFTLFNBQVM7QUFBQSxJQUNqQztBQUVBLFVBQU0sZUFBZ0IsVUFBVSxZQUErQztBQUUvRSxRQUFJLGNBQWM7QUFDaEIsWUFBTSxlQUFlLEtBQUssb0JBQW9CLElBQUksWUFBWTtBQUM5RCxVQUFJLGNBQWM7QUFDaEIsYUFBSyxZQUFZLFlBQVk7QUFBQSxNQUMvQjtBQUNBLFdBQUssb0JBQW9CLElBQUksY0FBYyxTQUFTO0FBQUEsSUFDdEQ7QUFFQSxXQUFPLE1BQU0sU0FBUyxTQUFTO0FBQUEsRUFDakM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsTUFBc0IsT0FBc0I7QUFDMUMsY0FBTSwrQ0FBdUIsSUFBSTtBQUFBLEVBQ25DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBc0IsMkJBQTBDO0FBQzlELFVBQU0sTUFBTSwyQkFBMkI7QUFDdkMsVUFBTSxLQUFLLHVCQUF1Qiw0REFBMkIsR0FBRyx5QkFBeUI7QUFBQSxFQUMzRjtBQUFBLEVBRVEsdUJBQW1DLHVCQUEyRjtBQUNwSSxVQUFNLE1BQU0sc0JBQXNCO0FBQ2xDLFVBQU0sc0JBQXNCLEtBQUssb0JBQW9CLElBQUksR0FBRztBQUM1RCxRQUFJLENBQUMscUJBQXFCO0FBQ3hCLGFBQU87QUFBQSxJQUNUO0FBRUEsUUFBSSxFQUFFLCtCQUErQix3QkFBd0I7QUFDM0QsWUFBTSxJQUFJLE1BQU0sZ0JBQWdCLE9BQU8sR0FBRyxDQUFDLGdCQUFnQjtBQUFBLElBQzdEO0FBRUEsV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQVFBLGVBQXNCLGFBQWEsUUFBdUM7QUFDeEUsUUFBTSxVQUFVLE9BQU8sSUFBSTtBQUMzQixRQUFNLFdBQVcsT0FBTyxTQUFTO0FBQ2pDLFFBQU0sUUFBUSxjQUFjLFFBQVE7QUFDcEMsUUFBTSxRQUFRLGFBQWEsUUFBUTtBQUNyQztBQVNBLGVBQXNCLDBCQUEwQixRQUF3QixTQUFnQztBQUN0RyxNQUFJLHVCQUFPLE9BQU87QUFDbEIsK0JBQVcsSUFBSSxNQUFNLE9BQU8sQ0FBQztBQUM3QixRQUFNLE9BQU8sSUFBSSxRQUFRLGNBQWMsT0FBTyxTQUFTLEVBQUU7QUFDM0Q7IiwKICAibmFtZXMiOiBbIk9ic2lkaWFuUGx1Z2luIl0KfQo=
214
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBQbHVnaW5NYW5pZmVzdFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luIGFzIE9ic2lkaWFuUGx1Z2luXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBBc3luY0V2ZW50U291cmNlIH0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcblxuaW1wb3J0IHsgbWl4aW5Bc3luY0V2ZW50cyB9IGZyb20gJy4uLy4uL2FzeW5jLWV2ZW50cy50cyc7XG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgQWJvcnRTaWduYWxDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2Fib3J0LXNpZ25hbC1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FzeW5jLWVycm9yLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgSTE4bkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvaTE4bi1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbk5vdGljZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuXG4vKipcbiAqIEV2ZW50IHNvdXJjZSBmb3IgcGx1Z2luIGV2ZW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgUGx1Z2luRXZlbnRTb3VyY2UgPSBBc3luY0V2ZW50U291cmNlPFBsdWdpbkV2ZW50TWFwPjtcblxuaW50ZXJmYWNlIFBsdWdpbkV2ZW50TWFwIHtcbiAgLyoqIEZpcmVkIHdoZW4gcGx1Z2luIHNldHRpbmdzIGFyZSBjaGFuZ2VkIGV4dGVybmFsbHkgKGUuZy4gc3luYywgbWFudWFsIGZpbGUgZWRpdCkuICovXG4gIGV4dGVybmFsU2V0dGluZ3NDaGFuZ2U6IFtdO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIE9ic2lkaWFuIHBsdWdpbnMgd2l0aCBhIGNvbXBvbmVudC1iYXNlZCBhcmNoaXRlY3R1cmUuXG4gKlxuICogUmVnaXN0ZXJzIHVuaXZlcnNhbCBjb21wb25lbnRzIGF1dG9tYXRpY2FsbHkuIFN1YmNsYXNzZXMgYWRkIG9yIHJlcGxhY2UgY29tcG9uZW50c1xuICogdmlhIHtAbGluayBQbHVnaW5CYXNlLmFkZENoaWxkfSBpbiB0aGVpciBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpbkJhc2UgZXh0ZW5kcyBtaXhpbkFzeW5jRXZlbnRzPFBsdWdpbkV2ZW50TWFwPigpKE9ic2lkaWFuUGx1Z2luKSBpbXBsZW1lbnRzIFBsdWdpbkV2ZW50U291cmNlIHtcbiAgLyoqXG4gICAqIEFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJvcnRTaWduYWxDb21wb25lbnQ/OiBBYm9ydFNpZ25hbENvbXBvbmVudDtcblxuICAvKipcbiAgICogQXN5bmMgZXJyb3IgaGFuZGxlciBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQ/OiBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudDtcblxuICAvKipcbiAgICogQ29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uc29sZURlYnVnQ29tcG9uZW50PzogQ29uc29sZURlYnVnQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBJMThuIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBpMThuQ29tcG9uZW50PzogSTE4bkNvbXBvbmVudDtcblxuICAvKipcbiAgICogUGx1Z2luIGNvbnRleHQgY29tcG9uZW50IChwbHVnaW4gSUQsIGRlYnVnIGNvbnRyb2xsZXIsIGxpYnJhcnkgc3R5bGVzKS5cbiAgICovXG4gIHByb3RlY3RlZCBwbHVnaW5Db250ZXh0Q29tcG9uZW50PzogUGx1Z2luQ29udGV4dENvbXBvbmVudDtcblxuICAvKipcbiAgICogUGx1Z2luIG5vdGljZSBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcGx1Z2luTm90aWNlQ29tcG9uZW50PzogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHBsdWdpbi5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBBcHAgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIFRoZSBwbHVnaW4gbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoYXBwOiBBcHAsIG1hbmlmZXN0OiBQbHVnaW5NYW5pZmVzdCkge1xuICAgIHN1cGVyKGFwcCwgbWFuaWZlc3QpO1xuXG4gICAgdGhpcy5wbHVnaW5Db250ZXh0Q29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChcbiAgICAgIG5ldyBQbHVnaW5Db250ZXh0Q29tcG9uZW50KHtcbiAgICAgICAgYXBwOiB0aGlzLmFwcCxcbiAgICAgICAgcGx1Z2luSWQ6IHRoaXMubWFuaWZlc3QuaWRcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmkxOG5Db21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBJMThuQ29tcG9uZW50KCkpO1xuICAgIHRoaXMucGx1Z2luTm90aWNlQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgUGx1Z2luTm90aWNlQ29tcG9uZW50KHRoaXMubWFuaWZlc3QubmFtZSkpO1xuICAgIHRoaXMuYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCh0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCkpO1xuICAgIHRoaXMuYWJvcnRTaWduYWxDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBBYm9ydFNpZ25hbENvbXBvbmVudCh0aGlzLm1hbmlmZXN0LmlkKSk7XG4gICAgdGhpcy5jb25zb2xlRGVidWdDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBDb25zb2xlRGVidWdDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBleHRlcm5hbCBzZXR0aW5ncyBjaGFuZ2UuXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIGlmIG5lZWRlZC4gTWFrZSBzdXJlIHRvIGNhbGwgYGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpYCBmaXJzdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlPy4oKTtcbiAgICBhd2FpdCB0aGlzLnRyaWdnZXJBc3luYygnZXh0ZXJuYWxTZXR0aW5nc0NoYW5nZScpO1xuICB9XG59XG5cbi8qKlxuICogUmVsb2FkcyB0aGUgc3BlY2lmaWVkIHBsdWdpbiBieSBkaXNhYmxpbmcgYW5kIHRoZW4gcmUtZW5hYmxpbmcgaXQuXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gcmVsb2FkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgcmVsb2FkZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWxvYWRQbHVnaW4ocGx1Z2luOiBPYnNpZGlhblBsdWdpbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwbHVnaW5zID0gcGx1Z2luLmFwcC5wbHVnaW5zO1xuICBjb25zdCBwbHVnaW5JZCA9IHBsdWdpbi5tYW5pZmVzdC5pZDtcbiAgYXdhaXQgcGx1Z2lucy5kaXNhYmxlUGx1Z2luKHBsdWdpbklkKTtcbiAgYXdhaXQgcGx1Z2lucy5lbmFibGVQbHVnaW4ocGx1Z2luSWQpO1xufVxuXG4vKipcbiAqIERpc3BsYXlzIGFuIGVycm9yIG1lc3NhZ2UgYXMgYSBub3RpY2UsIGxvZ3MgaXQgdG8gdGhlIGNvbnNvbGUsIGFuZCBkaXNhYmxlcyB0aGUgc3BlY2lmaWVkIHBsdWdpbi5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiB0byBkaXNhYmxlLlxuICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IGFuZCBsb2cuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyBkaXNhYmxlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dFcnJvckFuZERpc2FibGVQbHVnaW4ocGx1Z2luOiBPYnNpZGlhblBsdWdpbiwgbWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIG5ldyBOb3RpY2UobWVzc2FnZSk7XG4gIHByaW50RXJyb3IobmV3IEVycm9yKG1lc3NhZ2UpKTtcbiAgYXdhaXQgcGx1Z2luLmFwcC5wbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luLm1hbmlmZXN0LmlkKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQSxzQkFHTztBQUlQLDBCQUFpQztBQUNqQyxtQkFBMkI7QUFDM0Isb0NBQXFDO0FBQ3JDLDJDQUEyQztBQUMzQyxxQ0FBc0M7QUFDdEMsNEJBQThCO0FBQzlCLHNDQUF1QztBQUN2QyxxQ0FBc0M7QUFrQi9CLE1BQWUsdUJBQW1CLHNDQUFpQyxFQUFFLGdCQUFBQSxNQUFjLEVBQStCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJN0c7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUgsWUFBWSxLQUFVLFVBQTBCO0FBQ3JELFVBQU0sS0FBSyxRQUFRO0FBRW5CLFNBQUsseUJBQXlCLEtBQUs7QUFBQSxNQUNqQyxJQUFJLHVEQUF1QjtBQUFBLFFBQ3pCLEtBQUssS0FBSztBQUFBLFFBQ1YsVUFBVSxLQUFLLFNBQVM7QUFBQSxNQUMxQixDQUFDO0FBQUEsSUFDSDtBQUNBLFNBQUssZ0JBQWdCLEtBQUssU0FBUyxJQUFJLG9DQUFjLENBQUM7QUFDdEQsU0FBSyx3QkFBd0IsS0FBSyxTQUFTLElBQUkscURBQXNCLEtBQUssU0FBUyxJQUFJLENBQUM7QUFDeEYsU0FBSyw2QkFBNkIsS0FBSyxTQUFTLElBQUksZ0VBQTJCLEtBQUsscUJBQXFCLENBQUM7QUFDMUcsU0FBSyx1QkFBdUIsS0FBSyxTQUFTLElBQUksbURBQXFCLEtBQUssU0FBUyxFQUFFLENBQUM7QUFDcEYsU0FBSyx3QkFBd0IsS0FBSyxTQUFTLElBQUkscURBQXNCLEtBQUssU0FBUyxFQUFFLENBQUM7QUFBQSxFQUN4RjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE1BQXNCLDJCQUEwQztBQUM5RCxVQUFNLE1BQU0sMkJBQTJCO0FBQ3ZDLFVBQU0sS0FBSyxhQUFhLHdCQUF3QjtBQUFBLEVBQ2xEO0FBQ0Y7QUFRQSxlQUFzQixhQUFhLFFBQXVDO0FBQ3hFLFFBQU0sVUFBVSxPQUFPLElBQUk7QUFDM0IsUUFBTSxXQUFXLE9BQU8sU0FBUztBQUNqQyxRQUFNLFFBQVEsY0FBYyxRQUFRO0FBQ3BDLFFBQU0sUUFBUSxhQUFhLFFBQVE7QUFDckM7QUFTQSxlQUFzQiwwQkFBMEIsUUFBd0IsU0FBZ0M7QUFDdEcsTUFBSSx1QkFBTyxPQUFPO0FBQ2xCLCtCQUFXLElBQUksTUFBTSxPQUFPLENBQUM7QUFDN0IsUUFBTSxPQUFPLElBQUksUUFBUSxjQUFjLE9BQU8sU0FBUyxFQUFFO0FBQzNEOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhblBsdWdpbiJdCn0K
@@ -1,74 +1,73 @@
1
+ /// <reference path="../../library.d.cts" />
1
2
  /**
2
3
  * @file
3
4
  *
4
5
  * Base class for Obsidian plugins using a component-based architecture.
5
6
  *
6
7
  * PluginBase registers universal components (context, i18n, error handling, abort signal, lifecycle events, debug).
7
- * Subclasses add their own components via {@link PluginBase.addChild} in their constructor.
8
- * Any universal component can be replaced by calling {@link PluginBase.addChild} with a new instance of the same class
9
- * (singleton replacement is automatic for components whose class defines a static `COMPONENT_KEY`).
10
8
  */
11
9
  import type { App, PluginManifest } from 'obsidian';
12
- import { Component, Plugin as ObsidianPlugin } from 'obsidian';
10
+ import { Plugin as ObsidianPlugin } from 'obsidian';
11
+ import type { AsyncEventSource } from '../../async-events.cjs';
13
12
  import { AbortSignalComponent } from '../components/abort-signal-component.cjs';
13
+ import { AsyncErrorHandlerComponent } from '../components/async-error-handler-component.cjs';
14
14
  import { ConsoleDebugComponent } from '../components/console-debug-component.cjs';
15
+ import { I18nComponent } from '../components/i18n-component.cjs';
16
+ import { PluginContextComponent } from '../components/plugin-context-component.cjs';
15
17
  import { PluginNoticeComponent } from '../components/plugin-notice-component.cjs';
18
+ /**
19
+ * Event source for plugin events.
20
+ */
21
+ export type PluginEventSource = AsyncEventSource<PluginEventMap>;
22
+ interface PluginEventMap {
23
+ /** Fired when plugin settings are changed externally (e.g. sync, manual file edit). */
24
+ externalSettingsChange: [];
25
+ }
26
+ declare const PluginBase_base: import("type-fest").AbstractConstructor<AsyncEventSource<PluginEventMap> & import("../../async-events.cjs").AsyncEventTrigger<PluginEventMap>> & typeof ObsidianPlugin;
16
27
  /**
17
28
  * Base class for creating Obsidian plugins with a component-based architecture.
18
29
  *
19
30
  * Registers universal components automatically. Subclasses add or replace components
20
31
  * via {@link PluginBase.addChild} in their constructor.
21
32
  */
22
- export declare abstract class PluginBase extends ObsidianPlugin {
33
+ export declare abstract class PluginBase extends PluginBase_base implements PluginEventSource {
23
34
  /**
24
- * The abort signal component. Aborted when the plugin is unloaded.
25
- *
26
- * @returns the abort signal component.
35
+ * Abort signal component.
27
36
  */
28
- protected get abortSignalComponent(): AbortSignalComponent;
37
+ protected abortSignalComponent?: AbortSignalComponent;
29
38
  /**
30
- * The console debug component. Provides namespaced debug logging.
31
- *
32
- * @returns The console debug component.
39
+ * Async error handler component.
33
40
  */
34
- protected get consoleDebugComponent(): ConsoleDebugComponent;
41
+ protected asyncErrorHandlerComponent?: AsyncErrorHandlerComponent;
35
42
  /**
36
- * The notice component. Displays notices to the user.
37
- *
38
- * @returns The notice component.
43
+ * Console debug component.
39
44
  */
40
- protected get noticeComponent(): PluginNoticeComponent;
41
- private readonly singletonComponents;
45
+ protected consoleDebugComponent?: ConsoleDebugComponent;
42
46
  /**
43
- * Creates a new PluginBase.
44
- *
45
- * @param app - The Obsidian app instance.
46
- * @param manifest - The plugin manifest.
47
+ * I18n component.
47
48
  */
48
- constructor(app: App, manifest: PluginManifest);
49
+ protected i18nComponent?: I18nComponent;
49
50
  /**
50
- * Adds a component to the plugin.
51
- *
52
- * If the component's class defines a static `COMPONENT_KEY` symbol, it is treated as a singleton —
53
- * adding another component with the same key replaces the previous one.
54
- * Components without a `COMPONENT_KEY` are multi-instance and simply added.
55
- *
56
- * @typeParam T - The component type.
57
- * @param component - The component to add.
58
- * @returns The added component.
51
+ * Plugin context component (plugin ID, debug controller, library styles).
52
+ */
53
+ protected pluginContextComponent?: PluginContextComponent;
54
+ /**
55
+ * Plugin notice component.
59
56
  */
60
- addChild<T extends Component>(component: T): T;
57
+ protected pluginNoticeComponent?: PluginNoticeComponent;
61
58
  /**
62
- * Loads the plugin and its components.
59
+ * Creates a new plugin.
60
+ *
61
+ * @param app - The Obsidian App instance.
62
+ * @param manifest - The plugin manifest.
63
63
  */
64
- load(): Promise<void>;
64
+ constructor(app: App, manifest: PluginManifest);
65
65
  /**
66
66
  * Called when the external settings change.
67
67
  *
68
68
  * Override in subclass if needed. Make sure to call `await super.onExternalSettingsChange()` first.
69
69
  */
70
70
  onExternalSettingsChange(): Promise<void>;
71
- private getRegisteredComponent;
72
71
  }
73
72
  /**
74
73
  * Reloads the specified plugin by disabling and then re-enabling it.
@@ -85,3 +84,4 @@ export declare function reloadPlugin(plugin: ObsidianPlugin): Promise<void>;
85
84
  * @returns A {@link Promise} that resolves when the plugin is disabled.
86
85
  */
87
86
  export declare function showErrorAndDisablePlugin(plugin: ObsidianPlugin, message: string): Promise<void>;
87
+ export {};
@@ -1,3 +1,4 @@
1
+ /// <reference path="../library.d.cts" />
1
2
  /**
2
3
  * @file
3
4
  *
@@ -1,3 +1,4 @@
1
+ /// <reference path="../../library.d.cts" />
1
2
  /**
2
3
  * @file
3
4
  *
@@ -1 +1,2 @@
1
+ /// <reference path="../../library.d.cts" />
1
2
  export * as 'app-context' from './app-context.cjs';
@@ -1,3 +1,4 @@
1
+ /// <reference path="../library.d.cts" />
1
2
  /**
2
3
  * @file
3
4
  *