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,297 @@
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 initCjs() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ const globalThisRecord = globalThis;
9
+ globalThisRecord['__name'] ??= name;
10
+ const originalRequire = require;
11
+ if (originalRequire && !originalRequire.__isPatched) {
12
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
13
+ require = Object.assign(
14
+ (id) => requirePatched(id),
15
+ originalRequire,
16
+ {
17
+ __isPatched: true
18
+ }
19
+ );
20
+ }
21
+
22
+ const newFuncs = {
23
+ __extractDefault() {
24
+ return extractDefault;
25
+ },
26
+ process() {
27
+ const browserProcess = {
28
+ browser: true,
29
+ cwd() {
30
+ return '/';
31
+ },
32
+ env: {},
33
+ platform: 'android'
34
+ };
35
+ return browserProcess;
36
+ }
37
+ };
38
+
39
+ for (const key of Object.keys(newFuncs)) {
40
+ globalThisRecord[key] ??= newFuncs[key]?.();
41
+ }
42
+
43
+ function extractDefault(module) {
44
+ return module && module.__esModule && 'default' in module ? module.default : module;
45
+ }
46
+
47
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
48
+ '@codemirror/autocomplete',
49
+ '@codemirror/collab',
50
+ '@codemirror/commands',
51
+ '@codemirror/language',
52
+ '@codemirror/lint',
53
+ '@codemirror/search',
54
+ '@codemirror/state',
55
+ '@codemirror/text',
56
+ '@codemirror/view',
57
+ '@lezer/common',
58
+ '@lezer/highlight',
59
+ '@lezer/lr',
60
+ 'obsidian']
61
+ );
62
+
63
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
64
+ '@codemirror/closebrackets',
65
+ '@codemirror/comment',
66
+ '@codemirror/fold',
67
+ '@codemirror/gutter',
68
+ '@codemirror/highlight',
69
+ '@codemirror/history',
70
+ '@codemirror/matchbrackets',
71
+ '@codemirror/panel',
72
+ '@codemirror/rangeset',
73
+ '@codemirror/rectangular-selection',
74
+ '@codemirror/stream-parser',
75
+ '@codemirror/tooltip']
76
+ );
77
+
78
+ function requirePatched(id) {
79
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
80
+ return originalRequire?.(id);
81
+ }
82
+
83
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
84
+ if (globalThis.app.isMobile) {
85
+ if (id === 'process' || id === 'node:process') {
86
+ // eslint-disable-next-line no-console -- Valid usage.
87
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
88
+
89
+ return process;
90
+ }
91
+ } else {
92
+ const module = originalRequire?.(id);
93
+ if (module) {
94
+ return extractDefault(module);
95
+ }
96
+ }
97
+
98
+ // eslint-disable-next-line no-console -- Valid usage.
99
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
100
+ return {};
101
+ }
102
+ })();
103
+
104
+ "use strict";
105
+ var __defProp = Object.defineProperty;
106
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
107
+ var __getOwnPropNames = Object.getOwnPropertyNames;
108
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
109
+ var __export = (target, all) => {
110
+ for (var name in all)
111
+ __defProp(target, name, { get: all[name], enumerable: true });
112
+ };
113
+ var __copyProps = (to, from, except, desc) => {
114
+ if (from && typeof from === "object" || typeof from === "function") {
115
+ for (let key of __getOwnPropNames(from))
116
+ if (!__hasOwnProp.call(to, key) && key !== except)
117
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
118
+ }
119
+ return to;
120
+ };
121
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
122
+ var notebook_navigator_menu_event_registrar_component_exports = {};
123
+ __export(notebook_navigator_menu_event_registrar_component_exports, {
124
+ NotebookNavigatorMenuEventRegistrarComponent: () => NotebookNavigatorMenuEventRegistrarComponent
125
+ });
126
+ module.exports = __toCommonJS(notebook_navigator_menu_event_registrar_component_exports);
127
+ var import_obsidian = require('obsidian');
128
+ var import_disposable = require('../../disposable.cjs');
129
+ var import_function = require('../../function.cjs');
130
+ var import_notebook_navigator = require('../notebook-navigator.cjs');
131
+ var import_layout_ready_component = require('./layout-ready-component.cjs');
132
+ class NotebookNavigatorMenuEventRegistrarComponent extends import_layout_ready_component.LayoutReadyComponent {
133
+ /**
134
+ * The plugin's display name, which titles the parent entry.
135
+ */
136
+ pluginName;
137
+ /**
138
+ * The icon for the parent entry.
139
+ */
140
+ submenuIcon;
141
+ fileMenuEventHandlers = [];
142
+ filesMenuEventHandlers = [];
143
+ /**
144
+ * Creates a new Notebook Navigator menu event registrar.
145
+ *
146
+ * @param params - The parameters for the component.
147
+ */
148
+ constructor(params) {
149
+ super(params.app);
150
+ this.pluginName = params.pluginName;
151
+ this.submenuIcon = params.submenuIcon ?? "";
152
+ }
153
+ /**
154
+ * Accepts an editor-menu registration and does nothing with it.
155
+ *
156
+ * Notebook Navigator extends the file tree, not the editor — an editor menu there is Obsidian's
157
+ * own, which the handlers already reach through the workspace event. The registration is inert
158
+ * rather than refused so a handler that declares one is not a load-time error.
159
+ *
160
+ * @param _handler - The handler, deliberately unused.
161
+ * @returns A {@link DisposableEx} that has nothing to undo.
162
+ */
163
+ registerEditorMenuEventHandler(_handler) {
164
+ return new import_disposable.CallbackDisposable({ callback: import_function.noop });
165
+ }
166
+ /**
167
+ * Collects a single-file menu handler.
168
+ *
169
+ * @param handler - The handler to collect.
170
+ * @returns A {@link DisposableEx} that drops the handler again (or on component unload).
171
+ */
172
+ registerFileMenuEventHandler(handler) {
173
+ this.fileMenuEventHandlers.push(handler);
174
+ return this.registerDisposable(
175
+ new import_disposable.CallbackDisposable({
176
+ callback: () => {
177
+ this.fileMenuEventHandlers = this.fileMenuEventHandlers.filter((collected) => collected !== handler);
178
+ }
179
+ })
180
+ );
181
+ }
182
+ /**
183
+ * Collects a multi-file menu handler.
184
+ *
185
+ * @param handler - The handler to collect.
186
+ * @returns A {@link DisposableEx} that drops the handler again (or on component unload).
187
+ */
188
+ registerFilesMenuEventHandler(handler) {
189
+ this.filesMenuEventHandlers.push(handler);
190
+ return this.registerDisposable(
191
+ new import_disposable.CallbackDisposable({
192
+ callback: () => {
193
+ this.filesMenuEventHandlers = this.filesMenuEventHandlers.filter((collected) => collected !== handler);
194
+ }
195
+ })
196
+ );
197
+ }
198
+ /**
199
+ * Binds to Notebook Navigator once every plugin has loaded.
200
+ *
201
+ * Layout-ready rather than `onload`: plugin load order is not ours to choose, and Notebook
202
+ * Navigator's API only exists once its own plugin is up. When it is not installed the component
203
+ * stays dormant — enabling it later takes an Obsidian reload, exactly as it does for anything else
204
+ * that reads another plugin at startup.
205
+ */
206
+ onLayoutReady() {
207
+ const api = (0, import_notebook_navigator.resolveNotebookNavigatorApi)(this.app);
208
+ if (api === null) {
209
+ return;
210
+ }
211
+ this.register(api.menus.registerFileMenu((context) => {
212
+ this.handleFileMenu(context);
213
+ }));
214
+ this.register(api.menus.registerFolderMenu((context) => {
215
+ this.handleFolderMenu(context);
216
+ }));
217
+ }
218
+ /**
219
+ * Adds the plugin's entry, unless the handlers had nothing to contribute.
220
+ *
221
+ * The menu is populated TWICE, and both runs are needed: Notebook Navigator's `addItem` cannot be
222
+ * taken back once called, so the only way to keep an unrelated file's menu clean is to ask the
223
+ * handlers first, against a menu nobody sees. The gates they answer with are metadata reads, so the
224
+ * second run costs nothing and cannot disagree with the first.
225
+ *
226
+ * @param context - The Notebook Navigator menu being built.
227
+ * @param populate - Runs the collected handlers against a menu.
228
+ */
229
+ contribute(context, populate) {
230
+ const probeMenu = new import_obsidian.Menu();
231
+ populate(probeMenu);
232
+ if (probeMenu.items.length === 0) {
233
+ return;
234
+ }
235
+ context.addItem((item) => {
236
+ item.setTitle(this.pluginName).setIcon(this.submenuIcon);
237
+ populate(item.setSubmenu());
238
+ });
239
+ }
240
+ /**
241
+ * Handles a file menu, single or multi-selection.
242
+ *
243
+ * @param context - The Notebook Navigator menu being built.
244
+ */
245
+ handleFileMenu(context) {
246
+ const selectedFiles = [...context.selection.files];
247
+ this.contribute(
248
+ context,
249
+ context.selection.mode === "multiple" ? (menu) => {
250
+ this.runFilesMenuHandlers(menu, selectedFiles);
251
+ } : (menu) => {
252
+ this.runFileMenuHandlers(menu, context.file);
253
+ }
254
+ );
255
+ }
256
+ /**
257
+ * Handles a folder menu.
258
+ *
259
+ * A folder goes through the SINGLE-file handlers, because that is how Obsidian's own `file-menu`
260
+ * carries one — the event is typed {@link TAbstractFile}, and the folder handlers are the ones that
261
+ * narrow it.
262
+ *
263
+ * @param context - The Notebook Navigator menu being built.
264
+ */
265
+ handleFolderMenu(context) {
266
+ this.contribute(context, (menu) => {
267
+ this.runFileMenuHandlers(menu, context.folder);
268
+ });
269
+ }
270
+ /**
271
+ * Runs the single-file handlers against a menu.
272
+ *
273
+ * @param menu - The menu to populate.
274
+ * @param abstractFile - The file or folder the menu was raised on.
275
+ */
276
+ runFileMenuHandlers(menu, abstractFile) {
277
+ for (const handler of this.fileMenuEventHandlers) {
278
+ handler(menu, abstractFile, import_notebook_navigator.NOTEBOOK_NAVIGATOR_MENU_SOURCE);
279
+ }
280
+ }
281
+ /**
282
+ * Runs the multi-file handlers against a menu.
283
+ *
284
+ * @param menu - The menu to populate.
285
+ * @param abstractFiles - The files the menu was raised on.
286
+ */
287
+ runFilesMenuHandlers(menu, abstractFiles) {
288
+ for (const handler of this.filesMenuEventHandlers) {
289
+ handler(menu, abstractFiles, import_notebook_navigator.NOTEBOOK_NAVIGATOR_MENU_SOURCE);
290
+ }
291
+ }
292
+ }
293
+ // Annotate the CommonJS export names for ESM import in node:
294
+ 0 && (module.exports = {
295
+ NotebookNavigatorMenuEventRegistrarComponent
296
+ });
297
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvbm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEJyaWRnZXMgdGhlIGZpbGUgYW5kIGZpbGVzIGNvbnRleHQtbWVudSBldmVudHMgaW50byBOb3RlYm9vayBOYXZpZ2F0b3IncyBvd24gbWVudXMuXG4gKlxuICogTm90ZWJvb2sgTmF2aWdhdG9yIGRyYXdzIGl0cyBvd24gZmlsZSB0cmVlIGFuZCBuZXZlciByYWlzZXMgT2JzaWRpYW4ncyBgZmlsZS1tZW51YCAvIGBmaWxlcy1tZW51YFxuICogd29ya3NwYWNlIGV2ZW50cywgc28gYSBwbHVnaW4ncyBjb250ZXh0LW1lbnUgaXRlbXMgdmFuaXNoIGZvciBhbnlvbmUgYnJvd3NpbmcgdGhyb3VnaCBpdC4gVGhpc1xuICogY29tcG9uZW50IGlzIGEge0BsaW5rIE1lbnVFdmVudFJlZ2lzdHJhcn0gYmFja2VkIGJ5IE5vdGVib29rIE5hdmlnYXRvcidzIGV4dGVuc2lvbiBBUEkgaW5zdGVhZCBvZlxuICogdGhlIHdvcmtzcGFjZSwgc28gdGhlIHZlcnkgc2FtZSBoYW5kbGVycyByZWFjaCBib3RoIHN1cmZhY2VzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBJY29uTmFtZSxcbiAgTWVudSxcbiAgVEFic3RyYWN0RmlsZSxcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBNZW51IGFzIE1lbnVJbXBsIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IERpc3Bvc2FibGVFeCB9IGZyb20gJy4uLy4uL2Rpc3Bvc2FibGUudHMnO1xuaW1wb3J0IHR5cGUge1xuICBFZGl0b3JNZW51RXZlbnRIYW5kbGVyLFxuICBGaWxlTWVudUV2ZW50SGFuZGxlcixcbiAgRmlsZXNNZW51RXZlbnRIYW5kbGVyLFxuICBNZW51RXZlbnRSZWdpc3RyYXJcbn0gZnJvbSAnLi4vbWVudS1ldmVudC1yZWdpc3RyYXIudHMnO1xuaW1wb3J0IHR5cGUge1xuICBOb3RlYm9va05hdmlnYXRvckZpbGVNZW51Q29udGV4dCxcbiAgTm90ZWJvb2tOYXZpZ2F0b3JGb2xkZXJNZW51Q29udGV4dCxcbiAgTm90ZWJvb2tOYXZpZ2F0b3JNZW51Q29udGV4dFxufSBmcm9tICcuLi9ub3RlYm9vay1uYXZpZ2F0b3IudHMnO1xuXG5pbXBvcnQgeyBDYWxsYmFja0Rpc3Bvc2FibGUgfSBmcm9tICcuLi8uLi9kaXNwb3NhYmxlLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9mdW5jdGlvbi50cyc7XG5pbXBvcnQge1xuICBOT1RFQk9PS19OQVZJR0FUT1JfTUVOVV9TT1VSQ0UsXG4gIHJlc29sdmVOb3RlYm9va05hdmlnYXRvckFwaVxufSBmcm9tICcuLi9ub3RlYm9vay1uYXZpZ2F0b3IudHMnO1xuaW1wb3J0IHsgTGF5b3V0UmVhZHlDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC1yZWFkeS1jb21wb25lbnQudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbidzIGRpc3BsYXkgbmFtZSwgd2hpY2ggdGl0bGVzIHRoZSBwYXJlbnQgZW50cnkuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpY29uIGZvciB0aGUgcGFyZW50IGVudHJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgIChubyBpY29uKVxuICAgKi9cbiAgcmVhZG9ubHkgc3VibWVudUljb24/OiBJY29uTmFtZSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiB7QGxpbmsgTWVudUV2ZW50UmVnaXN0cmFyfSBiYWNrZWQgYnkgTm90ZWJvb2sgTmF2aWdhdG9yJ3MgbWVudS1leHRlbnNpb24gQVBJLlxuICpcbiAqIEhhbmRsZXJzIHJlZ2lzdGVyZWQgaGVyZSBhcmUgY29sbGVjdGVkIGVhZ2VybHkgYW5kIGJvdW5kIHRvIE5vdGVib29rIE5hdmlnYXRvciBvbmNlIHRoZSB3b3Jrc3BhY2VcbiAqIGxheW91dCBpcyByZWFkeS4gV2hlbiBOb3RlYm9vayBOYXZpZ2F0b3IgaXMgbm90IGluc3RhbGxlZCB0aGUgY29tcG9uZW50IHNpbXBseSBzdGF5cyBkb3JtYW50LlxuICpcbiAqIEV2ZXJ5IGNvbGxlY3RlZCBoYW5kbGVyIHdyaXRlcyBpbnRvIGEgcGx1Z2luLXRpdGxlZCBwYXJlbnQgZW50cnkncyBzdWJtZW51LCBzbyBhIGhhbmRsZXIgbXVzdCBOT1RcbiAqIGRlY2xhcmUgYSBzZWN0aW9uIHN1Ym1lbnUgb2YgaXRzIG93biBcdTIwMTQgYE1lbnUuc29ydCgpYCB3b3VsZCBmb2xkIHRoYXQgaW50byBhIHNlY29uZCwgbmVzdGVkXG4gKiBwbHVnaW4tdGl0bGVkIGVudHJ5LiBgQ29tbWFuZEhhbmRsZXJDb21wb25lbnRgIHRha2VzIGNhcmUgb2YgdGhpcyBieSBmb3JjaW5nXG4gKiBgQ29tbWFuZEhhbmRsZXJSZWdpc3RyYXRpb25Db250ZXh0LnNob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnVgIG9mZiBmb3IgdGhlIHN1cmZhY2VzIGl0IGZlZWRzIGhlcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCBleHRlbmRzIExheW91dFJlYWR5Q29tcG9uZW50IGltcGxlbWVudHMgTWVudUV2ZW50UmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4ncyBkaXNwbGF5IG5hbWUsIHdoaWNoIHRpdGxlcyB0aGUgcGFyZW50IGVudHJ5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGljb24gZm9yIHRoZSBwYXJlbnQgZW50cnkuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3VibWVudUljb246IEljb25OYW1lO1xuXG4gIHByaXZhdGUgZmlsZU1lbnVFdmVudEhhbmRsZXJzOiBGaWxlTWVudUV2ZW50SGFuZGxlcltdID0gW107XG4gIHByaXZhdGUgZmlsZXNNZW51RXZlbnRIYW5kbGVyczogRmlsZXNNZW51RXZlbnRIYW5kbGVyW10gPSBbXTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBOb3RlYm9vayBOYXZpZ2F0b3IgbWVudSBldmVudCByZWdpc3RyYXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50Q29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICBzdXBlcihwYXJhbXMuYXBwKTtcbiAgICB0aGlzLnBsdWdpbk5hbWUgPSBwYXJhbXMucGx1Z2luTmFtZTtcbiAgICB0aGlzLnN1Ym1lbnVJY29uID0gcGFyYW1zLnN1Ym1lbnVJY29uID8/ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgYW4gZWRpdG9yLW1lbnUgcmVnaXN0cmF0aW9uIGFuZCBkb2VzIG5vdGhpbmcgd2l0aCBpdC5cbiAgICpcbiAgICogTm90ZWJvb2sgTmF2aWdhdG9yIGV4dGVuZHMgdGhlIGZpbGUgdHJlZSwgbm90IHRoZSBlZGl0b3IgXHUyMDE0IGFuIGVkaXRvciBtZW51IHRoZXJlIGlzIE9ic2lkaWFuJ3NcbiAgICogb3duLCB3aGljaCB0aGUgaGFuZGxlcnMgYWxyZWFkeSByZWFjaCB0aHJvdWdoIHRoZSB3b3Jrc3BhY2UgZXZlbnQuIFRoZSByZWdpc3RyYXRpb24gaXMgaW5lcnRcbiAgICogcmF0aGVyIHRoYW4gcmVmdXNlZCBzbyBhIGhhbmRsZXIgdGhhdCBkZWNsYXJlcyBvbmUgaXMgbm90IGEgbG9hZC10aW1lIGVycm9yLlxuICAgKlxuICAgKiBAcGFyYW0gX2hhbmRsZXIgLSBUaGUgaGFuZGxlciwgZGVsaWJlcmF0ZWx5IHVudXNlZC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgRGlzcG9zYWJsZUV4fSB0aGF0IGhhcyBub3RoaW5nIHRvIHVuZG8uXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJFZGl0b3JNZW51RXZlbnRIYW5kbGVyKF9oYW5kbGVyOiBFZGl0b3JNZW51RXZlbnRIYW5kbGVyKTogRGlzcG9zYWJsZUV4IHtcbiAgICByZXR1cm4gbmV3IENhbGxiYWNrRGlzcG9zYWJsZSh7IGNhbGxiYWNrOiBub29wIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbGxlY3RzIGEgc2luZ2xlLWZpbGUgbWVudSBoYW5kbGVyLlxuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBoYW5kbGVyIHRvIGNvbGxlY3QuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIERpc3Bvc2FibGVFeH0gdGhhdCBkcm9wcyB0aGUgaGFuZGxlciBhZ2FpbiAob3Igb24gY29tcG9uZW50IHVubG9hZCkuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJGaWxlTWVudUV2ZW50SGFuZGxlcihoYW5kbGVyOiBGaWxlTWVudUV2ZW50SGFuZGxlcik6IERpc3Bvc2FibGVFeCB7XG4gICAgdGhpcy5maWxlTWVudUV2ZW50SGFuZGxlcnMucHVzaChoYW5kbGVyKTtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUoXG4gICAgICBuZXcgQ2FsbGJhY2tEaXNwb3NhYmxlKHtcbiAgICAgICAgY2FsbGJhY2s6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLmZpbGVNZW51RXZlbnRIYW5kbGVycyA9IHRoaXMuZmlsZU1lbnVFdmVudEhhbmRsZXJzLmZpbHRlcigoY29sbGVjdGVkKSA9PiBjb2xsZWN0ZWQgIT09IGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdHMgYSBtdWx0aS1maWxlIG1lbnUgaGFuZGxlci5cbiAgICpcbiAgICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgaGFuZGxlciB0byBjb2xsZWN0LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBEaXNwb3NhYmxlRXh9IHRoYXQgZHJvcHMgdGhlIGhhbmRsZXIgYWdhaW4gKG9yIG9uIGNvbXBvbmVudCB1bmxvYWQpLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyRmlsZXNNZW51RXZlbnRIYW5kbGVyKGhhbmRsZXI6IEZpbGVzTWVudUV2ZW50SGFuZGxlcik6IERpc3Bvc2FibGVFeCB7XG4gICAgdGhpcy5maWxlc01lbnVFdmVudEhhbmRsZXJzLnB1c2goaGFuZGxlcik7XG4gICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKFxuICAgICAgbmV3IENhbGxiYWNrRGlzcG9zYWJsZSh7XG4gICAgICAgIGNhbGxiYWNrOiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5maWxlc01lbnVFdmVudEhhbmRsZXJzID0gdGhpcy5maWxlc01lbnVFdmVudEhhbmRsZXJzLmZpbHRlcigoY29sbGVjdGVkKSA9PiBjb2xsZWN0ZWQgIT09IGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdG8gTm90ZWJvb2sgTmF2aWdhdG9yIG9uY2UgZXZlcnkgcGx1Z2luIGhhcyBsb2FkZWQuXG4gICAqXG4gICAqIExheW91dC1yZWFkeSByYXRoZXIgdGhhbiBgb25sb2FkYDogcGx1Z2luIGxvYWQgb3JkZXIgaXMgbm90IG91cnMgdG8gY2hvb3NlLCBhbmQgTm90ZWJvb2tcbiAgICogTmF2aWdhdG9yJ3MgQVBJIG9ubHkgZXhpc3RzIG9uY2UgaXRzIG93biBwbHVnaW4gaXMgdXAuIFdoZW4gaXQgaXMgbm90IGluc3RhbGxlZCB0aGUgY29tcG9uZW50XG4gICAqIHN0YXlzIGRvcm1hbnQgXHUyMDE0IGVuYWJsaW5nIGl0IGxhdGVyIHRha2VzIGFuIE9ic2lkaWFuIHJlbG9hZCwgZXhhY3RseSBhcyBpdCBkb2VzIGZvciBhbnl0aGluZyBlbHNlXG4gICAqIHRoYXQgcmVhZHMgYW5vdGhlciBwbHVnaW4gYXQgc3RhcnR1cC5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbkxheW91dFJlYWR5KCk6IHZvaWQge1xuICAgIGNvbnN0IGFwaSA9IHJlc29sdmVOb3RlYm9va05hdmlnYXRvckFwaSh0aGlzLmFwcCk7XG4gICAgaWYgKGFwaSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVnaXN0ZXIoYXBpLm1lbnVzLnJlZ2lzdGVyRmlsZU1lbnUoKGNvbnRleHQpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlRmlsZU1lbnUoY29udGV4dCk7XG4gICAgfSkpO1xuICAgIHRoaXMucmVnaXN0ZXIoYXBpLm1lbnVzLnJlZ2lzdGVyRm9sZGVyTWVudSgoY29udGV4dCkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVGb2xkZXJNZW51KGNvbnRleHQpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBwbHVnaW4ncyBlbnRyeSwgdW5sZXNzIHRoZSBoYW5kbGVycyBoYWQgbm90aGluZyB0byBjb250cmlidXRlLlxuICAgKlxuICAgKiBUaGUgbWVudSBpcyBwb3B1bGF0ZWQgVFdJQ0UsIGFuZCBib3RoIHJ1bnMgYXJlIG5lZWRlZDogTm90ZWJvb2sgTmF2aWdhdG9yJ3MgYGFkZEl0ZW1gIGNhbm5vdCBiZVxuICAgKiB0YWtlbiBiYWNrIG9uY2UgY2FsbGVkLCBzbyB0aGUgb25seSB3YXkgdG8ga2VlcCBhbiB1bnJlbGF0ZWQgZmlsZSdzIG1lbnUgY2xlYW4gaXMgdG8gYXNrIHRoZVxuICAgKiBoYW5kbGVycyBmaXJzdCwgYWdhaW5zdCBhIG1lbnUgbm9ib2R5IHNlZXMuIFRoZSBnYXRlcyB0aGV5IGFuc3dlciB3aXRoIGFyZSBtZXRhZGF0YSByZWFkcywgc28gdGhlXG4gICAqIHNlY29uZCBydW4gY29zdHMgbm90aGluZyBhbmQgY2Fubm90IGRpc2FncmVlIHdpdGggdGhlIGZpcnN0LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBOb3RlYm9vayBOYXZpZ2F0b3IgbWVudSBiZWluZyBidWlsdC5cbiAgICogQHBhcmFtIHBvcHVsYXRlIC0gUnVucyB0aGUgY29sbGVjdGVkIGhhbmRsZXJzIGFnYWluc3QgYSBtZW51LlxuICAgKi9cbiAgcHJpdmF0ZSBjb250cmlidXRlKGNvbnRleHQ6IE5vdGVib29rTmF2aWdhdG9yTWVudUNvbnRleHQsIHBvcHVsYXRlOiAobWVudTogTWVudSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIGNvbnN0IHByb2JlTWVudSA9IG5ldyBNZW51SW1wbCgpO1xuICAgIHBvcHVsYXRlKHByb2JlTWVudSk7XG5cbiAgICBpZiAocHJvYmVNZW51Lml0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnRleHQuYWRkSXRlbSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbVxuICAgICAgICAuc2V0VGl0bGUodGhpcy5wbHVnaW5OYW1lKVxuICAgICAgICAuc2V0SWNvbih0aGlzLnN1Ym1lbnVJY29uKTtcbiAgICAgIHBvcHVsYXRlKGl0ZW0uc2V0U3VibWVudSgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGEgZmlsZSBtZW51LCBzaW5nbGUgb3IgbXVsdGktc2VsZWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBOb3RlYm9vayBOYXZpZ2F0b3IgbWVudSBiZWluZyBidWlsdC5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRmlsZU1lbnUoY29udGV4dDogTm90ZWJvb2tOYXZpZ2F0b3JGaWxlTWVudUNvbnRleHQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpbGVzOiBURmlsZVtdID0gWy4uLmNvbnRleHQuc2VsZWN0aW9uLmZpbGVzXTtcbiAgICB0aGlzLmNvbnRyaWJ1dGUoXG4gICAgICBjb250ZXh0LFxuICAgICAgY29udGV4dC5zZWxlY3Rpb24ubW9kZSA9PT0gJ211bHRpcGxlJ1xuICAgICAgICA/IChtZW51OiBNZW51KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5ydW5GaWxlc01lbnVIYW5kbGVycyhtZW51LCBzZWxlY3RlZEZpbGVzKTtcbiAgICAgICAgfVxuICAgICAgICA6IChtZW51OiBNZW51KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5ydW5GaWxlTWVudUhhbmRsZXJzKG1lbnUsIGNvbnRleHQuZmlsZSk7XG4gICAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgYSBmb2xkZXIgbWVudS5cbiAgICpcbiAgICogQSBmb2xkZXIgZ29lcyB0aHJvdWdoIHRoZSBTSU5HTEUtZmlsZSBoYW5kbGVycywgYmVjYXVzZSB0aGF0IGlzIGhvdyBPYnNpZGlhbidzIG93biBgZmlsZS1tZW51YFxuICAgKiBjYXJyaWVzIG9uZSBcdTIwMTQgdGhlIGV2ZW50IGlzIHR5cGVkIHtAbGluayBUQWJzdHJhY3RGaWxlfSwgYW5kIHRoZSBmb2xkZXIgaGFuZGxlcnMgYXJlIHRoZSBvbmVzIHRoYXRcbiAgICogbmFycm93IGl0LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBOb3RlYm9vayBOYXZpZ2F0b3IgbWVudSBiZWluZyBidWlsdC5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRm9sZGVyTWVudShjb250ZXh0OiBOb3RlYm9va05hdmlnYXRvckZvbGRlck1lbnVDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5jb250cmlidXRlKGNvbnRleHQsIChtZW51OiBNZW51KTogdm9pZCA9PiB7XG4gICAgICB0aGlzLnJ1bkZpbGVNZW51SGFuZGxlcnMobWVudSwgY29udGV4dC5mb2xkZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgdGhlIHNpbmdsZS1maWxlIGhhbmRsZXJzIGFnYWluc3QgYSBtZW51LlxuICAgKlxuICAgKiBAcGFyYW0gbWVudSAtIFRoZSBtZW51IHRvIHBvcHVsYXRlLlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGZpbGUgb3IgZm9sZGVyIHRoZSBtZW51IHdhcyByYWlzZWQgb24uXG4gICAqL1xuICBwcml2YXRlIHJ1bkZpbGVNZW51SGFuZGxlcnMobWVudTogTWVudSwgYWJzdHJhY3RGaWxlOiBUQWJzdHJhY3RGaWxlKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHRoaXMuZmlsZU1lbnVFdmVudEhhbmRsZXJzKSB7XG4gICAgICBoYW5kbGVyKG1lbnUsIGFic3RyYWN0RmlsZSwgTk9URUJPT0tfTkFWSUdBVE9SX01FTlVfU09VUkNFKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyB0aGUgbXVsdGktZmlsZSBoYW5kbGVycyBhZ2FpbnN0IGEgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIG1lbnUgLSBUaGUgbWVudSB0byBwb3B1bGF0ZS5cbiAgICogQHBhcmFtIGFic3RyYWN0RmlsZXMgLSBUaGUgZmlsZXMgdGhlIG1lbnUgd2FzIHJhaXNlZCBvbi5cbiAgICovXG4gIHByaXZhdGUgcnVuRmlsZXNNZW51SGFuZGxlcnMobWVudTogTWVudSwgYWJzdHJhY3RGaWxlczogVEFic3RyYWN0RmlsZVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHRoaXMuZmlsZXNNZW51RXZlbnRIYW5kbGVycykge1xuICAgICAgaGFuZGxlcihtZW51LCBhYnN0cmFjdEZpbGVzLCBOT1RFQk9PS19OQVZJR0FUT1JfTUVOVV9TT1VSQ0UpO1xuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkEsc0JBQWlDO0FBZWpDLHdCQUFtQztBQUNuQyxzQkFBcUI7QUFDckIsZ0NBR087QUFDUCxvQ0FBcUM7QUFtQzlCLE1BQU0scURBQXFELG1EQUFtRDtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWhHO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBLEVBRVgsd0JBQWdELENBQUM7QUFBQSxFQUNqRCx5QkFBa0QsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9wRCxZQUFZLFFBQXVFO0FBQ3hGLFVBQU0sT0FBTyxHQUFHO0FBQ2hCLFNBQUssYUFBYSxPQUFPO0FBQ3pCLFNBQUssY0FBYyxPQUFPLGVBQWU7QUFBQSxFQUMzQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFZTywrQkFBK0IsVUFBZ0Q7QUFDcEYsV0FBTyxJQUFJLHFDQUFtQixFQUFFLFVBQVUscUJBQUssQ0FBQztBQUFBLEVBQ2xEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyw2QkFBNkIsU0FBNkM7QUFDL0UsU0FBSyxzQkFBc0IsS0FBSyxPQUFPO0FBQ3ZDLFdBQU8sS0FBSztBQUFBLE1BQ1YsSUFBSSxxQ0FBbUI7QUFBQSxRQUNyQixVQUFVLE1BQVk7QUFDcEIsZUFBSyx3QkFBd0IsS0FBSyxzQkFBc0IsT0FBTyxDQUFDLGNBQWMsY0FBYyxPQUFPO0FBQUEsUUFDckc7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sOEJBQThCLFNBQThDO0FBQ2pGLFNBQUssdUJBQXVCLEtBQUssT0FBTztBQUN4QyxXQUFPLEtBQUs7QUFBQSxNQUNWLElBQUkscUNBQW1CO0FBQUEsUUFDckIsVUFBVSxNQUFZO0FBQ3BCLGVBQUsseUJBQXlCLEtBQUssdUJBQXVCLE9BQU8sQ0FBQyxjQUFjLGNBQWMsT0FBTztBQUFBLFFBQ3ZHO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVbUIsZ0JBQXNCO0FBQ3ZDLFVBQU0sVUFBTSx1REFBNEIsS0FBSyxHQUFHO0FBQ2hELFFBQUksUUFBUSxNQUFNO0FBQ2hCO0FBQUEsSUFDRjtBQUVBLFNBQUssU0FBUyxJQUFJLE1BQU0saUJBQWlCLENBQUMsWUFBWTtBQUNwRCxXQUFLLGVBQWUsT0FBTztBQUFBLElBQzdCLENBQUMsQ0FBQztBQUNGLFNBQUssU0FBUyxJQUFJLE1BQU0sbUJBQW1CLENBQUMsWUFBWTtBQUN0RCxXQUFLLGlCQUFpQixPQUFPO0FBQUEsSUFDL0IsQ0FBQyxDQUFDO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWFRLFdBQVcsU0FBdUMsVUFBc0M7QUFDOUYsVUFBTSxZQUFZLElBQUksZ0JBQUFBLEtBQVM7QUFDL0IsYUFBUyxTQUFTO0FBRWxCLFFBQUksVUFBVSxNQUFNLFdBQVcsR0FBRztBQUNoQztBQUFBLElBQ0Y7QUFFQSxZQUFRLFFBQVEsQ0FBQyxTQUFTO0FBQ3hCLFdBQ0csU0FBUyxLQUFLLFVBQVUsRUFDeEIsUUFBUSxLQUFLLFdBQVc7QUFDM0IsZUFBUyxLQUFLLFdBQVcsQ0FBQztBQUFBLElBQzVCLENBQUM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1EsZUFBZSxTQUFpRDtBQUN0RSxVQUFNLGdCQUF5QixDQUFDLEdBQUcsUUFBUSxVQUFVLEtBQUs7QUFDMUQsU0FBSztBQUFBLE1BQ0g7QUFBQSxNQUNBLFFBQVEsVUFBVSxTQUFTLGFBQ3ZCLENBQUMsU0FBcUI7QUFDdEIsYUFBSyxxQkFBcUIsTUFBTSxhQUFhO0FBQUEsTUFDL0MsSUFDRSxDQUFDLFNBQXFCO0FBQ3RCLGFBQUssb0JBQW9CLE1BQU0sUUFBUSxJQUFJO0FBQUEsTUFDN0M7QUFBQSxJQUNKO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBV1EsaUJBQWlCLFNBQW1EO0FBQzFFLFNBQUssV0FBVyxTQUFTLENBQUMsU0FBcUI7QUFDN0MsV0FBSyxvQkFBb0IsTUFBTSxRQUFRLE1BQU07QUFBQSxJQUMvQyxDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVEsb0JBQW9CLE1BQVksY0FBbUM7QUFDekUsZUFBVyxXQUFXLEtBQUssdUJBQXVCO0FBQ2hELGNBQVEsTUFBTSxjQUFjLHdEQUE4QjtBQUFBLElBQzVEO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVEscUJBQXFCLE1BQVksZUFBc0M7QUFDN0UsZUFBVyxXQUFXLEtBQUssd0JBQXdCO0FBQ2pELGNBQVEsTUFBTSxlQUFlLHdEQUE4QjtBQUFBLElBQzdEO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogWyJNZW51SW1wbCJdCn0K
@@ -0,0 +1,139 @@
1
+ /// <reference path="../../library.d.cts" />
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' with { 'resolution-mode': 'import' };
13
+ import type { DisposableEx } from '../../disposable.cjs';
14
+ import type { EditorMenuEventHandler, FileMenuEventHandler, FilesMenuEventHandler, MenuEventRegistrar } from '../menu-event-registrar.cjs';
15
+ import { LayoutReadyComponent } from './layout-ready-component.cjs';
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
+ }
@@ -40,16 +40,11 @@ if you want to view the source, please visit the github repository of this plugi
40
40
  globalThisRecord[key] ??= newFuncs[key]?.();
