@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
@@ -90,7 +90,7 @@ __export(reference_definition_exports, {
90
90
  referenceDefinitionToFileChange: () => referenceDefinitionToFileChange
91
91
  });
92
92
  module.exports = __toCommonJS(reference_definition_exports);
93
- var import_debug = require('./debug.cjs');
93
+ var import_debug = require("./debug.cjs");
94
94
  const ASCII_PUNCTUATION_REG_EXP = /[!-/:-@[-`{-~]/;
95
95
  const BARE_DESTINATION_FORBIDDEN_CHARACTER_REG_EXP = /[\s\p{Cc}]/u;
96
96
  const DEFINITION_PREFIX_REG_EXP = /^[ \t]*\[(?:\\[\s\S]|[^\\\]])+\]:[ \t]*(?:\r?\n(?:[ \t]*>)*[ \t]*)?/;
@@ -124,9 +124,9 @@ __export(reference_exports, {
124
124
  sortReferences: () => sortReferences
125
125
  });
126
126
  module.exports = __toCommonJS(reference_exports);
127
- var import_implementations = require('@obsidian-typings/obsidian-public-latest/implementations');
128
- var import_frontmatter_link_cache_with_offsets = require('./frontmatter-link-cache-with-offsets.cjs');
129
- var import_position = require('./position.cjs');
127
+ var import_implementations = require("@obsidian-typings/obsidian-public-latest/implementations");
128
+ var import_frontmatter_link_cache_with_offsets = require("./frontmatter-link-cache-with-offsets.cjs");
129
+ var import_position = require("./position.cjs");
130
130
  function getReferenceLinkText(reference) {
131
131
  return (0, import_frontmatter_link_cache_with_offsets.isFrontmatterLinkCacheWithOffsets)(reference) ? reference.original.slice(reference.startOffset, reference.endOffset) : reference.original;
132
132
  }
@@ -121,10 +121,10 @@ __export(release_asset_exports, {
121
121
  getGitHubReleaseAssetUrl: () => getGitHubReleaseAssetUrl
122
122
  });
123
123
  module.exports = __toCommonJS(release_asset_exports);
124
- var import_path = require('@mnaoumov/typescript-lib/path');
125
- var import_i18n = require('./i18n/i18n.cjs');
126
- var import_confirm = require('./modals/confirm.cjs');
127
- var import_request_url = require('./request-url.cjs');
124
+ var import_path = require("@mnaoumov/typescript-lib/path");
125
+ var import_i18n = require("./i18n/i18n.cjs");
126
+ var import_confirm = require("./modals/confirm.cjs");
127
+ var import_request_url = require("./request-url.cjs");
128
128
  const BYTES_IN_KILOBYTE = 1024;
129
129
  const HEX_BYTE_LENGTH = 2;
130
130
  const HEX_RADIX = 16;
@@ -276,4 +276,4 @@ async function shouldDownloadWithModal(app, request) {
276
276
  formatByteSize,
277
277
  getGitHubReleaseAssetUrl
278
278
  });
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWxlYXNlLWFzc2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEb3dubG9hZHMgYW4gb3B0aW9uYWwgZGF0YSBhc3NldCBvZiBhIHBsdWdpbiByZWxlYXNlIG9uIGRlbWFuZDogaXQgYXNrcyB0aGUgdXNlciBmaXJzdCwgdmVyaWZpZXMgYW4gZXhwZWN0ZWQgU0hBLTI1NlxuICogYmVmb3JlIGFueXRoaW5nIGlzIHdyaXR0ZW4gb3IgZXhwb3NlZCwga2VlcHMgdGhlIHZlcmlmaWVkIGZpbGUgaW4gYSBsb2NhbCBjYWNoZSBmb2xkZXIgYW5kIGhhbmRzIGJhY2sgdGhlIGFkYXB0ZXJcbiAqIHJlc291cmNlIFVSTC5cbiAqXG4gKiBJdCB1c2VzIG9ubHkgY3Jvc3MtcGxhdGZvcm0gQVBJcyAoe0BsaW5rIHJlcXVlc3RVcmxFeH0sIHRoZSB2YXVsdCBhZGFwdGVyIGFuZCBgY3J5cHRvLnN1YnRsZWApLCBzbyBpdCB3b3JrcyBvbiBkZXNrdG9wXG4gKiBhbmQgbW9iaWxlIGFsaWtlLlxuICpcbiAqIEJlaGF2aW9yIHRoYXQgaXMgcGFydCBvZiB0aGUgY29udHJhY3Q6XG4gKlxuICogLSBBIGNhY2hlZCBmaWxlIGlzIGhhc2hlZCBvbiBldmVyeSBjYWxsLiBXaGVuIGl0cyBoYXNoIG1hdGNoZXMsIGl0IGlzIHJldXNlZCB3aXRob3V0IGFza2luZyBvciBkb3dubG9hZGluZy4gV2hlbiBpdFxuICogICBkb2VzIG5vdCwgaXQgaXMgcmVtb3ZlZCBhbmQgdHJlYXRlZCBhcyBtaXNzaW5nLCBzbyBhIGNvcnJ1cHQgb3IgdHJ1bmNhdGVkIGNhY2hlIHJlY292ZXJzIGJ5IGl0c2VsZi5cbiAqIC0gVGhlIHVzZXIgaXMgYXNrZWQgb25seSB3aGVuIGEgZG93bmxvYWQgaXMgbmVlZGVkLiBEZWNsaW5pbmcgcmVzb2x2ZXMgd2l0aCBgbnVsbGAgYW5kIHdyaXRlcyBub3RoaW5nLlxuICogLSBEb3dubG9hZGVkIGJ5dGVzIGFyZSB2ZXJpZmllZCBiZWZvcmUgdGhleSBhcmUgd3JpdHRlbi4gQSBtaXNtYXRjaCB0aHJvd3Mge0BsaW5rIFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3J9IGFuZFxuICogICB3cml0ZXMgbm90aGluZy5cbiAqIC0gVGhlIGZpbGUgaXMgd3JpdHRlbiB0byBhIHRlbXBvcmFyeSBzaWJsaW5nIGFuZCB0aGVuIHJlbmFtZWQgaW50byBwbGFjZSwgc28gYW4gaW50ZXJydXB0ZWQgd3JpdGUgbmV2ZXIgbGVhdmVzIGFcbiAqICAgcGFydGlhbCBmaWxlIHVuZGVyIHRoZSBjYWNoZWQgbmFtZS5cbiAqIC0gQW4gYWJvcnQgKHBhc3MgdGhlIHBsdWdpbidzIGFib3J0IHNpZ25hbCwgc28gYSBwbHVnaW4gdW5sb2FkIGNvdW50cykgcmVqZWN0cyB3aXRoIHRoZSBzaWduYWwncyByZWFzb24uIE9uY2UgdGhlXG4gKiAgIGRvd25sb2FkIGhhcyBmaW5pc2hlZCwgdGhlIHNpZ25hbCBpcyBjaGVja2VkIGFnYWluIGJlZm9yZSB3cml0aW5nLCBzbyBub3RoaW5nIGlzIHdyaXR0ZW4gYWZ0ZXIgYW4gdW5sb2FkLlxuICogLSBDb25jdXJyZW50IGNhbGxzIGZvciB0aGUgc2FtZSBjYWNoZSBwYXRoIHNoYXJlIG9uZSBvcGVyYXRpb24sIHNvIHRoZSB1c2VyIGlzIGFza2VkIG9uY2UuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5cbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBjb25maXJtIH0gZnJvbSAnLi9tb2RhbHMvY29uZmlybS50cyc7XG5pbXBvcnQgeyByZXF1ZXN0VXJsRXggfSBmcm9tICcuL3JlcXVlc3QtdXJsLnRzJztcblxuY29uc3QgQllURVNfSU5fS0lMT0JZVEUgPSAxMDI0O1xuY29uc3QgSEVYX0JZVEVfTEVOR1RIID0gMjtcbmNvbnN0IEhFWF9SQURJWCA9IDE2O1xuY29uc3QgU0hBXzI1Nl9IRVhfUkVHX0VYUCA9IC9eWzAtOWEtZl17NjR9JC9pO1xuY29uc3QgVEVNUE9SQVJZX0ZJTEVfU1VGRklYID0gJy5kb3dubG9hZCc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGVuc3VyZVJlbGVhc2VBc3NldH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5zdXJlUmVsZWFzZUFzc2V0UGFyYW1zIHtcbiAgLyoqXG4gICAqIEFib3J0cyB0aGUgb3BlcmF0aW9uLiBQYXNzIHRoZSBwbHVnaW4ncyBhYm9ydCBzaWduYWwsIHNvIGFuIHVubG9hZCBzdG9wcyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQtcmVsYXRpdmUgZm9sZGVyIHRoYXQgaG9sZHMgdGhlIGNhY2hlZCBmaWxlLCB0eXBpY2FsbHkgYCR7cGx1Z2luLm1hbmlmZXN0LmRpcn0vYXNzZXRzYC5cbiAgICpcbiAgICogQSBmb2xkZXIgaW5zaWRlIHRoZSBjb25maWcgZm9sZGVyIGlzIG5vdCBzeW5jZWQsIHNvIGVhY2ggZGV2aWNlIGRvd25sb2FkcyB0aGUgYXNzZXQgb25jZS5cbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRm9sZGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2FjaGVkIGZpbGUuIEl0IG11c3Qgbm90IGNvbnRhaW4gYSBwYXRoIHNlcGFyYXRvci5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleHBlY3RlZCBTSEEtMjU2IG9mIHRoZSBhc3NldCwgYXMgNjQgaGV4YWRlY2ltYWwgZGlnaXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hhMjU2OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFza3MgdGhlIHVzZXIgd2hldGhlciB0byBkb3dubG9hZCB0aGUgYXNzZXQuIERlZmF1bHRzIHRvIGEgY29uZmlybWF0aW9uIG1vZGFsLlxuICAgKlxuICAgKiBQYXNzIGAoKSA9PiBQcm9taXNlLnJlc29sdmUodHJ1ZSlgIHdoZW4gdGhlIHVzZXIgaGFzIGFscmVhZHkgYWdyZWVkLCBmb3IgZXhhbXBsZSB0aHJvdWdoIGEgc2V0dGluZy5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZERvd25sb2FkPzogKChyZXF1ZXN0OiBSZWxlYXNlQXNzZXRDb25zZW50UmVxdWVzdCkgPT4gUHJvbWlzZTxib29sZWFuPikgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBhc3NldCBpbiBieXRlcywgc2hvd24gdG8gdGhlIHVzZXIgd2hlbiBhc2tpbmcuXG4gICAqL1xuICByZWFkb25seSBzaXplSW5CeXRlcz86IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGRvd25sb2FkIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIHRvIGRvd25sb2FkIHRoZSBhc3NldCBmcm9tLiBPbmx5IGBodHRwOmAgYW5kIGBodHRwczpgIFVSTHMgYXJlIGFjY2VwdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGdldEdpdEh1YlJlbGVhc2VBc3NldFVybH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0R2l0SHViUmVsZWFzZUFzc2V0VXJsUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZWxlYXNlIGFzc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnksIGFzIGA8b3duZXI+LzxuYW1lPmAuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWxlYXNlIHRhZywgdHlwaWNhbGx5IHRoZSBwbHVnaW4gdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhZzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgdmVyaWZpZWQgcmVsZWFzZSBhc3NldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxlYXNlQXNzZXQge1xuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGNhY2hlZCBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgVVJMIG9mIHRoZSBjYWNoZWQgZmlsZSwgZnJvbSB0aGUgYWRhcHRlcidzIGBnZXRSZXNvdXJjZVBhdGhgLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmlsZSB3YXMgYWxyZWFkeSBjYWNoZWQsIHNvIG5vdGhpbmcgd2FzIGRvd25sb2FkZWQuXG4gICAqL1xuICByZWFkb25seSB3YXNDYWNoZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3J9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgU0hBLTI1NiBvZiB0aGUgZG93bmxvYWRlZCBieXRlcy5cbiAgICovXG4gIHJlYWRvbmx5IGFjdHVhbFNoYTI1Njogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZXhwZWN0ZWQgU0hBLTI1Ni5cbiAgICovXG4gIHJlYWRvbmx5IGV4cGVjdGVkU2hhMjU2OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgdGhlIGFzc2V0IHdhcyBkb3dubG9hZGVkIGZyb20uXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBXaGF0IHRoZSB1c2VyIGlzIGFza2VkIHRvIGFncmVlIHRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbGVhc2VBc3NldENvbnNlbnRSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhc3NldC5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBhc3NldCBpbiBieXRlcywgd2hlbiBrbm93bi5cbiAgICovXG4gIHJlYWRvbmx5IHNpemVJbkJ5dGVzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIHRoZSBhc3NldCBpcyBkb3dubG9hZGVkIGZyb20uXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaHJvd24gd2hlbiBkb3dubG9hZGVkIGJ5dGVzIGRvIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgU0hBLTI1Ni4gTm90aGluZyB3YXMgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBUaGUgU0hBLTI1NiBvZiB0aGUgZG93bmxvYWRlZCBieXRlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhY3R1YWxTaGEyNTY6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGV4cGVjdGVkIFNIQS0yNTYuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXhwZWN0ZWRTaGEyNTY6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVSTCB0aGUgYXNzZXQgd2FzIGRvd25sb2FkZWQgZnJvbS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3JDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKGBUaGUgYXNzZXQgZG93bmxvYWRlZCBmcm9tICR7cGFyYW1zLnVybH0gaGFzIFNIQS0yNTYgJHtwYXJhbXMuYWN0dWFsU2hhMjU2fSwgZXhwZWN0ZWQgJHtwYXJhbXMuZXhwZWN0ZWRTaGEyNTZ9LmApO1xuICAgIHRoaXMubmFtZSA9ICdSZWxlYXNlQXNzZXRDaGVja3N1bUVycm9yJztcbiAgICB0aGlzLmFjdHVhbFNoYTI1NiA9IHBhcmFtcy5hY3R1YWxTaGEyNTY7XG4gICAgdGhpcy5leHBlY3RlZFNoYTI1NiA9IHBhcmFtcy5leHBlY3RlZFNoYTI1NjtcbiAgICB0aGlzLnVybCA9IHBhcmFtcy51cmw7XG4gIH1cbn1cblxuY29uc3QgaW5GbGlnaHRPcGVyYXRpb25zID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8bnVsbCB8IFJlbGVhc2VBc3NldD4+KCk7XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIFNIQS0yNTYgb2YgdGhlIGdpdmVuIGJ5dGVzLlxuICpcbiAqIEBwYXJhbSBkYXRhIC0gVGhlIGJ5dGVzLlxuICogQHJldHVybnMgVGhlIFNIQS0yNTYgYXMgNjQgbG93ZXJjYXNlIGhleGFkZWNpbWFsIGRpZ2l0cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbXB1dGVTaGEyNTYoZGF0YTogQXJyYXlCdWZmZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbi9uby11bnN1cHBvcnRlZC1mZWF0dXJlcy9ub2RlLWJ1aWx0aW5zIC0tIFRoaXMgaXMgdGhlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUEksIG5vdCBhIE5vZGUgYnVpbHRpbi5cbiAgY29uc3QgaGFzaCA9IGF3YWl0IHdpbmRvdy5jcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIGRhdGEpO1xuICByZXR1cm4gWy4uLm5ldyBVaW50OEFycmF5KGhhc2gpXS5tYXAoKGJ5dGUpID0+IGJ5dGUudG9TdHJpbmcoSEVYX1JBRElYKS5wYWRTdGFydChIRVhfQllURV9MRU5HVEgsICcwJykpLmpvaW4oJycpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGNhY2hlZCwgdmVyaWZpZWQgYXNzZXQsIGRvd25sb2FkaW5nIGl0IGZpcnN0LCB3aXRoIHRoZSB1c2VyJ3MgY29uc2VudCwgd2hlbiBpdCBpcyBtaXNzaW5nIG9yIGNvcnJ1cHQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgVGhlIHZlcmlmaWVkIGFzc2V0LCBvciBgbnVsbGAgd2hlbiB0aGUgdXNlciBkZWNsaW5lZCB0aGUgZG93bmxvYWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVSZWxlYXNlQXNzZXQocGFyYW1zOiBFbnN1cmVSZWxlYXNlQXNzZXRQYXJhbXMpOiBQcm9taXNlPG51bGwgfCBSZWxlYXNlQXNzZXQ+IHtcbiAgaWYgKCFTSEFfMjU2X0hFWF9SRUdfRVhQLnRlc3QocGFyYW1zLnNoYTI1NikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgU0hBLTI1NjogJHtwYXJhbXMuc2hhMjU2fWApO1xuICB9XG5cbiAgaWYgKCFwYXJhbXMuZmlsZU5hbWUgfHwgL1svXFxcXF0vLnRlc3QocGFyYW1zLmZpbGVOYW1lKSB8fCBwYXJhbXMuZmlsZU5hbWUgPT09ICcuJyB8fCBwYXJhbXMuZmlsZU5hbWUgPT09ICcuLicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXNzZXQgZmlsZSBuYW1lOiAke3BhcmFtcy5maWxlTmFtZX1gKTtcbiAgfVxuXG4gIGNvbnN0IHBhdGggPSBqb2luKHBhcmFtcy5jYWNoZUZvbGRlclBhdGgsIHBhcmFtcy5maWxlTmFtZSk7XG4gIGNvbnN0IGluRmxpZ2h0T3BlcmF0aW9uID0gaW5GbGlnaHRPcGVyYXRpb25zLmdldChwYXRoKTtcbiAgaWYgKGluRmxpZ2h0T3BlcmF0aW9uKSB7XG4gICAgcmV0dXJuIGF3YWl0IGluRmxpZ2h0T3BlcmF0aW9uO1xuICB9XG5cbiAgY29uc3Qgb3BlcmF0aW9uID0gZW5zdXJlUmVsZWFzZUFzc2V0SW1wbChwYXJhbXMsIHBhdGgpO1xuICBpbkZsaWdodE9wZXJhdGlvbnMuc2V0KHBhdGgsIG9wZXJhdGlvbik7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IG9wZXJhdGlvbjtcbiAgfSBmaW5hbGx5IHtcbiAgICBpbkZsaWdodE9wZXJhdGlvbnMuZGVsZXRlKHBhdGgpO1xuICB9XG59XG5cbi8qKlxuICogRm9ybWF0cyBhIGJ5dGUgc2l6ZSBmb3IgYSBwZXJzb24gdG8gcmVhZC5cbiAqXG4gKiBAcGFyYW0gc2l6ZUluQnl0ZXMgLSBUaGUgc2l6ZSBpbiBieXRlcy5cbiAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgc2l6ZSwgc3VjaCBhcyBgMTIuMyBNQmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRCeXRlU2l6ZShzaXplSW5CeXRlczogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKHNpemVJbkJ5dGVzIDwgQllURVNfSU5fS0lMT0JZVEUpIHtcbiAgICByZXR1cm4gYCR7U3RyaW5nKHNpemVJbkJ5dGVzKX0gQmA7XG4gIH1cbiAgbGV0IHNpemUgPSBzaXplSW5CeXRlcyAvIEJZVEVTX0lOX0tJTE9CWVRFO1xuICBsZXQgdW5pdCA9ICdLQic7XG4gIGZvciAoY29uc3QgbGFyZ2VyVW5pdCBvZiBbJ01CJywgJ0dCJ10pIHtcbiAgICBpZiAoc2l6ZSA8IEJZVEVTX0lOX0tJTE9CWVRFKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgc2l6ZSAvPSBCWVRFU19JTl9LSUxPQllURTtcbiAgICB1bml0ID0gbGFyZ2VyVW5pdDtcbiAgfVxuICByZXR1cm4gYCR7c2l6ZS50b0ZpeGVkKDEpfSAke3VuaXR9YDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGRvd25sb2FkIFVSTCBvZiBhIEdpdEh1YiByZWxlYXNlIGFzc2V0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBVUkwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRHaXRIdWJSZWxlYXNlQXNzZXRVcmwocGFyYW1zOiBHZXRHaXRIdWJSZWxlYXNlQXNzZXRVcmxQYXJhbXMpOiBzdHJpbmcge1xuICByZXR1cm4gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke3BhcmFtcy5yZXBvc2l0b3J5fS9yZWxlYXNlcy9kb3dubG9hZC8ke2VuY29kZVVSSUNvbXBvbmVudChwYXJhbXMudGFnKX0vJHtlbmNvZGVVUklDb21wb25lbnQocGFyYW1zLmZpbGVOYW1lKX1gO1xufVxuXG5hc3luYyBmdW5jdGlvbiBlbnN1cmVSZWxlYXNlQXNzZXRJbXBsKHBhcmFtczogRW5zdXJlUmVsZWFzZUFzc2V0UGFyYW1zLCBwYXRoOiBzdHJpbmcpOiBQcm9taXNlPG51bGwgfCBSZWxlYXNlQXNzZXQ+IHtcbiAgY29uc3QgeyBhYm9ydFNpZ25hbCwgYXBwIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGFkYXB0ZXIgPSBhcHAudmF1bHQuYWRhcHRlcjtcbiAgY29uc3QgZXhwZWN0ZWRTaGEyNTYgPSBwYXJhbXMuc2hhMjU2LnRvTG93ZXJDYXNlKCk7XG4gIGFib3J0U2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpO1xuXG4gIGlmIChhd2FpdCBhZGFwdGVyLmV4aXN0cyhwYXRoKSkge1xuICAgIGNvbnN0IGNhY2hlZEJ5dGVzID0gYXdhaXQgYWRhcHRlci5yZWFkQmluYXJ5KHBhdGgpO1xuICAgIGlmIChhd2FpdCBjb21wdXRlU2hhMjU2KGNhY2hlZEJ5dGVzKSA9PT0gZXhwZWN0ZWRTaGEyNTYpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJlc291cmNlVXJsOiBhZGFwdGVyLmdldFJlc291cmNlUGF0aChwYXRoKSxcbiAgICAgICAgd2FzQ2FjaGVkOiB0cnVlXG4gICAgICB9O1xuICAgIH1cbiAgICBhd2FpdCBhZGFwdGVyLnJlbW92ZShwYXRoKTtcbiAgfVxuXG4gIGNvbnN0IGNvbnNlbnRSZXF1ZXN0OiBSZWxlYXNlQXNzZXRDb25zZW50UmVxdWVzdCA9IHtcbiAgICBmaWxlTmFtZTogcGFyYW1zLmZpbGVOYW1lLFxuICAgIHNpemVJbkJ5dGVzOiBwYXJhbXMuc2l6ZUluQnl0ZXMsXG4gICAgdXJsOiBwYXJhbXMudXJsXG4gIH07XG4gIGNvbnN0IGlzRG93bmxvYWRBbGxvd2VkID0gcGFyYW1zLnNob3VsZERvd25sb2FkID8gYXdhaXQgcGFyYW1zLnNob3VsZERvd25sb2FkKGNvbnNlbnRSZXF1ZXN0KSA6IGF3YWl0IHNob3VsZERvd25sb2FkV2l0aE1vZGFsKGFwcCwgY29uc2VudFJlcXVlc3QpO1xuICBpZiAoIWlzRG93bmxvYWRBbGxvd2VkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgYWJvcnRTaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0VXJsRXgoe1xuICAgIGFib3J0U2lnbmFsLFxuICAgIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogcGFyYW1zLnRpbWVvdXRJbk1pbGxpc2Vjb25kcyxcbiAgICB1cmw6IHBhcmFtcy51cmxcbiAgfSk7XG4gIGNvbnN0IGJ5dGVzID0gcmVzcG9uc2UuYXJyYXlCdWZmZXI7XG4gIGNvbnN0IGFjdHVhbFNoYTI1NiA9IGF3YWl0IGNvbXB1dGVTaGEyNTYoYnl0ZXMpO1xuICBpZiAoYWN0dWFsU2hhMjU2ICE9PSBleHBlY3RlZFNoYTI1Nikge1xuICAgIHRocm93IG5ldyBSZWxlYXNlQXNzZXRDaGVja3N1bUVycm9yKHsgYWN0dWFsU2hhMjU2LCBleHBlY3RlZFNoYTI1NiwgdXJsOiBwYXJhbXMudXJsIH0pO1xuICB9XG4gIGFib3J0U2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpO1xuXG4gIGlmICghYXdhaXQgYWRhcHRlci5leGlzdHMocGFyYW1zLmNhY2hlRm9sZGVyUGF0aCkpIHtcbiAgICBhd2FpdCBhZGFwdGVyLm1rZGlyKHBhcmFtcy5jYWNoZUZvbGRlclBhdGgpO1xuICB9XG5cbiAgY29uc3QgdGVtcG9yYXJ5UGF0aCA9IGAke3BhdGh9JHtURU1QT1JBUllfRklMRV9TVUZGSVh9YDtcbiAgdHJ5IHtcbiAgICBhd2FpdCBhZGFwdGVyLndyaXRlQmluYXJ5KHRlbXBvcmFyeVBhdGgsIGJ5dGVzKTtcbiAgICBpZiAoYXdhaXQgYWRhcHRlci5leGlzdHMocGF0aCkpIHtcbiAgICAgIGF3YWl0IGFkYXB0ZXIucmVtb3ZlKHBhdGgpO1xuICAgIH1cbiAgICBhd2FpdCBhZGFwdGVyLnJlbmFtZSh0ZW1wb3JhcnlQYXRoLCBwYXRoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoYXdhaXQgYWRhcHRlci5leGlzdHModGVtcG9yYXJ5UGF0aCkpIHtcbiAgICAgIGF3YWl0IGFkYXB0ZXIucmVtb3ZlKHRlbXBvcmFyeVBhdGgpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcGF0aCxcbiAgICByZXNvdXJjZVVybDogYWRhcHRlci5nZXRSZXNvdXJjZVBhdGgocGF0aCksXG4gICAgd2FzQ2FjaGVkOiBmYWxzZVxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzaG91bGREb3dubG9hZFdpdGhNb2RhbChhcHA6IEFwcCwgcmVxdWVzdDogUmVsZWFzZUFzc2V0Q29uc2VudFJlcXVlc3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgaG9zdCA9IG5ldyBVUkwocmVxdWVzdC51cmwpLmhvc3Q7XG4gIGNvbnN0IG1lc3NhZ2UgPSByZXF1ZXN0LnNpemVJbkJ5dGVzID09PSB1bmRlZmluZWRcbiAgICA/IHQoKCQpID0+ICQub2JzaWRpYW5MaWIucmVsZWFzZUFzc2V0LmNvbnNlbnRNZXNzYWdlVW5rbm93blNpemUsIHsgZmlsZU5hbWU6IHJlcXVlc3QuZmlsZU5hbWUsIGhvc3QgfSlcbiAgICA6IHQoKCQpID0+ICQub2JzaWRpYW5MaWIucmVsZWFzZUFzc2V0LmNvbnNlbnRNZXNzYWdlLCB7IGZpbGVOYW1lOiByZXF1ZXN0LmZpbGVOYW1lLCBob3N0LCBzaXplOiBmb3JtYXRCeXRlU2l6ZShyZXF1ZXN0LnNpemVJbkJ5dGVzKSB9KTtcbiAgcmV0dXJuIGF3YWl0IGNvbmZpcm0oe1xuICAgIGFwcCxcbiAgICBtZXNzYWdlLFxuICAgIG9rQnV0dG9uVGV4dDogdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5yZWxlYXNlQXNzZXQuZG93bmxvYWQpLFxuICAgIHRpdGxlOiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnJlbGVhc2VBc3NldC5jb25zZW50VGl0bGUsIHsgZmlsZU5hbWU6IHJlcXVlc3QuZmlsZU5hbWUgfSlcbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTBCQSxrQkFBcUI7QUFFckIsa0JBQWtCO0FBQ2xCLHFCQUF3QjtBQUN4Qix5QkFBNkI7QUFFN0IsTUFBTSxvQkFBb0I7QUFDMUIsTUFBTSxrQkFBa0I7QUFDeEIsTUFBTSxZQUFZO0FBQ2xCLE1BQU0sc0JBQXNCO0FBQzVCLE1BQU0sd0JBQXdCO0FBMkl2QixNQUFNLGtDQUFrQyxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9ULFlBQVksUUFB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
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWxlYXNlLWFzc2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEb3dubG9hZHMgYW4gb3B0aW9uYWwgZGF0YSBhc3NldCBvZiBhIHBsdWdpbiByZWxlYXNlIG9uIGRlbWFuZDogaXQgYXNrcyB0aGUgdXNlciBmaXJzdCwgdmVyaWZpZXMgYW4gZXhwZWN0ZWQgU0hBLTI1NlxuICogYmVmb3JlIGFueXRoaW5nIGlzIHdyaXR0ZW4gb3IgZXhwb3NlZCwga2VlcHMgdGhlIHZlcmlmaWVkIGZpbGUgaW4gYSBsb2NhbCBjYWNoZSBmb2xkZXIgYW5kIGhhbmRzIGJhY2sgdGhlIGFkYXB0ZXJcbiAqIHJlc291cmNlIFVSTC5cbiAqXG4gKiBJdCB1c2VzIG9ubHkgY3Jvc3MtcGxhdGZvcm0gQVBJcyAoe0BsaW5rIHJlcXVlc3RVcmxFeH0sIHRoZSB2YXVsdCBhZGFwdGVyIGFuZCBgY3J5cHRvLnN1YnRsZWApLCBzbyBpdCB3b3JrcyBvbiBkZXNrdG9wXG4gKiBhbmQgbW9iaWxlIGFsaWtlLlxuICpcbiAqIEJlaGF2aW9yIHRoYXQgaXMgcGFydCBvZiB0aGUgY29udHJhY3Q6XG4gKlxuICogLSBBIGNhY2hlZCBmaWxlIGlzIGhhc2hlZCBvbiBldmVyeSBjYWxsLiBXaGVuIGl0cyBoYXNoIG1hdGNoZXMsIGl0IGlzIHJldXNlZCB3aXRob3V0IGFza2luZyBvciBkb3dubG9hZGluZy4gV2hlbiBpdFxuICogICBkb2VzIG5vdCwgaXQgaXMgcmVtb3ZlZCBhbmQgdHJlYXRlZCBhcyBtaXNzaW5nLCBzbyBhIGNvcnJ1cHQgb3IgdHJ1bmNhdGVkIGNhY2hlIHJlY292ZXJzIGJ5IGl0c2VsZi5cbiAqIC0gVGhlIHVzZXIgaXMgYXNrZWQgb25seSB3aGVuIGEgZG93bmxvYWQgaXMgbmVlZGVkLiBEZWNsaW5pbmcgcmVzb2x2ZXMgd2l0aCBgbnVsbGAgYW5kIHdyaXRlcyBub3RoaW5nLlxuICogLSBEb3dubG9hZGVkIGJ5dGVzIGFyZSB2ZXJpZmllZCBiZWZvcmUgdGhleSBhcmUgd3JpdHRlbi4gQSBtaXNtYXRjaCB0aHJvd3Mge0BsaW5rIFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3J9IGFuZFxuICogICB3cml0ZXMgbm90aGluZy5cbiAqIC0gVGhlIGZpbGUgaXMgd3JpdHRlbiB0byBhIHRlbXBvcmFyeSBzaWJsaW5nIGFuZCB0aGVuIHJlbmFtZWQgaW50byBwbGFjZSwgc28gYW4gaW50ZXJydXB0ZWQgd3JpdGUgbmV2ZXIgbGVhdmVzIGFcbiAqICAgcGFydGlhbCBmaWxlIHVuZGVyIHRoZSBjYWNoZWQgbmFtZS5cbiAqIC0gQW4gYWJvcnQgKHBhc3MgdGhlIHBsdWdpbidzIGFib3J0IHNpZ25hbCwgc28gYSBwbHVnaW4gdW5sb2FkIGNvdW50cykgcmVqZWN0cyB3aXRoIHRoZSBzaWduYWwncyByZWFzb24uIE9uY2UgdGhlXG4gKiAgIGRvd25sb2FkIGhhcyBmaW5pc2hlZCwgdGhlIHNpZ25hbCBpcyBjaGVja2VkIGFnYWluIGJlZm9yZSB3cml0aW5nLCBzbyBub3RoaW5nIGlzIHdyaXR0ZW4gYWZ0ZXIgYW4gdW5sb2FkLlxuICogLSBDb25jdXJyZW50IGNhbGxzIGZvciB0aGUgc2FtZSBjYWNoZSBwYXRoIHNoYXJlIG9uZSBvcGVyYXRpb24sIHNvIHRoZSB1c2VyIGlzIGFza2VkIG9uY2UuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5cbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBjb25maXJtIH0gZnJvbSAnLi9tb2RhbHMvY29uZmlybS50cyc7XG5pbXBvcnQgeyByZXF1ZXN0VXJsRXggfSBmcm9tICcuL3JlcXVlc3QtdXJsLnRzJztcblxuY29uc3QgQllURVNfSU5fS0lMT0JZVEUgPSAxMDI0O1xuY29uc3QgSEVYX0JZVEVfTEVOR1RIID0gMjtcbmNvbnN0IEhFWF9SQURJWCA9IDE2O1xuY29uc3QgU0hBXzI1Nl9IRVhfUkVHX0VYUCA9IC9eWzAtOWEtZl17NjR9JC9pO1xuY29uc3QgVEVNUE9SQVJZX0ZJTEVfU1VGRklYID0gJy5kb3dubG9hZCc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGVuc3VyZVJlbGVhc2VBc3NldH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5zdXJlUmVsZWFzZUFzc2V0UGFyYW1zIHtcbiAgLyoqXG4gICAqIEFib3J0cyB0aGUgb3BlcmF0aW9uLiBQYXNzIHRoZSBwbHVnaW4ncyBhYm9ydCBzaWduYWwsIHNvIGFuIHVubG9hZCBzdG9wcyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQtcmVsYXRpdmUgZm9sZGVyIHRoYXQgaG9sZHMgdGhlIGNhY2hlZCBmaWxlLCB0eXBpY2FsbHkgYCR7cGx1Z2luLm1hbmlmZXN0LmRpcn0vYXNzZXRzYC5cbiAgICpcbiAgICogQSBmb2xkZXIgaW5zaWRlIHRoZSBjb25maWcgZm9sZGVyIGlzIG5vdCBzeW5jZWQsIHNvIGVhY2ggZGV2aWNlIGRvd25sb2FkcyB0aGUgYXNzZXQgb25jZS5cbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRm9sZGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2FjaGVkIGZpbGUuIEl0IG11c3Qgbm90IGNvbnRhaW4gYSBwYXRoIHNlcGFyYXRvci5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleHBlY3RlZCBTSEEtMjU2IG9mIHRoZSBhc3NldCwgYXMgNjQgaGV4YWRlY2ltYWwgZGlnaXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hhMjU2OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFza3MgdGhlIHVzZXIgd2hldGhlciB0byBkb3dubG9hZCB0aGUgYXNzZXQuIERlZmF1bHRzIHRvIGEgY29uZmlybWF0aW9uIG1vZGFsLlxuICAgKlxuICAgKiBQYXNzIGAoKSA9PiBQcm9taXNlLnJlc29sdmUodHJ1ZSlgIHdoZW4gdGhlIHVzZXIgaGFzIGFscmVhZHkgYWdyZWVkLCBmb3IgZXhhbXBsZSB0aHJvdWdoIGEgc2V0dGluZy5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZERvd25sb2FkPzogKChyZXF1ZXN0OiBSZWxlYXNlQXNzZXRDb25zZW50UmVxdWVzdCkgPT4gUHJvbWlzZTxib29sZWFuPikgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBhc3NldCBpbiBieXRlcywgc2hvd24gdG8gdGhlIHVzZXIgd2hlbiBhc2tpbmcuXG4gICAqL1xuICByZWFkb25seSBzaXplSW5CeXRlcz86IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGRvd25sb2FkIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIHRvIGRvd25sb2FkIHRoZSBhc3NldCBmcm9tLiBPbmx5IGBodHRwOmAgYW5kIGBodHRwczpgIFVSTHMgYXJlIGFjY2VwdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGdldEdpdEh1YlJlbGVhc2VBc3NldFVybH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0R2l0SHViUmVsZWFzZUFzc2V0VXJsUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZWxlYXNlIGFzc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnksIGFzIGA8b3duZXI+LzxuYW1lPmAuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWxlYXNlIHRhZywgdHlwaWNhbGx5IHRoZSBwbHVnaW4gdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhZzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgdmVyaWZpZWQgcmVsZWFzZSBhc3NldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxlYXNlQXNzZXQge1xuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGNhY2hlZCBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgVVJMIG9mIHRoZSBjYWNoZWQgZmlsZSwgZnJvbSB0aGUgYWRhcHRlcidzIGBnZXRSZXNvdXJjZVBhdGhgLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmlsZSB3YXMgYWxyZWFkeSBjYWNoZWQsIHNvIG5vdGhpbmcgd2FzIGRvd25sb2FkZWQuXG4gICAqL1xuICByZWFkb25seSB3YXNDYWNoZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3J9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgU0hBLTI1NiBvZiB0aGUgZG93bmxvYWRlZCBieXRlcy5cbiAgICovXG4gIHJlYWRvbmx5IGFjdHVhbFNoYTI1Njogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZXhwZWN0ZWQgU0hBLTI1Ni5cbiAgICovXG4gIHJlYWRvbmx5IGV4cGVjdGVkU2hhMjU2OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgdGhlIGFzc2V0IHdhcyBkb3dubG9hZGVkIGZyb20uXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBXaGF0IHRoZSB1c2VyIGlzIGFza2VkIHRvIGFncmVlIHRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbGVhc2VBc3NldENvbnNlbnRSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhc3NldC5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBhc3NldCBpbiBieXRlcywgd2hlbiBrbm93bi5cbiAgICovXG4gIHJlYWRvbmx5IHNpemVJbkJ5dGVzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIHRoZSBhc3NldCBpcyBkb3dubG9hZGVkIGZyb20uXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaHJvd24gd2hlbiBkb3dubG9hZGVkIGJ5dGVzIGRvIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgU0hBLTI1Ni4gTm90aGluZyB3YXMgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBUaGUgU0hBLTI1NiBvZiB0aGUgZG93bmxvYWRlZCBieXRlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhY3R1YWxTaGEyNTY6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGV4cGVjdGVkIFNIQS0yNTYuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXhwZWN0ZWRTaGEyNTY6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVSTCB0aGUgYXNzZXQgd2FzIGRvd25sb2FkZWQgZnJvbS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3JDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKGBUaGUgYXNzZXQgZG93bmxvYWRlZCBmcm9tICR7cGFyYW1zLnVybH0gaGFzIFNIQS0yNTYgJHtwYXJhbXMuYWN0dWFsU2hhMjU2fSwgZXhwZWN0ZWQgJHtwYXJhbXMuZXhwZWN0ZWRTaGEyNTZ9LmApO1xuICAgIHRoaXMubmFtZSA9ICdSZWxlYXNlQXNzZXRDaGVja3N1bUVycm9yJztcbiAgICB0aGlzLmFjdHVhbFNoYTI1NiA9IHBhcmFtcy5hY3R1YWxTaGEyNTY7XG4gICAgdGhpcy5leHBlY3RlZFNoYTI1NiA9IHBhcmFtcy5leHBlY3RlZFNoYTI1NjtcbiAgICB0aGlzLnVybCA9IHBhcmFtcy51cmw7XG4gIH1cbn1cblxuY29uc3QgaW5GbGlnaHRPcGVyYXRpb25zID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8bnVsbCB8IFJlbGVhc2VBc3NldD4+KCk7XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIFNIQS0yNTYgb2YgdGhlIGdpdmVuIGJ5dGVzLlxuICpcbiAqIEBwYXJhbSBkYXRhIC0gVGhlIGJ5dGVzLlxuICogQHJldHVybnMgVGhlIFNIQS0yNTYgYXMgNjQgbG93ZXJjYXNlIGhleGFkZWNpbWFsIGRpZ2l0cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbXB1dGVTaGEyNTYoZGF0YTogQXJyYXlCdWZmZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBoYXNoID0gYXdhaXQgd2luZG93LmNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgZGF0YSk7XG4gIHJldHVybiBbLi4ubmV3IFVpbnQ4QXJyYXkoaGFzaCldLm1hcCgoYnl0ZSkgPT4gYnl0ZS50b1N0cmluZyhIRVhfUkFESVgpLnBhZFN0YXJ0KEhFWF9CWVRFX0xFTkdUSCwgJzAnKSkuam9pbignJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY2FjaGVkLCB2ZXJpZmllZCBhc3NldCwgZG93bmxvYWRpbmcgaXQgZmlyc3QsIHdpdGggdGhlIHVzZXIncyBjb25zZW50LCB3aGVuIGl0IGlzIG1pc3Npbmcgb3IgY29ycnVwdC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgdmVyaWZpZWQgYXNzZXQsIG9yIGBudWxsYCB3aGVuIHRoZSB1c2VyIGRlY2xpbmVkIHRoZSBkb3dubG9hZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuc3VyZVJlbGVhc2VBc3NldChwYXJhbXM6IEVuc3VyZVJlbGVhc2VBc3NldFBhcmFtcyk6IFByb21pc2U8bnVsbCB8IFJlbGVhc2VBc3NldD4ge1xuICBpZiAoIVNIQV8yNTZfSEVYX1JFR19FWFAudGVzdChwYXJhbXMuc2hhMjU2KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBTSEEtMjU2OiAke3BhcmFtcy5zaGEyNTZ9YCk7XG4gIH1cblxuICBpZiAoIXBhcmFtcy5maWxlTmFtZSB8fCAvWy9cXFxcXS8udGVzdChwYXJhbXMuZmlsZU5hbWUpIHx8IHBhcmFtcy5maWxlTmFtZSA9PT0gJy4nIHx8IHBhcmFtcy5maWxlTmFtZSA9PT0gJy4uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhc3NldCBmaWxlIG5hbWU6ICR7cGFyYW1zLmZpbGVOYW1lfWApO1xuICB9XG5cbiAgY29uc3QgcGF0aCA9IGpvaW4ocGFyYW1zLmNhY2hlRm9sZGVyUGF0aCwgcGFyYW1zLmZpbGVOYW1lKTtcbiAgY29uc3QgaW5GbGlnaHRPcGVyYXRpb24gPSBpbkZsaWdodE9wZXJhdGlvbnMuZ2V0KHBhdGgpO1xuICBpZiAoaW5GbGlnaHRPcGVyYXRpb24pIHtcbiAgICByZXR1cm4gYXdhaXQgaW5GbGlnaHRPcGVyYXRpb247XG4gIH1cblxuICBjb25zdCBvcGVyYXRpb24gPSBlbnN1cmVSZWxlYXNlQXNzZXRJbXBsKHBhcmFtcywgcGF0aCk7XG4gIGluRmxpZ2h0T3BlcmF0aW9ucy5zZXQocGF0aCwgb3BlcmF0aW9uKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgb3BlcmF0aW9uO1xuICB9IGZpbmFsbHkge1xuICAgIGluRmxpZ2h0T3BlcmF0aW9ucy5kZWxldGUocGF0aCk7XG4gIH1cbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgYnl0ZSBzaXplIGZvciBhIHBlcnNvbiB0byByZWFkLlxuICpcbiAqIEBwYXJhbSBzaXplSW5CeXRlcyAtIFRoZSBzaXplIGluIGJ5dGVzLlxuICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBzaXplLCBzdWNoIGFzIGAxMi4zIE1CYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEJ5dGVTaXplKHNpemVJbkJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAoc2l6ZUluQnl0ZXMgPCBCWVRFU19JTl9LSUxPQllURSkge1xuICAgIHJldHVybiBgJHtTdHJpbmcoc2l6ZUluQnl0ZXMpfSBCYDtcbiAgfVxuICBsZXQgc2l6ZSA9IHNpemVJbkJ5dGVzIC8gQllURVNfSU5fS0lMT0JZVEU7XG4gIGxldCB1bml0ID0gJ0tCJztcbiAgZm9yIChjb25zdCBsYXJnZXJVbml0IG9mIFsnTUInLCAnR0InXSkge1xuICAgIGlmIChzaXplIDwgQllURVNfSU5fS0lMT0JZVEUpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBzaXplIC89IEJZVEVTX0lOX0tJTE9CWVRFO1xuICAgIHVuaXQgPSBsYXJnZXJVbml0O1xuICB9XG4gIHJldHVybiBgJHtzaXplLnRvRml4ZWQoMSl9ICR7dW5pdH1gO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgZG93bmxvYWQgVVJMIG9mIGEgR2l0SHViIHJlbGVhc2UgYXNzZXQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgVGhlIFVSTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdpdEh1YlJlbGVhc2VBc3NldFVybChwYXJhbXM6IEdldEdpdEh1YlJlbGVhc2VBc3NldFVybFBhcmFtcyk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9naXRodWIuY29tLyR7cGFyYW1zLnJlcG9zaXRvcnl9L3JlbGVhc2VzL2Rvd25sb2FkLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtcy50YWcpfS8ke2VuY29kZVVSSUNvbXBvbmVudChwYXJhbXMuZmlsZU5hbWUpfWA7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGVuc3VyZVJlbGVhc2VBc3NldEltcGwocGFyYW1zOiBFbnN1cmVSZWxlYXNlQXNzZXRQYXJhbXMsIHBhdGg6IHN0cmluZyk6IFByb21pc2U8bnVsbCB8IFJlbGVhc2VBc3NldD4ge1xuICBjb25zdCB7IGFib3J0U2lnbmFsLCBhcHAgfSA9IHBhcmFtcztcbiAgY29uc3QgYWRhcHRlciA9IGFwcC52YXVsdC5hZGFwdGVyO1xuICBjb25zdCBleHBlY3RlZFNoYTI1NiA9IHBhcmFtcy5zaGEyNTYudG9Mb3dlckNhc2UoKTtcbiAgYWJvcnRTaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG5cbiAgaWYgKGF3YWl0IGFkYXB0ZXIuZXhpc3RzKHBhdGgpKSB7XG4gICAgY29uc3QgY2FjaGVkQnl0ZXMgPSBhd2FpdCBhZGFwdGVyLnJlYWRCaW5hcnkocGF0aCk7XG4gICAgaWYgKGF3YWl0IGNvbXB1dGVTaGEyNTYoY2FjaGVkQnl0ZXMpID09PSBleHBlY3RlZFNoYTI1Nikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcmVzb3VyY2VVcmw6IGFkYXB0ZXIuZ2V0UmVzb3VyY2VQYXRoKHBhdGgpLFxuICAgICAgICB3YXNDYWNoZWQ6IHRydWVcbiAgICAgIH07XG4gICAgfVxuICAgIGF3YWl0IGFkYXB0ZXIucmVtb3ZlKHBhdGgpO1xuICB9XG5cbiAgY29uc3QgY29uc2VudFJlcXVlc3Q6IFJlbGVhc2VBc3NldENvbnNlbnRSZXF1ZXN0ID0ge1xuICAgIGZpbGVOYW1lOiBwYXJhbXMuZmlsZU5hbWUsXG4gICAgc2l6ZUluQnl0ZXM6IHBhcmFtcy5zaXplSW5CeXRlcyxcbiAgICB1cmw6IHBhcmFtcy51cmxcbiAgfTtcbiAgY29uc3QgaXNEb3dubG9hZEFsbG93ZWQgPSBwYXJhbXMuc2hvdWxkRG93bmxvYWQgPyBhd2FpdCBwYXJhbXMuc2hvdWxkRG93bmxvYWQoY29uc2VudFJlcXVlc3QpIDogYXdhaXQgc2hvdWxkRG93bmxvYWRXaXRoTW9kYWwoYXBwLCBjb25zZW50UmVxdWVzdCk7XG4gIGlmICghaXNEb3dubG9hZEFsbG93ZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBhYm9ydFNpZ25hbD8udGhyb3dJZkFib3J0ZWQoKTtcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3RVcmxFeCh7XG4gICAgYWJvcnRTaWduYWwsXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzOiBwYXJhbXMudGltZW91dEluTWlsbGlzZWNvbmRzLFxuICAgIHVybDogcGFyYW1zLnVybFxuICB9KTtcbiAgY29uc3QgYnl0ZXMgPSByZXNwb25zZS5hcnJheUJ1ZmZlcjtcbiAgY29uc3QgYWN0dWFsU2hhMjU2ID0gYXdhaXQgY29tcHV0ZVNoYTI1NihieXRlcyk7XG4gIGlmIChhY3R1YWxTaGEyNTYgIT09IGV4cGVjdGVkU2hhMjU2KSB7XG4gICAgdGhyb3cgbmV3IFJlbGVhc2VBc3NldENoZWNrc3VtRXJyb3IoeyBhY3R1YWxTaGEyNTYsIGV4cGVjdGVkU2hhMjU2LCB1cmw6IHBhcmFtcy51cmwgfSk7XG4gIH1cbiAgYWJvcnRTaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG5cbiAgaWYgKCFhd2FpdCBhZGFwdGVyLmV4aXN0cyhwYXJhbXMuY2FjaGVGb2xkZXJQYXRoKSkge1xuICAgIGF3YWl0IGFkYXB0ZXIubWtkaXIocGFyYW1zLmNhY2hlRm9sZGVyUGF0aCk7XG4gIH1cblxuICBjb25zdCB0ZW1wb3JhcnlQYXRoID0gYCR7cGF0aH0ke1RFTVBPUkFSWV9GSUxFX1NVRkZJWH1gO1xuICB0cnkge1xuICAgIGF3YWl0IGFkYXB0ZXIud3JpdGVCaW5hcnkodGVtcG9yYXJ5UGF0aCwgYnl0ZXMpO1xuICAgIGlmIChhd2FpdCBhZGFwdGVyLmV4aXN0cyhwYXRoKSkge1xuICAgICAgYXdhaXQgYWRhcHRlci5yZW1vdmUocGF0aCk7XG4gICAgfVxuICAgIGF3YWl0IGFkYXB0ZXIucmVuYW1lKHRlbXBvcmFyeVBhdGgsIHBhdGgpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChhd2FpdCBhZGFwdGVyLmV4aXN0cyh0ZW1wb3JhcnlQYXRoKSkge1xuICAgICAgYXdhaXQgYWRhcHRlci5yZW1vdmUodGVtcG9yYXJ5UGF0aCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwYXRoLFxuICAgIHJlc291cmNlVXJsOiBhZGFwdGVyLmdldFJlc291cmNlUGF0aChwYXRoKSxcbiAgICB3YXNDYWNoZWQ6IGZhbHNlXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNob3VsZERvd25sb2FkV2l0aE1vZGFsKGFwcDogQXBwLCByZXF1ZXN0OiBSZWxlYXNlQXNzZXRDb25zZW50UmVxdWVzdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBob3N0ID0gbmV3IFVSTChyZXF1ZXN0LnVybCkuaG9zdDtcbiAgY29uc3QgbWVzc2FnZSA9IHJlcXVlc3Quc2l6ZUluQnl0ZXMgPT09IHVuZGVmaW5lZFxuICAgID8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5yZWxlYXNlQXNzZXQuY29uc2VudE1lc3NhZ2VVbmtub3duU2l6ZSwgeyBmaWxlTmFtZTogcmVxdWVzdC5maWxlTmFtZSwgaG9zdCB9KVxuICAgIDogdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5yZWxlYXNlQXNzZXQuY29uc2VudE1lc3NhZ2UsIHsgZmlsZU5hbWU6IHJlcXVlc3QuZmlsZU5hbWUsIGhvc3QsIHNpemU6IGZvcm1hdEJ5dGVTaXplKHJlcXVlc3Quc2l6ZUluQnl0ZXMpIH0pO1xuICByZXR1cm4gYXdhaXQgY29uZmlybSh7XG4gICAgYXBwLFxuICAgIG1lc3NhZ2UsXG4gICAgb2tCdXR0b25UZXh0OiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnJlbGVhc2VBc3NldC5kb3dubG9hZCksXG4gICAgdGl0bGU6IHQoKCQpID0+ICQub2JzaWRpYW5MaWIucmVsZWFzZUFzc2V0LmNvbnNlbnRUaXRsZSwgeyBmaWxlTmFtZTogcmVxdWVzdC5maWxlTmFtZSB9KVxuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMEJBLGtCQUFxQjtBQUVyQixrQkFBa0I7QUFDbEIscUJBQXdCO0FBQ3hCLHlCQUE2QjtBQUU3QixNQUFNLG9CQUFvQjtBQUMxQixNQUFNLGtCQUFrQjtBQUN4QixNQUFNLFlBQVk7QUFDbEIsTUFBTSxzQkFBc0I7QUFDNUIsTUFBTSx3QkFBd0I7QUEySXZCLE1BQU0sa0NBQWtDLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUluQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1QsWUFBWSxRQUFvRDtBQUNyRSxVQUFNLDZCQUE2QixPQUFPLEdBQUcsZ0JBQWdCLE9BQU8sWUFBWSxjQUFjLE9BQU8sY0FBYyxHQUFHO0FBQ3RILFNBQUssT0FBTztBQUNaLFNBQUssZUFBZSxPQUFPO0FBQzNCLFNBQUssaUJBQWlCLE9BQU87QUFDN0Is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
@@ -119,10 +119,10 @@ __export(rendered_markdown_exports, {
119
119
  registerFootnoteLinkHandler: () => registerFootnoteLinkHandler
120
120
  });
121
121
  module.exports = __toCommonJS(rendered_markdown_exports);
122
- var import_async = require('@mnaoumov/typescript-lib/async');
123
- var import_type_guards = require('@mnaoumov/typescript-lib/type-guards');
124
- var import_obsidian = require('obsidian');
125
- var import_css_class = require('./css-class.cjs');
122
+ var import_async = require("@mnaoumov/typescript-lib/async");
123
+ var import_type_guards = require("@mnaoumov/typescript-lib/type-guards");
124
+ var import_obsidian = require("obsidian");
125
+ var import_css_class = require("./css-class.cjs");
126
126
  const FLASH_DURATION_IN_MILLISECONDS = 3e3;
127
127
  const FOLD_ICON = "right-triangle";
128
128
  const HEADING_TAG_NAMES = /* @__PURE__ */ new Set(["H1", "H2", "H3", "H4", "H5", "H6"]);
@@ -182,10 +182,10 @@ __export(request_url_exports, {
182
182
  requestUrlStream: () => requestUrlStream
183
183
  });
184
184
  module.exports = __toCommonJS(request_url_exports);
185
- var import_abort_controller = require('@mnaoumov/typescript-lib/abort-controller');
186
- var import_function = require('@mnaoumov/typescript-lib/function');
187
- var import_object_utils = require('@mnaoumov/typescript-lib/object-utils');
188
- var import_obsidian = require('obsidian');
185
+ var import_abort_controller = require("@mnaoumov/typescript-lib/abort-controller");
186
+ var import_function = require("@mnaoumov/typescript-lib/function");
187
+ var import_object_utils = require("@mnaoumov/typescript-lib/object-utils");
188
+ var import_obsidian = require("obsidian");
189
189
  const HTTP_ERROR_STATUS_MIN = 400;
190
190
  const ERROR_MESSAGE_BODY_LENGTH = 200;
191
191
  const HTTP_SWITCHING_PROTOCOLS_STATUS = 101;