@mnaoumov/obsidian-lib 10.11.0 → 11.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 (460) hide show
  1. package/README.md +26 -0
  2. package/components/all-windows-status-bar-item-component/package.json +6 -0
  3. package/components/shared-component-pool-component/package.json +6 -0
  4. package/components/worker-component/package.json +6 -0
  5. package/components/worker-pool-component/package.json +6 -0
  6. package/components/workspace-layout-state-component/package.json +6 -0
  7. package/dist/lib/cjs/__merged.cjs +477 -285
  8. package/dist/lib/cjs/__merged.d.cts +26 -10
  9. package/dist/lib/cjs/anchored-suggest.cjs +1 -1
  10. package/dist/lib/cjs/app.cjs +2 -2
  11. package/dist/lib/cjs/async-with-notice.cjs +4 -4
  12. package/dist/lib/cjs/attachment-path.cjs +9 -9
  13. package/dist/lib/cjs/attachment-path.d.cts +3 -3
  14. package/dist/lib/cjs/attachment-unit-folder.cjs +2 -2
  15. package/dist/lib/cjs/backlink-index.cjs +5 -5
  16. package/dist/lib/cjs/backlink.cjs +7 -7
  17. package/dist/lib/cjs/bases-view-registrar.cjs +1 -1
  18. package/dist/lib/cjs/broken-link-candidates.cjs +1 -1
  19. package/dist/lib/cjs/bug-report-diagnostics.cjs +222 -0
  20. package/dist/lib/cjs/bug-report-diagnostics.d.cts +186 -0
  21. package/dist/lib/cjs/bug-report.cjs +38 -12
  22. package/dist/lib/cjs/bug-report.d.cts +65 -0
  23. package/dist/lib/cjs/bulk-operation-progress.cjs +1 -1
  24. package/dist/lib/cjs/bulk-operation.cjs +2 -2
  25. package/dist/lib/cjs/callout.cjs +6 -6
  26. package/dist/lib/cjs/canvas.cjs +11 -9
  27. package/dist/lib/cjs/canvas.d.cts +13 -0
  28. package/dist/lib/cjs/case-insensitive-file-index.cjs +3 -3
  29. package/dist/lib/cjs/code-block-render-handoff.cjs +5 -5
  30. package/dist/lib/cjs/codemirror/editor-mode-extension.cjs +4 -4
  31. package/dist/lib/cjs/codemirror/incremental-parse-state-field.cjs +2 -2
  32. package/dist/lib/cjs/codemirror/index.cjs +7 -7
  33. package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +5 -5
  34. package/dist/lib/cjs/codemirror/markdown-editor-views.cjs +2 -2
  35. package/dist/lib/cjs/codemirror/settings-facet.cjs +1 -1
  36. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +17 -17
  37. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.d.cts +13 -13
  38. package/dist/lib/cjs/command-handlers/command-handler-component.cjs +2 -2
  39. package/dist/lib/cjs/command-handlers/command-handler.cjs +2 -2
  40. package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +10 -10
  41. package/dist/lib/cjs/command-handlers/editor-command-handler.d.cts +7 -7
  42. package/dist/lib/cjs/command-handlers/file-command-handler.cjs +3 -3
  43. package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +3 -3
  44. package/dist/lib/cjs/command-handlers/global-command-handler.cjs +2 -2
  45. package/dist/lib/cjs/command-handlers/index.cjs +15 -15
  46. package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +95 -4
  47. package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +34 -2
  48. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +2 -2
  49. package/dist/lib/cjs/command-handlers/open-discussion-command-handler.cjs +2 -2
  50. package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.cjs +2 -2
  51. package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.cjs +1 -1
  52. package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +2 -2
  53. package/dist/lib/cjs/command-handlers/undo-bulk-operation-command-handler.cjs +2 -2
  54. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +1 -1
  55. package/dist/lib/cjs/community-plugins.cjs +3 -3
  56. package/dist/lib/cjs/components/abort-signal-component.cjs +2 -2
  57. package/dist/lib/cjs/components/all-windows-event-component.cjs +5 -5
  58. package/dist/lib/cjs/components/all-windows-status-bar-item-component.cjs +245 -0
  59. package/dist/lib/cjs/components/all-windows-status-bar-item-component.d.cts +146 -0
  60. package/dist/lib/cjs/components/async-error-handler-component.cjs +5 -5
  61. package/dist/lib/cjs/components/async-events-component.cjs +1 -1
  62. package/dist/lib/cjs/components/bulk-operation-commit-component.cjs +12 -12
  63. package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +2 -2
  64. package/dist/lib/cjs/components/component-ex.cjs +21 -11
  65. package/dist/lib/cjs/components/component-ex.d.cts +11 -0
  66. package/dist/lib/cjs/components/console-debug-component.cjs +2 -2
  67. package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +2 -2
  68. package/dist/lib/cjs/components/disposable-component.cjs +2 -2
  69. package/dist/lib/cjs/components/embed-extensions-component.cjs +21 -4
  70. package/dist/lib/cjs/components/embed-extensions-component.d.cts +8 -0
  71. package/dist/lib/cjs/components/embeddable-markdown-editor-component.cjs +24 -10
  72. package/dist/lib/cjs/components/embeddable-markdown-editor-component.d.cts +9 -0
  73. package/dist/lib/cjs/components/file-explorer-root-menu-component.cjs +7 -7
  74. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +2 -2
  75. package/dist/lib/cjs/components/incremental-file-index-component.cjs +4 -4
  76. package/dist/lib/cjs/components/index.cjs +54 -39
  77. package/dist/lib/cjs/components/index.d.cts +5 -0
  78. package/dist/lib/cjs/components/layout-ready-component.cjs +3 -3
  79. package/dist/lib/cjs/components/menu-event-registrar-component.cjs +2 -2
  80. package/dist/lib/cjs/components/monkey-around-component.cjs +3 -3
  81. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +5 -5
  82. package/dist/lib/cjs/components/plugin-context-component.cjs +5 -5
  83. package/dist/lib/cjs/components/plugin-gate-component.cjs +69 -36
  84. package/dist/lib/cjs/components/plugin-gate-component.d.cts +36 -13
  85. package/dist/lib/cjs/components/plugin-notice-component.cjs +39 -33
  86. package/dist/lib/cjs/components/plugin-notice-component.d.cts +4 -3
  87. package/dist/lib/cjs/components/plugin-settings-component.cjs +119 -18
  88. package/dist/lib/cjs/components/plugin-settings-component.d.cts +35 -5
  89. package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +2 -2
  90. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +8 -8
  91. package/dist/lib/cjs/components/pointer-position-component.cjs +2 -2
  92. package/dist/lib/cjs/components/reconfigurable-editor-extension-component.cjs +3 -3
  93. package/dist/lib/cjs/components/registry-component.cjs +2 -2
  94. package/dist/lib/cjs/components/release-notes-component.cjs +6 -6
  95. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +25 -25
  96. package/dist/lib/cjs/components/rmdir-guard-component.cjs +2 -2
  97. package/dist/lib/cjs/components/settings-facet-component.cjs +1 -1
  98. package/dist/lib/cjs/components/settings-migration-component.cjs +5 -5
  99. package/dist/lib/cjs/components/shared-component-pool-component.cjs +368 -0
  100. package/dist/lib/cjs/components/shared-component-pool-component.d.cts +129 -0
  101. package/dist/lib/cjs/components/style-sheet-component.cjs +3 -3
  102. package/dist/lib/cjs/components/syntax-highlighting-component.cjs +3 -3
  103. package/dist/lib/cjs/components/templates-language-component.cjs +1 -1
  104. package/dist/lib/cjs/components/worker-component.cjs +363 -0
  105. package/dist/lib/cjs/components/worker-component.d.cts +156 -0
  106. package/dist/lib/cjs/components/worker-pool-component.cjs +185 -0
  107. package/dist/lib/cjs/components/worker-pool-component.d.cts +102 -0
  108. package/dist/lib/cjs/components/workspace-layout-state-component.cjs +495 -0
  109. package/dist/lib/cjs/components/workspace-layout-state-component.d.cts +239 -0
  110. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +5 -5
  111. package/dist/lib/cjs/constructors/index.cjs +1 -1
  112. package/dist/lib/cjs/css-class.cjs +5 -1
  113. package/dist/lib/cjs/css-class.d.cts +16 -0
  114. package/dist/lib/cjs/data-handler.cjs +264 -6
  115. package/dist/lib/cjs/data-handler.d.cts +219 -2
  116. package/dist/lib/cjs/data-stores/data-store-locations.cjs +82 -24
  117. package/dist/lib/cjs/data-stores/data-store-locations.d.cts +15 -0
  118. package/dist/lib/cjs/data-stores/data-store-replica.cjs +33 -5
  119. package/dist/lib/cjs/data-stores/data-store-seeds.cjs +6 -6
  120. package/dist/lib/cjs/data-stores/data-store-seeds.d.cts +2 -2
  121. package/dist/lib/cjs/data-stores/data-store-transport.cjs +81 -8
  122. package/dist/lib/cjs/data-stores/data-store-transport.d.cts +30 -1
  123. package/dist/lib/cjs/data-stores/index.cjs +6 -6
  124. package/dist/lib/cjs/data-stores/local-data-store.cjs +74 -10
  125. package/dist/lib/cjs/data-stores/local-data-store.d.cts +58 -1
  126. package/dist/lib/cjs/data-stores/shared-data-store.cjs +76 -19
  127. package/dist/lib/cjs/data-stores/shared-data-store.d.cts +18 -1
  128. package/dist/lib/cjs/dataview-link.cjs +2 -2
  129. package/dist/lib/cjs/dataview.cjs +27 -7
  130. package/dist/lib/cjs/dataview.d.cts +14 -0
  131. package/dist/lib/cjs/debug.cjs +3 -3
  132. package/dist/lib/cjs/demo-vault-helper.cjs +34 -6
  133. package/dist/lib/cjs/demo-vault-helper.d.cts +6 -2
  134. package/dist/lib/cjs/desktop-bulk-operation-git.cjs +10 -10
  135. package/dist/lib/cjs/desktop-demo-vault-opener.cjs +13 -13
  136. package/dist/lib/cjs/desktop-git-runner.cjs +4 -14
  137. package/dist/lib/cjs/desktop-git-runner.d.cts +8 -2
  138. package/dist/lib/cjs/desktop-operating-system.cjs +1 -1
  139. package/dist/lib/cjs/desktop-request-url-stream.cjs +8 -14
  140. package/dist/lib/cjs/desktop-trusted-input.cjs +2 -2
  141. package/dist/lib/cjs/disposable.cjs +150 -0
  142. package/dist/lib/cjs/disposable.d.cts +39 -0
  143. package/dist/lib/cjs/editor-extension-registrar.cjs +1 -1
  144. package/dist/lib/cjs/editor-suggest-registrar.cjs +2 -2
  145. package/dist/lib/cjs/editor-suggest.cjs +1 -1
  146. package/dist/lib/cjs/editor.cjs +6 -6
  147. package/dist/lib/cjs/events.cjs +2 -2
  148. package/dist/lib/cjs/extensions-registrar.cjs +1 -1
  149. package/dist/lib/cjs/feature-request.cjs +1 -1
  150. package/dist/lib/cjs/file-change.cjs +10 -10
  151. package/dist/lib/cjs/file-explorer.cjs +2 -2
  152. package/dist/lib/cjs/file-manager.cjs +5 -5
  153. package/dist/lib/cjs/file-system.cjs +10 -10
  154. package/dist/lib/cjs/folder-note.cjs +4 -4
  155. package/dist/lib/cjs/frontmatter-formatting.cjs +7 -6
  156. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +1 -1
  157. package/dist/lib/cjs/frontmatter.cjs +5 -5
  158. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  159. package/dist/lib/cjs/git-rename-history.cjs +1 -1
  160. package/dist/lib/cjs/git-rename-history.d.cts +2 -2
  161. package/dist/lib/cjs/hotkey.cjs +1 -1
  162. package/dist/lib/cjs/hover-link-source-registrar.cjs +1 -1
  163. package/dist/lib/cjs/html-element.cjs +2 -2
  164. package/dist/lib/cjs/i18n/custom-type-options.cjs +1 -1
  165. package/dist/lib/cjs/i18n/default-translations.cjs +1 -1
  166. package/dist/lib/cjs/i18n/i18n.cjs +7 -7
  167. package/dist/lib/cjs/i18n/index.cjs +4 -4
  168. package/dist/lib/cjs/i18n/locales/en.cjs +27 -1
  169. package/dist/lib/cjs/i18n/locales/en.d.cts +26 -0
  170. package/dist/lib/cjs/i18n/locales/index.cjs +2 -2
  171. package/dist/lib/cjs/i18n/locales/translations-map.cjs +1 -1
  172. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +26 -0
  173. package/dist/lib/cjs/index.cjs +147 -126
  174. package/dist/lib/cjs/index.d.cts +7 -0
  175. package/dist/lib/cjs/inline-token-renderer.cjs +2 -2
  176. package/dist/lib/cjs/is-in-obsidian.cjs +1 -1
  177. package/dist/lib/cjs/library-styles.cjs +3 -3
  178. package/dist/lib/cjs/link-and-tag-input-suggest.cjs +2 -2
  179. package/dist/lib/cjs/link.cjs +76 -56
  180. package/dist/lib/cjs/link.d.cts +20 -14
  181. package/dist/lib/cjs/logger.cjs +4 -4
  182. package/dist/lib/cjs/loop.cjs +10 -16
  183. package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +17 -2
  184. package/dist/lib/cjs/markdown-code-block-processor-registrar.d.cts +7 -0
  185. package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -13
  186. package/dist/lib/cjs/markdown-post-processor-registrar.cjs +2 -2
  187. package/dist/lib/cjs/markdown-view.cjs +191 -3
  188. package/dist/lib/cjs/markdown-view.d.cts +48 -1
  189. package/dist/lib/cjs/markdown.cjs +12 -12
  190. package/dist/lib/cjs/metadata-cache.cjs +23 -23
  191. package/dist/lib/cjs/metadata-cache.d.cts +5 -4
  192. package/dist/lib/cjs/misplaced-attachment.cjs +297 -0
  193. package/dist/lib/cjs/misplaced-attachment.d.cts +228 -0
  194. package/dist/lib/cjs/mobile-app-info.cjs +1 -1
  195. package/dist/lib/cjs/modals/alert.cjs +4 -4
  196. package/dist/lib/cjs/modals/code-block-builder.cjs +7 -7
  197. package/dist/lib/cjs/modals/confirm.cjs +4 -4
  198. package/dist/lib/cjs/modals/copy-text-manually.cjs +181 -0
  199. package/dist/lib/cjs/modals/copy-text-manually.d.cts +38 -0
  200. package/dist/lib/cjs/modals/index.cjs +17 -11
  201. package/dist/lib/cjs/modals/index.d.cts +2 -0
  202. package/dist/lib/cjs/modals/minimizable-modal.cjs +6 -6
  203. package/dist/lib/cjs/modals/modal-command-builder.cjs +3 -3
  204. package/dist/lib/cjs/modals/modal.cjs +3 -3
  205. package/dist/lib/cjs/modals/prompt.cjs +10 -10
  206. package/dist/lib/cjs/modals/prompt.d.cts +1 -1
  207. package/dist/lib/cjs/modals/review-bug-report-diagnostics.cjs +202 -0
  208. package/dist/lib/cjs/modals/review-bug-report-diagnostics.d.cts +30 -0
  209. package/dist/lib/cjs/modals/select-item.cjs +6 -6
  210. package/dist/lib/cjs/modals/select-option.cjs +3 -3
  211. package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +1 -1
  212. package/dist/lib/cjs/note-priority.cjs +2 -2
  213. package/dist/lib/cjs/notebook-navigator.cjs +12 -2
  214. package/dist/lib/cjs/notebook-navigator.d.cts +6 -0
  215. package/dist/lib/cjs/obsidian-lib-state.cjs +1 -1
  216. package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +1 -1
  217. package/dist/lib/cjs/obsidian-settings.cjs +1 -1
  218. package/dist/lib/cjs/obsidian-word-characters.cjs +1 -1
  219. package/dist/lib/cjs/parse-link.cjs +14 -14
  220. package/dist/lib/cjs/path-compatibility.cjs +368 -0
  221. package/dist/lib/cjs/path-compatibility.d.cts +263 -0
  222. package/dist/lib/cjs/path-settings.cjs +3 -3
  223. package/dist/lib/cjs/pdf.cjs +2 -2
  224. package/dist/lib/cjs/plugin/index.cjs +18 -12
  225. package/dist/lib/cjs/plugin/index.d.cts +2 -0
  226. package/dist/lib/cjs/plugin/plugin-api.cjs +21 -12
  227. package/dist/lib/cjs/plugin/plugin-api.d.cts +5 -1
  228. package/dist/lib/cjs/plugin/plugin-async-cleanup.cjs +6 -3
  229. package/dist/lib/cjs/plugin/plugin-async-cleanup.d.cts +5 -0
  230. package/dist/lib/cjs/plugin/plugin-context.cjs +10 -9
  231. package/dist/lib/cjs/plugin/plugin-event-source.cjs +1 -1
  232. package/dist/lib/cjs/plugin/plugin-event-source.d.cts +4 -4
  233. package/dist/lib/cjs/plugin/plugin-install-state.cjs +49 -4
  234. package/dist/lib/cjs/plugin/plugin-install-state.d.cts +30 -0
  235. package/dist/lib/cjs/plugin/plugin-instance.cjs +450 -0
  236. package/dist/lib/cjs/plugin/plugin-instance.d.cts +258 -0
  237. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +1 -1
  238. package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +6 -4
  239. package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +15 -15
  240. package/dist/lib/cjs/plugin/plugin.cjs +133 -34
  241. package/dist/lib/cjs/plugin/plugin.d.cts +35 -5
  242. package/dist/lib/cjs/plugin/settings-migration-api.cjs +1 -1
  243. package/dist/lib/cjs/plugin/third-party-plugin.cjs +231 -0
  244. package/dist/lib/cjs/plugin/third-party-plugin.d.cts +244 -0
  245. package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +2 -2
  246. package/dist/lib/cjs/popovers/field-popover.cjs +4 -4
  247. package/dist/lib/cjs/popovers/index.cjs +3 -3
  248. package/dist/lib/cjs/popovers/popover-anchor.cjs +1 -1
  249. package/dist/lib/cjs/popovers/popover.cjs +5 -5
  250. package/dist/lib/cjs/queue.cjs +8 -8
  251. package/dist/lib/cjs/react/app-context.cjs +3 -3
  252. package/dist/lib/cjs/react/index.cjs +1 -1
  253. package/dist/lib/cjs/reference-definition.cjs +1 -1
  254. package/dist/lib/cjs/reference.cjs +3 -3
  255. package/dist/lib/cjs/release-asset.cjs +5 -5
  256. package/dist/lib/cjs/rendered-markdown.cjs +4 -4
  257. package/dist/lib/cjs/request-url.cjs +4 -4
  258. package/dist/lib/cjs/resource-lock.cjs +46 -42
  259. package/dist/lib/cjs/resource-lock.d.cts +8 -7
  260. package/dist/lib/cjs/resource-url.cjs +3 -3
  261. package/dist/lib/cjs/ribbon-icon-registrar.cjs +1 -1
  262. package/dist/lib/cjs/setting-components/checkbox-component.cjs +3 -3
  263. package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +7 -7
  264. package/dist/lib/cjs/setting-components/date-component.cjs +4 -4
  265. package/dist/lib/cjs/setting-components/date-time-component.cjs +4 -4
  266. package/dist/lib/cjs/setting-components/email-component.cjs +2 -2
  267. package/dist/lib/cjs/setting-components/file-component.cjs +2 -2
  268. package/dist/lib/cjs/setting-components/folder-list-component.cjs +3 -3
  269. package/dist/lib/cjs/setting-components/hotkey-component.cjs +5 -5
  270. package/dist/lib/cjs/setting-components/index.cjs +30 -30
  271. package/dist/lib/cjs/setting-components/list-component.cjs +5 -5
  272. package/dist/lib/cjs/setting-components/month-component.cjs +4 -4
  273. package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +3 -3
  274. package/dist/lib/cjs/setting-components/multiple-email-component.cjs +2 -2
  275. package/dist/lib/cjs/setting-components/multiple-file-component.cjs +3 -3
  276. package/dist/lib/cjs/setting-components/multiple-text-component.cjs +9 -6
  277. package/dist/lib/cjs/setting-components/multiple-text-component.d.cts +4 -1
  278. package/dist/lib/cjs/setting-components/number-component.cjs +2 -2
  279. package/dist/lib/cjs/setting-components/password-component.cjs +2 -2
  280. package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +3 -3
  281. package/dist/lib/cjs/setting-components/tag-list-component.cjs +4 -4
  282. package/dist/lib/cjs/setting-components/telephone-component.cjs +2 -2
  283. package/dist/lib/cjs/setting-components/text-based-component.cjs +1 -1
  284. package/dist/lib/cjs/setting-components/time-component.cjs +3 -3
  285. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +3 -3
  286. package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +3 -3
  287. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +4 -4
  288. package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +1 -1
  289. package/dist/lib/cjs/setting-components/typed-text-component.cjs +3 -3
  290. package/dist/lib/cjs/setting-components/url-component.cjs +2 -2
  291. package/dist/lib/cjs/setting-components/validator-component.cjs +4 -4
  292. package/dist/lib/cjs/setting-components/week-component.cjs +4 -4
  293. package/dist/lib/cjs/setting-ex.cjs +26 -26
  294. package/dist/lib/cjs/setting-group-ex.cjs +2 -2
  295. package/dist/lib/cjs/settings-recovery.cjs +217 -0
  296. package/dist/lib/cjs/settings-recovery.d.cts +178 -0
  297. package/dist/lib/cjs/settings-tabs.cjs +5 -5
  298. package/dist/lib/cjs/status-bar-item-registrar.cjs +1 -1
  299. package/dist/lib/cjs/templater.cjs +14 -4
  300. package/dist/lib/cjs/templater.d.cts +6 -0
  301. package/dist/lib/cjs/transformers/duration-transformer.cjs +2 -2
  302. package/dist/lib/cjs/transformers/index.cjs +1 -1
  303. package/dist/lib/cjs/trusted-input.cjs +1 -1
  304. package/dist/lib/cjs/validation.cjs +4 -4
  305. package/dist/lib/cjs/vault-delete.cjs +6 -6
  306. package/dist/lib/cjs/vault-transaction.cjs +5 -5
  307. package/dist/lib/cjs/vault.cjs +12 -12
  308. package/dist/lib/cjs/view-registrar.cjs +1 -1
  309. package/dist/lib/cjs/virtual-file.cjs +16 -14
  310. package/dist/lib/cjs/virtual-file.d.cts +2 -1
  311. package/dist/lib/cjs/wasm.cjs +119 -0
  312. package/dist/lib/cjs/wasm.d.cts +54 -0
  313. package/dist/lib/cjs/worker-protocol.cjs +209 -0
  314. package/dist/lib/cjs/worker-protocol.d.cts +282 -0
  315. package/dist/lib/cjs/workspace.cjs +1 -1
  316. package/dist/lib/esm/__merged.d.mts +26 -10
  317. package/dist/lib/esm/__merged.mjs +215 -5
  318. package/dist/lib/esm/app.mjs +2 -2
  319. package/dist/lib/esm/attachment-path.d.mts +3 -3
  320. package/dist/lib/esm/attachment-path.mjs +2 -2
  321. package/dist/lib/esm/backlink-index.mjs +2 -2
  322. package/dist/lib/esm/bug-report-diagnostics.d.mts +186 -0
  323. package/dist/lib/esm/bug-report-diagnostics.mjs +127 -0
  324. package/dist/lib/esm/bug-report.d.mts +65 -0
  325. package/dist/lib/esm/bug-report.mjs +33 -10
  326. package/dist/lib/esm/canvas.d.mts +13 -0
  327. package/dist/lib/esm/canvas.mjs +6 -5
  328. package/dist/lib/esm/command-handlers/abstract-file-command-handler.d.mts +13 -13
  329. package/dist/lib/esm/command-handlers/abstract-file-command-handler.mjs +14 -14
  330. package/dist/lib/esm/command-handlers/editor-command-handler.d.mts +7 -7
  331. package/dist/lib/esm/command-handlers/editor-command-handler.mjs +8 -8
  332. package/dist/lib/esm/command-handlers/open-bug-report-command-handler.d.mts +34 -2
  333. package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +99 -3
  334. package/dist/lib/esm/components/all-windows-status-bar-item-component.d.mts +146 -0
  335. package/dist/lib/esm/components/all-windows-status-bar-item-component.mjs +154 -0
  336. package/dist/lib/esm/components/component-ex.d.mts +11 -0
  337. package/dist/lib/esm/components/component-ex.mjs +19 -6
  338. package/dist/lib/esm/components/disposable-component.mjs +1 -1
  339. package/dist/lib/esm/components/embed-extensions-component.d.mts +8 -0
  340. package/dist/lib/esm/components/embed-extensions-component.mjs +20 -3
  341. package/dist/lib/esm/components/embeddable-markdown-editor-component.d.mts +9 -0
  342. package/dist/lib/esm/components/embeddable-markdown-editor-component.mjs +16 -2
  343. package/dist/lib/esm/components/index.d.mts +5 -0
  344. package/dist/lib/esm/components/index.mjs +12 -2
  345. package/dist/lib/esm/components/plugin-gate-component.d.mts +36 -13
  346. package/dist/lib/esm/components/plugin-gate-component.mjs +61 -26
  347. package/dist/lib/esm/components/plugin-notice-component.d.mts +4 -3
  348. package/dist/lib/esm/components/plugin-notice-component.mjs +30 -21
  349. package/dist/lib/esm/components/plugin-settings-component.d.mts +35 -5
  350. package/dist/lib/esm/components/plugin-settings-component.mjs +105 -4
  351. package/dist/lib/esm/components/rename-delete-handler-component.mjs +2 -2
  352. package/dist/lib/esm/components/shared-component-pool-component.d.mts +129 -0
  353. package/dist/lib/esm/components/shared-component-pool-component.mjs +280 -0
  354. package/dist/lib/esm/components/worker-component.d.mts +156 -0
  355. package/dist/lib/esm/components/worker-component.mjs +279 -0
  356. package/dist/lib/esm/components/worker-pool-component.d.mts +102 -0
  357. package/dist/lib/esm/components/worker-pool-component.mjs +95 -0
  358. package/dist/lib/esm/components/workspace-layout-state-component.d.mts +239 -0
  359. package/dist/lib/esm/components/workspace-layout-state-component.mjs +404 -0
  360. package/dist/lib/esm/css-class.d.mts +16 -0
  361. package/dist/lib/esm/css-class.mjs +5 -1
  362. package/dist/lib/esm/data-handler.d.mts +219 -2
  363. package/dist/lib/esm/data-handler.mjs +262 -5
  364. package/dist/lib/esm/data-stores/data-store-locations.d.mts +15 -0
  365. package/dist/lib/esm/data-stores/data-store-locations.mjs +80 -22
  366. package/dist/lib/esm/data-stores/data-store-replica.mjs +33 -5
  367. package/dist/lib/esm/data-stores/data-store-seeds.d.mts +2 -2
  368. package/dist/lib/esm/data-stores/data-store-seeds.mjs +4 -4
  369. package/dist/lib/esm/data-stores/data-store-transport.d.mts +30 -1
  370. package/dist/lib/esm/data-stores/data-store-transport.mjs +78 -5
  371. package/dist/lib/esm/data-stores/local-data-store.d.mts +58 -1
  372. package/dist/lib/esm/data-stores/local-data-store.mjs +71 -9
  373. package/dist/lib/esm/data-stores/shared-data-store.d.mts +18 -1
  374. package/dist/lib/esm/data-stores/shared-data-store.mjs +72 -15
  375. package/dist/lib/esm/dataview.d.mts +14 -0
  376. package/dist/lib/esm/dataview.mjs +19 -1
  377. package/dist/lib/esm/demo-vault-helper.d.mts +6 -2
  378. package/dist/lib/esm/demo-vault-helper.mjs +29 -1
  379. package/dist/lib/esm/desktop-demo-vault-opener.mjs +1 -1
  380. package/dist/lib/esm/desktop-git-runner.d.mts +8 -2
  381. package/dist/lib/esm/desktop-git-runner.mjs +3 -3
  382. package/dist/lib/esm/desktop-request-url-stream.mjs +4 -10
  383. package/dist/lib/esm/disposable.d.mts +39 -0
  384. package/dist/lib/esm/disposable.mjs +64 -0
  385. package/dist/lib/esm/file-system.mjs +2 -2
  386. package/dist/lib/esm/frontmatter-formatting.mjs +2 -1
  387. package/dist/lib/esm/generated-during-build.mjs +2 -2
  388. package/dist/lib/esm/git-rename-history.d.mts +2 -2
  389. package/dist/lib/esm/git-rename-history.mjs +1 -1
  390. package/dist/lib/esm/i18n/locales/en.d.mts +26 -0
  391. package/dist/lib/esm/i18n/locales/en.mjs +27 -1
  392. package/dist/lib/esm/i18n/locales/translations-map.d.mts +26 -0
  393. package/dist/lib/esm/index.d.mts +7 -0
  394. package/dist/lib/esm/index.mjs +15 -1
  395. package/dist/lib/esm/link.d.mts +20 -14
  396. package/dist/lib/esm/link.mjs +57 -38
  397. package/dist/lib/esm/loop.mjs +2 -8
  398. package/dist/lib/esm/markdown-code-block-processor-registrar.d.mts +7 -0
  399. package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +16 -1
  400. package/dist/lib/esm/markdown-view.d.mts +48 -1
  401. package/dist/lib/esm/markdown-view.mjs +192 -2
  402. package/dist/lib/esm/metadata-cache.d.mts +5 -4
  403. package/dist/lib/esm/metadata-cache.mjs +6 -6
  404. package/dist/lib/esm/misplaced-attachment.d.mts +228 -0
  405. package/dist/lib/esm/misplaced-attachment.mjs +212 -0
  406. package/dist/lib/esm/modals/copy-text-manually.d.mts +38 -0
  407. package/dist/lib/esm/modals/copy-text-manually.mjs +99 -0
  408. package/dist/lib/esm/modals/index.d.mts +2 -0
  409. package/dist/lib/esm/modals/index.mjs +5 -1
  410. package/dist/lib/esm/modals/prompt.d.mts +1 -1
  411. package/dist/lib/esm/modals/prompt.mjs +1 -1
  412. package/dist/lib/esm/modals/review-bug-report-diagnostics.d.mts +30 -0
  413. package/dist/lib/esm/modals/review-bug-report-diagnostics.mjs +120 -0
  414. package/dist/lib/esm/notebook-navigator.d.mts +6 -0
  415. package/dist/lib/esm/notebook-navigator.mjs +11 -2
  416. package/dist/lib/esm/parse-link.mjs +4 -4
  417. package/dist/lib/esm/path-compatibility.d.mts +263 -0
  418. package/dist/lib/esm/path-compatibility.mjs +277 -0
  419. package/dist/lib/esm/plugin/index.d.mts +2 -0
  420. package/dist/lib/esm/plugin/index.mjs +6 -2
  421. package/dist/lib/esm/plugin/plugin-api.d.mts +5 -1
  422. package/dist/lib/esm/plugin/plugin-api.mjs +13 -4
  423. package/dist/lib/esm/plugin/plugin-async-cleanup.d.mts +5 -0
  424. package/dist/lib/esm/plugin/plugin-async-cleanup.mjs +3 -1
  425. package/dist/lib/esm/plugin/plugin-context.mjs +2 -1
  426. package/dist/lib/esm/plugin/plugin-event-source.d.mts +4 -4
  427. package/dist/lib/esm/plugin/plugin-event-source.mjs +1 -1
  428. package/dist/lib/esm/plugin/plugin-install-state.d.mts +30 -0
  429. package/dist/lib/esm/plugin/plugin-install-state.mjs +44 -1
  430. package/dist/lib/esm/plugin/plugin-instance.d.mts +258 -0
  431. package/dist/lib/esm/plugin/plugin-instance.mjs +367 -0
  432. package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +6 -4
  433. package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +1 -1
  434. package/dist/lib/esm/plugin/plugin.d.mts +35 -5
  435. package/dist/lib/esm/plugin/plugin.mjs +118 -9
  436. package/dist/lib/esm/plugin/third-party-plugin.d.mts +244 -0
  437. package/dist/lib/esm/plugin/third-party-plugin.mjs +147 -0
  438. package/dist/lib/esm/release-asset.mjs +1 -1
  439. package/dist/lib/esm/resource-lock.d.mts +8 -7
  440. package/dist/lib/esm/resource-lock.mjs +31 -26
  441. package/dist/lib/esm/setting-components/multiple-text-component.d.mts +4 -1
  442. package/dist/lib/esm/setting-components/multiple-text-component.mjs +6 -3
  443. package/dist/lib/esm/settings-recovery.d.mts +178 -0
  444. package/dist/lib/esm/settings-recovery.mjs +125 -0
  445. package/dist/lib/esm/settings-tabs.mjs +2 -2
  446. package/dist/lib/esm/templater.d.mts +6 -0
  447. package/dist/lib/esm/templater.mjs +11 -2
  448. package/dist/lib/esm/vault.mjs +1 -1
  449. package/dist/lib/esm/virtual-file.d.mts +2 -1
  450. package/dist/lib/esm/virtual-file.mjs +7 -5
  451. package/dist/lib/esm/wasm.d.mts +54 -0
  452. package/dist/lib/esm/wasm.mjs +30 -0
  453. package/dist/lib/esm/worker-protocol.d.mts +282 -0
  454. package/dist/lib/esm/worker-protocol.mjs +113 -0
  455. package/dist/styles.css +16 -1
  456. package/modals/copy-text-manually/package.json +6 -0
  457. package/modals/review-bug-report-diagnostics/package.json +6 -0
  458. package/package.json +10 -8
  459. package/plugin/plugin-instance/package.json +6 -0
  460. package/plugin/third-party-plugin/package.json +6 -0
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Contains the implementation of the plugin event source.
6
6
  */
