obsidian-dev-utils 88.7.0 → 89.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 (679) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/demo-vault-helper/main.js +20 -23
  3. package/dist/integration-test-plugin/main.js +2218 -1734
  4. package/dist/lib/cjs/__merged.cjs +57 -35
  5. package/dist/lib/cjs/__merged.d.cts +12 -10
  6. package/dist/lib/cjs/abort-controller.cjs +15 -22
  7. package/dist/lib/cjs/array.cjs +27 -26
  8. package/dist/lib/cjs/array.d.cts +25 -7
  9. package/dist/lib/cjs/async-events.cjs +87 -91
  10. package/dist/lib/cjs/async-events.d.cts +50 -50
  11. package/dist/lib/cjs/async.cjs +80 -80
  12. package/dist/lib/cjs/async.d.cts +23 -23
  13. package/dist/lib/cjs/beeper.cjs +11 -15
  14. package/dist/lib/cjs/blob.cjs +14 -25
  15. package/dist/lib/cjs/codemirror/index.cjs +11 -15
  16. package/dist/lib/cjs/codemirror/state-field-spec.cjs +11 -15
  17. package/dist/lib/cjs/debug-controller.cjs +11 -15
  18. package/dist/lib/cjs/debug.cjs +24 -32
  19. package/dist/lib/cjs/debug.d.cts +1 -1
  20. package/dist/lib/cjs/disposable.cjs +59 -43
  21. package/dist/lib/cjs/disposable.d.cts +27 -8
  22. package/dist/lib/cjs/enum.cjs +11 -15
  23. package/dist/lib/cjs/error.cjs +28 -33
  24. package/dist/lib/cjs/function.cjs +30 -34
  25. package/dist/lib/cjs/function.d.cts +26 -26
  26. package/dist/lib/cjs/generated-during-build.cjs +12 -16
  27. package/dist/lib/cjs/html-element.cjs +84 -89
  28. package/dist/lib/cjs/html-element.d.cts +15 -15
  29. package/dist/lib/cjs/index.cjs +11 -15
  30. package/dist/lib/cjs/integration-test-setup.cjs +11 -15
  31. package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +11 -15
  32. package/dist/lib/cjs/jest-setup.cjs +11 -15
  33. package/dist/lib/cjs/library.cjs +11 -15
  34. package/dist/lib/cjs/object-utils.cjs +120 -117
  35. package/dist/lib/cjs/object-utils.d.cts +27 -27
  36. package/dist/lib/cjs/obsidian/@types/dataview/data-model/value.d.cts +1 -1
  37. package/dist/lib/cjs/obsidian/@types/dataview/expression/field.d.cts +1 -1
  38. package/dist/lib/cjs/obsidian/@types/dataview/expression/functions.d.cts +4 -4
  39. package/dist/lib/cjs/obsidian/active-file-provider.cjs +11 -15
  40. package/dist/lib/cjs/obsidian/app.cjs +11 -15
  41. package/dist/lib/cjs/obsidian/async-with-notice.cjs +28 -32
  42. package/dist/lib/cjs/obsidian/async-with-notice.d.cts +2 -2
  43. package/dist/lib/cjs/obsidian/attachment-path.cjs +20 -24
  44. package/dist/lib/cjs/obsidian/attachment-path.d.cts +5 -5
  45. package/dist/lib/cjs/obsidian/backlink.cjs +12 -16
  46. package/dist/lib/cjs/obsidian/bases-view-registrar.cjs +11 -15
  47. package/dist/lib/cjs/obsidian/callout.cjs +27 -26
  48. package/dist/lib/cjs/obsidian/callout.d.cts +9 -3
  49. package/dist/lib/cjs/obsidian/canvas.cjs +13 -16
  50. package/dist/lib/cjs/obsidian/case-insensitive-file-index.cjs +18 -20
  51. package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +11 -15
  52. package/dist/lib/cjs/obsidian/code-block-markdown-information.d.cts +2 -2
  53. package/dist/lib/cjs/obsidian/code-block-reg-exp.cjs +11 -15
  54. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +18 -16
  55. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +5 -0
  56. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +56 -31
  57. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +42 -8
  58. package/dist/lib/cjs/obsidian/command-handlers/command-handler.cjs +11 -15
  59. package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +10 -0
  60. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs +26 -30
  61. package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +8 -8
  62. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +12 -16
  63. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +12 -16
  64. package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.cjs +13 -17
  65. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +11 -15
  66. package/dist/lib/cjs/obsidian/command-handlers/open-demo-vault-command-handler.cjs +11 -15
  67. package/dist/lib/cjs/obsidian/command-handlers/open-settings-command-handler.cjs +11 -15
  68. package/dist/lib/cjs/obsidian/command-handlers/unlock-active-note-command-handler.cjs +11 -15
  69. package/dist/lib/cjs/obsidian/command-registrar.cjs +11 -15
  70. package/dist/lib/cjs/obsidian/community-plugins.cjs +28 -25
  71. package/dist/lib/cjs/obsidian/community-plugins.d.cts +19 -5
  72. package/dist/lib/cjs/obsidian/components/abort-signal-component.cjs +11 -15
  73. package/dist/lib/cjs/obsidian/components/all-windows-event-component.cjs +11 -15
  74. package/dist/lib/cjs/obsidian/components/all-windows-event-component.d.cts +4 -4
  75. package/dist/lib/cjs/obsidian/components/async-error-handler-component.cjs +13 -16
  76. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +11 -15
  77. package/dist/lib/cjs/obsidian/components/case-insensitive-file-index-component.cjs +11 -15
  78. package/dist/lib/cjs/obsidian/components/component-ex.cjs +26 -28
  79. package/dist/lib/cjs/obsidian/components/component-ex.d.cts +3 -3
  80. package/dist/lib/cjs/obsidian/components/console-debug-component.cjs +14 -18
  81. package/dist/lib/cjs/obsidian/components/console-debug-component.d.cts +2 -2
  82. package/dist/lib/cjs/obsidian/components/disposable-component.cjs +11 -15
  83. package/dist/lib/cjs/obsidian/components/embed-extensions-component.cjs +11 -15
  84. package/dist/lib/cjs/obsidian/components/generate-markdown-link-default-params-component.cjs +11 -15
  85. package/dist/lib/cjs/obsidian/components/index.cjs +14 -15
  86. package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
  87. package/dist/lib/cjs/obsidian/components/layout-ready-component.cjs +11 -15
  88. package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.cjs +11 -15
  89. package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +29 -33
  90. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +55 -55
  91. package/dist/lib/cjs/obsidian/components/notebook-navigator-menu-event-registrar-component.cjs +297 -0
  92. package/dist/lib/cjs/obsidian/components/notebook-navigator-menu-event-registrar-component.d.cts +139 -0
  93. package/dist/lib/cjs/obsidian/components/plugin-context-component.cjs +11 -15
  94. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +28 -31
  95. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +26 -30
  96. package/dist/lib/cjs/obsidian/components/plugin-settings-component.d.cts +8 -8
  97. package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.cjs +11 -15
  98. package/dist/lib/cjs/obsidian/components/pointer-position-component.cjs +13 -17
  99. package/dist/lib/cjs/obsidian/components/registry-component.cjs +11 -15
  100. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +72 -62
  101. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.d.cts +12 -1
  102. package/dist/lib/cjs/obsidian/components/syntax-highlighting-component.cjs +16 -20
  103. package/dist/lib/cjs/obsidian/components/syntax-highlighting-component.d.cts +8 -8
  104. package/dist/lib/cjs/obsidian/constructors/get-dom-events-handlers-constructor.cjs +14 -18
  105. package/dist/lib/cjs/obsidian/constructors/index.cjs +11 -15
  106. package/dist/lib/cjs/obsidian/css-class.cjs +11 -15
  107. package/dist/lib/cjs/obsidian/data-handler.cjs +11 -15
  108. package/dist/lib/cjs/obsidian/dataview-link.cjs +13 -17
  109. package/dist/lib/cjs/obsidian/dataview.cjs +35 -41
  110. package/dist/lib/cjs/obsidian/dataview.d.cts +2 -2
  111. package/dist/lib/cjs/obsidian/demo-vault-helper.cjs +13 -17
  112. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +22 -26
  113. package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +23 -21
  114. package/dist/lib/cjs/obsidian/editor-extension-registrar.cjs +11 -15
  115. package/dist/lib/cjs/obsidian/editor-suggest-registrar.cjs +11 -15
  116. package/dist/lib/cjs/obsidian/editor.cjs +17 -19
  117. package/dist/lib/cjs/obsidian/events.cjs +12 -16
  118. package/dist/lib/cjs/obsidian/events.d.cts +2 -2
  119. package/dist/lib/cjs/obsidian/extensions-registrar.cjs +11 -15
  120. package/dist/lib/cjs/obsidian/file-change.cjs +76 -80
  121. package/dist/lib/cjs/obsidian/file-change.d.cts +3 -3
  122. package/dist/lib/cjs/obsidian/file-manager.cjs +33 -22
  123. package/dist/lib/cjs/obsidian/file-manager.d.cts +20 -1
  124. package/dist/lib/cjs/obsidian/file-system.cjs +15 -19
  125. package/dist/lib/cjs/obsidian/file-system.d.cts +3 -3
  126. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +11 -15
  127. package/dist/lib/cjs/obsidian/frontmatter.cjs +15 -19
  128. package/dist/lib/cjs/obsidian/hover-link-source-registrar.cjs +11 -15
  129. package/dist/lib/cjs/obsidian/html-element.cjs +13 -17
  130. package/dist/lib/cjs/obsidian/html-element.d.cts +2 -2
  131. package/dist/lib/cjs/obsidian/i18n/custom-type-options.cjs +11 -15
  132. package/dist/lib/cjs/obsidian/i18n/default-translations.cjs +11 -15
  133. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +13 -16
  134. package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +7 -0
  135. package/dist/lib/cjs/obsidian/i18n/index.cjs +11 -15
  136. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +11 -15
  137. package/dist/lib/cjs/obsidian/i18n/locales/index.cjs +11 -15
  138. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +11 -15
  139. package/dist/lib/cjs/obsidian/index.cjs +14 -15
  140. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  141. package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +11 -15
  142. package/dist/lib/cjs/obsidian/link-update-progress.cjs +11 -15
  143. package/dist/lib/cjs/obsidian/link.cjs +91 -81
  144. package/dist/lib/cjs/obsidian/link.d.cts +22 -22
  145. package/dist/lib/cjs/obsidian/logger.cjs +21 -25
  146. package/dist/lib/cjs/obsidian/logger.d.cts +5 -5
  147. package/dist/lib/cjs/obsidian/loop.cjs +14 -18
  148. package/dist/lib/cjs/obsidian/loop.d.cts +1 -1
  149. package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.cjs +12 -16
  150. package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.d.cts +3 -3
  151. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +35 -40
  152. package/dist/lib/cjs/obsidian/markdown-code-block-processor.d.cts +3 -3
  153. package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.cjs +12 -16
  154. package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.d.cts +3 -3
  155. package/dist/lib/cjs/obsidian/markdown-view.cjs +11 -15
  156. package/dist/lib/cjs/obsidian/markdown.cjs +22 -24
  157. package/dist/lib/cjs/obsidian/menu-event-registrar.cjs +11 -15
  158. package/dist/lib/cjs/obsidian/menu-event-registrar.d.cts +1 -1
  159. package/dist/lib/cjs/obsidian/metadata-cache.cjs +16 -20
  160. package/dist/lib/cjs/obsidian/metadata-cache.d.cts +2 -2
  161. package/dist/lib/cjs/obsidian/modals/alert.cjs +11 -15
  162. package/dist/lib/cjs/obsidian/modals/confirm.cjs +11 -15
  163. package/dist/lib/cjs/obsidian/modals/index.cjs +11 -15
  164. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +28 -32
  165. package/dist/lib/cjs/obsidian/modals/modal.cjs +11 -15
  166. package/dist/lib/cjs/obsidian/modals/prompt.cjs +11 -15
  167. package/dist/lib/cjs/obsidian/modals/select-item.cjs +16 -20
  168. package/dist/lib/cjs/obsidian/modals/select-item.d.cts +1 -1
  169. package/dist/lib/cjs/obsidian/modals/select-option.cjs +11 -15
  170. package/dist/lib/cjs/obsidian/modals/suggest-modal-command-builder.cjs +26 -28
  171. package/dist/lib/cjs/obsidian/modals/suggest-modal-command-builder.d.cts +5 -5
  172. package/dist/lib/cjs/obsidian/notebook-navigator.cjs +155 -0
  173. package/dist/lib/cjs/obsidian/notebook-navigator.d.cts +132 -0
  174. package/dist/lib/cjs/obsidian/obsidian-protocol-handler-registrar.cjs +11 -15
  175. package/dist/lib/cjs/obsidian/obsidian-settings.cjs +11 -15
  176. package/dist/lib/cjs/obsidian/parse-link.cjs +61 -62
  177. package/dist/lib/cjs/obsidian/parse-link.d.cts +4 -4
  178. package/dist/lib/cjs/obsidian/path-settings.cjs +27 -25
  179. package/dist/lib/cjs/obsidian/pdf.cjs +13 -17
  180. package/dist/lib/cjs/obsidian/pdf.d.cts +2 -2
  181. package/dist/lib/cjs/obsidian/plugin/index.cjs +11 -15
  182. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +11 -15
  183. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +156 -52
  184. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +17 -21
  185. package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +2 -2
  186. package/dist/lib/cjs/obsidian/plugin/plugin-event-source.cjs +20 -24
  187. package/dist/lib/cjs/obsidian/plugin/plugin-event-source.d.cts +11 -9
  188. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +29 -33
  189. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +33 -16
  190. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +11 -1
  191. package/dist/lib/cjs/obsidian/plugin-cli-handler-registrar.cjs +11 -15
  192. package/dist/lib/cjs/obsidian/popovers/field-popover.cjs +11 -15
  193. package/dist/lib/cjs/obsidian/popovers/index.cjs +11 -15
  194. package/dist/lib/cjs/obsidian/popovers/popover-anchor.cjs +14 -18
  195. package/dist/lib/cjs/obsidian/popovers/popover-anchor.d.cts +2 -2
  196. package/dist/lib/cjs/obsidian/popovers/popover.cjs +19 -23
  197. package/dist/lib/cjs/obsidian/queue.cjs +16 -20
  198. package/dist/lib/cjs/obsidian/queue.d.cts +2 -2
  199. package/dist/lib/cjs/obsidian/react/app-context.cjs +11 -15
  200. package/dist/lib/cjs/obsidian/react/index.cjs +11 -15
  201. package/dist/lib/cjs/obsidian/reference.cjs +11 -15
  202. package/dist/lib/cjs/obsidian/resource-lock.cjs +157 -78
  203. package/dist/lib/cjs/obsidian/resource-lock.d.cts +5 -0
  204. package/dist/lib/cjs/obsidian/resource-url.cjs +12 -16
  205. package/dist/lib/cjs/obsidian/ribbon-icon-registrar.cjs +11 -15
  206. package/dist/lib/cjs/obsidian/ribbon-icon-registrar.d.cts +2 -2
  207. package/dist/lib/cjs/obsidian/setting-components/checkbox-component.cjs +18 -22
  208. package/dist/lib/cjs/obsidian/setting-components/checkbox-component.d.cts +5 -5
  209. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +28 -31
  210. package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.d.cts +2 -2
  211. package/dist/lib/cjs/obsidian/setting-components/date-component.cjs +14 -18
  212. package/dist/lib/cjs/obsidian/setting-components/date-component.d.cts +2 -2
  213. package/dist/lib/cjs/obsidian/setting-components/date-time-component.cjs +14 -18
  214. package/dist/lib/cjs/obsidian/setting-components/date-time-component.d.cts +2 -2
  215. package/dist/lib/cjs/obsidian/setting-components/email-component.cjs +14 -18
  216. package/dist/lib/cjs/obsidian/setting-components/email-component.d.cts +2 -2
  217. package/dist/lib/cjs/obsidian/setting-components/file-component.cjs +11 -15
  218. package/dist/lib/cjs/obsidian/setting-components/index.cjs +11 -15
  219. package/dist/lib/cjs/obsidian/setting-components/month-component.cjs +14 -18
  220. package/dist/lib/cjs/obsidian/setting-components/month-component.d.cts +2 -2
  221. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +17 -21
  222. package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.d.cts +2 -2
  223. package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.cjs +14 -18
  224. package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.d.cts +2 -2
  225. package/dist/lib/cjs/obsidian/setting-components/multiple-file-component.cjs +12 -16
  226. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +15 -19
  227. package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.d.cts +2 -2
  228. package/dist/lib/cjs/obsidian/setting-components/number-component.cjs +14 -18
  229. package/dist/lib/cjs/obsidian/setting-components/number-component.d.cts +2 -2
  230. package/dist/lib/cjs/obsidian/setting-components/password-component.cjs +14 -18
  231. package/dist/lib/cjs/obsidian/setting-components/password-component.d.cts +2 -2
  232. package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.cjs +16 -20
  233. package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.d.cts +2 -2
  234. package/dist/lib/cjs/obsidian/setting-components/telephone-component.cjs +14 -18
  235. package/dist/lib/cjs/obsidian/setting-components/telephone-component.d.cts +2 -2
  236. package/dist/lib/cjs/obsidian/setting-components/text-based-component.cjs +16 -20
  237. package/dist/lib/cjs/obsidian/setting-components/text-based-component.d.cts +2 -2
  238. package/dist/lib/cjs/obsidian/setting-components/time-component.cjs +14 -18
  239. package/dist/lib/cjs/obsidian/setting-components/time-component.d.cts +2 -2
  240. package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.cjs +15 -19
  241. package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.d.cts +2 -2
  242. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.cjs +16 -20
  243. package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.d.cts +2 -2
  244. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +18 -22
  245. package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.d.cts +2 -2
  246. package/dist/lib/cjs/obsidian/setting-components/typed-range-text-component.cjs +11 -15
  247. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.cjs +16 -19
  248. package/dist/lib/cjs/obsidian/setting-components/typed-text-component.d.cts +4 -4
  249. package/dist/lib/cjs/obsidian/setting-components/url-component.cjs +14 -18
  250. package/dist/lib/cjs/obsidian/setting-components/url-component.d.cts +2 -2
  251. package/dist/lib/cjs/obsidian/setting-components/validator-component.cjs +45 -49
  252. package/dist/lib/cjs/obsidian/setting-components/validator-component.d.cts +2 -2
  253. package/dist/lib/cjs/obsidian/setting-components/value-component-with-change-tracking.cjs +11 -15
  254. package/dist/lib/cjs/obsidian/setting-components/week-component.cjs +14 -18
  255. package/dist/lib/cjs/obsidian/setting-components/week-component.d.cts +2 -2
  256. package/dist/lib/cjs/obsidian/setting-ex.cjs +76 -80
  257. package/dist/lib/cjs/obsidian/setting-ex.d.cts +42 -42
  258. package/dist/lib/cjs/obsidian/setting-group-ex.cjs +14 -18
  259. package/dist/lib/cjs/obsidian/setting-group-ex.d.cts +2 -2
  260. package/dist/lib/cjs/obsidian/status-bar-item-registrar.cjs +11 -15
  261. package/dist/lib/cjs/obsidian/validation.cjs +11 -15
  262. package/dist/lib/cjs/obsidian/vault-delete.cjs +23 -20
  263. package/dist/lib/cjs/obsidian/vault-delete.d.cts +16 -2
  264. package/dist/lib/cjs/obsidian/vault-transaction.cjs +17 -18
  265. package/dist/lib/cjs/obsidian/vault.cjs +81 -63
  266. package/dist/lib/cjs/obsidian/vault.d.cts +32 -11
  267. package/dist/lib/cjs/obsidian/view-registrar.cjs +11 -15
  268. package/dist/lib/cjs/obsidian/workspace.cjs +12 -16
  269. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +11 -15
  270. package/dist/lib/cjs/path.cjs +18 -22
  271. package/dist/lib/cjs/path.d.cts +1 -1
  272. package/dist/lib/cjs/reg-exp.cjs +38 -35
  273. package/dist/lib/cjs/reg-exp.d.cts +4 -4
  274. package/dist/lib/cjs/script-utils/build.cjs +21 -25
  275. package/dist/lib/cjs/script-utils/build.d.cts +1 -1
  276. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +24 -28
  277. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +36 -34
  278. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +11 -15
  279. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +20 -24
  280. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +13 -17
  281. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +16 -20
  282. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.cjs +11 -15
  283. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +11 -15
  284. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +6 -2
  285. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +32 -36
  286. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +11 -15
  287. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +11 -15
  288. package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +11 -15
  289. package/dist/lib/cjs/script-utils/bundlers/index.cjs +11 -15
  290. package/dist/lib/cjs/script-utils/check-project-types.cjs +13 -17
  291. package/dist/lib/cjs/script-utils/check-project-types.d.cts +12 -4
  292. package/dist/lib/cjs/script-utils/cli-utils.cjs +39 -47
  293. package/dist/lib/cjs/script-utils/cli-utils.d.cts +6 -6
  294. package/dist/lib/cjs/script-utils/code-generator.cjs +11 -15
  295. package/dist/lib/cjs/script-utils/commitlint-config.cjs +11 -15
  296. package/dist/lib/cjs/script-utils/demo-vault-coverage.cjs +22 -23
  297. package/dist/lib/cjs/script-utils/demo-vault.cjs +11 -15
  298. package/dist/lib/cjs/script-utils/env-toggle.cjs +13 -17
  299. package/dist/lib/cjs/script-utils/exec.cjs +40 -44
  300. package/dist/lib/cjs/script-utils/exec.d.cts +4 -4
  301. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +12 -16
  302. package/dist/lib/cjs/script-utils/formatters/index.cjs +11 -15
  303. package/dist/lib/cjs/script-utils/fs.cjs +13 -17
  304. package/dist/lib/cjs/script-utils/git.cjs +11 -15
  305. package/dist/lib/cjs/script-utils/index.cjs +11 -15
  306. package/dist/lib/cjs/script-utils/json.cjs +15 -19
  307. package/dist/lib/cjs/script-utils/json.d.cts +2 -2
  308. package/dist/lib/cjs/script-utils/linters/cspell.cjs +12 -16
  309. package/dist/lib/cjs/script-utils/linters/eslint-agnostic-core-boundary.cjs +11 -15
  310. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +402 -16
  311. package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +11 -15
  312. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +11 -15
  313. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +27 -31
  314. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +3 -1
  315. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.cjs +27 -31
  316. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.d.cts +3 -1
  317. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +21 -25
  318. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +3 -1
  319. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +11 -15
  320. package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.cjs +109 -113
  321. package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.d.cts +3 -1
  322. package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.cjs +13 -17
  323. package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.d.cts +3 -1
  324. package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.cjs +21 -25
  325. package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.cts +3 -1
  326. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +51 -55
  327. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.d.cts +9 -3
  328. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.cjs +25 -27
  329. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.d.cts +6 -2
  330. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.cjs +33 -37
  331. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.d.cts +3 -1
  332. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +11 -15
  333. package/dist/lib/cjs/script-utils/linters/eslint.cjs +14 -18
  334. package/dist/lib/cjs/script-utils/linters/index.cjs +14 -15
  335. package/dist/lib/cjs/script-utils/linters/index.d.cts +1 -0
  336. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +18 -17
  337. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.d.cts +2 -2
  338. package/dist/lib/cjs/script-utils/linters/markdownlint-ignores.cjs +138 -0
  339. package/dist/lib/cjs/script-utils/linters/markdownlint-ignores.d.cts +35 -0
  340. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +20 -23
  341. package/dist/lib/cjs/script-utils/linters/over-exposure.cjs +18 -22
  342. package/dist/lib/cjs/script-utils/linters/over-exposure.d.cts +54 -18
  343. package/dist/lib/cjs/script-utils/nano-staged-config.cjs +11 -15
  344. package/dist/lib/cjs/script-utils/npm-publish.cjs +11 -15
  345. package/dist/lib/cjs/script-utils/npm-run.cjs +20 -17
  346. package/dist/lib/cjs/script-utils/npm-run.d.cts +16 -2
  347. package/dist/lib/cjs/script-utils/npm.cjs +21 -25
  348. package/dist/lib/cjs/script-utils/npm.d.cts +11 -11
  349. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +11 -15
  350. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +165 -55
  351. package/dist/lib/cjs/script-utils/root.cjs +11 -15
  352. package/dist/lib/cjs/script-utils/test-runners/index.cjs +16 -17
  353. package/dist/lib/cjs/script-utils/test-runners/index.d.cts +1 -0
  354. package/dist/lib/cjs/script-utils/test-runners/integration-test-plugin.cjs +11 -15
  355. package/dist/lib/cjs/script-utils/test-runners/vitest-config.cjs +325 -0
  356. package/dist/lib/cjs/script-utils/test-runners/vitest-config.d.cts +118 -0
  357. package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +11 -15
  358. package/dist/lib/cjs/script-utils/validate-declarations.cjs +11 -15
  359. package/dist/lib/cjs/script-utils/version.cjs +62 -63
  360. package/dist/lib/cjs/script-utils/version.d.cts +21 -21
  361. package/dist/lib/cjs/script-utils/warnings-as-errors.cjs +11 -15
  362. package/dist/lib/cjs/setup.cjs +11 -15
  363. package/dist/lib/cjs/setup.d.cts +1 -1
  364. package/dist/lib/cjs/strict-proxy.cjs +30 -34
  365. package/dist/lib/cjs/strict-proxy.d.cts +2 -2
  366. package/dist/lib/cjs/string.cjs +90 -93
  367. package/dist/lib/cjs/string.d.cts +60 -60
  368. package/dist/lib/cjs/transformers/date-transformer.cjs +11 -15
  369. package/dist/lib/cjs/transformers/duration-transformer.cjs +11 -15
  370. package/dist/lib/cjs/transformers/group-transformer.cjs +11 -15
  371. package/dist/lib/cjs/transformers/index.cjs +11 -15
  372. package/dist/lib/cjs/transformers/map-transformer.cjs +12 -16
  373. package/dist/lib/cjs/transformers/set-transformer.cjs +12 -16
  374. package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +11 -15
  375. package/dist/lib/cjs/transformers/transformer.cjs +11 -15
  376. package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +12 -16
  377. package/dist/lib/cjs/transformers/typed-transformer.cjs +11 -15
  378. package/dist/lib/cjs/two-way-map.cjs +11 -15
  379. package/dist/lib/cjs/type-guards.cjs +16 -20
  380. package/dist/lib/cjs/type-guards.d.cts +6 -6
  381. package/dist/lib/cjs/type.cjs +13 -17
  382. package/dist/lib/cjs/type.d.cts +2 -2
  383. package/dist/lib/cjs/url.cjs +18 -22
  384. package/dist/lib/cjs/url.d.cts +4 -4
  385. package/dist/lib/cjs/value-provider.cjs +15 -19
  386. package/dist/lib/cjs/value-provider.d.cts +6 -6
  387. package/dist/lib/cjs/value-wrapper.cjs +11 -15
  388. package/dist/lib/cjs/vitest-setup.cjs +11 -15
  389. package/dist/lib/esm/__merged.d.mts +12 -10
  390. package/dist/lib/esm/__merged.mjs +51 -23
  391. package/dist/lib/esm/abort-controller.mjs +5 -8
  392. package/dist/lib/esm/array.d.mts +25 -7
  393. package/dist/lib/esm/array.mjs +16 -12
  394. package/dist/lib/esm/async-events.d.mts +50 -50
  395. package/dist/lib/esm/async-events.mjs +81 -78
  396. package/dist/lib/esm/async.d.mts +23 -23
  397. package/dist/lib/esm/async.mjs +70 -66
  398. package/dist/lib/esm/blob.mjs +4 -11
  399. package/dist/lib/esm/debug.d.mts +1 -1
  400. package/dist/lib/esm/debug.mjs +14 -18
  401. package/dist/lib/esm/disposable.d.mts +27 -8
  402. package/dist/lib/esm/disposable.mjs +47 -29
  403. package/dist/lib/esm/error.mjs +18 -19
  404. package/dist/lib/esm/function.d.mts +26 -26
  405. package/dist/lib/esm/function.mjs +20 -20
  406. package/dist/lib/esm/generated-during-build.mjs +1 -1
  407. package/dist/lib/esm/html-element.d.mts +15 -15
  408. package/dist/lib/esm/html-element.mjs +74 -75
  409. package/dist/lib/esm/object-utils.d.mts +27 -27
  410. package/dist/lib/esm/object-utils.mjs +109 -102
  411. package/dist/lib/esm/obsidian/@types/dataview/data-model/value.d.mts +1 -1
  412. package/dist/lib/esm/obsidian/@types/dataview/expression/field.d.mts +1 -1
  413. package/dist/lib/esm/obsidian/@types/dataview/expression/functions.d.mts +4 -4
  414. package/dist/lib/esm/obsidian/app.mjs +1 -1
  415. package/dist/lib/esm/obsidian/async-with-notice.d.mts +2 -2
  416. package/dist/lib/esm/obsidian/async-with-notice.mjs +18 -18
  417. package/dist/lib/esm/obsidian/attachment-path.d.mts +5 -5
  418. package/dist/lib/esm/obsidian/attachment-path.mjs +10 -10
  419. package/dist/lib/esm/obsidian/backlink.mjs +2 -2
  420. package/dist/lib/esm/obsidian/callout.d.mts +9 -3
  421. package/dist/lib/esm/obsidian/callout.mjs +17 -12
  422. package/dist/lib/esm/obsidian/canvas.mjs +3 -2
  423. package/dist/lib/esm/obsidian/case-insensitive-file-index.mjs +8 -6
  424. package/dist/lib/esm/obsidian/code-block-markdown-information.d.mts +2 -2
  425. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +5 -0
  426. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +8 -2
  427. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +42 -8
  428. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +46 -17
  429. package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +10 -0
  430. package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +1 -1
  431. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +8 -8
  432. package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs +16 -16
  433. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +2 -2
  434. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +2 -2
  435. package/dist/lib/esm/obsidian/command-handlers/global-command-handler.mjs +3 -3
  436. package/dist/lib/esm/obsidian/community-plugins.d.mts +19 -5
  437. package/dist/lib/esm/obsidian/community-plugins.mjs +17 -11
  438. package/dist/lib/esm/obsidian/components/all-windows-event-component.d.mts +4 -4
  439. package/dist/lib/esm/obsidian/components/all-windows-event-component.mjs +1 -1
  440. package/dist/lib/esm/obsidian/components/async-error-handler-component.mjs +3 -2
  441. package/dist/lib/esm/obsidian/components/component-ex.d.mts +3 -3
  442. package/dist/lib/esm/obsidian/components/component-ex.mjs +16 -14
  443. package/dist/lib/esm/obsidian/components/console-debug-component.d.mts +2 -2
  444. package/dist/lib/esm/obsidian/components/console-debug-component.mjs +4 -4
  445. package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
  446. package/dist/lib/esm/obsidian/components/index.mjs +3 -1
  447. package/dist/lib/esm/obsidian/components/menu-event-registrar-component.mjs +5 -5
  448. package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +55 -55
  449. package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +19 -19
  450. package/dist/lib/esm/obsidian/components/notebook-navigator-menu-event-registrar-component.d.mts +139 -0
  451. package/dist/lib/esm/obsidian/components/notebook-navigator-menu-event-registrar-component.mjs +196 -0
  452. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +18 -17
  453. package/dist/lib/esm/obsidian/components/plugin-settings-component.d.mts +8 -8
  454. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +18 -18
  455. package/dist/lib/esm/obsidian/components/pointer-position-component.mjs +3 -3
  456. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.d.mts +12 -1
  457. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +62 -48
  458. package/dist/lib/esm/obsidian/components/syntax-highlighting-component.d.mts +8 -8
  459. package/dist/lib/esm/obsidian/components/syntax-highlighting-component.mjs +6 -6
  460. package/dist/lib/esm/obsidian/constructors/get-dom-events-handlers-constructor.mjs +4 -4
  461. package/dist/lib/esm/obsidian/data-handler.mjs +1 -1
  462. package/dist/lib/esm/obsidian/dataview-link.mjs +3 -3
  463. package/dist/lib/esm/obsidian/dataview.d.mts +2 -2
  464. package/dist/lib/esm/obsidian/dataview.mjs +25 -27
  465. package/dist/lib/esm/obsidian/demo-vault-helper.mjs +4 -3
  466. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +12 -12
  467. package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +13 -7
  468. package/dist/lib/esm/obsidian/editor.mjs +7 -5
  469. package/dist/lib/esm/obsidian/events.d.mts +2 -2
  470. package/dist/lib/esm/obsidian/events.mjs +2 -2
  471. package/dist/lib/esm/obsidian/file-change.d.mts +3 -3
  472. package/dist/lib/esm/obsidian/file-change.mjs +67 -67
  473. package/dist/lib/esm/obsidian/file-manager.d.mts +20 -1
  474. package/dist/lib/esm/obsidian/file-manager.mjs +22 -8
  475. package/dist/lib/esm/obsidian/file-system.d.mts +3 -3
  476. package/dist/lib/esm/obsidian/file-system.mjs +4 -4
  477. package/dist/lib/esm/obsidian/frontmatter.mjs +5 -5
  478. package/dist/lib/esm/obsidian/html-element.d.mts +2 -2
  479. package/dist/lib/esm/obsidian/html-element.mjs +3 -3
  480. package/dist/lib/esm/obsidian/i18n/i18n.d.mts +7 -0
  481. package/dist/lib/esm/obsidian/i18n/i18n.mjs +3 -2
  482. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  483. package/dist/lib/esm/obsidian/index.mjs +3 -1
  484. package/dist/lib/esm/obsidian/link.d.mts +22 -22
  485. package/dist/lib/esm/obsidian/link.mjs +76 -62
  486. package/dist/lib/esm/obsidian/logger.d.mts +5 -5
  487. package/dist/lib/esm/obsidian/logger.mjs +11 -11
  488. package/dist/lib/esm/obsidian/loop.d.mts +1 -1
  489. package/dist/lib/esm/obsidian/loop.mjs +4 -4
  490. package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.d.mts +3 -3
  491. package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.mjs +2 -2
  492. package/dist/lib/esm/obsidian/markdown-code-block-processor.d.mts +3 -3
  493. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +25 -26
  494. package/dist/lib/esm/obsidian/markdown-post-processor-registrar.d.mts +3 -3
  495. package/dist/lib/esm/obsidian/markdown-post-processor-registrar.mjs +2 -2
  496. package/dist/lib/esm/obsidian/markdown.mjs +12 -10
  497. package/dist/lib/esm/obsidian/menu-event-registrar.d.mts +1 -1
  498. package/dist/lib/esm/obsidian/metadata-cache.d.mts +2 -2
  499. package/dist/lib/esm/obsidian/metadata-cache.mjs +6 -6
  500. package/dist/lib/esm/obsidian/modals/confirm.mjs +1 -1
  501. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +18 -18
  502. package/dist/lib/esm/obsidian/modals/select-item.d.mts +1 -1
  503. package/dist/lib/esm/obsidian/modals/select-item.mjs +6 -6
  504. package/dist/lib/esm/obsidian/modals/suggest-modal-command-builder.d.mts +5 -5
  505. package/dist/lib/esm/obsidian/modals/suggest-modal-command-builder.mjs +16 -14
  506. package/dist/lib/esm/obsidian/notebook-navigator.d.mts +132 -0
  507. package/dist/lib/esm/obsidian/notebook-navigator.mjs +49 -0
  508. package/dist/lib/esm/obsidian/parse-link.d.mts +4 -4
  509. package/dist/lib/esm/obsidian/parse-link.mjs +51 -48
  510. package/dist/lib/esm/obsidian/path-settings.mjs +17 -11
  511. package/dist/lib/esm/obsidian/pdf.d.mts +2 -2
  512. package/dist/lib/esm/obsidian/pdf.mjs +3 -3
  513. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +156 -52
  514. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +1 -1
  515. package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +2 -2
  516. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +7 -7
  517. package/dist/lib/esm/obsidian/plugin/plugin-event-source.d.mts +11 -9
  518. package/dist/lib/esm/obsidian/plugin/plugin-event-source.mjs +10 -10
  519. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +20 -20
  520. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +11 -1
  521. package/dist/lib/esm/obsidian/plugin/plugin.mjs +23 -2
  522. package/dist/lib/esm/obsidian/popovers/popover-anchor.d.mts +2 -2
  523. package/dist/lib/esm/obsidian/popovers/popover-anchor.mjs +4 -4
  524. package/dist/lib/esm/obsidian/popovers/popover.mjs +9 -9
  525. package/dist/lib/esm/obsidian/queue.d.mts +2 -2
  526. package/dist/lib/esm/obsidian/queue.mjs +6 -6
  527. package/dist/lib/esm/obsidian/resource-lock.d.mts +5 -0
  528. package/dist/lib/esm/obsidian/resource-lock.mjs +147 -64
  529. package/dist/lib/esm/obsidian/resource-url.mjs +2 -2
  530. package/dist/lib/esm/obsidian/ribbon-icon-registrar.d.mts +2 -2
  531. package/dist/lib/esm/obsidian/ribbon-icon-registrar.mjs +1 -1
  532. package/dist/lib/esm/obsidian/setting-components/checkbox-component.d.mts +5 -5
  533. package/dist/lib/esm/obsidian/setting-components/checkbox-component.mjs +8 -8
  534. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.d.mts +2 -2
  535. package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +18 -17
  536. package/dist/lib/esm/obsidian/setting-components/date-component.d.mts +2 -2
  537. package/dist/lib/esm/obsidian/setting-components/date-component.mjs +4 -4
  538. package/dist/lib/esm/obsidian/setting-components/date-time-component.d.mts +2 -2
  539. package/dist/lib/esm/obsidian/setting-components/date-time-component.mjs +4 -4
  540. package/dist/lib/esm/obsidian/setting-components/email-component.d.mts +2 -2
  541. package/dist/lib/esm/obsidian/setting-components/email-component.mjs +4 -4
  542. package/dist/lib/esm/obsidian/setting-components/month-component.d.mts +2 -2
  543. package/dist/lib/esm/obsidian/setting-components/month-component.mjs +4 -4
  544. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.d.mts +2 -2
  545. package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +7 -7
  546. package/dist/lib/esm/obsidian/setting-components/multiple-email-component.d.mts +2 -2
  547. package/dist/lib/esm/obsidian/setting-components/multiple-email-component.mjs +4 -4
  548. package/dist/lib/esm/obsidian/setting-components/multiple-file-component.mjs +2 -2
  549. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.d.mts +2 -2
  550. package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +5 -5
  551. package/dist/lib/esm/obsidian/setting-components/number-component.d.mts +2 -2
  552. package/dist/lib/esm/obsidian/setting-components/number-component.mjs +4 -4
  553. package/dist/lib/esm/obsidian/setting-components/password-component.d.mts +2 -2
  554. package/dist/lib/esm/obsidian/setting-components/password-component.mjs +4 -4
  555. package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.d.mts +2 -2
  556. package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.mjs +6 -6
  557. package/dist/lib/esm/obsidian/setting-components/telephone-component.d.mts +2 -2
  558. package/dist/lib/esm/obsidian/setting-components/telephone-component.mjs +4 -4
  559. package/dist/lib/esm/obsidian/setting-components/text-based-component.d.mts +2 -2
  560. package/dist/lib/esm/obsidian/setting-components/text-based-component.mjs +6 -6
  561. package/dist/lib/esm/obsidian/setting-components/time-component.d.mts +2 -2
  562. package/dist/lib/esm/obsidian/setting-components/time-component.mjs +4 -4
  563. package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.d.mts +2 -2
  564. package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.mjs +5 -5
  565. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.d.mts +2 -2
  566. package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.mjs +6 -6
  567. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.d.mts +2 -2
  568. package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +8 -8
  569. package/dist/lib/esm/obsidian/setting-components/typed-text-component.d.mts +4 -4
  570. package/dist/lib/esm/obsidian/setting-components/typed-text-component.mjs +6 -5
  571. package/dist/lib/esm/obsidian/setting-components/url-component.d.mts +2 -2
  572. package/dist/lib/esm/obsidian/setting-components/url-component.mjs +4 -4
  573. package/dist/lib/esm/obsidian/setting-components/validator-component.d.mts +2 -2
  574. package/dist/lib/esm/obsidian/setting-components/validator-component.mjs +35 -35
  575. package/dist/lib/esm/obsidian/setting-components/week-component.d.mts +2 -2
  576. package/dist/lib/esm/obsidian/setting-components/week-component.mjs +4 -4
  577. package/dist/lib/esm/obsidian/setting-ex.d.mts +42 -42
  578. package/dist/lib/esm/obsidian/setting-ex.mjs +66 -66
  579. package/dist/lib/esm/obsidian/setting-group-ex.d.mts +2 -2
  580. package/dist/lib/esm/obsidian/setting-group-ex.mjs +4 -4
  581. package/dist/lib/esm/obsidian/vault-delete.d.mts +16 -2
  582. package/dist/lib/esm/obsidian/vault-delete.mjs +12 -6
  583. package/dist/lib/esm/obsidian/vault-transaction.mjs +8 -4
  584. package/dist/lib/esm/obsidian/vault.d.mts +32 -11
  585. package/dist/lib/esm/obsidian/vault.mjs +67 -47
  586. package/dist/lib/esm/obsidian/view-registrar.mjs +1 -1
  587. package/dist/lib/esm/obsidian/workspace.mjs +2 -2
  588. package/dist/lib/esm/path.d.mts +1 -1
  589. package/dist/lib/esm/path.mjs +7 -7
  590. package/dist/lib/esm/reg-exp.d.mts +4 -4
  591. package/dist/lib/esm/reg-exp.mjs +28 -21
  592. package/dist/lib/esm/script-utils/build.d.mts +1 -1
  593. package/dist/lib/esm/script-utils/build.mjs +15 -12
  594. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +14 -14
  595. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +26 -20
  596. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +10 -10
  597. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +3 -3
  598. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +6 -6
  599. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +6 -2
  600. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +1 -1
  601. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +20 -20
  602. package/dist/lib/esm/script-utils/check-project-types.d.mts +12 -4
  603. package/dist/lib/esm/script-utils/check-project-types.mjs +3 -3
  604. package/dist/lib/esm/script-utils/cli-utils.d.mts +6 -6
  605. package/dist/lib/esm/script-utils/cli-utils.mjs +29 -33
  606. package/dist/lib/esm/script-utils/demo-vault-coverage.mjs +12 -9
  607. package/dist/lib/esm/script-utils/env-toggle.mjs +3 -3
  608. package/dist/lib/esm/script-utils/exec.d.mts +4 -4
  609. package/dist/lib/esm/script-utils/exec.mjs +32 -32
  610. package/dist/lib/esm/script-utils/formatters/dprint.mjs +2 -2
  611. package/dist/lib/esm/script-utils/fs.mjs +3 -3
  612. package/dist/lib/esm/script-utils/json.d.mts +2 -2
  613. package/dist/lib/esm/script-utils/json.mjs +5 -5
  614. package/dist/lib/esm/script-utils/linters/cspell.mjs +2 -2
  615. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +392 -2
  616. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +3 -1
  617. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +17 -17
  618. package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.d.mts +3 -1
  619. package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.mjs +17 -17
  620. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +3 -1
  621. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +11 -11
  622. package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.d.mts +3 -1
  623. package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.mjs +99 -99
  624. package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.d.mts +3 -1
  625. package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.mjs +3 -3
  626. package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.mts +3 -1
  627. package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-result-members.mjs +11 -11
  628. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.d.mts +9 -3
  629. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +41 -41
  630. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.d.mts +6 -2
  631. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.mjs +15 -13
  632. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.d.mts +3 -1
  633. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.mjs +23 -23
  634. package/dist/lib/esm/script-utils/linters/eslint.mjs +4 -4
  635. package/dist/lib/esm/script-utils/linters/index.d.mts +1 -0
  636. package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
  637. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.d.mts +2 -2
  638. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +8 -3
  639. package/dist/lib/esm/script-utils/linters/markdownlint-ignores.d.mts +35 -0
  640. package/dist/lib/esm/script-utils/linters/markdownlint-ignores.mjs +33 -0
  641. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +13 -9
  642. package/dist/lib/esm/script-utils/linters/over-exposure.d.mts +54 -18
  643. package/dist/lib/esm/script-utils/linters/over-exposure.mjs +8 -8
  644. package/dist/lib/esm/script-utils/npm-run.d.mts +16 -2
  645. package/dist/lib/esm/script-utils/npm-run.mjs +9 -3
  646. package/dist/lib/esm/script-utils/npm.d.mts +11 -11
  647. package/dist/lib/esm/script-utils/npm.mjs +11 -11
  648. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +165 -55
  649. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +1 -1
  650. package/dist/lib/esm/script-utils/test-runners/index.d.mts +1 -0
  651. package/dist/lib/esm/script-utils/test-runners/index.mjs +4 -2
  652. package/dist/lib/esm/script-utils/test-runners/vitest-config.d.mts +118 -0
  653. package/dist/lib/esm/script-utils/test-runners/vitest-config.mjs +210 -0
  654. package/dist/lib/esm/script-utils/validate-declarations.mjs +1 -1
  655. package/dist/lib/esm/script-utils/version.d.mts +21 -21
  656. package/dist/lib/esm/script-utils/version.mjs +48 -45
  657. package/dist/lib/esm/setup.d.mts +1 -1
  658. package/dist/lib/esm/setup.mjs +1 -1
  659. package/dist/lib/esm/strict-proxy.d.mts +2 -2
  660. package/dist/lib/esm/strict-proxy.mjs +20 -20
  661. package/dist/lib/esm/string.d.mts +60 -60
  662. package/dist/lib/esm/string.mjs +80 -79
  663. package/dist/lib/esm/transformers/map-transformer.mjs +2 -2
  664. package/dist/lib/esm/transformers/set-transformer.mjs +2 -2
  665. package/dist/lib/esm/transformers/two-way-map-transformer.mjs +2 -2
  666. package/dist/lib/esm/type-guards.d.mts +6 -6
  667. package/dist/lib/esm/type-guards.mjs +6 -6
  668. package/dist/lib/esm/type.d.mts +2 -2
  669. package/dist/lib/esm/type.mjs +3 -3
  670. package/dist/lib/esm/url.d.mts +4 -4
  671. package/dist/lib/esm/url.mjs +8 -8
  672. package/dist/lib/esm/value-provider.d.mts +6 -6
  673. package/dist/lib/esm/value-provider.mjs +5 -5
  674. package/dist/templates/scripts/vitest-config.ts +2 -88
  675. package/obsidian/components/notebook-navigator-menu-event-registrar-component/package.json +6 -0
  676. package/obsidian/notebook-navigator/package.json +6 -0
  677. package/package.json +17 -33
  678. package/script-utils/linters/markdownlint-ignores/package.json +6 -0
  679. package/script-utils/test-runners/vitest-config/package.json +6 -0