41
41
  }
42
42
 
43
- function name(obj) {
44
- return obj;
45
- }
46
-
47
43
  function extractDefault(module) {
48
44
  return module && module.__esModule && 'default' in module ? module.default : module;
49
45
  }
50
46
 
51
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
52
- 'obsidian',
47
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
53
48
  '@codemirror/autocomplete',
54
49
  '@codemirror/collab',
55
50
  '@codemirror/commands',
@@ -60,11 +55,12 @@ if you want to view the source, please visit the github repository of this plugi
60
55
  '@codemirror/text',
61
56
  '@codemirror/view',
62
57
  '@lezer/common',
58
+ '@lezer/highlight',
63
59
  '@lezer/lr',
64
- '@lezer/highlight'];
65
-
60
+ 'obsidian']
61
+ );
66
62
 
67
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
63
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
68
64
  '@codemirror/closebrackets',
69
65
  '@codemirror/comment',
70
66
  '@codemirror/fold',
@@ -76,11 +72,11 @@ if you want to view the source, please visit the github repository of this plugi
76
72
  '@codemirror/rangeset',
77
73
  '@codemirror/rectangular-selection',
78
74
  '@codemirror/stream-parser',
79
- '@codemirror/tooltip'];
80
-
75
+ '@codemirror/tooltip']
76
+ );
81
77
 