7
- import type { AsyncEventRef, AsyncEventSource } from '@mnaoumov/typescript-lib/async-events' with { 'resolution-mode': 'import' };
7
+ import type { AsyncEventRef, AsyncEventSource, CallbackArguments } from '@mnaoumov/typescript-lib/async-events' with { 'resolution-mode': 'import' };
8
8
  import type { StringKeys } from '@mnaoumov/typescript-lib/type' with { 'resolution-mode': 'import' };
9
9
  import type { Promisable } from 'type-fest' with { 'resolution-mode': 'import' };
10
10
  import type { PluginBase } from './plugin.cjs';
@@ -45,7 +45,7 @@ export declare class PluginEventSourceImpl implements PluginEventSource {
45
45
  * events.off('my-event', myListener);
46
46
  * ```
47
47
  */
48
- off<EventName extends StringKeys<PluginEventMap>, Arguments extends EventName extends StringKeys<PluginEventMap> ? PluginEventMap[EventName] : unknown[]>(name: EventName, callback: (...$arguments: Arguments) => Promisable<void>): void;
48
+ off<EventName extends StringKeys<PluginEventMap>, Arguments extends CallbackArguments<PluginEventMap, EventName>>(name: EventName, callback: (...$arguments: Arguments) => Promisable<void>): void;
49
49
  /**
50
50
  * Remove an event listener by reference.
51
51
  *
@@ -72,7 +72,7 @@ export declare class PluginEventSourceImpl implements PluginEventSource {
72
72
  * });
73
73
  * ```
74
74
  */
75
- on<EventName extends StringKeys<PluginEventMap>, Arguments extends EventName extends StringKeys<PluginEventMap> ? PluginEventMap[EventName] : unknown[]>(name: EventName, callback: (...$arguments: Arguments) => Promisable<void>, thisArgument?: unknown): AsyncEventRef;
75
+ on<EventName extends StringKeys<PluginEventMap>, Arguments extends CallbackArguments<PluginEventMap, EventName>>(name: EventName, callback: (...$arguments: Arguments) => Promisable<void>, thisArgument?: unknown): AsyncEventRef;
76
76
  /**
77
77
  * Add an event listener that will be triggered only once.
78
78
  *
@@ -93,5 +93,5 @@ export declare class PluginEventSourceImpl implements PluginEventSource {
93
93
  * });
94
94
  * ```
95
95
  */
96
- once<EventName extends StringKeys<PluginEventMap>, Arguments extends EventName extends StringKeys<PluginEventMap> ? PluginEventMap[EventName] : unknown[]>(name: EventName, callback: (...$arguments: Arguments) => Promisable<void>, thisArgument?: unknown): AsyncEventRef;
96
+ once<EventName extends StringKeys<PluginEventMap>, Arguments extends CallbackArguments<PluginEventMap, EventName>>(name: EventName, callback: (...$arguments: Arguments) => Promisable<void>, thisArgument?: unknown): AsyncEventRef;
97
97
  }