@@ -0,0 +1,139 @@
1
+ /// <reference path="../../library.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Bridges the file and files context-menu events into Notebook Navigator's own menus.
6
+ *
7
+ * Notebook Navigator draws its own file tree and never raises Obsidian's `file-menu` / `files-menu`
8
+ * workspace events, so a plugin's context-menu items vanish for anyone browsing through it. This
9
+ * component is a {@link MenuEventRegistrar} backed by Notebook Navigator's extension API instead of
10
+ * the workspace, so the very same handlers reach both surfaces.
11
+ */
12
+ import type { App, IconName } from 'obsidian';
13
+ import type { DisposableEx } from '../../disposable.mjs';
14
+ import type { EditorMenuEventHandler, FileMenuEventHandler, FilesMenuEventHandler, MenuEventRegistrar } from '../menu-event-registrar.mjs';
15
+ import { LayoutReadyComponent } from './layout-ready-component.mjs';
16
+ /**
17
+ * Parameters for {@link NotebookNavigatorMenuEventRegistrarComponent}.
18
+ */
19
+ export interface NotebookNavigatorMenuEventRegistrarComponentConstructorParams {
20
+ /**
21
+ * The application instance.
22
+ */
23
+ readonly app: App;
24
+ /**
25
+ * The plugin's display name, which titles the parent entry.
26
+ */
27
+ readonly pluginName: string;
28
+ /**
29
+ * The icon for the parent entry.
30
+ *
31
+ * @default `''` (no icon)
32
+ */
33
+ readonly submenuIcon?: IconName | undefined;
34
+ }
35
+ /**
36
+ * {@link MenuEventRegistrar} backed by Notebook Navigator's menu-extension API.
37
+ *
38
+ * Handlers registered here are collected eagerly and bound to Notebook Navigator once the workspace
39
+ * layout is ready. When Notebook Navigator is not installed the component simply stays dormant.
40
+ *
41
+ * Every collected handler writes into a plugin-titled parent entry's submenu, so a handler must NOT
42
+ * declare a section submenu of its own — `Menu.sort()` would fold that into a second, nested
43
+ * plugin-titled entry. `CommandHandlerComponent` takes care of this by forcing
44
+ * `CommandHandlerRegistrationContext.shouldAddCommandToSubmenu` off for the surfaces it feeds here.
45
+ */
46
+ export declare class NotebookNavigatorMenuEventRegistrarComponent extends LayoutReadyComponent implements MenuEventRegistrar {
47
+ /**
48
+ * The plugin's display name, which titles the parent entry.
49
+ */
50
+ protected readonly pluginName: string;
51
+ /**
52
+ * The icon for the parent entry.
53
+ */
54
+ protected readonly submenuIcon: IconName;
55
+ private fileMenuEventHandlers;
56
+ private filesMenuEventHandlers;
57
+ /**
58
+ * Creates a new Notebook Navigator menu event registrar.
59
+ *
60
+ * @param params - The parameters for the component.
61
+ */
62
+ constructor(params: NotebookNavigatorMenuEventRegistrarComponentConstructorParams);
63
+ /**
64
+ * Accepts an editor-menu registration and does nothing with it.
65
+ *
66
+ * Notebook Navigator extends the file tree, not the editor — an editor menu there is Obsidian's
67
+ * own, which the handlers already reach through the workspace event. The registration is inert
68
+ * rather than refused so a handler that declares one is not a load-time error.
69
+ *
70
+ * @param _handler - The handler, deliberately unused.
71
+ * @returns A {@link DisposableEx} that has nothing to undo.
72
+ */
73
+ registerEditorMenuEventHandler(_handler: EditorMenuEventHandler): DisposableEx;
74
+ /**
75
+ * Collects a single-file menu handler.
76
+ *
77
+ * @param handler - The handler to collect.
78
+ * @returns A {@link DisposableEx} that drops the handler again (or on component unload).
79
+ */
80
+ registerFileMenuEventHandler(handler: FileMenuEventHandler): DisposableEx;
81
+ /**
82
+ * Collects a multi-file menu handler.
83
+ *
84
+ * @param handler - The handler to collect.
85
+ * @returns A {@link DisposableEx} that drops the handler again (or on component unload).
86
+ */
87
+ registerFilesMenuEventHandler(handler: FilesMenuEventHandler): DisposableEx;
88
+ /**
89
+ * Binds to Notebook Navigator once every plugin has loaded.
90
+ *
91
+ * Layout-ready rather than `onload`: plugin load order is not ours to choose, and Notebook
92
+ * Navigator's API only exists once its own plugin is up. When it is not installed the component
93
+ * stays dormant — enabling it later takes an Obsidian reload, exactly as it does for anything else
94
+ * that reads another plugin at startup.
95
+ */
96
+ protected onLayoutReady(): void;
97
+ /**
98
+ * Adds the plugin's entry, unless the handlers had nothing to contribute.
99
+ *
100
+ * The menu is populated TWICE, and both runs are needed: Notebook Navigator's `addItem` cannot be
101
+ * taken back once called, so the only way to keep an unrelated file's menu clean is to ask the
102
+ * handlers first, against a menu nobody sees. The gates they answer with are metadata reads, so the
103
+ * second run costs nothing and cannot disagree with the first.
104
+ *
105
+ * @param context - The Notebook Navigator menu being built.
106
+ * @param populate - Runs the collected handlers against a menu.
107
+ */
108
+ private contribute;
109
+ /**
110
+ * Handles a file menu, single or multi-selection.
111
+ *
112
+ * @param context - The Notebook Navigator menu being built.
113
+ */
114
+ private handleFileMenu;
115
+ /**
116
+ * Handles a folder menu.
117
+ *
118
+ * A folder goes through the SINGLE-file handlers, because that is how Obsidian's own `file-menu`
119
+ * carries one — the event is typed {@link TAbstractFile}, and the folder handlers are the ones that
120
+ * narrow it.
121
+ *
122
+ * @param context - The Notebook Navigator menu being built.
123
+ */
124
+ private handleFolderMenu;
125
+ /**
126
+ * Runs the single-file handlers against a menu.
127
+ *
128
+ * @param menu - The menu to populate.
129
+ * @param abstractFile - The file or folder the menu was raised on.
130
+ */
131
+ private runFileMenuHandlers;
132
+ /**
133
+ * Runs the multi-file handlers against a menu.
134
+ *
135
+ * @param menu - The menu to populate.
136
+ * @param abstractFiles - The files the menu was raised on.
137
+ */
138
+ private runFilesMenuHandlers;
139
+ }
@@ -0,0 +1,196 @@
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 initEsm() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ if (globalThis.process) {
9
+ return;
10
+ }
11
+
12
+ const browserProcess = {
13
+ browser: true,
14
+ cwd() {
15
+ return '/';
16
+ },
17
+ env: {},
18
+ platform: 'android'
19
+ };
20
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
21
+ globalThis.process = browserProcess;
22
+ })();
23
+
24
+ import { Menu as MenuImpl } from "obsidian";
25
+ import { CallbackDisposable } from "../../disposable.mjs";
26
+ import { noop } from "../../function.mjs";
27
+ import {
28
+ NOTEBOOK_NAVIGATOR_MENU_SOURCE,
29
+ resolveNotebookNavigatorApi
30
+ } from "../notebook-navigator.mjs";
31
+ import { LayoutReadyComponent } from "./layout-ready-component.mjs";
32
+ class NotebookNavigatorMenuEventRegistrarComponent extends LayoutReadyComponent {
33
+ /**
34
+ * The plugin's display name, which titles the parent entry.
35
+ */
36
+ pluginName;
37
+ /**
38
+ * The icon for the parent entry.
39
+ */
40
+ submenuIcon;
41
+ fileMenuEventHandlers = [];
42
+ filesMenuEventHandlers = [];
43
+ /**
44
+ * Creates a new Notebook Navigator menu event registrar.
45
+ *
46
+ * @param params - The parameters for the component.
47
+ */
48
+ constructor(params) {
49
+ super(params.app);
50
+ this.pluginName = params.pluginName;
51
+ this.submenuIcon = params.submenuIcon ?? "";
52
+ }
53
+ /**
54
+ * Accepts an editor-menu registration and does nothing with it.
55
+ *
56
+ * Notebook Navigator extends the file tree, not the editor — an editor menu there is Obsidian's
57
+ * own, which the handlers already reach through the workspace event. The registration is inert
58
+ * rather than refused so a handler that declares one is not a load-time error.
59
+ *
60
+ * @param _handler - The handler, deliberately unused.
61
+ * @returns A {@link DisposableEx} that has nothing to undo.
62
+ */
63
+ registerEditorMenuEventHandler(_handler) {
64
+ return new CallbackDisposable({ callback: noop });
65
+ }
66
+ /**
67
+ * Collects a single-file menu handler.
68
+ *
69
+ * @param handler - The handler to collect.
70
+ * @returns A {@link DisposableEx} that drops the handler again (or on component unload).
71
+ */
72
+ registerFileMenuEventHandler(handler) {
73
+ this.fileMenuEventHandlers.push(handler);
74
+ return this.registerDisposable(
75
+ new CallbackDisposable({
76
+ callback: () => {
77
+ this.fileMenuEventHandlers = this.fileMenuEventHandlers.filter((collected) => collected !== handler);
78
+ }
79
+ })
80
+ );
81
+ }
82
+ /**
83
+ * Collects a multi-file menu handler.
84
+ *
85
+ * @param handler - The handler to collect.
86
+ * @returns A {@link DisposableEx} that drops the handler again (or on component unload).
87
+ */
88
+ registerFilesMenuEventHandler(handler) {
89
+ this.filesMenuEventHandlers.push(handler);
90
+ return this.registerDisposable(
91
+ new CallbackDisposable({
92
+ callback: () => {
93
+ this.filesMenuEventHandlers = this.filesMenuEventHandlers.filter((collected) => collected !== handler);
94
+ }
95
+ })
96
+ );
97
+ }
98
+ /**
99
+ * Binds to Notebook Navigator once every plugin has loaded.
100
+ *
101
+ * Layout-ready rather than `onload`: plugin load order is not ours to choose, and Notebook
102
+ * Navigator's API only exists once its own plugin is up. When it is not installed the component
103
+ * stays dormant — enabling it later takes an Obsidian reload, exactly as it does for anything else
104
+ * that reads another plugin at startup.
105
+ */
106
+ onLayoutReady() {
107
+ const api = resolveNotebookNavigatorApi(this.app);
108
+ if (api === null) {
109
+ return;
110
+ }
111
+ this.register(api.menus.registerFileMenu((context) => {
112
+ this.handleFileMenu(context);
113
+ }));
114
+ this.register(api.menus.registerFolderMenu((context) => {
115
+ this.handleFolderMenu(context);
116
+ }));
117
+ }
118
+ /**
119
+ * Adds the plugin's entry, unless the handlers had nothing to contribute.
120
+ *
121
+ * The menu is populated TWICE, and both runs are needed: Notebook Navigator's `addItem` cannot be
122
+ * taken back once called, so the only way to keep an unrelated file's menu clean is to ask the
123
+ * handlers first, against a menu nobody sees. The gates they answer with are metadata reads, so the
124
+ * second run costs nothing and cannot disagree with the first.
125
+ *
126
+ * @param context - The Notebook Navigator menu being built.
127
+ * @param populate - Runs the collected handlers against a menu.
128
+ */
129
+ contribute(context, populate) {
130
+ const probeMenu = new MenuImpl();
131
+ populate(probeMenu);
132
+ if (probeMenu.items.length === 0) {
133
+ return;
134
+ }
135
+ context.addItem((item) => {
136
+ item.setTitle(this.pluginName).setIcon(this.submenuIcon);
137
+ populate(item.setSubmenu());
138
+ });
139
+ }
140
+ /**
141
+ * Handles a file menu, single or multi-selection.
142
+ *
143
+ * @param context - The Notebook Navigator menu being built.
144
+ */
145
+ handleFileMenu(context) {
146
+ const selectedFiles = [...context.selection.files];
147
+ this.contribute(
148
+ context,
149
+ context.selection.mode === "multiple" ? (menu) => {
150
+ this.runFilesMenuHandlers(menu, selectedFiles);
151
+ } : (menu) => {
152
+ this.runFileMenuHandlers(menu, context.file);
153
+ }
154
+ );
155
+ }
156
+ /**
157
+ * Handles a folder menu.
158
+ *
159
+ * A folder goes through the SINGLE-file handlers, because that is how Obsidian's own `file-menu`
160
+ * carries one — the event is typed {@link TAbstractFile}, and the folder handlers are the ones that
161
+ * narrow it.
162
+ *
163
+ * @param context - The Notebook Navigator menu being built.
164
+ */
165
+ handleFolderMenu(context) {
166
+ this.contribute(context, (menu) => {
167
+ this.runFileMenuHandlers(menu, context.folder);
168
+ });
169
+ }
170
+ /**
171
+ * Runs the single-file handlers against a menu.
172
+ *
173
+ * @param menu - The menu to populate.
174
+ * @param abstractFile - The file or folder the menu was raised on.
175
+ */
176
+ runFileMenuHandlers(menu, abstractFile) {
177
+ for (const handler of this.fileMenuEventHandlers) {
178
+ handler(menu, abstractFile, NOTEBOOK_NAVIGATOR_MENU_SOURCE);
179
+ }
180
+ }
181
+ /**
182
+ * Runs the multi-file handlers against a menu.
183
+ *
184
+ * @param menu - The menu to populate.
185
+ * @param abstractFiles - The files the menu was raised on.
186
+ */
187
+ runFilesMenuHandlers(menu, abstractFiles) {
188
+ for (const handler of this.filesMenuEventHandlers) {
189
+ handler(menu, abstractFiles, NOTEBOOK_NAVIGATOR_MENU_SOURCE);
190
+ }
191
+ }
192
+ }
193
+ export {
194
+ NotebookNavigatorMenuEventRegistrarComponent
195
+ };
196
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvbm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEJyaWRnZXMgdGhlIGZpbGUgYW5kIGZpbGVzIGNvbnRleHQtbWVudSBldmVudHMgaW50byBOb3RlYm9vayBOYXZpZ2F0b3IncyBvd24gbWVudXMuXG4gKlxuICogTm90ZWJvb2sgTmF2aWdhdG9yIGRyYXdzIGl0cyBvd24gZmlsZSB0cmVlIGFuZCBuZXZlciByYWlzZXMgT2JzaWRpYW4ncyBgZmlsZS1tZW51YCAvIGBmaWxlcy1tZW51YFxuICogd29ya3NwYWNlIGV2ZW50cywgc28gYSBwbHVnaW4ncyBjb250ZXh0LW1lbnUgaXRlbXMgdmFuaXNoIGZvciBhbnlvbmUgYnJvd3NpbmcgdGhyb3VnaCBpdC4gVGhpc1xuICogY29tcG9uZW50IGlzIGEge0BsaW5rIE1lbnVFdmVudFJlZ2lzdHJhcn0gYmFja2VkIGJ5IE5vdGVib29rIE5hdmlnYXRvcidzIGV4dGVuc2lvbiBBUEkgaW5zdGVhZCBvZlxuICogdGhlIHdvcmtzcGFjZSwgc28gdGhlIHZlcnkgc2FtZSBoYW5kbGVycyByZWFjaCBib3RoIHN1cmZhY2VzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBJY29uTmFtZSxcbiAgTWVudSxcbiAgVEFic3RyYWN0RmlsZSxcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBNZW51IGFzIE1lbnVJbXBsIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IERpc3Bvc2FibGVFeCB9IGZyb20gJy4uLy4uL2Rpc3Bvc2FibGUudHMnO1xuaW1wb3J0IHR5cGUge1xuICBFZGl0b3JNZW51RXZlbnRIYW5kbGVyLFxuICBGaWxlTWVudUV2ZW50SGFuZGxlcixcbiAgRmlsZXNNZW51RXZlbnRIYW5kbGVyLFxuICBNZW51RXZlbnRSZWdpc3RyYXJcbn0gZnJvbSAnLi4vbWVudS1ldmVudC1yZWdpc3RyYXIudHMnO1xuaW1wb3J0IHR5cGUge1xuICBOb3RlYm9va05hdmlnYXRvckZpbGVNZW51Q29udGV4dCxcbiAgTm90ZWJvb2tOYXZpZ2F0b3JGb2xkZXJNZW51Q29udGV4dCxcbiAgTm90ZWJvb2tOYXZpZ2F0b3JNZW51Q29udGV4dFxufSBmcm9tICcuLi9ub3RlYm9vay1uYXZpZ2F0b3IudHMnO1xuXG5pbXBvcnQgeyBDYWxsYmFja0Rpc3Bvc2FibGUgfSBmcm9tICcuLi8uLi9kaXNwb3NhYmxlLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9mdW5jdGlvbi50cyc7XG5pbXBvcnQge1xuICBOT1RFQk9PS19OQVZJR0FUT1JfTUVOVV9TT1VSQ0UsXG4gIHJlc29sdmVOb3RlYm9va05hdmlnYXRvckFwaVxufSBmcm9tICcuLi9ub3RlYm9vay1uYXZpZ2F0b3IudHMnO1xuaW1wb3J0IHsgTGF5b3V0UmVhZHlDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC1yZWFkeS1jb21wb25lbnQudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbidzIGRpc3BsYXkgbmFtZSwgd2hpY2ggdGl0bGVzIHRoZSBwYXJlbnQgZW50cnkuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpY29uIGZvciB0aGUgcGFyZW50IGVudHJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgIChubyBpY29uKVxuICAgKi9cbiAgcmVhZG9ubHkgc3VibWVudUljb24/OiBJY29uTmFtZSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiB7QGxpbmsgTWVudUV2ZW50UmVnaXN0cmFyfSBiYWNrZWQgYnkgTm90ZWJvb2sgTmF2aWdhdG9yJ3MgbWVudS1leHRlbnNpb24gQVBJLlxuICpcbiAqIEhhbmRsZXJzIHJlZ2lzdGVyZWQgaGVyZSBhcmUgY29sbGVjdGVkIGVhZ2VybHkgYW5kIGJvdW5kIHRvIE5vdGVib29rIE5hdmlnYXRvciBvbmNlIHRoZSB3b3Jrc3BhY2VcbiAqIGxheW91dCBpcyByZWFkeS4gV2hlbiBOb3RlYm9vayBOYXZpZ2F0b3IgaXMgbm90IGluc3RhbGxlZCB0aGUgY29tcG9uZW50IHNpbXBseSBzdGF5cyBkb3JtYW50LlxuICpcbiAqIEV2ZXJ5IGNvbGxlY3RlZCBoYW5kbGVyIHdyaXRlcyBpbnRvIGEgcGx1Z2luLXRpdGxlZCBwYXJlbnQgZW50cnkncyBzdWJtZW51LCBzbyBhIGhhbmRsZXIgbXVzdCBOT1RcbiAqIGRlY2xhcmUgYSBzZWN0aW9uIHN1Ym1lbnUgb2YgaXRzIG93biBcdTIwMTQgYE1lbnUuc29ydCgpYCB3b3VsZCBmb2xkIHRoYXQgaW50byBhIHNlY29uZCwgbmVzdGVkXG4gKiBwbHVnaW4tdGl0bGVkIGVudHJ5LiBgQ29tbWFuZEhhbmRsZXJDb21wb25lbnRgIHRha2VzIGNhcmUgb2YgdGhpcyBieSBmb3JjaW5nXG4gKiBgQ29tbWFuZEhhbmRsZXJSZWdpc3RyYXRpb25Db250ZXh0LnNob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnVgIG9mZiBmb3IgdGhlIHN1cmZhY2VzIGl0IGZlZWRzIGhlcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCBleHRlbmRzIExheW91dFJlYWR5Q29tcG9uZW50IGltcGxlbWVudHMgTWVudUV2ZW50UmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4ncyBkaXNwbGF5IG5hbWUsIHdoaWNoIHRpdGxlcyB0aGUgcGFyZW50IGVudHJ5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGljb24gZm9yIHRoZSBwYXJlbnQgZW50cnkuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3VibWVudUljb246IEljb25OYW1lO1xuXG4gIHByaXZhdGUgZmlsZU1lbnVFdmVudEhhbmRsZXJzOiBGaWxlTWVudUV2ZW50SGFuZGxlcltdID0gW107XG4gIHByaXZhdGUgZmlsZXNNZW51RXZlbnRIYW5kbGVyczogRmlsZXNNZW51RXZlbnRIYW5kbGVyW10gPSBbXTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBOb3RlYm9vayBOYXZpZ2F0b3IgbWVudSBldmVudCByZWdpc3RyYXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50Q29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICBzdXBlcihwYXJhbXMuYXBwKTtcbiAgICB0aGlzLnBsdWdpbk5hbWUgPSBwYXJhbXMucGx1Z2luTmFtZTtcbiAgICB0aGlzLnN1Ym1lbnVJY29uID0gcGFyYW1zLnN1Ym1lbnVJY29uID8/ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgYW4gZWRpdG9yLW1lbnUgcmVnaXN0cmF0aW9uIGFuZCBkb2VzIG5vdGhpbmcgd2l0aCBpdC5cbiAgICpcbiAgICogTm90ZWJvb2sgTmF2aWdhdG9yIGV4dGVuZHMgdGhlIGZpbGUgdHJlZSwgbm90IHRoZSBlZGl0b3IgXHUyMDE0IGFuIGVkaXRvciBtZW51IHRoZXJlIGlzIE9ic2lkaWFuJ3NcbiAgICogb3duLCB3aGljaCB0aGUgaGFuZGxlcnMgYWxyZWFkeSByZWFjaCB0aHJvdWdoIHRoZSB3b3Jrc3BhY2UgZXZlbnQuIFRoZSByZWdpc3RyYXRpb24gaXMgaW5lcnRcbiAgICogcmF0aGVyIHRoYW4gcmVmdXNlZCBzbyBhIGhhbmRsZXIgdGhhdCBkZWNsYXJlcyBvbmUgaXMgbm90IGEgbG9hZC10aW1lIGVycm9yLlxuICAgKlxuICAgKiBAcGFyYW0gX2hhbmRsZXIgLSBUaGUgaGFuZGxlciwgZGVsaWJlcmF0ZWx5IHVudXNlZC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgRGlzcG9zYWJsZUV4fSB0aGF0IGhhcyBub3RoaW5nIHRvIHVuZG8uXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJFZGl0b3JNZW51RXZlbnRIYW5kbGVyKF9oYW5kbGVyOiBFZGl0b3JNZW51RXZlbnRIYW5kbGVyKTogRGlzcG9zYWJsZUV4IHtcbiAgICByZXR1cm4gbmV3IENhbGxiYWNrRGlzcG9zYWJsZSh7IGNhbGxiYWNrOiBub29wIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbGxlY3RzIGEgc2luZ2xlLWZpbGUgbWVudSBoYW5kbGVyLlxuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBoYW5kbGVyIHRvIGNvbGxlY3QuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIERpc3Bvc2FibGVFeH0gdGhhdCBkcm9wcyB0aGUgaGFuZGxlciBhZ2FpbiAob3Igb24gY29tcG9uZW50IHVubG9hZCkuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJGaWxlTWVudUV2ZW50SGFuZGxlcihoYW5kbGVyOiBGaWxlTWVudUV2ZW50SGFuZGxlcik6IERpc3Bvc2FibGVFeCB7XG4gICAgdGhpcy5maWxlTWVudUV2ZW50SGFuZGxlcnMucHVzaChoYW5kbGVyKTtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUoXG4gICAgICBuZXcgQ2FsbGJhY2tEaXNwb3NhYmxlKHtcbiAgICAgICAgY2FsbGJhY2s6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLmZpbGVNZW51RXZlbnRIYW5kbGVycyA9IHRoaXMuZmlsZU1lbnVFdmVudEhhbmRsZXJzLmZpbHRlcigoY29sbGVjdGVkKSA9PiBjb2xsZWN0ZWQgIT09IGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdHMgYSBtdWx0aS1maWxlIG1lbnUgaGFuZGxlci5cbiAgICpcbiAgICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgaGFuZGxlciB0byBjb2xsZWN0LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBEaXNwb3NhYmxlRXh9IHRoYXQgZHJvcHMgdGhlIGhhbmRsZXIgYWdhaW4gKG9yIG9uIGNvbXBvbmVudCB1bmxvYWQpLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyRmlsZXNNZW51RXZlbnRIYW5kbGVyKGhhbmRsZXI6IEZpbGVzTWVudUV2ZW50SGFuZGxlcik6IERpc3Bvc2FibGVFeCB7XG4gICAgdGhpcy5maWxlc01lbnVFdmVudEhhbmRsZXJzLnB1c2goaGFuZGxlcik7XG4gICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKFxuICAgICAgbmV3IENhbGxiYWNrRGlzcG9zYWJsZSh7XG4gICAgICAgIGNhbGxiYWNrOiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5maWxlc01lbnVFdmVudEhhbmRsZXJzID0gdGhpcy5maWxlc01lbnVFdmVudEhhbmRsZXJzLmZpbHRlcigoY29sbGVjdGVkKSA9PiBjb2xsZWN0ZWQgIT09IGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdG8gTm90ZWJvb2sgTmF2aWdhdG9yIG9uY2UgZXZlcnkgcGx1Z2luIGhhcyBsb2FkZWQuXG4gICAqXG4gICAqIExheW91dC1yZWFkeSByYXRoZXIgdGhhbiBgb25sb2FkYDogcGx1Z2luIGxvYWQgb3JkZXIgaXMgbm90IG91cnMgdG8gY2hvb3NlLCBhbmQgTm90ZWJvb2tcbiAgICogTmF2aWdhdG9yJ3MgQVBJIG9ubHkgZXhpc3RzIG9uY2UgaXRzIG93biBwbHVnaW4gaXMgdXAuIFdoZW4gaXQgaXMgbm90IGluc3RhbGxlZCB0aGUgY29tcG9uZW50XG4gICAqIHN0YXlzIGRvcm1hbnQgXHUyMDE0IGVuYWJsaW5nIGl0IGxhdGVyIHRha2VzIGFuIE9ic2lkaWFuIHJlbG9hZCwgZXhhY3RseSBhcyBpdCBkb2VzIGZvciBhbnl0aGluZyBlbHNlXG4gICAqIHRoYXQgcmVhZHMgYW5vdGhlciBwbHVnaW4gYXQgc3RhcnR1cC5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbkxheW91dFJlYWR5KCk6IHZvaWQge1xuICAgIGNvbnN0IGFwaSA9IHJlc29sdmVOb3RlYm9va05hdmlnYXRvckFwaSh0aGlzLmFwcCk7XG4gICAgaWYgKGFwaSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVnaXN0ZXIoYXBpLm1lbnVzLnJlZ2lzdGVyRmlsZU1lbnUoKGNvbnRleHQpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlRmlsZU1lbnUoY29udGV4dCk7XG4gICAgfSkpO1xuICAgIHRoaXMucmVnaXN0ZXIoYXBpLm1lbnVzLnJlZ2lzdGVyRm9sZGVyTWVudSgoY29udGV4dCkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVGb2xkZXJNZW51KGNvbnRleHQpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBwbHVnaW4ncyBlbnRyeSwgdW5sZXNzIHRoZSBoYW5kbGVycyBoYWQgbm90aGluZyB0byBjb250cmlidXRlLlxuICAgKlxuICAgKiBUaGUgbWVudSBpcyBwb3B1bGF0ZWQgVFdJQ0UsIGFuZCBib3RoIHJ1bnMgYXJlIG5lZWRlZDogTm90ZWJvb2sgTmF2aWdhdG9yJ3MgYGFkZEl0ZW1gIGNhbm5vdCBiZVxuICAgKiB0YWtlbiBiYWNrIG9uY2UgY2FsbGVkLCBzbyB0aGUgb25seSB3YXkgdG8ga2VlcCBhbiB1bnJlbGF0ZWQgZmlsZSdzIG1lbnUgY2xlYW4gaXMgdG8gYXNrIHRoZVxuICAgKiBoYW5kbGVycyBmaXJzdCwgYWdhaW5zdCBhIG1lbnUgbm9ib2R5IHNlZXMuIFRoZSBnYXRlcyB0aGV5IGFuc3dlciB3aXRoIGFyZSBtZXRhZGF0YSByZWFkcywgc28gdGhlXG4gICAqIHNlY29uZCBydW4gY29zdHMgbm90aGluZyBhbmQgY2Fubm90IGRpc2FncmVlIHdpdGggdGhlIGZpcnN0LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBOb3RlYm9vayBOYXZpZ2F0b3IgbWVudSBiZWluZyBidWlsdC5cbiAgICogQHBhcmFtIHBvcHVsYXRlIC0gUnVucyB0aGUgY29sbGVjdGVkIGhhbmRsZXJzIGFnYWluc3QgYSBtZW51LlxuICAgKi9cbiAgcHJpdmF0ZSBjb250cmlidXRlKGNvbnRleHQ6IE5vdGVib29rTmF2aWdhdG9yTWVudUNvbnRleHQsIHBvcHVsYXRlOiAobWVudTogTWVudSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIGNvbnN0IHByb2JlTWVudSA9IG5ldyBNZW51SW1wbCgpO1xuICAgIHBvcHVsYXRlKHByb2JlTWVudSk7XG5cbiAgICBpZiAocHJvYmVNZW51Lml0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnRleHQuYWRkSXRlbSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbVxuICAgICAgICAuc2V0VGl0bGUodGhpcy5wbHVnaW5OYW1lKVxuICAgICAgICAuc2V0SWNvbih0aGlzLnN1Ym1lbnVJY29uKTtcbiAgICAgIHBvcHVsYXRlKGl0ZW0uc2V0U3VibWVudSgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGEgZmlsZSBtZW51LCBzaW5nbGUgb3IgbXVsdGktc2VsZWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBOb3RlYm9vayBOYXZpZ2F0b3IgbWVudSBiZWluZyBidWlsdC5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRmlsZU1lbnUoY29udGV4dDogTm90ZWJvb2tOYXZpZ2F0b3JGaWxlTWVudUNvbnRleHQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpbGVzOiBURmlsZVtdID0gWy4uLmNvbnRleHQuc2VsZWN0aW9uLmZpbGVzXTtcbiAgICB0aGlzLmNvbnRyaWJ1dGUoXG4gICAgICBjb250ZXh0LFxuICAgICAgY29udGV4dC5zZWxlY3Rpb24ubW9kZSA9PT0gJ211bHRpcGxlJ1xuICAgICAgICA/IChtZW51OiBNZW51KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5ydW5GaWxlc01lbnVIYW5kbGVycyhtZW51LCBzZWxlY3RlZEZpbGVzKTtcbiAgICAgICAgfVxuICAgICAgICA6IChtZW51OiBNZW51KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5ydW5GaWxlTWVudUhhbmRsZXJzKG1lbnUsIGNvbnRleHQuZmlsZSk7XG4gICAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgYSBmb2xkZXIgbWVudS5cbiAgICpcbiAgICogQSBmb2xkZXIgZ29lcyB0aHJvdWdoIHRoZSBTSU5HTEUtZmlsZSBoYW5kbGVycywgYmVjYXVzZSB0aGF0IGlzIGhvdyBPYnNpZGlhbidzIG93biBgZmlsZS1tZW51YFxuICAgKiBjYXJyaWVzIG9uZSBcdTIwMTQgdGhlIGV2ZW50IGlzIHR5cGVkIHtAbGluayBUQWJzdHJhY3RGaWxlfSwgYW5kIHRoZSBmb2xkZXIgaGFuZGxlcnMgYXJlIHRoZSBvbmVzIHRoYXRcbiAgICogbmFycm93IGl0LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBOb3RlYm9vayBOYXZpZ2F0b3IgbWVudSBiZWluZyBidWlsdC5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRm9sZGVyTWVudShjb250ZXh0OiBOb3RlYm9va05hdmlnYXRvckZvbGRlck1lbnVDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5jb250cmlidXRlKGNvbnRleHQsIChtZW51OiBNZW51KTogdm9pZCA9PiB7XG4gICAgICB0aGlzLnJ1bkZpbGVNZW51SGFuZGxlcnMobWVudSwgY29udGV4dC5mb2xkZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgdGhlIHNpbmdsZS1maWxlIGhhbmRsZXJzIGFnYWluc3QgYSBtZW51LlxuICAgKlxuICAgKiBAcGFyYW0gbWVudSAtIFRoZSBtZW51IHRvIHBvcHVsYXRlLlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGZpbGUgb3IgZm9sZGVyIHRoZSBtZW51IHdhcyByYWlzZWQgb24uXG4gICAqL1xuICBwcml2YXRlIHJ1bkZpbGVNZW51SGFuZGxlcnMobWVudTogTWVudSwgYWJzdHJhY3RGaWxlOiBUQWJzdHJhY3RGaWxlKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHRoaXMuZmlsZU1lbnVFdmVudEhhbmRsZXJzKSB7XG4gICAgICBoYW5kbGVyKG1lbnUsIGFic3RyYWN0RmlsZSwgTk9URUJPT0tfTkFWSUdBVE9SX01FTlVfU09VUkNFKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyB0aGUgbXVsdGktZmlsZSBoYW5kbGVycyBhZ2FpbnN0IGEgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIG1lbnUgLSBUaGUgbWVudSB0byBwb3B1bGF0ZS5cbiAgICogQHBhcmFtIGFic3RyYWN0RmlsZXMgLSBUaGUgZmlsZXMgdGhlIG1lbnUgd2FzIHJhaXNlZCBvbi5cbiAgICovXG4gIHByaXZhdGUgcnVuRmlsZXNNZW51SGFuZGxlcnMobWVudTogTWVudSwgYWJzdHJhY3RGaWxlczogVEFic3RyYWN0RmlsZVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHRoaXMuZmlsZXNNZW51RXZlbnRIYW5kbGVycykge1xuICAgICAgaGFuZGxlcihtZW51LCBhYnN0cmFjdEZpbGVzLCBOT1RFQk9PS19OQVZJR0FU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