82
78
  function requirePatched(id) {
83
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
79
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
84
80
  return originalRequire?.(id);
85
81
  }
86
82
 
@@ -89,8 +85,8 @@ if you want to view the source, please visit the github repository of this plugi
89
85
  if (id === 'process' || id === 'node:process') {
90
86
  // eslint-disable-next-line no-console -- Valid usage.
91
87
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
92
- // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
93
- return globalThis.process;
88
+
89
+ return process;
94
90
  }
95
91
  } else {
96
92
  const module = originalRequire?.(id);
@@ -168,4 +164,4 @@ class PluginContextComponent extends import_component_ex.ComponentEx {
168
164
  0 && (module.exports = {
169
165
  PluginContextComponent
170
166
  });
171
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29tcG9uZW50IHRoYXQgaW5pdGlhbGl6ZXMgdGhlIHBsdWdpbiBjb250ZXh0LCBkZWJ1ZyBjb250cm9sbGVyLCBhbmQgbGlicmFyeSBzdHlsZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IExpYnJhcnkgfSBmcm9tICcuLi8uLi9saWJyYXJ5LnRzJztcbmltcG9ydCB7XG4gIGluaXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGluaXRQbHVnaW5Db250ZXh0XG59IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5pbXBvcnQgeyBBbGxXaW5kb3dzRXZlbnRDb21wb25lbnQgfSBmcm9tICcuL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuaW50ZXJmYWNlIFBsdWdpbkNvbnRleHRDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHBsdWdpbiBjb250ZXh0IChwbHVnaW4gSUQsIGRlYnVnIGNvbnRyb2xsZXIsIGxpYnJhcnkgc3R5bGVzKSBvbiBsb2FkLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luQ29udGV4dENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gSUQgdXNlZCB0byBpbml0aWFsaXplIHRoZSBwbHVnaW4gY29udGV4dCBhbmQgZGVidWcgY29udHJvbGxlci5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogUGx1Z2luQ29udGV4dENvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwcCA9IHBhcmFtcy5hcHA7XG4gICAgdGhpcy5wbHVnaW5JZCA9IHBhcmFtcy5wbHVnaW5JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgcGx1Z2luIGNvbnRleHQgYW5kIGRlYnVnIGNvbnRyb2xsZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIGluaXRQbHVnaW5Db250ZXh0KHRoaXMucGx1Z2luSWQpO1xuICAgIC8vIFJlc2V0IG9uIHVubG9hZCBzbyBhIHBsdWdpbiByZWxvYWQgY2FuIHJlLWluaXRpYWxpemUgd2l0aG91dCB0cmlwcGluZyB0aGUgb25jZS1vbmx5IGBMaWJyYXJ5LmluaXRgIGd1YXJkLlxuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgTGlicmFyeS5yZXNldFRvRGVmYXVsdCgpO1xuICAgIH0pO1xuICAgIHRoaXMuYWRkQ2hpbGQobmV3IEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCh0aGlzLmFwcCkpLnJlZ2lzdGVyQWxsV2luZG93c0hhbmRsZXIoKHdpbikgPT4ge1xuICAgICAgaW5pdERlYnVnQ29udHJvbGxlcih3aW4sIHRoaXMpO1xuICAgIH0pO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQSxxQkFBd0I7QUFDeEIsNEJBR087QUFDUCx5Q0FBeUM7QUFDekMsMEJBQTRCO0FBVXJCLE1BQU0sK0JBQStCLGdDQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1osWUFBWSxRQUFpRDtBQUNsRSxVQUFNO0FBQ04sU0FBSyxNQUFNLE9BQU87QUFDbEIsU0FBSyxXQUFXLE9BQU87QUFBQSxFQUN6QjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS2dCLFNBQWU7QUFDN0IsaURBQWtCLEtBQUssUUFBUTtBQUUvQixTQUFLLFNBQVMsTUFBTTtBQUNsQiw2QkFBUSxlQUFlO0FBQUEsSUFDekIsQ0FBQztBQUNELFNBQUssU0FBUyxJQUFJLDREQUF5QixLQUFLLEdBQUcsQ0FBQyxFQUFFLDBCQUEwQixDQUFDLFFBQVE7QUFDdkYscURBQW9CLEtBQUssSUFBSTtBQUFBLElBQy9CLENBQUM7QUFBQSxFQUNIO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
167
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29tcG9uZW50IHRoYXQgaW5pdGlhbGl6ZXMgdGhlIHBsdWdpbiBjb250ZXh0LCBkZWJ1ZyBjb250cm9sbGVyLCBhbmQgbGlicmFyeSBzdHlsZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IExpYnJhcnkgfSBmcm9tICcuLi8uLi9saWJyYXJ5LnRzJztcbmltcG9ydCB7XG4gIGluaXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGluaXRQbHVnaW5Db250ZXh0XG59IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5pbXBvcnQgeyBBbGxXaW5kb3dzRXZlbnRDb21wb25lbnQgfSBmcm9tICcuL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuaW50ZXJmYWNlIFBsdWdpbkNvbnRleHRDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHBsdWdpbiBjb250ZXh0IChwbHVnaW4gSUQsIGRlYnVnIGNvbnRyb2xsZXIsIGxpYnJhcnkgc3R5bGVzKSBvbiBsb2FkLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luQ29udGV4dENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gSUQgdXNlZCB0byBpbml0aWFsaXplIHRoZSBwbHVnaW4gY29udGV4dCBhbmQgZGVidWcgY29udHJvbGxlci5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogUGx1Z2luQ29udGV4dENvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwcCA9IHBhcmFtcy5hcHA7XG4gICAgdGhpcy5wbHVnaW5JZCA9IHBhcmFtcy5wbHVnaW5JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgcGx1Z2luIGNvbnRleHQgYW5kIGRlYnVnIGNvbnRyb2xsZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIGluaXRQbHVnaW5Db250ZXh0KHRoaXMucGx1Z2luSWQpO1xuICAgIC8vIFJlc2V0IG9uIHVubG9hZCBzbyBhIHBsdWdpbiByZWxvYWQgY2FuIHJlLWluaXRpYWxpemUgd2l0aG91dCB0cmlwcGluZyB0aGUgb25jZS1vbmx5IGBMaWJyYXJ5LmluaXRgIGd1YXJkLlxuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgTGlicmFyeS5yZXNldFRvRGVmYXVsdCgpO1xuICAgIH0pO1xuICAgIHRoaXMuYWRkQ2hpbGQobmV3IEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCh0aGlzLmFwcCkpLnJlZ2lzdGVyQWxsV2luZG93c0hhbmRsZXIoKHdpbikgPT4ge1xuICAgICAgaW5pdERlYnVnQ29udHJvbGxlcih3aW4sIHRoaXMpO1xuICAgIH0pO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLHFCQUF3QjtBQUN4Qiw0QkFHTztBQUNQLHlDQUF5QztBQUN6QywwQkFBNEI7QUFVckIsTUFBTSwrQkFBK0IsZ0NBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUluQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPWixZQUFZLFFBQWlEO0FBQ2xFLFVBQU07QUFDTixTQUFLLE1BQU0sT0FBTztBQUNsQixTQUFLLFdBQVcsT0FBTztBQUFBLEVBQ3pCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLZ0IsU0FBZTtBQUM3QixpREFBa0IsS0FBSyxRQUFRO0FBRS9CLFNBQUssU0FBUyxNQUFNO0FBQ2xCLDZCQUFRLGVBQWU7QUFBQSxJQUN6QixDQUFDO0FBQ0QsU0FBSyxTQUFTLElBQUksNERBQXlCLEtBQUssR0FBRyxDQUFDLEVBQUUsMEJBQTBCLENBQUMsUUFBUTtBQUN2RixxREFBb0IsS0FBSyxJQUFJO0FBQUEsSUFDL0IsQ0FBQztBQUFBLEVBQ0g7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K