@@ -2,6 +2,33 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return "/";
11
+ },
12
+ env: {},
13
+ platform: "android"
14
+ };
15
+ const existingProcess = globalThis.process;
16
+ if (!existingProcess) {
17
+ globalThis.process = browserProcess;
18
+ return;
19
+ }
20
+ if (existingProcess.versions?.node) {
21
+ return;
22
+ }
23
+ const existingProcessRecord = existingProcess;
24
+ for (const [key, value] of Object.entries(browserProcess)) {
25
+ existingProcessRecord[key] ??= value;
26
+ }
27
+ existingProcessRecord["browser"] = true;
28
+ }
29
+
30
+ ensureBrowserProcess();
31
+ })();
5
32
  (function patchObsidianRequire() {
6
33
  const originalRequire = require;
7
34
  if (!originalRequire || originalRequire.__isPatched) {
@@ -88,21 +115,37 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
88
115
  var plugin_install_state_exports = {};
89
116
  __export(plugin_install_state_exports, {
90
117
  InstalledPluginState: () => InstalledPluginState,
118
+ PluginVersionComparison: () => PluginVersionComparison,
119
+ comparePluginVersionWithMinimum: () => comparePluginVersionWithMinimum,
91
120
  getInstalledPluginState: () => getInstalledPluginState,
92
121
  getInstalledPluginVersion: () => getInstalledPluginVersion,
93
122
  installAndEnablePlugin: () => installAndEnablePlugin,
94
123
  updatePlugin: () => updatePlugin
95
124
  });
96
125
  module.exports = __toCommonJS(plugin_install_state_exports);
97
- var import_community_plugins = require('../community-plugins.cjs');
98
- var import_html_element = require('../html-element.cjs');
99
- var import_i18n = require('../i18n/i18n.cjs');
126
+ var import_compare_versions = require("compare-versions");
127
+ var import_community_plugins = require("../community-plugins.cjs");
128
+ var import_html_element = require("../html-element.cjs");
129
+ var import_i18n = require("../i18n/i18n.cjs");
100
130
  var InstalledPluginState = /* @__PURE__ */ ((InstalledPluginState2) => {
101
131
  InstalledPluginState2["Enabled"] = "enabled";
102
132
  InstalledPluginState2["InstalledButDisabled"] = "installedButDisabled";
103
133
  InstalledPluginState2["NotInstalled"] = "notInstalled";
104
134
  return InstalledPluginState2;
105
135
  })(InstalledPluginState || {});
136
+ var PluginVersionComparison = /* @__PURE__ */ ((PluginVersionComparison2) => {
137
+ PluginVersionComparison2["AtLeastMinimum"] = "atLeastMinimum";
138
+ PluginVersionComparison2["BelowMinimum"] = "belowMinimum";
139
+ PluginVersionComparison2["Invalid"] = "invalid";
140
+ return PluginVersionComparison2;
141
+ })(PluginVersionComparison || {});
142
+ function comparePluginVersionWithMinimum(version, minVersion) {
143
+ try {
144
+ return (0, import_compare_versions.compare)(version, minVersion, ">=") ? "atLeastMinimum" /* AtLeastMinimum */ : "belowMinimum" /* BelowMinimum */;
145
+ } catch {
146
+ return "invalid" /* Invalid */;
147
+ }
148
+ }
106
149
  function getInstalledPluginState(params) {
107
150
  const { app, pluginId } = params;
108
151
  if (app.plugins.enabledPlugins.has(pluginId)) {
@@ -168,9 +211,11 @@ async function updatePlugin(params) {
168
211
  // Annotate the CommonJS export names for ESM import in node:
169
212
  0 && (module.exports = {
170
213
  InstalledPluginState,
214
+ PluginVersionComparison,
215
+ comparePluginVersionWithMinimum,
171
216
  getInstalledPluginState,
172
217
  getInstalledPluginVersion,
173
218
  installAndEnablePlugin,
174
219
  updatePlugin
175
220
  });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLWluc3RhbGwtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEhvdyBhbm90aGVyIHBsdWdpbiBpcyBwcmVzZW50IGluIHRoaXMgdmF1bHQsIGFuZCB0aGUgb25lLWNsaWNrIHBhdGggdG8gbWFraW5nIGl0IHByZXNlbnQuXG4gKlxuICogU2hhcmVkIGJ5IHRoZSB0d28gY29tcG9uZW50cyB0aGF0IGFzayBhIHVzZXIgdG8gYnJpbmcgYW5vdGhlciBwbHVnaW4gaW46IGBQbHVnaW5TdWdnZXN0aW9uQ29tcG9uZW50YCxcbiAqIHdoaWNoIE9GRkVSUyBvbmUgYW5kIGtlZXBzIHdvcmtpbmcgd2l0aG91dCBpdCwgYW5kIGBQbHVnaW5HYXRlQ29tcG9uZW50YCwgd2hpY2ggUkVRVUlSRVMgb25lIGFuZFxuICogZG9lcyBub3RoaW5nIHVudGlsIGl0IGlzIHRoZXJlLiBUaGUgb2ZmZXIgYW5kIHRoZSByZXF1aXJlbWVudCBkaWZmZXIgaW4gd2hhdCB0aGV5IGRvIGFib3V0IHRoZSBhbnN3ZXIsXG4gKiBub3QgaW4gaG93IHRoZXkgcmVhZCB0aGUgc3RhdGUgb3IgaG93IHRoZXkgaW5zdGFsbCDigJQgc28gdGhhdCBwYXJ0IGxpdmVzIGhlcmUgcmF0aGVyIHRoYW4gaW4gYm90aC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW5Ob3RpY2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1ub3RpY2UtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHtcbiAgZW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBpbnN0YWxsQ29uZmlndXJlRW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICB1cGRhdGVDb21tdW5pdHlQbHVnaW4sXG4gIFVwZGF0ZUNvbW11bml0eVBsdWdpblJlc3VsdFxufSBmcm9tICcuLi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5pbXBvcnQge1xuICBhc0NvZGVCbG9jayxcbiAgY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2Nrc1xufSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5cbi8qKlxuICogSG93IGFub3RoZXIgcGx1Z2luIGlzIGN1cnJlbnRseSBwcmVzZW50IGluIHRoZSB2YXVsdC5cbiAqL1xuZXhwb3J0IGVudW0gSW5zdGFsbGVkUGx1Z2luU3RhdGUge1xuICAvKipcbiAgICogSW5zdGFsbGVkIGFuZCBlbmFibGVkIOKAlCB0aGVyZSBpcyBub3RoaW5nIHRvIGRvLlxuICAgKi9cbiAgRW5hYmxlZCA9ICdlbmFibGVkJyxcblxuICAvKipcbiAgICogSW5zdGFsbGVkIGJ1dCBkaXNhYmxlZC4gT25seSBhbiBlbmFibGUgaXMgbmVlZGVkLCBzbyBubyBkb3dubG9hZCBoYXBwZW5zLlxuICAgKi9cbiAgSW5zdGFsbGVkQnV0RGlzYWJsZWQgPSAnaW5zdGFsbGVkQnV0RGlzYWJsZWQnLFxuXG4gIC8qKlxuICAgKiBOb3QgaW5zdGFsbGVkIGF0IGFsbC5cbiAgICovXG4gIE5vdEluc3RhbGxlZCA9ICdub3RJbnN0YWxsZWQnXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGdldEluc3RhbGxlZFBsdWdpblN0YXRlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRJbnN0YWxsZWRQbHVnaW5TdGF0ZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBgbWFuaWZlc3QuaWRgIG9mIHRoZSBwbHVnaW4gdG8gbG9vayBmb3IuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRJbnN0YWxsZWRQbHVnaW5WZXJzaW9ufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRJbnN0YWxsZWRQbHVnaW5WZXJzaW9uUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGBtYW5pZmVzdC5pZGAgb2YgdGhlIHBsdWdpbiB0byBsb29rIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGluc3RhbGxBbmRFbmFibGVQbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbGxBbmRFbmFibGVQbHVnaW5QYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgYG1hbmlmZXN0LmlkYCBvZiB0aGUgcGx1Z2luIHRvIGluc3RhbGwgYW5kIGVuYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHBsdWdpbiwgc2hvd24gdG8gdGhlIHVzZXIuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBub3RpY2UgY29tcG9uZW50IG9mIHRoZSBwbHVnaW4gZG9pbmcgdGhlIGFza2luZywgdXNlZCB0byByZXBvcnQgdGhlIG91dGNvbWUuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgdXBkYXRlUGx1Z2lufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVQbHVnaW5QYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgYG1hbmlmZXN0LmlkYCBvZiB0aGUgcGx1Z2luIHRvIHVwZGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHBsdWdpbiwgc2hvd24gdG8gdGhlIHVzZXIuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBub3RpY2UgY29tcG9uZW50IG9mIHRoZSBwbHVnaW4gZG9pbmcgdGhlIGFza2luZywgdXNlZCB0byByZXBvcnQgdGhlIG91dGNvbWUuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgcGx1Z2luIGRvaW5nIHRoZSBhc2tpbmcsIG5hbWVkIHdoZW4gdGhlIHVwZGF0ZSBjYW5ub3QgaGVscCBpdC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RpbmdQbHVnaW5OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgaG93IGFub3RoZXIgcGx1Z2luIGlzIGN1cnJlbnRseSBwcmVzZW50IGluIHRoZSB2YXVsdC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBHZXRJbnN0YWxsZWRQbHVnaW5TdGF0ZVBhcmFtc30uXG4gKiBAcmV0dXJucyBUaGUge0BsaW5rIEluc3RhbGxlZFBsdWdpblN0YXRlfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEluc3RhbGxlZFBsdWdpblN0YXRlKHBhcmFtczogR2V0SW5zdGFsbGVkUGx1Z2luU3RhdGVQYXJhbXMpOiBJbnN0YWxsZWRQbHVnaW5TdGF0ZSB7XG4gIGNvbnN0IHsgYXBwLCBwbHVnaW5JZCB9ID0gcGFyYW1zO1xuXG4gIGlmIChhcHAucGx1Z2lucy5lbmFibGVkUGx1Z2lucy5oYXMocGx1Z2luSWQpKSB7XG4gICAgcmV0dXJuIEluc3RhbGxlZFBsdWdpblN0YXRlLkVuYWJsZWQ7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0Lmhhc093bihhcHAucGx1Z2lucy5tYW5pZmVzdHMsIHBsdWdpbklkKVxuICAgID8gSW5zdGFsbGVkUGx1Z2luU3RhdGUuSW5zdGFsbGVkQnV0RGlzYWJsZWRcbiAgICA6IEluc3RhbGxlZFBsdWdpblN0YXRlLk5vdEluc3RhbGxlZDtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgdmVyc2lvbiBvZiBhbm90aGVyIHBsdWdpbiBhcyB0aGlzIHZhdWx0IGhhcyBpdCBpbnN0YWxsZWQsIG9yIGBudWxsYCB3aGVuIGl0IGlzIG5vdCBydW5uaW5nLlxuICpcbiAqIFRoZSB2ZXJzaW9uIGNvbWVzIG91dCBvZiBgYXBwLnBsdWdpbnMubWFuaWZlc3RzYCwgd2hpY2ggaXMgcG9wdWxhdGVkIGZvciBldmVyeSBpbnN0YWxsZWQgcGx1Z2luIGF0XG4gKiBzdGFydHVwIOKAlCBzbywgdW5saWtlIGFueXRoaW5nIGEgcGx1Z2luIFJFR0lTVEVSUywgaXQgYW5zd2VycyB0aGUgc2FtZSB3YXkgbm8gbWF0dGVyIHdoaWNoIHBsdWdpbiBsb2FkZWRcbiAqIGZpcnN0LiBUaGF0IGxvYWQtb3JkZXIgaW5kZXBlbmRlbmNlIGlzIHRoZSB3aG9sZSByZWFzb24gYSBjb25mbGljdCBpcyBkZXRlY3RlZCBieSB2ZXJzaW9uIHJhdGhlciB0aGFuIGJ5XG4gKiBhc2tpbmcgYSByZWdpc3RyeS5cbiAqXG4gKiBgbnVsbGAgZm9yIGEgcGx1Z2luIHRoYXQgaXMgbm90IGluc3RhbGxlZCBPUiBpcyBpbnN0YWxsZWQgYnV0IGRpc2FibGVkOiBhIGRpc2FibGVkIHBsdWdpbiByZWdpc3RlcnNcbiAqIG5vdGhpbmcsIHNvIGZvciBldmVyeSBxdWVzdGlvbiB0aGlzIGFuc3dlcnMgdGhlIHR3byBjYXNlcyBhcmUgdGhlIHNhbWUuIEFuIGluc3RhbGxlZCwgZW5hYmxlZCBwbHVnaW5cbiAqIHdob3NlIG1hbmlmZXN0IHNvbWVob3cgY2FycmllcyBubyB2ZXJzaW9uIHJlYWRzIGFzIGFuIGVtcHR5IHN0cmluZyByYXRoZXIgdGhhbiBgbnVsbGAsIHdoaWNoIGtlZXBzXG4gKiBcInJ1bm5pbmcsIHZlcnNpb24gdW5rbm93blwiIGRpc3Rpbmd1aXNoYWJsZSBmcm9tIFwibm90IHJ1bm5pbmdcIiDigJQgYSBjYWxsZXIgY29tcGFyaW5nIHZlcnNpb25zIHNob3VsZCBmYWlsXG4gKiBjbG9zZWQgb24gaXQgcmF0aGVyIHRoYW4gdHJlYXQgaXQgYXMgYWJzZW50LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEdldEluc3RhbGxlZFBsdWdpblZlcnNpb25QYXJhbXN9LlxuICogQHJldHVybnMgVGhlIGluc3RhbGxlZCB2ZXJzaW9uLCBvciBgbnVsbGAgd2hlbiB0aGUgcGx1Z2luIGlzIG5vdCBlbmFibGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5zdGFsbGVkUGx1Z2luVmVyc2lvbihwYXJhbXM6IEdldEluc3RhbGxlZFBsdWdpblZlcnNpb25QYXJhbXMpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgeyBhcHAsIHBsdWdpbklkIH0gPSBwYXJhbXM7XG5cbiAgcmV0dXJuIGFwcC5wbHVnaW5zLmVuYWJsZWRQbHVnaW5zLmhhcyhwbHVnaW5JZCkgPyBhcHAucGx1Z2lucy5tYW5pZmVzdHNbcGx1Z2luSWRdPy52ZXJzaW9uID8/ICcnIDogbnVsbDtcbn1cblxuLyoqXG4gKiBJbnN0YWxscyAod2hlbiBuZWVkZWQpIGFuZCBlbmFibGVzIGFub3RoZXIgcGx1Z2luLCByZXBvcnRpbmcgdGhlIG91dGNvbWUgYXMgYSBub3RpY2UuXG4gKlxuICogQSBuby1vcCB3aGVuIHRoZSBwbHVnaW4gaXMgYWxyZWFkeSBlbmFibGVkLCBzbyBhIGNhbGxlciByZWFjdGluZyB0byBhIGNsaWNrIG5lZWQgbm90IGNoZWNrIGZpcnN0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEluc3RhbGxBbmRFbmFibGVQbHVnaW5QYXJhbXN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBwbHVnaW4gaXMgZW5hYmxlZC5cbiAqIEB0aHJvd3MgV2hhdGV2ZXIgdGhlIGluc3RhbGwgb3IgZW5hYmxlIHRocmV3LCBhZnRlciByZXBvcnRpbmcgaXQgYXMgYSBub3RpY2Ug4oCUIHRoZSBjYWxsZXIgZGVjaWRlc1xuICogd2hldGhlciBhIGZhaWx1cmUgaXMgd29ydGggbW9yZSB0aGFuIHRoZSBub3RpY2UgdGhlIHVzZXIgaGFzIGFscmVhZHkgc2Vlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluc3RhbGxBbmRFbmFibGVQbHVnaW4ocGFyYW1zOiBJbnN0YWxsQW5kRW5hYmxlUGx1Z2luUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnRcbiAgfSA9IHBhcmFtcztcbiAgY29uc3Qgc3RhdGUgPSBnZXRJbnN0YWxsZWRQbHVnaW5TdGF0ZSh7IGFwcCwgcGx1Z2luSWQgfSk7XG5cbiAgaWYgKHN0YXRlID09PSBJbnN0YWxsZWRQbHVnaW5TdGF0ZS5FbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBpZiAoc3RhdGUgPT09IEluc3RhbGxlZFBsdWdpblN0YXRlLkluc3RhbGxlZEJ1dERpc2FibGVkKSB7XG4gICAgICBhd2FpdCBlbmFibGVDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBpbnN0YWxsQ29uZmlndXJlRW5hYmxlQ29tbXVuaXR5UGx1Z2luKHsgYXBwLCBwbHVnaW5JZCB9KTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2UoY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2NrcyhcbiAgICAgIHQoKCQpID0+ICQub2JzaWRpYW5MaWIucGx1Z2luU3VnZ2VzdGlvbi5pbnN0YWxsRmFpbGVkLCB7IHBsdWdpbk5hbWU6IGFzQ29kZUJsb2NrKHBsdWdpbk5hbWUpIH0pXG4gICAgKSk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShjcmVhdGVGcmFnbWVudFdpdGhDb2RlQmxvY2tzKFxuICAgIHQoKCQpID0+ICQub2JzaWRpYW5MaWIucGx1Z2luU3VnZ2VzdGlvbi5pbnN0YWxsZWQsIHsgcGx1Z2luTmFtZTogYXNDb2RlQmxvY2socGx1Z2luTmFtZSkgfSlcbiAgKSk7XG59XG5cbi8qKlxuICogVXBkYXRlcyBhbm90aGVyLCBpbnN0YWxsZWQgcGx1Z2luIHRvIGl0cyBsYXRlc3QgcmVsZWFzZSwgcmVwb3J0aW5nIHRoZSBvdXRjb21lIGFzIGEgbm90aWNlLlxuICpcbiAqIFRoZSB1cGRhdGUgcGF0aCBmb3IgYSBwbHVnaW4gdGhhdCBpcyBlbmFibGVkIGJ1dCB0b28gb2xkIGZvciB0aGUgb25lIGFza2luZzogaW5zdGFsbGluZyBvciBlbmFibGluZyBpdFxuICogYWdhaW4gZG9lcyBub3RoaW5nLCBzbyB7QGxpbmsgaW5zdGFsbEFuZEVuYWJsZVBsdWdpbn0gY2Fubm90IGhlbHAgdGhlcmUuIEEgcGx1Z2luIGFscmVhZHkgYXQgaXRzIGxhdGVzdFxuICogcmVsZWFzZSBpcyByZXBvcnRlZCBhcyBzdWNoLCBuYW1pbmcgdGhlIHJlcXVlc3RpbmcgcGx1Z2luLCBiZWNhdXNlIHRoZW4gbm8gY2xpY2sgY2FuIHNhdGlzZnkgaXQgYW5kIHRoZVxuICogdXNlciBkZXNlcnZlcyB0byBrbm93IHRoYXQgcmF0aGVyIHRoYW4gd2F0Y2ggdGhlIGJ1dHRvbiBkbyBub3RoaW5nLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIFVwZGF0ZVBsdWdpblBhcmFtc30uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIHVwZGF0ZSBoYXMgcnVuLlxuICogQHRocm93cyBXaGF0ZXZlciB0aGUgdXBkYXRlIHRocmV3LCBhZnRlciByZXBvcnRpbmcgaXQgYXMgYSBub3RpY2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVQbHVnaW4ocGFyYW1zOiBVcGRhdGVQbHVnaW5QYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBwbHVnaW5JZCxcbiAgICBwbHVnaW5OYW1lLFxuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgICByZXF1ZXN0aW5nUGx1Z2luTmFtZVxuICB9ID0gcGFyYW1zO1xuXG4gIGxldCByZXN1bHQ6IFVwZGF0ZUNvbW11bml0eVBsdWdpblJlc3VsdDtcbiAgdHJ5IHtcbiAgICByZXN1bHQgPSBhd2FpdCB1cGRhdGVDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKGNyZWF0ZUZyYWdtZW50V2l0aENvZGVCbG9ja3MoXG4gICAgICB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnBsdWdpbkRlcGVuZGVuY3kudXBkYXRlRmFpbGVkLCB7IGRlcGVuZGVuY3lQbHVnaW5OYW1lOiBhc0NvZGVCbG9jayhwbHVnaW5OYW1lKSB9KVxuICAgICkpO1xuICAgIHRocm93IGVycm9yO1xuICB9XG5cbiAgcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2UoY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2NrcyhcbiAgICByZXN1bHQgPT09IFVwZGF0ZUNvbW11bml0eVBsdWdpblJlc3VsdC5VcGRhdGVkXG4gICAgICA/IHQoKCQpID0+ICQub2JzaWRpYW5MaWIucGx1Z2luRGVwZW5kZW5jeS51cGRhdGVkLCB7IGRlcGVuZGVuY3lQbHVnaW5OYW1lOiBhc0NvZGVCbG9jayhwbHVnaW5OYW1lKSB9KVxuICAgICAgOiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnBsdWdpbkRlcGVuZGVuY3kuYWxyZWFkeVVwVG9EYXRlLCB7XG4gICAgICAgIGRlcGVuZGVuY3lQbHVnaW5OYW1lOiBhc0NvZGVCbG9jayhwbHVnaW5OYW1lKSxcbiAgICAgICAgcGx1Z2luTmFtZTogYXNDb2RlQmxvY2socmVxdWVzdGluZ1BsdWdpbk5hbWUpXG4gICAgICB9KVxuICApKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUEsK0JBS087QUFDUCwwQkFHTztBQUNQLGtCQUFrQjtBQUtYLElBQUssdUJBQUwsa0JBQUtBLDBCQUFMO0FBSUwsRUFBQUEsc0JBQUEsYUFBVTtBQUtWLEVBQUFBLHNCQUFBLDBCQUF1QjtBQUt2QixFQUFBQSxzQkFBQSxrQkFBZTtBQWRMLFNBQUFBO0FBQUEsR0FBQTtBQTRHTCxTQUFTLHdCQUF3QixRQUE2RDtBQUNuRyxRQUFNLEVBQUUsS0FBSyxTQUFTLElBQUk7QUFFMUIsTUFBSSxJQUFJLFFBQVEsZUFBZSxJQUFJLFFBQVEsR0FBRztBQUM1QyxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sT0FBTyxPQUFPLElBQUksUUFBUSxXQUFXLFFBQVEsSUFDaEQsb0RBQ0E7QUFDTjtBQW1CTyxTQUFTLDBCQUEwQixRQUF3RDtBQUNoRyxRQUFNLEVBQUUsS0FBSyxTQUFTLElBQUk7QUFFMUIsU0FBTyxJQUFJLFFBQVEsZUFBZSxJQUFJLFFBQVEsSUFBSSxJQUFJLFFBQVEsVUFBVSxRQUFRLEdBQUcsV0FBVyxLQUFLO0FBQ3JHO0FBWUEsZUFBc0IsdUJBQXVCLFFBQXFEO0FBQ2hHLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osUUFBTSxRQUFRLHdCQUF3QixFQUFFLEtBQUssU0FBUyxDQUFDO0FBRXZELE1BQUksVUFBVSx5QkFBOEI7QUFDMUM7QUFBQSxFQUNGO0FBRUEsTUFBSTtBQUNGLFFBQUksVUFBVSxtREFBMkM7QUFDdkQsZ0JBQU0sZ0RBQXNCLEVBQUUsS0FBSyxTQUFTLENBQUM7QUFBQSxJQUMvQyxPQUFPO0FBQ0wsZ0JBQU0sZ0VBQXNDLEVBQUUsS0FBSyxTQUFTLENBQUM7QUFBQSxJQUMvRDtBQUFBLEVBQ0YsU0FBUyxPQUFPO0FBQ2QsMEJBQXNCLGVBQVc7QUFBQSxVQUMvQixlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksaUJBQWlCLGVBQWUsRUFBRSxnQkFBWSxpQ0FBWSxVQUFVLEVBQUUsQ0FBQztBQUFBLElBQ2hHLENBQUM7QUFDRCxVQUFNO0FBQUEsRUFDUjtBQUVBLHdCQUFzQixlQUFXO0FBQUEsUUFDL0IsZUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLGlCQUFpQixXQUFXLEVBQUUsZ0JBQVksaUNBQVksVUFBVSxFQUFFLENBQUM7QUFBQSxFQUM1RixDQUFDO0FBQ0g7QUFjQSxlQUFzQixhQUFhLFFBQTJDO0FBQzVFLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLE1BQUk7QUFDSixNQUFJO0FBQ0YsYUFBUyxVQUFNLGdEQUFzQixFQUFFLEtBQUssU0FBUyxDQUFDO0FBQUEsRUFDeEQsU0FBUyxPQUFPO0FBQ2QsMEJBQXNCLGVBQVc7QUFBQSxVQUMvQixlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksaUJBQWlCLGNBQWMsRUFBRSwwQkFBc0IsaUNBQVksVUFBVSxFQUFFLENBQUM7QUFBQSxJQUN6RyxDQUFDO0FBQ0QsVUFBTTtBQUFBLEVBQ1I7QUFFQSx3QkFBc0IsZUFBVztBQUFBLElBQy9CLFdBQVcscURBQTRCLGNBQ25DLGVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxpQkFBaUIsU0FBUyxFQUFFLDBCQUFzQixpQ0FBWSxVQUFVLEVBQUUsQ0FBQyxRQUNsRyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksaUJBQWlCLGlCQUFpQjtBQUFBLE1BQ3pELDBCQUFzQixpQ0FBWSxVQUFVO0FBQUEsTUFDNUMsZ0JBQVksaUNBQVksb0JBQW9CO0FBQUEsSUFDOUMsQ0FBQztBQUFBLEVBQ0wsQ0FBQztBQUNIOyIsIm5hbWVzIjpbIkluc3RhbGxlZFBsdWdpblN0YXRlIl19
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLWluc3RhbGwtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEhvdyBhbm90aGVyIHBsdWdpbiBpcyBwcmVzZW50IGluIHRoaXMgdmF1bHQsIGFuZCB0aGUgb25lLWNsaWNrIHBhdGggdG8gbWFraW5nIGl0IHByZXNlbnQuXG4gKlxuICogU2hhcmVkIGJ5IHRoZSB0d28gY29tcG9uZW50cyB0aGF0IGFzayBhIHVzZXIgdG8gYnJpbmcgYW5vdGhlciBwbHVnaW4gaW46IGBQbHVnaW5TdWdnZXN0aW9uQ29tcG9uZW50YCxcbiAqIHdoaWNoIE9GRkVSUyBvbmUgYW5kIGtlZXBzIHdvcmtpbmcgd2l0aG91dCBpdCwgYW5kIGBQbHVnaW5HYXRlQ29tcG9uZW50YCwgd2hpY2ggUkVRVUlSRVMgb25lIGFuZFxuICogZG9lcyBub3RoaW5nIHVudGlsIGl0IGlzIHRoZXJlLiBUaGUgb2ZmZXIgYW5kIHRoZSByZXF1aXJlbWVudCBkaWZmZXIgaW4gd2hhdCB0aGV5IGRvIGFib3V0IHRoZSBhbnN3ZXIsXG4gKiBub3QgaW4gaG93IHRoZXkgcmVhZCB0aGUgc3RhdGUgb3IgaG93IHRoZXkgaW5zdGFsbCDigJQgc28gdGhhdCBwYXJ0IGxpdmVzIGhlcmUgcmF0aGVyIHRoYW4gaW4gYm90aC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgY29tcGFyZSBhcyBjb21wYXJlVmVyc2lvbnMgfSBmcm9tICdjb21wYXJlLXZlcnNpb25zJztcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW5Ob3RpY2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1ub3RpY2UtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHtcbiAgZW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBpbnN0YWxsQ29uZmlndXJlRW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICB1cGRhdGVDb21tdW5pdHlQbHVnaW4sXG4gIFVwZGF0ZUNvbW11bml0eVBsdWdpblJlc3VsdFxufSBmcm9tICcuLi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5pbXBvcnQge1xuICBhc0NvZGVCbG9jayxcbiAgY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2Nrc1xufSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5cbi8qKlxuICogSG93IGFub3RoZXIgcGx1Z2luIGlzIGN1cnJlbnRseSBwcmVzZW50IGluIHRoZSB2YXVsdC5cbiAqL1xuZXhwb3J0IGVudW0gSW5zdGFsbGVkUGx1Z2luU3RhdGUge1xuICAvKipcbiAgICogSW5zdGFsbGVkIGFuZCBlbmFibGVkIOKAlCB0aGVyZSBpcyBub3RoaW5nIHRvIGRvLlxuICAgKi9cbiAgRW5hYmxlZCA9ICdlbmFibGVkJyxcblxuICAvKipcbiAgICogSW5zdGFsbGVkIGJ1dCBkaXNhYmxlZC4gT25seSBhbiBlbmFibGUgaXMgbmVlZGVkLCBzbyBubyBkb3dubG9hZCBoYXBwZW5zLlxuICAgKi9cbiAgSW5zdGFsbGVkQnV0RGlzYWJsZWQgPSAnaW5zdGFsbGVkQnV0RGlzYWJsZWQnLFxuXG4gIC8qKlxuICAgKiBOb3QgaW5zdGFsbGVkIGF0IGFsbC5cbiAgICovXG4gIE5vdEluc3RhbGxlZCA9ICdub3RJbnN0YWxsZWQnXG59XG5cbi8qKlxuICogSG93IGFuIGluc3RhbGxlZCBwbHVnaW4ncyByZWxlYXNlIGNvbXBhcmVzIHdpdGggdGhlIG9sZGVzdCByZWxlYXNlIGFub3RoZXIgcGx1Z2luIHdvcmtzIHdpdGguXG4gKi9cbmV4cG9ydCBlbnVtIFBsdWdpblZlcnNpb25Db21wYXJpc29uIHtcbiAgLyoqXG4gICAqIFRoZSByZWxlYXNlIGlzIHRoZSBtaW5pbXVtIG9yIG5ld2VyLlxuICAgKi9cbiAgQXRMZWFzdE1pbmltdW0gPSAnYXRMZWFzdE1pbmltdW0nLFxuXG4gIC8qKlxuICAgKiBUaGUgcmVsZWFzZSBpcyBvbGRlciB0aGFuIHRoZSBtaW5pbXVtLlxuICAgKi9cbiAgQmVsb3dNaW5pbXVtID0gJ2JlbG93TWluaW11bScsXG5cbiAgLyoqXG4gICAqIFRoZSByZWxlYXNlLCBvciB0aGUgbWluaW11bSwgaXMgbm90IGEgdmVyc2lvbiBgY29tcGFyZS12ZXJzaW9uc2AgY2FuIHBhcnNlIOKAlCBhbiBlbXB0eSBgbWFuaWZlc3QudmVyc2lvbmBcbiAgICogYW1vbmcgdGhlbS4gQSBjYWxsZXIgZGVjaWRpbmcgd2hldGhlciB0byBydW4gc2hvdWxkIHRyZWF0IGl0IGxpa2Uge0BsaW5rIFBsdWdpblZlcnNpb25Db21wYXJpc29uLkJlbG93TWluaW11bX1cbiAgICogKGZhaWwgY2xvc2VkKTsgaXQgaXMgYSBzZXBhcmF0ZSBtZW1iZXIgc28gYSBjYWxsZXIgZXhwbGFpbmluZyB0aGUgcHJvYmxlbSBjYW4gc2F5IHdoaWNoIG9uZSBpdCBpcy5cbiAgICovXG4gIEludmFsaWQgPSAnaW52YWxpZCdcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZ2V0SW5zdGFsbGVkUGx1Z2luU3RhdGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEluc3RhbGxlZFBsdWdpblN0YXRlUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGBtYW5pZmVzdC5pZGAgb2YgdGhlIHBsdWdpbiB0byBsb29rIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGdldEluc3RhbGxlZFBsdWdpblZlcnNpb259LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEluc3RhbGxlZFBsdWdpblZlcnNpb25QYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgYG1hbmlmZXN0LmlkYCBvZiB0aGUgcGx1Z2luIHRvIGxvb2sgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgaW5zdGFsbEFuZEVuYWJsZVBsdWdpbn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFsbEFuZEVuYWJsZVBsdWdpblBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBgbWFuaWZlc3QuaWRgIG9mIHRoZSBwbHVnaW4gdG8gaW5zdGFsbCBhbmQgZW5hYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgcGx1Z2luLCBzaG93biB0byB0aGUgdXNlci5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5vdGljZSBjb21wb25lbnQgb2YgdGhlIHBsdWdpbiBkb2luZyB0aGUgYXNraW5nLCB1c2VkIHRvIHJlcG9ydCB0aGUgb3V0Y29tZS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayB1cGRhdGVQbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVBsdWdpblBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBgbWFuaWZlc3QuaWRgIG9mIHRoZSBwbHVnaW4gdG8gdXBkYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgcGx1Z2luLCBzaG93biB0byB0aGUgdXNlci5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5vdGljZSBjb21wb25lbnQgb2YgdGhlIHBsdWdpbiBkb2luZyB0aGUgYXNraW5nLCB1c2VkIHRvIHJlcG9ydCB0aGUgb3V0Y29tZS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBwbHVnaW4gZG9pbmcgdGhlIGFza2luZywgbmFtZWQgd2hlbiB0aGUgdXBkYXRlIGNhbm5vdCBoZWxwIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdGluZ1BsdWdpbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21wYXJlcyBhIHBsdWdpbiByZWxlYXNlIHdpdGggdGhlIG9sZGVzdCByZWxlYXNlIGFub3RoZXIgcGx1Z2luIHdvcmtzIHdpdGguXG4gKlxuICogVGhlIG9uZSBjb21wYXJpc29uIGBQbHVnaW5HYXRlQ29tcG9uZW50YCdzIGBtaW5QbHVnaW5WZXJzaW9uYCBhbmQgYHJlcXVpcmVQbHVnaW5gIHNoYXJlLCBzbyBhXG4gKiBkZXBlbmRlbmN5IGRlY2xhcmVkIHRocm91Z2ggZWl0aGVyIHJlYWRzIGEgdmVyc2lvbiB0aGUgc2FtZSB3YXkuXG4gKlxuICogQHBhcmFtIHZlcnNpb24gLSBUaGUgaW5zdGFsbGVkIHJlbGVhc2UsIHVzdWFsbHkgYG1hbmlmZXN0LnZlcnNpb25gLlxuICogQHBhcmFtIG1pblZlcnNpb24gLSBUaGUgb2xkZXN0IHJlbGVhc2UgdGhhdCBpcyBhY2NlcHRhYmxlLlxuICogQHJldHVybnMgVGhlIHtAbGluayBQbHVnaW5WZXJzaW9uQ29tcGFyaXNvbn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlUGx1Z2luVmVyc2lvbldpdGhNaW5pbXVtKHZlcnNpb246IHN0cmluZywgbWluVmVyc2lvbjogc3RyaW5nKTogUGx1Z2luVmVyc2lvbkNvbXBhcmlzb24ge1xuICB0cnkge1xuICAgIHJldHVybiBjb21wYXJlVmVyc2lvbnModmVyc2lvbiwgbWluVmVyc2lvbiwgJz49JykgPyBQbHVnaW5WZXJzaW9uQ29tcGFyaXNvbi5BdExlYXN0TWluaW11bSA6IFBsdWdpblZlcnNpb25Db21wYXJpc29uLkJlbG93TWluaW11bTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFBsdWdpblZlcnNpb25Db21wYXJpc29uLkludmFsaWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBob3cgYW5vdGhlciBwbHVnaW4gaXMgY3VycmVudGx5IHByZXNlbnQgaW4gdGhlIHZhdWx0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEdldEluc3RhbGxlZFBsdWdpblN0YXRlUGFyYW1zfS5cbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgSW5zdGFsbGVkUGx1Z2luU3RhdGV9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5zdGFsbGVkUGx1Z2luU3RhdGUocGFyYW1zOiBHZXRJbnN0YWxsZWRQbHVnaW5TdGF0ZVBhcmFtcyk6IEluc3RhbGxlZFBsdWdpblN0YXRlIHtcbiAgY29uc3QgeyBhcHAsIHBsdWdpbklkIH0gPSBwYXJhbXM7XG5cbiAgaWYgKGFwcC5wbHVnaW5zLmVuYWJsZWRQbHVnaW5zLmhhcyhwbHVnaW5JZCkpIHtcbiAgICByZXR1cm4gSW5zdGFsbGVkUGx1Z2luU3RhdGUuRW5hYmxlZDtcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuaGFzT3duKGFwcC5wbHVnaW5zLm1hbmlmZXN0cywgcGx1Z2luSWQpXG4gICAgPyBJbnN0YWxsZWRQbHVnaW5TdGF0ZS5JbnN0YWxsZWRCdXREaXNhYmxlZFxuICAgIDogSW5zdGFsbGVkUGx1Z2luU3RhdGUuTm90SW5zdGFsbGVkO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSB2ZXJzaW9uIG9mIGFub3RoZXIgcGx1Z2luIGFzIHRoaXMgdmF1bHQgaGFzIGl0IGluc3RhbGxlZCwgb3IgYG51bGxgIHdoZW4gaXQgaXMgbm90IHJ1bm5pbmcuXG4gKlxuICogVGhlIHZlcnNpb24gY29tZXMgb3V0IG9mIGBhcHAucGx1Z2lucy5tYW5pZmVzdHNgLCB3aGljaCBpcyBwb3B1bGF0ZWQgZm9yIGV2ZXJ5IGluc3RhbGxlZCBwbHVnaW4gYXRcbiAqIHN0YXJ0dXAg4oCUIHNvLCB1bmxpa2UgYW55dGhpbmcgYSBwbHVnaW4gUkVHSVNURVJTLCBpdCBhbnN3ZXJzIHRoZSBzYW1lIHdheSBubyBtYXR0ZXIgd2hpY2ggcGx1Z2luIGxvYWRlZFxuICogZmlyc3QuIFRoYXQgbG9hZC1vcmRlciBpbmRlcGVuZGVuY2UgaXMgdGhlIHdob2xlIHJlYXNvbiBhIGNvbmZsaWN0IGlzIGRldGVjdGVkIGJ5IHZlcnNpb24gcmF0aGVyIHRoYW4gYnlcbiAqIGFza2luZyBhIHJlZ2lzdHJ5LlxuICpcbiAqIGBudWxsYCBmb3IgYSBwbHVnaW4gdGhhdCBpcyBub3QgaW5zdGFsbGVkIE9SIGlzIGluc3RhbGxlZCBidXQgZGlzYWJsZWQ6IGEgZGlzYWJsZWQgcGx1Z2luIHJlZ2lzdGVyc1xuICogbm90aGluZywgc28gZm9yIGV2ZXJ5IHF1ZXN0aW9uIHRoaXMgYW5zd2VycyB0aGUgdHdvIGNhc2VzIGFyZSB0aGUgc2FtZS4gQW4gaW5zdGFsbGVkLCBlbmFibGVkIHBsdWdpblxuICogd2hvc2UgbWFuaWZlc3Qgc29tZWhvdyBjYXJyaWVzIG5vIHZlcnNpb24gcmVhZHMgYXMgYW4gZW1wdHkgc3RyaW5nIHJhdGhlciB0aGFuIGBudWxsYCwgd2hpY2gga2VlcHNcbiAqIFwicnVubmluZywgdmVyc2lvbiB1bmtub3duXCIgZGlzdGluZ3Vpc2hhYmxlIGZyb20gXCJub3QgcnVubmluZ1wiIOKAlCBhIGNhbGxlciBjb21wYXJpbmcgdmVyc2lvbnMgc2hvdWxkIGZhaWxcbiAqIGNsb3NlZCBvbiBpdCByYXRoZXIgdGhhbiB0cmVhdCBpdCBhcyBhYnNlbnQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgR2V0SW5zdGFsbGVkUGx1Z2luVmVyc2lvblBhcmFtc30uXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFsbGVkIHZlcnNpb24sIG9yIGBudWxsYCB3aGVuIHRoZSBwbHVnaW4gaXMgbm90IGVuYWJsZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnN0YWxsZWRQbHVnaW5WZXJzaW9uKHBhcmFtczogR2V0SW5zdGFsbGVkUGx1Z2luVmVyc2lvblBhcmFtcyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCB7IGFwcCwgcGx1Z2luSWQgfSA9IHBhcmFtcztcblxuICByZXR1cm4gYXBwLnBsdWdpbnMuZW5hYmxlZFBsdWdpbnMuaGFzKHBsdWdpbklkKSA/IGFwcC5wbHVnaW5zLm1hbmlmZXN0c1twbHVnaW5JZF0/LnZlcnNpb24gPz8gJycgOiBudWxsO1xufVxuXG4vKipcbiAqIEluc3RhbGxzICh3aGVuIG5lZWRlZCkgYW5kIGVuYWJsZXMgYW5vdGhlciBwbHVnaW4sIHJlcG9ydGluZyB0aGUgb3V0Y29tZSBhcyBhIG5vdGljZS5cbiAqXG4gKiBBIG5vLW9wIHdoZW4gdGhlIHBsdWdpbiBpcyBhbHJlYWR5IGVuYWJsZWQsIHNvIGEgY2FsbGVyIHJlYWN0aW5nIHRvIGEgY2xpY2sgbmVlZCBub3QgY2hlY2sgZmlyc3QuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgSW5zdGFsbEFuZEVuYWJsZVBsdWdpblBhcmFtc30uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIHBsdWdpbiBpcyBlbmFibGVkLlxuICogQHRocm93cyBXaGF0ZXZlciB0aGUgaW5zdGFsbCBvciBlbmFibGUgdGhyZXcsIGFmdGVyIHJlcG9ydGluZyBpdCBhcyBhIG5vdGljZSDigJQgdGhlIGNhbGxlciBkZWNpZGVzXG4gKiB3aGV0aGVyIGEgZmFpbHVyZSBpcyB3b3J0aCBtb3JlIHRoYW4gdGhlIG5vdGljZSB0aGUgdXNlciBoYXMgYWxyZWFkeSBzZWVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5zdGFsbEFuZEVuYWJsZVBsdWdpbihwYXJhbXM6IEluc3RhbGxBbmRFbmFibGVQbHVnaW5QYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBwbHVnaW5JZCxcbiAgICBwbHVnaW5OYW1lLFxuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudFxuICB9ID0gcGFyYW1zO1xuICBjb25zdCBzdGF0ZSA9IGdldEluc3RhbGxlZFBsdWdpblN0YXRlKHsgYXBwLCBwbHVnaW5JZCB9KTtcblxuICBpZiAoc3RhdGUgPT09IEluc3RhbGxlZFBsdWdpblN0YXRlLkVuYWJsZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB0cnkge1xuICAgIGlmIChzdGF0ZSA9PT0gSW5zdGFsbGVkUGx1Z2luU3RhdGUuSW5zdGFsbGVkQnV0RGlzYWJsZWQpIHtcbiAgICAgIGF3YWl0IGVuYWJsZUNvbW11bml0eVBsdWdpbih7IGFwcCwgcGx1Z2luSWQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGluc3RhbGxDb25maWd1cmVFbmFibGVDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkIH0pO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShjcmVhdGVGcmFnbWVudFdpdGhDb2RlQmxvY2tzKFxuICAgICAgdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5wbHVnaW5TdWdnZXN0aW9uLmluc3RhbGxGYWlsZWQsIHsgcGx1Z2luTmFtZTogYXNDb2RlQmxvY2socGx1Z2luTmFtZSkgfSlcbiAgICApKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG4gIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKGNyZWF0ZUZyYWdtZW50V2l0aENvZGVCbG9ja3MoXG4gICAgdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5wbHVnaW5TdWdnZXN0aW9uLmluc3RhbGxlZCwgeyBwbHVnaW5OYW1lOiBhc0NvZGVCbG9jayhwbHVnaW5OYW1lKSB9KVxuICApKTtcbn1cblxuLyoqXG4gKiBVcGRhdGVzIGFub3RoZXIsIGluc3RhbGxlZCBwbHVnaW4gdG8gaXRzIGxhdGVzdCByZWxlYXNlLCByZXBvcnRpbmcgdGhlIG91dGNvbWUgYXMgYSBub3RpY2UuXG4gKlxuICogVGhlIHVwZGF0ZSBwYXRoIGZvciBhIHBsdWdpbiB0aGF0IGlzIGVuYWJsZWQgYnV0IHRvbyBvbGQgZm9yIHRoZSBvbmUgYXNraW5nOiBpbnN0YWxsaW5nIG9yIGVuYWJsaW5nIGl0XG4gKiBhZ2FpbiBkb2VzIG5vdGhpbmcsIHNvIHtAbGluayBpbnN0YWxsQW5kRW5hYmxlUGx1Z2lufSBjYW5ub3QgaGVscCB0aGVyZS4gQSBwbHVnaW4gYWxyZWFkeSBhdCBpdHMgbGF0ZXN0XG4gKiByZWxlYXNlIGlzIHJlcG9ydGVkIGFzIHN1Y2gsIG5hbWluZyB0aGUgcmVxdWVzdGluZyBwbHVnaW4sIGJlY2F1c2UgdGhlbiBubyBjbGljayBjYW4gc2F0aXNmeSBpdCBhbmQgdGhlXG4gKiB1c2VyIGRlc2VydmVzIHRvIGtub3cgdGhhdCByYXRoZXIgdGhhbiB3YXRjaCB0aGUgYnV0dG9uIGRvIG5vdGhpbmcuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgVXBkYXRlUGx1Z2luUGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgdXBkYXRlIGhhcyBydW4uXG4gKiBAdGhyb3dzIFdoYXRldmVyIHRoZSB1cGRhdGUgdGhyZXcsIGFmdGVyIHJlcG9ydGluZyBpdCBhcyBhIG5vdGljZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVBsdWdpbihwYXJhbXM6IFVwZGF0ZVBsdWdpblBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHJlcXVlc3RpbmdQbHVnaW5OYW1lXG4gIH0gPSBwYXJhbXM7XG5cbiAgbGV0IHJlc3VsdDogVXBkYXRlQ29tbXVuaXR5UGx1Z2luUmVzdWx0O1xuICB0cnkge1xuICAgIHJlc3VsdCA9IGF3YWl0IHVwZGF0ZUNvbW11bml0eVBsdWdpbih7IGFwcCwgcGx1Z2luSWQgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2UoY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2NrcyhcbiAgICAgIHQoKCQpID0+ICQub2JzaWRpYW5MaWIucGx1Z2luRGVwZW5kZW5jeS51cGRhdGVGYWlsZWQsIHsgZGVwZW5kZW5jeVBsdWdpbk5hbWU6IGFzQ29kZUJsb2NrKHBsdWdpbk5hbWUpIH0pXG4gICAgKSk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShjcmVhdGVGcmFnbWVudFdpdGhDb2RlQmxvY2tzKFxuICAgIHJlc3VsdCA9PT0gVXBkYXRlQ29tbXVuaXR5UGx1Z2luUmVzdWx0LlVwZGF0ZWRcbiAgICAgID8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5wbHVnaW5EZXBlbmRlbmN5LnVwZGF0ZWQsIHsgZGVwZW5kZW5jeVBsdWdpbk5hbWU6IGFzQ29kZUJsb2NrKHBsdWdpbk5hbWUpIH0pXG4gICAgICA6IHQoKCQpID0+ICQub2JzaWRpYW5MaWIucGx1Z2luRGVwZW5kZW5jeS5hbHJlYWR5VXBUb0RhdGUsIHtcbiAgICAgICAgZGVwZW5kZW5jeVBsdWdpbk5hbWU6IGFzQ29kZUJsb2NrKHBsdWdpbk5hbWUpLFxuICAgICAgICBwbHVnaW5OYW1lOiBhc0NvZGVCbG9jayhyZXF1ZXN0aW5nUGx1Z2luTmFtZSlcbiAgICAgIH0pXG4gICkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUEsOEJBQTJDO0FBSTNDLCtCQUtPO0FBQ1AsMEJBR087QUFDUCxrQkFBa0I7QUFLWCxJQUFLLHVCQUFMLGtCQUFLQSwwQkFBTDtBQUlMLEVBQUFBLHNCQUFBLGFBQVU7QUFLVixFQUFBQSxzQkFBQSwwQkFBdUI7QUFLdkIsRUFBQUEsc0JBQUEsa0JBQWU7QUFkTCxTQUFBQTtBQUFBLEdBQUE7QUFvQkwsSUFBSywwQkFBTCxrQkFBS0MsNkJBQUw7QUFJTCxFQUFBQSx5QkFBQSxvQkFBaUI7QUFLakIsRUFBQUEseUJBQUEsa0JBQWU7QUFPZixFQUFBQSx5QkFBQSxhQUFVO0FBaEJBLFNBQUFBO0FBQUEsR0FBQTtBQWtITCxTQUFTLGdDQUFnQyxTQUFpQixZQUE2QztBQUM1RyxNQUFJO0FBQ0YsZUFBTyx3QkFBQUMsU0FBZ0IsU0FBUyxZQUFZLElBQUksSUFBSSx3Q0FBeUM7QUFBQSxFQUMvRixRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQVFPLFNBQVMsd0JBQXdCLFFBQTZEO0FBQ25HLFFBQU0sRUFBRSxLQUFLLFNBQVMsSUFBSTtBQUUxQixNQUFJLElBQUksUUFBUSxlQUFlLElBQUksUUFBUSxHQUFHO0FBQzVDLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxPQUFPLE9BQU8sSUFBSSxRQUFRLFdBQVcsUUFBUSxJQUNoRCxvREFDQTtBQUNOO0FBbUJPLFNBQVMsMEJBQTBCLFFBQXdEO0FBQ2hHLFFBQU0sRUFBRSxLQUFLLFNBQVMsSUFBSTtBQUUxQixTQUFPLElBQUksUUFBUSxlQUFlLElBQUksUUFBUSxJQUFJLElBQUksUUFBUSxVQUFVLFFBQVEsR0FBRyxXQUFXLEtBQUs7QUFDckc7QUFZQSxlQUFzQix1QkFBdUIsUUFBcUQ7QUFDaEcsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixRQUFNLFFBQVEsd0JBQXdCLEVBQUUsS0FBSyxTQUFTLENBQUM7QUFFdkQsTUFBSSxVQUFVLHlCQUE4QjtBQUMxQztBQUFBLEVBQ0Y7QUFFQSxNQUFJO0FBQ0YsUUFBSSxVQUFVLG1EQUEyQztBQUN2RCxnQkFBTSxnREFBc0IsRUFBRSxLQUFLLFNBQVMsQ0FBQztBQUFBLElBQy9DLE9BQU87QUFDTCxnQkFBTSxnRUFBc0MsRUFBRSxLQUFLLFNBQVMsQ0FBQztBQUFBLElBQy9EO0FBQUEsRUFDRixTQUFTLE9BQU87QUFDZCwwQkFBc0IsZUFBVztBQUFBLFVBQy9CLGVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxpQkFBaUIsZUFBZSxFQUFFLGdCQUFZLGlDQUFZLFVBQVUsRUFBRSxDQUFDO0FBQUEsSUFDaEcsQ0FBQztBQUNELFVBQU07QUFBQSxFQUNSO0FBRUEsd0JBQXNCLGVBQVc7QUFBQSxRQUMvQixlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksaUJBQWlCLFdBQVcsRUFBRSxnQkFBWSxpQ0FBWSxVQUFVLEVBQUUsQ0FBQztBQUFBLEVBQzVGLENBQUM7QUFDSDtBQWNBLGVBQXNCLGFBQWEsUUFBMkM7QUFDNUUsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosTUFBSTtBQUNKLE1BQUk7QUFDRixhQUFTLFVBQU0sZ0RBQXNCLEVBQUUsS0FBSyxTQUFTLENBQUM7QUFBQSxFQUN4RCxTQUFTLE9BQU87QUFDZCwwQkFBc0IsZUFBVztBQUFBLFVBQy9CLGVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxpQkFBaUIsY0FBYyxFQUFFLDBCQUFzQixpQ0FBWSxVQUFVLEVBQUUsQ0FBQztBQUFBLElBQ3pHLENBQUM7QUFDRCxVQUFNO0FBQUEsRUFDUjtBQUVBLHdCQUFzQixlQUFXO0FBQUEsSUFDL0IsV0FBVyxxREFBNEIsY0FDbkMsZUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLGlCQUFpQixTQUFTLEVBQUUsMEJBQXNCLGlDQUFZLFVBQVUsRUFBRSxDQUFDLFFBQ2xHLGVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxpQkFBaUIsaUJBQWlCO0FBQUEsTUFDekQsMEJBQXNCLGlDQUFZLFVBQVU7QUFBQSxNQUM1QyxnQkFBWSxpQ0FBWSxvQkFBb0I7QUFBQSxJQUM5QyxDQUFDO0FBQUEsRUFDTCxDQUFDO0FBQ0g7IiwibmFtZXMiOlsiSW5zdGFsbGVkUGx1Z2luU3RhdGUiLCJQbHVnaW5WZXJzaW9uQ29tcGFyaXNvbiIsImNvbXBhcmVWZXJzaW9ucyJdfQ==
@@ -28,6 +28,25 @@ export declare enum InstalledPluginState {
28
28
  */
29
29
  NotInstalled = "notInstalled"
30
30
  }
31
+ /**
32
+ * How an installed plugin's release compares with the oldest release another plugin works with.
33
+ */
34
+ export declare enum PluginVersionComparison {
35
+ /**
36
+ * The release is the minimum or newer.
37
+ */
38
+ AtLeastMinimum = "atLeastMinimum",
39
+ /**
40
+ * The release is older than the minimum.
41
+ */
42
+ BelowMinimum = "belowMinimum",
43
+ /**
44
+ * The release, or the minimum, is not a version `compare-versions` can parse — an empty `manifest.version`
45
+ * among them. A caller deciding whether to run should treat it like {@link PluginVersionComparison.BelowMinimum}
46
+ * (fail closed); it is a separate member so a caller explaining the problem can say which one it is.
47
+ */
48
+ Invalid = "invalid"
49
+ }
31
50
  /**
32
51
  * Parameters for {@link getInstalledPluginState}.
33
52
  */
@@ -100,6 +119,17 @@ export interface UpdatePluginParams {
100
119
  */
101
120
  readonly requestingPluginName: string;
102
121
  }
122
+ /**
123
+ * Compares a plugin release with the oldest release another plugin works with.
124
+ *
125
+ * The one comparison `PluginGateComponent`'s `minPluginVersion` and `requirePlugin` share, so a
126
+ * dependency declared through either reads a version the same way.
127
+ *
128
+ * @param version - The installed release, usually `manifest.version`.
129
+ * @param minVersion - The oldest release that is acceptable.
130
+ * @returns The {@link PluginVersionComparison}.
131
+ */
132
+ export declare function comparePluginVersionWithMinimum(version: string, minVersion: string): PluginVersionComparison;
103
133
  /**
104
134
  * Resolves how another plugin is currently present in the vault.
105
135
  *